@hintoric/ui 0.8.0 → 0.9.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/README.md +12 -0
- package/dist/components/AccordionDetails/AccordionDetails.d.ts.map +1 -1
- package/dist/components/AccordionSummary/AccordionSummary.d.ts.map +1 -1
- package/dist/components/AccountMenu/AccountMenu.d.ts +20 -0
- package/dist/components/AccountMenu/AccountMenu.d.ts.map +1 -0
- package/dist/components/AccountMenu/index.d.ts +3 -0
- package/dist/components/AccountMenu/index.d.ts.map +1 -0
- package/dist/components/AccountMenu/types.d.ts +64 -0
- package/dist/components/AccountMenu/types.d.ts.map +1 -0
- package/dist/components/Button/ButtonBody.d.ts.map +1 -1
- package/dist/components/CircularProgress/CircularProgress.d.ts.map +1 -1
- package/dist/components/ColorSchemeMenuItems/ColorSchemeMenuItems.d.ts +1 -1
- package/dist/components/ColorSchemeMenuItems/ColorSchemeMenuItems.d.ts.map +1 -1
- package/dist/components/ColorSchemeMenuItems/types.d.ts +10 -0
- package/dist/components/ColorSchemeMenuItems/types.d.ts.map +1 -1
- package/dist/components/DataGrid/DataGridHeaderCell.d.ts.map +1 -1
- package/dist/components/DataGrid/dataGridVariants.d.ts +1 -1
- package/dist/components/DataGrid/dataGridVariants.d.ts.map +1 -1
- package/dist/components/Divider/Divider.d.ts.map +1 -1
- package/dist/components/Drawer/Drawer.d.ts.map +1 -1
- package/dist/components/LinearProgress/LinearProgress.d.ts.map +1 -1
- package/dist/components/LocaleSwitcher/LocaleSwitcher.d.ts.map +1 -1
- package/dist/components/MapImage/MapImageFrame.d.ts.map +1 -1
- package/dist/components/MenuItem/MenuItem.d.ts.map +1 -1
- package/dist/components/MenuItem/types.d.ts +8 -0
- package/dist/components/MenuItem/types.d.ts.map +1 -1
- package/dist/components/Modal/Modal.d.ts.map +1 -1
- package/dist/components/ModalDialog/ModalDialog.d.ts.map +1 -1
- package/dist/components/Radio/Radio.d.ts.map +1 -1
- package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/components/Switch/Switch.d.ts.map +1 -1
- package/dist/components/Tab/Tab.d.ts +1 -1
- package/dist/components/Tab/Tab.d.ts.map +1 -1
- package/dist/components/Tab/TabIndicatorContext.d.ts +21 -0
- package/dist/components/Tab/TabIndicatorContext.d.ts.map +1 -0
- package/dist/components/Tab/types.d.ts +8 -0
- package/dist/components/Tab/types.d.ts.map +1 -1
- package/dist/components/TabList/TabList.d.ts.map +1 -1
- package/dist/components/TabNav/TabNav.d.ts +23 -0
- package/dist/components/TabNav/TabNav.d.ts.map +1 -0
- package/dist/components/TabNav/TabNavContext.d.ts +11 -0
- package/dist/components/TabNav/TabNavContext.d.ts.map +1 -0
- package/dist/components/TabNav/index.d.ts +3 -0
- package/dist/components/TabNav/index.d.ts.map +1 -0
- package/dist/components/TabNav/types.d.ts +17 -0
- package/dist/components/TabNav/types.d.ts.map +1 -0
- package/dist/components/TabPanel/TabPanel.d.ts.map +1 -1
- package/dist/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5904 -5492
- package/dist/index.js.map +1 -1
- package/dist/internal/localeFlag.d.ts +7 -0
- package/dist/internal/localeFlag.d.ts.map +1 -0
- package/dist/internal/svg-icons/ArrowBackIcon.d.ts +3 -0
- package/dist/internal/svg-icons/ArrowBackIcon.d.ts.map +1 -0
- package/dist/internal/svg-icons/ChevronRightIcon.d.ts +3 -0
- package/dist/internal/svg-icons/ChevronRightIcon.d.ts.map +1 -0
- package/dist/internal/svg-icons/LogoutIcon.d.ts +3 -0
- package/dist/internal/svg-icons/LogoutIcon.d.ts.map +1 -0
- package/dist/internal/svg-icons/MenuIcon.d.ts +3 -0
- package/dist/internal/svg-icons/MenuIcon.d.ts.map +1 -0
- package/dist/internal/svg-icons/TranslateIcon.d.ts +3 -0
- package/dist/internal/svg-icons/TranslateIcon.d.ts.map +1 -0
- package/dist/style.css +1 -1
- package/dist/tailwind.css +463 -0
- package/dist/theme/ReducedMotionProvider.d.ts +9 -0
- package/dist/theme/ReducedMotionProvider.d.ts.map +1 -0
- package/dist/utils/usePrefersReducedMotion.d.ts +1 -1
- package/dist/utils/usePrefersReducedMotion.d.ts.map +1 -1
- package/package.json +11 -2
|
@@ -0,0 +1,463 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @hintoric/ui as Tailwind CSS v4 input. Use it instead of `@hintoric/ui/styles.css`
|
|
3
|
+
* when your app runs its own Tailwind:
|
|
4
|
+
*
|
|
5
|
+
* @import "tailwindcss";
|
|
6
|
+
* @import "@hintoric/ui/tailwind.css";
|
|
7
|
+
*/
|
|
8
|
+
/*
|
|
9
|
+
* Everything the library's stylesheet needs on top of Tailwind itself, minus
|
|
10
|
+
* the content scan. Two entry points share it: `index.css` (our own build,
|
|
11
|
+
* which scans `src/`) and the published `dist/tailwind.css` (a consumer's
|
|
12
|
+
* Tailwind build, which scans `dist/index.js` instead — see
|
|
13
|
+
* scripts/tailwindEntry.ts). Keep anything path-relative out of this file:
|
|
14
|
+
* it is inlined into dist, where `src/` paths do not exist.
|
|
15
|
+
*/
|
|
16
|
+
@theme {
|
|
17
|
+
/* raw palette stops (from Joy UI's colors.ts: blue/grey/yellow/red/green) */
|
|
18
|
+
--color-neutral-50: #FBFCFE;
|
|
19
|
+
--color-neutral-100: #F0F4F8;
|
|
20
|
+
--color-neutral-200: #DDE7EE;
|
|
21
|
+
--color-neutral-300: #CDD7E1;
|
|
22
|
+
--color-neutral-400: #9FA6AD;
|
|
23
|
+
--color-neutral-500: #636B74;
|
|
24
|
+
--color-neutral-600: #555E68;
|
|
25
|
+
--color-neutral-700: #32383E;
|
|
26
|
+
--color-neutral-800: #171A1C;
|
|
27
|
+
--color-neutral-900: #0B0D0E;
|
|
28
|
+
--color-primary-50: #EDF5FD;
|
|
29
|
+
--color-primary-100: #E3EFFB;
|
|
30
|
+
--color-primary-200: #C7DFF7;
|
|
31
|
+
--color-primary-300: #97C3F0;
|
|
32
|
+
--color-primary-400: #4393E4;
|
|
33
|
+
--color-primary-500: #0B6BCB;
|
|
34
|
+
--color-primary-600: #185EA5;
|
|
35
|
+
--color-primary-700: #12467B;
|
|
36
|
+
--color-primary-800: #0A2744;
|
|
37
|
+
--color-primary-900: #051423;
|
|
38
|
+
--color-warning-50: #FEFAF6;
|
|
39
|
+
--color-warning-100: #FDF0E1;
|
|
40
|
+
--color-warning-200: #FCE1C2;
|
|
41
|
+
--color-warning-300: #F3C896;
|
|
42
|
+
--color-warning-400: #EA9A3E;
|
|
43
|
+
--color-warning-500: #9A5B13;
|
|
44
|
+
--color-warning-600: #72430D;
|
|
45
|
+
--color-warning-700: #492B08;
|
|
46
|
+
--color-warning-800: #2E1B05;
|
|
47
|
+
--color-warning-900: #1D1002;
|
|
48
|
+
--color-danger-50: #FEF6F6;
|
|
49
|
+
--color-danger-100: #FCE4E4;
|
|
50
|
+
--color-danger-200: #F7C5C5;
|
|
51
|
+
--color-danger-300: #F09898;
|
|
52
|
+
--color-danger-400: #E47474;
|
|
53
|
+
--color-danger-500: #C41C1C;
|
|
54
|
+
--color-danger-600: #A51818;
|
|
55
|
+
--color-danger-700: #7D1212;
|
|
56
|
+
--color-danger-800: #430A0A;
|
|
57
|
+
--color-danger-900: #240505;
|
|
58
|
+
--color-success-50: #F6FEF6;
|
|
59
|
+
--color-success-100: #E3FBE3;
|
|
60
|
+
--color-success-200: #C7F7C7;
|
|
61
|
+
--color-success-300: #A1E8A1;
|
|
62
|
+
--color-success-400: #51BC51;
|
|
63
|
+
--color-success-500: #1F7A1F;
|
|
64
|
+
--color-success-600: #136C13;
|
|
65
|
+
--color-success-700: #0A470A;
|
|
66
|
+
--color-success-800: #042F04;
|
|
67
|
+
--color-success-900: #021D02;
|
|
68
|
+
--color-common-white: #FFFFFF;
|
|
69
|
+
--color-common-black: #000000;
|
|
70
|
+
|
|
71
|
+
/* per-variant semantic tokens (light mode default) */
|
|
72
|
+
--color-primary-plain-color: var(--color-primary-500);
|
|
73
|
+
--color-primary-plain-hover-bg: var(--color-primary-100);
|
|
74
|
+
--color-primary-plain-active-bg: var(--color-primary-200);
|
|
75
|
+
--color-primary-plain-disabled-color: var(--color-neutral-400);
|
|
76
|
+
--color-primary-outlined-color: var(--color-primary-500);
|
|
77
|
+
--color-primary-outlined-border: var(--color-primary-300);
|
|
78
|
+
--color-primary-outlined-hover-bg: var(--color-primary-100);
|
|
79
|
+
--color-primary-outlined-active-bg: var(--color-primary-200);
|
|
80
|
+
--color-primary-outlined-disabled-color: var(--color-neutral-400);
|
|
81
|
+
--color-primary-outlined-disabled-border: var(--color-neutral-200);
|
|
82
|
+
--color-primary-soft-color: var(--color-primary-700);
|
|
83
|
+
--color-primary-soft-bg: var(--color-primary-100);
|
|
84
|
+
--color-primary-soft-hover-bg: var(--color-primary-200);
|
|
85
|
+
--color-primary-soft-active-color: var(--color-primary-800);
|
|
86
|
+
--color-primary-soft-active-bg: var(--color-primary-300);
|
|
87
|
+
--color-primary-soft-disabled-color: var(--color-neutral-400);
|
|
88
|
+
--color-primary-soft-disabled-bg: var(--color-neutral-50);
|
|
89
|
+
--color-primary-solid-color: var(--color-common-white);
|
|
90
|
+
--color-primary-solid-bg: var(--color-primary-500);
|
|
91
|
+
--color-primary-solid-hover-bg: var(--color-primary-600);
|
|
92
|
+
--color-primary-solid-active-bg: var(--color-primary-700);
|
|
93
|
+
--color-primary-solid-disabled-color: var(--color-neutral-400);
|
|
94
|
+
--color-primary-solid-disabled-bg: var(--color-neutral-100);
|
|
95
|
+
/* Joy UI overrides plainColor/outlinedColor to neutral-700 specifically for
|
|
96
|
+
the neutral color (light mode) — every other color keeps the generic
|
|
97
|
+
-500 from createLightModeVariantVariables. Confirmed against @mui/joy's
|
|
98
|
+
extendTheme.ts and caught by Button.visual.test.tsx. */
|
|
99
|
+
--color-neutral-plain-color: var(--color-neutral-700);
|
|
100
|
+
--color-neutral-plain-hover-bg: var(--color-neutral-100);
|
|
101
|
+
/* Joy's extendTheme.js gives only neutral a plainHoverColor (900 light, 300
|
|
102
|
+
dark); found 2026-10-02 by ToggleButtonGroup's hover test. */
|
|
103
|
+
--color-neutral-plain-hover-color: var(--color-neutral-900);
|
|
104
|
+
--color-neutral-plain-active-bg: var(--color-neutral-200);
|
|
105
|
+
--color-neutral-plain-disabled-color: var(--color-neutral-400);
|
|
106
|
+
--color-neutral-outlined-color: var(--color-neutral-700);
|
|
107
|
+
--color-neutral-outlined-border: var(--color-neutral-300);
|
|
108
|
+
--color-neutral-outlined-hover-bg: var(--color-neutral-100);
|
|
109
|
+
--color-neutral-outlined-active-bg: var(--color-neutral-200);
|
|
110
|
+
--color-neutral-outlined-disabled-color: var(--color-neutral-400);
|
|
111
|
+
--color-neutral-outlined-disabled-border: var(--color-neutral-200);
|
|
112
|
+
--color-neutral-soft-color: var(--color-neutral-700);
|
|
113
|
+
--color-neutral-soft-bg: var(--color-neutral-100);
|
|
114
|
+
--color-neutral-soft-hover-bg: var(--color-neutral-200);
|
|
115
|
+
--color-neutral-soft-active-color: var(--color-neutral-800);
|
|
116
|
+
--color-neutral-soft-active-bg: var(--color-neutral-300);
|
|
117
|
+
--color-neutral-soft-disabled-color: var(--color-neutral-400);
|
|
118
|
+
--color-neutral-soft-disabled-bg: var(--color-neutral-50);
|
|
119
|
+
--color-neutral-solid-color: var(--color-common-white);
|
|
120
|
+
--color-neutral-solid-bg: var(--color-neutral-500);
|
|
121
|
+
--color-neutral-solid-hover-bg: var(--color-neutral-600);
|
|
122
|
+
--color-neutral-solid-active-bg: var(--color-neutral-700);
|
|
123
|
+
--color-neutral-solid-disabled-color: var(--color-neutral-400);
|
|
124
|
+
--color-neutral-solid-disabled-bg: var(--color-neutral-100);
|
|
125
|
+
--color-danger-plain-color: var(--color-danger-500);
|
|
126
|
+
--color-danger-plain-hover-bg: var(--color-danger-100);
|
|
127
|
+
--color-danger-plain-active-bg: var(--color-danger-200);
|
|
128
|
+
--color-danger-plain-disabled-color: var(--color-neutral-400);
|
|
129
|
+
--color-danger-outlined-color: var(--color-danger-500);
|
|
130
|
+
--color-danger-outlined-border: var(--color-danger-300);
|
|
131
|
+
--color-danger-outlined-hover-bg: var(--color-danger-100);
|
|
132
|
+
--color-danger-outlined-active-bg: var(--color-danger-200);
|
|
133
|
+
--color-danger-outlined-disabled-color: var(--color-neutral-400);
|
|
134
|
+
--color-danger-outlined-disabled-border: var(--color-neutral-200);
|
|
135
|
+
--color-danger-soft-color: var(--color-danger-700);
|
|
136
|
+
--color-danger-soft-bg: var(--color-danger-100);
|
|
137
|
+
--color-danger-soft-hover-bg: var(--color-danger-200);
|
|
138
|
+
--color-danger-soft-active-color: var(--color-danger-800);
|
|
139
|
+
--color-danger-soft-active-bg: var(--color-danger-300);
|
|
140
|
+
--color-danger-soft-disabled-color: var(--color-neutral-400);
|
|
141
|
+
--color-danger-soft-disabled-bg: var(--color-neutral-50);
|
|
142
|
+
--color-danger-solid-color: var(--color-common-white);
|
|
143
|
+
--color-danger-solid-bg: var(--color-danger-500);
|
|
144
|
+
--color-danger-solid-hover-bg: var(--color-danger-600);
|
|
145
|
+
--color-danger-solid-active-bg: var(--color-danger-700);
|
|
146
|
+
--color-danger-solid-disabled-color: var(--color-neutral-400);
|
|
147
|
+
--color-danger-solid-disabled-bg: var(--color-neutral-100);
|
|
148
|
+
--color-success-plain-color: var(--color-success-500);
|
|
149
|
+
--color-success-plain-hover-bg: var(--color-success-100);
|
|
150
|
+
--color-success-plain-active-bg: var(--color-success-200);
|
|
151
|
+
--color-success-plain-disabled-color: var(--color-neutral-400);
|
|
152
|
+
--color-success-outlined-color: var(--color-success-500);
|
|
153
|
+
--color-success-outlined-border: var(--color-success-300);
|
|
154
|
+
--color-success-outlined-hover-bg: var(--color-success-100);
|
|
155
|
+
--color-success-outlined-active-bg: var(--color-success-200);
|
|
156
|
+
--color-success-outlined-disabled-color: var(--color-neutral-400);
|
|
157
|
+
--color-success-outlined-disabled-border: var(--color-neutral-200);
|
|
158
|
+
--color-success-soft-color: var(--color-success-700);
|
|
159
|
+
--color-success-soft-bg: var(--color-success-100);
|
|
160
|
+
--color-success-soft-hover-bg: var(--color-success-200);
|
|
161
|
+
--color-success-soft-active-color: var(--color-success-800);
|
|
162
|
+
--color-success-soft-active-bg: var(--color-success-300);
|
|
163
|
+
--color-success-soft-disabled-color: var(--color-neutral-400);
|
|
164
|
+
--color-success-soft-disabled-bg: var(--color-neutral-50);
|
|
165
|
+
--color-success-solid-color: var(--color-common-white);
|
|
166
|
+
--color-success-solid-bg: var(--color-success-500);
|
|
167
|
+
--color-success-solid-hover-bg: var(--color-success-600);
|
|
168
|
+
--color-success-solid-active-bg: var(--color-success-700);
|
|
169
|
+
--color-success-solid-disabled-color: var(--color-neutral-400);
|
|
170
|
+
--color-success-solid-disabled-bg: var(--color-neutral-100);
|
|
171
|
+
--color-warning-plain-color: var(--color-warning-500);
|
|
172
|
+
--color-warning-plain-hover-bg: var(--color-warning-100);
|
|
173
|
+
--color-warning-plain-active-bg: var(--color-warning-200);
|
|
174
|
+
--color-warning-plain-disabled-color: var(--color-neutral-400);
|
|
175
|
+
--color-warning-outlined-color: var(--color-warning-500);
|
|
176
|
+
--color-warning-outlined-border: var(--color-warning-300);
|
|
177
|
+
--color-warning-outlined-hover-bg: var(--color-warning-100);
|
|
178
|
+
--color-warning-outlined-active-bg: var(--color-warning-200);
|
|
179
|
+
--color-warning-outlined-disabled-color: var(--color-neutral-400);
|
|
180
|
+
--color-warning-outlined-disabled-border: var(--color-neutral-200);
|
|
181
|
+
--color-warning-soft-color: var(--color-warning-700);
|
|
182
|
+
--color-warning-soft-bg: var(--color-warning-100);
|
|
183
|
+
--color-warning-soft-hover-bg: var(--color-warning-200);
|
|
184
|
+
--color-warning-soft-active-color: var(--color-warning-800);
|
|
185
|
+
--color-warning-soft-active-bg: var(--color-warning-300);
|
|
186
|
+
--color-warning-soft-disabled-color: var(--color-neutral-400);
|
|
187
|
+
--color-warning-soft-disabled-bg: var(--color-neutral-50);
|
|
188
|
+
--color-warning-solid-color: var(--color-common-white);
|
|
189
|
+
--color-warning-solid-bg: var(--color-warning-500);
|
|
190
|
+
--color-warning-solid-hover-bg: var(--color-warning-600);
|
|
191
|
+
--color-warning-solid-active-bg: var(--color-warning-700);
|
|
192
|
+
--color-warning-solid-disabled-color: var(--color-neutral-400);
|
|
193
|
+
--color-warning-solid-disabled-bg: var(--color-neutral-100);
|
|
194
|
+
|
|
195
|
+
/* text + surface tokens (light mode default) */
|
|
196
|
+
--color-ink-primary: var(--color-neutral-800);
|
|
197
|
+
--color-ink-secondary: var(--color-neutral-700);
|
|
198
|
+
--color-ink-tertiary: var(--color-neutral-600);
|
|
199
|
+
--color-ink-icon: var(--color-neutral-500);
|
|
200
|
+
--color-canvas: var(--color-common-white);
|
|
201
|
+
--color-surface: var(--color-neutral-50);
|
|
202
|
+
--color-surface-popup: var(--color-common-white);
|
|
203
|
+
--color-surface-1: var(--color-neutral-100);
|
|
204
|
+
--color-surface-2: var(--color-neutral-200);
|
|
205
|
+
--color-surface-3: var(--color-neutral-300);
|
|
206
|
+
--color-divider: rgba(99, 107, 116, 0.2);
|
|
207
|
+
|
|
208
|
+
/* Joy's `mainChannel` — the palette step a component reaches for when it
|
|
209
|
+
wants "the" colour rather than a variant slot. Joy remaps it per scheme
|
|
210
|
+
in extendTheme.js:393-403:
|
|
211
|
+
|
|
212
|
+
const channelMapping = { main: '500', light: '200', dark: '700' };
|
|
213
|
+
if (supportedColorScheme === 'dark') { channelMapping.main = 400; }
|
|
214
|
+
|
|
215
|
+
so it is step 500 in light and step 400 in dark. Added 2026-09-07: this
|
|
216
|
+
project had no `main` token at all, so components reaching for it
|
|
217
|
+
hardcoded `-500` and never changed in dark mode. That is what made
|
|
218
|
+
`Link` (which Joy's Link.js:120 resolves from `palette[color]
|
|
219
|
+
.mainChannel`, not from `plainColor`) and `Divider` render their light
|
|
220
|
+
colour on a dark page. */
|
|
221
|
+
--color-primary-main: var(--color-primary-500);
|
|
222
|
+
--color-neutral-main: var(--color-neutral-500);
|
|
223
|
+
--color-danger-main: var(--color-danger-500);
|
|
224
|
+
--color-success-main: var(--color-success-500);
|
|
225
|
+
--color-warning-main: var(--color-warning-500);
|
|
226
|
+
|
|
227
|
+
--font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
|
|
228
|
+
|
|
229
|
+
/* radius scale (Joy UI defaultTheme.radius) */
|
|
230
|
+
--radius-xs: 2px;
|
|
231
|
+
--radius-sm: 6px;
|
|
232
|
+
--radius-md: 8px;
|
|
233
|
+
--radius-lg: 12px;
|
|
234
|
+
--radius-xl: 16px;
|
|
235
|
+
|
|
236
|
+
/* shadow.xs/md/lg (Joy UI defaultTheme.shadow, light mode: shadowChannel
|
|
237
|
+
'21 21 21' / shadowOpacity 0.08). Joy's real formula prefixes every
|
|
238
|
+
shadow level with a `shadowRing` layer (`0 0 #000`) — a zero-blur,
|
|
239
|
+
zero-spread shadow that renders as nothing visible, so it's dropped
|
|
240
|
+
here rather than carried as a dead layer. Confirmed against
|
|
241
|
+
@mui/joy's extendTheme.js source. */
|
|
242
|
+
--shadow-xs: 0px 1px 2px 0px rgba(21, 21, 21, 0.08);
|
|
243
|
+
--shadow-md: 0px 2px 8px -2px rgba(21, 21, 21, 0.08), 0px 6px 12px -2px rgba(21, 21, 21, 0.08);
|
|
244
|
+
--shadow-lg: 0px 2px 8px -2px rgba(21, 21, 21, 0.08), 0px 12px 16px -4px rgba(21, 21, 21, 0.08);
|
|
245
|
+
|
|
246
|
+
/* AnimatedMapImage's entrance: the whole frame irises open from center
|
|
247
|
+
(map-reveal) while a pin drops onto the coordinate and an ink ring
|
|
248
|
+
ripples out from under it. Not color-scheme dependent, so registered
|
|
249
|
+
once here rather than duplicated in the dark-mode block below. */
|
|
250
|
+
--animate-map-reveal: hintoric-map-reveal 700ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
251
|
+
--animate-pin-drop: hintoric-pin-drop 550ms 400ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
|
|
252
|
+
--animate-ink-ripple: hintoric-ink-ripple 900ms 400ms ease-out both;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
[data-color-scheme="dark"] {
|
|
256
|
+
--color-primary-plain-color: var(--color-primary-300);
|
|
257
|
+
--color-primary-plain-hover-bg: var(--color-primary-800);
|
|
258
|
+
--color-primary-plain-active-bg: var(--color-primary-700);
|
|
259
|
+
--color-primary-plain-disabled-color: var(--color-neutral-500);
|
|
260
|
+
--color-primary-outlined-color: var(--color-primary-200);
|
|
261
|
+
--color-primary-outlined-border: var(--color-primary-700);
|
|
262
|
+
--color-primary-outlined-hover-bg: var(--color-primary-800);
|
|
263
|
+
--color-primary-outlined-active-bg: var(--color-primary-700);
|
|
264
|
+
--color-primary-outlined-disabled-color: var(--color-neutral-500);
|
|
265
|
+
--color-primary-outlined-disabled-border: var(--color-neutral-800);
|
|
266
|
+
--color-primary-soft-color: var(--color-primary-200);
|
|
267
|
+
--color-primary-soft-bg: var(--color-primary-800);
|
|
268
|
+
--color-primary-soft-hover-bg: var(--color-primary-700);
|
|
269
|
+
--color-primary-soft-active-color: var(--color-primary-100);
|
|
270
|
+
--color-primary-soft-active-bg: var(--color-primary-600);
|
|
271
|
+
--color-primary-soft-disabled-color: var(--color-neutral-500);
|
|
272
|
+
--color-primary-soft-disabled-bg: var(--color-neutral-800);
|
|
273
|
+
--color-primary-solid-color: var(--color-common-white);
|
|
274
|
+
--color-primary-solid-bg: var(--color-primary-500);
|
|
275
|
+
--color-primary-solid-hover-bg: var(--color-primary-600);
|
|
276
|
+
--color-primary-solid-active-bg: var(--color-primary-700);
|
|
277
|
+
--color-primary-solid-disabled-color: var(--color-neutral-500);
|
|
278
|
+
--color-primary-solid-disabled-bg: var(--color-neutral-800);
|
|
279
|
+
--color-neutral-plain-color: var(--color-neutral-300);
|
|
280
|
+
--color-neutral-plain-hover-bg: var(--color-neutral-800);
|
|
281
|
+
--color-neutral-plain-hover-color: var(--color-neutral-300);
|
|
282
|
+
--color-neutral-plain-active-bg: var(--color-neutral-700);
|
|
283
|
+
--color-neutral-plain-disabled-color: var(--color-neutral-500);
|
|
284
|
+
--color-neutral-outlined-color: var(--color-neutral-200);
|
|
285
|
+
--color-neutral-outlined-border: var(--color-neutral-700);
|
|
286
|
+
--color-neutral-outlined-hover-bg: var(--color-neutral-800);
|
|
287
|
+
--color-neutral-outlined-active-bg: var(--color-neutral-700);
|
|
288
|
+
--color-neutral-outlined-disabled-color: var(--color-neutral-500);
|
|
289
|
+
--color-neutral-outlined-disabled-border: var(--color-neutral-800);
|
|
290
|
+
--color-neutral-soft-color: var(--color-neutral-200);
|
|
291
|
+
--color-neutral-soft-bg: var(--color-neutral-800);
|
|
292
|
+
--color-neutral-soft-hover-bg: var(--color-neutral-700);
|
|
293
|
+
--color-neutral-soft-active-color: var(--color-neutral-100);
|
|
294
|
+
--color-neutral-soft-active-bg: var(--color-neutral-600);
|
|
295
|
+
--color-neutral-soft-disabled-color: var(--color-neutral-500);
|
|
296
|
+
--color-neutral-soft-disabled-bg: var(--color-neutral-800);
|
|
297
|
+
--color-neutral-solid-color: var(--color-common-white);
|
|
298
|
+
--color-neutral-solid-bg: var(--color-neutral-500);
|
|
299
|
+
--color-neutral-solid-hover-bg: var(--color-neutral-600);
|
|
300
|
+
--color-neutral-solid-active-bg: var(--color-neutral-700);
|
|
301
|
+
--color-neutral-solid-disabled-color: var(--color-neutral-500);
|
|
302
|
+
--color-neutral-solid-disabled-bg: var(--color-neutral-800);
|
|
303
|
+
--color-danger-plain-color: var(--color-danger-300);
|
|
304
|
+
--color-danger-plain-hover-bg: var(--color-danger-800);
|
|
305
|
+
--color-danger-plain-active-bg: var(--color-danger-700);
|
|
306
|
+
--color-danger-plain-disabled-color: var(--color-neutral-500);
|
|
307
|
+
--color-danger-outlined-color: var(--color-danger-200);
|
|
308
|
+
--color-danger-outlined-border: var(--color-danger-700);
|
|
309
|
+
--color-danger-outlined-hover-bg: var(--color-danger-800);
|
|
310
|
+
--color-danger-outlined-active-bg: var(--color-danger-700);
|
|
311
|
+
--color-danger-outlined-disabled-color: var(--color-neutral-500);
|
|
312
|
+
--color-danger-outlined-disabled-border: var(--color-neutral-800);
|
|
313
|
+
--color-danger-soft-color: var(--color-danger-200);
|
|
314
|
+
--color-danger-soft-bg: var(--color-danger-800);
|
|
315
|
+
--color-danger-soft-hover-bg: var(--color-danger-700);
|
|
316
|
+
--color-danger-soft-active-color: var(--color-danger-100);
|
|
317
|
+
--color-danger-soft-active-bg: var(--color-danger-600);
|
|
318
|
+
--color-danger-soft-disabled-color: var(--color-neutral-500);
|
|
319
|
+
--color-danger-soft-disabled-bg: var(--color-neutral-800);
|
|
320
|
+
--color-danger-solid-color: var(--color-common-white);
|
|
321
|
+
--color-danger-solid-bg: var(--color-danger-500);
|
|
322
|
+
--color-danger-solid-hover-bg: var(--color-danger-600);
|
|
323
|
+
--color-danger-solid-active-bg: var(--color-danger-700);
|
|
324
|
+
--color-danger-solid-disabled-color: var(--color-neutral-500);
|
|
325
|
+
--color-danger-solid-disabled-bg: var(--color-neutral-800);
|
|
326
|
+
--color-success-plain-color: var(--color-success-300);
|
|
327
|
+
--color-success-plain-hover-bg: var(--color-success-800);
|
|
328
|
+
--color-success-plain-active-bg: var(--color-success-700);
|
|
329
|
+
--color-success-plain-disabled-color: var(--color-neutral-500);
|
|
330
|
+
--color-success-outlined-color: var(--color-success-200);
|
|
331
|
+
--color-success-outlined-border: var(--color-success-700);
|
|
332
|
+
--color-success-outlined-hover-bg: var(--color-success-800);
|
|
333
|
+
--color-success-outlined-active-bg: var(--color-success-700);
|
|
334
|
+
--color-success-outlined-disabled-color: var(--color-neutral-500);
|
|
335
|
+
--color-success-outlined-disabled-border: var(--color-neutral-800);
|
|
336
|
+
--color-success-soft-color: var(--color-success-200);
|
|
337
|
+
--color-success-soft-bg: var(--color-success-800);
|
|
338
|
+
--color-success-soft-hover-bg: var(--color-success-700);
|
|
339
|
+
--color-success-soft-active-color: var(--color-success-100);
|
|
340
|
+
--color-success-soft-active-bg: var(--color-success-600);
|
|
341
|
+
--color-success-soft-disabled-color: var(--color-neutral-500);
|
|
342
|
+
--color-success-soft-disabled-bg: var(--color-neutral-800);
|
|
343
|
+
--color-success-solid-color: var(--color-common-white);
|
|
344
|
+
--color-success-solid-bg: var(--color-success-500);
|
|
345
|
+
--color-success-solid-hover-bg: var(--color-success-600);
|
|
346
|
+
--color-success-solid-active-bg: var(--color-success-700);
|
|
347
|
+
--color-success-solid-disabled-color: var(--color-neutral-500);
|
|
348
|
+
--color-success-solid-disabled-bg: var(--color-neutral-800);
|
|
349
|
+
--color-warning-plain-color: var(--color-warning-300);
|
|
350
|
+
--color-warning-plain-hover-bg: var(--color-warning-800);
|
|
351
|
+
--color-warning-plain-active-bg: var(--color-warning-700);
|
|
352
|
+
--color-warning-plain-disabled-color: var(--color-neutral-500);
|
|
353
|
+
--color-warning-outlined-color: var(--color-warning-200);
|
|
354
|
+
--color-warning-outlined-border: var(--color-warning-700);
|
|
355
|
+
--color-warning-outlined-hover-bg: var(--color-warning-800);
|
|
356
|
+
--color-warning-outlined-active-bg: var(--color-warning-700);
|
|
357
|
+
--color-warning-outlined-disabled-color: var(--color-neutral-500);
|
|
358
|
+
--color-warning-outlined-disabled-border: var(--color-neutral-800);
|
|
359
|
+
--color-warning-soft-color: var(--color-warning-200);
|
|
360
|
+
--color-warning-soft-bg: var(--color-warning-800);
|
|
361
|
+
--color-warning-soft-hover-bg: var(--color-warning-700);
|
|
362
|
+
--color-warning-soft-active-color: var(--color-warning-100);
|
|
363
|
+
--color-warning-soft-active-bg: var(--color-warning-600);
|
|
364
|
+
--color-warning-soft-disabled-color: var(--color-neutral-500);
|
|
365
|
+
--color-warning-soft-disabled-bg: var(--color-neutral-800);
|
|
366
|
+
--color-warning-solid-color: var(--color-common-white);
|
|
367
|
+
--color-warning-solid-bg: var(--color-warning-500);
|
|
368
|
+
--color-warning-solid-hover-bg: var(--color-warning-600);
|
|
369
|
+
--color-warning-solid-active-bg: var(--color-warning-700);
|
|
370
|
+
--color-warning-solid-disabled-color: var(--color-neutral-500);
|
|
371
|
+
--color-warning-solid-disabled-bg: var(--color-neutral-800);
|
|
372
|
+
|
|
373
|
+
--color-ink-primary: var(--color-neutral-100);
|
|
374
|
+
--color-ink-secondary: var(--color-neutral-300);
|
|
375
|
+
--color-ink-tertiary: var(--color-neutral-400);
|
|
376
|
+
--color-ink-icon: var(--color-neutral-400);
|
|
377
|
+
--color-canvas: var(--color-common-black);
|
|
378
|
+
--color-surface: var(--color-neutral-900);
|
|
379
|
+
--color-surface-popup: var(--color-common-black);
|
|
380
|
+
--color-surface-1: var(--color-neutral-800);
|
|
381
|
+
--color-surface-2: var(--color-neutral-700);
|
|
382
|
+
--color-surface-3: var(--color-neutral-600);
|
|
383
|
+
/* neutral-400's channel, not neutral-500's: Joy's divider resolves from
|
|
384
|
+
`neutral.mainChannel`, which is step 400 in dark (see the note on
|
|
385
|
+
--color-*-main above). The 0.16 opacity here was already correct — only
|
|
386
|
+
the channel had been carried over from light, so the divider stayed too
|
|
387
|
+
dark against a dark surface. Measured against real @mui/joy: it renders
|
|
388
|
+
rgba(159, 166, 173, 0.16). */
|
|
389
|
+
--color-divider: rgba(159, 166, 173, 0.16);
|
|
390
|
+
|
|
391
|
+
--color-primary-main: var(--color-primary-400);
|
|
392
|
+
--color-neutral-main: var(--color-neutral-400);
|
|
393
|
+
--color-danger-main: var(--color-danger-400);
|
|
394
|
+
--color-success-main: var(--color-success-400);
|
|
395
|
+
--color-warning-main: var(--color-warning-400);
|
|
396
|
+
|
|
397
|
+
/* shadow.xs/md/lg (Joy UI defaultTheme.shadow, dark mode: shadowChannel
|
|
398
|
+
'0 0 0' / shadowOpacity 0.6). See the light-mode block's comment for
|
|
399
|
+
why the `shadowRing` layer is dropped. */
|
|
400
|
+
--shadow-xs: 0px 1px 2px 0px rgba(0, 0, 0, 0.6);
|
|
401
|
+
--shadow-md: 0px 2px 8px -2px rgba(0, 0, 0, 0.6), 0px 6px 12px -2px rgba(0, 0, 0, 0.6);
|
|
402
|
+
--shadow-lg: 0px 2px 8px -2px rgba(0, 0, 0, 0.6), 0px 12px 16px -4px rgba(0, 0, 0, 0.6);
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
/* AnimatedMapImage entrance keyframes — see the --animate-* registrations
|
|
406
|
+
above. 150% on the circle radius comfortably reaches every corner for any
|
|
407
|
+
realistic width/height combination (circle()'s percentage basis is the
|
|
408
|
+
box's corner distance, so 100% alone can undershoot on wide/tall boxes). */
|
|
409
|
+
@keyframes hintoric-map-reveal {
|
|
410
|
+
from {
|
|
411
|
+
clip-path: circle(0% at 50% 50%);
|
|
412
|
+
}
|
|
413
|
+
to {
|
|
414
|
+
clip-path: circle(150% at 50% 50%);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
@keyframes hintoric-pin-drop {
|
|
419
|
+
0% {
|
|
420
|
+
transform: translateY(-14px) scale(0.4);
|
|
421
|
+
opacity: 0;
|
|
422
|
+
}
|
|
423
|
+
60% {
|
|
424
|
+
transform: translateY(2px) scale(1.15);
|
|
425
|
+
opacity: 1;
|
|
426
|
+
}
|
|
427
|
+
100% {
|
|
428
|
+
transform: translateY(0) scale(1);
|
|
429
|
+
opacity: 1;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
@keyframes hintoric-ink-ripple {
|
|
434
|
+
0% {
|
|
435
|
+
transform: scale(0.3);
|
|
436
|
+
opacity: 0.5;
|
|
437
|
+
}
|
|
438
|
+
100% {
|
|
439
|
+
transform: scale(2.4);
|
|
440
|
+
opacity: 0;
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
/*
|
|
445
|
+
* Tailwind's stock `dark:` keys off `prefers-color-scheme`, which contradicts
|
|
446
|
+
* ColorSchemeProvider the moment a user overrides their OS setting. Point it
|
|
447
|
+
* at the same attribute our tokens use. Our own components never write `dark:`
|
|
448
|
+
* (they read tokens instead) — this exists entirely for consumers' markup.
|
|
449
|
+
*/
|
|
450
|
+
@custom-variant dark (&:where([data-color-scheme="dark"], [data-color-scheme="dark"] *));
|
|
451
|
+
|
|
452
|
+
/*
|
|
453
|
+
* `canvas`/`surface*`/`ink-*`/`divider` are public, page-layout tokens meant
|
|
454
|
+
* for consumers to use directly in their own markup (e.g. `bg-canvas` on a
|
|
455
|
+
* page root) — not just internally by Phase 1 components. No component's own
|
|
456
|
+
* source literally contains most of these class names, so Tailwind's content
|
|
457
|
+
* scan never finds them and never generates their CSS. Force-generate them
|
|
458
|
+
* explicitly.
|
|
459
|
+
*/
|
|
460
|
+
@source inline("{bg,text,border}-{canvas,surface,surface-1,surface-2,surface-3,surface-popup}");
|
|
461
|
+
@source inline("{bg,border}-divider");
|
|
462
|
+
|
|
463
|
+
@source "./index.js";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface ReducedMotionProviderProps {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
/** The app-owned reduced-motion preference. */
|
|
5
|
+
reducedMotion: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function ReducedMotionProvider({ children, reducedMotion }: ReducedMotionProviderProps): React.JSX.Element;
|
|
8
|
+
export declare function useReducedMotion(): boolean;
|
|
9
|
+
//# sourceMappingURL=ReducedMotionProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReducedMotionProvider.d.ts","sourceRoot":"","sources":["../../src/theme/ReducedMotionProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,+CAA+C;IAC/C,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,0BAA0B,qBAI5F;AAkBD,wBAAgB,gBAAgB,IAAI,OAAO,CAI1C"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/** Package-internal compatibility name. Prefer useReducedMotion for public reads. */
|
|
2
2
|
export declare function usePrefersReducedMotion(): boolean;
|
|
3
3
|
//# sourceMappingURL=usePrefersReducedMotion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePrefersReducedMotion.d.ts","sourceRoot":"","sources":["../../src/utils/usePrefersReducedMotion.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePrefersReducedMotion.d.ts","sourceRoot":"","sources":["../../src/utils/usePrefersReducedMotion.ts"],"names":[],"mappings":"AAEA,qFAAqF;AACrF,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hintoric/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Joy UI's look and API, built on Base UI and Tailwind CSS.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
"types": "./dist/index.d.ts",
|
|
26
26
|
"import": "./dist/index.js"
|
|
27
27
|
},
|
|
28
|
-
"./styles.css": "./dist/style.css"
|
|
28
|
+
"./styles.css": "./dist/style.css",
|
|
29
|
+
"./tailwind.css": "./dist/tailwind.css"
|
|
29
30
|
},
|
|
30
31
|
"publishConfig": {
|
|
31
32
|
"access": "public"
|
|
@@ -34,8 +35,14 @@
|
|
|
34
35
|
"react": "^18.3.0 || ^19.0.0",
|
|
35
36
|
"react-dom": "^18.3.0 || ^19.0.0",
|
|
36
37
|
"react-hook-form": "^7.54.0",
|
|
38
|
+
"tailwindcss": "^4.1.0",
|
|
37
39
|
"zod": "^4.0.0"
|
|
38
40
|
},
|
|
41
|
+
"peerDependenciesMeta": {
|
|
42
|
+
"tailwindcss": {
|
|
43
|
+
"optional": true
|
|
44
|
+
}
|
|
45
|
+
},
|
|
39
46
|
"dependencies": {
|
|
40
47
|
"@base-ui/react": "^1.7.0",
|
|
41
48
|
"@hookform/resolvers": "^5.9.1",
|
|
@@ -50,6 +57,8 @@
|
|
|
50
57
|
"@emotion/react": "^11.14.0",
|
|
51
58
|
"@emotion/styled": "^11.14.1",
|
|
52
59
|
"@mui/joy": "5.0.0-beta.52",
|
|
60
|
+
"@tailwindcss/node": "^4.3.3",
|
|
61
|
+
"@tailwindcss/oxide": "^4.3.3",
|
|
53
62
|
"@tailwindcss/vite": "^4.3.3",
|
|
54
63
|
"@testing-library/jest-dom": "^7.0.1",
|
|
55
64
|
"@testing-library/react": "^16.3.3",
|