@justanarthur/modo-ui 0.0.0-stage → 0.1.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/LICENSE +21 -0
- package/LICENSE.beui +21 -0
- package/LICENSE.fluid-functionalism +21 -0
- package/LICENSE.motion-primitives +21 -0
- package/LICENSE.sileo +21 -0
- package/README.md +608 -2
- package/dist/base.css +994 -0
- package/dist/blocks/sidebar-app/index.d.ts +34 -0
- package/dist/blocks/sidebar-app/index.js +34 -0
- package/dist/components/badge/index.d.ts +59 -0
- package/dist/components/badge/index.js +18 -0
- package/dist/components/button/index.d.ts +59 -0
- package/dist/components/button/index.js +16 -0
- package/dist/components/card/index.d.ts +141 -0
- package/dist/components/card/index.js +44 -0
- package/dist/components/inputs/checkbox-group/index.d.ts +50 -0
- package/dist/components/inputs/checkbox-group/index.js +23 -0
- package/dist/components/inputs/color-picker/index.d.ts +137 -0
- package/dist/components/inputs/color-picker/index.js +37 -0
- package/dist/components/inputs/combobox/index.d.ts +161 -0
- package/dist/components/inputs/combobox/index.js +41 -0
- package/dist/components/inputs/date-time/calendar/index.d.ts +45 -0
- package/dist/components/inputs/date-time/calendar/index.js +20 -0
- package/dist/components/inputs/date-time/date-picker/index.d.ts +82 -0
- package/dist/components/inputs/date-time/date-picker/index.js +34 -0
- package/dist/components/inputs/date-time/date-range-picker/index.d.ts +64 -0
- package/dist/components/inputs/date-time/date-range-picker/index.js +33 -0
- package/dist/components/inputs/date-time/duration-picker/index.d.ts +57 -0
- package/dist/components/inputs/date-time/duration-picker/index.js +33 -0
- package/dist/components/inputs/date-time/month-picker/index.d.ts +57 -0
- package/dist/components/inputs/date-time/month-picker/index.js +32 -0
- package/dist/components/inputs/date-time/time-picker/index.d.ts +59 -0
- package/dist/components/inputs/date-time/time-picker/index.js +33 -0
- package/dist/components/inputs/input/index.d.ts +84 -0
- package/dist/components/inputs/input/index.js +20 -0
- package/dist/components/inputs/input-copy/index.d.ts +44 -0
- package/dist/components/inputs/input-copy/index.js +18 -0
- package/dist/components/inputs/input-message/index.d.ts +125 -0
- package/dist/components/inputs/input-message/index.js +27 -0
- package/dist/components/inputs/radio-group/index.d.ts +58 -0
- package/dist/components/inputs/radio-group/index.js +22 -0
- package/dist/components/inputs/search/index.d.ts +83 -0
- package/dist/components/inputs/search/index.js +28 -0
- package/dist/components/inputs/select/index.d.ts +105 -0
- package/dist/components/inputs/select/index.js +37 -0
- package/dist/components/inputs/slider/index.d.ts +108 -0
- package/dist/components/inputs/slider/index.js +16 -0
- package/dist/components/inputs/switch/index.d.ts +43 -0
- package/dist/components/inputs/switch/index.js +16 -0
- package/dist/components/navigation/accordion/index.d.ts +117 -0
- package/dist/components/navigation/accordion/index.js +30 -0
- package/dist/components/navigation/sidebar/index.d.ts +388 -0
- package/dist/components/navigation/sidebar/index.js +101 -0
- package/dist/components/navigation/tabs/index.d.ts +70 -0
- package/dist/components/navigation/tabs/index.js +25 -0
- package/dist/components/navigation/tabs-subtle/index.d.ts +73 -0
- package/dist/components/navigation/tabs-subtle/index.js +23 -0
- package/dist/components/overlays/alert-dialog/index.d.ts +67 -0
- package/dist/components/overlays/alert-dialog/index.js +24 -0
- package/dist/components/overlays/command/index.d.ts +121 -0
- package/dist/components/overlays/command/index.js +39 -0
- package/dist/components/overlays/context-menu/index.d.ts +97 -0
- package/dist/components/overlays/context-menu/index.js +32 -0
- package/dist/components/overlays/dialog/index.d.ts +130 -0
- package/dist/components/overlays/dialog/index.js +39 -0
- package/dist/components/overlays/dropdown/index.d.ts +222 -0
- package/dist/components/overlays/dropdown/index.js +47 -0
- package/dist/components/overlays/popover/index.d.ts +87 -0
- package/dist/components/overlays/popover/index.js +28 -0
- package/dist/components/overlays/preview-card/index.d.ts +75 -0
- package/dist/components/overlays/preview-card/index.js +21 -0
- package/dist/components/overlays/sheet/index.d.ts +67 -0
- package/dist/components/overlays/sheet/index.js +26 -0
- package/dist/components/overlays/toast/index.d.ts +107 -0
- package/dist/components/overlays/toast/index.js +23 -0
- package/dist/components/overlays/tooltip/index.d.ts +75 -0
- package/dist/components/overlays/tooltip/index.js +19 -0
- package/dist/components/table/index.d.ts +44 -0
- package/dist/components/table/index.js +28 -0
- package/dist/components/thinking-indicator/index.d.ts +32 -0
- package/dist/components/thinking-indicator/index.js +15 -0
- package/dist/index.d.ts +3926 -0
- package/dist/index.js +513 -0
- package/dist/preset.d.ts +104 -0
- package/dist/preset.js +124 -0
- package/dist/primitives/code/index.d.ts +23 -0
- package/dist/primitives/code/index.js +12 -0
- package/dist/primitives/craft/index.d.ts +31 -0
- package/dist/primitives/craft/index.js +13 -0
- package/dist/primitives/fluid-hover/index.d.ts +233 -0
- package/dist/primitives/fluid-hover/index.js +27 -0
- package/dist/primitives/morph/index.d.ts +127 -0
- package/dist/primitives/morph/index.js +21 -0
- package/dist/primitives/motion/index.d.ts +115 -0
- package/dist/primitives/motion/index.js +20 -0
- package/dist/primitives/scroll-area/index.d.ts +41 -0
- package/dist/primitives/scroll-area/index.js +13 -0
- package/dist/primitives/sizes/index.d.ts +128 -0
- package/dist/primitives/sizes/index.js +22 -0
- package/dist/primitives/surface/index.d.ts +69 -0
- package/dist/primitives/surface/index.js +18 -0
- package/dist/shared/components-0f0as45n.js +17 -0
- package/dist/shared/components-40j34hdb.js +986 -0
- package/dist/shared/components-4hh0gm0v.js +292 -0
- package/dist/shared/components-4xxddc44.js +15 -0
- package/dist/shared/components-4xxtggzp.js +110 -0
- package/dist/shared/components-54nf2x99.js +293 -0
- package/dist/shared/components-5pkcfprd.js +232 -0
- package/dist/shared/components-5vxtcp88.js +9 -0
- package/dist/shared/components-5zry9te1.js +152 -0
- package/dist/shared/components-61ckf42z.js +220 -0
- package/dist/shared/components-6hzwfmfd.js +58 -0
- package/dist/shared/components-6phwsry6.js +361 -0
- package/dist/shared/components-6t6nr33r.js +86 -0
- package/dist/shared/components-6y1th6k4.js +111 -0
- package/dist/shared/components-74c20v2f.js +32 -0
- package/dist/shared/components-7cqq1sqy.js +193 -0
- package/dist/shared/components-7gv95yfy.js +496 -0
- package/dist/shared/components-7nww01w4.js +375 -0
- package/dist/shared/components-7zp99w5d.js +62 -0
- package/dist/shared/components-8hk9ve3r.js +1200 -0
- package/dist/shared/components-8hzbsfbd.js +123 -0
- package/dist/shared/components-9p8s8n5q.js +171 -0
- package/dist/shared/components-aaq3yk4f.js +304 -0
- package/dist/shared/components-bf2d9k02.js +484 -0
- package/dist/shared/components-bkvb6nem.js +63 -0
- package/dist/shared/components-brnzrp2t.js +262 -0
- package/dist/shared/components-csxz9f52.js +42 -0
- package/dist/shared/components-de8xsm9y.js +22 -0
- package/dist/shared/components-dg0w8g5p.js +26 -0
- package/dist/shared/components-dphg9gjr.js +42 -0
- package/dist/shared/components-e46kf6cp.js +298 -0
- package/dist/shared/components-ed7cmssr.js +105 -0
- package/dist/shared/components-ess3ch6w.js +137 -0
- package/dist/shared/components-gjfrycb5.js +984 -0
- package/dist/shared/components-gndm6am4.js +128 -0
- package/dist/shared/components-hjkrv00c.js +191 -0
- package/dist/shared/components-hzfp4tjb.js +270 -0
- package/dist/shared/components-j65qt1mq.js +719 -0
- package/dist/shared/components-jw16snbn.js +19 -0
- package/dist/shared/components-jxgznftn.js +146 -0
- package/dist/shared/components-kf2ehztc.js +216 -0
- package/dist/shared/components-kpbcms10.js +9 -0
- package/dist/shared/components-m5br529r.js +141 -0
- package/dist/shared/components-nn6xezy2.js +1828 -0
- package/dist/shared/components-nnnd2xef.js +9 -0
- package/dist/shared/components-p2vmyfe1.js +345 -0
- package/dist/shared/components-peg09pzs.js +79 -0
- package/dist/shared/components-r22vtgqc.js +45 -0
- package/dist/shared/components-r2gke5p6.js +1759 -0
- package/dist/shared/components-r43mqnd6.js +160 -0
- package/dist/shared/components-r4jt6hgd.js +58 -0
- package/dist/shared/components-rc63qsy6.js +159 -0
- package/dist/shared/components-s3yfvfkr.js +149 -0
- package/dist/shared/components-s5pkbjx1.js +445 -0
- package/dist/shared/components-tad5h7ta.js +346 -0
- package/dist/shared/components-taxmgbnh.js +120 -0
- package/dist/shared/components-tm88ghva.js +215 -0
- package/dist/shared/components-v7es8aan.js +144 -0
- package/dist/shared/components-vb033rns.js +28 -0
- package/dist/shared/components-vc1k7yv2.js +30 -0
- package/dist/shared/components-vktws5r6.js +667 -0
- package/dist/shared/components-x2xyckd5.js +198 -0
- package/dist/shared/components-x3rz4cyn.js +61 -0
- package/dist/shared/components-xszag63d.js +141 -0
- package/dist/shared/components-y3cqdrgy.js +291 -0
- package/dist/shared/components-zvb11ker.js +288 -0
- package/dist/shared/components-zx2hr57f.js +124 -0
- package/dist/styles.css +1949 -0
- package/dist/tailwind.css +219 -0
- package/dist/tokens.css +345 -0
- package/package.json +102 -3
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/* @justanarthur/modo-ui for Tailwind CSS v4: import after `@import "tailwindcss"`. */
|
|
2
|
+
|
|
3
|
+
@import "./base.css";
|
|
4
|
+
|
|
5
|
+
@source "./shared";
|
|
6
|
+
|
|
7
|
+
@source "./primitives";
|
|
8
|
+
|
|
9
|
+
@source "./components";
|
|
10
|
+
|
|
11
|
+
@source "./blocks";
|
|
12
|
+
|
|
13
|
+
@custom-variant dark (&:is(.dark *));
|
|
14
|
+
|
|
15
|
+
@theme inline {
|
|
16
|
+
--color-background: var(--background);
|
|
17
|
+
--color-foreground: var(--foreground);
|
|
18
|
+
--color-card: var(--card);
|
|
19
|
+
--color-card-foreground: var(--card-foreground);
|
|
20
|
+
--color-muted: var(--muted);
|
|
21
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
22
|
+
--color-accent: var(--accent);
|
|
23
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
24
|
+
--color-accent-hover: var(--accent-hover);
|
|
25
|
+
--color-brand: var(--brand);
|
|
26
|
+
--color-brand-hover: var(--brand-hover);
|
|
27
|
+
--color-focus-ring: var(--focus-ring);
|
|
28
|
+
--color-overlay: rgb(var(--overlay));
|
|
29
|
+
--color-selected: var(--selected);
|
|
30
|
+
--color-thumb: var(--thumb);
|
|
31
|
+
--color-picker-edge: var(--picker-edge);
|
|
32
|
+
--color-picker-ring: var(--picker-ring);
|
|
33
|
+
--color-control: var(--control-border);
|
|
34
|
+
--color-scrim: var(--scrim);
|
|
35
|
+
--color-status-success: var(--status-success);
|
|
36
|
+
--color-status-loading: var(--status-loading);
|
|
37
|
+
--color-status-error: var(--status-error);
|
|
38
|
+
--color-status-warning: var(--status-warning);
|
|
39
|
+
--color-status-info: var(--status-info);
|
|
40
|
+
--color-status-action: var(--status-action);
|
|
41
|
+
--color-border: var(--border);
|
|
42
|
+
--color-ring: var(--ring);
|
|
43
|
+
--color-input: var(--input);
|
|
44
|
+
--color-destructive: var(--destructive);
|
|
45
|
+
--color-destructive-light: var(--destructive-light);
|
|
46
|
+
--color-hover: var(--hover);
|
|
47
|
+
--color-active: var(--active);
|
|
48
|
+
--color-syntax-keyword: var(--syntax-keyword);
|
|
49
|
+
--color-syntax-string: var(--syntax-string);
|
|
50
|
+
--color-syntax-class: var(--syntax-class);
|
|
51
|
+
--color-syntax-entity: var(--syntax-entity);
|
|
52
|
+
--color-syntax-property: var(--syntax-property);
|
|
53
|
+
--color-syntax-comment: var(--syntax-comment);
|
|
54
|
+
--color-syntax-identifier: var(--syntax-identifier);
|
|
55
|
+
--color-syntax-jsx: var(--syntax-jsx);
|
|
56
|
+
--color-syntax-sign: var(--syntax-sign);
|
|
57
|
+
--color-surface-1: var(--surface-1);
|
|
58
|
+
--color-surface-2: var(--surface-2);
|
|
59
|
+
--color-surface-3: var(--surface-3);
|
|
60
|
+
--color-surface-4: var(--surface-4);
|
|
61
|
+
--color-surface-5: var(--surface-5);
|
|
62
|
+
--color-surface-6: var(--surface-6);
|
|
63
|
+
--color-surface-7: var(--surface-7);
|
|
64
|
+
--color-surface-8: var(--surface-8);
|
|
65
|
+
--shadow-surface-1: var(--shadow-1);
|
|
66
|
+
--shadow-surface-2: var(--shadow-2);
|
|
67
|
+
--shadow-surface-3: var(--shadow-3);
|
|
68
|
+
--shadow-surface-4: var(--shadow-4);
|
|
69
|
+
--shadow-surface-5: var(--shadow-5);
|
|
70
|
+
--shadow-surface-6: var(--shadow-6);
|
|
71
|
+
--shadow-surface-7: var(--shadow-7);
|
|
72
|
+
--shadow-surface-8: var(--shadow-8);
|
|
73
|
+
--shadow-thumb: var(--shadow-thumb);
|
|
74
|
+
--shadow-picker-thumb: var(--shadow-picker-thumb);
|
|
75
|
+
--shadow-picker-cursor: var(--shadow-picker-cursor);
|
|
76
|
+
--shadow-swatch: var(--shadow-swatch);
|
|
77
|
+
--shadow-swatch-hover: var(--shadow-swatch-hover);
|
|
78
|
+
--shadow-swatch-selected: var(--shadow-swatch-selected);
|
|
79
|
+
--drop-shadow-picker-cursor: var(--drop-shadow-picker-cursor);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@utility text-display {
|
|
83
|
+
font-size: var(--text-display);
|
|
84
|
+
line-height: var(--leading-display);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
@utility text-display-compact {
|
|
88
|
+
font-size: var(--text-display-compact);
|
|
89
|
+
line-height: var(--leading-display);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
@utility text-title {
|
|
93
|
+
font-size: var(--text-title);
|
|
94
|
+
line-height: var(--leading-title);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
@utility text-title-compact {
|
|
98
|
+
font-size: var(--text-title-compact);
|
|
99
|
+
line-height: var(--leading-title);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@utility text-subtitle {
|
|
103
|
+
font-size: var(--text-subtitle);
|
|
104
|
+
line-height: var(--leading-subtitle);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
@utility text-subtitle-compact {
|
|
108
|
+
font-size: var(--text-subtitle-compact);
|
|
109
|
+
line-height: var(--leading-subtitle);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
@utility text-body {
|
|
113
|
+
font-size: var(--text-body);
|
|
114
|
+
line-height: var(--leading-body);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
@utility text-body-compact {
|
|
118
|
+
font-size: var(--text-body-compact);
|
|
119
|
+
line-height: var(--leading-body);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
@utility text-caption {
|
|
123
|
+
font-size: var(--text-caption);
|
|
124
|
+
line-height: var(--leading-caption);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
@utility text-caption-compact {
|
|
128
|
+
font-size: var(--text-caption-compact);
|
|
129
|
+
line-height: var(--leading-caption);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
@utility text-micro {
|
|
133
|
+
font-size: var(--text-micro);
|
|
134
|
+
line-height: var(--leading-micro);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
@utility text-micro-compact {
|
|
138
|
+
font-size: var(--text-micro-compact);
|
|
139
|
+
line-height: var(--leading-micro);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
@utility weight-normal {
|
|
143
|
+
font-variation-settings: var(--weight-normal);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
@utility weight-medium {
|
|
147
|
+
font-variation-settings: var(--weight-medium);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
@utility weight-semibold {
|
|
151
|
+
font-variation-settings: var(--weight-semibold);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
@utility weight-bold {
|
|
155
|
+
font-variation-settings: var(--weight-bold);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
@utility duration-fast {
|
|
159
|
+
--tw-duration: var(--duration-fast);
|
|
160
|
+
transition-duration: var(--duration-fast);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
@utility delay-fast {
|
|
164
|
+
transition-delay: var(--duration-fast);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
@utility duration-fast-exit {
|
|
168
|
+
--tw-duration: var(--duration-fast-exit);
|
|
169
|
+
transition-duration: var(--duration-fast-exit);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
@utility delay-fast-exit {
|
|
173
|
+
transition-delay: var(--duration-fast-exit);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
@utility duration-moderate {
|
|
177
|
+
--tw-duration: var(--duration-moderate);
|
|
178
|
+
transition-duration: var(--duration-moderate);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
@utility delay-moderate {
|
|
182
|
+
transition-delay: var(--duration-moderate);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
@utility duration-moderate-exit {
|
|
186
|
+
--tw-duration: var(--duration-moderate-exit);
|
|
187
|
+
transition-duration: var(--duration-moderate-exit);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
@utility delay-moderate-exit {
|
|
191
|
+
transition-delay: var(--duration-moderate-exit);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
@utility duration-slow {
|
|
195
|
+
--tw-duration: var(--duration-slow);
|
|
196
|
+
transition-duration: var(--duration-slow);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
@utility delay-slow {
|
|
200
|
+
transition-delay: var(--duration-slow);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
@utility duration-slow-exit {
|
|
204
|
+
--tw-duration: var(--duration-slow-exit);
|
|
205
|
+
transition-duration: var(--duration-slow-exit);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
@utility delay-slow-exit {
|
|
209
|
+
transition-delay: var(--duration-slow-exit);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
@utility rounded-box {
|
|
213
|
+
border-radius: var(--radius-box);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
@utility rounded-glyph {
|
|
217
|
+
border-radius: var(--radius-glyph);
|
|
218
|
+
}
|
|
219
|
+
|
package/dist/tokens.css
ADDED
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Fluid Functionalism color tokens.
|
|
3
|
+
*
|
|
4
|
+
* Source: mickadesign/fluid-functionalism `app/globals.css` §1 (DESIGN TOKENS)
|
|
5
|
+
* at commit b3587bdbd83fc66c2a6aae3817ffb856cb09260b — MIT License
|
|
6
|
+
* © 2026 Micka Touillaud — fluidfunctionalism.com.
|
|
7
|
+
*
|
|
8
|
+
* Migration from upstream: every HEX literal was converted to its exact oklch
|
|
9
|
+
* equivalent (sRGB → OKLab, round-trip verified to the original hex). The
|
|
10
|
+
* rgb()/rgba() alpha overlays (--overlay, --hover, --active, --shadow-color,
|
|
11
|
+
* --dm-*) are kept as-is — they are alpha contracts, not palette colors.
|
|
12
|
+
*
|
|
13
|
+
* Every color token is written ONCE, as light-dark(light, dark). Which side
|
|
14
|
+
* renders is driven by `color-scheme` (set in base.css): :root follows the
|
|
15
|
+
* OS, and a `.light` or `.dark` class pins it. The block is declared on
|
|
16
|
+
* `:root, .light, .dark` — not just `:root` — because light-dark() inside a
|
|
17
|
+
* custom property resolves against the color-scheme of the element the
|
|
18
|
+
* property is declared on, so a forced-scope subtree becomes its own
|
|
19
|
+
* resolution point.
|
|
20
|
+
*
|
|
21
|
+
* The surface ladder and its shadow recipes live with their primitive in
|
|
22
|
+
* primitives/surface/surface.css. The one token that cannot ride
|
|
23
|
+
* light-dark() here — the --overlay RGB triplet (consumed as
|
|
24
|
+
* rgb(var(--overlay) / α), an alpha contract) — is re-pointed per scheme in
|
|
25
|
+
* base.css.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
:root,
|
|
29
|
+
.light,
|
|
30
|
+
.dark {
|
|
31
|
+
/* The surface ladder (--surface-1..8) and the shadow recipes pair with it
|
|
32
|
+
in primitives/surface/surface.css. */
|
|
33
|
+
|
|
34
|
+
/* ── Semantic tokens ── */
|
|
35
|
+
/* Same color as --surface-1, inlined so the global token set never
|
|
36
|
+
depends on the surface primitive's CSS being loaded. */
|
|
37
|
+
--background: light-dark(oklch(0.985 0 0), oklch(0.205 0 0));
|
|
38
|
+
--foreground: light-dark(oklch(0.205 0 0), oklch(0.97 0 0));
|
|
39
|
+
/* Same color as --surface-3, inlined for the same reason. */
|
|
40
|
+
--card: light-dark(oklch(1 0 0), oklch(0.264 0 0));
|
|
41
|
+
--card-foreground: light-dark(oklch(0.205 0 0), oklch(0.97 0 0));
|
|
42
|
+
/* Light `muted` decouples from surface-2: the light surface ladder is so
|
|
43
|
+
compressed that a ladder value would read as near-white, making anything
|
|
44
|
+
sitting on it blend together. A slightly greyer value gives muted real
|
|
45
|
+
semantic presence. Dark keeps the ladder value (= surface-2). */
|
|
46
|
+
--muted: light-dark(oklch(0.967 0.001 286.375), oklch(0.235 0 0));
|
|
47
|
+
--muted-foreground: light-dark(oklch(0.556 0 0), oklch(0.7155 0 0));
|
|
48
|
+
|
|
49
|
+
/* ── Interactive states ── */
|
|
50
|
+
--accent: light-dark(oklch(0.922 0 0), oklch(0.439 0 0));
|
|
51
|
+
--accent-foreground: light-dark(oklch(0.205 0 0), oklch(0.97 0 0));
|
|
52
|
+
/* --accent nudged toward the overlay direction (the switch track's hover). */
|
|
53
|
+
--accent-hover: color-mix(in oklab, var(--accent), rgb(var(--overlay)) 10%);
|
|
54
|
+
--selected: light-dark(oklch(0.87 0 0), oklch(0.439 0 0));
|
|
55
|
+
|
|
56
|
+
/* ── Borders ──
|
|
57
|
+
--border mixes from --foreground, so it tracks the theme automatically —
|
|
58
|
+
including inside nested forced scopes, where light-dark() re-resolves
|
|
59
|
+
--foreground before the mix happens. */
|
|
60
|
+
--border: color-mix(in oklab, var(--foreground) 12%, transparent);
|
|
61
|
+
--ring: light-dark(oklch(0.922 0 0), oklch(0.371 0 0));
|
|
62
|
+
--input: light-dark(oklch(0.922 0 0), oklch(0.371 0 0));
|
|
63
|
+
|
|
64
|
+
/* ── Error / Destructive ── */
|
|
65
|
+
--destructive: light-dark(oklch(0.6368 0.2078 25.33), oklch(0.7106 0.1661 22.22));
|
|
66
|
+
--destructive-light: light-dark(oklch(0.971 0.013 17.38), oklch(0.2575 0.0886 26.04));
|
|
67
|
+
|
|
68
|
+
/* ── Brand blue ──
|
|
69
|
+
FF's one chromatic accent: the switch's on-track, the copy field's hover
|
|
70
|
+
highlight, drop-target and selected-swatch rings. */
|
|
71
|
+
--brand: oklch(0.693 0.16 265);
|
|
72
|
+
--brand-hover: oklch(0.649 0.164 264.76);
|
|
73
|
+
|
|
74
|
+
/* ── Focus indicator ──
|
|
75
|
+
Every component focus ring reads it (`ring-focus-ring`,
|
|
76
|
+
`border-focus-ring`), so this is the single theming point. */
|
|
77
|
+
--focus-ring: var(--brand);
|
|
78
|
+
|
|
79
|
+
/* ── Alpha checkerboard (color-picker swatches) ── */
|
|
80
|
+
--checker-a: light-dark(oklch(0.792 0 0), oklch(0.239 0 0));
|
|
81
|
+
--checker-b: light-dark(oklch(1 0 0), oklch(0.285 0 0));
|
|
82
|
+
/* Swatch edges: a mid-grey hairline that reads on any swatch color in
|
|
83
|
+
either scheme, plus the hover / selected rings, set off by a
|
|
84
|
+
--background gap. */
|
|
85
|
+
--swatch-edge: rgb(127 127 127 / 0.25);
|
|
86
|
+
--swatch-edge-hover: rgb(127 127 127 / 0.4);
|
|
87
|
+
--shadow-swatch: inset 0 0 0 1px var(--swatch-edge);
|
|
88
|
+
--shadow-swatch-hover: var(--shadow-swatch), 0 0 0 2px var(--background), 0 0 0 4px var(--swatch-edge-hover);
|
|
89
|
+
--shadow-swatch-selected: var(--shadow-swatch), 0 0 0 2px var(--background), 0 0 0 4px var(--brand);
|
|
90
|
+
|
|
91
|
+
/* ── Thumbs (switch, slider) ──
|
|
92
|
+
White in both schemes, set off by a soft drop. */
|
|
93
|
+
--thumb: oklch(1 0 0);
|
|
94
|
+
--shadow-thumb: 0 1px 2px rgb(0 0 0 / 0.1);
|
|
95
|
+
|
|
96
|
+
/* ── Color picker affordances ──
|
|
97
|
+
Drawn over any user color, so fixed white and black rather than theme
|
|
98
|
+
colors: they have to read on every fill, in either scheme. */
|
|
99
|
+
--picker-edge: oklch(0 0 0);
|
|
100
|
+
--picker-ring: oklch(1 0 0 / 0.55);
|
|
101
|
+
--picker-thumb-border: oklch(1 0 0 / 0.9);
|
|
102
|
+
--shadow-picker-thumb: 0 0 0 1px var(--picker-edge);
|
|
103
|
+
--shadow-picker-cursor: 0 0 0 1px oklch(0 0 0 / 0.2);
|
|
104
|
+
--drop-shadow-picker-cursor: 0 1px 1px oklch(0 0 0 / 0.4);
|
|
105
|
+
|
|
106
|
+
/* ── Controls ──
|
|
107
|
+
An unchecked checkbox or radio takes a stronger edge than --border;
|
|
108
|
+
a modal dialog dims the page behind it with the scrim. */
|
|
109
|
+
--control-border: light-dark(oklch(0.708 0 0), oklch(0.556 0 0));
|
|
110
|
+
--scrim: light-dark(oklch(0 0 0 / 0.4), oklch(0 0 0 / 0.8));
|
|
111
|
+
|
|
112
|
+
/* ── Surface-relative interactive overlays (work on any elevation) ──
|
|
113
|
+
--overlay is the tint-direction triplet — black for light surfaces,
|
|
114
|
+
white for dark. Components consume it as rgb(var(--overlay) / α), so it
|
|
115
|
+
stays an RGB triplet and switches per theme in base.css. --hover and
|
|
116
|
+
--active are the pre-mixed conveniences. */
|
|
117
|
+
--overlay: 0 0 0;
|
|
118
|
+
--hover: light-dark(rgb(0 0 0 / 0.04), rgb(255 255 255 / 0.06));
|
|
119
|
+
--active: light-dark(rgb(0 0 0 / 0.07), rgb(255 255 255 / 0.1));
|
|
120
|
+
|
|
121
|
+
/* ── Syntax (primitives/code) ──
|
|
122
|
+
Low-chroma hues so code reads as text first; identifiers, JSX text and
|
|
123
|
+
punctuation ride the existing foreground pair. */
|
|
124
|
+
--syntax-keyword: light-dark(oklch(0.52 0.16 300), oklch(0.76 0.12 300));
|
|
125
|
+
--syntax-string: light-dark(oklch(0.52 0.12 150), oklch(0.79 0.11 150));
|
|
126
|
+
--syntax-class: light-dark(oklch(0.56 0.12 65), oklch(0.81 0.1 75));
|
|
127
|
+
--syntax-entity: light-dark(oklch(0.52 0.15 255), oklch(0.77 0.11 250));
|
|
128
|
+
--syntax-property: light-dark(oklch(0.52 0.1 205), oklch(0.79 0.08 200));
|
|
129
|
+
--syntax-comment: light-dark(oklch(0.62 0 0), oklch(0.56 0 0));
|
|
130
|
+
--syntax-identifier: var(--foreground);
|
|
131
|
+
--syntax-jsx: var(--foreground);
|
|
132
|
+
--syntax-sign: var(--muted-foreground);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/* ── Badge palette ──
|
|
136
|
+
Badge's `color` hues (upstream hex, as exact oklch). Constant across
|
|
137
|
+
schemes; the solid variant mixes each 15% into --background. */
|
|
138
|
+
:root {
|
|
139
|
+
--badge-gray: oklch(0.715 0 0);
|
|
140
|
+
--badge-red: oklch(0.637 0.208 25.33);
|
|
141
|
+
--badge-orange: oklch(0.7049 0.1867 47.6);
|
|
142
|
+
--badge-amber: oklch(0.7686 0.1647 70.08);
|
|
143
|
+
--badge-yellow: oklch(0.7952 0.1617 86.05);
|
|
144
|
+
--badge-lime: oklch(0.7681 0.2044 130.85);
|
|
145
|
+
--badge-green: oklch(0.723 0.192 149.58);
|
|
146
|
+
--badge-emerald: oklch(0.6959 0.1491 162.48);
|
|
147
|
+
--badge-teal: oklch(0.704 0.123 182.5);
|
|
148
|
+
--badge-cyan: oklch(0.7148 0.1257 215.22);
|
|
149
|
+
--badge-blue: oklch(0.623 0.188 259.81);
|
|
150
|
+
--badge-indigo: oklch(0.585 0.204 277.12);
|
|
151
|
+
--badge-violet: oklch(0.606 0.219 292.72);
|
|
152
|
+
--badge-purple: oklch(0.627 0.233 303.9);
|
|
153
|
+
--badge-fuchsia: oklch(0.667 0.259 322.15);
|
|
154
|
+
--badge-pink: oklch(0.656 0.212 354.31);
|
|
155
|
+
--badge-rose: oklch(0.645 0.215 16.44);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/* ── Status roles ──
|
|
159
|
+
The toast states, picked from the badge palette (and --destructive /
|
|
160
|
+
--brand) by reference, so a status reads the same wherever it shows. */
|
|
161
|
+
:root {
|
|
162
|
+
--status-success: var(--badge-green);
|
|
163
|
+
--status-loading: var(--badge-gray);
|
|
164
|
+
--status-error: var(--destructive);
|
|
165
|
+
--status-warning: var(--badge-amber);
|
|
166
|
+
--status-info: var(--badge-blue);
|
|
167
|
+
--status-action: var(--brand);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/*
|
|
171
|
+
* Fluid Functionalism motion tokens.
|
|
172
|
+
*
|
|
173
|
+
* Source: mickadesign/fluid-functionalism `registry/default/lib/springs.ts`
|
|
174
|
+
* at commit b3587bdbd83fc66c2a6aae3817ffb856cb09260b — MIT License © 2026
|
|
175
|
+
* Micka Touillaud — fluidfunctionalism.com.
|
|
176
|
+
*
|
|
177
|
+
* FF's motion is JS: the `spring` tiers in lib/springs.ts feed
|
|
178
|
+
* `motion/react`, and components always reach for a tier rather than a
|
|
179
|
+
* hand-written duration. These properties mirror those tiers for CSS
|
|
180
|
+
* consumers and for the tokens page — keep the two in sync.
|
|
181
|
+
*
|
|
182
|
+
* Each tier's enter transition is a spring of the given duration; its exit is
|
|
183
|
+
* a plain tween one step quicker, so a dismissal reads as crisp and final.
|
|
184
|
+
* fast 80ms enter, 60ms exit — critically damped (bounce 0)
|
|
185
|
+
* moderate 160ms enter, 120ms exit — critically damped (bounce 0): panels,
|
|
186
|
+
* dropdowns, tabs, merged selection backgrounds
|
|
187
|
+
* slow 240ms enter, 160ms exit — the one tier with a little bounce
|
|
188
|
+
* (bounce 0.12)
|
|
189
|
+
* The bigger the thing that moves, the slower the tier.
|
|
190
|
+
*
|
|
191
|
+
* Local addition: `goo`, the morph engine's tier for the goo effect — 250ms
|
|
192
|
+
* to land (bounce 0.15), a 200ms spring back — so the liquid neck reads.
|
|
193
|
+
*/
|
|
194
|
+
|
|
195
|
+
:root {
|
|
196
|
+
--duration-fast: 80ms;
|
|
197
|
+
--duration-fast-exit: 60ms;
|
|
198
|
+
--duration-moderate: 160ms;
|
|
199
|
+
--duration-moderate-exit: 120ms;
|
|
200
|
+
--duration-slow: 240ms;
|
|
201
|
+
--duration-slow-exit: 160ms;
|
|
202
|
+
--duration-goo: 250ms;
|
|
203
|
+
--duration-goo-exit: 200ms;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
:root {
|
|
207
|
+
/* Fluid Functionalism's corner token (upstream tokens/radius.css). */
|
|
208
|
+
--radius: 0.625rem;
|
|
209
|
+
|
|
210
|
+
/* Small-box corners between wind4's xs (2px) and md (6px) steps, read by
|
|
211
|
+
the `rounded-box|glyph` utility in preset.ts: checkbox squares and
|
|
212
|
+
keycaps, and the composer's stop glyph. */
|
|
213
|
+
--radius-box: 5px;
|
|
214
|
+
--radius-glyph: 3px;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
:root {
|
|
218
|
+
/* The docs chrome's spacing rhythm (AGENTS.md generic tokens). */
|
|
219
|
+
--space-1: 4px;
|
|
220
|
+
--space-2: 8px;
|
|
221
|
+
--space-3: 12px;
|
|
222
|
+
--space-4: 16px;
|
|
223
|
+
--space-5: 24px;
|
|
224
|
+
--space-6: 32px;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/*
|
|
228
|
+
* Fluid Functionalism type tokens.
|
|
229
|
+
*
|
|
230
|
+
* Source: mickadesign/fluid-functionalism `app/globals.css` §3–4 (`--font-sans`,
|
|
231
|
+
* the `--fs-*` type-scale roles and their `@utility text-*` classes) at commit
|
|
232
|
+
* b3587bdbd83fc66c2a6aae3817ffb856cb09260b — MIT License © 2026 Micka
|
|
233
|
+
* Touillaud — fluidfunctionalism.com.
|
|
234
|
+
*
|
|
235
|
+
* Local changes:
|
|
236
|
+
* - The family is Inter Variable from @fontsource-variable/inter/opsz
|
|
237
|
+
* (imported in base.css) instead of upstream's self-hosted
|
|
238
|
+
* InterVariable.ttf. The opsz build matters: the `--weight-*` ladder sets
|
|
239
|
+
* both the wght and opsz axes.
|
|
240
|
+
* - The role sizes are renamed `--fs-*` → `--text-*` and read by the
|
|
241
|
+
* `text-<role>[-compact]` utility in preset.ts. They hold both columns of
|
|
242
|
+
* `typeScale` in lib/size-context.tsx (keep the two in sync), so a
|
|
243
|
+
* component's `compact ? … : …` picks a token on either side. Upstream's
|
|
244
|
+
* site-chrome extras — the 22px mobile display step and the
|
|
245
|
+
* `html[data-size="compact"]` override set by the docs site's
|
|
246
|
+
* SizeAttribute — are not carried over.
|
|
247
|
+
* - `micro` (keycaps, one notch below caption) is a local role.
|
|
248
|
+
* - Each role's line-height (FF's typography page: 28/34, 16/22, 14/20,
|
|
249
|
+
* 13/20, 12/16) is a `--leading-*` token, emitted by the same
|
|
250
|
+
* `text-<role>` rule; the compact step keeps its role's leading.
|
|
251
|
+
* - The docs chrome's element roles (`--font-size-<el>`, `--line-height-<el>`,
|
|
252
|
+
* `--font-weight-<el>`, `--color-<el>`) reference these, following FF's
|
|
253
|
+
* rules: headings in foreground, text muted.
|
|
254
|
+
* - Upstream's `fontWeights` (lib/font-weight.ts, fontVariationSettings
|
|
255
|
+
* strings) become the `--weight-*` variation settings, read by the
|
|
256
|
+
* `weight-*` utility in preset.ts. Each derives its wght from
|
|
257
|
+
* `--font-weight-*`, the plain font-weight form the docs chrome reads.
|
|
258
|
+
*/
|
|
259
|
+
|
|
260
|
+
:root {
|
|
261
|
+
--font-sans: "Inter Variable", ui-sans-serif, system-ui, sans-serif;
|
|
262
|
+
--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;
|
|
263
|
+
|
|
264
|
+
/* Page titles. */
|
|
265
|
+
--text-display: 28px;
|
|
266
|
+
/* Section headings, dialog titles. */
|
|
267
|
+
--text-title: 16px;
|
|
268
|
+
/* Card titles, emphasized rows. */
|
|
269
|
+
--text-subtitle: 14px;
|
|
270
|
+
/* Control labels and body copy. */
|
|
271
|
+
--text-body: 13px;
|
|
272
|
+
/* Secondary text: descriptions, meta rows, errors, group labels. */
|
|
273
|
+
--text-caption: 12px;
|
|
274
|
+
/* Keycaps and chips. */
|
|
275
|
+
--text-micro: 11px;
|
|
276
|
+
|
|
277
|
+
/* Each role's paired line-height. */
|
|
278
|
+
--leading-display: 34px;
|
|
279
|
+
--leading-title: 22px;
|
|
280
|
+
--leading-subtitle: 20px;
|
|
281
|
+
--leading-body: 20px;
|
|
282
|
+
--leading-caption: 16px;
|
|
283
|
+
--leading-micro: 14px;
|
|
284
|
+
|
|
285
|
+
/* The compact step: each role one notch down. */
|
|
286
|
+
--text-display-compact: 24px;
|
|
287
|
+
--text-title-compact: 15px;
|
|
288
|
+
--text-subtitle-compact: 13px;
|
|
289
|
+
--text-body-compact: 12px;
|
|
290
|
+
--text-caption-compact: 11px;
|
|
291
|
+
--text-micro-compact: 10px;
|
|
292
|
+
|
|
293
|
+
/* Inter variable weights, each paired with the opsz that keeps a label's
|
|
294
|
+
advance width steady as it changes weight. */
|
|
295
|
+
--font-weight-normal: 400;
|
|
296
|
+
--font-weight-medium: 450;
|
|
297
|
+
--font-weight-semibold: 550;
|
|
298
|
+
--font-weight-bold: 700;
|
|
299
|
+
--weight-normal: "wght" var(--font-weight-normal), "opsz" 14;
|
|
300
|
+
--weight-medium: "wght" var(--font-weight-medium), "opsz" 15;
|
|
301
|
+
--weight-semibold: "wght" var(--font-weight-semibold), "opsz" 18;
|
|
302
|
+
--weight-bold: "wght" var(--font-weight-bold), "opsz" 25;
|
|
303
|
+
|
|
304
|
+
/* The docs chrome's elements (modo's type contract), on the roles above. */
|
|
305
|
+
--font-size-h1: var(--text-display);
|
|
306
|
+
--line-height-h1: var(--leading-display);
|
|
307
|
+
--font-weight-h1: var(--font-weight-bold);
|
|
308
|
+
--color-h1: var(--foreground);
|
|
309
|
+
|
|
310
|
+
--font-size-h2: var(--text-title);
|
|
311
|
+
--line-height-h2: var(--leading-title);
|
|
312
|
+
--font-weight-h2: var(--font-weight-semibold);
|
|
313
|
+
--color-h2: var(--foreground);
|
|
314
|
+
|
|
315
|
+
--font-size-h3: var(--text-subtitle);
|
|
316
|
+
--line-height-h3: var(--leading-subtitle);
|
|
317
|
+
--font-weight-h3: var(--font-weight-semibold);
|
|
318
|
+
--color-h3: var(--foreground);
|
|
319
|
+
|
|
320
|
+
--font-size-h4: var(--text-body);
|
|
321
|
+
--line-height-h4: var(--leading-body);
|
|
322
|
+
--font-weight-h4: var(--font-weight-semibold);
|
|
323
|
+
--color-h4: var(--foreground);
|
|
324
|
+
|
|
325
|
+
--font-size-p: var(--text-body);
|
|
326
|
+
--line-height-p: var(--leading-body);
|
|
327
|
+
--font-weight-p: var(--font-weight-normal);
|
|
328
|
+
--color-p: var(--muted-foreground);
|
|
329
|
+
|
|
330
|
+
--font-size-lead: var(--text-body);
|
|
331
|
+
--line-height-lead: var(--leading-body);
|
|
332
|
+
--font-weight-lead: var(--font-weight-normal);
|
|
333
|
+
--color-lead: var(--muted-foreground);
|
|
334
|
+
|
|
335
|
+
--font-size-eyebrow: var(--text-caption);
|
|
336
|
+
--line-height-eyebrow: var(--leading-caption);
|
|
337
|
+
--font-weight-eyebrow: var(--font-weight-medium);
|
|
338
|
+
--color-eyebrow: var(--muted-foreground);
|
|
339
|
+
|
|
340
|
+
--font-size-sm: var(--text-caption);
|
|
341
|
+
--line-height-sm: var(--leading-caption);
|
|
342
|
+
|
|
343
|
+
--font-size-xs: var(--text-micro);
|
|
344
|
+
--line-height-xs: var(--leading-micro);
|
|
345
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,105 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@justanarthur/modo-ui",
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"description": "
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"description": "Fluid Functionalism (Base UI flavor, MIT © 2026 Micka Touillaud) ported to UnoCSS: motion springs, fluid hover, a two-step size ladder and an eight-level elevated surface system. Documented with modo.",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"design-system",
|
|
9
|
+
"react",
|
|
10
|
+
"components",
|
|
11
|
+
"base-ui",
|
|
12
|
+
"unocss",
|
|
13
|
+
"tailwindcss",
|
|
14
|
+
"motion",
|
|
15
|
+
"fluid-functionalism"
|
|
16
|
+
],
|
|
17
|
+
"homepage": "https://github.com/justAnArthur/modo/tree/main/ui#readme",
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "git+https://github.com/justAnArthur/modo.git",
|
|
21
|
+
"directory": "ui"
|
|
22
|
+
},
|
|
23
|
+
"bugs": {
|
|
24
|
+
"url": "https://github.com/justAnArthur/modo/issues"
|
|
25
|
+
},
|
|
26
|
+
"author": {
|
|
27
|
+
"name": "justAnArthur",
|
|
28
|
+
"email": "kozubov.arthur@gmail.com"
|
|
29
|
+
},
|
|
30
|
+
"properties": {
|
|
31
|
+
"gitCommitScopeRelatedNames": "ui,modo-ui,@justanarthur/modo-ui,justanarthur/modo-ui"
|
|
32
|
+
},
|
|
33
|
+
"publishConfig": {
|
|
34
|
+
"registry": "https://registry.npmjs.org/",
|
|
35
|
+
"access": "public"
|
|
36
|
+
},
|
|
37
|
+
"files": [
|
|
38
|
+
"dist",
|
|
39
|
+
"README.md",
|
|
40
|
+
"LICENSE*"
|
|
41
|
+
],
|
|
42
|
+
"module": "./dist/index.js",
|
|
43
|
+
"types": "./dist/index.d.ts",
|
|
44
|
+
"exports": {
|
|
45
|
+
".": {
|
|
46
|
+
"types": "./dist/index.d.ts",
|
|
47
|
+
"default": "./dist/index.js"
|
|
48
|
+
},
|
|
49
|
+
"./primitives/*": {
|
|
50
|
+
"types": "./dist/primitives/*/index.d.ts",
|
|
51
|
+
"default": "./dist/primitives/*/index.js"
|
|
52
|
+
},
|
|
53
|
+
"./components/*": {
|
|
54
|
+
"types": "./dist/components/*/index.d.ts",
|
|
55
|
+
"default": "./dist/components/*/index.js"
|
|
56
|
+
},
|
|
57
|
+
"./blocks/*": {
|
|
58
|
+
"types": "./dist/blocks/*/index.d.ts",
|
|
59
|
+
"default": "./dist/blocks/*/index.js"
|
|
60
|
+
},
|
|
61
|
+
"./unocss": {
|
|
62
|
+
"types": "./dist/preset.d.ts",
|
|
63
|
+
"default": "./dist/preset.js"
|
|
64
|
+
},
|
|
65
|
+
"./styles.css": "./dist/styles.css",
|
|
66
|
+
"./base.css": "./dist/base.css",
|
|
67
|
+
"./tokens.css": "./dist/tokens.css",
|
|
68
|
+
"./tailwind.css": "./dist/tailwind.css",
|
|
69
|
+
"./package.json": "./package.json"
|
|
70
|
+
},
|
|
71
|
+
"scripts": {
|
|
72
|
+
"build": "rm -rf dist && NODE_ENV=production bunup && bun scripts/build-css.ts",
|
|
73
|
+
"build:docs": "modo build --out docs-dist",
|
|
74
|
+
"dev": "modo dev",
|
|
75
|
+
"check": "tsc --noEmit"
|
|
76
|
+
},
|
|
77
|
+
"dependencies": {
|
|
78
|
+
"@base-ui/react": "1.4.1",
|
|
79
|
+
"@fontsource-variable/inter": "^5.3.0",
|
|
80
|
+
"class-variance-authority": "^0.7.1",
|
|
81
|
+
"cn": "^0.3.0",
|
|
82
|
+
"date-fns": "^4.4.0",
|
|
83
|
+
"lucide-react": "^1.47.0",
|
|
84
|
+
"motion": "^13.4.0",
|
|
85
|
+
"pdfjs-dist": "^5.7.284",
|
|
86
|
+
"react-day-picker": "^10.0.2",
|
|
87
|
+
"sugar-high": "^2.5.1"
|
|
88
|
+
},
|
|
89
|
+
"peerDependencies": {
|
|
90
|
+
"react": ">=18",
|
|
91
|
+
"react-dom": ">=18"
|
|
92
|
+
},
|
|
93
|
+
"devDependencies": {
|
|
94
|
+
"@justanarthur/modo": "0.7.3",
|
|
95
|
+
"@types/react": "^18.3.0",
|
|
96
|
+
"@types/react-dom": "^18.3.0",
|
|
97
|
+
"bunup": "^0.16.0",
|
|
98
|
+
"esbuild": "^0.20.0",
|
|
99
|
+
"react": "^18.3.0",
|
|
100
|
+
"react-dom": "^18.3.0",
|
|
101
|
+
"typescript": "^5.4.0",
|
|
102
|
+
"unocss": "66.10.5",
|
|
103
|
+
"vite": "^5.4.0"
|
|
104
|
+
}
|
|
6
105
|
}
|