@5voltfx/design-system 0.1.1 → 0.2.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 (205) hide show
  1. package/dist/chunk-2KHDM6UP.js +58 -0
  2. package/dist/chunk-2KHDM6UP.js.map +1 -0
  3. package/dist/chunk-45346SXP.js +65 -0
  4. package/dist/chunk-45346SXP.js.map +1 -0
  5. package/dist/chunk-BAISLPWP.js +14 -0
  6. package/dist/chunk-BAISLPWP.js.map +1 -0
  7. package/dist/chunk-CT2TMR44.js +1 -0
  8. package/dist/chunk-CT2TMR44.js.map +1 -0
  9. package/dist/chunk-DD5VKG3L.js +22 -0
  10. package/dist/chunk-DD5VKG3L.js.map +1 -0
  11. package/dist/chunk-HLP2MPQ6.js +110 -0
  12. package/dist/chunk-HLP2MPQ6.js.map +1 -0
  13. package/dist/chunk-HPOL5NKF.js +22 -0
  14. package/dist/chunk-HPOL5NKF.js.map +1 -0
  15. package/dist/chunk-I3NS5MAC.js +23 -0
  16. package/dist/chunk-I3NS5MAC.js.map +1 -0
  17. package/dist/chunk-LPEUQ2DE.js +48 -0
  18. package/dist/chunk-LPEUQ2DE.js.map +1 -0
  19. package/dist/chunk-LY5MPGW2.js +129 -0
  20. package/dist/chunk-LY5MPGW2.js.map +1 -0
  21. package/dist/chunk-R42A3ZCY.js +16 -0
  22. package/dist/chunk-R42A3ZCY.js.map +1 -0
  23. package/dist/chunk-SUYKOWXJ.js +1219 -0
  24. package/dist/chunk-SUYKOWXJ.js.map +1 -0
  25. package/dist/chunk-VRGTUKSJ.js +20 -0
  26. package/dist/chunk-VRGTUKSJ.js.map +1 -0
  27. package/dist/chunk-ZVUDPTFZ.js +76 -0
  28. package/dist/chunk-ZVUDPTFZ.js.map +1 -0
  29. package/dist/components/Accordion/Accordion.d.ts +29 -0
  30. package/dist/components/Accordion/Accordion.d.ts.map +1 -0
  31. package/dist/components/Accordion/index.css +58 -0
  32. package/dist/components/Accordion/index.css.map +1 -0
  33. package/dist/components/Accordion/index.d.ts +2 -0
  34. package/dist/components/Accordion/index.d.ts.map +1 -0
  35. package/dist/components/Accordion/index.js +7 -0
  36. package/dist/components/Accordion/index.js.map +1 -0
  37. package/dist/components/Button/Button.d.ts +8 -0
  38. package/dist/components/Button/Button.d.ts.map +1 -0
  39. package/dist/components/Button/index.d.ts +2 -0
  40. package/dist/components/Button/index.d.ts.map +1 -0
  41. package/dist/components/Card/Card.d.ts +6 -0
  42. package/dist/components/Card/Card.d.ts.map +1 -0
  43. package/dist/components/Card/index.d.ts +2 -0
  44. package/dist/components/Card/index.d.ts.map +1 -0
  45. package/dist/components/Checkbox/Checkbox.d.ts +15 -0
  46. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
  47. package/dist/components/Checkbox/index.css +57 -0
  48. package/dist/components/Checkbox/index.css.map +1 -0
  49. package/dist/components/Checkbox/index.d.ts +2 -0
  50. package/dist/components/Checkbox/index.d.ts.map +1 -0
  51. package/dist/components/Checkbox/index.js +7 -0
  52. package/dist/components/Checkbox/index.js.map +1 -0
  53. package/dist/components/Footer/Footer.d.ts +15 -0
  54. package/dist/components/Footer/Footer.d.ts.map +1 -0
  55. package/dist/components/Footer/index.d.ts +2 -0
  56. package/dist/components/Footer/index.d.ts.map +1 -0
  57. package/dist/components/FormField/FormField.d.ts +27 -0
  58. package/dist/components/FormField/FormField.d.ts.map +1 -0
  59. package/dist/components/FormField/index.css +31 -0
  60. package/dist/components/FormField/index.css.map +1 -0
  61. package/dist/components/FormField/index.d.ts +2 -0
  62. package/dist/components/FormField/index.d.ts.map +1 -0
  63. package/dist/components/FormField/index.js +8 -0
  64. package/dist/components/FormField/index.js.map +1 -0
  65. package/dist/components/Header/Header.d.ts +15 -0
  66. package/dist/components/Header/Header.d.ts.map +1 -0
  67. package/dist/components/Header/index.d.ts +2 -0
  68. package/dist/components/Header/index.d.ts.map +1 -0
  69. package/dist/components/Input/Input.d.ts +16 -0
  70. package/dist/components/Input/Input.d.ts.map +1 -0
  71. package/dist/components/Input/index.css +45 -0
  72. package/dist/components/Input/index.css.map +1 -0
  73. package/dist/components/Input/index.d.ts +2 -0
  74. package/dist/components/Input/index.d.ts.map +1 -0
  75. package/dist/components/Input/index.js +7 -0
  76. package/dist/components/Input/index.js.map +1 -0
  77. package/dist/components/Label/Label.d.ts +15 -0
  78. package/dist/components/Label/Label.d.ts.map +1 -0
  79. package/dist/components/Label/index.css +14 -0
  80. package/dist/components/Label/index.css.map +1 -0
  81. package/dist/components/Label/index.d.ts +2 -0
  82. package/dist/components/Label/index.d.ts.map +1 -0
  83. package/dist/components/Label/index.js +8 -0
  84. package/dist/components/Label/index.js.map +1 -0
  85. package/dist/components/Layout/Container.d.ts +6 -0
  86. package/dist/components/Layout/Container.d.ts.map +1 -0
  87. package/dist/components/Layout/Grid.d.ts +9 -0
  88. package/dist/components/Layout/Grid.d.ts.map +1 -0
  89. package/dist/components/Layout/Stack.d.ts +10 -0
  90. package/dist/components/Layout/Stack.d.ts.map +1 -0
  91. package/dist/components/Layout/index.d.ts +4 -0
  92. package/dist/components/Layout/index.d.ts.map +1 -0
  93. package/dist/components/Menu/Menu.d.ts +30 -0
  94. package/dist/components/Menu/Menu.d.ts.map +1 -0
  95. package/dist/components/Menu/index.css +77 -0
  96. package/dist/components/Menu/index.css.map +1 -0
  97. package/dist/components/Menu/index.d.ts +2 -0
  98. package/dist/components/Menu/index.d.ts.map +1 -0
  99. package/dist/components/Menu/index.js +7 -0
  100. package/dist/components/Menu/index.js.map +1 -0
  101. package/dist/components/Modal/Modal.d.ts +24 -0
  102. package/dist/components/Modal/Modal.d.ts.map +1 -0
  103. package/dist/components/Modal/index.css +101 -0
  104. package/dist/components/Modal/index.css.map +1 -0
  105. package/dist/components/Modal/index.d.ts +2 -0
  106. package/dist/components/Modal/index.d.ts.map +1 -0
  107. package/dist/components/Modal/index.js +7 -0
  108. package/dist/components/Modal/index.js.map +1 -0
  109. package/dist/components/Nav/Nav.d.ts +10 -0
  110. package/dist/components/Nav/Nav.d.ts.map +1 -0
  111. package/dist/components/Nav/index.d.ts +2 -0
  112. package/dist/components/Nav/index.d.ts.map +1 -0
  113. package/dist/components/Radio/Radio.d.ts +17 -0
  114. package/dist/components/Radio/Radio.d.ts.map +1 -0
  115. package/dist/components/Radio/RadioGroup.d.ts +25 -0
  116. package/dist/components/Radio/RadioGroup.d.ts.map +1 -0
  117. package/dist/components/Radio/RadioGroupContext.d.ts +7 -0
  118. package/dist/components/Radio/RadioGroupContext.d.ts.map +1 -0
  119. package/dist/components/Radio/index.css +57 -0
  120. package/dist/components/Radio/index.css.map +1 -0
  121. package/dist/components/Radio/index.d.ts +3 -0
  122. package/dist/components/Radio/index.d.ts.map +1 -0
  123. package/dist/components/Radio/index.js +9 -0
  124. package/dist/components/Radio/index.js.map +1 -0
  125. package/dist/components/Select/Select.d.ts +18 -0
  126. package/dist/components/Select/Select.d.ts.map +1 -0
  127. package/dist/components/Select/index.css +52 -0
  128. package/dist/components/Select/index.css.map +1 -0
  129. package/dist/components/Select/index.d.ts +2 -0
  130. package/dist/components/Select/index.d.ts.map +1 -0
  131. package/dist/components/Select/index.js +7 -0
  132. package/dist/components/Select/index.js.map +1 -0
  133. package/dist/components/SlideRuleNav/SlideRuleNav.d.ts +54 -0
  134. package/dist/components/SlideRuleNav/SlideRuleNav.d.ts.map +1 -0
  135. package/dist/components/SlideRuleNav/geometry.d.ts +168 -0
  136. package/dist/components/SlideRuleNav/geometry.d.ts.map +1 -0
  137. package/dist/components/SlideRuleNav/index.css +196 -0
  138. package/dist/components/SlideRuleNav/index.css.map +1 -0
  139. package/dist/components/SlideRuleNav/index.d.ts +2 -0
  140. package/dist/components/SlideRuleNav/index.d.ts.map +1 -0
  141. package/dist/components/SlideRuleNav/index.js +7 -0
  142. package/dist/components/SlideRuleNav/index.js.map +1 -0
  143. package/dist/components/SlideRuleNav/variants/CursorRule.d.ts +11 -0
  144. package/dist/components/SlideRuleNav/variants/CursorRule.d.ts.map +1 -0
  145. package/dist/components/SlideRuleNav/variants/SlideStator.d.ts +13 -0
  146. package/dist/components/SlideRuleNav/variants/SlideStator.d.ts.map +1 -0
  147. package/dist/components/SlideRuleNav/variants/VernierCarriage.d.ts +13 -0
  148. package/dist/components/SlideRuleNav/variants/VernierCarriage.d.ts.map +1 -0
  149. package/dist/components/Switch/Switch.d.ts +15 -0
  150. package/dist/components/Switch/Switch.d.ts.map +1 -0
  151. package/dist/components/Switch/index.css +49 -0
  152. package/dist/components/Switch/index.css.map +1 -0
  153. package/dist/components/Switch/index.d.ts +2 -0
  154. package/dist/components/Switch/index.d.ts.map +1 -0
  155. package/dist/components/Switch/index.js +7 -0
  156. package/dist/components/Switch/index.js.map +1 -0
  157. package/dist/components/Tabs/Tabs.d.ts +34 -0
  158. package/dist/components/Tabs/Tabs.d.ts.map +1 -0
  159. package/dist/components/Tabs/index.css +54 -0
  160. package/dist/components/Tabs/index.css.map +1 -0
  161. package/dist/components/Tabs/index.d.ts +2 -0
  162. package/dist/components/Tabs/index.d.ts.map +1 -0
  163. package/dist/components/Tabs/index.js +7 -0
  164. package/dist/components/Tabs/index.js.map +1 -0
  165. package/dist/components/Textarea/Textarea.d.ts +16 -0
  166. package/dist/components/Textarea/Textarea.d.ts.map +1 -0
  167. package/dist/components/Textarea/index.css +36 -0
  168. package/dist/components/Textarea/index.css.map +1 -0
  169. package/dist/components/Textarea/index.d.ts +2 -0
  170. package/dist/components/Textarea/index.d.ts.map +1 -0
  171. package/dist/components/Textarea/index.js +7 -0
  172. package/dist/components/Textarea/index.js.map +1 -0
  173. package/dist/components/ThemeSwitcher/ThemeSwitcher.d.ts +4 -0
  174. package/dist/components/ThemeSwitcher/ThemeSwitcher.d.ts.map +1 -0
  175. package/dist/components/ThemeSwitcher/index.d.ts +2 -0
  176. package/dist/components/ThemeSwitcher/index.d.ts.map +1 -0
  177. package/dist/components/Typography/Heading.d.ts +9 -0
  178. package/dist/components/Typography/Heading.d.ts.map +1 -0
  179. package/dist/components/Typography/Text.d.ts +9 -0
  180. package/dist/components/Typography/Text.d.ts.map +1 -0
  181. package/dist/components/Typography/index.d.ts +3 -0
  182. package/dist/components/Typography/index.d.ts.map +1 -0
  183. package/dist/components/_shared/useDetentTravel.d.ts +87 -0
  184. package/dist/components/_shared/useDetentTravel.d.ts.map +1 -0
  185. package/dist/components/_shared/usePointerDrag.d.ts +24 -0
  186. package/dist/components/_shared/usePointerDrag.d.ts.map +1 -0
  187. package/dist/components/_shared/useReducedMotion.d.ts +7 -0
  188. package/dist/components/_shared/useReducedMotion.d.ts.map +1 -0
  189. package/dist/components/_shared/validateStationCount.d.ts +13 -0
  190. package/dist/components/_shared/validateStationCount.d.ts.map +1 -0
  191. package/dist/index.css +854 -0
  192. package/dist/index.css.map +1 -1
  193. package/dist/index.d.ts +25 -0
  194. package/dist/index.d.ts.map +1 -0
  195. package/dist/index.js +67 -12
  196. package/dist/index.js.map +1 -1
  197. package/dist/theme/ThemeContext.d.ts +2 -0
  198. package/dist/theme/ThemeContext.d.ts.map +1 -0
  199. package/dist/theme/ThemeProvider.d.ts +12 -0
  200. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  201. package/dist/theme/themeConstants.d.ts +8 -0
  202. package/dist/theme/themeConstants.d.ts.map +1 -0
  203. package/dist/theme/useTheme.d.ts +2 -0
  204. package/dist/theme/useTheme.d.ts.map +1 -0
  205. package/package.json +21 -5
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Ease-out-back with a deliberately low overshoot. The small bounce is what
3
+ * reads as *mechanical* — a cursor dropping into a notch — rather than bouncy.
4
+ * Copied from the design artboards; do not retune without redrawing them.
5
+ *
6
+ * @param {number} x - Normalized time, 0…1.
7
+ * @returns {number}
8
+ */
9
+ export function easeBack(x: number): number;
10
+ /**
11
+ * @typedef {object} DetentTravel
12
+ * @property {number} pos - Continuous travel, 0…count-1. Quantized to
13
+ * quarter detents while dragging.
14
+ * @property {number} station - Committed integer station index.
15
+ * @property {boolean} dragging
16
+ * @property {boolean} settling - True while the release animation runs.
17
+ * @property {(i: number, ms?: number) => void} goTo - Animate to a station.
18
+ * @property {(delta: number) => void} step - Move by whole stations.
19
+ * @property {(raw: number) => void} track - Feed raw travel during a drag.
20
+ * @property {() => void} begin - Start a drag.
21
+ * @property {() => void} release - Settle to the nearest station.
22
+ */
23
+ /**
24
+ * The detent state machine shared by every slide-rule navigation.
25
+ *
26
+ * Travel is quantized to quarter-pitch detents *while dragging*, so the
27
+ * mechanism visibly ratchets between stations, but releasing always settles
28
+ * onto a station — navigation never rests in a null state. `onChange` fires
29
+ * once, on arrival, and never mid-drag.
30
+ *
31
+ * @param {object} options
32
+ * @param {number} options.count - Number of stations.
33
+ * @param {number} [options.value] - Controlled station index.
34
+ * @param {number} [options.defaultValue] - Initial station (uncontrolled).
35
+ * @param {(station: number) => void} [options.onChange] - Fires on commit.
36
+ * @param {number} [options.subdivisions] - Detents per station gap.
37
+ * @param {number} [options.settleMs] - Release animation duration.
38
+ * @param {() => void} [options.onDetentCross] - Fires per detent crossed
39
+ * while dragging; drives the pawl kick and any tick feedback.
40
+ * @returns {DetentTravel}
41
+ */
42
+ export function useDetentTravel({ count, value, defaultValue, onChange, subdivisions, settleMs, onDetentCross, }?: {
43
+ count: number;
44
+ value?: number | undefined;
45
+ defaultValue?: number | undefined;
46
+ onChange?: ((station: number) => void) | undefined;
47
+ subdivisions?: number | undefined;
48
+ settleMs?: number | undefined;
49
+ onDetentCross?: (() => void) | undefined;
50
+ }): DetentTravel;
51
+ export type DetentTravel = {
52
+ /**
53
+ * - Continuous travel, 0…count-1. Quantized to
54
+ * quarter detents while dragging.
55
+ */
56
+ pos: number;
57
+ /**
58
+ * - Committed integer station index.
59
+ */
60
+ station: number;
61
+ dragging: boolean;
62
+ /**
63
+ * - True while the release animation runs.
64
+ */
65
+ settling: boolean;
66
+ /**
67
+ * - Animate to a station.
68
+ */
69
+ goTo: (i: number, ms?: number) => void;
70
+ /**
71
+ * - Move by whole stations.
72
+ */
73
+ step: (delta: number) => void;
74
+ /**
75
+ * - Feed raw travel during a drag.
76
+ */
77
+ track: (raw: number) => void;
78
+ /**
79
+ * - Start a drag.
80
+ */
81
+ begin: () => void;
82
+ /**
83
+ * - Settle to the nearest station.
84
+ */
85
+ release: () => void;
86
+ };
87
+ //# sourceMappingURL=useDetentTravel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDetentTravel.d.ts","sourceRoot":"","sources":["../../../src/components/_shared/useDetentTravel.js"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,4BAHW,MAAM,GACJ,MAAM,CAMlB;AAID;;;;;;;;;;;;GAYG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,mHAVG;IAAwB,KAAK,EAArB,MAAM;IACW,KAAK;IACL,YAAY;IACO,QAAQ,cAAlC,MAAM,KAAK,IAAI;IACR,YAAY;IACZ,QAAQ;IACJ,aAAa,UAA5B,IAAI;CAElB,GAAU,YAAY,CA4IxB;;;;;;SAzKa,MAAM;;;;aAEN,MAAM;cACN,OAAO;;;;cACP,OAAO;;;;UACP,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI;;;;UAChC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;;;;WACvB,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;;;;WACrB,MAAM,IAAI;;;;aACV,MAAM,IAAI"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Pointer dragging that does not break clicks on nested elements.
3
+ *
4
+ * Deliberately avoids `setPointerCapture`: capturing on a container (the
5
+ * slide, the disc) redirects the subsequent `click` away from the station link
6
+ * inside it, so nav items stop responding. Window-level listeners plus a small
7
+ * movement threshold give the same drag behaviour and leave `click` intact.
8
+ * `pointerdown` is likewise never `preventDefault`ed, because that suppresses
9
+ * focus.
10
+ *
11
+ * @param {import("react").RefObject<Element>} ref - The drag handle.
12
+ * @param {object} handlers
13
+ * @param {(e: PointerEvent) => void} [handlers.onBegin]
14
+ * @param {(e: PointerEvent) => void} [handlers.onMove] - Only after threshold.
15
+ * @param {(e: PointerEvent, wasTap: boolean) => void} [handlers.onEnd]
16
+ * @param {number} [handlers.threshold] - Pixels of travel before a drag starts.
17
+ */
18
+ export function usePointerDrag(ref: import("react").RefObject<Element>, { onBegin, onMove, onEnd, threshold }?: {
19
+ onBegin?: ((e: PointerEvent) => void) | undefined;
20
+ onMove?: ((e: PointerEvent) => void) | undefined;
21
+ onEnd?: ((e: PointerEvent, wasTap: boolean) => void) | undefined;
22
+ threshold?: number | undefined;
23
+ }): void;
24
+ //# sourceMappingURL=usePointerDrag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePointerDrag.d.ts","sourceRoot":"","sources":["../../../src/components/_shared/usePointerDrag.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,oCAPW,OAAO,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,0CAE1C;IAA6C,OAAO,QAAxC,YAAY,KAAK,IAAI;IACY,MAAM,QAAvC,YAAY,KAAK,IAAI;IAC6B,KAAK,QAAvD,YAAY,UAAU,OAAO,KAAK,IAAI;IACxB,SAAS;CACrC,QA4CA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Tracks `prefers-reduced-motion: reduce`, live.
3
+ *
4
+ * @returns {boolean} True when the user has asked for reduced motion.
5
+ */
6
+ export function useReducedMotion(): boolean;
7
+ //# sourceMappingURL=useReducedMotion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReducedMotion.d.ts","sourceRoot":"","sources":["../../../src/components/_shared/useReducedMotion.js"],"names":[],"mappings":"AAcA;;;;GAIG;AACH,oCAFa,OAAO,CAInB"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Clamps a station count to the range the slide-rule navigations stay legible
3
+ * in, warning once per render in development. Never throws — a nav that
4
+ * renders too many items is a design problem, not a crash.
5
+ *
6
+ * @param {number} n - Requested station count.
7
+ * @param {string} component - Component name, for the warning.
8
+ * @returns {number} The count to actually render.
9
+ */
10
+ export function validateStationCount(n: number, component: string): number;
11
+ export const MIN_STATIONS: 2;
12
+ export const MAX_STATIONS: 8;
13
+ //# sourceMappingURL=validateStationCount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateStationCount.d.ts","sourceRoot":"","sources":["../../../src/components/_shared/validateStationCount.js"],"names":[],"mappings":"AAOA;;;;;;;;GAQG;AACH,wCAJW,MAAM,aACN,MAAM,GACJ,MAAM,CAmBlB;AAjCD,2BAA4B,CAAC,CAAC;AAC9B,2BAA4B,CAAC,CAAC"}