@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/backends/gui/button.d.ts +3 -3
- package/dist/backends/gui/card.d.ts.map +1 -1
- package/dist/backends/gui/card.js.map +1 -1
- package/dist/backends/gui/command.js.map +1 -1
- package/dist/backends/gui/context-menu.d.ts +3 -3
- package/dist/backends/gui/dropdown-menu.d.ts +4 -4
- package/dist/backends/gui/resizable.cjs +4 -1
- package/dist/backends/gui/resizable.d.ts.map +1 -1
- package/dist/backends/gui/resizable.js +4 -1
- package/dist/backends/gui/resizable.js.map +1 -1
- package/dist/backends/gui/scroll-area.d.ts.map +1 -1
- package/dist/backends/gui/scroll-area.js.map +1 -1
- package/dist/backends/gui/textarea.js.map +1 -1
- package/dist/box.cjs +31 -0
- package/dist/box.d.ts +26 -0
- package/dist/box.d.ts.map +1 -0
- package/dist/box.js +29 -0
- package/dist/box.js.map +1 -0
- package/dist/chat/Thread.d.ts.map +1 -1
- package/dist/chat/Thread.js.map +1 -1
- package/dist/gallery.cjs +2 -1
- package/dist/gallery.d.ts.map +1 -1
- package/dist/gallery.js +2 -1
- package/dist/gallery.js.map +1 -1
- package/dist/gui-config.d.ts +458 -458
- package/dist/index.cjs +5 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/models/ModelSelector.js.map +1 -1
- package/dist/styles.css +10 -0
- package/dist/tw.cjs +468 -0
- package/dist/tw.d.ts +31 -0
- package/dist/tw.d.ts.map +1 -0
- package/dist/tw.js +466 -0
- package/dist/tw.js.map +1 -0
- package/package.json +10 -2
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
|
package/dist/tw.d.ts.map
ADDED
|
@@ -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.
|
|
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",
|