@bitrix24/b24ui-nuxt 2.1.2 → 2.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/cli/templates.mjs +2 -2
  2. package/dist/meta.d.mts +1301 -178
  3. package/dist/meta.mjs +1301 -178
  4. package/dist/module.json +1 -1
  5. package/dist/module.mjs +1 -1
  6. package/dist/runtime/components/Accordion.vue +9 -4
  7. package/dist/runtime/components/Advice.vue +9 -5
  8. package/dist/runtime/components/Alert.vue +9 -7
  9. package/dist/runtime/components/Avatar.vue +4 -2
  10. package/dist/runtime/components/AvatarGroup.vue +3 -3
  11. package/dist/runtime/components/Badge.vue +6 -1
  12. package/dist/runtime/components/Banner.vue +9 -8
  13. package/dist/runtime/components/Breadcrumb.vue +9 -4
  14. package/dist/runtime/components/Button.vue +12 -9
  15. package/dist/runtime/components/Calendar.vue +11 -5
  16. package/dist/runtime/components/Card.vue +4 -4
  17. package/dist/runtime/components/ChatMessage.vue +7 -5
  18. package/dist/runtime/components/ChatMessages.vue +4 -2
  19. package/dist/runtime/components/ChatPalette.vue +3 -3
  20. package/dist/runtime/components/ChatPrompt.vue +4 -3
  21. package/dist/runtime/components/ChatPromptSubmit.vue +1 -0
  22. package/dist/runtime/components/Checkbox.vue +9 -7
  23. package/dist/runtime/components/CheckboxGroup.vue +4 -2
  24. package/dist/runtime/components/Chip.vue +3 -0
  25. package/dist/runtime/components/Collapsible.vue +2 -2
  26. package/dist/runtime/components/ColorPicker.vue +7 -3
  27. package/dist/runtime/components/CommandPalette.vue +60 -21
  28. package/dist/runtime/components/ContextMenu.vue +1 -0
  29. package/dist/runtime/components/ContextMenuContent.vue +19 -6
  30. package/dist/runtime/components/Countdown.vue +8 -1
  31. package/dist/runtime/components/DashboardSearch.vue +1 -0
  32. package/dist/runtime/components/DashboardSearchButton.vue +2 -1
  33. package/dist/runtime/components/DescriptionList.vue +12 -4
  34. package/dist/runtime/components/DropdownMenu.vue +2 -1
  35. package/dist/runtime/components/DropdownMenuContent.vue +21 -7
  36. package/dist/runtime/components/Empty.vue +9 -8
  37. package/dist/runtime/components/Error.vue +5 -5
  38. package/dist/runtime/components/FileUpload.vue +15 -8
  39. package/dist/runtime/components/FormField.vue +11 -11
  40. package/dist/runtime/components/Input.vue +8 -3
  41. package/dist/runtime/components/InputDate.vue +9 -2
  42. package/dist/runtime/components/InputMenu.vue +35 -19
  43. package/dist/runtime/components/InputNumber.vue +5 -2
  44. package/dist/runtime/components/InputTags.vue +12 -3
  45. package/dist/runtime/components/InputTime.vue +8 -2
  46. package/dist/runtime/components/Kbd.vue +1 -1
  47. package/dist/runtime/components/Modal.vue +11 -8
  48. package/dist/runtime/components/Navbar.vue +1 -1
  49. package/dist/runtime/components/NavbarDivider.vue +1 -1
  50. package/dist/runtime/components/NavbarSection.vue +2 -1
  51. package/dist/runtime/components/NavbarSpacer.vue +1 -1
  52. package/dist/runtime/components/NavigationMenu.vue +43 -12
  53. package/dist/runtime/components/PageCard.vue +10 -9
  54. package/dist/runtime/components/PageLinks.vue +9 -7
  55. package/dist/runtime/components/Pagination.vue +8 -8
  56. package/dist/runtime/components/PinInput.vue +2 -0
  57. package/dist/runtime/components/Popover.vue +2 -2
  58. package/dist/runtime/components/Progress.vue +6 -6
  59. package/dist/runtime/components/RadioGroup.d.vue.ts +2 -2
  60. package/dist/runtime/components/RadioGroup.vue +10 -4
  61. package/dist/runtime/components/RadioGroup.vue.d.ts +2 -2
  62. package/dist/runtime/components/Range.vue +5 -4
  63. package/dist/runtime/components/Select.vue +25 -11
  64. package/dist/runtime/components/SelectMenu.vue +33 -14
  65. package/dist/runtime/components/Separator.vue +7 -7
  66. package/dist/runtime/components/Sidebar.vue +1 -1
  67. package/dist/runtime/components/SidebarBody.vue +1 -1
  68. package/dist/runtime/components/SidebarFooter.vue +1 -1
  69. package/dist/runtime/components/SidebarHeader.vue +1 -1
  70. package/dist/runtime/components/SidebarHeading.vue +1 -1
  71. package/dist/runtime/components/SidebarLayout.vue +18 -13
  72. package/dist/runtime/components/SidebarSection.vue +2 -1
  73. package/dist/runtime/components/SidebarSpacer.vue +1 -1
  74. package/dist/runtime/components/Skeleton.vue +1 -0
  75. package/dist/runtime/components/Slideover.vue +10 -7
  76. package/dist/runtime/components/Stepper.vue +12 -9
  77. package/dist/runtime/components/Switch.vue +10 -6
  78. package/dist/runtime/components/Table.vue +18 -13
  79. package/dist/runtime/components/TableWrapper.vue +1 -0
  80. package/dist/runtime/components/Tabs.d.vue.ts +3 -3
  81. package/dist/runtime/components/Tabs.vue +24 -15
  82. package/dist/runtime/components/Tabs.vue.d.ts +3 -3
  83. package/dist/runtime/components/Textarea.vue +8 -3
  84. package/dist/runtime/components/Timeline.vue +9 -6
  85. package/dist/runtime/components/Toast.vue +10 -6
  86. package/dist/runtime/components/Toaster.vue +2 -0
  87. package/dist/runtime/components/Tooltip.vue +4 -4
  88. package/dist/runtime/components/User.vue +13 -6
  89. package/dist/runtime/components/content/ContentSearch.vue +59 -68
  90. package/dist/runtime/components/content/ContentSearchButton.vue +2 -1
  91. package/dist/runtime/components/content/ContentSurround.vue +6 -4
  92. package/dist/runtime/components/content/ContentToc.vue +13 -10
  93. package/dist/runtime/components/prose/A.vue +1 -1
  94. package/dist/runtime/components/prose/Blockquote.vue +1 -1
  95. package/dist/runtime/components/prose/Callout.vue +4 -1
  96. package/dist/runtime/components/prose/Card.vue +5 -3
  97. package/dist/runtime/components/prose/Code.vue +1 -0
  98. package/dist/runtime/components/prose/CodeCollapse.vue +3 -2
  99. package/dist/runtime/components/prose/CodeGroup.vue +6 -6
  100. package/dist/runtime/components/prose/CodePreview.vue +3 -3
  101. package/dist/runtime/components/prose/Collapsible.vue +3 -2
  102. package/dist/runtime/components/prose/Em.vue +1 -1
  103. package/dist/runtime/components/prose/Field.vue +7 -7
  104. package/dist/runtime/components/prose/H1.vue +1 -0
  105. package/dist/runtime/components/prose/H2.vue +4 -2
  106. package/dist/runtime/components/prose/H3.vue +4 -2
  107. package/dist/runtime/components/prose/H4.vue +4 -2
  108. package/dist/runtime/components/prose/H5.vue +1 -0
  109. package/dist/runtime/components/prose/H6.vue +1 -0
  110. package/dist/runtime/components/prose/Hr.vue +1 -1
  111. package/dist/runtime/components/prose/Img.vue +4 -0
  112. package/dist/runtime/components/prose/Li.vue +1 -1
  113. package/dist/runtime/components/prose/Ol.vue +1 -1
  114. package/dist/runtime/components/prose/P.vue +1 -1
  115. package/dist/runtime/components/prose/Pre.vue +6 -5
  116. package/dist/runtime/components/prose/Strong.vue +1 -1
  117. package/dist/runtime/components/prose/Table.d.vue.ts +0 -3
  118. package/dist/runtime/components/prose/Table.vue +2 -1
  119. package/dist/runtime/components/prose/Table.vue.d.ts +0 -3
  120. package/dist/runtime/components/prose/Tbody.vue +1 -1
  121. package/dist/runtime/components/prose/Td.vue +1 -1
  122. package/dist/runtime/components/prose/Th.vue +1 -1
  123. package/dist/runtime/components/prose/Thead.vue +1 -1
  124. package/dist/runtime/components/prose/Tr.vue +1 -1
  125. package/dist/runtime/components/prose/Ul.vue +1 -1
  126. package/dist/runtime/composables/useContentSearch.d.ts +5 -0
  127. package/dist/runtime/composables/useContentSearch.js +30 -1
  128. package/dist/runtime/inertia/stubs.js +1 -1
  129. package/dist/runtime/types/index.d.ts +3 -0
  130. package/dist/runtime/types/index.js +3 -0
  131. package/dist/shared/{b24ui-nuxt.B9uYyQGR.mjs → b24ui-nuxt.mq1NUekN.mjs} +3 -3
  132. package/dist/unplugin.mjs +1 -1
  133. package/dist/vite.mjs +1 -1
  134. package/package.json +11 -11
@@ -144,7 +144,7 @@ defineExpose({
144
144
  </script>
145
145
 
146
146
  <template>
147
- <Primitive as="div" :class="b24ui.root({ class: [props.b24ui?.root] })">
147
+ <Primitive as="div" data-slot="root" :class="b24ui.root({ class: [props.b24ui?.root] })">
148
148
  <SelectRoot
149
149
  v-slot="{ modelValue, open }"
150
150
  :name="name"
@@ -159,27 +159,31 @@ defineExpose({
159
159
  <SelectTrigger
160
160
  :id="id"
161
161
  ref="triggerRef"
162
+ data-slot="base"
162
163
  :class="b24ui.base({ class: [props.b24ui?.base, props.class] })"
163
164
  v-bind="{ ...$attrs, ...ariaAttrs }"
164
165
  >
165
166
  <B24Badge
166
167
  v-if="isTag"
168
+ data-slot="tag"
167
169
  :class="b24ui.tag({ class: props.b24ui?.tag })"
168
170
  :color="props.tagColor"
169
171
  :label="props.tag"
170
172
  size="xs"
171
173
  />
172
- <span v-if="isLeading || !!avatar || !!slots.leading" :class="b24ui.leading({ class: props.b24ui?.leading })">
174
+ <span v-if="isLeading || !!avatar || !!slots.leading" data-slot="leading" :class="b24ui.leading({ class: props.b24ui?.leading })">
173
175
  <slot name="leading" :model-value="modelValue" :open="open" :b24ui="b24ui">
174
176
  <Component
175
177
  :is="leadingIconName"
176
178
  v-if="isLeading && leadingIconName"
179
+ data-slot="leadingIcon"
177
180
  :class="b24ui.leadingIcon({ class: props.b24ui?.leadingIcon })"
178
181
  />
179
182
  <B24Avatar
180
183
  v-else-if="!!avatar"
181
184
  :size="props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()"
182
185
  v-bind="avatar"
186
+ data-slot="leadingAvatar"
183
187
  :class="b24ui.leadingAvatar({ class: props.b24ui?.leadingAvatar })"
184
188
  />
185
189
  </slot>
@@ -189,12 +193,14 @@ defineExpose({
189
193
  <template v-for="displayedModelValue in [displayValue(modelValue)]" :key="displayedModelValue">
190
194
  <span
191
195
  v-if="displayedModelValue !== void 0 && displayedModelValue !== null"
196
+ data-slot="value"
192
197
  :class="b24ui.value({ class: props.b24ui?.value })"
193
198
  >
194
199
  {{ displayedModelValue }}
195
200
  </span>
196
201
  <span
197
202
  v-else
203
+ data-slot="placeholder"
198
204
  :class="b24ui.placeholder({ class: props.b24ui?.placeholder })"
199
205
  >
200
206
  {{ placeholder ?? "\xA0" }}
@@ -202,11 +208,12 @@ defineExpose({
202
208
  </template>
203
209
  </slot>
204
210
 
205
- <span v-if="isTrailing || !!slots.trailing" :class="b24ui.trailing({ class: props.b24ui?.trailing })">
211
+ <span v-if="isTrailing || !!slots.trailing" data-slot="trailing" :class="b24ui.trailing({ class: props.b24ui?.trailing })">
206
212
  <slot name="trailing" :model-value="modelValue" :open="open" :b24ui="b24ui">
207
213
  <Component
208
214
  :is="trailingIconName"
209
215
  v-if="trailingIconName"
216
+ data-slot="trailingIcon"
210
217
  :class="b24ui.trailingIcon({ class: props.b24ui?.trailingIcon })"
211
218
  />
212
219
  </slot>
@@ -214,23 +221,25 @@ defineExpose({
214
221
  </SelectTrigger>
215
222
 
216
223
  <SelectPortal v-bind="portalProps">
217
- <SelectContent :class="b24ui.content({ class: props.b24ui?.content })" v-bind="contentProps">
224
+ <SelectContent data-slot="content" :class="b24ui.content({ class: props.b24ui?.content })" v-bind="contentProps">
218
225
  <slot name="content-top" />
219
226
 
220
227
  <div
221
228
  role="presentation"
229
+ data-slot="viewport"
222
230
  :class="b24ui.viewport({ class: props.b24ui?.viewport })"
223
231
  >
224
- <SelectGroup v-for="(group, groupIndex) in groups" :key="`group-${groupIndex}`" :class="b24ui.group({ class: props.b24ui?.group })">
232
+ <SelectGroup v-for="(group, groupIndex) in groups" :key="`group-${groupIndex}`" data-slot="group" :class="b24ui.group({ class: props.b24ui?.group })">
225
233
  <template v-for="(item, index) in group" :key="`group-${groupIndex}-${index}`">
226
- <SelectLabel v-if="isSelectItem(item) && item.type === 'label'" :class="b24ui.label({ class: [props.b24ui?.label, item.b24ui?.label, item.class] })">
234
+ <SelectLabel v-if="isSelectItem(item) && item.type === 'label'" data-slot="label" :class="b24ui.label({ class: [props.b24ui?.label, item.b24ui?.label, item.class] })">
227
235
  {{ get(item, props.labelKey) }}
228
236
  </SelectLabel>
229
237
 
230
- <SelectSeparator v-else-if="isSelectItem(item) && item.type === 'separator'" :class="b24ui.separator({ class: [props.b24ui?.separator, item.b24ui?.separator, item.class] })" />
238
+ <SelectSeparator v-else-if="isSelectItem(item) && item.type === 'separator'" data-slot="separator" :class="b24ui.separator({ class: [props.b24ui?.separator, item.b24ui?.separator, item.class] })" />
231
239
 
232
240
  <RSelectItem
233
241
  v-else
242
+ data-slot="item"
234
243
  :class="b24ui.item({ class: [props.b24ui?.item, isSelectItem(item) && item.b24ui?.item, isSelectItem(item) && item.class], colorItem: isSelectItem(item) && item?.color || void 0 })"
235
244
  :disabled="isSelectItem(item) && item.disabled"
236
245
  :value="isSelectItem(item) ? get(item, props.valueKey) : item"
@@ -242,12 +251,13 @@ defineExpose({
242
251
  v-if="isSelectItem(item) && item.avatar"
243
252
  :size="item.b24ui?.itemLeadingAvatarSize || props.b24ui?.itemLeadingAvatarSize || b24ui.itemLeadingAvatarSize()"
244
253
  v-bind="item.avatar"
254
+ data-slot="itemLeadingAvatar"
245
255
  :class="b24ui.itemLeadingAvatar({ class: [props.b24ui?.itemLeadingAvatar, item.b24ui?.itemLeadingAvatar], colorItem: item?.color })"
246
256
  />
247
257
  </slot>
248
258
 
249
- <span :class="b24ui.itemWrapper({ class: [props.b24ui?.itemWrapper, isSelectItem(item) && item.b24ui?.itemWrapper] })">
250
- <SelectItemText :class="b24ui.itemLabel({ class: [props.b24ui?.itemLabel, isSelectItem(item) && item.b24ui?.itemLabel] })">
259
+ <span data-slot="itemWrapper" :class="b24ui.itemWrapper({ class: [props.b24ui?.itemWrapper, isSelectItem(item) && item.b24ui?.itemWrapper] })">
260
+ <SelectItemText data-slot="itemLabel" :class="b24ui.itemLabel({ class: [props.b24ui?.itemLabel, isSelectItem(item) && item.b24ui?.itemLabel] })">
251
261
  <slot name="item-label" :item="item" :index="index">
252
262
  {{ isSelectItem(item) ? get(item, props.labelKey) : item }}
253
263
  </slot>
@@ -255,6 +265,7 @@ defineExpose({
255
265
 
256
266
  <span
257
267
  v-if="isSelectItem(item) && (get(item, props.descriptionKey) || !!slots['item-description'])"
268
+ data-slot="itemDescription"
258
269
  :class="b24ui.itemDescription({ class: [props.b24ui?.itemDescription, isSelectItem(item) && item.b24ui?.itemDescription] })"
259
270
  >
260
271
  <slot
@@ -267,10 +278,11 @@ defineExpose({
267
278
  </span>
268
279
  </span>
269
280
 
270
- <span :class="b24ui.itemTrailing({ class: [props.b24ui?.itemTrailing, isSelectItem(item) && item.b24ui?.itemTrailing], colorItem: isSelectItem(item) && item?.color || void 0 })">
281
+ <span data-slot="itemTrailing" :class="b24ui.itemTrailing({ class: [props.b24ui?.itemTrailing, isSelectItem(item) && item.b24ui?.itemTrailing], colorItem: isSelectItem(item) && item?.color || void 0 })">
271
282
  <SelectItemIndicator as-child>
272
283
  <Component
273
284
  :is="selectedIcon || icons.check"
285
+ data-slot="itemTrailingIcon"
274
286
  :class="b24ui.itemTrailingIcon({ class: [props.b24ui?.itemTrailingIcon, isSelectItem(item) && item.b24ui?.itemTrailingIcon], colorItem: isSelectItem(item) && item?.color || void 0 })"
275
287
  />
276
288
  </SelectItemIndicator>
@@ -279,6 +291,7 @@ defineExpose({
279
291
  <Component
280
292
  :is="item.icon"
281
293
  v-if="isSelectItem(item) && item.icon"
294
+ data-slot="itemLeadingIcon"
282
295
  :class="b24ui.itemLeadingIcon({ class: [props.b24ui?.itemLeadingIcon, item.b24ui?.itemLeadingIcon], colorItem: item?.color })"
283
296
  />
284
297
  <B24Chip
@@ -287,6 +300,7 @@ defineExpose({
287
300
  inset
288
301
  standalone
289
302
  v-bind="item.chip"
303
+ data-slot="itemLeadingChip"
290
304
  :class="b24ui.itemLeadingChip({ class: [props.b24ui?.itemLeadingChip, item.b24ui?.itemLeadingChip], colorItem: item?.color })"
291
305
  />
292
306
  </slot>
@@ -299,7 +313,7 @@ defineExpose({
299
313
 
300
314
  <slot name="content-bottom" />
301
315
 
302
- <SelectArrow v-if="!!arrow" v-bind="arrowProps" :class="b24ui.arrow({ class: props.b24ui?.arrow })" />
316
+ <SelectArrow v-if="!!arrow" v-bind="arrowProps" data-slot="arrow" :class="b24ui.arrow({ class: props.b24ui?.arrow })" />
303
317
  </SelectContent>
304
318
  </SelectPortal>
305
319
  </SelectRoot>
@@ -239,14 +239,16 @@ defineExpose({
239
239
  <template>
240
240
  <DefineCreateItemTemplate>
241
241
  <ComboboxItem
242
+ data-slot="item"
242
243
  :class="b24ui.item({ addNew: true, class: props.b24ui?.item })"
243
244
  :value="searchTerm"
244
245
  @select.prevent="emits('create', searchTerm)"
245
246
  >
246
- <span :class="b24ui.itemLabel({ addNew: true, class: props.b24ui?.itemLabel })">
247
+ <span data-slot="itemLabel" :class="b24ui.itemLabel({ addNew: true, class: props.b24ui?.itemLabel })">
247
248
  <slot name="create-item-label" :item="searchTerm">
248
249
  <Component
249
250
  :is="icons.plus"
251
+ data-slot="itemLeadingIcon"
250
252
  :class="b24ui.itemLeadingIcon({ addNew: true, class: props.b24ui?.itemLeadingIcon })"
251
253
  />
252
254
  {{ t("selectMenu.create", { label: searchTerm }) }}
@@ -258,6 +260,7 @@ defineExpose({
258
260
  <DefineItemTemplate v-slot="{ item, index }">
259
261
  <ComboboxLabel
260
262
  v-if="isSelectItem(item) && item.type === 'label'"
263
+ data-slot="label"
261
264
  :class="b24ui.label({ class: [props.b24ui?.label, item.b24ui?.label, item.class] })"
262
265
  >
263
266
  {{ get(item, props.labelKey) }}
@@ -265,11 +268,13 @@ defineExpose({
265
268
 
266
269
  <ComboboxSeparator
267
270
  v-else-if="isSelectItem(item) && item.type === 'separator'"
271
+ data-slot="separator"
268
272
  :class="b24ui.separator({ class: [props.b24ui?.separator, item.b24ui?.separator, item.class] })"
269
273
  />
270
274
 
271
275
  <ComboboxItem
272
276
  v-else
277
+ data-slot="item"
273
278
  :class="b24ui.item({ class: [props.b24ui?.item, isSelectItem(item) && item.b24ui?.item, isSelectItem(item) && item.class], colorItem: isSelectItem(item) && item?.color || void 0 })"
274
279
  :disabled="isSelectItem(item) && item.disabled"
275
280
  :value="props.valueKey && isSelectItem(item) ? get(item, props.valueKey) : item"
@@ -281,12 +286,13 @@ defineExpose({
281
286
  v-if="isSelectItem(item) && item.avatar"
282
287
  :size="item.b24ui?.itemLeadingAvatarSize || props.b24ui?.itemLeadingAvatarSize || b24ui.itemLeadingAvatarSize()"
283
288
  v-bind="item.avatar"
289
+ data-slot="itemLeadingAvatar"
284
290
  :class="b24ui.itemLeadingAvatar({ class: [props.b24ui?.itemLeadingAvatar, item.b24ui?.itemLeadingAvatar], colorItem: item?.color })"
285
291
  />
286
292
  </slot>
287
293
 
288
- <span :class="b24ui.itemWrapper({ class: [props.b24ui?.itemWrapper, isSelectItem(item) && item.b24ui?.itemWrapper] })">
289
- <span :class="b24ui.itemLabel({ class: [props.b24ui?.itemLabel, isSelectItem(item) && item.b24ui?.itemLabel] })">
294
+ <span data-slot="itemWrapper" :class="b24ui.itemWrapper({ class: [props.b24ui?.itemWrapper, isSelectItem(item) && item.b24ui?.itemWrapper] })">
295
+ <span data-slot="itemLabel" :class="b24ui.itemLabel({ class: [props.b24ui?.itemLabel, isSelectItem(item) && item.b24ui?.itemLabel] })">
290
296
  <slot name="item-label" :item="item" :index="index">
291
297
  {{ isSelectItem(item) ? get(item, props.labelKey) : item }}
292
298
  </slot>
@@ -294,6 +300,7 @@ defineExpose({
294
300
 
295
301
  <span
296
302
  v-if="isSelectItem(item) && (get(item, props.descriptionKey) || !!slots['item-description'])"
303
+ data-slot="itemDescription"
297
304
  :class="b24ui.itemDescription({ class: [props.b24ui?.itemDescription, isSelectItem(item) && item.b24ui?.itemDescription] })"
298
305
  >
299
306
  <slot
@@ -306,10 +313,11 @@ defineExpose({
306
313
  </span>
307
314
  </span>
308
315
 
309
- <span :class="b24ui.itemTrailing({ class: [props.b24ui?.itemTrailing, isSelectItem(item) && item.b24ui?.itemTrailing], colorItem: isSelectItem(item) && item?.color || void 0 })">
316
+ <span data-slot="itemTrailing" :class="b24ui.itemTrailing({ class: [props.b24ui?.itemTrailing, isSelectItem(item) && item.b24ui?.itemTrailing], colorItem: isSelectItem(item) && item?.color || void 0 })">
310
317
  <ComboboxItemIndicator as-child>
311
318
  <Component
312
319
  :is="selectedIcon || icons.check"
320
+ data-slot="itemTrailingIcon"
313
321
  :class="b24ui.itemTrailingIcon({ class: [props.b24ui?.itemTrailingIcon, isSelectItem(item) && item.b24ui?.itemTrailingIcon], colorItem: isSelectItem(item) && item?.color || void 0 })"
314
322
  />
315
323
  </ComboboxItemIndicator>
@@ -318,6 +326,7 @@ defineExpose({
318
326
  <Component
319
327
  :is="item.icon"
320
328
  v-if="isSelectItem(item) && item.icon"
329
+ data-slot="itemLeadingIcon"
321
330
  :class="b24ui.itemLeadingIcon({ class: [props.b24ui?.itemLeadingIcon, item.b24ui?.itemLeadingIcon], colorItem: item?.color })"
322
331
  />
323
332
  <B24Chip
@@ -326,6 +335,7 @@ defineExpose({
326
335
  inset
327
336
  standalone
328
337
  v-bind="item.chip"
338
+ data-slot="itemLeadingChip"
329
339
  :class="b24ui.itemLeadingChip({ class: [props.b24ui?.itemLeadingChip, item.b24ui?.itemLeadingChip], colorItem: item?.color })"
330
340
  />
331
341
  </slot>
@@ -334,7 +344,7 @@ defineExpose({
334
344
  </ComboboxItem>
335
345
  </DefineItemTemplate>
336
346
 
337
- <Primitive as="div" :class="b24ui.root({ addNew: true, class: [props.b24ui?.root] })">
347
+ <Primitive as="div" data-slot="root" :class="b24ui.root({ addNew: true, class: [props.b24ui?.root] })">
338
348
  <ComboboxRoot
339
349
  :id="id"
340
350
  v-slot="{ modelValue, open }"
@@ -349,27 +359,31 @@ defineExpose({
349
359
  <ComboboxAnchor as-child>
350
360
  <ComboboxTrigger
351
361
  ref="triggerRef"
362
+ data-slot="base"
352
363
  :class="b24ui.base({ class: [props.b24ui?.base, props.class] })"
353
364
  tabindex="0"
354
365
  >
355
366
  <B24Badge
356
367
  v-if="isTag"
368
+ data-slot="tag"
357
369
  :class="b24ui.tag({ class: props.b24ui?.tag })"
358
370
  :color="props.tagColor"
359
371
  :label="props.tag"
360
372
  size="xs"
361
373
  />
362
- <span v-if="isLeading || !!avatar || !!slots.leading" :class="b24ui.leading({ class: props.b24ui?.leading })">
374
+ <span v-if="isLeading || !!avatar || !!slots.leading" data-slot="leading" :class="b24ui.leading({ class: props.b24ui?.leading })">
363
375
  <slot name="leading" :model-value="modelValue" :open="open" :b24ui="b24ui">
364
376
  <Component
365
377
  :is="leadingIconName"
366
378
  v-if="isLeading && leadingIconName"
379
+ data-slot="leadingIcon"
367
380
  :class="b24ui.leadingIcon({ class: props.b24ui?.leadingIcon })"
368
381
  />
369
382
  <B24Avatar
370
383
  v-else-if="!!avatar"
371
384
  :size="props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()"
372
385
  v-bind="avatar"
386
+ data-slot="leadingAvatar"
373
387
  :class="b24ui.leadingAvatar({ class: props.b24ui?.leadingAvatar })"
374
388
  />
375
389
  </slot>
@@ -379,12 +393,14 @@ defineExpose({
379
393
  <template v-for="displayedModelValue in [displayValue(modelValue)]" :key="displayedModelValue">
380
394
  <span
381
395
  v-if="displayedModelValue !== void 0 && displayedModelValue !== null"
396
+ data-slot="value"
382
397
  :class="b24ui.value({ class: props.b24ui?.value })"
383
398
  >
384
399
  {{ displayedModelValue }}
385
400
  </span>
386
401
  <span
387
402
  v-else
403
+ data-slot="placeholder"
388
404
  :class="b24ui.placeholder({ class: props.b24ui?.placeholder })"
389
405
  >
390
406
  {{ placeholder ?? "\xA0" }}
@@ -392,11 +408,12 @@ defineExpose({
392
408
  </template>
393
409
  </slot>
394
410
 
395
- <span v-if="isTrailing || !!slots.trailing" :class="b24ui.trailing({ class: props.b24ui?.trailing })">
411
+ <span v-if="isTrailing || !!slots.trailing" data-slot="trailing" :class="b24ui.trailing({ class: props.b24ui?.trailing })">
396
412
  <slot name="trailing" :model-value="modelValue" :open="open" :b24ui="b24ui">
397
413
  <Component
398
414
  :is="trailingIconName"
399
415
  v-if="trailingIconName"
416
+ data-slot="trailingIcon"
400
417
  :class="b24ui.trailingIcon({ class: props.b24ui?.trailingIcon })"
401
418
  />
402
419
  </slot>
@@ -405,8 +422,8 @@ defineExpose({
405
422
  </ComboboxAnchor>
406
423
 
407
424
  <ComboboxPortal v-bind="portalProps">
408
- <ComboboxContent :class="b24ui.content({ class: props.b24ui?.content })" v-bind="contentProps">
409
- <FocusScope trapped :class="b24ui.focusScope({ class: props.b24ui?.focusScope })">
425
+ <ComboboxContent data-slot="content" :class="b24ui.content({ class: props.b24ui?.content })" v-bind="contentProps">
426
+ <FocusScope trapped data-slot="focusScope" :class="b24ui.focusScope({ class: props.b24ui?.focusScope })">
410
427
  <slot name="content-top" />
411
428
 
412
429
  <ComboboxInput
@@ -421,11 +438,12 @@ defineExpose({
421
438
  autocomplete="off"
422
439
  :size="size"
423
440
  v-bind="searchInputProps"
441
+ data-slot="input"
424
442
  :class="b24ui.input({ class: props.b24ui?.input })"
425
443
  />
426
444
  </ComboboxInput>
427
445
 
428
- <ComboboxEmpty :class="b24ui.empty({ class: props.b24ui?.empty })">
446
+ <ComboboxEmpty data-slot="empty" :class="b24ui.empty({ class: props.b24ui?.empty })">
429
447
  <slot name="empty" :search-term="searchTerm">
430
448
  {{ searchTerm ? t("selectMenu.noMatch", { searchTerm }) : t("selectMenu.noData") }}
431
449
  </slot>
@@ -433,6 +451,7 @@ defineExpose({
433
451
 
434
452
  <div
435
453
  role="presentation"
454
+ data-slot="viewport"
436
455
  :class="b24ui.viewport({ class: props.b24ui?.viewport })"
437
456
  >
438
457
  <template v-if="!!virtualize">
@@ -451,15 +470,15 @@ defineExpose({
451
470
  </template>
452
471
 
453
472
  <template v-else>
454
- <ComboboxGroup v-if="createItem && createItemPosition === 'top'" :class="b24ui.group({ class: props.b24ui?.group })">
473
+ <ComboboxGroup v-if="createItem && createItemPosition === 'top'" data-slot="group" :class="b24ui.group({ class: props.b24ui?.group })">
455
474
  <ReuseCreateItemTemplate />
456
475
  </ComboboxGroup>
457
476
 
458
- <ComboboxGroup v-for="(group, groupIndex) in filteredGroups" :key="`group-${groupIndex}`" :class="b24ui.group({ class: props.b24ui?.group })">
477
+ <ComboboxGroup v-for="(group, groupIndex) in filteredGroups" :key="`group-${groupIndex}`" data-slot="group" :class="b24ui.group({ class: props.b24ui?.group })">
459
478
  <ReuseItemTemplate v-for="(item, index) in group" :key="`group-${groupIndex}-${index}`" :item="item" :index="index" />
460
479
  </ComboboxGroup>
461
480
 
462
- <ComboboxGroup v-if="createItem && createItemPosition === 'bottom'" :class="b24ui.group({ class: props.b24ui?.group })">
481
+ <ComboboxGroup v-if="createItem && createItemPosition === 'bottom'" data-slot="group" :class="b24ui.group({ class: props.b24ui?.group })">
463
482
  <ReuseCreateItemTemplate />
464
483
  </ComboboxGroup>
465
484
  </template>
@@ -468,7 +487,7 @@ defineExpose({
468
487
  <slot name="content-bottom" />
469
488
  </FocusScope>
470
489
 
471
- <ComboboxArrow v-if="!!arrow" v-bind="arrowProps" :class="b24ui.arrow({ class: props.b24ui?.arrow })" />
490
+ <ComboboxArrow v-if="!!arrow" v-bind="arrowProps" data-slot="arrow" :class="b24ui.arrow({ class: props.b24ui?.arrow })" />
472
491
  </ComboboxContent>
473
492
  </ComboboxPortal>
474
493
  </ComboboxRoot>
@@ -34,19 +34,19 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.separat
34
34
  </script>
35
35
 
36
36
  <template>
37
- <Separator v-bind="rootProps" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
38
- <div :class="b24ui.border({ class: props.b24ui?.border })" />
37
+ <Separator v-bind="rootProps" data-slot="root" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
38
+ <div data-slot="border" :class="b24ui.border({ class: props.b24ui?.border })" />
39
39
 
40
40
  <template v-if="label !== void 0 && label !== null || icon || avatar || !!slots.default">
41
- <div :class="b24ui.container({ class: props.b24ui?.container })">
41
+ <div data-slot="container" :class="b24ui.container({ class: props.b24ui?.container })">
42
42
  <slot :b24ui="b24ui">
43
- <span v-if="label !== void 0 && label !== null" :class="b24ui.label({ class: props.b24ui?.label })">{{ label }}</span>
44
- <Component :is="icon" v-else-if="icon" :class="b24ui.icon({ class: props.b24ui?.icon })" />
45
- <B24Avatar v-else-if="avatar" :size="props.b24ui?.avatarSize || b24ui.avatarSize()" v-bind="avatar" :class="b24ui.avatar({ class: props.b24ui?.avatar })" />
43
+ <span v-if="label !== void 0 && label !== null" data-slot="label" :class="b24ui.label({ class: props.b24ui?.label })">{{ label }}</span>
44
+ <Component :is="icon" v-else-if="icon" data-slot="icon" :class="b24ui.icon({ class: props.b24ui?.icon })" />
45
+ <B24Avatar v-else-if="avatar" :size="props.b24ui?.avatarSize || b24ui.avatarSize()" v-bind="avatar" data-slot="avatar" :class="b24ui.avatar({ class: props.b24ui?.avatar })" />
46
46
  </slot>
47
47
  </div>
48
48
 
49
- <div :class="b24ui.border({ class: props.b24ui?.border })" />
49
+ <div data-slot="border" :class="b24ui.border({ class: props.b24ui?.border })" />
50
50
  </template>
51
51
  </Separator>
52
52
  </template>
@@ -19,7 +19,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.sidebar
19
19
 
20
20
  <template>
21
21
  <!-- Sidebar -->
22
- <Primitive :as="as" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
22
+ <Primitive :as="as" data-slot="root" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
23
23
  <slot />
24
24
  </Primitive>
25
25
  </template>
@@ -21,7 +21,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.sidebar
21
21
  </script>
22
22
 
23
23
  <template>
24
- <Primitive :as="as" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
24
+ <Primitive :as="as" data-slot="root" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
25
25
  <slot />
26
26
  </Primitive>
27
27
  </template>
@@ -18,7 +18,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.sidebar
18
18
  </script>
19
19
 
20
20
  <template>
21
- <Primitive :as="as" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
21
+ <Primitive :as="as" data-slot="root" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
22
22
  <slot />
23
23
  </Primitive>
24
24
  </template>
@@ -18,7 +18,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.sidebar
18
18
  </script>
19
19
 
20
20
  <template>
21
- <Primitive :as="as" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
21
+ <Primitive :as="as" data-slot="root" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
22
22
  <slot />
23
23
  </Primitive>
24
24
  </template>
@@ -18,7 +18,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.sidebar
18
18
  </script>
19
19
 
20
20
  <template>
21
- <Primitive :as="as" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
21
+ <Primitive :as="as" data-slot="root" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
22
22
  <slot />
23
23
  </Primitive>
24
24
  </template>
@@ -68,6 +68,7 @@ const handleNavigationClick = () => {
68
68
  v-bind="$attrs"
69
69
  data-state="isLoading ? 'loading' : 'show'"
70
70
  :as="as"
71
+ data-slot="root"
71
72
  :class="b24ui.root({ class: [props.b24ui?.root, props.class] })"
72
73
  >
73
74
  <!-- isLoading -->
@@ -81,8 +82,9 @@ const handleNavigationClick = () => {
81
82
  overlay-blur="off"
82
83
  >
83
84
  <template #content>
84
- <div :class="b24ui.loadingWrapper({ class: props.b24ui?.loadingWrapper })">
85
+ <div data-slot="loadingWrapper" :class="b24ui.loadingWrapper({ class: props.b24ui?.loadingWrapper })">
85
86
  <BtnSpinnerIcon
87
+ data-slot="loadingIcon"
86
88
  :class="b24ui.loadingIcon({ class: props.b24ui?.loadingIcon })"
87
89
  aria-hidden="true"
88
90
  />
@@ -91,20 +93,22 @@ const handleNavigationClick = () => {
91
93
  </B24Slideover>
92
94
  </slot>
93
95
  <template v-if="isUseSideBar">
94
- <div :class="b24ui.sidebar({ class: props.b24ui?.sidebar })">
96
+ <div data-slot="sidebar" :class="b24ui.sidebar({ class: props.b24ui?.sidebar })">
95
97
  <B24Sidebar>
96
98
  <slot name="sidebar" :handle-click="handleNavigationClick" :is-loading="isLoading" :b24ui="b24ui" />
97
99
  </B24Sidebar>
98
100
  </div>
99
101
  </template>
100
102
 
101
- <div :class="b24ui.contentWrapper({ class: props.b24ui?.contentWrapper })">
103
+ <div data-slot="contentWrapper" :class="b24ui.contentWrapper({ class: props.b24ui?.contentWrapper })">
102
104
  <header
103
105
  v-if="isUseNavbar"
106
+ data-slot="header"
104
107
  :class="b24ui.header({ class: props.b24ui?.header })"
105
108
  >
106
109
  <div
107
110
  v-if="isUseSideBar"
111
+ data-slot="headerMenuIcon"
108
112
  :class="b24ui.headerMenuIcon({ class: props.b24ui?.headerMenuIcon })"
109
113
  >
110
114
  <B24Slideover
@@ -124,9 +128,9 @@ const handleNavigationClick = () => {
124
128
  />
125
129
 
126
130
  <template #content>
127
- <div :class="b24ui.sidebarSlideover({ class: props.b24ui?.sidebarSlideover })">
131
+ <div data-slot="sidebarSlideover" :class="b24ui.sidebarSlideover({ class: props.b24ui?.sidebarSlideover })">
128
132
  <B24Sidebar>
129
- <div :class="b24ui.sidebarSlideoverBtnClose({ class: props.b24ui?.sidebarSlideoverBtnClose })">
133
+ <div data-slot="sidebarSlideoverBtnClose" :class="b24ui.sidebarSlideoverBtnClose({ class: props.b24ui?.sidebarSlideoverBtnClose })">
130
134
  <B24ModalDialogClose>
131
135
  <B24Button
132
136
  color="air-tertiary"
@@ -143,26 +147,26 @@ const handleNavigationClick = () => {
143
147
  </template>
144
148
  </B24Slideover>
145
149
  </div>
146
- <div :class="b24ui.headerWrapper({ class: props.b24ui?.headerWrapper })">
150
+ <div data-slot="headerWrapper" :class="b24ui.headerWrapper({ class: props.b24ui?.headerWrapper })">
147
151
  <B24Navbar>
148
152
  <slot name="navbar" :handle-click="handleNavigationClick" :is-loading="isLoading" :b24ui="b24ui" />
149
153
  </B24Navbar>
150
154
  </div>
151
155
  </header>
152
156
 
153
- <div :class="b24ui.pageWrapper({ class: props.b24ui?.pageWrapper })">
157
+ <div data-slot="pageWrapper" :class="b24ui.pageWrapper({ class: props.b24ui?.pageWrapper })">
154
158
  <template v-if="!!slots['content-top'] || !!slots['content-actions'] || !!slots['default']">
155
- <main :class="b24ui.container({ class: props.b24ui?.container })">
159
+ <main data-slot="container" :class="b24ui.container({ class: props.b24ui?.container })">
156
160
  <template v-if="!!slots['content-top']">
157
161
  <!-- Page Top -->
158
- <div :class="b24ui.pageTopWrapper({ class: props.b24ui?.pageTopWrapper })">
162
+ <div data-slot="pageTopWrapper" :class="b24ui.pageTopWrapper({ class: props.b24ui?.pageTopWrapper })">
159
163
  <slot name="content-top" :is-loading="isLoading" :b24ui="b24ui" />
160
164
  </div>
161
165
  </template>
162
166
 
163
167
  <template v-if="!!slots['content-actions']">
164
168
  <!-- Page Actions -->
165
- <div :class="b24ui.pageActionsWrapper({ class: props.b24ui?.pageActionsWrapper })">
169
+ <div data-slot="pageActionsWrapper" :class="b24ui.pageActionsWrapper({ class: props.b24ui?.pageActionsWrapper })">
166
170
  <slot name="content-actions" :is-loading="isLoading" :b24ui="b24ui" />
167
171
  </div>
168
172
  </template>
@@ -171,9 +175,10 @@ const handleNavigationClick = () => {
171
175
  <!-- Page Content -->
172
176
  <div
173
177
  :data-content="props.useLightContent ? 'use-light' : 'not-set'"
178
+ data-slot="containerWrapper"
174
179
  :class="b24ui.containerWrapper({ class: props.b24ui?.containerWrapper })"
175
180
  >
176
- <div :class="b24ui.containerWrapperInner({ class: props.b24ui?.containerWrapperInner })">
181
+ <div data-slot="containerWrapperInner" :class="b24ui.containerWrapperInner({ class: props.b24ui?.containerWrapperInner })">
177
182
  <slot :is-loading="isLoading" :b24ui="b24ui" />
178
183
  </div>
179
184
  </div>
@@ -182,14 +187,14 @@ const handleNavigationClick = () => {
182
187
  </template>
183
188
 
184
189
  <template v-if="!!slots['content-right']">
185
- <div :class="b24ui.pageRightWrapper({ class: props.b24ui?.pageRightWrapper })">
190
+ <div data-slot="pageRightWrapper" :class="b24ui.pageRightWrapper({ class: props.b24ui?.pageRightWrapper })">
186
191
  <slot name="content-right" :is-loading="isLoading" :b24ui="b24ui" />
187
192
  </div>
188
193
  </template>
189
194
  </div>
190
195
  <template v-if="!!slots['content-bottom']">
191
196
  <!-- Page Bottom -->
192
- <div :class="b24ui.pageBottomWrapper({ class: props.b24ui?.pageBottomWrapper })">
197
+ <div data-slot="pageBottomWrapper" :class="b24ui.pageBottomWrapper({ class: props.b24ui?.pageBottomWrapper })">
193
198
  <slot name="content-bottom" :is-loading="isLoading" :b24ui="b24ui" />
194
199
  </div>
195
200
  </template>
@@ -20,8 +20,9 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.sidebar
20
20
  <template>
21
21
  <Primitive
22
22
  :as="as"
23
+ data-component="section"
24
+ data-slot="root"
23
25
  :class="b24ui.root({ class: [props.b24ui?.root, props.class] })"
24
- data-slot="section"
25
26
  >
26
27
  <slot />
27
28
  </Primitive>
@@ -18,7 +18,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.sidebar
18
18
  </script>
19
19
 
20
20
  <template>
21
- <Primitive :as="as" aria-hidden="true" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
21
+ <Primitive :as="as" aria-hidden="true" data-slot="root" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
22
22
  <slot />
23
23
  </Primitive>
24
24
  </template>
@@ -26,6 +26,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.skeleto
26
26
  aria-label="loading"
27
27
  aria-live="polite"
28
28
  role="alert"
29
+ data-slot="base"
29
30
  :class="b24ui.base({ class: [props.b24ui?.base, props.class] })"
30
31
  >
31
32
  <slot />