Changelog v3.0.1-beta
This document gathers the complete release history of the v3.0.1-beta line, from the most recent version down to v3.0.1-beta.139 (the first officially documented stable version). Each entry is written from the perspective of the library's consumers: what actually changed in practice, not just which files were touched.
For a quick summary of the current release, see
Latest. If you're upgrading straight from Arkyn v2.2.3, see the
v2 → v3 migration guide instead — it also covers breaking changes made in earlier betas, before this changelog started tracking versions individually.
v3.0.1-beta.207
Date: 2026-07-08
Adds an automated Biome formatting step to the beta release workflow and fixes the monorepo's release/publish script ordering to follow the packages' actual dependency order.
Fixes
- Reorders the root
all:publish:beta, all:release:beta, all:release:major, all:release:minor, and all:release:patch scripts in package.json to run templates → shared → components → server, matching the packages' real dependency order (previously ran components → server → shared → templates, i.e. dependents before the dependencies they need already published).
New
- Adds a "Biome format" step (
bun run biome:format) to .github/workflows/beta.yml, running automatically before the vulnerability-scan step on every beta release.
Internal changes
- Reformats
packages/components/package.json, packages/server/package.json, packages/shared/package.json, and packages/templates/package.json from 2-space back to tab indentation, consistent with the new automated biome:format CI step.
- Re-adds the
noStaticElementInteractions: "off" a11y override to biome.json, which beta.206 had removed after SelectOption was changed to a <button>.
Notes
- The
noStaticElementInteractions a11y override being re-enabled looks like it may be unintentional — SelectOption still renders as a <button> (from beta.206) and shouldn't need it. Worth double-checking whether this was a deliberate revert or a side effect of merging/formatting.
- Version bumped across all packages (
@arkyn/components, @arkyn/server, @arkyn/shared, @arkyn/templates) to 3.0.1-beta.207.
v3.0.1-beta.206
Date: 2026-07-08
Adds fallback values to CSS custom properties across nearly all component stylesheets so components render with sensible defaults even when a consuming app hasn't defined Arkyn's design tokens, and fixes SelectOption to render as a semantic <button> instead of a clickable <div>.
Fixes
- Adds inline fallback values to
var(...) references for Arkyn's CSS custom properties (--spotlight-primary, --spotlight-secondary, --spotlight-danger, --spotlight-success, --spotlight-warning, --spotlight-info and their -foreground variants, --text-body, --text-heading, etc.) across nearly all component stylesheets — badge, button, iconButton, checkbox, input, select, multiSelect, calendar (day/week/month/full), phoneInput, richText, table, tooltip, and dozens more — so components display sensible default colors even if the consuming app never defines Arkyn's design-token variables.
- Changes
SelectOption (packages/components/src/components/select/selectOption/index.tsx) from a <div onClick> to a <button type="button">, improving keyboard accessibility; updates its stylesheet (border: none) and the corresponding assertion in select.spec.tsx accordingly.
Internal changes
- Removes the
noStaticElementInteractions: "off" a11y override from biome.json, now that SelectOption no longer relies on a non-interactive element for click handling.
Notes
- No changes to any package's public exports, but
SelectOption's rendered DOM element changes from <div> to <button> — this could affect consumers with CSS selectors, snapshots, or tests that target the previous element type.
- Version bumped across all packages (
@arkyn/components, @arkyn/server, @arkyn/shared, @arkyn/templates) to 3.0.1-beta.206.
v3.0.1-beta.205
Date: 2026-07-03
Switches package publish scripts from bun publish to npm publish, changes @arkyn/components, @arkyn/server, and @arkyn/shared's internal dependency on @arkyn/shared/@arkyn/templates from workspace:* to explicit >= version ranges, and reformats all package.json files to tab indentation.
Internal changes
- Changes the
publish:beta and publish:latest scripts in @arkyn/components, @arkyn/server, @arkyn/shared, and @arkyn/templates from bun publish --tag beta/bun publish --tag latest to npm publish --tag beta/npm publish --tag latest.
- Changes the
@arkyn/shared and @arkyn/templates dependency ranges declared in @arkyn/components, @arkyn/server, and @arkyn/shared package.json from workspace:* to >=3.0.1-beta.205, so a published tarball resolves against a real registry version instead of a workspace-only protocol that only resolves inside this monorepo.
- Reformats
packages/components/package.json, packages/server/package.json, packages/shared/package.json, packages/templates/package.json, apps/development/package.json, and .github/scripts/smoke-test-dist.mjs from 2-space to tab indentation; no functional changes.
- Simplifies the
generateId v7 time-ordering test (packages/shared/src/generators/__test__/generateId.spec.ts) to only assert that v7 IDs come back sorted, dropping the redundant assertion that v4 IDs are unsorted.
Notes
- No changes to any package's public exports or behavior.
- Version bumped across all packages (
@arkyn/components, @arkyn/server, @arkyn/shared, @arkyn/templates) to 3.0.1-beta.205.
v3.0.1-beta.204
Date: 2026-07-03
Version-only bump; no functional changes.
Internal changes
- Bumps the published version of
@arkyn/components, @arkyn/server, @arkyn/shared, and @arkyn/templates to 3.0.1-beta.204 to prepare for the next round of publishing, with no other file changes.
Notes
- No changes to any package's public exports, component/service signatures, or behavior.
v3.0.1-beta.203
Date: 2026-07-03
Introduces per-component CSS code-splitting for @arkyn/components, adds a CI job matrix that verifies React 18/19 compatibility and the declared Node.js engines floor, and applies a round of dependency cleanup and context-provider performance fixes.
New
- Adds per-component CSS exports to
@arkyn/components: every component subpath now also exposes a matching ./<component>.css file (e.g. @arkyn/components/button.css) containing just that component's styles (and those of any component it renders internally), via a new generate-component-styles.ts build step that walks each component's compiled module graph and merges its stylesheets.
- Documents the new per-component styles in
packages/components/README.md, including guidance on when the aggregate @arkyn/components/styles import is still preferable (components sharing internals, to avoid duplicate CSS).
- Adds a
components-react-compat job to .github/workflows/pullRequest.yml that reinstalls react/react-dom (and their @types) at versions 18 and 19 in a matrix and reruns the @arkyn/components typecheck and test suite against each, since its devDependencies otherwise only exercise React 19 despite the package declaring support for both via peerDependencies.
- Adds a
node-engine-floor job to .github/workflows/pullRequest.yml, backed by a new .github/scripts/smoke-test-dist.mjs script, that builds all four packages and smoke-tests their published dist/ output by importing each under Node 18 (the declared engines.node floor), then runs the full test suite under Node 20 LTS via npx (since the Bun-based tooling requires Node ≥20 and would otherwise never actually invoke the system Node runtime).
Internal changes
- Enables
sourcemap: true in the Vite build config for @arkyn/components, @arkyn/server, @arkyn/shared, and @arkyn/templates, for better debugging of published packages.
- Refactors the
AlertContainer, CardTab, Drawer, Modal, Tab, FormProvider, and ToastProvider context providers to memoize their context value with useMemo, avoiding unnecessary re-renders of consumers.
- Reworks the
@arkyn/components Vite assetFileNames config into a shared function so the single CSS asset tied to the src/index.ts barrel entry is consistently named style.css in both the aggregate ./dist output and the per-module ./dist/modules output, while every other (per-component) stylesheet keeps its own name; updates the build script to drop the now-unused dist/modules/index.css instead of dist/modules/style.css.
- Moves
slate, slate-history, slate-react, and typescript to the workspace catalog: in @arkyn/components and apps/development package.json files, instead of pinned versions, and adds typescript as a catalog: devDependency to @arkyn/server, @arkyn/shared, and @arkyn/templates.
- Downgrades
html-react-parser (and its transitive html-dom-parser, htmlparser2, dom-serializer, domhandler, domelementtype, domutils, style-to-js dependencies) from ^6.1.3 to a pinned 5.2.17 in @arkyn/components.
Notes
- No changes to any package's public component or service signatures; the new
.css subpath exports are additive.
- Version bumped across all packages (
@arkyn/components, @arkyn/server, @arkyn/shared, @arkyn/templates).
v3.0.1-beta.202
Date: 2026-07-02
Moves the local playground app under apps/, adds a full outbound HTTP request layer (makeRequest and CRUD helpers) with standardized logging to @arkyn/server, and broadens package compatibility (typesVersions, lower engines requirements) across all four packages.
New
- Adds an internal
makeRequest helper to @arkyn/server (src/http/api/_makeRequest.ts) that wraps the Fetch API and returns a standardized ApiResponseDTO<T> (success, status, message, response, cause) for GET/POST/PUT/DELETE/PATCH requests, with error handling for non-JSON bodies and network failures.
- Adds
getRequest, postRequest, putRequest, deleteRequest, and patchRequest convenience functions built on top of makeRequest, each accepting url, optional urlParams, headers, and (where applicable) body.
- Adds
LogMapperService to standardize how request/response data (headers and body) is captured for debug logging.
- Adds comprehensive tests for
makeRequest, the CRUD request functions, and LogMapperService under src/http/__test__/api/, covering success responses, error responses, and network errors.
- Adds a
typesVersions map to @arkyn/components, @arkyn/server, @arkyn/shared, and @arkyn/templates package.json files, so every subpath export also resolves correctly under older TypeScript module-resolution settings (node/node10), not just bundler/node16.
- Adds
publishConfig: { "access": "public" } to @arkyn/components and @arkyn/server package.json.
- Adds many new example routes to the
development playground app (moved to apps/development), covering Pagination, PhoneInput, Popover, RadioGroup, RichText, Select, Slider, Switch, Tab, Table, Textarea, and Tooltip, plus a root layout with a dark-mode toggle and Drawer/Modal/Toast provider wiring.
- Adds a GitHub Actions workflow (
.github/workflows/pullRequest.yml) to run checks on pull requests.
Internal changes
- Renames the internal request-function source files in
@arkyn/server to use a leading underscore (_getRequest.ts, _postRequest.ts, _putRequest.ts, _deleteRequest.ts, _patchRequest.ts, _makeRequest.ts, _logMapperService.ts), marking them as private implementation details of apiService. These functions were not previously exported publicly, so this is not a breaking change.
- Lowers the minimum
engines requirement in @arkyn/components and @arkyn/server from node >=24.16.0 / bun >=1.3.14 to node >=18.0.0 / bun >=1.0.0.
- Expands
LICENSE.txt in all four packages from a 24-line stub to the full Apache License 2.0 text, matching the repository root LICENSE added in beta.201.
- Moves the
development app from packages/development to apps/development (the root package.json workspaces glob was already apps/*, added in this same commit alongside packages/*).
- Removes the obsolete
packages/components/variables.css file, superseded by the app's own _app.css.
@arkyn/server's zod devDependency now resolves via the workspace catalog: instead of a pinned ^4.4.3.
- Updates the
build script in @arkyn/components and @arkyn/server to remove stray dist/modules/index.js and dist/modules/style.css files left over from the Vite build step.
- Trims unused rules from the root
biome.json.
Notes
- The new
getRequest/postRequest/putRequest/deleteRequest/patchRequest/makeRequest functions are internal (underscore-prefixed, not present in any package's exports map) — the public entry point for HTTP calls remains apiService, which now delegates to them internally.
- No changes to any package's public exports or component/service signatures.
- Version bumped across all packages (
@arkyn/components, @arkyn/server, @arkyn/shared, @arkyn/templates).
v3.0.1-beta.201
Date: 2026-07-02
Project-wide housekeeping: a repository-level Apache 2.0 license, ESM-only guidance in package docs, faster local scripts via concurrently, and a Vitest setup for @arkyn/templates.
New
- Adds a root-level
LICENSE file (Apache License 2.0) to the repository.
- Introduces
vitest.config.ts for @arkyn/templates, adding vitest as a devDependency so the package can run its own automated test suite.
- Adds
concurrently as a root devDependency and updates the root package.json scripts (audit, build, test, typecheck) to run per-package tasks in parallel instead of sequentially.
Internal changes
- Updates the README of every package (
@arkyn/components, @arkyn/server, @arkyn/shared, @arkyn/templates) to state they are ESM-only and to recommend import over require().
- Fixes the
repository.directory field in @arkyn/shared's and @arkyn/templates' package.json — both incorrectly pointed to packages/components and now correctly point to packages/shared and packages/templates respectively.
- Removes
"dist/components.css" from the sideEffects array in @arkyn/components' package.json (still covered by the existing "*.css" glob).
- Removes unused dependencies from the
@arkyn/development package.
- Version bumped across all packages (
@arkyn/components, @arkyn/server, @arkyn/shared, @arkyn/templates).
Notes
- No changes to any package's public API, exports, or component behavior in this release.
- The
repository.directory fix corrects metadata shown on npm's package page; it does not affect installation or usage.
v3.0.1-beta.200
Date: 2026-07-02
Documentation and licensing overhaul focused on @arkyn/server, @arkyn/shared, and @arkyn/templates: rewritten READMEs, corrected homepage links, and a new license file for the templates package.
New
- Adds a dedicated
LICENSE.txt (Apache License 2.0) to @arkyn/templates, clarifying licensing terms for the package independently of the repository root license.
- Rewrites the
@arkyn/templates README: adds a "🎯 What it solves" intro section and a "📋 Prerequisites" section, simplifies the "📋 API Reference" into a flatter, more scannable structure (countries, brazilianStates, countryCurrencies, maximumFractionDigits), and replaces the old advanced-usage/examples section with concise "📚 Documentation" and "📄 License" sections.
- Rewrites the
@arkyn/shared README with the same structure improvements: problem statement, prerequisites, and refreshed feature list.
- Rewrites the
@arkyn/components README: adds "✨ What it solves" and "📋 Prerequisites" sections, renames "Peer Dependencies" to "Optional peer dependencies", and adds a structured "📖 API Reference" split into Components, Hooks, Providers, and Services, plus a "📚 Documentation" section.
- Updates the root
README.md with corresponding content adjustments.
Internal changes
- Fixes
homepage URLs in @arkyn/server, @arkyn/shared, and @arkyn/templates package.json files, from https://docs.arkyn.dev/en/<package>/introduction to https://docs.arkyn.dev/docs/<package>/introduction, matching the current documentation site structure.
- Version bumped across all packages (
@arkyn/components, @arkyn/server, @arkyn/shared, @arkyn/templates).
Notes
- This version introduces no source code or behavioral changes — it is a documentation and metadata-only release.
- The
@arkyn/components package.json version is bumped alongside the others for consistency, even though it received no other changes in this release.
v3.0.1-beta.199
Date: 2026-07-02
Status: Test coverage for @arkyn/components expanded with 65 new specs covering all remaining components and providers. Popover migrated away from framer-motion to CSS visibility. Bug fixes in TableBody, Textarea, and AudioPlayer discovered while writing the tests.
Changes By Package
-
@arkyn/components
Component fixes
-
Popover: removed framer-motion — motion.div replaced with a plain div using style={{ visibility: isOpen ? "visible" : "hidden" }}. The opacity animation framer-motion controlled (0 → 1) was dropped. Open/close behavior and closeOnClick remain intact, now with no framer-motion runtime dependency. Corresponding adjustment in popover/styles.css.
-
TableBody: empty-state detection fixed — Children.count(children) === 0 replaced with Children.toArray(children).filter(Boolean).length === 0. Children.count does not filter null/undefined children, which caused the empty-state row to render even when conditional children resolved to null. The new approach uses Children.toArray with .filter(Boolean) to count only real children.
-
Textarea: controlled/uncontrolled conflict resolved — the component was passing both value and defaultValue to the underlying <textarea> simultaneously under certain conditions, triggering a React warning. Introduced domValue: when disabled, domValue = undefined (the disabled state uses placeholder to show the value instead); otherwise domValue = value. defaultValue is now only passed when domValue === undefined, ensuring the element is never in an ambiguous controlled/uncontrolled state.
-
AudioPlayer: empty src attribute prevented — src={props.src} changed to src={props.src || undefined}. Prevents the <audio> element from receiving src="" (an empty string), which triggers an invalid HTTP request to the base URL.
Testing infrastructure
New component specs (src/components/__test__/) — 53 files:
alertContainer.spec.tsx — rendering, schemes, children, HTML attribute passthrough
alertContent.spec.tsx — internal composition and prop propagation
alertDescription.spec.tsx — text content, truncation, and attributes
alertIcon.spec.tsx — icons per scheme, size, accessibility
alertTitle.spec.tsx — typography and HTML attributes
audioPlayer.spec.tsx — play/pause, progress, volume, invalid src
audioUpload.spec.tsx — upload, drag-and-drop, disabled/loading/error states
badge.spec.tsx — variants, schemes, sizes, icons
button.spec.tsx — variants, schemes, isLoading, disabled, icons
calendar.spec.tsx — single/range modes, navigation, date selection, disabled dates
cardTabButton.spec.tsx — active state, callbacks, accessibility
cardTabContainer.spec.tsx — composition, activeTab, onChange
checkbox.spec.tsx — checked, defaultChecked, disabled, error, orientations
clientOnly.spec.tsx — SSR/client hydration, children rendering
currencyInput.spec.tsx — locales, formatting, prefix/suffix, all states
divider.spec.tsx — orientations, variants, attributes
drawerContainer.spec.tsx — animations, orientations, scroll lock, makeInvisible
drawerHeader.spec.tsx — showCloseButton, title, close callback
facebookPixel.spec.tsx — initialization, track/trackCustom events, consent
fieldError.spec.tsx — error message, visibility, accessibility
fieldLabel.spec.tsx — showAsterisk, htmlFor, children
fieldWrapper.spec.tsx — label + error + children composition
fileUpload.spec.tsx — upload, accepted types, drag, error, disabled
fullCalendar.spec.tsx — day/week/month views, events, navigation, blocked timestamps
googleAnalytics.spec.tsx — script injection, showInDevMode, NODE_ENV guard
googleTagManager.spec.tsx — GTM script injection, dataLayer, showInDevMode
iconButton.spec.tsx — variants, schemes, sizes, disabled, aria-label
imageUpload.spec.tsx — upload, preview, removal, accepted types, disabled
input.spec.tsx — variants, prefix/suffix/icons, all states, password type
mapView.spec.tsx — map initialization, markers, popups, accessToken
maskedInput.spec.tsx — masks, variants, all states, formatting
modalContainer.spec.tsx — animations, scroll lock, makeInvisible, children
modalFooter.spec.tsx — layout, HTML attributes, children
modalHeader.spec.tsx — showCloseButton, title, close callback
multiSelect.spec.tsx — multiple selection, search, disabled, readOnly, error
pagination.spec.tsx — navigation, stable keys, currentPage, totalPages
phoneInput.spec.tsx — country selector, masks, disabled, readOnly, error
popover.spec.tsx — orientations, closeOnClick, overlay, visibility toggling
radioBox.spec.tsx — checked, error, disabled, callbacks
radioGroup.spec.tsx — selection, options, defaultValue, disabled, error
richText.spec.tsx — toolbar, mark/block toggles, serialization/deserialization
select.spec.tsx — isSearchable, variants, all states, disabled, readOnly
slider.spec.tsx — drag, click, min/max boundaries, disabled, onChange
switch.spec.tsx — toggle, defaultChecked, disabled, error, sizes
tabButton.spec.tsx — active state, callbacks, disabled, accessibility
tabContainer.spec.tsx — composition, activeTab, onChange, children
tableBody.spec.tsx — empty state, conditional children, attribute passthrough
tableCaption.spec.tsx — text content, positioning, attributes
tableContainer.spec.tsx — horizontal scroll, attributes, children
tableFooter.spec.tsx — rendering, attributes, passthrough
tableHeader.spec.tsx — columns, sorting, attributes, children
textarea.spec.tsx — variants, controlled/uncontrolled, disabled, error, resize
tooltip.spec.tsx — orientations, viewport-aware flipping, hover, content
New provider specs (src/providers/__test__/) — 5 files:
drawerProvider.spec.tsx — open/close state, data passing, multiple independent keys
formProvider.spec.tsx — submission state, field values, context integration
modalProvider.spec.tsx — open/close state, data passing, multiple independent keys
placesProvider.spec.tsx — Google Maps API mock, initialization, context
toastProvider.spec.tsx — toast dispatch, types, duration, children rendering
Corrections to existing specs — 44 files updated for consistency in test descriptions, mock patterns, and assertions after introducing vitest.setup.ts and @testing-library/user-event.
-
@arkyn/components (styles)
Button/styles.css: background of the outline variant changed from var(--background-foreground) to var(--background-underground), improving visual contrast between the outlined button and the page background.
IconButton/styles.css: same fix applied to the outline variant of IconButton.
-
@arkyn/development
_app.css: exampleContainer.foreground updated to var(--background-underground). Dark mode CSS variables adjusted — --background, --background-underground, and --text-heading — for better contrast in the development playground pages.
Notes
- With this release,
@arkyn/components reaches approximately 92 spec files covering hooks, services, utilities, providers, and all public components in the library.
- The removal of
framer-motion from Popover completes the migration started in beta.184 (DrawerContainer) and beta.187 (ModalContainer). framer-motion remains a peerDependency and can still be used directly in consumer projects.
- The
HTMLElement.isContentEditable polyfill in vitest.setup.ts applies only to the jsdom test environment and has no effect in production.
- Version bumped across all packages (
@arkyn/components, @arkyn/server, @arkyn/shared, @arkyn/templates).
v3.0.1-beta.198
Date: 2026-07-01
Comprehensive test suite added to @arkyn/components, covering hooks, rich text services, utilities, and templates.
New
- Adds a dedicated Vitest configuration (
vitest.config.ts) for @arkyn/components: the @vitejs/plugin-react plugin with jsxRuntime: "automatic", resolve.mainFields: ["module"] for correct ESM export resolution, a jsdom environment to simulate the DOM, and configured timeouts (testTimeout, hookTimeout, teardownTimeout).
- Introduces 27 spec files across four domains in
@arkyn/components:
- Hooks (
src/hooks/__test__/): useAutomation, useDrawer, useForm, useHydrated, useModal, useScopedParams, useScrollLock, useSearchAutomation, useSlider, and useToast.
- Rich Text services (
src/services/__test__/): extractTextFromNode, isBlockActive, isMarkActive, maskCurrencyValues, toHtml, toRichTextValue, toggleBlock, and toggleMark.
- Templates (
src/templates/__test__/): badResponses, richTextTemplates, and successResponses.
- Utilities (
src/utils/__test__/): phoneInputUtilities and richTextUtilities.
Internal changes
- Adds
@testing-library/react, jsdom, vitest (via the workspace catalog:), and @types/is-hotkey as devDependencies of @arkyn/components.
- Updates
actions/setup-node from v4 to v5 in the beta CI workflow.
Notes
- This version introduces no changes to the components' public API. All added files are for testing (
*.spec.ts/tsx) and configuration (vitest.config.ts).
- Rich text tests cover internal services (
isBlockActive, toggleBlock, toHtml, etc.) that previously lacked automated coverage, reducing the risk of regression during future editor changes.
@types/is-hotkey has been added to devDependencies and will not be included in published packages (see the CI check added in beta.170).
- Version bumped across all packages (
@arkyn/components, @arkyn/server, @arkyn/shared, @arkyn/templates).
v3.0.1-beta.196
Date: 2026-06-30
Adds support for custom keyboard shortcuts in RichText and fixes minor color inconsistencies in form components.
New
- Adds support for customizable keyboard shortcuts in the RichText editor.
Improvements
- Simplifies RichText's internal state management, reducing unnecessary re-renders.
- Standardizes the color tokens used by RichText, aligning them with the rest of the Design System.
Fixes
- Fixes the color of the required-field indicator (asterisk) in
FieldError and FieldLabel, ensuring visual consistency with the rest of the system.
Internal changes
- Reorganizes Textarea's CSS without changing its appearance.
v3.0.1-beta.195
Date: 2026-06-30
Standardizes the background tokens used by Tab and Table, fixing visual inconsistencies between themes.
Improvements
- Standardizes the color token for Tab's active state.
- Updates the background tokens for Table's header and body, fixing contrast in customized themes. Anyone overriding the previous background variable to customize the table should review that customization.
v3.0.1-beta.194
Date: 2026-06-30
Visual adjustments to Slider and color standardization in Switch.
Improvements
- Refines the dimensions of the Slider's thumb and track for more consistency across sizes.
- Standardizes the colors of Switch's checked, unchecked, and disabled states.
v3.0.1-beta.193
Date: 2026-06-30
Fixes visual inconsistencies in RadioBox.
Fixes
- Fixes RadioBox's background and border colors in the checked and error states, standardizing them with the correct Design System tokens.
v3.0.1-beta.192
Date: 2026-06-30
PhoneInput now supports read-only mode.
New
- Adds support for the
readOnly prop on PhoneInput, allowing it to be used in read-only fields.
v3.0.1-beta.191
Date: 2026-06-30
Button and IconButton gain a new color scheme; PhoneInput becomes more efficient and receives global contrast adjustments.
New
- Adds the
"secondary" scheme to Button and IconButton, available across all variants.
Improvements
- Reduces unnecessary re-renders in PhoneInput by stabilizing the value-change handler.
- Adjusts the tooltip's color tokens and the input background for better contrast.
v3.0.1-beta.189
Date: 2026-06-30
Fixes the current-page button colors in Pagination.
Fixes
- Fixes the active page button colors in Pagination, ensuring proper contrast in both light and dark themes.
v3.0.1-beta.188
Date: 2026-06-30
Standardizes MultiSelect's colors.
Improvements
- Standardizes MultiSelect's color tokens — container, selection indicator, and options list — aligning them with the rest of the system.
v3.0.1-beta.187
Date: 2026-06-30
ModalContainer now uses native CSS animations instead of framer-motion, following the same path already adopted by DrawerContainer.
Improvements
- Replaces framer-motion with native CSS animations in ModalContainer, removing this component's runtime dependency.
- Fixes ModalContainer's background token to the correct Design System value.
Fixes
- Adds a missing style rule for DrawerHeader's close button default state.
Internal changes
- Minor style adjustment in ImageUpload.
v3.0.1-beta.186
Date: 2026-06-30
Standardizes the background tokens across all of FullCalendar's sub-components.
Improvements
- Standardizes the background tokens used by FullCalendar — header, containers, and events across the day, week, and month views — including the blocked-time state.
v3.0.1-beta.185
Date: 2026-06-30
Fixes FileUpload's background, which was showing an unexpected color in the drop area.
Fixes
- Fixes FileUpload's drop-area background to use the correct neutral token for input fields, instead of a spotlight color that produced an unintended colored background.
Internal changes
- Removes an unused import in FileUpload.
- Reformats development-package files, with no functional changes.
v3.0.1-beta.184
Date: 2026-06-30
DrawerContainer migrates to native CSS animations, removing this component's framer-motion dependency.
Improvements
- Replaces framer-motion with native CSS animations in DrawerContainer, fixing a known race condition in the exit animation.
- Fixes DrawerContainer's background token.
- Adjusts DrawerHeader's close-button transition to only apply on hover, avoiding an unnecessary transition on mount.
v3.0.1-beta.183
Date: 2026-06-30
Substantially expands the internal development package with demo routes for nearly every component in the library, plus minor visual fixes.
Fixes
- Spacing and border adjustments in AudioPlayer, AudioUpload, Button, and Calendar.
- Fixes an invalid HTML structure that calendar table cells could produce in certain cases.
Internal changes
- Adds 20+ new demo routes to the development package, covering media, forms, calendars, table, and tabs.
- Improves navigation and organization of the development app.
v3.0.1-beta.182
Date: 2026-06-30
Fixes visual inconsistencies in Select and border adjustments in CurrencyInput and MaskedInput.
Fixes
- Fixes visual inconsistencies across Select's outline, solid, and underline variants — background, border, hover/focus states, shadow, and the options container's rounded corners.
- Fixes the missing top border on the underline variant of CurrencyInput and MaskedInput.
Internal changes
- Adds a Select demo route with searchable variants to the development package.
v3.0.1-beta.181
Date: 2026-06-30
Standardizes MaskedInput's colors.
Improvements
- Standardizes MaskedInput's border, text, and background colors across all states.
Internal changes
- Adds a MaskedInput demo route.
v3.0.1-beta.180
Date: 2026-06-30
Standardizes CurrencyInput's colors.
Improvements
- Standardizes CurrencyInput's border, text, and background colors across all states.
Internal changes
- Adds a CurrencyInput demo route.
v3.0.1-beta.179
Date: 2026-06-30
Expands Input's demo examples.
Internal changes
- Adds examples of
prefix, suffix, leftIcon, and rightIcon to Input's demo route.
v3.0.1-beta.178
Date: 2026-06-30
Fixes color tokens in Checkbox and Input.
Fixes
- Fixes Checkbox's color and background tokens in the default, checked, error, and disabled states.
- Reviews Input's background and border tokens to ensure proper contrast in both light and dark themes, with a specific adjustment to the underline variant's focus state.
Internal changes
- Adds demo routes for Checkbox and Input.
v3.0.1-beta.177
Date: 2026-06-30
Standardizes IconButton's colors.
Improvements
- Standardizes IconButton's colors across all states and variants.
Internal changes
- Adds an IconButton demo route.
v3.0.1-beta.176
Date: 2026-06-30
Updates CardTab's background tokens.
Improvements
- Updates the background tokens for CardTab's button and container, replacing fixed values with system variables.
Internal changes
- Adds a CardTab demo route.
v3.0.1-beta.175
Date: 2026-06-30
Refines Button's visuals for more consistent feedback across states.
Improvements
- Revises Button's alignment, spacing, and hover states, fixing specific issues in the invisible variant and the disabled state.
Internal changes
- Adds a Button demo route.
- Renames the Badge demo route to correctly reflect its content.
v3.0.1-beta.174
Date: 2026-06-30
Standardizes Alert's prop naming and expands Badge's CSS.
Improvements
- Expands and refines Badge's CSS, covering every variant-and-scheme combination more precisely.
Internal changes
- Removes obsolete tests and snapshots for Badge and Button — they will be rewritten.
Breaking Changes
⚠️ This version contains Breaking Changes.
v3.0.1-beta.173
Date: 2026-06-30
Introduces the internal @arkyn/development package, a playground for viewing components in a real environment, and refines Alert's colors.
New
- Introduces the
@arkyn/development package as a development and preview environment for the library's components. It is not published to NPM and does not affect consumers.
Improvements
- Refines Alert's background, border, and icon colors to use foreground tokens, improving its appearance in customized themes.
Pending version (post-beta.196)
Date: 2026-06-30
Record of a color fix in FieldError and FieldLabel that, at the time this changelog was originally written, had not yet received a version number. This change is already included in v3.0.1-beta.196 and is kept here only for historical completeness.
Fixes
- Fixes the required-field asterisk color in
FieldError and FieldLabel (already reflected in v3.0.1-beta.196).
v3.0.1-beta.172
Date: 2026-06-29
Development environment configuration adjustments (VSCode and Biome) and style fixes in Badge, Button, Popover, and Table.
Fixes
- Adds missing styles for Table's empty state, fixing the alignment of the text shown when there are no records.
Internal changes
- Reorders the CSS rules in Badge, Button, Popover, and Table, with no visual impact.
- Adds VSCode workspace configuration and Biome rule adjustments for the development team.
v3.0.1-beta.171
Date: 2026-06-29
Type-safety sweep across the monorepo, with minor behavior fixes in Pagination and Slider.
Fixes
- Fixes a React key warning in Pagination, avoiding reconciliation issues when navigating between pages.
- Stabilizes Slider's drag handlers, avoiding stale-state bugs during dragging.
- Fixes FacebookPixel's return value and GoogleAnalytics's return type to correctly reflect their behavior outside production.
Internal changes
- Replaces implicit
any annotations with explicit, intentional typings across several components, services, and utilities in the components, server, and shared packages.
v3.0.1-beta.170
Date: 2026-06-28
Modernizes the monorepo's infrastructure: CI/CD pipeline, package exports, dependency management, and automated versioning.
Improvements
- Enables more granular tree-shaking through per-module exports in every package.
Internal changes
- Implements an automated publishing pipeline — build, tests, security audit, and publish — via GitHub Actions.
- Adds automatic version generation and release scripts (beta, patch, minor, major).
- Introduces Biome as the lint and formatting tool across the monorepo, along with Dependabot for dependency updates.
Breaking Changes
⚠️ This version contains Breaking Changes.
v3.0.1-beta.148
Date: 2026-06-23
Adds controlled-value support to FullCalendar and Calendar, unifying the prop naming between the two components.
New
- Adds support for a controlled value (
value) and controlled navigation (viewValue / defaultViewValue) in FullCalendar and Calendar.
Improvements
- Standardizes the border-radius of FullCalendar's view containers.
Breaking Changes
⚠️ This version contains Breaking Changes.
v3.0.1-beta.147
Date: 2026-06-23
Refines FullCalendar's API with support for blocked time slots and date-cell clicks, and completes the orientation standardization across form components.
New
- Adds support for blocked time slots and ranges in FullCalendar via the
blockedTimestamps prop.
- Adds the
onClickDate prop, allowing you to react to clicks on an available date cell in any calendar view.
Fixes
- Fixes click propagation on FullCalendar events, preventing a click on an event from also triggering the underlying cell's selection.
Improvements
- Standardizes the default orientation to vertical in ImageUpload, MultiSelect, RadioGroup, RichText, and Select, completing the alignment started with PhoneInput. Anyone relying on the horizontal layout must pass
orientation="horizontal" explicitly.
Breaking Changes
⚠️ This version contains Breaking Changes.
v3.0.1-beta.146
Date: 2026-06-13
Introduces the FullCalendar component, with day, week, and month views.
New
- Introduces the FullCalendar component, with three views (day, week, and month), scheme-colored events, and navigation between periods.
v3.0.1-beta.145
Date: 2026-06-13
Fixes PhoneInput's default orientation.
Fixes
- Fixes PhoneInput's default orientation from horizontal to vertical, aligning it with the layout convention used by the other form components. Anyone relying on the horizontal layout must pass
orientation="horizontal" explicitly.
v3.0.1-beta.144
Date: 2026-06-13
Full JSDoc coverage across all packages and design-token refinements.
Improvements
- Refines the Design System's color tokens: a new gray scale for backgrounds and text, and
-light variants for every color scheme.
Internal changes
- Adds full JSDoc documentation to every component, hook, provider, and service in the library.
v3.0.1-beta.143
Date: 2026-06-11
Fixes visual details in Button and IconButton, and redesigns CardTab.
Fixes
- Fixes the outline variant's background color in Button and IconButton for correct surface contrast.
Improvements
- Redesigns CardTab with a "pill" container look and new hover/active states with a white background and visible border.
v3.0.1-beta.142
Date: 2026-06-10
A targeted fix to the publishing of the previous version (beta.141), with no code changes.
v3.0.1-beta.141
Date: 2026-06-10
Standardizes the rendering of form fields (label, wrapper, and error) and improves response-automation behavior.
New
- Adds support for
unShowFieldTemplate and orientation across every refactored form component.
Improvements
- Introduces a shared internal service (FieldTemplate) to centralize FieldWrapper, FieldLabel, and FieldError rendering, reducing duplication across Checkbox, CurrencyInput, ImageUpload, Input, MultiSelect, PhoneInput, RadioGroup, RichText, Select, and Switch.
- Improves
useAutomation's behavior: adds automatic scrolling to the field with an error and prioritizes showing the first field error in toasts.
v3.0.1-beta.140
Date: 2026-06-09
Incremental documentation update.
New
- Adds documentation for the Calendar component.
v3.0.1-beta.139
Date: 2026-06-02
First official stable version of the documented ecosystem.
New
- Consolidates the official documentation for components, hooks, providers, and services across every package (
@arkyn/components, @arkyn/server, @arkyn/shared, @arkyn/templates).