@hirobius/design-system 0.8.1 → 0.10.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.
package/dist/tokens.js CHANGED
@@ -42,6 +42,12 @@ const a = {
42
42
  700: "#047857",
43
43
  950: "#022c22"
44
44
  },
45
+ violet: {
46
+ 50: "#f5f3ff",
47
+ 400: "#a78bfa",
48
+ 700: "#6d28d9",
49
+ 950: "#2e1065"
50
+ },
45
51
  amber: {
46
52
  50: "#fffbeb",
47
53
  400: "#fbbf24",
@@ -6,7 +6,7 @@
6
6
  import * as React from 'react';
7
7
  import { type VariantProps } from 'class-variance-authority';
8
8
  declare const badgeVariants: (props?: {
9
- tone?: "success" | "danger" | "warning" | "info" | "neutral";
9
+ tone?: "success" | "danger" | "warning" | "info" | "neutral" | "inProgress";
10
10
  } & import("class-variance-authority/dist/types").ClassProp) => string;
11
11
  type BadgeVariantProps = VariantProps<typeof badgeVariants>;
12
12
  /** @public */
@@ -8,6 +8,7 @@ import * as React from 'react';
8
8
  import { type VariantProps } from 'class-variance-authority';
9
9
  declare const buttonVariants: (props?: {
10
10
  variant?: "primary" | "secondary" | "tertiary";
11
+ tone?: "success" | "danger" | "warning" | "info" | "neutral";
11
12
  size?: "sm" | "md" | "lg";
12
13
  iconOnly?: boolean;
13
14
  } & import("class-variance-authority/dist/types").ClassProp) => string;
@@ -55,6 +55,12 @@ export declare const tokenRefs: {
55
55
  readonly "700": "var(--primitive-color-green-700)";
56
56
  readonly "950": "var(--primitive-color-green-950)";
57
57
  };
58
+ readonly violet: {
59
+ readonly "50": "var(--primitive-color-violet-50)";
60
+ readonly "400": "var(--primitive-color-violet-400)";
61
+ readonly "700": "var(--primitive-color-violet-700)";
62
+ readonly "950": "var(--primitive-color-violet-950)";
63
+ };
58
64
  readonly amber: {
59
65
  readonly "50": "var(--primitive-color-amber-50)";
60
66
  readonly "400": "var(--primitive-color-amber-400)";
@@ -267,11 +273,13 @@ export declare const tokenRefs: {
267
273
  readonly success: "var(--semantic-color-feedback-success)";
268
274
  readonly warning: "var(--semantic-color-feedback-warning)";
269
275
  readonly info: "var(--semantic-color-feedback-info)";
276
+ readonly inProgress: "var(--semantic-color-feedback-inProgress)";
270
277
  readonly bg: {
271
278
  readonly error: "var(--semantic-color-feedback-bg-error)";
272
279
  readonly success: "var(--semantic-color-feedback-bg-success)";
273
280
  readonly warning: "var(--semantic-color-feedback-bg-warning)";
274
281
  readonly info: "var(--semantic-color-feedback-bg-info)";
282
+ readonly inProgress: "var(--semantic-color-feedback-bg-inProgress)";
275
283
  };
276
284
  };
277
285
  };
@@ -56,6 +56,12 @@ export declare const tokenValues: {
56
56
  readonly "700": "#047857";
57
57
  readonly "950": "#022c22";
58
58
  };
59
+ readonly violet: {
60
+ readonly "50": "#f5f3ff";
61
+ readonly "400": "#a78bfa";
62
+ readonly "700": "#6d28d9";
63
+ readonly "950": "#2e1065";
64
+ };
59
65
  readonly amber: {
60
66
  readonly "50": "#fffbeb";
61
67
  readonly "400": "#fbbf24";
@@ -216,6 +216,25 @@ export declare const tokens: {
216
216
  };
217
217
  $description: string;
218
218
  };
219
+ violet: {
220
+ "50": {
221
+ $value: string;
222
+ $description: string;
223
+ };
224
+ "400": {
225
+ $value: string;
226
+ $description: string;
227
+ };
228
+ "700": {
229
+ $value: string;
230
+ $description: string;
231
+ };
232
+ "950": {
233
+ $value: string;
234
+ $description: string;
235
+ };
236
+ $description: string;
237
+ };
219
238
  amber: {
220
239
  "50": {
221
240
  $value: string;
@@ -1223,6 +1242,18 @@ export declare const tokens: {
1223
1242
  };
1224
1243
  };
1225
1244
  };
1245
+ inProgress: {
1246
+ $type: string;
1247
+ $value: string;
1248
+ $extensions: {
1249
+ "com.figma.variables": {
1250
+ modes: {
1251
+ Light: string;
1252
+ Dark: string;
1253
+ };
1254
+ };
1255
+ };
1256
+ };
1226
1257
  bg: {
1227
1258
  error: {
1228
1259
  $type: string;
@@ -1272,6 +1303,18 @@ export declare const tokens: {
1272
1303
  };
1273
1304
  };
1274
1305
  };
1306
+ inProgress: {
1307
+ $type: string;
1308
+ $value: string;
1309
+ $extensions: {
1310
+ "com.figma.variables": {
1311
+ modes: {
1312
+ Light: string;
1313
+ Dark: string;
1314
+ };
1315
+ };
1316
+ };
1317
+ };
1275
1318
  };
1276
1319
  };
1277
1320
  };
@@ -0,0 +1,64 @@
1
+ /**
2
+ * `@hirobius/design-system/mui` — theme preset that maps HDS design tokens to a
3
+ * Material UI (v6+) palette, so MUI-based apps theme from HDS without a local
4
+ * Style-Dictionary / token-copy step.
5
+ *
6
+ * It returns a plain `ThemeOptions`-shaped object whose palette values are HDS
7
+ * **token CSS variables** (`var(--semantic-…)`). Because those variables already
8
+ * switch light/dark via `[data-theme]` on the HDS scope, one preset covers both
9
+ * modes — MUI follows the same variables. This is designed for MUI's CSS-variables
10
+ * mode:
11
+ *
12
+ * import { createTheme, ThemeProvider } from '@mui/material';
13
+ * import { hdsMuiThemeOptions } from '@hirobius/design-system/mui';
14
+ *
15
+ * const theme = createTheme({ cssVariables: true, ...hdsMuiThemeOptions() });
16
+ * // render inside a `data-hds` scope so the HDS token vars resolve.
17
+ * <ThemeProvider theme={theme}>…</ThemeProvider>
18
+ *
19
+ * `@mui/material` is NOT a dependency of this package — the return type is
20
+ * structural, so this module adds zero weight and no peer requirement unless you
21
+ * import it. HDS's `error/warning/info/success` map to the semantic feedback
22
+ * tokens (the same ones behind `<Button tone>` / `<Badge tone>`), so MUI status
23
+ * colors and HDS status colors stay identical.
24
+ */
25
+ /** A CSS `var(--…)` reference to an HDS design token. */
26
+ type TokenVar = `var(--${string})`;
27
+ /** Minimal structural shape of the palette this preset fills in. */
28
+ export interface HdsMuiPalette {
29
+ primary: {
30
+ main: TokenVar;
31
+ };
32
+ error: {
33
+ main: TokenVar;
34
+ };
35
+ warning: {
36
+ main: TokenVar;
37
+ };
38
+ info: {
39
+ main: TokenVar;
40
+ };
41
+ success: {
42
+ main: TokenVar;
43
+ };
44
+ background: {
45
+ default: TokenVar;
46
+ paper: TokenVar;
47
+ };
48
+ text: {
49
+ primary: TokenVar;
50
+ secondary: TokenVar;
51
+ };
52
+ divider: TokenVar;
53
+ }
54
+ /** Structural subset of MUI's `ThemeOptions` this preset returns. */
55
+ export interface HdsMuiThemeOptions {
56
+ cssVariables: true;
57
+ palette: HdsMuiPalette;
58
+ }
59
+ /**
60
+ * MUI `ThemeOptions` (partial) whose palette is wired to HDS token variables.
61
+ * Spread into `createTheme({ cssVariables: true, ...hdsMuiThemeOptions() })`.
62
+ */
63
+ export declare function hdsMuiThemeOptions(): HdsMuiThemeOptions;
64
+ export default hdsMuiThemeOptions;
@@ -48,6 +48,10 @@
48
48
  --primitive-color-green-400: #34d399;
49
49
  --primitive-color-green-700: #047857;
50
50
  --primitive-color-green-950: #022c22;
51
+ --primitive-color-violet-50: #f5f3ff;
52
+ --primitive-color-violet-400: #a78bfa;
53
+ --primitive-color-violet-700: #6d28d9;
54
+ --primitive-color-violet-950: #2e1065;
51
55
  --primitive-color-amber-50: #fffbeb;
52
56
  --primitive-color-amber-400: #fbbf24;
53
57
  --primitive-color-amber-800: #92400e;
@@ -197,10 +201,12 @@
197
201
  --semantic-color-feedback-success: var(--primitive-color-green-700);
198
202
  --semantic-color-feedback-warning: var(--primitive-color-amber-800);
199
203
  --semantic-color-feedback-info: var(--primitive-color-blue-500);
204
+ --semantic-color-feedback-inProgress: var(--primitive-color-violet-700);
200
205
  --semantic-color-feedback-bg-error: var(--primitive-color-red-50);
201
206
  --semantic-color-feedback-bg-success: var(--primitive-color-green-50);
202
207
  --semantic-color-feedback-bg-warning: var(--primitive-color-amber-50);
203
208
  --semantic-color-feedback-bg-info: var(--primitive-color-blue-50);
209
+ --semantic-color-feedback-bg-inProgress: var(--primitive-color-violet-50);
204
210
  --semantic-space-subgrid-hairline: var(--primitive-space-px1);
205
211
  --semantic-space-subgrid-xs: var(--primitive-space-px2);
206
212
  --semantic-space-subgrid-gap: var(--primitive-space-1);
@@ -444,10 +450,12 @@
444
450
  --semantic-color-feedback-success: var(--primitive-color-green-400);
445
451
  --semantic-color-feedback-warning: var(--primitive-color-amber-400);
446
452
  --semantic-color-feedback-info: var(--primitive-color-blue-300);
453
+ --semantic-color-feedback-inProgress: var(--primitive-color-violet-400);
447
454
  --semantic-color-feedback-bg-error: var(--primitive-color-red-950);
448
455
  --semantic-color-feedback-bg-success: var(--primitive-color-green-950);
449
456
  --semantic-color-feedback-bg-warning: var(--primitive-color-amber-950);
450
457
  --semantic-color-feedback-bg-info: var(--primitive-color-blue-900);
458
+ --semantic-color-feedback-bg-inProgress: var(--primitive-color-violet-950);
451
459
  --semantic-accent-rest: var(--primitive-color-blue-500);
452
460
  --semantic-accent-hover: var(--primitive-color-blue-450);
453
461
  --semantic-accent-pressed: var(--primitive-color-blue-400);
@@ -149,6 +149,25 @@
149
149
  },
150
150
  "$description": "Discrete values within the green range at defined lightness steps."
151
151
  },
152
+ "violet": {
153
+ "50": {
154
+ "$value": "#f5f3ff",
155
+ "$description": "Specific value within the violet range at a defined lightness step."
156
+ },
157
+ "400": {
158
+ "$value": "#a78bfa",
159
+ "$description": "Specific value within the violet range at a defined lightness step."
160
+ },
161
+ "700": {
162
+ "$value": "#6d28d9",
163
+ "$description": "Specific value within the violet range at a defined lightness step."
164
+ },
165
+ "950": {
166
+ "$value": "#2e1065",
167
+ "$description": "Specific value within the violet range at a defined lightness step."
168
+ },
169
+ "$description": "Discrete values within the violet range at defined lightness steps."
170
+ },
152
171
  "amber": {
153
172
  "50": {
154
173
  "$value": "#fffbeb",
@@ -1170,6 +1189,18 @@
1170
1189
  }
1171
1190
  }
1172
1191
  },
1192
+ "inProgress": {
1193
+ "$type": "color",
1194
+ "$value": "{primitive.color.violet.700}",
1195
+ "$extensions": {
1196
+ "com.figma.variables": {
1197
+ "modes": {
1198
+ "Light": "{primitive.color.violet.700}",
1199
+ "Dark": "{primitive.color.violet.400}"
1200
+ }
1201
+ }
1202
+ }
1203
+ },
1173
1204
  "bg": {
1174
1205
  "error": {
1175
1206
  "$type": "color",
@@ -1218,6 +1249,18 @@
1218
1249
  }
1219
1250
  }
1220
1251
  }
1252
+ },
1253
+ "inProgress": {
1254
+ "$type": "color",
1255
+ "$value": "{primitive.color.violet.50}",
1256
+ "$extensions": {
1257
+ "com.figma.variables": {
1258
+ "modes": {
1259
+ "Light": "{primitive.color.violet.50}",
1260
+ "Dark": "{primitive.color.violet.950}"
1261
+ }
1262
+ }
1263
+ }
1221
1264
  }
1222
1265
  }
1223
1266
  }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@hirobius/design-system",
3
3
  "description": "Hirobius Design Systems Architecture: token-governed React components, documentation surfaces, and distribution tooling.",
4
4
  "private": false,
5
- "version": "0.8.1",
5
+ "version": "0.10.0",
6
6
  "engines": {
7
7
  "node": ">=20",
8
8
  "pnpm": ">=8"
@@ -25,6 +25,7 @@
25
25
  "default": "./dist/hirobius-ui.js"
26
26
  },
27
27
  "./tokens.css": "./dist/tokens.css",
28
+ "./styles.css": "./dist/styles.css",
28
29
  "./variables.css": "./dist/variables.css",
29
30
  "./tokens": {
30
31
  "types": "./dist/types/src/app/design-system/tokens.d.ts",
@@ -51,16 +52,15 @@
51
52
  "import": "./dist/form.js",
52
53
  "default": "./dist/form.js"
53
54
  },
54
- "./protocol": {
55
- "import": "./protocol/envelope.mjs",
56
- "default": "./protocol/envelope.mjs"
55
+ "./mui": {
56
+ "types": "./dist/types/src/mui/index.d.ts",
57
+ "import": "./dist/mui.js",
58
+ "default": "./dist/mui.js"
57
59
  },
58
60
  "./package.json": "./package.json"
59
61
  },
60
62
  "files": [
61
63
  "dist",
62
- "protocol/envelope.mjs",
63
- "protocol/figma-snapshot.schema.json",
64
64
  "hirobius.tokens.json",
65
65
  "public/hds-manifest.json"
66
66
  ],
@@ -220,11 +220,10 @@
220
220
  "audit:sbom": "node scripts/audit-sbom.mjs",
221
221
  "audit:sidecar": "node scripts/generate-security-posture.mjs",
222
222
  "audit:style-dictionary": "bash scripts/poc/style-dictionary-poc/run.sh",
223
- "bridge": "node --env-file=.env.local scripts/hds-bridge.mjs",
224
223
  "build": "pnpm sync:health && node scripts/sync-icons.mjs && vite build --configLoader native",
225
224
  "build:ssr": "vite build --ssr src/entry-server.tsx --outDir .ssr-cache --configLoader native",
226
225
  "build:prerender": "pnpm build && pnpm build:ssr && node scripts/prerender.mjs",
227
- "build:lib": "vite build -c vite.config.lib.ts && pnpm build:types && node scripts/build-vars-css.mjs && node scripts/embed-fonts.mjs",
226
+ "build:lib": "vite build -c vite.config.lib.ts && pnpm build:types && node scripts/build-vars-css.mjs && node scripts/embed-fonts.mjs && node scripts/build-styles-css.mjs",
228
227
  "build:types": "tsc -p tsconfig.dts.json && node scripts/strip-dts-side-effects.mjs",
229
228
  "catalog": "node scripts/generate-visual-catalog.mjs",
230
229
  "changelog:generate": "node scripts/generate-changelog.mjs",
@@ -276,7 +275,7 @@
276
275
  "check:page-shell": "node scripts/check-page-shell.mjs",
277
276
  "check:refs": "node scripts/check-ref-forwarding.mjs",
278
277
  "check:registry": "node scripts/check-registry.mjs",
279
- "check:release": "pnpm check:full && node scripts/check-style-discipline.mjs && pnpm build && pnpm perf:budget && pnpm test:a11y && pnpm test:visual && pnpm test:responsive && pnpm test:collision && pnpm check:size",
278
+ "check:release": "pnpm check:full && node scripts/check-style-discipline.mjs && pnpm build && pnpm test:a11y && pnpm test:visual && pnpm test:responsive && pnpm test:collision && pnpm check:size",
280
279
  "check:routes": "node scripts/check-link-integrity.mjs --route-links-only",
281
280
  "check:secrets": "node scripts/check-secrets.mjs",
282
281
  "check:security": "node scripts/check-security-baseline.mjs",
@@ -300,7 +299,6 @@
300
299
  "docs:changelogs": "node scripts/generate-component-changelogs.mjs",
301
300
  "docs:llms": "node scripts/generate-llms-txt.mjs",
302
301
  "figma-variables": "node scripts/build-figma-variables.mjs",
303
- "figma:bridge:smoke": "node scripts/figma-bridge-smoke.mjs",
304
302
  "figma:diff": "node scripts/figma-diff.mjs",
305
303
  "figma:snapshot": "node scripts/normalize-figma-snapshot.mjs",
306
304
  "figma:stream": "node scripts/llm-stream-bridge.mjs",
@@ -316,7 +314,6 @@
316
314
  "manifest:generate": "node scripts/generate-manifest.mjs && node scripts/generate-component-api.mjs && node scripts/enrich-manifest.mjs",
317
315
  "manifest:project": "node scripts/generate-manifest-projection.mjs",
318
316
  "nav:generate": "node scripts/generate-nav-model.mjs",
319
- "perf:budget": "node -e \"require('fs').readdirSync('.lighthouseci').filter(f=>f.startsWith('lhr-')).forEach(f=>require('fs').unlinkSync('.lighthouseci/'+f))\" 2>/dev/null; lhci collect --config=.lighthouserc.json && lhci assert --config=.lighthouserc.json; find . -maxdepth 1 -type d -name 'C:*' -exec rm -rf {} + 2>/dev/null; true",
320
317
  "prebuild": "node scripts/validate-manifest.mjs",
321
318
  "prebuild:lib": "node scripts/generate-component-api.mjs",
322
319
  "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/test-figma-masters-snapshot.mjs && node scripts/test-doc-pages-snapshot.mjs && node scripts/check-registry.mjs && node scripts/check-tenant-tokens.mjs && knip --no-exit-code",
@@ -2,7 +2,7 @@
2
2
  "name": "Hirobius Design System",
3
3
  "description": "Three-tier design token system for Adrian Milsap's portfolio site. Tokens flow primitive → semantic → component. All visual decisions trace back to hirobius.tokens.json.",
4
4
  "version": "1",
5
- "generated": "2026-06-18T07:22:17.015Z",
5
+ "generated": "2026-07-01T06:53:00.024Z",
6
6
  "source": "hirobius.tokens.json",
7
7
  "format": "W3C DTCG 2025.10",
8
8
  "docs": "https://adrianmilsap.com/hds",
@@ -2833,6 +2833,7 @@
2833
2833
  },
2834
2834
  "consumers": [
2835
2835
  "src/app/components/componentPreviewRegistry.tsx",
2836
+ "src/app/lib/nav-active.ts",
2836
2837
  "src/stories/nav-group.stories.tsx"
2837
2838
  ],
2838
2839
  "tokenMapping": {},
@@ -5681,6 +5682,7 @@
5681
5682
  "src/app/components/lab/legacy-token-detail.tsx",
5682
5683
  "src/app/data/hdsEditorial.tsx",
5683
5684
  "src/app/design-system/generated-token-descriptions.ts",
5685
+ "src/mui/index.ts",
5684
5686
  "src/stories/badge.stories.tsx",
5685
5687
  "src/stories/code-block.stories.tsx",
5686
5688
  "src/stories/combobox.stories.tsx",
@@ -8808,6 +8810,34 @@
8808
8810
  "description": "Specific value within the green range at a defined lightness step.",
8809
8811
  "value": "#022c22"
8810
8812
  },
8813
+ {
8814
+ "path": "primitive.color.violet.50",
8815
+ "cssVar": "--primitive-color-violet-50",
8816
+ "type": "color",
8817
+ "description": "Specific value within the violet range at a defined lightness step.",
8818
+ "value": "#f5f3ff"
8819
+ },
8820
+ {
8821
+ "path": "primitive.color.violet.400",
8822
+ "cssVar": "--primitive-color-violet-400",
8823
+ "type": "color",
8824
+ "description": "Specific value within the violet range at a defined lightness step.",
8825
+ "value": "#a78bfa"
8826
+ },
8827
+ {
8828
+ "path": "primitive.color.violet.700",
8829
+ "cssVar": "--primitive-color-violet-700",
8830
+ "type": "color",
8831
+ "description": "Specific value within the violet range at a defined lightness step.",
8832
+ "value": "#6d28d9"
8833
+ },
8834
+ {
8835
+ "path": "primitive.color.violet.950",
8836
+ "cssVar": "--primitive-color-violet-950",
8837
+ "type": "color",
8838
+ "description": "Specific value within the violet range at a defined lightness step.",
8839
+ "value": "#2e1065"
8840
+ },
8811
8841
  {
8812
8842
  "path": "primitive.color.amber.50",
8813
8843
  "cssVar": "--primitive-color-amber-50",
@@ -9824,6 +9854,17 @@
9824
9854
  "resolvedValue": "oklch(0.70 0.2903 266.54)"
9825
9855
  }
9826
9856
  },
9857
+ {
9858
+ "path": "semantic.color.feedback.inProgress",
9859
+ "cssVar": "--semantic-color-feedback-inProgress",
9860
+ "type": "color",
9861
+ "alias": "{primitive.color.violet.700}",
9862
+ "resolvedValue": "#6d28d9",
9863
+ "dark": {
9864
+ "alias": "{primitive.color.violet.400}",
9865
+ "resolvedValue": "#a78bfa"
9866
+ }
9867
+ },
9827
9868
  {
9828
9869
  "path": "semantic.color.feedback.bg.error",
9829
9870
  "cssVar": "--semantic-color-feedback-bg-error",
@@ -9868,6 +9909,17 @@
9868
9909
  "resolvedValue": "oklch(0.22 0.05 266.54)"
9869
9910
  }
9870
9911
  },
9912
+ {
9913
+ "path": "semantic.color.feedback.bg.inProgress",
9914
+ "cssVar": "--semantic-color-feedback-bg-inProgress",
9915
+ "type": "color",
9916
+ "alias": "{primitive.color.violet.50}",
9917
+ "resolvedValue": "#f5f3ff",
9918
+ "dark": {
9919
+ "alias": "{primitive.color.violet.950}",
9920
+ "resolvedValue": "#2e1065"
9921
+ }
9922
+ },
9871
9923
  {
9872
9924
  "path": "semantic.space.subgrid.hairline",
9873
9925
  "cssVar": "--semantic-space-subgrid-hairline",