@hanzo/ui 8.0.83 → 8.0.86

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/tw.d.ts ADDED
@@ -0,0 +1,31 @@
1
+ /**
2
+ * A utility class and a gui style prop are two notations for one value: `px-4`
3
+ * and `px={16}` say the same thing. This is the function between them.
4
+ *
5
+ * It exists so an app carrying a hundred thousand utility classes can render
6
+ * through gui without either rewriting every class first or keeping a second
7
+ * styling engine around to read them. Convert the notation, delete the engine.
8
+ *
9
+ * Values are CONCRETE — `p-4` is 16, not `$4`. The token scale is where these
10
+ * apps are going, but a token substitution moves every measurement on the page
11
+ * at the same time as the engine underneath it changes, and then nothing
12
+ * identifies which of the two moved it. Retheming is its own step.
13
+ *
14
+ * A class this does not know is returned in `rest`, never dropped. A caller
15
+ * passes it through as a class name, so an unconverted page degrades to what it
16
+ * does today rather than to an unstyled one.
17
+ */
18
+ export type Props = Record<string, unknown>;
19
+ /** Recognized props, plus the classes that stay class names. */
20
+ export type Parsed = {
21
+ props: Props;
22
+ rest: string;
23
+ };
24
+ export type ClassValue = string | number | null | undefined | false | ClassValue[] | Record<string, unknown>;
25
+ /**
26
+ * `tw('flex items-center gap-4 md:gap-8 hover:bg-muted')` becomes
27
+ * `{ display, flexDirection, alignItems, gap, $md: { gap }, hoverStyle: { backgroundColor } }`.
28
+ */
29
+ export declare function tw(input: ClassValue): Parsed;
30
+ export default tw;
31
+ //# sourceMappingURL=tw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tw.d.ts","sourceRoot":"","sources":["../src/tw.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE3C,gEAAgE;AAChE,MAAM,MAAM,MAAM,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAiUnD,MAAM,MAAM,UAAU,GAClB,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,GAC1C,UAAU,EAAE,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAY3B;;;GAGG;AACH,wBAAgB,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAyC5C;AAED,eAAe,EAAE,CAAA"}
package/dist/tw.js ADDED
@@ -0,0 +1,466 @@
1
+ 'use client';/**
2
+ * A utility class and a gui style prop are two notations for one value: `px-4`
3
+ * and `px={16}` say the same thing. This is the function between them.
4
+ *
5
+ * It exists so an app carrying a hundred thousand utility classes can render
6
+ * through gui without either rewriting every class first or keeping a second
7
+ * styling engine around to read them. Convert the notation, delete the engine.
8
+ *
9
+ * Values are CONCRETE — `p-4` is 16, not `$4`. The token scale is where these
10
+ * apps are going, but a token substitution moves every measurement on the page
11
+ * at the same time as the engine underneath it changes, and then nothing
12
+ * identifies which of the two moved it. Retheming is its own step.
13
+ *
14
+ * A class this does not know is returned in `rest`, never dropped. A caller
15
+ * passes it through as a class name, so an unconverted page degrades to what it
16
+ * does today rather than to an unstyled one.
17
+ */
18
+ /** Tailwind's 4px ramp, and the three fractional stops below it. */
19
+ const SPACE = {
20
+ '0': 0, px: 1, '0.5': 2, '1': 4, '1.5': 6, '2': 8, '2.5': 10, '3': 12,
21
+ '3.5': 14, '4': 16, '5': 20, '6': 24, '7': 28, '8': 32, '9': 36, '10': 40,
22
+ '11': 44, '12': 48, '14': 56, '16': 64, '20': 80, '24': 96, '28': 112,
23
+ '32': 128, '36': 144, '40': 160, '44': 176, '48': 192, '52': 208, '56': 224,
24
+ '60': 240, '64': 256, '72': 288, '80': 320, '96': 384,
25
+ };
26
+ const FONT_SIZE = {
27
+ xs: 12, sm: 14, base: 16, lg: 18, xl: 20, '2xl': 24, '3xl': 30, '4xl': 36,
28
+ '5xl': 48, '6xl': 60, '7xl': 72, '8xl': 96, '9xl': 128,
29
+ };
30
+ const WEIGHT = {
31
+ thin: 100, extralight: 200, light: 300, normal: 400, medium: 500,
32
+ semibold: 600, bold: 700, extrabold: 800, black: 900,
33
+ };
34
+ const RADIUS = {
35
+ none: 0, sm: 2, '': 4, md: 6, lg: 8, xl: 12, '2xl': 16, '3xl': 24, full: 9999,
36
+ };
37
+ const LEADING = {
38
+ none: 1, tight: 1.25, snug: 1.375, normal: 1.5, relaxed: 1.625, loose: 2,
39
+ };
40
+ const TRACKING = {
41
+ tighter: -0.8, tight: -0.4, normal: 0, wide: 0.4, wider: 0.8, widest: 1.6,
42
+ };
43
+ /** Flex words Tailwind and the style property spell differently. */
44
+ const ALIGN = {
45
+ start: 'flex-start', end: 'flex-end', center: 'center',
46
+ between: 'space-between', around: 'space-around', evenly: 'space-evenly',
47
+ stretch: 'stretch', baseline: 'baseline',
48
+ };
49
+ const SIDE = { t: 'Top', r: 'Right', b: 'Bottom', l: 'Left' };
50
+ /** Longest first, so `max-w` wins over `max` and `gap-x` over `gap`. */
51
+ const HEADS = [
52
+ 'min-w', 'min-h', 'max-w', 'max-h', 'grid-cols', 'grid-rows', 'col-span',
53
+ 'row-span', 'translate-x', 'translate-y', 'gap-x', 'gap-y', 'space-x', 'space-y', 'overflow-x', 'overflow-y',
54
+ 'transition', 'duration', 'delay', 'ease', 'blur', 'backdrop-blur', 'shadow',
55
+ 'overflow',
56
+ 'tracking', 'leading', 'rounded', 'border', 'divide', 'aspect', 'object',
57
+ 'whitespace', 'align', 'inset', 'items', 'justify', 'content', 'self',
58
+ 'opacity', 'text', 'font', 'bg', 'gap', 'top', 'right', 'bottom', 'left',
59
+ 'w', 'h', 'z', 'p', 'px', 'py', 'pt', 'pr', 'pb', 'pl',
60
+ 'm', 'mx', 'my', 'mt', 'mr', 'mb', 'ml',
61
+ ].sort((a, b) => b.length - a.length);
62
+ /** Tailwind names the gradient's destination; CSS names its angle. */
63
+ const DIRECTION = {
64
+ t: 'to top', tr: 'to top right', r: 'to right', br: 'to bottom right',
65
+ b: 'to bottom', bl: 'to bottom left', l: 'to left', tl: 'to top left',
66
+ };
67
+ const FAMILY = {
68
+ sans: 'var(--font-sans)', serif: 'var(--font-serif)', mono: 'var(--font-mono)',
69
+ };
70
+ const DURATION = {
71
+ '0': 0, '75': 75, '100': 100, '150': 150, '200': 200, '300': 300,
72
+ '500': 500, '700': 700, '1000': 1000,
73
+ };
74
+ /** What Tailwind animates under each word. */
75
+ const TRANSITION = {
76
+ none: 'none', all: 'all', DEFAULT: 'color, background-color, border-color, opacity, box-shadow, transform',
77
+ colors: 'color, background-color, border-color, text-decoration-color, fill, stroke',
78
+ opacity: 'opacity',
79
+ shadow: 'box-shadow', transform: 'transform',
80
+ };
81
+ const SHADOW = {
82
+ none: 'none', sm: '0 1px 2px rgb(0 0 0 / .05)',
83
+ DEFAULT: '0 1px 3px rgb(0 0 0 / .1), 0 1px 2px rgb(0 0 0 / .06)',
84
+ md: '0 4px 6px rgb(0 0 0 / .1), 0 2px 4px rgb(0 0 0 / .06)',
85
+ lg: '0 10px 15px rgb(0 0 0 / .1), 0 4px 6px rgb(0 0 0 / .05)',
86
+ xl: '0 20px 25px rgb(0 0 0 / .1), 0 10px 10px rgb(0 0 0 / .04)',
87
+ '2xl': '0 25px 50px rgb(0 0 0 / .25)', inner: 'inset 0 2px 4px rgb(0 0 0 / .06)',
88
+ };
89
+ const BLUR = {
90
+ none: 0, xs: 4, sm: 8, DEFAULT: 8, md: 12, lg: 16, xl: 24, '2xl': 40, '3xl': 64,
91
+ };
92
+ /** A size word, a fraction, or a step on the ramp. */
93
+ function size(v) {
94
+ if (v === 'full')
95
+ return '100%';
96
+ if (v === 'screen')
97
+ return '100vh';
98
+ if (v === 'auto' || v === 'fit' || v === 'min' || v === 'max')
99
+ return v === 'fit' ? 'fit-content' : v;
100
+ if (v in SPACE)
101
+ return SPACE[v];
102
+ const frac = /^(\d+)\/(\d+)$/.exec(v);
103
+ if (frac)
104
+ return `${((+frac[1] / +frac[2]) * 100).toFixed(4).replace(/\.?0+$/, '')}%`;
105
+ const arb = /^\[(.+)]$/.exec(v);
106
+ if (arb)
107
+ return arb[1];
108
+ return undefined;
109
+ }
110
+ /**
111
+ * A colour is a CSS custom property, so `text-foreground` stays exactly the
112
+ * value the sheet already resolves — the palette is not restated here. The
113
+ * `/NN` suffix is an alpha, which `color-mix` applies without needing to know
114
+ * what the variable holds.
115
+ */
116
+ function color(v) {
117
+ if (v === 'transparent')
118
+ return 'transparent';
119
+ if (v === 'current')
120
+ return 'currentColor';
121
+ if (v === 'white')
122
+ return '#fff';
123
+ if (v === 'black')
124
+ return '#000';
125
+ const m = /^(.+?)(?:\/(\d{1,3}))?$/.exec(v);
126
+ if (!m)
127
+ return undefined;
128
+ const [, name, alpha] = m;
129
+ const arb = /^\[(.+)]$/.exec(name);
130
+ const base = arb ? arb[1]
131
+ : name === 'white' ? '#fff' : name === 'black' ? '#000'
132
+ : `var(--${name})`;
133
+ if (!alpha)
134
+ return base;
135
+ return `color-mix(in srgb, ${base} ${alpha}%, transparent)`;
136
+ }
137
+ /** Properties a negative class may set — the rest have no negative form. */
138
+ const NEGATABLE = /^(margin|top|right|bottom|left|zIndex|translate)/;
139
+ /** One class to zero or more props. Returns null when the class is unknown. */
140
+ function one(c) {
141
+ // display and the flex words
142
+ switch (c) {
143
+ case 'flex': return { display: 'flex', flexDirection: 'row' };
144
+ case 'inline-flex': return { display: 'inline-flex', flexDirection: 'row' };
145
+ case 'grid': return { display: 'grid' };
146
+ case 'block': return { display: 'block' };
147
+ case 'inline': return { display: 'inline' };
148
+ case 'inline-block': return { display: 'inline-block' };
149
+ case 'hidden': return { display: 'none' };
150
+ case 'flex-col': return { flexDirection: 'column' };
151
+ case 'flex-row': return { flexDirection: 'row' };
152
+ case 'flex-col-reverse': return { flexDirection: 'column-reverse' };
153
+ case 'flex-row-reverse': return { flexDirection: 'row-reverse' };
154
+ case 'flex-wrap': return { flexWrap: 'wrap' };
155
+ case 'flex-nowrap': return { flexWrap: 'nowrap' };
156
+ case 'flex-1': return { flex: 1 };
157
+ case 'flex-auto': return { flex: 'auto' };
158
+ case 'flex-none': return { flex: 'none' };
159
+ case 'flex-initial': return { flex: 'initial' };
160
+ case 'flex-shrink-0':
161
+ case 'shrink-0': return { flexShrink: 0 };
162
+ case 'flex-grow':
163
+ case 'grow': return { flexGrow: 1 };
164
+ case 'flex-grow-0':
165
+ case 'grow-0': return { flexGrow: 0 };
166
+ case 'absolute': return { position: 'absolute' };
167
+ case 'relative': return { position: 'relative' };
168
+ case 'fixed': return { position: 'fixed' };
169
+ case 'sticky': return { position: 'sticky' };
170
+ case 'static': return { position: 'static' };
171
+ case 'inset-0': return { top: 0, right: 0, bottom: 0, left: 0 };
172
+ case 'uppercase': return { textTransform: 'uppercase' };
173
+ case 'lowercase': return { textTransform: 'lowercase' };
174
+ case 'capitalize': return { textTransform: 'capitalize' };
175
+ case 'normal-case': return { textTransform: 'none' };
176
+ case 'italic': return { fontStyle: 'italic' };
177
+ case 'not-italic': return { fontStyle: 'normal' };
178
+ case 'underline': return { textDecorationLine: 'underline' };
179
+ case 'line-through': return { textDecorationLine: 'line-through' };
180
+ case 'no-underline': return { textDecorationLine: 'none' };
181
+ case 'truncate': return { overflow: 'hidden', whiteSpace: 'nowrap', textOverflow: 'ellipsis' };
182
+ case 'mx-auto': return { marginLeft: 'auto', marginRight: 'auto' };
183
+ case 'my-auto': return { marginTop: 'auto', marginBottom: 'auto' };
184
+ case 'border': return { borderWidth: 1 };
185
+ case 'rounded': return { borderRadius: RADIUS[''] };
186
+ case 'cursor-pointer': return { cursor: 'pointer' };
187
+ case 'select-none': return { userSelect: 'none' };
188
+ case 'pointer-events-none': return { pointerEvents: 'none' };
189
+ case 'sr-only': return { position: 'absolute', width: 1, height: 1, overflow: 'hidden' };
190
+ case 'tabular-nums': return { fontVariantNumeric: 'tabular-nums' };
191
+ case 'transform': return { transform: 'translateZ(0)' };
192
+ case 'transition': return { transitionProperty: TRANSITION.DEFAULT };
193
+ case 'blur': return { filter: `blur(${BLUR.DEFAULT}px)` };
194
+ case 'shadow': return { boxShadow: SHADOW.DEFAULT };
195
+ }
196
+ // A leading `-` negates whatever the rest of the class resolves to.
197
+ if (c.startsWith('-')) {
198
+ const pos = one(c.slice(1));
199
+ if (!pos)
200
+ return null;
201
+ const out = {};
202
+ for (const k in pos) {
203
+ const v = pos[k];
204
+ out[k] = typeof v === 'number' && NEGATABLE.test(k) ? -v
205
+ : typeof v === 'string' && /^[\d.]+%$/.test(v) && NEGATABLE.test(k) ? `-${v}`
206
+ : v;
207
+ }
208
+ return out;
209
+ }
210
+ // Heads are matched longest-first. A shortest-match split reads `max-w-3xl`
211
+ // as `max` + `w-3xl`, so every compound head silently fell through.
212
+ let head = '', v = '';
213
+ for (const h of HEADS) {
214
+ if (c.length > h.length + 1 && c.startsWith(h + '-')) {
215
+ head = h;
216
+ v = c.slice(h.length + 1);
217
+ break;
218
+ }
219
+ }
220
+ if (!head)
221
+ return null;
222
+ // padding and margin, whole box or one side
223
+ const box = /^([pm])([xytrbl])?$/.exec(head);
224
+ if (box) {
225
+ const [, kind, where] = box;
226
+ const n = v === 'auto' ? 'auto' : SPACE[v] ?? size(v);
227
+ if (n === undefined)
228
+ return null;
229
+ const base = kind === 'p' ? 'padding' : 'margin';
230
+ if (!where)
231
+ return { [base]: n };
232
+ if (where === 'x')
233
+ return { [`${base}Left`]: n, [`${base}Right`]: n };
234
+ if (where === 'y')
235
+ return { [`${base}Top`]: n, [`${base}Bottom`]: n };
236
+ return { [`${base}${SIDE[where]}`]: n };
237
+ }
238
+ switch (head) {
239
+ case 'gap': {
240
+ const n = SPACE[v] ?? size(v);
241
+ return n === undefined ? null : { gap: n };
242
+ }
243
+ case 'gap-x': {
244
+ const n = SPACE[v] ?? size(v);
245
+ return n === undefined ? null : { columnGap: n };
246
+ }
247
+ case 'gap-y': {
248
+ const n = SPACE[v] ?? size(v);
249
+ return n === undefined ? null : { rowGap: n };
250
+ }
251
+ case 'items': return ALIGN[v] ? { alignItems: ALIGN[v] } : null;
252
+ case 'justify': return ALIGN[v] ? { justifyContent: ALIGN[v] } : null;
253
+ case 'self': return ALIGN[v] ? { alignSelf: ALIGN[v] } : null;
254
+ case 'content': return ALIGN[v] ? { alignContent: ALIGN[v] } : null;
255
+ case 'w': {
256
+ const n = size(v);
257
+ return n === undefined ? null : { width: n };
258
+ }
259
+ case 'h': {
260
+ const n = v === 'screen' ? '100vh' : size(v);
261
+ return n === undefined ? null : { height: n };
262
+ }
263
+ case 'min-w': {
264
+ const n = size(v);
265
+ return n === undefined ? null : { minWidth: n };
266
+ }
267
+ case 'min-h': {
268
+ const n = v === 'screen' ? '100vh' : size(v);
269
+ return n === undefined ? null : { minHeight: n };
270
+ }
271
+ case 'max-w': {
272
+ const n = MAX_W[v] ?? size(v);
273
+ return n === undefined ? null : { maxWidth: n };
274
+ }
275
+ case 'max-h': {
276
+ const n = v === 'screen' ? '100vh' : size(v);
277
+ return n === undefined ? null : { maxHeight: n };
278
+ }
279
+ case 'text': {
280
+ if (v in FONT_SIZE)
281
+ return { fontSize: FONT_SIZE[v] };
282
+ if (v === 'left' || v === 'center' || v === 'right' || v === 'justify')
283
+ return { textAlign: v };
284
+ const col = color(v);
285
+ return col ? { color: col } : null;
286
+ }
287
+ case 'bg': {
288
+ const col = color(v);
289
+ return col ? { backgroundColor: col } : null;
290
+ }
291
+ case 'font': return WEIGHT[v] !== undefined ? { fontWeight: WEIGHT[v] }
292
+ : FAMILY[v] ? { fontFamily: FAMILY[v] } : null;
293
+ case 'leading': {
294
+ const arb = /^\[(.+)]$/.exec(v);
295
+ const n = arb ? Number(arb[1]) || arb[1] : LEADING[v] ?? SPACE[v];
296
+ return n === undefined ? null : { lineHeight: n };
297
+ }
298
+ case 'tracking': return TRACKING[v] !== undefined ? { letterSpacing: TRACKING[v] } : null;
299
+ case 'rounded': {
300
+ if (v in RADIUS)
301
+ return { borderRadius: RADIUS[v] };
302
+ const side = /^([trbl]|tl|tr|br|bl)-(.+)$/.exec(v);
303
+ if (side && side[2] in RADIUS)
304
+ return { [`border${CORNER[side[1]]}Radius`]: RADIUS[side[2]] };
305
+ return null;
306
+ }
307
+ case 'border': {
308
+ if (/^\d+$/.test(v))
309
+ return { borderWidth: +v };
310
+ const side = /^([trbl])(?:-(\d+))?$/.exec(v);
311
+ if (side)
312
+ return { [`border${SIDE[side[1]]}Width`]: side[2] ? +side[2] : 1 };
313
+ const col = color(v);
314
+ return col ? { borderColor: col } : null;
315
+ }
316
+ case 'opacity': return /^\d+$/.test(v) ? { opacity: +v / 100 } : null;
317
+ case 'z': return /^\d+$/.test(v) ? { zIndex: +v } : null;
318
+ case 'overflow': return { overflow: v };
319
+ case 'overflow-x': return { overflowX: v };
320
+ case 'overflow-y': return { overflowY: v };
321
+ case 'top':
322
+ case 'right':
323
+ case 'bottom':
324
+ case 'left': {
325
+ const n = v === 'auto' ? 'auto' : SPACE[v] ?? size(v);
326
+ return n === undefined ? null : { [head]: n };
327
+ }
328
+ case 'inset': {
329
+ const n = SPACE[v] ?? size(v);
330
+ return n === undefined ? null : { top: n, right: n, bottom: n, left: n };
331
+ }
332
+ case 'grid-cols': return /^\d+$/.test(v)
333
+ ? { gridTemplateColumns: `repeat(${v}, minmax(0, 1fr))` } : null;
334
+ case 'grid-rows': return /^\d+$/.test(v)
335
+ ? { gridTemplateRows: `repeat(${v}, minmax(0, 1fr))` } : null;
336
+ case 'col-span': return v === 'full'
337
+ ? { gridColumn: '1 / -1' } : /^\d+$/.test(v) ? { gridColumn: `span ${v} / span ${v}` } : null;
338
+ case 'aspect': return v === 'square' ? { aspectRatio: 1 } : v === 'video' ? { aspectRatio: 16 / 9 } : null;
339
+ case 'object': return { objectFit: v };
340
+ case 'whitespace': return { whiteSpace: v };
341
+ case 'align': return { verticalAlign: v };
342
+ case 'transition': return TRANSITION[v] ? { transitionProperty: TRANSITION[v] } : null;
343
+ case 'duration': return DURATION[v] !== undefined ? { transitionDuration: `${DURATION[v]}ms` } : null;
344
+ case 'delay': return DURATION[v] !== undefined ? { transitionDelay: `${DURATION[v]}ms` } : null;
345
+ case 'blur': return BLUR[v] !== undefined ? { filter: `blur(${BLUR[v]}px)` } : null;
346
+ case 'backdrop-blur': return BLUR[v] !== undefined ? { backdropFilter: `blur(${BLUR[v]}px)` } : null;
347
+ // `space-y` puts the gap on the children's margins; `gap` puts it on the
348
+ // container. The rendering matches wherever the container is flex or grid,
349
+ // which is everywhere these classes are used, and `gap` is the one a stack
350
+ // already speaks.
351
+ case 'space-y': {
352
+ const n = SPACE[v] ?? size(v);
353
+ return n === undefined ? null : { rowGap: n };
354
+ }
355
+ case 'space-x': {
356
+ const n = SPACE[v] ?? size(v);
357
+ return n === undefined ? null : { columnGap: n };
358
+ }
359
+ case 'row-span': return /^\d+$/.test(v) ? { gridRow: `span ${v} / span ${v}` } : null;
360
+ case 'translate-x': {
361
+ const n = SPACE[v] ?? size(v);
362
+ return n === undefined ? null
363
+ : { transform: `translateX(${typeof n === 'number' ? n + 'px' : n})` };
364
+ }
365
+ case 'translate-y': {
366
+ const n = SPACE[v] ?? size(v);
367
+ return n === undefined ? null
368
+ : { transform: `translateY(${typeof n === 'number' ? n + 'px' : n})` };
369
+ }
370
+ case 'shadow': return SHADOW[v] ? { boxShadow: SHADOW[v] } : null;
371
+ }
372
+ return null;
373
+ }
374
+ const MAX_W = {
375
+ none: 'none', xs: 320, sm: 384, md: 448, lg: 512, xl: 576, '2xl': 672,
376
+ '3xl': 768, '4xl': 896, '5xl': 1024, '6xl': 1152, '7xl': 1280, full: '100%',
377
+ prose: '65ch', screen: '100vw',
378
+ };
379
+ const CORNER = {
380
+ t: 'Top', r: 'Right', b: 'Bottom', l: 'Left',
381
+ tl: 'TopLeft', tr: 'TopRight', br: 'BottomRight', bl: 'BottomLeft',
382
+ };
383
+ /** Where a prefixed class lands: a gui media prop, or a pseudo-style. */
384
+ const VARIANT = {
385
+ sm: '$sm', md: '$md', lg: '$lg', xl: '$xl', '2xl': '$2xl',
386
+ hover: 'hoverStyle', focus: 'focusStyle', 'focus-visible': 'focusVisibleStyle',
387
+ active: 'pressStyle', disabled: 'disabledStyle', dark: '$theme-dark',
388
+ 'group-hover': 'groupHoverStyle',
389
+ };
390
+ /** clsx's input shapes, since callers already write class names that way. */
391
+ function flatten(v, out = []) {
392
+ if (!v)
393
+ return out;
394
+ if (typeof v === 'string') {
395
+ for (const s of v.split(/\s+/))
396
+ if (s)
397
+ out.push(s);
398
+ return out;
399
+ }
400
+ if (typeof v === 'number') {
401
+ out.push(String(v));
402
+ return out;
403
+ }
404
+ if (Array.isArray(v)) {
405
+ for (const x of v)
406
+ flatten(x, out);
407
+ return out;
408
+ }
409
+ for (const k in v)
410
+ if (v[k])
411
+ out.push(k);
412
+ return out;
413
+ }
414
+ /**
415
+ * `tw('flex items-center gap-4 md:gap-8 hover:bg-muted')` becomes
416
+ * `{ display, flexDirection, alignItems, gap, $md: { gap }, hoverStyle: { backgroundColor } }`.
417
+ */
418
+ export function tw(input) {
419
+ const props = {};
420
+ const rest = [];
421
+ // A gradient is the one value spelled across several classes — a direction
422
+ // and its stops — so it is assembled here rather than in `one`, which sees
423
+ // a single class and could only ever produce a fragment of it.
424
+ const grad = {};
425
+ for (const raw of flatten(input)) {
426
+ // A class may carry several prefixes; the last one is the variant that
427
+ // decides where it lands, and an unknown prefix keeps the whole class.
428
+ const parts = raw.split(':');
429
+ const bare = parts.pop();
430
+ if (!parts.length) {
431
+ const g = /^(?:bg-gradient-to-([a-z]{1,2})|(from|via|to)-(.+))$/.exec(bare);
432
+ if (g) {
433
+ if (g[1])
434
+ grad.dir = DIRECTION[g[1]];
435
+ else
436
+ grad[g[2]] = color(g[3]);
437
+ continue;
438
+ }
439
+ }
440
+ const found = one(bare);
441
+ if (!found) {
442
+ rest.push(raw);
443
+ continue;
444
+ }
445
+ if (!parts.length) {
446
+ Object.assign(props, found);
447
+ continue;
448
+ }
449
+ const key = VARIANT[parts[parts.length - 1]];
450
+ if (!key) {
451
+ rest.push(raw);
452
+ continue;
453
+ }
454
+ const bucket = (props[key] ??= {});
455
+ Object.assign(bucket, found);
456
+ }
457
+ // A stop with no direction still reads as a gradient; Tailwind's own
458
+ // default is left-to-right.
459
+ const stops = [grad.from, grad.via, grad.to].filter(Boolean);
460
+ if (stops.length > 1) {
461
+ props.backgroundImage = `linear-gradient(${grad.dir ?? 'to right'}, ${stops.join(', ')})`;
462
+ }
463
+ return { props, rest: rest.join(' ') };
464
+ }
465
+ export default tw;
466
+ //# sourceMappingURL=tw.js.map
package/dist/tw.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tw.js","sourceRoot":"","sources":["../src/tw.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hanzo/ui",
3
- "version": "8.0.83",
3
+ "version": "8.0.86",
4
4
  "type": "module",
5
5
  "description": "Hanzo UI — the one canonical Hanzo component library, on @hanzo/gui + @hanzo/design. ONE substrate: every component renders through @hanzo/gui primitives, so the same import works on web, native (expo) and desktop (Tauri). Self-contained (theme.css), presentational, host-agnostic, clean-room.",
6
6
  "exports": {
@@ -171,7 +171,13 @@
171
171
  "default": "./dist/telemetry.js"
172
172
  },
173
173
  "./styles/motion.css": "./dist/styles/motion.css",
174
- "./package.json": "./package.json"
174
+ "./package.json": "./package.json",
175
+ "./tw": {
176
+ "types": "./dist/tw.d.ts",
177
+ "import": "./dist/tw.js",
178
+ "require": "./dist/tw.cjs",
179
+ "default": "./dist/tw.js"
180
+ }
175
181
  },
176
182
  "main": "./dist/index.cjs",
177
183
  "module": "./dist/index.js",
@@ -238,8 +244,10 @@
238
244
  }
239
245
  },
240
246
  "devDependencies": {
247
+ "@hanzo/dashboard": "^0.2.0",
241
248
  "@hanzo/data": "1.2.3",
242
249
  "@hanzo/gui": "8.1.0",
250
+ "@hanzo/usage": "^0.1.6",
243
251
  "@hanzogui/config": "8.1.0",
244
252
  "@hanzogui/core": "8.1.0",
245
253
  "@hanzogui/lucide-icons-2": "8.1.0",