# Changelog

## 21.0.14

### Patch Changes

- f88bab0: Update Ankhorage dependencies: `@ankhorage/surface`.

## 21.0.13

### Patch Changes

- 4504e86: Retry GraphView's pending initial fit when the container first becomes usable after a zero-size layout mount.

## 21.0.12

### Patch Changes

- 5484db6: Update Ankhorage dependencies: `@ankhorage/contracts`, `@ankhorage/surface`.

## 21.0.11

### Patch Changes

- d36063d: Keep compact ListItem titles on one line so dense sidebar rows remain height-stable.

## 21.0.10

### Patch Changes

- ebb74d7: Expose Surface-owned equal-width tab filling and trailing tab content through the canonical ZORA Tabs boundary.

## 21.0.9

### Patch Changes

- 0d84538: Compact GraphView spacing around renderer-measured label readability bounds while preserving compound group separation.

## 21.0.8

### Patch Changes

- 3632fe4: Update Ankhorage dependencies: `@ankhorage/utility`.

## 21.0.7

### Patch Changes

- 99ef629: Expose the active ZORA theme runtime alongside the materialized web ZoraProvider so external renderers can consume the same theme mode and resolved semantic tokens.

## 21.0.6

### Patch Changes

- e884fb4: Update Ankhorage dependencies: `@ankhorage/surface`.

## 21.0.5

### Patch Changes

- 3fe0b60: Update Ankhorage dependencies: `@ankhorage/contracts`.

## 21.0.4

### Patch Changes

- 704dcca: Update Ankhorage dependencies: `@ankhorage/surface`.

## 21.0.3

### Patch Changes

- 0368e36: Update Ankhorage dependencies: `@ankhorage/contracts`.

## 21.0.2

### Patch Changes

- 1108e6a: Update Ankhorage dependencies: `@ankhorage/surface`.

## 21.0.1

### Patch Changes

- a9b8d75: Forward constrained layout props through Tabs and TabPanel to the released Surface owner contract.

## 21.0.0

### Major Changes

- 163c605: Materialize web components with one shared ZoraProvider runtime and add project-scoped create/sync reconciliation.

## 20.5.1

### Patch Changes

- d2308a3: Recover uniformly cramped GraphView layouts when an explicit optimized fit detects overlapping node or label bounds.

## 20.5.0

### Minor Changes

- e5796f8: Add opt-in readable graph zoom bounds and an automatic-fit label-size cap. Explicit fit can compact settled node positions with bounded measured collision checks, preserving compound containment, node sizes, edges and layout ordering. Report the accepted spacing to controlled consumers without relayout on acknowledgement. Ordinary zoom never compacts or reruns the layout.

## 20.4.1

### Patch Changes

- 02d52d8: Size GraphView self-loops around actual node bounds so wide labels and compound nodes retain valid edge endpoints. Default TreeView expansion controls to folder icons while keeping chevrons configurable.

## 20.4.0

### Minor Changes

- 7a2dfec: Add opt-in fit-relative GraphView zoom and renderer-measured plain-label sizing. Keep logical zoom stable across layout spacing changes without repeating text measurement on viewport events. Move TreeView expansion controls before labels and allow chevron or folder/file indicators independently of selection.

## 20.3.8

### Patch Changes

- 0f5c8ea: Isolate asynchronous ELK layouts from disposed or superseded browser graphs, preserve node selection and positions during updates, avoid relayout for presentation-only changes, and refit changed graph topology after layout completion.

## 20.3.7

### Patch Changes

- 1da4532: Make materialized public web components install their responsive runtime inside each standalone
  bundle so generated AppBar, typography, form, and navigation artifacts render without consumer-side
  Surface providers.

## 20.3.6

### Patch Changes

- 7a99f2c: Update Ankhorage dependencies: `@ankhorage/surface`.

## 20.3.5

### Patch Changes

- 2c51405: Update Ankhorage dependencies: `@ankhorage/contracts`, `@ankhorage/surface`.

## 20.3.4

### Patch Changes

- 8d6a5b3: Keep GraphView ELK browser-safe by adapting the source layout class to Cytoscape's function-style extension contract and reject leaked CommonJS runtime dependencies from generated web artifacts.

## 20.3.3

### Patch Changes

- e34f1b0: Fix the materialized GraphView ELK layout by registering the transpiled Cytoscape adapter instead of its native-class source entry.

## 20.3.2

### Patch Changes

- 2ab43e2: Preserve GraphView zoom and pan across subsequent layout generations such as layout-spacing changes, while retaining the initial automatic fit and explicit controller-driven fitting.

## 20.3.1

### Patch Changes

- d3432fb: Restore GraphView to generic web artifact discovery through its canonical feature facade.

## 20.3.0

### Minor Changes

- 2f745fe: Discover public runtime exports under `src/features/**/public.ts` automatically and publish each
  one as a materializable standalone web artifact, while preserving specialized TreeView and GraphView
  browser adapters by convention.

## 20.2.5

### Patch Changes

- b051a4d: Update Ankhorage dependencies: `@ankhorage/surface`.

## 20.2.4

### Patch Changes

- 03ccf1d: Update Ankhorage dependencies: `@ankhorage/surface`.

## 20.2.3

### Patch Changes

- e1263fd: Update Ankhorage dependencies: `@ankhorage/contracts`.

## 20.2.2

### Patch Changes

- d46bab4: Make the materialized GraphView artifact consumable by Next/Turbopack by hoisting its client directive and bundling the browser-safe ELK adapter.

## 20.2.1

### Patch Changes

- 38db5b8: Update Ankhorage dependencies: `@ankhorage/contracts`, `@ankhorage/surface`.

## 20.2.0

### Minor Changes

- 25d5ed9: Add a materializable Cytoscape-backed GraphView web artifact with centralized layout/viewport ownership and optional rich React node rendering.

## 20.1.6

### Patch Changes

- 26392c2: Update Ankhorage dependencies: `@ankhorage/contracts`, `@ankhorage/devtools`, `@ankhorage/surface`, `@ankhorage/utility`.

## 20.1.5

### Patch Changes

- e6ad1ed: Update Ankhorage dependencies: `@ankhorage/surface`.

## 20.1.4

### Patch Changes

- 86d9f96: Update Ankhorage dependencies: `@ankhorage/contracts`.

## 20.1.3

### Patch Changes

- 2f71f5f: Update Ankhorage dependencies: `@ankhorage/surface`.

## 20.1.2

### Patch Changes

- 4a879e2: Update Ankhorage dependencies: `@ankhorage/contracts`, `@ankhorage/surface`, `@ankhorage/utility`.

## 20.1.1

### Patch Changes

- c9f2c5d: Emit web-only component artifacts with React's production JSX runtime so Next.js SSR consumers can prerender them safely.

## 20.1.0

### Minor Changes

- e915d65: Add Ankh CLI web-only component materialization, starting with TreeView, and wire TreeView default-row selection and icons.

## 20.0.2

### Patch Changes

- 58395d6: Update Ankhorage dependencies: `@ankhorage/contracts`, `@ankhorage/surface`.

## 20.0.1

### Patch Changes

- 61dec14: Update Ankhorage dependencies: `@ankhorage/color-theory`, `@ankhorage/contracts`, `@ankhorage/paradox`.

## 20.0.0

### Major Changes

- 6fbcac7: Migrate published component requirement metadata to the canonical Contracts 22 serializable set representation.

## 19.0.1

### Patch Changes

- f223d26: Migrate theme scoping and color catalogs to the public Surface v9 boundaries, use Utility's canonical deep equality helper, and normalize source ownership for theme, authoring, plugin, registry, and reusable types.

## 19.0.0

### Major Changes

- 5aaa4ae: Eliminate the legacy `src/patterns` ownership root. Move retained capabilities under canonical `src/features` owners, replace `SwitchField` with the Surface-aligned `Switch` API, and remove redundant convenience APIs including `ConfirmDialog`, `FilterBar`, `InspectorField`, `Notice`, `Panel`, and `ThemeComposer`.

## 18.0.1

### Patch Changes

- a68a5fc: Migrate interactive ZORA consumers from the removed Surface `ButtonBase` API to the native-aligned `Pressable` API and require `@ankhorage/surface` 8.

## 18.0.0

### Major Changes

- 57e6020: Align form and list capabilities with Surface 7. Rename FormField to Field and ListRow to ListItem, move list ownership into src/features/list, and compose Surface Field, List, and ListItem directly without compatibility aliases.

## 17.0.0

### Major Changes

- ecc165a: Adopt the released Surface 6 native-named layout boundary. `View`, `ScrollView`, `Grid`, and `Divider` are the canonical ZORA layout primitives, while `AppShell`, `Screen`, and `ScreenSection` now live under the layout feature.

  Remove the redundant `Box`, `Stack`, `Container`, `Center`, `Inline`, `Spacer`, and `Show` exports together with the specialized `SettingsLayout`, `SidebarLayout`, and `TopbarLayout` wrappers. Replace `TileGrid` with `Grid` and `SettingsRow` with `ListRow`; `ContentRail` and `PaletteItem` retain their public names under dedicated feature owners.

  Update the component registry, authoring metadata, examples, acceptance coverage, and generated Paradox documentation for the new Surface 6 architecture.

## 16.0.0

### Major Changes

- 08a7095: Finish ZORA feature ownership by replacing `Modal` with `Dialog`, `SearchBar` with `SearchInput`, removing `ToolbarAction`, rebuilding Tabs on the released Surface tab primitives, and migrating Pagination, Rating, and Toolbar out of `src/components`.

## 15.0.0

### Major Changes

- 3add861: Adopt `@ankhorage/surface` 5, replace `Menu` and `DropdownMenu` with `PopoverMenu`, make AppBar overflow a real action menu, migrate Breadcrumbs and Select to feature ownership and direct manifest nodes, and present Select with Popover on web and BottomSheetFlatList on native without `@react-native-picker/picker`.

## 14.0.1

### Patch Changes

- be83fc0: Move AppBar into canonical `src/features/app-bar` ownership while preserving the public root API, and expand the Paradox Usage source with toast, adaptive picker, and direct native BottomSheet examples.

## 14.0.0

### Major Changes

- 1b21ad4: Make toast and native bottom-sheet runtime hosts explicit `ZoraProvider` capabilities, migrate Toast to feature ownership, and render DatePicker/TimePicker through platform-specific hosts with BottomSheet on native and Popover on web.

  BREAKING CHANGE: `ZoraProvider` no longer installs `BottomSheetProvider` automatically. Native apps using BottomSheet-backed interactions must enable `<ZoraProvider bottomSheet>`. Enable `<ZoraProvider toast>` or pass toast provider options when descendants use `useToast()`.

## 13.0.0

### Major Changes

- c2e5080: Replace the legacy `DisclosureSection` pattern with feature-owned `Accordion` and `AccordionItem` manifest components backed by the published Surface accordion foundation.

  BREAKING CHANGE: `DisclosureSection` and `DisclosureSectionProps` are no longer exported. Use `Accordion` with one or more `AccordionItem` children instead.

## 12.1.0

### Minor Changes

- ca23e34: Move the complete Auth solution and Gradient to canonical feature ownership.

  ForgotPasswordForm, OtpForm, SignInForm, SignUpForm, OAuthProviderButton, OAuthProviderList, and Gradient are now direct manifest nodes with serializable authoring metadata. Gradient remains renderer-agnostic through GradientRendererProvider.

## 12.0.0

### Major Changes

- b8d1281: Move DatePicker, TimePicker, Hero, MissingElement, and the Skeleton loading building blocks to canonical feature ownership.

  DatePicker and TimePicker are now direct manifest nodes backed by the shared Surface BottomSheet controller. DatePicker values, bounds, and change events now use local `YYYY-MM-DD` strings instead of `Date` objects so manifest state remains JSON serializable.

  Skeleton components are now direct manifest nodes for custom loading layouts. DataTable also continues to render SkeletonList automatically while loading.

## 11.0.0

### Major Changes

- 70a48ec: Replace the config-driven `Form` API with compositional `Form`, `FormField`, and `FormError` manifest nodes under canonical feature ownership.

  `Form` now accepts `FormField` and global `FormError` children instead of `fields`, `values`, `onChange`, `errors`, `error`, and `footer`. Compose each control explicitly inside a `FormField`, keep field errors on `FormField.errorText`, and place global submission errors directly inside `Form`. The submit callback no longer receives values; controlled field state remains owned by the consumer.

  Email rules now use the shared `@ankhorage/utility/regex` validation semantics.

## 10.0.0

### Major Changes

- 8e3d5db: Add a manifest-authorable KeyboardAvoidingView feature backed by the Surface layout primitive, and
  remove the obsolete React-rendered SplashScreen API.

## 9.0.1

### Patch Changes

- 558c64e: Use package metadata as the default Paradox documentation title and description.

## 9.0.0

### Major Changes

- bb78e49: Move EmptyState and progress nodes to feature owners, add form and feedback manifest nodes, and replace the Input and Textarea APIs with TextInput configurations.

## 8.0.0

### Major Changes

- 0ee7355: Move selected UI elements into cohesive feature owners and complete their manifest authoring metadata and bindings. Add native FlatList and SectionList adapters, a declarative BottomSheet, controlled Uploader action events, and intrinsic-width ContentRail scrolling for chips and mixed content.

## 7.0.0

### Major Changes

- 75d39e6: Replace `ImagePreview` and `ImageUploadField` with the canonical `Image` asset renderer and generic `Uploader`, backed by Expo image and document pickers.

## 6.0.0

### Major Changes

- 8ceb824: Integrate the Surface 4 BottomSheet runtime into `ZoraProvider`, expose the supported controller API
  through `@ankhorage/zora/bottom-sheet`, migrate the date and time pickers, and remove the obsolete
  `ActionSheet` and `ActionSheetItem` exports. Expo hosts must now install the gesture-handler,
  Reanimated, and Worklets peers and own `GestureHandlerRootView` outside `ZoraProvider`.

## 5.0.0

### Major Changes

- 44914bc: Remove obsolete navigation and UI chrome APIs now owned by `@ankhorage/navigator`: `Drawer`,
  `NavigationItem`, `NavigationList`, `ResponsivePanel`, `ZoraDrawerContent`, and `ZoraTabBar`.

## 4.5.0

### Minor Changes

- f53e341: Add SVG icon options, equal-width columns and content orientation to RadioGroup. Support local initial selection through defaultValue, accessible icon radio controls on web and native, and a directly insertable Radio button group blueprint for Studio.

## 4.4.1

### Patch Changes

- 0349716: Allow manifest-authorable RadioGroup nodes inside the canonical screen and container composition contract.

## 4.4.0

### Minor Changes

- 037b931: Make RadioGroup manifest-authorable with normalized value bindings and events, and add a card-style presentation that preserves single-choice radio semantics.

## 4.3.0

### Minor Changes

- 2007c3d: Add the canonical ZORA plugin descriptor and deterministic runtime/authoring catalog composer.

### Patch Changes

- f203d10: Update Ankhorage dependencies: `@ankhorage/surface`.
- 6182ab7: Update Ankhorage dependencies: `@ankhorage/contracts`.
- 31c23d2: Update Ankhorage dependencies: `@ankhorage/contracts`.

## 4.2.3

### Patch Changes

- bb3eccb: Update Ankhorage dependencies: `@ankhorage/surface`.

## 4.2.2

### Patch Changes

- de3246c: Update Ankhorage dependencies: `@ankhorage/contracts`.

## 4.2.1

### Patch Changes

- de3246c: Update Ankhorage dependencies: `@ankhorage/contracts`.

## 4.2.0

### Minor Changes

- 3dbdeb2: Allow standalone media-backed Icon nodes and permit Icon and Image in screen containers so generated templates can use their separate SVG and raster assets.

## 4.1.0

### Minor Changes

- 39967b9: Expose SVG `source` rendering through the existing ZORA `Icon` component.

## 4.0.0

### Major Changes

- 92c375f: Add a pure `@ankhorage/zora/theme` compiler that returns canonical Color Theory evidence, resolved Surface semantics, measurable selection results, diagnostics, and provenance for both theme modes. Replace the previously unconstructed computed-theme type shape with the compiler's real result.

## 3.3.4

### Patch Changes

- ea5a57d: Update Ankhorage dependencies: `@ankhorage/surface`.

## 3.3.3

### Patch Changes

- 9342fb9: Update Ankhorage dependencies: `@ankhorage/color-theory`, `@ankhorage/contracts`, `@ankhorage/surface`.

## 3.3.2

### Patch Changes

- 55bae01: Add the manifest-authorable, release-blocking `MissingElement` draft pattern and metadata policy.

## 3.3.1

### Patch Changes

- 0295f82: Update Ankhorage dependencies: `@ankhorage/surface`.

## 3.3.0

### Minor Changes

- 62c1c68: Add a manifest-authorable ContentRail pattern with responsive item sizing, touch scrolling, accessible controls, RTL behavior, and reduced-motion support.

## 3.2.0

### Minor Changes

- ff90f8c: Add a manifest-authorable, accessible ProgressRing with semantic colors and serializable center content.

## 3.1.1

### Patch Changes

- 49c768e: Update Ankhorage dependencies: `@ankhorage/surface`.

## 3.1.0

### Minor Changes

- 10bf7ac: Add the adapter-neutral, manifest-authorable `ReaderSurface` for controlled EPUB and PDF reader experiences, including normalized events, progress and navigation chrome, renderer/action slots, bindable metadata, accessible live page announcements, and a static showcase example.

## 3.0.2

### Patch Changes

- 52d0916: Update `@ankhorage/surface` to include the Web overlay pointer-interaction fix.

## 3.0.1

### Patch Changes

- 7e0ae67: Support the React Native 0.86 patch line as a peer, consume the released Surface peer fix, and align ZORA's validation and Expo 57 examples with React Native 0.86.3.

## 3.0.0

### Major Changes

- 060451e: Move ZORA to the React 19.2.3, React Native 0.86.2, React Native Web 0.21, and
  Surface 3 platform. Icons now use Surface's discriminated scoped-RNVI contract,
  including explicit FontAwesome5/6 variants, and Expo vector-icon/font peers are
  removed.

  Gradient rendering is now host-injected through `GradientRendererProvider`, so
  the portable ZORA runtime no longer requires `expo-linear-gradient`. Expo apps
  can adapt that package at their application boundary.

## 2.13.2

### Patch Changes

- 954029e: Add an explicit fill sizing mode to SidebarLayout so bounded shells can preserve child-owned
  scrolling while existing content-flow layouts keep their current behavior.

## 2.13.1

### Patch Changes

- 400863f: Define Screen scroll ownership explicitly: normal screens own scrolling, while `scroll={false}` preserves a bounded viewport for child-owned scroll and gesture surfaces. Require `@ankhorage/surface` 2.2.1 or newer so Stack preserves direct-child flex and min-size semantics throughout that viewport chain.

## 2.13.0

### Minor Changes

- 04e4124: Make Image a first-class manifest-authoring node backed by canonical media metadata, with image-kind constraints and shared static metadata across the standard and bindable registries.

## 2.12.0

### Minor Changes

- 7524b66: Resolve canonical persisted theme recipe overrides through ZORA-owned metadata, preserve full ThemeConfig across theme scopes, and make explicit component props override inherited recipe defaults without pinning theme-owned values into new manifest blueprints.

## 2.11.0

### Minor Changes

- b7ae65d: Make ThemeModeToggle manifest-authorable by registering it in the runtime component registry, publishing static authoring metadata, and supporting interaction-policy injection.

## 2.10.0

### Minor Changes

- 3c1f70f: Add a reusable `ThemeModeToggle` that switches the canonical ZORA light/dark runtime mode with accessible sun/moon affordances.

## 2.9.3

### Patch Changes

- 72f5814: Classify Heading content and semantics for instance authoring while keeping visual presentation under component theme authority.

## 2.9.2

### Patch Changes

- 2f1bf27: Add canonical prop authoring authority metadata and a separate ZORA-owned component and pattern theme recipe metadata registry.

## 2.9.1

### Patch Changes

- 8a9cd02: Update packages
- f63b36a: update packages

## 2.9.0

### Minor Changes

- a561fbb: Enforce uniform `interactionPolicy` support across all public registry components, with a compile-time contract invariant, and correct `ConfirmDialog` to forward callbacks unchanged.

## 2.8.7

### Patch Changes

- 45cd65a: Make the public ZORA component registry type readonly and verify the actual registry object in tests.

## 2.8.6

### Patch Changes

- 2c162c8: Export the canonical ZORA component registry for runtime renderer composition.

## 2.8.5

### Patch Changes

- 355af5a: Update SURFACE with the color inverse fix where e.g. Tooltip showed black on black (not readable)

## 2.8.4

### Patch Changes

- a77e5bd: Fix DatePicker, ThemeComposer, and form controller state synchronization to comply with React Hooks correctness rules without disabling lint checks.

## 2.8.3

### Patch Changes

- f443bc1: update DEVTOOLS

## 2.8.2

### Patch Changes

- 4be3f5b: Require the native modules that are always reachable from the root Zora entrypoint instead of describing them as optional integrations.

## 2.8.1

### Patch Changes

- 65f2008: Tmp installation of expo-linear-gradient package before extraction of gradient plugin

## 2.8.0

### Minor Changes

- be736ad: Add a generic ProductCard pattern for commerce and catalog items.

## 2.7.3

### Patch Changes

- 3155142: Update CONTRACTS

## 2.7.2

### Patch Changes

- d84eb54: Fix `DisclosureSection` header interaction and long-description layout so the main header area toggles open/closed, long text wraps, and the trailing chevron remains visible.

## 2.7.1

### Patch Changes

- 8ebfa92: Update CONTRACTS

## 2.7.0

### Minor Changes

- 17287a0: Add ZORA scanner UI patterns: BarcodeScannerView, CameraPermissionView, and ScanOverlay.

## 2.6.1

### Patch Changes

- 77fa4f9: Register `Progress` as a direct manifest-capable ZORA component with serializable metadata props and blueprint defaults.

## 2.6.0

### Minor Changes

- 4687a8a: Add reusable OAuth provider button and list auth patterns.

## 2.5.5

### Patch Changes

- 64282a1: Add Gradient and SplashScreen components for branded loading and preview surfaces.

## 2.5.4

### Patch Changes

- eab78b8: Add a canonical basic app usage example for generated documentation and configure Paradox to render it from real source.

  The example demonstrates the intended ZORA app root composition with `ZoraProvider`, `AppShell`, `AppBar`, `Screen`, and `ScreenSection`, and the Expo showcase now aligns its shell header with the same `AppBar`-based structure.

## 2.5.3

### Patch Changes

- 66fe27e: Add Paradox `@readme` coverage for the full public ZORA UI surface.

## 2.5.2

### Patch Changes

- 1db1f4b: Add initial Paradox `@readme` comments for core ZORA README exports.

## 2.5.1

### Patch Changes

- 900e0d0: Add semantic `size` and `scroll` props to `ResponsivePanel` for wider and scrollable panel use cases.

## 2.5.0

### Minor Changes

- a61d3ea: Add serializable bindable component metadata exports for core ZORA components using shared UI metadata contracts.

## 2.4.8

### Patch Changes

- 56ab2a9: Add a Breadcrumbs component for app-facing route hierarchy and navigation context.

## 2.4.7

### Patch Changes

- f27ce51: Add a controlled Pagination component for paged app data screens.

## 2.4.6

### Patch Changes

- 884095d: Add DatePicker and TimePicker components backed by existing ZORA ActionSheet primitives.

## 2.4.5

### Patch Changes

- 9db4949: Add DataTable for typed app-facing tabular data with row actions, sorting state, loading, empty, and responsive layouts.

## 2.4.4

### Patch Changes

- 50c9679: Expose Surface-backed Menu, DropdownMenu, ActionSheet, and ActionSheetItem components.

## 2.4.3

### Patch Changes

- 2c47d0b: Align Notice metadata with its public color prop.

## 2.4.2

### Patch Changes

- a1934d8: Add Skeleton loading primitives for placeholder card, list, and text states.

## 2.4.1

### Patch Changes

- 2fdb077: Expose a ZORA Toast API backed by the existing Surface Toast implementation.

## 2.4.0

### Minor Changes

- 3c5b384: Remove raw `style` and `bodyStyle` escape hatches from `AppShell`. AppShell remains a structural app frame; layout customization should happen through composed ZORA primitives instead of arbitrary root/body style overrides.

## 2.3.0

### Minor Changes

- 8810525: Add `ButtonGroup` for grouped action layouts such as dialog footers, form actions, card footers, and responsive mobile action stacks.

## 2.2.0

### Minor Changes

- f4d075b: Remove `AuthLayout` from the public API. Compose focused auth or onboarding screens directly with existing layout primitives such as `Center`, `Card`, and `Stack`.

## 2.1.0

### Minor Changes

- cc3d18a: Add component event metadata types and initial event descriptors for form submit, button press, and collection item press events.

## 2.0.0

### Major Changes

- b832d62: Replace ZORA `tone` APIs with Surface-derived `color` and `emphasis` models across components, patterns, and recipes.

  Breaking changes:
  - Removed `ZoraTone` from the public API.
  - Added Surface-derived public color model exports:
    - `ZoraPaletteColor`, `ZoraStatusColor`, `ZoraColor`, `ZoraEmphasis`
    - `ZORA_PALETTE_COLORS`, `ZORA_STATUS_COLORS`, `ZORA_COLORS`, `ZORA_EMPHASES`
  - Updated semantic props from `tone` to `color` for components and patterns that select semantic color roles.
  - Updated text-like APIs to use `emphasis` for content contrast.

  Migration:
  - Replace semantic `tone` props with `color`.
  - Replace text/heading contrast values (`default`, `muted`, `subtle`, `inverse`) to `emphasis`.
  - Keep `tone` only where it represents card-style visual treatment (`ZoraCardTone`).

### Patch Changes

- 02629b6: Update SURFACE

## 1.5.1

### Patch Changes

- 07e9d96: Improve realistic example app chrome by adding compact AppBars with dark-mode toggles, applying semantic Screen backgrounds, and fixing native ZoraTabBar icon/label rendering.

## 1.5.0

### Minor Changes

- f3c2822: Replace the web-oriented `Page` / `PageHeader` / `PageSection` layout model with the native-app-oriented `Screen` / `ScreenSection` model.

  `Screen` is the default scroll owner for normal app screens, while `AppBar` owns the active screen title and screen-level actions. `ScreenSection` replaces page sections as the content grouping primitive inside app screens.

## 1.4.12

### Patch Changes

- 6220959: Add realistic category-based example apps and a scaffold script for creating real Expo Router + React Native Web + ZORA apps.

  The new examples live under `examples/<app-category>/<example-id>/` and use real Expo Router route files, real tab navigation through `ZoraTabBar`, and ZORA-only UI without `StyleSheet`, direct Surface imports, or local styling workaround layers.

  Included examples:
  - `social_community/community-feed`
  - `social_community/photo-social`
  - `social_community/private-messaging`
  - `social_community/visual-discovery`
  - `shopping_commerce/marketplace`
  - `shopping_commerce/storefront`
  - `food_drink/restaurant`

  The examples also document current ZORA product gaps, including future needs for product cards, product grids, menu item cards, reservation summaries, visual wall/grid patterns, and richer chat/status patterns.

## 1.4.11

### Patch Changes

- 6996354: Update packages

## 1.4.10

### Patch Changes

- 59de5b0: Add a reusable MessageBubble pattern with metadata, exports, and showcase coverage.

## 1.4.9

### Patch Changes

- 7089849: Add a reusable ChatListItem pattern with showcase coverage.

## 1.4.8

### Patch Changes

- 66a035d: Add a reusable PostCard pattern with showcase coverage.

## 1.4.7

### Patch Changes

- 9c99aaa: Fix Hero desktop layout

## 1.4.6

### Patch Changes

- Fix mobile layout

## 1.4.5

### Patch Changes

- 76dd6d1: Fix mobile layout

## 1.4.4

### Patch Changes

- 0b43efc: Fix mobile layout

## 1.4.3

### Patch Changes

- 7be4b90: Fix mobile layout, as content was not visible

## 1.4.2

### Patch Changes

- db19750: Hotfix examples/ app: AppBar import

## 1.4.1

### Patch Changes

- 38648df: Add a first-class Hero pattern with structured content, actions, optional media, responsive layout behavior, metadata, and showcase coverage.

## 1.4.0

### Minor Changes

- 1241325: Add `ZORA_COMPONENT_META`, a ZORA-owned component metadata registry for authoring tools.

## 1.3.0

### Minor Changes

- 93791a4: Add `SelectionProvider`, `useSelection`, and `SelectableItem` primitives for contextual selection workflows.

## 1.2.0

### Minor Changes

- de30081: Add a product-facing `AppBar` component backed by the Surface `AppBar` primitive.

  The new component supports title/subtitle content, leading and trailing actions,
  an overflow trigger entrypoint, and generic prop-driven selection mode while
  keeping the existing `Toolbar` API unchanged.

## 1.1.0

### Minor Changes

- 7cec2db: Add provider-neutral image and media upload UI components.

## 1.0.10

### Patch Changes

- aa0daf3: Add Surface-backed navigation chrome building blocks and Expo Router renderer adapters (`NavigationItem`, `NavigationList`, `ZoraTabBar`, `ZoraDrawerContent`).

## 1.0.9

### Patch Changes

- 659ff96: update SURFACE

## 1.0.8

### Patch Changes

- 772236f: Update packages

## 1.0.7

### Patch Changes

- 8795a20: Add common product-facing primitives: `MediaCard`, `MetricCard`, `Progress` (linear v1), `Rating` (readonly v1), and the `Timeline` pattern (vertical-only v1).

## 1.0.6

### Patch Changes

- 9d9f997: Add common UI primitives: `Avatar`, `AvatarGroup`, `Chip`, `ChipGroup`, `SearchBar`, and `FilterBar`. Add list building blocks: `List`, `ListRow`, and `ListSection`. Also add `InputTrailingAction` / `trailingAction` support to `Input`.

## 1.0.5

### Patch Changes

- 9d9f997: Add common UI primitives: `Avatar`, `AvatarGroup`, `Chip`, `ChipGroup`, `SearchBar`, and `FilterBar`. Also add `InputTrailingAction` / `trailingAction` support to `Input`.

## 1.0.4

### Patch Changes

- ba7efff: update packages

## 1.0.3

### Patch Changes

- b2f47e3: update packages

## 1.0.2

### Patch Changes

- d4df5a0: Plan 5 — Semantic theme usage audit

  Audited all ZORA components, layouts, and patterns for consistent use of the
  post-Plan-3/Plan-4 theme model.
  - Confirmed: no stale references to `colorTone`, `ZoraColorTone`, `ZORA_COLOR_TONES`,
    `ZoraColorHarmony`, `ZORA_COLOR_HARMONIES`, `ZoraHexColor`, `AnkhTheme`, direct
    `culori` imports, `ThemeComposerRecommendation`, or local color-math APIs remain in
    src, examples, or README.
  - Fixed: layouts, patterns, and components that used `Box`, `Stack`, `Center`, and
    `Container` imported directly from `@ankhorage/surface` have been updated to import
    from the ZORA foundation layer (`../../foundation`) in line with the Surface import
    policy. Foundation wrappers, theme infrastructure, and Surface-wrapping leaf
    components remain unchanged.
  - Added regression-guard tests in `src/audit.test.ts` covering all required search
    patterns so that stale APIs and bypass imports are caught automatically in CI.
  - All components, layouts, and patterns verified against the current Surface/ZORA
    semantic token model; no hard-coded color literals found in runtime component code.

## 1.0.1

### Patch Changes

- 938bcfe: ThemeComposer now edits the full ZoraTheme source model.
  - ThemeComposer adds name editing with empty-name validation.
  - ThemeComposer adds app category editing via a Select using APP_CATEGORIES from @ankhorage/contracts.
  - ThemeComposer supports optional `appCategories` prop for narrowing the category options list.
  - ThemeComposer validates primary color input with parseHexColorOrThrow from @ankhorage/color-theory while keeping public `primaryColor` as `string`.
  - ThemeComposer preview shows name, appCategory, primaryColor, and harmony metadata.
  - README and examples app updated to reflect the new API.

## 1.0.0

### Major Changes

- 4d50ada: **Breaking: ZORA core theme model and color stack cleanup**

  ## Removed APIs
  - `ZoraTheme.colorTone` — removed; `colorTone` is no longer part of the theme seed
  - `ZoraColorTone` type — removed
  - `ZORA_COLOR_TONES` constant — removed
  - `ZoraHexColor` type — removed; ZORA themes now accept normal string hex values
  - `ZoraComputedTheme.mode` — replaced by `light` and `dark` mode objects
  - `ThemeComposerRecommendation` — removed
  - `ThemeComposerAppMood` — removed
  - `ThemeComposerAppCategory` — removed (was an opaque `string` alias)
  - `ThemeComposerProps.appMood` — removed
  - `ThemeComposerProps.recommendations` — removed
  - Internal color stack (`src/internal/color/`) — removed; ZORA no longer owns color math

  ## Added / Changed APIs
  - `ZoraTheme.name` — now **required** (was optional); ZORA themes must provide a real display name
  - `ZoraTheme.appCategory` — new required field; use `AppCategory` from `@ankhorage/contracts`
  - `ZoraTheme.primaryColor` — remains a public `string`; ZORA validates it internally with `@ankhorage/color-theory`
  - `ZoraComputedTheme` — now has `light: ZoraComputedThemeMode` and `dark: ZoraComputedThemeMode` instead of a single `mode`
  - `ZoraComputedThemeMode` — new type: `{ mode, surfaceTheme, generated, swatches, semanticColors? }`
  - Primary color is now preserved identically for both light and dark `ThemeConfig` modes (no dark-mode mutation)
  - `SurfaceTheme` (from `@ankhorage/surface`) replaces `AnkhTheme` as the resolved runtime theme type

  ## New dependencies
  - `@ankhorage/color-theory@^0.0.2` — canonical color types and generation utilities
  - `@ankhorage/contracts@^1.1.0` — theme config and app category types

  ## Removed dependencies
  - `culori` — no longer a direct ZORA dependency; color math is delegated to `@ankhorage/color-theory`
  - `@types/culori` — removed

  ## Migration

  ```ts
  // Before
  const theme: ZoraTheme = {
    id: 'my-theme',
    name: 'My Theme',
    primaryColor: '#0f766e',
    harmony: 'analogous',
    colorTone: 'jewel',
  };

  // After
  const theme: ZoraTheme = {
    id: 'my-theme',
    name: 'My Theme',
    appCategory: 'developer_tools',
    primaryColor: '#0f766e',
    harmony: 'analogous',
  };
  ```

  The `name` field is now required. `primaryColor` stays app-facing and ergonomic as
  a string, while ZORA validates it when converting the source theme to a runtime
  `ThemeConfig`.

## 0.16.2

### Patch Changes

- f47005a: Refresh Expo showcase coverage and add a policy test for app-facing ZORA imports.
- 5765554: Add the standard package tooling baseline script and workflow files.

## 0.16.1

### Patch Changes

- 0d09c8f: Update SURFACE

## 0.16.0

### Minor Changes

- 5f95af4: Add optional ThemeComposer recommendation props and explicit recommendation application UI.

## 0.15.4

### Patch Changes

- 32e7814: chore(release): trigger

## 0.15.3

### Patch Changes

- 4751b68: feat(theme): add internal semantic color token selection from role scales

## 0.15.2

### Patch Changes

- e91aaf1: update @ankhorage/contracts

## 0.15.1

### Patch Changes

- 98b94df: update @ankhorage/surface

## 0.15.0

### Minor Changes

- 43ebda3: Add ThemeComposer showcase page for visual recipe testing

## 0.14.0

### Minor Changes

- 86c4fdd: Add `ThemeComposer` pattern for live theme seed editing. Exposes a controlled component that lets users edit `primaryColor`, `harmony`, `colorTone`, and `mode`, emitting an updated `ZoraTheme` through `onChange`. Includes a built-in preview area showing Button, Badge, and Card controls reflecting the active theme.

## 0.13.2

### Patch Changes

- 7ad5fab: replace stale tone with colorTone in theme seed examples

## 0.13.1

### Patch Changes

- 99c74b1: Update @ankhorage/zora in example app

## 0.13.0

### Minor Changes

- b72b3e1: Renames the public ZORA theme seed field from `tone` to `colorTone` and adds internal color tone recipes for future theme generation work.

## 0.12.3

### Patch Changes

- 2f08e20: Adds internal role color scale generation for future ZORA theme generation work.

## 0.12.2

### Patch Changes

- da31347: Adds internal hue-role assignment for future ZORA theme generation work.

## 0.12.1

### Patch Changes

- 35c4046: Adds internal harmony hue-slot computation for future ZORA theme generation work.

## 0.12.0

### Minor Changes

- 7279fe4: Derives light and dark primary colors from a single ZORA theme seed using an internal OKLCH color boundary.

## 0.11.0

### Minor Changes

- a600848: Expands scoped theme support across public ZORA components, layouts, patterns, and foundation primitives through shared `themeId` and `mode` base props.

## 0.10.0

### Minor Changes

- 8ad107f: Adds nested ZORA theme scopes with shared `themeId` and `mode` base props so components can override theme context for themselves and their subtrees.

## 0.9.0

### Minor Changes

- 3745d82: Introduces the ZORA theme seed model with `ZoraTheme`, `ZoraComputedTheme`, and
  `zoraDefaultTheme`, replacing public override/config terminology with app-facing
  theme terminology.

## 0.8.1

### Patch Changes

- f7e5fdc: Stop resolving localization internally in Text and Heading. Localization keys now remain passive fallback content so runtime integrations can resolve localized display props before rendering.

## 0.8.0

### Minor Changes

- 5ff5e06: Re-export selected Surface foundation primitives such as `Box`, `Stack`,
  `Grid`, and `Container` through the ZORA public API.

## 0.7.0

### Minor Changes

- b365cde: Add a structured `Heading` component with responsive visual sizing, semantic heading levels, and theme-aware tones.

## 0.6.3

### Patch Changes

- update @ankhorage/surface

## 0.6.2

### Patch Changes

- 939b53e: Add a structured Text component with semantic variants, tones, and responsive props.

## 0.6.1

### Patch Changes

- 67b131e: Approved with amendments.

## 0.6.0

### Minor Changes

- ab9fc54: Add provider-agnostic form primitives and auth form patterns for sign-in, sign-up, password reset, and OTP flows.

## 0.5.3

### Patch Changes

- bbc43fd: update @ankhorage/surface

## 0.5.2

### Patch Changes

- 1b6e3e1: Update SURFACE

## 0.5.1

### Patch Changes

- 1f6d9a7: Fix infinite render loop in Modal and Drawer

  Stabilizes onDismiss handling to prevent repeated state updates causing
  "Maximum update depth exceeded" errors when opening overlays.

## 0.5.0

### Minor Changes

- e33b114: feat(zora): redesign AppShell as structural root layout with header/footer/overlay slots

## 0.4.1

### Patch Changes

- 37681ac: Update README.md with CheckboxGroup & RadioGroup

## 0.4.0

### Minor Changes

- e6ea86b: Add RadioGroup and CheckboxGroup components built on Surface primitives.

## 0.3.10

### Patch Changes

- ff6250e: Fixed toolbar gets width of its content

## 0.3.9

### Patch Changes

- edb3253: Trigger release with new @ankhorage/surface version

## 0.3.8

### Patch Changes

- 9657e2b: Update @ankhorage/surface version
- Update @ankhorage/surface version to latest

## 0.3.7

### Patch Changes

- e9d563b: Export src/ for better Metro debugging

## 0.3.6

### Patch Changes

- 3d66c66: Zora wraps ResponsiveProvider now

## 0.3.5

### Patch Changes

- 176be84: Export ResponsiveProvider to Public API

## 0.3.4

### Patch Changes

- c7a5254: Export Icon and IconProps to public API

## 0.3.3

### Patch Changes

- f3a3da3: Export IconProps

## 0.3.2

### Patch Changes

- 5348764: Sort imports

## 0.3.1

### Patch Changes

- 798dc20: Add missing useZoraTheme file

## 0.3.0

### Minor Changes

- 961422e: Export Icon component to public API

## 0.2.2

### Patch Changes

- 6e7fd59: update zora version in the example app

## 0.2.1

### Patch Changes

- 057704b: Update example app to use AppShell

## 0.2.0

### Minor Changes

- c6b0a3b: Add AppShell Layout to wrap the whole app (and use e.g. light/dark backgrounds

### Patch Changes

- 61687ba: fix(ci): resolve ESLint type errors in example app

## 0.1.4

### Patch Changes

- c2605b1: feat(example): restructure showcase into components and scenario-based patterns

## 0.1.3

### Patch Changes

- 14ee18b: fix(ui): prevent nested button elements in SettingsRow and Card

## 0.1.2

### Patch Changes

- 7328ea5: Fix release pipeline (OIDC / changesets publish)

## 0.1.1

### Patch Changes

- Updated the example app

## 0.1.0

### Minor Changes

- Add Studio-unblocking reusable UI elements including IconButton, Tabs, Toolbar, Select, disclosure sections, responsive panels, inspector fields, tree views, tile grids, and collection editor shells.

## 0.0.4

### Patch Changes

- Expand the README into a full public API catalogue with collapsible property details, documented inherited prop surfaces, and Expo showcase usage instructions.

## 0.0.3

### Patch Changes

- Refresh the README copy so the published package overview, installation, usage, and positioning match the current messaging.

## 0.0.2

### Patch Changes

- Update the published Surface dependency to `0.1.4` and align the Expo showcase app for the web-ready package stack.

## 0.0.1

### Patch Changes

- Bootstrap the initial ZORA package with theme preset, opinionated Surface wrappers, composition patterns, and app-shell layouts.

All notable changes to this project will be documented in this file.

The format is based on Changesets and the package changelog generated during release.
