@hirobius/design-system 0.19.1 → 0.20.0

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.
Files changed (142) hide show
  1. package/CONSUMING.md +9 -6
  2. package/DESIGN.md +7 -5
  3. package/README.md +14 -11
  4. package/codemods/hds-prefix.mjs +231 -0
  5. package/codemods/jsx-fold.mjs +515 -0
  6. package/codemods/not-found-pattern.mjs +71 -0
  7. package/codemods/patterns-subpath.mjs +242 -81
  8. package/codemods/patterns-subpath.names.json +41 -15
  9. package/codemods/removed-0.20.json +194 -0
  10. package/codemods/tile-grid.mjs +283 -0
  11. package/codemods/unrewritable.mjs +291 -0
  12. package/dist/chunks/DemoStateContext-Cz5TmrYu.js +32 -0
  13. package/dist/chunks/empty-state-BBqhCx0S.js +1217 -0
  14. package/dist/contexts.js +157 -78
  15. package/dist/hirobius-ui.js +1517 -5270
  16. package/dist/manifest.js +12 -13
  17. package/dist/patterns.js +780 -513
  18. package/dist/styles.css +1 -1
  19. package/dist/tokens.css +1 -1
  20. package/dist/tokens.js +29 -8
  21. package/dist/types/src/app/components/avatar-group.d.ts +1 -2
  22. package/dist/types/src/app/components/badge.d.ts +8 -3
  23. package/dist/types/src/app/components/blockquote.d.ts +1 -2
  24. package/dist/types/src/app/components/box-sx.d.ts +110 -13
  25. package/dist/types/src/app/components/box.d.ts +6 -3
  26. package/dist/types/src/app/components/breadcrumb.d.ts +0 -5
  27. package/dist/types/src/app/components/button.d.ts +33 -4
  28. package/dist/types/src/app/components/card.d.ts +7 -8
  29. package/dist/types/src/app/components/combobox.d.ts +47 -11
  30. package/dist/types/src/app/components/container.d.ts +2 -2
  31. package/dist/types/src/app/components/data-table-section.d.ts +1 -1
  32. package/dist/types/src/app/components/dialog.d.ts +7 -1
  33. package/dist/types/src/app/components/disclosure.d.ts +1 -5
  34. package/dist/types/src/app/components/field.d.ts +1 -2
  35. package/dist/types/src/app/components/grid.d.ts +10 -6
  36. package/dist/types/src/app/components/hds-tooltip.d.ts +12 -2
  37. package/dist/types/src/app/components/inline-code.d.ts +1 -2
  38. package/dist/types/src/app/components/input.d.ts +8 -5
  39. package/dist/types/src/app/components/kbd.d.ts +1 -2
  40. package/dist/types/src/app/components/metadata-list.d.ts +1 -2
  41. package/dist/types/src/app/components/page-header.d.ts +0 -2
  42. package/dist/types/src/app/components/popover.d.ts +8 -0
  43. package/dist/types/src/app/components/progress.d.ts +33 -6
  44. package/dist/types/src/app/components/segmented-control.d.ts +2 -26
  45. package/dist/types/src/app/components/select.d.ts +10 -1
  46. package/dist/types/src/app/components/skeleton.d.ts +2 -3
  47. package/dist/types/src/app/components/spinner.d.ts +1 -2
  48. package/dist/types/src/app/components/stack.d.ts +4 -1
  49. package/dist/types/src/app/components/stat.d.ts +1 -2
  50. package/dist/types/src/app/components/status-dot.d.ts +18 -4
  51. package/dist/types/src/app/components/status-list-item.d.ts +1 -2
  52. package/dist/types/src/app/components/surface.d.ts +2 -3
  53. package/dist/types/src/app/components/switcher.d.ts +1 -1
  54. package/dist/types/src/app/components/table.d.ts +1 -15
  55. package/dist/types/src/app/components/tag.d.ts +0 -6
  56. package/dist/types/src/app/components/text.d.ts +1 -2
  57. package/dist/types/src/app/components/textarea.d.ts +1 -2
  58. package/dist/types/src/app/components/toast.d.ts +1 -2
  59. package/dist/types/src/app/components/tooltip.d.ts +1 -1
  60. package/dist/types/src/app/context/DemoStateContext.d.ts +1 -1
  61. package/dist/types/src/app/context/RouterContext.d.ts +5 -5
  62. package/dist/types/src/app/data/manifest-types.d.ts +6 -5
  63. package/dist/types/src/app/design-system/generated-token-refs.d.ts +8 -0
  64. package/dist/types/src/app/design-system/generated-token-values.d.ts +1 -0
  65. package/dist/types/src/app/design-system/tokens.d.ts +22 -3
  66. package/dist/types/src/icons.d.ts +1 -1
  67. package/dist/types/src/index.d.ts +33 -124
  68. package/dist/types/src/patterns.d.ts +20 -25
  69. package/dist/variables.css +6 -0
  70. package/docs/CONSUMING.md +21 -13
  71. package/hirobius.tokens.json +48 -15
  72. package/llms.txt +19 -20
  73. package/package.json +17 -22
  74. package/public/hds-manifest.json +2405 -6537
  75. package/public/llms/components.txt +41 -423
  76. package/public/llms/layout.txt +4 -4
  77. package/public/llms-full.txt +67 -448
  78. package/public/llms.txt +19 -20
  79. package/src/app/data/component-api.json +1379 -3271
  80. package/dist/chunks/LanguageContext-BxdCwiFg.js +0 -95
  81. package/dist/chunks/TokenDisplayContext-DKYJMVWk.js +0 -26
  82. package/dist/chunks/activity-feed-BGQ6v3wc.js +0 -22040
  83. package/dist/types/src/app/components/activity-feed.d.ts +0 -73
  84. package/dist/types/src/app/components/app-shell.d.ts +0 -40
  85. package/dist/types/src/app/components/aspect-ratio.d.ts +0 -25
  86. package/dist/types/src/app/components/bleed.d.ts +0 -39
  87. package/dist/types/src/app/components/button-group.d.ts +0 -22
  88. package/dist/types/src/app/components/calendar.d.ts +0 -22
  89. package/dist/types/src/app/components/carousel.d.ts +0 -26
  90. package/dist/types/src/app/components/center.d.ts +0 -36
  91. package/dist/types/src/app/components/cinematic-link.d.ts +0 -18
  92. package/dist/types/src/app/components/circular-progress.d.ts +0 -28
  93. package/dist/types/src/app/components/cluster.d.ts +0 -39
  94. package/dist/types/src/app/components/command-palette.d.ts +0 -46
  95. package/dist/types/src/app/components/component-instance-matrix.d.ts +0 -27
  96. package/dist/types/src/app/components/context-menu.d.ts +0 -78
  97. package/dist/types/src/app/components/cover.d.ts +0 -43
  98. package/dist/types/src/app/components/date-input.d.ts +0 -31
  99. package/dist/types/src/app/components/date-range-input.d.ts +0 -34
  100. package/dist/types/src/app/components/date-time-input.d.ts +0 -30
  101. package/dist/types/src/app/components/doc-link-card.d.ts +0 -32
  102. package/dist/types/src/app/components/error-boundary.d.ts +0 -25
  103. package/dist/types/src/app/components/file-input.d.ts +0 -30
  104. package/dist/types/src/app/components/foundation-swatch.d.ts +0 -45
  105. package/dist/types/src/app/components/frame.d.ts +0 -38
  106. package/dist/types/src/app/components/heading-stack.d.ts +0 -52
  107. package/dist/types/src/app/components/history-card.d.ts +0 -12
  108. package/dist/types/src/app/components/hover-card.d.ts +0 -46
  109. package/dist/types/src/app/components/icon-button.d.ts +0 -22
  110. package/dist/types/src/app/components/image-lightbox.d.ts +0 -14
  111. package/dist/types/src/app/components/input-group.d.ts +0 -23
  112. package/dist/types/src/app/components/multi-selector.d.ts +0 -40
  113. package/dist/types/src/app/components/nav-group.d.ts +0 -29
  114. package/dist/types/src/app/components/nav-item.d.ts +0 -33
  115. package/dist/types/src/app/components/not-found-pattern.d.ts +0 -1
  116. package/dist/types/src/app/components/overflow-list.d.ts +0 -21
  117. package/dist/types/src/app/components/selectable-card.d.ts +0 -29
  118. package/dist/types/src/app/components/side-nav.d.ts +0 -23
  119. package/dist/types/src/app/components/sketch.d.ts +0 -19
  120. package/dist/types/src/app/components/stacked-card-rail.d.ts +0 -32
  121. package/dist/types/src/app/components/stepper-field.d.ts +0 -12
  122. package/dist/types/src/app/components/stepper.d.ts +0 -33
  123. package/dist/types/src/app/components/text-lockup.d.ts +0 -38
  124. package/dist/types/src/app/components/tile-grid.d.ts +0 -17
  125. package/dist/types/src/app/components/time-input.d.ts +0 -24
  126. package/dist/types/src/app/components/toggle-button.d.ts +0 -32
  127. package/dist/types/src/app/components/token.d.ts +0 -90
  128. package/dist/types/src/app/components/tokenUtils.d.ts +0 -38
  129. package/dist/types/src/app/components/tokenizer.d.ts +0 -24
  130. package/dist/types/src/app/components/toolbar.d.ts +0 -36
  131. package/dist/types/src/app/components/top-nav.d.ts +0 -23
  132. package/dist/types/src/app/components/tree-list.d.ts +0 -30
  133. package/dist/types/src/app/data/nav-model.d.ts +0 -39
  134. package/dist/types/src/app/hooks/useFocusVisible.d.ts +0 -9
  135. package/dist/types/src/app/layouts/CaseStudyLayout.d.ts +0 -20
  136. package/dist/types/src/app/layouts/DocLayout.d.ts +0 -14
  137. package/dist/types/src/app/layouts/EmbeddedDocLayoutContext.d.ts +0 -6
  138. package/dist/types/src/app/layouts/HdsDocsShell.d.ts +0 -72
  139. package/dist/types/src/app/layouts/HdsSystemDocLayout.d.ts +0 -14
  140. package/dist/types/src/app/lib/hds-search.d.ts +0 -45
  141. package/dist/types/src/app/lib/nav-active.d.ts +0 -16
  142. package/dist/types/src/app/lib/navLevels.d.ts +0 -4
@@ -22,5 +22,4 @@ export type InlineCodeProps = {
22
22
  };
23
23
  /** @public */
24
24
  export declare function InlineCode({ children, style, density, compact, copyable, }: InlineCodeProps): import("react/jsx-runtime").JSX.Element;
25
- /** @internal — CVA variant helper; compose via InlineCode props instead. */
26
- export { inlineCodeVariants };
25
+ export {};
@@ -2,7 +2,7 @@
2
2
  * Input — text field primitive with label, helper, and error slots.
3
3
  * @category Inputs
4
4
  * @tier primitive
5
- * @usage Collect a single line of text, a number, an email or a password, with label, helper and error slots.
5
+ * @usage Collect a single line of text, a number, an email, a password, a date or a time, with label, helper and error slots.
6
6
  * @whenNot Multi-line text, or choosing from a fixed list of options.
7
7
  * @useInstead Textarea multi-line text
8
8
  * @useInstead Select a short fixed list
@@ -16,10 +16,10 @@ declare const inputVariants: (props?: ({
16
16
  textStyle?: "body" | "mono" | null | undefined;
17
17
  invalid?: boolean | null | undefined;
18
18
  } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
19
- type InputFieldType = 'text' | 'email' | 'password' | 'search' | 'tel' | 'url' | 'number';
19
+ type InputFieldType = 'text' | 'email' | 'password' | 'search' | 'tel' | 'url' | 'number' | 'date' | 'time' | 'datetime-local';
20
20
  /** @public */
21
21
  export type InputSize = NonNullable<VariantProps<typeof inputVariants>['size']>;
22
- export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'disabled' | 'size'> {
22
+ export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'disabled' | 'size' | 'prefix'> {
23
23
  /** Native input type. */
24
24
  type?: InputFieldType;
25
25
  /** Field height tier. */
@@ -34,6 +34,10 @@ export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElem
34
34
  leadingVisual?: React.ReactNode;
35
35
  /** Optional trailing visual rendered inside the input shell. */
36
36
  trailingVisual?: React.ReactNode;
37
+ /** In-flow content before the value, e.g. `https://` or `$`. Not part of the accessible name. */
38
+ prefix?: React.ReactNode;
39
+ /** In-flow content after the value, e.g. a unit such as `kg`. Not part of the accessible name. */
40
+ suffix?: React.ReactNode;
37
41
  /** Disable interaction. */
38
42
  disabled?: boolean;
39
43
  /** Mark the field as invalid (sets aria-invalid + destructive border). */
@@ -48,5 +52,4 @@ export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElem
48
52
  inputClassName?: string;
49
53
  }
50
54
  export declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
51
- /** @internal — CVA variant helper; compose via Input props instead. */
52
- export { inputVariants };
55
+ export {};
@@ -17,5 +17,4 @@ export interface KbdProps extends React.HTMLAttributes<HTMLElement>, KbdVariantP
17
17
  }
18
18
  /** Renders a keyboard key or shortcut token, e.g. `<Kbd>⌘K</Kbd>`. */
19
19
  export declare const Kbd: React.ForwardRefExoticComponent<KbdProps & React.RefAttributes<HTMLElement>>;
20
- /** @internal — CVA variant helper; compose via Kbd props instead. */
21
- export { kbdVariants };
20
+ export {};
@@ -39,5 +39,4 @@ export interface MetadataListProps extends Omit<React.HTMLAttributes<HTMLDListEl
39
39
  }
40
40
  /** Renders object metadata as a semantic `<dl>` of term/description pairs. */
41
41
  export declare const MetadataList: React.ForwardRefExoticComponent<MetadataListProps & React.RefAttributes<HTMLDListElement>>;
42
- /** @internal — CVA variant helper; compose via MetadataList props instead. */
43
- export { metadataListVariants };
42
+ export {};
@@ -27,8 +27,6 @@ export interface PageHeaderProps extends Omit<React.HTMLAttributes<HTMLElement>,
27
27
  * Screen header: breadcrumb slot, the title at the one canonical page-title size
28
28
  * (`heading2`), a status slot and an actions slot. Every screen has exactly one.
29
29
  * `display` and `h1` type are reserved for marketing and landing surfaces.
30
- *
31
- * Distinct from the docs-only page header in `src/docs-tooling`.
32
30
  * @screenPattern
33
31
  */
34
32
  export declare const PageHeader: React.ForwardRefExoticComponent<PageHeaderProps & React.RefAttributes<HTMLElement>>;
@@ -51,6 +51,14 @@ interface PopoverComponent extends React.FC<React.ComponentProps<typeof PopoverP
51
51
  /**
52
52
  * Popover root + parts. Controlled via `open`/`onOpenChange`, or uncontrolled
53
53
  * with `defaultOpen`.
54
+ * @usage Anchor interactive content, such as a short form, a filter set or a picker, to a trigger people click to open.
55
+ * @whenNot A short label on hover or focus, a list of actions, or a decision that must block the page.
56
+ * @useInstead Tooltip a short label shown on hover or focus
57
+ * @useInstead Menu a list of actions
58
+ * @useInstead Dialog a decision that blocks the page
59
+ * @keyboard Enter/Space Opens the popover from the trigger and moves focus inside it.
60
+ * @keyboard Escape Closes the popover and returns focus to the trigger.
61
+ * @keyboard Tab Cycles focus inside the open popover; the page behind stays reachable.
54
62
  * @public
55
63
  */
56
64
  declare const Popover: PopoverComponent;
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Progress - linear progress bar (determinate or indeterminate).
2
+ * Progress - linear bar or circular ring (determinate or indeterminate).
3
3
  * @category Feedback
4
4
  * @tier primitive
5
- * @usage Show how far a task has got, as a bar that is determinate or indeterminate.
5
+ * @usage Show how far a task has got, as a bar or ring that is determinate or indeterminate.
6
6
  * @whenNot A wait of unknown length with no bar, or content that is still loading.
7
7
  * @useInstead Spinner a wait of unknown length
8
8
  * @useInstead Skeleton placeholder shapes for loading content
@@ -13,18 +13,45 @@ import { type VariantProps } from 'class-variance-authority';
13
13
  declare const progressTrackVariants: (props?: ({
14
14
  size?: "sm" | "md" | "lg" | null | undefined;
15
15
  } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
16
+ declare const PROGRESS_TONES: {
17
+ readonly neutral: {
18
+ readonly bar: "bg-accent";
19
+ readonly ring: "text-primary";
20
+ };
21
+ readonly danger: {
22
+ readonly bar: "bg-feedback-danger";
23
+ readonly ring: "text-feedback-danger";
24
+ };
25
+ readonly success: {
26
+ readonly bar: "bg-feedback-success";
27
+ readonly ring: "text-feedback-success";
28
+ };
29
+ readonly warning: {
30
+ readonly bar: "bg-feedback-warning";
31
+ readonly ring: "text-feedback-warning";
32
+ };
33
+ readonly info: {
34
+ readonly bar: "bg-feedback-info";
35
+ readonly ring: "text-feedback-info";
36
+ };
37
+ };
16
38
  type ProgressVariantProps = VariantProps<typeof progressTrackVariants>;
17
39
  /** @public */
18
40
  export interface ProgressProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'role'>, ProgressVariantProps {
19
41
  /**
20
- * Completion 0–100. Omit (or pass null) for an indeterminate bar that
42
+ * Completion 0–max. Omit (or pass null) for an indeterminate bar that
21
43
  * animates until the work completes.
22
44
  */
23
45
  value?: number | null;
46
+ /** Upper bound for `value`. Defaults to 100. */
47
+ max?: number;
48
+ /** Shape: `linear` bar (default) or `circular` ring. */
49
+ variant?: 'linear' | 'circular';
50
+ /** Fill color: `neutral` (default) or a feedback tone. */
51
+ tone?: keyof typeof PROGRESS_TONES;
24
52
  /** Accessible label for the progress bar. */
25
53
  label?: string;
26
54
  }
27
- /** Linear progress. Determinate when `value` is a number, else indeterminate. */
55
+ /** Linear bar or circular ring. Determinate when `value` is a number, else indeterminate. */
28
56
  export declare const Progress: React.ForwardRefExoticComponent<ProgressProps & React.RefAttributes<HTMLDivElement>>;
29
- /** @internal — CVA variant helper; compose via Progress props instead. */
30
- export { progressTrackVariants };
57
+ export {};
@@ -1,35 +1,12 @@
1
1
  import { type VariantProps } from 'class-variance-authority';
2
- declare const segmentedControlWrapperVariants: (props?: ({
3
- fullWidth?: boolean | null | undefined;
4
- } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
5
- declare const segmentedControlRailVariants: (props?: ({
6
- variant?: "primary" | "secondary" | null | undefined;
7
- fullWidth?: boolean | null | undefined;
8
- } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
9
2
  declare const segmentedControlItemVariants: (props?: ({
10
3
  size?: "sm" | "md" | null | undefined;
11
4
  fullWidth?: boolean | null | undefined;
12
5
  variant?: "primary" | "secondary" | null | undefined;
13
6
  active?: boolean | null | undefined;
14
- interaction?: "rest" | "hover" | "pressed" | null | undefined;
7
+ interaction?: "hover" | "pressed" | "rest" | null | undefined;
15
8
  disabled?: boolean | null | undefined;
16
9
  } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
17
- declare const segmentedControlIndicatorVariants: (props?: ({
18
- variant?: "primary" | "secondary" | null | undefined;
19
- active?: boolean | null | undefined;
20
- interaction?: "rest" | "hover" | "pressed" | null | undefined;
21
- disabled?: boolean | null | undefined;
22
- } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
23
- declare const segmentedControlDescriptionVariants: (props?: ({
24
- variant?: "primary" | "secondary" | null | undefined;
25
- active?: boolean | null | undefined;
26
- interaction?: "rest" | "hover" | "pressed" | null | undefined;
27
- disabled?: boolean | null | undefined;
28
- } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
29
- declare const segmentedControlFocusRingVariants: (props?: ({
30
- variant?: "primary" | "secondary" | null | undefined;
31
- } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
32
- declare const segmentedControlLabelVariants: (props?: import("class-variance-authority/dist/types").ClassProp | undefined) => string;
33
10
  type SegmentedItemVariantProps = VariantProps<typeof segmentedControlItemVariants>;
34
11
  interface HdsSegmentedOption {
35
12
  /** Value submitted when this option is selected. */
@@ -63,5 +40,4 @@ export interface SegmentedControlProps {
63
40
  }
64
41
  /** @public */
65
42
  export declare const SegmentedControl: import("react").ForwardRefExoticComponent<SegmentedControlProps & import("react").RefAttributes<HTMLDivElement>>;
66
- /** @internal — CVA variant helpers; compose via SegmentedControl props instead. */
67
- export { segmentedControlWrapperVariants, segmentedControlRailVariants, segmentedControlItemVariants, segmentedControlIndicatorVariants, segmentedControlDescriptionVariants, segmentedControlFocusRingVariants, segmentedControlLabelVariants, };
43
+ export {};
@@ -23,7 +23,7 @@
23
23
  * tabs.tsx / command-palette.tsx; `ref` targets the trigger button.
24
24
  */
25
25
  export interface SelectProps {
26
- /** Select label rendered above the control. */
26
+ /** Select label rendered above the control. It names the trigger, also when hidden. */
27
27
  label: string;
28
28
  /** Controls whether the label is rendered. */
29
29
  showLabel?: boolean;
@@ -41,5 +41,14 @@ export interface SelectProps {
41
41
  * overlay inherits its theme; pass `null` to use `document.body`.
42
42
  */
43
43
  container?: HTMLElement | null;
44
+ /**
45
+ * Id of the trigger, so a `<label for>` names it. `FormField` sets it, with
46
+ * `aria-describedby` and `aria-invalid`.
47
+ */
48
+ id?: string;
49
+ /** Ids of the elements that describe the trigger (helper text, error). */
50
+ 'aria-describedby'?: string;
51
+ /** Marks the trigger invalid, for example while the field shows an error. */
52
+ 'aria-invalid'?: boolean;
44
53
  }
45
54
  export declare const Select: import("react").ForwardRefExoticComponent<SelectProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -11,7 +11,7 @@
11
11
  import * as React from 'react';
12
12
  import { type VariantProps } from 'class-variance-authority';
13
13
  declare const skeletonVariants: (props?: ({
14
- variant?: "text" | "rectangular" | "circular" | null | undefined;
14
+ variant?: "text" | "circular" | "rectangular" | null | undefined;
15
15
  } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
16
16
  type SkeletonVariantProps = VariantProps<typeof skeletonVariants>;
17
17
  /** @public */
@@ -26,5 +26,4 @@ export interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement>, Ske
26
26
  * state on the surrounding region (e.g. aria-busy) rather than per skeleton.
27
27
  */
28
28
  export declare const Skeleton: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<HTMLDivElement>>;
29
- /** @internal — CVA variant helper; compose via Skeleton props instead. */
30
- export { skeletonVariants };
29
+ export {};
@@ -21,5 +21,4 @@ export interface SpinnerProps extends React.HTMLAttributes<HTMLSpanElement>, Spi
21
21
  }
22
22
  /** Indeterminate spinner. Inherits the surrounding text color via currentColor. */
23
23
  export declare const Spinner: React.ForwardRefExoticComponent<SpinnerProps & React.RefAttributes<HTMLSpanElement>>;
24
- /** @internal — CVA variant helper; compose via Spinner props instead. */
25
- export { spinnerVariants };
24
+ export {};
@@ -23,7 +23,10 @@ export interface StackProps {
23
23
  children: React.ReactNode;
24
24
  /** Flex direction for the stack. */
25
25
  direction?: 'row' | 'column';
26
- /** Gap token: semantic (tight, normal, inset, spacious) or primitive (px4, px8, etc). Defaults to 'tight' (16px). */
26
+ /**
27
+ * Gap token: semantic (tight, normal, inset, spacious) or primitive (px4, px8, etc). Defaults to 'tight' (16px).
28
+ * Not the t-shirt scale: Stack's 'xs' is the 2px subgrid step, while Box `sx` 'xs' is scale.xs (8px), until the 1.0 rename (hds#206).
29
+ */
27
30
  gap?: GapOption;
28
31
  /** Cross-axis alignment: start | center | end | stretch. */
29
32
  align?: FlexAlign;
@@ -23,5 +23,4 @@ export interface StatProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'c
23
23
  * @useInstead StatusTile a titled status with notes and a trailing badge
24
24
  */
25
25
  export declare const Stat: React.ForwardRefExoticComponent<StatProps & React.RefAttributes<HTMLDivElement>>;
26
- /** @internal — CVA variant helper; compose via Stat props instead. */
27
- export { statVariants };
26
+ export {};
@@ -10,7 +10,13 @@ declare const statusDotVariants: (props?: ({
10
10
  size?: "sm" | "md" | "lg" | null | undefined;
11
11
  } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
12
12
  type StatusDotVariantProps = VariantProps<typeof statusDotVariants>;
13
- /** @public */
13
+ /**
14
+ * @public
15
+ * @deprecated Use `BadgeProps` with `dot`: `tone`, `size` and `label` are the
16
+ * same. Badge takes no `style`, so move a `style` to a wrapper or a
17
+ * `className` first (MIGRATIONS.md, hds#395).
18
+ * @removeIn 0.21.0
19
+ */
14
20
  export interface StatusDotProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'children'>, StatusDotVariantProps {
15
21
  /**
16
22
  * Accessible name for the status. When provided the dot is exposed as a
@@ -19,7 +25,15 @@ export interface StatusDotProps extends Omit<React.HTMLAttributes<HTMLSpanElemen
19
25
  */
20
26
  label?: string;
21
27
  }
22
- /** A small solid dot conveying a semantic status via `tone`. */
28
+ /**
29
+ * A small solid dot conveying a semantic status via `tone`.
30
+ *
31
+ * @deprecated Use `<Badge dot>`: `tone`, `size` and `label` are the same, and
32
+ * so is the dot. Badge takes no `style`, so move a `style` to a wrapper or a
33
+ * `className` first (MIGRATIONS.md, hds#395). Kept in 0.20.0 because ops passes
34
+ * StatusDot a `style` no codemod can carry over.
35
+ * @removeIn 0.21.0
36
+ * @useInstead Badge with `dot`
37
+ */
23
38
  export declare const StatusDot: React.ForwardRefExoticComponent<StatusDotProps & React.RefAttributes<HTMLSpanElement>>;
24
- /** @internal — CVA variant helper; compose via StatusDot props instead. */
25
- export { statusDotVariants };
39
+ export {};
@@ -21,5 +21,4 @@ export interface StatusListItemProps extends Omit<React.HTMLAttributes<HTMLDivEl
21
21
  * Status dot + title row with optional muted notes and trailing slot (e.g. badge).
22
22
  */
23
23
  export declare const StatusListItem: React.ForwardRefExoticComponent<StatusListItemProps & React.RefAttributes<HTMLDivElement>>;
24
- /** @internal — CVA variant helper; compose via StatusListItem props instead. */
25
- export { statusListItemDotVariants };
24
+ export {};
@@ -2,7 +2,7 @@ import React, { type CSSProperties, type HTMLAttributes, type ReactNode } from '
2
2
  import { type VariantProps } from 'class-variance-authority';
3
3
  import type { PaddingOption } from './surface-padding.js';
4
4
  declare const surfaceVariants: (props?: ({
5
- padding?: "none" | "item" | "px16" | "px24" | "component" | null | undefined;
5
+ padding?: "none" | "item" | "component" | "px16" | "px24" | null | undefined;
6
6
  shadow?: boolean | null | undefined;
7
7
  } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
8
8
  type SurfaceVariantProps = VariantProps<typeof surfaceVariants>;
@@ -26,5 +26,4 @@ export interface SurfaceProps extends Omit<HTMLAttributes<HTMLDivElement>, 'styl
26
26
  }
27
27
  /** @public */
28
28
  export declare const Surface: React.ForwardRefExoticComponent<SurfaceProps & React.RefAttributes<HTMLDivElement>>;
29
- /** @internal — CVA variant helper; compose via Surface props instead. */
30
- export { surfaceVariants };
29
+ export {};
@@ -14,7 +14,7 @@
14
14
  * (column) layout once there are more than `limit` children, regardless of
15
15
  * container width — use it to stop a row from thinning out into an
16
16
  * unreadable N-up strip. Do NOT use Switcher for content that should always
17
- * wrap in place — use Cluster.
17
+ * wrap in place — use Stack with `direction="row"` and `wrap="wrap"`.
18
18
  *
19
19
  * Every Layout reference: https://every-layout.dev/layouts/the-switcher/
20
20
  */
@@ -9,19 +9,6 @@
9
9
  * @figma https://www.figma.com/design/c8MaVgwxOlxm4wr8wnH0Z4/HDS-Tokens-Components?node-id=89-300
10
10
  */
11
11
  import { type ReactNode } from 'react';
12
- declare const tableHeaderCellVariants: (props?: ({
13
- align?: "center" | "left" | "right" | null | undefined;
14
- density?: "compact" | "comfortable" | "follow" | null | undefined;
15
- sticky?: boolean | null | undefined;
16
- } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
17
- declare const tableSortButtonVariants: (props?: ({
18
- align?: "center" | "left" | "right" | null | undefined;
19
- } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
20
- declare const tableDataCellVariants: (props?: ({
21
- align?: "center" | "left" | "right" | null | undefined;
22
- density?: "compact" | "comfortable" | "follow" | null | undefined;
23
- divider?: boolean | null | undefined;
24
- } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
25
12
  /** @public */
26
13
  export type TableColumnAlign = 'left' | 'center' | 'right';
27
14
  /** @public */
@@ -91,5 +78,4 @@ export declare function Table({ columns, rows, caption, captionAction, descripti
91
78
  flush?: boolean;
92
79
  stickyHeader?: boolean;
93
80
  }): import("react/jsx-runtime").JSX.Element;
94
- /** @internal — CVA variant helpers; compose via Table props instead. */
95
- export { tableHeaderCellVariants, tableDataCellVariants, tableSortButtonVariants };
81
+ export {};
@@ -20,10 +20,6 @@
20
20
  * contract expects, just keyed by selection instead of tone/size/density.
21
21
  */
22
22
  import * as React from 'react';
23
- declare const tagButtonVariants: (props?: import("class-variance-authority/dist/types").ClassProp | undefined) => string;
24
- declare const tagPillVariants: (props?: ({
25
- selected?: boolean | null | undefined;
26
- } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
27
23
  /** @public */
28
24
  export interface TagProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
29
25
  /** Tag content displayed inside the pill. */
@@ -33,5 +29,3 @@ export interface TagProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElem
33
29
  }
34
30
  /** @public */
35
31
  export declare const Tag: React.ForwardRefExoticComponent<TagProps & React.RefAttributes<HTMLButtonElement>>;
36
- /** @internal — CVA variant helpers; compose via Tag props instead. */
37
- export { tagButtonVariants, tagPillVariants };
@@ -32,5 +32,4 @@ export declare const Text: import("react").ForwardRefExoticComponent<{
32
32
  className?: string;
33
33
  style?: CSSProperties;
34
34
  } & HTMLAttributes<HTMLElement> & import("react").RefAttributes<HTMLElement>>;
35
- /** @internal — CVA variant helper; compose via Text props instead. */
36
- export { textVariants };
35
+ export {};
@@ -38,5 +38,4 @@ export interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTex
38
38
  textareaClassName?: string;
39
39
  }
40
40
  export declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
41
- /** @internal — CVA variant helper; compose via Textarea props instead. */
42
- export { textareaVariants };
41
+ export {};
@@ -63,5 +63,4 @@ export interface ToastProviderProps {
63
63
  * @public
64
64
  */
65
65
  export declare function ToastProvider({ children, duration, swipeDirection, }: ToastProviderProps): import("react/jsx-runtime").JSX.Element;
66
- /** @internal — CVA variant helper; compose via ToastOptions.tone instead. */
67
- export { toastIconVariants };
66
+ export {};
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * ExpandTooltip — HDS image interaction tooltip
7
7
  *
8
- * A pill-shaped label (brand blue / white text) that indicates an image
8
+ * A pill-shaped label (accent fill / onAccent text) that indicates an image
9
9
  * is expandable. Supports two render modes:
10
10
  *
11
11
  * 'cursor' — fixed-positioned portal tracking the mouse cursor.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * DemoStateContext — React context for freezing HDS component demos into a fixed visual state.
3
3
  *
4
- * Replaces the forceHover/forceFocus/forcePressed prop trio on Button and NavItem.
4
+ * Replaces the forceHover/forceFocus/forcePressed prop trio on Button.
5
5
  * Wrap any demo with <FreezeState state="hover"> and every HDS component inside will
6
6
  * render that visual state without wiring individual force props.
7
7
  *
@@ -8,17 +8,17 @@
8
8
  * falls back to window.location. Drop-in for apps with no router
9
9
  * (e.g. job-hunt, a plain Vite/React app).
10
10
  * 2. react-router consumers — wrap the app once in <HdsRouterProvider> with an
11
- * adapter that bridges useNavigate()/useLocation()/<Link>. The docs site
12
- * does this internally via ReactRouterBridge (NOT exported).
11
+ * adapter that bridges useNavigate()/useLocation()/<Link>.
13
12
  * 3. Next.js / other routers — same seam: provide an adapter mapping to that
14
13
  * router's navigation + Link.
15
14
  *
16
15
  * IMPORTANT: this module MUST NOT import react-router (or any router). It is the
17
16
  * router-free contract every consumer can satisfy.
18
17
  *
19
- * @doc-ignore — provider/hook seam (like ThemeProvider et al.), not a visual
20
- * component; it carries no Figma specimen or docs page, so manifest discovery
21
- * must skip it despite the Hds* name prefix.
18
+ * @category Theming
19
+ * @tier primitive
20
+ * @usage Wrap the app root once so HDS links and navigation use your client router; with no provider they stay plain anchors.
21
+ * @doc-exempt: provider/hook seam like HdsThemeProvider, not a visual component; no Figma node or docs page, documented in README.md and docs/CONSUMING.md
22
22
  */
23
23
  import { type AnchorHTMLAttributes, type ReactNode } from 'react';
24
24
  /** Options forwarded to a router's navigate call (state preserved for SPA nav). */
@@ -93,12 +93,13 @@ export type ManifestComponentSpec = {
93
93
  usage?: ManifestUsage;
94
94
  keyboard?: ManifestKeyboardEntry[];
95
95
  aiRules?: string;
96
+ /** Deprecation notice from the component's `@deprecated` JSDoc tag (hds#390). */
97
+ deprecated?: string;
98
+ /** Release that removes the deprecated component, from `@removeIn`. */
99
+ removeIn?: string;
100
+ /** Replacement for the deprecated component, from `@useInstead` in the same block. */
101
+ useInstead?: string;
96
102
  };
97
- /**
98
- * Alias of ManifestComponentSpec for hds-search.ts back-compat.
99
- * @deprecated Use ManifestComponentSpec directly in new code.
100
- */
101
- export type ManifestSpec = ManifestComponentSpec;
102
103
  /** The root SystemManifest shape (virtual:hds-manifest). */
103
104
  export type SystemManifest = {
104
105
  name?: string;
@@ -203,6 +203,7 @@ export declare const tokenRefs: {
203
203
  readonly "64": "var(--primitive-size-64)";
204
204
  readonly "80": "var(--primitive-size-80)";
205
205
  readonly "96": "var(--primitive-size-96)";
206
+ readonly "120": "var(--primitive-size-120)";
206
207
  readonly interactive: {
207
208
  readonly min: "var(--primitive-size-interactive-min)";
208
209
  readonly minCompact: "var(--primitive-size-interactive-minCompact)";
@@ -304,6 +305,11 @@ export declare const tokenRefs: {
304
305
  readonly inProgress: "var(--semantic-color-feedback-bg-inProgress)";
305
306
  };
306
307
  };
308
+ readonly state: {
309
+ readonly pressed: {
310
+ readonly overlay: "var(--semantic-color-state-pressed-overlay)";
311
+ };
312
+ };
307
313
  };
308
314
  readonly space: {
309
315
  readonly scale: {
@@ -511,6 +517,7 @@ export declare const tokenRefs: {
511
517
  readonly lg: "var(--semantic-size-icon-lg)";
512
518
  };
513
519
  readonly avatar: "var(--semantic-size-avatar)";
520
+ readonly tile: "var(--semantic-size-tile)";
514
521
  readonly row: {
515
522
  readonly compact: "var(--semantic-size-row-compact)";
516
523
  readonly comfortable: "var(--semantic-size-row-comfortable)";
@@ -641,6 +648,7 @@ export declare const tokenRefs: {
641
648
  readonly "card-foreground": "var(--role-card-foreground)";
642
649
  readonly popover: "var(--role-popover)";
643
650
  readonly scrim: "var(--role-scrim)";
651
+ readonly "pressed-overlay": "var(--role-pressed-overlay)";
644
652
  readonly "popover-foreground": "var(--role-popover-foreground)";
645
653
  readonly primary: "var(--role-primary)";
646
654
  readonly "primary-foreground": "var(--role-primary-foreground)";
@@ -204,6 +204,7 @@ export declare const tokenValues: {
204
204
  readonly "64": "64px";
205
205
  readonly "80": "80px";
206
206
  readonly "96": "96px";
207
+ readonly "120": "120px";
207
208
  readonly interactive: {
208
209
  readonly min: "44px";
209
210
  readonly minCompact: "24px";
@@ -124,16 +124,25 @@ declare const hds: {
124
124
  xs: string;
125
125
  };
126
126
  component: {
127
- /** @deprecated hds#206 — use `semantic.space.surface.padding`. */
127
+ /**
128
+ * @deprecated hds#206 — use `semantic.space.surface.padding`.
129
+ * @removeIn 1.0.0
130
+ */
128
131
  padding: string;
129
- /** @deprecated hds#206 — use `semantic.space.scale.xs`. */
132
+ /**
133
+ * @deprecated hds#206 — use `semantic.space.scale.xs`.
134
+ * @removeIn 1.0.0
135
+ */
130
136
  gap: string;
131
137
  };
132
138
  stack: {
133
139
  gap: string;
134
140
  };
135
141
  layout: {
136
- /** @deprecated hds#206 — use `semantic.space.region.gutter`. */
142
+ /**
143
+ * @deprecated hds#206 — use `semantic.space.region.gutter`.
144
+ * @removeIn 1.0.0
145
+ */
137
146
  gutter: string;
138
147
  gap: string;
139
148
  section: string;
@@ -192,6 +201,16 @@ declare const hds: {
192
201
  medium: string;
193
202
  large: string;
194
203
  };
204
+ /**
205
+ * @deprecated hds#206 — use `hds.semantic.space.scale.*`, which compact density
206
+ * remaps too. Same pixels at both densities, one step down the name ladder:
207
+ * `density.sm` → `scale.xs`, `density.md` → `scale.sm`, `density.lg` → `scale.md`,
208
+ * `density.xl` → `scale.lg`, `density.xl2` → `scale.xl`. `density.xs` (4px),
209
+ * `density.xl3` (64px) and `density.xl4` (80px) have no scale step:
210
+ * `hds.space.px4` / `px64` / `px80` keep their comfortable pixels, without the
211
+ * compact remap.
212
+ * @removeIn 1.0.0
213
+ */
195
214
  density: {
196
215
  xs: string;
197
216
  sm: string;
@@ -2,7 +2,7 @@
2
2
  * @hirobius/design-system/icons
3
3
  *
4
4
  * A curated subset of Lucide (canonical 0.487.0 names) so a consumer can get
5
- * an `icon` for IconButton / Icon with nothing extra to install. Bare
5
+ * an `icon` for Icon (and Button iconOnly through it) with nothing extra to install. Bare
6
6
  * re-export from 'lucide-react' (external in the lib build, so it tree-shakes).
7
7
  * Legacy aliases (MoreHorizontal, MoreVertical, AlertTriangle, Home, Filter)
8
8
  * are intentionally not exported; use Ellipsis, EllipsisVertical,