@byyuurin/ui 0.5.0 → 0.5.2

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.
Files changed (76) hide show
  1. package/README.md +3 -6
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +5 -4
  4. package/dist/runtime/components/Accordion.vue +9 -9
  5. package/dist/runtime/components/Alert.vue +9 -9
  6. package/dist/runtime/components/Avatar.vue +4 -4
  7. package/dist/runtime/components/AvatarGroup.vue +3 -3
  8. package/dist/runtime/components/Badge.vue +5 -5
  9. package/dist/runtime/components/Breadcrumb.vue +9 -9
  10. package/dist/runtime/components/Button.vue +5 -5
  11. package/dist/runtime/components/Calendar.vue +11 -11
  12. package/dist/runtime/components/Card.vue +6 -6
  13. package/dist/runtime/components/Carousel.vue +10 -10
  14. package/dist/runtime/components/Checkbox.vue +9 -9
  15. package/dist/runtime/components/CheckboxGroup.vue +4 -4
  16. package/dist/runtime/components/Chip.vue +2 -2
  17. package/dist/runtime/components/Collapsible.vue +2 -2
  18. package/dist/runtime/components/ContextMenuContent.vue +18 -18
  19. package/dist/runtime/components/Drawer.vue +9 -9
  20. package/dist/runtime/components/DropdownMenu.vue +2 -2
  21. package/dist/runtime/components/DropdownMenuContent.vue +19 -19
  22. package/dist/runtime/components/FieldGroup.vue +1 -1
  23. package/dist/runtime/components/FileUpload.vue +15 -15
  24. package/dist/runtime/components/Form.vue +1 -1
  25. package/dist/runtime/components/FormField.vue +9 -9
  26. package/dist/runtime/components/Input.vue +7 -7
  27. package/dist/runtime/components/InputNumber.vue +4 -4
  28. package/dist/runtime/components/InputTags.vue +12 -12
  29. package/dist/runtime/components/Kbd.vue +1 -1
  30. package/dist/runtime/components/Marquee.vue +2 -2
  31. package/dist/runtime/components/Modal.vue +9 -9
  32. package/dist/runtime/components/NavigationMenu.vue +40 -40
  33. package/dist/runtime/components/Pagination.vue +8 -8
  34. package/dist/runtime/components/PinInput.vue +2 -2
  35. package/dist/runtime/components/Popover.vue +2 -2
  36. package/dist/runtime/components/Progress.vue +6 -6
  37. package/dist/runtime/components/RadioGroup.vue +10 -10
  38. package/dist/runtime/components/ScrollArea.vue +7 -7
  39. package/dist/runtime/components/Select.vue +31 -31
  40. package/dist/runtime/components/Separator.vue +7 -7
  41. package/dist/runtime/components/Skeleton.vue +1 -1
  42. package/dist/runtime/components/Slider.vue +4 -4
  43. package/dist/runtime/components/Stepper.vue +12 -12
  44. package/dist/runtime/components/Switch.vue +10 -10
  45. package/dist/runtime/components/Table.vue +22 -22
  46. package/dist/runtime/components/Tabs.vue +9 -9
  47. package/dist/runtime/components/Textarea.vue +7 -7
  48. package/dist/runtime/components/Timeline.vue +9 -9
  49. package/dist/runtime/components/Toast.vue +10 -9
  50. package/dist/runtime/components/ToastProvider.vue +2 -2
  51. package/dist/runtime/components/Tooltip.vue +4 -4
  52. package/dist/runtime/components/Tree.vue +10 -10
  53. package/dist/runtime/composables/defineShortcuts.js +1 -1
  54. package/dist/runtime/composables/useOverlay.d.ts +3 -1
  55. package/dist/runtime/utils/style.d.ts +10 -10
  56. package/dist/runtime/vue/overrides/none/Link.vue +119 -0
  57. package/dist/runtime/vue/overrides/none/Link.vue.d.ts +79 -0
  58. package/dist/runtime/vue/{components → overrides/vue-router}/Link.vue +42 -42
  59. package/dist/runtime/vue/{components → overrides/vue-router}/Link.vue.d.ts +8 -8
  60. package/dist/runtime/vue/{stubs.d.ts → stubs/base.d.ts} +1 -2
  61. package/dist/runtime/vue/{stubs.js → stubs/base.js} +1 -2
  62. package/dist/runtime/vue/stubs/none.d.ts +56 -0
  63. package/dist/runtime/vue/stubs/none.js +48 -0
  64. package/dist/runtime/vue/stubs/vue-router.d.ts +2 -0
  65. package/dist/runtime/vue/stubs/vue-router.js +2 -0
  66. package/dist/setup.d.mts +1 -1
  67. package/dist/shared/{ui.Cakz_vv4.mjs → ui.B6u-xvto.mjs} +42 -44
  68. package/dist/shared/{ui.CGCKYv7g.d.mts → ui.Cec0yP1b.d.mts} +11 -2
  69. package/dist/shared/{ui.DYMXCXO6.mjs → ui.Dy7aH7sf.mjs} +12 -6
  70. package/dist/unocss.d.mts +20 -2
  71. package/dist/unocss.mjs +25 -2
  72. package/dist/unplugin.d.mts +1 -1
  73. package/dist/unplugin.mjs +68 -25
  74. package/dist/vite.d.mts +1 -1
  75. package/dist/vite.mjs +4 -3
  76. package/package.json +34 -33
@@ -101,12 +101,12 @@ function onUpdate(value) {
101
101
  :model-value="props.modelValue"
102
102
  :default-value="props.defaultValue"
103
103
  :orientation="props.orientation"
104
- :class="ui.root({ class: [props.ui?.root, props.class] })"
105
104
  data-part="root"
105
+ :class="ui.root({ class: [props.ui?.root, props.class] })"
106
106
  @update:model-value="onUpdate"
107
107
  >
108
- <fieldset v-bind="ariaAttrs" :class="ui.fieldset({ class: props.ui?.fieldset })" data-part="fieldset">
109
- <legend v-if="props.legend || !!slots.legend" :class="ui.legend({ class: props.ui?.legend })" data-part="legend">
108
+ <fieldset v-bind="ariaAttrs" data-part="fieldset" :class="ui.fieldset({ class: props.ui?.fieldset })">
109
+ <legend v-if="props.legend || !!slots.legend" data-part="legend" :class="ui.legend({ class: props.ui?.legend })">
110
110
  <slot name="legend">
111
111
  {{ props.legend }}
112
112
  </slot>
@@ -115,29 +115,29 @@ function onUpdate(value) {
115
115
  :is="!props.variant || props.variant === 'list' ? 'div' : Label"
116
116
  v-for="item in normalizedItems"
117
117
  :key="item.value"
118
- :class="ui.item({ class: [props.ui?.item, item.ui?.item, item.class], disabled: item.disabled })"
119
118
  data-part="item"
119
+ :class="ui.item({ class: [props.ui?.item, item.ui?.item, item.class], disabled: item.disabled })"
120
120
  >
121
- <div :class="ui.container({ class: [props.ui?.container, item.ui?.container], disabled: item.disabled })" data-part="container">
121
+ <div data-part="container" :class="ui.container({ class: [props.ui?.container, item.ui?.container], disabled: item.disabled })">
122
122
  <RekaRadioGroupItem
123
123
  :id="item.id"
124
124
  :value="item.value"
125
125
  :disabled="item.disabled"
126
- :class="ui.base({ class: [props.ui?.base, item.ui?.base], disabled: item.disabled, indicator: props.indicator })"
127
126
  data-part="base"
127
+ :class="ui.base({ class: [props.ui?.base, item.ui?.base], disabled: item.disabled, indicator: props.indicator })"
128
128
  :data-indicator="props.indicator"
129
129
  >
130
- <RadioGroupIndicator :class="ui.indicator({ class: [props.ui?.indicator, item.ui?.indicator], disabled: item.disabled })" data-part="indicator" force-mount />
130
+ <RadioGroupIndicator data-part="indicator" :class="ui.indicator({ class: [props.ui?.indicator, item.ui?.indicator], disabled: item.disabled })" force-mount />
131
131
  </RekaRadioGroupItem>
132
132
  </div>
133
133
 
134
- <div v-if="item.label || !!slots.label || (item.description || !!slots.description)" :class="ui.wrapper({ class: [props.ui?.wrapper, item.ui?.wrapper], disabled: item.disabled })" data-part="wrapper">
135
- <component :is="!props.variant || props.variant === 'list' ? Label : 'p'" :for="item.id" :class="ui.label({ class: [props.ui?.label, item.ui?.label], disabled: item.disabled })" data-part="label">
134
+ <div v-if="item.label || !!slots.label || (item.description || !!slots.description)" data-part="wrapper" :class="ui.wrapper({ class: [props.ui?.wrapper, item.ui?.wrapper], disabled: item.disabled })">
135
+ <component :is="!props.variant || props.variant === 'list' ? Label : 'p'" :for="item.id" data-part="label" :class="ui.label({ class: [props.ui?.label, item.ui?.label], disabled: item.disabled })">
136
136
  <slot name="label" :item="item" :model-value="modelValue">
137
137
  {{ item.label }}
138
138
  </slot>
139
139
  </component>
140
- <p v-if="item.description || !!slots.description" :class="ui.description({ class: [props.ui?.description, item.ui?.description], disabled: item.disabled })" data-part="description">
140
+ <p v-if="item.description || !!slots.description" data-part="description" :class="ui.description({ class: [props.ui?.description, item.ui?.description], disabled: item.disabled })">
141
141
  <slot name="description" :item="item" :model-value="modelValue">
142
142
  {{ item.description }}
143
143
  </slot>
@@ -39,33 +39,33 @@ function scrollTopLeft() {
39
39
  <ScrollAreaRoot
40
40
  ref="rootRef"
41
41
  v-bind="rootProps"
42
- :class="ui.root({ class: [props.class, props.ui?.root] })"
43
42
  data-part="root"
43
+ :class="ui.root({ class: [props.class, props.ui?.root] })"
44
44
  >
45
- <ScrollAreaViewport :class="ui.viewport({ class: props.ui?.viewport })" data-part="viewport">
45
+ <ScrollAreaViewport data-part="viewport" :class="ui.viewport({ class: props.ui?.viewport })">
46
46
  <slot></slot>
47
47
  </ScrollAreaViewport>
48
48
 
49
49
  <ScrollAreaScrollbar
50
50
  key="scrollbar-horizontal"
51
51
  orientation="horizontal"
52
- :class="ui.scrollbar({ class: props.ui?.scrollbar })"
53
52
  data-part="scrollbar"
53
+ :class="ui.scrollbar({ class: props.ui?.scrollbar })"
54
54
  >
55
- <ScrollAreaThumb :class="ui.thumb({ class: props.ui?.thumb })" data-part="thumb" />
55
+ <ScrollAreaThumb data-part="thumb" :class="ui.thumb({ class: props.ui?.thumb })" />
56
56
  </ScrollAreaScrollbar>
57
57
  <ScrollAreaScrollbar
58
58
  key="scrollbar-vertical"
59
59
  orientation="vertical"
60
- :class="ui.scrollbar({ class: props.ui?.scrollbar })"
61
60
  data-part="scrollbar"
61
+ :class="ui.scrollbar({ class: props.ui?.scrollbar })"
62
62
  >
63
- <ScrollAreaThumb :class="ui.thumb({ class: props.ui?.thumb })" data-part="thumb" />
63
+ <ScrollAreaThumb data-part="thumb" :class="ui.thumb({ class: props.ui?.thumb })" />
64
64
  </ScrollAreaScrollbar>
65
65
  <ScrollAreaCorner
66
66
  key="corner"
67
- :class="ui.corner({ class: props.ui?.corner })"
68
67
  data-part="corner"
68
+ :class="ui.corner({ class: props.ui?.corner })"
69
69
  />
70
70
  </ScrollAreaRoot>
71
71
  </template>
@@ -226,11 +226,11 @@ defineExpose({
226
226
  <DefineCreateItemTemplate>
227
227
  <ComboboxItem
228
228
  :value="searchTerm"
229
- :class="ui.item({ class: props.ui?.item })"
230
229
  data-part="item"
230
+ :class="ui.item({ class: props.ui?.item })"
231
231
  @select="onCreate"
232
232
  >
233
- <span :class="ui.itemLabel({ class: props.ui?.itemLabel })" data-part="itemLabel">
233
+ <span data-part="itemLabel" :class="ui.itemLabel({ class: props.ui?.itemLabel })">
234
234
  <slot name="create-item-label" :item="searchTerm">
235
235
  {{ t("select.create", { label: searchTerm }) }}
236
236
  </slot>
@@ -250,38 +250,38 @@ defineExpose({
250
250
  @update:open="onUpdateOpen"
251
251
  >
252
252
  <ComboboxAnchor as-child>
253
- <ComboboxTrigger ref="triggerRef" :class="ui.base({ class: [props.ui?.base, props.class] })" data-part="base" tabindex="0">
254
- <span v-if="isLeading || !!props.avatar || slots.leading" :class="ui.leading({ class: props.ui?.leading })" data-part="leading">
253
+ <ComboboxTrigger ref="triggerRef" tabindex="0" data-part="base" :class="ui.base({ class: [props.ui?.base, props.class] })">
254
+ <span v-if="isLeading || !!props.avatar || slots.leading" data-part="leading" :class="ui.leading({ class: props.ui?.leading })">
255
255
  <slot name="leading" :model-value="modelValue" :open="open" :ui="ui">
256
256
  <Icon
257
257
  v-if="isLeading && leadingIconName"
258
258
  :name="leadingIconName"
259
- :class="ui.leadingIcon({ class: props.ui?.leadingIcon })"
260
259
  data-part="leadingIcon"
260
+ :class="ui.leadingIcon({ class: props.ui?.leadingIcon })"
261
261
  />
262
262
  <Avatar
263
263
  v-else-if="props.avatar"
264
264
  :size="props.ui?.itemLeadingChipSize || ui.itemLeadingAvatarSize()"
265
265
  v-bind="props.avatar"
266
- :class="ui.leadingAvatar({ class: props.ui?.leadingAvatar })"
267
266
  data-part="leadingAvatar"
267
+ :class="ui.leadingAvatar({ class: props.ui?.leadingAvatar })"
268
268
  />
269
269
  </slot>
270
270
  </span>
271
271
 
272
272
  <slot :model-value="modelValue" :open="open" :ui="ui">
273
273
  <template v-for="displayedModelValue in [displayValue(modelValue)]" :key="displayedModelValue">
274
- <span v-if="displayedModelValue != null" :class="ui.value({ class: props.ui?.value })" data-part="value">
274
+ <span v-if="displayedModelValue != null" data-part="value" :class="ui.value({ class: props.ui?.value })">
275
275
  {{ displayedModelValue }}
276
276
  </span>
277
- <span v-else :class="ui.placeholder({ class: props.ui?.placeholder })" data-part="placeholder">
277
+ <span v-else data-part="placeholder" :class="ui.placeholder({ class: props.ui?.placeholder })">
278
278
  <template v-if="props.placeholder">{{ props.placeholder }}</template>
279
279
  <template v-else>&nbsp;</template>
280
280
  </span>
281
281
  </template>
282
282
  </slot>
283
283
 
284
- <span v-if="isTrailing || !!slots.trailing || props.clear" :class="ui.trailing({ class: props.ui?.trailing })" data-part="trailing">
284
+ <span v-if="isTrailing || !!slots.trailing || props.clear" data-part="trailing" :class="ui.trailing({ class: props.ui?.trailing })">
285
285
  <slot name="trailing" :model-value="modelValue" :open="open" :ui="ui">
286
286
  <ComboboxCancel v-if="props.clear && !isModelValueEmpty(modelValue)" as-child>
287
287
  <Button
@@ -291,20 +291,20 @@ defineExpose({
291
291
  color="neutral"
292
292
  tabindex="-1"
293
293
  v-bind="clearProps"
294
- :class="ui.trailingClear({ class: props.ui?.trailingClear })"
295
294
  data-part="trailingClear"
295
+ :class="ui.trailingClear({ class: props.ui?.trailingClear })"
296
296
  @click.stop="onClear"
297
297
  />
298
298
  </ComboboxCancel>
299
- <Icon v-else-if="trailingIconName" :name="trailingIconName" :class="ui.trailingIcon({ class: props.ui?.trailingIcon })" data-part="trailingIcon" />
299
+ <Icon v-else-if="trailingIconName" :name="trailingIconName" data-part="trailingIcon" :class="ui.trailingIcon({ class: props.ui?.trailingIcon })" />
300
300
  </slot>
301
301
  </span>
302
302
  </ComboboxTrigger>
303
303
  </ComboboxAnchor>
304
304
 
305
305
  <ComboboxPortal v-bind="portalProps">
306
- <ComboboxContent v-bind="contentProps" :class="ui.content({ class: props.ui?.content })" data-part="content">
307
- <FocusScope trapped :class="ui.focusScope({ class: props.ui?.focusScope })" data-part="focusScope">
306
+ <ComboboxContent v-bind="contentProps" data-part="content" :class="ui.content({ class: props.ui?.content })">
307
+ <FocusScope trapped data-part="focusScope" :class="ui.focusScope({ class: props.ui?.focusScope })">
308
308
  <slot name="content-top"></slot>
309
309
 
310
310
  <ComboboxInput v-model="searchTerm" :display-value="() => searchTerm" as-child>
@@ -313,45 +313,45 @@ defineExpose({
313
313
  autocomplete="off"
314
314
  :size="props.size"
315
315
  v-bind="searchInputProps"
316
- :class="ui.input({ class: props.ui?.input })"
317
316
  data-part="input"
317
+ :class="ui.input({ class: props.ui?.input })"
318
318
  @change.stop
319
319
  />
320
320
  </ComboboxInput>
321
321
 
322
- <ComboboxEmpty :class="ui.empty({ class: props.ui?.empty })" data-part="empty">
322
+ <ComboboxEmpty data-part="empty" :class="ui.empty({ class: props.ui?.empty })">
323
323
  <slot name="empty" :search-term="searchTerm">
324
324
  {{ searchTerm ? t("select.noMatch", { searchTerm }) : t("select.noData") }}
325
325
  </slot>
326
326
  </ComboboxEmpty>
327
327
 
328
- <div role="presentation" :class="ui.viewport({ class: props.ui?.viewport })" data-part="viewport">
329
- <ComboboxGroup v-if="createItem && createItemPosition === 'top'" :class="ui.group({ class: props.ui?.group })" data-part="group">
328
+ <div role="presentation" data-part="viewport" :class="ui.viewport({ class: props.ui?.viewport })">
329
+ <ComboboxGroup v-if="createItem && createItemPosition === 'top'" data-part="group" :class="ui.group({ class: props.ui?.group })">
330
330
  <ReuseCreateItemTemplate />
331
331
  </ComboboxGroup>
332
332
 
333
- <ComboboxGroup v-for="(group, groupIndex) in filteredGroups" :key="`group-${groupIndex}`" :class="ui.group({ class: props.ui?.group })" data-part="group">
333
+ <ComboboxGroup v-for="(group, groupIndex) in filteredGroups" :key="`group-${groupIndex}`" data-part="group" :class="ui.group({ class: props.ui?.group })">
334
334
  <template v-for="(item, index) in group" :key="`group-${groupIndex}-${index}`">
335
335
  <ComboboxLabel
336
336
  v-if="isSelectItem(item) && item.type === 'label'"
337
- :class="ui.label({ class: [props.ui?.label, item.ui?.label, item.class] })"
338
337
  data-part="label"
338
+ :class="ui.label({ class: [props.ui?.label, item.ui?.label, item.class] })"
339
339
  >
340
340
  {{ get(item, props.labelKey) }}
341
341
  </ComboboxLabel>
342
342
 
343
343
  <ComboboxSeparator
344
344
  v-else-if="isSelectItem(item) && item.type === 'separator'"
345
- :class="ui.separator({ class: [props.ui?.separator, item.ui?.separator, item.class] })"
346
345
  data-part="separator"
346
+ :class="ui.separator({ class: [props.ui?.separator, item.ui?.separator, item.class] })"
347
347
  />
348
348
 
349
349
  <ComboboxItem
350
350
  v-else
351
351
  :value="props.valueKey && isSelectItem(item) ? get(item, props.valueKey) : item"
352
352
  :disabled="isSelectItem(item) && item.disabled"
353
- :class="ui.item({ class: [props.ui?.item, ...isSelectItem(item) ? [item.ui?.item, item.class] : []] })"
354
353
  data-part="item"
354
+ :class="ui.item({ class: [props.ui?.item, ...isSelectItem(item) ? [item.ui?.item, item.class] : []] })"
355
355
  @select="onSelect($event, item)"
356
356
  >
357
357
  <slot name="item" :item="item" :index="index" :ui="ui">
@@ -359,15 +359,15 @@ defineExpose({
359
359
  <Icon
360
360
  v-if="isSelectItem(item) && item.icon"
361
361
  :name="item.icon"
362
- :class="ui.itemLeadingIcon({ class: [props.ui?.itemLeadingIcon, item.ui?.itemLeadingIcon] })"
363
362
  data-part="itemLeadingIcon"
363
+ :class="ui.itemLeadingIcon({ class: [props.ui?.itemLeadingIcon, item.ui?.itemLeadingIcon] })"
364
364
  />
365
365
  <Avatar
366
366
  v-else-if="isSelectItem(item) && item.avatar"
367
367
  :size="item.ui?.itemLeadingAvatarSize || props.ui?.itemLeadingAvatarSize || ui.itemLeadingAvatarSize()"
368
368
  v-bind="item.avatar"
369
- :class="ui.itemLeadingAvatar({ class: [props.ui?.leadingAvatar, item.ui?.itemLeadingAvatar] })"
370
369
  data-part="itemLeadingAvatar"
370
+ :class="ui.itemLeadingAvatar({ class: [props.ui?.leadingAvatar, item.ui?.itemLeadingAvatar] })"
371
371
  />
372
372
  <Chip
373
373
  v-else-if="isSelectItem(item) && item.chip"
@@ -375,13 +375,13 @@ defineExpose({
375
375
  inset
376
376
  standalone
377
377
  v-bind="item.chip"
378
- :class="ui.itemLeadingChip({ class: [props.ui?.itemLeadingChip, item.ui?.itemLeadingChip] })"
379
378
  data-part="itemLeadingChip"
379
+ :class="ui.itemLeadingChip({ class: [props.ui?.itemLeadingChip, item.ui?.itemLeadingChip] })"
380
380
  />
381
381
  </slot>
382
382
 
383
- <span :class="ui.itemWrapper({ class: [props.ui?.itemWrapper, isSelectItem(item) && item.ui?.itemWrapper] })" data-part="itemWrapper">
384
- <span :class="ui.itemLabel({ class: [props.ui?.itemLabel, isSelectItem(item) && item.ui?.itemLabel] })" data-part="itemLabel">
383
+ <span data-part="itemWrapper" :class="ui.itemWrapper({ class: [props.ui?.itemWrapper, isSelectItem(item) && item.ui?.itemWrapper] })">
384
+ <span data-part="itemLabel" :class="ui.itemLabel({ class: [props.ui?.itemLabel, isSelectItem(item) && item.ui?.itemLabel] })">
385
385
  <slot name="item-label" :item="item" :index="index">
386
386
  {{ isSelectItem(item) ? get(item, props.labelKey) : item }}
387
387
  </slot>
@@ -389,8 +389,8 @@ defineExpose({
389
389
 
390
390
  <span
391
391
  v-if="isSelectItem(item) && get(item, props.descriptionKey) || !!slots['item-description']"
392
- :class="ui.itemDescription({ class: [props.ui?.itemDescription, isSelectItem(item) && item.ui?.itemDescription] })"
393
392
  data-part="itemDescription"
393
+ :class="ui.itemDescription({ class: [props.ui?.itemDescription, isSelectItem(item) && item.ui?.itemDescription] })"
394
394
  >
395
395
  <slot name="item-description" :item="item" :index="index">
396
396
  {{ isSelectItem(item) ? get(item, props.descriptionKey) : "" }}
@@ -398,11 +398,11 @@ defineExpose({
398
398
  </span>
399
399
  </span>
400
400
 
401
- <span :class="ui.itemTrailing({ class: [props.ui?.itemTrailing, isSelectItem(item) && item.ui?.itemTrailing] })" data-part="itemTrailing">
401
+ <span data-part="itemTrailing" :class="ui.itemTrailing({ class: [props.ui?.itemTrailing, isSelectItem(item) && item.ui?.itemTrailing] })">
402
402
  <slot name="item-trailing" :item="item" :index="index" :ui="ui"></slot>
403
403
 
404
404
  <ComboboxItemIndicator as-child>
405
- <Icon :name="props.selectedIcon || appConfig.ui.icons.check" :class="ui.itemTrailingIcon({ class: [props.ui?.itemTrailingIcon, isSelectItem(item) && item.ui?.itemTrailingIcon] })" data-part="itemTrailingIcon" />
405
+ <Icon :name="props.selectedIcon || appConfig.ui.icons.check" data-part="itemTrailingIcon" :class="ui.itemTrailingIcon({ class: [props.ui?.itemTrailingIcon, isSelectItem(item) && item.ui?.itemTrailingIcon] })" />
406
406
  </ComboboxItemIndicator>
407
407
  </span>
408
408
  </slot>
@@ -410,7 +410,7 @@ defineExpose({
410
410
  </template>
411
411
  </ComboboxGroup>
412
412
 
413
- <ComboboxGroup v-if="createItem && createItemPosition === 'bottom'" :class="ui.group({ class: props.ui?.group })" data-part="group">
413
+ <ComboboxGroup v-if="createItem && createItemPosition === 'bottom'" data-part="group" :class="ui.group({ class: props.ui?.group })">
414
414
  <ReuseCreateItemTemplate />
415
415
  </ComboboxGroup>
416
416
  </div>
@@ -418,7 +418,7 @@ defineExpose({
418
418
  <slot name="content-bottom"></slot>
419
419
  </FocusScope>
420
420
 
421
- <ComboboxArrow v-if="props.arrow" v-bind="arrowProps" :class="ui.arrow({ class: props.ui?.arrow })" data-part="arrow" />
421
+ <ComboboxArrow v-if="props.arrow" v-bind="arrowProps" data-part="arrow" :class="ui.arrow({ class: props.ui?.arrow })" />
422
422
  </ComboboxContent>
423
423
  </ComboboxPortal>
424
424
  </ComboboxRoot>
@@ -35,34 +35,34 @@ const ui = computed(() => {
35
35
  </script>
36
36
 
37
37
  <template>
38
- <Separator v-bind="rootProps" :class="ui.root({ class: [props.ui?.root, props.class] })" data-part="root">
39
- <div :class="ui.border({ class: props.ui?.border, start: props.align === 'start' })" data-part="border"></div>
38
+ <Separator v-bind="rootProps" data-part="root" :class="ui.root({ class: [props.ui?.root, props.class] })">
39
+ <div data-part="border" :class="ui.border({ class: props.ui?.border, start: props.align === 'start' })"></div>
40
40
 
41
41
  <template v-if="props.label || props.icon || props.avatar || !!slots.default">
42
- <div :class="ui.container({ class: props.ui?.container })" data-part="container">
42
+ <div data-part="container" :class="ui.container({ class: props.ui?.container })">
43
43
  <slot :ui="ui">
44
44
  <span
45
45
  v-if="props.label"
46
- :class="ui.label({ class: props.ui?.label })"
47
46
  data-part="label"
47
+ :class="ui.label({ class: props.ui?.label })"
48
48
  >{{ props.label }}</span>
49
49
  <Icon
50
50
  v-else-if="props.icon"
51
51
  :name="props.icon"
52
- :class="ui.icon({ class: props.ui?.icon })"
53
52
  data-part="icon"
53
+ :class="ui.icon({ class: props.ui?.icon })"
54
54
  />
55
55
  <Avatar
56
56
  v-else-if="props.avatar"
57
57
  :size="props.ui?.avatarSize || ui.avatarSize()"
58
58
  v-bind="props.avatar"
59
- :class="ui.avatar({ class: props.ui?.avatar })"
60
59
  data-part="avatar"
60
+ :class="ui.avatar({ class: props.ui?.avatar })"
61
61
  />
62
62
  </slot>
63
63
  </div>
64
64
 
65
- <div :class="ui.border({ class: props.ui?.border, end: props.align === 'end' })" data-part="border"></div>
65
+ <div data-part="border" :class="ui.border({ class: props.ui?.border, end: props.align === 'end' })"></div>
66
66
  </template>
67
67
  </Separator>
68
68
  </template>
@@ -26,8 +26,8 @@ const ui = computed(() => {
26
26
  aria-label="loading"
27
27
  aria-live="polite"
28
28
  role="alert"
29
- :class="ui.base({ class: props.class })"
30
29
  data-part="base"
30
+ :class="ui.base({ class: props.class })"
31
31
  >
32
32
  <slot></slot>
33
33
  </Primitive>
@@ -71,14 +71,14 @@ function onChange(value) {
71
71
  v-bind="{ ...rootProps, ...ariaAttrs, id, name, disabled }"
72
72
  v-model="sliderValue"
73
73
  :default-value="defaultSliderValue"
74
- :class="ui.root({ class: [props.ui?.root, props.class] })"
75
74
  :data-steps="thumbs"
76
75
  data-part="root"
76
+ :class="ui.root({ class: [props.ui?.root, props.class] })"
77
77
  @update:model-value="emitFormInput()"
78
78
  @value-commit="onChange"
79
79
  >
80
- <SliderTrack :class="ui.track({ class: props.ui?.track })" data-part="track">
81
- <SliderRange :class="ui.range({ class: props.ui?.range })" data-part="range" />
80
+ <SliderTrack data-part="track" :class="ui.track({ class: props.ui?.track })">
81
+ <SliderRange data-part="range" :class="ui.range({ class: props.ui?.range })" />
82
82
  </SliderTrack>
83
83
 
84
84
  <Tooltip
@@ -89,7 +89,7 @@ function onChange(value) {
89
89
  :disabled="!props.tooltip"
90
90
  disable-closing-trigger
91
91
  >
92
- <SliderThumb :class="ui.thumb({ class: props.ui?.thumb })" data-part="thumb" :aria-label="thumbs === 1 ? 'Thumb' : `Thumb ${thumb} of ${thumbs}`" />
92
+ <SliderThumb :aria-label="thumbs === 1 ? 'Thumb' : `Thumb ${thumb} of ${thumbs}`" data-part="thumb" :class="ui.thumb({ class: props.ui?.thumb })" />
93
93
  </Tooltip>
94
94
  </SliderRoot>
95
95
  </template>
@@ -63,21 +63,21 @@ defineExpose({
63
63
  </script>
64
64
 
65
65
  <template>
66
- <StepperRoot v-bind="rootProps" v-model="currentStepIndex" :class="ui.root({ class: [props.ui?.root, props.class] })" data-part="root">
67
- <div :class="ui.header({ class: props.ui?.header })" data-part="header">
66
+ <StepperRoot v-bind="rootProps" v-model="currentStepIndex" data-part="root" :class="ui.root({ class: [props.ui?.root, props.class] })">
67
+ <div data-part="header" :class="ui.header({ class: props.ui?.header })">
68
68
  <StepperItem
69
69
  v-for="(item, count) in props.items"
70
70
  :key="item.value ?? count"
71
71
  :step="count"
72
72
  :disabled="item.disabled || props.disabled"
73
- :class="ui.item({ class: [props.ui?.item, item.ui?.item, item.class] })"
74
73
  data-part="item"
74
+ :class="ui.item({ class: [props.ui?.item, item.ui?.item, item.class] })"
75
75
  >
76
- <div :class="ui.container({ class: [props.ui?.container, item.ui?.container] })" data-part="container">
77
- <StepperTrigger :class="ui.trigger({ class: [props.ui?.trigger, item.ui?.trigger] })" data-part="trigger">
78
- <StepperIndicator :class="ui.indicator({ class: [props.ui?.indicator, item.ui?.indicator] })" data-part="indicator">
76
+ <div data-part="container" :class="ui.container({ class: [props.ui?.container, item.ui?.container] })">
77
+ <StepperTrigger data-part="trigger" :class="ui.trigger({ class: [props.ui?.trigger, item.ui?.trigger] })">
78
+ <StepperIndicator data-part="indicator" :class="ui.indicator({ class: [props.ui?.indicator, item.ui?.indicator] })">
79
79
  <slot name="indicator" :item="item" :ui="ui">
80
- <Icon v-if="item.icon" :name="item.icon" :class="ui.icon({ class: [props.ui?.icon, item.ui?.icon] })" data-part="icon" />
80
+ <Icon v-if="item.icon" :name="item.icon" data-part="icon" :class="ui.icon({ class: [props.ui?.icon, item.ui?.icon] })" />
81
81
  <template v-else>
82
82
  {{ count + 1 }}
83
83
  </template>
@@ -87,20 +87,20 @@ defineExpose({
87
87
 
88
88
  <StepperSeparator
89
89
  v-if="count < props.items.length - 1"
90
- :class="ui.separator({ class: [props.ui?.separator, item.ui?.separator] })"
91
90
  data-part="separator"
91
+ :class="ui.separator({ class: [props.ui?.separator, item.ui?.separator] })"
92
92
  />
93
93
  </div>
94
94
 
95
- <div :class="ui.wrapper({ class: [props.ui?.wrapper, item.ui?.wrapper] })" data-part="wrapper">
95
+ <div data-part="wrapper" :class="ui.wrapper({ class: [props.ui?.wrapper, item.ui?.wrapper] })">
96
96
  <slot :name="item.slot ? `${item.slot}-wrapper` : 'wrapper'" :item="item">
97
- <StepperTitle v-if="item.title || !!slots[item.slot ? `${item.slot}-title` : 'title']" as="div" :class="ui.title({ class: [props.ui?.title, item.ui?.title] })" data-part="title">
97
+ <StepperTitle v-if="item.title || !!slots[item.slot ? `${item.slot}-title` : 'title']" as="div" data-part="title" :class="ui.title({ class: [props.ui?.title, item.ui?.title] })">
98
98
  <slot :name="item.slot ? `${item.slot}-title` : 'title'" :item="item">
99
99
  {{ item.title }}
100
100
  </slot>
101
101
  </StepperTitle>
102
102
 
103
- <StepperDescription v-if="item.description || !!slots[item.slot ? `${item.slot}-description` : 'description']" as="div" :class="ui.description({ class: [props.ui?.description, item.ui?.description] })" data-part="description">
103
+ <StepperDescription v-if="item.description || !!slots[item.slot ? `${item.slot}-description` : 'description']" as="div" data-part="description" :class="ui.description({ class: [props.ui?.description, item.ui?.description] })">
104
104
  <slot :name="item.slot ? `${item.slot}-description` : 'description'" :item="item">
105
105
  {{ item.description }}
106
106
  </slot>
@@ -110,7 +110,7 @@ defineExpose({
110
110
  </StepperItem>
111
111
  </div>
112
112
 
113
- <div v-if="currentStep?.content || !!slots.content || currentStep?.slot && !!slots[currentStep.slot]" :class="ui.content({ class: props.ui?.content })" data-part="content">
113
+ <div v-if="currentStep?.content || !!slots.content || currentStep?.slot && !!slots[currentStep.slot]" data-part="content" :class="ui.content({ class: props.ui?.content })">
114
114
  <slot :name="currentStep?.slot || 'content'" :item="currentStep">
115
115
  {{ currentStep?.content }}
116
116
  </slot>
@@ -57,30 +57,30 @@ function onUpdate(value) {
57
57
  </script>
58
58
 
59
59
  <template>
60
- <Primitive :as="props.as" :class="ui.root({ class: [props.ui?.root, props.class] })" data-part="root">
61
- <div :class="ui.container({ class: props.ui?.container })" data-part="container">
60
+ <Primitive :as="props.as" data-part="root" :class="ui.root({ class: [props.ui?.root, props.class] })">
61
+ <div data-part="container" :class="ui.container({ class: props.ui?.container })">
62
62
  <SwitchRoot
63
63
  v-bind="{ id, ...rootProps, ...ariaAttrs, name }"
64
64
  v-model="modelValue"
65
65
  :disabled="disabled || props.loading"
66
- :class="ui.base({ class: props.ui?.base })"
67
66
  data-part="base"
67
+ :class="ui.base({ class: props.ui?.base })"
68
68
  @update:model-value="onUpdate"
69
69
  >
70
- <SwitchThumb :class="ui.thumb({ class: props.ui?.thumb })" data-part="thumb">
71
- <Icon v-if="props.loading" :name="props.loadingIcon || appConfig.ui.icons.loading" :class="ui.icon({ class: props.ui?.icon, checked: true, unchecked: true })" data-part="icon" />
70
+ <SwitchThumb data-part="thumb" :class="ui.thumb({ class: props.ui?.thumb })">
71
+ <Icon v-if="props.loading" :name="props.loadingIcon || appConfig.ui.icons.loading" data-part="icon" :class="ui.icon({ class: props.ui?.icon, checked: true, unchecked: true })" />
72
72
  <template v-else>
73
- <Icon v-if="props.checkedIcon" :name="props.checkedIcon" :class="ui.icon({ class: props.ui?.icon, checked: true })" data-part="icon" />
74
- <Icon v-if="props.uncheckedIcon" :name="props.uncheckedIcon" :class="ui.icon({ class: props.ui?.icon, unchecked: true })" data-part="icon" />
73
+ <Icon v-if="props.checkedIcon" :name="props.checkedIcon" data-part="icon" :class="ui.icon({ class: props.ui?.icon, checked: true })" />
74
+ <Icon v-if="props.uncheckedIcon" :name="props.uncheckedIcon" data-part="icon" :class="ui.icon({ class: props.ui?.icon, unchecked: true })" />
75
75
  </template>
76
76
  </SwitchThumb>
77
77
  </SwitchRoot>
78
78
  </div>
79
- <div v-if="props.label || !!slots.label || (props.description || !!slots.description)" :class="ui.wrapper({ class: props.ui?.wrapper })" data-part="wrapper">
80
- <Label v-if="props.label || !!slots.label" :for="id" :class="ui.label({ class: props.ui?.label })" data-part="label">
79
+ <div v-if="props.label || !!slots.label || (props.description || !!slots.description)" data-part="wrapper" :class="ui.wrapper({ class: props.ui?.wrapper })">
80
+ <Label v-if="props.label || !!slots.label" :for="id" data-part="label" :class="ui.label({ class: props.ui?.label })">
81
81
  <slot name="label" :label="props.label">{{ props.label }}</slot>
82
82
  </Label>
83
- <p v-if="props.description || !!slots.description" :class="ui.description({ class: props.ui?.description })" data-part="description">
83
+ <p v-if="props.description || !!slots.description" data-part="description" :class="ui.description({ class: props.ui?.description })">
84
84
  <slot name="description" :description="props.description">
85
85
  {{ props.description }}
86
86
  </slot>