@abuzareal/contour-ui 0.6.1 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -6,9 +6,13 @@ Changes to the published `@abuzareal/contour-ui` package. Version headings refer
6
6
 
7
7
  No changes recorded.
8
8
 
9
+ ## 0.6.2
10
+
11
+ Compatible Tooltip correction. A closed portalled tooltip now uses native hidden state so fallback right/bottom positioning cannot enlarge a standards-mode document. Opening still uses collision-aware placement; Escape/blur close it and accessible descriptions remain linked. No public API, dependency, token or theme changes. Production regressions cover both legacy/scoped styles, light/dark, LTR/RTL and narrow/desktop viewports. Source version headings do not establish npm publication.
12
+
9
13
  ## 0.6.1
10
14
 
11
- Compatible source corrections; publication is pending. Restore print theme/disclosures on repeated events or unmount, cancel delayed hash alignment after unmount, preserve delimiter-containing scroll-spy IDs, and close an open Combobox on Tab without cancelling native traversal or changing selection. Add hook/helper/optional-entry references, emitted prop/example drift checks, JavaScript onboarding and migration/history material. Correct the open Combobox background hiding with a labelled non-modal popup, keeping Base UI selection/navigation/positioning parts. Strict whole-document accessibility scans now pass in selected Chromium/WebKit fixtures; the unmodified upstream composition remains a separate failing diagnostic. Add visual QA without excluding axe rules. Manual screen-reader checks remain pending; no universal accessibility claim is made.
15
+ Compatible source corrections; npm publication was verified on 14 October 2026. Restore print theme/disclosures on repeated events or unmount, cancel delayed hash alignment after unmount, preserve delimiter-containing scroll-spy IDs, and close an open Combobox on Tab without cancelling native traversal or changing selection. Add hook/helper/optional-entry references, emitted prop/example drift checks, JavaScript onboarding and migration/history material. Correct the open Combobox background hiding with a labelled non-modal popup, keeping Base UI selection/navigation/positioning parts. Strict whole-document accessibility scans now pass in selected Chromium/WebKit fixtures; the unmodified upstream composition remains a separate failing diagnostic. Add visual QA without excluding axe rules. Manual screen-reader checks remain pending; no universal accessibility claim is made.
12
16
 
13
17
  ## 0.6.0
14
18
 
package/COMBOBOX.md CHANGED
@@ -84,4 +84,4 @@ Automated Chromium keyboard, touch emulation, synthetic composition, RTL, forced
84
84
 
85
85
  **Open-state accessibility correction in 0.6.1:** Contour uses a labelled non-modal popup region and listbox, retaining Base UI's public selection/navigation/positioning parts. Opening it no longer hides the surrounding page. Whole-document axe scans pass in the selected Chromium/WebKit fixtures with no excluded rules; Tab and Shift+Tab close it while preserving native traversal. The older Base UI Popup composition's failing diagnostic remains available separately. See [support evidence and limitations](SUPPORT.md); manual VoiceOver/NVDA review remains pending. These fixtures do not establish WCAG conformance.
86
86
 
87
- [Report Combobox 0.6.1](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&title=Combobox%200.6.1%3A%20&component=Combobox&version=0.6.1), using the [public minimal reproduction](examples/reproduction). Source links for this version resolve when its release tag is published.
87
+ [Report Combobox 0.6.2](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&title=Combobox%200.6.2%3A%20&component=Combobox&version=0.6.2), using the [public minimal reproduction](examples/reproduction). Source links for this version resolve when its release tag is published.
package/COMPOSITION.md CHANGED
@@ -194,4 +194,4 @@ Each addition serves a bounded need: native focus/measurement/trigger refs; exis
194
194
 
195
195
  ## Version and reproduction
196
196
 
197
- Reference version **0.6.1** (candidate until published). [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.1/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Composition 0.6.1](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Composition&version=0.6.1), using the [public minimal reproduction](examples/reproduction) and synthetic data.
197
+ Reference version **0.6.2**. A source version does not establish publication; check the npm registry for availability. [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.2/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Composition 0.6.2](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Composition&version=0.6.2), using the [public minimal reproduction](examples/reproduction) and synthetic data.
package/FORMS.md CHANGED
@@ -95,4 +95,4 @@ References: [React native input ownership](https://react.dev/reference/react-dom
95
95
 
96
96
  ## Version and reproduction
97
97
 
98
- Reference version **0.6.1** (candidate until published). [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.1/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Forms 0.6.1](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Forms&version=0.6.1), using the [public minimal reproduction](examples/reproduction) and synthetic data.
98
+ Reference version **0.6.2**. A source version does not establish publication; check the npm registry for availability. [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.2/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Forms 0.6.2](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Forms&version=0.6.2), using the [public minimal reproduction](examples/reproduction) and synthetic data.
@@ -60,7 +60,7 @@ Copy [OptionalSmoothScroll.tsx](examples/optional/OptionalSmoothScroll.tsx) and
60
60
 
61
61
  Supported evidence names the exact pair: Next 16.4.0 App Router, React/React DOM 19.3.0, webpack production build, plus its separate optional lazy Three fixture. Turbopack, Pages Router, Next Lenis, static nonce export and arbitrary third-party modal interoperability are not promoted to supported configurations. Vite starter pins 8.3.2 with React 18.3.1. Server-safe helper imports, client directives, declarations and hydration are checked independently; SSR rendering alone does not prove hydration.
62
62
 
63
- Copy [the public reproduction folder](examples/reproduction), reduce it to the failing interaction, and include exact package/browser versions and keyboard steps. Its [issue link](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&title=Integration%200.6.1%3A%20&component=Integration&version=0.6.1) contains version/component, not private data. Report only synthetic records and public reproducible source. [Documentation coverage and limits](DOCS.md).
63
+ Copy [the public reproduction folder](examples/reproduction), reduce it to the failing interaction, and include exact package/browser versions and keyboard steps. Its [issue link](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&title=Integration%200.6.2%3A%20&component=Integration&version=0.6.2) contains version/component, not private data. Report only synthetic records and public reproducible source. [Documentation coverage and limits](DOCS.md).
64
64
 
65
65
  ## JavaScript and TypeScript examples
66
66
 
package/HELPERS.md CHANGED
@@ -30,4 +30,4 @@ The JavaScript onboarding example in [GETTING-STARTED.md](GETTING-STARTED.md) us
30
30
 
31
31
  ## Version and reproduction
32
32
 
33
- Reference version **0.6.1** (candidate until published). [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.1/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Helpers 0.6.1](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Helpers&version=0.6.1), using the [public minimal reproduction](examples/reproduction) and synthetic data.
33
+ Reference version **0.6.2**. A source version does not establish publication; check the npm registry for availability. [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.2/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Helpers 0.6.2](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Helpers&version=0.6.2), using the [public minimal reproduction](examples/reproduction) and synthetic data.
package/HOOKS.md CHANGED
@@ -64,4 +64,4 @@ Copyable [HookExamples.tsx](examples/reference/HookExamples.tsx) uses these publ
64
64
 
65
65
  ## Version and reproduction
66
66
 
67
- Reference version **0.6.1** (candidate until published). [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.1/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Hooks 0.6.1](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Hooks&version=0.6.1), using the [public minimal reproduction](examples/reproduction) and synthetic data.
67
+ Reference version **0.6.2**. A source version does not establish publication; check the npm registry for availability. [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.2/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Hooks 0.6.2](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Hooks&version=0.6.2), using the [public minimal reproduction](examples/reproduction) and synthetic data.
package/MANUAL-QA.md CHANGED
@@ -35,4 +35,4 @@ Mark unattempted scenarios explicitly. A passing session covers only its recorde
35
35
 
36
36
  ## Version and reproduction
37
37
 
38
- Reference version **0.6.1** (candidate until published). [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.1/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Manual accessibility 0.6.1](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Manual%20accessibility&version=0.6.1), using the [public minimal reproduction](examples/reproduction) and synthetic data.
38
+ Reference version **0.6.2**. A source version does not establish publication; check the npm registry for availability. [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.2/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Manual accessibility 0.6.2](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Manual%20accessibility&version=0.6.2), using the [public minimal reproduction](examples/reproduction) and synthetic data.
package/MIGRATION.md CHANGED
@@ -41,4 +41,4 @@ The 0.6.1 work is intended as compatible lifecycle/documentation corrections. It
41
41
 
42
42
  ## Version and reproduction
43
43
 
44
- Reference version **0.6.1** (candidate until published). [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.1/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Migration 0.6.1](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Migration&version=0.6.1), using the [public minimal reproduction](examples/reproduction) and synthetic data.
44
+ Reference version **0.6.2**. A source version does not establish publication; check the npm registry for availability. [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.2/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Migration 0.6.2](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Migration&version=0.6.2), using the [public minimal reproduction](examples/reproduction) and synthetic data.
package/MODELS.md CHANGED
@@ -15,4 +15,4 @@ The bounded Base UI/Radix+cmdk/React Aria decision, exact versions, licenses and
15
15
 
16
16
  ## Version and reproduction
17
17
 
18
- Reference version **0.6.1** (candidate until published). [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.1/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Library models 0.6.1](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Library%20models&version=0.6.1), using the [public minimal reproduction](examples/reproduction) and synthetic data.
18
+ Reference version **0.6.2**. A source version does not establish publication; check the npm registry for availability. [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.2/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Library models 0.6.2](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Library%20models&version=0.6.2), using the [public minimal reproduction](examples/reproduction) and synthetic data.
package/OVERLAYS.md CHANGED
@@ -43,6 +43,8 @@ Menu enters the first enabled action; ArrowUp from its trigger enters the last.
43
43
 
44
44
  ## Supplemental hints
45
45
 
46
+ From 0.6.2, closed Tooltip content uses native hidden state. This prevents fallback placement on the body portal from widening a standards-mode page. The trigger retains its linked supplemental accessible description; opening/dismissal and collision placement remain unchanged.
47
+
46
48
  Tooltip content is a noninteractive string. Hover and keyboard focus cooperate; leaving the pointer does not erase a focused hint. Trigger-to-content travel stays available through a bounded pointer corridor; the hint remains while pointer/focus applies. Escape suppresses it until the current hover/focus conditions end and a new session begins. Existing `aria-describedby` values and the child's accessible name/ref/events are retained. Pointer content is hoverable; tooltip content is never a substitute for a visible label, essential instruction, validation error or interactive panel. Touch users must have the same essential information visibly available.
47
49
 
48
50
  Production checks cover nested/sibling/portaled layers, native modal portals, touch outside press, RTL, narrow/resized viewports, long scrolling panels and CSS zoom. These are automated browser checks, not physical mobile-keyboard or assistive-technology certification. See [W3C hover/focus guidance](https://www.w3.org/WAI/WCAG21/Techniques/client-side-script/SCR39) and [Floating UI observer lifecycle](https://floating-ui.com/docs/autoupdate).
@@ -53,4 +55,4 @@ Default-open children choose an enclosing native dialog even before its open att
53
55
 
54
56
  ## Version and reproduction
55
57
 
56
- Reference version **0.6.1** (candidate until published). [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.1/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Overlays 0.6.1](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Overlays&version=0.6.1), using the [public minimal reproduction](examples/reproduction) and synthetic data.
58
+ Reference version **0.6.2**. A source version does not establish publication; check the npm registry for availability. [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.2/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Overlays 0.6.2](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Overlays&version=0.6.2), using the [public minimal reproduction](examples/reproduction) and synthetic data.
package/PROP-REFERENCE.md CHANGED
@@ -34,4 +34,4 @@ Read [FORMS.md](FORMS.md), [COMPOSITION.md](COMPOSITION.md), [OVERLAYS.md](OVERL
34
34
 
35
35
  ## Version and reproduction
36
36
 
37
- Reference version **0.6.1** (candidate until published). [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.1/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Prop reference 0.6.1](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Prop%20reference&version=0.6.1), using the [public minimal reproduction](examples/reproduction) and synthetic data.
37
+ Reference version **0.6.2**. A source version does not establish publication; check the npm registry for availability. [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.2/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Prop reference 0.6.2](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Prop%20reference&version=0.6.2), using the [public minimal reproduction](examples/reproduction) and synthetic data.
package/PUBLIC-API.md CHANGED
@@ -25,143 +25,143 @@ These identify reproducible checks, not claims that every row has a dedicated be
25
25
 
26
26
  | Export / source | Maintainer | Status | Intended use | Known limits | Documentation | Evidence |
27
27
  | -------------------------------------------------------------------------------------------------------------------- | ---------- | ------------ | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
28
- | [`Alert`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Alert.tsx#L38) | @abuzareal | stable (0.x) | Inline feedback or banner | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#feedback) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
29
- | [`Avatar`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Avatar.tsx#L21) | @abuzareal | stable (0.x) | Image or initials identity | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
30
- | [`Badge`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Badge.tsx#L16) | @abuzareal | stable (0.x) | Short status label | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
31
- | [`BrandMark`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/BrandMark.tsx#L14) | @abuzareal | legacy | Fixed inherited AA mark | Fixed inherited personal mark; supported for existing consumers, not a general logo system. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
32
- | [`Breadcrumbs`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Breadcrumbs.tsx#L11) | @abuzareal | stable (0.x) | Page hierarchy navigation | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#navigation) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
33
- | [`Button`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Button.tsx#L23) | @abuzareal | stable (0.x) | Native action button | Forwarded native button ref on React 18/19; loading disables activation; native attributes preserved. | [Reference](https://contour.abuzr.in/docs#buttons) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
34
- | [`Card`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Card.tsx#L16) | @abuzareal | stable (0.x) | Content and footer container | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
35
- | [`Checkbox`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Checkbox.tsx#L20) | @abuzareal | stable (0.x) | Native checkbox with label/error | Forwarded native input ref and caller ID; indeterminate handling and caller ARIA descriptions/validity remain preserved. | [Reference](https://contour.abuzr.in/docs/components/checkbox) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
36
- | [`CountUp`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/CountUp.tsx#L21) | @abuzareal | stable (0.x) | Animated numeric display | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
37
- | [`DataTable`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/DataTable.tsx#L28) | @abuzareal | stable (0.x) | Scalar rows with local sorting | String/number row values and local sort only; no remote sort, selection, loading controller or virtualization. | [Reference](https://contour.abuzr.in/docs#data-table) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
38
- | [`DepthButton`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/DepthButton.tsx#L11) | @abuzareal | stable (0.x) | Native action with CSS depth | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#buttons) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
39
- | [`Dialog`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Dialog.tsx#L41) | @abuzareal | stable (0.x) | Native modal or edge drawer | Native dialog ref and root/panel/body/footer/close-button props; app owns open/onClose; no initial-focus override. | [Reference](https://contour.abuzr.in/docs/components/dialog) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
40
- | [`Disclosure`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Disclosure.tsx#L15) | @abuzareal | stable (0.x) | Native details/summary disclosure | Native details; defaultOpen only, no controlled open/onOpenChange; className is required. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
41
- | [`Divider`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Divider.tsx#L7) | @abuzareal | stable (0.x) | Content separation | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
42
- | [`DropdownMenu`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/DropdownMenu.tsx#L58) | @abuzareal | experimental | Action menu with keyboard selection | Collision-aware body/modal portal, button renderer and shared topmost dismissal; no submenu model. | [Reference](https://contour.abuzr.in/docs/components/dropdown-menu) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
43
- | [`EmptyState`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/EmptyState.tsx#L12) | @abuzareal | stable (0.x) | Empty-result content and action | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
44
- | [`ExternalLink`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/ExternalLink.tsx#L12) | @abuzareal | stable (0.x) | Styled native external anchor | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#buttons) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
45
- | [`Field`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Field.tsx#L19) | @abuzareal | stable (0.x) | Label, hint and error frame | Caller wires the child ID/describedby; wrapper does not wire arbitrary children automatically. | [Reference](https://contour.abuzr.in/docs#field) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
46
- | [`FlipCard`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/FlipCard.tsx#L19) | @abuzareal | stable (0.x) | Button-controlled two-face card | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
47
- | [`IconButton`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/IconButton.tsx#L16) | @abuzareal | stable (0.x) | Native button with required accessible label | Forwarded native button ref on React 18/19; caller supplies a meaningful accessible label. | [Reference](https://contour.abuzr.in/docs#buttons) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
48
- | [`Kbd`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Kbd.tsx#L5) | @abuzareal | stable (0.x) | Keyboard shortcut label | Displays a shortcut, does not register one. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
49
- | [`Magnetic`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Magnetic.tsx#L15) | @abuzareal | stable (0.x) | Pointer-dependent decorative movement | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
50
- | [`Marquee`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Marquee.tsx#L13) | @abuzareal | stable (0.x) | Repeated moving content strip | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
51
- | [`Pagination`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Pagination.tsx#L31) | @abuzareal | stable (0.x) | Page-selection controls | Positive integer pages and in-range one-based page; application owns URL/fetch/slicing. | [Reference](https://contour.abuzr.in/docs#navigation) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
52
- | [`Popover`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Popover.tsx#L51) | @abuzareal | experimental | Nonmodal panel with owned trigger | Root/button/panel refs, body/modal portal, collision placement, supported button renderer and focus policy; nonmodal, no focus trap. | [Reference](https://contour.abuzr.in/docs#floating) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
53
- | [`ProgressBar`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/ProgressBar.tsx#L12) | @abuzareal | stable (0.x) | Determinate or indeterminate progress | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs/components/progress-bar) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
54
- | [`RadioGroup`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/RadioGroup.tsx#L49) | @abuzareal | stable (0.x) | Native radio choices | Caller name/form, native default/reset/required/disabled, option input refs; generated fallback name remains; string callback. | [Reference](https://contour.abuzr.in/docs#choices) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
55
- | [`Reveal`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Reveal.tsx#L14) | @abuzareal | stable (0.x) | Visibility-triggered content reveal | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
56
- | [`RevealHeading`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/RevealHeading.tsx#L16) | @abuzareal | legacy | Editorial heading-line composition | Editorial h2 composition; application must preserve heading order. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
57
- | [`ScrollProgress`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/ScrollProgress.tsx#L8) | @abuzareal | stable (0.x) | Document scroll readout | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
58
- | [`SectionLabel`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/SectionLabel.tsx#L12) | @abuzareal | legacy | Editorial section metadata | Depends on Section editorial metadata/aside contract; not a general label primitive. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
59
- | [`SegmentedControl`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/SegmentedControl.tsx#L16) | @abuzareal | stable (0.x) | Controlled single-choice buttons | No native named field or disabled-option API; application owns value and submission. | [Reference](https://contour.abuzr.in/docs#choices) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
60
- | [`SelectField`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/SelectField.tsx#L33) | @abuzareal | stable (0.x) | Labelled native select | Native forwarded select ref; native choices, not searchable Combobox. | [Reference](https://contour.abuzr.in/docs/components/select-field) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
61
- | [`Skeleton`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Skeleton.tsx#L11) | @abuzareal | stable (0.x) | Loading placeholder | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#feedback) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
62
- | [`Slider`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Slider.tsx#L42) | @abuzareal | stable (0.x) | Controlled/default native range input | Native range ref/name/form/default/reset; numeric callback; browser sanitization/readout; range has no required constraint. | [Reference](https://contour.abuzr.in/docs#choices) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
63
- | [`GitHubIcon`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/SocialIcons.tsx#L5) | @abuzareal | stable (0.x) | GitHub SVG mark | SVG only; caller owns link destination and accessible name. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
64
- | [`LinkedInIcon`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/SocialIcons.tsx#L16) | @abuzareal | stable (0.x) | LinkedIn SVG mark | SVG only; caller owns link destination and accessible name. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
65
- | [`Spinner`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Spinner.tsx#L13) | @abuzareal | stable (0.x) | Loading status indicator | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#feedback) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
66
- | [`Stat`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Stat.tsx#L11) | @abuzareal | stable (0.x) | Supplied value and label display | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
67
- | [`Stepper`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Stepper.tsx#L13) | @abuzareal | stable (0.x) | Step-progress display | Progress display, not a navigable wizard; application owns state and validation. | [Reference](https://contour.abuzr.in/docs#navigation) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
68
- | [`Switch`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Switch.tsx#L40) | @abuzareal | stable (0.x) | Controlled/default on/off button | Button ref; checkbox-backed named/form/required submission, checked/default/reset and boolean callback; unchecked/disabled omit. | [Reference](https://contour.abuzr.in/docs#choices) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
69
- | [`Tabs`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Tabs.tsx#L35) | @abuzareal | stable (0.x) | Controlled or default tab selection | Root/list/tab/panel props and refs; controlled/default selected ID; no disabled-tab/orientation/component-replacement API. | [Reference](https://contour.abuzr.in/docs/components/tabs) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
70
- | [`Tag`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Tag.tsx#L14) | @abuzareal | stable (0.x) | Short label with optional removal | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
71
- | [`TextArea`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/TextArea.tsx#L26) | @abuzareal | stable (0.x) | Native textarea, counter and resize | Native forwarded textarea ref; parent owns controlled reset; sizing is browser dependent. | [Reference](https://contour.abuzr.in/docs/components/text-area) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
72
- | [`TextField`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/TextField.tsx#L28) | @abuzareal | stable (0.x) | Native input with label/counter | Native forwarded input ref; parent owns controlled values/reset; do not switch state ownership. | [Reference](https://contour.abuzr.in/docs/components/text-field) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
73
- | [`ThemeToggle`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/ThemeToggle.tsx#L18) | @abuzareal | stable (0.x) | Scoped or document-theme control | Native button ref; ThemeScope uses caller state; outside it, root theme/storage behavior remains. | [Reference](https://contour.abuzr.in/docs#theme-copy) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
74
- | [`TiltCard`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/TiltCard.tsx#L15) | @abuzareal | stable (0.x) | Pointer-dependent CSS depth | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
75
- | [`Timeline`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Timeline.tsx#L8) | @abuzareal | stable (0.x) | Ordered entries supplied by caller | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
76
- | [`ToastProvider`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/ToastProvider.tsx#L74) | @abuzareal | stable (0.x) | Toast context, queue and announcements | No application persistence; important failures need a durable visible record as well. | [Reference](https://contour.abuzr.in/docs/components/toast-provider) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
77
- | [`Tooltip`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Tooltip.tsx#L24) | @abuzareal | experimental | Supplemental text hint | Hover/focus persistence and Escape suppression; supplemental noninteractive string only; collision-aware body/modal portal. | [Reference](https://contour.abuzr.in/docs#floating) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
78
- | [`useClipboardCopy`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useClipboardCopy.ts#L10) | @abuzareal | stable (0.x) | Clipboard operation and feedback state | Clipboard access can fail; obsolete text/request/unmount completions are discarded in 0.2.1; app presents truthful feedback. | [Reference](https://contour.abuzr.in/docs#theme-copy) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
79
- | [`useDismiss`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useDismiss.ts#L14) | @abuzareal | experimental | Document Escape/outside-press subscription | Shared owner-document topmost dismissal; optional branches/layer element/outside policy; caller manages focus. | [Reference](https://contour.abuzr.in/docs#browser-hooks) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
80
- | [`useHeaderScroll`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useHeaderScroll.ts#L9) | @abuzareal | legacy | Editorial header/section state | Assumes main section[id] and header-theme regions; application owns page structure. | [Reference](https://contour.abuzr.in/docs#browser-hooks) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
81
- | [`useIdleTrigger`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useIdleTrigger.ts#L9) | @abuzareal | stable (0.x) | Idle-time activation | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#browser-hooks) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
82
- | [`useInitialHashScroll`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useInitialHashScroll.ts#L8) | @abuzareal | legacy | Initial document-hash scrolling | Initial hash only; application owns routing and unknown targets. | [Reference](https://contour.abuzr.in/docs#browser-hooks) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
83
- | [`useMobileMenu`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useMobileMenu.ts#L9) | @abuzareal | experimental | Menu open/close and resize state | Caller provides semantics/focus; closes on Escape/outside press and desktop resize. | [Reference](https://contour.abuzr.in/docs#browser-hooks) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
84
- | [`useMotionPreference`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useMotionPreference.ts#L8) | @abuzareal | stable (0.x) | System reduced-motion subscription | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#theme-copy) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
85
- | [`usePrintPreparation`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/usePrintPreparation.ts#L6) | @abuzareal | legacy | Temporary print theme/disclosure changes | Mutates root theme/details during printing; application must verify print layout. | [Reference](https://contour.abuzr.in/docs#browser-hooks) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
86
- | [`useScrollSpy`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useScrollSpy.ts#L9) | @abuzareal | stable (0.x) | Active section observation | Stable section IDs and existing DOM anchors required; does not provide routing. | [Reference](https://contour.abuzr.in/docs#browser-hooks) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
87
- | [`useTheme`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useTheme.ts#L90) | @abuzareal | stable (0.x) | Scoped or document-theme preference | ThemeScope uses caller state only; outside it, root data-theme and aa-theme retain document ownership. | [Reference](https://contour.abuzr.in/docs#theme-copy) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
88
- | [`useToast`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useToast.ts#L19) | @abuzareal | stable (0.x) | Toast commands from provider | Must be called under ToastProvider; ephemeral feedback is not an operation result. | [Reference](https://contour.abuzr.in/docs#toasts) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
89
- | [`SceneBoundary`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/hero/SceneBoundary.tsx#L9) | @abuzareal | experimental | Hide failed scene subtree | Renders null after failure; no fallback prop/reset API; keep usable static content outside it. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
90
- | [`safeHref`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/safeHref.ts#L2) | @abuzareal | stable (0.x) | Reject executable URL schemes | Scheme validation only, not URL trust/authorization validation. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
91
- | [`cx`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/classNames.ts#L3) | @abuzareal | stable (0.x) | Join optional CSS class names | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
92
- | [`buttonClassName`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/classNames.ts#L26) | @abuzareal | stable (0.x) | Shared button-class recipe for buttons/anchors | Returns prefixed and compatibility classes; styled anchors retain native link responsibilities. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
93
- | [`formatIndex`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/format.ts#L4) | @abuzareal | stable (0.x) | Two-digit index formatting | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
94
- | [`readStorage`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/storage.ts#L14) | @abuzareal | legacy | Read local/session string safely | Returns raw string/null; caller parses and validates; no persistence guarantee. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
95
- | [`writeStorage`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/storage.ts#L23) | @abuzareal | legacy | Attempt local/session string persistence | Returns success boolean; browser policy can block persistence. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
96
- | [`storageKeys`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/storage.ts#L3) | @abuzareal | legacy | Inherited shared storage key names | Legacy aa-* keys are public compatibility constraints; no silent rename. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
97
- | [`nextIndexForKey`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/keyboard.ts#L14) | @abuzareal | stable (0.x) | Keyboard navigation index calculation | Calculates index, does not move focus or perform selection. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
98
- | [`fieldDescribedBy`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/a11y.ts#L4) | @abuzareal | stable (0.x) | Field hint/error ID calculation | Error description takes precedence over hint; caller connects the target input. | [Reference](https://contour.abuzr.in/docs#field) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
99
- | [`motionDisabledFor`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/motion.ts#L4) | @abuzareal | stable (0.x) | System and ancestor motion check | Browser/ancestor check; app still owns animation cancellation. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
28
+ | [`Alert`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Alert.tsx#L38) | @abuzareal | stable (0.x) | Inline feedback or banner | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#feedback) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
29
+ | [`Avatar`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Avatar.tsx#L21) | @abuzareal | stable (0.x) | Image or initials identity | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
30
+ | [`Badge`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Badge.tsx#L16) | @abuzareal | stable (0.x) | Short status label | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
31
+ | [`BrandMark`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/BrandMark.tsx#L14) | @abuzareal | legacy | Fixed inherited AA mark | Fixed inherited personal mark; supported for existing consumers, not a general logo system. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
32
+ | [`Breadcrumbs`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Breadcrumbs.tsx#L11) | @abuzareal | stable (0.x) | Page hierarchy navigation | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#navigation) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
33
+ | [`Button`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Button.tsx#L23) | @abuzareal | stable (0.x) | Native action button | Forwarded native button ref on React 18/19; loading disables activation; native attributes preserved. | [Reference](https://contour.abuzr.in/docs#buttons) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
34
+ | [`Card`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Card.tsx#L16) | @abuzareal | stable (0.x) | Content and footer container | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
35
+ | [`Checkbox`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Checkbox.tsx#L20) | @abuzareal | stable (0.x) | Native checkbox with label/error | Forwarded native input ref and caller ID; indeterminate handling and caller ARIA descriptions/validity remain preserved. | [Reference](https://contour.abuzr.in/docs/components/checkbox) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
36
+ | [`CountUp`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/CountUp.tsx#L21) | @abuzareal | stable (0.x) | Animated numeric display | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
37
+ | [`DataTable`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/DataTable.tsx#L28) | @abuzareal | stable (0.x) | Scalar rows with local sorting | String/number row values and local sort only; no remote sort, selection, loading controller or virtualization. | [Reference](https://contour.abuzr.in/docs#data-table) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
38
+ | [`DepthButton`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/DepthButton.tsx#L11) | @abuzareal | stable (0.x) | Native action with CSS depth | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#buttons) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
39
+ | [`Dialog`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Dialog.tsx#L41) | @abuzareal | stable (0.x) | Native modal or edge drawer | Native dialog ref and root/panel/body/footer/close-button props; app owns open/onClose; no initial-focus override. | [Reference](https://contour.abuzr.in/docs/components/dialog) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
40
+ | [`Disclosure`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Disclosure.tsx#L15) | @abuzareal | stable (0.x) | Native details/summary disclosure | Native details; defaultOpen only, no controlled open/onOpenChange; className is required. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
41
+ | [`Divider`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Divider.tsx#L7) | @abuzareal | stable (0.x) | Content separation | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
42
+ | [`DropdownMenu`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/DropdownMenu.tsx#L58) | @abuzareal | experimental | Action menu with keyboard selection | Collision-aware body/modal portal, button renderer and shared topmost dismissal; no submenu model. | [Reference](https://contour.abuzr.in/docs/components/dropdown-menu) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
43
+ | [`EmptyState`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/EmptyState.tsx#L12) | @abuzareal | stable (0.x) | Empty-result content and action | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
44
+ | [`ExternalLink`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/ExternalLink.tsx#L12) | @abuzareal | stable (0.x) | Styled native external anchor | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#buttons) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
45
+ | [`Field`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Field.tsx#L19) | @abuzareal | stable (0.x) | Label, hint and error frame | Caller wires the child ID/describedby; wrapper does not wire arbitrary children automatically. | [Reference](https://contour.abuzr.in/docs#field) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
46
+ | [`FlipCard`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/FlipCard.tsx#L19) | @abuzareal | stable (0.x) | Button-controlled two-face card | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
47
+ | [`IconButton`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/IconButton.tsx#L16) | @abuzareal | stable (0.x) | Native button with required accessible label | Forwarded native button ref on React 18/19; caller supplies a meaningful accessible label. | [Reference](https://contour.abuzr.in/docs#buttons) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
48
+ | [`Kbd`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Kbd.tsx#L5) | @abuzareal | stable (0.x) | Keyboard shortcut label | Displays a shortcut, does not register one. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
49
+ | [`Magnetic`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Magnetic.tsx#L15) | @abuzareal | stable (0.x) | Pointer-dependent decorative movement | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
50
+ | [`Marquee`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Marquee.tsx#L13) | @abuzareal | stable (0.x) | Repeated moving content strip | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
51
+ | [`Pagination`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Pagination.tsx#L31) | @abuzareal | stable (0.x) | Page-selection controls | Positive integer pages and in-range one-based page; application owns URL/fetch/slicing. | [Reference](https://contour.abuzr.in/docs#navigation) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
52
+ | [`Popover`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Popover.tsx#L51) | @abuzareal | experimental | Nonmodal panel with owned trigger | Root/button/panel refs, body/modal portal, collision placement, supported button renderer and focus policy; nonmodal, no focus trap. | [Reference](https://contour.abuzr.in/docs#floating) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
53
+ | [`ProgressBar`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/ProgressBar.tsx#L12) | @abuzareal | stable (0.x) | Determinate or indeterminate progress | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs/components/progress-bar) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
54
+ | [`RadioGroup`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/RadioGroup.tsx#L49) | @abuzareal | stable (0.x) | Native radio choices | Caller name/form, native default/reset/required/disabled, option input refs; generated fallback name remains; string callback. | [Reference](https://contour.abuzr.in/docs#choices) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
55
+ | [`Reveal`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Reveal.tsx#L14) | @abuzareal | stable (0.x) | Visibility-triggered content reveal | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
56
+ | [`RevealHeading`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/RevealHeading.tsx#L16) | @abuzareal | legacy | Editorial heading-line composition | Editorial h2 composition; application must preserve heading order. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
57
+ | [`ScrollProgress`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/ScrollProgress.tsx#L8) | @abuzareal | stable (0.x) | Document scroll readout | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
58
+ | [`SectionLabel`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/SectionLabel.tsx#L12) | @abuzareal | legacy | Editorial section metadata | Depends on Section editorial metadata/aside contract; not a general label primitive. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
59
+ | [`SegmentedControl`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/SegmentedControl.tsx#L16) | @abuzareal | stable (0.x) | Controlled single-choice buttons | No native named field or disabled-option API; application owns value and submission. | [Reference](https://contour.abuzr.in/docs#choices) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
60
+ | [`SelectField`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/SelectField.tsx#L33) | @abuzareal | stable (0.x) | Labelled native select | Native forwarded select ref; native choices, not searchable Combobox. | [Reference](https://contour.abuzr.in/docs/components/select-field) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
61
+ | [`Skeleton`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Skeleton.tsx#L11) | @abuzareal | stable (0.x) | Loading placeholder | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#feedback) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
62
+ | [`Slider`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Slider.tsx#L42) | @abuzareal | stable (0.x) | Controlled/default native range input | Native range ref/name/form/default/reset; numeric callback; browser sanitization/readout; range has no required constraint. | [Reference](https://contour.abuzr.in/docs#choices) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
63
+ | [`GitHubIcon`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/SocialIcons.tsx#L5) | @abuzareal | stable (0.x) | GitHub SVG mark | SVG only; caller owns link destination and accessible name. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
64
+ | [`LinkedInIcon`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/SocialIcons.tsx#L16) | @abuzareal | stable (0.x) | LinkedIn SVG mark | SVG only; caller owns link destination and accessible name. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
65
+ | [`Spinner`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Spinner.tsx#L13) | @abuzareal | stable (0.x) | Loading status indicator | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#feedback) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
66
+ | [`Stat`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Stat.tsx#L11) | @abuzareal | stable (0.x) | Supplied value and label display | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
67
+ | [`Stepper`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Stepper.tsx#L13) | @abuzareal | stable (0.x) | Step-progress display | Progress display, not a navigable wizard; application owns state and validation. | [Reference](https://contour.abuzr.in/docs#navigation) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
68
+ | [`Switch`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Switch.tsx#L40) | @abuzareal | stable (0.x) | Controlled/default on/off button | Button ref; checkbox-backed named/form/required submission, checked/default/reset and boolean callback; unchecked/disabled omit. | [Reference](https://contour.abuzr.in/docs#choices) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
69
+ | [`Tabs`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Tabs.tsx#L35) | @abuzareal | stable (0.x) | Controlled or default tab selection | Root/list/tab/panel props and refs; controlled/default selected ID; no disabled-tab/orientation/component-replacement API. | [Reference](https://contour.abuzr.in/docs/components/tabs) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
70
+ | [`Tag`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Tag.tsx#L14) | @abuzareal | stable (0.x) | Short label with optional removal | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
71
+ | [`TextArea`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/TextArea.tsx#L26) | @abuzareal | stable (0.x) | Native textarea, counter and resize | Native forwarded textarea ref; parent owns controlled reset; sizing is browser dependent. | [Reference](https://contour.abuzr.in/docs/components/text-area) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
72
+ | [`TextField`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/TextField.tsx#L28) | @abuzareal | stable (0.x) | Native input with label/counter | Native forwarded input ref; parent owns controlled values/reset; do not switch state ownership. | [Reference](https://contour.abuzr.in/docs/components/text-field) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
73
+ | [`ThemeToggle`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/ThemeToggle.tsx#L18) | @abuzareal | stable (0.x) | Scoped or document-theme control | Native button ref; ThemeScope uses caller state; outside it, root theme/storage behavior remains. | [Reference](https://contour.abuzr.in/docs#theme-copy) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
74
+ | [`TiltCard`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/TiltCard.tsx#L15) | @abuzareal | stable (0.x) | Pointer-dependent CSS depth | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
75
+ | [`Timeline`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Timeline.tsx#L8) | @abuzareal | stable (0.x) | Ordered entries supplied by caller | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
76
+ | [`ToastProvider`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/ToastProvider.tsx#L74) | @abuzareal | stable (0.x) | Toast context, queue and announcements | No application persistence; important failures need a durable visible record as well. | [Reference](https://contour.abuzr.in/docs/components/toast-provider) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
77
+ | [`Tooltip`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Tooltip.tsx#L24) | @abuzareal | experimental | Supplemental text hint | Hover/focus persistence and Escape suppression; supplemental noninteractive string only; collision-aware body/modal portal. | [Reference](https://contour.abuzr.in/docs#floating) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
78
+ | [`useClipboardCopy`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useClipboardCopy.ts#L10) | @abuzareal | stable (0.x) | Clipboard operation and feedback state | Clipboard access can fail; obsolete text/request/unmount completions are discarded in 0.2.1; app presents truthful feedback. | [Reference](https://contour.abuzr.in/docs#theme-copy) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
79
+ | [`useDismiss`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useDismiss.ts#L14) | @abuzareal | experimental | Document Escape/outside-press subscription | Shared owner-document topmost dismissal; optional branches/layer element/outside policy; caller manages focus. | [Reference](https://contour.abuzr.in/docs#browser-hooks) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
80
+ | [`useHeaderScroll`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useHeaderScroll.ts#L9) | @abuzareal | legacy | Editorial header/section state | Assumes main section[id] and header-theme regions; application owns page structure. | [Reference](https://contour.abuzr.in/docs#browser-hooks) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
81
+ | [`useIdleTrigger`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useIdleTrigger.ts#L9) | @abuzareal | stable (0.x) | Idle-time activation | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#browser-hooks) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
82
+ | [`useInitialHashScroll`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useInitialHashScroll.ts#L8) | @abuzareal | legacy | Initial document-hash scrolling | Initial hash only; application owns routing and unknown targets. | [Reference](https://contour.abuzr.in/docs#browser-hooks) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
83
+ | [`useMobileMenu`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useMobileMenu.ts#L9) | @abuzareal | experimental | Menu open/close and resize state | Caller provides semantics/focus; closes on Escape/outside press and desktop resize. | [Reference](https://contour.abuzr.in/docs#browser-hooks) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
84
+ | [`useMotionPreference`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useMotionPreference.ts#L8) | @abuzareal | stable (0.x) | System reduced-motion subscription | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#theme-copy) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
85
+ | [`usePrintPreparation`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/usePrintPreparation.ts#L6) | @abuzareal | legacy | Temporary print theme/disclosure changes | Mutates root theme/details during printing; application must verify print layout. | [Reference](https://contour.abuzr.in/docs#browser-hooks) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
86
+ | [`useScrollSpy`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useScrollSpy.ts#L9) | @abuzareal | stable (0.x) | Active section observation | Stable section IDs and existing DOM anchors required; does not provide routing. | [Reference](https://contour.abuzr.in/docs#browser-hooks) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
87
+ | [`useTheme`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useTheme.ts#L90) | @abuzareal | stable (0.x) | Scoped or document-theme preference | ThemeScope uses caller state only; outside it, root data-theme and aa-theme retain document ownership. | [Reference](https://contour.abuzr.in/docs#theme-copy) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
88
+ | [`useToast`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useToast.ts#L19) | @abuzareal | stable (0.x) | Toast commands from provider | Must be called under ToastProvider; ephemeral feedback is not an operation result. | [Reference](https://contour.abuzr.in/docs#toasts) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
89
+ | [`SceneBoundary`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/hero/SceneBoundary.tsx#L9) | @abuzareal | experimental | Hide failed scene subtree | Renders null after failure; no fallback prop/reset API; keep usable static content outside it. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
90
+ | [`safeHref`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/safeHref.ts#L2) | @abuzareal | stable (0.x) | Reject executable URL schemes | Scheme validation only, not URL trust/authorization validation. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
91
+ | [`cx`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/classNames.ts#L3) | @abuzareal | stable (0.x) | Join optional CSS class names | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
92
+ | [`buttonClassName`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/classNames.ts#L26) | @abuzareal | stable (0.x) | Shared button-class recipe for buttons/anchors | Returns prefixed and compatibility classes; styled anchors retain native link responsibilities. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
93
+ | [`formatIndex`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/format.ts#L4) | @abuzareal | stable (0.x) | Two-digit index formatting | Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
94
+ | [`readStorage`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/storage.ts#L14) | @abuzareal | legacy | Read local/session string safely | Returns raw string/null; caller parses and validates; no persistence guarantee. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
95
+ | [`writeStorage`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/storage.ts#L23) | @abuzareal | legacy | Attempt local/session string persistence | Returns success boolean; browser policy can block persistence. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
96
+ | [`storageKeys`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/storage.ts#L3) | @abuzareal | legacy | Inherited shared storage key names | Legacy aa-* keys are public compatibility constraints; no silent rename. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
97
+ | [`nextIndexForKey`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/keyboard.ts#L14) | @abuzareal | stable (0.x) | Keyboard navigation index calculation | Calculates index, does not move focus or perform selection. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
98
+ | [`fieldDescribedBy`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/a11y.ts#L4) | @abuzareal | stable (0.x) | Field hint/error ID calculation | Error description takes precedence over hint; caller connects the target input. | [Reference](https://contour.abuzr.in/docs#field) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
99
+ | [`motionDisabledFor`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/motion.ts#L4) | @abuzareal | stable (0.x) | System and ancestor motion check | Browser/ancestor check; app still owns animation cancellation. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
100
100
 
101
101
  ### Type-only exports
102
102
 
103
103
  | Export / source | Maintainer | Status | Intended use | Known limits | Documentation | Evidence |
104
104
  | ------------------------------------------------------------------------------------------------------------------------ | ---------- | ------------ | ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
105
- | [`Section`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/types.ts#L1) | @abuzareal | stable (0.x) | Type contract for Section | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
106
- | [`AlertTone`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Alert.tsx#L15) | @abuzareal | stable (0.x) | Type contract for Alert | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#feedback) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
107
- | [`AlertProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Alert.tsx#L27) | @abuzareal | stable (0.x) | Type contract for Alert | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#feedback) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
108
- | [`AvatarProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Avatar.tsx#L4) | @abuzareal | stable (0.x) | Type contract for Avatar | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
109
- | [`BadgeTone`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Badge.tsx#L5) | @abuzareal | stable (0.x) | Type contract for Badge | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
110
- | [`BadgeProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Badge.tsx#L8) | @abuzareal | stable (0.x) | Type contract for Badge | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
111
- | [`BrandMarkProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/BrandMark.tsx#L8) | @abuzareal | legacy | Type contract for BrandMark | Type-only; no runtime value. Fixed inherited personal mark; supported for existing consumers, not a general logo system. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
112
- | [`BreadcrumbsProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Breadcrumbs.tsx#L6) | @abuzareal | stable (0.x) | Type contract for Breadcrumbs | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#navigation) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
113
- | [`ButtonProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Button.tsx#L13) | @abuzareal | stable (0.x) | Type contract for Button | Type-only; no runtime value. Forwarded native button ref on React 18/19; loading disables activation; native attributes preserved. | [Reference](https://contour.abuzr.in/docs#buttons) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
114
- | [`CardProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Card.tsx#L5) | @abuzareal | stable (0.x) | Type contract for Card | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
115
- | [`CheckboxProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Checkbox.tsx#L10) | @abuzareal | stable (0.x) | Type contract for Checkbox | Type-only; no runtime value. Forwarded native input ref and caller ID; indeterminate handling and caller ARIA descriptions/validity remain preserved. | [Reference](https://contour.abuzr.in/docs/components/checkbox) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
116
- | [`CountUpProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/CountUp.tsx#L9) | @abuzareal | stable (0.x) | Type contract for CountUp | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
117
- | [`TableColumn`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/DataTable.tsx#L10) | @abuzareal | stable (0.x) | Type contract for DataTable | Type-only; no runtime value. String/number row values and local sort only; no remote sort, selection, loading controller or virtualization. | [Reference](https://contour.abuzr.in/docs#data-table) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
118
- | [`DataTableProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/DataTable.tsx#L19) | @abuzareal | stable (0.x) | Type contract for DataTable | Type-only; no runtime value. String/number row values and local sort only; no remote sort, selection, loading controller or virtualization. | [Reference](https://contour.abuzr.in/docs#data-table) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
119
- | [`DepthButtonProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/DepthButton.tsx#L7) | @abuzareal | stable (0.x) | Type contract for DepthButton | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#buttons) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
120
- | [`DialogProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Dialog.tsx#L22) | @abuzareal | stable (0.x) | Type contract for Dialog | Type-only; no runtime value. Native dialog ref and root/panel/body/footer/close-button props; app owns open/onClose; no initial-focus override. | [Reference](https://contour.abuzr.in/docs/components/dialog) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
121
- | [`DisclosureProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Disclosure.tsx#L6) | @abuzareal | stable (0.x) | Type contract for Disclosure | Type-only; no runtime value. Native details; defaultOpen only, no controlled open/onOpenChange; className is required. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
122
- | [`DividerProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Divider.tsx#L3) | @abuzareal | stable (0.x) | Type contract for Divider | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
123
- | [`MenuItem`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/DropdownMenu.tsx#L32) | @abuzareal | experimental | Type contract for DropdownMenu | Type-only; no runtime value. Collision-aware body/modal portal, button renderer and shared topmost dismissal; no submenu model. | [Reference](https://contour.abuzr.in/docs/components/dropdown-menu) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
124
- | [`DropdownMenuProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/DropdownMenu.tsx#L42) | @abuzareal | experimental | Type contract for DropdownMenu | Type-only; no runtime value. Collision-aware body/modal portal, button renderer and shared topmost dismissal; no submenu model. | [Reference](https://contour.abuzr.in/docs/components/dropdown-menu) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
125
- | [`EmptyStateProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/EmptyState.tsx#L5) | @abuzareal | stable (0.x) | Type contract for EmptyState | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
126
- | [`ExternalLinkProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/ExternalLink.tsx#L7) | @abuzareal | stable (0.x) | Type contract for ExternalLink | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#buttons) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
127
- | [`FieldProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Field.tsx#L6) | @abuzareal | stable (0.x) | Type contract for Field | Type-only; no runtime value. Caller wires the child ID/describedby; wrapper does not wire arbitrary children automatically. | [Reference](https://contour.abuzr.in/docs#field) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
128
- | [`FlipCardProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/FlipCard.tsx#L8) | @abuzareal | stable (0.x) | Type contract for FlipCard | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
129
- | [`IconButtonProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/IconButton.tsx#L7) | @abuzareal | stable (0.x) | Type contract for IconButton | Type-only; no runtime value. Forwarded native button ref on React 18/19; caller supplies a meaningful accessible label. | [Reference](https://contour.abuzr.in/docs#buttons) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
130
- | [`MagneticProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Magnetic.tsx#L9) | @abuzareal | stable (0.x) | Type contract for Magnetic | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
131
- | [`MarqueeProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Marquee.tsx#L6) | @abuzareal | stable (0.x) | Type contract for Marquee | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
132
- | [`PaginationProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Pagination.tsx#L9) | @abuzareal | stable (0.x) | Type contract for Pagination | Type-only; no runtime value. Positive integer pages and in-range one-based page; application owns URL/fetch/slicing. | [Reference](https://contour.abuzr.in/docs#navigation) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
133
- | [`PopoverProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Popover.tsx#L30) | @abuzareal | experimental | Type contract for Popover | Type-only; no runtime value. Root/button/panel refs, body/modal portal, collision placement, supported button renderer and focus policy; nonmodal, no focus trap. | [Reference](https://contour.abuzr.in/docs#floating) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
134
- | [`ProgressBarProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/ProgressBar.tsx#L5) | @abuzareal | stable (0.x) | Type contract for ProgressBar | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs/components/progress-bar) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
135
- | [`RadioGroupProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/RadioGroup.tsx#L15) | @abuzareal | stable (0.x) | Type contract for RadioGroup | Type-only; no runtime value. Caller name/form, native default/reset/required/disabled, option input refs; generated fallback name remains; string callback. | [Reference](https://contour.abuzr.in/docs#choices) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
136
- | [`RevealProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Reveal.tsx#L7) | @abuzareal | stable (0.x) | Type contract for Reveal | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
137
- | [`HeadingLine`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/RevealHeading.tsx#L5) | @abuzareal | legacy | Type contract for RevealHeading | Type-only; no runtime value. Editorial h2 composition; application must preserve heading order. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
138
- | [`RevealHeadingProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/RevealHeading.tsx#L11) | @abuzareal | legacy | Type contract for RevealHeading | Type-only; no runtime value. Editorial h2 composition; application must preserve heading order. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
139
- | [`SectionLabelProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/SectionLabel.tsx#L6) | @abuzareal | legacy | Type contract for SectionLabel | Type-only; no runtime value. Depends on Section editorial metadata/aside contract; not a general label primitive. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
140
- | [`SegmentedControlProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/SegmentedControl.tsx#L9) | @abuzareal | stable (0.x) | Type contract for SegmentedControl | Type-only; no runtime value. No native named field or disabled-option API; application owns value and submission. | [Reference](https://contour.abuzr.in/docs#choices) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
141
- | [`SelectFieldProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/SelectField.tsx#L13) | @abuzareal | stable (0.x) | Type contract for SelectField | Type-only; no runtime value. Native forwarded select ref; native choices, not searchable Combobox. | [Reference](https://contour.abuzr.in/docs/components/select-field) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
142
- | [`SkeletonProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Skeleton.tsx#L5) | @abuzareal | stable (0.x) | Type contract for Skeleton | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#feedback) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
143
- | [`SliderProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Slider.tsx#L16) | @abuzareal | stable (0.x) | Type contract for Slider | Type-only; no runtime value. Native range ref/name/form/default/reset; numeric callback; browser sanitization/readout; range has no required constraint. | [Reference](https://contour.abuzr.in/docs#choices) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
144
- | [`SocialIconProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/SocialIcons.tsx#L3) | @abuzareal | stable (0.x) | Type contract for LinkedInIcon | Type-only; no runtime value. SVG only; caller owns link destination and accessible name. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
145
- | [`SpinnerProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Spinner.tsx#L5) | @abuzareal | stable (0.x) | Type contract for Spinner | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#feedback) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
146
- | [`StatProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Stat.tsx#L5) | @abuzareal | stable (0.x) | Type contract for Stat | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
147
- | [`StepperProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Stepper.tsx#L6) | @abuzareal | stable (0.x) | Type contract for Stepper | Type-only; no runtime value. Progress display, not a navigable wizard; application owns state and validation. | [Reference](https://contour.abuzr.in/docs#navigation) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
148
- | [`SwitchProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Switch.tsx#L17) | @abuzareal | stable (0.x) | Type contract for Switch | Type-only; no runtime value. Button ref; checkbox-backed named/form/required submission, checked/default/reset and boolean callback; unchecked/disabled omit. | [Reference](https://contour.abuzr.in/docs#choices) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
149
- | [`TabItem`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Tabs.tsx#L18) | @abuzareal | stable (0.x) | Type contract for Tabs | Type-only; no runtime value. Root/list/tab/panel props and refs; controlled/default selected ID; no disabled-tab/orientation/component-replacement API. | [Reference](https://contour.abuzr.in/docs/components/tabs) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
150
- | [`TabsProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Tabs.tsx#L26) | @abuzareal | stable (0.x) | Type contract for Tabs | Type-only; no runtime value. Root/list/tab/panel props and refs; controlled/default selected ID; no disabled-tab/orientation/component-replacement API. | [Reference](https://contour.abuzr.in/docs/components/tabs) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
151
- | [`TagProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Tag.tsx#L8) | @abuzareal | stable (0.x) | Type contract for Tag | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
152
- | [`TextAreaProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/TextArea.tsx#L18) | @abuzareal | stable (0.x) | Type contract for TextArea | Type-only; no runtime value. Native forwarded textarea ref; parent owns controlled reset; sizing is browser dependent. | [Reference](https://contour.abuzr.in/docs/components/text-area) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
153
- | [`TextFieldProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/TextField.tsx#L18) | @abuzareal | stable (0.x) | Type contract for TextField | Type-only; no runtime value. Native forwarded input ref; parent owns controlled values/reset; do not switch state ownership. | [Reference](https://contour.abuzr.in/docs/components/text-field) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
154
- | [`ThemeToggleProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/ThemeToggle.tsx#L10) | @abuzareal | stable (0.x) | Type contract for ThemeToggle | Type-only; no runtime value. Native button ref; ThemeScope uses caller state; outside it, root theme/storage behavior remains. | [Reference](https://contour.abuzr.in/docs#theme-copy) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
155
- | [`TiltCardProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/TiltCard.tsx#L9) | @abuzareal | stable (0.x) | Type contract for TiltCard | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
156
- | [`TimelineProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Timeline.tsx#L4) | @abuzareal | stable (0.x) | Type contract for Timeline | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
157
- | [`TooltipProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Tooltip.tsx#L18) | @abuzareal | experimental | Type contract for Tooltip | Type-only; no runtime value. Hover/focus persistence and Escape suppression; supplemental noninteractive string only; collision-aware body/modal portal. | [Reference](https://contour.abuzr.in/docs#floating) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
158
- | [`CopyStatus`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useClipboardCopy.ts#L6) | @abuzareal | stable (0.x) | Type contract for useClipboardCopy | Type-only; no runtime value. Clipboard access can fail; obsolete text/request/unmount completions are discarded in 0.2.1; app presents truthful feedback. | [Reference](https://contour.abuzr.in/docs#theme-copy) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
159
- | [`Theme`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useTheme.ts#L15) | @abuzareal | stable (0.x) | Type contract for useTheme | Type-only; no runtime value. ThemeScope uses caller state only; outside it, root data-theme and aa-theme retain document ownership. | [Reference](https://contour.abuzr.in/docs#theme-copy) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
160
- | [`ToastInput`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useToast.ts#L7) | @abuzareal | stable (0.x) | Type contract for useToast | Type-only; no runtime value. Must be called under ToastProvider; ephemeral feedback is not an operation result. | [Reference](https://contour.abuzr.in/docs#toasts) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
161
- | [`ToastContextValue`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useToast.ts#L13) | @abuzareal | stable (0.x) | Type contract for useToast | Type-only; no runtime value. Must be called under ToastProvider; ephemeral feedback is not an operation result. | [Reference](https://contour.abuzr.in/docs#toasts) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
162
- | [`ToastContext`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useToast.ts#L17) | @abuzareal | stable (0.x) | Type contract for useToast | Type-only; no runtime value. Must be called under ToastProvider; ephemeral feedback is not an operation result. | [Reference](https://contour.abuzr.in/docs#toasts) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
163
- | [`ButtonVariant`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/classNames.ts#L21) | @abuzareal | stable (0.x) | Type contract for buttonClassName | Type-only; no runtime value. Returns prefixed and compatibility classes; styled anchors retain native link responsibilities. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
164
- | [`ButtonSize`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/classNames.ts#L23) | @abuzareal | stable (0.x) | Type contract for buttonClassName | Type-only; no runtime value. Returns prefixed and compatibility classes; styled anchors retain native link responsibilities. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
105
+ | [`Section`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/types.ts#L1) | @abuzareal | stable (0.x) | Type contract for Section | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
106
+ | [`AlertTone`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Alert.tsx#L15) | @abuzareal | stable (0.x) | Type contract for Alert | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#feedback) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
107
+ | [`AlertProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Alert.tsx#L27) | @abuzareal | stable (0.x) | Type contract for Alert | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#feedback) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
108
+ | [`AvatarProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Avatar.tsx#L4) | @abuzareal | stable (0.x) | Type contract for Avatar | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
109
+ | [`BadgeTone`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Badge.tsx#L5) | @abuzareal | stable (0.x) | Type contract for Badge | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
110
+ | [`BadgeProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Badge.tsx#L8) | @abuzareal | stable (0.x) | Type contract for Badge | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
111
+ | [`BrandMarkProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/BrandMark.tsx#L8) | @abuzareal | legacy | Type contract for BrandMark | Type-only; no runtime value. Fixed inherited personal mark; supported for existing consumers, not a general logo system. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
112
+ | [`BreadcrumbsProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Breadcrumbs.tsx#L6) | @abuzareal | stable (0.x) | Type contract for Breadcrumbs | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#navigation) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
113
+ | [`ButtonProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Button.tsx#L13) | @abuzareal | stable (0.x) | Type contract for Button | Type-only; no runtime value. Forwarded native button ref on React 18/19; loading disables activation; native attributes preserved. | [Reference](https://contour.abuzr.in/docs#buttons) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
114
+ | [`CardProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Card.tsx#L5) | @abuzareal | stable (0.x) | Type contract for Card | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
115
+ | [`CheckboxProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Checkbox.tsx#L10) | @abuzareal | stable (0.x) | Type contract for Checkbox | Type-only; no runtime value. Forwarded native input ref and caller ID; indeterminate handling and caller ARIA descriptions/validity remain preserved. | [Reference](https://contour.abuzr.in/docs/components/checkbox) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
116
+ | [`CountUpProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/CountUp.tsx#L9) | @abuzareal | stable (0.x) | Type contract for CountUp | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
117
+ | [`TableColumn`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/DataTable.tsx#L10) | @abuzareal | stable (0.x) | Type contract for DataTable | Type-only; no runtime value. String/number row values and local sort only; no remote sort, selection, loading controller or virtualization. | [Reference](https://contour.abuzr.in/docs#data-table) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
118
+ | [`DataTableProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/DataTable.tsx#L19) | @abuzareal | stable (0.x) | Type contract for DataTable | Type-only; no runtime value. String/number row values and local sort only; no remote sort, selection, loading controller or virtualization. | [Reference](https://contour.abuzr.in/docs#data-table) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
119
+ | [`DepthButtonProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/DepthButton.tsx#L7) | @abuzareal | stable (0.x) | Type contract for DepthButton | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#buttons) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
120
+ | [`DialogProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Dialog.tsx#L22) | @abuzareal | stable (0.x) | Type contract for Dialog | Type-only; no runtime value. Native dialog ref and root/panel/body/footer/close-button props; app owns open/onClose; no initial-focus override. | [Reference](https://contour.abuzr.in/docs/components/dialog) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
121
+ | [`DisclosureProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Disclosure.tsx#L6) | @abuzareal | stable (0.x) | Type contract for Disclosure | Type-only; no runtime value. Native details; defaultOpen only, no controlled open/onOpenChange; className is required. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
122
+ | [`DividerProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Divider.tsx#L3) | @abuzareal | stable (0.x) | Type contract for Divider | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
123
+ | [`MenuItem`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/DropdownMenu.tsx#L32) | @abuzareal | experimental | Type contract for DropdownMenu | Type-only; no runtime value. Collision-aware body/modal portal, button renderer and shared topmost dismissal; no submenu model. | [Reference](https://contour.abuzr.in/docs/components/dropdown-menu) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
124
+ | [`DropdownMenuProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/DropdownMenu.tsx#L42) | @abuzareal | experimental | Type contract for DropdownMenu | Type-only; no runtime value. Collision-aware body/modal portal, button renderer and shared topmost dismissal; no submenu model. | [Reference](https://contour.abuzr.in/docs/components/dropdown-menu) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
125
+ | [`EmptyStateProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/EmptyState.tsx#L5) | @abuzareal | stable (0.x) | Type contract for EmptyState | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
126
+ | [`ExternalLinkProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/ExternalLink.tsx#L7) | @abuzareal | stable (0.x) | Type contract for ExternalLink | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#buttons) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
127
+ | [`FieldProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Field.tsx#L6) | @abuzareal | stable (0.x) | Type contract for Field | Type-only; no runtime value. Caller wires the child ID/describedby; wrapper does not wire arbitrary children automatically. | [Reference](https://contour.abuzr.in/docs#field) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
128
+ | [`FlipCardProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/FlipCard.tsx#L8) | @abuzareal | stable (0.x) | Type contract for FlipCard | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
129
+ | [`IconButtonProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/IconButton.tsx#L7) | @abuzareal | stable (0.x) | Type contract for IconButton | Type-only; no runtime value. Forwarded native button ref on React 18/19; caller supplies a meaningful accessible label. | [Reference](https://contour.abuzr.in/docs#buttons) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
130
+ | [`MagneticProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Magnetic.tsx#L9) | @abuzareal | stable (0.x) | Type contract for Magnetic | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
131
+ | [`MarqueeProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Marquee.tsx#L6) | @abuzareal | stable (0.x) | Type contract for Marquee | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
132
+ | [`PaginationProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Pagination.tsx#L9) | @abuzareal | stable (0.x) | Type contract for Pagination | Type-only; no runtime value. Positive integer pages and in-range one-based page; application owns URL/fetch/slicing. | [Reference](https://contour.abuzr.in/docs#navigation) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
133
+ | [`PopoverProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Popover.tsx#L30) | @abuzareal | experimental | Type contract for Popover | Type-only; no runtime value. Root/button/panel refs, body/modal portal, collision placement, supported button renderer and focus policy; nonmodal, no focus trap. | [Reference](https://contour.abuzr.in/docs#floating) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
134
+ | [`ProgressBarProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/ProgressBar.tsx#L5) | @abuzareal | stable (0.x) | Type contract for ProgressBar | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs/components/progress-bar) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
135
+ | [`RadioGroupProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/RadioGroup.tsx#L15) | @abuzareal | stable (0.x) | Type contract for RadioGroup | Type-only; no runtime value. Caller name/form, native default/reset/required/disabled, option input refs; generated fallback name remains; string callback. | [Reference](https://contour.abuzr.in/docs#choices) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
136
+ | [`RevealProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Reveal.tsx#L7) | @abuzareal | stable (0.x) | Type contract for Reveal | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
137
+ | [`HeadingLine`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/RevealHeading.tsx#L5) | @abuzareal | legacy | Type contract for RevealHeading | Type-only; no runtime value. Editorial h2 composition; application must preserve heading order. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
138
+ | [`RevealHeadingProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/RevealHeading.tsx#L11) | @abuzareal | legacy | Type contract for RevealHeading | Type-only; no runtime value. Editorial h2 composition; application must preserve heading order. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
139
+ | [`SectionLabelProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/SectionLabel.tsx#L6) | @abuzareal | legacy | Type contract for SectionLabel | Type-only; no runtime value. Depends on Section editorial metadata/aside contract; not a general label primitive. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
140
+ | [`SegmentedControlProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/SegmentedControl.tsx#L9) | @abuzareal | stable (0.x) | Type contract for SegmentedControl | Type-only; no runtime value. No native named field or disabled-option API; application owns value and submission. | [Reference](https://contour.abuzr.in/docs#choices) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
141
+ | [`SelectFieldProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/SelectField.tsx#L13) | @abuzareal | stable (0.x) | Type contract for SelectField | Type-only; no runtime value. Native forwarded select ref; native choices, not searchable Combobox. | [Reference](https://contour.abuzr.in/docs/components/select-field) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
142
+ | [`SkeletonProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Skeleton.tsx#L5) | @abuzareal | stable (0.x) | Type contract for Skeleton | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#feedback) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
143
+ | [`SliderProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Slider.tsx#L16) | @abuzareal | stable (0.x) | Type contract for Slider | Type-only; no runtime value. Native range ref/name/form/default/reset; numeric callback; browser sanitization/readout; range has no required constraint. | [Reference](https://contour.abuzr.in/docs#choices) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
144
+ | [`SocialIconProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/SocialIcons.tsx#L3) | @abuzareal | stable (0.x) | Type contract for LinkedInIcon | Type-only; no runtime value. SVG only; caller owns link destination and accessible name. | [Reference](https://contour.abuzr.in/docs#identity) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
145
+ | [`SpinnerProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Spinner.tsx#L5) | @abuzareal | stable (0.x) | Type contract for Spinner | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#feedback) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
146
+ | [`StatProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Stat.tsx#L5) | @abuzareal | stable (0.x) | Type contract for Stat | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
147
+ | [`StepperProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Stepper.tsx#L6) | @abuzareal | stable (0.x) | Type contract for Stepper | Type-only; no runtime value. Progress display, not a navigable wizard; application owns state and validation. | [Reference](https://contour.abuzr.in/docs#navigation) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
148
+ | [`SwitchProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Switch.tsx#L17) | @abuzareal | stable (0.x) | Type contract for Switch | Type-only; no runtime value. Button ref; checkbox-backed named/form/required submission, checked/default/reset and boolean callback; unchecked/disabled omit. | [Reference](https://contour.abuzr.in/docs#choices) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
149
+ | [`TabItem`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Tabs.tsx#L18) | @abuzareal | stable (0.x) | Type contract for Tabs | Type-only; no runtime value. Root/list/tab/panel props and refs; controlled/default selected ID; no disabled-tab/orientation/component-replacement API. | [Reference](https://contour.abuzr.in/docs/components/tabs) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
150
+ | [`TabsProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Tabs.tsx#L26) | @abuzareal | stable (0.x) | Type contract for Tabs | Type-only; no runtime value. Root/list/tab/panel props and refs; controlled/default selected ID; no disabled-tab/orientation/component-replacement API. | [Reference](https://contour.abuzr.in/docs/components/tabs) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
151
+ | [`TagProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Tag.tsx#L8) | @abuzareal | stable (0.x) | Type contract for Tag | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#metadata) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
152
+ | [`TextAreaProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/TextArea.tsx#L18) | @abuzareal | stable (0.x) | Type contract for TextArea | Type-only; no runtime value. Native forwarded textarea ref; parent owns controlled reset; sizing is browser dependent. | [Reference](https://contour.abuzr.in/docs/components/text-area) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
153
+ | [`TextFieldProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/TextField.tsx#L18) | @abuzareal | stable (0.x) | Type contract for TextField | Type-only; no runtime value. Native forwarded input ref; parent owns controlled values/reset; do not switch state ownership. | [Reference](https://contour.abuzr.in/docs/components/text-field) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
154
+ | [`ThemeToggleProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/ThemeToggle.tsx#L10) | @abuzareal | stable (0.x) | Type contract for ThemeToggle | Type-only; no runtime value. Native button ref; ThemeScope uses caller state; outside it, root theme/storage behavior remains. | [Reference](https://contour.abuzr.in/docs#theme-copy) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
155
+ | [`TiltCardProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/TiltCard.tsx#L9) | @abuzareal | stable (0.x) | Type contract for TiltCard | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#motion) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
156
+ | [`TimelineProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Timeline.tsx#L4) | @abuzareal | stable (0.x) | Type contract for Timeline | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#content) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
157
+ | [`TooltipProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Tooltip.tsx#L18) | @abuzareal | experimental | Type contract for Tooltip | Type-only; no runtime value. Hover/focus persistence and Escape suppression; supplemental noninteractive string only; collision-aware body/modal portal. | [Reference](https://contour.abuzr.in/docs#floating) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
158
+ | [`CopyStatus`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useClipboardCopy.ts#L6) | @abuzareal | stable (0.x) | Type contract for useClipboardCopy | Type-only; no runtime value. Clipboard access can fail; obsolete text/request/unmount completions are discarded in 0.2.1; app presents truthful feedback. | [Reference](https://contour.abuzr.in/docs#theme-copy) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
159
+ | [`Theme`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useTheme.ts#L15) | @abuzareal | stable (0.x) | Type contract for useTheme | Type-only; no runtime value. ThemeScope uses caller state only; outside it, root data-theme and aa-theme retain document ownership. | [Reference](https://contour.abuzr.in/docs#theme-copy) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
160
+ | [`ToastInput`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useToast.ts#L7) | @abuzareal | stable (0.x) | Type contract for useToast | Type-only; no runtime value. Must be called under ToastProvider; ephemeral feedback is not an operation result. | [Reference](https://contour.abuzr.in/docs#toasts) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
161
+ | [`ToastContextValue`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useToast.ts#L13) | @abuzareal | stable (0.x) | Type contract for useToast | Type-only; no runtime value. Must be called under ToastProvider; ephemeral feedback is not an operation result. | [Reference](https://contour.abuzr.in/docs#toasts) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
162
+ | [`ToastContext`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useToast.ts#L17) | @abuzareal | stable (0.x) | Type contract for useToast | Type-only; no runtime value. Must be called under ToastProvider; ephemeral feedback is not an operation result. | [Reference](https://contour.abuzr.in/docs#toasts) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
163
+ | [`ButtonVariant`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/classNames.ts#L21) | @abuzareal | stable (0.x) | Type contract for buttonClassName | Type-only; no runtime value. Returns prefixed and compatibility classes; styled anchors retain native link responsibilities. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
164
+ | [`ButtonSize`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/classNames.ts#L23) | @abuzareal | stable (0.x) | Type contract for buttonClassName | Type-only; no runtime value. Returns prefixed and compatibility classes; styled anchors retain native link responsibilities. | [Reference](https://contour.abuzr.in/docs#utilities) | D: emitted declaration; C: core package compile/import; behavior coverage is sampled |
165
165
 
166
166
  ## Optional: @abuzareal/contour-ui/three
167
167
 
@@ -171,29 +171,29 @@ These identify reproducible checks, not claims that every row has a dedicated be
171
171
 
172
172
  | Export / source | Maintainer | Status | Intended use | Known limits | Documentation | Evidence |
173
173
  | ------------------------------------------------------------------------------------------------------------- | ---------- | ------------ | ----------------------------------------- | -------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
174
- | [`Sculpture`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/hero/Sculpture.tsx#L75) | @abuzareal | experimental | Experimental link sculpture scene | WebGL, sized container, lazy/static fallback and motionEnabled required; setup captured on mount. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
175
- | [`ObjectStudy`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/three/ObjectStudy.tsx#L36) | @abuzareal | experimental | Experimental material/geometry scene | WebGL, sized container, study/label/motionEnabled required; experimental scene contract. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
176
- | [`useThreeStage`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useThreeStage.ts#L41) | @abuzareal | experimental | Experimental renderer and scene lifecycle | Setup captured on mount; register owned cleanup immediately with onDispose; do not double-dispose. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
177
- | [`createLinkGeometry`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/threeMaterials.ts#L58) | @abuzareal | experimental | Create owned link geometry | Experimental GPU resource; caller owns disposal, sized lazy scene and usable static fallback. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
178
- | [`createChrome`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/threeMaterials.ts#L4) | @abuzareal | experimental | Create owned chrome material | Experimental GPU resource; caller owns disposal, sized lazy scene and usable static fallback. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
179
- | [`createLime`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/threeMaterials.ts#L12) | @abuzareal | experimental | Create owned lime material | Experimental GPU resource; caller owns disposal, sized lazy scene and usable static fallback. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
180
- | [`createInk`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/threeMaterials.ts#L20) | @abuzareal | experimental | Create owned ink material | Experimental GPU resource; caller owns disposal, sized lazy scene and usable static fallback. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
181
- | [`createGlass`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/threeMaterials.ts#L29) | @abuzareal | experimental | Create owned glass material | Experimental GPU resource; caller owns disposal, sized lazy scene and usable static fallback. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
182
- | [`createMaterialSet`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/threeStudies.ts#L18) | @abuzareal | experimental | Create owned material-study objects | Experimental GPU resource; caller owns disposal, sized lazy scene and usable static fallback. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
183
- | [`createGeometrySet`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/threeStudies.ts#L31) | @abuzareal | experimental | Create owned geometry-study objects | Experimental GPU resource; caller owns disposal, sized lazy scene and usable static fallback. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
184
- | [`objectStudies`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/threeStudies.ts#L52) | @abuzareal | experimental | Named scene factories | Experimental GPU resource; caller owns disposal, sized lazy scene and usable static fallback. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
174
+ | [`Sculpture`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/hero/Sculpture.tsx#L75) | @abuzareal | experimental | Experimental link sculpture scene | WebGL, sized container, lazy/static fallback and motionEnabled required; setup captured on mount. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
175
+ | [`ObjectStudy`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/three/ObjectStudy.tsx#L36) | @abuzareal | experimental | Experimental material/geometry scene | WebGL, sized container, study/label/motionEnabled required; experimental scene contract. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
176
+ | [`useThreeStage`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useThreeStage.ts#L41) | @abuzareal | experimental | Experimental renderer and scene lifecycle | Setup captured on mount; register owned cleanup immediately with onDispose; do not double-dispose. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
177
+ | [`createLinkGeometry`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/threeMaterials.ts#L58) | @abuzareal | experimental | Create owned link geometry | Experimental GPU resource; caller owns disposal, sized lazy scene and usable static fallback. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
178
+ | [`createChrome`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/threeMaterials.ts#L4) | @abuzareal | experimental | Create owned chrome material | Experimental GPU resource; caller owns disposal, sized lazy scene and usable static fallback. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
179
+ | [`createLime`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/threeMaterials.ts#L12) | @abuzareal | experimental | Create owned lime material | Experimental GPU resource; caller owns disposal, sized lazy scene and usable static fallback. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
180
+ | [`createInk`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/threeMaterials.ts#L20) | @abuzareal | experimental | Create owned ink material | Experimental GPU resource; caller owns disposal, sized lazy scene and usable static fallback. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
181
+ | [`createGlass`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/threeMaterials.ts#L29) | @abuzareal | experimental | Create owned glass material | Experimental GPU resource; caller owns disposal, sized lazy scene and usable static fallback. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
182
+ | [`createMaterialSet`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/threeStudies.ts#L18) | @abuzareal | experimental | Create owned material-study objects | Experimental GPU resource; caller owns disposal, sized lazy scene and usable static fallback. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
183
+ | [`createGeometrySet`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/threeStudies.ts#L31) | @abuzareal | experimental | Create owned geometry-study objects | Experimental GPU resource; caller owns disposal, sized lazy scene and usable static fallback. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
184
+ | [`objectStudies`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/threeStudies.ts#L52) | @abuzareal | experimental | Named scene factories | Experimental GPU resource; caller owns disposal, sized lazy scene and usable static fallback. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
185
185
 
186
186
  ### Type-only exports
187
187
 
188
188
  | Export / source | Maintainer | Status | Intended use | Known limits | Documentation | Evidence |
189
189
  | ------------------------------------------------------------------------------------------------------------------ | ---------- | ------------ | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
190
- | [`StageFrame`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useThreeStage.ts#L8) | @abuzareal | experimental | Type contract for useThreeStage | Type-only; no runtime value. Setup captured on mount; register owned cleanup immediately with onDispose; do not double-dispose. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
191
- | [`StageScene`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useThreeStage.ts#L15) | @abuzareal | experimental | Type contract for useThreeStage | Type-only; no runtime value. Setup captured on mount; register owned cleanup immediately with onDispose; do not double-dispose. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
192
- | [`StageContext`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useThreeStage.ts#L24) | @abuzareal | experimental | Type contract for useThreeStage | Type-only; no runtime value. Setup captured on mount; register owned cleanup immediately with onDispose; do not double-dispose. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
193
- | [`SculptureProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/hero/Sculpture.tsx#L18) | @abuzareal | experimental | Type contract for Sculpture | Type-only; no runtime value. WebGL, sized container, lazy/static fallback and motionEnabled required; setup captured on mount. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
194
- | [`ObjectStudyProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/three/ObjectStudy.tsx#L14) | @abuzareal | experimental | Type contract for ObjectStudy | Type-only; no runtime value. WebGL, sized container, study/label/motionEnabled required; experimental scene contract. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
195
- | [`ObjectSet`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/threeStudies.ts#L12) | @abuzareal | experimental | Type contract for objectStudies | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
196
- | [`ObjectStudyKind`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/threeStudies.ts#L57) | @abuzareal | experimental | Type contract for objectStudies | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
190
+ | [`StageFrame`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useThreeStage.ts#L8) | @abuzareal | experimental | Type contract for useThreeStage | Type-only; no runtime value. Setup captured on mount; register owned cleanup immediately with onDispose; do not double-dispose. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
191
+ | [`StageScene`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useThreeStage.ts#L15) | @abuzareal | experimental | Type contract for useThreeStage | Type-only; no runtime value. Setup captured on mount; register owned cleanup immediately with onDispose; do not double-dispose. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
192
+ | [`StageContext`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useThreeStage.ts#L24) | @abuzareal | experimental | Type contract for useThreeStage | Type-only; no runtime value. Setup captured on mount; register owned cleanup immediately with onDispose; do not double-dispose. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
193
+ | [`SculptureProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/hero/Sculpture.tsx#L18) | @abuzareal | experimental | Type contract for Sculpture | Type-only; no runtime value. WebGL, sized container, lazy/static fallback and motionEnabled required; setup captured on mount. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
194
+ | [`ObjectStudyProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/three/ObjectStudy.tsx#L14) | @abuzareal | experimental | Type contract for ObjectStudy | Type-only; no runtime value. WebGL, sized container, study/label/motionEnabled required; experimental scene contract. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
195
+ | [`ObjectSet`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/threeStudies.ts#L12) | @abuzareal | experimental | Type contract for objectStudies | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
196
+ | [`ObjectStudyKind`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/threeStudies.ts#L57) | @abuzareal | experimental | Type contract for objectStudies | Type-only; no runtime value. Legacy global or isolated prefixed CSS; use declared props only; application composition needs its own validation. | [Reference](https://contour.abuzr.in/docs#optional-three) | D: emitted declaration; N: optional declaration/build fixture; G: sampled graphics lifecycle |
197
197
 
198
198
  ## Optional: @abuzareal/contour-ui/scroll
199
199
 
@@ -203,7 +203,7 @@ These identify reproducible checks, not claims that every row has a dedicated be
203
203
 
204
204
  | Export / source | Maintainer | Status | Intended use | Known limits | Documentation | Evidence |
205
205
  | -------------------------------------------------------------------------------------------------------- | ---------- | ------------ | ------------------------ | --------------------------------------------------------------------------------------------- | ---------------------------------------------------------- | ------------------------------------------------------------- |
206
- | [`useSmoothScroll`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useSmoothScroll.ts#L7) | @abuzareal | experimental | Optional Lenis lifecycle | Install Lenis and its CSS explicitly; one owner; caller disables it for pause/reduced motion. | [Reference](https://contour.abuzr.in/docs#optional-scroll) | D: emitted declaration; N: optional declaration/build fixture |
206
+ | [`useSmoothScroll`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useSmoothScroll.ts#L7) | @abuzareal | experimental | Optional Lenis lifecycle | Install Lenis and its CSS explicitly; one owner; caller disables it for pause/reduced motion. | [Reference](https://contour.abuzr.in/docs#optional-scroll) | D: emitted declaration; N: optional declaration/build fixture |
207
207
 
208
208
  ## Server-safe string/helpers: @abuzareal/contour-ui/theme-bootstrap
209
209
 
@@ -213,8 +213,8 @@ These identify reproducible checks, not claims that every row has a dedicated be
213
213
 
214
214
  | Export / source | Maintainer | Status | Intended use | Known limits | Documentation | Evidence |
215
215
  | ----------------------------------------------------------------------------------------------------------- | ---------- | ------------ | ------------------------------------- | -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | --------------------------------------------------------- |
216
- | [`themeColors`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/themeBootstrap.ts#L6) | @abuzareal | stable (0.x) | Theme-background constants | Fixed backgrounds must match token defaults; consumer themes may need own metadata. | [Reference](https://contour.abuzr.in/docs/getting-started#theme-motion) | D: emitted declaration; P: bootstrap package/Next fixture |
217
- | [`themeBootstrapScript`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/themeBootstrap.ts#L11) | @abuzareal | stable (0.x) | Pre-paint theme initialization string | Authorize inline script through CSP nonce/hash; no user interpolation; root preference only. | [Reference](https://contour.abuzr.in/docs/getting-started#theme-motion) | D: emitted declaration; P: bootstrap package/Next fixture |
216
+ | [`themeColors`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/themeBootstrap.ts#L6) | @abuzareal | stable (0.x) | Theme-background constants | Fixed backgrounds must match token defaults; consumer themes may need own metadata. | [Reference](https://contour.abuzr.in/docs/getting-started#theme-motion) | D: emitted declaration; P: bootstrap package/Next fixture |
217
+ | [`themeBootstrapScript`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/themeBootstrap.ts#L11) | @abuzareal | stable (0.x) | Pre-paint theme initialization string | Authorize inline script through CSP nonce/hash; no user interpolation; root preference only. | [Reference](https://contour.abuzr.in/docs/getting-started#theme-motion) | D: emitted declaration; P: bootstrap package/Next fixture |
218
218
 
219
219
  ## Stylesheet exports
220
220
 
@@ -240,21 +240,21 @@ scoped.css is the prefixed aggregate; scoped-tokens.css supplies only canonical
240
240
 
241
241
  | Export / source | Kind | Maintainer | Status | Contract and limits | Evidence |
242
242
  | ------------------------------------------------------------------------------------------------------------------- | ------- | ---------- | ------------ | --------------------------------------------------------------------------------------- | --------------------------------------------------------- |
243
- | [`ThemeScope`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/ThemeScope.tsx#L12) | runtime | @abuzareal | stable (0.x) | Controlled native-div theme scope; caller owns persistence; scoped CSS required. | Declarations, packed consumers and overlay/style fixtures |
244
- | [`FloatingOptions`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useFloatingPanel.ts#L12) | type | @abuzareal | experimental | Defining module contract; type-only values are not runtime exports. | Declarations, packed consumers and overlay/style fixtures |
245
- | [`PanelFocusOptions`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/usePanelFocus.ts#L4) | type | @abuzareal | experimental | Defining module contract; type-only values are not runtime exports. | Declarations, packed consumers and overlay/style fixtures |
246
- | [`DismissReason`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/layers.ts#L2) | type | @abuzareal | stable (0.x) | Defining module contract; type-only values are not runtime exports. | Declarations, packed consumers and overlay/style fixtures |
247
- | [`ToastProviderProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/ToastProvider.tsx#L69) | type | @abuzareal | stable (0.x) | Defining module contract; type-only values are not runtime exports. | Declarations, packed consumers and overlay/style fixtures |
248
- | [`DismissOptions`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/hooks/useDismiss.ts#L5) | type | @abuzareal | stable (0.x) | Defining module contract; type-only values are not runtime exports. | Declarations, packed consumers and overlay/style fixtures |
249
- | [`ccx`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/lib/classNames.ts#L7) | runtime | @abuzareal | stable (0.x) | Prefixed and compatibility class hooks; cx remains unchanged for IDs/arbitrary strings. | Declarations, packed consumers and overlay/style fixtures |
250
- | [`ThemeScopeProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/ThemeScope.tsx#L7) | type | @abuzareal | stable (0.x) | Defining module contract; type-only values are not runtime exports. | Declarations, packed consumers and overlay/style fixtures |
243
+ | [`ThemeScope`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/ThemeScope.tsx#L12) | runtime | @abuzareal | stable (0.x) | Controlled native-div theme scope; caller owns persistence; scoped CSS required. | Declarations, packed consumers and overlay/style fixtures |
244
+ | [`FloatingOptions`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useFloatingPanel.ts#L12) | type | @abuzareal | experimental | Defining module contract; type-only values are not runtime exports. | Declarations, packed consumers and overlay/style fixtures |
245
+ | [`PanelFocusOptions`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/usePanelFocus.ts#L4) | type | @abuzareal | experimental | Defining module contract; type-only values are not runtime exports. | Declarations, packed consumers and overlay/style fixtures |
246
+ | [`DismissReason`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/layers.ts#L2) | type | @abuzareal | stable (0.x) | Defining module contract; type-only values are not runtime exports. | Declarations, packed consumers and overlay/style fixtures |
247
+ | [`ToastProviderProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/ToastProvider.tsx#L69) | type | @abuzareal | stable (0.x) | Defining module contract; type-only values are not runtime exports. | Declarations, packed consumers and overlay/style fixtures |
248
+ | [`DismissOptions`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/hooks/useDismiss.ts#L5) | type | @abuzareal | stable (0.x) | Defining module contract; type-only values are not runtime exports. | Declarations, packed consumers and overlay/style fixtures |
249
+ | [`ccx`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/lib/classNames.ts#L7) | runtime | @abuzareal | stable (0.x) | Prefixed and compatibility class hooks; cx remains unchanged for IDs/arbitrary strings. | Declarations, packed consumers and overlay/style fixtures |
250
+ | [`ThemeScopeProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/ThemeScope.tsx#L7) | type | @abuzareal | stable (0.x) | Defining module contract; type-only values are not runtime exports. | Declarations, packed consumers and overlay/style fixtures |
251
251
 
252
252
  ## Additions in 0.6.0
253
253
 
254
254
  | Export / source | Kind | Maintainer | Status | Contract and limits | Evidence |
255
255
  | -------------------------------------------------------------------------------------------------------------- | ------- | ---------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
256
- | [`Table`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Table.tsx#L19) | runtime | @abuzareal | stable (0.x) | Native semantic table/caption/ref and scroll part; application owns rows, sorting and grid behavior. See RECIPES.md. | Declarations, packed React consumers, expansion unit/browser and copied adoption recipes |
257
- | [`TableProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Table.tsx#L6) | type | @abuzareal | stable (0.x) | Native table props plus required caption/children, showCaption=false and native scrollProps. | Declarations, packed React consumers, expansion unit/browser and copied adoption recipes |
258
- | [`Combobox`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Combobox.tsx#L31) | runtime | @abuzareal | stable (0.x) | Allowed-value single-select string ID, visible input ref, native forms and Contour overlays; no free-text or multi-select. See COMBOBOX.md. | Declarations, packed React consumers, expansion unit/browser and copied adoption recipes |
259
- | [`ComboboxProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Combobox.types.ts#L22) | type | @abuzareal | stable (0.x) | Independent selection/query/open state, native input/popup/root parts, async messages and collision options. | Declarations, packed React consumers, expansion unit/browser and copied adoption recipes |
260
- | [`ComboboxOption`](https://github.com/abuzareal/contour-ui/blob/v0.6.1/src/components/ui/Combobox.types.ts#L4) | type | @abuzareal | stable (0.x) | Unique nonempty string value, localizable label, optional disabled; identity never comes from label. | Declarations, packed React consumers, expansion unit/browser and copied adoption recipes |
256
+ | [`Table`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Table.tsx#L19) | runtime | @abuzareal | stable (0.x) | Native semantic table/caption/ref and scroll part; application owns rows, sorting and grid behavior. See RECIPES.md. | Declarations, packed React consumers, expansion unit/browser and copied adoption recipes |
257
+ | [`TableProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Table.tsx#L6) | type | @abuzareal | stable (0.x) | Native table props plus required caption/children, showCaption=false and native scrollProps. | Declarations, packed React consumers, expansion unit/browser and copied adoption recipes |
258
+ | [`Combobox`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Combobox.tsx#L31) | runtime | @abuzareal | stable (0.x) | Allowed-value single-select string ID, visible input ref, native forms and Contour overlays; no free-text or multi-select. See COMBOBOX.md. | Declarations, packed React consumers, expansion unit/browser and copied adoption recipes |
259
+ | [`ComboboxProps`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Combobox.types.ts#L22) | type | @abuzareal | stable (0.x) | Independent selection/query/open state, native input/popup/root parts, async messages and collision options. | Declarations, packed React consumers, expansion unit/browser and copied adoption recipes |
260
+ | [`ComboboxOption`](https://github.com/abuzareal/contour-ui/blob/v0.6.2/src/components/ui/Combobox.types.ts#L4) | type | @abuzareal | stable (0.x) | Unique nonempty string value, localizable label, optional disabled; identity never comes from label. | Declarations, packed React consumers, expansion unit/browser and copied adoption recipes |
package/README.md CHANGED
@@ -6,7 +6,7 @@ Use it when you want this visual style with typed controls, feedback, navigation
6
6
 
7
7
  [Live catalogue](https://contour.abuzr.in/) · [npm package](https://www.npmjs.com/package/@abuzareal/contour-ui) · [Maintainer](https://github.com/abuzareal)
8
8
 
9
- This source checkout targets **0.6.1**. Package publication and application upgrades are separate; check the npm registry for release availability and each application's manifest for its installed version. Catalogue examples include application patterns as well as package components. Check the exports below before treating an example as an importable component.
9
+ This source checkout targets **0.6.2**. Package publication and application upgrades are separate; check the npm registry for release availability and each application's manifest for its installed version. Catalogue examples include application patterns as well as package components. Check the exports below before treating an example as an importable component.
10
10
 
11
11
  [Public API and maturity register](PUBLIC-API.md) · [Architecture, scope and compatibility](CONTRACTS.md)
12
12
 
@@ -23,7 +23,7 @@ Version 0.6 adds a single-select [Combobox](COMBOBOX.md) backed by pinned Base U
23
23
  Use an existing React application with a bundler that resolves package CSS imports. Contour ships ESM and TypeScript declarations. The package declares Node.js 22 or newer; repository tooling uses Vite 8, which needs Node.js 22.12+ or 24+.
24
24
 
25
25
  ```sh
26
- npm install @abuzareal/contour-ui@0.6.1 --save-exact
26
+ npm install @abuzareal/contour-ui@0.6.2 --save-exact
27
27
  ```
28
28
 
29
29
  Your app must provide matching `react` and `react-dom` versions: **18.3.1 or React 19**. The compatibility script covers 18.3.1, 19.0.0, and 19.3.0; it doesn't establish support for every framework or React Server Component setup. Put interactive components inside a client boundary when your framework requires one.
@@ -180,7 +180,7 @@ Give scenes a sized container and a usable static fallback. `SceneBoundary` hide
180
180
  **0.2.0** adds native field refs, controlled tabs and popover/menu open state, menu keyboard improvements, native reset synchronization, Three.js lifecycle fixes and a tested Next.js App Router integration. Existing uncontrolled defaults and React 18/19 support remain. `fonts-latin.css`, introduced in 0.1.2, now uses packaged relative font URLs for webpack resolution. `CHANGELOG.md` is included in the package archive and [npm's Code view](https://www.npmjs.com/package/@abuzareal/contour-ui?activeTab=code); it contains the upgrade details for each version.
181
181
 
182
182
  ```sh
183
- npm install @abuzareal/contour-ui@0.6.1 --save-exact
183
+ npm install @abuzareal/contour-ui@0.6.2 --save-exact
184
184
  ```
185
185
 
186
186
  Commit your manifest and lockfile, run your application's checks, and review both themes, dialogs, forms, and motion before deploying. Version 0.1.1 includes a document scroll lock for dialogs and drawers. Review any app-level lock before removing it, including nested dialogs and short screens. Package publication doesn't update deployed consumers automatically.
package/RECIPES.md CHANGED
@@ -40,4 +40,4 @@ The optional **password visibility recipe** keeps the same input mounted, name a
40
40
 
41
41
  Use native p/span and h1–h6 with [typography tokens](STYLING.md). Heading level follows the document outline; size/weight are CSS choices. No Text/Heading wrappers are added without an independent semantic/variant contract. These explicit scope decisions do not complete deferred NumberField, full grid, calendar or other optional features.
42
42
 
43
- [Report Table/recipes 0.6.1](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&title=Table%20recipes%200.6.1%3A%20&component=Table%20recipes&version=0.6.1); [standalone reproduction](examples/reproduction). See [public API](PUBLIC-API.md) for exact types, [styling](STYLING.md) and [onboarding](GETTING-STARTED.md). Release source links become available with the published tag.
43
+ [Report Table/recipes 0.6.2](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&title=Table%20recipes%200.6.2%3A%20&component=Table%20recipes&version=0.6.2); [standalone reproduction](examples/reproduction). See [public API](PUBLIC-API.md) for exact types, [styling](STYLING.md) and [onboarding](GETTING-STARTED.md). Release source links become available with the published tag.
package/REFERENCE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Export reference register
2
2
 
3
- Generated for 0.6.1 from actual source/runtime declarations and the manifest. This register maps all symbols and CSS/data entry points; it does not promote every component page. Human behavior guidance lives in the linked references. Source and exact types remain in [PUBLIC-API.md](PUBLIC-API.md). Run npm run check:reference; newly added hook/helper sources need an authored mapping before this register can update.
3
+ Generated for 0.6.2 from actual source/runtime declarations and the manifest. This register maps all symbols and CSS/data entry points; it does not promote every component page. Human behavior guidance lives in the linked references. Source and exact types remain in [PUBLIC-API.md](PUBLIC-API.md). Run npm run check:reference; newly added hook/helper sources need an authored mapping before this register can update.
4
4
 
5
5
  | Entry | Symbol | Kind | Reference |
6
6
  | --- | --- | --- | --- |
package/STYLING.md CHANGED
@@ -69,4 +69,4 @@ Forced-color rules preserve focus, selected control outlines, radio marks, inval
69
69
 
70
70
  ## Version and reproduction
71
71
 
72
- Reference version **0.6.1** (candidate until published). [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.1/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Styles 0.6.1](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Styles&version=0.6.1), using the [public minimal reproduction](examples/reproduction) and synthetic data.
72
+ Reference version **0.6.2**. A source version does not establish publication; check the npm registry for availability. [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.2/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Styles 0.6.2](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Styles&version=0.6.2), using the [public minimal reproduction](examples/reproduction) and synthetic data.
package/SUPPORT.md CHANGED
@@ -33,4 +33,4 @@ Every result should name package/commit/archive, date, OS/browser/tool versions,
33
33
 
34
34
  ## Version and reproduction
35
35
 
36
- Reference version **0.6.1** (candidate until published). [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.1/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Support matrix 0.6.1](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Support%20matrix&version=0.6.1), using the [public minimal reproduction](examples/reproduction) and synthetic data.
36
+ Reference version **0.6.2**. A source version does not establish publication; check the npm registry for availability. [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.2/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Support matrix 0.6.2](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Support%20matrix&version=0.6.2), using the [public minimal reproduction](examples/reproduction) and synthetic data.
package/THREE.md CHANGED
@@ -37,4 +37,4 @@ Use one stage owner per host, stable setup and deliberate size. Product controls
37
37
 
38
38
  ## Version and reproduction
39
39
 
40
- Reference version **0.6.1** (candidate until published). [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.1/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Three 0.6.1](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Three&version=0.6.1), using the [public minimal reproduction](examples/reproduction) and synthetic data.
40
+ Reference version **0.6.2**. A source version does not establish publication; check the npm registry for availability. [Versioned source](https://github.com/abuzareal/contour-ui/tree/v0.6.2/src) and [emitted type inventory](PUBLIC-API.md) describe this contract; tag links resolve after release. [Report Three 0.6.2](https://github.com/abuzareal/contour-ui/issues/new?template=bug_report.yml&component=Three&version=0.6.2), using the [public minimal reproduction](examples/reproduction) and synthetic data.
@@ -73,5 +73,5 @@ export default function Tooltip({ content, children, placement = "top", align =
73
73
  collisionPadding,
74
74
  portal,
75
75
  container,
76
- }, children: _jsx("span", { ref: panel, id: id, role: "tooltip", className: ccx("tooltip mono", `tooltip-${placement}`, open && "is-open"), onPointerEnter: enter, onPointerLeave: leave, children: content }) })] }));
76
+ }, children: _jsx("span", { ref: panel, id: id, role: "tooltip", hidden: !open, className: ccx("tooltip mono", `tooltip-${placement}`, open && "is-open"), onPointerEnter: enter, onPointerLeave: leave, children: content }) })] }));
77
77
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.6.1",
2
+ "version": "0.6.2",
3
3
  "compiler": "5.9.3",
4
4
  "scope": "Selected authored contracts from emitted declarations; inherited prop names and all call signatures retained. Runtime defaults are extracted from source parameter initializers; absence is not a native default inference.",
5
5
  "components": {
@@ -13,7 +13,7 @@
13
13
  "preview": "vite preview"
14
14
  },
15
15
  "dependencies": {
16
- "@abuzareal/contour-ui": "0.6.1",
16
+ "@abuzareal/contour-ui": "0.6.2",
17
17
  "react": "18.3.1",
18
18
  "react-dom": "18.3.1"
19
19
  },
@@ -13,7 +13,7 @@
13
13
  "start": "next start"
14
14
  },
15
15
  "dependencies": {
16
- "@abuzareal/contour-ui": "0.6.1",
16
+ "@abuzareal/contour-ui": "0.6.2",
17
17
  "react": "19.3.0",
18
18
  "react-dom": "19.3.0",
19
19
  "next": "16.4.0"
@@ -13,7 +13,7 @@
13
13
  "preview": "vite preview"
14
14
  },
15
15
  "dependencies": {
16
- "@abuzareal/contour-ui": "0.6.1",
16
+ "@abuzareal/contour-ui": "0.6.2",
17
17
  "react": "18.3.1",
18
18
  "react-dom": "18.3.1"
19
19
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abuzareal/contour-ui",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "private": false,
5
5
  "description": "Editorial React components, themes, restrained motion, and optional Three.js objects.",
6
6
  "type": "module",