@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.
- package/dist/chunk-2KHDM6UP.js +58 -0
- package/dist/chunk-2KHDM6UP.js.map +1 -0
- package/dist/chunk-45346SXP.js +65 -0
- package/dist/chunk-45346SXP.js.map +1 -0
- package/dist/chunk-BAISLPWP.js +14 -0
- package/dist/chunk-BAISLPWP.js.map +1 -0
- package/dist/chunk-CT2TMR44.js +1 -0
- package/dist/chunk-CT2TMR44.js.map +1 -0
- package/dist/chunk-DD5VKG3L.js +22 -0
- package/dist/chunk-DD5VKG3L.js.map +1 -0
- package/dist/chunk-HLP2MPQ6.js +110 -0
- package/dist/chunk-HLP2MPQ6.js.map +1 -0
- package/dist/chunk-HPOL5NKF.js +22 -0
- package/dist/chunk-HPOL5NKF.js.map +1 -0
- package/dist/chunk-I3NS5MAC.js +23 -0
- package/dist/chunk-I3NS5MAC.js.map +1 -0
- package/dist/chunk-LPEUQ2DE.js +48 -0
- package/dist/chunk-LPEUQ2DE.js.map +1 -0
- package/dist/chunk-LY5MPGW2.js +129 -0
- package/dist/chunk-LY5MPGW2.js.map +1 -0
- package/dist/chunk-NJ2SBQYA.js +1208 -0
- package/dist/chunk-NJ2SBQYA.js.map +1 -0
- package/dist/chunk-R42A3ZCY.js +16 -0
- package/dist/chunk-R42A3ZCY.js.map +1 -0
- package/dist/chunk-UZW4E2UH.js +206 -0
- package/dist/chunk-UZW4E2UH.js.map +1 -0
- package/dist/chunk-VRGTUKSJ.js +20 -0
- package/dist/chunk-VRGTUKSJ.js.map +1 -0
- package/dist/chunk-YLUQANAI.js +1023 -0
- package/dist/chunk-YLUQANAI.js.map +1 -0
- package/dist/chunk-ZVUDPTFZ.js +76 -0
- package/dist/chunk-ZVUDPTFZ.js.map +1 -0
- package/dist/components/Accordion/Accordion.d.ts +29 -0
- package/dist/components/Accordion/Accordion.d.ts.map +1 -0
- package/dist/components/Accordion/index.css +58 -0
- package/dist/components/Accordion/index.css.map +1 -0
- package/dist/components/Accordion/index.d.ts +2 -0
- package/dist/components/Accordion/index.d.ts.map +1 -0
- package/dist/components/Accordion/index.js +7 -0
- package/dist/components/Accordion/index.js.map +1 -0
- package/dist/components/Button/Button.d.ts +8 -0
- package/dist/components/Button/Button.d.ts.map +1 -0
- package/dist/components/Button/index.d.ts +2 -0
- package/dist/components/Button/index.d.ts.map +1 -0
- package/dist/components/Card/Card.d.ts +6 -0
- package/dist/components/Card/Card.d.ts.map +1 -0
- package/dist/components/Card/index.d.ts +2 -0
- package/dist/components/Card/index.d.ts.map +1 -0
- package/dist/components/Checkbox/Checkbox.d.ts +15 -0
- package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/Checkbox/index.css +57 -0
- package/dist/components/Checkbox/index.css.map +1 -0
- package/dist/components/Checkbox/index.d.ts +2 -0
- package/dist/components/Checkbox/index.d.ts.map +1 -0
- package/dist/components/Checkbox/index.js +7 -0
- package/dist/components/Checkbox/index.js.map +1 -0
- package/dist/components/DialNav/DialNav.d.ts +48 -0
- package/dist/components/DialNav/DialNav.d.ts.map +1 -0
- package/dist/components/DialNav/geometry.d.ts +159 -0
- package/dist/components/DialNav/geometry.d.ts.map +1 -0
- package/dist/components/DialNav/index.css +321 -0
- package/dist/components/DialNav/index.css.map +1 -0
- package/dist/components/DialNav/index.d.ts +2 -0
- package/dist/components/DialNav/index.d.ts.map +1 -0
- package/dist/components/DialNav/index.js +8 -0
- package/dist/components/DialNav/index.js.map +1 -0
- package/dist/components/DialNav/variants/Concentric.d.ts +10 -0
- package/dist/components/DialNav/variants/Concentric.d.ts.map +1 -0
- package/dist/components/DialNav/variants/RatchetFan.d.ts +12 -0
- package/dist/components/DialNav/variants/RatchetFan.d.ts.map +1 -0
- package/dist/components/DialNav/variants/Volvelle.d.ts +12 -0
- package/dist/components/DialNav/variants/Volvelle.d.ts.map +1 -0
- package/dist/components/Footer/Footer.d.ts +15 -0
- package/dist/components/Footer/Footer.d.ts.map +1 -0
- package/dist/components/Footer/index.d.ts +2 -0
- package/dist/components/Footer/index.d.ts.map +1 -0
- package/dist/components/FormField/FormField.d.ts +27 -0
- package/dist/components/FormField/FormField.d.ts.map +1 -0
- package/dist/components/FormField/index.css +31 -0
- package/dist/components/FormField/index.css.map +1 -0
- package/dist/components/FormField/index.d.ts +2 -0
- package/dist/components/FormField/index.d.ts.map +1 -0
- package/dist/components/FormField/index.js +8 -0
- package/dist/components/FormField/index.js.map +1 -0
- package/dist/components/Header/Header.d.ts +15 -0
- package/dist/components/Header/Header.d.ts.map +1 -0
- package/dist/components/Header/index.d.ts +2 -0
- package/dist/components/Header/index.d.ts.map +1 -0
- package/dist/components/Input/Input.d.ts +16 -0
- package/dist/components/Input/Input.d.ts.map +1 -0
- package/dist/components/Input/index.css +45 -0
- package/dist/components/Input/index.css.map +1 -0
- package/dist/components/Input/index.d.ts +2 -0
- package/dist/components/Input/index.d.ts.map +1 -0
- package/dist/components/Input/index.js +7 -0
- package/dist/components/Input/index.js.map +1 -0
- package/dist/components/Label/Label.d.ts +15 -0
- package/dist/components/Label/Label.d.ts.map +1 -0
- package/dist/components/Label/index.css +14 -0
- package/dist/components/Label/index.css.map +1 -0
- package/dist/components/Label/index.d.ts +2 -0
- package/dist/components/Label/index.d.ts.map +1 -0
- package/dist/components/Label/index.js +8 -0
- package/dist/components/Label/index.js.map +1 -0
- package/dist/components/Layout/Container.d.ts +6 -0
- package/dist/components/Layout/Container.d.ts.map +1 -0
- package/dist/components/Layout/Grid.d.ts +9 -0
- package/dist/components/Layout/Grid.d.ts.map +1 -0
- package/dist/components/Layout/Stack.d.ts +10 -0
- package/dist/components/Layout/Stack.d.ts.map +1 -0
- package/dist/components/Layout/index.d.ts +4 -0
- package/dist/components/Layout/index.d.ts.map +1 -0
- package/dist/components/Menu/Menu.d.ts +30 -0
- package/dist/components/Menu/Menu.d.ts.map +1 -0
- package/dist/components/Menu/index.css +77 -0
- package/dist/components/Menu/index.css.map +1 -0
- package/dist/components/Menu/index.d.ts +2 -0
- package/dist/components/Menu/index.d.ts.map +1 -0
- package/dist/components/Menu/index.js +7 -0
- package/dist/components/Menu/index.js.map +1 -0
- package/dist/components/Modal/Modal.d.ts +24 -0
- package/dist/components/Modal/Modal.d.ts.map +1 -0
- package/dist/components/Modal/index.css +101 -0
- package/dist/components/Modal/index.css.map +1 -0
- package/dist/components/Modal/index.d.ts +2 -0
- package/dist/components/Modal/index.d.ts.map +1 -0
- package/dist/components/Modal/index.js +7 -0
- package/dist/components/Modal/index.js.map +1 -0
- package/dist/components/Nav/Nav.d.ts +10 -0
- package/dist/components/Nav/Nav.d.ts.map +1 -0
- package/dist/components/Nav/index.d.ts +2 -0
- package/dist/components/Nav/index.d.ts.map +1 -0
- package/dist/components/Radio/Radio.d.ts +17 -0
- package/dist/components/Radio/Radio.d.ts.map +1 -0
- package/dist/components/Radio/RadioGroup.d.ts +25 -0
- package/dist/components/Radio/RadioGroup.d.ts.map +1 -0
- package/dist/components/Radio/RadioGroupContext.d.ts +7 -0
- package/dist/components/Radio/RadioGroupContext.d.ts.map +1 -0
- package/dist/components/Radio/index.css +57 -0
- package/dist/components/Radio/index.css.map +1 -0
- package/dist/components/Radio/index.d.ts +3 -0
- package/dist/components/Radio/index.d.ts.map +1 -0
- package/dist/components/Radio/index.js +9 -0
- package/dist/components/Radio/index.js.map +1 -0
- package/dist/components/Select/Select.d.ts +18 -0
- package/dist/components/Select/Select.d.ts.map +1 -0
- package/dist/components/Select/index.css +52 -0
- package/dist/components/Select/index.css.map +1 -0
- package/dist/components/Select/index.d.ts +2 -0
- package/dist/components/Select/index.d.ts.map +1 -0
- package/dist/components/Select/index.js +7 -0
- package/dist/components/Select/index.js.map +1 -0
- package/dist/components/SlideRuleNav/SlideRuleNav.d.ts +54 -0
- package/dist/components/SlideRuleNav/SlideRuleNav.d.ts.map +1 -0
- package/dist/components/SlideRuleNav/geometry.d.ts +168 -0
- package/dist/components/SlideRuleNav/geometry.d.ts.map +1 -0
- package/dist/components/SlideRuleNav/index.css +196 -0
- package/dist/components/SlideRuleNav/index.css.map +1 -0
- package/dist/components/SlideRuleNav/index.d.ts +2 -0
- package/dist/components/SlideRuleNav/index.d.ts.map +1 -0
- package/dist/components/SlideRuleNav/index.js +8 -0
- package/dist/components/SlideRuleNav/index.js.map +1 -0
- package/dist/components/SlideRuleNav/variants/CursorRule.d.ts +11 -0
- package/dist/components/SlideRuleNav/variants/CursorRule.d.ts.map +1 -0
- package/dist/components/SlideRuleNav/variants/SlideStator.d.ts +13 -0
- package/dist/components/SlideRuleNav/variants/SlideStator.d.ts.map +1 -0
- package/dist/components/SlideRuleNav/variants/VernierCarriage.d.ts +13 -0
- package/dist/components/SlideRuleNav/variants/VernierCarriage.d.ts.map +1 -0
- package/dist/components/Switch/Switch.d.ts +15 -0
- package/dist/components/Switch/Switch.d.ts.map +1 -0
- package/dist/components/Switch/index.css +49 -0
- package/dist/components/Switch/index.css.map +1 -0
- package/dist/components/Switch/index.d.ts +2 -0
- package/dist/components/Switch/index.d.ts.map +1 -0
- package/dist/components/Switch/index.js +7 -0
- package/dist/components/Switch/index.js.map +1 -0
- package/dist/components/Tabs/Tabs.d.ts +34 -0
- package/dist/components/Tabs/Tabs.d.ts.map +1 -0
- package/dist/components/Tabs/index.css +54 -0
- package/dist/components/Tabs/index.css.map +1 -0
- package/dist/components/Tabs/index.d.ts +2 -0
- package/dist/components/Tabs/index.d.ts.map +1 -0
- package/dist/components/Tabs/index.js +7 -0
- package/dist/components/Tabs/index.js.map +1 -0
- package/dist/components/Textarea/Textarea.d.ts +16 -0
- package/dist/components/Textarea/Textarea.d.ts.map +1 -0
- package/dist/components/Textarea/index.css +36 -0
- package/dist/components/Textarea/index.css.map +1 -0
- package/dist/components/Textarea/index.d.ts +2 -0
- package/dist/components/Textarea/index.d.ts.map +1 -0
- package/dist/components/Textarea/index.js +7 -0
- package/dist/components/Textarea/index.js.map +1 -0
- package/dist/components/ThemeSwitcher/ThemeSwitcher.d.ts +4 -0
- package/dist/components/ThemeSwitcher/ThemeSwitcher.d.ts.map +1 -0
- package/dist/components/ThemeSwitcher/index.d.ts +2 -0
- package/dist/components/ThemeSwitcher/index.d.ts.map +1 -0
- package/dist/components/Typography/Heading.d.ts +9 -0
- package/dist/components/Typography/Heading.d.ts.map +1 -0
- package/dist/components/Typography/Text.d.ts +9 -0
- package/dist/components/Typography/Text.d.ts.map +1 -0
- package/dist/components/Typography/index.d.ts +3 -0
- package/dist/components/Typography/index.d.ts.map +1 -0
- package/dist/components/_shared/useDetentTravel.d.ts +87 -0
- package/dist/components/_shared/useDetentTravel.d.ts.map +1 -0
- package/dist/components/_shared/usePointerDrag.d.ts +24 -0
- package/dist/components/_shared/usePointerDrag.d.ts.map +1 -0
- package/dist/components/_shared/useReducedMotion.d.ts +7 -0
- package/dist/components/_shared/useReducedMotion.d.ts.map +1 -0
- package/dist/components/_shared/validateStationCount.d.ts +13 -0
- package/dist/components/_shared/validateStationCount.d.ts.map +1 -0
- package/dist/index.css +1175 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +70 -10
- package/dist/index.js.map +1 -1
- package/dist/theme/ThemeContext.d.ts +2 -0
- package/dist/theme/ThemeContext.d.ts.map +1 -0
- package/dist/theme/ThemeProvider.d.ts +12 -0
- package/dist/theme/ThemeProvider.d.ts.map +1 -0
- package/dist/theme/themeConstants.d.ts +8 -0
- package/dist/theme/themeConstants.d.ts.map +1 -0
- package/dist/theme/useTheme.d.ts +2 -0
- package/dist/theme/useTheme.d.ts.map +1 -0
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Switch/index.js"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/index.js"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Textarea/index.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeSwitcher.d.ts","sourceRoot":"","sources":["../../../src/components/ThemeSwitcher/ThemeSwitcher.jsx"],"names":[],"mappings":"AAGA;;gCAsBC"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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"}
|