# @platform-modules/ui-primitives

## 0.4.0

### Minor Changes

- 6f031c3: Publish the instant-load primitives set and prove the shipped GitHub Packages artifacts resolve for adopters.

  `@platform-modules/ui-primitives` ships the `/virtual` entrypoint used by the consumer harness.

  `@platform-modules/query-react` ships the `persist`, `prefetch`, `optimistic`, and `broadcast` subpaths used by instant-load adoption.

  `@platform-modules/perf-react` ships the web-vitals beacon used by the install proof harness.

## 0.3.0

### Minor Changes

- 30fd8b2: Complete the `Calendar` controlled-month contract: add `onMonthChange?(month: Date): void`, passed to all three `DayPicker` modes. A controlled `month` without a change callback left the nav arrows dead for any consumer (the host could not observe the displayed month). This is the stock react-day-picker `month`/`onMonthChange` pair — a contract completion, not an event-calendar expansion (no per-day cell rendering, no `modifiers` passthrough).
- 4ad3505: Add `PalettePicker` — a headless visual palette picker (swatch dots + live preview card) built on the existing `RadioGroup`. Caller supplies `PaletteOption[]` (`{ id, label, swatches, preview }`); the component is engine-agnostic (preview colors via explicit inline CSS vars, never ambient theme tokens) and container-query responsive. New exports: `PalettePicker`, `PalettePickerProps`, `PaletteOption`, `PalettePreview`.

### Patch Changes

- Updated dependencies [2efc47b]
- Updated dependencies [f17f1ba]
  - @platform-modules/ui-tokens@0.2.0

## 0.2.0

### Minor Changes

- c470a10: B2 chrome primitives: complete `Select` (Portal/Viewport + styled Content/Item, mirroring `DialogContent`) and add `Calendar` (react-day-picker, optional peer), `ColorPicker` (preset-swatch over `RadioGroup`), `FontPicker` (over the completed `Select`). New platform-owned `DateRange` type for `Calendar` range mode — keeps the optional date-library type out of the public seam.

## 0.1.0

### Minor Changes

- d323ab5: Add admin-dashboard subset primitives: Input, Field, Textarea, Table, DashboardShell, Toast, and Badge. Token-driven CVA styling, a11y contracts per boundary spec, Radix Toast as optional peer.
- 9bc0255: Add Wave-1c chrome primitives (B1): Card, ErrorState (error/empty/503), Avatar, DropdownMenu, Tooltip (Radix-backed where an ARIA pattern exists; token-driven; a11y-floored).
- 5b7cc44: Add Wave-1b form/data primitives: Checkbox, RadioGroup+Radio, Switch, DataList, Pagination (Radix-backed where an ARIA pattern exists; token-driven; a11y-floored).

### Patch Changes

- Updated dependencies [3329241]
- Updated dependencies [d323ab5]
  - @platform-modules/ui-tokens@0.1.0

## 0.0.2

### Patch Changes

- a95e5f1: Fix: the Tailwind v4 `@theme` adapter (`theme.css`) failed to compile in a consumer build — a comment delimiter closed early and leaked text into the `@theme` block, which the engine rejects (`@theme blocks must only contain custom properties or @keyframes`). The comment is corrected. Adds a regression test that compiles `base.css` + `theme.css` through the real Tailwind v4 engine, so a malformed `@theme` block fails the package's own test suite instead of only a downstream build.

  ui-primitives is republished so its `@platform-modules/ui-tokens` dependency range accepts the fixed release.

- Updated dependencies [a95e5f1]
  - @platform-modules/ui-tokens@0.0.2

## 0.0.1

### Patch Changes

- 1ae2c4a: First release of the UI foundation: a themeless design-token contract (typed token unions + `--mod-*` custom properties + a Tailwind v4 `@theme` adapter) and a set of accessible, token-driven primitives (Button, Dialog, Tabs, Select) built on Radix + CVA. Lets a downstream project install the foundation and theme it through the token contract.
- Updated dependencies [1ae2c4a]
  - @platform-modules/ui-tokens@0.0.1
