@castui/cast-ui 4.0.0 → 4.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.
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Select — form control for choosing from a list of options.
3
+ *
4
+ * Maps to the Figma <Select> component:
5
+ * type → single | multi | combobox
6
+ * size → small | default | large
7
+ * state → default | hover | focus | error | disabled
8
+ *
9
+ * Trigger (input field) spacing comes from the density theme's `input` tokens.
10
+ * Dropdown content spacing comes from the density theme's `select` tokens.
11
+ * Colours come from the semantic intent system (constant across densities).
12
+ *
13
+ * Sub-components:
14
+ * SelectOption — an individual option row
15
+ * SelectGroup — a labelled group of options
16
+ * SelectSeparator — a visual divider between groups
17
+ * SelectTag — pill badge for multi-select (exported for standalone use)
18
+ * SelectContent — the dropdown card (exported for custom overlay use)
19
+ */
20
+ import React from 'react';
21
+ import { type ViewStyle, type StyleProp } from 'react-native';
22
+ export type SelectSize = 'small' | 'default' | 'large';
23
+ export type SelectType = 'single' | 'multi' | 'combobox';
24
+ export type SelectOptionProps = {
25
+ /** Unique value identifier for this option. */
26
+ value: string;
27
+ /** Display label — rendered as the option text. */
28
+ children: string;
29
+ /** Supporting description text below the label. */
30
+ description?: string;
31
+ /** Leading icon — Material Symbols name string or ReactNode. */
32
+ icon?: string | React.ReactNode;
33
+ /** Disables this option. */
34
+ disabled?: boolean;
35
+ };
36
+ export type SelectGroupProps = {
37
+ /** Group label displayed above the options. */
38
+ label: string;
39
+ /** SelectOption children. */
40
+ children: React.ReactNode;
41
+ };
42
+ export type SelectTagProps = {
43
+ /** Tag label text. */
44
+ children: string;
45
+ /** Called when the remove button is pressed. */
46
+ onRemove?: () => void;
47
+ /** Disables interaction. */
48
+ disabled?: boolean;
49
+ };
50
+ export type SelectProps = {
51
+ /** Selection mode. */
52
+ type?: SelectType;
53
+ /** Size variant — controls padding, gap, and typography scale. */
54
+ size?: SelectSize;
55
+ /** Form label above the input. */
56
+ label?: string;
57
+ /** Helper or error text below the input. */
58
+ helperText?: string;
59
+ /** Placeholder text when no value is selected. */
60
+ placeholder?: string;
61
+ /** Leading icon in the trigger — Material Symbols name or ReactNode. */
62
+ leadingIcon?: string | React.ReactNode;
63
+ /** Disables the entire select. */
64
+ disabled?: boolean;
65
+ /** Error state — shows danger border and red helper text. */
66
+ error?: boolean;
67
+ /** Selected value (single / combobox). */
68
+ value?: string;
69
+ /** Selection change handler (single / combobox). */
70
+ onValueChange?: (value: string) => void;
71
+ /** Selected values (multi). */
72
+ values?: string[];
73
+ /** Selection change handler (multi). */
74
+ onValuesChange?: (values: string[]) => void;
75
+ /** Combobox search text (controlled). */
76
+ searchValue?: string;
77
+ /** Combobox search change handler. */
78
+ onSearchChange?: (text: string) => void;
79
+ /** SelectOption / SelectGroup / SelectSeparator children. */
80
+ children: React.ReactNode;
81
+ /** Style override for the outer container. */
82
+ style?: StyleProp<ViewStyle>;
83
+ /** Accessibility label — falls back to label prop. */
84
+ accessibilityLabel?: string;
85
+ };
86
+ export declare function SelectTag({ children, onRemove, disabled }: SelectTagProps): import("react/jsx-runtime").JSX.Element;
87
+ export declare function SelectSeparator(): import("react/jsx-runtime").JSX.Element;
88
+ export declare function SelectGroup({ label: groupLabel, children }: SelectGroupProps): import("react/jsx-runtime").JSX.Element;
89
+ export declare function SelectOption({ value, children: optionLabel, description, icon, disabled, }: SelectOptionProps): import("react/jsx-runtime").JSX.Element;
90
+ export type SelectContentProps = {
91
+ children: React.ReactNode;
92
+ style?: StyleProp<ViewStyle>;
93
+ };
94
+ export declare function SelectContent({ children, style }: SelectContentProps): import("react/jsx-runtime").JSX.Element;
95
+ export declare function Select({ type, size, label: formLabel, helperText, placeholder, leadingIcon, disabled, error, value, onValueChange, values, onValuesChange, searchValue, onSearchChange, children, style, accessibilityLabel, }: SelectProps): import("react/jsx-runtime").JSX.Element;
96
+ //# sourceMappingURL=Select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,375 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Select — form control for choosing from a list of options.
4
+ *
5
+ * Maps to the Figma <Select> component:
6
+ * type → single | multi | combobox
7
+ * size → small | default | large
8
+ * state → default | hover | focus | error | disabled
9
+ *
10
+ * Trigger (input field) spacing comes from the density theme's `input` tokens.
11
+ * Dropdown content spacing comes from the density theme's `select` tokens.
12
+ * Colours come from the semantic intent system (constant across densities).
13
+ *
14
+ * Sub-components:
15
+ * SelectOption — an individual option row
16
+ * SelectGroup — a labelled group of options
17
+ * SelectSeparator — a visual divider between groups
18
+ * SelectTag — pill badge for multi-select (exported for standalone use)
19
+ * SelectContent — the dropdown card (exported for custom overlay use)
20
+ */
21
+ import { createContext, useContext, useState, useCallback, useRef, useMemo, useEffect, } from 'react';
22
+ import { Pressable, View, Text, ScrollView, TextInput, Platform, } from 'react-native';
23
+ import { useTheme } from '../../theme';
24
+ import { Icon } from '../Icon';
25
+ import { fontFamily, fontWeight, label, body, caption, controlTokens, surfaceTokens, selectColors, tagTokens, errorTokens, disabledColors, intentColors, textTokens, } from '../../tokens';
26
+ const SelectCtx = createContext(null);
27
+ function useSelectContext() {
28
+ const ctx = useContext(SelectCtx);
29
+ if (!ctx)
30
+ throw new Error('Select sub-components must be used within <Select>');
31
+ return ctx;
32
+ }
33
+ // ---------------------------------------------------------------------------
34
+ // Constants
35
+ // ---------------------------------------------------------------------------
36
+ const ICON_SIZE = 16;
37
+ const CHEVRON_SIZE = 16;
38
+ const CONTENT_MAX_HEIGHT = 240;
39
+ /** Maps select size → label typography scale (for form label text) */
40
+ const LABEL_SCALE = {
41
+ small: 'lg',
42
+ default: 'md',
43
+ large: 'lg',
44
+ };
45
+ /** Maps select size → body typography scale (for input value text) */
46
+ const BODY_SCALE = {
47
+ small: 'sm',
48
+ default: 'md',
49
+ large: 'lg',
50
+ };
51
+ /** Shadow for web — matches Figma shadow/md */
52
+ const SHADOW_WEB = {
53
+ boxShadow: '0px 2px 4px -2px rgba(0,0,0,0.05), 0px 4px 6px -1px rgba(0,0,0,0.07)',
54
+ };
55
+ /** Shadow for native */
56
+ const SHADOW_NATIVE = {
57
+ shadowColor: '#000000',
58
+ shadowOffset: { width: 0, height: 4 },
59
+ shadowOpacity: 0.07,
60
+ shadowRadius: 6,
61
+ elevation: 4,
62
+ };
63
+ // ---------------------------------------------------------------------------
64
+ // SelectTag — pill badge for multi-select
65
+ // ---------------------------------------------------------------------------
66
+ export function SelectTag({ children, onRemove, disabled = false }) {
67
+ return (_jsxs(View, { style: {
68
+ flexDirection: 'row',
69
+ alignItems: 'center',
70
+ gap: tagTokens.gap,
71
+ backgroundColor: tagTokens.bg,
72
+ borderRadius: tagTokens.borderRadius,
73
+ paddingHorizontal: tagTokens.paddingX,
74
+ paddingVertical: tagTokens.paddingY,
75
+ }, children: [_jsx(Text, { style: {
76
+ fontFamily: fontFamily.sans,
77
+ fontWeight: fontWeight.regular,
78
+ fontSize: caption.fontSize,
79
+ lineHeight: caption.lineHeight,
80
+ letterSpacing: caption.letterSpacing,
81
+ color: tagTokens.fg,
82
+ }, selectable: false, children: children }), onRemove && !disabled ? (_jsx(Pressable, { onPress: onRemove, hitSlop: 4, accessibilityRole: "button", accessibilityLabel: `Remove ${children}`, children: _jsx(Icon, { name: "close", size: tagTokens.closeSize, color: tagTokens.fg }) })) : null] }));
83
+ }
84
+ // ---------------------------------------------------------------------------
85
+ // SelectSeparator — visual divider
86
+ // ---------------------------------------------------------------------------
87
+ export function SelectSeparator() {
88
+ const { components } = useTheme();
89
+ const tokens = components.select.separator;
90
+ return (_jsx(View, { style: { paddingVertical: tokens.marginY }, children: _jsx(View, { style: {
91
+ height: 1,
92
+ backgroundColor: selectColors.separator,
93
+ } }) }));
94
+ }
95
+ // ---------------------------------------------------------------------------
96
+ // SelectGroup — labelled group of options
97
+ // ---------------------------------------------------------------------------
98
+ export function SelectGroup({ label: groupLabel, children }) {
99
+ const { components } = useTheme();
100
+ const tokens = components.select.group;
101
+ return (_jsxs(View, { children: [_jsx(View, { style: {
102
+ paddingHorizontal: tokens.paddingX,
103
+ paddingVertical: tokens.labelPaddingY,
104
+ }, children: _jsx(Text, { style: {
105
+ fontFamily: fontFamily.sans,
106
+ fontWeight: fontWeight.regular,
107
+ fontSize: caption.fontSize,
108
+ lineHeight: caption.lineHeight,
109
+ letterSpacing: caption.letterSpacing,
110
+ color: textTokens.description,
111
+ textTransform: 'uppercase',
112
+ }, selectable: false, children: groupLabel }) }), children] }));
113
+ }
114
+ // ---------------------------------------------------------------------------
115
+ // SelectOption — individual option row
116
+ // ---------------------------------------------------------------------------
117
+ export function SelectOption({ value, children: optionLabel, description, icon, disabled = false, }) {
118
+ const ctx = useSelectContext();
119
+ const { components } = useTheme();
120
+ const tokens = components.select.option;
121
+ const [isHovered, setIsHovered] = useState(false);
122
+ const isSelected = ctx.selectedValues.includes(value);
123
+ const labelTokens = label[BODY_SCALE[ctx.size]];
124
+ const bodyTokens = body[BODY_SCALE[ctx.size]];
125
+ // Register this option with the parent Select
126
+ useEffect(() => {
127
+ ctx.registerOption(value, { label: optionLabel, icon });
128
+ return () => ctx.unregisterOption(value);
129
+ // Only re-register when value or label change
130
+ // eslint-disable-next-line react-hooks/exhaustive-deps
131
+ }, [value, optionLabel]);
132
+ // Resolve colours
133
+ const colors = disabled
134
+ ? selectColors.option.disabled
135
+ : isSelected && isHovered
136
+ ? selectColors.option.selectedHover
137
+ : isSelected
138
+ ? selectColors.option.selected
139
+ : isHovered
140
+ ? selectColors.option.hover
141
+ : selectColors.option.default;
142
+ const resolvedIcon = typeof icon === 'string' ? (_jsx(Icon, { name: icon, size: ICON_SIZE, color: colors.fg })) : (icon);
143
+ return (_jsxs(Pressable, { onPress: () => {
144
+ if (!disabled)
145
+ ctx.onSelect(value);
146
+ }, onHoverIn: () => setIsHovered(true), onHoverOut: () => setIsHovered(false), disabled: disabled, accessibilityRole: "menuitem", accessibilityLabel: optionLabel, accessibilityState: { selected: isSelected, disabled }, style: {
147
+ flexDirection: 'row',
148
+ alignItems: 'flex-start',
149
+ gap: tokens.gap,
150
+ paddingHorizontal: tokens.paddingX,
151
+ paddingVertical: tokens.paddingY,
152
+ borderRadius: tokens.borderRadius,
153
+ backgroundColor: colors.bg,
154
+ }, children: [resolvedIcon ? (_jsx(View, { accessibilityElementsHidden: true, importantForAccessibility: "no", style: { width: ICON_SIZE, height: ICON_SIZE }, children: resolvedIcon })) : null, _jsxs(View, { style: { flex: 1, justifyContent: 'center' }, children: [_jsx(Text, { style: {
155
+ fontFamily: fontFamily.sans,
156
+ fontWeight: fontWeight.medium,
157
+ fontSize: labelTokens.fontSize,
158
+ lineHeight: labelTokens.lineHeight,
159
+ letterSpacing: labelTokens.letterSpacing,
160
+ color: colors.fg,
161
+ }, selectable: false, children: optionLabel }), description ? (_jsx(Text, { style: {
162
+ fontFamily: fontFamily.sans,
163
+ fontWeight: fontWeight.regular,
164
+ fontSize: bodyTokens.fontSize,
165
+ lineHeight: bodyTokens.lineHeight,
166
+ letterSpacing: bodyTokens.letterSpacing,
167
+ color: disabled ? colors.fg : textTokens.description,
168
+ }, numberOfLines: 1, selectable: false, children: description })) : null] }), isSelected && !disabled ? (_jsx(View, { accessibilityElementsHidden: true, importantForAccessibility: "no", style: { width: ICON_SIZE, height: ICON_SIZE }, children: _jsx(Icon, { name: "check", size: ICON_SIZE, color: colors.fg }) })) : null] }));
169
+ }
170
+ export function SelectContent({ children, style }) {
171
+ const { components } = useTheme();
172
+ const tokens = components.select.content;
173
+ return (_jsx(View, { style: [
174
+ {
175
+ backgroundColor: surfaceTokens.overlay.bg,
176
+ borderWidth: controlTokens.borderWidth,
177
+ borderColor: surfaceTokens.overlay.border,
178
+ borderRadius: surfaceTokens.overlay.borderRadius,
179
+ paddingVertical: tokens.paddingY,
180
+ maxHeight: CONTENT_MAX_HEIGHT,
181
+ ...(Platform.OS === 'web' ? SHADOW_WEB : SHADOW_NATIVE),
182
+ },
183
+ style,
184
+ ], children: _jsx(ScrollView, { nestedScrollEnabled: true, keyboardShouldPersistTaps: "handled", showsVerticalScrollIndicator: true, children: children }) }));
185
+ }
186
+ // ---------------------------------------------------------------------------
187
+ // Select — main component (trigger + dropdown overlay)
188
+ // ---------------------------------------------------------------------------
189
+ export function Select({ type = 'single', size = 'default', label: formLabel, helperText, placeholder = 'Select...', leadingIcon, disabled = false, error = false, value, onValueChange, values, onValuesChange, searchValue, onSearchChange, children, style, accessibilityLabel, }) {
190
+ const { components } = useTheme();
191
+ const inputTokens = components.input[size];
192
+ const [isOpen, setIsOpen] = useState(false);
193
+ const [isHovered, setIsHovered] = useState(false);
194
+ const optionRegistry = useRef(new Map());
195
+ const [, forceUpdate] = useState(0);
196
+ const selectedValues = useMemo(() => {
197
+ if (type === 'multi')
198
+ return values ?? [];
199
+ return value != null ? [value] : [];
200
+ }, [type, value, values]);
201
+ const handleSelect = useCallback((optionValue) => {
202
+ if (type === 'multi') {
203
+ const current = values ?? [];
204
+ const next = current.includes(optionValue)
205
+ ? current.filter((v) => v !== optionValue)
206
+ : [...current, optionValue];
207
+ onValuesChange?.(next);
208
+ }
209
+ else {
210
+ onValueChange?.(optionValue);
211
+ setIsOpen(false);
212
+ }
213
+ }, [type, values, onValueChange, onValuesChange]);
214
+ const registerOption = useCallback((val, info) => {
215
+ optionRegistry.current.set(val, info);
216
+ forceUpdate((n) => n + 1);
217
+ }, []);
218
+ const unregisterOption = useCallback((val) => {
219
+ optionRegistry.current.delete(val);
220
+ }, []);
221
+ const ctxValue = useMemo(() => ({
222
+ type,
223
+ size,
224
+ selectedValues,
225
+ onSelect: handleSelect,
226
+ registerOption,
227
+ unregisterOption,
228
+ }), [type, size, selectedValues, handleSelect, registerOption, unregisterOption]);
229
+ // Resolve typography scales
230
+ const labelTypo = label[LABEL_SCALE[size]];
231
+ const bodyTypo = body[BODY_SCALE[size]];
232
+ // Resolve trigger border colour
233
+ const triggerBorderColor = disabled
234
+ ? disabledColors.border
235
+ : error
236
+ ? errorTokens.border
237
+ : isHovered
238
+ ? intentColors.neutral.default.hover.border
239
+ : intentColors.neutral.default.default.border;
240
+ const triggerBgColor = disabled
241
+ ? disabledColors.bg
242
+ : isHovered
243
+ ? intentColors.neutral.default.hover.bg
244
+ : intentColors.neutral.default.default.bg;
245
+ const triggerFgColor = disabled
246
+ ? disabledColors.fg
247
+ : intentColors.neutral.default.default.fg;
248
+ // Resolve leading icon
249
+ const resolvedLeadingIcon = typeof leadingIcon === 'string' ? (_jsx(Icon, { name: leadingIcon, size: ICON_SIZE, color: triggerFgColor })) : (leadingIcon);
250
+ // Get display text for single select
251
+ const getSelectedLabel = () => {
252
+ if (type === 'single' || type === 'combobox') {
253
+ if (value != null) {
254
+ const info = optionRegistry.current.get(value);
255
+ return info?.label;
256
+ }
257
+ }
258
+ return undefined;
259
+ };
260
+ const displayText = getSelectedLabel();
261
+ return (_jsx(SelectCtx.Provider, { value: ctxValue, children: _jsxs(View, { style: [{ gap: components.input.fieldGap }, style], children: [formLabel ? (_jsx(Text, { style: {
262
+ fontFamily: fontFamily.sans,
263
+ fontWeight: fontWeight.medium,
264
+ fontSize: labelTypo.fontSize,
265
+ lineHeight: labelTypo.lineHeight,
266
+ letterSpacing: labelTypo.letterSpacing,
267
+ color: triggerFgColor,
268
+ }, selectable: false, children: formLabel })) : null, _jsxs(View, { style: { position: 'relative', zIndex: isOpen ? 1000 : 0 }, children: [_jsxs(Pressable, { onPress: () => {
269
+ if (!disabled)
270
+ setIsOpen(!isOpen);
271
+ }, onHoverIn: () => setIsHovered(true), onHoverOut: () => setIsHovered(false), disabled: disabled, accessibilityRole: "button", accessibilityLabel: accessibilityLabel || formLabel || 'Select option', accessibilityState: { disabled, expanded: isOpen }, style: {
272
+ flexDirection: 'row',
273
+ alignItems: 'center',
274
+ gap: inputTokens.gap,
275
+ paddingHorizontal: inputTokens.paddingX,
276
+ paddingVertical: inputTokens.paddingY,
277
+ borderRadius: inputTokens.borderRadius,
278
+ borderWidth: controlTokens.borderWidth,
279
+ borderColor: triggerBorderColor,
280
+ backgroundColor: triggerBgColor,
281
+ }, children: [resolvedLeadingIcon ? (_jsx(View, { accessibilityElementsHidden: true, importantForAccessibility: "no", style: { width: ICON_SIZE, height: ICON_SIZE }, children: resolvedLeadingIcon })) : null, type === 'multi' ? (_jsx(View, { style: {
282
+ flex: 1,
283
+ flexDirection: 'row',
284
+ flexWrap: 'wrap',
285
+ gap: 4,
286
+ alignItems: 'center',
287
+ }, children: selectedValues.length > 0
288
+ ? selectedValues.map((val) => {
289
+ const info = optionRegistry.current.get(val);
290
+ return (_jsx(SelectTag, { disabled: disabled, onRemove: disabled
291
+ ? undefined
292
+ : () => {
293
+ const next = selectedValues.filter((v) => v !== val);
294
+ onValuesChange?.(next);
295
+ }, children: info?.label ?? val }, val));
296
+ })
297
+ : renderPlaceholder(placeholder, bodyTypo) })) : type === 'combobox' ? (_jsx(TextInput, { value: searchValue ?? displayText ?? '', onChangeText: (text) => {
298
+ onSearchChange?.(text);
299
+ if (!isOpen)
300
+ setIsOpen(true);
301
+ }, onFocus: () => {
302
+ if (!isOpen)
303
+ setIsOpen(true);
304
+ }, placeholder: placeholder, placeholderTextColor: textTokens.description, editable: !disabled, style: {
305
+ flex: 1,
306
+ fontFamily: fontFamily.sans,
307
+ fontWeight: fontWeight.regular,
308
+ fontSize: bodyTypo.fontSize,
309
+ lineHeight: bodyTypo.lineHeight,
310
+ letterSpacing: bodyTypo.letterSpacing,
311
+ color: triggerFgColor,
312
+ padding: 0,
313
+ ...(Platform.OS === 'web'
314
+ ? { outlineWidth: 0 }
315
+ : {}),
316
+ }, accessibilityLabel: accessibilityLabel || formLabel || 'Search' })) : (_jsx(View, { style: { flex: 1 }, children: _jsx(Text, { numberOfLines: 1, style: {
317
+ fontFamily: fontFamily.sans,
318
+ fontWeight: fontWeight.regular,
319
+ fontSize: bodyTypo.fontSize,
320
+ lineHeight: bodyTypo.lineHeight,
321
+ letterSpacing: bodyTypo.letterSpacing,
322
+ color: displayText
323
+ ? triggerFgColor
324
+ : textTokens.description,
325
+ }, selectable: false, children: displayText ?? placeholder }) })), _jsx(View, { accessibilityElementsHidden: true, importantForAccessibility: "no", style: isOpen
326
+ ? { transform: [{ rotate: '180deg' }] }
327
+ : undefined, children: _jsx(Icon, { name: "keyboard_arrow_down", size: CHEVRON_SIZE, color: triggerFgColor }) })] }), isOpen ? (_jsx(Pressable, { onPress: () => setIsOpen(false), accessibilityRole: "button", accessibilityLabel: "Close select", style: Platform.select({
328
+ web: {
329
+ position: 'fixed',
330
+ top: 0,
331
+ left: 0,
332
+ right: 0,
333
+ bottom: 0,
334
+ zIndex: 0,
335
+ },
336
+ default: {
337
+ position: 'absolute',
338
+ top: -9999,
339
+ left: -9999,
340
+ width: 99999,
341
+ height: 99999,
342
+ },
343
+ }) })) : null, _jsx(View, { style: [
344
+ {
345
+ position: 'absolute',
346
+ top: '100%',
347
+ left: 0,
348
+ right: 0,
349
+ paddingTop: 4,
350
+ zIndex: 1,
351
+ },
352
+ !isOpen && { display: 'none' },
353
+ ], children: _jsx(SelectContent, { children: children }) })] }), helperText ? (_jsx(Text, { style: {
354
+ fontFamily: fontFamily.sans,
355
+ fontWeight: fontWeight.regular,
356
+ fontSize: caption.fontSize,
357
+ lineHeight: caption.lineHeight,
358
+ letterSpacing: caption.letterSpacing,
359
+ color: error ? errorTokens.fg : textTokens.description,
360
+ }, selectable: false, children: helperText })) : null] }) }));
361
+ }
362
+ // ---------------------------------------------------------------------------
363
+ // Helpers
364
+ // ---------------------------------------------------------------------------
365
+ function renderPlaceholder(text, typo) {
366
+ return (_jsx(Text, { style: {
367
+ fontFamily: fontFamily.sans,
368
+ fontWeight: fontWeight.regular,
369
+ fontSize: typo.fontSize,
370
+ lineHeight: typo.lineHeight,
371
+ letterSpacing: typo.letterSpacing,
372
+ color: textTokens.description,
373
+ }, selectable: false, children: text }));
374
+ }
375
+ //# sourceMappingURL=Select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAc,EACZ,aAAa,EACb,UAAU,EACV,QAAQ,EACR,WAAW,EACX,MAAM,EACN,OAAO,EACP,SAAS,GACV,MAAM,OAAO,CAAC;AACf,OAAO,EACL,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,SAAS,EACT,QAAQ,GAGT,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,UAAU,EACV,KAAK,EACL,IAAI,EACJ,OAAO,EACP,aAAa,EACb,aAAa,EACb,YAAY,EACZ,SAAS,EACT,WAAW,EACX,cAAc,EACd,YAAY,EACZ,UAAU,GACX,MAAM,cAAc,CAAC;AA0FtB,MAAM,SAAS,GAAG,aAAa,CAA4B,IAAI,CAAC,CAAC;AAEjE,SAAS,gBAAgB;IACvB,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAChF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,sEAAsE;AACtE,MAAM,WAAW,GAA2C;IAC1D,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF,sEAAsE;AACtE,MAAM,UAAU,GAA0C;IACxD,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF,+CAA+C;AAC/C,MAAM,UAAU,GAAG;IACjB,SAAS,EACP,sEAAsE;CACzE,CAAC;AAEF,wBAAwB;AACxB,MAAM,aAAa,GAAc;IAC/B,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;IACrC,aAAa,EAAE,IAAI;IACnB,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,CAAC;CACb,CAAC;AAEF,8EAA8E;AAC9E,0CAA0C;AAC1C,8EAA8E;AAE9E,MAAM,UAAU,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAkB;IAChF,OAAO,CACL,MAAC,IAAI,IACH,KAAK,EAAE;YACL,aAAa,EAAE,KAAK;YACpB,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,eAAe,EAAE,SAAS,CAAC,EAAE;YAC7B,YAAY,EAAE,SAAS,CAAC,YAAY;YACpC,iBAAiB,EAAE,SAAS,CAAC,QAAQ;YACrC,eAAe,EAAE,SAAS,CAAC,QAAQ;SACpC,aAED,KAAC,IAAI,IACH,KAAK,EAAE;oBACL,UAAU,EAAE,UAAU,CAAC,IAAI;oBAC3B,UAAU,EAAE,UAAU,CAAC,OAAO;oBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;oBACpC,KAAK,EAAE,SAAS,CAAC,EAAE;iBACpB,EACD,UAAU,EAAE,KAAK,YAEhB,QAAQ,GACJ,EACN,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CACvB,KAAC,SAAS,IACR,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,CAAC,EACV,iBAAiB,EAAC,QAAQ,EAC1B,kBAAkB,EAAE,UAAU,QAAQ,EAAE,YAExC,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,GAAI,GAC3D,CACb,CAAC,CAAC,CAAC,IAAI,IACH,CACR,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,mCAAmC;AACnC,8EAA8E;AAE9E,MAAM,UAAU,eAAe;IAC7B,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;IAE3C,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,OAAO,EAAE,YAC9C,KAAC,IAAI,IACH,KAAK,EAAE;gBACL,MAAM,EAAE,CAAC;gBACT,eAAe,EAAE,YAAY,CAAC,SAAS;aACxC,GACD,GACG,CACR,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,0CAA0C;AAC1C,8EAA8E;AAE9E,MAAM,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAoB;IAC3E,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;IAEvC,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IACH,KAAK,EAAE;oBACL,iBAAiB,EAAE,MAAM,CAAC,QAAQ;oBAClC,eAAe,EAAE,MAAM,CAAC,aAAa;iBACtC,YAED,KAAC,IAAI,IACH,KAAK,EAAE;wBACL,UAAU,EAAE,UAAU,CAAC,IAAI;wBAC3B,UAAU,EAAE,UAAU,CAAC,OAAO;wBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;wBAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;wBACpC,KAAK,EAAE,UAAU,CAAC,WAAW;wBAC7B,aAAa,EAAE,WAAW;qBAC3B,EACD,UAAU,EAAE,KAAK,YAEhB,UAAU,GACN,GACF,EACN,QAAQ,IACJ,CACR,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,uCAAuC;AACvC,8EAA8E;AAE9E,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EAAE,WAAW,EACrB,WAAW,EACX,IAAI,EACJ,QAAQ,GAAG,KAAK,GACE;IAClB,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;IAC/B,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;IACxC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,UAAU,GAAG,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9C,8CAA8C;IAC9C,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACzC,8CAA8C;QAC9C,uDAAuD;IACzD,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IAEzB,kBAAkB;IAClB,MAAM,MAAM,GAAG,QAAQ;QACrB,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ;QAC9B,CAAC,CAAC,UAAU,IAAI,SAAS;YACvB,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa;YACnC,CAAC,CAAC,UAAU;gBACV,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ;gBAC9B,CAAC,CAAC,SAAS;oBACT,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK;oBAC3B,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;IAEtC,MAAM,YAAY,GAChB,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CACzB,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,GAAI,CACxD,CAAC,CAAC,CAAC,CACF,IAAI,CACL,CAAC;IAEJ,OAAO,CACL,MAAC,SAAS,IACR,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,CAAC,QAAQ;gBAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,EACD,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EACnC,UAAU,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EACrC,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAC,UAAU,EAC5B,kBAAkB,EAAE,WAAW,EAC/B,kBAAkB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,EACtD,KAAK,EAAE;YACL,aAAa,EAAE,KAAK;YACpB,UAAU,EAAE,YAAY;YACxB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,iBAAiB,EAAE,MAAM,CAAC,QAAQ;YAClC,eAAe,EAAE,MAAM,CAAC,QAAQ;YAChC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,eAAe,EAAE,MAAM,CAAC,EAAE;SAC3B,aAEA,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,IAAI,IACH,2BAA2B,QAC3B,yBAAyB,EAAC,IAAI,EAC9B,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAE7C,YAAY,GACR,CACR,CAAC,CAAC,CAAC,IAAI,EAER,MAAC,IAAI,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,aAChD,KAAC,IAAI,IACH,KAAK,EAAE;4BACL,UAAU,EAAE,UAAU,CAAC,IAAI;4BAC3B,UAAU,EAAE,UAAU,CAAC,MAAM;4BAC7B,QAAQ,EAAE,WAAW,CAAC,QAAQ;4BAC9B,UAAU,EAAE,WAAW,CAAC,UAAU;4BAClC,aAAa,EAAE,WAAW,CAAC,aAAa;4BACxC,KAAK,EAAE,MAAM,CAAC,EAAE;yBACjB,EACD,UAAU,EAAE,KAAK,YAEhB,WAAW,GACP,EACN,WAAW,CAAC,CAAC,CAAC,CACb,KAAC,IAAI,IACH,KAAK,EAAE;4BACL,UAAU,EAAE,UAAU,CAAC,IAAI;4BAC3B,UAAU,EAAE,UAAU,CAAC,OAAO;4BAC9B,QAAQ,EAAE,UAAU,CAAC,QAAQ;4BAC7B,UAAU,EAAE,UAAU,CAAC,UAAU;4BACjC,aAAa,EAAE,UAAU,CAAC,aAAa;4BACvC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW;yBACrD,EACD,aAAa,EAAE,CAAC,EAChB,UAAU,EAAE,KAAK,YAEhB,WAAW,GACP,CACR,CAAC,CAAC,CAAC,IAAI,IACH,EAEN,UAAU,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CACzB,KAAC,IAAI,IACH,2BAA2B,QAC3B,yBAAyB,EAAC,IAAI,EAC9B,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAE9C,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,GAAI,GACnD,CACR,CAAC,CAAC,CAAC,IAAI,IACE,CACb,CAAC;AACJ,CAAC;AAWD,MAAM,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAsB;IACnE,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;IAEzC,OAAO,CACL,KAAC,IAAI,IACH,KAAK,EAAE;YACL;gBACE,eAAe,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE;gBACzC,WAAW,EAAE,aAAa,CAAC,WAAW;gBACtC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM;gBACzC,YAAY,EAAE,aAAa,CAAC,OAAO,CAAC,YAAY;gBAChD,eAAe,EAAE,MAAM,CAAC,QAAQ;gBAChC,SAAS,EAAE,kBAAkB;gBAC7B,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC;aACxD;YACD,KAAK;SACN,YAED,KAAC,UAAU,IACT,mBAAmB,QACnB,yBAAyB,EAAC,SAAS,EACnC,4BAA4B,kBAE3B,QAAQ,GACE,GACR,CACR,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,uDAAuD;AACvD,8EAA8E;AAE9E,MAAM,UAAU,MAAM,CAAC,EACrB,IAAI,GAAG,QAAQ,EACf,IAAI,GAAG,SAAS,EAChB,KAAK,EAAE,SAAS,EAChB,UAAU,EACV,WAAW,GAAG,WAAW,EACzB,WAAW,EACX,QAAQ,GAAG,KAAK,EAChB,KAAK,GAAG,KAAK,EACb,KAAK,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,WAAW,EACX,cAAc,EACd,QAAQ,EACR,KAAK,EACL,kBAAkB,GACN;IACZ,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAC;IAClC,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,MAAM,CAA0B,IAAI,GAAG,EAAE,CAAC,CAAC;IAClE,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEpC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,MAAM,IAAI,EAAE,CAAC;QAC1C,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtC,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1B,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,WAAmB,EAAE,EAAE;QACtB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;gBACxC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC;gBAC1C,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,WAAW,CAAC,CAAC;YAC9B,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,aAAa,EAAE,CAAC,WAAW,CAAC,CAAC;YAC7B,SAAS,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,EACD,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC,CAC9C,CAAC;IAEF,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,GAAW,EAAE,IAAgB,EAAE,EAAE;QAChC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,GAAW,EAAE,EAAE;QACnD,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,CAAC;QACL,IAAI;QACJ,IAAI;QACJ,cAAc;QACd,QAAQ,EAAE,YAAY;QACtB,cAAc;QACd,gBAAgB;KACjB,CAAC,EACF,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAC7E,CAAC;IAEF,4BAA4B;IAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAExC,gCAAgC;IAChC,MAAM,kBAAkB,GAAG,QAAQ;QACjC,CAAC,CAAC,cAAc,CAAC,MAAM;QACvB,CAAC,CAAC,KAAK;YACL,CAAC,CAAC,WAAW,CAAC,MAAM;YACpB,CAAC,CAAC,SAAS;gBACT,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;gBAC3C,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;IAEpD,MAAM,cAAc,GAAG,QAAQ;QAC7B,CAAC,CAAC,cAAc,CAAC,EAAE;QACnB,CAAC,CAAC,SAAS;YACT,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACvC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IAE9C,MAAM,cAAc,GAAG,QAAQ;QAC7B,CAAC,CAAC,cAAc,CAAC,EAAE;QACnB,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IAE5C,uBAAuB;IACvB,MAAM,mBAAmB,GACvB,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAChC,KAAC,IAAI,IAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,GAAI,CACpE,CAAC,CAAC,CAAC,CACF,WAAW,CACZ,CAAC;IAEJ,qCAAqC;IACrC,MAAM,gBAAgB,GAAG,GAAuB,EAAE;QAChD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7C,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC/C,OAAO,IAAI,EAAE,KAAK,CAAC;YACrB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,gBAAgB,EAAE,CAAC;IAEvC,OAAO,CACL,KAAC,SAAS,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ,YACjC,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,aAErD,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,IAAI,IACH,KAAK,EAAE;wBACL,UAAU,EAAE,UAAU,CAAC,IAAI;wBAC3B,UAAU,EAAE,UAAU,CAAC,MAAM;wBAC7B,QAAQ,EAAE,SAAS,CAAC,QAAQ;wBAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;wBAChC,aAAa,EAAE,SAAS,CAAC,aAAa;wBACtC,KAAK,EAAE,cAAc;qBACtB,EACD,UAAU,EAAE,KAAK,YAEhB,SAAS,GACL,CACR,CAAC,CAAC,CAAC,IAAI,EAGR,MAAC,IAAI,IAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAmB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,aACzE,MAAC,SAAS,IACR,OAAO,EAAE,GAAG,EAAE;gCACZ,IAAI,CAAC,QAAQ;oCAAE,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;4BACpC,CAAC,EACD,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EACnC,UAAU,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EACrC,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAC,QAAQ,EAC1B,kBAAkB,EAChB,kBAAkB,IAAI,SAAS,IAAI,eAAe,EAEpD,kBAAkB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAClD,KAAK,EAAE;gCACL,aAAa,EAAE,KAAK;gCACpB,UAAU,EAAE,QAAQ;gCACpB,GAAG,EAAE,WAAW,CAAC,GAAG;gCACpB,iBAAiB,EAAE,WAAW,CAAC,QAAQ;gCACvC,eAAe,EAAE,WAAW,CAAC,QAAQ;gCACrC,YAAY,EAAE,WAAW,CAAC,YAAY;gCACtC,WAAW,EAAE,aAAa,CAAC,WAAW;gCACtC,WAAW,EAAE,kBAAkB;gCAC/B,eAAe,EAAE,cAAc;6BAChC,aAGA,mBAAmB,CAAC,CAAC,CAAC,CACrB,KAAC,IAAI,IACH,2BAA2B,QAC3B,yBAAyB,EAAC,IAAI,EAC9B,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAE7C,mBAAmB,GACf,CACR,CAAC,CAAC,CAAC,IAAI,EAGP,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAClB,KAAC,IAAI,IACH,KAAK,EAAE;wCACL,IAAI,EAAE,CAAC;wCACP,aAAa,EAAE,KAAK;wCACpB,QAAQ,EAAE,MAAM;wCAChB,GAAG,EAAE,CAAC;wCACN,UAAU,EAAE,QAAQ;qCACrB,YAEA,cAAc,CAAC,MAAM,GAAG,CAAC;wCACxB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;4CACzB,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4CAC7C,OAAO,CACL,KAAC,SAAS,IAER,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EACN,QAAQ;oDACN,CAAC,CAAC,SAAS;oDACX,CAAC,CAAC,GAAG,EAAE;wDACH,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CACjB,CAAC;wDACF,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC;oDACzB,CAAC,YAGN,IAAI,EAAE,KAAK,IAAI,GAAG,IAbd,GAAG,CAcE,CACb,CAAC;wCACJ,CAAC,CAAC;wCACJ,CAAC,CAAC,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,GACvC,CACR,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CACxB,KAAC,SAAS,IACR,KAAK,EAAE,WAAW,IAAI,WAAW,IAAI,EAAE,EACvC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;wCACrB,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC;wCACvB,IAAI,CAAC,MAAM;4CAAE,SAAS,CAAC,IAAI,CAAC,CAAC;oCAC/B,CAAC,EACD,OAAO,EAAE,GAAG,EAAE;wCACZ,IAAI,CAAC,MAAM;4CAAE,SAAS,CAAC,IAAI,CAAC,CAAC;oCAC/B,CAAC,EACD,WAAW,EAAE,WAAW,EACxB,oBAAoB,EAAE,UAAU,CAAC,WAAW,EAC5C,QAAQ,EAAE,CAAC,QAAQ,EACnB,KAAK,EAAE;wCACL,IAAI,EAAE,CAAC;wCACP,UAAU,EAAE,UAAU,CAAC,IAAI;wCAC3B,UAAU,EAAE,UAAU,CAAC,OAAO;wCAC9B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;wCAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;wCAC/B,aAAa,EAAE,QAAQ,CAAC,aAAa;wCACrC,KAAK,EAAE,cAAc;wCACrB,OAAO,EAAE,CAAC;wCACV,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK;4CACvB,CAAC,CAAE,EAAE,YAAY,EAAE,CAAC,EAA2B;4CAC/C,CAAC,CAAC,EAAE,CAAC;qCACR,EACD,kBAAkB,EAAE,kBAAkB,IAAI,SAAS,IAAI,QAAQ,GAC/D,CACH,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YACtB,KAAC,IAAI,IACH,aAAa,EAAE,CAAC,EAChB,KAAK,EAAE;4CACL,UAAU,EAAE,UAAU,CAAC,IAAI;4CAC3B,UAAU,EAAE,UAAU,CAAC,OAAO;4CAC9B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;4CAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;4CAC/B,aAAa,EAAE,QAAQ,CAAC,aAAa;4CACrC,KAAK,EAAE,WAAW;gDAChB,CAAC,CAAC,cAAc;gDAChB,CAAC,CAAC,UAAU,CAAC,WAAW;yCAC3B,EACD,UAAU,EAAE,KAAK,YAEhB,WAAW,IAAI,WAAW,GACtB,GACF,CACR,EAGD,KAAC,IAAI,IACH,2BAA2B,QAC3B,yBAAyB,EAAC,IAAI,EAC9B,KAAK,EACH,MAAM;wCACJ,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE;wCACvC,CAAC,CAAC,SAAS,YAGf,KAAC,IAAI,IACH,IAAI,EAAC,qBAAqB,EAC1B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,cAAc,GACrB,GACG,IACG,EAGX,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,SAAS,IACR,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAC/B,iBAAiB,EAAC,QAAQ,EAC1B,kBAAkB,EAAC,cAAc,EACjC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC;gCACrB,GAAG,EAAE;oCACH,QAAQ,EAAE,OAAgC;oCAC1C,GAAG,EAAE,CAAC;oCACN,IAAI,EAAE,CAAC;oCACP,KAAK,EAAE,CAAC;oCACR,MAAM,EAAE,CAAC;oCACT,MAAM,EAAE,CAAC;iCACG;gCACd,OAAO,EAAE;oCACP,QAAQ,EAAE,UAAmB;oCAC7B,GAAG,EAAE,CAAC,IAAI;oCACV,IAAI,EAAE,CAAC,IAAI;oCACX,KAAK,EAAE,KAAK;oCACZ,MAAM,EAAE,KAAK;iCACD;6BACf,CAAC,GACF,CACH,CAAC,CAAC,CAAC,IAAI,EAGR,KAAC,IAAI,IACH,KAAK,EAAE;gCACL;oCACE,QAAQ,EAAE,UAAmB;oCAC7B,GAAG,EAAE,MAA2B;oCAChC,IAAI,EAAE,CAAC;oCACP,KAAK,EAAE,CAAC;oCACR,UAAU,EAAE,CAAC;oCACb,MAAM,EAAE,CAAC;iCACV;gCACD,CAAC,MAAM,IAAK,EAAE,OAAO,EAAE,MAAM,EAAgB;6BAC9C,YAED,KAAC,aAAa,cAAE,QAAQ,GAAiB,GACpC,IACA,EAGN,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,IAAI,IACH,KAAK,EAAE;wBACL,UAAU,EAAE,UAAU,CAAC,IAAI;wBAC3B,UAAU,EAAE,UAAU,CAAC,OAAO;wBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;wBAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;wBACpC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW;qBACvD,EACD,UAAU,EAAE,KAAK,YAEhB,UAAU,GACN,CACR,CAAC,CAAC,CAAC,IAAI,IACH,GACY,CACtB,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,iBAAiB,CACxB,IAAY,EACZ,IAAqE;IAErE,OAAO,CACL,KAAC,IAAI,IACH,KAAK,EAAE;YACL,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,UAAU,EAAE,UAAU,CAAC,OAAO;YAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,KAAK,EAAE,UAAU,CAAC,WAAW;SAC9B,EACD,UAAU,EAAE,KAAK,YAEhB,IAAI,GACA,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Select, SelectOption, SelectGroup, SelectSeparator, SelectTag, SelectContent, type SelectProps, type SelectSize, type SelectType, type SelectOptionProps, type SelectGroupProps, type SelectTagProps, type SelectContentProps, } from './Select';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Select/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,YAAY,EACZ,WAAW,EACX,eAAe,EACf,SAAS,EACT,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Select, SelectOption, SelectGroup, SelectSeparator, SelectTag, SelectContent, } from './Select';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Select/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,YAAY,EACZ,WAAW,EACX,eAAe,EACf,SAAS,EACT,aAAa,GAQd,MAAM,UAAU,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- export { intentColors, disabledColors, controlTokens, surfaceTokens, textTokens, overlayTokens, fontFamily, fontWeight, label, title, body, type IntentName, type ProminenceName, type StateName, type LabelSize, } from './tokens';
2
- export { ThemeProvider, useTheme, themes, type Theme, type ThemeProviderProps, type DensityTheme, type ComponentTokens, type ButtonSizeTokens, type ButtonThemeTokens, type DialogSizeTokens, type DialogThemeTokens, type DeepPartial, } from './theme';
1
+ export { intentColors, disabledColors, controlTokens, surfaceTokens, textTokens, overlayTokens, selectColors, tagTokens, errorTokens, fontFamily, fontWeight, label, title, body, caption, type IntentName, type ProminenceName, type StateName, type LabelSize, } from './tokens';
2
+ export { ThemeProvider, useTheme, themes, type Theme, type ThemeProviderProps, type DensityTheme, type ComponentTokens, type ButtonSizeTokens, type ButtonThemeTokens, type DialogSizeTokens, type DialogThemeTokens, type InputSizeTokens, type InputThemeTokens, type SelectContentTokens, type SelectOptionTokens, type SelectGroupTokens, type SelectSeparatorTokens, type SelectThemeTokens, type DeepPartial, } from './theme';
3
3
  export { Button, type ButtonProps, type ButtonSize } from './components/Button';
4
4
  export { Icon, type IconProps } from './components/Icon';
5
5
  export { Dialog, DialogContent, type DialogProps, type DialogContentProps, type DialogAction, type DialogSize, } from './components/Dialog';
6
+ export { Select, SelectOption, SelectGroup, SelectSeparator, SelectTag, SelectContent as SelectDropdown, type SelectProps, type SelectSize, type SelectType, type SelectOptionProps, type SelectGroupProps, type SelectTagProps, type SelectContentProps, } from './components/Select';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,UAAU,EACV,aAAa,EACb,UAAU,EACV,UAAU,EACV,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,SAAS,GACf,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,aAAa,EACb,QAAQ,EACR,MAAM,EACN,KAAK,KAAK,EACV,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,WAAW,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACL,MAAM,EACN,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,UAAU,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,KAAK,EACL,KAAK,EACL,IAAI,EACJ,OAAO,EACP,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,SAAS,GACf,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,aAAa,EACb,QAAQ,EACR,MAAM,EACN,KAAK,KAAK,EACV,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,WAAW,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACL,MAAM,EACN,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,MAAM,EACN,YAAY,EACZ,WAAW,EACX,eAAe,EACf,SAAS,EACT,aAAa,IAAI,cAAc,EAC/B,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -1,11 +1,12 @@
1
1
  // Cast UI — Cross-platform design system component library
2
2
  //
3
3
  // Tokens
4
- export { intentColors, disabledColors, controlTokens, surfaceTokens, textTokens, overlayTokens, fontFamily, fontWeight, label, title, body, } from './tokens';
4
+ export { intentColors, disabledColors, controlTokens, surfaceTokens, textTokens, overlayTokens, selectColors, tagTokens, errorTokens, fontFamily, fontWeight, label, title, body, caption, } from './tokens';
5
5
  // Theme
6
6
  export { ThemeProvider, useTheme, themes, } from './theme';
7
7
  // Components
8
8
  export { Button } from './components/Button';
9
9
  export { Icon } from './components/Icon';
10
10
  export { Dialog, DialogContent, } from './components/Dialog';
11
+ export { Select, SelectOption, SelectGroup, SelectSeparator, SelectTag, SelectContent as SelectDropdown, } from './components/Select';
11
12
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,EAAE;AACF,SAAS;AACT,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,UAAU,EACV,aAAa,EACb,UAAU,EACV,UAAU,EACV,KAAK,EACL,KAAK,EACL,IAAI,GAKL,MAAM,UAAU,CAAC;AAElB,QAAQ;AACR,OAAO,EACL,aAAa,EACb,QAAQ,EACR,MAAM,GAUP,MAAM,SAAS,CAAC;AAEjB,aAAa;AACb,OAAO,EAAE,MAAM,EAAqC,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,IAAI,EAAkB,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACL,MAAM,EACN,aAAa,GAKd,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,EAAE;AACF,SAAS;AACT,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,UAAU,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,KAAK,EACL,KAAK,EACL,IAAI,EACJ,OAAO,GAKR,MAAM,UAAU,CAAC;AAElB,QAAQ;AACR,OAAO,EACL,aAAa,EACb,QAAQ,EACR,MAAM,GAiBP,MAAM,SAAS,CAAC;AAEjB,aAAa;AACb,OAAO,EAAE,MAAM,EAAqC,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,IAAI,EAAkB,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACL,MAAM,EACN,aAAa,GAKd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,MAAM,EACN,YAAY,EACZ,WAAW,EACX,eAAe,EACf,SAAS,EACT,aAAa,IAAI,cAAc,GAQhC,MAAM,qBAAqB,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export { ThemeProvider, useTheme, type ThemeProviderProps, type Theme } from './ThemeContext';
2
2
  export { themes } from './themes';
3
- export type { DensityTheme, ComponentTokens, ButtonSizeTokens, ButtonThemeTokens, DialogSizeTokens, DialogThemeTokens, DeepPartial, } from './types';
3
+ export type { DensityTheme, ComponentTokens, ButtonSizeTokens, ButtonThemeTokens, DialogSizeTokens, DialogThemeTokens, InputSizeTokens, InputThemeTokens, SelectContentTokens, SelectOptionTokens, SelectGroupTokens, SelectSeparatorTokens, SelectThemeTokens, DeepPartial, } from './types';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,GACZ,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,WAAW,GACZ,MAAM,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../../src/theme/themes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE7D,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,eAAe,CAoFxD,CAAC"}
1
+ {"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../../src/theme/themes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE7D,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,eAAe,CA2ExD,CAAC"}
@@ -17,24 +17,21 @@ export const themes = {
17
17
  large: { padding: 32, gap: 24, iconSize: 40 },
18
18
  },
19
19
  button: {
20
- small: {
21
- gap: 4,
22
- paddingX: 6,
23
- paddingY: 2,
24
- borderRadius: 8,
25
- },
26
- default: {
27
- gap: 8,
28
- paddingX: 10,
29
- paddingY: 6,
30
- borderRadius: 8,
31
- },
32
- large: {
33
- gap: 16,
34
- paddingX: 20,
35
- paddingY: 14,
36
- borderRadius: 8,
37
- },
20
+ small: { gap: 4, paddingX: 6, paddingY: 2, borderRadius: 8 },
21
+ default: { gap: 8, paddingX: 10, paddingY: 6, borderRadius: 8 },
22
+ large: { gap: 16, paddingX: 20, paddingY: 14, borderRadius: 8 },
23
+ },
24
+ input: {
25
+ fieldGap: 1,
26
+ small: { gap: 4, paddingX: 6, paddingY: 2, borderRadius: 8 },
27
+ default: { gap: 12, paddingX: 10, paddingY: 6, borderRadius: 8 },
28
+ large: { gap: 16, paddingX: 20, paddingY: 14, borderRadius: 8 },
29
+ },
30
+ select: {
31
+ content: { paddingY: 2 },
32
+ option: { gap: 8, paddingX: 8, paddingY: 4, borderRadius: 4 },
33
+ group: { paddingX: 8, labelPaddingY: 6 },
34
+ separator: { marginY: 4 },
38
35
  },
39
36
  },
40
37
  default: {
@@ -44,24 +41,21 @@ export const themes = {
44
41
  large: { padding: 40, gap: 32, iconSize: 40 },
45
42
  },
46
43
  button: {
47
- small: {
48
- gap: 8,
49
- paddingX: 10,
50
- paddingY: 6,
51
- borderRadius: 8,
52
- },
53
- default: {
54
- gap: 12,
55
- paddingX: 14,
56
- paddingY: 10,
57
- borderRadius: 8,
58
- },
59
- large: {
60
- gap: 20,
61
- paddingX: 24,
62
- paddingY: 16,
63
- borderRadius: 8,
64
- },
44
+ small: { gap: 8, paddingX: 10, paddingY: 6, borderRadius: 8 },
45
+ default: { gap: 12, paddingX: 14, paddingY: 10, borderRadius: 8 },
46
+ large: { gap: 20, paddingX: 24, paddingY: 16, borderRadius: 8 },
47
+ },
48
+ input: {
49
+ fieldGap: 2,
50
+ small: { gap: 8, paddingX: 10, paddingY: 6, borderRadius: 8 },
51
+ default: { gap: 12, paddingX: 14, paddingY: 10, borderRadius: 8 },
52
+ large: { gap: 20, paddingX: 24, paddingY: 16, borderRadius: 8 },
53
+ },
54
+ select: {
55
+ content: { paddingY: 4 },
56
+ option: { gap: 12, paddingX: 12, paddingY: 6, borderRadius: 4 },
57
+ group: { paddingX: 12, labelPaddingY: 6 },
58
+ separator: { marginY: 4 },
65
59
  },
66
60
  },
67
61
  comfortable: {
@@ -71,24 +65,21 @@ export const themes = {
71
65
  large: { padding: 48, gap: 40, iconSize: 40 },
72
66
  },
73
67
  button: {
74
- small: {
75
- gap: 12,
76
- paddingX: 14,
77
- paddingY: 10,
78
- borderRadius: 8,
79
- },
80
- default: {
81
- gap: 16,
82
- paddingX: 20,
83
- paddingY: 14,
84
- borderRadius: 8,
85
- },
86
- large: {
87
- gap: 24,
88
- paddingX: 32,
89
- paddingY: 20,
90
- borderRadius: 8,
91
- },
68
+ small: { gap: 12, paddingX: 14, paddingY: 10, borderRadius: 8 },
69
+ default: { gap: 16, paddingX: 20, paddingY: 14, borderRadius: 8 },
70
+ large: { gap: 24, paddingX: 32, paddingY: 20, borderRadius: 8 },
71
+ },
72
+ input: {
73
+ fieldGap: 4,
74
+ small: { gap: 12, paddingX: 14, paddingY: 10, borderRadius: 8 },
75
+ default: { gap: 12, paddingX: 20, paddingY: 14, borderRadius: 8 },
76
+ large: { gap: 24, paddingX: 32, paddingY: 20, borderRadius: 8 },
77
+ },
78
+ select: {
79
+ content: { paddingY: 6 },
80
+ option: { gap: 16, paddingX: 16, paddingY: 8, borderRadius: 4 },
81
+ group: { paddingX: 16, labelPaddingY: 6 },
82
+ separator: { marginY: 4 },
92
83
  },
93
84
  },
94
85
  };
@@ -1 +1 @@
1
- {"version":3,"file":"themes.js","sourceRoot":"","sources":["../../src/theme/themes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,CAAC,MAAM,MAAM,GAA0C;IAC3D,OAAO,EAAE;QACP,MAAM,EAAE;YACN,KAAK,EAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC/C,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC/C,KAAK,EAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;SAChD;QACD,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,GAAG,EAAE,CAAC;gBACN,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,CAAC;gBACX,YAAY,EAAE,CAAC;aAChB;YACD,OAAO,EAAE;gBACP,GAAG,EAAE,CAAC;gBACN,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,CAAC;gBACX,YAAY,EAAE,CAAC;aAChB;YACD,KAAK,EAAE;gBACL,GAAG,EAAE,EAAE;gBACP,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,YAAY,EAAE,CAAC;aAChB;SACF;KACF;IAED,OAAO,EAAE;QACP,MAAM,EAAE;YACN,KAAK,EAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC/C,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC/C,KAAK,EAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;SAChD;QACD,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,GAAG,EAAE,CAAC;gBACN,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,CAAC;gBACX,YAAY,EAAE,CAAC;aAChB;YACD,OAAO,EAAE;gBACP,GAAG,EAAE,EAAE;gBACP,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,YAAY,EAAE,CAAC;aAChB;YACD,KAAK,EAAE;gBACL,GAAG,EAAE,EAAE;gBACP,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,YAAY,EAAE,CAAC;aAChB;SACF;KACF;IAED,WAAW,EAAE;QACX,MAAM,EAAE;YACN,KAAK,EAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC/C,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC/C,KAAK,EAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;SAChD;QACD,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,GAAG,EAAE,EAAE;gBACP,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,YAAY,EAAE,CAAC;aAChB;YACD,OAAO,EAAE;gBACP,GAAG,EAAE,EAAE;gBACP,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,YAAY,EAAE,CAAC;aAChB;YACD,KAAK,EAAE;gBACL,GAAG,EAAE,EAAE;gBACP,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,YAAY,EAAE,CAAC;aAChB;SACF;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"themes.js","sourceRoot":"","sources":["../../src/theme/themes.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,47 @@ export type DialogThemeTokens = {
30
30
  default: DialogSizeTokens;
31
31
  large: DialogSizeTokens;
32
32
  };
33
+ /** Spacing/sizing tokens for a single input size variant (used by Select trigger) */
34
+ export type InputSizeTokens = {
35
+ gap: number;
36
+ paddingX: number;
37
+ paddingY: number;
38
+ borderRadius: number;
39
+ };
40
+ /** All three input sizes + field gap */
41
+ export type InputThemeTokens = {
42
+ fieldGap: number;
43
+ small: InputSizeTokens;
44
+ default: InputSizeTokens;
45
+ large: InputSizeTokens;
46
+ };
47
+ /** Select dropdown content tokens */
48
+ export type SelectContentTokens = {
49
+ paddingY: number;
50
+ };
51
+ /** Select option tokens */
52
+ export type SelectOptionTokens = {
53
+ gap: number;
54
+ paddingX: number;
55
+ paddingY: number;
56
+ borderRadius: number;
57
+ };
58
+ /** Select group tokens */
59
+ export type SelectGroupTokens = {
60
+ paddingX: number;
61
+ labelPaddingY: number;
62
+ };
63
+ /** Select separator tokens */
64
+ export type SelectSeparatorTokens = {
65
+ marginY: number;
66
+ };
67
+ /** Combined select tokens */
68
+ export type SelectThemeTokens = {
69
+ content: SelectContentTokens;
70
+ option: SelectOptionTokens;
71
+ group: SelectGroupTokens;
72
+ separator: SelectSeparatorTokens;
73
+ };
33
74
  /**
34
75
  * Component-level tokens that vary by density theme.
35
76
  * Extended as new components are added to the library.
@@ -37,6 +78,8 @@ export type DialogThemeTokens = {
37
78
  export type ComponentTokens = {
38
79
  button: ButtonThemeTokens;
39
80
  dialog: DialogThemeTokens;
81
+ input: InputThemeTokens;
82
+ select: SelectThemeTokens;
40
83
  };
41
84
  /** Utility type for partial overrides at any depth */
42
85
  export type DeepPartial<T> = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/theme/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;AAEjE,6DAA6D;AAC7D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,6BAA6B;AAC7B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,KAAK,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,6BAA6B;AAC7B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,KAAK,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/theme/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;AAEjE,6DAA6D;AAC7D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,6BAA6B;AAC7B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,KAAK,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,6BAA6B;AAC7B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,KAAK,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEF,qFAAqF;AACrF,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wCAAwC;AACxC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,eAAe,CAAC;IACzB,KAAK,EAAE,eAAe,CAAC;CACxB,CAAC;AAEF,qCAAqC;AACrC,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,2BAA2B;AAC3B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,0BAA0B;AAC1B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,8BAA8B;AAC9B,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,6BAA6B;AAC7B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,iBAAiB,CAAC;IACzB,SAAS,EAAE,qBAAqB,CAAC;CAClC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC"}
@@ -51,5 +51,47 @@ export declare const textTokens: {
51
51
  export declare const overlayTokens: {
52
52
  scrimOpacity: number;
53
53
  };
54
+ /** Option state colours — used by SelectOption (neutral intent) */
55
+ export declare const selectColors: {
56
+ option: {
57
+ default: {
58
+ bg: string;
59
+ fg: string;
60
+ };
61
+ hover: {
62
+ bg: string;
63
+ fg: string;
64
+ };
65
+ selected: {
66
+ bg: string;
67
+ fg: string;
68
+ };
69
+ selectedHover: {
70
+ bg: string;
71
+ fg: string;
72
+ };
73
+ disabled: {
74
+ bg: string;
75
+ fg: string;
76
+ };
77
+ };
78
+ /** Separator line colour */
79
+ separator: string;
80
+ };
81
+ /** Tag tokens — multi-select pill styling (constant across densities) */
82
+ export declare const tagTokens: {
83
+ bg: string;
84
+ fg: string;
85
+ borderRadius: number;
86
+ paddingX: number;
87
+ paddingY: number;
88
+ gap: number;
89
+ closeSize: number;
90
+ };
91
+ /** Error/danger colour for form field borders and helper text */
92
+ export declare const errorTokens: {
93
+ border: string;
94
+ fg: string;
95
+ };
54
96
  export {};
55
97
  //# sourceMappingURL=colors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/tokens/colors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AACxD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAC3D,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,YAAY,CAoDzD,CAAC;AAEF,iDAAiD;AACjD,eAAO,MAAM,cAAc,EAAE,WAI5B,CAAC;AAEF,iCAAiC;AACjC,eAAO,MAAM,aAAa;;CAEzB,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,aAAa;IACxB,4CAA4C;;IAE5C,2DAA2D;;IAE3D,gEAAgE;;;;;;CAMjE,CAAC;AAEF,2BAA2B;AAC3B,eAAO,MAAM,UAAU;;CAEtB,CAAC;AAEF,4BAA4B;AAC5B,eAAO,MAAM,aAAa;;CAEzB,CAAC"}
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/tokens/colors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AACxD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAC3D,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,YAAY,CAoDzD,CAAC;AAEF,iDAAiD;AACjD,eAAO,MAAM,cAAc,EAAE,WAI5B,CAAC;AAEF,iCAAiC;AACjC,eAAO,MAAM,aAAa;;CAEzB,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,aAAa;IACxB,4CAA4C;;IAE5C,2DAA2D;;IAE3D,gEAAgE;;;;;;CAMjE,CAAC;AAEF,2BAA2B;AAC3B,eAAO,MAAM,UAAU;;CAEtB,CAAC;AAEF,4BAA4B;AAC5B,eAAO,MAAM,aAAa;;CAEzB,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;IAQvB,4BAA4B;;CAE7B,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,SAAS;;;;;;;;CAQrB,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,WAAW;;;CAGvB,CAAC"}
@@ -89,4 +89,31 @@ export const textTokens = {
89
89
  export const overlayTokens = {
90
90
  scrimOpacity: 0.5,
91
91
  };
92
+ /** Option state colours — used by SelectOption (neutral intent) */
93
+ export const selectColors = {
94
+ option: {
95
+ default: { bg: 'transparent', fg: '#374151' },
96
+ hover: { bg: '#F9FAFB', fg: '#111827' },
97
+ selected: { bg: '#EFF6FF', fg: '#1D4ED8' },
98
+ selectedHover: { bg: '#DBEAFE', fg: '#1D4ED8' },
99
+ disabled: { bg: 'transparent', fg: '#9CA3AF' },
100
+ },
101
+ /** Separator line colour */
102
+ separator: '#E5E7EB',
103
+ };
104
+ /** Tag tokens — multi-select pill styling (constant across densities) */
105
+ export const tagTokens = {
106
+ bg: '#F3F4F6',
107
+ fg: '#374151',
108
+ borderRadius: 4,
109
+ paddingX: 6,
110
+ paddingY: 1,
111
+ gap: 4,
112
+ closeSize: 12,
113
+ };
114
+ /** Error/danger colour for form field borders and helper text */
115
+ export const errorTokens = {
116
+ border: '#FCA5A5',
117
+ fg: '#DC2626',
118
+ };
92
119
  //# sourceMappingURL=colors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/tokens/colors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/tokens/colors.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export { intentColors, disabledColors, controlTokens, surfaceTokens, textTokens, overlayTokens, type IntentName, type ProminenceName, type StateName, } from './colors';
2
- export { fontFamily, fontWeight, label, title, body, type LabelSize } from './typography';
1
+ export { intentColors, disabledColors, controlTokens, surfaceTokens, textTokens, overlayTokens, selectColors, tagTokens, errorTokens, type IntentName, type ProminenceName, type StateName, } from './colors';
2
+ export { fontFamily, fontWeight, label, title, body, caption, type LabelSize } from './typography';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tokens/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,UAAU,EACV,aAAa,EACb,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,SAAS,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tokens/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,UAAU,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,WAAW,EACX,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,SAAS,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -1,3 +1,3 @@
1
- export { intentColors, disabledColors, controlTokens, surfaceTokens, textTokens, overlayTokens, } from './colors';
2
- export { fontFamily, fontWeight, label, title, body } from './typography';
1
+ export { intentColors, disabledColors, controlTokens, surfaceTokens, textTokens, overlayTokens, selectColors, tagTokens, errorTokens, } from './colors';
2
+ export { fontFamily, fontWeight, label, title, body, caption } from './typography';
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tokens/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,UAAU,EACV,aAAa,GAId,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAkB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tokens/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,UAAU,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,WAAW,GAIZ,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAkB,MAAM,cAAc,CAAC"}
@@ -27,5 +27,11 @@ type TypographyScale = Record<'sm' | 'md' | 'lg', {
27
27
  export declare const label: TypographyScale;
28
28
  export declare const title: TypographyScale;
29
29
  export declare const body: TypographyScale;
30
+ /** Caption scale — helper text, group labels, tags */
31
+ export declare const caption: {
32
+ readonly fontSize: 11;
33
+ readonly lineHeight: 16;
34
+ readonly letterSpacing: 0.5;
35
+ };
30
36
  export {};
31
37
  //# sourceMappingURL=typography.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typography.d.ts","sourceRoot":"","sources":["../../src/tokens/typography.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,eAAO,MAAM,UAAU;;;;CAOb,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;CAMtB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C,KAAK,eAAe,GAAG,MAAM,CAC3B,IAAI,GAAG,IAAI,GAAG,IAAI,EAClB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAChE,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,eAInB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,eAInB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,eAIlB,CAAC"}
1
+ {"version":3,"file":"typography.d.ts","sourceRoot":"","sources":["../../src/tokens/typography.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,eAAO,MAAM,UAAU;;;;CAOb,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;CAMtB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C,KAAK,eAAe,GAAG,MAAM,CAC3B,IAAI,GAAG,IAAI,GAAG,IAAI,EAClB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAChE,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,eAInB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,eAInB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,eAIlB,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,OAAO;;;;CAAgE,CAAC"}
@@ -37,4 +37,6 @@ export const body = {
37
37
  md: { fontSize: 14, lineHeight: 20, letterSpacing: 0 },
38
38
  lg: { fontSize: 16, lineHeight: 24, letterSpacing: 0 },
39
39
  };
40
+ /** Caption scale — helper text, group labels, tags */
41
+ export const caption = { fontSize: 11, lineHeight: 16, letterSpacing: 0.5 };
40
42
  //# sourceMappingURL=typography.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typography.js","sourceRoot":"","sources":["../../src/tokens/typography.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,8BAA8B,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAChF,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;QACpB,GAAG,EAAE,6BAA6B;QAClC,OAAO,EAAE,gBAAgB;KAC1B,CAAC;IACF,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;CACrE,CAAC;AAEX,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,KAAc;IACrB,OAAO,EAAE,KAAc;IACvB,MAAM,EAAE,KAAc;IACtB,QAAQ,EAAE,KAAc;IACxB,IAAI,EAAE,KAAc;CACrB,CAAC;AASF,MAAM,CAAC,MAAM,KAAK,GAAoB;IACpC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;IACzD,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IACtD,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;CACvD,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAoB;IACpC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IACtD,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IACtD,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;CACvD,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAoB;IACnC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;IACzD,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IACtD,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;CACvD,CAAC"}
1
+ {"version":3,"file":"typography.js","sourceRoot":"","sources":["../../src/tokens/typography.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,8BAA8B,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAChF,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;QACpB,GAAG,EAAE,6BAA6B;QAClC,OAAO,EAAE,gBAAgB;KAC1B,CAAC;IACF,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;CACrE,CAAC;AAEX,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,KAAc;IACrB,OAAO,EAAE,KAAc;IACvB,MAAM,EAAE,KAAc;IACtB,QAAQ,EAAE,KAAc;IACxB,IAAI,EAAE,KAAc;CACrB,CAAC;AASF,MAAM,CAAC,MAAM,KAAK,GAAoB;IACpC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;IACzD,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IACtD,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;CACvD,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAoB;IACpC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IACtD,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IACtD,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;CACvD,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAoB;IACnC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;IACzD,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IACtD,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;CACvD,CAAC;AAEF,sDAAsD;AACtD,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAW,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@castui/cast-ui",
3
- "version": "4.0.0",
3
+ "version": "4.1.0",
4
4
  "description": "A cross-platform design system for React Native (iOS, Android, Web) with multi-theme support.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",