# Changelog

## 1.0.0 — 2026-09-05

- Select `1.0.0` as the first public Hex release target and adopt Semantic
  Versioning for the stable component, stylesheet, fallback, and package
  contracts.
- Preserve the earlier `0.1.0` qualification records as historical evidence;
  the `1.0.0` archive, clean-consumer trial, CI, review, gallery identity, Hex
  publication, and public tag remain distinct release gates. Publish the
  checksum-bound package and generated documentation to Hex; retain public tag
  verification as the separate next gate.

## Milestone F Phase 6 — unreleased

- Add deterministic release and health manifests with canonical identity,
  hashed local assets, complete static health targets, and secret rejection.
- Keep pull-request CI verification non-publishing, deploy the stateless
  controller-rendered gallery as an immutable Fly.io release, strengthen
  canonical smoke, and document image-identified rollback and recovery.
- Reconcile all 38 Milestone F requirements while keeping qualification blocked
  on exact-revision clean reproducibility, manual accessibility,
  deployed-source review, and final CI; SpecLed, Fly health, and canonical
  deployment smoke pass independently.

## Milestone F Phase 5 — unreleased

- Add committed-input candidate builds with output inventories and a disposable
  clean-checkout runner for the internal `0.1.0` archive.
- Add an isolated Phoenix consumer that installs the actual archive through a
  temporary signed Hex repository, compiles representative public HEEx, and
  serves the packaged stylesheet without a path dependency or consumer asset tooling.
- Record candidate qualification as blocked while mandatory manual, CI,
  integration, and SpecLed gates remain unresolved. No Hex publication, public
  tag, platform certification, marketplace listing, or upstream affiliation is claimed.

## Milestone F Phase 3 — unreleased

- Publish complete component/API, installation, capability/fallback, controller,
  Dstar, LiveView, upgrade, rollback, and provenance guidance for the internal
  `0.1.0` candidate.
- Keep gallery tooling, application transport, state, routes, runtime scripts,
  CI, deployment, and manual review outside the package API and release claims.
- Compile and render transport-shaped examples through the same public imports;
  no new component family or package JavaScript runtime is introduced.

## Milestone E Phase 6 — unreleased

- Complete the A–E catalogue audit, composition navigation/breadcrumbs and all
  Motion/Media publication smoke routes.
- Group all six public modules in ExDoc and add a compiled composition guide
  covering native semantics, bounded work, ownership, fallback and provenance.
- Add final cross-engine gallery and fixed 1/8/24-item budget acceptance,
  retaining explicit manual, CI, local runner and publication limitations.

## Milestone E Phase 5 — unreleased

- Add responsive Image Gallery with validated keyed media, native responsive
  hints, explicit alt intent, escaped/keyed trusted captions and real destinations.
- Compose existing native Dialog lightboxes with bounded contain images, complete
  captions, explicit close and inherited focus/dismissal; no slideshow state.
- Add the full local image-gallery composition, component reference, static
  export coverage and reviewed origin-effect deferral. No component runtime.

## Milestone E Phase 4 — unreleased

- Add named native Scroll Indicator with scoped, neutral-fallback decoration.
- Add structured Cover Flow over Carousel with gated image-only depth and flat fallbacks.
- Add both reference pages, real composition examples, provenance and three-engine evidence.

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

## Unreleased

- Add static-first Marquee with a native finite-preview checkbox, persistent
  stop/reset/replay and a safe inert decorative duplicate. Add keyed Stagger
  with visible defaults, explicit wrappers and a one-second entrance budget.
- Publish the Motion category, both complete references and a native motion-
  preferences composition, including no-script theme-preserving static export.

- Add native Carousel with a named scroll region, keyed ordered content, real
  fragment index, closed snap/alignment and focus-first oversized-card access.
  Deliver the Media reference and local media-browser composition immediately,
  with no component runtime, generated controls, clones or slide state.
- Keep gallery reference grids within narrow viewports and verify actual
  no-script static navigation through directory redirects and local images.

- Establish Milestone E capability evidence, shared internal media/motion
  contracts and scoped suppression without new public components or runtime.
  Add the capability gallery page, closed local media export and no-script
  theme/motion inspection, with three-engine foundation and static-export tests.

- Correct dark destructive-button contrast, wrap narrow Drawer headers to keep
  exits reachable, and exclude stale copied assets from the gallery export.

- Complete the Milestone D catalogue with seven dedicated overlay/supplemental
  references, a reviewed three-engine capability matrix, and four local-only
  compositions. Include canonical routes, complete ordinary alternatives,
  deterministic publication, public API guidance and release-boundary evidence.

- Add link-owned Hover Card with a constrained noninteractive HEEx preview,
  ordinary navigation fallbacks, and no interest events or client loading.

- Add CSS-first Tooltip with one text-labelled native trigger, a protected
  accessible description, and explicit supplemental-only fallbacks.

- Add Dropdown Actions with stable text-labelled native controls, optional
  groups/separators, native form attributes, and explicit non-menu ownership.

- Add native nonmodal Popover with protected invoker relationships, logical
  anchor placement, auto/manual modes, and bounded progressive fallbacks.

- Add a native modal Drawer with logical start/end/bottom presentation,
  protected commands and focus relationships, and an explicit ordinary-page fallback.

- Add native Dialog with declarative invocation, closed dismissal and focus
  policies, explicit fallback and exit regions, and browser-owned modality.
- Add consequential Alert Dialog with fixed close-request dismissal,
  least-destructive cancel focus, and a caller-owned native action region.

- Complete Milestone C with native Accordion, destination Navigation Menu,
  Header and Section Header compositions, Scroll Area, Separator, and honestly
  named Radio Panels with progressive CSS fallbacks and no package JavaScript.
- Add Disclosure, Navigation, and Content Surfaces gallery categories, seven
  component reference pages, and controller-rendered documentation, settings,
  and application-shell compositions to the deterministic static export.
- Add Milestone C semantic comparison guidance, pinned provenance mappings,
  browser fallback coverage, and independently distributable candidate evidence.

- Complete Milestone B with the closed Forms gallery, 15 focused component
  pages, sign-in/profile/settings compositions, a harmless native-submission
  fixture, static fallback evidence, provenance, and milestone acceptance.

- Initialize the independent Mix package and SpecLed workspace.
- Define Milestones A through F for the component library and online gallery.
- Establish the transport-neutral public import and release-file boundary.
- Pin and document the reviewed unscripted/ui source provenance and MIT notice.
- Add the native Button component with closed variants, sizes, slots, and
  presentation-only loading state.
- Add the passive Badge component with four closed semantic variants and no
  link, button, selection, or dismissal behavior.
- Add the Alert component with explicit announcement policy, composable icon
  and actions regions, and caller-owned lifecycle behavior.
- Add the Card component with deterministic composable regions and no inferred
  navigation, selection, data, or workflow behavior.
- Add the initials-first Avatar component with optional caller-owned imagery,
  closed sizes, and bounded stack presentation.
- Add the decorative Skeleton component with closed geometry, protected hidden
  semantics, and a static reduced-motion fallback.
- Add the separate controller-rendered Foundation gallery, closed catalogue,
  one reference page per component, local fingerprinted assets, and deterministic
  static export.
- Add GitHub Pages publication metadata, consumer and maintainer guidance,
  grouped ExDoc configuration, and the audited internal `0.1.0` release boundary.
- Add the shared Milestone B form normalization and deterministic accessibility
  contract plus Field, Label, Help, Field Errors, and Error Summary primitives.
- Add the native text-like Input component with closed types, native constraints,
  optional presentational regions, and caller-owned pending state.
- Add the native Textarea component with closed resize policies, escaped content,
  and capability-gated CSS content sizing over a stable native fallback.
- Add the native Checkbox component with explicit boolean sentinel and repeated-
  value modes, shared relationships, and caller-owned checked state.
- Add the native Radio Group component with validated stable option identity,
  fieldset semantics, scalar selection, and group or option disabled states.
- Add Switch as a track-and-thumb presentation of the native boolean Checkbox
  contract with an explicit accessible-label rule for hidden labels.
- Add Native Select with validated stable option and optgroup data, scalar and
  repeated-value modes, and the browser's visible classic picker as its floor.
- Add Enhanced Select as an opt-in standards-based presentation over the same
  native value, option, accessibility, fallback, and submission contract.
- Add Slider as a native range-input foundation with shared FormField
  relationships, resilient presentation, and no duplicated value state.
- Add distinct native Progress and Meter foundations with validated ranges,
  explicit accessible names, and caller-owned lifecycle semantics.
