@urbicon-ui/blocks 6.21.2 → 6.21.3
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/primitives/Avatar/avatar.variants.d.ts +6 -6
- package/dist/primitives/Badge/Badge.svelte +6 -4
- package/dist/primitives/Button/button.variants.d.ts +4 -4
- package/dist/primitives/ButtonGroup/index.d.ts +1 -1
- package/dist/primitives/Card/card.variants.d.ts +5 -5
- package/dist/primitives/Combobox/combobox.variants.d.ts +24 -24
- package/dist/primitives/Dialog/dialog.variants.d.ts +9 -9
- package/dist/primitives/Input/input.variants.d.ts +9 -9
- package/dist/primitives/Popover/Popover.svelte +24 -3
- package/dist/primitives/Select/select.variants.d.ts +17 -17
- package/dist/primitives/Skeleton/skeleton.variants.d.ts +3 -3
- package/dist/primitives/Spinner/spinner.variants.d.ts +16 -16
- package/dist/primitives/Textarea/Textarea.svelte +10 -1
- package/dist/primitives/Textarea/textarea.variants.d.ts +7 -7
- package/dist/primitives/Toolbar/toolbar.variants.d.ts +6 -6
- package/dist/style/semantic.css +55 -29
- package/dist/utils/figma-token-export.d.ts +13 -0
- package/dist/utils/figma-token-export.js +99 -26
- package/package.json +3 -3
|
@@ -184,7 +184,7 @@
|
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
if (!wasTrigger) {
|
|
187
|
-
|
|
187
|
+
focusTrigger();
|
|
188
188
|
}
|
|
189
189
|
}
|
|
190
190
|
}
|
|
@@ -219,7 +219,7 @@
|
|
|
219
219
|
open = false;
|
|
220
220
|
onOpenChange?.(false);
|
|
221
221
|
onEscapeProp?.();
|
|
222
|
-
|
|
222
|
+
focusTrigger();
|
|
223
223
|
}
|
|
224
224
|
document.addEventListener('keydown', handleEscape);
|
|
225
225
|
return () => document.removeEventListener('keydown', handleEscape);
|
|
@@ -276,8 +276,29 @@
|
|
|
276
276
|
|
|
277
277
|
// ── Trigger handlers ───────────────────────────────────────
|
|
278
278
|
|
|
279
|
+
// Restore focus to the trigger after a dismiss. The snippet trigger is
|
|
280
|
+
// wrapped in a plain (non-focusable) div — `focus()` on it is a spec no-op —
|
|
281
|
+
// so target the interactive descendant instead (same query as the
|
|
282
|
+
// aria-expanded effect). An external `triggerElement` is the consumer's
|
|
283
|
+
// real control: focus it directly.
|
|
284
|
+
function focusTrigger() {
|
|
285
|
+
const target =
|
|
286
|
+
triggerElement ??
|
|
287
|
+
internalTriggerElement?.querySelector<HTMLElement>(
|
|
288
|
+
'button, a[href], [role="button"], [tabindex]'
|
|
289
|
+
) ??
|
|
290
|
+
internalTriggerElement;
|
|
291
|
+
target?.focus();
|
|
292
|
+
}
|
|
293
|
+
|
|
279
294
|
function handleTriggerPointerDown() {
|
|
280
|
-
|
|
295
|
+
// Arm the "this pointerdown already dismissed it" guard only in auto
|
|
296
|
+
// mode, where the browser's light dismiss really closes the popover
|
|
297
|
+
// between pointerdown and click (the guard stops that click from
|
|
298
|
+
// re-opening it). In manual mode nothing light-dismisses — the click
|
|
299
|
+
// itself must toggle-close, so arming the guard there left the trigger
|
|
300
|
+
// unable to close its own popover.
|
|
301
|
+
if (open && popoverMode === 'auto') dismissedByTrigger = true;
|
|
281
302
|
}
|
|
282
303
|
|
|
283
304
|
function handleTriggerClick(event: MouseEvent) {
|
|
@@ -2,7 +2,7 @@ import { type SlotNames, type VariantProps } from '../../utils/variants.js';
|
|
|
2
2
|
export declare const selectVariants: ((props?: {
|
|
3
3
|
tier?: "commit" | "modify" | undefined;
|
|
4
4
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
5
|
-
size?: "sm" | "md" | "lg" | "
|
|
5
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
6
6
|
open?: boolean | undefined;
|
|
7
7
|
disabled?: boolean | undefined;
|
|
8
8
|
messageType?: "error" | "helper" | undefined;
|
|
@@ -13,7 +13,7 @@ export declare const selectVariants: ((props?: {
|
|
|
13
13
|
wrapper: (props?: ({
|
|
14
14
|
tier?: "commit" | "modify" | undefined;
|
|
15
15
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
16
|
-
size?: "sm" | "md" | "lg" | "
|
|
16
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
17
17
|
open?: boolean | undefined;
|
|
18
18
|
disabled?: boolean | undefined;
|
|
19
19
|
messageType?: "error" | "helper" | undefined;
|
|
@@ -26,7 +26,7 @@ export declare const selectVariants: ((props?: {
|
|
|
26
26
|
base: (props?: ({
|
|
27
27
|
tier?: "commit" | "modify" | undefined;
|
|
28
28
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
29
|
-
size?: "sm" | "md" | "lg" | "
|
|
29
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
30
30
|
open?: boolean | undefined;
|
|
31
31
|
disabled?: boolean | undefined;
|
|
32
32
|
messageType?: "error" | "helper" | undefined;
|
|
@@ -39,7 +39,7 @@ export declare const selectVariants: ((props?: {
|
|
|
39
39
|
trigger: (props?: ({
|
|
40
40
|
tier?: "commit" | "modify" | undefined;
|
|
41
41
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
42
|
-
size?: "sm" | "md" | "lg" | "
|
|
42
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
43
43
|
open?: boolean | undefined;
|
|
44
44
|
disabled?: boolean | undefined;
|
|
45
45
|
messageType?: "error" | "helper" | undefined;
|
|
@@ -52,7 +52,7 @@ export declare const selectVariants: ((props?: {
|
|
|
52
52
|
triggerText: (props?: ({
|
|
53
53
|
tier?: "commit" | "modify" | undefined;
|
|
54
54
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
55
|
-
size?: "sm" | "md" | "lg" | "
|
|
55
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
56
56
|
open?: boolean | undefined;
|
|
57
57
|
disabled?: boolean | undefined;
|
|
58
58
|
messageType?: "error" | "helper" | undefined;
|
|
@@ -65,7 +65,7 @@ export declare const selectVariants: ((props?: {
|
|
|
65
65
|
placeholder: (props?: ({
|
|
66
66
|
tier?: "commit" | "modify" | undefined;
|
|
67
67
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
68
|
-
size?: "sm" | "md" | "lg" | "
|
|
68
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
69
69
|
open?: boolean | undefined;
|
|
70
70
|
disabled?: boolean | undefined;
|
|
71
71
|
messageType?: "error" | "helper" | undefined;
|
|
@@ -78,7 +78,7 @@ export declare const selectVariants: ((props?: {
|
|
|
78
78
|
chevron: (props?: ({
|
|
79
79
|
tier?: "commit" | "modify" | undefined;
|
|
80
80
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
81
|
-
size?: "sm" | "md" | "lg" | "
|
|
81
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
82
82
|
open?: boolean | undefined;
|
|
83
83
|
disabled?: boolean | undefined;
|
|
84
84
|
messageType?: "error" | "helper" | undefined;
|
|
@@ -91,7 +91,7 @@ export declare const selectVariants: ((props?: {
|
|
|
91
91
|
clear: (props?: ({
|
|
92
92
|
tier?: "commit" | "modify" | undefined;
|
|
93
93
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
94
|
-
size?: "sm" | "md" | "lg" | "
|
|
94
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
95
95
|
open?: boolean | undefined;
|
|
96
96
|
disabled?: boolean | undefined;
|
|
97
97
|
messageType?: "error" | "helper" | undefined;
|
|
@@ -104,7 +104,7 @@ export declare const selectVariants: ((props?: {
|
|
|
104
104
|
listbox: (props?: ({
|
|
105
105
|
tier?: "commit" | "modify" | undefined;
|
|
106
106
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
107
|
-
size?: "sm" | "md" | "lg" | "
|
|
107
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
108
108
|
open?: boolean | undefined;
|
|
109
109
|
disabled?: boolean | undefined;
|
|
110
110
|
messageType?: "error" | "helper" | undefined;
|
|
@@ -117,7 +117,7 @@ export declare const selectVariants: ((props?: {
|
|
|
117
117
|
option: (props?: ({
|
|
118
118
|
tier?: "commit" | "modify" | undefined;
|
|
119
119
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
120
|
-
size?: "sm" | "md" | "lg" | "
|
|
120
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
121
121
|
open?: boolean | undefined;
|
|
122
122
|
disabled?: boolean | undefined;
|
|
123
123
|
messageType?: "error" | "helper" | undefined;
|
|
@@ -130,7 +130,7 @@ export declare const selectVariants: ((props?: {
|
|
|
130
130
|
optionLabel: (props?: ({
|
|
131
131
|
tier?: "commit" | "modify" | undefined;
|
|
132
132
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
133
|
-
size?: "sm" | "md" | "lg" | "
|
|
133
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
134
134
|
open?: boolean | undefined;
|
|
135
135
|
disabled?: boolean | undefined;
|
|
136
136
|
messageType?: "error" | "helper" | undefined;
|
|
@@ -143,7 +143,7 @@ export declare const selectVariants: ((props?: {
|
|
|
143
143
|
optionCheck: (props?: ({
|
|
144
144
|
tier?: "commit" | "modify" | undefined;
|
|
145
145
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
146
|
-
size?: "sm" | "md" | "lg" | "
|
|
146
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
147
147
|
open?: boolean | undefined;
|
|
148
148
|
disabled?: boolean | undefined;
|
|
149
149
|
messageType?: "error" | "helper" | undefined;
|
|
@@ -156,7 +156,7 @@ export declare const selectVariants: ((props?: {
|
|
|
156
156
|
optionCheckbox: (props?: ({
|
|
157
157
|
tier?: "commit" | "modify" | undefined;
|
|
158
158
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
159
|
-
size?: "sm" | "md" | "lg" | "
|
|
159
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
160
160
|
open?: boolean | undefined;
|
|
161
161
|
disabled?: boolean | undefined;
|
|
162
162
|
messageType?: "error" | "helper" | undefined;
|
|
@@ -169,7 +169,7 @@ export declare const selectVariants: ((props?: {
|
|
|
169
169
|
group: (props?: ({
|
|
170
170
|
tier?: "commit" | "modify" | undefined;
|
|
171
171
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
172
|
-
size?: "sm" | "md" | "lg" | "
|
|
172
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
173
173
|
open?: boolean | undefined;
|
|
174
174
|
disabled?: boolean | undefined;
|
|
175
175
|
messageType?: "error" | "helper" | undefined;
|
|
@@ -182,7 +182,7 @@ export declare const selectVariants: ((props?: {
|
|
|
182
182
|
groupLabel: (props?: ({
|
|
183
183
|
tier?: "commit" | "modify" | undefined;
|
|
184
184
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
185
|
-
size?: "sm" | "md" | "lg" | "
|
|
185
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
186
186
|
open?: boolean | undefined;
|
|
187
187
|
disabled?: boolean | undefined;
|
|
188
188
|
messageType?: "error" | "helper" | undefined;
|
|
@@ -195,7 +195,7 @@ export declare const selectVariants: ((props?: {
|
|
|
195
195
|
label: (props?: ({
|
|
196
196
|
tier?: "commit" | "modify" | undefined;
|
|
197
197
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
198
|
-
size?: "sm" | "md" | "lg" | "
|
|
198
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
199
199
|
open?: boolean | undefined;
|
|
200
200
|
disabled?: boolean | undefined;
|
|
201
201
|
messageType?: "error" | "helper" | undefined;
|
|
@@ -208,7 +208,7 @@ export declare const selectVariants: ((props?: {
|
|
|
208
208
|
message: (props?: ({
|
|
209
209
|
tier?: "commit" | "modify" | undefined;
|
|
210
210
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
211
|
-
size?: "sm" | "md" | "lg" | "
|
|
211
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
212
212
|
open?: boolean | undefined;
|
|
213
213
|
disabled?: boolean | undefined;
|
|
214
214
|
messageType?: "error" | "helper" | undefined;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { type SlotNames, type VariantProps } from '../../utils/variants.js';
|
|
2
2
|
export declare const skeletonVariants: ((props?: {
|
|
3
3
|
variant?: "rounded" | "text" | "circular" | "rectangular" | undefined;
|
|
4
|
-
size?: "sm" | "md" | "lg" | "
|
|
4
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
5
5
|
animation?: "none" | "pulse" | "wave" | undefined;
|
|
6
6
|
} | undefined) => {
|
|
7
7
|
base: (props?: ({
|
|
8
8
|
variant?: "rounded" | "text" | "circular" | "rectangular" | undefined;
|
|
9
|
-
size?: "sm" | "md" | "lg" | "
|
|
9
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
10
10
|
animation?: "none" | "pulse" | "wave" | undefined;
|
|
11
11
|
} & {
|
|
12
12
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
13
13
|
}) | undefined) => string;
|
|
14
14
|
wrapper: (props?: ({
|
|
15
15
|
variant?: "rounded" | "text" | "circular" | "rectangular" | undefined;
|
|
16
|
-
size?: "sm" | "md" | "lg" | "
|
|
16
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
17
17
|
animation?: "none" | "pulse" | "wave" | undefined;
|
|
18
18
|
} & {
|
|
19
19
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { type SlotNames, type VariantProps } from '../../utils/variants.js';
|
|
2
2
|
export declare const spinnerVariants: ((props?: {
|
|
3
3
|
variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
|
|
4
|
-
size?: "sm" | "md" | "lg" | "
|
|
4
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
5
5
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
|
|
6
6
|
speed?: "fast" | "slow" | "normal" | undefined;
|
|
7
7
|
} | undefined) => {
|
|
8
8
|
base: (props?: ({
|
|
9
9
|
variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
|
|
10
|
-
size?: "sm" | "md" | "lg" | "
|
|
10
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
11
11
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
|
|
12
12
|
speed?: "fast" | "slow" | "normal" | undefined;
|
|
13
13
|
} & {
|
|
@@ -15,7 +15,7 @@ export declare const spinnerVariants: ((props?: {
|
|
|
15
15
|
}) | undefined) => string;
|
|
16
16
|
svg: (props?: ({
|
|
17
17
|
variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
|
|
18
|
-
size?: "sm" | "md" | "lg" | "
|
|
18
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
19
19
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
|
|
20
20
|
speed?: "fast" | "slow" | "normal" | undefined;
|
|
21
21
|
} & {
|
|
@@ -23,7 +23,7 @@ export declare const spinnerVariants: ((props?: {
|
|
|
23
23
|
}) | undefined) => string;
|
|
24
24
|
svgCircle: (props?: ({
|
|
25
25
|
variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
|
|
26
|
-
size?: "sm" | "md" | "lg" | "
|
|
26
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
27
27
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
|
|
28
28
|
speed?: "fast" | "slow" | "normal" | undefined;
|
|
29
29
|
} & {
|
|
@@ -31,7 +31,7 @@ export declare const spinnerVariants: ((props?: {
|
|
|
31
31
|
}) | undefined) => string;
|
|
32
32
|
svgPath: (props?: ({
|
|
33
33
|
variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
|
|
34
|
-
size?: "sm" | "md" | "lg" | "
|
|
34
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
35
35
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
|
|
36
36
|
speed?: "fast" | "slow" | "normal" | undefined;
|
|
37
37
|
} & {
|
|
@@ -39,7 +39,7 @@ export declare const spinnerVariants: ((props?: {
|
|
|
39
39
|
}) | undefined) => string;
|
|
40
40
|
dots: (props?: ({
|
|
41
41
|
variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
|
|
42
|
-
size?: "sm" | "md" | "lg" | "
|
|
42
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
43
43
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
|
|
44
44
|
speed?: "fast" | "slow" | "normal" | undefined;
|
|
45
45
|
} & {
|
|
@@ -47,7 +47,7 @@ export declare const spinnerVariants: ((props?: {
|
|
|
47
47
|
}) | undefined) => string;
|
|
48
48
|
dot: (props?: ({
|
|
49
49
|
variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
|
|
50
|
-
size?: "sm" | "md" | "lg" | "
|
|
50
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
51
51
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
|
|
52
52
|
speed?: "fast" | "slow" | "normal" | undefined;
|
|
53
53
|
} & {
|
|
@@ -55,7 +55,7 @@ export declare const spinnerVariants: ((props?: {
|
|
|
55
55
|
}) | undefined) => string;
|
|
56
56
|
pulse: (props?: ({
|
|
57
57
|
variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
|
|
58
|
-
size?: "sm" | "md" | "lg" | "
|
|
58
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
59
59
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
|
|
60
60
|
speed?: "fast" | "slow" | "normal" | undefined;
|
|
61
61
|
} & {
|
|
@@ -63,7 +63,7 @@ export declare const spinnerVariants: ((props?: {
|
|
|
63
63
|
}) | undefined) => string;
|
|
64
64
|
pulseCenter: (props?: ({
|
|
65
65
|
variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
|
|
66
|
-
size?: "sm" | "md" | "lg" | "
|
|
66
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
67
67
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
|
|
68
68
|
speed?: "fast" | "slow" | "normal" | undefined;
|
|
69
69
|
} & {
|
|
@@ -71,7 +71,7 @@ export declare const spinnerVariants: ((props?: {
|
|
|
71
71
|
}) | undefined) => string;
|
|
72
72
|
pulseRing: (props?: ({
|
|
73
73
|
variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
|
|
74
|
-
size?: "sm" | "md" | "lg" | "
|
|
74
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
75
75
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
|
|
76
76
|
speed?: "fast" | "slow" | "normal" | undefined;
|
|
77
77
|
} & {
|
|
@@ -79,7 +79,7 @@ export declare const spinnerVariants: ((props?: {
|
|
|
79
79
|
}) | undefined) => string;
|
|
80
80
|
ring: (props?: ({
|
|
81
81
|
variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
|
|
82
|
-
size?: "sm" | "md" | "lg" | "
|
|
82
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
83
83
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
|
|
84
84
|
speed?: "fast" | "slow" | "normal" | undefined;
|
|
85
85
|
} & {
|
|
@@ -87,7 +87,7 @@ export declare const spinnerVariants: ((props?: {
|
|
|
87
87
|
}) | undefined) => string;
|
|
88
88
|
ringElement: (props?: ({
|
|
89
89
|
variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
|
|
90
|
-
size?: "sm" | "md" | "lg" | "
|
|
90
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
91
91
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
|
|
92
92
|
speed?: "fast" | "slow" | "normal" | undefined;
|
|
93
93
|
} & {
|
|
@@ -95,7 +95,7 @@ export declare const spinnerVariants: ((props?: {
|
|
|
95
95
|
}) | undefined) => string;
|
|
96
96
|
bars: (props?: ({
|
|
97
97
|
variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
|
|
98
|
-
size?: "sm" | "md" | "lg" | "
|
|
98
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
99
99
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
|
|
100
100
|
speed?: "fast" | "slow" | "normal" | undefined;
|
|
101
101
|
} & {
|
|
@@ -103,7 +103,7 @@ export declare const spinnerVariants: ((props?: {
|
|
|
103
103
|
}) | undefined) => string;
|
|
104
104
|
bar: (props?: ({
|
|
105
105
|
variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
|
|
106
|
-
size?: "sm" | "md" | "lg" | "
|
|
106
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
107
107
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
|
|
108
108
|
speed?: "fast" | "slow" | "normal" | undefined;
|
|
109
109
|
} & {
|
|
@@ -111,7 +111,7 @@ export declare const spinnerVariants: ((props?: {
|
|
|
111
111
|
}) | undefined) => string;
|
|
112
112
|
content: (props?: ({
|
|
113
113
|
variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
|
|
114
|
-
size?: "sm" | "md" | "lg" | "
|
|
114
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
115
115
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
|
|
116
116
|
speed?: "fast" | "slow" | "normal" | undefined;
|
|
117
117
|
} & {
|
|
@@ -119,7 +119,7 @@ export declare const spinnerVariants: ((props?: {
|
|
|
119
119
|
}) | undefined) => string;
|
|
120
120
|
srOnly: (props?: ({
|
|
121
121
|
variant?: "pulse" | "default" | "ring" | "bars" | "dots" | undefined;
|
|
122
|
-
size?: "sm" | "md" | "lg" | "
|
|
122
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
123
123
|
intent?: "primary" | "secondary" | "success" | "warning" | "danger" | "neutral" | "current" | undefined;
|
|
124
124
|
speed?: "fast" | "slow" | "normal" | undefined;
|
|
125
125
|
} & {
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
unstyled: unstyledProp = false,
|
|
29
29
|
slotClasses: slotClassesProp = {},
|
|
30
30
|
preset,
|
|
31
|
+
oninput: userOnInput,
|
|
31
32
|
...restProps
|
|
32
33
|
}: TextareaProps = $props();
|
|
33
34
|
|
|
@@ -103,6 +104,14 @@
|
|
|
103
104
|
}
|
|
104
105
|
});
|
|
105
106
|
|
|
107
|
+
function handleInput(event: Event & { currentTarget: EventTarget & HTMLTextAreaElement }) {
|
|
108
|
+
if (autoResize) adjustHeight();
|
|
109
|
+
// Forward the consumer's oninput — Textarea's own handler sits after
|
|
110
|
+
// `{...restProps}` on the element, so without this it would swallow it
|
|
111
|
+
// (same class as Input's onkeydown forward).
|
|
112
|
+
userOnInput?.(event);
|
|
113
|
+
}
|
|
114
|
+
|
|
106
115
|
$effect(() => {
|
|
107
116
|
if (textareaRef && mint && mint !== 'none' && !disabled) {
|
|
108
117
|
return mintRegistry.apply(textareaRef, mint);
|
|
@@ -137,7 +146,7 @@
|
|
|
137
146
|
{required}
|
|
138
147
|
aria-invalid={ff.invalid ? 'true' : undefined}
|
|
139
148
|
aria-describedby={ff.describedBy}
|
|
140
|
-
oninput={
|
|
149
|
+
oninput={handleInput}></textarea>
|
|
141
150
|
|
|
142
151
|
{#if showFooter}
|
|
143
152
|
<div
|
|
@@ -2,7 +2,7 @@ import { type SlotNames, type VariantProps } from '../../utils/variants.js';
|
|
|
2
2
|
export declare const textareaVariants: ((props?: {
|
|
3
3
|
tier?: "commit" | "modify" | undefined;
|
|
4
4
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
5
|
-
size?: "sm" | "md" | "lg" | "
|
|
5
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
6
6
|
intent?: "default" | "success" | "warning" | "danger" | undefined;
|
|
7
7
|
autoResize?: boolean | undefined;
|
|
8
8
|
disabled?: boolean | undefined;
|
|
@@ -15,7 +15,7 @@ export declare const textareaVariants: ((props?: {
|
|
|
15
15
|
wrapper: (props?: ({
|
|
16
16
|
tier?: "commit" | "modify" | undefined;
|
|
17
17
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
18
|
-
size?: "sm" | "md" | "lg" | "
|
|
18
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
19
19
|
intent?: "default" | "success" | "warning" | "danger" | undefined;
|
|
20
20
|
autoResize?: boolean | undefined;
|
|
21
21
|
disabled?: boolean | undefined;
|
|
@@ -30,7 +30,7 @@ export declare const textareaVariants: ((props?: {
|
|
|
30
30
|
base: (props?: ({
|
|
31
31
|
tier?: "commit" | "modify" | undefined;
|
|
32
32
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
33
|
-
size?: "sm" | "md" | "lg" | "
|
|
33
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
34
34
|
intent?: "default" | "success" | "warning" | "danger" | undefined;
|
|
35
35
|
autoResize?: boolean | undefined;
|
|
36
36
|
disabled?: boolean | undefined;
|
|
@@ -45,7 +45,7 @@ export declare const textareaVariants: ((props?: {
|
|
|
45
45
|
label: (props?: ({
|
|
46
46
|
tier?: "commit" | "modify" | undefined;
|
|
47
47
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
48
|
-
size?: "sm" | "md" | "lg" | "
|
|
48
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
49
49
|
intent?: "default" | "success" | "warning" | "danger" | undefined;
|
|
50
50
|
autoResize?: boolean | undefined;
|
|
51
51
|
disabled?: boolean | undefined;
|
|
@@ -60,7 +60,7 @@ export declare const textareaVariants: ((props?: {
|
|
|
60
60
|
footer: (props?: ({
|
|
61
61
|
tier?: "commit" | "modify" | undefined;
|
|
62
62
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
63
|
-
size?: "sm" | "md" | "lg" | "
|
|
63
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
64
64
|
intent?: "default" | "success" | "warning" | "danger" | undefined;
|
|
65
65
|
autoResize?: boolean | undefined;
|
|
66
66
|
disabled?: boolean | undefined;
|
|
@@ -75,7 +75,7 @@ export declare const textareaVariants: ((props?: {
|
|
|
75
75
|
message: (props?: ({
|
|
76
76
|
tier?: "commit" | "modify" | undefined;
|
|
77
77
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
78
|
-
size?: "sm" | "md" | "lg" | "
|
|
78
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
79
79
|
intent?: "default" | "success" | "warning" | "danger" | undefined;
|
|
80
80
|
autoResize?: boolean | undefined;
|
|
81
81
|
disabled?: boolean | undefined;
|
|
@@ -90,7 +90,7 @@ export declare const textareaVariants: ((props?: {
|
|
|
90
90
|
counter: (props?: ({
|
|
91
91
|
tier?: "commit" | "modify" | undefined;
|
|
92
92
|
variant?: "ghost" | "filled" | "outlined" | "underline" | undefined;
|
|
93
|
-
size?: "sm" | "md" | "lg" | "
|
|
93
|
+
size?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
94
94
|
intent?: "default" | "success" | "warning" | "danger" | undefined;
|
|
95
95
|
autoResize?: boolean | undefined;
|
|
96
96
|
disabled?: boolean | undefined;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { type SlotNames, type VariantProps } from '../../utils/variants.js';
|
|
2
2
|
export declare const toolbarVariants: ((props?: {
|
|
3
|
-
variant?: "ghost" | "
|
|
3
|
+
variant?: "ghost" | "quiet" | "elevated" | "outlined" | undefined;
|
|
4
4
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
5
|
-
gap?: "sm" | "md" | "lg" | "
|
|
6
|
-
padding?: "sm" | "md" | "lg" | "
|
|
5
|
+
gap?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
6
|
+
padding?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
7
7
|
} | undefined) => {
|
|
8
8
|
base: (props?: ({
|
|
9
|
-
variant?: "ghost" | "
|
|
9
|
+
variant?: "ghost" | "quiet" | "elevated" | "outlined" | undefined;
|
|
10
10
|
orientation?: "horizontal" | "vertical" | undefined;
|
|
11
|
-
gap?: "sm" | "md" | "lg" | "
|
|
12
|
-
padding?: "sm" | "md" | "lg" | "
|
|
11
|
+
gap?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
12
|
+
padding?: "sm" | "md" | "lg" | "xs" | "xl" | undefined;
|
|
13
13
|
} & {
|
|
14
14
|
class?: string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | (string | number | false | /*elided*/ any | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined)[] | Record<string, boolean | null | undefined> | null | undefined;
|
|
15
15
|
}) | undefined) => string;
|
package/dist/style/semantic.css
CHANGED
|
@@ -183,7 +183,12 @@
|
|
|
183
183
|
|
|
184
184
|
/* === SHADOWS ===
|
|
185
185
|
Dark mode uses higher alpha to compensate for low contrast against
|
|
186
|
-
dark surfaces. light-dark()
|
|
186
|
+
dark surfaces. light-dark() may wrap ONLY the per-layer <color> —
|
|
187
|
+
it is a color function, and layers must stay top-level
|
|
188
|
+
comma-separated. Wrapping the whole multi-layer list made every
|
|
189
|
+
`box-shadow: var(--blocks-shadow-*)` invalid at computed-value time
|
|
190
|
+
(shadows silently rendered as none, library-wide) — verified in
|
|
191
|
+
chromium before the 2026-07-13 fix.
|
|
187
192
|
|
|
188
193
|
The shadow tint (`--blocks-shadow-tint`) is an oklch L C H triplet
|
|
189
194
|
WITHOUT the alpha channel — declared on `:root` (not inside @theme)
|
|
@@ -192,34 +197,55 @@
|
|
|
192
197
|
their shadow palette — e.g. editorial sets it to a dark brown so
|
|
193
198
|
shadows blend with cream surfaces instead of reading as cool
|
|
194
199
|
smudges. */
|
|
195
|
-
--color-shadow-xs:
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
0
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
--color-shadow-
|
|
212
|
-
0
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
200
|
+
--color-shadow-xs: 0 1px 2px 0
|
|
201
|
+
light-dark(
|
|
202
|
+
oklch(var(--blocks-shadow-tint) / 0.05),
|
|
203
|
+
oklch(var(--blocks-shadow-tint) / 0.2)
|
|
204
|
+
);
|
|
205
|
+
--color-shadow-sm:
|
|
206
|
+
0 1px 3px 0
|
|
207
|
+
light-dark(
|
|
208
|
+
oklch(var(--blocks-shadow-tint) / 0.1),
|
|
209
|
+
oklch(var(--blocks-shadow-tint) / 0.3)
|
|
210
|
+
),
|
|
211
|
+
0 1px 2px -1px
|
|
212
|
+
light-dark(
|
|
213
|
+
oklch(var(--blocks-shadow-tint) / 0.1),
|
|
214
|
+
oklch(var(--blocks-shadow-tint) / 0.3)
|
|
215
|
+
);
|
|
216
|
+
--color-shadow-base:
|
|
217
|
+
0 4px 6px -1px
|
|
218
|
+
light-dark(
|
|
219
|
+
oklch(var(--blocks-shadow-tint) / 0.1),
|
|
220
|
+
oklch(var(--blocks-shadow-tint) / 0.4)
|
|
221
|
+
),
|
|
222
|
+
0 2px 4px -2px
|
|
223
|
+
light-dark(
|
|
224
|
+
oklch(var(--blocks-shadow-tint) / 0.1),
|
|
225
|
+
oklch(var(--blocks-shadow-tint) / 0.4)
|
|
226
|
+
);
|
|
227
|
+
--color-shadow-md:
|
|
228
|
+
0 10px 15px -3px
|
|
229
|
+
light-dark(
|
|
230
|
+
oklch(var(--blocks-shadow-tint) / 0.1),
|
|
231
|
+
oklch(var(--blocks-shadow-tint) / 0.4)
|
|
232
|
+
),
|
|
233
|
+
0 4px 6px -4px
|
|
234
|
+
light-dark(
|
|
235
|
+
oklch(var(--blocks-shadow-tint) / 0.1),
|
|
236
|
+
oklch(var(--blocks-shadow-tint) / 0.4)
|
|
237
|
+
);
|
|
238
|
+
--color-shadow-lg:
|
|
239
|
+
0 20px 25px -5px
|
|
240
|
+
light-dark(
|
|
241
|
+
oklch(var(--blocks-shadow-tint) / 0.1),
|
|
242
|
+
oklch(var(--blocks-shadow-tint) / 0.5)
|
|
243
|
+
),
|
|
244
|
+
0 8px 10px -6px
|
|
245
|
+
light-dark(
|
|
246
|
+
oklch(var(--blocks-shadow-tint) / 0.1),
|
|
247
|
+
oklch(var(--blocks-shadow-tint) / 0.5)
|
|
248
|
+
);
|
|
223
249
|
}
|
|
224
250
|
|
|
225
251
|
/* Shadow tint — declared on :root rather than inside @theme because
|
|
@@ -4,6 +4,19 @@
|
|
|
4
4
|
* Generates a Tokens Studio-compatible JSON export from the Urbicon UI
|
|
5
5
|
* OKLCH design token system. Suitable for Figma plugins like "Tokens Studio
|
|
6
6
|
* for Figma" (formerly Figma Tokens).
|
|
7
|
+
*
|
|
8
|
+
* The values below mirror the token truth in `../style/foundation.css`
|
|
9
|
+
* (palettes, radii) and `../style/semantic.css` (surface/text/border roles,
|
|
10
|
+
* shadows). They are hardcoded — this module runs in the browser and cannot
|
|
11
|
+
* read the CSS files at runtime — but guarded against drift by the
|
|
12
|
+
* co-located `figma-token-export.test.ts`, which parses both CSS files and
|
|
13
|
+
* compares every value. If you change a token in the CSS, that test fails
|
|
14
|
+
* until the export here is updated to match.
|
|
15
|
+
*
|
|
16
|
+
* Semantic tokens resolve light/dark via CSS `light-dark()`; this export
|
|
17
|
+
* carries the **light-mode** resolution (Figma has no mode-aware token
|
|
18
|
+
* values in plain Tokens Studio JSON). Dark mode swaps at the foundation
|
|
19
|
+
* layer, so the palette ramps below contain every shade both modes use.
|
|
7
20
|
*/
|
|
8
21
|
export interface FigmaToken {
|
|
9
22
|
value: string;
|