@molecule/app-ui 1.3.5 → 1.3.7
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/README.md +1266 -1792
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -3,21 +3,21 @@ AUTO-GENERATED — DO NOT EDIT THIS FILE.
|
|
|
3
3
|
Generated by `mlcl sync-docs` from the package's src/index.ts JSDoc + mlcl/registry.json.
|
|
4
4
|
Edits here are overwritten on the next commit (molecule's pre-commit hook regenerates).
|
|
5
5
|
To change this document, edit the module-level JSDoc in src/index.ts.
|
|
6
|
-
Generated: 2026-10-
|
|
6
|
+
Generated: 2026-10-18T09:34:41.440Z
|
|
7
7
|
-->
|
|
8
8
|
|
|
9
9
|
# @molecule/app-ui
|
|
10
10
|
|
|
11
|
-
> **Auto-generated, AI-first package reference** for the [molecule.dev](https://molecule.dev) ecosystem.
|
|
12
|
-
> It is written to be read by coding agents as much as by people, and is generated from this
|
|
13
|
-
> package's source — edit `src/index.ts` JSDoc, not this file.
|
|
14
|
-
|
|
15
11
|
UI component interfaces for molecule.dev.
|
|
16
12
|
|
|
17
13
|
Provides standardized prop interfaces for common UI components
|
|
18
14
|
that can be implemented by different UI libraries (styled-components,
|
|
19
15
|
Tailwind, Ionic, etc.).
|
|
20
16
|
|
|
17
|
+
> **Auto-generated, AI-first package reference** for the [molecule.dev](https://molecule.dev) ecosystem.
|
|
18
|
+
> It is written to be read by coding agents as much as by people, and is generated from this
|
|
19
|
+
> package's source — edit `src/index.ts` JSDoc, not this file.
|
|
20
|
+
|
|
21
21
|
## Quick Start
|
|
22
22
|
|
|
23
23
|
```tsx
|
|
@@ -44,230 +44,86 @@ npm install @molecule/app-ui @molecule/app-bond @molecule/app-i18n
|
|
|
44
44
|
|
|
45
45
|
### Interfaces
|
|
46
46
|
|
|
47
|
-
#### `
|
|
48
|
-
|
|
49
|
-
Options for resolving accordion CSS classes via UIClassMap.
|
|
50
|
-
|
|
51
|
-
```typescript
|
|
52
|
-
interface AccordionClassOptions {
|
|
53
|
-
variant?: string
|
|
54
|
-
}
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
#### `AccordionItem`
|
|
58
|
-
|
|
59
|
-
A single item in an Accordion component.
|
|
60
|
-
|
|
61
|
-
```typescript
|
|
62
|
-
interface AccordionItem<T = string> {
|
|
63
|
-
/**
|
|
64
|
-
* Item value/id.
|
|
65
|
-
*/
|
|
66
|
-
value: T
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Item header/trigger.
|
|
70
|
-
*/
|
|
71
|
-
header: Children
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Item content.
|
|
75
|
-
*/
|
|
76
|
-
content: Children
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Whether the item is disabled.
|
|
80
|
-
*/
|
|
81
|
-
disabled?: boolean
|
|
82
|
-
}
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
#### `AccordionProps`
|
|
47
|
+
#### `UIProvider`
|
|
86
48
|
|
|
87
|
-
|
|
49
|
+
Identifies the bonded UI styling library. Providers set `name`
|
|
50
|
+
to indicate which library is active (e.g. `"tailwind"`, `"bootstrap"`).
|
|
88
51
|
|
|
89
52
|
```typescript
|
|
90
|
-
interface
|
|
91
|
-
/**
|
|
92
|
-
* Accordion items.
|
|
93
|
-
*/
|
|
94
|
-
items: AccordionItem<T>[]
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Expanded item(s).
|
|
98
|
-
*/
|
|
99
|
-
value?: T | T[]
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Default expanded item(s).
|
|
103
|
-
*/
|
|
104
|
-
defaultValue?: T | T[]
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Change handler.
|
|
108
|
-
*/
|
|
109
|
-
onChange?: (value: T | T[]) => void
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Whether multiple items can be expanded.
|
|
113
|
-
*/
|
|
114
|
-
multiple?: boolean
|
|
115
|
-
|
|
53
|
+
interface UIProvider {
|
|
116
54
|
/**
|
|
117
|
-
*
|
|
55
|
+
* Identifier for the styling library (e.g. `"tailwind"`, `"ionic"`).
|
|
118
56
|
*/
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
#### `AlertClassOptions`
|
|
124
|
-
|
|
125
|
-
Options for resolving alert CSS classes via UIClassMap.
|
|
126
|
-
|
|
127
|
-
```typescript
|
|
128
|
-
interface AlertClassOptions {
|
|
129
|
-
variant?: 'default' | 'info' | 'success' | 'warning' | 'error'
|
|
57
|
+
name: string
|
|
130
58
|
}
|
|
131
59
|
```
|
|
132
60
|
|
|
133
|
-
#### `
|
|
61
|
+
#### `MoleculeSpinnerTimings`
|
|
134
62
|
|
|
135
|
-
|
|
63
|
+
The mark's timings, in CSS duration strings. Swap cycle → glint cycle.
|
|
136
64
|
|
|
137
65
|
```typescript
|
|
138
|
-
interface
|
|
139
|
-
/**
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
* Alert title.
|
|
146
|
-
*/
|
|
147
|
-
title?: string
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Alert status/type.
|
|
151
|
-
*/
|
|
152
|
-
status?: ColorVariant
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Alert variant.
|
|
156
|
-
*/
|
|
157
|
-
variant?: 'solid' | 'subtle' | 'outline' | 'left-accent'
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Whether the alert is dismissible.
|
|
161
|
-
*/
|
|
162
|
-
dismissible?: boolean
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* Called when dismissed.
|
|
166
|
-
*/
|
|
167
|
-
onDismiss?: () => void
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Icon to display.
|
|
171
|
-
*/
|
|
172
|
-
icon?: Children
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Accessible label for the dismiss button.
|
|
176
|
-
* @default 'Dismiss'
|
|
177
|
-
*/
|
|
178
|
-
dismissLabel?: string
|
|
66
|
+
interface MoleculeSpinnerTimings {
|
|
67
|
+
/** One full 3-phase atom-swap cycle (also drives bond fades + glints). */
|
|
68
|
+
dur: string
|
|
69
|
+
/** Whole-figure rotation. Keep at two swap cycles for the intended feel. */
|
|
70
|
+
spin: string
|
|
71
|
+
/** Bond gradient flow period (one full translate across the figure). */
|
|
72
|
+
flow: string
|
|
179
73
|
}
|
|
180
74
|
```
|
|
181
75
|
|
|
182
|
-
#### `
|
|
76
|
+
#### `MoleculeSpinnerColors`
|
|
183
77
|
|
|
184
|
-
|
|
78
|
+
Gradient-mode colors. Any CSS color string, including `var()` forms.
|
|
185
79
|
|
|
186
80
|
```typescript
|
|
187
|
-
interface
|
|
188
|
-
|
|
81
|
+
interface MoleculeSpinnerColors {
|
|
82
|
+
/** Bond base / glint tail color. */
|
|
83
|
+
blue?: string
|
|
84
|
+
/** Flow highlight / glint head color at rest. */
|
|
85
|
+
light?: string
|
|
86
|
+
/** Glint ignition color while an atom is in flight. */
|
|
87
|
+
peach?: string
|
|
189
88
|
}
|
|
190
89
|
```
|
|
191
90
|
|
|
192
|
-
#### `
|
|
91
|
+
#### `MoleculeSpinnerMarkOptions`
|
|
193
92
|
|
|
194
|
-
|
|
93
|
+
Options for {@link moleculeSpinnerMarkSvg}.
|
|
195
94
|
|
|
196
95
|
```typescript
|
|
197
|
-
interface
|
|
198
|
-
/**
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
* Alt text for the image.
|
|
205
|
-
*/
|
|
206
|
-
alt?: string
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* Name for fallback initials.
|
|
210
|
-
*/
|
|
211
|
-
name?: string
|
|
212
|
-
|
|
213
|
-
/**
|
|
214
|
-
* Avatar size.
|
|
215
|
-
*/
|
|
216
|
-
size?: Size | number
|
|
217
|
-
|
|
218
|
-
/**
|
|
219
|
-
* Whether the avatar is rounded.
|
|
220
|
-
*/
|
|
221
|
-
rounded?: boolean
|
|
222
|
-
|
|
96
|
+
interface MoleculeSpinnerMarkOptions {
|
|
97
|
+
/** Motion timings; defaults to the shipped design (2.5s / 5s / 3s). */
|
|
98
|
+
timings?: Partial<MoleculeSpinnerTimings>
|
|
99
|
+
/** `gradient` (default) or `mono` — plain `currentColor` outline, no defs. */
|
|
100
|
+
paint?: 'gradient' | 'mono'
|
|
101
|
+
/** Gradient-mode colors; default the `var(--mol-spin-*, fallback)` set. */
|
|
102
|
+
colors?: MoleculeSpinnerColors
|
|
223
103
|
/**
|
|
224
|
-
*
|
|
104
|
+
* Gradient id for url() references. Must be unique per rendered instance
|
|
105
|
+
* on a page. Defaults to `mol-spinner-gradient`.
|
|
225
106
|
*/
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
interface BadgeClassOptions {
|
|
236
|
-
variant?: ColorVariant
|
|
237
|
-
size?: Size
|
|
107
|
+
gradientId?: string
|
|
108
|
+
/** Pixel size baked into width/height; omit when CSS sizes the svg. */
|
|
109
|
+
size?: number
|
|
110
|
+
/** Class attribute for the svg element. */
|
|
111
|
+
className?: string
|
|
112
|
+
/** Inline style attribute (already serialized, e.g. `color:re$d`). */
|
|
113
|
+
style?: string
|
|
114
|
+
/** Announce as `role="status"` with this label; omit for `aria-hidden`. */
|
|
115
|
+
ariaLabel?: string
|
|
238
116
|
}
|
|
239
117
|
```
|
|
240
118
|
|
|
241
|
-
#### `
|
|
119
|
+
#### `CSSProperties`
|
|
242
120
|
|
|
243
|
-
|
|
121
|
+
Framework-agnostic CSS properties.
|
|
122
|
+
Mirrors React.CSSProperties but without React dependency.
|
|
244
123
|
|
|
245
124
|
```typescript
|
|
246
|
-
interface
|
|
247
|
-
|
|
248
|
-
* Badge content.
|
|
249
|
-
*/
|
|
250
|
-
children?: Children
|
|
251
|
-
|
|
252
|
-
/**
|
|
253
|
-
* Badge color.
|
|
254
|
-
*/
|
|
255
|
-
color?: ColorVariant
|
|
256
|
-
|
|
257
|
-
/**
|
|
258
|
-
* Badge variant.
|
|
259
|
-
*/
|
|
260
|
-
variant?: 'solid' | 'outline' | 'subtle'
|
|
261
|
-
|
|
262
|
-
/**
|
|
263
|
-
* Badge size.
|
|
264
|
-
*/
|
|
265
|
-
size?: Size
|
|
266
|
-
|
|
267
|
-
/**
|
|
268
|
-
* Whether the badge is rounded.
|
|
269
|
-
*/
|
|
270
|
-
rounded?: boolean
|
|
125
|
+
interface CSSProperties {
|
|
126
|
+
[key: string]: string | number | undefined
|
|
271
127
|
}
|
|
272
128
|
```
|
|
273
129
|
|
|
@@ -307,16 +163,62 @@ interface BaseProps {
|
|
|
307
163
|
}
|
|
308
164
|
```
|
|
309
165
|
|
|
310
|
-
#### `
|
|
166
|
+
#### `HTMLElementProps`
|
|
311
167
|
|
|
312
|
-
|
|
168
|
+
Base props for HTML elements.
|
|
169
|
+
Framework bindings should extend this with framework-specific attributes.
|
|
313
170
|
|
|
314
171
|
```typescript
|
|
315
|
-
interface
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
172
|
+
interface HTMLElementProps extends BaseProps {
|
|
173
|
+
id?: string
|
|
174
|
+
title?: string
|
|
175
|
+
tabIndex?: number
|
|
176
|
+
role?: string
|
|
177
|
+
'aria-label'?: string
|
|
178
|
+
'aria-labelledby'?: string
|
|
179
|
+
'aria-describedby'?: string
|
|
180
|
+
'aria-hidden'?: boolean
|
|
181
|
+
'aria-disabled'?: boolean
|
|
182
|
+
'aria-expanded'?: boolean
|
|
183
|
+
'aria-selected'?: boolean
|
|
184
|
+
'aria-checked'?: boolean | 'mixed'
|
|
185
|
+
'aria-pressed'?: boolean | 'mixed'
|
|
186
|
+
'aria-invalid'?: boolean
|
|
187
|
+
'aria-required'?: boolean
|
|
188
|
+
'aria-readonly'?: boolean
|
|
189
|
+
'aria-busy'?: boolean
|
|
190
|
+
'aria-live'?: 'off' | 'polite' | 'assertive'
|
|
191
|
+
onClick?: MouseEventHandler
|
|
192
|
+
onDoubleClick?: MouseEventHandler
|
|
193
|
+
onMouseEnter?: MouseEventHandler
|
|
194
|
+
onMouseLeave?: MouseEventHandler
|
|
195
|
+
onFocus?: FocusEventHandler
|
|
196
|
+
onBlur?: FocusEventHandler
|
|
197
|
+
onKeyDown?: KeyboardEventHandler
|
|
198
|
+
onKeyUp?: KeyboardEventHandler
|
|
199
|
+
onKeyPress?: KeyboardEventHandler
|
|
200
|
+
}
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
#### `InputElementProps`
|
|
204
|
+
|
|
205
|
+
Base props for input elements.
|
|
206
|
+
|
|
207
|
+
```typescript
|
|
208
|
+
interface InputElementProps extends HTMLElementProps {
|
|
209
|
+
name?: string
|
|
210
|
+
value?: string | number | readonly string[]
|
|
211
|
+
defaultValue?: string | number | readonly string[]
|
|
212
|
+
placeholder?: string
|
|
213
|
+
required?: boolean
|
|
214
|
+
readOnly?: boolean
|
|
215
|
+
autoFocus?: boolean
|
|
216
|
+
autoComplete?: string
|
|
217
|
+
maxLength?: number
|
|
218
|
+
minLength?: number
|
|
219
|
+
pattern?: string
|
|
220
|
+
onChange?: ChangeEventHandler
|
|
221
|
+
onInput?: FormEventHandler
|
|
320
222
|
}
|
|
321
223
|
```
|
|
322
224
|
|
|
@@ -338,6 +240,60 @@ interface ButtonElementProps extends HTMLElementProps {
|
|
|
338
240
|
}
|
|
339
241
|
```
|
|
340
242
|
|
|
243
|
+
#### `TextareaElementProps`
|
|
244
|
+
|
|
245
|
+
Base props for textarea elements.
|
|
246
|
+
|
|
247
|
+
```typescript
|
|
248
|
+
interface TextareaElementProps extends HTMLElementProps {
|
|
249
|
+
name?: string
|
|
250
|
+
value?: string
|
|
251
|
+
defaultValue?: string
|
|
252
|
+
placeholder?: string
|
|
253
|
+
required?: boolean
|
|
254
|
+
readOnly?: boolean
|
|
255
|
+
autoFocus?: boolean
|
|
256
|
+
rows?: number
|
|
257
|
+
cols?: number
|
|
258
|
+
maxLength?: number
|
|
259
|
+
minLength?: number
|
|
260
|
+
wrap?: 'hard' | 'soft' | 'off'
|
|
261
|
+
onChange?: ChangeEventHandler
|
|
262
|
+
onInput?: FormEventHandler
|
|
263
|
+
}
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
#### `SelectElementProps`
|
|
267
|
+
|
|
268
|
+
Base props for select elements.
|
|
269
|
+
|
|
270
|
+
```typescript
|
|
271
|
+
interface SelectElementProps extends HTMLElementProps {
|
|
272
|
+
name?: string
|
|
273
|
+
required?: boolean
|
|
274
|
+
autoFocus?: boolean
|
|
275
|
+
multiple?: boolean
|
|
276
|
+
onChange?: ChangeEventHandler
|
|
277
|
+
}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
#### `FormElementProps`
|
|
281
|
+
|
|
282
|
+
Base props for form elements.
|
|
283
|
+
|
|
284
|
+
```typescript
|
|
285
|
+
interface FormElementProps extends HTMLElementProps {
|
|
286
|
+
action?: string
|
|
287
|
+
method?: 'get' | 'post'
|
|
288
|
+
encType?: string
|
|
289
|
+
target?: string
|
|
290
|
+
noValidate?: boolean
|
|
291
|
+
autoComplete?: 'on' | 'off'
|
|
292
|
+
onSubmit?: FormEventHandler
|
|
293
|
+
onReset?: FormEventHandler
|
|
294
|
+
}
|
|
295
|
+
```
|
|
296
|
+
|
|
341
297
|
#### `ButtonProps`
|
|
342
298
|
|
|
343
299
|
Props for the Button component.
|
|
@@ -391,1232 +347,1005 @@ interface ButtonProps extends ButtonElementProps {
|
|
|
391
347
|
}
|
|
392
348
|
```
|
|
393
349
|
|
|
394
|
-
#### `
|
|
395
|
-
|
|
396
|
-
Options for resolving card CSS classes via UIClassMap.
|
|
397
|
-
|
|
398
|
-
```typescript
|
|
399
|
-
interface CardClassOptions {
|
|
400
|
-
variant?: 'default' | 'elevated' | 'outline' | 'ghost'
|
|
401
|
-
}
|
|
402
|
-
```
|
|
403
|
-
|
|
404
|
-
#### `CardProps`
|
|
350
|
+
#### `InputProps`
|
|
405
351
|
|
|
406
|
-
Props for the
|
|
352
|
+
Props for the Input component (text field, email, password, etc.).
|
|
407
353
|
|
|
408
354
|
```typescript
|
|
409
|
-
interface
|
|
355
|
+
interface InputProps extends InputElementProps {
|
|
410
356
|
/**
|
|
411
|
-
*
|
|
357
|
+
* Input type.
|
|
412
358
|
*/
|
|
413
|
-
|
|
359
|
+
type?: InputType
|
|
414
360
|
|
|
415
361
|
/**
|
|
416
|
-
*
|
|
362
|
+
* Input size.
|
|
417
363
|
*/
|
|
418
|
-
|
|
364
|
+
size?: Size
|
|
419
365
|
|
|
420
366
|
/**
|
|
421
|
-
*
|
|
367
|
+
* Horizontal text alignment inside the input (see
|
|
368
|
+
* {@link InputClassOptions.align}). Defaults to the bond's own style.
|
|
422
369
|
*/
|
|
423
|
-
|
|
370
|
+
align?: 'left' | 'center'
|
|
424
371
|
|
|
425
372
|
/**
|
|
426
|
-
*
|
|
373
|
+
* Label text.
|
|
427
374
|
*/
|
|
428
|
-
|
|
429
|
-
}
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
#### `CheckboxClassOptions`
|
|
433
|
-
|
|
434
|
-
Options for resolving checkbox CSS classes via UIClassMap.
|
|
435
|
-
|
|
436
|
-
```typescript
|
|
437
|
-
interface CheckboxClassOptions {
|
|
438
|
-
error?: boolean
|
|
439
|
-
}
|
|
440
|
-
```
|
|
441
|
-
|
|
442
|
-
#### `CheckboxProps`
|
|
443
|
-
|
|
444
|
-
Props for the Checkbox component.
|
|
375
|
+
label?: string
|
|
445
376
|
|
|
446
|
-
```typescript
|
|
447
|
-
interface CheckboxProps extends InputElementProps {
|
|
448
377
|
/**
|
|
449
|
-
*
|
|
378
|
+
* Error message.
|
|
450
379
|
*/
|
|
451
|
-
|
|
380
|
+
error?: string
|
|
452
381
|
|
|
453
382
|
/**
|
|
454
|
-
*
|
|
383
|
+
* Hint/help text.
|
|
455
384
|
*/
|
|
456
|
-
|
|
385
|
+
hint?: string
|
|
457
386
|
|
|
458
387
|
/**
|
|
459
|
-
*
|
|
388
|
+
* Element to display on the left.
|
|
460
389
|
*/
|
|
461
|
-
|
|
390
|
+
leftElement?: Children
|
|
462
391
|
|
|
463
392
|
/**
|
|
464
|
-
*
|
|
393
|
+
* Element to display on the right.
|
|
465
394
|
*/
|
|
466
|
-
|
|
395
|
+
rightElement?: Children
|
|
467
396
|
|
|
468
397
|
/**
|
|
469
|
-
*
|
|
398
|
+
* Whether to show a clear button.
|
|
470
399
|
*/
|
|
471
|
-
|
|
472
|
-
}
|
|
473
|
-
```
|
|
474
|
-
|
|
475
|
-
#### `ContainerClassOptions`
|
|
400
|
+
clearable?: boolean
|
|
476
401
|
|
|
477
|
-
|
|
402
|
+
/**
|
|
403
|
+
* Called when the clear button is clicked.
|
|
404
|
+
*/
|
|
405
|
+
onClear?: () => void
|
|
478
406
|
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
407
|
+
/**
|
|
408
|
+
* Accessible label for the clear button.
|
|
409
|
+
* @default 'Clear'
|
|
410
|
+
*/
|
|
411
|
+
clearLabel?: string
|
|
482
412
|
}
|
|
483
413
|
```
|
|
484
414
|
|
|
485
|
-
#### `
|
|
415
|
+
#### `TextareaProps`
|
|
486
416
|
|
|
487
|
-
Props for the
|
|
417
|
+
Props for the Textarea component.
|
|
488
418
|
|
|
489
419
|
```typescript
|
|
490
|
-
interface
|
|
420
|
+
interface TextareaProps extends TextareaElementProps {
|
|
491
421
|
/**
|
|
492
|
-
*
|
|
422
|
+
* Text size tier (see {@link TextareaClassOptions.size}) — pass the same
|
|
423
|
+
* `size` as a neighboring Input for identical font sizes.
|
|
493
424
|
*/
|
|
494
|
-
|
|
425
|
+
size?: Size
|
|
495
426
|
|
|
496
427
|
/**
|
|
497
|
-
*
|
|
428
|
+
* Label text.
|
|
498
429
|
*/
|
|
499
|
-
|
|
430
|
+
label?: string
|
|
500
431
|
|
|
501
432
|
/**
|
|
502
|
-
*
|
|
433
|
+
* Error message.
|
|
503
434
|
*/
|
|
504
|
-
|
|
435
|
+
error?: string
|
|
505
436
|
|
|
506
437
|
/**
|
|
507
|
-
*
|
|
438
|
+
* Hint/help text.
|
|
508
439
|
*/
|
|
509
|
-
|
|
510
|
-
}
|
|
511
|
-
```
|
|
440
|
+
hint?: string
|
|
512
441
|
|
|
513
|
-
|
|
442
|
+
/**
|
|
443
|
+
* Whether the textarea auto-resizes.
|
|
444
|
+
*/
|
|
445
|
+
autoResize?: boolean
|
|
514
446
|
|
|
515
|
-
|
|
516
|
-
|
|
447
|
+
/**
|
|
448
|
+
* Minimum number of rows.
|
|
449
|
+
*/
|
|
450
|
+
minRows?: number
|
|
517
451
|
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
452
|
+
/**
|
|
453
|
+
* Maximum number of rows.
|
|
454
|
+
*/
|
|
455
|
+
maxRows?: number
|
|
521
456
|
}
|
|
522
457
|
```
|
|
523
458
|
|
|
524
|
-
#### `
|
|
459
|
+
#### `SelectOption`
|
|
525
460
|
|
|
526
|
-
|
|
461
|
+
A single option in a Select dropdown.
|
|
527
462
|
|
|
528
463
|
```typescript
|
|
529
|
-
interface
|
|
464
|
+
interface SelectOption<T = string> {
|
|
530
465
|
/**
|
|
531
|
-
*
|
|
466
|
+
* Option value.
|
|
532
467
|
*/
|
|
533
468
|
value: T
|
|
534
469
|
|
|
535
470
|
/**
|
|
536
471
|
* Display label.
|
|
537
472
|
*/
|
|
538
|
-
label:
|
|
473
|
+
label: string
|
|
539
474
|
|
|
540
475
|
/**
|
|
541
|
-
* Whether the
|
|
476
|
+
* Whether the option is disabled.
|
|
542
477
|
*/
|
|
543
478
|
disabled?: boolean
|
|
544
479
|
|
|
545
480
|
/**
|
|
546
|
-
*
|
|
481
|
+
* Option group (for grouped selects).
|
|
547
482
|
*/
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
/**
|
|
551
|
-
* Keyboard shortcut display.
|
|
552
|
-
*/
|
|
553
|
-
shortcut?: string
|
|
554
|
-
|
|
555
|
-
/**
|
|
556
|
-
* Whether this is a separator.
|
|
557
|
-
*/
|
|
558
|
-
separator?: boolean
|
|
559
|
-
|
|
560
|
-
/**
|
|
561
|
-
* Nested items (for submenus).
|
|
562
|
-
*/
|
|
563
|
-
items?: DropdownItem<T>[]
|
|
483
|
+
group?: string
|
|
564
484
|
}
|
|
565
485
|
```
|
|
566
486
|
|
|
567
|
-
#### `
|
|
487
|
+
#### `SelectProps`
|
|
568
488
|
|
|
569
|
-
Props for the
|
|
489
|
+
Props for the Select dropdown component (single or multi-select).
|
|
570
490
|
|
|
571
491
|
```typescript
|
|
572
|
-
interface
|
|
492
|
+
interface SelectProps<T = string> extends SelectElementProps {
|
|
573
493
|
/**
|
|
574
|
-
*
|
|
494
|
+
* Select options.
|
|
575
495
|
*/
|
|
576
|
-
|
|
496
|
+
options: SelectOption<T>[]
|
|
577
497
|
|
|
578
498
|
/**
|
|
579
|
-
*
|
|
499
|
+
* Current value.
|
|
580
500
|
*/
|
|
581
|
-
|
|
501
|
+
value?: T
|
|
582
502
|
|
|
583
503
|
/**
|
|
584
|
-
*
|
|
504
|
+
* Change handler (with typed value).
|
|
585
505
|
*/
|
|
586
|
-
|
|
506
|
+
onValueChange?: (value: T) => void
|
|
587
507
|
|
|
588
508
|
/**
|
|
589
|
-
*
|
|
509
|
+
* Select size.
|
|
590
510
|
*/
|
|
591
|
-
|
|
592
|
-
'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'right'
|
|
511
|
+
size?: Size
|
|
593
512
|
|
|
594
513
|
/**
|
|
595
|
-
*
|
|
514
|
+
* Label text.
|
|
596
515
|
*/
|
|
597
|
-
|
|
516
|
+
label?: string
|
|
598
517
|
|
|
599
518
|
/**
|
|
600
|
-
*
|
|
519
|
+
* Placeholder text.
|
|
601
520
|
*/
|
|
602
|
-
|
|
521
|
+
placeholder?: string
|
|
603
522
|
|
|
604
523
|
/**
|
|
605
|
-
*
|
|
524
|
+
* Error message.
|
|
606
525
|
*/
|
|
607
|
-
|
|
526
|
+
error?: string
|
|
608
527
|
|
|
609
528
|
/**
|
|
610
|
-
*
|
|
529
|
+
* Hint/help text.
|
|
611
530
|
*/
|
|
612
|
-
|
|
613
|
-
}
|
|
614
|
-
```
|
|
615
|
-
|
|
616
|
-
#### `EmptyStateProps`
|
|
617
|
-
|
|
618
|
-
Props for the EmptyState component — shown when a list or section has no data.
|
|
531
|
+
hint?: string
|
|
619
532
|
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
/** Main heading text. */
|
|
625
|
-
title: string
|
|
626
|
-
/** Description text. */
|
|
627
|
-
description?: string
|
|
628
|
-
/** Primary action button (e.g., "Create first item"). */
|
|
629
|
-
action?: Children
|
|
533
|
+
/**
|
|
534
|
+
* Whether to allow clearing the selection.
|
|
535
|
+
*/
|
|
536
|
+
clearable?: boolean
|
|
630
537
|
}
|
|
631
538
|
```
|
|
632
539
|
|
|
633
|
-
#### `
|
|
540
|
+
#### `CheckboxProps`
|
|
634
541
|
|
|
635
|
-
|
|
542
|
+
Props for the Checkbox component.
|
|
636
543
|
|
|
637
544
|
```typescript
|
|
638
|
-
interface
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
/** Named tokens or Tailwind spacing scale index (e.g. `3` → `gap-3`). */
|
|
644
|
-
gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number
|
|
645
|
-
}
|
|
646
|
-
```
|
|
647
|
-
|
|
648
|
-
#### `FlexProps`
|
|
545
|
+
interface CheckboxProps extends InputElementProps {
|
|
546
|
+
/**
|
|
547
|
+
* Checkbox label.
|
|
548
|
+
*/
|
|
549
|
+
label?: Children
|
|
649
550
|
|
|
650
|
-
|
|
551
|
+
/**
|
|
552
|
+
* Whether the checkbox is checked.
|
|
553
|
+
*/
|
|
554
|
+
checked?: boolean
|
|
651
555
|
|
|
652
|
-
```typescript
|
|
653
|
-
interface FlexProps extends HTMLElementProps {
|
|
654
556
|
/**
|
|
655
|
-
*
|
|
557
|
+
* Whether the checkbox is in an indeterminate state.
|
|
656
558
|
*/
|
|
657
|
-
|
|
559
|
+
indeterminate?: boolean
|
|
658
560
|
|
|
659
561
|
/**
|
|
660
|
-
*
|
|
562
|
+
* Checkbox size.
|
|
661
563
|
*/
|
|
662
|
-
|
|
564
|
+
size?: Size
|
|
663
565
|
|
|
664
566
|
/**
|
|
665
|
-
*
|
|
567
|
+
* Error message.
|
|
666
568
|
*/
|
|
667
|
-
|
|
569
|
+
error?: string
|
|
570
|
+
}
|
|
571
|
+
```
|
|
572
|
+
|
|
573
|
+
#### `RadioOption`
|
|
668
574
|
|
|
575
|
+
A single option in a RadioGroup.
|
|
576
|
+
|
|
577
|
+
```typescript
|
|
578
|
+
interface RadioOption<T = string> {
|
|
669
579
|
/**
|
|
670
|
-
*
|
|
580
|
+
* Option value.
|
|
671
581
|
*/
|
|
672
|
-
|
|
582
|
+
value: T
|
|
673
583
|
|
|
674
584
|
/**
|
|
675
|
-
*
|
|
585
|
+
* Display label.
|
|
676
586
|
*/
|
|
677
|
-
|
|
587
|
+
label: Children
|
|
678
588
|
|
|
679
589
|
/**
|
|
680
|
-
*
|
|
590
|
+
* Whether the option is disabled.
|
|
681
591
|
*/
|
|
682
|
-
|
|
592
|
+
disabled?: boolean
|
|
683
593
|
}
|
|
684
594
|
```
|
|
685
595
|
|
|
686
|
-
#### `
|
|
596
|
+
#### `RadioGroupProps`
|
|
687
597
|
|
|
688
|
-
|
|
598
|
+
Props for the RadioGroup component.
|
|
689
599
|
|
|
690
600
|
```typescript
|
|
691
|
-
interface
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
noValidate?: boolean
|
|
697
|
-
autoComplete?: 'on' | 'off'
|
|
698
|
-
onSubmit?: FormEventHandler
|
|
699
|
-
onReset?: FormEventHandler
|
|
700
|
-
}
|
|
701
|
-
```
|
|
702
|
-
|
|
703
|
-
#### `FormFieldProps`
|
|
601
|
+
interface RadioGroupProps<T = string> extends BaseProps {
|
|
602
|
+
/**
|
|
603
|
+
* Radio options.
|
|
604
|
+
*/
|
|
605
|
+
options: RadioOption<T>[]
|
|
704
606
|
|
|
705
|
-
|
|
607
|
+
/**
|
|
608
|
+
* Current value.
|
|
609
|
+
*/
|
|
610
|
+
value?: T
|
|
706
611
|
|
|
707
|
-
```typescript
|
|
708
|
-
interface FormFieldProps extends HTMLElementProps {
|
|
709
612
|
/**
|
|
710
|
-
*
|
|
613
|
+
* Change handler.
|
|
711
614
|
*/
|
|
712
|
-
|
|
615
|
+
onChange?: (value: T) => void
|
|
713
616
|
|
|
714
617
|
/**
|
|
715
|
-
*
|
|
618
|
+
* Radio size.
|
|
716
619
|
*/
|
|
717
|
-
|
|
620
|
+
size?: Size
|
|
718
621
|
|
|
719
622
|
/**
|
|
720
|
-
*
|
|
623
|
+
* Group label.
|
|
721
624
|
*/
|
|
722
|
-
|
|
625
|
+
label?: string
|
|
723
626
|
|
|
724
627
|
/**
|
|
725
|
-
*
|
|
628
|
+
* Shared `name` attribute for the group's radio inputs (used for native
|
|
629
|
+
* form submission). When omitted, a unique per-instance name is generated
|
|
630
|
+
* so separate groups never merge — the visible `label` is deliberately
|
|
631
|
+
* NOT used as the name, because two groups with the same label (e.g. two
|
|
632
|
+
* "Size" pickers) would otherwise form ONE native radio group and
|
|
633
|
+
* deselect each other.
|
|
726
634
|
*/
|
|
727
|
-
|
|
635
|
+
name?: string
|
|
728
636
|
|
|
729
637
|
/**
|
|
730
|
-
*
|
|
638
|
+
* Layout direction.
|
|
731
639
|
*/
|
|
732
|
-
|
|
640
|
+
direction?: 'horizontal' | 'vertical'
|
|
733
641
|
|
|
734
642
|
/**
|
|
735
|
-
*
|
|
643
|
+
* Error message.
|
|
736
644
|
*/
|
|
737
|
-
|
|
645
|
+
error?: string
|
|
738
646
|
}
|
|
739
647
|
```
|
|
740
648
|
|
|
741
|
-
#### `
|
|
649
|
+
#### `SwitchProps`
|
|
742
650
|
|
|
743
|
-
Props for the
|
|
651
|
+
Props for the Switch/Toggle component.
|
|
744
652
|
|
|
745
653
|
```typescript
|
|
746
|
-
interface
|
|
654
|
+
interface SwitchProps extends InputElementProps {
|
|
747
655
|
/**
|
|
748
|
-
*
|
|
656
|
+
* Switch label.
|
|
749
657
|
*/
|
|
750
|
-
|
|
658
|
+
label?: Children
|
|
751
659
|
|
|
752
660
|
/**
|
|
753
|
-
*
|
|
661
|
+
* Whether the switch is on.
|
|
754
662
|
*/
|
|
755
|
-
|
|
663
|
+
checked?: boolean
|
|
756
664
|
|
|
757
665
|
/**
|
|
758
|
-
*
|
|
666
|
+
* Switch size.
|
|
759
667
|
*/
|
|
760
|
-
|
|
761
|
-
}
|
|
762
|
-
```
|
|
763
|
-
|
|
764
|
-
#### `GridClassOptions`
|
|
765
|
-
|
|
766
|
-
Options for grid class resolution.
|
|
668
|
+
size?: Size
|
|
767
669
|
|
|
768
|
-
```typescript
|
|
769
|
-
interface GridClassOptions {
|
|
770
|
-
cols?: number
|
|
771
|
-
/** Named tokens or Tailwind spacing scale index (e.g. `10` → `gap-10`). */
|
|
772
|
-
gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number
|
|
773
670
|
/**
|
|
774
|
-
*
|
|
775
|
-
* `cols >= 2` starts at a single column on small screens and steps up to
|
|
776
|
-
* `cols` at larger breakpoints, so cards don't overflow on mobile. Pass
|
|
777
|
-
* `false` for a FIXED `cols`-column grid at every viewport width. Ignored
|
|
778
|
-
* for `cols <= 1` (always single-column) and by ClassMap bonds without a
|
|
779
|
-
* breakpoint system (e.g. NativeWind).
|
|
671
|
+
* Color when on.
|
|
780
672
|
*/
|
|
781
|
-
|
|
673
|
+
color?: ColorVariant
|
|
782
674
|
}
|
|
783
675
|
```
|
|
784
676
|
|
|
785
|
-
#### `
|
|
677
|
+
#### `ModalProps`
|
|
786
678
|
|
|
787
|
-
|
|
679
|
+
Props for the Modal/Dialog component.
|
|
788
680
|
|
|
789
681
|
```typescript
|
|
790
|
-
interface
|
|
682
|
+
interface ModalProps extends HTMLElementProps {
|
|
791
683
|
/**
|
|
792
|
-
*
|
|
684
|
+
* Whether the modal is open.
|
|
793
685
|
*/
|
|
794
|
-
|
|
686
|
+
open: boolean
|
|
795
687
|
|
|
796
688
|
/**
|
|
797
|
-
*
|
|
689
|
+
* Called when the modal should close.
|
|
798
690
|
*/
|
|
799
|
-
|
|
691
|
+
onClose: () => void
|
|
800
692
|
|
|
801
693
|
/**
|
|
802
|
-
*
|
|
694
|
+
* Modal title.
|
|
803
695
|
*/
|
|
804
|
-
|
|
696
|
+
title?: string
|
|
805
697
|
|
|
806
698
|
/**
|
|
807
|
-
*
|
|
699
|
+
* Modal content.
|
|
808
700
|
*/
|
|
809
|
-
|
|
701
|
+
children?: Children
|
|
810
702
|
|
|
811
703
|
/**
|
|
812
|
-
*
|
|
704
|
+
* Modal size.
|
|
813
705
|
*/
|
|
814
|
-
|
|
706
|
+
size?: ModalSize
|
|
815
707
|
|
|
816
708
|
/**
|
|
817
|
-
*
|
|
709
|
+
* Whether to show a close button.
|
|
818
710
|
*/
|
|
819
|
-
|
|
820
|
-
}
|
|
821
|
-
```
|
|
822
|
-
|
|
823
|
-
#### `HTMLElementProps`
|
|
824
|
-
|
|
825
|
-
Base props for HTML elements.
|
|
826
|
-
Framework bindings should extend this with framework-specific attributes.
|
|
827
|
-
|
|
828
|
-
```typescript
|
|
829
|
-
interface HTMLElementProps extends BaseProps {
|
|
830
|
-
id?: string
|
|
831
|
-
title?: string
|
|
832
|
-
tabIndex?: number
|
|
833
|
-
role?: string
|
|
834
|
-
'aria-label'?: string
|
|
835
|
-
'aria-labelledby'?: string
|
|
836
|
-
'aria-describedby'?: string
|
|
837
|
-
'aria-hidden'?: boolean
|
|
838
|
-
'aria-disabled'?: boolean
|
|
839
|
-
'aria-expanded'?: boolean
|
|
840
|
-
'aria-selected'?: boolean
|
|
841
|
-
'aria-checked'?: boolean | 'mixed'
|
|
842
|
-
'aria-pressed'?: boolean | 'mixed'
|
|
843
|
-
'aria-invalid'?: boolean
|
|
844
|
-
'aria-required'?: boolean
|
|
845
|
-
'aria-readonly'?: boolean
|
|
846
|
-
'aria-busy'?: boolean
|
|
847
|
-
'aria-live'?: 'off' | 'polite' | 'assertive'
|
|
848
|
-
onClick?: MouseEventHandler
|
|
849
|
-
onDoubleClick?: MouseEventHandler
|
|
850
|
-
onMouseEnter?: MouseEventHandler
|
|
851
|
-
onMouseLeave?: MouseEventHandler
|
|
852
|
-
onFocus?: FocusEventHandler
|
|
853
|
-
onBlur?: FocusEventHandler
|
|
854
|
-
onKeyDown?: KeyboardEventHandler
|
|
855
|
-
onKeyUp?: KeyboardEventHandler
|
|
856
|
-
onKeyPress?: KeyboardEventHandler
|
|
857
|
-
}
|
|
858
|
-
```
|
|
711
|
+
showCloseButton?: boolean
|
|
859
712
|
|
|
860
|
-
|
|
713
|
+
/**
|
|
714
|
+
* Whether clicking the overlay closes the modal.
|
|
715
|
+
*/
|
|
716
|
+
closeOnOverlayClick?: boolean
|
|
861
717
|
|
|
862
|
-
|
|
718
|
+
/**
|
|
719
|
+
* Whether pressing Escape closes the modal.
|
|
720
|
+
*/
|
|
721
|
+
closeOnEscape?: boolean
|
|
863
722
|
|
|
864
|
-
```typescript
|
|
865
|
-
interface InputClassOptions {
|
|
866
|
-
error?: boolean
|
|
867
|
-
size?: Size
|
|
868
723
|
/**
|
|
869
|
-
*
|
|
870
|
-
* centered aesthetic (e.g. the Tailwind bond's floating-label style);
|
|
871
|
-
* `'left'` opts a specific field out — e.g. a form field sitting next to
|
|
872
|
-
* left-aligned textareas.
|
|
724
|
+
* Footer content (typically action buttons).
|
|
873
725
|
*/
|
|
874
|
-
|
|
875
|
-
}
|
|
876
|
-
```
|
|
726
|
+
footer?: Children
|
|
877
727
|
|
|
878
|
-
|
|
728
|
+
/**
|
|
729
|
+
* Whether the modal is centered vertically.
|
|
730
|
+
*/
|
|
731
|
+
centered?: boolean
|
|
879
732
|
|
|
880
|
-
|
|
733
|
+
/**
|
|
734
|
+
* Whether to prevent body scroll when open.
|
|
735
|
+
*/
|
|
736
|
+
preventScroll?: boolean
|
|
881
737
|
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
placeholder?: string
|
|
888
|
-
required?: boolean
|
|
889
|
-
readOnly?: boolean
|
|
890
|
-
autoFocus?: boolean
|
|
891
|
-
autoComplete?: string
|
|
892
|
-
maxLength?: number
|
|
893
|
-
minLength?: number
|
|
894
|
-
pattern?: string
|
|
895
|
-
onChange?: ChangeEventHandler
|
|
896
|
-
onInput?: FormEventHandler
|
|
738
|
+
/**
|
|
739
|
+
* Accessible label for the close button.
|
|
740
|
+
* @default 'Close'
|
|
741
|
+
*/
|
|
742
|
+
closeLabel?: string
|
|
897
743
|
}
|
|
898
744
|
```
|
|
899
745
|
|
|
900
|
-
#### `
|
|
746
|
+
#### `SpinnerProps`
|
|
901
747
|
|
|
902
|
-
Props for the
|
|
748
|
+
Props for the Spinner/loading indicator component.
|
|
903
749
|
|
|
904
750
|
```typescript
|
|
905
|
-
interface
|
|
906
|
-
/**
|
|
907
|
-
* Input type.
|
|
908
|
-
*/
|
|
909
|
-
type?: InputType
|
|
910
|
-
|
|
751
|
+
interface SpinnerProps extends BaseProps {
|
|
911
752
|
/**
|
|
912
|
-
*
|
|
753
|
+
* Spinner size.
|
|
913
754
|
*/
|
|
914
755
|
size?: Size
|
|
915
756
|
|
|
916
757
|
/**
|
|
917
|
-
*
|
|
918
|
-
* {@link InputClassOptions.align}). Defaults to the bond's own style.
|
|
758
|
+
* Spinner color.
|
|
919
759
|
*/
|
|
920
|
-
|
|
760
|
+
color?: ColorVariant | string
|
|
921
761
|
|
|
922
762
|
/**
|
|
923
|
-
*
|
|
763
|
+
* Loading label (for accessibility).
|
|
924
764
|
*/
|
|
925
765
|
label?: string
|
|
926
766
|
|
|
927
767
|
/**
|
|
928
|
-
*
|
|
768
|
+
* Spinner thickness.
|
|
929
769
|
*/
|
|
930
|
-
|
|
770
|
+
thickness?: number
|
|
771
|
+
}
|
|
772
|
+
```
|
|
931
773
|
|
|
774
|
+
#### `AvatarProps`
|
|
775
|
+
|
|
776
|
+
Props for the Avatar component.
|
|
777
|
+
|
|
778
|
+
```typescript
|
|
779
|
+
interface AvatarProps extends HTMLElementProps {
|
|
932
780
|
/**
|
|
933
|
-
*
|
|
781
|
+
* Image source URL.
|
|
934
782
|
*/
|
|
935
|
-
|
|
783
|
+
src?: string
|
|
936
784
|
|
|
937
785
|
/**
|
|
938
|
-
*
|
|
786
|
+
* Alt text for the image.
|
|
939
787
|
*/
|
|
940
|
-
|
|
788
|
+
alt?: string
|
|
941
789
|
|
|
942
790
|
/**
|
|
943
|
-
*
|
|
791
|
+
* Name for fallback initials.
|
|
944
792
|
*/
|
|
945
|
-
|
|
793
|
+
name?: string
|
|
946
794
|
|
|
947
795
|
/**
|
|
948
|
-
*
|
|
796
|
+
* Avatar size.
|
|
949
797
|
*/
|
|
950
|
-
|
|
798
|
+
size?: Size | number
|
|
951
799
|
|
|
952
800
|
/**
|
|
953
|
-
*
|
|
801
|
+
* Whether the avatar is rounded.
|
|
954
802
|
*/
|
|
955
|
-
|
|
803
|
+
rounded?: boolean
|
|
956
804
|
|
|
957
805
|
/**
|
|
958
|
-
*
|
|
959
|
-
* @default 'Clear'
|
|
806
|
+
* Fallback element when no image.
|
|
960
807
|
*/
|
|
961
|
-
|
|
808
|
+
fallback?: Children
|
|
962
809
|
}
|
|
963
810
|
```
|
|
964
811
|
|
|
965
|
-
#### `
|
|
812
|
+
#### `BadgeProps`
|
|
966
813
|
|
|
967
|
-
|
|
814
|
+
Props for the Badge component (status labels, counts, tags).
|
|
968
815
|
|
|
969
816
|
```typescript
|
|
970
|
-
interface
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
817
|
+
interface BadgeProps extends HTMLElementProps {
|
|
818
|
+
/**
|
|
819
|
+
* Badge content.
|
|
820
|
+
*/
|
|
821
|
+
children?: Children
|
|
974
822
|
|
|
975
|
-
|
|
823
|
+
/**
|
|
824
|
+
* Badge color.
|
|
825
|
+
*/
|
|
826
|
+
color?: ColorVariant
|
|
976
827
|
|
|
977
|
-
|
|
828
|
+
/**
|
|
829
|
+
* Badge variant.
|
|
830
|
+
*/
|
|
831
|
+
variant?: 'solid' | 'outline' | 'subtle'
|
|
978
832
|
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
833
|
+
/**
|
|
834
|
+
* Badge size.
|
|
835
|
+
*/
|
|
836
|
+
size?: Size
|
|
837
|
+
|
|
838
|
+
/**
|
|
839
|
+
* Whether the badge is rounded.
|
|
840
|
+
*/
|
|
841
|
+
rounded?: boolean
|
|
982
842
|
}
|
|
983
843
|
```
|
|
984
844
|
|
|
985
|
-
#### `
|
|
845
|
+
#### `TooltipProps`
|
|
986
846
|
|
|
987
|
-
Props for the
|
|
847
|
+
Props for the Tooltip component (hover/focus popover with informational text).
|
|
988
848
|
|
|
989
849
|
```typescript
|
|
990
|
-
interface
|
|
850
|
+
interface TooltipProps extends HTMLElementProps {
|
|
991
851
|
/**
|
|
992
|
-
*
|
|
852
|
+
* Tooltip content.
|
|
993
853
|
*/
|
|
994
|
-
|
|
854
|
+
content: Children
|
|
995
855
|
|
|
996
856
|
/**
|
|
997
|
-
*
|
|
857
|
+
* Element that triggers the tooltip.
|
|
998
858
|
*/
|
|
999
|
-
|
|
859
|
+
children: Children
|
|
1000
860
|
|
|
1001
861
|
/**
|
|
1002
|
-
*
|
|
862
|
+
* Tooltip placement.
|
|
1003
863
|
*/
|
|
1004
|
-
|
|
864
|
+
placement?: TooltipPlacement
|
|
1005
865
|
|
|
1006
866
|
/**
|
|
1007
|
-
*
|
|
867
|
+
* Delay before showing (ms).
|
|
1008
868
|
*/
|
|
1009
|
-
|
|
869
|
+
delay?: number
|
|
1010
870
|
|
|
1011
871
|
/**
|
|
1012
|
-
*
|
|
872
|
+
* Whether the tooltip has an arrow.
|
|
1013
873
|
*/
|
|
1014
|
-
|
|
874
|
+
hasArrow?: boolean
|
|
875
|
+
}
|
|
876
|
+
```
|
|
877
|
+
|
|
878
|
+
#### `CardProps`
|
|
1015
879
|
|
|
880
|
+
Props for the Card container component (elevated, outlined, or filled surface).
|
|
881
|
+
|
|
882
|
+
```typescript
|
|
883
|
+
interface CardProps extends HTMLElementProps {
|
|
1016
884
|
/**
|
|
1017
|
-
*
|
|
885
|
+
* Card content.
|
|
1018
886
|
*/
|
|
1019
|
-
|
|
887
|
+
children?: Children
|
|
1020
888
|
|
|
1021
889
|
/**
|
|
1022
|
-
*
|
|
890
|
+
* Card variant.
|
|
1023
891
|
*/
|
|
1024
|
-
|
|
892
|
+
variant?: 'elevated' | 'outlined' | 'filled'
|
|
1025
893
|
|
|
1026
894
|
/**
|
|
1027
|
-
* Whether
|
|
895
|
+
* Whether the card is interactive (clickable).
|
|
1028
896
|
*/
|
|
1029
|
-
|
|
897
|
+
interactive?: boolean
|
|
1030
898
|
|
|
1031
899
|
/**
|
|
1032
|
-
*
|
|
900
|
+
* Padding size.
|
|
1033
901
|
*/
|
|
1034
|
-
|
|
902
|
+
padding?: Size | 'none'
|
|
903
|
+
}
|
|
904
|
+
```
|
|
905
|
+
|
|
906
|
+
#### `ContainerProps`
|
|
1035
907
|
|
|
908
|
+
Props for the Container layout component.
|
|
909
|
+
|
|
910
|
+
```typescript
|
|
911
|
+
interface ContainerProps extends HTMLElementProps {
|
|
1036
912
|
/**
|
|
1037
|
-
*
|
|
913
|
+
* Container content.
|
|
1038
914
|
*/
|
|
1039
|
-
|
|
915
|
+
children?: Children
|
|
1040
916
|
|
|
1041
917
|
/**
|
|
1042
|
-
*
|
|
918
|
+
* Maximum width.
|
|
1043
919
|
*/
|
|
1044
|
-
|
|
920
|
+
maxWidth?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | string
|
|
1045
921
|
|
|
1046
922
|
/**
|
|
1047
|
-
*
|
|
1048
|
-
* @default 'Close'
|
|
923
|
+
* Whether to center the container.
|
|
1049
924
|
*/
|
|
1050
|
-
|
|
1051
|
-
}
|
|
1052
|
-
```
|
|
1053
|
-
|
|
1054
|
-
#### `MoleculeSpinnerColors`
|
|
1055
|
-
|
|
1056
|
-
Gradient-mode colors. Any CSS color string, including `var()` forms.
|
|
1057
|
-
|
|
1058
|
-
```typescript
|
|
1059
|
-
interface MoleculeSpinnerColors {
|
|
1060
|
-
/** Bond base / glint tail color. */
|
|
1061
|
-
blue?: string
|
|
1062
|
-
/** Flow highlight / glint head color at rest. */
|
|
1063
|
-
light?: string
|
|
1064
|
-
/** Glint ignition color while an atom is in flight. */
|
|
1065
|
-
peach?: string
|
|
1066
|
-
}
|
|
1067
|
-
```
|
|
1068
|
-
|
|
1069
|
-
#### `MoleculeSpinnerMarkOptions`
|
|
1070
|
-
|
|
1071
|
-
Options for {@link moleculeSpinnerMarkSvg}.
|
|
925
|
+
centered?: boolean
|
|
1072
926
|
|
|
1073
|
-
```typescript
|
|
1074
|
-
interface MoleculeSpinnerMarkOptions {
|
|
1075
|
-
/** Motion timings; defaults to the shipped design (2.5s / 5s / 3s). */
|
|
1076
|
-
timings?: Partial<MoleculeSpinnerTimings>
|
|
1077
|
-
/** `gradient` (default) or `mono` — plain `currentColor` outline, no defs. */
|
|
1078
|
-
paint?: 'gradient' | 'mono'
|
|
1079
|
-
/** Gradient-mode colors; default the `var(--mol-spin-*, fallback)` set. */
|
|
1080
|
-
colors?: MoleculeSpinnerColors
|
|
1081
927
|
/**
|
|
1082
|
-
*
|
|
1083
|
-
* on a page. Defaults to `mol-spinner-gradient`.
|
|
928
|
+
* Horizontal padding.
|
|
1084
929
|
*/
|
|
1085
|
-
|
|
1086
|
-
/** Pixel size baked into width/height; omit when CSS sizes the svg. */
|
|
1087
|
-
size?: number
|
|
1088
|
-
/** Class attribute for the svg element. */
|
|
1089
|
-
className?: string
|
|
1090
|
-
/** Inline style attribute (already serialized, e.g. `color:re$d`). */
|
|
1091
|
-
style?: string
|
|
1092
|
-
/** Announce as `role="status"` with this label; omit for `aria-hidden`. */
|
|
1093
|
-
ariaLabel?: string
|
|
1094
|
-
}
|
|
1095
|
-
```
|
|
1096
|
-
|
|
1097
|
-
#### `MoleculeSpinnerTimings`
|
|
1098
|
-
|
|
1099
|
-
The mark's timings, in CSS duration strings. Swap cycle → glint cycle.
|
|
1100
|
-
|
|
1101
|
-
```typescript
|
|
1102
|
-
interface MoleculeSpinnerTimings {
|
|
1103
|
-
/** One full 3-phase atom-swap cycle (also drives bond fades + glints). */
|
|
1104
|
-
dur: string
|
|
1105
|
-
/** Whole-figure rotation. Keep at two swap cycles for the intended feel. */
|
|
1106
|
-
spin: string
|
|
1107
|
-
/** Bond gradient flow period (one full translate across the figure). */
|
|
1108
|
-
flow: string
|
|
1109
|
-
}
|
|
1110
|
-
```
|
|
1111
|
-
|
|
1112
|
-
#### `PageHeaderProps`
|
|
1113
|
-
|
|
1114
|
-
Props for the PageHeader component — consistent page title area.
|
|
1115
|
-
|
|
1116
|
-
```typescript
|
|
1117
|
-
interface PageHeaderProps extends BaseProps {
|
|
1118
|
-
/** Page title. */
|
|
1119
|
-
title: string
|
|
1120
|
-
/** Page description. */
|
|
1121
|
-
description?: string
|
|
1122
|
-
/** Action buttons (e.g., "Create", "Export"). */
|
|
1123
|
-
actions?: Children
|
|
1124
|
-
/** Breadcrumb trail. */
|
|
1125
|
-
breadcrumbs?: Array<{ label: string; href?: string }>
|
|
930
|
+
paddingX?: Size | string
|
|
1126
931
|
}
|
|
1127
932
|
```
|
|
1128
933
|
|
|
1129
|
-
#### `
|
|
934
|
+
#### `FlexProps`
|
|
1130
935
|
|
|
1131
|
-
|
|
936
|
+
Flex container props.
|
|
1132
937
|
|
|
1133
938
|
```typescript
|
|
1134
|
-
interface
|
|
1135
|
-
/**
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
topbar?: Children
|
|
1139
|
-
/** Whether the sidebar is collapsed. */
|
|
1140
|
-
sidebarCollapsed?: boolean
|
|
1141
|
-
/** Callback when sidebar toggle is clicked. */
|
|
1142
|
-
onSidebarToggle?: () => void
|
|
1143
|
-
/** Main content. */
|
|
939
|
+
interface FlexProps extends HTMLElementProps {
|
|
940
|
+
/**
|
|
941
|
+
* Flex content.
|
|
942
|
+
*/
|
|
1144
943
|
children?: Children
|
|
1145
|
-
}
|
|
1146
|
-
```
|
|
1147
|
-
|
|
1148
|
-
#### `PaginationClassOptions`
|
|
1149
|
-
|
|
1150
|
-
Options for pagination item class resolution.
|
|
1151
|
-
|
|
1152
|
-
```typescript
|
|
1153
|
-
interface PaginationClassOptions {
|
|
1154
|
-
active?: boolean
|
|
1155
|
-
size?: Size
|
|
1156
|
-
}
|
|
1157
|
-
```
|
|
1158
944
|
|
|
1159
|
-
|
|
945
|
+
/**
|
|
946
|
+
* Flex direction.
|
|
947
|
+
*/
|
|
948
|
+
direction?: 'row' | 'column' | 'row-reverse' | 'column-reverse'
|
|
1160
949
|
|
|
1161
|
-
|
|
950
|
+
/**
|
|
951
|
+
* Justify content.
|
|
952
|
+
*/
|
|
953
|
+
justify?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly'
|
|
1162
954
|
|
|
1163
|
-
```typescript
|
|
1164
|
-
interface PaginationProps extends BaseProps {
|
|
1165
955
|
/**
|
|
1166
|
-
*
|
|
956
|
+
* Align items.
|
|
1167
957
|
*/
|
|
1168
|
-
|
|
958
|
+
align?: 'start' | 'end' | 'center' | 'baseline' | 'stretch'
|
|
1169
959
|
|
|
1170
960
|
/**
|
|
1171
|
-
*
|
|
961
|
+
* Flex wrap.
|
|
1172
962
|
*/
|
|
1173
|
-
|
|
963
|
+
wrap?: 'wrap' | 'nowrap' | 'wrap-reverse'
|
|
1174
964
|
|
|
1175
965
|
/**
|
|
1176
|
-
*
|
|
966
|
+
* Gap between items.
|
|
1177
967
|
*/
|
|
1178
|
-
|
|
968
|
+
gap?: Size | string | number
|
|
969
|
+
}
|
|
970
|
+
```
|
|
971
|
+
|
|
972
|
+
#### `GridProps`
|
|
973
|
+
|
|
974
|
+
Grid container props.
|
|
1179
975
|
|
|
976
|
+
```typescript
|
|
977
|
+
interface GridProps extends HTMLElementProps {
|
|
1180
978
|
/**
|
|
1181
|
-
*
|
|
979
|
+
* Grid content.
|
|
1182
980
|
*/
|
|
1183
|
-
|
|
981
|
+
children?: Children
|
|
1184
982
|
|
|
1185
983
|
/**
|
|
1186
|
-
* Number of
|
|
984
|
+
* Number of columns.
|
|
1187
985
|
*/
|
|
1188
|
-
|
|
986
|
+
columns?: number | string
|
|
1189
987
|
|
|
1190
988
|
/**
|
|
1191
|
-
*
|
|
989
|
+
* Number of rows.
|
|
1192
990
|
*/
|
|
1193
|
-
|
|
991
|
+
rows?: number | string
|
|
1194
992
|
|
|
1195
993
|
/**
|
|
1196
|
-
*
|
|
994
|
+
* Gap between items.
|
|
1197
995
|
*/
|
|
1198
|
-
|
|
996
|
+
gap?: Size | string | number
|
|
1199
997
|
|
|
1200
998
|
/**
|
|
1201
|
-
*
|
|
999
|
+
* Column gap.
|
|
1202
1000
|
*/
|
|
1203
|
-
|
|
1001
|
+
columnGap?: Size | string | number
|
|
1204
1002
|
|
|
1205
1003
|
/**
|
|
1206
|
-
*
|
|
1004
|
+
* Row gap.
|
|
1207
1005
|
*/
|
|
1208
|
-
|
|
1209
|
-
nav?: string
|
|
1210
|
-
first?: string
|
|
1211
|
-
previous?: string
|
|
1212
|
-
next?: string
|
|
1213
|
-
last?: string
|
|
1214
|
-
goToPage?: (page: number) => string
|
|
1215
|
-
}
|
|
1006
|
+
rowGap?: Size | string | number
|
|
1216
1007
|
}
|
|
1217
1008
|
```
|
|
1218
1009
|
|
|
1219
|
-
#### `
|
|
1010
|
+
#### `SpacerProps`
|
|
1220
1011
|
|
|
1221
|
-
|
|
1012
|
+
Props for the Spacer layout component (adds whitespace between elements).
|
|
1222
1013
|
|
|
1223
1014
|
```typescript
|
|
1224
|
-
interface
|
|
1225
|
-
|
|
1015
|
+
interface SpacerProps extends BaseProps {
|
|
1016
|
+
/**
|
|
1017
|
+
* Space size.
|
|
1018
|
+
*/
|
|
1019
|
+
size?: Size | string | number
|
|
1020
|
+
|
|
1021
|
+
/**
|
|
1022
|
+
* Whether the spacer is horizontal.
|
|
1023
|
+
*/
|
|
1024
|
+
horizontal?: boolean
|
|
1226
1025
|
}
|
|
1227
1026
|
```
|
|
1228
1027
|
|
|
1229
|
-
#### `
|
|
1028
|
+
#### `FormProps`
|
|
1230
1029
|
|
|
1231
|
-
Props for the
|
|
1030
|
+
Props for the Form component (wraps inputs with submission handling and validation).
|
|
1232
1031
|
|
|
1233
1032
|
```typescript
|
|
1234
|
-
interface
|
|
1033
|
+
interface FormProps extends FormElementProps {
|
|
1235
1034
|
/**
|
|
1236
|
-
*
|
|
1035
|
+
* Form content.
|
|
1237
1036
|
*/
|
|
1238
|
-
|
|
1037
|
+
children?: Children
|
|
1239
1038
|
|
|
1240
1039
|
/**
|
|
1241
|
-
*
|
|
1040
|
+
* Submit handler with form data.
|
|
1242
1041
|
*/
|
|
1243
|
-
|
|
1042
|
+
onFormSubmit?: (data: Record<string, unknown>) => void | Promise<void>
|
|
1244
1043
|
|
|
1245
1044
|
/**
|
|
1246
|
-
*
|
|
1045
|
+
* Whether the form is submitting.
|
|
1247
1046
|
*/
|
|
1248
|
-
|
|
1047
|
+
submitting?: boolean
|
|
1048
|
+
}
|
|
1049
|
+
```
|
|
1050
|
+
|
|
1051
|
+
#### `FormFieldProps`
|
|
1052
|
+
|
|
1053
|
+
Form field wrapper props.
|
|
1249
1054
|
|
|
1055
|
+
```typescript
|
|
1056
|
+
interface FormFieldProps extends HTMLElementProps {
|
|
1250
1057
|
/**
|
|
1251
|
-
*
|
|
1058
|
+
* Field content.
|
|
1252
1059
|
*/
|
|
1253
|
-
|
|
1060
|
+
children?: Children
|
|
1254
1061
|
|
|
1255
1062
|
/**
|
|
1256
|
-
*
|
|
1063
|
+
* Field label.
|
|
1257
1064
|
*/
|
|
1258
1065
|
label?: string
|
|
1259
1066
|
|
|
1260
1067
|
/**
|
|
1261
|
-
*
|
|
1262
|
-
* form submission). When omitted, a unique per-instance name is generated
|
|
1263
|
-
* so separate groups never merge — the visible `label` is deliberately
|
|
1264
|
-
* NOT used as the name, because two groups with the same label (e.g. two
|
|
1265
|
-
* "Size" pickers) would otherwise form ONE native radio group and
|
|
1266
|
-
* deselect each other.
|
|
1068
|
+
* Field name.
|
|
1267
1069
|
*/
|
|
1268
1070
|
name?: string
|
|
1269
1071
|
|
|
1270
1072
|
/**
|
|
1271
|
-
*
|
|
1073
|
+
* Error message.
|
|
1272
1074
|
*/
|
|
1273
|
-
|
|
1075
|
+
error?: string
|
|
1274
1076
|
|
|
1275
1077
|
/**
|
|
1276
|
-
*
|
|
1078
|
+
* Hint/help text.
|
|
1277
1079
|
*/
|
|
1278
|
-
|
|
1080
|
+
hint?: string
|
|
1081
|
+
|
|
1082
|
+
/**
|
|
1083
|
+
* Whether the field is required.
|
|
1084
|
+
*/
|
|
1085
|
+
required?: boolean
|
|
1279
1086
|
}
|
|
1280
1087
|
```
|
|
1281
1088
|
|
|
1282
|
-
#### `
|
|
1089
|
+
#### `AlertProps`
|
|
1283
1090
|
|
|
1284
|
-
|
|
1091
|
+
Props for the Alert component.
|
|
1285
1092
|
|
|
1286
1093
|
```typescript
|
|
1287
|
-
interface
|
|
1094
|
+
interface AlertProps extends HTMLElementProps {
|
|
1288
1095
|
/**
|
|
1289
|
-
*
|
|
1096
|
+
* Alert content.
|
|
1290
1097
|
*/
|
|
1291
|
-
|
|
1098
|
+
children?: Children
|
|
1292
1099
|
|
|
1293
1100
|
/**
|
|
1294
|
-
*
|
|
1101
|
+
* Alert title.
|
|
1295
1102
|
*/
|
|
1296
|
-
|
|
1103
|
+
title?: string
|
|
1297
1104
|
|
|
1298
1105
|
/**
|
|
1299
|
-
*
|
|
1106
|
+
* Alert status/type.
|
|
1300
1107
|
*/
|
|
1301
|
-
|
|
1302
|
-
}
|
|
1303
|
-
```
|
|
1304
|
-
|
|
1305
|
-
#### `SelectClassOptions`
|
|
1306
|
-
|
|
1307
|
-
Options for resolving select CSS classes via UIClassMap.
|
|
1308
|
-
|
|
1309
|
-
```typescript
|
|
1310
|
-
interface SelectClassOptions {
|
|
1311
|
-
error?: boolean
|
|
1312
|
-
size?: Size
|
|
1313
|
-
}
|
|
1314
|
-
```
|
|
1315
|
-
|
|
1316
|
-
#### `SelectElementProps`
|
|
1317
|
-
|
|
1318
|
-
Base props for select elements.
|
|
1319
|
-
|
|
1320
|
-
```typescript
|
|
1321
|
-
interface SelectElementProps extends HTMLElementProps {
|
|
1322
|
-
name?: string
|
|
1323
|
-
required?: boolean
|
|
1324
|
-
autoFocus?: boolean
|
|
1325
|
-
multiple?: boolean
|
|
1326
|
-
onChange?: ChangeEventHandler
|
|
1327
|
-
}
|
|
1328
|
-
```
|
|
1329
|
-
|
|
1330
|
-
#### `SelectOption`
|
|
1108
|
+
status?: ColorVariant
|
|
1331
1109
|
|
|
1332
|
-
|
|
1110
|
+
/**
|
|
1111
|
+
* Alert variant.
|
|
1112
|
+
*/
|
|
1113
|
+
variant?: 'solid' | 'subtle' | 'outline' | 'left-accent'
|
|
1333
1114
|
|
|
1334
|
-
```typescript
|
|
1335
|
-
interface SelectOption<T = string> {
|
|
1336
1115
|
/**
|
|
1337
|
-
*
|
|
1116
|
+
* Whether the alert is dismissible.
|
|
1338
1117
|
*/
|
|
1339
|
-
|
|
1118
|
+
dismissible?: boolean
|
|
1340
1119
|
|
|
1341
1120
|
/**
|
|
1342
|
-
*
|
|
1121
|
+
* Called when dismissed.
|
|
1343
1122
|
*/
|
|
1344
|
-
|
|
1123
|
+
onDismiss?: () => void
|
|
1345
1124
|
|
|
1346
1125
|
/**
|
|
1347
|
-
*
|
|
1126
|
+
* Icon to display.
|
|
1348
1127
|
*/
|
|
1349
|
-
|
|
1128
|
+
icon?: Children
|
|
1350
1129
|
|
|
1351
1130
|
/**
|
|
1352
|
-
*
|
|
1131
|
+
* Accessible label for the dismiss button.
|
|
1132
|
+
* @default 'Dismiss'
|
|
1353
1133
|
*/
|
|
1354
|
-
|
|
1134
|
+
dismissLabel?: string
|
|
1355
1135
|
}
|
|
1356
1136
|
```
|
|
1357
1137
|
|
|
1358
|
-
#### `
|
|
1138
|
+
#### `ToastProps`
|
|
1359
1139
|
|
|
1360
|
-
Props for the
|
|
1140
|
+
Props for the Toast/notification component.
|
|
1361
1141
|
|
|
1362
1142
|
```typescript
|
|
1363
|
-
interface
|
|
1143
|
+
interface ToastProps extends HTMLElementProps {
|
|
1364
1144
|
/**
|
|
1365
|
-
*
|
|
1145
|
+
* Toast content.
|
|
1366
1146
|
*/
|
|
1367
|
-
|
|
1147
|
+
children?: Children
|
|
1368
1148
|
|
|
1369
1149
|
/**
|
|
1370
|
-
*
|
|
1150
|
+
* Toast title.
|
|
1371
1151
|
*/
|
|
1372
|
-
|
|
1152
|
+
title?: string
|
|
1373
1153
|
|
|
1374
1154
|
/**
|
|
1375
|
-
*
|
|
1155
|
+
* Toast description.
|
|
1376
1156
|
*/
|
|
1377
|
-
|
|
1157
|
+
description?: string
|
|
1378
1158
|
|
|
1379
1159
|
/**
|
|
1380
|
-
*
|
|
1160
|
+
* Toast status/type.
|
|
1381
1161
|
*/
|
|
1382
|
-
|
|
1162
|
+
status?: ColorVariant
|
|
1383
1163
|
|
|
1384
1164
|
/**
|
|
1385
|
-
*
|
|
1165
|
+
* Duration in milliseconds (0 for persistent).
|
|
1386
1166
|
*/
|
|
1387
|
-
|
|
1167
|
+
duration?: number
|
|
1388
1168
|
|
|
1389
1169
|
/**
|
|
1390
|
-
*
|
|
1170
|
+
* Whether the toast is dismissible.
|
|
1391
1171
|
*/
|
|
1392
|
-
|
|
1172
|
+
dismissible?: boolean
|
|
1393
1173
|
|
|
1394
1174
|
/**
|
|
1395
|
-
*
|
|
1175
|
+
* Called when dismissed.
|
|
1396
1176
|
*/
|
|
1397
|
-
|
|
1177
|
+
onDismiss?: () => void
|
|
1398
1178
|
|
|
1399
1179
|
/**
|
|
1400
|
-
*
|
|
1180
|
+
* Toast position.
|
|
1401
1181
|
*/
|
|
1402
|
-
|
|
1182
|
+
position?: 'top' | 'top-right' | 'top-left' | 'bottom' | 'bottom-right' | 'bottom-left'
|
|
1403
1183
|
|
|
1404
1184
|
/**
|
|
1405
|
-
*
|
|
1185
|
+
* Accessible label for the close button.
|
|
1186
|
+
* @default 'Close'
|
|
1406
1187
|
*/
|
|
1407
|
-
|
|
1188
|
+
closeLabel?: string
|
|
1408
1189
|
}
|
|
1409
1190
|
```
|
|
1410
1191
|
|
|
1411
|
-
#### `
|
|
1192
|
+
#### `TabItem`
|
|
1412
1193
|
|
|
1413
|
-
|
|
1194
|
+
A single tab in a Tabs component.
|
|
1414
1195
|
|
|
1415
1196
|
```typescript
|
|
1416
|
-
interface
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1197
|
+
interface TabItem<T = string> {
|
|
1198
|
+
/**
|
|
1199
|
+
* Tab value/id.
|
|
1200
|
+
*/
|
|
1201
|
+
value: T
|
|
1420
1202
|
|
|
1421
|
-
|
|
1203
|
+
/**
|
|
1204
|
+
* Tab label.
|
|
1205
|
+
*/
|
|
1206
|
+
label: Children
|
|
1422
1207
|
|
|
1423
|
-
|
|
1208
|
+
/**
|
|
1209
|
+
* Tab content.
|
|
1210
|
+
*/
|
|
1211
|
+
content?: Children
|
|
1424
1212
|
|
|
1425
|
-
```typescript
|
|
1426
|
-
interface SeparatorProps extends BaseProps {
|
|
1427
1213
|
/**
|
|
1428
|
-
*
|
|
1214
|
+
* Whether the tab is disabled.
|
|
1429
1215
|
*/
|
|
1430
|
-
|
|
1216
|
+
disabled?: boolean
|
|
1431
1217
|
|
|
1432
1218
|
/**
|
|
1433
|
-
*
|
|
1219
|
+
* Icon to display.
|
|
1434
1220
|
*/
|
|
1435
|
-
|
|
1221
|
+
icon?: Children
|
|
1436
1222
|
}
|
|
1437
1223
|
```
|
|
1438
1224
|
|
|
1439
|
-
#### `
|
|
1225
|
+
#### `TabsProps`
|
|
1440
1226
|
|
|
1441
|
-
Props for the
|
|
1227
|
+
Props for the Tabs component (switchable tabbed content panels).
|
|
1442
1228
|
|
|
1443
1229
|
```typescript
|
|
1444
|
-
interface
|
|
1230
|
+
interface TabsProps<T = string> extends BaseProps {
|
|
1445
1231
|
/**
|
|
1446
|
-
*
|
|
1232
|
+
* Tab items.
|
|
1447
1233
|
*/
|
|
1448
|
-
|
|
1234
|
+
items: TabItem<T>[]
|
|
1449
1235
|
|
|
1450
1236
|
/**
|
|
1451
|
-
*
|
|
1237
|
+
* Current active tab.
|
|
1452
1238
|
*/
|
|
1453
|
-
|
|
1239
|
+
value?: T
|
|
1454
1240
|
|
|
1455
1241
|
/**
|
|
1456
|
-
*
|
|
1242
|
+
* Default active tab.
|
|
1457
1243
|
*/
|
|
1458
|
-
|
|
1244
|
+
defaultValue?: T
|
|
1459
1245
|
|
|
1460
1246
|
/**
|
|
1461
|
-
*
|
|
1247
|
+
* Change handler.
|
|
1462
1248
|
*/
|
|
1463
|
-
|
|
1249
|
+
onChange?: (value: T) => void
|
|
1464
1250
|
|
|
1465
1251
|
/**
|
|
1466
|
-
*
|
|
1252
|
+
* Tab variant.
|
|
1467
1253
|
*/
|
|
1468
|
-
|
|
1469
|
-
}
|
|
1470
|
-
```
|
|
1471
|
-
|
|
1472
|
-
#### `SpacerProps`
|
|
1473
|
-
|
|
1474
|
-
Props for the Spacer layout component (adds whitespace between elements).
|
|
1254
|
+
variant?: 'line' | 'enclosed' | 'soft-rounded' | 'solid-rounded'
|
|
1475
1255
|
|
|
1476
|
-
```typescript
|
|
1477
|
-
interface SpacerProps extends BaseProps {
|
|
1478
1256
|
/**
|
|
1479
|
-
*
|
|
1257
|
+
* Tab size.
|
|
1480
1258
|
*/
|
|
1481
|
-
size?: Size
|
|
1259
|
+
size?: Size
|
|
1482
1260
|
|
|
1483
1261
|
/**
|
|
1484
|
-
* Whether
|
|
1262
|
+
* Whether tabs are fitted (take full width).
|
|
1485
1263
|
*/
|
|
1486
|
-
|
|
1487
|
-
}
|
|
1488
|
-
```
|
|
1489
|
-
|
|
1490
|
-
#### `SpinnerClassOptions`
|
|
1491
|
-
|
|
1492
|
-
Options for resolving spinner CSS classes via UIClassMap.
|
|
1493
|
-
|
|
1494
|
-
```typescript
|
|
1495
|
-
interface SpinnerClassOptions {
|
|
1496
|
-
size?: Size
|
|
1264
|
+
fitted?: boolean
|
|
1497
1265
|
}
|
|
1498
1266
|
```
|
|
1499
1267
|
|
|
1500
|
-
#### `
|
|
1268
|
+
#### `AccordionItem`
|
|
1501
1269
|
|
|
1502
|
-
|
|
1270
|
+
A single item in an Accordion component.
|
|
1503
1271
|
|
|
1504
1272
|
```typescript
|
|
1505
|
-
interface
|
|
1273
|
+
interface AccordionItem<T = string> {
|
|
1506
1274
|
/**
|
|
1507
|
-
*
|
|
1275
|
+
* Item value/id.
|
|
1508
1276
|
*/
|
|
1509
|
-
|
|
1277
|
+
value: T
|
|
1510
1278
|
|
|
1511
1279
|
/**
|
|
1512
|
-
*
|
|
1280
|
+
* Item header/trigger.
|
|
1513
1281
|
*/
|
|
1514
|
-
|
|
1282
|
+
header: Children
|
|
1515
1283
|
|
|
1516
1284
|
/**
|
|
1517
|
-
*
|
|
1285
|
+
* Item content.
|
|
1518
1286
|
*/
|
|
1519
|
-
|
|
1287
|
+
content: Children
|
|
1520
1288
|
|
|
1521
1289
|
/**
|
|
1522
|
-
*
|
|
1290
|
+
* Whether the item is disabled.
|
|
1523
1291
|
*/
|
|
1524
|
-
|
|
1292
|
+
disabled?: boolean
|
|
1525
1293
|
}
|
|
1526
1294
|
```
|
|
1527
1295
|
|
|
1528
|
-
#### `
|
|
1296
|
+
#### `AccordionProps`
|
|
1529
1297
|
|
|
1530
|
-
|
|
1298
|
+
Props for the Accordion component.
|
|
1531
1299
|
|
|
1532
1300
|
```typescript
|
|
1533
|
-
interface
|
|
1534
|
-
size?: Size
|
|
1301
|
+
interface AccordionProps<T = string> extends BaseProps {
|
|
1535
1302
|
/**
|
|
1536
|
-
*
|
|
1537
|
-
* scale as `ButtonClassOptions.color`/`BadgeClassOptions.variant`.
|
|
1538
|
-
* @default 'primary'
|
|
1303
|
+
* Accordion items.
|
|
1539
1304
|
*/
|
|
1540
|
-
|
|
1541
|
-
}
|
|
1542
|
-
```
|
|
1543
|
-
|
|
1544
|
-
#### `SwitchProps`
|
|
1305
|
+
items: AccordionItem<T>[]
|
|
1545
1306
|
|
|
1546
|
-
|
|
1307
|
+
/**
|
|
1308
|
+
* Expanded item(s).
|
|
1309
|
+
*/
|
|
1310
|
+
value?: T | T[]
|
|
1547
1311
|
|
|
1548
|
-
```typescript
|
|
1549
|
-
interface SwitchProps extends InputElementProps {
|
|
1550
1312
|
/**
|
|
1551
|
-
*
|
|
1313
|
+
* Default expanded item(s).
|
|
1552
1314
|
*/
|
|
1553
|
-
|
|
1315
|
+
defaultValue?: T | T[]
|
|
1554
1316
|
|
|
1555
1317
|
/**
|
|
1556
|
-
*
|
|
1318
|
+
* Change handler.
|
|
1557
1319
|
*/
|
|
1558
|
-
|
|
1320
|
+
onChange?: (value: T | T[]) => void
|
|
1559
1321
|
|
|
1560
1322
|
/**
|
|
1561
|
-
*
|
|
1323
|
+
* Whether multiple items can be expanded.
|
|
1562
1324
|
*/
|
|
1563
|
-
|
|
1325
|
+
multiple?: boolean
|
|
1564
1326
|
|
|
1565
1327
|
/**
|
|
1566
|
-
*
|
|
1328
|
+
* Whether items can be collapsed.
|
|
1567
1329
|
*/
|
|
1568
|
-
|
|
1330
|
+
collapsible?: boolean
|
|
1569
1331
|
}
|
|
1570
1332
|
```
|
|
1571
1333
|
|
|
1572
|
-
#### `
|
|
1334
|
+
#### `TableColumn`
|
|
1573
1335
|
|
|
1574
|
-
|
|
1336
|
+
Table column definition.
|
|
1575
1337
|
|
|
1576
1338
|
```typescript
|
|
1577
|
-
interface
|
|
1339
|
+
interface TableColumn<T> {
|
|
1578
1340
|
/**
|
|
1579
|
-
*
|
|
1341
|
+
* Column key (data property).
|
|
1580
1342
|
*/
|
|
1581
|
-
|
|
1343
|
+
key: keyof T | string
|
|
1582
1344
|
|
|
1583
1345
|
/**
|
|
1584
|
-
*
|
|
1346
|
+
* Column header.
|
|
1585
1347
|
*/
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
/**
|
|
1589
|
-
* Tab content.
|
|
1590
|
-
*/
|
|
1591
|
-
content?: Children
|
|
1592
|
-
|
|
1593
|
-
/**
|
|
1594
|
-
* Whether the tab is disabled.
|
|
1595
|
-
*/
|
|
1596
|
-
disabled?: boolean
|
|
1597
|
-
|
|
1598
|
-
/**
|
|
1599
|
-
* Icon to display.
|
|
1600
|
-
*/
|
|
1601
|
-
icon?: Children
|
|
1602
|
-
}
|
|
1603
|
-
```
|
|
1604
|
-
|
|
1605
|
-
#### `TableColumn`
|
|
1606
|
-
|
|
1607
|
-
Table column definition.
|
|
1608
|
-
|
|
1609
|
-
```typescript
|
|
1610
|
-
interface TableColumn<T> {
|
|
1611
|
-
/**
|
|
1612
|
-
* Column key (data property).
|
|
1613
|
-
*/
|
|
1614
|
-
key: keyof T | string
|
|
1615
|
-
|
|
1616
|
-
/**
|
|
1617
|
-
* Column header.
|
|
1618
|
-
*/
|
|
1619
|
-
header: Children
|
|
1348
|
+
header: Children
|
|
1620
1349
|
|
|
1621
1350
|
/**
|
|
1622
1351
|
* Custom cell renderer.
|
|
@@ -1708,246 +1437,531 @@ interface TableProps<T> extends HTMLElementProps {
|
|
|
1708
1437
|
}
|
|
1709
1438
|
```
|
|
1710
1439
|
|
|
1711
|
-
#### `
|
|
1440
|
+
#### `PaginationProps`
|
|
1712
1441
|
|
|
1713
|
-
|
|
1714
|
-
classes via UIClassMap. Active vs inactive trigger styling is NOT one of
|
|
1715
|
-
these options — it is expressed as `data-[state=active]` CSS attribute
|
|
1716
|
-
selectors baked into the returned class string, driven by the
|
|
1717
|
-
`data-state="active"|"inactive"` attribute the framework binding already
|
|
1718
|
-
sets on the trigger element (see `@molecule/app-ui-react`'s `Tabs`).
|
|
1442
|
+
Props for the Pagination component (page navigation with current page, total, page size, and change callbacks).
|
|
1719
1443
|
|
|
1720
1444
|
```typescript
|
|
1721
|
-
interface
|
|
1445
|
+
interface PaginationProps extends BaseProps {
|
|
1722
1446
|
/**
|
|
1723
|
-
*
|
|
1724
|
-
* pill, or a solid-bg pill.
|
|
1447
|
+
* Current page (1-indexed).
|
|
1725
1448
|
*/
|
|
1726
|
-
|
|
1727
|
-
size?: Size
|
|
1728
|
-
}
|
|
1729
|
-
```
|
|
1730
|
-
|
|
1731
|
-
#### `TabsProps`
|
|
1449
|
+
page: number
|
|
1732
1450
|
|
|
1733
|
-
|
|
1451
|
+
/**
|
|
1452
|
+
* Total number of pages.
|
|
1453
|
+
*/
|
|
1454
|
+
totalPages: number
|
|
1734
1455
|
|
|
1735
|
-
```typescript
|
|
1736
|
-
interface TabsProps<T = string> extends BaseProps {
|
|
1737
1456
|
/**
|
|
1738
|
-
*
|
|
1457
|
+
* Page change handler.
|
|
1739
1458
|
*/
|
|
1740
|
-
|
|
1459
|
+
onChange: (page: number) => void
|
|
1741
1460
|
|
|
1742
1461
|
/**
|
|
1743
|
-
*
|
|
1462
|
+
* Number of sibling pages to show.
|
|
1744
1463
|
*/
|
|
1745
|
-
|
|
1464
|
+
siblings?: number
|
|
1746
1465
|
|
|
1747
1466
|
/**
|
|
1748
|
-
*
|
|
1467
|
+
* Number of boundary pages to show.
|
|
1749
1468
|
*/
|
|
1750
|
-
|
|
1469
|
+
boundaries?: number
|
|
1751
1470
|
|
|
1752
1471
|
/**
|
|
1753
|
-
*
|
|
1472
|
+
* Pagination size.
|
|
1754
1473
|
*/
|
|
1755
|
-
|
|
1474
|
+
size?: Size
|
|
1756
1475
|
|
|
1757
1476
|
/**
|
|
1758
|
-
*
|
|
1477
|
+
* Whether to show first/last buttons.
|
|
1759
1478
|
*/
|
|
1760
|
-
|
|
1479
|
+
showFirstLast?: boolean
|
|
1761
1480
|
|
|
1762
1481
|
/**
|
|
1763
|
-
*
|
|
1482
|
+
* Whether to show previous/next buttons.
|
|
1764
1483
|
*/
|
|
1765
|
-
|
|
1484
|
+
showPrevNext?: boolean
|
|
1766
1485
|
|
|
1767
1486
|
/**
|
|
1768
|
-
*
|
|
1487
|
+
* Accessible labels for pagination controls.
|
|
1769
1488
|
*/
|
|
1770
|
-
|
|
1489
|
+
labels?: {
|
|
1490
|
+
nav?: string
|
|
1491
|
+
first?: string
|
|
1492
|
+
previous?: string
|
|
1493
|
+
next?: string
|
|
1494
|
+
last?: string
|
|
1495
|
+
goToPage?: (page: number) => string
|
|
1496
|
+
}
|
|
1771
1497
|
}
|
|
1772
1498
|
```
|
|
1773
1499
|
|
|
1774
|
-
#### `
|
|
1500
|
+
#### `SkeletonProps`
|
|
1775
1501
|
|
|
1776
|
-
|
|
1502
|
+
Props for the Skeleton loading placeholder component.
|
|
1777
1503
|
|
|
1778
1504
|
```typescript
|
|
1779
|
-
interface
|
|
1780
|
-
error?: boolean
|
|
1505
|
+
interface SkeletonProps extends BaseProps {
|
|
1781
1506
|
/**
|
|
1782
|
-
*
|
|
1783
|
-
* input + textarea pair renders identical font sizes. Bonds default to
|
|
1784
|
-
* their historic textarea size when omitted.
|
|
1507
|
+
* Skeleton width.
|
|
1785
1508
|
*/
|
|
1786
|
-
|
|
1509
|
+
width?: string | number
|
|
1510
|
+
|
|
1511
|
+
/**
|
|
1512
|
+
* Skeleton height.
|
|
1513
|
+
*/
|
|
1514
|
+
height?: string | number
|
|
1515
|
+
|
|
1516
|
+
/**
|
|
1517
|
+
* Whether the skeleton is circular.
|
|
1518
|
+
*/
|
|
1519
|
+
circle?: boolean
|
|
1520
|
+
|
|
1521
|
+
/**
|
|
1522
|
+
* Border radius.
|
|
1523
|
+
*/
|
|
1524
|
+
borderRadius?: string | number
|
|
1525
|
+
|
|
1526
|
+
/**
|
|
1527
|
+
* Animation type.
|
|
1528
|
+
*/
|
|
1529
|
+
animation?: 'pulse' | 'wave' | 'none'
|
|
1787
1530
|
}
|
|
1788
1531
|
```
|
|
1789
1532
|
|
|
1790
|
-
#### `
|
|
1533
|
+
#### `SeparatorProps`
|
|
1791
1534
|
|
|
1792
|
-
|
|
1535
|
+
Props for the Separator/Divider component.
|
|
1793
1536
|
|
|
1794
1537
|
```typescript
|
|
1795
|
-
interface
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
maxLength?: number
|
|
1806
|
-
minLength?: number
|
|
1807
|
-
wrap?: 'hard' | 'soft' | 'off'
|
|
1808
|
-
onChange?: ChangeEventHandler
|
|
1809
|
-
onInput?: FormEventHandler
|
|
1538
|
+
interface SeparatorProps extends BaseProps {
|
|
1539
|
+
/**
|
|
1540
|
+
* Separator orientation.
|
|
1541
|
+
*/
|
|
1542
|
+
orientation?: 'horizontal' | 'vertical'
|
|
1543
|
+
|
|
1544
|
+
/**
|
|
1545
|
+
* Whether the separator is decorative only.
|
|
1546
|
+
*/
|
|
1547
|
+
decorative?: boolean
|
|
1810
1548
|
}
|
|
1811
1549
|
```
|
|
1812
1550
|
|
|
1813
|
-
#### `
|
|
1551
|
+
#### `DropdownItem`
|
|
1814
1552
|
|
|
1815
|
-
|
|
1553
|
+
Dropdown menu item.
|
|
1816
1554
|
|
|
1817
1555
|
```typescript
|
|
1818
|
-
interface
|
|
1556
|
+
interface DropdownItem<T = string> {
|
|
1819
1557
|
/**
|
|
1820
|
-
*
|
|
1821
|
-
* `size` as a neighboring Input for identical font sizes.
|
|
1558
|
+
* Item value/id.
|
|
1822
1559
|
*/
|
|
1823
|
-
|
|
1560
|
+
value: T
|
|
1824
1561
|
|
|
1825
1562
|
/**
|
|
1826
|
-
*
|
|
1563
|
+
* Display label.
|
|
1827
1564
|
*/
|
|
1828
|
-
label
|
|
1565
|
+
label: Children
|
|
1829
1566
|
|
|
1830
1567
|
/**
|
|
1831
|
-
*
|
|
1568
|
+
* Whether the item is disabled.
|
|
1832
1569
|
*/
|
|
1833
|
-
|
|
1570
|
+
disabled?: boolean
|
|
1834
1571
|
|
|
1835
1572
|
/**
|
|
1836
|
-
*
|
|
1573
|
+
* Icon to display.
|
|
1837
1574
|
*/
|
|
1838
|
-
|
|
1575
|
+
icon?: Children
|
|
1839
1576
|
|
|
1840
1577
|
/**
|
|
1841
|
-
*
|
|
1578
|
+
* Keyboard shortcut display.
|
|
1842
1579
|
*/
|
|
1843
|
-
|
|
1580
|
+
shortcut?: string
|
|
1844
1581
|
|
|
1845
1582
|
/**
|
|
1846
|
-
*
|
|
1583
|
+
* Whether this is a separator.
|
|
1847
1584
|
*/
|
|
1848
|
-
|
|
1585
|
+
separator?: boolean
|
|
1849
1586
|
|
|
1850
1587
|
/**
|
|
1851
|
-
*
|
|
1588
|
+
* Nested items (for submenus).
|
|
1852
1589
|
*/
|
|
1853
|
-
|
|
1854
|
-
}
|
|
1855
|
-
```
|
|
1856
|
-
|
|
1857
|
-
#### `ToastClassOptions`
|
|
1858
|
-
|
|
1859
|
-
Options for toast class resolution.
|
|
1860
|
-
|
|
1861
|
-
```typescript
|
|
1862
|
-
interface ToastClassOptions {
|
|
1863
|
-
variant?: 'default' | 'success' | 'warning' | 'error' | 'info'
|
|
1590
|
+
items?: DropdownItem<T>[]
|
|
1864
1591
|
}
|
|
1865
1592
|
```
|
|
1866
1593
|
|
|
1867
|
-
#### `
|
|
1594
|
+
#### `DropdownProps`
|
|
1868
1595
|
|
|
1869
|
-
Props for the
|
|
1596
|
+
Props for the Dropdown menu component.
|
|
1870
1597
|
|
|
1871
1598
|
```typescript
|
|
1872
|
-
interface
|
|
1599
|
+
interface DropdownProps<T = string> extends BaseProps {
|
|
1873
1600
|
/**
|
|
1874
|
-
*
|
|
1601
|
+
* Dropdown trigger element.
|
|
1875
1602
|
*/
|
|
1876
|
-
|
|
1603
|
+
trigger: Children
|
|
1877
1604
|
|
|
1878
1605
|
/**
|
|
1879
|
-
*
|
|
1606
|
+
* Dropdown items.
|
|
1880
1607
|
*/
|
|
1881
|
-
|
|
1608
|
+
items: DropdownItem<T>[]
|
|
1882
1609
|
|
|
1883
1610
|
/**
|
|
1884
|
-
*
|
|
1611
|
+
* Called when an item is selected.
|
|
1885
1612
|
*/
|
|
1886
|
-
|
|
1613
|
+
onSelect?: (value: T) => void
|
|
1887
1614
|
|
|
1888
1615
|
/**
|
|
1889
|
-
*
|
|
1616
|
+
* Dropdown placement.
|
|
1890
1617
|
*/
|
|
1891
|
-
|
|
1618
|
+
placement?:
|
|
1619
|
+
'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'right'
|
|
1892
1620
|
|
|
1893
1621
|
/**
|
|
1894
|
-
*
|
|
1622
|
+
* Whether the dropdown is open (controlled).
|
|
1895
1623
|
*/
|
|
1896
|
-
|
|
1624
|
+
open?: boolean
|
|
1897
1625
|
|
|
1898
1626
|
/**
|
|
1899
|
-
*
|
|
1627
|
+
* Called when open state changes.
|
|
1900
1628
|
*/
|
|
1901
|
-
|
|
1629
|
+
onOpenChange?: (open: boolean) => void
|
|
1902
1630
|
|
|
1903
1631
|
/**
|
|
1904
|
-
*
|
|
1632
|
+
* Menu alignment.
|
|
1905
1633
|
*/
|
|
1906
|
-
|
|
1634
|
+
align?: 'start' | 'center' | 'end'
|
|
1907
1635
|
|
|
1908
1636
|
/**
|
|
1909
|
-
*
|
|
1637
|
+
* Menu width.
|
|
1910
1638
|
*/
|
|
1911
|
-
|
|
1639
|
+
width?: 'trigger' | 'auto' | number | string
|
|
1640
|
+
}
|
|
1641
|
+
```
|
|
1912
1642
|
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1643
|
+
#### `PageShellProps`
|
|
1644
|
+
|
|
1645
|
+
Props for the PageShell component — authenticated page wrapper with navigation.
|
|
1646
|
+
|
|
1647
|
+
```typescript
|
|
1648
|
+
interface PageShellProps extends BaseProps {
|
|
1649
|
+
/** Sidebar content (navigation links). */
|
|
1650
|
+
sidebar?: Children
|
|
1651
|
+
/** Top bar content (breadcrumbs, user menu). */
|
|
1652
|
+
topbar?: Children
|
|
1653
|
+
/** Whether the sidebar is collapsed. */
|
|
1654
|
+
sidebarCollapsed?: boolean
|
|
1655
|
+
/** Callback when sidebar toggle is clicked. */
|
|
1656
|
+
onSidebarToggle?: () => void
|
|
1657
|
+
/** Main content. */
|
|
1658
|
+
children?: Children
|
|
1659
|
+
}
|
|
1660
|
+
```
|
|
1661
|
+
|
|
1662
|
+
#### `EmptyStateProps`
|
|
1663
|
+
|
|
1664
|
+
Props for the EmptyState component — shown when a list or section has no data.
|
|
1665
|
+
|
|
1666
|
+
```typescript
|
|
1667
|
+
interface EmptyStateProps extends BaseProps {
|
|
1668
|
+
/** Icon or illustration to display. */
|
|
1669
|
+
icon?: Children
|
|
1670
|
+
/** Main heading text. */
|
|
1671
|
+
title: string
|
|
1672
|
+
/** Description text. */
|
|
1673
|
+
description?: string
|
|
1674
|
+
/** Primary action button (e.g., "Create first item"). */
|
|
1675
|
+
action?: Children
|
|
1676
|
+
}
|
|
1677
|
+
```
|
|
1678
|
+
|
|
1679
|
+
#### `PageHeaderProps`
|
|
1680
|
+
|
|
1681
|
+
Props for the PageHeader component — consistent page title area.
|
|
1682
|
+
|
|
1683
|
+
```typescript
|
|
1684
|
+
interface PageHeaderProps extends BaseProps {
|
|
1685
|
+
/** Page title. */
|
|
1686
|
+
title: string
|
|
1687
|
+
/** Page description. */
|
|
1688
|
+
description?: string
|
|
1689
|
+
/** Action buttons (e.g., "Create", "Export"). */
|
|
1690
|
+
actions?: Children
|
|
1691
|
+
/** Breadcrumb trail. */
|
|
1692
|
+
breadcrumbs?: Array<{ label: string; href?: string }>
|
|
1693
|
+
}
|
|
1694
|
+
```
|
|
1695
|
+
|
|
1696
|
+
#### `ButtonClassOptions`
|
|
1697
|
+
|
|
1698
|
+
Options for resolving button CSS classes via UIClassMap.
|
|
1699
|
+
|
|
1700
|
+
```typescript
|
|
1701
|
+
interface ButtonClassOptions {
|
|
1702
|
+
variant?: ButtonVariant
|
|
1703
|
+
color?: ColorVariant
|
|
1704
|
+
size?: ButtonSize
|
|
1705
|
+
fullWidth?: boolean
|
|
1706
|
+
}
|
|
1707
|
+
```
|
|
1708
|
+
|
|
1709
|
+
#### `InputClassOptions`
|
|
1710
|
+
|
|
1711
|
+
Options for resolving input CSS classes via UIClassMap.
|
|
1712
|
+
|
|
1713
|
+
```typescript
|
|
1714
|
+
interface InputClassOptions {
|
|
1715
|
+
error?: boolean
|
|
1716
|
+
size?: Size
|
|
1717
|
+
/**
|
|
1718
|
+
* Horizontal text alignment inside the input. Bonds may default to a
|
|
1719
|
+
* centered aesthetic (e.g. the Tailwind bond's floating-label style);
|
|
1720
|
+
* `'left'` opts a specific field out — e.g. a form field sitting next to
|
|
1721
|
+
* left-aligned textareas.
|
|
1722
|
+
*/
|
|
1723
|
+
align?: 'left' | 'center'
|
|
1724
|
+
}
|
|
1725
|
+
```
|
|
1726
|
+
|
|
1727
|
+
#### `TextareaClassOptions`
|
|
1728
|
+
|
|
1729
|
+
Options for textarea class resolution.
|
|
1730
|
+
|
|
1731
|
+
```typescript
|
|
1732
|
+
interface TextareaClassOptions {
|
|
1733
|
+
error?: boolean
|
|
1734
|
+
/**
|
|
1735
|
+
* Text size tier, matching {@link InputClassOptions.size} — a same-`size`
|
|
1736
|
+
* input + textarea pair renders identical font sizes. Bonds default to
|
|
1737
|
+
* their historic textarea size when omitted.
|
|
1738
|
+
*/
|
|
1739
|
+
size?: Size
|
|
1740
|
+
}
|
|
1741
|
+
```
|
|
1742
|
+
|
|
1743
|
+
#### `SelectClassOptions`
|
|
1744
|
+
|
|
1745
|
+
Options for resolving select CSS classes via UIClassMap.
|
|
1746
|
+
|
|
1747
|
+
```typescript
|
|
1748
|
+
interface SelectClassOptions {
|
|
1749
|
+
error?: boolean
|
|
1750
|
+
size?: Size
|
|
1751
|
+
}
|
|
1752
|
+
```
|
|
1753
|
+
|
|
1754
|
+
#### `CheckboxClassOptions`
|
|
1755
|
+
|
|
1756
|
+
Options for resolving checkbox CSS classes via UIClassMap.
|
|
1757
|
+
|
|
1758
|
+
```typescript
|
|
1759
|
+
interface CheckboxClassOptions {
|
|
1760
|
+
error?: boolean
|
|
1761
|
+
}
|
|
1762
|
+
```
|
|
1763
|
+
|
|
1764
|
+
#### `RadioClassOptions`
|
|
1765
|
+
|
|
1766
|
+
Options for resolving radio CSS classes via UIClassMap.
|
|
1767
|
+
|
|
1768
|
+
```typescript
|
|
1769
|
+
interface RadioClassOptions {
|
|
1770
|
+
error?: boolean
|
|
1771
|
+
}
|
|
1772
|
+
```
|
|
1773
|
+
|
|
1774
|
+
#### `SwitchClassOptions`
|
|
1775
|
+
|
|
1776
|
+
Options for switch class resolution.
|
|
1777
|
+
|
|
1778
|
+
```typescript
|
|
1779
|
+
interface SwitchClassOptions {
|
|
1780
|
+
size?: Size
|
|
1781
|
+
/**
|
|
1782
|
+
* Color used for the checked/on track. Reuses the same semantic color
|
|
1783
|
+
* scale as `ButtonClassOptions.color`/`BadgeClassOptions.variant`.
|
|
1784
|
+
* @default 'primary'
|
|
1785
|
+
*/
|
|
1786
|
+
color?: ColorVariant
|
|
1787
|
+
}
|
|
1788
|
+
```
|
|
1789
|
+
|
|
1790
|
+
#### `LabelClassOptions`
|
|
1791
|
+
|
|
1792
|
+
Options for label class resolution.
|
|
1793
|
+
|
|
1794
|
+
```typescript
|
|
1795
|
+
interface LabelClassOptions {
|
|
1796
|
+
required?: boolean
|
|
1797
|
+
}
|
|
1798
|
+
```
|
|
1799
|
+
|
|
1800
|
+
#### `CardClassOptions`
|
|
1801
|
+
|
|
1802
|
+
Options for resolving card CSS classes via UIClassMap.
|
|
1803
|
+
|
|
1804
|
+
```typescript
|
|
1805
|
+
interface CardClassOptions {
|
|
1806
|
+
variant?: 'default' | 'elevated' | 'outline' | 'ghost'
|
|
1807
|
+
}
|
|
1808
|
+
```
|
|
1809
|
+
|
|
1810
|
+
#### `BadgeClassOptions`
|
|
1811
|
+
|
|
1812
|
+
Options for resolving badge CSS classes via UIClassMap.
|
|
1813
|
+
|
|
1814
|
+
```typescript
|
|
1815
|
+
interface BadgeClassOptions {
|
|
1816
|
+
variant?: ColorVariant
|
|
1817
|
+
size?: Size
|
|
1818
|
+
}
|
|
1819
|
+
```
|
|
1820
|
+
|
|
1821
|
+
#### `AlertClassOptions`
|
|
1822
|
+
|
|
1823
|
+
Options for resolving alert CSS classes via UIClassMap.
|
|
1824
|
+
|
|
1825
|
+
```typescript
|
|
1826
|
+
interface AlertClassOptions {
|
|
1827
|
+
variant?: 'default' | 'info' | 'success' | 'warning' | 'error'
|
|
1828
|
+
}
|
|
1829
|
+
```
|
|
1830
|
+
|
|
1831
|
+
#### `AvatarClassOptions`
|
|
1832
|
+
|
|
1833
|
+
Options for resolving avatar CSS classes via UIClassMap.
|
|
1834
|
+
|
|
1835
|
+
```typescript
|
|
1836
|
+
interface AvatarClassOptions {
|
|
1837
|
+
size?: Size
|
|
1838
|
+
}
|
|
1839
|
+
```
|
|
1840
|
+
|
|
1841
|
+
#### `ModalClassOptions`
|
|
1842
|
+
|
|
1843
|
+
Options for resolving modal/dialog CSS classes via UIClassMap.
|
|
1844
|
+
|
|
1845
|
+
```typescript
|
|
1846
|
+
interface ModalClassOptions {
|
|
1847
|
+
size?: ModalSize
|
|
1848
|
+
}
|
|
1849
|
+
```
|
|
1850
|
+
|
|
1851
|
+
#### `SpinnerClassOptions`
|
|
1852
|
+
|
|
1853
|
+
Options for resolving spinner CSS classes via UIClassMap.
|
|
1854
|
+
|
|
1855
|
+
```typescript
|
|
1856
|
+
interface SpinnerClassOptions {
|
|
1857
|
+
size?: Size
|
|
1858
|
+
}
|
|
1859
|
+
```
|
|
1860
|
+
|
|
1861
|
+
#### `ToastClassOptions`
|
|
1862
|
+
|
|
1863
|
+
Options for toast class resolution.
|
|
1864
|
+
|
|
1865
|
+
```typescript
|
|
1866
|
+
interface ToastClassOptions {
|
|
1867
|
+
variant?: 'default' | 'success' | 'warning' | 'error' | 'info'
|
|
1868
|
+
}
|
|
1869
|
+
```
|
|
1870
|
+
|
|
1871
|
+
#### `SeparatorClassOptions`
|
|
1872
|
+
|
|
1873
|
+
Options for resolving separator CSS classes via UIClassMap.
|
|
1874
|
+
|
|
1875
|
+
```typescript
|
|
1876
|
+
interface SeparatorClassOptions {
|
|
1877
|
+
orientation?: 'horizontal' | 'vertical'
|
|
1878
|
+
}
|
|
1879
|
+
```
|
|
1880
|
+
|
|
1881
|
+
#### `AccordionClassOptions`
|
|
1882
|
+
|
|
1883
|
+
Options for resolving accordion CSS classes via UIClassMap.
|
|
1884
|
+
|
|
1885
|
+
```typescript
|
|
1886
|
+
interface AccordionClassOptions {
|
|
1887
|
+
variant?: string
|
|
1888
|
+
}
|
|
1889
|
+
```
|
|
1890
|
+
|
|
1891
|
+
#### `TabsClassOptions`
|
|
1892
|
+
|
|
1893
|
+
Options for resolving tabs (`tabsList`/`tabsTrigger`/`tabsContent`) CSS
|
|
1894
|
+
classes via UIClassMap. Active vs inactive trigger styling is NOT one of
|
|
1895
|
+
these options — it is expressed as `data-[state=active]` CSS attribute
|
|
1896
|
+
selectors baked into the returned class string, driven by the
|
|
1897
|
+
`data-state="active"|"inactive"` attribute the framework binding already
|
|
1898
|
+
sets on the trigger element (see `@molecule/app-ui-react`'s `Tabs`).
|
|
1899
|
+
|
|
1900
|
+
```typescript
|
|
1901
|
+
interface TabsClassOptions {
|
|
1902
|
+
/**
|
|
1903
|
+
* Visual style: underline indicator, bordered/filled boxes, a soft-bg
|
|
1904
|
+
* pill, or a solid-bg pill.
|
|
1905
|
+
*/
|
|
1906
|
+
variant?: 'line' | 'enclosed' | 'soft-rounded' | 'solid-rounded'
|
|
1907
|
+
size?: Size
|
|
1908
|
+
}
|
|
1909
|
+
```
|
|
1910
|
+
|
|
1911
|
+
#### `PaginationClassOptions`
|
|
1912
|
+
|
|
1913
|
+
Options for pagination item class resolution.
|
|
1914
|
+
|
|
1915
|
+
```typescript
|
|
1916
|
+
interface PaginationClassOptions {
|
|
1917
|
+
active?: boolean
|
|
1918
|
+
size?: Size
|
|
1919
|
+
}
|
|
1920
|
+
```
|
|
1921
|
+
|
|
1922
|
+
#### `ContainerClassOptions`
|
|
1923
|
+
|
|
1924
|
+
Options for container class resolution.
|
|
1925
|
+
|
|
1926
|
+
```typescript
|
|
1927
|
+
interface ContainerClassOptions {
|
|
1928
|
+
size?: Size | '2xl' | 'full'
|
|
1918
1929
|
}
|
|
1919
1930
|
```
|
|
1920
1931
|
|
|
1921
|
-
#### `
|
|
1932
|
+
#### `FlexClassOptions`
|
|
1922
1933
|
|
|
1923
|
-
|
|
1934
|
+
Options for flex class resolution.
|
|
1924
1935
|
|
|
1925
1936
|
```typescript
|
|
1926
|
-
interface
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
children: Children
|
|
1937
|
+
interface FlexClassOptions {
|
|
1938
|
+
direction?: 'row' | 'col' | 'row-reverse' | 'col-reverse'
|
|
1939
|
+
align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline'
|
|
1940
|
+
justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly'
|
|
1941
|
+
wrap?: 'wrap' | 'nowrap' | 'wrap-reverse'
|
|
1942
|
+
/** Named tokens or Tailwind spacing scale index (e.g. `3` → `gap-3`). */
|
|
1943
|
+
gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number
|
|
1944
|
+
}
|
|
1945
|
+
```
|
|
1936
1946
|
|
|
1937
|
-
|
|
1938
|
-
* Tooltip placement.
|
|
1939
|
-
*/
|
|
1940
|
-
placement?: TooltipPlacement
|
|
1947
|
+
#### `GridClassOptions`
|
|
1941
1948
|
|
|
1942
|
-
|
|
1943
|
-
* Delay before showing (ms).
|
|
1944
|
-
*/
|
|
1945
|
-
delay?: number
|
|
1949
|
+
Options for grid class resolution.
|
|
1946
1950
|
|
|
1951
|
+
```typescript
|
|
1952
|
+
interface GridClassOptions {
|
|
1953
|
+
cols?: number
|
|
1954
|
+
/** Named tokens or Tailwind spacing scale index (e.g. `10` → `gap-10`). */
|
|
1955
|
+
gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number
|
|
1947
1956
|
/**
|
|
1948
|
-
*
|
|
1957
|
+
* Mobile-first responsive collapse. When omitted (the default), a grid of
|
|
1958
|
+
* `cols >= 2` starts at a single column on small screens and steps up to
|
|
1959
|
+
* `cols` at larger breakpoints, so cards don't overflow on mobile. Pass
|
|
1960
|
+
* `false` for a FIXED `cols`-column grid at every viewport width. Ignored
|
|
1961
|
+
* for `cols <= 1` (always single-column) and by ClassMap bonds without a
|
|
1962
|
+
* breakpoint system (e.g. NativeWind).
|
|
1949
1963
|
*/
|
|
1950
|
-
|
|
1964
|
+
responsive?: boolean
|
|
1951
1965
|
}
|
|
1952
1966
|
```
|
|
1953
1967
|
|
|
@@ -2205,590 +2219,11 @@ interface UIClassMap {
|
|
|
2205
2219
|
|
|
2206
2220
|
/** Native select arrow area. */
|
|
2207
2221
|
selectNative: string
|
|
2208
|
-
|
|
2209
|
-
// ---- Label/Form sub-element tokens ----
|
|
2210
|
-
|
|
2211
|
-
/** Block label with bottom margin (for use above inputs). */
|
|
2212
|
-
labelBlock: string
|
|
2213
|
-
/** Form fieldset wrapper. */
|
|
2214
|
-
formFieldset: string
|
|
2215
|
-
/** Fieldset with display:contents — invisible wrapper for disabled state. */
|
|
2216
|
-
formFieldsetContents: string
|
|
2217
|
-
/** Form field group wrapper. */
|
|
2218
|
-
formField: string
|
|
2219
|
-
/** Flex column wrapper around control + error message. */
|
|
2220
|
-
formFieldWrapper: string
|
|
2221
|
-
|
|
2222
|
-
// ---- Control (Checkbox/Switch/Radio) shared tokens ----
|
|
2223
|
-
|
|
2224
|
-
/** Control wrapper label (flex + gap + cursor). */
|
|
2225
|
-
controlLabel: string
|
|
2226
|
-
/** Inner control container (for checkbox/radio indicator). */
|
|
2227
|
-
controlContainer: string
|
|
2228
|
-
/** Control label text styling (font size, color, etc.). */
|
|
2229
|
-
controlText: string
|
|
2230
|
-
/** Disabled state for control wrappers. */
|
|
2231
|
-
controlDisabled: string
|
|
2232
|
-
|
|
2233
|
-
// ---- Radio group tokens ----
|
|
2234
|
-
|
|
2235
|
-
/** Radio group label/legend. */
|
|
2236
|
-
radioGroupLabel: string
|
|
2237
|
-
|
|
2238
|
-
// ---- Accordion sub-element tokens ----
|
|
2239
|
-
|
|
2240
|
-
/** Accordion trigger chevron icon (animated rotation). */
|
|
2241
|
-
accordionChevron: string
|
|
2242
|
-
/** Accordion trigger base (full-width, left-aligned). */
|
|
2243
|
-
accordionTriggerBase: string
|
|
2244
|
-
|
|
2245
|
-
// ---- Tabs sub-element tokens ----
|
|
2246
|
-
|
|
2247
|
-
/** Tabs list fitted variant (full-width). */
|
|
2248
|
-
tabsFitted: string
|
|
2249
|
-
/** Tab trigger fitted variant (flex-1). */
|
|
2250
|
-
tabTriggerFitted: string
|
|
2251
|
-
/** Tab trigger icon spacing. */
|
|
2252
|
-
tabTriggerIcon: string
|
|
2253
|
-
|
|
2254
|
-
// ---- Pagination tokens ----
|
|
2255
|
-
|
|
2256
|
-
/** Pagination button interactive classes (cursor). */
|
|
2257
|
-
paginationInteractive: string
|
|
2258
|
-
|
|
2259
|
-
// ---- Progress sub-element tokens ----
|
|
2260
|
-
|
|
2261
|
-
/** Progress outer wrapper (full-width). */
|
|
2262
|
-
progressWrapper: string
|
|
2263
|
-
/** Progress label container (flex between). */
|
|
2264
|
-
progressLabelContainer: string
|
|
2265
|
-
/** Progress label text styling. */
|
|
2266
|
-
progressLabelText: string
|
|
2267
|
-
/** Progress indeterminate animation. */
|
|
2268
|
-
progressIndeterminate: string
|
|
2269
|
-
|
|
2270
|
-
// ---- Table sub-element tokens ----
|
|
2271
|
-
|
|
2272
|
-
/** Table scrollable wrapper. */
|
|
2273
|
-
tableWrapper: string
|
|
2274
|
-
/** Table loading overlay. */
|
|
2275
|
-
tableLoadingOverlay: string
|
|
2276
|
-
/** Table empty state cell. */
|
|
2277
|
-
tableEmptyCell: string
|
|
2278
|
-
/** Table sort indicator wrapper. */
|
|
2279
|
-
tableSortWrapper: string
|
|
2280
|
-
/** Table sort icon spacing. */
|
|
2281
|
-
tableSortIcon: string
|
|
2282
|
-
/** Table striped row. */
|
|
2283
|
-
tableRowStriped: string
|
|
2284
|
-
/** Table hoverable row. */
|
|
2285
|
-
tableRowHoverable: string
|
|
2286
|
-
/** Table clickable row. */
|
|
2287
|
-
tableRowClickable: string
|
|
2288
|
-
/** Table sortable header. */
|
|
2289
|
-
tableHeadSortable: string
|
|
2290
|
-
/** Table bordered variant. */
|
|
2291
|
-
tableBordered: string
|
|
2292
|
-
|
|
2293
|
-
// ---- Toast sub-element tokens ----
|
|
2294
|
-
|
|
2295
|
-
/** Toast icon wrapper (prevents shrinking). */
|
|
2296
|
-
toastIconWrapper: string
|
|
2297
|
-
/** Toast content wrapper (fills remaining space). */
|
|
2298
|
-
toastContentWrapper: string
|
|
2299
|
-
|
|
2300
|
-
// ---- Dropdown sub-element tokens ----
|
|
2301
|
-
|
|
2302
|
-
/** Dropdown trigger wrapper. */
|
|
2303
|
-
dropdownTrigger: string
|
|
2304
|
-
/** Dropdown item icon spacing. */
|
|
2305
|
-
dropdownItemIcon: string
|
|
2306
|
-
/** Dropdown item label (fills remaining space). */
|
|
2307
|
-
dropdownItemLabel: string
|
|
2308
|
-
/** Dropdown item shortcut text. */
|
|
2309
|
-
dropdownItemShortcut: string
|
|
2310
|
-
/** Dropdown item disabled state. */
|
|
2311
|
-
dropdownItemDisabled: string
|
|
2312
|
-
|
|
2313
|
-
// ---- Tooltip tokens ----
|
|
2314
|
-
|
|
2315
|
-
/** Tooltip trigger wrapper. */
|
|
2316
|
-
tooltipTrigger: string
|
|
2317
|
-
|
|
2318
|
-
// ---- Avatar sub-element tokens ----
|
|
2319
|
-
|
|
2320
|
-
/** Avatar initials text styling. */
|
|
2321
|
-
avatarInitials: string
|
|
2322
|
-
/** Avatar fallback icon sizing. */
|
|
2323
|
-
avatarFallbackIcon: string
|
|
2324
|
-
/** Avatar square (non-rounded) variant. */
|
|
2325
|
-
avatarSquare: string
|
|
2326
|
-
|
|
2327
|
-
// ---- Badge tokens ----
|
|
2328
|
-
|
|
2329
|
-
/** Badge square (non-rounded) variant. */
|
|
2330
|
-
badgeSquare: string
|
|
2331
|
-
|
|
2332
|
-
// ---- Skeleton sub-element tokens ----
|
|
2333
|
-
|
|
2334
|
-
/** Skeleton text line container. */
|
|
2335
|
-
skeletonTextContainer: string
|
|
2336
|
-
/** Skeleton circle shape. */
|
|
2337
|
-
skeletonCircle: string
|
|
2338
|
-
/** Skeleton wave animation variant. */
|
|
2339
|
-
skeletonWave: string
|
|
2340
|
-
/** Skeleton no-animation variant. */
|
|
2341
|
-
skeletonNone: string
|
|
2342
|
-
|
|
2343
|
-
// ---- Typography utility tokens ----
|
|
2344
|
-
|
|
2345
|
-
/** Right-aligned text. */
|
|
2346
|
-
textRight: string
|
|
2347
|
-
|
|
2348
|
-
// ---- Theme surface tokens ----
|
|
2349
|
-
|
|
2350
|
-
/** Full-page background with default text color (light/dark aware). */
|
|
2351
|
-
page: string
|
|
2352
|
-
/** Card/panel surface background (light/dark aware). */
|
|
2353
|
-
surface: string
|
|
2354
|
-
/** Recessed/secondary surface background (e.g. tab bars, inputs, sidebars). */
|
|
2355
|
-
surfaceSecondary: string
|
|
2356
|
-
/** App header bar: surface + bottom border + subtle shadow. */
|
|
2357
|
-
headerBar: string
|
|
2358
|
-
/** Right-side drawer panel: fixed, full-height, scrollable. */
|
|
2359
|
-
drawer: string
|
|
2360
|
-
|
|
2361
|
-
// ---- Text color tokens ----
|
|
2362
|
-
|
|
2363
|
-
/** De-emphasized text (e.g. labels, secondary info). */
|
|
2364
|
-
textMuted: string
|
|
2365
|
-
/** Very subtle text (e.g. footer, icon color). */
|
|
2366
|
-
textSubtle: string
|
|
2367
|
-
/** Primary brand color text (e.g. links, active labels). */
|
|
2368
|
-
textPrimary: string
|
|
2369
|
-
/**
|
|
2370
|
-
* Readable text colour for content sitting on {@link bgPrimaryContainer}.
|
|
2371
|
-
*
|
|
2372
|
-
* The counterpart the theme guarantees contrast against — see the note on
|
|
2373
|
-
* `bgPrimaryContainer`. Note it is NOT interchangeable with `textPrimary`:
|
|
2374
|
-
* some themes build a dark primary container and give this a light value, so
|
|
2375
|
-
* pairing it with a light tint inverts the problem (measured at 1.07:1 in one
|
|
2376
|
-
* flagship). Always use the two together.
|
|
2377
|
-
*/
|
|
2378
|
-
textOnPrimaryContainer: string
|
|
2379
|
-
/** Success state text color. */
|
|
2380
|
-
textSuccess: string
|
|
2381
|
-
/** Warning state text color. */
|
|
2382
|
-
textWarning: string
|
|
2383
|
-
/** Error-state text color. */
|
|
2384
|
-
textError: string
|
|
2385
|
-
|
|
2386
|
-
// ---- Border tokens ----
|
|
2387
|
-
|
|
2388
|
-
/** Bottom border in theme border color. */
|
|
2389
|
-
borderB: string
|
|
2390
|
-
/** Top border in theme border color. */
|
|
2391
|
-
borderT: string
|
|
2392
|
-
/** Right border in theme border color. */
|
|
2393
|
-
borderR: string
|
|
2394
|
-
/** Left border in theme border color. */
|
|
2395
|
-
borderL: string
|
|
2396
|
-
/** All-sides border in theme border color. */
|
|
2397
|
-
borderAll: string
|
|
2398
|
-
/** Primary-colored bottom border (e.g. active tab indicator). */
|
|
2399
|
-
borderBPrimary: string
|
|
2400
|
-
/** Primary-colored top border accent (e.g. highlighted pricing card). */
|
|
2401
|
-
borderTPrimary: string
|
|
2402
|
-
|
|
2403
|
-
// ---- Background utility tokens ----
|
|
2404
|
-
|
|
2405
|
-
/** Subtle error background for banners/notifications. */
|
|
2406
|
-
bgErrorSubtle: string
|
|
2407
|
-
/** Border color used as element background (e.g. resize handles, separators). */
|
|
2408
|
-
bgBorder: string
|
|
2409
|
-
/** Subtle primary-tinted background (e.g. icon halo, callout banner). */
|
|
2410
|
-
bgPrimarySubtle: string
|
|
2411
|
-
/**
|
|
2412
|
-
* Primary-tinted container background, paired with {@link textOnPrimaryContainer}.
|
|
2413
|
-
*
|
|
2414
|
-
* Use this pair — never `bgPrimarySubtle` + `textPrimary` — whenever TEXT sits
|
|
2415
|
-
* on a primary tint. The brand colour as text on a 10% tint of itself is only
|
|
2416
|
-
* legible when the brand is already dark: measured across the flagship themes,
|
|
2417
|
-
* an amber brand scores 1.98:1 there and no shade of the hue fixes it, because
|
|
2418
|
-
* darkening enough for the tint breaks the button fill it also has to serve.
|
|
2419
|
-
* The container pair is defined per theme precisely so both sides move
|
|
2420
|
-
* together, and it clears 4.5:1 in 130 of 133 flagship themes.
|
|
2421
|
-
*/
|
|
2422
|
-
bgPrimaryContainer: string
|
|
2423
|
-
/** Solid primary background (e.g. CTA fill). */
|
|
2424
|
-
bgPrimary: string
|
|
2425
|
-
/** Pure white background (uses `--color-surface-container-lowest` if defined). */
|
|
2426
|
-
bgWhite: string
|
|
2427
|
-
|
|
2428
|
-
// ---- Premium typography utilities ----
|
|
2429
|
-
|
|
2430
|
-
/** Italic style for emphasized headlines (e.g. tier name in pricing card). */
|
|
2431
|
-
italic: string
|
|
2432
|
-
/** ALL CAPS letter transform for eyebrow labels. */
|
|
2433
|
-
uppercase: string
|
|
2434
|
-
/** Wide letter-spacing for caps eyebrow / button labels. */
|
|
2435
|
-
trackingWide: string
|
|
2436
|
-
|
|
2437
|
-
// ---- Premium decoration tokens ----
|
|
2438
|
-
|
|
2439
|
-
/** Linear gradient using the app's primary color (e.g. hero CTAs). */
|
|
2440
|
-
gradientPrimary: string
|
|
2441
|
-
/** Soft elevation suitable for "lifted" cards (e.g. popular pricing tier). */
|
|
2442
|
-
shadowLifted: string
|
|
2443
|
-
|
|
2444
|
-
// ---- Composite style tokens ----
|
|
2445
|
-
|
|
2446
|
-
/** Settings section heading (small, muted). */
|
|
2447
|
-
sectionHeading: string
|
|
2448
|
-
/** Standard form label (block, small, medium weight, bottom margin). */
|
|
2449
|
-
formLabel: string
|
|
2450
|
-
/** Small form label variant (extra-small, muted). */
|
|
2451
|
-
formLabelSmall: string
|
|
2452
|
-
/** Inline text link appearance (hover effect). */
|
|
2453
|
-
link: string
|
|
2454
|
-
/** Rich text / long-form prose content. */
|
|
2455
|
-
prose: string
|
|
2456
|
-
/** Thin horizontal divider line. */
|
|
2457
|
-
dividerLine: string
|
|
2458
|
-
/** Modal overlay backdrop. */
|
|
2459
|
-
overlay: string
|
|
2460
|
-
/** Fixed bottom footer bar. */
|
|
2461
|
-
footerBar: string
|
|
2462
|
-
/** Footer link styling (muted, hover highlight). */
|
|
2463
|
-
footerLink: string
|
|
2464
|
-
/** Footer button styling (borderless, muted, hover highlight). */
|
|
2465
|
-
footerButton: string
|
|
2466
|
-
|
|
2467
|
-
// ---- Language selector tokens ----
|
|
2468
|
-
|
|
2469
|
-
/** Language selector grid container (responsive columns, scrollable). */
|
|
2470
|
-
languageGrid: string
|
|
2471
|
-
/** Language option item (default/inactive state). */
|
|
2472
|
-
languageOption: string
|
|
2473
|
-
/** Language option item (active/selected state). */
|
|
2474
|
-
languageActive: string
|
|
2475
|
-
/** Trigger button for `<LanguagePicker />` (globe icon + current locale name). */
|
|
2476
|
-
languagePickerTrigger: string
|
|
2477
|
-
|
|
2478
|
-
// ---- Spacing utilities ----
|
|
2479
|
-
|
|
2480
|
-
/**
|
|
2481
|
-
* Returns a spacing class for the given property and scale.
|
|
2482
|
-
*/
|
|
2483
|
-
sp(property: SpacingProperty, scale: SpacingScale): string
|
|
2484
|
-
/**
|
|
2485
|
-
* Returns a style object resolved from a compound spacing spec.
|
|
2486
|
-
* Use on the `style` prop — avoids CSS class ordering conflicts entirely.
|
|
2487
|
-
* More specific properties override less specific ones (e.g. `pr` overrides `px` overrides `p`).
|
|
2488
|
-
*/
|
|
2489
|
-
sp(overrides: SpacingOverrides): Record<string, string>
|
|
2490
|
-
/**
|
|
2491
|
-
* Returns vertical space-between class (e.g. `space-y-*` in Tailwind).
|
|
2492
|
-
*/
|
|
2493
|
-
stack(scale: SpacingScale): string
|
|
2494
|
-
|
|
2495
|
-
// ---- Typography utilities ----
|
|
2496
|
-
|
|
2497
|
-
/**
|
|
2498
|
-
* Returns font size class for the given scale.
|
|
2499
|
-
*/
|
|
2500
|
-
textSize(size: TextScale): string
|
|
2501
|
-
/**
|
|
2502
|
-
* Returns font weight class for the given weight.
|
|
2503
|
-
*/
|
|
2504
|
-
fontWeight(weight: FontWeightScale): string
|
|
2505
|
-
/** Center-aligned text. */
|
|
2506
|
-
textCenter: string
|
|
2507
|
-
|
|
2508
|
-
// ---- Sizing utilities ----
|
|
2509
|
-
|
|
2510
|
-
/**
|
|
2511
|
-
* Returns width class — fractional (`'1/2'`), keyword (`'full'`), or numeric.
|
|
2512
|
-
*/
|
|
2513
|
-
w(value: WidthValue | number): string
|
|
2514
|
-
/**
|
|
2515
|
-
* Returns height class — keyword (`'full'`, `'screen'`) or numeric.
|
|
2516
|
-
*/
|
|
2517
|
-
h(value: HeightValue | number): string
|
|
2518
|
-
/**
|
|
2519
|
-
* Returns minimum height class.
|
|
2520
|
-
*/
|
|
2521
|
-
minH(value: HeightValue): string
|
|
2522
|
-
/**
|
|
2523
|
-
* Returns maximum width constraint class.
|
|
2524
|
-
*/
|
|
2525
|
-
maxW(value: MaxWidthScale): string
|
|
2526
|
-
/** Prevent flex shrinking. */
|
|
2527
|
-
shrink0: string
|
|
2528
|
-
|
|
2529
|
-
// ---- Touch / pointer utilities ----
|
|
2530
|
-
|
|
2531
|
-
/**
|
|
2532
|
-
* Minimum interactive hit-area for touch (coarse-pointer) devices — WCAG 2.5.5
|
|
2533
|
-
* "Target Size". Resolves to a `>=44x44px` minimum that applies ONLY on
|
|
2534
|
-
* coarse-pointer devices, so fine-pointer (mouse) layouts keep their compact
|
|
2535
|
-
* control sizing. Compose onto small icon buttons/controls that would otherwise
|
|
2536
|
-
* be too small to tap reliably on phones/tablets (e.g. the preview toolbar's
|
|
2537
|
-
* back/forward/refresh/open and device-frame buttons). On React Native (touch
|
|
2538
|
-
* by definition) the bond applies the minimum unconditionally.
|
|
2539
|
-
*/
|
|
2540
|
-
touchTarget: string
|
|
2541
|
-
|
|
2542
|
-
/**
|
|
2543
|
-
* Compact coarse-pointer hit-area floor (`>=36x36px`) for inline CTAs inside
|
|
2544
|
-
* dense surfaces — banner/notice-card action buttons, chat-card actions —
|
|
2545
|
-
* where the full 44px {@link touchTarget} visibly overwhelms the strip or
|
|
2546
|
-
* card that hosts them. 36px is still comfortably tappable; reserve the full
|
|
2547
|
-
* 44px floor for standalone controls. Like {@link touchTarget} it applies
|
|
2548
|
-
* only on coarse-pointer devices (unconditionally on React Native).
|
|
2549
|
-
*/
|
|
2550
|
-
touchTargetCompact: string
|
|
2551
|
-
|
|
2552
|
-
// ---- Position utilities ----
|
|
2553
|
-
|
|
2554
|
-
// ---- Display utilities ----
|
|
2555
|
-
|
|
2556
|
-
/** Block display. */
|
|
2557
|
-
displayBlock: string
|
|
2558
|
-
/** Inline-block display. */
|
|
2559
|
-
displayInlineBlock: string
|
|
2560
|
-
/** Contents display (invisible wrapper). */
|
|
2561
|
-
displayContents: string
|
|
2562
|
-
/**
|
|
2563
|
-
* Hidden on viewports NARROWER than the breakpoint; the element keeps its
|
|
2564
|
-
* own display from the breakpoint up. Pair with {@link UIClassMap.hiddenFrom}
|
|
2565
|
-
* to swap a desktop surface (a side column) for a phone one (a bottom bar)
|
|
2566
|
-
* in CSS alone — correct in server-rendered HTML before any JavaScript runs.
|
|
2567
|
-
*/
|
|
2568
|
-
hiddenBelow(breakpoint: ResponsiveBreakpoint): string
|
|
2569
|
-
/** Hidden on viewports AT OR WIDER than the breakpoint (the phone-only half of the pair). */
|
|
2570
|
-
hiddenFrom(breakpoint: ResponsiveBreakpoint): string
|
|
2571
|
-
|
|
2572
|
-
// ---- Layout utilities ----
|
|
2573
|
-
|
|
2574
|
-
/** Horizontal auto margin (centering). */
|
|
2575
|
-
mxAuto: string
|
|
2576
|
-
/** Pointer cursor. */
|
|
2577
|
-
cursorPointer: string
|
|
2578
|
-
/** Full border radius (circle). */
|
|
2579
|
-
roundedFull: string
|
|
2580
|
-
|
|
2581
|
-
// ---- Grid utilities ----
|
|
2582
|
-
|
|
2583
|
-
/**
|
|
2584
|
-
* Returns grid-template-rows class for the given row count.
|
|
2585
|
-
*/
|
|
2586
|
-
gridRows(rows: number): string
|
|
2587
|
-
|
|
2588
|
-
// ---- Position utilities ----
|
|
2589
|
-
|
|
2590
|
-
/**
|
|
2591
|
-
* Returns CSS position class for the given value.
|
|
2592
|
-
*/
|
|
2593
|
-
position(value: 'relative' | 'absolute' | 'fixed' | 'sticky'): string
|
|
2594
|
-
/** Full inset (inset: 0). */
|
|
2595
|
-
inset0: string
|
|
2596
|
-
|
|
2597
|
-
// ---- Logo / brand identity tokens ----
|
|
2598
|
-
|
|
2599
|
-
/** Logo wordmark text styling (size, tracking, case). */
|
|
2600
|
-
logoText: string
|
|
2601
|
-
/** Logo icon color (primary brand color). */
|
|
2602
|
-
logoIcon: string
|
|
2603
|
-
|
|
2604
|
-
// ---- Header layout tokens ----
|
|
2605
|
-
|
|
2606
|
-
/** Fixed header positioning (fixed, full-width, high z-index). */
|
|
2607
|
-
headerFixed: string
|
|
2608
|
-
/** Main header inner container (max-width, height, padding). */
|
|
2609
|
-
headerInner: string
|
|
2610
|
-
|
|
2611
|
-
// ---- Auth page layout tokens ----
|
|
2612
|
-
|
|
2613
|
-
/** Auth page header inner container (full-width, no max-width). */
|
|
2614
|
-
authHeaderInner: string
|
|
2615
|
-
/** Auth page body: centered content area. */
|
|
2616
|
-
authPageBody: string
|
|
2617
|
-
/** Auth form narrow container (max-width, centered). */
|
|
2618
|
-
authFormWrapper: string
|
|
2619
|
-
/** Auth form field spacing (bottom margin). */
|
|
2620
|
-
authField: string
|
|
2621
|
-
/** Spacing after auth submit area (top margin). */
|
|
2622
|
-
authAfterSubmit: string
|
|
2623
|
-
|
|
2624
|
-
// ---- Auth button layout tokens ----
|
|
2625
|
-
|
|
2626
|
-
/** Flex row container for auth form buttons. */
|
|
2627
|
-
authButtonRow: string
|
|
2628
|
-
/** Back button sizing in auth forms. */
|
|
2629
|
-
authBackButton: string
|
|
2630
|
-
/** Submit button sizing next to back button. */
|
|
2631
|
-
authSubmitButton: string
|
|
2632
|
-
/** Login page signup button (half-width, left). */
|
|
2633
|
-
authLoginSignup: string
|
|
2634
|
-
/** Login page submit button (half-width, right). */
|
|
2635
|
-
authLoginSubmit: string
|
|
2636
|
-
/** Login submit full-width (when logging in). */
|
|
2637
|
-
authLoginSubmitFull: string
|
|
2638
|
-
/** Hidden state for login signup button. */
|
|
2639
|
-
authHidden: string
|
|
2640
|
-
/** Forward arrow icon spacing. */
|
|
2641
|
-
authArrowIcon: string
|
|
2642
|
-
|
|
2643
|
-
// ---- App layout tokens ----
|
|
2644
|
-
|
|
2645
|
-
/** Main app content padding (header/footer offsets). */
|
|
2646
|
-
appLayout: string
|
|
2647
|
-
|
|
2648
|
-
/** Flex grow to fill available space (`flex: 1`). */
|
|
2649
|
-
flex1: string
|
|
2650
|
-
|
|
2651
|
-
// ---- OAuth tokens ----
|
|
2652
|
-
|
|
2653
|
-
/** OAuth provider name label (fallback when no icon). */
|
|
2654
|
-
oauthProviderLabel: string
|
|
2655
|
-
|
|
2656
|
-
// ---- Layout pattern tokens ----
|
|
2657
|
-
|
|
2658
|
-
/** PageShell root container (flex, full screen). */
|
|
2659
|
-
pageShell: string
|
|
2660
|
-
/** PageShell sidebar panel. */
|
|
2661
|
-
pageShellSidebar: string
|
|
2662
|
-
/** PageShell sidebar collapsed state (narrow width). */
|
|
2663
|
-
pageShellSidebarCollapsed: string
|
|
2664
|
-
/** PageShell top bar strip. */
|
|
2665
|
-
pageShellTopbar: string
|
|
2666
|
-
/** PageShell main content area (scrollable). */
|
|
2667
|
-
pageShellContent: string
|
|
2668
|
-
/** PageShell sidebar toggle button. */
|
|
2669
|
-
pageShellSidebarToggle: string
|
|
2670
|
-
/** EmptyState root container (centered column). */
|
|
2671
|
-
emptyState: string
|
|
2672
|
-
/** EmptyState icon/illustration wrapper. */
|
|
2673
|
-
emptyStateIcon: string
|
|
2674
|
-
/** EmptyState heading text. */
|
|
2675
|
-
emptyStateTitle: string
|
|
2676
|
-
/** EmptyState description text. */
|
|
2677
|
-
emptyStateDescription: string
|
|
2678
|
-
/** EmptyState action slot. */
|
|
2679
|
-
emptyStateAction: string
|
|
2680
|
-
/** PageHeader root container. */
|
|
2681
|
-
pageHeader: string
|
|
2682
|
-
/** PageHeader title text. */
|
|
2683
|
-
pageHeaderTitle: string
|
|
2684
|
-
/** PageHeader description text. */
|
|
2685
|
-
pageHeaderDescription: string
|
|
2686
|
-
/** PageHeader action buttons container. */
|
|
2687
|
-
pageHeaderActions: string
|
|
2688
|
-
/** PageHeader breadcrumb trail container. */
|
|
2689
|
-
pageHeaderBreadcrumbs: string
|
|
2690
|
-
/** PageHeader breadcrumb item link/text. */
|
|
2691
|
-
pageHeaderBreadcrumbItem: string
|
|
2692
|
-
/** PageHeader breadcrumb separator character. */
|
|
2693
|
-
pageHeaderBreadcrumbSeparator: string
|
|
2694
|
-
|
|
2695
|
-
// ---- Search UI tokens (SearchBox, SearchResults, QuickSearch) ----
|
|
2696
|
-
|
|
2697
|
-
/** SearchBox field: the bordered bar holding the icon, the input and its actions; focus ring via focus-within. */
|
|
2698
|
-
searchField: string
|
|
2699
|
-
/** SearchBox leading icon slot. */
|
|
2700
|
-
searchFieldIcon: string
|
|
2701
|
-
/** SearchBox text input: borderless, fills the bar, left-aligned, visible placeholder. */
|
|
2702
|
-
searchFieldInput: string
|
|
2703
|
-
/** SearchBox trailing slot: the clear button and the shortcut hint. */
|
|
2704
|
-
searchFieldActions: string
|
|
2705
|
-
/** SearchBox icon-only clear button. */
|
|
2706
|
-
searchFieldClear: string
|
|
2707
|
-
/** SearchBox status row under the field: filter chips at the left, the count and tips at the right. */
|
|
2708
|
-
searchStatusRow: string
|
|
2709
|
-
/** SearchBox syntax tips line. */
|
|
2710
|
-
searchTips: string
|
|
2711
|
-
/** A key cap (`/`, `↵`). */
|
|
2712
|
-
kbd: string
|
|
2713
|
-
/** A removable filter chip (`category: auth ×`). */
|
|
2714
|
-
filterChip: string
|
|
2715
|
-
/** Added to a filter chip that EXCLUDES its value. */
|
|
2716
|
-
filterChipNegated: string
|
|
2717
|
-
/** The × inside a filter chip. */
|
|
2718
|
-
filterChipRemove: string
|
|
2719
|
-
/** SearchResults list container: bordered, rows divided. */
|
|
2720
|
-
resultList: string
|
|
2721
|
-
/** One result row. */
|
|
2722
|
-
resultItem: string
|
|
2723
|
-
/** Added to the keyboard- or pointer-active result row. */
|
|
2724
|
-
resultItemActive: string
|
|
2725
|
-
/** A result row's body: the link that fills the row. */
|
|
2726
|
-
resultBody: string
|
|
2727
|
-
/** A result row's title. */
|
|
2728
|
-
resultTitle: string
|
|
2729
|
-
/** Added to a result title that is code (a package name). */
|
|
2730
|
-
resultTitleMono: string
|
|
2731
|
-
/** A result row's meta line (type · category · related). */
|
|
2732
|
-
resultMeta: string
|
|
2733
|
-
/** A result row's description, clamped to two lines. */
|
|
2734
|
-
resultDescription: string
|
|
2735
|
-
/** A matched term inside a result. */
|
|
2736
|
-
resultMark: string
|
|
2737
|
-
/** A result row's trailing action slot. */
|
|
2738
|
-
resultAction: string
|
|
2739
|
-
/** A results empty state. */
|
|
2740
|
-
resultEmpty: string
|
|
2741
|
-
}
|
|
2742
|
-
```
|
|
2743
|
-
|
|
2744
|
-
#### `UIProvider`
|
|
2745
|
-
|
|
2746
|
-
Identifies the bonded UI styling library. Providers set `name`
|
|
2747
|
-
to indicate which library is active (e.g. `"tailwind"`, `"bootstrap"`).
|
|
2748
|
-
|
|
2749
|
-
```typescript
|
|
2750
|
-
interface UIProvider {
|
|
2751
|
-
/**
|
|
2752
|
-
* Identifier for the styling library (e.g. `"tailwind"`, `"ionic"`).
|
|
2753
|
-
*/
|
|
2754
|
-
name: string
|
|
2755
|
-
}
|
|
2222
|
+
// … truncated — the full declaration is in node_modules/@molecule/app-ui/dist/types.d.ts
|
|
2756
2223
|
```
|
|
2757
2224
|
|
|
2758
2225
|
### Types
|
|
2759
2226
|
|
|
2760
|
-
#### `AccentTone`
|
|
2761
|
-
|
|
2762
|
-
Tones of an accent bar: the semantic colors, the brand primary, or `custom` (the `--mol-accent` variable).
|
|
2763
|
-
|
|
2764
|
-
```typescript
|
|
2765
|
-
type AccentTone = 'default' | 'primary' | 'info' | 'success' | 'warning' | 'error' | 'custom'
|
|
2766
|
-
```
|
|
2767
|
-
|
|
2768
|
-
#### `ButtonSize`
|
|
2769
|
-
|
|
2770
|
-
Button size variants (extends Size with 'icon' for square icon-only buttons).
|
|
2771
|
-
|
|
2772
|
-
```typescript
|
|
2773
|
-
type ButtonSize = Size | 'icon'
|
|
2774
|
-
```
|
|
2775
|
-
|
|
2776
|
-
#### `ButtonVariant`
|
|
2777
|
-
|
|
2778
|
-
Button visual variant styles.
|
|
2779
|
-
|
|
2780
|
-
```typescript
|
|
2781
|
-
type ButtonVariant = 'solid' | 'outline' | 'ghost' | 'link'
|
|
2782
|
-
```
|
|
2783
|
-
|
|
2784
|
-
#### `ChangeEventHandler`
|
|
2785
|
-
|
|
2786
|
-
Framework-agnostic change event handler.
|
|
2787
|
-
|
|
2788
|
-
```typescript
|
|
2789
|
-
type ChangeEventHandler = EventHandler<Event>
|
|
2790
|
-
```
|
|
2791
|
-
|
|
2792
2227
|
#### `Children`
|
|
2793
2228
|
|
|
2794
2229
|
Framework-agnostic child content.
|
|
@@ -2798,48 +2233,30 @@ Use `unknown` to allow any framework's node type (ReactNode, VNode, etc.).
|
|
|
2798
2233
|
type Children = unknown
|
|
2799
2234
|
```
|
|
2800
2235
|
|
|
2801
|
-
#### `
|
|
2802
|
-
|
|
2803
|
-
Overrides for extending a UIClassMap.
|
|
2236
|
+
#### `EventHandler`
|
|
2804
2237
|
|
|
2805
|
-
|
|
2806
|
-
the base ClassMap and returns overrides (useful for extending resolver
|
|
2807
|
-
functions while preserving the base behavior).
|
|
2238
|
+
Framework-agnostic event handler.
|
|
2808
2239
|
|
|
2809
2240
|
```typescript
|
|
2810
|
-
type
|
|
2241
|
+
type EventHandler<E = Event> = (event: E) => void
|
|
2811
2242
|
```
|
|
2812
2243
|
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
Class value types accepted by the UIClassMap `cn()` function.
|
|
2816
|
-
Supports strings, booleans, arrays, and conditional objects.
|
|
2817
|
-
|
|
2818
|
-
```typescript
|
|
2819
|
-
type ClassMapValue =
|
|
2820
|
-
| string
|
|
2821
|
-
| number
|
|
2822
|
-
| boolean
|
|
2823
|
-
| undefined
|
|
2824
|
-
| null
|
|
2825
|
-
| ClassMapValue[]
|
|
2826
|
-
| Record<string, boolean | undefined | null>
|
|
2827
|
-
```
|
|
2244
|
+
- `event` — The DOM event object.
|
|
2828
2245
|
|
|
2829
|
-
#### `
|
|
2246
|
+
#### `MouseEventHandler`
|
|
2830
2247
|
|
|
2831
|
-
|
|
2248
|
+
Framework-agnostic mouse event handler.
|
|
2832
2249
|
|
|
2833
2250
|
```typescript
|
|
2834
|
-
type
|
|
2251
|
+
type MouseEventHandler = EventHandler<MouseEvent>
|
|
2835
2252
|
```
|
|
2836
2253
|
|
|
2837
|
-
#### `
|
|
2254
|
+
#### `KeyboardEventHandler`
|
|
2838
2255
|
|
|
2839
|
-
Framework-agnostic event handler.
|
|
2256
|
+
Framework-agnostic keyboard event handler.
|
|
2840
2257
|
|
|
2841
2258
|
```typescript
|
|
2842
|
-
type
|
|
2259
|
+
type KeyboardEventHandler = EventHandler<KeyboardEvent>
|
|
2843
2260
|
```
|
|
2844
2261
|
|
|
2845
2262
|
#### `FocusEventHandler`
|
|
@@ -2850,12 +2267,12 @@ Framework-agnostic focus event handler.
|
|
|
2850
2267
|
type FocusEventHandler = EventHandler<FocusEvent>
|
|
2851
2268
|
```
|
|
2852
2269
|
|
|
2853
|
-
#### `
|
|
2270
|
+
#### `ChangeEventHandler`
|
|
2854
2271
|
|
|
2855
|
-
|
|
2272
|
+
Framework-agnostic change event handler.
|
|
2856
2273
|
|
|
2857
2274
|
```typescript
|
|
2858
|
-
type
|
|
2275
|
+
type ChangeEventHandler = EventHandler<Event>
|
|
2859
2276
|
```
|
|
2860
2277
|
|
|
2861
2278
|
#### `FormEventHandler`
|
|
@@ -2866,62 +2283,54 @@ Framework-agnostic form event handler.
|
|
|
2866
2283
|
type FormEventHandler = EventHandler<Event>
|
|
2867
2284
|
```
|
|
2868
2285
|
|
|
2869
|
-
#### `
|
|
2286
|
+
#### `Size`
|
|
2870
2287
|
|
|
2871
|
-
|
|
2288
|
+
Standard size scale used across all molecule UI components (buttons, inputs, badges, etc.).
|
|
2872
2289
|
|
|
2873
2290
|
```typescript
|
|
2874
|
-
type
|
|
2875
|
-
'full' | 'screen' | 'auto' | '1/2' | '1/3' | '2/3' | '1/4' | '3/4' | TailwindArbitraryBracket
|
|
2291
|
+
type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl'
|
|
2876
2292
|
```
|
|
2877
2293
|
|
|
2878
|
-
#### `
|
|
2294
|
+
#### `ButtonSize`
|
|
2879
2295
|
|
|
2880
|
-
|
|
2296
|
+
Button size variants (extends Size with 'icon' for square icon-only buttons).
|
|
2881
2297
|
|
|
2882
2298
|
```typescript
|
|
2883
|
-
type
|
|
2884
|
-
| 'text'
|
|
2885
|
-
| 'email'
|
|
2886
|
-
| 'password'
|
|
2887
|
-
| 'number'
|
|
2888
|
-
| 'tel'
|
|
2889
|
-
| 'url'
|
|
2890
|
-
| 'search'
|
|
2891
|
-
| 'date'
|
|
2892
|
-
| 'time'
|
|
2893
|
-
| 'datetime-local'
|
|
2299
|
+
type ButtonSize = Size | 'icon'
|
|
2894
2300
|
```
|
|
2895
2301
|
|
|
2896
|
-
#### `
|
|
2302
|
+
#### `ColorVariant`
|
|
2897
2303
|
|
|
2898
|
-
|
|
2304
|
+
Semantic color variants used across components for status indication.
|
|
2899
2305
|
|
|
2900
2306
|
```typescript
|
|
2901
|
-
type
|
|
2307
|
+
type ColorVariant = 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info'
|
|
2902
2308
|
```
|
|
2903
2309
|
|
|
2904
|
-
#### `
|
|
2310
|
+
#### `ButtonVariant`
|
|
2905
2311
|
|
|
2906
|
-
|
|
2312
|
+
Button visual variant styles.
|
|
2907
2313
|
|
|
2908
2314
|
```typescript
|
|
2909
|
-
type
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
| '
|
|
2919
|
-
| '
|
|
2920
|
-
| '
|
|
2921
|
-
| '
|
|
2922
|
-
| '
|
|
2923
|
-
| '
|
|
2924
|
-
|
|
|
2315
|
+
type ButtonVariant = 'solid' | 'outline' | 'ghost' | 'link'
|
|
2316
|
+
```
|
|
2317
|
+
|
|
2318
|
+
#### `InputType`
|
|
2319
|
+
|
|
2320
|
+
Allowed HTML input type attribute values for the Input component.
|
|
2321
|
+
|
|
2322
|
+
```typescript
|
|
2323
|
+
type InputType =
|
|
2324
|
+
| 'text'
|
|
2325
|
+
| 'email'
|
|
2326
|
+
| 'password'
|
|
2327
|
+
| 'number'
|
|
2328
|
+
| 'tel'
|
|
2329
|
+
| 'url'
|
|
2330
|
+
| 'search'
|
|
2331
|
+
| 'date'
|
|
2332
|
+
| 'time'
|
|
2333
|
+
| 'datetime-local'
|
|
2925
2334
|
```
|
|
2926
2335
|
|
|
2927
2336
|
#### `ModalSize`
|
|
@@ -2932,45 +2341,46 @@ Modal size variants including full-screen.
|
|
|
2932
2341
|
type ModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full'
|
|
2933
2342
|
```
|
|
2934
2343
|
|
|
2935
|
-
#### `
|
|
2344
|
+
#### `TooltipPlacement`
|
|
2936
2345
|
|
|
2937
|
-
|
|
2346
|
+
Position where a tooltip renders relative to its trigger element (top, bottom, left, right, and corner variants).
|
|
2938
2347
|
|
|
2939
2348
|
```typescript
|
|
2940
|
-
type
|
|
2349
|
+
type TooltipPlacement =
|
|
2350
|
+
'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end'
|
|
2941
2351
|
```
|
|
2942
2352
|
|
|
2943
|
-
#### `
|
|
2353
|
+
#### `ClassMapValue`
|
|
2944
2354
|
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
bond maps them to its own breakpoints).
|
|
2355
|
+
Class value types accepted by the UIClassMap `cn()` function.
|
|
2356
|
+
Supports strings, booleans, arrays, and conditional objects.
|
|
2948
2357
|
|
|
2949
2358
|
```typescript
|
|
2950
|
-
type
|
|
2359
|
+
type ClassMapValue =
|
|
2360
|
+
| string
|
|
2361
|
+
| number
|
|
2362
|
+
| boolean
|
|
2363
|
+
| undefined
|
|
2364
|
+
| null
|
|
2365
|
+
| ClassMapValue[]
|
|
2366
|
+
| Record<string, boolean | undefined | null>
|
|
2951
2367
|
```
|
|
2952
2368
|
|
|
2953
|
-
#### `
|
|
2369
|
+
#### `SpacingScale`
|
|
2954
2370
|
|
|
2955
|
-
|
|
2371
|
+
Abstract spacing scale. Each styling library maps these to its own units.
|
|
2372
|
+
For Tailwind: 0 → 0, 1 → 0.25rem, 4 → 1rem, 8 → 2rem, etc.
|
|
2956
2373
|
|
|
2957
2374
|
```typescript
|
|
2958
|
-
type
|
|
2375
|
+
type SpacingScale = 0 | 0.5 | 1 | 1.5 | 2 | 2.5 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16 | 20 | 24
|
|
2959
2376
|
```
|
|
2960
2377
|
|
|
2961
|
-
#### `
|
|
2962
|
-
|
|
2963
|
-
Compound spacing specification for conflict-free overrides.
|
|
2964
|
-
|
|
2965
|
-
Pass to `sp()` to get a style object (for use on the `style` prop).
|
|
2966
|
-
More specific properties override less specific ones:
|
|
2967
|
-
`pr` overrides `px` overrides `p` (same cascade as CSS shorthand).
|
|
2378
|
+
#### `TailwindArbitraryBracket`
|
|
2968
2379
|
|
|
2969
|
-
|
|
2970
|
-
inline style API without requiring a React-specific import.
|
|
2380
|
+
Tailwind arbitrary value in bracket notation (e.g. `[440px]`, `[65%]`).
|
|
2971
2381
|
|
|
2972
2382
|
```typescript
|
|
2973
|
-
type
|
|
2383
|
+
type TailwindArbitraryBracket = `[${string}]`
|
|
2974
2384
|
```
|
|
2975
2385
|
|
|
2976
2386
|
#### `SpacingProperty`
|
|
@@ -2982,21 +2392,29 @@ type SpacingProperty =
|
|
|
2982
2392
|
'p' | 'px' | 'py' | 'pt' | 'pb' | 'pl' | 'pr' | 'm' | 'mx' | 'my' | 'mt' | 'mb' | 'ml' | 'mr'
|
|
2983
2393
|
```
|
|
2984
2394
|
|
|
2985
|
-
#### `
|
|
2395
|
+
#### `SpacingOverrides`
|
|
2986
2396
|
|
|
2987
|
-
|
|
2988
|
-
|
|
2397
|
+
Compound spacing specification for conflict-free overrides.
|
|
2398
|
+
|
|
2399
|
+
Pass to `sp()` to get a style object (for use on the `style` prop).
|
|
2400
|
+
More specific properties override less specific ones:
|
|
2401
|
+
`pr` overrides `px` overrides `p` (same cascade as CSS shorthand).
|
|
2402
|
+
|
|
2403
|
+
Returns `Record<string, string>` so it is compatible with any framework's
|
|
2404
|
+
inline style API without requiring a React-specific import.
|
|
2989
2405
|
|
|
2990
2406
|
```typescript
|
|
2991
|
-
type
|
|
2407
|
+
type SpacingOverrides = Partial<Record<SpacingProperty, SpacingScale>>
|
|
2992
2408
|
```
|
|
2993
2409
|
|
|
2994
|
-
#### `
|
|
2410
|
+
#### `ResponsiveBreakpoint`
|
|
2995
2411
|
|
|
2996
|
-
|
|
2412
|
+
Viewport breakpoints for responsive visibility (`hiddenBelow`/`hiddenFrom`):
|
|
2413
|
+
`sm` ≈ 640px, `md` ≈ 768px, `lg` ≈ 1024px, `xl` ≈ 1280px (each ClassMap
|
|
2414
|
+
bond maps them to its own breakpoints).
|
|
2997
2415
|
|
|
2998
2416
|
```typescript
|
|
2999
|
-
type
|
|
2417
|
+
type ResponsiveBreakpoint = 'sm' | 'md' | 'lg' | 'xl'
|
|
3000
2418
|
```
|
|
3001
2419
|
|
|
3002
2420
|
#### `TextScale`
|
|
@@ -3007,21 +2425,35 @@ Text size scale from extra-small to 4xl.
|
|
|
3007
2425
|
type TextScale = 'xs' | 'sm' | 'base' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl'
|
|
3008
2426
|
```
|
|
3009
2427
|
|
|
3010
|
-
#### `
|
|
2428
|
+
#### `FontWeightScale`
|
|
3011
2429
|
|
|
3012
|
-
|
|
2430
|
+
Font weight scale.
|
|
3013
2431
|
|
|
3014
2432
|
```typescript
|
|
3015
|
-
type
|
|
2433
|
+
type FontWeightScale = 'normal' | 'medium' | 'semibold' | 'bold' | 'extrabold'
|
|
3016
2434
|
```
|
|
3017
2435
|
|
|
3018
|
-
#### `
|
|
2436
|
+
#### `MaxWidthScale`
|
|
3019
2437
|
|
|
3020
|
-
|
|
2438
|
+
Max-width scale for constraining content.
|
|
3021
2439
|
|
|
3022
2440
|
```typescript
|
|
3023
|
-
type
|
|
3024
|
-
|
|
2441
|
+
type MaxWidthScale =
|
|
2442
|
+
| 'none'
|
|
2443
|
+
| 'xs'
|
|
2444
|
+
| 'sm'
|
|
2445
|
+
| 'md'
|
|
2446
|
+
| 'lg'
|
|
2447
|
+
| 'xl'
|
|
2448
|
+
| '2xl'
|
|
2449
|
+
| '3xl'
|
|
2450
|
+
| '4xl'
|
|
2451
|
+
| '5xl'
|
|
2452
|
+
| '6xl'
|
|
2453
|
+
| '7xl'
|
|
2454
|
+
| 'full'
|
|
2455
|
+
| 'screen-2xl'
|
|
2456
|
+
| TailwindArbitraryBracket
|
|
3025
2457
|
```
|
|
3026
2458
|
|
|
3027
2459
|
#### `WidthValue`
|
|
@@ -3042,78 +2474,44 @@ type WidthValue =
|
|
|
3042
2474
|
| TailwindArbitraryBracket
|
|
3043
2475
|
```
|
|
3044
2476
|
|
|
3045
|
-
|
|
3046
|
-
|
|
3047
|
-
#### `extendClassMap(base, overrides)`
|
|
3048
|
-
|
|
3049
|
-
Creates a new UIClassMap by extending a base ClassMap with overrides.
|
|
3050
|
-
|
|
3051
|
-
Overrides can be a plain object (for replacing specific tokens/resolvers)
|
|
3052
|
-
or a function that receives the base map (for extending resolvers while
|
|
3053
|
-
preserving base behavior).
|
|
3054
|
-
|
|
3055
|
-
```typescript
|
|
3056
|
-
function extendClassMap(base: UIClassMap, overrides: ClassMapOverrides): UIClassMap
|
|
3057
|
-
```
|
|
3058
|
-
|
|
3059
|
-
- `base` — The base UIClassMap to extend
|
|
3060
|
-
- `overrides` — Token overrides (object or function returning object)
|
|
3061
|
-
|
|
3062
|
-
**Returns:** A new UIClassMap with overrides applied
|
|
3063
|
-
|
|
3064
|
-
#### `getClassMap()`
|
|
3065
|
-
|
|
3066
|
-
Retrieves the bonded UIClassMap, throwing if none is configured.
|
|
3067
|
-
Use this to resolve styling-agnostic class names in components.
|
|
3068
|
-
|
|
3069
|
-
```typescript
|
|
3070
|
-
function getClassMap(): UIClassMap
|
|
3071
|
-
```
|
|
3072
|
-
|
|
3073
|
-
**Returns:** The bonded UIClassMap implementation.
|
|
3074
|
-
|
|
3075
|
-
#### `getProvider()`
|
|
2477
|
+
#### `HeightValue`
|
|
3076
2478
|
|
|
3077
|
-
|
|
2479
|
+
Height value — fractional, keyword, or numeric (mapped to spacing scale).
|
|
3078
2480
|
|
|
3079
2481
|
```typescript
|
|
3080
|
-
|
|
2482
|
+
type HeightValue =
|
|
2483
|
+
'full' | 'screen' | 'auto' | '1/2' | '1/3' | '2/3' | '1/4' | '3/4' | TailwindArbitraryBracket
|
|
3081
2484
|
```
|
|
3082
2485
|
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
#### `hasClassMap()`
|
|
2486
|
+
#### `ToastPosition`
|
|
3086
2487
|
|
|
3087
|
-
|
|
2488
|
+
Toast position values for screen placement.
|
|
3088
2489
|
|
|
3089
2490
|
```typescript
|
|
3090
|
-
|
|
2491
|
+
type ToastPosition = 'top' | 'top-right' | 'top-left' | 'bottom' | 'bottom-right' | 'bottom-left'
|
|
3091
2492
|
```
|
|
3092
2493
|
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
#### `hasProvider()`
|
|
2494
|
+
#### `AccentTone`
|
|
3096
2495
|
|
|
3097
|
-
|
|
2496
|
+
Tones of an accent bar: the semantic colors, the brand primary, or `custom` (the `--mol-accent` variable).
|
|
3098
2497
|
|
|
3099
2498
|
```typescript
|
|
3100
|
-
|
|
2499
|
+
type AccentTone = 'default' | 'primary' | 'info' | 'success' | 'warning' | 'error' | 'custom'
|
|
3101
2500
|
```
|
|
3102
2501
|
|
|
3103
|
-
|
|
2502
|
+
#### `ClassMapOverrides`
|
|
3104
2503
|
|
|
3105
|
-
|
|
2504
|
+
Overrides for extending a UIClassMap.
|
|
3106
2505
|
|
|
3107
|
-
|
|
3108
|
-
|
|
2506
|
+
Can be a partial map of token replacements, or a function that receives
|
|
2507
|
+
the base ClassMap and returns overrides (useful for extending resolver
|
|
2508
|
+
functions while preserving the base behavior).
|
|
3109
2509
|
|
|
3110
2510
|
```typescript
|
|
3111
|
-
|
|
2511
|
+
type ClassMapOverrides = Partial<UIClassMap> | ((base: UIClassMap) => Partial<UIClassMap>)
|
|
3112
2512
|
```
|
|
3113
2513
|
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
**Returns:** A `<svg>…</svg>` markup string.
|
|
2514
|
+
### Functions
|
|
3117
2515
|
|
|
3118
2516
|
#### `molId(component, context, qualifier)`
|
|
3119
2517
|
|
|
@@ -3166,6 +2564,36 @@ function molSelectorPrefix(prefix: string): string
|
|
|
3166
2564
|
|
|
3167
2565
|
**Returns:** A CSS attribute prefix selector string.
|
|
3168
2566
|
|
|
2567
|
+
#### `setProvider(provider)`
|
|
2568
|
+
|
|
2569
|
+
Registers a UI provider as the active singleton.
|
|
2570
|
+
|
|
2571
|
+
```typescript
|
|
2572
|
+
function setProvider(provider: UIProvider): void
|
|
2573
|
+
```
|
|
2574
|
+
|
|
2575
|
+
- `provider` — The UI provider implementation to bond.
|
|
2576
|
+
|
|
2577
|
+
#### `getProvider()`
|
|
2578
|
+
|
|
2579
|
+
Retrieves the bonded UI provider, or `undefined` if none is configured.
|
|
2580
|
+
|
|
2581
|
+
```typescript
|
|
2582
|
+
function getProvider(): UIProvider | undefined
|
|
2583
|
+
```
|
|
2584
|
+
|
|
2585
|
+
**Returns:** The bonded UI provider, or `undefined`.
|
|
2586
|
+
|
|
2587
|
+
#### `hasProvider()`
|
|
2588
|
+
|
|
2589
|
+
Checks whether a UI provider is currently bonded.
|
|
2590
|
+
|
|
2591
|
+
```typescript
|
|
2592
|
+
function hasProvider(): boolean
|
|
2593
|
+
```
|
|
2594
|
+
|
|
2595
|
+
**Returns:** `true` if a UI provider is bonded.
|
|
2596
|
+
|
|
3169
2597
|
#### `setClassMap(classMap)`
|
|
3170
2598
|
|
|
3171
2599
|
Registers a UIClassMap as the active styling resolver. Called at
|
|
@@ -3177,15 +2605,56 @@ function setClassMap(classMap: UIClassMap): void
|
|
|
3177
2605
|
|
|
3178
2606
|
- `classMap` — The UIClassMap implementation to bond.
|
|
3179
2607
|
|
|
3180
|
-
#### `
|
|
2608
|
+
#### `getClassMap()`
|
|
3181
2609
|
|
|
3182
|
-
|
|
2610
|
+
Retrieves the bonded UIClassMap, throwing if none is configured.
|
|
2611
|
+
Use this to resolve styling-agnostic class names in components.
|
|
3183
2612
|
|
|
3184
2613
|
```typescript
|
|
3185
|
-
function
|
|
2614
|
+
function getClassMap(): UIClassMap
|
|
3186
2615
|
```
|
|
3187
2616
|
|
|
3188
|
-
|
|
2617
|
+
**Returns:** The bonded UIClassMap implementation.
|
|
2618
|
+
|
|
2619
|
+
#### `hasClassMap()`
|
|
2620
|
+
|
|
2621
|
+
Checks whether a UIClassMap is currently bonded.
|
|
2622
|
+
|
|
2623
|
+
```typescript
|
|
2624
|
+
function hasClassMap(): boolean
|
|
2625
|
+
```
|
|
2626
|
+
|
|
2627
|
+
**Returns:** `true` if a UIClassMap is bonded.
|
|
2628
|
+
|
|
2629
|
+
#### `moleculeSpinnerMarkSvg(options)`
|
|
2630
|
+
|
|
2631
|
+
The molecule spinner mark as a complete SVG element string (SMIL-animated,
|
|
2632
|
+
framework-agnostic). See the module docblock for usage and gotchas.
|
|
2633
|
+
|
|
2634
|
+
```typescript
|
|
2635
|
+
function moleculeSpinnerMarkSvg(options?: MoleculeSpinnerMarkOptions): string
|
|
2636
|
+
```
|
|
2637
|
+
|
|
2638
|
+
- `options` — Paint, timings, size, gradient id and a11y shape.
|
|
2639
|
+
|
|
2640
|
+
**Returns:** A `<svg>…</svg>` markup string.
|
|
2641
|
+
|
|
2642
|
+
#### `extendClassMap(base, overrides)`
|
|
2643
|
+
|
|
2644
|
+
Creates a new UIClassMap by extending a base ClassMap with overrides.
|
|
2645
|
+
|
|
2646
|
+
Overrides can be a plain object (for replacing specific tokens/resolvers)
|
|
2647
|
+
or a function that receives the base map (for extending resolvers while
|
|
2648
|
+
preserving base behavior).
|
|
2649
|
+
|
|
2650
|
+
```typescript
|
|
2651
|
+
function extendClassMap(base: UIClassMap, overrides: ClassMapOverrides): UIClassMap
|
|
2652
|
+
```
|
|
2653
|
+
|
|
2654
|
+
- `base` — The base UIClassMap to extend
|
|
2655
|
+
- `overrides` — Token overrides (object or function returning object)
|
|
2656
|
+
|
|
2657
|
+
**Returns:** A new UIClassMap with overrides applied
|
|
3189
2658
|
|
|
3190
2659
|
### Constants
|
|
3191
2660
|
|
|
@@ -3233,6 +2702,11 @@ the ClassMap bond (`@molecule/app-ui-tailwind`), so swapping the styling library
|
|
|
3233
2702
|
only the bond — a literal `"flex p-4"` in a component defeats that and is the #1 styling
|
|
3234
2703
|
mistake.
|
|
3235
2704
|
|
|
2705
|
+
A stylesheet the request supplies (a theme CSS, a CSS framework, a design export with its
|
|
2706
|
+
own class names) is used by those class names written directly in `className` — ClassMap
|
|
2707
|
+
governs molecule's own utilities, not a supplied stylesheet's contract; never wrap,
|
|
2708
|
+
re-generate or rename its classes.
|
|
2709
|
+
|
|
3236
2710
|
- **`Button` defaults to `type="button"`.** A form's primary action needs
|
|
3237
2711
|
`type="submit"`, or Enter does nothing and tests that select `button[type="submit"]`
|
|
3238
2712
|
miss it (X1 RealWorld runs failed 15 browser tests on one Settings button).
|