@hirobius/design-system 0.23.1 → 0.24.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.
@@ -149,52 +149,99 @@
149
149
  },
150
150
  "$description": "Discrete values within the green range at defined lightness steps."
151
151
  },
152
- "apple": {
152
+ "graphite": {
153
153
  "50": {
154
- "$value": "#f2faeb",
155
- "$description": "Apple-green accent tint — faintest step."
154
+ "$value": "#f5f4f4",
155
+ "$description": "Graphite accent tint — faintest step."
156
156
  },
157
157
  "100": {
158
- "$value": "#e2f3cf",
159
- "$description": "Apple-green accent — very light tint."
158
+ "$value": "#e9e7e8",
159
+ "$description": "Graphite accent — very light warm tint."
160
160
  },
161
161
  "200": {
162
- "$value": "#c7e7a4",
163
- "$description": "Apple-green accent — light tint."
162
+ "$value": "#d4d0d2",
163
+ "$description": "Graphite accent — light warm-grey; dark-mode rest accent fill."
164
164
  },
165
165
  "300": {
166
- "$value": "#a6d873",
167
- "$description": "Apple-green accent — soft mid-light step."
166
+ "$value": "#b2abae",
167
+ "$description": "Graphite accent — soft mid-light step; dark-mode hover/link."
168
168
  },
169
169
  "400": {
170
- "$value": "#85c84c",
171
- "$description": "Apple-green accent — bright step; dark-mode rest accent."
170
+ "$value": "#8b8488",
171
+ "$description": "Graphite accent — mid warm-grey step."
172
172
  },
173
173
  "500": {
174
- "$value": "#66b239",
175
- "$description": "Apple-green accent rest — bright, rich apple green; AA for dark (neutral.900) text as a fill."
174
+ "$value": "#655e62",
175
+ "$description": "Graphite accent — mid step."
176
176
  },
177
177
  "600": {
178
- "$value": "#54922d",
179
- "$description": "Apple-green accent — hover / border step."
178
+ "$value": "#544d51",
179
+ "$description": "Graphite accent — mid-dark step."
180
180
  },
181
181
  "700": {
182
- "$value": "#416f20",
183
- "$description": "Apple-green accent — pressed and accent-intent text (AA for text on page and card surfaces)."
182
+ "$value": "#433a3f",
183
+ "$description": "Graphite accent rest — the warm charcoal brand accent; white text as a fill (AA)."
184
184
  },
185
185
  "800": {
186
- "$value": "#34571b",
187
- "$description": "Apple-green accent — deep step."
186
+ "$value": "#352e32",
187
+ "$description": "Graphite accent — deep step; light-mode hover."
188
188
  },
189
189
  "900": {
190
- "$value": "#2b4518",
191
- "$description": "Apple-green accent — darkest usable step."
190
+ "$value": "#2a2428",
191
+ "$description": "Graphite accent — darkest usable step; light-mode pressed, dark-mode on-accent text."
192
192
  },
193
193
  "950": {
194
- "$value": "#16250c",
195
- "$description": "Apple-green accent — near-black green substrate."
194
+ "$value": "#19161a",
195
+ "$description": "Graphite accent — near-black warm substrate."
196
196
  },
197
- "$description": "Discrete values within the apple-green (brand accent) range at defined lightness steps. Distinct from the emerald `green` feedback/success scale."
197
+ "$description": "Graphite, the warm-charcoal brand accent scale. Feedback colors keep their own scales."
198
+ },
199
+ "mauve": {
200
+ "50": {
201
+ "$value": "#fff0f6",
202
+ "$description": "Mauve tint, faintest step."
203
+ },
204
+ "100": {
205
+ "$value": "#f4e2ea",
206
+ "$description": "Mauve step 100, lightness-matched to graphite 100."
207
+ },
208
+ "200": {
209
+ "$value": "#e1cad4",
210
+ "$description": "Mauve step 200, lightness-matched to graphite 200."
211
+ },
212
+ "300": {
213
+ "$value": "#c0a4b1",
214
+ "$description": "Mauve step 300, lightness-matched to graphite 300."
215
+ },
216
+ "400": {
217
+ "$value": "#9d7b8a",
218
+ "$description": "Mauve step 400, lightness-matched to graphite 400."
219
+ },
220
+ "500": {
221
+ "$value": "#734b5e",
222
+ "$description": "Mauve anchor (#734B5E). Reserved; not mapped to any semantic token yet."
223
+ },
224
+ "600": {
225
+ "$value": "#674254",
226
+ "$description": "Mauve step 600, lightness-matched to graphite 600."
227
+ },
228
+ "700": {
229
+ "$value": "#523141",
230
+ "$description": "Mauve step 700, lightness-matched to graphite 700."
231
+ },
232
+ "800": {
233
+ "$value": "#432634",
234
+ "$description": "Mauve step 800, lightness-matched to graphite 800."
235
+ },
236
+ "900": {
237
+ "$value": "#361d29",
238
+ "$description": "Mauve step 900, lightness-matched to graphite 900."
239
+ },
240
+ "950": {
241
+ "$value": "#240f1a",
242
+ "$description": "Mauve, near-black substrate."
243
+ },
244
+ "$description": "Mauve, a reserved secondary scale lightness-matched to graphite. Defined for exploration; no semantic token uses it yet."
198
245
  },
199
246
  "violet": {
200
247
  "50": {
@@ -1145,25 +1192,25 @@
1145
1192
  }
1146
1193
  },
1147
1194
  "accent": {
1148
- "$value": "{primitive.color.apple.500}",
1149
- "$description": "Accent-colored background — bright apple green (stays green on dark surfaces; pair with content.onAccent dark text).",
1195
+ "$value": "{primitive.color.graphite.700}",
1196
+ "$description": "Accent fill, warm graphite. Dark in light mode, light warm-grey in dark mode; pair with content.onAccent.",
1150
1197
  "$extensions": {
1151
1198
  "com.figma.variables": {
1152
1199
  "modes": {
1153
- "Light": "{primitive.color.apple.500}",
1154
- "Dark": "{primitive.color.apple.400}"
1200
+ "Light": "{primitive.color.graphite.700}",
1201
+ "Dark": "{primitive.color.graphite.200}"
1155
1202
  }
1156
1203
  }
1157
1204
  }
1158
1205
  },
1159
1206
  "accentSubtle": {
1160
- "$value": "{primitive.color.apple.50}",
1161
- "$description": "Faint accent tint for hover states or highlights",
1207
+ "$value": "{primitive.color.graphite.50}",
1208
+ "$description": "Faint accent tint for hover states or highlights.",
1162
1209
  "$extensions": {
1163
1210
  "com.figma.variables": {
1164
1211
  "modes": {
1165
- "Light": "{primitive.color.apple.50}",
1166
- "Dark": "{primitive.color.apple.900}"
1212
+ "Light": "{primitive.color.graphite.50}",
1213
+ "Dark": "{primitive.color.graphite.800}"
1167
1214
  }
1168
1215
  }
1169
1216
  }
@@ -1275,25 +1322,25 @@
1275
1322
  }
1276
1323
  },
1277
1324
  "accent": {
1278
- "$value": "{primitive.color.apple.700}",
1279
- "$description": "Accent-intent text/icon color — a dark apple green legible on page and card surfaces. Pair with underline/weight for link affordance.",
1325
+ "$value": "{primitive.color.graphite.700}",
1326
+ "$description": "Accent-intent text/icon color — graphite, legible on page and card surfaces. Pair with underline/weight for link affordance.",
1280
1327
  "$extensions": {
1281
1328
  "com.figma.variables": {
1282
1329
  "modes": {
1283
- "Light": "{primitive.color.apple.700}",
1284
- "Dark": "{primitive.color.apple.400}"
1330
+ "Light": "{primitive.color.graphite.700}",
1331
+ "Dark": "{primitive.color.graphite.300}"
1285
1332
  }
1286
1333
  }
1287
1334
  }
1288
1335
  },
1289
1336
  "onAccent": {
1290
- "$value": "{primitive.color.neutral.900}",
1291
- "$description": "Text/icon color on accent fills — a dark neutral, since the brand accent fill is a bright apple green in both light and dark mode.",
1337
+ "$value": "{primitive.color.neutral.50}",
1338
+ "$description": "Text and icons on accent fills: near-white in light mode, dark graphite in dark mode.",
1292
1339
  "$extensions": {
1293
1340
  "com.figma.variables": {
1294
1341
  "modes": {
1295
- "Light": "{primitive.color.neutral.900}",
1296
- "Dark": "{primitive.color.neutral.900}"
1342
+ "Light": "{primitive.color.neutral.50}",
1343
+ "Dark": "{primitive.color.graphite.900}"
1297
1344
  }
1298
1345
  }
1299
1346
  }
@@ -1394,13 +1441,13 @@
1394
1441
  }
1395
1442
  },
1396
1443
  "accent": {
1397
- "$value": "{primitive.color.apple.600}",
1398
- "$description": "Accent border — apple green, dark enough to read as a boundary on page and card surfaces.",
1444
+ "$value": "{primitive.color.graphite.700}",
1445
+ "$description": "Accent border — graphite, dark enough to read as a boundary on page and card surfaces.",
1399
1446
  "$extensions": {
1400
1447
  "com.figma.variables": {
1401
1448
  "modes": {
1402
- "Light": "{primitive.color.apple.600}",
1403
- "Dark": "{primitive.color.apple.400}"
1449
+ "Light": "{primitive.color.graphite.700}",
1450
+ "Dark": "{primitive.color.graphite.300}"
1404
1451
  }
1405
1452
  }
1406
1453
  }
@@ -1912,37 +1959,37 @@
1912
1959
  "accent": {
1913
1960
  "$type": "color",
1914
1961
  "rest": {
1915
- "$value": "{primitive.color.apple.500}",
1916
- "$description": "Default accent fill for interactive elements at rest — bright apple green. Pair with content.onAccent (a dark neutral).",
1962
+ "$value": "{primitive.color.graphite.700}",
1963
+ "$description": "Default accent fill for interactive elements at rest — warm graphite. Inverts per theme; pair with content.onAccent.",
1917
1964
  "$extensions": {
1918
1965
  "com.figma.variables": {
1919
1966
  "modes": {
1920
- "Light": "{primitive.color.apple.500}",
1921
- "Dark": "{primitive.color.apple.400}"
1967
+ "Light": "{primitive.color.graphite.700}",
1968
+ "Dark": "{primitive.color.graphite.200}"
1922
1969
  }
1923
1970
  }
1924
1971
  }
1925
1972
  },
1926
1973
  "hover": {
1927
- "$value": "{primitive.color.apple.600}",
1974
+ "$value": "{primitive.color.graphite.800}",
1928
1975
  "$description": "Accent fill on pointer hover.",
1929
1976
  "$extensions": {
1930
1977
  "com.figma.variables": {
1931
1978
  "modes": {
1932
- "Light": "{primitive.color.apple.600}",
1933
- "Dark": "{primitive.color.apple.500}"
1979
+ "Light": "{primitive.color.graphite.800}",
1980
+ "Dark": "{primitive.color.graphite.300}"
1934
1981
  }
1935
1982
  }
1936
1983
  }
1937
1984
  },
1938
1985
  "pressed": {
1939
- "$value": "{primitive.color.apple.700}",
1986
+ "$value": "{primitive.color.graphite.900}",
1940
1987
  "$description": "Accent fill during active press.",
1941
1988
  "$extensions": {
1942
1989
  "com.figma.variables": {
1943
1990
  "modes": {
1944
- "Light": "{primitive.color.apple.700}",
1945
- "Dark": "{primitive.color.apple.600}"
1991
+ "Light": "{primitive.color.graphite.900}",
1992
+ "Dark": "{primitive.color.graphite.400}"
1946
1993
  }
1947
1994
  }
1948
1995
  }
@@ -1972,37 +2019,37 @@
1972
2019
  }
1973
2020
  },
1974
2021
  "content": {
1975
- "$value": "{primitive.color.apple.700}",
1976
- "$description": "Accent-intent text/icon color on neutral surfaces (a dark apple green) — pair with underline/weight for link affordance.",
2022
+ "$value": "{primitive.color.graphite.700}",
2023
+ "$description": "Accent-intent text/icon color on neutral surfaces (graphite) — pair with underline/weight for link affordance.",
1977
2024
  "$extensions": {
1978
2025
  "com.figma.variables": {
1979
2026
  "modes": {
1980
- "Light": "{primitive.color.apple.700}",
1981
- "Dark": "{primitive.color.apple.400}"
2027
+ "Light": "{primitive.color.graphite.700}",
2028
+ "Dark": "{primitive.color.graphite.300}"
1982
2029
  }
1983
2030
  }
1984
2031
  }
1985
2032
  },
1986
2033
  "contentHover": {
1987
- "$value": "{primitive.color.apple.800}",
2034
+ "$value": "{primitive.color.graphite.800}",
1988
2035
  "$description": "Accent content color on pointer hover.",
1989
2036
  "$extensions": {
1990
2037
  "com.figma.variables": {
1991
2038
  "modes": {
1992
- "Light": "{primitive.color.apple.800}",
1993
- "Dark": "{primitive.color.apple.300}"
2039
+ "Light": "{primitive.color.graphite.800}",
2040
+ "Dark": "{primitive.color.graphite.200}"
1994
2041
  }
1995
2042
  }
1996
2043
  }
1997
2044
  },
1998
2045
  "subtle": {
1999
- "$value": "{primitive.color.apple.50}",
2046
+ "$value": "{primitive.color.graphite.50}",
2000
2047
  "$description": "Low-emphasis accent tint for hover backgrounds and selection highlights.",
2001
2048
  "$extensions": {
2002
2049
  "com.figma.variables": {
2003
2050
  "modes": {
2004
- "Light": "{primitive.color.apple.50}",
2005
- "Dark": "{primitive.color.apple.900}"
2051
+ "Light": "{primitive.color.graphite.50}",
2052
+ "Dark": "{primitive.color.graphite.800}"
2006
2053
  }
2007
2054
  }
2008
2055
  }
@@ -2475,20 +2522,12 @@
2475
2522
  "primary": {
2476
2523
  "textDisabled": {
2477
2524
  "$type": "color",
2478
- "$value": "{semantic.color.content.onAccent}",
2479
- "$extensions": {
2480
- "com.figma.variables": {
2481
- "modes": {
2482
- "Light": "{semantic.color.content.onAccent}",
2483
- "Dark": "{semantic.color.content.disabled}"
2484
- }
2485
- }
2486
- },
2525
+ "$value": "{semantic.color.content.disabled}",
2487
2526
  "$description": "Disabled primary button text color."
2488
2527
  },
2489
2528
  "bgDisabled": {
2490
2529
  "$type": "color",
2491
- "$value": "{semantic.color.surface.accentSubtle}",
2530
+ "$value": "{semantic.color.surface.muted}",
2492
2531
  "$description": "Disabled primary button fill."
2493
2532
  }
2494
2533
  },
package/llms.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  # Hirobius Design System
2
2
 
3
- Generated: 2026-10-09T13:43:23.079Z
3
+ Generated: 2026-10-11T20:46:31.293Z
4
4
  Primary sources: `public/hds-manifest.json`, `src/app/data/component-api.json`, `hirobius.tokens.json`
5
5
 
6
6
  ## Agents Using The Package: Start Here
@@ -82,15 +82,6 @@ One answer per need. Use the components after the arrow; what follows "Not:" is
82
82
  - Docs pipeline: `public/hds-manifest.json` + `src/app/data/component-api.json` -> reflective docs pages
83
83
  - AI entrypoint: read `public/llms.txt` before editing code
84
84
 
85
- ## Phase Snapshot
86
-
87
- - foundation. Foundations - 63% - Token architecture, CSS pipeline, accessibility, and primitive scales.
88
- - Criteria: done: W3C DTCG three-tier token architecture; done: CSS variable pipeline + token verify; partial: Primitive scales complete (color, type, space); todo: Token audit clean
89
- - components. Components - 75% - Accessible React UI built from foundations and mapped toward Figma parity.
90
- - Criteria: done: Component inventory with typed props; done: Action system architecture (buttons, links, groups); done: Prop tables and API doc coverage; todo: Figma parity mapping
91
- - infrastructure-operations. Architecture - 55% - System delivery, Figma sync, automation, quality gates, and operational hygiene.
92
- - Criteria: done: System manifest + llms.txt AI context; done: Release gate + full audit gate; done: Documentation automation (AST pipeline, LLMS sync); partial: Payload sweep + orphan cleanup; partial: Motion system foundations; todo: Figma library generated from tokens; todo: Code Connect CI + reverse sync; partial: AST gatekeeper + token schema validation; partial: A11y CI + visual regression pipeline; partial: Operational feedback loop + AI retrospective
93
-
94
85
  ## Component Inventory (Source Of Truth)
95
86
 
96
87
  This file intentionally does not embed the full component list to avoid duplication and excess context.
@@ -107,7 +98,7 @@ This file intentionally does not embed prop tables or long-form API docs.
107
98
 
108
99
  ## Core set
109
100
 
110
- The 43 components of the ratified core set (hds#254, ADR-031): brand-neutral, composable, imported from the package root. Build a screen from these first. Each has `core: true` in `public/hds-manifest.json` and is marked `[core]` under "Which one when". Composed pattern modules (page shells, forms, code blocks, page sections) are imported from `@hirobius/design-system/patterns`.
101
+ The 43 components of the ratified core set: brand-neutral, composable, imported from the package root. Build a screen from these first. Each has `core: true` in `public/hds-manifest.json` and is marked `[core]` under "Which one when". Composed pattern modules (page shells, forms, code blocks, page sections) are imported from `@hirobius/design-system/patterns`.
111
102
 
112
103
  - Button (Actions)
113
104
  - Avatar (Display)
@@ -265,7 +256,7 @@ Canonical primitives, cheapest-first (CSS before JS, JS before an opt-in depende
265
256
  2. `Pin` (`position: sticky`) for a pinned scroll scene — the dependency-free basis for the "tall section + sticky child" pattern (GSAP's `pin: true`, done with zero JS). Give the pinned element a TALLER scrolling parent (e.g. `height: 300vh`) so it has room to travel; `top` is a CSS length offset, not a spacing token.
266
257
  3. `useScrollProgress` (from `@hirobius/design-system/scroll`) only when the 0→1 scroll value is needed in React — cross-element choreography, canvas/WebGL, or a Motion (`motion/react`) `useTransform` binding that CSS `animation-timeline` cannot express. Thin, SSR-guarded wrapper over Motion `useScroll`; adds no new dependency.
267
258
  4. `SmoothScroll` (from `@hirobius/design-system/scroll`, `lenis` as an OPTIONAL peer dep) only for opt-in momentum ("inertia") scrolling, mounted once at the app/site root. Never imported from the main barrel — consumers who skip it pay nothing. Reduced-motion-first: Lenis is not instantiated when the user prefers reduced motion, unless `ignoreReducedMotion` is set for a deliberate art-directed exception.
268
- 5. Do not adopt GSAP/ScrollTrigger, and do not wire Lenis directly outside `SmoothScroll`, inside the core library — the CSS + Motion stack above covers reveal/pin/scrub without new dependencies. Bespoke GSAP/Lenis/WebGL scenes stay app-level/downstream (marketing sites, the clients factory), composed from these primitives (ADR-021, #116).
259
+ 5. Do not adopt GSAP/ScrollTrigger, and do not wire Lenis directly outside `SmoothScroll`, inside the core library — the CSS + Motion stack above covers reveal/pin/scrub without new dependencies. Bespoke GSAP/Lenis/WebGL scenes stay app-level/downstream (marketing sites, the clients factory), composed from these primitives.
269
260
 
270
261
  Negative rules:
271
262
 
@@ -274,7 +265,7 @@ Negative rules:
274
265
  - No GSAP/ScrollTrigger or bespoke Lenis wiring inside `@hirobius/design-system` — those stay app-level/downstream, composed from `Reveal`/`Pin`/`useScrollProgress`/`SmoothScroll`.
275
266
  - Every scroll effect must degrade to fully visible/static content — never gate content visibility behind `animation-timeline` support or a scroll listener with no fallback.
276
267
 
277
- Reference: `src/app/components/reveal.tsx`, `src/app/components/pin.tsx`, `src/scroll/` (`use-scroll-progress.ts`, `smooth-scroll.tsx`), ADR-021, and `src/stories/patterns-scroll.stories.tsx` for golden-path examples.
268
+ Reference: `src/app/components/reveal.tsx`, `src/app/components/pin.tsx`, `src/scroll/` (`use-scroll-progress.ts`, `smooth-scroll.tsx`), and the Reveal pattern page on the docs site (`/docs/patterns/reveal`) for golden-path examples.
278
269
 
279
270
  ## HDS Card Anatomy (mandatory — every property is non-negotiable)
280
271
 
@@ -317,7 +308,7 @@ Load only what the task needs. Same text as this file, split by topic:
317
308
 
318
309
  - `public/llms-full.txt` - this file + the full `DESIGN.md` + a compact props digest for every component.
319
310
 
320
- Paths in this file that begin with `docs/architecture/`, `src/app/components/`, `src/scroll/`, `src/stories/` or under `scripts/`, or that name `public/manifest.json`, `DESIGN-HANDOFF.md`, `TOKEN_GOVERNANCE.md` or `SYSTEMS_REGISTRY.md` exist only in the source repo, not in the npm package. Everything under "Default context" below ships in the package.
311
+ Paths in this file that begin with `docs/architecture/`, `src/app/components/`, `src/scroll/` or under `scripts/`, or that name `public/manifest.json`, `DESIGN-HANDOFF.md`, `TOKEN_GOVERNANCE.md` or `SYSTEMS_REGISTRY.md` exist only in the source repo, not in the npm package. Everything under "Default context" below ships in the package.
321
312
 
322
313
  ## Context Loading Rules (Credit Efficiency)
323
314
 
package/package.json CHANGED
@@ -6,8 +6,7 @@
6
6
  "design-tokens",
7
7
  "dtcg",
8
8
  "react",
9
- "radix-ui",
10
- "storybook"
9
+ "radix-ui"
11
10
  ],
12
11
  "homepage": "https://github.com/hirobius/hds#readme",
13
12
  "bugs": {
@@ -20,7 +19,7 @@
20
19
  "author": "Adrian Milsap",
21
20
  "license": "MIT AND OFL-1.1",
22
21
  "private": false,
23
- "version": "0.23.1",
22
+ "version": "0.24.0",
24
23
  "engines": {
25
24
  "node": ">=20",
26
25
  "pnpm": ">=8"
@@ -200,11 +199,6 @@
200
199
  "@microsoft/api-extractor": "7.58.7",
201
200
  "@playwright/test": "^1.58.2",
202
201
  "@size-limit/file": "^12.1.0",
203
- "@storybook/addon-a11y": "^8.6.18",
204
- "@storybook/addon-designs": "^8.2.1",
205
- "@storybook/addon-essentials": "^8.6.14",
206
- "@storybook/react": "^8.6.18",
207
- "@storybook/react-vite": "^8.6.18",
208
202
  "@tailwindcss/vite": "^4.2.4",
209
203
  "@testing-library/dom": "^10.4.0",
210
204
  "@testing-library/react": "^16.1.0",
@@ -217,7 +211,6 @@
217
211
  "@vitest/coverage-v8": "^4.1.0",
218
212
  "acorn": "^8.16.0",
219
213
  "acorn-jsx": "^5.3.2",
220
- "chromatic": "^17.6.0",
221
214
  "cors": "^2.8.6",
222
215
  "editorconfig-checker": "^6.1.1",
223
216
  "eslint": "^10.3.0",
@@ -251,7 +244,6 @@
251
244
  "react-hook-form": "^7.80.0",
252
245
  "react-router": "7.13.0",
253
246
  "size-limit": "^12.1.0",
254
- "storybook": "^8.6.18",
255
247
  "style-dictionary": "^5.4.0",
256
248
  "tailwindcss": "^4.2.4",
257
249
  "type-coverage": "^2.29.7",
@@ -287,7 +279,6 @@
287
279
  "audit:sbom": "node scripts/audit-sbom.mjs",
288
280
  "audit:sidecar": "node scripts/generate-security-posture.mjs",
289
281
  "audit:style-dictionary": "bash scripts/poc/style-dictionary-poc/run.sh",
290
- "build-storybook": "storybook build",
291
282
  "build:lib": "vite build -c vite.config.lib.ts && pnpm build:types && node scripts/build-vars-css.mjs && node scripts/build-fonts-css.mjs && node scripts/build-styles-css.mjs && node scripts/build-static-css.mjs && node scripts/build-css-contract.mjs",
292
283
  "build:types": "tsc -p tsconfig.dts.json && node scripts/strip-dts-side-effects.mjs && node scripts/add-dts-extensions.mjs",
293
284
  "catalog": "node scripts/generate-visual-catalog.mjs",
@@ -299,6 +290,7 @@
299
290
  "check:a11y": "pnpm lint --rule '{\"jsx-a11y/alt-text\":\"error\",\"jsx-a11y/img-redundant-alt\":\"error\"}'",
300
291
  "check:attributions": "node scripts/check-attributions.mjs",
301
292
  "check:binding-drift": "node scripts/check-binding-drift.mjs",
293
+ "check:component-token-binding": "node scripts/check-component-token-binding.mjs",
302
294
  "check:brand": "node scripts/check-brand.mjs",
303
295
  "check:breakpoints": "node scripts/check-hardcoded-breakpoints.mjs",
304
296
  "check:colors": "node scripts/check-hardcoded-colors.mjs",
@@ -339,8 +331,6 @@
339
331
  "check:refs": "node scripts/check-ref-forwarding.mjs",
340
332
  "check:registry": "node scripts/check-registry.mjs",
341
333
  "check:release": "pnpm check:full && node scripts/check-style-discipline.mjs && pnpm build:lib && pnpm check:size",
342
- "check:rendered-geometry": "node scripts/check-rendered-geometry.mjs",
343
- "check:rendered-geometry:update": "node scripts/check-rendered-geometry.mjs --update-baseline",
344
334
  "check:routes": "node scripts/check-link-integrity.mjs --route-links-only",
345
335
  "check:secrets": "node scripts/check-secrets.mjs",
346
336
  "check:security": "node scripts/check-security-baseline.mjs",
@@ -348,11 +338,9 @@
348
338
  "check:size": "pnpm build:lib && node scripts/build-button-probe.mjs && pnpm size-limit",
349
339
  "check:spacing": "node scripts/check-hardcoded-spacing.mjs",
350
340
  "check:spacing-vocabulary": "node scripts/check-spacing-vocabulary.mjs",
351
- "check:story-coverage": "node scripts/check-story-coverage.mjs",
352
341
  "check:layout-contract": "node scripts/check-layout-contract.mjs",
353
342
  "check:spacing-scale": "node scripts/check-tailwind-spacing-scale.mjs",
354
343
  "check:docs-axe": "node scripts/check-docs-axe.mjs",
355
- "check:storybook-axe": "node scripts/check-storybook-axe.mjs",
356
344
  "check:style-props": "node scripts/check-style-discipline.mjs --style-props-only",
357
345
  "check:sync-map": "node scripts/check-sync-map.mjs",
358
346
  "check:status-claims": "node scripts/check-status-claims.mjs --check",
@@ -368,22 +356,17 @@
368
356
  "check:token-structure": "node scripts/check-token-structure.mjs",
369
357
  "check:tokens": "node scripts/check-hardcoded-colors.mjs && pnpm lint --rule '{\"tailwindcss/no-custom-classname\":\"error\"}' && node scripts/audit-tokens.mjs --forbidden && node scripts/check-tier-bypass.mjs && node scripts/check-hardcoded-spacing.mjs && node scripts/check-typography-discipline.mjs --fonts-only",
370
358
  "check:type-coverage": "pnpm exec type-coverage --at-least 99.9",
371
- "chromatic": "chromatic --exit-zero-on-changes",
372
359
  "test:visual-docs": "playwright test",
373
360
  "closure:plan": "node scripts/run-gates.mjs --channel pre-commit --emit-inventory docs/guardrails/full-strictness-inventory.json && node scripts/generate-closure-plan.mjs",
374
361
  "closure:plan:check": "node scripts/generate-closure-plan.mjs --check",
375
362
  "docs:api": "node scripts/generate-component-api.mjs",
376
363
  "docs:changelogs": "node scripts/generate-component-changelogs.mjs",
377
364
  "docs:build": "pnpm docs:prepare && pnpm --dir docs-site build",
378
- "docs:publish": "pnpm docs:build && node scripts/generate-manifest-projection.mjs && node scripts/copy-agent-context.mjs --out docs-site/out --with-public && node scripts/figma-push.mjs --bundle docs-site/out/figma/sync-bundle.json",
365
+ "docs:publish": "pnpm docs:build && node scripts/generate-manifest-projection.mjs && node scripts/copy-agent-context.mjs --out docs-site/out && node scripts/figma-push.mjs --bundle docs-site/out/figma/sync-bundle.json",
379
366
  "docs:components": "node scripts/generate-docs-components.mjs",
380
- "docs:component": "node scripts/generate-component-page.mjs",
381
367
  "docs:dev": "pnpm docs:prepare && pnpm --dir docs-site dev",
382
368
  "docs:llms": "node scripts/generate-llms-txt.mjs",
383
369
  "docs:prepare": "pnpm build:lib && pnpm docs:api && pnpm docs:components && pnpm --dir docs-site install --frozen-lockfile",
384
- "docs:site": "node scripts/generate-component-page.mjs --all --clean",
385
- "docs:site:inline": "node scripts/generate-component-page.mjs --all --clean --inline",
386
- "docs:site:shots": "node scripts/generate-component-page.mjs --all --clean --shots",
387
370
  "figma-variables": "node scripts/build-figma-variables.mjs",
388
371
  "figma:connect:check": "node scripts/check-code-connect.mjs",
389
372
  "figma:connect:generate": "node scripts/generate-code-connect.mjs",
@@ -410,10 +393,8 @@
410
393
  "check:consumer-skill": "node scripts/generate-consumer-skill.mjs --check",
411
394
  "manifest:generate": "node scripts/generate-manifest.mjs && node scripts/generate-component-api.mjs && node scripts/enrich-manifest.mjs",
412
395
  "manifest:project": "node scripts/generate-manifest-projection.mjs",
413
- "prebuild-storybook": "node scripts/generate-component-api.mjs",
414
396
  "prebuild:lib": "node scripts/generate-component-api.mjs",
415
- "prestorybook": "node scripts/generate-component-api.mjs",
416
- "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-consumer-skill.mjs --check && node scripts/generate-agents-md.mjs --check && node scripts/check-deprecations.mjs && node scripts/upgrade/schema.mjs --check && node scripts/upgrade/compile.mjs --check && node scripts/check-docs.mjs && node --test scripts/check-docs.selftest.mjs && node scripts/check-upgrade-ledger.mjs",
397
+ "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-component-token-binding.mjs --report && 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-consumer-skill.mjs --check && node scripts/generate-agents-md.mjs --check && node scripts/check-deprecations.mjs && node scripts/upgrade/schema.mjs --check && node scripts/upgrade/compile.mjs --check && node scripts/check-docs.mjs && node --test scripts/check-docs.selftest.mjs && node scripts/check-upgrade-ledger.mjs",
417
398
  "pretypecheck": "node scripts/audit-tokens.mjs --report-only",
418
399
  "preview:build": "vite build --config preview/vite.config.mjs",
419
400
  "promote": "node scripts/promote.mjs",
@@ -426,8 +407,6 @@
426
407
  "status:touch": "node scripts/status-touch.mjs",
427
408
  "status:fold": "node scripts/status-fold.mjs",
428
409
  "smoke:consumer": "node scripts/smoke-consumer.mjs && node scripts/check-published-types.mjs && node scripts/check-rsc-directives.mjs && node scripts/check-pack-contents.mjs && node scripts/check-upgrade-css.mjs",
429
- "storybook": "storybook dev -p 6006",
430
- "storybook:deploy": "node scripts/deploy-storybook.mjs",
431
410
  "sync": "node scripts/build-tokens.mjs && node scripts/audit-tokens.mjs --forbidden && node scripts/build-handoff.mjs && node scripts/build-design-md.mjs && node scripts/build-figma-variables.mjs",
432
411
  "sync-map": "node scripts/check-sync-map.mjs --gaps",
433
412
  "sync:health": "node scripts/generate-manifest.mjs && node scripts/generate-component-api.mjs && node scripts/enrich-manifest.mjs && node scripts/build-tokens.mjs && node scripts/audit-tokens.mjs --report-only && node scripts/build-design-md.mjs",