@vegastack/design 0.7.5 → 0.7.6

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.
@@ -70,6 +70,12 @@ var TIMINGS = {
70
70
  feedbackRevertMs: 1500,
71
71
  /** Debounce before auto-persisting a text field (AutoSaveInput). */
72
72
  autoSaveDebounceMs: 800,
73
+ /**
74
+ * Debounce before a typed search query is sent (SearchInput's settled value, FilterBar
75
+ * search, `useAsyncSearch`). Short enough to feel like type-ahead, long enough that one
76
+ * word is one request; {@link TIMINGS.autoSaveDebounceMs} is too slow for this role.
77
+ */
78
+ searchDebounceMs: 300,
73
79
  /** Hover delay before a rich preview (HoverCard) opens — guards accidental opens. */
74
80
  hoverOpenDelayMs: 700,
75
81
  /** Hover delay before a rich preview closes — lets the pointer travel into the card. */
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  cn
4
- } from "./chunk-MSOIZXDR.js";
4
+ } from "./chunk-OHGNXG5G.js";
5
5
 
6
6
  // src/icons/create-animated-icon.tsx
7
7
  import * as React from "react";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  cn
3
- } from "../chunk-MSOIZXDR.js";
3
+ } from "../chunk-OHGNXG5G.js";
4
4
 
5
5
  // src/icons/icon.tsx
6
6
  import "react";
package/dist/index.cjs CHANGED
@@ -99,6 +99,12 @@ var TIMINGS = {
99
99
  feedbackRevertMs: 1500,
100
100
  /** Debounce before auto-persisting a text field (AutoSaveInput). */
101
101
  autoSaveDebounceMs: 800,
102
+ /**
103
+ * Debounce before a typed search query is sent (SearchInput's settled value, FilterBar
104
+ * search, `useAsyncSearch`). Short enough to feel like type-ahead, long enough that one
105
+ * word is one request; {@link TIMINGS.autoSaveDebounceMs} is too slow for this role.
106
+ */
107
+ searchDebounceMs: 300,
102
108
  /** Hover delay before a rich preview (HoverCard) opens — guards accidental opens. */
103
109
  hoverOpenDelayMs: 700,
104
110
  /** Hover delay before a rich preview closes — lets the pointer travel into the card. */
package/dist/index.d.cts CHANGED
@@ -132,6 +132,12 @@ declare const TIMINGS: {
132
132
  readonly feedbackRevertMs: 1500;
133
133
  /** Debounce before auto-persisting a text field (AutoSaveInput). */
134
134
  readonly autoSaveDebounceMs: 800;
135
+ /**
136
+ * Debounce before a typed search query is sent (SearchInput's settled value, FilterBar
137
+ * search, `useAsyncSearch`). Short enough to feel like type-ahead, long enough that one
138
+ * word is one request; {@link TIMINGS.autoSaveDebounceMs} is too slow for this role.
139
+ */
140
+ readonly searchDebounceMs: 300;
135
141
  /** Hover delay before a rich preview (HoverCard) opens — guards accidental opens. */
136
142
  readonly hoverOpenDelayMs: 700;
137
143
  /** Hover delay before a rich preview closes — lets the pointer travel into the card. */
package/dist/index.d.ts CHANGED
@@ -132,6 +132,12 @@ declare const TIMINGS: {
132
132
  readonly feedbackRevertMs: 1500;
133
133
  /** Debounce before auto-persisting a text field (AutoSaveInput). */
134
134
  readonly autoSaveDebounceMs: 800;
135
+ /**
136
+ * Debounce before a typed search query is sent (SearchInput's settled value, FilterBar
137
+ * search, `useAsyncSearch`). Short enough to feel like type-ahead, long enough that one
138
+ * word is one request; {@link TIMINGS.autoSaveDebounceMs} is too slow for this role.
139
+ */
140
+ readonly searchDebounceMs: 300;
135
141
  /** Hover delay before a rich preview (HoverCard) opens — guards accidental opens. */
136
142
  readonly hoverOpenDelayMs: 700;
137
143
  /** Hover delay before a rich preview closes — lets the pointer travel into the card. */
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  mergeRefs,
6
6
  prose,
7
7
  proseClassName
8
- } from "./chunk-MSOIZXDR.js";
8
+ } from "./chunk-OHGNXG5G.js";
9
9
  export {
10
10
  FLOATING,
11
11
  TIMINGS,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vegastack/design",
3
- "version": "0.7.5",
3
+ "version": "0.7.6",
4
4
  "description": "VegaStack design system — cn utility, icon runtime, Tailwind v4 preset, and the vegastack-design CLI (tokens ship separately as @vegastack/design-tokens)",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -212,11 +212,12 @@ contract.
212
212
 
213
213
  ## Composition patterns
214
214
 
215
- - **Forms are composed, not configured** — `Field` is layout and copy: `FieldLabel` bound with
216
- `htmlFor`, the control, then `FieldDescription` and `FieldError` as CHILDREN. There is no `label`,
217
- `description` or `error` prop, and no context that reaches into the control. State is written where
218
- it belongs: `aria-invalid` on the control (for assistive tech), `data-invalid` / `data-disabled` on
219
- the `Field` (for the block's styling). `FieldError` is `role="alert"`, carries a leading icon so an
215
+ - **Forms are composed, not configured** — `Field` is layout and copy: `FieldLabel`, the control,
216
+ then `FieldDescription` and `FieldError` as CHILDREN. There is no `label`, `description` or `error`
217
+ prop. `Field` wires the control through Base UI Field — the label's `for`, the description and
218
+ error ids in `aria-describedby`, and `aria-invalid` from the Field's `data-invalid` — so pass ids
219
+ only to override; an explicit `aria-*` prop on the control merges with the Field's, it does not
220
+ replace it. Write `data-invalid` / `data-disabled` on the `Field`, not by hand on the control. `FieldError` is `role="alert"`, carries a leading icon so an
220
221
  error is never colour alone, and takes either children or an `errors` array it de-duplicates.
221
222
  react-hook-form's `register` wires straight to the control; there is no `Controller` indirection.
222
223
  - **A set of related checkboxes is a `FieldSet` + `FieldLegend` + one `Field` per option** — that is
@@ -3,7 +3,7 @@
3
3
  <!-- GENERATED — do not hand-edit. Regenerated from the design system's component contract,
4
4
  which is the authority for membership and counts. -->
5
5
 
6
- **114 components**, plus 467 animated-icon items, 11 hooks (`use-animation-replay`, `use-announcer`, `use-drag-reorder`, `use-file-drop`, `use-inline-edit`, `use-list-nav`, `use-media-query`, `use-mobile`, `use-modal-inert`, `use-overflow`, `use-platform`), 4 starter blocks (`app-shell-01`, `board-01`, `login-01`, `settings-01`), 68 chart blocks across 7 families, and 2 data libs (`geo-data`, `drag-item`) — 666 registry items in total.
6
+ **114 components**, plus 467 animated-icon items, 12 hooks (`use-animation-replay`, `use-announcer`, `use-async-search`, `use-drag-reorder`, `use-file-drop`, `use-inline-edit`, `use-list-nav`, `use-media-query`, `use-mobile`, `use-modal-inert`, `use-overflow`, `use-platform`), 7 starter blocks (`app-shell-01`, `board-01`, `login-01`, `review-split-01`, `settings-01`, `settings-02`, `status-pages-01`), 68 chart blocks across 7 families, and 2 data libs (`geo-data`, `drag-item`) — 670 registry items in total.
7
7
 
8
8
  Install any of them with `shadcn add @vegastack/<name>`. Animated icons install as
9
9
  `@vegastack/icon-<name>`; the bare name is reserved for components, so a component whose name