@bitrix24/b24ui-nuxt 2.1.1 → 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.
- package/README.md +0 -4
- package/cli/templates.mjs +2 -2
- package/dist/meta.d.mts +1324 -178
- package/dist/meta.mjs +1324 -178
- package/dist/module.json +1 -1
- package/dist/module.mjs +10 -2
- 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 +60 -21
- 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.d.vue.ts +5 -0
- package/dist/runtime/components/FileUpload.vue +17 -9
- package/dist/runtime/components/FileUpload.vue.d.ts +5 -0
- 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 +35 -19
- 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 +33 -14
- 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.vue +18 -13
- 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/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 +8 -3
- 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/dictionary/icons.d.ts +2 -0
- package/dist/runtime/inertia/components/Link.d.vue.ts +1 -1
- package/dist/runtime/inertia/components/Link.vue.d.ts +1 -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/vue/components/Link.d.vue.ts +1 -1
- package/dist/runtime/vue/components/Link.vue +1 -1
- package/dist/runtime/vue/components/Link.vue.d.ts +1 -1
- package/dist/shared/{b24ui-nuxt.B13KxxqP.mjs → b24ui-nuxt.mq1NUekN.mjs} +21 -13
- package/dist/unplugin.mjs +1 -1
- package/dist/vite.mjs +1 -1
- package/package.json +11 -9
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defu } from 'defu';
|
|
2
|
-
import { defineNuxtModule, createResolver, addPlugin, hasNuxtModule, addComponentsDir, addImportsDir } from '@nuxt/kit';
|
|
3
|
-
import { d as defaultOptions, v as version, n as name, a as getDefaultConfig, b as addTemplates } from './shared/b24ui-nuxt.
|
|
2
|
+
import { defineNuxtModule, createResolver, addPlugin, hasNuxtModule, addComponentsDir, addImportsDir, installModule } from '@nuxt/kit';
|
|
3
|
+
import { d as defaultOptions, v as version, n as name, a as getDefaultConfig, b as addTemplates } from './shared/b24ui-nuxt.mq1NUekN.mjs';
|
|
4
4
|
import 'node:url';
|
|
5
5
|
import 'scule';
|
|
6
6
|
import 'knitwork';
|
|
@@ -36,6 +36,14 @@ const module$1 = defineNuxtModule({
|
|
|
36
36
|
if (nuxt.options.builder !== "@nuxt/vite-builder") {
|
|
37
37
|
nuxt.options.postcss.plugins["@tailwindcss/postcss"] = {};
|
|
38
38
|
}
|
|
39
|
+
async function registerModule(name2, key, options2) {
|
|
40
|
+
if (!hasNuxtModule(name2)) {
|
|
41
|
+
await installModule(name2, defu(nuxt.options[key], options2));
|
|
42
|
+
} else {
|
|
43
|
+
nuxt.options[key] = defu(nuxt.options[key], options2);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
await registerModule("@bitrix24/b24icons-nuxt", "empty", {});
|
|
39
47
|
addPlugin({ src: resolve("./runtime/plugins/colors") });
|
|
40
48
|
addPlugin({ src: resolve("./runtime/plugins/ui-version") });
|
|
41
49
|
if (hasNuxtModule("@nuxtjs/mdc") || options.mdc || (hasNuxtModule("@nuxt/content") || options.content)) {
|
|
@@ -34,27 +34,30 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.accordi
|
|
|
34
34
|
</script>
|
|
35
35
|
|
|
36
36
|
<template>
|
|
37
|
-
<AccordionRoot v-bind="rootProps" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
|
|
37
|
+
<AccordionRoot v-bind="rootProps" data-slot="root" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
|
|
38
38
|
<AccordionItem
|
|
39
39
|
v-for="(item, index) in props.items"
|
|
40
40
|
v-slot="{ open }"
|
|
41
41
|
:key="index"
|
|
42
42
|
:value="item.value || String(index)"
|
|
43
43
|
:disabled="item.disabled"
|
|
44
|
+
data-slot="item"
|
|
44
45
|
:class="b24ui.item({ class: [props.b24ui?.item, item.b24ui?.item, item.class] })"
|
|
45
46
|
>
|
|
46
|
-
<AccordionHeader as="div" :class="b24ui.header({ class: [props.b24ui?.header, item.b24ui?.header] })">
|
|
47
|
-
<AccordionTrigger :class="b24ui.trigger({ class: [props.b24ui?.trigger, item.b24ui?.trigger], disabled: item.disabled })">
|
|
47
|
+
<AccordionHeader as="div" data-slot="header" :class="b24ui.header({ class: [props.b24ui?.header, item.b24ui?.header] })">
|
|
48
|
+
<AccordionTrigger data-slot="trigger" :class="b24ui.trigger({ class: [props.b24ui?.trigger, item.b24ui?.trigger], disabled: item.disabled })">
|
|
48
49
|
<slot name="leading" :item="item" :index="index" :open="open" :b24ui="b24ui">
|
|
49
50
|
<Component
|
|
50
51
|
:is="item.icon"
|
|
51
52
|
v-if="item.icon"
|
|
53
|
+
data-slot="leadingIcon"
|
|
52
54
|
:class="b24ui.leadingIcon({ class: [props.b24ui?.leadingIcon, item?.b24ui?.leadingIcon] })"
|
|
53
55
|
/>
|
|
54
56
|
</slot>
|
|
55
57
|
|
|
56
58
|
<span
|
|
57
59
|
v-if="get(item, props.labelKey) || !!slots.default"
|
|
60
|
+
data-slot="label"
|
|
58
61
|
:class="b24ui.label({ class: [props.b24ui?.label, item.b24ui?.label] })"
|
|
59
62
|
>
|
|
60
63
|
<slot :item="item" :index="index" :open="open">{{ get(item, props.labelKey) }}</slot>
|
|
@@ -63,6 +66,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.accordi
|
|
|
63
66
|
<slot name="trailing" :item="item" :index="index" :open="open" :b24ui="b24ui">
|
|
64
67
|
<Component
|
|
65
68
|
:is="item.trailingIcon || trailingIcon || icons.chevronDown"
|
|
69
|
+
data-slot="trailingIcon"
|
|
66
70
|
:class="b24ui.trailingIcon({ class: [props.b24ui?.trailingIcon, item.b24ui?.trailingIcon] })"
|
|
67
71
|
/>
|
|
68
72
|
</slot>
|
|
@@ -71,6 +75,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.accordi
|
|
|
71
75
|
|
|
72
76
|
<AccordionContent
|
|
73
77
|
v-if="item.content || !!slots.content || item.slot && !!slots[item.slot] || !!slots.body || item.slot && !!slots[`${item.slot}-body`]"
|
|
78
|
+
data-slot="content"
|
|
74
79
|
:class="b24ui.content({ class: [props.b24ui?.content, item.b24ui?.content] })"
|
|
75
80
|
>
|
|
76
81
|
<slot
|
|
@@ -80,7 +85,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.accordi
|
|
|
80
85
|
:open="open"
|
|
81
86
|
:b24ui="b24ui"
|
|
82
87
|
>
|
|
83
|
-
<div :class="b24ui.body({ class: [props.b24ui?.body, item.b24ui?.body] })">
|
|
88
|
+
<div data-slot="body" :class="b24ui.body({ class: [props.b24ui?.body, item.b24ui?.body] })">
|
|
84
89
|
<slot
|
|
85
90
|
:name="item.slot ? `${item.slot}-body` : 'body'"
|
|
86
91
|
:item="item"
|
|
@@ -30,25 +30,27 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.advice
|
|
|
30
30
|
</script>
|
|
31
31
|
|
|
32
32
|
<template>
|
|
33
|
-
<Primitive :as="as" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
|
|
34
|
-
<div v-if="isLeading || !!avatar || !!slots.leading" :class="b24ui.leading({ class: props.b24ui?.leading })">
|
|
33
|
+
<Primitive :as="as" data-slot="root" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
|
|
34
|
+
<div v-if="isLeading || !!avatar || !!slots.leading" data-slot="leading" :class="b24ui.leading({ class: props.b24ui?.leading })">
|
|
35
35
|
<slot name="leading" :b24ui="b24ui">
|
|
36
36
|
<Component
|
|
37
37
|
:is="leadingIconName"
|
|
38
38
|
v-if="isLeading && leadingIconName"
|
|
39
|
+
data-slot="leadingIcon"
|
|
39
40
|
:class="b24ui.leadingIcon({ class: props.b24ui?.leadingIcon })"
|
|
40
41
|
/>
|
|
41
42
|
<B24Avatar
|
|
42
43
|
v-else-if="!!avatar"
|
|
43
44
|
:size="props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()"
|
|
44
45
|
v-bind="avatar"
|
|
46
|
+
data-slot="leadingAvatar"
|
|
45
47
|
:class="b24ui.leadingAvatar({ class: props.b24ui?.leadingAvatar })"
|
|
46
48
|
:b24ui="{ icon: props.b24ui?.leadingAvatarIcon || b24ui.leadingAvatarIcon() }"
|
|
47
49
|
/>
|
|
48
50
|
</slot>
|
|
49
51
|
</div>
|
|
50
|
-
<div :class="b24ui.descriptionWrapper({ class: props.b24ui?.descriptionWrapper })">
|
|
51
|
-
<div :class="b24ui.descriptionAngle({ class: props.b24ui?.descriptionAngle })">
|
|
52
|
+
<div data-slot="descriptionWrapper" :class="b24ui.descriptionWrapper({ class: props.b24ui?.descriptionWrapper })">
|
|
53
|
+
<div data-slot="descriptionAngle" :class="b24ui.descriptionAngle({ class: props.b24ui?.descriptionAngle })">
|
|
52
54
|
<svg
|
|
53
55
|
xmlns="http://www.w3.org/2000/svg"
|
|
54
56
|
width="14"
|
|
@@ -57,18 +59,20 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.advice
|
|
|
57
59
|
fill="none"
|
|
58
60
|
>
|
|
59
61
|
<path
|
|
62
|
+
data-slot="descriptionBg"
|
|
60
63
|
:class="b24ui.descriptionBg({ class: props.b24ui?.descriptionBg })"
|
|
61
64
|
fill-rule="evenodd"
|
|
62
65
|
clip-rule="evenodd"
|
|
63
66
|
d="M11.3513 11.1621C11.3492 11.1591 11.3471 11.1562 11.3449 11.1532C8.41055 10.7202 3.75061 9.56187 0.411676 6.46663C-0.404067 5.71042 0.0889447 4.42611 1.14665 4.08179C3.50511 3.31403 5.56665 2.10552 7.2199 0.897773L7.23071 0.893616L8.27368 0.163147L10.7925 5.46165L13.8677 11.5454L11.3513 11.1621Z"
|
|
64
67
|
/><path
|
|
68
|
+
data-slot="descriptionBorder"
|
|
65
69
|
:class="b24ui.descriptionBorder({ class: props.b24ui?.descriptionBorder })"
|
|
66
70
|
fill-rule="evenodd"
|
|
67
71
|
clip-rule="evenodd"
|
|
68
72
|
d="M11.4909 10.1639C11.7603 10.2036 12.0018 10.3515 12.1597 10.5733C12.3534 10.8456 12.5531 11.1134 12.7585 11.3765L11.3513 11.1621C11.3492 11.1591 11.3471 11.1561 11.3449 11.1531C8.41055 10.7202 3.75061 9.56187 0.411676 6.46662C-0.404067 5.71041 0.0889447 4.4261 1.14665 4.08178C3.50511 3.31403 5.56665 2.10551 7.2199 0.897764L7.23071 0.893607L8.16412 0.239868C8.18419 0.40792 8.20611 0.57539 8.22987 0.742259C8.28188 1.1077 8.12836 1.47208 7.8305 1.6901C6.11459 2.94612 3.95168 4.2203 1.45619 5.03267C1.22829 5.10686 1.07777 5.27921 1.02492 5.43712C1.00004 5.51147 1.00122 5.56804 1.00948 5.60492C1.01647 5.63618 1.03368 5.67964 1.09152 5.73326C4.20493 8.61944 8.61693 9.73979 11.4909 10.1639Z"
|
|
69
73
|
/></svg>
|
|
70
74
|
</div>
|
|
71
|
-
<div :class="b24ui.description({ class: props.b24ui?.description })">
|
|
75
|
+
<div data-slot="description" :class="b24ui.description({ class: props.b24ui?.description })">
|
|
72
76
|
<slot>
|
|
73
77
|
{{ description }}
|
|
74
78
|
</slot>
|
|
@@ -41,36 +41,37 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.alert |
|
|
|
41
41
|
</script>
|
|
42
42
|
|
|
43
43
|
<template>
|
|
44
|
-
<Primitive :as="as" :data-orientation="orientation" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
|
|
44
|
+
<Primitive :as="as" :data-orientation="orientation" data-slot="root" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
|
|
45
45
|
<slot name="leading" :b24ui="b24ui">
|
|
46
46
|
<Component
|
|
47
47
|
:is="icon"
|
|
48
48
|
v-if="icon"
|
|
49
|
+
data-slot="icon"
|
|
49
50
|
:class="b24ui.icon({ class: props.b24ui?.icon })"
|
|
50
51
|
/>
|
|
51
|
-
<B24Avatar v-else-if="avatar" :size="props.b24ui?.avatarSize || b24ui.avatarSize()" v-bind="avatar" :class="b24ui.avatar({ class: props.b24ui?.avatar })" />
|
|
52
|
+
<B24Avatar v-else-if="avatar" :size="props.b24ui?.avatarSize || b24ui.avatarSize()" v-bind="avatar" data-slot="avatar" :class="b24ui.avatar({ class: props.b24ui?.avatar })" />
|
|
52
53
|
</slot>
|
|
53
54
|
|
|
54
|
-
<div :class="b24ui.wrapper({ class: props.b24ui?.wrapper })">
|
|
55
|
-
<div v-if="title || !!slots.title" :class="b24ui.title({ class: props.b24ui?.title })">
|
|
55
|
+
<div data-slot="wrapper" :class="b24ui.wrapper({ class: props.b24ui?.wrapper })">
|
|
56
|
+
<div v-if="title || !!slots.title" data-slot="title" :class="b24ui.title({ class: props.b24ui?.title })">
|
|
56
57
|
<slot name="title">
|
|
57
58
|
{{ title }}
|
|
58
59
|
</slot>
|
|
59
60
|
</div>
|
|
60
|
-
<div v-if="description || !!slots.description" :class="b24ui.description({ class: props.b24ui?.description })">
|
|
61
|
+
<div v-if="description || !!slots.description" data-slot="description" :class="b24ui.description({ class: props.b24ui?.description })">
|
|
61
62
|
<slot name="description">
|
|
62
63
|
{{ description }}
|
|
63
64
|
</slot>
|
|
64
65
|
</div>
|
|
65
66
|
|
|
66
|
-
<div v-if="orientation === 'vertical' && (actions?.length || !!slots.actions)" :class="b24ui.actions({ class: props.b24ui?.actions })">
|
|
67
|
+
<div v-if="orientation === 'vertical' && (actions?.length || !!slots.actions)" data-slot="actions" :class="b24ui.actions({ class: props.b24ui?.actions })">
|
|
67
68
|
<slot name="actions">
|
|
68
69
|
<B24Button v-for="(action, index) in actions" :key="index" size="sm" v-bind="action" />
|
|
69
70
|
</slot>
|
|
70
71
|
</div>
|
|
71
72
|
</div>
|
|
72
73
|
|
|
73
|
-
<div v-if="orientation === 'horizontal' && (actions?.length || !!slots.actions) || close" :class="b24ui.actions({ class: props.b24ui?.actions, orientation: 'horizontal' })">
|
|
74
|
+
<div v-if="orientation === 'horizontal' && (actions?.length || !!slots.actions) || close" data-slot="actions" :class="b24ui.actions({ class: props.b24ui?.actions, orientation: 'horizontal' })">
|
|
74
75
|
<template v-if="orientation === 'horizontal' && (actions?.length || !!slots.actions)">
|
|
75
76
|
<slot name="actions">
|
|
76
77
|
<B24Button v-for="(action, index) in actions" :key="index" size="sm" v-bind="action" />
|
|
@@ -85,6 +86,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.alert |
|
|
|
85
86
|
color="air-tertiary-no-accent"
|
|
86
87
|
:aria-label="t('alert.close')"
|
|
87
88
|
v-bind="typeof close === 'object' ? close : {}"
|
|
89
|
+
data-slot="close"
|
|
88
90
|
:class="b24ui.close({ class: props.b24ui?.close })"
|
|
89
91
|
@click="emits('update:open', false)"
|
|
90
92
|
/>
|
|
@@ -65,6 +65,7 @@ function onError() {
|
|
|
65
65
|
:is="props.chip ? B24Chip : Primitive"
|
|
66
66
|
:as="as.root"
|
|
67
67
|
v-bind="props.chip ? typeof props.chip === 'object' ? { inset: true, ...props.chip } : { inset: true } : {}"
|
|
68
|
+
data-slot="root"
|
|
68
69
|
:class="b24ui.root({ class: [props.b24ui?.root, props.class] })"
|
|
69
70
|
:style="props.style"
|
|
70
71
|
>
|
|
@@ -76,14 +77,15 @@ function onError() {
|
|
|
76
77
|
:width="sizePx"
|
|
77
78
|
:height="sizePx"
|
|
78
79
|
v-bind="$attrs"
|
|
80
|
+
data-slot="image"
|
|
79
81
|
:class="b24ui.image({ class: props.b24ui?.image })"
|
|
80
82
|
@error="onError"
|
|
81
83
|
/>
|
|
82
84
|
|
|
83
85
|
<Slot v-else v-bind="$attrs">
|
|
84
86
|
<slot>
|
|
85
|
-
<Component :is="icon" v-if="icon" :class="b24ui.icon({ class: props.b24ui?.icon })" />
|
|
86
|
-
<span v-else :class="b24ui.fallback({ class: props.b24ui?.fallback })">{{ fallback || "\xA0" }}</span>
|
|
87
|
+
<Component :is="icon" v-if="icon" data-slot="icon" :class="b24ui.icon({ class: props.b24ui?.icon })" />
|
|
88
|
+
<span v-else data-slot="fallback" :class="b24ui.fallback({ class: props.b24ui?.fallback })">{{ fallback || "\xA0" }}</span>
|
|
87
89
|
</slot>
|
|
88
90
|
</Slot>
|
|
89
91
|
</component>
|
|
@@ -58,8 +58,8 @@ provide(avatarGroupInjectionKey, computed(() => ({
|
|
|
58
58
|
</script>
|
|
59
59
|
|
|
60
60
|
<template>
|
|
61
|
-
<Primitive :as="as" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
|
|
62
|
-
<component :is="avatar" v-for="(avatar, count) in visibleAvatars" :key="count" :class="b24ui.base({ class: props.b24ui?.base })" />
|
|
63
|
-
<B24Avatar v-if="hiddenCount > 0" :text="`+${hiddenCount}`" :class="b24ui.base({ class: props.b24ui?.base })" />
|
|
61
|
+
<Primitive :as="as" data-slot="root" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
|
|
62
|
+
<component :is="avatar" v-for="(avatar, count) in visibleAvatars" :key="count" data-slot="base" :class="b24ui.base({ class: props.b24ui?.base })" />
|
|
63
|
+
<B24Avatar v-if="hiddenCount > 0" :text="`+${hiddenCount}`" data-slot="base" :class="b24ui.base({ class: props.b24ui?.base })" />
|
|
64
64
|
</Primitive>
|
|
65
65
|
</template>
|
|
@@ -54,28 +54,32 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.badge |
|
|
|
54
54
|
<template>
|
|
55
55
|
<Primitive
|
|
56
56
|
:as="as"
|
|
57
|
+
data-slot="base"
|
|
57
58
|
:class="b24ui.base({ class: [props.b24ui?.base, props.class] })"
|
|
58
59
|
>
|
|
59
60
|
<Primitive
|
|
60
61
|
:as="as"
|
|
62
|
+
data-slot="wrapper"
|
|
61
63
|
:class="b24ui.wrapper({ class: props.b24ui?.wrapper })"
|
|
62
64
|
>
|
|
63
65
|
<slot name="leading" :b24ui="b24ui">
|
|
64
66
|
<Component
|
|
65
67
|
:is="leadingIconName"
|
|
66
68
|
v-if="isLeading && leadingIconName"
|
|
69
|
+
data-slot="leadingIcon"
|
|
67
70
|
:class="b24ui.leadingIcon({ class: props.b24ui?.leadingIcon })"
|
|
68
71
|
/>
|
|
69
72
|
<B24Avatar
|
|
70
73
|
v-else-if="!!avatar"
|
|
71
74
|
:size="props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()"
|
|
72
75
|
v-bind="avatar"
|
|
76
|
+
data-slot="leadingAvatar"
|
|
73
77
|
:class="b24ui.leadingAvatar({ class: props.b24ui?.leadingAvatar })"
|
|
74
78
|
/>
|
|
75
79
|
</slot>
|
|
76
80
|
|
|
77
81
|
<slot :b24ui="b24ui">
|
|
78
|
-
<span v-if="label !== void 0 && label !== null" :class="b24ui.label({ class: props.b24ui?.label })">
|
|
82
|
+
<span v-if="label !== void 0 && label !== null" data-slot="label" :class="b24ui.label({ class: props.b24ui?.label })">
|
|
79
83
|
{{ label }}
|
|
80
84
|
</span>
|
|
81
85
|
</slot>
|
|
@@ -83,6 +87,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.badge |
|
|
|
83
87
|
<slot name="trailing" :b24ui="b24ui">
|
|
84
88
|
<Cross20Icon
|
|
85
89
|
v-if="useClose"
|
|
90
|
+
data-slot="trailingIcon"
|
|
86
91
|
:class="b24ui.trailingIcon({ class: props.b24ui?.trailingIcon })"
|
|
87
92
|
aria-hidden="true"
|
|
88
93
|
@click.stop.prevent="onCloseClickWrapper"
|
|
@@ -60,7 +60,7 @@ function onClose() {
|
|
|
60
60
|
</script>
|
|
61
61
|
|
|
62
62
|
<template>
|
|
63
|
-
<Primitive :as="as" class="banner" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
|
|
63
|
+
<Primitive :as="as" class="banner" data-slot="root" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
|
|
64
64
|
<B24Link
|
|
65
65
|
v-if="to"
|
|
66
66
|
:aria-label="title"
|
|
@@ -72,21 +72,21 @@ function onClose() {
|
|
|
72
72
|
<span class="absolute inset-0 " aria-hidden="true" />
|
|
73
73
|
</B24Link>
|
|
74
74
|
|
|
75
|
-
<B24Container :class="b24ui.container({ class: props.b24ui?.container })">
|
|
76
|
-
<div :class="b24ui.left({ class: props.b24ui?.left })" />
|
|
75
|
+
<B24Container data-slot="container" :class="b24ui.container({ class: props.b24ui?.container })">
|
|
76
|
+
<div data-slot="left" :class="b24ui.left({ class: props.b24ui?.left })" />
|
|
77
77
|
|
|
78
|
-
<div :class="b24ui.center({ class: props.b24ui?.center })">
|
|
78
|
+
<div data-slot="center" :class="b24ui.center({ class: props.b24ui?.center })">
|
|
79
79
|
<slot name="leading" :b24ui="b24ui">
|
|
80
|
-
<Component :is="icon" v-if="icon" :class="b24ui.icon({ class: props.b24ui?.icon })" />
|
|
80
|
+
<Component :is="icon" v-if="icon" data-slot="icon" :class="b24ui.icon({ class: props.b24ui?.icon })" />
|
|
81
81
|
</slot>
|
|
82
82
|
|
|
83
|
-
<div v-if="title || !!slots.title" :class="b24ui.title({ class: props.b24ui?.title })">
|
|
83
|
+
<div v-if="title || !!slots.title" data-slot="title" :class="b24ui.title({ class: props.b24ui?.title })">
|
|
84
84
|
<slot name="title">
|
|
85
85
|
{{ title }}
|
|
86
86
|
</slot>
|
|
87
87
|
</div>
|
|
88
88
|
|
|
89
|
-
<div v-if="actions?.length || !!slots.actions" :class="b24ui.actions({ class: props.b24ui?.actions })">
|
|
89
|
+
<div v-if="actions?.length || !!slots.actions" data-slot="actions" :class="b24ui.actions({ class: props.b24ui?.actions })">
|
|
90
90
|
<slot name="actions">
|
|
91
91
|
<B24Button
|
|
92
92
|
v-for="(action, index) in actions"
|
|
@@ -99,7 +99,7 @@ function onClose() {
|
|
|
99
99
|
</div>
|
|
100
100
|
</div>
|
|
101
101
|
|
|
102
|
-
<div :class="b24ui.right({ class: props.b24ui?.right })">
|
|
102
|
+
<div data-slot="right" :class="b24ui.right({ class: props.b24ui?.right })">
|
|
103
103
|
<slot name="close" :b24ui="b24ui">
|
|
104
104
|
<B24Button
|
|
105
105
|
v-if="close"
|
|
@@ -108,6 +108,7 @@ function onClose() {
|
|
|
108
108
|
color="air-tertiary-no-accent"
|
|
109
109
|
:aria-label="t('banner.close')"
|
|
110
110
|
v-bind="typeof close === 'object' ? close : {}"
|
|
111
|
+
data-slot="close"
|
|
111
112
|
:class="b24ui.close({ class: props.b24ui?.close })"
|
|
112
113
|
@click="onClose"
|
|
113
114
|
/>
|
|
@@ -30,15 +30,16 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.breadcr
|
|
|
30
30
|
</script>
|
|
31
31
|
|
|
32
32
|
<template>
|
|
33
|
-
<Primitive :as="as" aria-label="breadcrumb" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
|
|
34
|
-
<ol :class="b24ui.list({ class: props.b24ui?.list })">
|
|
33
|
+
<Primitive :as="as" aria-label="breadcrumb" data-slot="root" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
|
|
34
|
+
<ol data-slot="list" :class="b24ui.list({ class: props.b24ui?.list })">
|
|
35
35
|
<template v-for="(item, index) in items" :key="index">
|
|
36
|
-
<li :class="b24ui.item({ class: [props.b24ui?.item, item.b24ui?.item] })">
|
|
36
|
+
<li data-slot="item" :class="b24ui.item({ class: [props.b24ui?.item, item.b24ui?.item] })">
|
|
37
37
|
<B24Link v-slot="{ active, ...slotProps }" v-bind="pickLinkProps(item)" custom>
|
|
38
38
|
<B24LinkBase
|
|
39
39
|
v-bind="slotProps"
|
|
40
40
|
as="span"
|
|
41
41
|
:aria-current="(item.active ?? active) && index === items.length - 1 ? 'page' : void 0"
|
|
42
|
+
data-slot="link"
|
|
42
43
|
:class="b24ui.link({ class: [props.b24ui?.link, item.b24ui?.link, item.class], active: item.active ?? index === items.length - 1, disabled: !!item.disabled, to: !!item.to })"
|
|
43
44
|
>
|
|
44
45
|
<slot
|
|
@@ -58,18 +59,21 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.breadcr
|
|
|
58
59
|
<Component
|
|
59
60
|
:is="item.icon"
|
|
60
61
|
v-if="item.icon"
|
|
62
|
+
data-slot="linkLeadingIcon"
|
|
61
63
|
:class="b24ui.linkLeadingIcon({ class: [props.b24ui?.linkLeadingIcon, item.b24ui?.linkLeadingIcon], active: item.active ?? index === items.length - 1 })"
|
|
62
64
|
/>
|
|
63
65
|
<B24Avatar
|
|
64
66
|
v-else-if="item.avatar"
|
|
65
67
|
:size="props.b24ui?.linkLeadingAvatarSize || b24ui.linkLeadingAvatarSize()"
|
|
66
68
|
v-bind="item.avatar"
|
|
69
|
+
data-slot="linkLeadingAvatar"
|
|
67
70
|
:class="b24ui.linkLeadingAvatar({ class: [props.b24ui?.linkLeadingAvatar, item.b24ui?.linkLeadingAvatar], active: item.active ?? index === items.length - 1 })"
|
|
68
71
|
/>
|
|
69
72
|
</slot>
|
|
70
73
|
|
|
71
74
|
<span
|
|
72
75
|
v-if="get(item, props.labelKey) || !!slots[item.slot ? `${item.slot}-label` : 'item-label']"
|
|
76
|
+
data-slot="linkLabel"
|
|
73
77
|
:class="b24ui.linkLabel({ class: [props.b24ui?.linkLabel, item.b24ui?.linkLabel] })"
|
|
74
78
|
>
|
|
75
79
|
<slot
|
|
@@ -93,10 +97,11 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.breadcr
|
|
|
93
97
|
</B24Link>
|
|
94
98
|
</li>
|
|
95
99
|
|
|
96
|
-
<li v-if="index < items.length - 1" role="presentation" aria-hidden="true" :class="b24ui.separator({ class: [props.b24ui?.separator, item.b24ui?.separator] })">
|
|
100
|
+
<li v-if="index < items.length - 1" role="presentation" aria-hidden="true" data-slot="separator" :class="b24ui.separator({ class: [props.b24ui?.separator, item.b24ui?.separator] })">
|
|
97
101
|
<slot name="separator" :b24ui="b24ui">
|
|
98
102
|
<Component
|
|
99
103
|
:is="separatorIcon"
|
|
104
|
+
data-slot="separatorIcon"
|
|
100
105
|
:class="b24ui.separatorIcon({ class: [props.b24ui?.separatorIcon, item.b24ui?.separatorIcon] })"
|
|
101
106
|
/>
|
|
102
107
|
</slot>
|
|
@@ -140,6 +140,7 @@ const b24ui = computed(() => tv({
|
|
|
140
140
|
>
|
|
141
141
|
<B24LinkBase
|
|
142
142
|
v-bind="slotProps"
|
|
143
|
+
data-slot="base"
|
|
143
144
|
:class="b24ui.base({
|
|
144
145
|
class: [props.b24ui?.base, props.class],
|
|
145
146
|
active,
|
|
@@ -150,35 +151,36 @@ const b24ui = computed(() => tv({
|
|
|
150
151
|
>
|
|
151
152
|
<div
|
|
152
153
|
v-if="isLoading"
|
|
154
|
+
data-slot="baseLoading"
|
|
153
155
|
:class="b24ui.baseLoading({ class: props.b24ui?.baseLoading, active })"
|
|
154
156
|
>
|
|
155
|
-
<LoaderWaitIcon v-if="useWait" :class="b24ui.baseLoadingWaitIcon({ class: props.b24ui?.baseLoadingWaitIcon })" aria-hidden="true" />
|
|
156
|
-
<LoaderClockIcon v-else-if="useClock" :class="b24ui.baseLoadingClockIcon({ class: props.b24ui?.baseLoadingClockIcon })" aria-hidden="true" />
|
|
157
|
-
<SpinnerIcon v-else :class="b24ui.baseLoadingSpinnerIcon({ class: props.b24ui?.baseLoadingSpinnerIcon })" aria-hidden="true" />
|
|
157
|
+
<LoaderWaitIcon v-if="useWait" data-slot="baseLoadingWaitIcon" :class="b24ui.baseLoadingWaitIcon({ class: props.b24ui?.baseLoadingWaitIcon })" aria-hidden="true" />
|
|
158
|
+
<LoaderClockIcon v-else-if="useClock" data-slot="baseLoadingClockIcon" :class="b24ui.baseLoadingClockIcon({ class: props.b24ui?.baseLoadingClockIcon })" aria-hidden="true" />
|
|
159
|
+
<SpinnerIcon v-else data-slot="baseLoadingSpinnerIcon" :class="b24ui.baseLoadingSpinnerIcon({ class: props.b24ui?.baseLoadingSpinnerIcon })" aria-hidden="true" />
|
|
158
160
|
</div>
|
|
159
161
|
<div
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
isLoading ? 'invisible' : ''
|
|
163
|
-
]"
|
|
162
|
+
data-slot="baseLine"
|
|
163
|
+
:class="[b24ui.baseLine({ class: [props.b24ui?.baseLine] }), isLoading ? 'invisible' : '']"
|
|
164
164
|
>
|
|
165
165
|
<slot name="leading" :b24ui="b24ui">
|
|
166
166
|
<Component
|
|
167
167
|
:is="leadingIconName"
|
|
168
168
|
v-if="isLeading && typeof leadingIconName !== 'undefined'"
|
|
169
|
+
data-slot="leadingIcon"
|
|
169
170
|
:class="b24ui.leadingIcon({ class: props.b24ui?.leadingIcon })"
|
|
170
171
|
/>
|
|
171
172
|
<B24Avatar
|
|
172
173
|
v-else-if="!!avatar"
|
|
173
174
|
:size="props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()"
|
|
174
175
|
v-bind="avatar"
|
|
176
|
+
data-slot="leadingAvatar"
|
|
175
177
|
:class="b24ui.leadingAvatar({ class: props.b24ui?.leadingAvatar })"
|
|
176
178
|
/>
|
|
177
179
|
</slot>
|
|
178
180
|
|
|
179
181
|
<slot :b24ui="b24ui">
|
|
180
|
-
<span v-if="label !== void 0 && label !== null" :class="b24ui.label({ class: props.b24ui?.label, active })">
|
|
181
|
-
<span :class="b24ui.labelInner({ class: props.b24ui?.labelInner, active })">
|
|
182
|
+
<span v-if="label !== void 0 && label !== null" data-slot="label" :class="b24ui.label({ class: props.b24ui?.label, active })">
|
|
183
|
+
<span data-slot="labelInner" :class="b24ui.labelInner({ class: props.b24ui?.labelInner, active })">
|
|
182
184
|
{{ label }}
|
|
183
185
|
</span>
|
|
184
186
|
</span>
|
|
@@ -187,6 +189,7 @@ const b24ui = computed(() => tv({
|
|
|
187
189
|
<slot name="trailing" :b24ui="b24ui">
|
|
188
190
|
<ChevronDownSIcon
|
|
189
191
|
v-if="useDropdown"
|
|
192
|
+
data-slot="trailingIcon"
|
|
190
193
|
:class="b24ui.trailingIcon({ class: props.b24ui?.trailingIcon })"
|
|
191
194
|
aria-hidden="true"
|
|
192
195
|
/>
|
|
@@ -92,16 +92,17 @@ const btnSize = computed(() => {
|
|
|
92
92
|
v-bind="rootProps"
|
|
93
93
|
:model-value="modelValue"
|
|
94
94
|
:default-value="defaultValue"
|
|
95
|
+
data-slot="root"
|
|
95
96
|
:class="b24ui.root({ class: [props.b24ui?.root, props.class] })"
|
|
96
97
|
>
|
|
97
|
-
<Calendar.Header :class="b24ui.header({ class: props.b24ui?.header })">
|
|
98
|
+
<Calendar.Header data-slot="header" :class="b24ui.header({ class: props.b24ui?.header })">
|
|
98
99
|
<Calendar.Prev v-if="props.yearControls" :prev-page="(date) => paginateYear(date, -1)" :aria-label="t('calendar.prevYear')" as-child>
|
|
99
100
|
<B24Button :icon="prevYearIcon" :size="btnSize" color="air-tertiary" v-bind="props.prevYear" />
|
|
100
101
|
</Calendar.Prev>
|
|
101
102
|
<Calendar.Prev v-if="props.monthControls" :aria-label="t('calendar.prevMonth')" as-child>
|
|
102
103
|
<B24Button :icon="prevMonthIcon" :size="btnSize" color="air-tertiary" v-bind="props.prevMonth" />
|
|
103
104
|
</Calendar.Prev>
|
|
104
|
-
<Calendar.Heading v-slot="{ headingValue }" :class="b24ui.heading({ class: props.b24ui?.heading })">
|
|
105
|
+
<Calendar.Heading v-slot="{ headingValue }" data-slot="heading" :class="b24ui.heading({ class: props.b24ui?.heading })">
|
|
105
106
|
<slot name="heading" :value="headingValue">
|
|
106
107
|
{{ headingValue }}
|
|
107
108
|
</slot>
|
|
@@ -113,17 +114,19 @@ const btnSize = computed(() => {
|
|
|
113
114
|
<B24Button :icon="nextYearIcon" :size="btnSize" color="air-tertiary" v-bind="props.nextYear" />
|
|
114
115
|
</Calendar.Next>
|
|
115
116
|
</Calendar.Header>
|
|
116
|
-
<div :class="b24ui.body({ class: props.b24ui?.body })">
|
|
117
|
+
<div data-slot="body" :class="b24ui.body({ class: props.b24ui?.body })">
|
|
117
118
|
<Calendar.Grid
|
|
118
119
|
v-for="month in grid"
|
|
119
120
|
:key="month.value.toString()"
|
|
121
|
+
data-slot="grid"
|
|
120
122
|
:class="b24ui.grid({ class: props.b24ui?.grid })"
|
|
121
123
|
>
|
|
122
124
|
<Calendar.GridHead>
|
|
123
|
-
<Calendar.GridRow :class="b24ui.gridWeekDaysRow({ class: props.b24ui?.gridWeekDaysRow })">
|
|
125
|
+
<Calendar.GridRow data-slot="gridWeekDaysRow" :class="b24ui.gridWeekDaysRow({ class: props.b24ui?.gridWeekDaysRow })">
|
|
124
126
|
<Calendar.HeadCell
|
|
125
127
|
v-for="day in weekDays"
|
|
126
128
|
:key="day"
|
|
129
|
+
data-slot="headCell"
|
|
127
130
|
:class="b24ui.headCell({ class: props.b24ui?.headCell })"
|
|
128
131
|
>
|
|
129
132
|
<slot name="week-day" :day="day">
|
|
@@ -132,21 +135,24 @@ const btnSize = computed(() => {
|
|
|
132
135
|
</Calendar.HeadCell>
|
|
133
136
|
</Calendar.GridRow>
|
|
134
137
|
</Calendar.GridHead>
|
|
135
|
-
<Calendar.GridBody :class="b24ui.gridBody({ class: props.b24ui?.gridBody })">
|
|
138
|
+
<Calendar.GridBody data-slot="gridBody" :class="b24ui.gridBody({ class: props.b24ui?.gridBody })">
|
|
136
139
|
<Calendar.GridRow
|
|
137
140
|
v-for="(weekDates, index) in month.rows"
|
|
138
141
|
:key="`weekDate-${index}`"
|
|
142
|
+
data-slot="gridRow"
|
|
139
143
|
:class="b24ui.gridRow({ class: props.b24ui?.gridRow })"
|
|
140
144
|
>
|
|
141
145
|
<Calendar.Cell
|
|
142
146
|
v-for="weekDate in weekDates"
|
|
143
147
|
:key="weekDate.toString()"
|
|
144
148
|
:date="weekDate"
|
|
149
|
+
data-slot="cell"
|
|
145
150
|
:class="b24ui.cell({ class: props.b24ui?.cell })"
|
|
146
151
|
>
|
|
147
152
|
<Calendar.CellTrigger
|
|
148
153
|
:day="weekDate"
|
|
149
154
|
:month="month.value"
|
|
155
|
+
data-slot="cellTrigger"
|
|
150
156
|
:class="b24ui.cellTrigger({ class: props.b24ui?.cellTrigger })"
|
|
151
157
|
>
|
|
152
158
|
<slot name="day" :day="weekDate">
|
|
@@ -21,16 +21,16 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.card ||
|
|
|
21
21
|
</script>
|
|
22
22
|
|
|
23
23
|
<template>
|
|
24
|
-
<Primitive :as="as" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
|
|
25
|
-
<div v-if="!!slots.header" :class="b24ui.header({ class: props.b24ui?.header })">
|
|
24
|
+
<Primitive :as="as" data-slot="root" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
|
|
25
|
+
<div v-if="!!slots.header" data-slot="header" :class="b24ui.header({ class: props.b24ui?.header })">
|
|
26
26
|
<slot name="header" />
|
|
27
27
|
</div>
|
|
28
28
|
|
|
29
|
-
<div v-if="!!slots.default" :class="b24ui.body({ class: props.b24ui?.body })">
|
|
29
|
+
<div v-if="!!slots.default" data-slot="body" :class="b24ui.body({ class: props.b24ui?.body })">
|
|
30
30
|
<slot />
|
|
31
31
|
</div>
|
|
32
32
|
|
|
33
|
-
<div v-if="!!slots.footer" :class="b24ui.footer({ class: props.b24ui?.footer })">
|
|
33
|
+
<div v-if="!!slots.footer" data-slot="footer" :class="b24ui.footer({ class: props.b24ui?.footer })">
|
|
34
34
|
<slot name="footer" />
|
|
35
35
|
</div>
|
|
36
36
|
</Primitive>
|
|
@@ -38,25 +38,27 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.chatMes
|
|
|
38
38
|
</script>
|
|
39
39
|
|
|
40
40
|
<template>
|
|
41
|
-
<Primitive :as="as" :data-role="role" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
|
|
42
|
-
<div :class="b24ui.container({ class: props.b24ui?.container })">
|
|
43
|
-
<div v-if="icon || avatar || !!slots.leading" :class="b24ui.leading({ class: props.b24ui?.leading })">
|
|
41
|
+
<Primitive :as="as" :data-role="role" data-slot="root" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })">
|
|
42
|
+
<div data-slot="container" :class="b24ui.container({ class: props.b24ui?.container })">
|
|
43
|
+
<div v-if="icon || avatar || !!slots.leading" data-slot="leading" :class="b24ui.leading({ class: props.b24ui?.leading })">
|
|
44
44
|
<slot name="leading" :avatar="avatar" :b24ui="b24ui">
|
|
45
45
|
<Component
|
|
46
46
|
:is="icon"
|
|
47
47
|
v-if="icon"
|
|
48
|
+
data-slot="leadingIcon"
|
|
48
49
|
:class="b24ui.leadingIcon({ class: props.b24ui?.leadingIcon })"
|
|
49
50
|
/>
|
|
50
51
|
<B24Avatar
|
|
51
52
|
v-else-if="avatar"
|
|
52
53
|
:size="props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()"
|
|
53
54
|
v-bind="avatar"
|
|
55
|
+
data-slot="leadingAvatar"
|
|
54
56
|
:class="b24ui.leadingAvatar({ class: props.b24ui?.leadingAvatar })"
|
|
55
57
|
/>
|
|
56
58
|
</slot>
|
|
57
59
|
</div>
|
|
58
60
|
|
|
59
|
-
<div v-if="parts.length || !!slots.content" :class="b24ui.content({ class: props.b24ui?.content })">
|
|
61
|
+
<div v-if="parts.length || !!slots.content" data-slot="content" :class="b24ui.content({ class: props.b24ui?.content })">
|
|
60
62
|
<slot
|
|
61
63
|
:id="id"
|
|
62
64
|
name="content"
|
|
@@ -71,7 +73,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.chatMes
|
|
|
71
73
|
</slot>
|
|
72
74
|
</div>
|
|
73
75
|
|
|
74
|
-
<div v-if="actions || !!slots.actions" :class="b24ui.actions({ class: props.b24ui?.actions })">
|
|
76
|
+
<div v-if="actions || !!slots.actions" data-slot="actions" :class="b24ui.actions({ class: props.b24ui?.actions })">
|
|
75
77
|
<slot name="actions" :actions="actions">
|
|
76
78
|
<B24Tooltip v-for="(action, index) in actions" :key="index" :text="action.label">
|
|
77
79
|
<B24Button
|
|
@@ -174,6 +174,7 @@ onMounted(() => {
|
|
|
174
174
|
<div
|
|
175
175
|
ref="el"
|
|
176
176
|
:data-status="status"
|
|
177
|
+
data-slot="root"
|
|
177
178
|
:class="b24ui.root({ class: [props.b24ui?.root, props.class] })"
|
|
178
179
|
:style="{ '--last-message-height': `${lastMessageHeight}px` }"
|
|
179
180
|
>
|
|
@@ -200,7 +201,7 @@ onMounted(() => {
|
|
|
200
201
|
>
|
|
201
202
|
<template #content>
|
|
202
203
|
<slot name="indicator" :b24ui="b24ui">
|
|
203
|
-
<div :class="b24ui.indicator({ class: props.b24ui?.indicator })">
|
|
204
|
+
<div data-slot="indicator" :class="b24ui.indicator({ class: props.b24ui?.indicator })">
|
|
204
205
|
<span />
|
|
205
206
|
<span />
|
|
206
207
|
<span />
|
|
@@ -210,13 +211,14 @@ onMounted(() => {
|
|
|
210
211
|
</B24ChatMessage>
|
|
211
212
|
|
|
212
213
|
<Presence :present="showAutoScroll">
|
|
213
|
-
<div :data-state="showAutoScroll ? 'open' : 'closed'" :class="b24ui.viewport({ class: props.b24ui?.viewport })">
|
|
214
|
+
<div :data-state="showAutoScroll ? 'open' : 'closed'" data-slot="viewport" :class="b24ui.viewport({ class: props.b24ui?.viewport })">
|
|
214
215
|
<slot name="viewport" :b24ui="b24ui" :on-click="onAutoScrollClick">
|
|
215
216
|
<B24Button
|
|
216
217
|
v-if="autoScroll"
|
|
217
218
|
:icon="autoScrollIcon || icons.arrowDown"
|
|
218
219
|
color="air-secondary-no-accent"
|
|
219
220
|
v-bind="typeof autoScroll === 'object' ? autoScroll : {}"
|
|
221
|
+
data-slot="autoScroll"
|
|
220
222
|
:class="b24ui.autoScroll({ class: props.b24ui?.autoScroll })"
|
|
221
223
|
@click="onAutoScrollClick"
|
|
222
224
|
/>
|