@hirobius/design-system 0.19.1 → 0.21.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 (175) hide show
  1. package/AGENTS.md +123 -0
  2. package/CONSUMING.md +11 -6
  3. package/DESIGN.md +34 -21
  4. package/NOTICE.md +1 -1
  5. package/README.md +48 -13
  6. package/codemods/hds-prefix.mjs +231 -0
  7. package/codemods/jsx-fold.mjs +515 -0
  8. package/codemods/not-found-pattern.mjs +71 -0
  9. package/codemods/patterns-subpath.mjs +242 -81
  10. package/codemods/patterns-subpath.names.json +41 -15
  11. package/codemods/removed-0.20.json +194 -0
  12. package/codemods/tile-grid.mjs +283 -0
  13. package/codemods/unrewritable.mjs +291 -0
  14. package/dist/chunks/DemoStateContext-Cz5TmrYu.js +32 -0
  15. package/dist/chunks/empty-state-DNoThgfV.js +1227 -0
  16. package/dist/chunks/form-By82qZcC.js +66 -0
  17. package/dist/contexts.js +157 -78
  18. package/dist/fonts/geist-mono-400.woff2 +0 -0
  19. package/dist/fonts/satoshi-400.woff2 +0 -0
  20. package/dist/fonts/satoshi-500.woff2 +0 -0
  21. package/dist/fonts/satoshi-700.woff2 +0 -0
  22. package/dist/fonts.css +53 -0
  23. package/dist/form.js +1 -1
  24. package/dist/hirobius-ui.js +1600 -5354
  25. package/dist/manifest.js +12 -13
  26. package/dist/patterns.js +796 -510
  27. package/dist/styles.css +2 -2
  28. package/dist/tokens.css +1 -1
  29. package/dist/tokens.js +165 -65
  30. package/dist/types/src/app/components/alert-dialog.d.ts +5 -0
  31. package/dist/types/src/app/components/asset-img.d.ts +1 -0
  32. package/dist/types/src/app/components/avatar-group.d.ts +2 -2
  33. package/dist/types/src/app/components/badge.d.ts +8 -3
  34. package/dist/types/src/app/components/blockquote.d.ts +2 -2
  35. package/dist/types/src/app/components/box-sx.d.ts +110 -13
  36. package/dist/types/src/app/components/box.d.ts +6 -3
  37. package/dist/types/src/app/components/breadcrumb.d.ts +0 -5
  38. package/dist/types/src/app/components/button.d.ts +35 -4
  39. package/dist/types/src/app/components/card.d.ts +10 -10
  40. package/dist/types/src/app/components/combobox.d.ts +47 -11
  41. package/dist/types/src/app/components/container.d.ts +2 -2
  42. package/dist/types/src/app/components/data-table-section.d.ts +2 -1
  43. package/dist/types/src/app/components/destructive-section.d.ts +1 -0
  44. package/dist/types/src/app/components/dialog.d.ts +8 -1
  45. package/dist/types/src/app/components/disclosure.d.ts +1 -5
  46. package/dist/types/src/app/components/error-pattern.d.ts +6 -1
  47. package/dist/types/src/app/components/field.d.ts +1 -2
  48. package/dist/types/src/app/components/form-actions.d.ts +1 -0
  49. package/dist/types/src/app/components/form-control.d.ts +10 -0
  50. package/dist/types/src/app/components/grid.d.ts +15 -6
  51. package/dist/types/src/app/components/hds-tooltip.d.ts +12 -2
  52. package/dist/types/src/app/components/icon.d.ts +1 -0
  53. package/dist/types/src/app/components/inline-code.d.ts +1 -2
  54. package/dist/types/src/app/components/input.d.ts +8 -5
  55. package/dist/types/src/app/components/kbd.d.ts +2 -2
  56. package/dist/types/src/app/components/metadata-list.d.ts +2 -2
  57. package/dist/types/src/app/components/metric-tiles.d.ts +1 -0
  58. package/dist/types/src/app/components/page-header.d.ts +0 -2
  59. package/dist/types/src/app/components/popover.d.ts +8 -0
  60. package/dist/types/src/app/components/progress.d.ts +33 -6
  61. package/dist/types/src/app/components/segmented-control.d.ts +2 -26
  62. package/dist/types/src/app/components/select.d.ts +10 -1
  63. package/dist/types/src/app/components/skeleton.d.ts +3 -4
  64. package/dist/types/src/app/components/spinner.d.ts +1 -2
  65. package/dist/types/src/app/components/stack.d.ts +4 -1
  66. package/dist/types/src/app/components/stat.d.ts +5 -5
  67. package/dist/types/src/app/components/status-list-item.d.ts +1 -2
  68. package/dist/types/src/app/components/status-tile.d.ts +3 -2
  69. package/dist/types/src/app/components/surface.d.ts +2 -3
  70. package/dist/types/src/app/components/switcher.d.ts +1 -1
  71. package/dist/types/src/app/components/table.d.ts +6 -15
  72. package/dist/types/src/app/components/tag.d.ts +0 -6
  73. package/dist/types/src/app/components/text.d.ts +54 -8
  74. package/dist/types/src/app/components/textarea.d.ts +1 -2
  75. package/dist/types/src/app/components/timestamp.d.ts +1 -0
  76. package/dist/types/src/app/components/toast.d.ts +1 -2
  77. package/dist/types/src/app/components/tooltip.d.ts +1 -1
  78. package/dist/types/src/app/context/DemoStateContext.d.ts +1 -1
  79. package/dist/types/src/app/context/RouterContext.d.ts +5 -5
  80. package/dist/types/src/app/data/manifest-types.d.ts +10 -5
  81. package/dist/types/src/app/design-system/generated-token-refs.d.ts +45 -28
  82. package/dist/types/src/app/design-system/generated-token-values.d.ts +4 -0
  83. package/dist/types/src/app/design-system/tokens.d.ts +139 -18
  84. package/dist/types/src/icons.d.ts +1 -1
  85. package/dist/types/src/index.d.ts +76 -164
  86. package/dist/types/src/patterns.d.ts +20 -25
  87. package/dist/variables.css +47 -33
  88. package/docs/CONSUMING.md +80 -48
  89. package/hirobius.tokens.json +125 -88
  90. package/llms.txt +166 -59
  91. package/mcp/catalog.mjs +366 -0
  92. package/mcp/guide.mjs +315 -0
  93. package/mcp/hds-mcp.mjs +49 -0
  94. package/mcp/server.mjs +94 -0
  95. package/package.json +48 -27
  96. package/public/hds-manifest.json +2667 -6705
  97. package/public/llms/components.txt +45 -426
  98. package/public/llms/layout.txt +5 -5
  99. package/public/llms-full.txt +245 -506
  100. package/public/llms.txt +166 -59
  101. package/scripts/eslint-plugin-hds/index.d.mts +29 -0
  102. package/scripts/eslint-plugin-hds/index.mjs +55 -0
  103. package/scripts/eslint-plugin-hds/package.json +30 -0
  104. package/scripts/eslint-plugin-hds/rules/no-raw-controls.mjs +47 -0
  105. package/scripts/eslint-plugin-hds/rules/no-raw-hex.mjs +70 -0
  106. package/scripts/eslint-plugin-hds/rules/no-raw-px-spacing.mjs +125 -0
  107. package/scripts/eslint-plugin-hds/rules/prefer-hds-layout-primitive.mjs +54 -0
  108. package/scripts/eslint-plugin-hds/rules/sx-token-first.mjs +111 -0
  109. package/scripts/eslint-plugin-hds/rules/utils.mjs +66 -0
  110. package/src/app/data/component-api.json +1082 -2913
  111. package/dist/chunks/LanguageContext-BxdCwiFg.js +0 -95
  112. package/dist/chunks/TokenDisplayContext-DKYJMVWk.js +0 -26
  113. package/dist/chunks/activity-feed-BGQ6v3wc.js +0 -22040
  114. package/dist/chunks/form-COP3vK9_.js +0 -66
  115. package/dist/types/src/app/components/activity-feed.d.ts +0 -73
  116. package/dist/types/src/app/components/app-shell.d.ts +0 -40
  117. package/dist/types/src/app/components/aspect-ratio.d.ts +0 -25
  118. package/dist/types/src/app/components/bleed.d.ts +0 -39
  119. package/dist/types/src/app/components/button-group.d.ts +0 -22
  120. package/dist/types/src/app/components/calendar.d.ts +0 -22
  121. package/dist/types/src/app/components/carousel.d.ts +0 -26
  122. package/dist/types/src/app/components/center.d.ts +0 -36
  123. package/dist/types/src/app/components/cinematic-link.d.ts +0 -18
  124. package/dist/types/src/app/components/circular-progress.d.ts +0 -28
  125. package/dist/types/src/app/components/cluster.d.ts +0 -39
  126. package/dist/types/src/app/components/command-palette.d.ts +0 -46
  127. package/dist/types/src/app/components/component-instance-matrix.d.ts +0 -27
  128. package/dist/types/src/app/components/context-menu.d.ts +0 -78
  129. package/dist/types/src/app/components/cover.d.ts +0 -43
  130. package/dist/types/src/app/components/date-input.d.ts +0 -31
  131. package/dist/types/src/app/components/date-range-input.d.ts +0 -34
  132. package/dist/types/src/app/components/date-time-input.d.ts +0 -30
  133. package/dist/types/src/app/components/doc-link-card.d.ts +0 -32
  134. package/dist/types/src/app/components/error-boundary.d.ts +0 -25
  135. package/dist/types/src/app/components/file-input.d.ts +0 -30
  136. package/dist/types/src/app/components/foundation-swatch.d.ts +0 -45
  137. package/dist/types/src/app/components/frame.d.ts +0 -38
  138. package/dist/types/src/app/components/heading-stack.d.ts +0 -52
  139. package/dist/types/src/app/components/history-card.d.ts +0 -12
  140. package/dist/types/src/app/components/hover-card.d.ts +0 -46
  141. package/dist/types/src/app/components/icon-button.d.ts +0 -22
  142. package/dist/types/src/app/components/image-lightbox.d.ts +0 -14
  143. package/dist/types/src/app/components/input-group.d.ts +0 -23
  144. package/dist/types/src/app/components/multi-selector.d.ts +0 -40
  145. package/dist/types/src/app/components/nav-group.d.ts +0 -29
  146. package/dist/types/src/app/components/nav-item.d.ts +0 -33
  147. package/dist/types/src/app/components/not-found-pattern.d.ts +0 -1
  148. package/dist/types/src/app/components/overflow-list.d.ts +0 -21
  149. package/dist/types/src/app/components/selectable-card.d.ts +0 -29
  150. package/dist/types/src/app/components/side-nav.d.ts +0 -23
  151. package/dist/types/src/app/components/sketch.d.ts +0 -19
  152. package/dist/types/src/app/components/stacked-card-rail.d.ts +0 -32
  153. package/dist/types/src/app/components/status-dot.d.ts +0 -25
  154. package/dist/types/src/app/components/stepper-field.d.ts +0 -12
  155. package/dist/types/src/app/components/stepper.d.ts +0 -33
  156. package/dist/types/src/app/components/text-lockup.d.ts +0 -38
  157. package/dist/types/src/app/components/tile-grid.d.ts +0 -17
  158. package/dist/types/src/app/components/time-input.d.ts +0 -24
  159. package/dist/types/src/app/components/toggle-button.d.ts +0 -32
  160. package/dist/types/src/app/components/token.d.ts +0 -90
  161. package/dist/types/src/app/components/tokenUtils.d.ts +0 -38
  162. package/dist/types/src/app/components/tokenizer.d.ts +0 -24
  163. package/dist/types/src/app/components/toolbar.d.ts +0 -36
  164. package/dist/types/src/app/components/top-nav.d.ts +0 -23
  165. package/dist/types/src/app/components/tree-list.d.ts +0 -30
  166. package/dist/types/src/app/data/nav-model.d.ts +0 -39
  167. package/dist/types/src/app/hooks/useFocusVisible.d.ts +0 -9
  168. package/dist/types/src/app/layouts/CaseStudyLayout.d.ts +0 -20
  169. package/dist/types/src/app/layouts/DocLayout.d.ts +0 -14
  170. package/dist/types/src/app/layouts/EmbeddedDocLayoutContext.d.ts +0 -6
  171. package/dist/types/src/app/layouts/HdsDocsShell.d.ts +0 -72
  172. package/dist/types/src/app/layouts/HdsSystemDocLayout.d.ts +0 -14
  173. package/dist/types/src/app/lib/hds-search.d.ts +0 -45
  174. package/dist/types/src/app/lib/nav-active.d.ts +0 -16
  175. package/dist/types/src/app/lib/navLevels.d.ts +0 -4
@@ -0,0 +1,66 @@
1
+ 'use client';
2
+ import { jsx as f, jsxs as p } from "react/jsx-runtime";
3
+ import * as s from "react";
4
+ import { cn as m } from "../cn.js";
5
+ const I = /* @__PURE__ */ s.forwardRef(function({ className: e, ...n }, o) {
6
+ return /* @__PURE__ */ f("form", { ref: o, className: m("flex flex-col gap-4", e), ...n });
7
+ });
8
+ function x({
9
+ htmlFor: c,
10
+ childId: e,
11
+ description: n,
12
+ error: o
13
+ }) {
14
+ const i = s.useId(), r = c ?? e ?? i, d = `${r}-description`, t = `${r}-error`, a = [n ? d : null, o ? t : null].filter(Boolean).join(" ") || void 0;
15
+ return { controlId: r, descriptionId: d, errorId: t, describedBy: a };
16
+ }
17
+ const b = /* @__PURE__ */ s.forwardRef(
18
+ function({ controlId: e, label: n, description: o, error: i, required: r = !1, className: d, children: t }, a) {
19
+ const l = `${e}-description`, u = `${e}-error`;
20
+ return /* @__PURE__ */ p("div", { ref: a, className: m("flex flex-col gap-2", d), children: [
21
+ /* @__PURE__ */ p("label", { htmlFor: e, className: "hds-type-ui text-foreground", children: [
22
+ n,
23
+ r ? /* @__PURE__ */ p("span", { "aria-hidden": "true", className: "text-destructive", children: [
24
+ " ",
25
+ "*"
26
+ ] }) : null
27
+ ] }),
28
+ t,
29
+ o && !i ? /* @__PURE__ */ f("p", { id: l, className: "hds-type-caption text-muted-foreground", children: o }) : null,
30
+ i ? /* @__PURE__ */ f("p", { id: u, role: "alert", className: "hds-type-caption text-destructive", children: i }) : null
31
+ ] });
32
+ }
33
+ ), g = /* @__PURE__ */ s.forwardRef(
34
+ function({ label: e, children: n, htmlFor: o, description: i, error: r, required: d = !1, className: t }, a) {
35
+ const l = s.Children.only(n), { controlId: u, describedBy: h } = x({
36
+ htmlFor: o,
37
+ childId: l.props.id,
38
+ description: i,
39
+ error: r
40
+ }), F = s.cloneElement(l, {
41
+ id: u,
42
+ required: l.props.required ?? d,
43
+ "aria-invalid": r ? !0 : l.props["aria-invalid"],
44
+ "aria-describedby": [l.props["aria-describedby"], h].filter(Boolean).join(" ") || void 0
45
+ });
46
+ return /* @__PURE__ */ f(
47
+ b,
48
+ {
49
+ ref: a,
50
+ controlId: u,
51
+ label: e,
52
+ description: i,
53
+ error: r,
54
+ required: d,
55
+ className: t,
56
+ children: F
57
+ }
58
+ );
59
+ }
60
+ );
61
+ export {
62
+ I as F,
63
+ b as a,
64
+ g as b,
65
+ x as u
66
+ };
package/dist/contexts.js CHANGED
@@ -1,9 +1,8 @@
1
1
  'use client';
2
- import { jsx as l, Fragment as x } from "react/jsx-runtime";
3
- import { useState as i, useCallback as a, useEffect as s, useContext as E, createContext as S } from "react";
4
- import { F as j, H as q, L as N, u as V, a as J, b as Q } from "./chunks/LanguageContext-BxdCwiFg.js";
5
- import { T as W, u as X } from "./chunks/TokenDisplayContext-DKYJMVWk.js";
6
- const I = ["system", "light", "dark"], d = "hds-theme-mode", P = "hds-theme", T = /* @__PURE__ */ S({
2
+ import { jsx as m, Fragment as P } from "react/jsx-runtime";
3
+ import { useState as l, useCallback as a, useEffect as u, useContext as h, createContext as y } from "react";
4
+ import { F as X, H as Z, u as $, a as tt } from "./chunks/DemoStateContext-Cz5TmrYu.js";
5
+ const M = ["system", "light", "dark"], D = "hds-theme-mode", R = "hds-theme", b = /* @__PURE__ */ y({
7
6
  isDark: !0,
8
7
  toggleDark: () => {
9
8
  },
@@ -16,22 +15,22 @@ const I = ["system", "light", "dark"], d = "hds-theme-mode", P = "hds-theme", T
16
15
  setDensity: () => {
17
16
  }
18
17
  });
19
- function y() {
18
+ function S() {
20
19
  try {
21
- const t = localStorage.getItem(d);
22
- if (t && I.includes(t)) return t;
20
+ const t = localStorage.getItem(D);
21
+ if (t && M.includes(t)) return t;
23
22
  } catch {
24
23
  }
25
24
  return "system";
26
25
  }
27
- function L() {
26
+ function _() {
28
27
  var t;
29
28
  return typeof window > "u" ? !1 : !!((t = window.matchMedia) != null && t.call(window, "(prefers-color-scheme: dark)").matches);
30
29
  }
31
- function D(t) {
32
- return t === "dark" ? !0 : t === "light" ? !1 : L();
30
+ function v(t) {
31
+ return t === "dark" ? !0 : t === "light" ? !1 : _();
33
32
  }
34
- function C() {
33
+ function O() {
35
34
  try {
36
35
  const t = localStorage.getItem("hds-density");
37
36
  if (t === "compact" || t === "comfortable") return t;
@@ -39,103 +38,183 @@ function C() {
39
38
  }
40
39
  return "comfortable";
41
40
  }
42
- function F({ children: t }) {
43
- const [n, f] = i(y), [r, u] = i(() => D(y())), [c, h] = i(C), g = a((e) => {
44
- const o = e ? "dark" : "light";
41
+ function H({ children: t }) {
42
+ const [e, r] = l(S), [o, d] = l(() => v(S())), [c, g] = l(O), f = a((n) => {
43
+ const s = n ? "dark" : "light";
45
44
  try {
46
- localStorage.setItem(P, o);
45
+ localStorage.setItem(R, s);
47
46
  } catch {
48
47
  }
49
- document.documentElement.setAttribute("data-theme", o), document.documentElement.classList.toggle("dark", e);
48
+ document.documentElement.setAttribute("data-theme", s), document.documentElement.classList.toggle("dark", n);
50
49
  }, []);
51
- s(() => {
50
+ u(() => {
52
51
  try {
53
52
  localStorage.setItem("hds-density", c);
54
53
  } catch {
55
54
  }
56
55
  document.documentElement.setAttribute("data-density", c);
57
- }, [c]), s(() => {
58
- g(r);
59
- }, [r, g]), s(() => {
60
- if (n !== "system" || typeof window > "u" || !window.matchMedia) return;
61
- const e = window.matchMedia("(prefers-color-scheme: dark)"), o = () => {
62
- u(e.matches);
56
+ }, [c]), u(() => {
57
+ f(o);
58
+ }, [o, f]), u(() => {
59
+ if (e !== "system" || typeof window > "u" || !window.matchMedia) return;
60
+ const n = window.matchMedia("(prefers-color-scheme: dark)"), s = () => {
61
+ d(n.matches);
63
62
  };
64
- return e.addEventListener("change", o), () => {
65
- e.removeEventListener("change", o);
63
+ return n.addEventListener("change", s), () => {
64
+ n.removeEventListener("change", s);
66
65
  };
67
- }, [n]);
68
- const b = a(() => {
69
- const e = !r, o = e ? "dark" : "light";
70
- f(o), u(e);
66
+ }, [e]);
67
+ const i = a(() => {
68
+ const n = !o, s = n ? "dark" : "light";
69
+ r(s), d(n);
71
70
  try {
72
- localStorage.setItem(d, o);
71
+ localStorage.setItem(D, s);
73
72
  } catch {
74
73
  }
75
- }, [r]), A = a((e) => {
76
- f(e), u(D(e));
74
+ }, [o]), I = a((n) => {
75
+ r(n), d(v(n));
77
76
  try {
78
- localStorage.setItem(d, e);
77
+ localStorage.setItem(D, n);
79
78
  } catch {
80
79
  }
81
- }, []), w = a(
82
- () => h((e) => e === "comfortable" ? "compact" : "comfortable"),
80
+ }, []), x = a(
81
+ () => g((n) => n === "comfortable" ? "compact" : "comfortable"),
83
82
  []
84
- ), M = a((e) => h(e), []);
85
- return /* @__PURE__ */ l(
86
- T.Provider,
83
+ ), L = a((n) => g(n), []);
84
+ return /* @__PURE__ */ m(
85
+ b.Provider,
87
86
  {
88
- value: { isDark: r, toggleDark: b, mode: n, setMode: A, density: c, toggleDensity: w, setDensity: M },
87
+ value: { isDark: o, toggleDark: i, mode: e, setMode: I, density: c, toggleDensity: x, setDensity: L },
89
88
  children: t
90
89
  }
91
90
  );
92
91
  }
93
- function O() {
94
- return E(T);
92
+ function N() {
93
+ return h(b);
95
94
  }
96
- const k = /* @__PURE__ */ S({ tenantSlug: null }), p = ["data-brand", "data-tenant"];
97
- function m(t) {
98
- for (const n of p) document.documentElement.setAttribute(n, t);
95
+ const p = {
96
+ en: {
97
+ language: "en",
98
+ dir: "ltr",
99
+ label: "English",
100
+ nativeLabel: "English"
101
+ }
102
+ }, A = /* @__PURE__ */ y({
103
+ language: "en",
104
+ direction: "ltr",
105
+ isRtl: !1,
106
+ setLanguage: () => {
107
+ },
108
+ setDirection: () => {
109
+ },
110
+ toggleDirection: () => {
111
+ },
112
+ options: p
113
+ });
114
+ function F() {
115
+ try {
116
+ const t = localStorage.getItem("hds-direction");
117
+ if (t === "ltr" || t === "rtl") return t;
118
+ } catch {
119
+ }
120
+ return "ltr";
99
121
  }
100
- function v() {
101
- for (const t of p) document.documentElement.removeAttribute(t);
122
+ function z({ children: t }) {
123
+ const [e, r] = l(F), o = "en", d = e === "rtl";
124
+ u(() => {
125
+ try {
126
+ localStorage.setItem("hds-direction", e);
127
+ } catch {
128
+ }
129
+ document.documentElement.setAttribute("lang", "en"), document.documentElement.setAttribute("data-language", "en"), document.documentElement.setAttribute("dir", e), document.documentElement.setAttribute("data-reading-direction", e);
130
+ }, [e]);
131
+ const c = a((i) => {
132
+ }, []), g = a((i) => {
133
+ r(i);
134
+ }, []), f = a(() => {
135
+ r((i) => i === "ltr" ? "rtl" : "ltr");
136
+ }, []);
137
+ return /* @__PURE__ */ m(
138
+ A.Provider,
139
+ {
140
+ value: {
141
+ language: o,
142
+ direction: e,
143
+ isRtl: d,
144
+ setLanguage: c,
145
+ setDirection: g,
146
+ toggleDirection: f,
147
+ options: p
148
+ },
149
+ children: t
150
+ }
151
+ );
152
+ }
153
+ function K() {
154
+ return h(A);
102
155
  }
103
- function B({
156
+ const T = /* @__PURE__ */ y({ tenantSlug: null }), k = ["data-brand", "data-tenant"];
157
+ function E(t) {
158
+ for (const e of k) document.documentElement.setAttribute(e, t);
159
+ }
160
+ function w() {
161
+ for (const t of k) document.documentElement.removeAttribute(t);
162
+ }
163
+ function Y({
104
164
  children: t,
105
- slug: n = null
165
+ slug: e = null
106
166
  }) {
107
- return s(() => {
108
- if (n)
109
- return m(n), () => v();
110
- }, [n]), /* @__PURE__ */ l(k.Provider, { value: { tenantSlug: n }, children: t });
111
- }
112
- function H() {
113
- return E(k);
114
- }
115
- function z(t) {
116
- s(() => {
117
- const n = document.documentElement.getAttribute("data-brand");
118
- return m(t), () => {
119
- n !== null ? m(n) : v();
167
+ return u(() => {
168
+ if (e)
169
+ return E(e), () => w();
170
+ }, [e]), /* @__PURE__ */ m(T.Provider, { value: { tenantSlug: e }, children: t });
171
+ }
172
+ function j() {
173
+ return h(T);
174
+ }
175
+ function q(t) {
176
+ u(() => {
177
+ const e = document.documentElement.getAttribute("data-brand");
178
+ return E(t), () => {
179
+ e !== null ? E(e) : w();
120
180
  };
121
181
  }, [t]);
122
182
  }
123
- function G({ children: t }) {
124
- return /* @__PURE__ */ l(x, { children: t });
183
+ function U({ children: t }) {
184
+ return /* @__PURE__ */ m(P, { children: t });
185
+ }
186
+ const C = /* @__PURE__ */ y(
187
+ void 0
188
+ );
189
+ function V({ children: t }) {
190
+ const [e, r] = l(!1);
191
+ return /* @__PURE__ */ m(
192
+ C.Provider,
193
+ {
194
+ value: { showCss: e, setShowCss: r, toggleCss: () => r((o) => !o) },
195
+ children: t
196
+ }
197
+ );
198
+ }
199
+ function J() {
200
+ const t = h(C);
201
+ return t || { showCss: !1, setShowCss: () => {
202
+ }, toggleCss: () => {
203
+ } };
125
204
  }
126
205
  export {
127
- G as FontProvider,
128
- j as FreezeState,
129
- q as HdsRouterProvider,
130
- N as LanguageProvider,
131
- B as TenantProvider,
132
- F as ThemeProvider,
133
- W as TokenDisplayProvider,
134
- V as useFrozenState,
135
- J as useHdsRouter,
136
- Q as useLanguage,
137
- H as useTenant,
138
- z as useTenantOnDocument,
139
- O as useTheme,
140
- X as useTokenDisplay
206
+ U as FontProvider,
207
+ X as FreezeState,
208
+ Z as HdsRouterProvider,
209
+ z as LanguageProvider,
210
+ Y as TenantProvider,
211
+ H as ThemeProvider,
212
+ V as TokenDisplayProvider,
213
+ $ as useFrozenState,
214
+ tt as useHdsRouter,
215
+ K as useLanguage,
216
+ j as useTenant,
217
+ q as useTenantOnDocument,
218
+ N as useTheme,
219
+ J as useTokenDisplay
141
220
  };
Binary file
Binary file
Binary file
Binary file
package/dist/fonts.css ADDED
@@ -0,0 +1,53 @@
1
+ /* @hirobius/design-system/fonts.css — OPTIONAL brand fonts: Satoshi 400/500/700
2
+ * and Geist Mono 400. tokens.css and styles.css do not include them. Import this
3
+ * once at the app root for the HDS faces, or skip it and load your own; the
4
+ * font-family variables in tokens.css fall back to the family stack either way.
5
+ * The woff2 URLs are relative to this file so your bundler resolves and hashes them. */
6
+ /* Hirobius Design System — font-face declarations.
7
+ *
8
+ * Faces (type ramp, Adrian 2026-10-07, hds#483):
9
+ * - Satoshi 400 — body
10
+ * - Satoshi 500 — ui, caption
11
+ * - Satoshi 700 — display, title
12
+ * - Geist Mono 400 — mono
13
+ *
14
+ * Audit gate: scripts/audit-typography-overrides.mjs fails on inline
15
+ * fontWeight / textTransform outside the sketches lab and a small allowlist.
16
+ */
17
+
18
+ /* Satoshi — Indian Type Foundry, ITF Free Font License via Fontshare. */
19
+ /* Satoshi Regular — body (400), hds#483 type ramp. */
20
+ @font-face {
21
+ font-family: 'Satoshi';
22
+ src: url('./fonts/satoshi-400.woff2') format('woff2');
23
+ font-weight: 400;
24
+ font-style: normal;
25
+ font-display: swap;
26
+ }
27
+
28
+ /* Satoshi Medium — ui and caption (500). */
29
+ @font-face {
30
+ font-family: 'Satoshi';
31
+ src: url('./fonts/satoshi-500.woff2') format('woff2');
32
+ font-weight: 500;
33
+ font-style: normal;
34
+ font-display: swap;
35
+ }
36
+
37
+ /* Satoshi Bold — display/heading weight (700), replaces Clash Display (#48). */
38
+ @font-face {
39
+ font-family: 'Satoshi';
40
+ src: url('./fonts/satoshi-700.woff2') format('woff2');
41
+ font-weight: 700;
42
+ font-style: normal;
43
+ font-display: swap;
44
+ }
45
+
46
+ /* Geist Mono — Vercel, OFL-1.1. */
47
+ @font-face {
48
+ font-family: 'Geist Mono'; /* impeccable-disable-line overused-font -- deliberate brand choice (Adrian directive 2026-05-04, see file header) */
49
+ src: url('./fonts/geist-mono-400.woff2') format('woff2');
50
+ font-weight: 400;
51
+ font-style: normal;
52
+ font-display: swap;
53
+ }
package/dist/form.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import { useForm as f, FormProvider as h, useController as v } from "react-hook-form";
3
3
  import { zodResolver as b } from "@hookform/resolvers/zod";
4
4
  import { jsx as t } from "react/jsx-runtime";
5
- import { F as p, u as g, a as S } from "./chunks/form-COP3vK9_.js";
5
+ import { F as p, u as g, a as S } from "./chunks/form-By82qZcC.js";
6
6
  function y(r, e) {
7
7
  return f({
8
8
  mode: "onTouched",