@bitrix24/b24ui-nuxt 2.1.2 → 2.1.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.
- package/cli/templates.mjs +2 -2
- package/dist/meta.d.mts +1321 -192
- package/dist/meta.mjs +1321 -192
- package/dist/module.json +1 -1
- package/dist/module.mjs +1 -1
- package/dist/runtime/components/Accordion.vue +9 -4
- package/dist/runtime/components/Advice.vue +9 -5
- package/dist/runtime/components/Alert.vue +9 -7
- package/dist/runtime/components/Avatar.vue +4 -2
- package/dist/runtime/components/AvatarGroup.vue +3 -3
- package/dist/runtime/components/Badge.vue +6 -1
- package/dist/runtime/components/Banner.vue +9 -8
- package/dist/runtime/components/Breadcrumb.vue +9 -4
- package/dist/runtime/components/Button.vue +12 -9
- package/dist/runtime/components/Calendar.vue +11 -5
- package/dist/runtime/components/Card.vue +4 -4
- package/dist/runtime/components/ChatMessage.vue +7 -5
- package/dist/runtime/components/ChatMessages.vue +4 -2
- package/dist/runtime/components/ChatPalette.vue +3 -3
- package/dist/runtime/components/ChatPrompt.vue +4 -3
- package/dist/runtime/components/ChatPromptSubmit.vue +1 -0
- package/dist/runtime/components/Checkbox.vue +9 -7
- package/dist/runtime/components/CheckboxGroup.vue +4 -2
- package/dist/runtime/components/Chip.vue +3 -0
- package/dist/runtime/components/Collapsible.vue +2 -2
- package/dist/runtime/components/ColorPicker.vue +7 -3
- package/dist/runtime/components/CommandPalette.vue +68 -23
- package/dist/runtime/components/ContextMenu.vue +1 -0
- package/dist/runtime/components/ContextMenuContent.vue +19 -6
- package/dist/runtime/components/Countdown.vue +8 -1
- package/dist/runtime/components/DashboardSearch.vue +1 -0
- package/dist/runtime/components/DashboardSearchButton.vue +2 -1
- package/dist/runtime/components/DescriptionList.vue +12 -4
- package/dist/runtime/components/DropdownMenu.vue +2 -1
- package/dist/runtime/components/DropdownMenuContent.vue +21 -7
- package/dist/runtime/components/Empty.vue +9 -8
- package/dist/runtime/components/Error.vue +5 -5
- package/dist/runtime/components/FileUpload.vue +15 -8
- package/dist/runtime/components/FormField.vue +11 -11
- package/dist/runtime/components/Input.vue +8 -3
- package/dist/runtime/components/InputDate.vue +9 -2
- package/dist/runtime/components/InputMenu.vue +50 -32
- package/dist/runtime/components/InputNumber.vue +5 -2
- package/dist/runtime/components/InputTags.vue +12 -3
- package/dist/runtime/components/InputTime.vue +8 -2
- package/dist/runtime/components/Kbd.vue +1 -1
- package/dist/runtime/components/Modal.vue +11 -8
- package/dist/runtime/components/Navbar.vue +1 -1
- package/dist/runtime/components/NavbarDivider.vue +1 -1
- package/dist/runtime/components/NavbarSection.vue +2 -1
- package/dist/runtime/components/NavbarSpacer.vue +1 -1
- package/dist/runtime/components/NavigationMenu.vue +43 -12
- package/dist/runtime/components/PageCard.vue +10 -9
- package/dist/runtime/components/PageLinks.vue +9 -7
- package/dist/runtime/components/Pagination.vue +8 -8
- package/dist/runtime/components/PinInput.vue +2 -0
- package/dist/runtime/components/Popover.vue +2 -2
- package/dist/runtime/components/Progress.vue +6 -6
- package/dist/runtime/components/RadioGroup.d.vue.ts +2 -2
- package/dist/runtime/components/RadioGroup.vue +10 -4
- package/dist/runtime/components/RadioGroup.vue.d.ts +2 -2
- package/dist/runtime/components/Range.vue +5 -4
- package/dist/runtime/components/Select.vue +25 -11
- package/dist/runtime/components/SelectMenu.vue +47 -25
- package/dist/runtime/components/Separator.vue +7 -7
- package/dist/runtime/components/Sidebar.vue +1 -1
- package/dist/runtime/components/SidebarBody.vue +1 -1
- package/dist/runtime/components/SidebarFooter.vue +1 -1
- package/dist/runtime/components/SidebarHeader.vue +1 -1
- package/dist/runtime/components/SidebarHeading.vue +1 -1
- package/dist/runtime/components/SidebarLayout.vue +18 -13
- package/dist/runtime/components/SidebarSection.vue +2 -1
- package/dist/runtime/components/SidebarSpacer.vue +1 -1
- package/dist/runtime/components/Skeleton.vue +1 -0
- package/dist/runtime/components/Slideover.vue +10 -7
- package/dist/runtime/components/Stepper.vue +12 -9
- package/dist/runtime/components/Switch.vue +10 -6
- package/dist/runtime/components/Table.d.vue.ts +2 -2
- package/dist/runtime/components/Table.vue +33 -15
- package/dist/runtime/components/Table.vue.d.ts +2 -2
- package/dist/runtime/components/TableWrapper.vue +1 -0
- package/dist/runtime/components/Tabs.d.vue.ts +3 -3
- package/dist/runtime/components/Tabs.vue +24 -15
- package/dist/runtime/components/Tabs.vue.d.ts +3 -3
- package/dist/runtime/components/Textarea.vue +8 -3
- package/dist/runtime/components/Timeline.vue +9 -6
- package/dist/runtime/components/Toast.vue +10 -6
- package/dist/runtime/components/Toaster.vue +2 -0
- package/dist/runtime/components/Tooltip.vue +4 -4
- package/dist/runtime/components/User.vue +13 -6
- package/dist/runtime/components/color-mode/ColorModeButton.d.vue.ts +2 -9
- package/dist/runtime/components/color-mode/ColorModeButton.vue +8 -13
- package/dist/runtime/components/color-mode/ColorModeButton.vue.d.ts +2 -9
- package/dist/runtime/components/content/ContentSearch.vue +59 -68
- package/dist/runtime/components/content/ContentSearchButton.vue +2 -1
- package/dist/runtime/components/content/ContentSurround.vue +6 -4
- package/dist/runtime/components/content/ContentToc.vue +13 -10
- package/dist/runtime/components/prose/A.vue +1 -1
- package/dist/runtime/components/prose/Blockquote.vue +1 -1
- package/dist/runtime/components/prose/Callout.vue +4 -1
- package/dist/runtime/components/prose/Card.vue +5 -3
- package/dist/runtime/components/prose/Code.vue +1 -0
- package/dist/runtime/components/prose/CodeCollapse.vue +3 -2
- package/dist/runtime/components/prose/CodeGroup.vue +6 -6
- package/dist/runtime/components/prose/CodePreview.vue +3 -3
- package/dist/runtime/components/prose/Collapsible.vue +3 -2
- package/dist/runtime/components/prose/Em.vue +1 -1
- package/dist/runtime/components/prose/Field.vue +7 -7
- package/dist/runtime/components/prose/H1.vue +1 -0
- package/dist/runtime/components/prose/H2.vue +4 -2
- package/dist/runtime/components/prose/H3.vue +4 -2
- package/dist/runtime/components/prose/H4.vue +4 -2
- package/dist/runtime/components/prose/H5.vue +1 -0
- package/dist/runtime/components/prose/H6.vue +1 -0
- package/dist/runtime/components/prose/Hr.vue +1 -1
- package/dist/runtime/components/prose/Img.vue +4 -0
- package/dist/runtime/components/prose/Li.vue +1 -1
- package/dist/runtime/components/prose/Ol.vue +1 -1
- package/dist/runtime/components/prose/P.vue +1 -1
- package/dist/runtime/components/prose/Pre.vue +6 -5
- package/dist/runtime/components/prose/Strong.vue +1 -1
- package/dist/runtime/components/prose/Table.d.vue.ts +0 -3
- package/dist/runtime/components/prose/Table.vue +2 -1
- package/dist/runtime/components/prose/Table.vue.d.ts +0 -3
- package/dist/runtime/components/prose/Tbody.vue +1 -1
- package/dist/runtime/components/prose/Td.vue +1 -1
- package/dist/runtime/components/prose/Th.vue +1 -1
- package/dist/runtime/components/prose/Thead.vue +1 -1
- package/dist/runtime/components/prose/Tr.vue +1 -1
- package/dist/runtime/components/prose/Ul.vue +1 -1
- package/dist/runtime/composables/useContentSearch.d.ts +5 -0
- package/dist/runtime/composables/useContentSearch.js +30 -1
- package/dist/runtime/inertia/stubs.js +1 -1
- package/dist/runtime/types/index.d.ts +3 -0
- package/dist/runtime/types/index.js +3 -0
- package/dist/runtime/utils/virtualizer.d.ts +6 -0
- package/dist/runtime/utils/virtualizer.js +32 -0
- package/dist/shared/{b24ui-nuxt.B9uYyQGR.mjs → b24ui-nuxt.Bs0V9FLV.mjs} +25 -19
- package/dist/unplugin.mjs +1 -1
- package/dist/vite.mjs +1 -1
- package/package.json +11 -11
- package/dist/runtime/vue/components/color-mode/ColorModeButton.d.vue.ts +0 -12
- package/dist/runtime/vue/components/color-mode/ColorModeButton.vue +0 -83
- package/dist/runtime/vue/components/color-mode/ColorModeButton.vue.d.ts +0 -12
|
@@ -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>
|
|
@@ -14,6 +14,7 @@ import { useFormField } from "../composables/useFormField";
|
|
|
14
14
|
import { useLocale } from "../composables/useLocale";
|
|
15
15
|
import { usePortal } from "../composables/usePortal";
|
|
16
16
|
import { compare, get, getDisplayValue, isArrayOfArray } from "../utils";
|
|
17
|
+
import { getEstimateSize } from "../utils/virtualizer";
|
|
17
18
|
import { tv } from "../utils/tv";
|
|
18
19
|
import icons from "../dictionary/icons";
|
|
19
20
|
import B24Badge from "./Badge.vue";
|
|
@@ -77,16 +78,12 @@ const rootProps = useForwardPropsEmits(reactivePick(props, "modelValue", "defaul
|
|
|
77
78
|
const portalProps = usePortal(toRef(() => props.portal));
|
|
78
79
|
const contentProps = toRef(() => defu(props.content, { side: "bottom", sideOffset: 8, collisionPadding: 8, position: "popper" }));
|
|
79
80
|
const arrowProps = toRef(() => defu(typeof props.arrow === "boolean" ? {} : props.arrow, { width: 20, height: 10 }));
|
|
80
|
-
const virtualizerProps = toRef(() =>
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
lg: 36,
|
|
87
|
-
xl: 40
|
|
88
|
-
}[props.size || "md"]
|
|
89
|
-
}));
|
|
81
|
+
const virtualizerProps = toRef(() => {
|
|
82
|
+
if (!props.virtualize) return false;
|
|
83
|
+
return defu(typeof props.virtualize === "boolean" ? {} : props.virtualize, {
|
|
84
|
+
estimateSize: getEstimateSize(items.value, props.size || "md", props.descriptionKey)
|
|
85
|
+
});
|
|
86
|
+
});
|
|
90
87
|
const searchInputProps = toRef(() => defu(props.searchInput, { placeholder: t("selectMenu.search"), type: "text", size: "md" }));
|
|
91
88
|
const { emitFormBlur, emitFormFocus, emitFormInput, emitFormChange, size: formGroupSize, color, id, name, highlight, disabled, ariaAttrs } = useFormField(props);
|
|
92
89
|
const { orientation, size: fieldGroupSize } = useFieldGroup(props);
|
|
@@ -218,6 +215,11 @@ function onUpdateOpen(value) {
|
|
|
218
215
|
clearTimeout(timeoutId);
|
|
219
216
|
}
|
|
220
217
|
}
|
|
218
|
+
function onCreate(e) {
|
|
219
|
+
e.preventDefault();
|
|
220
|
+
e.stopPropagation();
|
|
221
|
+
emits("create", searchTerm.value);
|
|
222
|
+
}
|
|
221
223
|
function onSelect(e, item) {
|
|
222
224
|
if (!isSelectItem(item)) {
|
|
223
225
|
return;
|
|
@@ -239,14 +241,16 @@ defineExpose({
|
|
|
239
241
|
<template>
|
|
240
242
|
<DefineCreateItemTemplate>
|
|
241
243
|
<ComboboxItem
|
|
244
|
+
data-slot="item"
|
|
242
245
|
:class="b24ui.item({ addNew: true, class: props.b24ui?.item })"
|
|
243
246
|
:value="searchTerm"
|
|
244
|
-
@select
|
|
247
|
+
@select="onCreate"
|
|
245
248
|
>
|
|
246
|
-
<span :class="b24ui.itemLabel({ addNew: true, class: props.b24ui?.itemLabel })">
|
|
249
|
+
<span data-slot="itemLabel" :class="b24ui.itemLabel({ addNew: true, class: props.b24ui?.itemLabel })">
|
|
247
250
|
<slot name="create-item-label" :item="searchTerm">
|
|
248
251
|
<Component
|
|
249
252
|
:is="icons.plus"
|
|
253
|
+
data-slot="itemLeadingIcon"
|
|
250
254
|
:class="b24ui.itemLeadingIcon({ addNew: true, class: props.b24ui?.itemLeadingIcon })"
|
|
251
255
|
/>
|
|
252
256
|
{{ t("selectMenu.create", { label: searchTerm }) }}
|
|
@@ -258,6 +262,7 @@ defineExpose({
|
|
|
258
262
|
<DefineItemTemplate v-slot="{ item, index }">
|
|
259
263
|
<ComboboxLabel
|
|
260
264
|
v-if="isSelectItem(item) && item.type === 'label'"
|
|
265
|
+
data-slot="label"
|
|
261
266
|
:class="b24ui.label({ class: [props.b24ui?.label, item.b24ui?.label, item.class] })"
|
|
262
267
|
>
|
|
263
268
|
{{ get(item, props.labelKey) }}
|
|
@@ -265,11 +270,13 @@ defineExpose({
|
|
|
265
270
|
|
|
266
271
|
<ComboboxSeparator
|
|
267
272
|
v-else-if="isSelectItem(item) && item.type === 'separator'"
|
|
273
|
+
data-slot="separator"
|
|
268
274
|
:class="b24ui.separator({ class: [props.b24ui?.separator, item.b24ui?.separator, item.class] })"
|
|
269
275
|
/>
|
|
270
276
|
|
|
271
277
|
<ComboboxItem
|
|
272
278
|
v-else
|
|
279
|
+
data-slot="item"
|
|
273
280
|
:class="b24ui.item({ class: [props.b24ui?.item, isSelectItem(item) && item.b24ui?.item, isSelectItem(item) && item.class], colorItem: isSelectItem(item) && item?.color || void 0 })"
|
|
274
281
|
:disabled="isSelectItem(item) && item.disabled"
|
|
275
282
|
:value="props.valueKey && isSelectItem(item) ? get(item, props.valueKey) : item"
|
|
@@ -281,12 +288,13 @@ defineExpose({
|
|
|
281
288
|
v-if="isSelectItem(item) && item.avatar"
|
|
282
289
|
:size="item.b24ui?.itemLeadingAvatarSize || props.b24ui?.itemLeadingAvatarSize || b24ui.itemLeadingAvatarSize()"
|
|
283
290
|
v-bind="item.avatar"
|
|
291
|
+
data-slot="itemLeadingAvatar"
|
|
284
292
|
:class="b24ui.itemLeadingAvatar({ class: [props.b24ui?.itemLeadingAvatar, item.b24ui?.itemLeadingAvatar], colorItem: item?.color })"
|
|
285
293
|
/>
|
|
286
294
|
</slot>
|
|
287
295
|
|
|
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] })">
|
|
296
|
+
<span data-slot="itemWrapper" :class="b24ui.itemWrapper({ class: [props.b24ui?.itemWrapper, isSelectItem(item) && item.b24ui?.itemWrapper] })">
|
|
297
|
+
<span data-slot="itemLabel" :class="b24ui.itemLabel({ class: [props.b24ui?.itemLabel, isSelectItem(item) && item.b24ui?.itemLabel] })">
|
|
290
298
|
<slot name="item-label" :item="item" :index="index">
|
|
291
299
|
{{ isSelectItem(item) ? get(item, props.labelKey) : item }}
|
|
292
300
|
</slot>
|
|
@@ -294,6 +302,7 @@ defineExpose({
|
|
|
294
302
|
|
|
295
303
|
<span
|
|
296
304
|
v-if="isSelectItem(item) && (get(item, props.descriptionKey) || !!slots['item-description'])"
|
|
305
|
+
data-slot="itemDescription"
|
|
297
306
|
:class="b24ui.itemDescription({ class: [props.b24ui?.itemDescription, isSelectItem(item) && item.b24ui?.itemDescription] })"
|
|
298
307
|
>
|
|
299
308
|
<slot
|
|
@@ -306,10 +315,11 @@ defineExpose({
|
|
|
306
315
|
</span>
|
|
307
316
|
</span>
|
|
308
317
|
|
|
309
|
-
<span :class="b24ui.itemTrailing({ class: [props.b24ui?.itemTrailing, isSelectItem(item) && item.b24ui?.itemTrailing], colorItem: isSelectItem(item) && item?.color || void 0 })">
|
|
318
|
+
<span data-slot="itemTrailing" :class="b24ui.itemTrailing({ class: [props.b24ui?.itemTrailing, isSelectItem(item) && item.b24ui?.itemTrailing], colorItem: isSelectItem(item) && item?.color || void 0 })">
|
|
310
319
|
<ComboboxItemIndicator as-child>
|
|
311
320
|
<Component
|
|
312
321
|
:is="selectedIcon || icons.check"
|
|
322
|
+
data-slot="itemTrailingIcon"
|
|
313
323
|
:class="b24ui.itemTrailingIcon({ class: [props.b24ui?.itemTrailingIcon, isSelectItem(item) && item.b24ui?.itemTrailingIcon], colorItem: isSelectItem(item) && item?.color || void 0 })"
|
|
314
324
|
/>
|
|
315
325
|
</ComboboxItemIndicator>
|
|
@@ -318,6 +328,7 @@ defineExpose({
|
|
|
318
328
|
<Component
|
|
319
329
|
:is="item.icon"
|
|
320
330
|
v-if="isSelectItem(item) && item.icon"
|
|
331
|
+
data-slot="itemLeadingIcon"
|
|
321
332
|
:class="b24ui.itemLeadingIcon({ class: [props.b24ui?.itemLeadingIcon, item.b24ui?.itemLeadingIcon], colorItem: item?.color })"
|
|
322
333
|
/>
|
|
323
334
|
<B24Chip
|
|
@@ -326,6 +337,7 @@ defineExpose({
|
|
|
326
337
|
inset
|
|
327
338
|
standalone
|
|
328
339
|
v-bind="item.chip"
|
|
340
|
+
data-slot="itemLeadingChip"
|
|
329
341
|
:class="b24ui.itemLeadingChip({ class: [props.b24ui?.itemLeadingChip, item.b24ui?.itemLeadingChip], colorItem: item?.color })"
|
|
330
342
|
/>
|
|
331
343
|
</slot>
|
|
@@ -334,7 +346,7 @@ defineExpose({
|
|
|
334
346
|
</ComboboxItem>
|
|
335
347
|
</DefineItemTemplate>
|
|
336
348
|
|
|
337
|
-
<Primitive as="div" :class="b24ui.root({ addNew: true, class: [props.b24ui?.root] })">
|
|
349
|
+
<Primitive as="div" data-slot="root" :class="b24ui.root({ addNew: true, class: [props.b24ui?.root] })">
|
|
338
350
|
<ComboboxRoot
|
|
339
351
|
:id="id"
|
|
340
352
|
v-slot="{ modelValue, open }"
|
|
@@ -349,27 +361,31 @@ defineExpose({
|
|
|
349
361
|
<ComboboxAnchor as-child>
|
|
350
362
|
<ComboboxTrigger
|
|
351
363
|
ref="triggerRef"
|
|
364
|
+
data-slot="base"
|
|
352
365
|
:class="b24ui.base({ class: [props.b24ui?.base, props.class] })"
|
|
353
366
|
tabindex="0"
|
|
354
367
|
>
|
|
355
368
|
<B24Badge
|
|
356
369
|
v-if="isTag"
|
|
370
|
+
data-slot="tag"
|
|
357
371
|
:class="b24ui.tag({ class: props.b24ui?.tag })"
|
|
358
372
|
:color="props.tagColor"
|
|
359
373
|
:label="props.tag"
|
|
360
374
|
size="xs"
|
|
361
375
|
/>
|
|
362
|
-
<span v-if="isLeading || !!avatar || !!slots.leading" :class="b24ui.leading({ class: props.b24ui?.leading })">
|
|
376
|
+
<span v-if="isLeading || !!avatar || !!slots.leading" data-slot="leading" :class="b24ui.leading({ class: props.b24ui?.leading })">
|
|
363
377
|
<slot name="leading" :model-value="modelValue" :open="open" :b24ui="b24ui">
|
|
364
378
|
<Component
|
|
365
379
|
:is="leadingIconName"
|
|
366
380
|
v-if="isLeading && leadingIconName"
|
|
381
|
+
data-slot="leadingIcon"
|
|
367
382
|
:class="b24ui.leadingIcon({ class: props.b24ui?.leadingIcon })"
|
|
368
383
|
/>
|
|
369
384
|
<B24Avatar
|
|
370
385
|
v-else-if="!!avatar"
|
|
371
386
|
:size="props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()"
|
|
372
387
|
v-bind="avatar"
|
|
388
|
+
data-slot="leadingAvatar"
|
|
373
389
|
:class="b24ui.leadingAvatar({ class: props.b24ui?.leadingAvatar })"
|
|
374
390
|
/>
|
|
375
391
|
</slot>
|
|
@@ -379,12 +395,14 @@ defineExpose({
|
|
|
379
395
|
<template v-for="displayedModelValue in [displayValue(modelValue)]" :key="displayedModelValue">
|
|
380
396
|
<span
|
|
381
397
|
v-if="displayedModelValue !== void 0 && displayedModelValue !== null"
|
|
398
|
+
data-slot="value"
|
|
382
399
|
:class="b24ui.value({ class: props.b24ui?.value })"
|
|
383
400
|
>
|
|
384
401
|
{{ displayedModelValue }}
|
|
385
402
|
</span>
|
|
386
403
|
<span
|
|
387
404
|
v-else
|
|
405
|
+
data-slot="placeholder"
|
|
388
406
|
:class="b24ui.placeholder({ class: props.b24ui?.placeholder })"
|
|
389
407
|
>
|
|
390
408
|
{{ placeholder ?? "\xA0" }}
|
|
@@ -392,11 +410,12 @@ defineExpose({
|
|
|
392
410
|
</template>
|
|
393
411
|
</slot>
|
|
394
412
|
|
|
395
|
-
<span v-if="isTrailing || !!slots.trailing" :class="b24ui.trailing({ class: props.b24ui?.trailing })">
|
|
413
|
+
<span v-if="isTrailing || !!slots.trailing" data-slot="trailing" :class="b24ui.trailing({ class: props.b24ui?.trailing })">
|
|
396
414
|
<slot name="trailing" :model-value="modelValue" :open="open" :b24ui="b24ui">
|
|
397
415
|
<Component
|
|
398
416
|
:is="trailingIconName"
|
|
399
417
|
v-if="trailingIconName"
|
|
418
|
+
data-slot="trailingIcon"
|
|
400
419
|
:class="b24ui.trailingIcon({ class: props.b24ui?.trailingIcon })"
|
|
401
420
|
/>
|
|
402
421
|
</slot>
|
|
@@ -405,8 +424,8 @@ defineExpose({
|
|
|
405
424
|
</ComboboxAnchor>
|
|
406
425
|
|
|
407
426
|
<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 })">
|
|
427
|
+
<ComboboxContent data-slot="content" :class="b24ui.content({ class: props.b24ui?.content })" v-bind="contentProps">
|
|
428
|
+
<FocusScope trapped data-slot="focusScope" :class="b24ui.focusScope({ class: props.b24ui?.focusScope })">
|
|
410
429
|
<slot name="content-top" />
|
|
411
430
|
|
|
412
431
|
<ComboboxInput
|
|
@@ -421,11 +440,13 @@ defineExpose({
|
|
|
421
440
|
autocomplete="off"
|
|
422
441
|
:size="size"
|
|
423
442
|
v-bind="searchInputProps"
|
|
443
|
+
data-slot="input"
|
|
424
444
|
:class="b24ui.input({ class: props.b24ui?.input })"
|
|
445
|
+
@change.stop
|
|
425
446
|
/>
|
|
426
447
|
</ComboboxInput>
|
|
427
448
|
|
|
428
|
-
<ComboboxEmpty :class="b24ui.empty({ class: props.b24ui?.empty })">
|
|
449
|
+
<ComboboxEmpty data-slot="empty" :class="b24ui.empty({ class: props.b24ui?.empty })">
|
|
429
450
|
<slot name="empty" :search-term="searchTerm">
|
|
430
451
|
{{ searchTerm ? t("selectMenu.noMatch", { searchTerm }) : t("selectMenu.noData") }}
|
|
431
452
|
</slot>
|
|
@@ -433,6 +454,7 @@ defineExpose({
|
|
|
433
454
|
|
|
434
455
|
<div
|
|
435
456
|
role="presentation"
|
|
457
|
+
data-slot="viewport"
|
|
436
458
|
:class="b24ui.viewport({ class: props.b24ui?.viewport })"
|
|
437
459
|
>
|
|
438
460
|
<template v-if="!!virtualize">
|
|
@@ -451,15 +473,15 @@ defineExpose({
|
|
|
451
473
|
</template>
|
|
452
474
|
|
|
453
475
|
<template v-else>
|
|
454
|
-
<ComboboxGroup v-if="createItem && createItemPosition === 'top'" :class="b24ui.group({ class: props.b24ui?.group })">
|
|
476
|
+
<ComboboxGroup v-if="createItem && createItemPosition === 'top'" data-slot="group" :class="b24ui.group({ class: props.b24ui?.group })">
|
|
455
477
|
<ReuseCreateItemTemplate />
|
|
456
478
|
</ComboboxGroup>
|
|
457
479
|
|
|
458
|
-
<ComboboxGroup v-for="(group, groupIndex) in filteredGroups" :key="`group-${groupIndex}`" :class="b24ui.group({ class: props.b24ui?.group })">
|
|
480
|
+
<ComboboxGroup v-for="(group, groupIndex) in filteredGroups" :key="`group-${groupIndex}`" data-slot="group" :class="b24ui.group({ class: props.b24ui?.group })">
|
|
459
481
|
<ReuseItemTemplate v-for="(item, index) in group" :key="`group-${groupIndex}-${index}`" :item="item" :index="index" />
|
|
460
482
|
</ComboboxGroup>
|
|
461
483
|
|
|
462
|
-
<ComboboxGroup v-if="createItem && createItemPosition === 'bottom'" :class="b24ui.group({ class: props.b24ui?.group })">
|
|
484
|
+
<ComboboxGroup v-if="createItem && createItemPosition === 'bottom'" data-slot="group" :class="b24ui.group({ class: props.b24ui?.group })">
|
|
463
485
|
<ReuseCreateItemTemplate />
|
|
464
486
|
</ComboboxGroup>
|
|
465
487
|
</template>
|
|
@@ -468,7 +490,7 @@ defineExpose({
|
|
|
468
490
|
<slot name="content-bottom" />
|
|
469
491
|
</FocusScope>
|
|
470
492
|
|
|
471
|
-
<ComboboxArrow v-if="!!arrow" v-bind="arrowProps" :class="b24ui.arrow({ class: props.b24ui?.arrow })" />
|
|
493
|
+
<ComboboxArrow v-if="!!arrow" v-bind="arrowProps" data-slot="arrow" :class="b24ui.arrow({ class: props.b24ui?.arrow })" />
|
|
472
494
|
</ComboboxContent>
|
|
473
495
|
</ComboboxPortal>
|
|
474
496
|
</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>
|