arkynChangelogGuides
arkyn
docs / changelogs / v301-beta

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 templatessharedcomponentsserver, matching the packages' real dependency order (previously ran componentsserversharedtemplates, 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-motionmotion.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 fixedChildren.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 preventedsrc={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
    • vitest.setup.ts created with two responsibilities:
      • Imports @testing-library/jest-dom/vitest to enable matchers such as toBeInTheDocument, toHaveClass, toBeDisabled, and others across all specs.
      • Polyfills HTMLElement.isContentEditable — jsdom does not implement this property, which Slate/slate-react uses internally to identify the contenteditable element of the editor. Without it, focus, blur, beforeinput, and typing events inside RichText silently never fire in the test environment. The polyfill walks the ancestor tree looking for the contenteditable attribute and returns true or false accordingly.
    • vitest.config.ts: added setupFiles: ["./vitest.setup.ts"] so the setup file runs before every spec.
    • New devDependencies:
      • @testing-library/jest-dom@^6.9.1 — custom DOM assertion matchers
      • @testing-library/user-event@^14.6.1 — realistic user interaction simulation (typing, clicking, focusing)
    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).
On this page