@5voltfx/design-system 0.1.1 → 0.3.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 (225) 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-NJ2SBQYA.js +1208 -0
  22. package/dist/chunk-NJ2SBQYA.js.map +1 -0
  23. package/dist/chunk-R42A3ZCY.js +16 -0
  24. package/dist/chunk-R42A3ZCY.js.map +1 -0
  25. package/dist/chunk-UZW4E2UH.js +206 -0
  26. package/dist/chunk-UZW4E2UH.js.map +1 -0
  27. package/dist/chunk-VRGTUKSJ.js +20 -0
  28. package/dist/chunk-VRGTUKSJ.js.map +1 -0
  29. package/dist/chunk-YLUQANAI.js +1023 -0
  30. package/dist/chunk-YLUQANAI.js.map +1 -0
  31. package/dist/chunk-ZVUDPTFZ.js +76 -0
  32. package/dist/chunk-ZVUDPTFZ.js.map +1 -0
  33. package/dist/components/Accordion/Accordion.d.ts +29 -0
  34. package/dist/components/Accordion/Accordion.d.ts.map +1 -0
  35. package/dist/components/Accordion/index.css +58 -0
  36. package/dist/components/Accordion/index.css.map +1 -0
  37. package/dist/components/Accordion/index.d.ts +2 -0
  38. package/dist/components/Accordion/index.d.ts.map +1 -0
  39. package/dist/components/Accordion/index.js +7 -0
  40. package/dist/components/Accordion/index.js.map +1 -0
  41. package/dist/components/Button/Button.d.ts +8 -0
  42. package/dist/components/Button/Button.d.ts.map +1 -0
  43. package/dist/components/Button/index.d.ts +2 -0
  44. package/dist/components/Button/index.d.ts.map +1 -0
  45. package/dist/components/Card/Card.d.ts +6 -0
  46. package/dist/components/Card/Card.d.ts.map +1 -0
  47. package/dist/components/Card/index.d.ts +2 -0
  48. package/dist/components/Card/index.d.ts.map +1 -0
  49. package/dist/components/Checkbox/Checkbox.d.ts +15 -0
  50. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
  51. package/dist/components/Checkbox/index.css +57 -0
  52. package/dist/components/Checkbox/index.css.map +1 -0
  53. package/dist/components/Checkbox/index.d.ts +2 -0
  54. package/dist/components/Checkbox/index.d.ts.map +1 -0
  55. package/dist/components/Checkbox/index.js +7 -0
  56. package/dist/components/Checkbox/index.js.map +1 -0
  57. package/dist/components/DialNav/DialNav.d.ts +48 -0
  58. package/dist/components/DialNav/DialNav.d.ts.map +1 -0
  59. package/dist/components/DialNav/geometry.d.ts +159 -0
  60. package/dist/components/DialNav/geometry.d.ts.map +1 -0
  61. package/dist/components/DialNav/index.css +321 -0
  62. package/dist/components/DialNav/index.css.map +1 -0
  63. package/dist/components/DialNav/index.d.ts +2 -0
  64. package/dist/components/DialNav/index.d.ts.map +1 -0
  65. package/dist/components/DialNav/index.js +8 -0
  66. package/dist/components/DialNav/index.js.map +1 -0
  67. package/dist/components/DialNav/variants/Concentric.d.ts +10 -0
  68. package/dist/components/DialNav/variants/Concentric.d.ts.map +1 -0
  69. package/dist/components/DialNav/variants/RatchetFan.d.ts +12 -0
  70. package/dist/components/DialNav/variants/RatchetFan.d.ts.map +1 -0
  71. package/dist/components/DialNav/variants/Volvelle.d.ts +12 -0
  72. package/dist/components/DialNav/variants/Volvelle.d.ts.map +1 -0
  73. package/dist/components/Footer/Footer.d.ts +15 -0
  74. package/dist/components/Footer/Footer.d.ts.map +1 -0
  75. package/dist/components/Footer/index.d.ts +2 -0
  76. package/dist/components/Footer/index.d.ts.map +1 -0
  77. package/dist/components/FormField/FormField.d.ts +27 -0
  78. package/dist/components/FormField/FormField.d.ts.map +1 -0
  79. package/dist/components/FormField/index.css +31 -0
  80. package/dist/components/FormField/index.css.map +1 -0
  81. package/dist/components/FormField/index.d.ts +2 -0
  82. package/dist/components/FormField/index.d.ts.map +1 -0
  83. package/dist/components/FormField/index.js +8 -0
  84. package/dist/components/FormField/index.js.map +1 -0
  85. package/dist/components/Header/Header.d.ts +15 -0
  86. package/dist/components/Header/Header.d.ts.map +1 -0
  87. package/dist/components/Header/index.d.ts +2 -0
  88. package/dist/components/Header/index.d.ts.map +1 -0
  89. package/dist/components/Input/Input.d.ts +16 -0
  90. package/dist/components/Input/Input.d.ts.map +1 -0
  91. package/dist/components/Input/index.css +45 -0
  92. package/dist/components/Input/index.css.map +1 -0
  93. package/dist/components/Input/index.d.ts +2 -0
  94. package/dist/components/Input/index.d.ts.map +1 -0
  95. package/dist/components/Input/index.js +7 -0
  96. package/dist/components/Input/index.js.map +1 -0
  97. package/dist/components/Label/Label.d.ts +15 -0
  98. package/dist/components/Label/Label.d.ts.map +1 -0
  99. package/dist/components/Label/index.css +14 -0
  100. package/dist/components/Label/index.css.map +1 -0
  101. package/dist/components/Label/index.d.ts +2 -0
  102. package/dist/components/Label/index.d.ts.map +1 -0
  103. package/dist/components/Label/index.js +8 -0
  104. package/dist/components/Label/index.js.map +1 -0
  105. package/dist/components/Layout/Container.d.ts +6 -0
  106. package/dist/components/Layout/Container.d.ts.map +1 -0
  107. package/dist/components/Layout/Grid.d.ts +9 -0
  108. package/dist/components/Layout/Grid.d.ts.map +1 -0
  109. package/dist/components/Layout/Stack.d.ts +10 -0
  110. package/dist/components/Layout/Stack.d.ts.map +1 -0
  111. package/dist/components/Layout/index.d.ts +4 -0
  112. package/dist/components/Layout/index.d.ts.map +1 -0
  113. package/dist/components/Menu/Menu.d.ts +30 -0
  114. package/dist/components/Menu/Menu.d.ts.map +1 -0
  115. package/dist/components/Menu/index.css +77 -0
  116. package/dist/components/Menu/index.css.map +1 -0
  117. package/dist/components/Menu/index.d.ts +2 -0
  118. package/dist/components/Menu/index.d.ts.map +1 -0
  119. package/dist/components/Menu/index.js +7 -0
  120. package/dist/components/Menu/index.js.map +1 -0
  121. package/dist/components/Modal/Modal.d.ts +24 -0
  122. package/dist/components/Modal/Modal.d.ts.map +1 -0
  123. package/dist/components/Modal/index.css +101 -0
  124. package/dist/components/Modal/index.css.map +1 -0
  125. package/dist/components/Modal/index.d.ts +2 -0
  126. package/dist/components/Modal/index.d.ts.map +1 -0
  127. package/dist/components/Modal/index.js +7 -0
  128. package/dist/components/Modal/index.js.map +1 -0
  129. package/dist/components/Nav/Nav.d.ts +10 -0
  130. package/dist/components/Nav/Nav.d.ts.map +1 -0
  131. package/dist/components/Nav/index.d.ts +2 -0
  132. package/dist/components/Nav/index.d.ts.map +1 -0
  133. package/dist/components/Radio/Radio.d.ts +17 -0
  134. package/dist/components/Radio/Radio.d.ts.map +1 -0
  135. package/dist/components/Radio/RadioGroup.d.ts +25 -0
  136. package/dist/components/Radio/RadioGroup.d.ts.map +1 -0
  137. package/dist/components/Radio/RadioGroupContext.d.ts +7 -0
  138. package/dist/components/Radio/RadioGroupContext.d.ts.map +1 -0
  139. package/dist/components/Radio/index.css +57 -0
  140. package/dist/components/Radio/index.css.map +1 -0
  141. package/dist/components/Radio/index.d.ts +3 -0
  142. package/dist/components/Radio/index.d.ts.map +1 -0
  143. package/dist/components/Radio/index.js +9 -0
  144. package/dist/components/Radio/index.js.map +1 -0
  145. package/dist/components/Select/Select.d.ts +18 -0
  146. package/dist/components/Select/Select.d.ts.map +1 -0
  147. package/dist/components/Select/index.css +52 -0
  148. package/dist/components/Select/index.css.map +1 -0
  149. package/dist/components/Select/index.d.ts +2 -0
  150. package/dist/components/Select/index.d.ts.map +1 -0
  151. package/dist/components/Select/index.js +7 -0
  152. package/dist/components/Select/index.js.map +1 -0
  153. package/dist/components/SlideRuleNav/SlideRuleNav.d.ts +54 -0
  154. package/dist/components/SlideRuleNav/SlideRuleNav.d.ts.map +1 -0
  155. package/dist/components/SlideRuleNav/geometry.d.ts +168 -0
  156. package/dist/components/SlideRuleNav/geometry.d.ts.map +1 -0
  157. package/dist/components/SlideRuleNav/index.css +196 -0
  158. package/dist/components/SlideRuleNav/index.css.map +1 -0
  159. package/dist/components/SlideRuleNav/index.d.ts +2 -0
  160. package/dist/components/SlideRuleNav/index.d.ts.map +1 -0
  161. package/dist/components/SlideRuleNav/index.js +8 -0
  162. package/dist/components/SlideRuleNav/index.js.map +1 -0
  163. package/dist/components/SlideRuleNav/variants/CursorRule.d.ts +11 -0
  164. package/dist/components/SlideRuleNav/variants/CursorRule.d.ts.map +1 -0
  165. package/dist/components/SlideRuleNav/variants/SlideStator.d.ts +13 -0
  166. package/dist/components/SlideRuleNav/variants/SlideStator.d.ts.map +1 -0
  167. package/dist/components/SlideRuleNav/variants/VernierCarriage.d.ts +13 -0
  168. package/dist/components/SlideRuleNav/variants/VernierCarriage.d.ts.map +1 -0
  169. package/dist/components/Switch/Switch.d.ts +15 -0
  170. package/dist/components/Switch/Switch.d.ts.map +1 -0
  171. package/dist/components/Switch/index.css +49 -0
  172. package/dist/components/Switch/index.css.map +1 -0
  173. package/dist/components/Switch/index.d.ts +2 -0
  174. package/dist/components/Switch/index.d.ts.map +1 -0
  175. package/dist/components/Switch/index.js +7 -0
  176. package/dist/components/Switch/index.js.map +1 -0
  177. package/dist/components/Tabs/Tabs.d.ts +34 -0
  178. package/dist/components/Tabs/Tabs.d.ts.map +1 -0
  179. package/dist/components/Tabs/index.css +54 -0
  180. package/dist/components/Tabs/index.css.map +1 -0
  181. package/dist/components/Tabs/index.d.ts +2 -0
  182. package/dist/components/Tabs/index.d.ts.map +1 -0
  183. package/dist/components/Tabs/index.js +7 -0
  184. package/dist/components/Tabs/index.js.map +1 -0
  185. package/dist/components/Textarea/Textarea.d.ts +16 -0
  186. package/dist/components/Textarea/Textarea.d.ts.map +1 -0
  187. package/dist/components/Textarea/index.css +36 -0
  188. package/dist/components/Textarea/index.css.map +1 -0
  189. package/dist/components/Textarea/index.d.ts +2 -0
  190. package/dist/components/Textarea/index.d.ts.map +1 -0
  191. package/dist/components/Textarea/index.js +7 -0
  192. package/dist/components/Textarea/index.js.map +1 -0
  193. package/dist/components/ThemeSwitcher/ThemeSwitcher.d.ts +4 -0
  194. package/dist/components/ThemeSwitcher/ThemeSwitcher.d.ts.map +1 -0
  195. package/dist/components/ThemeSwitcher/index.d.ts +2 -0
  196. package/dist/components/ThemeSwitcher/index.d.ts.map +1 -0
  197. package/dist/components/Typography/Heading.d.ts +9 -0
  198. package/dist/components/Typography/Heading.d.ts.map +1 -0
  199. package/dist/components/Typography/Text.d.ts +9 -0
  200. package/dist/components/Typography/Text.d.ts.map +1 -0
  201. package/dist/components/Typography/index.d.ts +3 -0
  202. package/dist/components/Typography/index.d.ts.map +1 -0
  203. package/dist/components/_shared/useDetentTravel.d.ts +87 -0
  204. package/dist/components/_shared/useDetentTravel.d.ts.map +1 -0
  205. package/dist/components/_shared/usePointerDrag.d.ts +24 -0
  206. package/dist/components/_shared/usePointerDrag.d.ts.map +1 -0
  207. package/dist/components/_shared/useReducedMotion.d.ts +7 -0
  208. package/dist/components/_shared/useReducedMotion.d.ts.map +1 -0
  209. package/dist/components/_shared/validateStationCount.d.ts +13 -0
  210. package/dist/components/_shared/validateStationCount.d.ts.map +1 -0
  211. package/dist/index.css +1175 -0
  212. package/dist/index.css.map +1 -1
  213. package/dist/index.d.ts +26 -0
  214. package/dist/index.d.ts.map +1 -0
  215. package/dist/index.js +70 -10
  216. package/dist/index.js.map +1 -1
  217. package/dist/theme/ThemeContext.d.ts +2 -0
  218. package/dist/theme/ThemeContext.d.ts.map +1 -0
  219. package/dist/theme/ThemeProvider.d.ts +12 -0
  220. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  221. package/dist/theme/themeConstants.d.ts +8 -0
  222. package/dist/theme/themeConstants.d.ts.map +1 -0
  223. package/dist/theme/useTheme.d.ts +2 -0
  224. package/dist/theme/useTheme.d.ts.map +1 -0
  225. package/package.json +21 -5
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * L-I — Cursor Rule.
3
+ *
4
+ * The scale is fixed and the cursor travels: a glass runner with a scarlet
5
+ * hairline, brass shoes at each end. Mechanically the simplest of the three
6
+ * linear plates, and a strict subset of L-III.
7
+ *
8
+ * Decorative only — the navigation is the HTML list the parent renders above.
9
+ */
10
+ export const CursorRule: import("react").ForwardRefExoticComponent<import("react").RefAttributes<any>>;
11
+ //# sourceMappingURL=CursorRule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CursorRule.d.ts","sourceRoot":"","sources":["../../../../src/components/SlideRuleNav/variants/CursorRule.jsx"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,uGAgLG"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * L-II — Slide & Stator.
3
+ *
4
+ * Inverted from L-I: the index stays put and the slide travels beneath it.
5
+ * Stations sit at true log10 positions, so the gaps compress toward the right
6
+ * of the rule and each quarter-detent inherits that compression — the
7
+ * mechanism genuinely tightens at the far end. The unevenness is the point.
8
+ *
9
+ * Decorative only — the navigation is the HTML list the parent renders above,
10
+ * which rides the same offset this slide does.
11
+ */
12
+ export const SlideStator: import("react").ForwardRefExoticComponent<import("react").RefAttributes<any>>;
13
+ //# sourceMappingURL=SlideStator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlideStator.d.ts","sourceRoot":"","sources":["../../../../src/components/SlideRuleNav/variants/SlideStator.jsx"],"names":[],"mappings":"AAkCA;;;;;;;;;;GAUG;AACH,wGAmOG"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * L-III — Vernier Carriage.
3
+ *
4
+ * A notched rail with a sprung pawl and a working vernier: five carriage
5
+ * divisions span four rail divisions, so at any offset exactly one line pair
6
+ * coincides and its index gives the fraction. Release and the pawl seats, the
7
+ * zero lines coincide, and the reading goes whole.
8
+ *
9
+ * Everything here is decorative and hidden from assistive technology; the
10
+ * navigation is the HTML list the parent renders over it.
11
+ */
12
+ export const VernierCarriage: import("react").ForwardRefExoticComponent<import("react").RefAttributes<any>>;
13
+ //# sourceMappingURL=VernierCarriage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VernierCarriage.d.ts","sourceRoot":"","sources":["../../../../src/components/SlideRuleNav/variants/VernierCarriage.jsx"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,4GAwMG"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Toggle switch built on a native <input type="checkbox"> — same semantics as
3
+ * a checkbox, styled as a sliding track. Controlled or uncontrolled via
4
+ * `...rest` (checked/defaultChecked, onChange).
5
+ *
6
+ * @param {object} props
7
+ * @param {import("react").ReactNode} [props.label] - Visible label text.
8
+ * @param {string} [props.className]
9
+ * @returns {import("react").ReactElement}
10
+ */
11
+ export function Switch({ label, className, ...rest }: {
12
+ label?: import("react").ReactNode;
13
+ className?: string | undefined;
14
+ }): import("react").ReactElement;
15
+ //# sourceMappingURL=Switch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/components/Switch/Switch.jsx"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,sDAJG;IAA0C,KAAK,GAAvC,OAAO,OAAO,EAAE,SAAS;IACV,SAAS;CAChC,GAAU,OAAO,OAAO,EAAE,YAAY,CAiBxC"}
@@ -0,0 +1,49 @@
1
+ /* src/components/Switch/Switch.css */
2
+ .ds-switch {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ gap: var(--ds-space-2);
6
+ font-family: var(--ds-font-body);
7
+ font-size: var(--ds-font-size-200);
8
+ color: var(--ds-color-font-0);
9
+ cursor: pointer;
10
+ }
11
+ .ds-switch__input {
12
+ position: absolute;
13
+ width: 1px;
14
+ height: 1px;
15
+ opacity: 0;
16
+ margin: 0;
17
+ }
18
+ .ds-switch__track {
19
+ display: inline-flex;
20
+ align-items: center;
21
+ width: 2.5rem;
22
+ height: 1.4rem;
23
+ flex-shrink: 0;
24
+ padding: 2px;
25
+ border-radius: var(--ds-radius-pill);
26
+ background-color: var(--ds-color-bw-2);
27
+ transition: background-color var(--ds-motion-duration-base) var(--ds-motion-ease-standard);
28
+ }
29
+ .ds-switch__thumb {
30
+ width: 1rem;
31
+ height: 1rem;
32
+ border-radius: var(--ds-radius-pill);
33
+ background-color: var(--ds-color-bw-4);
34
+ transition: transform var(--ds-motion-duration-base) var(--ds-motion-ease-standard);
35
+ }
36
+ .ds-switch__input:checked + .ds-switch__track {
37
+ background-color: var(--ds-color-bg-2);
38
+ }
39
+ .ds-switch__input:checked + .ds-switch__track .ds-switch__thumb {
40
+ transform: translateX(1.1rem);
41
+ }
42
+ .ds-switch__input:focus-visible + .ds-switch__track {
43
+ outline: 2px solid var(--ds-color-focus-ring);
44
+ outline-offset: 2px;
45
+ }
46
+ .ds-switch__input:disabled ~ * {
47
+ opacity: 0.5;
48
+ }
49
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/Switch/Switch.css"],"sourcesContent":[".ds-switch {\n display: inline-flex;\n align-items: center;\n gap: var(--ds-space-2);\n font-family: var(--ds-font-body);\n font-size: var(--ds-font-size-200);\n color: var(--ds-color-font-0);\n cursor: pointer;\n}\n\n.ds-switch__input {\n position: absolute;\n width: 1px;\n height: 1px;\n opacity: 0;\n margin: 0;\n}\n\n.ds-switch__track {\n display: inline-flex;\n align-items: center;\n width: 2.5rem;\n height: 1.4rem;\n flex-shrink: 0;\n padding: 2px;\n border-radius: var(--ds-radius-pill);\n background-color: var(--ds-color-bw-2);\n transition: background-color var(--ds-motion-duration-base) var(--ds-motion-ease-standard);\n}\n\n.ds-switch__thumb {\n width: 1rem;\n height: 1rem;\n border-radius: var(--ds-radius-pill);\n background-color: var(--ds-color-bw-4);\n transition: transform var(--ds-motion-duration-base) var(--ds-motion-ease-standard);\n}\n\n.ds-switch__input:checked + .ds-switch__track {\n background-color: var(--ds-color-bg-2);\n}\n\n.ds-switch__input:checked + .ds-switch__track .ds-switch__thumb {\n transform: translateX(1.1rem);\n}\n\n.ds-switch__input:focus-visible + .ds-switch__track {\n outline: 2px solid var(--ds-color-focus-ring);\n outline-offset: 2px;\n}\n\n.ds-switch__input:disabled ~ * {\n opacity: 0.5;\n}\n"],"mappings":";AAAA,CAAC;AACC,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,SAAO,IAAI;AACX,UAAQ;AACV;AAEA,CAAC;AACC,YAAU;AACV,SAAO;AACP,UAAQ;AACR,WAAS;AACT,UAAQ;AACV;AAEA,CAAC;AACC,WAAS;AACT,eAAa;AACb,SAAO;AACP,UAAQ;AACR,eAAa;AACb,WAAS;AACT,iBAAe,IAAI;AACnB,oBAAkB,IAAI;AACtB,cAAY,iBAAiB,IAAI,2BAA2B,IAAI;AAClE;AAEA,CAAC;AACC,SAAO;AACP,UAAQ;AACR,iBAAe,IAAI;AACnB,oBAAkB,IAAI;AACtB,cAAY,UAAU,IAAI,2BAA2B,IAAI;AAC3D;AAEA,CA5BC,gBA4BgB,SAAS,EAAE,CApB3B;AAqBC,oBAAkB,IAAI;AACxB;AAEA,CAhCC,gBAgCgB,SAAS,EAAE,CAxB3B,iBAwB6C,CAZ7C;AAaC,aAAW,WAAW;AACxB;AAEA,CApCC,gBAoCgB,eAAe,EAAE,CA5BjC;AA6BC,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AAClB;AAEA,CAzCC,gBAyCgB,UAAU,EAAE;AAC3B,WAAS;AACX;","names":[]}
@@ -0,0 +1,2 @@
1
+ export { Switch } from "./Switch.jsx";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Switch/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import {
2
+ Switch
3
+ } from "../../chunk-DD5VKG3L.js";
4
+ export {
5
+ Switch
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @typedef {object} TabItem
3
+ * @property {string} id
4
+ * @property {import("react").ReactNode} label
5
+ * @property {import("react").ReactNode} content
6
+ * @property {boolean} [disabled]
7
+ */
8
+ /**
9
+ * Accessible tabs. Uncontrolled by default (tracks its own selection); pass
10
+ * `value` + `onChange` to control it. Left/Right arrows move between tabs with
11
+ * roving tabindex; Home/End jump to first/last. role=tablist/tab/tabpanel.
12
+ *
13
+ * @param {object} props
14
+ * @param {TabItem[]} props.items
15
+ * @param {string} [props.value] - Selected tab id (controlled).
16
+ * @param {string} [props.defaultValue] - Initial tab id (uncontrolled).
17
+ * @param {(id: string) => void} [props.onChange]
18
+ * @param {string} [props.className]
19
+ * @returns {import("react").ReactElement}
20
+ */
21
+ export function Tabs({ items, value, defaultValue, onChange, className, }: {
22
+ items: TabItem[];
23
+ value?: string | undefined;
24
+ defaultValue?: string | undefined;
25
+ onChange?: ((id: string) => void) | undefined;
26
+ className?: string | undefined;
27
+ }): import("react").ReactElement;
28
+ export type TabItem = {
29
+ id: string;
30
+ label: import("react").ReactNode;
31
+ content: import("react").ReactNode;
32
+ disabled?: boolean | undefined;
33
+ };
34
+ //# sourceMappingURL=Tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/Tabs.jsx"],"names":[],"mappings":"AAGA;;;;;;GAMG;AAEH;;;;;;;;;;;;GAYG;AACH,2EAPG;IAAyB,KAAK,EAAtB,OAAO,EAAE;IACM,KAAK;IACL,YAAY;IACE,QAAQ,SAAhC,MAAM,KAAK,IAAI;IACL,SAAS;CAChC,GAAU,OAAO,OAAO,EAAE,YAAY,CAoFxC;;QArGa,MAAM;WACN,OAAO,OAAO,EAAE,SAAS;aACzB,OAAO,OAAO,EAAE,SAAS"}
@@ -0,0 +1,54 @@
1
+ /* src/components/Tabs/Tabs.css */
2
+ .ds-tabs__list {
3
+ display: flex;
4
+ gap: var(--ds-space-1);
5
+ border-bottom: 1px solid var(--ds-color-bw-1);
6
+ }
7
+ .ds-tabs__tab {
8
+ position: relative;
9
+ padding: var(--ds-space-3) var(--ds-space-4);
10
+ font-family: var(--ds-font-body);
11
+ font-size: var(--ds-font-size-200);
12
+ font-weight: var(--ds-font-weight-medium);
13
+ color: var(--ds-color-font-1);
14
+ background: transparent;
15
+ border: none;
16
+ cursor: pointer;
17
+ transition: color var(--ds-motion-duration-base) var(--ds-motion-ease-standard);
18
+ }
19
+ .ds-tabs__tab::after {
20
+ content: "";
21
+ position: absolute;
22
+ left: 0;
23
+ right: 0;
24
+ bottom: -1px;
25
+ height: 2px;
26
+ background-color: var(--ds-color-bg-2);
27
+ transform: scaleX(0);
28
+ transition: transform var(--ds-motion-duration-base) var(--ds-motion-ease-standard);
29
+ }
30
+ .ds-tabs__tab:hover:not(:disabled) {
31
+ color: var(--ds-color-font-0);
32
+ }
33
+ .ds-tabs__tab--active {
34
+ color: var(--ds-color-font-0);
35
+ }
36
+ .ds-tabs__tab--active::after {
37
+ transform: scaleX(1);
38
+ }
39
+ .ds-tabs__tab:focus-visible {
40
+ outline: 2px solid var(--ds-color-focus-ring);
41
+ outline-offset: -2px;
42
+ border-radius: var(--ds-radius-sm);
43
+ }
44
+ .ds-tabs__tab:disabled {
45
+ opacity: 0.5;
46
+ cursor: not-allowed;
47
+ }
48
+ .ds-tabs__panel {
49
+ padding-top: var(--ds-space-4);
50
+ }
51
+ .ds-tabs__panel:focus-visible {
52
+ outline: none;
53
+ }
54
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/Tabs/Tabs.css"],"sourcesContent":[".ds-tabs__list {\n display: flex;\n gap: var(--ds-space-1);\n border-bottom: 1px solid var(--ds-color-bw-1);\n}\n\n.ds-tabs__tab {\n position: relative;\n padding: var(--ds-space-3) var(--ds-space-4);\n font-family: var(--ds-font-body);\n font-size: var(--ds-font-size-200);\n font-weight: var(--ds-font-weight-medium);\n color: var(--ds-color-font-1);\n background: transparent;\n border: none;\n cursor: pointer;\n transition: color var(--ds-motion-duration-base) var(--ds-motion-ease-standard);\n}\n\n.ds-tabs__tab::after {\n content: \"\";\n position: absolute;\n left: 0;\n right: 0;\n bottom: -1px;\n height: 2px;\n background-color: var(--ds-color-bg-2);\n transform: scaleX(0);\n transition: transform var(--ds-motion-duration-base)\n var(--ds-motion-ease-standard);\n}\n\n.ds-tabs__tab:hover:not(:disabled) {\n color: var(--ds-color-font-0);\n}\n\n.ds-tabs__tab--active {\n color: var(--ds-color-font-0);\n}\n\n.ds-tabs__tab--active::after {\n transform: scaleX(1);\n}\n\n.ds-tabs__tab:focus-visible {\n outline: 2px solid var(--ds-color-focus-ring);\n outline-offset: -2px;\n border-radius: var(--ds-radius-sm);\n}\n\n.ds-tabs__tab:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.ds-tabs__panel {\n padding-top: var(--ds-space-4);\n}\n\n.ds-tabs__panel:focus-visible {\n outline: none;\n}\n"],"mappings":";AAAA,CAAC;AACC,WAAS;AACT,OAAK,IAAI;AACT,iBAAe,IAAI,MAAM,IAAI;AAC/B;AAEA,CAAC;AACC,YAAU;AACV,WAAS,IAAI,cAAc,IAAI;AAC/B,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,cAAY;AACZ,UAAQ;AACR,UAAQ;AACR,cAAY,MAAM,IAAI,2BAA2B,IAAI;AACvD;AAEA,CAbC,YAaY;AACX,WAAS;AACT,YAAU;AACV,QAAM;AACN,SAAO;AACP,UAAQ;AACR,UAAQ;AACR,oBAAkB,IAAI;AACtB,aAAW,OAAO;AAClB,cAAY,UAAU,IAAI,2BACxB,IAAI;AACR;AAEA,CA1BC,YA0BY,MAAM,KAAK;AACtB,SAAO,IAAI;AACb;AAEA,CAAC;AACC,SAAO,IAAI;AACb;AAEA,CAJC,oBAIoB;AACnB,aAAW,OAAO;AACpB;AAEA,CAtCC,YAsCY;AACX,WAAS,IAAI,MAAM,IAAI;AACvB,kBAAgB;AAChB,iBAAe,IAAI;AACrB;AAEA,CA5CC,YA4CY;AACX,WAAS;AACT,UAAQ;AACV;AAEA,CAAC;AACC,eAAa,IAAI;AACnB;AAEA,CAJC,cAIc;AACb,WAAS;AACX;","names":[]}
@@ -0,0 +1,2 @@
1
+ export { Tabs } from "./Tabs.jsx";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import {
2
+ Tabs
3
+ } from "../../chunk-ZVUDPTFZ.js";
4
+ export {
5
+ Tabs
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Multi-line text input. Shares Input's field styling. All native <textarea>
3
+ * props pass through via `...rest`.
4
+ *
5
+ * @param {object} props
6
+ * @param {boolean} [props.invalid] - Applies error styling + aria-invalid.
7
+ * @param {number} [props.rows] - Default 4.
8
+ * @param {string} [props.className]
9
+ * @returns {import("react").ReactElement}
10
+ */
11
+ export function Textarea({ invalid, rows, className, ...rest }: {
12
+ invalid?: boolean | undefined;
13
+ rows?: number | undefined;
14
+ className?: string | undefined;
15
+ }): import("react").ReactElement;
16
+ //# sourceMappingURL=Textarea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../src/components/Textarea/Textarea.jsx"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,gEALG;IAAwB,OAAO;IACR,IAAI;IACJ,SAAS;CAChC,GAAU,OAAO,OAAO,EAAE,YAAY,CAmBxC"}
@@ -0,0 +1,36 @@
1
+ /* src/components/Textarea/Textarea.css */
2
+ .ds-textarea {
3
+ display: block;
4
+ width: 100%;
5
+ padding: var(--ds-space-3) var(--ds-space-4);
6
+ font-family: var(--ds-font-body);
7
+ font-size: var(--ds-font-size-200);
8
+ line-height: var(--ds-line-height-normal);
9
+ color: var(--ds-color-font-0);
10
+ background-color: var(--ds-color-field-bg);
11
+ border: 1px solid var(--ds-color-field-border);
12
+ border-radius: var(--ds-radius-md);
13
+ resize: vertical;
14
+ transition: border-color var(--ds-motion-duration-base) var(--ds-motion-ease-standard), box-shadow var(--ds-motion-duration-base) var(--ds-motion-ease-standard);
15
+ }
16
+ .ds-textarea::placeholder {
17
+ color: var(--ds-color-font-1);
18
+ opacity: 1;
19
+ }
20
+ .ds-textarea:focus-visible {
21
+ outline: none;
22
+ border-color: var(--ds-color-focus-ring);
23
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--ds-color-focus-ring) 30%, transparent);
24
+ }
25
+ .ds-textarea--invalid {
26
+ border-color: var(--ds-color-danger);
27
+ }
28
+ .ds-textarea--invalid:focus-visible {
29
+ border-color: var(--ds-color-danger);
30
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--ds-color-danger) 30%, transparent);
31
+ }
32
+ .ds-textarea:disabled {
33
+ opacity: 0.5;
34
+ cursor: not-allowed;
35
+ }
36
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/Textarea/Textarea.css"],"sourcesContent":[".ds-textarea {\n display: block;\n width: 100%;\n padding: var(--ds-space-3) var(--ds-space-4);\n font-family: var(--ds-font-body);\n font-size: var(--ds-font-size-200);\n line-height: var(--ds-line-height-normal);\n color: var(--ds-color-font-0);\n background-color: var(--ds-color-field-bg);\n border: 1px solid var(--ds-color-field-border);\n border-radius: var(--ds-radius-md);\n resize: vertical;\n transition:\n border-color var(--ds-motion-duration-base) var(--ds-motion-ease-standard),\n box-shadow var(--ds-motion-duration-base) var(--ds-motion-ease-standard);\n}\n\n.ds-textarea::placeholder {\n color: var(--ds-color-font-1);\n opacity: 1;\n}\n\n.ds-textarea:focus-visible {\n outline: none;\n border-color: var(--ds-color-focus-ring);\n box-shadow: 0 0 0 3px\n color-mix(in srgb, var(--ds-color-focus-ring) 30%, transparent);\n}\n\n.ds-textarea--invalid {\n border-color: var(--ds-color-danger);\n}\n\n.ds-textarea--invalid:focus-visible {\n border-color: var(--ds-color-danger);\n box-shadow: 0 0 0 3px\n color-mix(in srgb, var(--ds-color-danger) 30%, transparent);\n}\n\n.ds-textarea:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n"],"mappings":";AAAA,CAAC;AACC,WAAS;AACT,SAAO;AACP,WAAS,IAAI,cAAc,IAAI;AAC/B,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,oBAAkB,IAAI;AACtB,UAAQ,IAAI,MAAM,IAAI;AACtB,iBAAe,IAAI;AACnB,UAAQ;AACR,cACE,aAAa,IAAI,2BAA2B,IAAI,0BAA0B,EAC1E,WAAW,IAAI,2BAA2B,IAAI;AAClD;AAEA,CAjBC,WAiBW;AACV,SAAO,IAAI;AACX,WAAS;AACX;AAEA,CAtBC,WAsBW;AACV,WAAS;AACT,gBAAc,IAAI;AAClB,cAAY,EAAE,EAAE,EAAE,IAChB,UAAU,GAAG,IAAI,EAAE,IAAI,uBAAuB,GAAG,EAAE;AACvD;AAEA,CAAC;AACC,gBAAc,IAAI;AACpB;AAEA,CAJC,oBAIoB;AACnB,gBAAc,IAAI;AAClB,cAAY,EAAE,EAAE,EAAE,IAChB,UAAU,GAAG,IAAI,EAAE,IAAI,mBAAmB,GAAG,EAAE;AACnD;AAEA,CAvCC,WAuCW;AACV,WAAS;AACT,UAAQ;AACV;","names":[]}
@@ -0,0 +1,2 @@
1
+ export { Textarea } from "./Textarea.jsx";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Textarea/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import {
2
+ Textarea
3
+ } from "../../chunk-I3NS5MAC.js";
4
+ export {
5
+ Textarea
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,4 @@
1
+ export function ThemeSwitcher({ className }: {
2
+ className?: string | undefined;
3
+ }): import("react").JSX.Element;
4
+ //# sourceMappingURL=ThemeSwitcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeSwitcher.d.ts","sourceRoot":"","sources":["../../../src/components/ThemeSwitcher/ThemeSwitcher.jsx"],"names":[],"mappings":"AAGA;;gCAsBC"}
@@ -0,0 +1,2 @@
1
+ export { ThemeSwitcher } from "./ThemeSwitcher.jsx";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ThemeSwitcher/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ export function Heading({ level, size, decorative, className, children, ...rest }: {
2
+ [x: string]: any;
3
+ level?: number | undefined;
4
+ size: any;
5
+ decorative?: boolean | undefined;
6
+ className?: string | undefined;
7
+ children: any;
8
+ }): import("react").JSX.Element;
9
+ //# sourceMappingURL=Heading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Heading.d.ts","sourceRoot":"","sources":["../../../src/components/Typography/Heading.jsx"],"names":[],"mappings":"AAIA;;;;;;;gCAwBC"}
@@ -0,0 +1,9 @@
1
+ export function Text({ as: Component, size, tone, className, children, ...rest }: {
2
+ [x: string]: any;
3
+ as?: string | undefined;
4
+ size?: string | undefined;
5
+ tone?: string | undefined;
6
+ className?: string | undefined;
7
+ children: any;
8
+ }): import("react").JSX.Element;
9
+ //# sourceMappingURL=Text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../src/components/Typography/Text.jsx"],"names":[],"mappings":"AAEA;;;;;;;gCAiBC"}
@@ -0,0 +1,3 @@
1
+ export { Heading } from "./Heading.jsx";
2
+ export { Text } from "./Text.jsx";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Typography/index.js"],"names":[],"mappings":""}
@@ -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"}