@youcan/celeste 0.10.2 → 0.10.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3492 @@
1
+ # Celeste Component Registry
2
+
3
+ > Generated from source for `@youcan/celeste@0.10.4`. Do not edit.
4
+ > Regenerate with `pnpm --filter @youcan/celeste codegen:registry`.
5
+
6
+ Every component below is imported from `@youcan/celeste`:
7
+
8
+ ```ts
9
+ import { Badge, Button } from '@youcan/celeste';
10
+ ```
11
+
12
+ **146 components** in 39 groups.
13
+
14
+ This file describes what each component _accepts_. For which component to
15
+ reach for when several look similar, see the `celeste-ui` skill.
16
+
17
+ ---
18
+
19
+ ## alert
20
+
21
+ ### Alert
22
+
23
+ **Props**
24
+
25
+ - `class`: `ClassValue`
26
+ - `dismissable`: `boolean` — default `false`
27
+ - `size`: `xs` | `sm` | `lg` — default `"xs"`
28
+ - `state`: `information` | `success` | `warning` | `error` | `feature` — default `"information"`
29
+ - `variant`: `fill` | `light` | `lighter` | `stroke` — default `"fill"`
30
+
31
+ **Events**
32
+
33
+ - `dismiss`: `any[]`
34
+
35
+ **Slots**
36
+
37
+ - `default`
38
+ - `title`
39
+ - `description`
40
+ - `primary`
41
+ - `secondary`
42
+
43
+ **Source:** `src/components/alert/alert.vue`
44
+
45
+ **Example:** `src/components/alert/stories/alert.stories.ts`
46
+
47
+ ---
48
+
49
+ ## badge
50
+
51
+ ### Badge
52
+
53
+ **Props**
54
+
55
+ - `class`: `ClassValue`
56
+ - `disabled`: `boolean`
57
+ - `icon`: `string`
58
+ - `label`: `string`
59
+ - `size`: `sm` | `md` — default `"md"`
60
+ - `state`: `information` | `success` | `warning` | `error` | `feature` | `faded` | `away` | `verified` | `highlighted` | `stable`
61
+ - `type`: `basic` | `dot` | `leading-icon` | `trailing-icon` — default `"basic"`
62
+ - `variant`: `fill` | `light` | `lighter` | `stroke` — default `"fill"`
63
+
64
+ **Composes with:** `StatusBadge`
65
+
66
+ **Source:** `src/components/badge/badge.vue`
67
+
68
+ **Example:** `src/components/badge/stories/badge.stories.ts`
69
+
70
+ ### StatusBadge
71
+
72
+ **Props**
73
+
74
+ - `label`: `string` **(required)**
75
+ - `class`: `ClassValue`
76
+ - `dotted`: `boolean`
77
+ - `state`: `success` | `warning` | `error` | `faded` — default `"faded"`
78
+ - `variant`: `light` | `stroke` — default `"light"`
79
+
80
+ **Composes with:** `Badge`
81
+
82
+ **Source:** `src/components/badge/status-badge.vue`
83
+
84
+ **Example:** `src/components/badge/stories/status-badge.stories.ts`
85
+
86
+ ---
87
+
88
+ ## button
89
+
90
+ ### Button
91
+
92
+ **Props**
93
+
94
+ - `as`: `AsTag | Component` — default `"button"` — Element or component to render as.
95
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
96
+ - `class`: `ClassValue`
97
+ - `intent`: `error` | `primary` | `neutral` — default `"primary"`
98
+ - `size`: `xs` | `sm` | `md` | `xxs` — default `"md"`
99
+ - `variant`: `fill` | `lighter` | `stroke` | `ghost` — default `"fill"`
100
+
101
+ **Slots**
102
+
103
+ - `default`
104
+
105
+ **Composes with:** `CompactButton`, `FancyButton`, `LinkButton`, `SocialButton`
106
+
107
+ **Source:** `src/components/button/button.vue`
108
+
109
+ **Example:** `src/components/button/stories/button.stories.ts`
110
+
111
+ ### CompactButton
112
+
113
+ **Props**
114
+
115
+ - `icon`: `string` **(required)**
116
+ - `as`: `AsTag | Component` — default `"button"` — Element or component to render as.
117
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
118
+ - `class`: `ClassValue`
119
+ - `rounded`: `boolean`
120
+ - `size`: `lg` | `md` — default `"lg"`
121
+ - `variant`: `stroke` | `ghost` | `white` — default `"stroke"`
122
+
123
+ **Composes with:** `Button`, `FancyButton`, `LinkButton`, `SocialButton`
124
+
125
+ **Source:** `src/components/button/compact-button.vue`
126
+
127
+ **Example:** `src/components/button/stories/compact-button.stories.ts`
128
+
129
+ ### FancyButton
130
+
131
+ **Props**
132
+
133
+ - `as`: `AsTag | Component` — default `"button"` — Element or component to render as.
134
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
135
+ - `class`: `ClassValue`
136
+ - `intent`: `error` | `basic` | `primary` | `neutral` — default `"primary"`
137
+ - `size`: `xs` | `sm` | `md` — default `"md"`
138
+
139
+ **Slots**
140
+
141
+ - `default`
142
+
143
+ **Composes with:** `Button`, `CompactButton`, `LinkButton`, `SocialButton`
144
+
145
+ **Source:** `src/components/button/fancy-button.vue`
146
+
147
+ **Example:** `src/components/button/stories/fancy-button.stories.ts`
148
+
149
+ ### LinkButton
150
+
151
+ **Props**
152
+
153
+ - `as`: `AsTag | Component` — default `"a"` — Element or component to render as.
154
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
155
+ - `class`: `ClassValue`
156
+ - `disabled`: `boolean`
157
+ - `intent`: `error` | `primary` | `black` | `gray` — default `"primary"`
158
+ - `size`: `sm` | `md` — default `"md"`
159
+ - `underline`: `boolean`
160
+
161
+ **Slots**
162
+
163
+ - `default`
164
+
165
+ **Composes with:** `Button`, `CompactButton`, `FancyButton`, `SocialButton`
166
+
167
+ **Source:** `src/components/button/link-button.vue`
168
+
169
+ **Example:** `src/components/button/stories/link-button.stories.ts`
170
+
171
+ ### SocialButton
172
+
173
+ **Props**
174
+
175
+ - `brand`: `apple` | `twitter` | `google` | `facebook` | `linkedin` | `github` **(required)**
176
+ - `class`: `string`
177
+ - `label`: `string`
178
+ - `variant`: `fill` | `stroke` — default `"stroke"`
179
+
180
+ **Composes with:** `Button`, `CompactButton`, `FancyButton`, `LinkButton`
181
+
182
+ **Source:** `src/components/button/social-button.vue`
183
+
184
+ **Example:** `src/components/button/stories/social-button.stories.ts`
185
+
186
+ ---
187
+
188
+ ## calendar
189
+
190
+ ### Calendar
191
+
192
+ **Props**
193
+
194
+ - `as`: `AsTag | Component` — Element or component to render as.
195
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
196
+ - `calendarLabel`: `string` — The accessible label for the calendar
197
+ - `class`: `ClassValue`
198
+ - `defaultPlaceholder`: `DateValue` — The default placeholder date
199
+ - `defaultValue`: `DateValue` — The default value for the calendar
200
+ - `dir`: `Direction` — The reading direction of the calendar when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.
201
+ - `disabled`: `boolean` — Whether the calendar is disabled
202
+ - `disableDaysOutsideCurrentView`: `boolean` — Whether or not to disable days outside the current view.
203
+ - `fixedWeeks`: `boolean` — default `true` — Whether or not to always display 6 weeks in the calendar
204
+ - `initialFocus`: `boolean` — If true, the calendar will focus the selected day, today, or the first day of the month depending on what is visible when the calendar is mounted
205
+ - `isDateDisabled`: `Matcher` — A function that returns whether or not a date is disabled
206
+ - `isDateUnavailable`: `Matcher` — A function that returns whether or not a date is unavailable
207
+ - `locale`: `string` — The locale to use for formatting dates
208
+ - `markedDates`: `DateValue[]`
209
+ - `maxValue`: `DateValue` — The maximum date that can be selected
210
+ - `minValue`: `DateValue` — The minimum date that can be selected
211
+ - `modelValue`: `DateValue | DateValue[] | null` — The controlled selected date value of the calendar. Can be bound as `v-model`.
212
+ - `multiple`: `boolean` — Whether multiple dates can be selected
213
+ - `nextPage`: `((placeholder: DateValue) => DateValue)` — A function that returns the next page of the calendar. It receives the current placeholder as an argument inside the component.
214
+ - `numberOfMonths`: `number` — The number of months to display at once
215
+ - `pagedNavigation`: `boolean` — This property causes the previous and next buttons to navigate by the number of months displayed at once, rather than one month
216
+ - `placeholder`: `DateValue` — The placeholder date, which is used to determine what month to display when no date is selected
217
+ - `preventDeselect`: `boolean` — Whether or not to prevent the user from deselecting a date without selecting another date first
218
+ - `prevPage`: `((placeholder: DateValue) => DateValue)` — A function that returns the previous page of the calendar. It receives the current placeholder as an argument inside the component.
219
+ - `readonly`: `boolean` — Whether the calendar is readonly
220
+ - `weekdayFormat`: `WeekDayFormat` — default `"short"` — The format to use for the weekday strings provided via the weekdays slot prop
221
+ - `weekStartsOn`: `WeekStartsOn` — default `1` — The day of the week to start the calendar on
222
+
223
+ **Events**
224
+
225
+ - `update:modelValue`: `[date: DateValue | undefined]`
226
+ - `update:placeholder`: `[date: DateValue]`
227
+
228
+ **Source:** `src/components/calendar/calendar.vue`
229
+
230
+ **Example:** `src/components/calendar/stories/calendar.stories.ts`
231
+
232
+ ---
233
+
234
+ ## chart
235
+
236
+ ### BarChart
237
+
238
+ **Props**
239
+
240
+ - `category`: `string` **(required)**
241
+ - `data`: `BarDatum[]` **(required)**
242
+ - `series`: `BarSeries[]` **(required)**
243
+ - `ariaLabel`: `string`
244
+ - `class`: `unknown`
245
+ - `dense`: `boolean`
246
+ - `description`: `string`
247
+ - `format`: `ChartFormat` — default `formatNumber`
248
+ - `layout`: `stacked` | `grouped` — default `"stacked"`
249
+ - `legend`: `inline` | `chip` | `table` | `none`
250
+ - `radius`: `number` — default `5`
251
+ - `size`: `default` | `compact`
252
+ - `state`: `error` | `ready` | `loading` | `empty`
253
+ - `tableVisible`: `boolean`
254
+ - `tickFormat`: `ChartFormat` — default `formatCompact`
255
+ - `ticks`: `number` — default `4`
256
+ - `title`: `string`
257
+ - `total`: `boolean` — default `true`
258
+ - `totalLabel`: `string` — default `"Total"`
259
+
260
+ **Composes with:** `ChartCard`, `ChartLegend`, `ChartPlot`
261
+
262
+ **Source:** `src/components/chart/bar-chart.vue`
263
+
264
+ **Example:** `src/components/chart/stories/bar-chart.stories.ts`
265
+
266
+ ### ChartCard
267
+
268
+ **Props**
269
+
270
+ - `title`: `string` **(required)**
271
+ - `caption`: `string`
272
+ - `class`: `ClassValue`
273
+ - `delta`: `{ value: string; direction: "up" | "down"; }`
274
+ - `value`: `string`
275
+
276
+ **Slots**
277
+
278
+ - `toolbar`
279
+ - `default`
280
+
281
+ **Composes with:** `BarChart`, `ChartLegend`, `ChartPlot`
282
+
283
+ **Source:** `src/components/chart/chart-card.vue`
284
+
285
+ **Example:** no story of its own — see `src/components/chart/stories/bar-chart.stories.ts` for the group.
286
+
287
+ ### ChartLegend
288
+
289
+ **Props**
290
+
291
+ - `items`: `ChartLegendItem[]` **(required)**
292
+ - `class`: `ClassValue`
293
+ - `modelValue`: `string[]` — default `[]`
294
+ - `toggle`: `boolean` — default `true`
295
+ - `variant`: `inline` | `chip` | `table` — default `"inline"`
296
+
297
+ **Events**
298
+
299
+ - `update:modelValue`: `[value: string[]]`
300
+
301
+ **Composes with:** `BarChart`, `ChartCard`, `ChartPlot`
302
+
303
+ **Source:** `src/components/chart/chart-legend.vue`
304
+
305
+ **Example:** no story of its own — see `src/components/chart/stories/bar-chart.stories.ts` for the group.
306
+
307
+ ### ChartPlot
308
+
309
+ **Props**
310
+
311
+ - `ariaLabel`: `string` **(required)**
312
+ - `class`: `ClassValue`
313
+ - `description`: `string`
314
+ - `size`: `default` | `compact` | `spark` — default `"default"`
315
+ - `state`: `error` | `ready` | `loading` | `empty` — default `"ready"`
316
+ - `table`: `ChartTable`
317
+ - `tableVisible`: `boolean`
318
+ - `title`: `string`
319
+
320
+ **Slots**
321
+
322
+ - `default`
323
+ - `action`
324
+ - `footer`
325
+
326
+ **Composes with:** `BarChart`, `ChartCard`, `ChartLegend`
327
+
328
+ **Source:** `src/components/chart/chart-plot.vue`
329
+
330
+ **Example:** no story of its own — see `src/components/chart/stories/bar-chart.stories.ts` for the group.
331
+
332
+ ---
333
+
334
+ ## checkbox
335
+
336
+ ### Checkbox
337
+
338
+ **Props**
339
+
340
+ - `as`: `AsTag | Component` — Element or component to render as.
341
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
342
+ - `class`: `ClassValue`
343
+ - `defaultValue`: `boolean | "indeterminate"` — The value of the checkbox when it is initially rendered. Use when you do not need to control its value.
344
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with the checkbox
345
+ - `falseValue`: `boolean` — The value used when the checkbox is unchecked. Defaults to `false`.
346
+ - `id`: `string` — Id of the element
347
+ - `modelValue`: `boolean | "indeterminate" | null` — The controlled value of the checkbox. Can be binded with v-model.
348
+ - `name`: `string` — The name of the field. Submitted with its owning form as part of a name/value pair.
349
+ - `required`: `boolean` — When `true`, indicates that the user must set the value before the owning form can be submitted.
350
+ - `trueValue`: `boolean` — The value used when the checkbox is checked. Defaults to `true`.
351
+ - `value`: `AcceptableValue` — The value given as data when submitted with a `name`.
352
+
353
+ **Events**
354
+
355
+ - `update:modelValue`: `[value: boolean | "indeterminate"]`
356
+
357
+ **Composes with:** `CheckboxCard`, `CheckboxLabel`
358
+
359
+ **Source:** `src/components/checkbox/checkbox.vue`
360
+
361
+ **Example:** `src/components/checkbox/stories/checkbox.stories.ts`
362
+
363
+ ### CheckboxCard
364
+
365
+ **Props**
366
+
367
+ - `as`: `AsTag | Component` — Element or component to render as.
368
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
369
+ - `class`: `ClassValue`
370
+ - `disabled`: `boolean`
371
+ - `for`: `string` — The id of the element the label is associated with.
372
+ - `required`: `boolean`
373
+
374
+ **Slots**
375
+
376
+ - `image` — scope `{ class: string; }`
377
+ - `icon`
378
+ - `label`
379
+ - `sublabel`
380
+ - `badge` — scope `{ disabled: boolean; }`
381
+ - `description`
382
+ - `default`
383
+
384
+ **Composes with:** `Checkbox`, `CheckboxLabel`
385
+
386
+ **Source:** `src/components/checkbox/checkbox-card.vue`
387
+
388
+ **Example:** `src/components/checkbox/stories/checkbox-card.stories.ts`
389
+
390
+ ### CheckboxLabel
391
+
392
+ **Props**
393
+
394
+ - `as`: `AsTag | Component` — Element or component to render as.
395
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
396
+ - `class`: `ClassValue`
397
+ - `disabled`: `boolean`
398
+ - `for`: `string` — The id of the element the label is associated with.
399
+ - `required`: `boolean`
400
+
401
+ **Slots**
402
+
403
+ - `default`
404
+ - `label`
405
+ - `sublabel`
406
+ - `badge`
407
+ - `description`
408
+ - `linkButton`
409
+
410
+ **Composes with:** `Checkbox`, `CheckboxCard`
411
+
412
+ **Source:** `src/components/checkbox/checkbox-label.vue`
413
+
414
+ **Example:** no story of its own — see `src/components/checkbox/stories/checkbox.stories.ts` for the group.
415
+
416
+ ---
417
+
418
+ ## collapsible
419
+
420
+ ### Collapsible
421
+
422
+ **Props**
423
+
424
+ - `as`: `AsTag | Component` — Element or component to render as.
425
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
426
+ - `class`: `unknown`
427
+ - `defaultOpen`: `boolean` — The open state of the collapsible when it is initially rendered. <br> Use when you do not need to control its open state.
428
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with the collapsible.
429
+ - `open`: `boolean` — The controlled open state of the collapsible. Can be binded with `v-model`.
430
+ - `unmountOnHide`: `boolean` — When `true`, the element will be unmounted on closed state.
431
+
432
+ **Events**
433
+
434
+ - `update:open`: `[value: boolean]`
435
+
436
+ **Slots**
437
+
438
+ - `default` — scope `{ open: boolean; }`
439
+
440
+ **Composes with:** `CollapsibleContent`, `CollapsibleTrigger`
441
+
442
+ **Source:** `src/components/collapsible/collapsible.vue`
443
+
444
+ **Example:** `src/components/collapsible/stories/collapsible.stories.ts`
445
+
446
+ ### CollapsibleContent
447
+
448
+ **Props**
449
+
450
+ - `as`: `AsTag | Component` — Element or component to render as.
451
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
452
+ - `class`: `ClassValue`
453
+ - `forceMount`: `boolean` — Used to force mounting when more control is needed. Useful when controlling animation with Vue animation libraries.
454
+
455
+ **Slots**
456
+
457
+ - `default`
458
+
459
+ **Composes with:** `Collapsible`, `CollapsibleTrigger`
460
+
461
+ **Source:** `src/components/collapsible/collapsible-content.vue`
462
+
463
+ **Example:** no story of its own — see `src/components/collapsible/stories/collapsible.stories.ts` for the group.
464
+
465
+ ### CollapsibleTrigger
466
+
467
+ **Props**
468
+
469
+ - `as`: `AsTag | Component` — Element or component to render as.
470
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
471
+ - `class`: `unknown`
472
+
473
+ **Slots**
474
+
475
+ - `default`
476
+
477
+ **Composes with:** `Collapsible`, `CollapsibleContent`
478
+
479
+ **Source:** `src/components/collapsible/collapsible-trigger.vue`
480
+
481
+ **Example:** no story of its own — see `src/components/collapsible/stories/collapsible.stories.ts` for the group.
482
+
483
+ ---
484
+
485
+ ## color-picker
486
+
487
+ ### AlphaSlider
488
+
489
+ **Props**
490
+
491
+ - `modelValue`: `tinycolor.Instance` **(required)**
492
+ - `class`: `unknown`
493
+
494
+ **Events**
495
+
496
+ - `update:modelValue`: `[value: string]`
497
+
498
+ **Composes with:** `ColorArea`, `ColorPicker`, `ColorSwatch`, `HueSlider`
499
+
500
+ **Source:** `src/components/color-picker/alpha-slider.vue`
501
+
502
+ **Example:** no story of its own — see `src/components/color-picker/stories/color-picker.stories.ts` for the group.
503
+
504
+ ### ColorArea
505
+
506
+ **Props**
507
+
508
+ - `hue`: `number` **(required)**
509
+ - `modelValue`: `tinycolor.Instance` **(required)**
510
+ - `class`: `unknown`
511
+
512
+ **Composes with:** `AlphaSlider`, `ColorPicker`, `ColorSwatch`, `HueSlider`
513
+
514
+ **Source:** `src/components/color-picker/color-area.vue`
515
+
516
+ **Example:** no story of its own — see `src/components/color-picker/stories/color-picker.stories.ts` for the group.
517
+
518
+ ### ColorPicker
519
+
520
+ **Props**
521
+
522
+ - `class`: `ClassValue`
523
+ - `colorSwatchLabel`: `string` — default `"Recommended Colors"`
524
+ - `defaultFormat`: `ColorFormat`
525
+ - `formats`: `ColorFormat[]` — default `["hex", "rgb", "hsl", "hsb"]`
526
+ - `label`: `string` — default `"Pick Color"`
527
+ - `modelValue`: `tinycolor.ColorInput` — default `"hsl(240, 100%, 50%)"`
528
+
529
+ **Events**
530
+
531
+ - `update:modelValue`: `[value: string]`
532
+
533
+ **Slots**
534
+
535
+ - `swatches`
536
+
537
+ **Composes with:** `AlphaSlider`, `ColorArea`, `ColorSwatch`, `HueSlider`
538
+
539
+ **Source:** `src/components/color-picker/color-picker.vue`
540
+
541
+ **Example:** `src/components/color-picker/stories/color-picker.stories.ts`
542
+
543
+ ### ColorSwatch
544
+
545
+ **Props**
546
+
547
+ - `label`: `string` **(required)**
548
+ - `modelValue`: `tinycolor.Instance` **(required)**
549
+ - `class`: `unknown`
550
+ - `defaultColor`: `string`
551
+ - `swatch`: `string[]` — default `DEFAULT_SWATCH`
552
+
553
+ **Events**
554
+
555
+ - `update:modelValue`: `[value: string]`
556
+
557
+ **Composes with:** `AlphaSlider`, `ColorArea`, `ColorPicker`, `HueSlider`
558
+
559
+ **Source:** `src/components/color-picker/color-swatch.vue`
560
+
561
+ **Example:** no story of its own — see `src/components/color-picker/stories/color-picker.stories.ts` for the group.
562
+
563
+ ### HueSlider
564
+
565
+ **Props**
566
+
567
+ - `class`: `unknown`
568
+ - `modelValue`: `number` — default `0`
569
+
570
+ **Events**
571
+
572
+ - `update:modelValue`: `[value: number]`
573
+
574
+ **Composes with:** `AlphaSlider`, `ColorArea`, `ColorPicker`, `ColorSwatch`
575
+
576
+ **Source:** `src/components/color-picker/hue-slider.vue`
577
+
578
+ **Example:** no story of its own — see `src/components/color-picker/stories/color-picker.stories.ts` for the group.
579
+
580
+ ---
581
+
582
+ ## combobox
583
+
584
+ ### Combobox
585
+
586
+ **Props**
587
+
588
+ - `options`: `ComboboxItemPropsType[]` **(required)**
589
+ - `as`: `AsTag | Component` — Element or component to render as.
590
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
591
+ - `badgeProps`: `BadgeProps`
592
+ - `by`: `string | ((a: AcceptableValue, b: AcceptableValue) => boolean)` — Use this to compare objects by a particular field, or pass your own comparison function for complete control over how objects are compared.
593
+ - `class`: `string`
594
+ - `defaultOpen`: `boolean` — The open state of the combobox when it is initially rendered. <br> Use when you do not need to control its open state.
595
+ - `defaultValue`: `AcceptableValue | AcceptableValue[]` — The value of the listbox when initially rendered. Use when you do not need to control the state of the Listbox
596
+ - `dir`: `Direction` — The reading direction of the listbox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.
597
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with listbox
598
+ - `emptyLabel`: `string`
599
+ - `highlightOnHover`: `boolean` — When `true`, hover over item will trigger highlight
600
+ - `ignoreFilter`: `boolean` — When `true`, disable the default filters
601
+ - `labelBy`: `string`
602
+ - `modelValue`: `AcceptableValue | AcceptableValue[]` — The controlled value of the listbox. Can be binded with `v-model`.
603
+ - `multiple`: `boolean` — Whether multiple options can be selected or not.
604
+ - `name`: `string` — The name of the field. Submitted with its owning form as part of a name/value pair.
605
+ - `open`: `boolean` — The controlled open state of the Combobox. Can be binded with `v-model:open`.
606
+ - `openOnClick`: `boolean` — Whether to open the combobox when the input is clicked
607
+ - `openOnFocus`: `boolean` — Whether to open the combobox when the input is focused
608
+ - `placeholder`: `string` — default `"Select"`
609
+ - `required`: `boolean` — When `true`, indicates that the user must set the value before the owning form can be submitted.
610
+ - `resetModelValueOnClear`: `boolean` — When `true` the `modelValue` will be reset to `null` (or `[]` if `multiple`)
611
+ - `resetSearchTermOnBlur`: `boolean` — Whether to reset the searchTerm when the Combobox input blurred
612
+ - `resetSearchTermOnSelect`: `boolean` — Whether to reset the searchTerm when the Combobox value is selected
613
+ - `searchable`: `boolean`
614
+ - `searchPlaceholder`: `string`
615
+ - `size`: `xs` | `sm` | `md` — default `"md"`
616
+ - `type`: `compact` | `inline` | `normal` | `compact-input`
617
+ - `valueBy`: `string`
618
+
619
+ **Events**
620
+
621
+ - `update:modelValue`: `[value: AcceptableValue]`
622
+ - `update:open`: `[value: boolean]`
623
+ - `highlight`: `[payload: { ref: HTMLElement; value: AcceptableValue; } | undefined]`
624
+
625
+ **Slots**
626
+
627
+ - `image` — scope `{ selected: ComboboxItemPropsType; }`
628
+ - `prefix` — scope `{ class: string; }`
629
+
630
+ **Composes with:** `ComboboxAnchor`, `ComboboxEmpty`, `ComboboxGroup`, `ComboboxInput`, `ComboboxItem`, `ComboboxList`, `ComboboxRoot`, `ComboboxSeparator`, `ComboboxTrigger`
631
+
632
+ **Source:** `src/components/combobox/combobox.vue`
633
+
634
+ **Example:** `src/components/combobox/stories/combobox.stories.ts`
635
+
636
+ ### ComboboxAnchor
637
+
638
+ **Props**
639
+
640
+ - `as`: `AsTag | Component` — Element or component to render as.
641
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
642
+ - `class`: `ClassValue`
643
+ - `reference`: `ReferenceElement` — The reference (or anchor) element that is being referred to for positioning. If not provided will use the current component as anchor.
644
+
645
+ **Slots**
646
+
647
+ - `default`
648
+
649
+ **Composes with:** `Combobox`, `ComboboxEmpty`, `ComboboxGroup`, `ComboboxInput`, `ComboboxItem`, `ComboboxList`, `ComboboxRoot`, `ComboboxSeparator`, `ComboboxTrigger`
650
+
651
+ **Source:** `src/components/combobox/combobox-anchor.vue`
652
+
653
+ **Example:** no story of its own — see `src/components/combobox/stories/combobox.stories.ts` for the group.
654
+
655
+ ### ComboboxEmpty
656
+
657
+ **Props**
658
+
659
+ - `as`: `AsTag | Component` — Element or component to render as.
660
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
661
+ - `class`: `ClassValue`
662
+
663
+ **Slots**
664
+
665
+ - `default`
666
+
667
+ **Composes with:** `Combobox`, `ComboboxAnchor`, `ComboboxGroup`, `ComboboxInput`, `ComboboxItem`, `ComboboxList`, `ComboboxRoot`, `ComboboxSeparator`, `ComboboxTrigger`
668
+
669
+ **Source:** `src/components/combobox/combobox-empty.vue`
670
+
671
+ **Example:** no story of its own — see `src/components/combobox/stories/combobox.stories.ts` for the group.
672
+
673
+ ### ComboboxGroup
674
+
675
+ **Props**
676
+
677
+ - `as`: `AsTag | Component` — Element or component to render as.
678
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
679
+ - `class`: `ClassValue`
680
+ - `heading`: `string`
681
+
682
+ **Slots**
683
+
684
+ - `default`
685
+
686
+ **Composes with:** `Combobox`, `ComboboxAnchor`, `ComboboxEmpty`, `ComboboxInput`, `ComboboxItem`, `ComboboxList`, `ComboboxRoot`, `ComboboxSeparator`, `ComboboxTrigger`
687
+
688
+ **Source:** `src/components/combobox/combobox-group.vue`
689
+
690
+ **Example:** no story of its own — see `src/components/combobox/stories/combobox.stories.ts` for the group.
691
+
692
+ ### ComboboxInput
693
+
694
+ **Props**
695
+
696
+ - `as`: `AsTag | Component` — Element or component to render as.
697
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
698
+ - `autoFocus`: `boolean` — Focus on element when mounted.
699
+ - `class`: `ClassValue`
700
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with item
701
+ - `displayValue`: `((val: any) => string)` — The display value of input for selected item. Does not work with `multiple`.
702
+ - `modelValue`: `string` — The controlled value of the filter. Can be binded with v-model.
703
+ - `placeholder`: `string`
704
+ - `searchable`: `boolean`
705
+ - `textInputProps`: `Partial<TextInputProps>`
706
+
707
+ **Events**
708
+
709
+ - `update:modelValue`: `[value: string | undefined]`
710
+
711
+ **Composes with:** `Combobox`, `ComboboxAnchor`, `ComboboxEmpty`, `ComboboxGroup`, `ComboboxItem`, `ComboboxList`, `ComboboxRoot`, `ComboboxSeparator`, `ComboboxTrigger`
712
+
713
+ **Source:** `src/components/combobox/combobox-input.vue`
714
+
715
+ **Example:** no story of its own — see `src/components/combobox/stories/combobox.stories.ts` for the group.
716
+
717
+ ### ComboboxItem
718
+
719
+ **Props**
720
+
721
+ - `label`: `string` **(required)**
722
+ - `value`: `string | number | boolean | Record<string, any>` **(required)**
723
+ - `checkbox`: `boolean`
724
+ - `class`: `ClassValue`
725
+ - `description`: `string`
726
+ - `disabled`: `boolean`
727
+ - `focused`: `boolean`
728
+ - `icon`: `string`
729
+ - `image`: `string`
730
+ - `selected`: `boolean | "indeterminate"`
731
+ - `size`: `sm` | `lg` — default `"sm"`
732
+ - `sublabel`: `string`
733
+
734
+ **Events**
735
+
736
+ - `select`: `[event: SelectEvent$3<AcceptableValue>]`
737
+
738
+ **Slots**
739
+
740
+ - `prefix`
741
+ - `suffix`
742
+
743
+ **Composes with:** `Combobox`, `ComboboxAnchor`, `ComboboxEmpty`, `ComboboxGroup`, `ComboboxInput`, `ComboboxList`, `ComboboxRoot`, `ComboboxSeparator`, `ComboboxTrigger`
744
+
745
+ **Source:** `src/components/combobox/combobox-item.vue`
746
+
747
+ **Example:** no story of its own — see `src/components/combobox/stories/combobox.stories.ts` for the group.
748
+
749
+ ### ComboboxList
750
+
751
+ **Props**
752
+
753
+ - `align`: `start` | `center` | `end` — default `"start"` — The preferred alignment against the trigger. May change when collisions occur.
754
+ - `alignFlip`: `boolean` — Flip alignment when colliding with boundary. May only occur when `prioritizePosition` is true.
755
+ - `alignOffset`: `number` — An offset in pixels from the `start` or `end` alignment options.
756
+ - `arrowPadding`: `number` — The padding between the arrow and the edges of the content. If your content has border-radius, this will prevent it from overflowing the corners.
757
+ - `as`: `AsTag | Component` — Element or component to render as.
758
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
759
+ - `avoidCollisions`: `boolean` — When `true`, overrides the side and align preferences to prevent collisions with boundary edges.
760
+ - `bodyLock`: `boolean` — The document.body will be lock, and scrolling will be disabled.
761
+ - `class`: `ClassValue`
762
+ - `collisionBoundary`: `Element | (Element | null)[] | null` — The element used as the collision boundary. By default this is the viewport, though you can provide additional element(s) to be included in this check.
763
+ - `collisionPadding`: `number | Partial<Record<"top" | "right" | "bottom" | "left", number>>` — The distance in pixels from the boundary edges where collision detection should occur. Accepts a number (same for all sides), or a partial padding object, for example: { top: 20, left: 20 }.
764
+ - `dir`: `Direction` — The reading direction of the popper content when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.
765
+ - `disableOutsidePointerEvents`: `boolean` — When `true`, hover/focus/click interactions will be disabled on elements outside the `DismissableLayer`. Users will need to click twice on outside elements to interact with them: once to close the `DismissableLayer`, and again to trigger the element.
766
+ - `disableUpdateOnLayoutShift`: `boolean` — Whether to disable the update position for the content when the layout shifted.
767
+ - `forceMount`: `boolean` — Used to force mounting when more control is needed. Useful when controlling animation with Vue animation libraries.
768
+ - `hideShiftedArrow`: `boolean` — When `true`, hides the arrow when it cannot be centered to the reference element.
769
+ - `hideWhenDetached`: `boolean` — Whether to hide the content when the trigger becomes fully occluded.
770
+ - `hideWhenEmpty`: `boolean` — When `true`, hides the content when there are no items matching the filter.
771
+ - `memoDependencies`: `unknown[]` — Reactive dependencies that should invalidate the memoized content subtree.
772
+ - `position`: `inline` | `popper` — default `"popper"` — The positioning mode to use, <br> `inline` is the default and you can control the position using CSS. <br> `popper` positions content in the same way as our other primitives, for example `Popover` or `DropdownMenu`.
773
+ - `positionStrategy`: `fixed` | `absolute` — The type of CSS position property to use.
774
+ - `prioritizePosition`: `boolean` — Force content to be position within the viewport. Might overlap the reference element, which may not be desired.
775
+ - `reference`: `ReferenceElement` — The custom element or virtual element that will be set as the reference to position the floating element. If provided, it will replace the default anchor element.
776
+ - `side`: `top` | `right` | `bottom` | `left` — The preferred side of the trigger to render against when open. Will be reversed when collisions occur and avoidCollisions is enabled.
777
+ - `sideFlip`: `boolean` — Flip to the opposite side when colliding with boundary.
778
+ - `sideOffset`: `number` — default `4` — The distance in pixels from the trigger.
779
+ - `sticky`: `partial` | `always` — The sticky behavior on the align axis. `partial` will keep the content in the boundary as long as the trigger is at least partially in the boundary whilst "always" will keep the content in the boundary regardless.
780
+ - `updatePositionStrategy`: `always` | `optimized` — Strategy to update the position of the floating element on every animation frame.
781
+
782
+ **Events**
783
+
784
+ - `escapeKeyDown`: `[event: KeyboardEvent]`
785
+ - `pointerDownOutside`: `[event: PointerDownOutsideEvent]`
786
+ - `focusOutside`: `[event: FocusOutsideEvent]`
787
+ - `interactOutside`: `[event: PointerDownOutsideEvent | FocusOutsideEvent]`
788
+
789
+ **Slots**
790
+
791
+ - `default`
792
+
793
+ **Composes with:** `Combobox`, `ComboboxAnchor`, `ComboboxEmpty`, `ComboboxGroup`, `ComboboxInput`, `ComboboxItem`, `ComboboxRoot`, `ComboboxSeparator`, `ComboboxTrigger`
794
+
795
+ **Source:** `src/components/combobox/combobox-list.vue`
796
+
797
+ **Example:** no story of its own — see `src/components/combobox/stories/combobox.stories.ts` for the group.
798
+
799
+ ### ComboboxRoot
800
+
801
+ **Props**
802
+
803
+ - `as`: `AsTag | Component` — Element or component to render as.
804
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
805
+ - `by`: `string | ((a: AcceptableValue, b: AcceptableValue) => boolean)` — Use this to compare objects by a particular field, or pass your own comparison function for complete control over how objects are compared.
806
+ - `class`: `unknown`
807
+ - `defaultOpen`: `boolean` — The open state of the combobox when it is initially rendered. <br> Use when you do not need to control its open state.
808
+ - `defaultValue`: `AcceptableValue | AcceptableValue[]` — The value of the listbox when initially rendered. Use when you do not need to control the state of the Listbox
809
+ - `dir`: `Direction` — The reading direction of the listbox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.
810
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with listbox
811
+ - `highlightOnHover`: `boolean` — When `true`, hover over item will trigger highlight
812
+ - `ignoreFilter`: `boolean` — When `true`, disable the default filters
813
+ - `modelValue`: `AcceptableValue | AcceptableValue[]` — The controlled value of the listbox. Can be binded with `v-model`.
814
+ - `multiple`: `boolean` — Whether multiple options can be selected or not.
815
+ - `name`: `string` — The name of the field. Submitted with its owning form as part of a name/value pair.
816
+ - `open`: `boolean` — The controlled open state of the Combobox. Can be binded with `v-model:open`.
817
+ - `openOnClick`: `boolean` — Whether to open the combobox when the input is clicked
818
+ - `openOnFocus`: `boolean` — Whether to open the combobox when the input is focused
819
+ - `required`: `boolean` — When `true`, indicates that the user must set the value before the owning form can be submitted.
820
+ - `resetModelValueOnClear`: `boolean` — When `true` the `modelValue` will be reset to `null` (or `[]` if `multiple`)
821
+ - `resetSearchTermOnBlur`: `boolean` — Whether to reset the searchTerm when the Combobox input blurred
822
+ - `resetSearchTermOnSelect`: `boolean` — Whether to reset the searchTerm when the Combobox value is selected
823
+
824
+ **Events**
825
+
826
+ - `update:modelValue`: `[value: AcceptableValue]`
827
+ - `update:open`: `[value: boolean]`
828
+ - `highlight`: `[payload: { ref: HTMLElement; value: AcceptableValue; } | undefined]`
829
+
830
+ **Slots**
831
+
832
+ - `default`
833
+
834
+ **Composes with:** `Combobox`, `ComboboxAnchor`, `ComboboxEmpty`, `ComboboxGroup`, `ComboboxInput`, `ComboboxItem`, `ComboboxList`, `ComboboxSeparator`, `ComboboxTrigger`
835
+
836
+ **Source:** `src/components/combobox/combobox-root.vue`
837
+
838
+ **Example:** no story of its own — see `src/components/combobox/stories/combobox.stories.ts` for the group.
839
+
840
+ ### ComboboxSeparator
841
+
842
+ **Props**
843
+
844
+ - `as`: `AsTag | Component` — Element or component to render as.
845
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
846
+ - `class`: `ClassValue`
847
+
848
+ **Slots**
849
+
850
+ - `default`
851
+
852
+ **Composes with:** `Combobox`, `ComboboxAnchor`, `ComboboxEmpty`, `ComboboxGroup`, `ComboboxInput`, `ComboboxItem`, `ComboboxList`, `ComboboxRoot`, `ComboboxTrigger`
853
+
854
+ **Source:** `src/components/combobox/combobox-separator.vue`
855
+
856
+ **Example:** no story of its own — see `src/components/combobox/stories/combobox.stories.ts` for the group.
857
+
858
+ ### ComboboxTrigger
859
+
860
+ **Props**
861
+
862
+ - `as`: `AsTag | Component` — Element or component to render as.
863
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
864
+ - `class`: `ClassValue`
865
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with item
866
+ - `error`: `boolean`
867
+ - `filled`: `boolean`
868
+ - `size`: `xs` | `sm` | `md`
869
+ - `type`: `compact` | `inline` | `normal` | `compact-input` — default `"normal"`
870
+
871
+ **Slots**
872
+
873
+ - `default`
874
+
875
+ **Composes with:** `Combobox`, `ComboboxAnchor`, `ComboboxEmpty`, `ComboboxGroup`, `ComboboxInput`, `ComboboxItem`, `ComboboxList`, `ComboboxRoot`, `ComboboxSeparator`
876
+
877
+ **Source:** `src/components/combobox/combobox-trigger.vue`
878
+
879
+ **Example:** no story of its own — see `src/components/combobox/stories/combobox.stories.ts` for the group.
880
+
881
+ ---
882
+
883
+ ## content-divider
884
+
885
+ ### ContentDivider
886
+
887
+ **Props**
888
+
889
+ - `class`: `ClassValue`
890
+ - `text`: `string`
891
+ - `type`: `line` | `text` | `text-line` | `solid-text` — default `"line"`
892
+
893
+ **Source:** `src/components/content-divider/content-divider.vue`
894
+
895
+ **Example:** `src/components/content-divider/stories/content-divider.stories.ts`
896
+
897
+ ---
898
+
899
+ ## counter-input
900
+
901
+ ### CounterInput
902
+
903
+ **Props**
904
+
905
+ - `as`: `AsTag | Component` — Element or component to render as.
906
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
907
+ - `class`: `ClassValue`
908
+ - `defaultValue`: `number` — default `0`
909
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with the Number Field.
910
+ - `disableWheelChange`: `boolean` — When `true`, prevents the value from changing on wheel scroll.
911
+ - `focusOnChange`: `boolean` — When `true`, the input will be focused when the value changes.
912
+ - `formatOptions`: `Intl.NumberFormatOptions` — Formatting options for the value displayed in the number field. This also affects what characters are allowed to be typed by the user.
913
+ - `hasError`: `boolean` — default `false`
914
+ - `id`: `string` — Id of the element
915
+ - `invertWheelChange`: `boolean` — When `true`, inverts the direction of the wheel change.
916
+ - `locale`: `string` — The locale to use for formatting and currencies
917
+ - `max`: `number` — The largest value allowed for the input.
918
+ - `min`: `number` — The smallest value allowed for the input.
919
+ - `modelValue`: `number | null`
920
+ - `name`: `string` — The name of the field. Submitted with its owning form as part of a name/value pair.
921
+ - `readonly`: `boolean` — When `true`, the Number Field is read-only.
922
+ - `required`: `boolean` — When `true`, indicates that the user must set the value before the owning form can be submitted.
923
+ - `size`: `xs` | `sm` | `md` — default `"md"`
924
+ - `step`: `number` — The amount that the input value changes with each increment or decrement "tick".
925
+ - `stepSnapping`: `boolean` — When `false`, prevents the value from snapping to the nearest increment of the step value
926
+
927
+ **Events**
928
+
929
+ - `update:modelValue`: `[val: number]`
930
+
931
+ **Source:** `src/components/counter-input/counter-input.vue`
932
+
933
+ **Example:** `src/components/counter-input/stories/counter-input.stories.ts`
934
+
935
+ ---
936
+
937
+ ## date-picker
938
+
939
+ ### DatePicker
940
+
941
+ **Props**
942
+
943
+ - `applyLabel`: `string` — default `"Apply"`
944
+ - `as`: `AsTag | Component` — Element or component to render as.
945
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
946
+ - `calendarLabel`: `string` — The accessible label for the calendar
947
+ - `cancelLabel`: `string` — default `"Cancel"`
948
+ - `class`: `ClassValue`
949
+ - `defaultPlaceholder`: `DateValue` — The default placeholder date
950
+ - `defaultValue`: `DateValue` — The default value for the calendar
951
+ - `dir`: `Direction` — The reading direction of the calendar when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.
952
+ - `disabled`: `boolean` — Whether the calendar is disabled
953
+ - `disableDaysOutsideCurrentView`: `boolean` — Whether or not to disable days outside the current view.
954
+ - `fixedWeeks`: `boolean` — Whether or not to always display 6 weeks in the calendar
955
+ - `footer`: `boolean` — default `true`
956
+ - `initialFocus`: `boolean` — If true, the calendar will focus the selected day, today, or the first day of the month depending on what is visible when the calendar is mounted
957
+ - `isDateDisabled`: `Matcher` — A function that returns whether or not a date is disabled
958
+ - `isDateUnavailable`: `Matcher` — A function that returns whether or not a date is unavailable
959
+ - `locale`: `string` — The locale to use for formatting dates
960
+ - `markedDates`: `DateValue[]`
961
+ - `maxValue`: `DateValue` — The maximum date that can be selected
962
+ - `minValue`: `DateValue` — The minimum date that can be selected
963
+ - `modelValue`: `DateValue`
964
+ - `multiple`: `boolean` — Whether multiple dates can be selected
965
+ - `nextPage`: `((placeholder: DateValue) => DateValue)` — A function that returns the next page of the calendar. It receives the current placeholder as an argument inside the component.
966
+ - `numberOfMonths`: `number` — The number of months to display at once
967
+ - `pagedNavigation`: `boolean` — This property causes the previous and next buttons to navigate by the number of months displayed at once, rather than one month
968
+ - `placeholder`: `DateValue` — The placeholder date, which is used to determine what month to display when no date is selected
969
+ - `preventDeselect`: `boolean` — Whether or not to prevent the user from deselecting a date without selecting another date first
970
+ - `prevPage`: `((placeholder: DateValue) => DateValue)` — A function that returns the previous page of the calendar. It receives the current placeholder as an argument inside the component.
971
+ - `readonly`: `boolean` — Whether the calendar is readonly
972
+ - `weekdayFormat`: `WeekDayFormat` — The format to use for the weekday strings provided via the weekdays slot prop
973
+ - `weekStartsOn`: `WeekStartsOn` — The day of the week to start the calendar on
974
+
975
+ **Events**
976
+
977
+ - `update:modelValue`: `[value: DateValue | undefined]`
978
+ - `apply`: `[value: DateValue | undefined]`
979
+ - `cancel`: `[]`
980
+
981
+ **Source:** `src/components/date-picker/date-picker.vue`
982
+
983
+ **Example:** `src/components/date-picker/stories/date-picker.stories.ts`
984
+
985
+ ---
986
+
987
+ ## digit-input
988
+
989
+ ### DigitInput
990
+
991
+ **Props**
992
+
993
+ - `as`: `AsTag | Component` — Element or component to render as.
994
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
995
+ - `class`: `ClassValue`
996
+ - `defaultValue`: `PinInputValue<Type>` — The default value of the pin inputs when it is initially rendered. Use when you do not need to control its checked state.
997
+ - `dir`: `Direction` — The reading direction of the combobox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.
998
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with the pin input
999
+ - `hasError`: `boolean` — default `false`
1000
+ - `id`: `string` — Id of the element
1001
+ - `mask`: `boolean` — When `true`, pin inputs will be treated as password.
1002
+ - `modelValue`: `PinInputValue<Type> | null` — default `[] as any` — The controlled checked state of the pin input. Can be binded as `v-model`.
1003
+ - `name`: `string` — The name of the field. Submitted with its owning form as part of a name/value pair.
1004
+ - `otp`: `boolean` — When `true`, mobile devices will autodetect the OTP from messages or clipboard, and enable the autocomplete field.
1005
+ - `placeholder`: `string` — The placeholder character to use for empty pin-inputs.
1006
+ - `required`: `boolean` — When `true`, indicates that the user must set the value before the owning form can be submitted.
1007
+ - `type`: `Type` — Input type for the inputs.
1008
+
1009
+ **Events**
1010
+
1011
+ - `update:modelValue`: `[value: PinInputValue<Type>]`
1012
+ - `complete`: `[value: PinInputValue<Type>]`
1013
+
1014
+ **Slots**
1015
+
1016
+ - `default`
1017
+
1018
+ **Composes with:** `DigitInputGroup`, `DigitInputSlot`
1019
+
1020
+ **Source:** `src/components/digit-input/digit-input.vue`
1021
+
1022
+ **Example:** `src/components/digit-input/stories/digit-input.stories.ts`
1023
+
1024
+ ### DigitInputGroup
1025
+
1026
+ **Props**
1027
+
1028
+ - `as`: `AsTag | Component` — Element or component to render as.
1029
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1030
+ - `class`: `ClassValue`
1031
+
1032
+ **Slots**
1033
+
1034
+ - `default`
1035
+
1036
+ **Composes with:** `DigitInput`, `DigitInputSlot`
1037
+
1038
+ **Source:** `src/components/digit-input/digit-input-group.vue`
1039
+
1040
+ **Example:** no story of its own — see `src/components/digit-input/stories/digit-input.stories.ts` for the group.
1041
+
1042
+ ### DigitInputSlot
1043
+
1044
+ **Props**
1045
+
1046
+ - `index`: `number` **(required)** — Position of the value this input binds to.
1047
+ - `as`: `AsTag | Component` — Element or component to render as.
1048
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1049
+ - `class`: `ClassValue`
1050
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with the pin input
1051
+
1052
+ **Composes with:** `DigitInput`, `DigitInputGroup`
1053
+
1054
+ **Source:** `src/components/digit-input/digit-input-slot.vue`
1055
+
1056
+ **Example:** no story of its own — see `src/components/digit-input/stories/digit-input.stories.ts` for the group.
1057
+
1058
+ ---
1059
+
1060
+ ## dropdown-menu
1061
+
1062
+ ### DropdownMenu
1063
+
1064
+ **Props**
1065
+
1066
+ - `class`: `ClassValue`
1067
+ - `defaultOpen`: `boolean` — The open state of the dropdown menu when it is initially rendered. Use when you do not need to control its open state.
1068
+ - `dir`: `Direction$4` — The reading direction of the combobox when applicable. If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.
1069
+ - `modal`: `boolean` — The modality of the dropdown menu. When set to `true`, interaction with outside elements will be disabled and only menu content will be visible to screen readers.
1070
+ - `open`: `boolean` — The controlled open state of the menu. Can be used as `v-model:open`.
1071
+
1072
+ **Events**
1073
+
1074
+ - `update:open`: `[payload: boolean]`
1075
+
1076
+ **Slots**
1077
+
1078
+ - `default`
1079
+
1080
+ **Composes with:** `DropdownMenuContent`, `DropdownMenuGroup`, `DropdownMenuItem`, `DropdownMenuLabel`, `DropdownMenuSeparator`, `DropdownMenuSub`, `DropdownMenuSubContent`, `DropdownMenuSubTrigger`, `DropdownMenuTrigger`
1081
+
1082
+ **Source:** `src/components/dropdown-menu/dropdown-menu.vue`
1083
+
1084
+ **Example:** `src/components/dropdown-menu/stories/dropdown-menu.stories.ts`
1085
+
1086
+ ### DropdownMenuContent
1087
+
1088
+ **Props**
1089
+
1090
+ - `align`: `start` | `center` | `end` — The preferred alignment against the trigger. May change when collisions occur.
1091
+ - `alignFlip`: `boolean` — Flip alignment when colliding with boundary. May only occur when `prioritizePosition` is true.
1092
+ - `alignOffset`: `number` — An offset in pixels from the `start` or `end` alignment options.
1093
+ - `arrowPadding`: `number` — The padding between the arrow and the edges of the content. If your content has border-radius, this will prevent it from overflowing the corners.
1094
+ - `as`: `AsTag | Component` — Element or component to render as.
1095
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1096
+ - `avoidCollisions`: `boolean` — When `true`, overrides the side and align preferences to prevent collisions with boundary edges.
1097
+ - `class`: `ClassValue`
1098
+ - `collisionBoundary`: `Element | (Element | null)[] | null` — The element used as the collision boundary. By default this is the viewport, though you can provide additional element(s) to be included in this check.
1099
+ - `collisionPadding`: `number | Partial<Record<"top" | "right" | "bottom" | "left", number>>` — The distance in pixels from the boundary edges where collision detection should occur. Accepts a number (same for all sides), or a partial padding object, for example: { top: 20, left: 20 }.
1100
+ - `disableUpdateOnLayoutShift`: `boolean` — Whether to disable the update position for the content when the layout shifted.
1101
+ - `forceMount`: `boolean` — Used to force mounting when more control is needed. Useful when controlling animation with Vue animation libraries.
1102
+ - `hideShiftedArrow`: `boolean` — When `true`, hides the arrow when it cannot be centered to the reference element.
1103
+ - `hideWhenDetached`: `boolean` — Whether to hide the content when the trigger becomes fully occluded.
1104
+ - `loop`: `boolean` — When `true`, keyboard navigation will loop from last item to first, and vice versa.
1105
+ - `memoDependencies`: `unknown[]` — Reactive dependencies that should invalidate the memoized content subtree.
1106
+ - `positionStrategy`: `fixed` | `absolute` — The type of CSS position property to use.
1107
+ - `prioritizePosition`: `boolean` — Force content to be position within the viewport. Might overlap the reference element, which may not be desired.
1108
+ - `reference`: `ReferenceElement` — The custom element or virtual element that will be set as the reference to position the floating element. If provided, it will replace the default anchor element.
1109
+ - `side`: `top` | `right` | `bottom` | `left` — The preferred side of the trigger to render against when open. Will be reversed when collisions occur and avoidCollisions is enabled.
1110
+ - `sideFlip`: `boolean` — Flip to the opposite side when colliding with boundary.
1111
+ - `sideOffset`: `number` — default `4` — The distance in pixels from the trigger.
1112
+ - `sticky`: `partial` | `always` — The sticky behavior on the align axis. `partial` will keep the content in the boundary as long as the trigger is at least partially in the boundary whilst "always" will keep the content in the boundary regardless.
1113
+ - `updatePositionStrategy`: `always` | `optimized` — Strategy to update the position of the floating element on every animation frame.
1114
+
1115
+ **Events**
1116
+
1117
+ - `escapeKeyDown`: `[event: KeyboardEvent]`
1118
+ - `pointerDownOutside`: `[event: PointerDownOutsideEvent]`
1119
+ - `focusOutside`: `[event: FocusOutsideEvent]`
1120
+ - `interactOutside`: `[event: PointerDownOutsideEvent | FocusOutsideEvent]`
1121
+ - `closeAutoFocus`: `[event: Event]`
1122
+
1123
+ **Slots**
1124
+
1125
+ - `default`
1126
+
1127
+ **Composes with:** `DropdownMenu`, `DropdownMenuGroup`, `DropdownMenuItem`, `DropdownMenuLabel`, `DropdownMenuSeparator`, `DropdownMenuSub`, `DropdownMenuSubContent`, `DropdownMenuSubTrigger`, `DropdownMenuTrigger`
1128
+
1129
+ **Source:** `src/components/dropdown-menu/dropdown-menu-content.vue`
1130
+
1131
+ **Example:** no story of its own — see `src/components/dropdown-menu/stories/dropdown-menu.stories.ts` for the group.
1132
+
1133
+ ### DropdownMenuGroup
1134
+
1135
+ **Props**
1136
+
1137
+ - `as`: `AsTag | Component` — Element or component to render as.
1138
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1139
+ - `class`: `unknown`
1140
+
1141
+ **Slots**
1142
+
1143
+ - `default`
1144
+
1145
+ **Composes with:** `DropdownMenu`, `DropdownMenuContent`, `DropdownMenuItem`, `DropdownMenuLabel`, `DropdownMenuSeparator`, `DropdownMenuSub`, `DropdownMenuSubContent`, `DropdownMenuSubTrigger`, `DropdownMenuTrigger`
1146
+
1147
+ **Source:** `src/components/dropdown-menu/dropdown-menu-group.vue`
1148
+
1149
+ **Example:** no story of its own — see `src/components/dropdown-menu/stories/dropdown-menu.stories.ts` for the group.
1150
+
1151
+ ### DropdownMenuItem
1152
+
1153
+ **Props**
1154
+
1155
+ - `as`: `AsTag | Component` — Element or component to render as.
1156
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1157
+ - `class`: `ClassValue`
1158
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with the item.
1159
+ - `textValue`: `string` — Optional text used for typeahead purposes. By default the typeahead behavior will use the `.textContent` of the item. <br> Use this when the content is complex, or you have non-textual content inside.
1160
+
1161
+ **Slots**
1162
+
1163
+ - `prefix`
1164
+ - `default`
1165
+ - `suffix`
1166
+
1167
+ **Composes with:** `DropdownMenu`, `DropdownMenuContent`, `DropdownMenuGroup`, `DropdownMenuLabel`, `DropdownMenuSeparator`, `DropdownMenuSub`, `DropdownMenuSubContent`, `DropdownMenuSubTrigger`, `DropdownMenuTrigger`
1168
+
1169
+ **Source:** `src/components/dropdown-menu/dropdown-menu-item.vue`
1170
+
1171
+ **Example:** no story of its own — see `src/components/dropdown-menu/stories/dropdown-menu.stories.ts` for the group.
1172
+
1173
+ ### DropdownMenuLabel
1174
+
1175
+ **Props**
1176
+
1177
+ - `as`: `AsTag | Component` — Element or component to render as.
1178
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1179
+ - `class`: `ClassValue`
1180
+
1181
+ **Slots**
1182
+
1183
+ - `default`
1184
+
1185
+ **Composes with:** `DropdownMenu`, `DropdownMenuContent`, `DropdownMenuGroup`, `DropdownMenuItem`, `DropdownMenuSeparator`, `DropdownMenuSub`, `DropdownMenuSubContent`, `DropdownMenuSubTrigger`, `DropdownMenuTrigger`
1186
+
1187
+ **Source:** `src/components/dropdown-menu/dropdown-menu-label.vue`
1188
+
1189
+ **Example:** no story of its own — see `src/components/dropdown-menu/stories/dropdown-menu.stories.ts` for the group.
1190
+
1191
+ ### DropdownMenuSeparator
1192
+
1193
+ **Props**
1194
+
1195
+ - `as`: `AsTag | Component` — Element or component to render as.
1196
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1197
+ - `class`: `ClassValue`
1198
+
1199
+ **Composes with:** `DropdownMenu`, `DropdownMenuContent`, `DropdownMenuGroup`, `DropdownMenuItem`, `DropdownMenuLabel`, `DropdownMenuSub`, `DropdownMenuSubContent`, `DropdownMenuSubTrigger`, `DropdownMenuTrigger`
1200
+
1201
+ **Source:** `src/components/dropdown-menu/dropdown-menu-separator.vue`
1202
+
1203
+ **Example:** no story of its own — see `src/components/dropdown-menu/stories/dropdown-menu.stories.ts` for the group.
1204
+
1205
+ ### DropdownMenuSub
1206
+
1207
+ **Props**
1208
+
1209
+ - `class`: `unknown`
1210
+ - `defaultOpen`: `boolean` — The open state of the dropdown menu when it is initially rendered. Use when you do not need to control its open state.
1211
+ - `open`: `boolean` — The controlled open state of the menu. Can be used as `v-model:open`.
1212
+
1213
+ **Events**
1214
+
1215
+ - `update:open`: `[payload: boolean]`
1216
+
1217
+ **Slots**
1218
+
1219
+ - `default`
1220
+
1221
+ **Composes with:** `DropdownMenu`, `DropdownMenuContent`, `DropdownMenuGroup`, `DropdownMenuItem`, `DropdownMenuLabel`, `DropdownMenuSeparator`, `DropdownMenuSubContent`, `DropdownMenuSubTrigger`, `DropdownMenuTrigger`
1222
+
1223
+ **Source:** `src/components/dropdown-menu/dropdown-menu-sub.vue`
1224
+
1225
+ **Example:** no story of its own — see `src/components/dropdown-menu/stories/dropdown-menu.stories.ts` for the group.
1226
+
1227
+ ### DropdownMenuSubContent
1228
+
1229
+ **Props**
1230
+
1231
+ - `alignFlip`: `boolean` — Flip alignment when colliding with boundary. May only occur when `prioritizePosition` is true.
1232
+ - `alignOffset`: `number` — An offset in pixels from the `start` or `end` alignment options.
1233
+ - `arrowPadding`: `number` — The padding between the arrow and the edges of the content. If your content has border-radius, this will prevent it from overflowing the corners.
1234
+ - `as`: `AsTag | Component` — Element or component to render as.
1235
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1236
+ - `avoidCollisions`: `boolean` — When `true`, overrides the side and align preferences to prevent collisions with boundary edges.
1237
+ - `class`: `ClassValue`
1238
+ - `collisionBoundary`: `Element | (Element | null)[] | null` — The element used as the collision boundary. By default this is the viewport, though you can provide additional element(s) to be included in this check.
1239
+ - `collisionPadding`: `number | Partial<Record<"top" | "right" | "bottom" | "left", number>>` — The distance in pixels from the boundary edges where collision detection should occur. Accepts a number (same for all sides), or a partial padding object, for example: { top: 20, left: 20 }.
1240
+ - `disableUpdateOnLayoutShift`: `boolean` — Whether to disable the update position for the content when the layout shifted.
1241
+ - `forceMount`: `boolean` — Used to force mounting when more control is needed. Useful when controlling animation with Vue animation libraries.
1242
+ - `hideShiftedArrow`: `boolean` — When `true`, hides the arrow when it cannot be centered to the reference element.
1243
+ - `hideWhenDetached`: `boolean` — Whether to hide the content when the trigger becomes fully occluded.
1244
+ - `loop`: `boolean` — When `true`, keyboard navigation will loop from last item to first, and vice versa.
1245
+ - `memoDependencies`: `unknown[]` — Reactive dependencies that should invalidate the memoized content subtree.
1246
+ - `positionStrategy`: `fixed` | `absolute` — The type of CSS position property to use.
1247
+ - `prioritizePosition`: `boolean` — Force content to be position within the viewport. Might overlap the reference element, which may not be desired.
1248
+ - `reference`: `ReferenceElement` — The custom element or virtual element that will be set as the reference to position the floating element. If provided, it will replace the default anchor element.
1249
+ - `sideFlip`: `boolean` — Flip to the opposite side when colliding with boundary.
1250
+ - `sideOffset`: `number` — The distance in pixels from the trigger.
1251
+ - `sticky`: `partial` | `always` — The sticky behavior on the align axis. `partial` will keep the content in the boundary as long as the trigger is at least partially in the boundary whilst "always" will keep the content in the boundary regardless.
1252
+ - `updatePositionStrategy`: `always` | `optimized` — Strategy to update the position of the floating element on every animation frame.
1253
+
1254
+ **Events**
1255
+
1256
+ - `escapeKeyDown`: `[event: KeyboardEvent]`
1257
+ - `pointerDownOutside`: `[event: PointerDownOutsideEvent]`
1258
+ - `focusOutside`: `[event: FocusOutsideEvent]`
1259
+ - `interactOutside`: `[event: PointerDownOutsideEvent | FocusOutsideEvent]`
1260
+ - `entryFocus`: `[event: Event]`
1261
+ - `openAutoFocus`: `[event: Event]`
1262
+ - `closeAutoFocus`: `[event: Event]`
1263
+
1264
+ **Slots**
1265
+
1266
+ - `default`
1267
+
1268
+ **Composes with:** `DropdownMenu`, `DropdownMenuContent`, `DropdownMenuGroup`, `DropdownMenuItem`, `DropdownMenuLabel`, `DropdownMenuSeparator`, `DropdownMenuSub`, `DropdownMenuSubTrigger`, `DropdownMenuTrigger`
1269
+
1270
+ **Source:** `src/components/dropdown-menu/dropdown-menu-sub-content.vue`
1271
+
1272
+ **Example:** no story of its own — see `src/components/dropdown-menu/stories/dropdown-menu.stories.ts` for the group.
1273
+
1274
+ ### DropdownMenuSubTrigger
1275
+
1276
+ **Props**
1277
+
1278
+ - `as`: `AsTag | Component` — Element or component to render as.
1279
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1280
+ - `class`: `ClassValue`
1281
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with the item.
1282
+ - `textValue`: `string` — Optional text used for typeahead purposes. By default the typeahead behavior will use the `.textContent` of the item. <br> Use this when the content is complex, or you have non-textual content inside.
1283
+
1284
+ **Slots**
1285
+
1286
+ - `prefix`
1287
+ - `default`
1288
+
1289
+ **Composes with:** `DropdownMenu`, `DropdownMenuContent`, `DropdownMenuGroup`, `DropdownMenuItem`, `DropdownMenuLabel`, `DropdownMenuSeparator`, `DropdownMenuSub`, `DropdownMenuSubContent`, `DropdownMenuTrigger`
1290
+
1291
+ **Source:** `src/components/dropdown-menu/dropdown-menu-sub-trigger.vue`
1292
+
1293
+ **Example:** no story of its own — see `src/components/dropdown-menu/stories/dropdown-menu.stories.ts` for the group.
1294
+
1295
+ ### DropdownMenuTrigger
1296
+
1297
+ **Props**
1298
+
1299
+ - `as`: `AsTag | Component` — Element or component to render as.
1300
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1301
+ - `class`: `unknown`
1302
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with item
1303
+
1304
+ **Slots**
1305
+
1306
+ - `default`
1307
+
1308
+ **Composes with:** `DropdownMenu`, `DropdownMenuContent`, `DropdownMenuGroup`, `DropdownMenuItem`, `DropdownMenuLabel`, `DropdownMenuSeparator`, `DropdownMenuSub`, `DropdownMenuSubContent`, `DropdownMenuSubTrigger`
1309
+
1310
+ **Source:** `src/components/dropdown-menu/dropdown-menu-trigger.vue`
1311
+
1312
+ **Example:** no story of its own — see `src/components/dropdown-menu/stories/dropdown-menu.stories.ts` for the group.
1313
+
1314
+ ---
1315
+
1316
+ ## file-upload
1317
+
1318
+ ### FileUploadArea
1319
+
1320
+ **Props**
1321
+
1322
+ - `accept`: `string`
1323
+ - `class`: `ClassValue`
1324
+ - `description`: `string` — default `"JPEG, PNG, PDF, and MP4 formats, up to 50 MB."`
1325
+ - `icon`: `string` — default `"i-celeste-upload-cloud-2-line"`
1326
+ - `label`: `string` — default `"Choose a file or drag & drop it here."`
1327
+ - `labelOnDrop`: `string` — default `"Drop file to upload"`
1328
+ - `maxFiles`: `number` — default `5`
1329
+ - `maxSize`: `number` — default `2000`
1330
+ - `modelValue`: `File[]` — default `[]`
1331
+ - `multiple`: `boolean` — default `false`
1332
+ - `onTriggerClick`: `(() => void)`
1333
+ - `triggerLabel`: `string` — default `"Browse Files"`
1334
+
1335
+ **Events**
1336
+
1337
+ - `error`: `[error: FileError]`
1338
+ - `update:modelValue`: `[value: File[]]`
1339
+
1340
+ **Source:** `src/components/file-upload/file-upload-area.vue`
1341
+
1342
+ **Example:** `src/components/file-upload/stories/file-upload-area.stories.ts`
1343
+
1344
+ ---
1345
+
1346
+ ## hint-text
1347
+
1348
+ ### HintText
1349
+
1350
+ **Props**
1351
+
1352
+ - `class`: `ClassValue`
1353
+ - `icon`: `string`
1354
+ - `state`: `default` | `error` | `disabled` — default `"default"`
1355
+ - `text`: `string`
1356
+
1357
+ **Source:** `src/components/hint-text/hint-text.vue`
1358
+
1359
+ **Example:** `src/components/hint-text/stories/hint-text.stories.ts`
1360
+
1361
+ ---
1362
+
1363
+ ## label
1364
+
1365
+ ### Label
1366
+
1367
+ **Props**
1368
+
1369
+ - `as`: `AsTag | Component` — Element or component to render as.
1370
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1371
+ - `class`: `ClassValue`
1372
+ - `disabled`: `boolean`
1373
+ - `for`: `string` — The id of the element the label is associated with.
1374
+ - `information`: `string`
1375
+ - `required`: `boolean`
1376
+ - `sublabel`: `string`
1377
+
1378
+ **Slots**
1379
+
1380
+ - `default`
1381
+ - `button`
1382
+
1383
+ **Source:** `src/components/label/label.vue`
1384
+
1385
+ **Example:** `src/components/label/stories/label.stories.ts`
1386
+
1387
+ ---
1388
+
1389
+ ## modal
1390
+
1391
+ ### Modal
1392
+
1393
+ **Props**
1394
+
1395
+ - `class`: `unknown`
1396
+ - `defaultOpen`: `boolean` — The open state of the dialog when it is initially rendered. Use when you do not need to control its open state.
1397
+ - `modal`: `boolean` — The modality of the dialog When set to `true`, <br> interaction with outside elements will be disabled and only dialog content will be visible to screen readers.
1398
+ - `open`: `boolean` — The controlled open state of the dialog. Can be binded as `v-model:open`.
1399
+ - `unmountOnHide`: `boolean` — When set to `false`, the dialog content will not be unmounted when closed, but instead hidden with CSS. <br> Useful for SEO or when you want to improve performance by not remounting the component on every open.
1400
+
1401
+ **Events**
1402
+
1403
+ - `update:open`: `[value: boolean]`
1404
+
1405
+ **Slots**
1406
+
1407
+ - `default`
1408
+
1409
+ **Composes with:** `ModalBody`, `ModalClose`, `ModalContent`, `ModalFooter`, `ModalHeader`, `ModalTrigger`
1410
+
1411
+ **Source:** `src/components/modal/modal.vue`
1412
+
1413
+ **Example:** `src/components/modal/stories/modal.stories.ts`
1414
+
1415
+ ### ModalBody
1416
+
1417
+ **Props**
1418
+
1419
+ - `class`: `ClassValue`
1420
+
1421
+ **Slots**
1422
+
1423
+ - `default`
1424
+
1425
+ **Composes with:** `Modal`, `ModalClose`, `ModalContent`, `ModalFooter`, `ModalHeader`, `ModalTrigger`
1426
+
1427
+ **Source:** `src/components/modal/modal-body.vue`
1428
+
1429
+ **Example:** no story of its own — see `src/components/modal/stories/modal.stories.ts` for the group.
1430
+
1431
+ ### ModalClose
1432
+
1433
+ **Props**
1434
+
1435
+ - `as`: `AsTag | Component` — Element or component to render as.
1436
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1437
+ - `class`: `unknown`
1438
+
1439
+ **Slots**
1440
+
1441
+ - `default`
1442
+
1443
+ **Composes with:** `Modal`, `ModalBody`, `ModalContent`, `ModalFooter`, `ModalHeader`, `ModalTrigger`
1444
+
1445
+ **Source:** `src/components/modal/modal-close.vue`
1446
+
1447
+ **Example:** no story of its own — see `src/components/modal/stories/modal.stories.ts` for the group.
1448
+
1449
+ ### ModalContent
1450
+
1451
+ **Props**
1452
+
1453
+ - `as`: `AsTag | Component` — Element or component to render as.
1454
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1455
+ - `class`: `ClassValue`
1456
+ - `disableOutsidePointerEvents`: `boolean` — When `true`, hover/focus/click interactions will be disabled on elements outside the `DismissableLayer`. Users will need to click twice on outside elements to interact with them: once to close the `DismissableLayer`, and again to trigger the element.
1457
+ - `forceMount`: `boolean` — Used to force mounting when more control is needed. Useful when controlling animation with Vue animation libraries.
1458
+
1459
+ **Events**
1460
+
1461
+ - `escapeKeyDown`: `[event: KeyboardEvent]`
1462
+ - `pointerDownOutside`: `[event: PointerDownOutsideEvent]`
1463
+ - `focusOutside`: `[event: FocusOutsideEvent]`
1464
+ - `interactOutside`: `[event: PointerDownOutsideEvent | FocusOutsideEvent]`
1465
+ - `openAutoFocus`: `[event: Event]`
1466
+ - `closeAutoFocus`: `[event: Event]`
1467
+
1468
+ **Slots**
1469
+
1470
+ - `default`
1471
+
1472
+ **Composes with:** `Modal`, `ModalBody`, `ModalClose`, `ModalFooter`, `ModalHeader`, `ModalTrigger`
1473
+
1474
+ **Source:** `src/components/modal/modal-content.vue`
1475
+
1476
+ **Example:** no story of its own — see `src/components/modal/stories/modal.stories.ts` for the group.
1477
+
1478
+ ### ModalFooter
1479
+
1480
+ **Props**
1481
+
1482
+ - `class`: `ClassValue`
1483
+
1484
+ **Slots**
1485
+
1486
+ - `default`
1487
+
1488
+ **Composes with:** `Modal`, `ModalBody`, `ModalClose`, `ModalContent`, `ModalHeader`, `ModalTrigger`
1489
+
1490
+ **Source:** `src/components/modal/modal-footer.vue`
1491
+
1492
+ **Example:** no story of its own — see `src/components/modal/stories/modal.stories.ts` for the group.
1493
+
1494
+ ### ModalHeader
1495
+
1496
+ **Props**
1497
+
1498
+ - `title`: `string` **(required)**
1499
+ - `alignment`: `horizontal` | `vertical` — default `"horizontal"`
1500
+ - `class`: `ClassValue`
1501
+ - `description`: `string`
1502
+ - `dismissible`: `boolean` — default `true`
1503
+ - `icon`: `string`
1504
+ - `type`: `information` | `default` | `success` | `warning` | `error` — default `"default"`
1505
+
1506
+ **Composes with:** `Modal`, `ModalBody`, `ModalClose`, `ModalContent`, `ModalFooter`, `ModalTrigger`
1507
+
1508
+ **Source:** `src/components/modal/modal-header.vue`
1509
+
1510
+ **Example:** no story of its own — see `src/components/modal/stories/modal.stories.ts` for the group.
1511
+
1512
+ ### ModalTrigger
1513
+
1514
+ **Props**
1515
+
1516
+ - `as`: `AsTag | Component` — Element or component to render as.
1517
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1518
+ - `class`: `unknown`
1519
+
1520
+ **Slots**
1521
+
1522
+ - `default`
1523
+
1524
+ **Composes with:** `Modal`, `ModalBody`, `ModalClose`, `ModalContent`, `ModalFooter`, `ModalHeader`
1525
+
1526
+ **Source:** `src/components/modal/modal-trigger.vue`
1527
+
1528
+ **Example:** no story of its own — see `src/components/modal/stories/modal.stories.ts` for the group.
1529
+
1530
+ ---
1531
+
1532
+ ## pagination
1533
+
1534
+ ### Pagination
1535
+
1536
+ **Props**
1537
+
1538
+ - `itemsPerPage`: `number` **(required)** — Number of items per page
1539
+ - `as`: `AsTag | Component` — Element or component to render as.
1540
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1541
+ - `class`: `ClassValue`
1542
+ - `defaultPage`: `number` — The value of the page that should be active when initially rendered. Use when you do not need to control the value state.
1543
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with item
1544
+ - `page`: `number` — The controlled value of the current page. Can be binded as `v-model:page`.
1545
+ - `showEdges`: `boolean` — When `true`, always show first page, last page, and ellipsis
1546
+ - `siblingCount`: `number` — Number of sibling should be shown around the current page
1547
+ - `total`: `number` — Number of items in your list
1548
+ - `variant`: `basic` | `rounded` | `group` — default `"basic"`
1549
+
1550
+ **Events**
1551
+
1552
+ - `update:page`: `[value: number]`
1553
+
1554
+ **Slots**
1555
+
1556
+ - `leading` — scope `{ page: number; pageCount: number; }`
1557
+ - `default` — scope `{ page: number; pageCount: number; }`
1558
+ - `trailing` — scope `{ page: number; pageCount: number; }`
1559
+
1560
+ **Composes with:** `PaginationContent`, `PaginationEllipsis`, `PaginationFirst`, `PaginationItem`, `PaginationLast`, `PaginationNext`, `PaginationPrevious`
1561
+
1562
+ **Source:** `src/components/pagination/pagination.vue`
1563
+
1564
+ **Example:** `src/components/pagination/stories/pagination.stories.ts`
1565
+
1566
+ ### PaginationContent
1567
+
1568
+ **Props**
1569
+
1570
+ - `as`: `AsTag | Component` — Element or component to render as.
1571
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1572
+ - `class`: `ClassValue`
1573
+
1574
+ **Slots**
1575
+
1576
+ - `default` — scope `{ items: ({ type: "ellipsis"; } | { type: "page"; value: number; })[]; }`
1577
+
1578
+ **Composes with:** `Pagination`, `PaginationEllipsis`, `PaginationFirst`, `PaginationItem`, `PaginationLast`, `PaginationNext`, `PaginationPrevious`
1579
+
1580
+ **Source:** `src/components/pagination/pagination-content.vue`
1581
+
1582
+ **Example:** no story of its own — see `src/components/pagination/stories/pagination.stories.ts` for the group.
1583
+
1584
+ ### PaginationEllipsis
1585
+
1586
+ **Props**
1587
+
1588
+ - `as`: `AsTag | Component` — Element or component to render as.
1589
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1590
+ - `class`: `ClassValue`
1591
+
1592
+ **Slots**
1593
+
1594
+ - `default`
1595
+
1596
+ **Composes with:** `Pagination`, `PaginationContent`, `PaginationFirst`, `PaginationItem`, `PaginationLast`, `PaginationNext`, `PaginationPrevious`
1597
+
1598
+ **Source:** `src/components/pagination/pagination-ellipsis.vue`
1599
+
1600
+ **Example:** no story of its own — see `src/components/pagination/stories/pagination.stories.ts` for the group.
1601
+
1602
+ ### PaginationFirst
1603
+
1604
+ **Props**
1605
+
1606
+ - `as`: `AsTag | Component` — Element or component to render as.
1607
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1608
+ - `class`: `ClassValue`
1609
+
1610
+ **Slots**
1611
+
1612
+ - `default`
1613
+
1614
+ **Composes with:** `Pagination`, `PaginationContent`, `PaginationEllipsis`, `PaginationItem`, `PaginationLast`, `PaginationNext`, `PaginationPrevious`
1615
+
1616
+ **Source:** `src/components/pagination/pagination-first.vue`
1617
+
1618
+ **Example:** no story of its own — see `src/components/pagination/stories/pagination.stories.ts` for the group.
1619
+
1620
+ ### PaginationItem
1621
+
1622
+ **Props**
1623
+
1624
+ - `value`: `number` **(required)** — Value for the page
1625
+ - `as`: `AsTag | Component` — Element or component to render as.
1626
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1627
+ - `class`: `ClassValue`
1628
+ - `disabled`: `boolean`
1629
+ - `isActive`: `boolean`
1630
+
1631
+ **Slots**
1632
+
1633
+ - `default`
1634
+
1635
+ **Composes with:** `Pagination`, `PaginationContent`, `PaginationEllipsis`, `PaginationFirst`, `PaginationLast`, `PaginationNext`, `PaginationPrevious`
1636
+
1637
+ **Source:** `src/components/pagination/pagination-item.vue`
1638
+
1639
+ **Example:** no story of its own — see `src/components/pagination/stories/pagination.stories.ts` for the group.
1640
+
1641
+ ### PaginationLast
1642
+
1643
+ **Props**
1644
+
1645
+ - `as`: `AsTag | Component` — Element or component to render as.
1646
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1647
+ - `class`: `ClassValue`
1648
+
1649
+ **Slots**
1650
+
1651
+ - `default`
1652
+
1653
+ **Composes with:** `Pagination`, `PaginationContent`, `PaginationEllipsis`, `PaginationFirst`, `PaginationItem`, `PaginationNext`, `PaginationPrevious`
1654
+
1655
+ **Source:** `src/components/pagination/pagination-last.vue`
1656
+
1657
+ **Example:** no story of its own — see `src/components/pagination/stories/pagination.stories.ts` for the group.
1658
+
1659
+ ### PaginationNext
1660
+
1661
+ **Props**
1662
+
1663
+ - `as`: `AsTag | Component` — Element or component to render as.
1664
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1665
+ - `class`: `ClassValue`
1666
+
1667
+ **Slots**
1668
+
1669
+ - `default`
1670
+
1671
+ **Composes with:** `Pagination`, `PaginationContent`, `PaginationEllipsis`, `PaginationFirst`, `PaginationItem`, `PaginationLast`, `PaginationPrevious`
1672
+
1673
+ **Source:** `src/components/pagination/pagination-next.vue`
1674
+
1675
+ **Example:** no story of its own — see `src/components/pagination/stories/pagination.stories.ts` for the group.
1676
+
1677
+ ### PaginationPrevious
1678
+
1679
+ **Props**
1680
+
1681
+ - `as`: `AsTag | Component` — Element or component to render as.
1682
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1683
+ - `class`: `ClassValue`
1684
+
1685
+ **Slots**
1686
+
1687
+ - `default`
1688
+
1689
+ **Composes with:** `Pagination`, `PaginationContent`, `PaginationEllipsis`, `PaginationFirst`, `PaginationItem`, `PaginationLast`, `PaginationNext`
1690
+
1691
+ **Source:** `src/components/pagination/pagination-previous.vue`
1692
+
1693
+ **Example:** no story of its own — see `src/components/pagination/stories/pagination.stories.ts` for the group.
1694
+
1695
+ ---
1696
+
1697
+ ## popover
1698
+
1699
+ ### Popover
1700
+
1701
+ **Props**
1702
+
1703
+ - `class`: `unknown`
1704
+ - `defaultOpen`: `boolean` — The open state of the popover when it is initially rendered. Use when you do not need to control its open state.
1705
+ - `modal`: `boolean` — The modality of the popover. When set to true, interaction with outside elements will be disabled and only popover content will be visible to screen readers.
1706
+ - `open`: `boolean` — The controlled open state of the popover.
1707
+
1708
+ **Events**
1709
+
1710
+ - `update:open`: `[value: boolean]`
1711
+
1712
+ **Slots**
1713
+
1714
+ - `default`
1715
+
1716
+ **Composes with:** `PopoverContent`, `PopoverTrigger`
1717
+
1718
+ **Source:** `src/components/popover/popover.vue`
1719
+
1720
+ **Example:** `src/components/popover/stories/popover.stories.ts`
1721
+
1722
+ ### PopoverContent
1723
+
1724
+ **Props**
1725
+
1726
+ - `align`: `start` | `center` | `end`
1727
+ - `alignOffset`: `number`
1728
+ - `class`: `ClassValue`
1729
+ - `description`: `string`
1730
+ - `dismissible`: `boolean` — default `true`
1731
+ - `icon`: `string`
1732
+ - `iconSize`: `sm` | `lg` | `md` | `xl` | `xxl` — default `"lg"`
1733
+ - `showTail`: `boolean` — default `true`
1734
+ - `side`: `top` | `right` | `bottom` | `left` — default `"bottom"`
1735
+ - `sideOffset`: `number`
1736
+ - `title`: `string`
1737
+
1738
+ **Events**
1739
+
1740
+ - `escapeKeyDown`: `[event: KeyboardEvent]`
1741
+ - `pointerDownOutside`: `[event: PointerDownOutsideEvent]`
1742
+ - `focusOutside`: `[event: FocusOutsideEvent]`
1743
+ - `interactOutside`: `[event: PointerDownOutsideEvent | FocusOutsideEvent]`
1744
+ - `openAutoFocus`: `[event: Event]`
1745
+ - `closeAutoFocus`: `[event: Event]`
1746
+
1747
+ **Slots**
1748
+
1749
+ - `default`
1750
+ - `footer`
1751
+
1752
+ **Composes with:** `Popover`, `PopoverTrigger`
1753
+
1754
+ **Source:** `src/components/popover/popover-content.vue`
1755
+
1756
+ **Example:** no story of its own — see `src/components/popover/stories/popover.stories.ts` for the group.
1757
+
1758
+ ### PopoverTrigger
1759
+
1760
+ **Props**
1761
+
1762
+ - `as`: `AsTag | Component` — Element or component to render as.
1763
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1764
+ - `class`: `unknown`
1765
+
1766
+ **Slots**
1767
+
1768
+ - `default`
1769
+
1770
+ **Composes with:** `Popover`, `PopoverContent`
1771
+
1772
+ **Source:** `src/components/popover/popover-trigger.vue`
1773
+
1774
+ **Example:** no story of its own — see `src/components/popover/stories/popover.stories.ts` for the group.
1775
+
1776
+ ---
1777
+
1778
+ ## progress
1779
+
1780
+ ### ProgressBar
1781
+
1782
+ **Props**
1783
+
1784
+ - `as`: `AsTag | Component` — Element or component to render as.
1785
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1786
+ - `class`: `ClassValue`
1787
+ - `color`: `primary` | `blue` | `red` | `orange` | `green` — default `"primary"`
1788
+ - `getValueLabel`: `((value: number | null | undefined, max: number) => string | undefined)` — A function to get the accessible label text in a human-readable format. If not provided, the value label will be read as the numeric value as a percentage of the max value.
1789
+ - `getValueText`: `((value: number | null | undefined, max: number) => string | undefined)` — A function to get the accessible value text representing the current value in a human-readable format.
1790
+ - `layout`: `default` | `inline` | `bare` | `no-description` — default `"bare"`
1791
+ - `max`: `number` — default `100` — The maximum progress value.
1792
+ - `modelValue`: `number | null` — default `0` — The progress value. Can be bind as `v-model`.
1793
+ - `title`: `string`
1794
+
1795
+ **Slots**
1796
+
1797
+ - `label`
1798
+ - `description`
1799
+
1800
+ **Composes with:** `ProgressCircle`
1801
+
1802
+ **Source:** `src/components/progress/progress-bar.vue`
1803
+
1804
+ **Example:** `src/components/progress/stories/progress-bar.stories.ts`
1805
+
1806
+ ### ProgressCircle
1807
+
1808
+ **Props**
1809
+
1810
+ - `as`: `AsTag | Component` — Element or component to render as.
1811
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1812
+ - `class`: `ClassValue`
1813
+ - `getValueLabel`: `((value: number | null | undefined, max: number) => string | undefined)` — A function to get the accessible label text in a human-readable format. If not provided, the value label will be read as the numeric value as a percentage of the max value.
1814
+ - `getValueText`: `((value: number | null | undefined, max: number) => string | undefined)` — A function to get the accessible value text representing the current value in a human-readable format.
1815
+ - `max`: `number` — default `100` — The maximum progress value.
1816
+ - `modelValue`: `number | null` — default `0` — The progress value. Can be bind as `v-model`.
1817
+ - `size`: `80 | 72 | 64 | 56 | 48` — default `80`
1818
+
1819
+ **Slots**
1820
+
1821
+ - `default`
1822
+
1823
+ **Composes with:** `ProgressBar`
1824
+
1825
+ **Source:** `src/components/progress/progress-circle.vue`
1826
+
1827
+ **Example:** no story of its own — see `src/components/progress/stories/progress-bar.stories.ts` for the group.
1828
+
1829
+ ---
1830
+
1831
+ ## radio-group
1832
+
1833
+ ### RadioGroup
1834
+
1835
+ **Props**
1836
+
1837
+ - `as`: `AsTag | Component` — Element or component to render as.
1838
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1839
+ - `class`: `ClassValue`
1840
+ - `defaultValue`: `AcceptableValue` — The value of the radio item that should be checked when initially rendered. Use when you do not need to control the state of the radio items.
1841
+ - `dir`: `Direction` — The reading direction of the combobox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.
1842
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with radio items.
1843
+ - `loop`: `boolean` — When `true`, keyboard navigation will loop from last item to first, and vice versa.
1844
+ - `modelValue`: `AcceptableValue` — The controlled value of the radio item to check. Can be binded as `v-model`.
1845
+ - `name`: `string` — The name of the field. Submitted with its owning form as part of a name/value pair.
1846
+ - `orientation`: `DataOrientation` — The orientation of the component.
1847
+ - `required`: `boolean` — When `true`, indicates that the user must set the value before the owning form can be submitted.
1848
+
1849
+ **Events**
1850
+
1851
+ - `update:modelValue`: `[payload: AcceptableValue]`
1852
+
1853
+ **Slots**
1854
+
1855
+ - `default`
1856
+
1857
+ **Composes with:** `RadioGroupCard`, `RadioGroupItem`, `RadioGroupLabel`
1858
+
1859
+ **Source:** `src/components/radio-group/radio-group.vue`
1860
+
1861
+ **Example:** `src/components/radio-group/stories/radio-group.stories.ts`
1862
+
1863
+ ### RadioGroupCard
1864
+
1865
+ **Props**
1866
+
1867
+ - `as`: `AsTag | Component` — Element or component to render as.
1868
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1869
+ - `class`: `ClassValue`
1870
+ - `disabled`: `boolean`
1871
+ - `for`: `string` — The id of the element the label is associated with.
1872
+ - `required`: `boolean`
1873
+
1874
+ **Slots**
1875
+
1876
+ - `image` — scope `{ class: string; }`
1877
+ - `icon`
1878
+ - `label`
1879
+ - `sublabel`
1880
+ - `badge` — scope `{ disabled: boolean; }`
1881
+ - `description`
1882
+ - `default`
1883
+
1884
+ **Composes with:** `RadioGroup`, `RadioGroupItem`, `RadioGroupLabel`
1885
+
1886
+ **Source:** `src/components/radio-group/radio-group-card.vue`
1887
+
1888
+ **Example:** `src/components/radio-group/stories/radio-group-card.stories.ts`
1889
+
1890
+ ### RadioGroupItem
1891
+
1892
+ **Props**
1893
+
1894
+ - `as`: `AsTag | Component` — Element or component to render as.
1895
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1896
+ - `class`: `ClassValue`
1897
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with the radio item.
1898
+ - `id`: `string`
1899
+ - `name`: `string` — The name of the field. Submitted with its owning form as part of a name/value pair.
1900
+ - `required`: `boolean` — When `true`, indicates that the user must set the value before the owning form can be submitted.
1901
+ - `value`: `AcceptableValue` — The value given as data when submitted with a `name`.
1902
+
1903
+ **Composes with:** `RadioGroup`, `RadioGroupCard`, `RadioGroupLabel`
1904
+
1905
+ **Source:** `src/components/radio-group/radio-group-item.vue`
1906
+
1907
+ **Example:** no story of its own — see `src/components/radio-group/stories/radio-group.stories.ts` for the group.
1908
+
1909
+ ### RadioGroupLabel
1910
+
1911
+ **Props**
1912
+
1913
+ - `as`: `AsTag | Component` — Element or component to render as.
1914
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1915
+ - `class`: `ClassValue`
1916
+ - `disabled`: `boolean`
1917
+ - `for`: `string` — The id of the element the label is associated with.
1918
+ - `required`: `boolean`
1919
+
1920
+ **Slots**
1921
+
1922
+ - `default`
1923
+ - `label`
1924
+ - `sublabel`
1925
+ - `badge`
1926
+ - `description`
1927
+ - `linkButton`
1928
+
1929
+ **Composes with:** `RadioGroup`, `RadioGroupCard`, `RadioGroupItem`
1930
+
1931
+ **Source:** `src/components/radio-group/radio-group-label.vue`
1932
+
1933
+ **Example:** no story of its own — see `src/components/radio-group/stories/radio-group.stories.ts` for the group.
1934
+
1935
+ ---
1936
+
1937
+ ## range-calendar
1938
+
1939
+ ### RangeCalendar
1940
+
1941
+ **Props**
1942
+
1943
+ - `allowNonContiguousRanges`: `boolean` — When combined with `isDateUnavailable`, determines whether non-contiguous ranges, i.e. ranges containing unavailable dates, may be selected.
1944
+ - `as`: `AsTag | Component` — Element or component to render as.
1945
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1946
+ - `calendarLabel`: `string` — The accessible label for the calendar
1947
+ - `class`: `ClassValue`
1948
+ - `defaultPlaceholder`: `DateValue` — The default placeholder date
1949
+ - `defaultValue`: `DateRange` — The default value for the calendar
1950
+ - `dir`: `Direction` — The reading direction of the calendar when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.
1951
+ - `disabled`: `boolean` — Whether or not the calendar is disabled
1952
+ - `disableDaysOutsideCurrentView`: `boolean` — Whether or not to disable days outside the current view.
1953
+ - `fixedDate`: `start` | `end` — Which part of the range should be fixed
1954
+ - `fixedWeeks`: `boolean` — default `true` — Whether or not to always display 6 weeks in the calendar
1955
+ - `initialFocus`: `boolean` — If true, the calendar will focus the selected day, today, or the first day of the month depending on what is visible when the calendar is mounted
1956
+ - `isDateDisabled`: `Matcher` — A function that returns whether or not a date is disabled
1957
+ - `isDateHighlightable`: `Matcher` — A function that returns whether or not a date is hightable
1958
+ - `isDateUnavailable`: `Matcher` — A function that returns whether or not a date is unavailable
1959
+ - `locale`: `string` — The locale to use for formatting dates
1960
+ - `markedDates`: `DateValue[]`
1961
+ - `maximumDays`: `number` — The maximum number of days that can be selected in a range
1962
+ - `maxValue`: `DateValue` — The maximum date that can be selected
1963
+ - `minValue`: `DateValue` — The minimum date that can be selected
1964
+ - `modelValue`: `DateRange | null` — The controlled selected date range of the calendar. Can be bound as `v-model`.
1965
+ - `nextPage`: `((placeholder: DateValue) => DateValue)` — A function that returns the next page of the calendar. It receives the current placeholder as an argument inside the component.
1966
+ - `numberOfMonths`: `number` — default `2` — The number of months to display at once
1967
+ - `pagedNavigation`: `boolean` — This property causes the previous and next buttons to navigate by the number of months displayed at once, rather than one month
1968
+ - `placeholder`: `DateValue` — The placeholder date, which is used to determine what month to display when no date is selected. This updates as the user navigates the calendar and can be used to programmatically control the calendar view
1969
+ - `preventDeselect`: `boolean` — Whether or not to prevent the user from deselecting a date without selecting another date first
1970
+ - `prevPage`: `((placeholder: DateValue) => DateValue)` — A function that returns the previous page of the calendar. It receives the current placeholder as an argument inside the component.
1971
+ - `readonly`: `boolean` — Whether or not the calendar is readonly
1972
+ - `weekdayFormat`: `WeekDayFormat` — default `"short"` — The format to use for the weekday strings provided via the weekdays slot prop
1973
+ - `weekStartsOn`: `WeekStartsOn` — default `1` — The day of the week to start the calendar on
1974
+
1975
+ **Events**
1976
+
1977
+ - `update:modelValue`: `[date: DateRange]`
1978
+ - `update:placeholder`: `[date: DateValue]`
1979
+ - `update:validModelValue`: `[date: DateRange]`
1980
+ - `update:startValue`: `[date: DateValue | undefined]`
1981
+
1982
+ **Source:** `src/components/range-calendar/range-calendar.vue`
1983
+
1984
+ **Example:** `src/components/range-calendar/stories/range-calendar.stories.ts`
1985
+
1986
+ ---
1987
+
1988
+ ## range-picker
1989
+
1990
+ ### RangePicker
1991
+
1992
+ **Props**
1993
+
1994
+ - `allowNonContiguousRanges`: `boolean` — When combined with `isDateUnavailable`, determines whether non-contiguous ranges, i.e. ranges containing unavailable dates, may be selected.
1995
+ - `applyLabel`: `string` — default `"Apply"`
1996
+ - `as`: `AsTag | Component` — Element or component to render as.
1997
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
1998
+ - `calendarLabel`: `string` — The accessible label for the calendar
1999
+ - `cancelLabel`: `string` — default `"Cancel"`
2000
+ - `class`: `ClassValue`
2001
+ - `defaultPlaceholder`: `DateValue` — The default placeholder date
2002
+ - `defaultValue`: `DateRange` — The default value for the calendar
2003
+ - `dir`: `Direction` — The reading direction of the calendar when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.
2004
+ - `disabled`: `boolean` — Whether or not the calendar is disabled
2005
+ - `disableDaysOutsideCurrentView`: `boolean` — Whether or not to disable days outside the current view.
2006
+ - `fixedDate`: `start` | `end` — Which part of the range should be fixed
2007
+ - `fixedWeeks`: `boolean` — Whether or not to always display 6 weeks in the calendar
2008
+ - `footer`: `boolean` — default `true`
2009
+ - `initialFocus`: `boolean` — If true, the calendar will focus the selected day, today, or the first day of the month depending on what is visible when the calendar is mounted
2010
+ - `isDateDisabled`: `Matcher` — A function that returns whether or not a date is disabled
2011
+ - `isDateHighlightable`: `Matcher` — A function that returns whether or not a date is hightable
2012
+ - `isDateUnavailable`: `Matcher` — A function that returns whether or not a date is unavailable
2013
+ - `locale`: `string` — The locale to use for formatting dates
2014
+ - `markedDates`: `DateValue[]`
2015
+ - `maximumDays`: `number` — The maximum number of days that can be selected in a range
2016
+ - `maxValue`: `DateValue` — The maximum date that can be selected
2017
+ - `minValue`: `DateValue` — The minimum date that can be selected
2018
+ - `modelValue`: `DateRange` — default `{ start: undefined, end: undefined }`
2019
+ - `nextPage`: `((placeholder: DateValue) => DateValue)` — A function that returns the next page of the calendar. It receives the current placeholder as an argument inside the component.
2020
+ - `numberOfMonths`: `number` — The number of months to display at once
2021
+ - `pagedNavigation`: `boolean` — This property causes the previous and next buttons to navigate by the number of months displayed at once, rather than one month
2022
+ - `placeholder`: `DateValue` — The placeholder date, which is used to determine what month to display when no date is selected. This updates as the user navigates the calendar and can be used to programmatically control the calendar view
2023
+ - `placeholderLabel`: `string` — default `"Select a range"`
2024
+ - `presets`: `RangePickerPreset[]`
2025
+ - `preventDeselect`: `boolean` — Whether or not to prevent the user from deselecting a date without selecting another date first
2026
+ - `prevPage`: `((placeholder: DateValue) => DateValue)` — A function that returns the previous page of the calendar. It receives the current placeholder as an argument inside the component.
2027
+ - `rangeLabel`: `string` — default `"Range:"`
2028
+ - `readonly`: `boolean` — Whether or not the calendar is readonly
2029
+ - `showPresets`: `boolean` — default `true`
2030
+ - `weekdayFormat`: `WeekDayFormat` — The format to use for the weekday strings provided via the weekdays slot prop
2031
+ - `weekStartsOn`: `WeekStartsOn` — The day of the week to start the calendar on
2032
+
2033
+ **Events**
2034
+
2035
+ - `update:modelValue`: `[value: DateRange]`
2036
+ - `apply`: `[value: DateRange]`
2037
+ - `cancel`: `[]`
2038
+
2039
+ **Source:** `src/components/range-picker/range-picker.vue`
2040
+
2041
+ **Example:** `src/components/range-picker/stories/range-picker.stories.ts`
2042
+
2043
+ ---
2044
+
2045
+ ## rich-editor
2046
+
2047
+ ### RichEditor
2048
+
2049
+ **Props**
2050
+
2051
+ - `class`: `unknown`
2052
+ - `customToolbar`: `string[]` — default `[]`
2053
+ - `maxLimit`: `number` — default `null`
2054
+ - `modelValue`: `string` — default `''`
2055
+ - `placeholder`: `string` — default `''`
2056
+ - `showExtraSettings`: `boolean` — default `true`
2057
+
2058
+ **Events**
2059
+
2060
+ - `update:modelValue`: `any[]`
2061
+
2062
+ **Source:** `src/components/rich-editor/rich-editor.vue`
2063
+
2064
+ **Example:** `src/components/rich-editor/stories/rich-editor.stories.ts`
2065
+
2066
+ ---
2067
+
2068
+ ## scroll-area
2069
+
2070
+ ### ScrollArea
2071
+
2072
+ **Props**
2073
+
2074
+ - `as`: `AsTag | Component` — Element or component to render as.
2075
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2076
+ - `class`: `ClassValue`
2077
+ - `dir`: `Direction$2` — The reading direction of the combobox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.
2078
+ - `scrollHideDelay`: `number` — If type is set to either `scroll` or `hover`, this prop determines the length of time, in milliseconds, <br> before the scrollbars are hidden after the user stops interacting with scrollbars.
2079
+ - `type`: `ScrollType` — Describes the nature of scrollbar visibility, similar to how the scrollbar preferences in MacOS control visibility of native scrollbars. `auto` - means that scrollbars are visible when content is overflowing on the corresponding orientation. <br> `always` - means that scrollbars are always visible regardless of whether the content is overflowing.<br> `scroll` - means that scrollbars are visible when the user is scrolling along its corresponding orientation.<br> `hover` - when the user is scrolling along its corresponding orientation and when the user is hovering over the scroll area.<br> `glimpse` - a hybrid approach that briefly shows scrollbars when the user enters the scroll area, then hides them until further interaction.
2080
+
2081
+ **Slots**
2082
+
2083
+ - `default`
2084
+
2085
+ **Source:** `src/components/scroll-area/scroll-area.vue`
2086
+
2087
+ **Example:** `src/components/scroll-area/stories/scroll-area.stories.ts`
2088
+
2089
+ ---
2090
+
2091
+ ## segmented-control
2092
+
2093
+ ### SegmentedControl
2094
+
2095
+ **Props**
2096
+
2097
+ - `as`: `AsTag | Component` — Element or component to render as.
2098
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2099
+ - `class`: `ClassValue`
2100
+ - `defaultValue`: `AcceptableValue | AcceptableValue[]` — The default active value of the item(s). Use when you do not need to control the state of the item(s).
2101
+ - `dir`: `Direction` — The reading direction of the combobox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.
2102
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with the toggle group and all its items.
2103
+ - `loop`: `boolean` — When `loop` and `rovingFocus` is `true`, keyboard navigation will loop from last item to first, and vice versa.
2104
+ - `modelValue`: `AcceptableValue | AcceptableValue[]` — The controlled value of the active item(s). Use this when you need to control the state of the items. Can be binded with `v-model`
2105
+ - `name`: `string` — The name of the field. Submitted with its owning form as part of a name/value pair.
2106
+ - `orientation`: `DataOrientation` — The orientation of the component, which determines how focus moves: `horizontal` for left/right arrows and `vertical` for up/down arrows.
2107
+ - `required`: `boolean` — When `true`, indicates that the user must set the value before the owning form can be submitted.
2108
+ - `rovingFocus`: `boolean` — When `false`, navigating through the items using arrow keys will be disabled.
2109
+
2110
+ **Events**
2111
+
2112
+ - `update:modelValue`: `[payload: AcceptableValue | AcceptableValue[]]`
2113
+
2114
+ **Slots**
2115
+
2116
+ - `default`
2117
+
2118
+ **Composes with:** `SegmentedControlItem`
2119
+
2120
+ **Source:** `src/components/segmented-control/segmented-control.vue`
2121
+
2122
+ **Example:** `src/components/segmented-control/stories/segmented-control.stories.ts`
2123
+
2124
+ ### SegmentedControlItem
2125
+
2126
+ **Props**
2127
+
2128
+ - `value`: `AcceptableValue` **(required)** — A string value for the toggle group item. All items within a toggle group should use a unique value.
2129
+ - `as`: `AsTag | Component` — Element or component to render as.
2130
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2131
+ - `class`: `ClassValue`
2132
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with the toggle.
2133
+
2134
+ **Slots**
2135
+
2136
+ - `default`
2137
+
2138
+ **Composes with:** `SegmentedControl`
2139
+
2140
+ **Source:** `src/components/segmented-control/segmented-control-item.vue`
2141
+
2142
+ **Example:** no story of its own — see `src/components/segmented-control/stories/segmented-control.stories.ts` for the group.
2143
+
2144
+ ---
2145
+
2146
+ ## select
2147
+
2148
+ ### Select
2149
+
2150
+ **Props**
2151
+
2152
+ - `autocomplete`: `string` — Native html input `autocomplete` attribute.
2153
+ - `by`: `string | ((a: AcceptableValue, b: AcceptableValue) => boolean)` — Use this to compare objects by a particular field, or pass your own comparison function for complete control over how objects are compared.
2154
+ - `class`: `ClassValue`
2155
+ - `defaultOpen`: `boolean` — The open state of the select when it is initially rendered. Use when you do not need to control its open state.
2156
+ - `defaultValue`: `AcceptableValue | AcceptableValue[]` — The value of the select when initially rendered. Use when you do not need to control the state of the Select
2157
+ - `dir`: `Direction` — The reading direction of the combobox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.
2158
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with Select
2159
+ - `modelValue`: `AcceptableValue | AcceptableValue[]` — The controlled value of the Select. Can be bind as `v-model`.
2160
+ - `multiple`: `boolean` — Whether multiple options can be selected or not.
2161
+ - `name`: `string` — The name of the field. Submitted with its owning form as part of a name/value pair.
2162
+ - `nullableValue`: `string` — The value of the hidden native select option when the model value is nullish.
2163
+ - `open`: `boolean` — The controlled open state of the Select. Can be bind as `v-model:open`.
2164
+ - `required`: `boolean` — When `true`, indicates that the user must set the value before the owning form can be submitted.
2165
+
2166
+ **Events**
2167
+
2168
+ - `update:modelValue`: `[value: AcceptableValue]`
2169
+ - `update:open`: `[value: boolean]`
2170
+
2171
+ **Slots**
2172
+
2173
+ - `default`
2174
+
2175
+ **Composes with:** `SelectContent`, `SelectGroup`, `SelectIcon`, `SelectItem`, `SelectLabel`, `SelectSeparator`, `SelectTrigger`, `SelectValue`
2176
+
2177
+ **Source:** `src/components/select/select.vue`
2178
+
2179
+ **Example:** `src/components/select/stories/select.stories.ts`
2180
+
2181
+ ### SelectContent
2182
+
2183
+ **Props**
2184
+
2185
+ - `align`: `start` | `center` | `end` — The preferred alignment against the trigger. May change when collisions occur.
2186
+ - `alignFlip`: `boolean` — Flip alignment when colliding with boundary. May only occur when `prioritizePosition` is true.
2187
+ - `alignOffset`: `number` — An offset in pixels from the `start` or `end` alignment options.
2188
+ - `arrowPadding`: `number` — The padding between the arrow and the edges of the content. If your content has border-radius, this will prevent it from overflowing the corners.
2189
+ - `as`: `AsTag | Component` — Element or component to render as.
2190
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2191
+ - `avoidCollisions`: `boolean` — When `true`, overrides the side and align preferences to prevent collisions with boundary edges.
2192
+ - `bodyLock`: `boolean` — The document.body will be lock, and scrolling will be disabled.
2193
+ - `class`: `ClassValue`
2194
+ - `collisionBoundary`: `Element | (Element | null)[] | null` — The element used as the collision boundary. By default this is the viewport, though you can provide additional element(s) to be included in this check.
2195
+ - `collisionPadding`: `number | Partial<Record<"top" | "right" | "bottom" | "left", number>>` — The distance in pixels from the boundary edges where collision detection should occur. Accepts a number (same for all sides), or a partial padding object, for example: { top: 20, left: 20 }.
2196
+ - `dir`: `Direction` — The reading direction of the popper content when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.
2197
+ - `disableOutsidePointerEvents`: `boolean` — When `true`, hover/focus/click interactions will be disabled on elements outside the `DismissableLayer`. Users will need to click twice on outside elements to interact with them: once to close the `DismissableLayer`, and again to trigger the element.
2198
+ - `disableUpdateOnLayoutShift`: `boolean` — Whether to disable the update position for the content when the layout shifted.
2199
+ - `forceMount`: `boolean` — Used to force mounting when more control is needed. Useful when controlling animation with Vue animation libraries.
2200
+ - `hideShiftedArrow`: `boolean` — When `true`, hides the arrow when it cannot be centered to the reference element.
2201
+ - `hideWhenDetached`: `boolean` — Whether to hide the content when the trigger becomes fully occluded.
2202
+ - `memoDependencies`: `unknown[]` — Reactive dependencies that should invalidate the memoized content subtree.
2203
+ - `position`: `popper` | `item-aligned` — The positioning mode to use `item-aligned (default)` - behaves similarly to a native MacOS menu by positioning content relative to the active item. <br> `popper` - positions content in the same way as our other primitives, for example `Popover` or `DropdownMenu`.
2204
+ - `positionStrategy`: `fixed` | `absolute` — The type of CSS position property to use.
2205
+ - `prioritizePosition`: `boolean` — Force content to be position within the viewport. Might overlap the reference element, which may not be desired.
2206
+ - `reference`: `ReferenceElement` — The custom element or virtual element that will be set as the reference to position the floating element. If provided, it will replace the default anchor element.
2207
+ - `side`: `top` | `right` | `bottom` | `left` — The preferred side of the trigger to render against when open. Will be reversed when collisions occur and avoidCollisions is enabled.
2208
+ - `sideFlip`: `boolean` — Flip to the opposite side when colliding with boundary.
2209
+ - `sideOffset`: `number` — The distance in pixels from the trigger.
2210
+ - `sticky`: `partial` | `always` — The sticky behavior on the align axis. `partial` will keep the content in the boundary as long as the trigger is at least partially in the boundary whilst "always" will keep the content in the boundary regardless.
2211
+ - `updatePositionStrategy`: `always` | `optimized` — Strategy to update the position of the floating element on every animation frame.
2212
+ - `width`: `full` | `fit` — default `"full"`
2213
+
2214
+ **Events**
2215
+
2216
+ - `escapeKeyDown`: `[event: KeyboardEvent]`
2217
+ - `pointerDownOutside`: `[event: PointerDownOutsideEvent]`
2218
+ - `closeAutoFocus`: `[event: Event]`
2219
+
2220
+ **Slots**
2221
+
2222
+ - `default`
2223
+
2224
+ **Composes with:** `Select`, `SelectGroup`, `SelectIcon`, `SelectItem`, `SelectLabel`, `SelectSeparator`, `SelectTrigger`, `SelectValue`
2225
+
2226
+ **Source:** `src/components/select/select-content.vue`
2227
+
2228
+ **Example:** no story of its own — see `src/components/select/stories/select.stories.ts` for the group.
2229
+
2230
+ ### SelectGroup
2231
+
2232
+ **Props**
2233
+
2234
+ - `as`: `AsTag | Component` — Element or component to render as.
2235
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2236
+ - `class`: `unknown`
2237
+
2238
+ **Slots**
2239
+
2240
+ - `default`
2241
+
2242
+ **Composes with:** `Select`, `SelectContent`, `SelectIcon`, `SelectItem`, `SelectLabel`, `SelectSeparator`, `SelectTrigger`, `SelectValue`
2243
+
2244
+ **Source:** `src/components/select/select-group.vue`
2245
+
2246
+ **Example:** no story of its own — see `src/components/select/stories/select.stories.ts` for the group.
2247
+
2248
+ ### SelectIcon
2249
+
2250
+ **Props**
2251
+
2252
+ - `class`: `ClassValue`
2253
+
2254
+ **Slots**
2255
+
2256
+ - `default`
2257
+
2258
+ **Composes with:** `Select`, `SelectContent`, `SelectGroup`, `SelectItem`, `SelectLabel`, `SelectSeparator`, `SelectTrigger`, `SelectValue`
2259
+
2260
+ **Source:** `src/components/select/select-icon.vue`
2261
+
2262
+ **Example:** no story of its own — see `src/components/select/stories/select.stories.ts` for the group.
2263
+
2264
+ ### SelectItem
2265
+
2266
+ **Props**
2267
+
2268
+ - `value`: `AcceptableValue` **(required)** — The value given as data when submitted with a `name`.
2269
+ - `as`: `AsTag | Component` — Element or component to render as.
2270
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2271
+ - `class`: `ClassValue`
2272
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with the item.
2273
+ - `textValue`: `string` — Optional text used for typeahead purposes. By default the typeahead behavior will use the `.textContent` of the `SelectItemText` part. Use this when the content is complex, or you have non-textual content inside.
2274
+
2275
+ **Slots**
2276
+
2277
+ - `default`
2278
+
2279
+ **Composes with:** `Select`, `SelectContent`, `SelectGroup`, `SelectIcon`, `SelectLabel`, `SelectSeparator`, `SelectTrigger`, `SelectValue`
2280
+
2281
+ **Source:** `src/components/select/select-item.vue`
2282
+
2283
+ **Example:** no story of its own — see `src/components/select/stories/select.stories.ts` for the group.
2284
+
2285
+ ### SelectLabel
2286
+
2287
+ **Props**
2288
+
2289
+ - `as`: `AsTag | Component` — Element or component to render as.
2290
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2291
+ - `class`: `ClassValue`
2292
+ - `for`: `string`
2293
+
2294
+ **Slots**
2295
+
2296
+ - `default`
2297
+
2298
+ **Composes with:** `Select`, `SelectContent`, `SelectGroup`, `SelectIcon`, `SelectItem`, `SelectSeparator`, `SelectTrigger`, `SelectValue`
2299
+
2300
+ **Source:** `src/components/select/select-label.vue`
2301
+
2302
+ **Example:** no story of its own — see `src/components/select/stories/select.stories.ts` for the group.
2303
+
2304
+ ### SelectSeparator
2305
+
2306
+ **Props**
2307
+
2308
+ - `as`: `AsTag | Component` — Element or component to render as.
2309
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2310
+ - `class`: `ClassValue`
2311
+
2312
+ **Composes with:** `Select`, `SelectContent`, `SelectGroup`, `SelectIcon`, `SelectItem`, `SelectLabel`, `SelectTrigger`, `SelectValue`
2313
+
2314
+ **Source:** `src/components/select/select-separator.vue`
2315
+
2316
+ **Example:** no story of its own — see `src/components/select/stories/select.stories.ts` for the group.
2317
+
2318
+ ### SelectTrigger
2319
+
2320
+ **Props**
2321
+
2322
+ - `as`: `AsTag | Component` — Element or component to render as.
2323
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2324
+ - `class`: `ClassValue`
2325
+ - `disabled`: `boolean`
2326
+ - `hasError`: `boolean`
2327
+ - `reference`: `ReferenceElement` — The reference (or anchor) element that is being referred to for positioning. If not provided will use the current component as anchor.
2328
+ - `size`: `xs` | `sm` | `md` — default `"md"`
2329
+ - `variant`: `default` | `compact` | `inline` — default `"default"`
2330
+
2331
+ **Slots**
2332
+
2333
+ - `default`
2334
+
2335
+ **Composes with:** `Select`, `SelectContent`, `SelectGroup`, `SelectIcon`, `SelectItem`, `SelectLabel`, `SelectSeparator`, `SelectValue`
2336
+
2337
+ **Source:** `src/components/select/select-trigger.vue`
2338
+
2339
+ **Example:** no story of its own — see `src/components/select/stories/select.stories.ts` for the group.
2340
+
2341
+ ### SelectValue
2342
+
2343
+ **Props**
2344
+
2345
+ - `as`: `AsTag | Component` — Element or component to render as.
2346
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2347
+ - `class`: `ClassValue`
2348
+ - `placeholder`: `string` — The content that will be rendered inside the `SelectValue` when no `value` or `defaultValue` is set.
2349
+
2350
+ **Slots**
2351
+
2352
+ - `default`
2353
+
2354
+ **Composes with:** `Select`, `SelectContent`, `SelectGroup`, `SelectIcon`, `SelectItem`, `SelectLabel`, `SelectSeparator`, `SelectTrigger`
2355
+
2356
+ **Source:** `src/components/select/select-value.vue`
2357
+
2358
+ **Example:** no story of its own — see `src/components/select/stories/select.stories.ts` for the group.
2359
+
2360
+ ---
2361
+
2362
+ ## sheet
2363
+
2364
+ ### Sheet
2365
+
2366
+ **Props**
2367
+
2368
+ - `class`: `unknown`
2369
+ - `defaultOpen`: `boolean` — The open state of the dialog when it is initially rendered. Use when you do not need to control its open state.
2370
+ - `modal`: `boolean` — The modality of the dialog When set to `true`, <br> interaction with outside elements will be disabled and only dialog content will be visible to screen readers.
2371
+ - `open`: `boolean` — The controlled open state of the dialog. Can be binded as `v-model:open`.
2372
+ - `unmountOnHide`: `boolean` — When set to `false`, the dialog content will not be unmounted when closed, but instead hidden with CSS. <br> Useful for SEO or when you want to improve performance by not remounting the component on every open.
2373
+
2374
+ **Events**
2375
+
2376
+ - `update:open`: `[value: boolean]`
2377
+
2378
+ **Slots**
2379
+
2380
+ - `default`
2381
+
2382
+ **Composes with:** `SheetClose`, `SheetContent`, `SheetDescription`, `SheetFooter`, `SheetHeader`, `SheetTitle`, `SheetTrigger`
2383
+
2384
+ **Source:** `src/components/sheet/sheet.vue`
2385
+
2386
+ **Example:** `src/components/sheet/stories/sheet.stories.ts`
2387
+
2388
+ ### SheetClose
2389
+
2390
+ **Props**
2391
+
2392
+ - `as`: `AsTag | Component` — Element or component to render as.
2393
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2394
+ - `class`: `ClassValue`
2395
+
2396
+ **Slots**
2397
+
2398
+ - `default`
2399
+
2400
+ **Composes with:** `Sheet`, `SheetContent`, `SheetDescription`, `SheetFooter`, `SheetHeader`, `SheetTitle`, `SheetTrigger`
2401
+
2402
+ **Source:** `src/components/sheet/sheet-close.vue`
2403
+
2404
+ **Example:** no story of its own — see `src/components/sheet/stories/sheet.stories.ts` for the group.
2405
+
2406
+ ### SheetContent
2407
+
2408
+ **Props**
2409
+
2410
+ - `as`: `AsTag | Component` — Element or component to render as.
2411
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2412
+ - `class`: `ClassValue`
2413
+ - `disableOutsidePointerEvents`: `boolean` — When `true`, hover/focus/click interactions will be disabled on elements outside the `DismissableLayer`. Users will need to click twice on outside elements to interact with them: once to close the `DismissableLayer`, and again to trigger the element.
2414
+ - `forceMount`: `boolean` — Used to force mounting when more control is needed. Useful when controlling animation with Vue animation libraries.
2415
+ - `side`: `top` | `right` | `bottom` | `left` — default `"right"`
2416
+
2417
+ **Events**
2418
+
2419
+ - `escapeKeyDown`: `[event: KeyboardEvent]`
2420
+ - `pointerDownOutside`: `[event: PointerDownOutsideEvent]`
2421
+ - `focusOutside`: `[event: FocusOutsideEvent]`
2422
+ - `interactOutside`: `[event: PointerDownOutsideEvent | FocusOutsideEvent]`
2423
+ - `openAutoFocus`: `[event: Event]`
2424
+ - `closeAutoFocus`: `[event: Event]`
2425
+
2426
+ **Slots**
2427
+
2428
+ - `default`
2429
+
2430
+ **Composes with:** `Sheet`, `SheetClose`, `SheetDescription`, `SheetFooter`, `SheetHeader`, `SheetTitle`, `SheetTrigger`
2431
+
2432
+ **Source:** `src/components/sheet/sheet-content.vue`
2433
+
2434
+ **Example:** no story of its own — see `src/components/sheet/stories/sheet.stories.ts` for the group.
2435
+
2436
+ ### SheetDescription
2437
+
2438
+ **Props**
2439
+
2440
+ - `as`: `AsTag | Component` — Element or component to render as.
2441
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2442
+ - `class`: `ClassValue`
2443
+
2444
+ **Slots**
2445
+
2446
+ - `default`
2447
+
2448
+ **Composes with:** `Sheet`, `SheetClose`, `SheetContent`, `SheetFooter`, `SheetHeader`, `SheetTitle`, `SheetTrigger`
2449
+
2450
+ **Source:** `src/components/sheet/sheet-description.vue`
2451
+
2452
+ **Example:** no story of its own — see `src/components/sheet/stories/sheet.stories.ts` for the group.
2453
+
2454
+ ### SheetFooter
2455
+
2456
+ **Props**
2457
+
2458
+ - `class`: `ClassValue`
2459
+
2460
+ **Slots**
2461
+
2462
+ - `default`
2463
+
2464
+ **Composes with:** `Sheet`, `SheetClose`, `SheetContent`, `SheetDescription`, `SheetHeader`, `SheetTitle`, `SheetTrigger`
2465
+
2466
+ **Source:** `src/components/sheet/sheet-footer.vue`
2467
+
2468
+ **Example:** no story of its own — see `src/components/sheet/stories/sheet.stories.ts` for the group.
2469
+
2470
+ ### SheetHeader
2471
+
2472
+ **Props**
2473
+
2474
+ - `class`: `ClassValue`
2475
+
2476
+ **Slots**
2477
+
2478
+ - `default`
2479
+
2480
+ **Composes with:** `Sheet`, `SheetClose`, `SheetContent`, `SheetDescription`, `SheetFooter`, `SheetTitle`, `SheetTrigger`
2481
+
2482
+ **Source:** `src/components/sheet/sheet-header.vue`
2483
+
2484
+ **Example:** no story of its own — see `src/components/sheet/stories/sheet.stories.ts` for the group.
2485
+
2486
+ ### SheetTitle
2487
+
2488
+ **Props**
2489
+
2490
+ - `as`: `AsTag | Component` — Element or component to render as.
2491
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2492
+ - `class`: `ClassValue`
2493
+
2494
+ **Slots**
2495
+
2496
+ - `default`
2497
+
2498
+ **Composes with:** `Sheet`, `SheetClose`, `SheetContent`, `SheetDescription`, `SheetFooter`, `SheetHeader`, `SheetTrigger`
2499
+
2500
+ **Source:** `src/components/sheet/sheet-title.vue`
2501
+
2502
+ **Example:** no story of its own — see `src/components/sheet/stories/sheet.stories.ts` for the group.
2503
+
2504
+ ### SheetTrigger
2505
+
2506
+ **Props**
2507
+
2508
+ - `as`: `AsTag | Component` — Element or component to render as.
2509
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2510
+ - `class`: `unknown`
2511
+
2512
+ **Slots**
2513
+
2514
+ - `default`
2515
+
2516
+ **Composes with:** `Sheet`, `SheetClose`, `SheetContent`, `SheetDescription`, `SheetFooter`, `SheetHeader`, `SheetTitle`
2517
+
2518
+ **Source:** `src/components/sheet/sheet-trigger.vue`
2519
+
2520
+ **Example:** no story of its own — see `src/components/sheet/stories/sheet.stories.ts` for the group.
2521
+
2522
+ ---
2523
+
2524
+ ## sidebar
2525
+
2526
+ ### Sidebar
2527
+
2528
+ **Props**
2529
+
2530
+ - `class`: `ClassValue`
2531
+ - `collapsible`: `icon` | `none` | `offcanvas` — default `"offcanvas"`
2532
+ - `variant`: `sidebar` | `floating` | `inset` — default `"sidebar"`
2533
+
2534
+ **Slots**
2535
+
2536
+ - `default`
2537
+
2538
+ **Composes with:** `SidebarContent`, `SidebarElement`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarSeparator`, `SidebarTrigger`
2539
+
2540
+ **Source:** `src/components/sidebar/sidebar.vue`
2541
+
2542
+ **Example:** `src/components/sidebar/stories/sidebar.stories.ts`
2543
+
2544
+ ### SidebarContent
2545
+
2546
+ **Props**
2547
+
2548
+ - `class`: `ClassValue`
2549
+
2550
+ **Slots**
2551
+
2552
+ - `default`
2553
+
2554
+ **Composes with:** `Sidebar`, `SidebarElement`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarSeparator`, `SidebarTrigger`
2555
+
2556
+ **Source:** `src/components/sidebar/sidebar-content.vue`
2557
+
2558
+ **Example:** no story of its own — see `src/components/sidebar/stories/sidebar.stories.ts` for the group.
2559
+
2560
+ ### SidebarElement
2561
+
2562
+ **Props**
2563
+
2564
+ - `as`: `AsTag | Component` — default `"div"` — Element or component to render as.
2565
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2566
+ - `class`: `ClassValue`
2567
+
2568
+ **Slots**
2569
+
2570
+ - `default`
2571
+
2572
+ **Composes with:** `Sidebar`, `SidebarContent`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarSeparator`, `SidebarTrigger`
2573
+
2574
+ **Source:** `src/components/sidebar/sidebar-element.vue`
2575
+
2576
+ **Example:** no story of its own — see `src/components/sidebar/stories/sidebar.stories.ts` for the group.
2577
+
2578
+ ### SidebarFooter
2579
+
2580
+ **Props**
2581
+
2582
+ - `class`: `ClassValue`
2583
+
2584
+ **Slots**
2585
+
2586
+ - `default`
2587
+
2588
+ **Composes with:** `Sidebar`, `SidebarContent`, `SidebarElement`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarSeparator`, `SidebarTrigger`
2589
+
2590
+ **Source:** `src/components/sidebar/sidebar-footer.vue`
2591
+
2592
+ **Example:** no story of its own — see `src/components/sidebar/stories/sidebar.stories.ts` for the group.
2593
+
2594
+ ### SidebarGroup
2595
+
2596
+ **Props**
2597
+
2598
+ - `class`: `ClassValue`
2599
+
2600
+ **Slots**
2601
+
2602
+ - `default`
2603
+
2604
+ **Composes with:** `Sidebar`, `SidebarContent`, `SidebarElement`, `SidebarFooter`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarSeparator`, `SidebarTrigger`
2605
+
2606
+ **Source:** `src/components/sidebar/sidebar-group.vue`
2607
+
2608
+ **Example:** no story of its own — see `src/components/sidebar/stories/sidebar.stories.ts` for the group.
2609
+
2610
+ ### SidebarGroupContent
2611
+
2612
+ **Props**
2613
+
2614
+ - `class`: `ClassValue`
2615
+
2616
+ **Slots**
2617
+
2618
+ - `default`
2619
+
2620
+ **Composes with:** `Sidebar`, `SidebarContent`, `SidebarElement`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarSeparator`, `SidebarTrigger`
2621
+
2622
+ **Source:** `src/components/sidebar/sidebar-group-content.vue`
2623
+
2624
+ **Example:** no story of its own — see `src/components/sidebar/stories/sidebar.stories.ts` for the group.
2625
+
2626
+ ### SidebarGroupLabel
2627
+
2628
+ **Props**
2629
+
2630
+ - `as`: `AsTag | Component` — Element or component to render as.
2631
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2632
+ - `class`: `ClassValue`
2633
+
2634
+ **Slots**
2635
+
2636
+ - `default`
2637
+
2638
+ **Composes with:** `Sidebar`, `SidebarContent`, `SidebarElement`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarHeader`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarSeparator`, `SidebarTrigger`
2639
+
2640
+ **Source:** `src/components/sidebar/sidebar-group-label.vue`
2641
+
2642
+ **Example:** no story of its own — see `src/components/sidebar/stories/sidebar.stories.ts` for the group.
2643
+
2644
+ ### SidebarHeader
2645
+
2646
+ **Props**
2647
+
2648
+ - `class`: `ClassValue`
2649
+
2650
+ **Slots**
2651
+
2652
+ - `default`
2653
+
2654
+ **Composes with:** `Sidebar`, `SidebarContent`, `SidebarElement`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarSeparator`, `SidebarTrigger`
2655
+
2656
+ **Source:** `src/components/sidebar/sidebar-header.vue`
2657
+
2658
+ **Example:** no story of its own — see `src/components/sidebar/stories/sidebar.stories.ts` for the group.
2659
+
2660
+ ### SidebarMenu
2661
+
2662
+ **Props**
2663
+
2664
+ - `class`: `ClassValue`
2665
+
2666
+ **Slots**
2667
+
2668
+ - `default`
2669
+
2670
+ **Composes with:** `Sidebar`, `SidebarContent`, `SidebarElement`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarSeparator`, `SidebarTrigger`
2671
+
2672
+ **Source:** `src/components/sidebar/sidebar-menu.vue`
2673
+
2674
+ **Example:** no story of its own — see `src/components/sidebar/stories/sidebar.stories.ts` for the group.
2675
+
2676
+ ### SidebarMenuAction
2677
+
2678
+ **Props**
2679
+
2680
+ - `as`: `AsTag | Component` — default `"button"` — Element or component to render as.
2681
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2682
+ - `class`: `ClassValue`
2683
+ - `showOnHover`: `boolean`
2684
+
2685
+ **Slots**
2686
+
2687
+ - `default`
2688
+
2689
+ **Composes with:** `Sidebar`, `SidebarContent`, `SidebarElement`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarMenu`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarSeparator`, `SidebarTrigger`
2690
+
2691
+ **Source:** `src/components/sidebar/sidebar-menu-action.vue`
2692
+
2693
+ **Example:** no story of its own — see `src/components/sidebar/stories/sidebar.stories.ts` for the group.
2694
+
2695
+ ### SidebarMenuBadge
2696
+
2697
+ **Props**
2698
+
2699
+ - `class`: `ClassValue`
2700
+ - `label`: `string`
2701
+ - `size`: `sm` | `md` — default `"sm"`
2702
+ - `state`: `information` | `success` | `warning` | `error` | `feature` | `faded` | `away` | `verified` | `highlighted` | `stable` — default `"faded"`
2703
+ - `variant`: `fill` | `light` | `lighter` | `stroke` — default `"lighter"`
2704
+
2705
+ **Composes with:** `Sidebar`, `SidebarContent`, `SidebarElement`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarSeparator`, `SidebarTrigger`
2706
+
2707
+ **Source:** `src/components/sidebar/sidebar-menu-badge.vue`
2708
+
2709
+ **Example:** no story of its own — see `src/components/sidebar/stories/sidebar.stories.ts` for the group.
2710
+
2711
+ ### SidebarMenuButton
2712
+
2713
+ **Props**
2714
+
2715
+ - `as`: `AsTag | Component` — default `"button"` — Element or component to render as.
2716
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2717
+ - `class`: `ClassValue`
2718
+ - `isActive`: `boolean` — default `false`
2719
+ - `variant`: `default` | `outline` — default `"default"`
2720
+
2721
+ **Slots**
2722
+
2723
+ - `default`
2724
+
2725
+ **Composes with:** `Sidebar`, `SidebarContent`, `SidebarElement`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuItem`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarSeparator`, `SidebarTrigger`
2726
+
2727
+ **Source:** `src/components/sidebar/sidebar-menu-button.vue`
2728
+
2729
+ **Example:** no story of its own — see `src/components/sidebar/stories/sidebar.stories.ts` for the group.
2730
+
2731
+ ### SidebarMenuItem
2732
+
2733
+ **Props**
2734
+
2735
+ - `class`: `ClassValue`
2736
+
2737
+ **Slots**
2738
+
2739
+ - `default`
2740
+
2741
+ **Composes with:** `Sidebar`, `SidebarContent`, `SidebarElement`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarSeparator`, `SidebarTrigger`
2742
+
2743
+ **Source:** `src/components/sidebar/sidebar-menu-item.vue`
2744
+
2745
+ **Example:** no story of its own — see `src/components/sidebar/stories/sidebar.stories.ts` for the group.
2746
+
2747
+ ### SidebarMenuSub
2748
+
2749
+ **Props**
2750
+
2751
+ - `class`: `ClassValue`
2752
+
2753
+ **Slots**
2754
+
2755
+ - `default`
2756
+
2757
+ **Composes with:** `Sidebar`, `SidebarContent`, `SidebarElement`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarSeparator`, `SidebarTrigger`
2758
+
2759
+ **Source:** `src/components/sidebar/sidebar-menu-sub.vue`
2760
+
2761
+ **Example:** no story of its own — see `src/components/sidebar/stories/sidebar.stories.ts` for the group.
2762
+
2763
+ ### SidebarMenuSubButton
2764
+
2765
+ **Props**
2766
+
2767
+ - `as`: `AsTag | Component` — default `"a"` — Element or component to render as.
2768
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2769
+ - `class`: `ClassValue`
2770
+ - `isActive`: `boolean` — default `false`
2771
+ - `size`: `sm` | `md` — default `"md"`
2772
+
2773
+ **Slots**
2774
+
2775
+ - `default`
2776
+
2777
+ **Composes with:** `Sidebar`, `SidebarContent`, `SidebarElement`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSub`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarSeparator`, `SidebarTrigger`
2778
+
2779
+ **Source:** `src/components/sidebar/sidebar-menu-sub-button.vue`
2780
+
2781
+ **Example:** no story of its own — see `src/components/sidebar/stories/sidebar.stories.ts` for the group.
2782
+
2783
+ ### SidebarMenuSubItem
2784
+
2785
+ **Props**
2786
+
2787
+ - `class`: `ClassValue`
2788
+
2789
+ **Slots**
2790
+
2791
+ - `default`
2792
+
2793
+ **Composes with:** `Sidebar`, `SidebarContent`, `SidebarElement`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarProvider`, `SidebarSeparator`, `SidebarTrigger`
2794
+
2795
+ **Source:** `src/components/sidebar/sidebar-menu-sub-item.vue`
2796
+
2797
+ **Example:** no story of its own — see `src/components/sidebar/stories/sidebar.stories.ts` for the group.
2798
+
2799
+ ### SidebarProvider
2800
+
2801
+ **Props**
2802
+
2803
+ - `class`: `ClassValue`
2804
+ - `defaultOpen`: `boolean` — default `!defaultDocument?.cookie.includes(`${SIDEBAR_COOKIE_NAME}=false`)`
2805
+ - `open`: `boolean` — default `undefined`
2806
+
2807
+ **Events**
2808
+
2809
+ - `update:open`: `[open: boolean]`
2810
+
2811
+ **Slots**
2812
+
2813
+ - `default`
2814
+
2815
+ **Composes with:** `Sidebar`, `SidebarContent`, `SidebarElement`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarSeparator`, `SidebarTrigger`
2816
+
2817
+ **Source:** `src/components/sidebar/sidebar-provider.vue`
2818
+
2819
+ **Example:** no story of its own — see `src/components/sidebar/stories/sidebar.stories.ts` for the group.
2820
+
2821
+ ### SidebarSeparator
2822
+
2823
+ **Props**
2824
+
2825
+ - `class`: `ClassValue`
2826
+
2827
+ **Composes with:** `Sidebar`, `SidebarContent`, `SidebarElement`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarTrigger`
2828
+
2829
+ **Source:** `src/components/sidebar/sidebar-separator.vue`
2830
+
2831
+ **Example:** no story of its own — see `src/components/sidebar/stories/sidebar.stories.ts` for the group.
2832
+
2833
+ ### SidebarTrigger
2834
+
2835
+ **Props**
2836
+
2837
+ - `class`: `ClassValue`
2838
+
2839
+ **Composes with:** `Sidebar`, `SidebarContent`, `SidebarElement`, `SidebarFooter`, `SidebarGroup`, `SidebarGroupContent`, `SidebarGroupLabel`, `SidebarHeader`, `SidebarMenu`, `SidebarMenuAction`, `SidebarMenuBadge`, `SidebarMenuButton`, `SidebarMenuItem`, `SidebarMenuSub`, `SidebarMenuSubButton`, `SidebarMenuSubItem`, `SidebarProvider`, `SidebarSeparator`
2840
+
2841
+ **Source:** `src/components/sidebar/sidebar-trigger.vue`
2842
+
2843
+ **Example:** no story of its own — see `src/components/sidebar/stories/sidebar.stories.ts` for the group.
2844
+
2845
+ ---
2846
+
2847
+ ## slider
2848
+
2849
+ ### Slider
2850
+
2851
+ **Props**
2852
+
2853
+ - `as`: `AsTag | Component` — Element or component to render as.
2854
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2855
+ - `class`: `ClassValue`
2856
+ - `defaultValue`: `number[]` — The value of the slider when initially rendered. Use when you do not need to control the state of the slider.
2857
+ - `dir`: `Direction` — The reading direction of the combobox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.
2858
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with the slider.
2859
+ - `inverted`: `boolean` — Whether the slider is visually inverted.
2860
+ - `max`: `number` — The maximum value for the range.
2861
+ - `min`: `number` — The minimum value for the range.
2862
+ - `minStepsBetweenThumbs`: `number` — The minimum permitted steps between multiple thumbs.
2863
+ - `modelValue`: `number[] | null` — The controlled value of the slider. Can be bind as `v-model`.
2864
+ - `name`: `string` — The name of the field. Submitted with its owning form as part of a name/value pair.
2865
+ - `required`: `boolean` — When `true`, indicates that the user must set the value before the owning form can be submitted.
2866
+ - `step`: `number` — The stepping interval.
2867
+ - `thumbAlignment`: `ThumbAlignment` — The alignment of the slider thumb. - `contain`: thumbs will be contained within the bounds of the track. - `overflow`: thumbs will not be bound by the track. No extra offset will be added.
2868
+
2869
+ **Events**
2870
+
2871
+ - `update:modelValue`: `[payload: number[] | undefined]`
2872
+ - `valueCommit`: `[payload: number[]]`
2873
+
2874
+ **Source:** `src/components/slider/slider.vue`
2875
+
2876
+ **Example:** `src/components/slider/stories/slider.stories.ts`
2877
+
2878
+ ---
2879
+
2880
+ ## sonner
2881
+
2882
+ ### Sonner
2883
+
2884
+ **Props**
2885
+
2886
+ - `class`: `string`
2887
+ - `closeButton`: `boolean`
2888
+ - `closeButtonPosition`: `CloseButtonPosition`
2889
+ - `containerAriaLabel`: `string`
2890
+ - `dir`: `ltr` | `rtl` | `auto`
2891
+ - `duration`: `number`
2892
+ - `expand`: `boolean`
2893
+ - `gap`: `number`
2894
+ - `hotkey`: `string[]`
2895
+ - `icons`: `ToastIcons`
2896
+ - `id`: `string`
2897
+ - `invert`: `boolean`
2898
+ - `mobileOffset`: `Offset`
2899
+ - `offset`: `Offset`
2900
+ - `position`: `Position`
2901
+ - `richColors`: `boolean`
2902
+ - `swipeDirections`: `SwipeDirection[]`
2903
+ - `theme`: `Theme`
2904
+ - `toastOptions`: `ToastOptions`
2905
+ - `visibleToasts`: `number`
2906
+
2907
+ **Composes with:** `SonnerAlert`
2908
+
2909
+ **Source:** `src/components/sonner/sonner.vue`
2910
+
2911
+ **Example:** `src/components/sonner/stories/sonner.stories.ts`
2912
+
2913
+ ### SonnerAlert
2914
+
2915
+ **Props**
2916
+
2917
+ - `title`: `string` **(required)**
2918
+ - `class`: `ClassValue`
2919
+ - `description`: `string`
2920
+ - `dismissable`: `boolean` — default `true`
2921
+ - `onDismiss`: `(() => void)`
2922
+ - `size`: `xs` | `sm` | `lg` — default `"lg"`
2923
+ - `state`: `information` | `success` | `warning` | `error` | `feature` — default `"success"`
2924
+ - `variant`: `fill` | `light` | `lighter` | `stroke` — default `"stroke"`
2925
+
2926
+ **Composes with:** `Sonner`
2927
+
2928
+ **Source:** `src/components/sonner/sonner-alert.vue`
2929
+
2930
+ **Example:** no story of its own — see `src/components/sonner/stories/sonner.stories.ts` for the group.
2931
+
2932
+ ---
2933
+
2934
+ ## switch
2935
+
2936
+ ### Switch
2937
+
2938
+ **Props**
2939
+
2940
+ - `as`: `AsTag | Component` — Element or component to render as.
2941
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2942
+ - `class`: `ClassValue`
2943
+ - `defaultValue`: `boolean` — The state of the switch when it is initially rendered. Use when you do not need to control its state.
2944
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with the switch.
2945
+ - `falseValue`: `boolean` — The value used when the switch is off. Defaults to `false`.
2946
+ - `id`: `string`
2947
+ - `modelValue`: `boolean | null` — The controlled state of the switch. Can be bind as `v-model`.
2948
+ - `name`: `string` — The name of the field. Submitted with its owning form as part of a name/value pair.
2949
+ - `required`: `boolean` — When `true`, indicates that the user must set the value before the owning form can be submitted.
2950
+ - `trueValue`: `boolean` — The value used when the switch is on. Defaults to `true`.
2951
+ - `value`: `string` — The value given as data when submitted with a `name`.
2952
+
2953
+ **Events**
2954
+
2955
+ - `update:modelValue`: `[payload: boolean]`
2956
+
2957
+ **Source:** `src/components/switch/switch.vue`
2958
+
2959
+ **Example:** `src/components/switch/stories/switch.stories.ts`
2960
+
2961
+ ---
2962
+
2963
+ ## tab-menu
2964
+
2965
+ ### TabMenu
2966
+
2967
+ **Props**
2968
+
2969
+ - `activationMode`: `automatic` | `manual` — Whether a tab is activated automatically (on focus) or manually (on click).
2970
+ - `as`: `AsTag | Component` — Element or component to render as.
2971
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
2972
+ - `class`: `unknown`
2973
+ - `defaultValue`: `StringOrNumber` — The value of the tab that should be active when initially rendered. Use when you do not need to control the state of the tabs
2974
+ - `dir`: `Direction` — The reading direction of the combobox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.
2975
+ - `modelValue`: `StringOrNumber` — The controlled value of the tab to activate. Can be bind as `v-model`.
2976
+ - `orientation`: `DataOrientation` — The orientation the tabs are laid out. Mainly so arrow navigation is done accordingly (left & right vs. up & down)
2977
+ - `unmountOnHide`: `boolean` — When `true`, the element will be unmounted on closed state.
2978
+
2979
+ **Events**
2980
+
2981
+ - `update:modelValue`: `[payload: StringOrNumber]`
2982
+
2983
+ **Slots**
2984
+
2985
+ - `default`
2986
+
2987
+ **Composes with:** `TabMenuContent`, `TabMenuItem`, `TabMenuList`
2988
+
2989
+ **Source:** `src/components/tab-menu/tab-menu.vue`
2990
+
2991
+ **Example:** `src/components/tab-menu/stories/tab-menu.stories.ts`
2992
+
2993
+ ### TabMenuContent
2994
+
2995
+ **Props**
2996
+
2997
+ - `value`: `StringOrNumber` **(required)** — A unique value that associates the content with a trigger.
2998
+ - `as`: `AsTag | Component` — Element or component to render as.
2999
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
3000
+ - `class`: `ClassValue`
3001
+ - `forceMount`: `boolean` — Used to force mounting when more control is needed. Useful when controlling animation with Vue animation libraries.
3002
+
3003
+ **Slots**
3004
+
3005
+ - `default`
3006
+
3007
+ **Composes with:** `TabMenu`, `TabMenuItem`, `TabMenuList`
3008
+
3009
+ **Source:** `src/components/tab-menu/tab-menu-content.vue`
3010
+
3011
+ **Example:** no story of its own — see `src/components/tab-menu/stories/tab-menu.stories.ts` for the group.
3012
+
3013
+ ### TabMenuItem
3014
+
3015
+ **Props**
3016
+
3017
+ - `value`: `StringOrNumber` **(required)** — A unique value that associates the trigger with a content.
3018
+ - `as`: `AsTag | Component` — Element or component to render as.
3019
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
3020
+ - `class`: `ClassValue`
3021
+ - `disabled`: `boolean` — When `true`, prevents the user from interacting with the tab.
3022
+
3023
+ **Slots**
3024
+
3025
+ - `prefix`
3026
+ - `default`
3027
+ - `postfix`
3028
+
3029
+ **Composes with:** `TabMenu`, `TabMenuContent`, `TabMenuList`
3030
+
3031
+ **Source:** `src/components/tab-menu/tab-menu-item.vue`
3032
+
3033
+ **Example:** no story of its own — see `src/components/tab-menu/stories/tab-menu.stories.ts` for the group.
3034
+
3035
+ ### TabMenuList
3036
+
3037
+ **Props**
3038
+
3039
+ - `as`: `AsTag | Component` — Element or component to render as.
3040
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
3041
+ - `class`: `ClassValue`
3042
+ - `loop`: `boolean` — When `true`, keyboard navigation will loop from last tab to first, and vice versa.
3043
+
3044
+ **Slots**
3045
+
3046
+ - `default`
3047
+
3048
+ **Composes with:** `TabMenu`, `TabMenuContent`, `TabMenuItem`
3049
+
3050
+ **Source:** `src/components/tab-menu/tab-menu-list.vue`
3051
+
3052
+ **Example:** no story of its own — see `src/components/tab-menu/stories/tab-menu.stories.ts` for the group.
3053
+
3054
+ ---
3055
+
3056
+ ## table
3057
+
3058
+ ### Table
3059
+
3060
+ **Props**
3061
+
3062
+ - `class`: `ClassValue`
3063
+
3064
+ **Slots**
3065
+
3066
+ - `default`
3067
+
3068
+ **Composes with:** `TableBody`, `TableCaption`, `TableCell`, `TableEmpty`, `TableFooter`, `TableHead`, `TableHeader`, `TableRow`
3069
+
3070
+ **Source:** `src/components/table/table.vue`
3071
+
3072
+ **Example:** `src/components/table/stories/table.stories.ts`
3073
+
3074
+ ### TableBody
3075
+
3076
+ **Props**
3077
+
3078
+ - `class`: `ClassValue`
3079
+
3080
+ **Slots**
3081
+
3082
+ - `default`
3083
+
3084
+ **Composes with:** `Table`, `TableCaption`, `TableCell`, `TableEmpty`, `TableFooter`, `TableHead`, `TableHeader`, `TableRow`
3085
+
3086
+ **Source:** `src/components/table/table-body.vue`
3087
+
3088
+ **Example:** no story of its own — see `src/components/table/stories/table.stories.ts` for the group.
3089
+
3090
+ ### TableCaption
3091
+
3092
+ **Props**
3093
+
3094
+ - `class`: `ClassValue`
3095
+
3096
+ **Slots**
3097
+
3098
+ - `default`
3099
+
3100
+ **Composes with:** `Table`, `TableBody`, `TableCell`, `TableEmpty`, `TableFooter`, `TableHead`, `TableHeader`, `TableRow`
3101
+
3102
+ **Source:** `src/components/table/table-caption.vue`
3103
+
3104
+ **Example:** no story of its own — see `src/components/table/stories/table.stories.ts` for the group.
3105
+
3106
+ ### TableCell
3107
+
3108
+ **Props**
3109
+
3110
+ - `class`: `ClassValue`
3111
+ - `end`: `boolean` — default `false`
3112
+
3113
+ **Slots**
3114
+
3115
+ - `default`
3116
+
3117
+ **Composes with:** `Table`, `TableBody`, `TableCaption`, `TableEmpty`, `TableFooter`, `TableHead`, `TableHeader`, `TableRow`
3118
+
3119
+ **Source:** `src/components/table/table-cell.vue`
3120
+
3121
+ **Example:** no story of its own — see `src/components/table/stories/table.stories.ts` for the group.
3122
+
3123
+ ### TableEmpty
3124
+
3125
+ **Props**
3126
+
3127
+ - `class`: `ClassValue`
3128
+ - `colspan`: `number` — default `1`
3129
+
3130
+ **Slots**
3131
+
3132
+ - `default`
3133
+
3134
+ **Composes with:** `Table`, `TableBody`, `TableCaption`, `TableCell`, `TableFooter`, `TableHead`, `TableHeader`, `TableRow`
3135
+
3136
+ **Source:** `src/components/table/table-empty.vue`
3137
+
3138
+ **Example:** no story of its own — see `src/components/table/stories/table.stories.ts` for the group.
3139
+
3140
+ ### TableFooter
3141
+
3142
+ **Props**
3143
+
3144
+ - `class`: `ClassValue`
3145
+
3146
+ **Slots**
3147
+
3148
+ - `default`
3149
+
3150
+ **Composes with:** `Table`, `TableBody`, `TableCaption`, `TableCell`, `TableEmpty`, `TableHead`, `TableHeader`, `TableRow`
3151
+
3152
+ **Source:** `src/components/table/table-footer.vue`
3153
+
3154
+ **Example:** no story of its own — see `src/components/table/stories/table.stories.ts` for the group.
3155
+
3156
+ ### TableHead
3157
+
3158
+ **Props**
3159
+
3160
+ - `class`: `ClassValue`
3161
+ - `end`: `boolean` — default `false`
3162
+
3163
+ **Slots**
3164
+
3165
+ - `default`
3166
+
3167
+ **Composes with:** `Table`, `TableBody`, `TableCaption`, `TableCell`, `TableEmpty`, `TableFooter`, `TableHeader`, `TableRow`
3168
+
3169
+ **Source:** `src/components/table/table-head.vue`
3170
+
3171
+ **Example:** no story of its own — see `src/components/table/stories/table.stories.ts` for the group.
3172
+
3173
+ ### TableHeader
3174
+
3175
+ **Props**
3176
+
3177
+ - `class`: `ClassValue`
3178
+
3179
+ **Slots**
3180
+
3181
+ - `default`
3182
+
3183
+ **Composes with:** `Table`, `TableBody`, `TableCaption`, `TableCell`, `TableEmpty`, `TableFooter`, `TableHead`, `TableRow`
3184
+
3185
+ **Source:** `src/components/table/table-header.vue`
3186
+
3187
+ **Example:** no story of its own — see `src/components/table/stories/table.stories.ts` for the group.
3188
+
3189
+ ### TableRow
3190
+
3191
+ **Props**
3192
+
3193
+ - `class`: `ClassValue`
3194
+ - `hoverable`: `boolean` — default `true`
3195
+
3196
+ **Slots**
3197
+
3198
+ - `default`
3199
+
3200
+ **Composes with:** `Table`, `TableBody`, `TableCaption`, `TableCell`, `TableEmpty`, `TableFooter`, `TableHead`, `TableHeader`
3201
+
3202
+ **Source:** `src/components/table/table-row.vue`
3203
+
3204
+ **Example:** no story of its own — see `src/components/table/stories/table.stories.ts` for the group.
3205
+
3206
+ ---
3207
+
3208
+ ## tag
3209
+
3210
+ ### Tag
3211
+
3212
+ **Props**
3213
+
3214
+ - `as`: `AsTag | Component` — default `"div"` — Element or component to render as.
3215
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
3216
+ - `class`: `ClassValue`
3217
+ - `disabled`: `boolean`
3218
+ - `dismissable`: `boolean` — default `false`
3219
+ - `variant`: `stroke` | `gray` — default `"stroke"`
3220
+
3221
+ **Events**
3222
+
3223
+ - `dismiss`: `[]`
3224
+
3225
+ **Slots**
3226
+
3227
+ - `default`
3228
+
3229
+ **Source:** `src/components/tag/tag.vue`
3230
+
3231
+ **Example:** `src/components/tag/stories/tag.stories.ts`
3232
+
3233
+ ---
3234
+
3235
+ ## text-input
3236
+
3237
+ ### TextInput
3238
+
3239
+ **Props**
3240
+
3241
+ - `autocomplete`: `string`
3242
+ - `class`: `ClassValue`
3243
+ - `hasError`: `boolean` — default `false`
3244
+ - `modelValue`: `string | number`
3245
+ - `size`: `xs` | `sm` | `md` — default `"md"`
3246
+ - `type`: `search` | `text` | `email` | `password` | `tel` | `url` | `date` — default `"text"`
3247
+
3248
+ **Events**
3249
+
3250
+ - `update:modelValue`: `[value: string | number | undefined]`
3251
+
3252
+ **Slots**
3253
+
3254
+ - `leadingIcon`
3255
+ - `leadingNode`
3256
+ - `leadingInlineNode`
3257
+ - `trailingIcon`
3258
+ - `trailingNode`
3259
+ - `trailingInlineNode`
3260
+
3261
+ **Composes with:** `TextInputAffix`, `TextInputButton`
3262
+
3263
+ **Source:** `src/components/text-input/text-input.vue`
3264
+
3265
+ **Example:** `src/components/text-input/stories/text-input.stories.ts`
3266
+
3267
+ ### TextInputAffix
3268
+
3269
+ **Props**
3270
+
3271
+ - `asKbd`: `boolean`
3272
+ - `class`: `ClassValue`
3273
+ - `inline`: `boolean`
3274
+
3275
+ **Slots**
3276
+
3277
+ - `default`
3278
+
3279
+ **Composes with:** `TextInput`, `TextInputButton`
3280
+
3281
+ **Source:** `src/components/text-input/text-input-affix.vue`
3282
+
3283
+ **Example:** no story of its own — see `src/components/text-input/stories/text-input.stories.ts` for the group.
3284
+
3285
+ ### TextInputButton
3286
+
3287
+ **Props**
3288
+
3289
+ - `as`: `AsTag | Component` — Element or component to render as.
3290
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
3291
+ - `class`: `ClassValue`
3292
+ - `inline`: `boolean` — default `false`
3293
+ - `intent`: `error` | `primary` | `neutral`
3294
+
3295
+ **Slots**
3296
+
3297
+ - `default`
3298
+
3299
+ **Composes with:** `TextInput`, `TextInputAffix`
3300
+
3301
+ **Source:** `src/components/text-input/text-input-button.vue`
3302
+
3303
+ **Example:** no story of its own — see `src/components/text-input/stories/text-input.stories.ts` for the group.
3304
+
3305
+ ---
3306
+
3307
+ ## textarea
3308
+
3309
+ ### Textarea
3310
+
3311
+ **Props**
3312
+
3313
+ - `class`: `ClassValue`
3314
+ - `disabled`: `boolean` — default `false`
3315
+ - `maxLength`: `Numberish`
3316
+ - `modelValue`: `string`
3317
+ - `placeholder`: `string` — default `"Placeholder"`
3318
+ - `showCount`: `boolean` — default `true`
3319
+
3320
+ **Events**
3321
+
3322
+ - `update:modelValue`: `[value: string | undefined]`
3323
+
3324
+ **Source:** `src/components/textarea/textarea.vue`
3325
+
3326
+ **Example:** `src/components/textarea/stories/textarea.stories.ts`
3327
+
3328
+ ---
3329
+
3330
+ ## tooltip
3331
+
3332
+ ### Tooltip
3333
+
3334
+ **Props**
3335
+
3336
+ - `align`: `start` | `center` | `end` — The preferred alignment against the trigger. May change when collisions occur.
3337
+ - `alignOffset`: `number` — An offset in pixels from the `start` or `end` alignment options.
3338
+ - `ariaLabel`: `string` — By default, screenreaders will announce the content inside the component. If this is not descriptive enough, or you have content that cannot be announced, use aria-label as a more descriptive label.
3339
+ - `arrowPadding`: `number` — The padding between the arrow and the edges of the content. If your content has border-radius, this will prevent it from overflowing the corners.
3340
+ - `as`: `AsTag | Component` — Element or component to render as.
3341
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
3342
+ - `avoidCollisions`: `boolean` — When `true`, overrides the side and align preferences to prevent collisions with boundary edges.
3343
+ - `class`: `ClassValue`
3344
+ - `collisionBoundary`: `Element | (Element | null)[] | null` — The element used as the collision boundary. By default this is the viewport, though you can provide additional element(s) to be included in this check.
3345
+ - `collisionPadding`: `number | Partial<Record<"top" | "right" | "bottom" | "left", number>>` — The distance in pixels from the boundary edges where collision detection should occur. Accepts a number (same for all sides), or a partial padding object, for example: { top: 20, left: 20 }.
3346
+ - `defaultOpen`: `boolean` — The open state of the tooltip when it is initially rendered. Use when you do not need to control its open state.
3347
+ - `delayDuration`: `number` — default `0` — Override the duration given to the `Provider` to customise the open delay for a specific tooltip.
3348
+ - `description`: `string`
3349
+ - `disableClosingTrigger`: `boolean` — When `true`, clicking on trigger will not close the content.
3350
+ - `disabled`: `boolean` — When `true`, disable tooltip
3351
+ - `disableHoverableContent`: `boolean` — Prevents Tooltip.Content from remaining open when hovering. Disabling this has accessibility consequences. Inherits from Tooltip.Provider.
3352
+ - `dismissible`: `boolean`
3353
+ - `forceMount`: `boolean` — Used to force mounting when more control is needed. Useful when controlling animation with Vue animation libraries.
3354
+ - `hideWhenDetached`: `boolean` — Whether to hide the content when the trigger becomes fully occluded.
3355
+ - `icon`: `string`
3356
+ - `ignoreNonKeyboardFocus`: `boolean` — Prevent the tooltip from opening if the focus did not come from the keyboard by matching against the `:focus-visible` selector. This is useful if you want to avoid opening it when switching browser tabs or closing a dialog.
3357
+ - `open`: `boolean` — The controlled open state of the tooltip.
3358
+ - `positionStrategy`: `fixed` | `absolute` — The type of CSS position property to use.
3359
+ - `side`: `top` | `right` | `bottom` | `left` — The preferred side of the trigger to render against when open. Will be reversed when collisions occur and avoidCollisions is enabled.
3360
+ - `sideOffset`: `number` — default `12` — The distance in pixels from the trigger.
3361
+ - `size`: `xs` | `sm` | `md` — default `"sm"`
3362
+ - `sticky`: `partial` | `always` — The sticky behavior on the align axis. `partial` will keep the content in the boundary as long as the trigger is at least partially in the boundary whilst "always" will keep the content in the boundary regardless.
3363
+ - `title`: `string`
3364
+ - `updatePositionStrategy`: `always` | `optimized` — Strategy to update the position of the floating element on every animation frame.
3365
+ - `variant`: `light` | `dark` — default `"light"`
3366
+
3367
+ **Events**
3368
+
3369
+ - `update:open`: `[value: boolean]`
3370
+
3371
+ **Slots**
3372
+
3373
+ - `default`
3374
+
3375
+ **Composes with:** `TooltipContent`, `TooltipProvider`, `TooltipRoot`, `TooltipTrigger`
3376
+
3377
+ **Source:** `src/components/tooltip/tooltip.vue`
3378
+
3379
+ **Example:** `src/components/tooltip/stories/tooltip.stories.ts`
3380
+
3381
+ ### TooltipContent
3382
+
3383
+ **Props**
3384
+
3385
+ - `align`: `start` | `center` | `end` — The preferred alignment against the trigger. May change when collisions occur.
3386
+ - `alignOffset`: `number` — An offset in pixels from the `start` or `end` alignment options.
3387
+ - `ariaLabel`: `string` — By default, screenreaders will announce the content inside the component. If this is not descriptive enough, or you have content that cannot be announced, use aria-label as a more descriptive label.
3388
+ - `arrowPadding`: `number` — The padding between the arrow and the edges of the content. If your content has border-radius, this will prevent it from overflowing the corners.
3389
+ - `as`: `AsTag | Component` — Element or component to render as.
3390
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
3391
+ - `avoidCollisions`: `boolean` — When `true`, overrides the side and align preferences to prevent collisions with boundary edges.
3392
+ - `class`: `ClassValue`
3393
+ - `collisionBoundary`: `Element | (Element | null)[] | null` — The element used as the collision boundary. By default this is the viewport, though you can provide additional element(s) to be included in this check.
3394
+ - `collisionPadding`: `number | Partial<Record<"top" | "right" | "bottom" | "left", number>>` — The distance in pixels from the boundary edges where collision detection should occur. Accepts a number (same for all sides), or a partial padding object, for example: { top: 20, left: 20 }.
3395
+ - `description`: `string`
3396
+ - `dismissible`: `boolean`
3397
+ - `forceMount`: `boolean` — Used to force mounting when more control is needed. Useful when controlling animation with Vue animation libraries.
3398
+ - `hideWhenDetached`: `boolean` — Whether to hide the content when the trigger becomes fully occluded.
3399
+ - `icon`: `string`
3400
+ - `onDismiss`: `(() => void)`
3401
+ - `positionStrategy`: `fixed` | `absolute` — The type of CSS position property to use.
3402
+ - `side`: `top` | `right` | `bottom` | `left` — The preferred side of the trigger to render against when open. Will be reversed when collisions occur and avoidCollisions is enabled.
3403
+ - `sideOffset`: `number` — default `12` — The distance in pixels from the trigger.
3404
+ - `size`: `xs` | `sm` | `md` — default `"sm"`
3405
+ - `sticky`: `partial` | `always` — The sticky behavior on the align axis. `partial` will keep the content in the boundary as long as the trigger is at least partially in the boundary whilst "always" will keep the content in the boundary regardless.
3406
+ - `title`: `string`
3407
+ - `updatePositionStrategy`: `always` | `optimized` — Strategy to update the position of the floating element on every animation frame.
3408
+ - `variant`: `light` | `dark` — default `"light"`
3409
+
3410
+ **Events**
3411
+
3412
+ - `escapeKeyDown`: `[event: KeyboardEvent]`
3413
+ - `pointerDownOutside`: `[event: Event]`
3414
+
3415
+ **Slots**
3416
+
3417
+ - `default`
3418
+
3419
+ **Composes with:** `Tooltip`, `TooltipProvider`, `TooltipRoot`, `TooltipTrigger`
3420
+
3421
+ **Source:** `src/components/tooltip/tooltip-content.vue`
3422
+
3423
+ **Example:** no story of its own — see `src/components/tooltip/stories/tooltip.stories.ts` for the group.
3424
+
3425
+ ### TooltipProvider
3426
+
3427
+ **Props**
3428
+
3429
+ - `class`: `unknown`
3430
+ - `content`: `TooltipContentProps` — Default settings that will be used by all tooltip components.
3431
+ - `delayDuration`: `number` — default `0` — The duration from when the pointer enters the trigger until the tooltip gets opened.
3432
+ - `disableClosingTrigger`: `boolean` — When `true`, clicking on trigger will not close the content.
3433
+ - `disabled`: `boolean` — When `true`, disable tooltip
3434
+ - `disableHoverableContent`: `boolean` — When `true`, trying to hover the content will result in the tooltip closing as the pointer leaves the trigger.
3435
+ - `ignoreNonKeyboardFocus`: `boolean` — Prevent the tooltip from opening if the focus did not come from the keyboard by matching against the `:focus-visible` selector. This is useful if you want to avoid opening it when switching browser tabs or closing a dialog.
3436
+ - `skipDelayDuration`: `number` — How much time a user has to enter another trigger without incurring a delay again.
3437
+
3438
+ **Slots**
3439
+
3440
+ - `default`
3441
+
3442
+ **Composes with:** `Tooltip`, `TooltipContent`, `TooltipRoot`, `TooltipTrigger`
3443
+
3444
+ **Source:** `src/components/tooltip/tooltip-provider.vue`
3445
+
3446
+ **Example:** no story of its own — see `src/components/tooltip/stories/tooltip.stories.ts` for the group.
3447
+
3448
+ ### TooltipRoot
3449
+
3450
+ **Props**
3451
+
3452
+ - `class`: `unknown`
3453
+ - `defaultOpen`: `boolean` — The open state of the tooltip when it is initially rendered. Use when you do not need to control its open state.
3454
+ - `delayDuration`: `number` — Override the duration given to the `Provider` to customise the open delay for a specific tooltip.
3455
+ - `disableClosingTrigger`: `boolean` — When `true`, clicking on trigger will not close the content.
3456
+ - `disabled`: `boolean` — When `true`, disable tooltip
3457
+ - `disableHoverableContent`: `boolean` — Prevents Tooltip.Content from remaining open when hovering. Disabling this has accessibility consequences. Inherits from Tooltip.Provider.
3458
+ - `ignoreNonKeyboardFocus`: `boolean` — Prevent the tooltip from opening if the focus did not come from the keyboard by matching against the `:focus-visible` selector. This is useful if you want to avoid opening it when switching browser tabs or closing a dialog.
3459
+ - `open`: `boolean` — The controlled open state of the tooltip.
3460
+
3461
+ **Events**
3462
+
3463
+ - `update:open`: `[value: boolean]`
3464
+
3465
+ **Slots**
3466
+
3467
+ - `default`
3468
+
3469
+ **Composes with:** `Tooltip`, `TooltipContent`, `TooltipProvider`, `TooltipTrigger`
3470
+
3471
+ **Source:** `src/components/tooltip/tooltip-root.vue`
3472
+
3473
+ **Example:** no story of its own — see `src/components/tooltip/stories/tooltip.stories.ts` for the group.
3474
+
3475
+ ### TooltipTrigger
3476
+
3477
+ **Props**
3478
+
3479
+ - `as`: `AsTag | Component` — Element or component to render as.
3480
+ - `asChild`: `boolean` — Render the child element instead of this component's own, merging props onto it.
3481
+ - `class`: `unknown`
3482
+ - `reference`: `ReferenceElement` — The reference (or anchor) element that is being referred to for positioning. If not provided will use the current component as anchor.
3483
+
3484
+ **Slots**
3485
+
3486
+ - `default`
3487
+
3488
+ **Composes with:** `Tooltip`, `TooltipContent`, `TooltipProvider`, `TooltipRoot`
3489
+
3490
+ **Source:** `src/components/tooltip/tooltip-trigger.vue`
3491
+
3492
+ **Example:** no story of its own — see `src/components/tooltip/stories/tooltip.stories.ts` for the group.