@hirobius/design-system 0.19.0 → 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 (144) 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/chunks/{form-BvNNnJ0t.js → form-COP3vK9_.js} +29 -27
  15. package/dist/contexts.js +157 -78
  16. package/dist/form.js +1 -1
  17. package/dist/hirobius-ui.js +1826 -5503
  18. package/dist/manifest.js +12 -13
  19. package/dist/patterns.js +820 -561
  20. package/dist/styles.css +1 -1
  21. package/dist/tokens.css +1 -1
  22. package/dist/tokens.js +29 -8
  23. package/dist/types/src/app/components/avatar-group.d.ts +1 -2
  24. package/dist/types/src/app/components/badge.d.ts +8 -3
  25. package/dist/types/src/app/components/blockquote.d.ts +1 -2
  26. package/dist/types/src/app/components/box-sx.d.ts +110 -13
  27. package/dist/types/src/app/components/box.d.ts +6 -3
  28. package/dist/types/src/app/components/breadcrumb.d.ts +0 -5
  29. package/dist/types/src/app/components/button.d.ts +33 -4
  30. package/dist/types/src/app/components/card.d.ts +7 -8
  31. package/dist/types/src/app/components/combobox.d.ts +47 -11
  32. package/dist/types/src/app/components/container.d.ts +2 -2
  33. package/dist/types/src/app/components/data-table-section.d.ts +1 -1
  34. package/dist/types/src/app/components/dialog.d.ts +7 -1
  35. package/dist/types/src/app/components/disclosure.d.ts +1 -5
  36. package/dist/types/src/app/components/field.d.ts +1 -2
  37. package/dist/types/src/app/components/grid.d.ts +10 -6
  38. package/dist/types/src/app/components/hds-tooltip.d.ts +12 -2
  39. package/dist/types/src/app/components/inline-code.d.ts +1 -2
  40. package/dist/types/src/app/components/input.d.ts +8 -5
  41. package/dist/types/src/app/components/kbd.d.ts +1 -2
  42. package/dist/types/src/app/components/metadata-list.d.ts +1 -2
  43. package/dist/types/src/app/components/page-header.d.ts +0 -2
  44. package/dist/types/src/app/components/popover.d.ts +8 -0
  45. package/dist/types/src/app/components/progress.d.ts +33 -6
  46. package/dist/types/src/app/components/segmented-control.d.ts +2 -26
  47. package/dist/types/src/app/components/select.d.ts +10 -1
  48. package/dist/types/src/app/components/skeleton.d.ts +2 -3
  49. package/dist/types/src/app/components/spinner.d.ts +1 -2
  50. package/dist/types/src/app/components/stack.d.ts +4 -1
  51. package/dist/types/src/app/components/stat.d.ts +1 -2
  52. package/dist/types/src/app/components/status-dot.d.ts +18 -4
  53. package/dist/types/src/app/components/status-list-item.d.ts +1 -2
  54. package/dist/types/src/app/components/surface.d.ts +2 -3
  55. package/dist/types/src/app/components/switcher.d.ts +1 -1
  56. package/dist/types/src/app/components/table.d.ts +1 -15
  57. package/dist/types/src/app/components/tag.d.ts +0 -6
  58. package/dist/types/src/app/components/text.d.ts +1 -2
  59. package/dist/types/src/app/components/textarea.d.ts +1 -2
  60. package/dist/types/src/app/components/toast.d.ts +1 -2
  61. package/dist/types/src/app/components/tooltip.d.ts +1 -1
  62. package/dist/types/src/app/context/DemoStateContext.d.ts +1 -1
  63. package/dist/types/src/app/context/RouterContext.d.ts +5 -5
  64. package/dist/types/src/app/data/manifest-types.d.ts +6 -5
  65. package/dist/types/src/app/design-system/generated-token-refs.d.ts +8 -0
  66. package/dist/types/src/app/design-system/generated-token-values.d.ts +1 -0
  67. package/dist/types/src/app/design-system/tokens.d.ts +22 -3
  68. package/dist/types/src/icons.d.ts +1 -1
  69. package/dist/types/src/index.d.ts +33 -124
  70. package/dist/types/src/patterns.d.ts +20 -25
  71. package/dist/variables.css +6 -0
  72. package/docs/CONSUMING.md +21 -13
  73. package/hirobius.tokens.json +48 -15
  74. package/llms.txt +19 -20
  75. package/package.json +18 -22
  76. package/public/hds-manifest.json +2400 -6488
  77. package/public/llms/components.txt +41 -423
  78. package/public/llms/layout.txt +4 -4
  79. package/public/llms-full.txt +67 -448
  80. package/public/llms.txt +19 -20
  81. package/src/app/data/component-api.json +1379 -3271
  82. package/dist/chunks/LanguageContext-CH_bwzCq.js +0 -83
  83. package/dist/chunks/TokenDisplayContext-evZi_214.js +0 -18
  84. package/dist/chunks/activity-feed-DIMeUJpW.js +0 -21950
  85. package/dist/types/src/app/components/activity-feed.d.ts +0 -73
  86. package/dist/types/src/app/components/app-shell.d.ts +0 -40
  87. package/dist/types/src/app/components/aspect-ratio.d.ts +0 -25
  88. package/dist/types/src/app/components/bleed.d.ts +0 -39
  89. package/dist/types/src/app/components/button-group.d.ts +0 -22
  90. package/dist/types/src/app/components/calendar.d.ts +0 -22
  91. package/dist/types/src/app/components/carousel.d.ts +0 -26
  92. package/dist/types/src/app/components/center.d.ts +0 -36
  93. package/dist/types/src/app/components/cinematic-link.d.ts +0 -18
  94. package/dist/types/src/app/components/circular-progress.d.ts +0 -28
  95. package/dist/types/src/app/components/cluster.d.ts +0 -39
  96. package/dist/types/src/app/components/command-palette.d.ts +0 -46
  97. package/dist/types/src/app/components/component-instance-matrix.d.ts +0 -27
  98. package/dist/types/src/app/components/context-menu.d.ts +0 -78
  99. package/dist/types/src/app/components/cover.d.ts +0 -43
  100. package/dist/types/src/app/components/date-input.d.ts +0 -31
  101. package/dist/types/src/app/components/date-range-input.d.ts +0 -34
  102. package/dist/types/src/app/components/date-time-input.d.ts +0 -30
  103. package/dist/types/src/app/components/doc-link-card.d.ts +0 -32
  104. package/dist/types/src/app/components/error-boundary.d.ts +0 -25
  105. package/dist/types/src/app/components/file-input.d.ts +0 -30
  106. package/dist/types/src/app/components/foundation-swatch.d.ts +0 -45
  107. package/dist/types/src/app/components/frame.d.ts +0 -38
  108. package/dist/types/src/app/components/heading-stack.d.ts +0 -52
  109. package/dist/types/src/app/components/history-card.d.ts +0 -12
  110. package/dist/types/src/app/components/hover-card.d.ts +0 -46
  111. package/dist/types/src/app/components/icon-button.d.ts +0 -22
  112. package/dist/types/src/app/components/image-lightbox.d.ts +0 -14
  113. package/dist/types/src/app/components/input-group.d.ts +0 -23
  114. package/dist/types/src/app/components/multi-selector.d.ts +0 -40
  115. package/dist/types/src/app/components/nav-group.d.ts +0 -29
  116. package/dist/types/src/app/components/nav-item.d.ts +0 -33
  117. package/dist/types/src/app/components/not-found-pattern.d.ts +0 -1
  118. package/dist/types/src/app/components/overflow-list.d.ts +0 -21
  119. package/dist/types/src/app/components/selectable-card.d.ts +0 -29
  120. package/dist/types/src/app/components/side-nav.d.ts +0 -23
  121. package/dist/types/src/app/components/sketch.d.ts +0 -19
  122. package/dist/types/src/app/components/stacked-card-rail.d.ts +0 -32
  123. package/dist/types/src/app/components/stepper-field.d.ts +0 -12
  124. package/dist/types/src/app/components/stepper.d.ts +0 -33
  125. package/dist/types/src/app/components/text-lockup.d.ts +0 -38
  126. package/dist/types/src/app/components/tile-grid.d.ts +0 -17
  127. package/dist/types/src/app/components/time-input.d.ts +0 -24
  128. package/dist/types/src/app/components/toggle-button.d.ts +0 -32
  129. package/dist/types/src/app/components/token.d.ts +0 -90
  130. package/dist/types/src/app/components/tokenUtils.d.ts +0 -38
  131. package/dist/types/src/app/components/tokenizer.d.ts +0 -24
  132. package/dist/types/src/app/components/toolbar.d.ts +0 -36
  133. package/dist/types/src/app/components/top-nav.d.ts +0 -23
  134. package/dist/types/src/app/components/tree-list.d.ts +0 -30
  135. package/dist/types/src/app/data/nav-model.d.ts +0 -39
  136. package/dist/types/src/app/hooks/useFocusVisible.d.ts +0 -9
  137. package/dist/types/src/app/layouts/CaseStudyLayout.d.ts +0 -20
  138. package/dist/types/src/app/layouts/DocLayout.d.ts +0 -14
  139. package/dist/types/src/app/layouts/EmbeddedDocLayoutContext.d.ts +0 -6
  140. package/dist/types/src/app/layouts/HdsDocsShell.d.ts +0 -72
  141. package/dist/types/src/app/layouts/HdsSystemDocLayout.d.ts +0 -14
  142. package/dist/types/src/app/lib/hds-search.d.ts +0 -45
  143. package/dist/types/src/app/lib/nav-active.d.ts +0 -16
  144. package/dist/types/src/app/lib/navLevels.d.ts +0 -4
package/llms.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  # Hirobius Design System
2
2
 
3
- Generated: 2026-09-30T14:27:19.090Z
3
+ Generated: 2026-10-01T13:20:49.686Z
4
4
  Primary sources: `public/hds-manifest.json`, `src/app/data/component-api.json`, `hirobius.tokens.json`
5
5
 
6
6
  ## System Architecture
@@ -42,33 +42,31 @@ One line per component that declares when to use it (`@usage` / `@useInstead` in
42
42
 
43
43
  Alert: Show a persistent inline message with a severity, next to the content it concerns. Use instead: ToastProvider, Badge
44
44
  Avatar: Show a person or entity as an image with an initials fallback. Use instead: Icon, Badge
45
- Badge: Label a status, state or count with a compact neutral or semantic chip. Use instead: Tag, Alert
45
+ Badge: Label a status, state or count with a compact neutral or semantic chip, or a dot. Use instead: Tag, Alert
46
46
  Box: Build one-off layout that no named layout primitive covers, using token keys through `sx`. Use instead: Stack, Grid, Container
47
47
  Breadcrumb: Show where the current page sits in a hierarchy and link back up it. Use instead: Tabs, Pagination
48
- Button: Trigger an action (submit, save, open a dialog) with a text label and optional icons; for an icon-only control pass iconOnly with iconLeft. Use instead: InlineLink
49
- ButtonGroup: Attach related Buttons into one segmented row or column that reads as a single control. Use instead: SegmentedControl, Stack
50
- Card: Group related content on a raised surface with header, body, footer and metric slots. Use instead: Surface, Card.Metric
48
+ Button: Trigger an action (submit, save, open a dialog) with a text label and optional icons; for an icon-only control pass iconOnly with iconLeft and label; for an on/off toggle pass pressed. Use instead: InlineLink
49
+ Card: Group related content on a raised surface with header, body, footer and metric slots, or as one selectable option. Use instead: Surface, Card.Metric
51
50
  CardMetric: Show one headline figure (a KPI, a count, a total) with its label inside a Card.
52
51
  Checkbox: Let people tick one or more independent options, or a parent choice that is partly selected. Use instead: Toggle, Radio
53
- Combobox: Pick one value from a long list of options, with a search field that filters as you type. Use instead: Select, Menu
52
+ Combobox: Pick one value, or several with `multiple`, from a long list of options, with a search field that filters as you type. Use instead: Select, Menu
54
53
  Container: Constrain a page region to the content or maximum width and centre it. Use instead: Stack, Grid, Box
55
- ContextMenu: Offer actions for an item on right-click, or the equivalent keyboard gesture. Use instead: Menu
56
- Dialog: Interrupt the page with a modal that needs a decision or focused input before people continue. Use instead: HoverCard, Alert, ToastProvider
54
+ Dialog: Interrupt the page with a modal that needs a decision or focused input before people continue. Use instead: Tooltip, Alert, ToastProvider
57
55
  Disclosure: Hide optional explanatory content behind a heading that people can expand. Use instead: Tabs
58
56
  Divider: Separate two regions of content with a thin semantic rule. Use instead: Stack, Surface
59
57
  EmptyState: Say that a list, grid or section has no data yet, with a title and an optional description. Use instead: Skeleton, Alert
60
58
  Field: Show a labelled read-only value, such as a name and its value in a detail view. Use instead: Input, Card.Metric
61
59
  Grid: Lay out content in responsive columns with token-governed gaps, or align nested content with subgrid. Use instead: Stack, Box
60
+ HdsRouterProvider: Wrap the app root once so HDS links and navigation use your client router; with no provider they stay plain anchors.
62
61
  HdsThemeProvider: Wrap an app or region once to set theme, density and other root attributes for everything inside it. Use instead: Surface
63
- HoverCard: Preview extra detail about a link or mention when it is hovered or focused, without navigating. Use instead: Dialog, Tooltip
64
62
  Icon: Draw a Lucide glyph at a size and colour from the design tokens. Use instead: Button, Avatar
65
- IconButton: Trigger an action from a compact icon-only control, always with an accessible label. Use instead: Button
66
63
  InlineLink: Link to a route or external URL from inside body copy. Use instead: Button, Text
67
- Input: Collect a single line of text, a number, an email or a password, with label, helper and error slots. Use instead: Textarea, Select, Combobox
64
+ Input: Collect a single line of text, a number, an email, a password, a date or a time, with label, helper and error slots. Use instead: Textarea, Select, Combobox
68
65
  Kbd: Show a keyboard key or shortcut hint inline, as a native kbd element. Use instead: Text
69
66
  Menu: Offer a list of actions from a trigger, closed until opened. Use instead: Select
70
67
  Pagination: Move between pages of a long result set, with truncated page numbers. Use instead: Breadcrumb
71
- Progress: Show how far a task has got, as a bar that is determinate or indeterminate. Use instead: Spinner, Skeleton
68
+ Popover: Anchor interactive content, such as a short form, a filter set or a picker, to a trigger people click to open. Use instead: Tooltip, Menu, Dialog
69
+ Progress: Show how far a task has got, as a bar or ring that is determinate or indeterminate. Use instead: Spinner, Skeleton
72
70
  Radio: Choose exactly one option from a small set that should stay visible together. Use instead: Checkbox, Select, SegmentedControl
73
71
  SegmentedControl: Switch between two to five mutually exclusive views or modes in a compact row. Use instead: Radio, Tabs, Select
74
72
  Select: Choose one value from a short list of options in a form field. Use instead: Menu, Combobox
@@ -86,6 +84,7 @@ Text: Set any text on the type ramp, with the element chosen by `as`. Use instea
86
84
  Textarea: Collect multi-line free text such as a message, note or description. Use instead: Input
87
85
  ToastProvider: Confirm an action with a brief message that appears and dismisses itself, through useToast. Use instead: Alert, Dialog
88
86
  Toggle: Switch one setting on or off, with the effect applying immediately. Use instead: Checkbox, Radio
87
+ Tooltip: Name an icon-only control, or add a short hint that appears on hover and keyboard focus. Use instead: Popover, Text
89
88
  VisuallyHidden: Give assistive technology a label or description that sighted people do not need to see. Use instead: Text
90
89
 
91
90
  ## Tokens (Primary Source Of Truth)
@@ -111,16 +110,16 @@ VisuallyHidden: Give assistive technology a label or description that sighted pe
111
110
 
112
111
  Canonical skeleton, outermost to innermost:
113
112
 
114
- 1. `Page` (or `Container`/`Center` for a full-bleed, non-page surface) for the outermost width constraint. Never import `Container` directly inside `src/app/pages/**` — use `Page`, which wraps it and owns vertical rhythm.
113
+ 1. `Page` (from `@hirobius/design-system/patterns`; or `Container` for a full-bleed, non-page surface, with a `Box` inside it for a horizontal gutter) for the outermost width constraint. Never import `Container` directly inside `src/app/pages/**` — use `Page`, which wraps it and owns vertical rhythm.
115
114
  2. `Stack` (vertical rhythm between sections) or `Grid` (two-dimensional/column layout) for the structural skeleton. One section = one Section/Stack — never add a second wrapper to fake a section boundary.
116
- 3. Reach for a named every-layout primitive before hand-rolling flex/grid math for a common intent: `Cluster` (wrapping row of same-ish things), `Center` (centered max-width column with optional gutter), `Sidebar` (fixed-width rail + fluid content, no media query), `Switcher` (row that flips to a column below a threshold, no media query), `Cover` (full-height shell with a centered main region), `Frame` (aspect-ratio-locked clipped media box), `Bleed` (controlled negative margin to escape a parent padding).
115
+ 3. Reach for a named layout primitive before hand-rolling flex/grid math for a common intent: `Stack direction="row" wrap="wrap"` (wrapping row of same-ish things), `Sidebar` (fixed-width rail + fluid content, no media query), `Switcher` (row that flips to a column below a threshold, no media query). A full-height shell with a centered main region, an aspect-ratio-locked media box or a negative margin that escapes a parent padding is a `Box` with `style` (not `sx`, which applies on the client only).
117
116
  4. `Surface` for any background-bearing, padded wrapper (card, panel, inset). Never a raw element with backgroundColor + padding hand-rolled inline.
118
117
  5. Use the screen patterns (`@hirobius/design-system/patterns`) for the parts every screen repeats: `PageHeader` once at the top (breadcrumb, `heading2` title, status, actions), `MetricTiles` for any row of headline numbers, `FormActions` for a form footer (primary right-most and last in DOM order, destructive on the far left), `DataTableSection` for a titled table (toolbar slot, consumer row actions, empty state, scrolls on narrow widths without a caller `minWidth`), and `DestructiveSection` last for an irreversible action (danger button, then an `AlertDialog` confirm). Pick between `MetricTiles`, `Stat`, `Card.Metric` and `StatusTile`, and between `Card` and `Surface`, with the "Which one, when" table in `DESIGN.md`.
119
118
  6. `Box` `sx` LAST — only for genuinely one-off layout that no named primitive covers. `sx` spacing/color keys MUST be HDS token keys, never raw hex/px.
120
119
 
121
120
  Negative rules (apply everywhere, checked by `scripts/audit-tokens.mjs --full`, `check-hardcoded-spacing.mjs`, `check-hardcoded-colors.mjs`):
122
121
 
123
- - No inline margins on children to fake spacing between siblings — gap/spacing on the parent (Stack/Grid/Cluster/Switcher/Sidebar/Cover) owns rhythm, not margin on the child.
122
+ - No inline margins on children to fake spacing between siblings — gap/spacing on the parent (Stack/Grid/Switcher/Sidebar) owns rhythm, not margin on the child.
124
123
  - No raw px or hex values in any layout or color prop — every spacing value comes from the semantic gap scale (`tight | normal | inset | spacious`, or a component/subgrid step) and every color comes from a `semantic.color.*` token.
125
124
  - No repeated outlined cards as the default structure for roadmap/status/process/overview UI — use open bands, dividers, rails, disclosures, and whitespace instead.
126
125
 
@@ -175,7 +174,7 @@ When building any card component or card-like surface, ALL of the following rule
175
174
 
176
175
  Cards default to `elevation.flat`. Popovers/tooltips/dropdowns use `elevation.floating`. Dialogs/sheets use `elevation.overlay`. Interactive cards lift to `elevation.raised` on hover. Never combine `raised` with a border — depth is one mechanism (border OR shadow), not both stacked.
177
176
 
178
- Overlays (Dialog, AlertDialog, Menu, ContextMenu, Popover, Select, HoverCard, Tooltip) portal into the nearest `data-hds` scope, so they inherit its theme (for example `<div data-hds data-theme="dark">`); pass `container` on the Content part to override.
177
+ Overlays (Dialog, AlertDialog, Menu, Popover, Select, Tooltip) portal into the nearest `data-hds` scope, so they inherit its theme (for example `<div data-hds data-theme="dark">`); pass `container` on the Content part to override.
179
178
 
180
179
  ## Slices And Full Bundle
181
180
 
@@ -219,19 +218,19 @@ On-demand only (load only if explicitly requested or the task clearly requires i
219
218
  Icons come from the curated subpath `@hirobius/design-system/icons`; nothing extra to install.
220
219
 
221
220
  ```tsx
222
- import { IconButton } from '@hirobius/design-system';
221
+ import { Button, Icon } from '@hirobius/design-system';
223
222
  import { Ellipsis } from '@hirobius/design-system/icons';
224
223
 
225
- <IconButton icon={Ellipsis} label="Row actions" />
224
+ <Button iconOnly label="Row actions" iconLeft={<Icon icon={Ellipsis} />} />
226
225
  ```
227
226
 
228
- Rule: icon-only actions (row menus, close, edit) use `IconButton`; do not hand-roll a button with a glyph or text "...".
227
+ Rule: icon-only actions (row menus, close, edit) use `Button iconOnly` with a `label` and an `Icon` in `iconLeft`; do not hand-roll a button with a glyph or text "...".
229
228
 
230
229
  Names: Archive, ArrowDown, ArrowLeft, ArrowRight, ArrowUp, Bell, Bookmark, Calendar, Check, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, CircleAlert, CircleCheck, CircleHelp, Clock, Copy, Download, Ellipsis, EllipsisVertical, ExternalLink, Eye, EyeOff, FileText, Funnel, Heart, House, Image, Info, Link, Lock, LogIn, LogOut, Mail, Menu, Minus, Pencil, Plus, RefreshCw, Save, Search, Settings, Share, Star, Trash2, TriangleAlert, Upload, User, X
231
230
 
232
231
  Legacy names map to canonical ones: MoreHorizontal -> Ellipsis, MoreVertical -> EllipsisVertical, AlertTriangle -> TriangleAlert, Home -> House, Filter -> Funnel.
233
232
 
234
- Name collisions: `Calendar` and `Menu` share names with HDS components; alias the icon: `import { Calendar as CalendarIcon, Menu as MenuIcon } from '@hirobius/design-system/icons'`. For an icon outside the set, install `lucide-react@0.487.0` (same version keeps the `LucideIcon` type identical).
233
+ Name collisions: `Menu` shares a name with an HDS component; alias the icon: `import { Menu as MenuIcon } from '@hirobius/design-system/icons'`. For an icon outside the set, install `lucide-react@0.487.0` (same version keeps the `LucideIcon` type identical).
235
234
 
236
235
  ## Token Rules
237
236
 
package/package.json CHANGED
@@ -20,17 +20,12 @@
20
20
  "author": "Adrian Milsap",
21
21
  "license": "SEE LICENSE IN NOTICE.md",
22
22
  "private": false,
23
- "version": "0.19.0",
23
+ "version": "0.20.0",
24
24
  "engines": {
25
25
  "node": ">=20",
26
26
  "pnpm": ">=8"
27
27
  },
28
28
  "type": "module",
29
- "typeCoverage": {
30
- "ignoreFiles": [
31
- "src/app/components/mobius-distortion.ts"
32
- ]
33
- },
34
29
  "module": "./dist/hirobius-ui.js",
35
30
  "types": "./dist/types/src/index.d.ts",
36
31
  "sideEffects": [
@@ -112,7 +107,13 @@
112
107
  "docs/CONSUMING.md",
113
108
  "src/app/data/component-api.json",
114
109
  "codemods/patterns-subpath.mjs",
115
- "codemods/patterns-subpath.names.json"
110
+ "codemods/patterns-subpath.names.json",
111
+ "codemods/removed-0.20.json",
112
+ "codemods/hds-prefix.mjs",
113
+ "codemods/unrewritable.mjs",
114
+ "codemods/jsx-fold.mjs",
115
+ "codemods/not-found-pattern.mjs",
116
+ "codemods/tile-grid.mjs"
116
117
  ],
117
118
  "publishConfig": {
118
119
  "registry": "https://registry.npmjs.org",
@@ -146,26 +147,19 @@
146
147
  },
147
148
  "dependencies": {
148
149
  "@radix-ui/react-alert-dialog": "^1.1.18",
149
- "@radix-ui/react-aspect-ratio": "^1.1.11",
150
- "@radix-ui/react-context-menu": "^2.3.2",
151
150
  "@radix-ui/react-dialog": "^1.1.15",
152
151
  "@radix-ui/react-dropdown-menu": "^2.1.18",
153
- "@radix-ui/react-hover-card": "^1.1.18",
154
152
  "@radix-ui/react-popover": "^1.1.17",
155
153
  "@radix-ui/react-select": "^2.3.1",
156
154
  "@radix-ui/react-slot": "^1.2.4",
157
155
  "@radix-ui/react-tabs": "^1.1.13",
158
156
  "@radix-ui/react-toast": "^1.2.17",
159
- "@radix-ui/react-toggle": "^1.1.13",
160
157
  "@radix-ui/react-toggle-group": "^1.1.13",
161
- "@radix-ui/react-toolbar": "^1.1.14",
162
158
  "@radix-ui/react-tooltip": "^1.1.8",
163
159
  "class-variance-authority": "^0.7.1",
164
160
  "clsx": "^2.1.1",
165
- "date-fns": "^4.4.0",
166
161
  "lucide-react": "0.487.0",
167
162
  "motion": "12.23.24",
168
- "react-day-picker": "^10.0.1",
169
163
  "tailwind-merge": "^3.5.0"
170
164
  },
171
165
  "devDependencies": {
@@ -174,6 +168,7 @@
174
168
  "@changesets/cli": "^2.27.10",
175
169
  "@cyclonedx/cyclonedx-npm": "^4.2.1",
176
170
  "@figma/code-connect": "^2.0.1",
171
+ "@guidepup/virtual-screen-reader": "^0.33.0",
177
172
  "@hookform/resolvers": "^5.4.0",
178
173
  "@lhci/cli": "0.15.1",
179
174
  "@microsoft/api-extractor": "7.58.7",
@@ -190,7 +185,6 @@
190
185
  "@testing-library/user-event": "^14.6.7",
191
186
  "@types/react": "^18.3.0",
192
187
  "@types/react-dom": "^18.3.0",
193
- "@types/three": "^0.183.1",
194
188
  "@typescript-eslint/eslint-plugin": "^8.59.1",
195
189
  "@typescript-eslint/parser": "^8.59.1",
196
190
  "@vitejs/plugin-react": "4.7.0",
@@ -210,7 +204,6 @@
210
204
  "eslint-plugin-tailwindcss": "^3.18.3",
211
205
  "express": "^5.2.1",
212
206
  "fast-check": "^4.7.0",
213
- "fuse.js": "^7.1.0",
214
207
  "globals": "^17.6.0",
215
208
  "husky": "^9.1.7",
216
209
  "jscodeshift": "^17.3.0",
@@ -234,21 +227,22 @@
234
227
  "storybook": "^8.6.18",
235
228
  "style-dictionary": "^5.4.0",
236
229
  "tailwindcss": "^4.2.4",
237
- "three": "^0.183.2",
238
230
  "type-coverage": "^2.29.7",
239
231
  "typescript": "^6.0.2",
240
232
  "vite": "6.4.2",
241
233
  "vite-bundle-visualizer": "^1.2.1",
242
234
  "vitest": "^4.1.0",
243
235
  "yaml": "^2.8.1",
244
- "zod": "^4.4.3",
245
- "zustand": "^5.0.12"
236
+ "zod": "^4.4.3"
246
237
  },
247
238
  "lint-staged": {
248
239
  "*.{ts,tsx,js,jsx,mjs,cjs,json,md,mdx,css,scss,html,yaml,yml}": "prettier --write"
249
240
  },
250
241
  "bin": {
251
- "hds-patterns-subpath": "codemods/patterns-subpath.mjs"
242
+ "hds-patterns-subpath": "codemods/patterns-subpath.mjs",
243
+ "hds-prefix": "codemods/hds-prefix.mjs",
244
+ "hds-not-found-pattern": "codemods/not-found-pattern.mjs",
245
+ "hds-tile-grid": "codemods/tile-grid.mjs"
252
246
  },
253
247
  "scripts": {
254
248
  "_comment:a11y-high-value": "The following check:* validators are high-value accessibility checks that catch real violations (check:focus found 1 missing focus class). Kept dormant/manual-only to avoid pre-commit performance regression. Candidates to wire into pretest after CI stability review.",
@@ -270,7 +264,7 @@
270
264
  "changelog:generate": "node scripts/generate-changelog.mjs",
271
265
  "changeset": "changeset",
272
266
  "changeset:add": "changeset",
273
- "changeset:version": "changeset version",
267
+ "changeset:version": "changeset version && node scripts/audit-component-integrity.mjs --api --update-baseline",
274
268
  "check": "pnpm check:full",
275
269
  "check:a11y": "pnpm lint --rule '{\"jsx-a11y/alt-text\":\"error\",\"jsx-a11y/img-redundant-alt\":\"error\"}'",
276
270
  "check:attributions": "node scripts/check-attributions.mjs",
@@ -302,12 +296,14 @@
302
296
  "check:knip": "knip",
303
297
  "check:knip-ratchet": "knip --max-issues 60",
304
298
  "check:layout-discipline": "node scripts/check-layout-discipline.mjs",
299
+ "check:layout-gap-vocabulary": "node scripts/check-layout-gap-vocabulary.mjs",
305
300
  "check:licenses": "node scripts/check-licenses.mjs",
306
301
  "check:lockfile": "pnpm install --frozen-lockfile --offline --prefer-offline --ignore-scripts --silent 2>/dev/null || (echo 'Lockfile drift: run pnpm install' && exit 1)",
307
302
  "check:manifest-drift": "node scripts/check-manifest-drift.mjs",
308
303
  "check:micromotion": "node scripts/check-motion.mjs",
309
304
  "check:mojibake": "node scripts/lib/mojibake.mjs",
310
305
  "check:motion": "node scripts/check-reduced-motion.mjs",
306
+ "check:pure-annotations": "node scripts/check-pure-annotations.mjs",
311
307
  "check:refs": "node scripts/check-ref-forwarding.mjs",
312
308
  "check:registry": "node scripts/check-registry.mjs",
313
309
  "check:release": "pnpm check:full && node scripts/check-style-discipline.mjs && pnpm build:lib && pnpm check:size",
@@ -377,7 +373,7 @@
377
373
  "prebuild-storybook": "node scripts/generate-component-api.mjs",
378
374
  "prebuild:lib": "node scripts/generate-component-api.mjs",
379
375
  "prestorybook": "node scripts/generate-component-api.mjs",
380
- "pretest": "node scripts/validate-manifest.mjs && node scripts/check-manifest-drift.mjs && node scripts/check-manifest-schema-semver.mjs && node scripts/audit-component-integrity.mjs --completeness && node scripts/check-source-canon.mjs && node scripts/check-binding-drift.mjs && node scripts/check-registry.mjs && node scripts/check-tenant-tokens.mjs && node scripts/check-props-exports.mjs && knip --no-exit-code && node scripts/check-dark-alias-flip.mjs && node scripts/check-focus-states.mjs && node scripts/generate-staging-inventory.mjs --check && node scripts/generate-consumer-skill.mjs --check",
376
+ "pretest": "node scripts/validate-manifest.mjs && node scripts/check-manifest-drift.mjs && node scripts/check-manifest-schema-semver.mjs && node scripts/audit-component-integrity.mjs --completeness && node scripts/audit-component-integrity.mjs --api && node scripts/check-source-canon.mjs && node scripts/check-binding-drift.mjs && node scripts/check-registry.mjs && node scripts/check-tenant-tokens.mjs && node scripts/check-props-exports.mjs && knip --no-exit-code && node scripts/check-dark-alias-flip.mjs && node scripts/check-focus-states.mjs && node scripts/generate-staging-inventory.mjs --check && node scripts/generate-consumer-skill.mjs --check && node scripts/check-deprecations.mjs",
381
377
  "pretypecheck": "node scripts/audit-tokens.mjs --report-only",
382
378
  "preview:build": "vite build --config preview/vite.config.mjs",
383
379
  "promote": "node scripts/promote.mjs",