@bitrix24/b24ui-nuxt 0.5.10 → 0.5.11
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/dist/meta.cjs +72112 -0
- package/dist/meta.d.cts +72110 -0
- package/dist/meta.d.mts +5060 -5060
- package/dist/meta.d.ts +72110 -0
- package/dist/meta.mjs +5060 -5060
- package/dist/module.cjs +63 -0
- package/dist/module.d.cts +15 -0
- package/dist/module.d.ts +15 -0
- package/dist/module.json +3 -3
- package/dist/module.mjs +1 -1
- package/dist/runtime/components/Advice.vue +54 -47
- package/dist/runtime/components/Alert.vue +96 -71
- package/dist/runtime/components/App.vue +34 -37
- package/dist/runtime/components/Avatar.vue +81 -69
- package/dist/runtime/components/AvatarGroup.vue +76 -53
- package/dist/runtime/components/Badge.vue +83 -83
- package/dist/runtime/components/Button.vue +157 -220
- package/dist/runtime/components/ButtonGroup.vue +51 -35
- package/dist/runtime/components/Calendar.vue +152 -186
- package/dist/runtime/components/Checkbox.vue +73 -84
- package/dist/runtime/components/Chip.vue +74 -59
- package/dist/runtime/components/Collapsible.vue +41 -44
- package/dist/runtime/components/Container.vue +27 -18
- package/dist/runtime/components/Countdown.vue +378 -198
- package/dist/runtime/components/DescriptionList.vue +149 -102
- package/dist/runtime/components/DropdownMenu.vue +139 -83
- package/dist/runtime/components/DropdownMenuContent.vue +84 -137
- package/dist/runtime/components/Form.vue +216 -162
- package/dist/runtime/components/FormField.vue +80 -76
- package/dist/runtime/components/Input.vue +179 -160
- package/dist/runtime/components/InputMenu.vue +380 -300
- package/dist/runtime/components/InputNumber.vue +175 -178
- package/dist/runtime/components/Kbd.vue +45 -33
- package/dist/runtime/components/Link.vue +173 -179
- package/dist/runtime/components/LinkBase.vue +42 -64
- package/dist/runtime/components/Modal.vue +127 -105
- package/dist/runtime/components/ModalDialogClose.vue +8 -4
- package/dist/runtime/components/Navbar.vue +33 -24
- package/dist/runtime/components/NavbarDivider.vue +33 -24
- package/dist/runtime/components/NavbarSection.vue +33 -24
- package/dist/runtime/components/NavbarSpacer.vue +33 -24
- package/dist/runtime/components/NavigationMenu.vue +210 -144
- package/dist/runtime/components/OverlayProvider.vue +17 -13
- package/dist/runtime/components/Popover.vue +81 -81
- package/dist/runtime/components/Progress.vue +136 -109
- package/dist/runtime/components/RadioGroup.vue +134 -120
- package/dist/runtime/components/Range.vue +85 -94
- package/dist/runtime/components/Select.vue +260 -212
- package/dist/runtime/components/SelectMenu.vue +365 -272
- package/dist/runtime/components/Separator.vue +71 -61
- package/dist/runtime/components/Sidebar.vue +33 -24
- package/dist/runtime/components/SidebarBody.vue +38 -30
- package/dist/runtime/components/SidebarFooter.vue +33 -24
- package/dist/runtime/components/SidebarHeader.vue +33 -24
- package/dist/runtime/components/SidebarHeading.vue +33 -24
- package/dist/runtime/components/SidebarLayout.vue +70 -40
- package/dist/runtime/components/SidebarSection.vue +33 -24
- package/dist/runtime/components/SidebarSpacer.vue +33 -24
- package/dist/runtime/components/Skeleton.vue +22 -17
- package/dist/runtime/components/Slideover.vue +131 -108
- package/dist/runtime/components/StackedLayout.vue +73 -40
- package/dist/runtime/components/Switch.vue +95 -100
- package/dist/runtime/components/Tabs.vue +107 -81
- package/dist/runtime/components/Textarea.vue +201 -177
- package/dist/runtime/components/Toast.vue +105 -94
- package/dist/runtime/components/Toaster.vue +116 -94
- package/dist/runtime/components/Tooltip.vue +64 -78
- package/dist/runtime/components/content/TableWrapper.vue +70 -58
- package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
- package/dist/runtime/composables/useButtonGroup.d.ts +2 -2
- package/dist/runtime/composables/useComponentIcons.d.ts +3 -3
- package/dist/runtime/composables/useFormField.d.ts +1 -1
- package/dist/runtime/prose/A.vue +23 -18
- package/dist/runtime/prose/Blockquote.vue +23 -18
- package/dist/runtime/prose/Code.vue +31 -23
- package/dist/runtime/prose/Em.vue +23 -18
- package/dist/runtime/prose/H1.vue +23 -18
- package/dist/runtime/prose/H2.vue +23 -18
- package/dist/runtime/prose/H3.vue +23 -18
- package/dist/runtime/prose/H4.vue +23 -18
- package/dist/runtime/prose/H5.vue +23 -18
- package/dist/runtime/prose/H6.vue +23 -18
- package/dist/runtime/prose/Hr.vue +19 -18
- package/dist/runtime/prose/Img.vue +23 -18
- package/dist/runtime/prose/Li.vue +23 -18
- package/dist/runtime/prose/Ol.vue +23 -18
- package/dist/runtime/prose/P.vue +23 -18
- package/dist/runtime/prose/Pre.vue +33 -28
- package/dist/runtime/prose/Strong.vue +23 -18
- package/dist/runtime/prose/Table.vue +54 -44
- package/dist/runtime/prose/Tbody.vue +23 -18
- package/dist/runtime/prose/Td.vue +23 -18
- package/dist/runtime/prose/Th.vue +23 -18
- package/dist/runtime/prose/Thead.vue +23 -18
- package/dist/runtime/prose/Tr.vue +23 -18
- package/dist/runtime/prose/Ul.vue +23 -18
- package/dist/runtime/vue/components/Link.vue +202 -201
- package/dist/shared/b24ui-nuxt.DrKwIWoc.cjs +7721 -0
- package/dist/types.d.mts +5 -3
- package/dist/types.d.ts +7 -0
- package/dist/unplugin.cjs +236 -0
- package/dist/unplugin.d.cts +33 -0
- package/dist/unplugin.d.ts +33 -0
- package/dist/vite.cjs +21 -0
- package/dist/vite.d.cts +14 -0
- package/dist/vite.d.ts +14 -0
- package/package.json +25 -13
- package/dist/runtime/components/Advice.vue.d.ts +0 -170
- package/dist/runtime/components/Alert.vue.d.ts +0 -464
- package/dist/runtime/components/App.vue.d.ts +0 -23
- package/dist/runtime/components/Avatar.vue.d.ts +0 -281
- package/dist/runtime/components/AvatarGroup.vue.d.ts +0 -204
- package/dist/runtime/components/Badge.vue.d.ts +0 -517
- package/dist/runtime/components/Button.vue.d.ts +0 -640
- package/dist/runtime/components/ButtonGroup.vue.d.ts +0 -116
- package/dist/runtime/components/Calendar.vue.d.ts +0 -437
- package/dist/runtime/components/Checkbox.vue.d.ts +0 -354
- package/dist/runtime/components/Chip.vue.d.ts +0 -271
- package/dist/runtime/components/Collapsible.vue.d.ts +0 -118
- package/dist/runtime/components/Container.vue.d.ts +0 -27
- package/dist/runtime/components/Countdown.vue.d.ts +0 -356
- package/dist/runtime/components/DescriptionList.vue.d.ts +0 -379
- package/dist/runtime/components/DropdownMenu.vue.d.ts +0 -533
- package/dist/runtime/components/DropdownMenuContent.vue.d.ts +0 -228
- package/dist/runtime/components/Form.vue.d.ts +0 -55
- package/dist/runtime/components/FormField.vue.d.ts +0 -282
- package/dist/runtime/components/Input.vue.d.ts +0 -755
- package/dist/runtime/components/InputMenu.vue.d.ts +0 -1504
- package/dist/runtime/components/InputNumber.vue.d.ts +0 -658
- package/dist/runtime/components/Kbd.vue.d.ts +0 -109
- package/dist/runtime/components/Link.vue.d.ts +0 -129
- package/dist/runtime/components/LinkBase.vue.d.ts +0 -48
- package/dist/runtime/components/Modal.vue.d.ts +0 -327
- package/dist/runtime/components/ModalDialogClose.vue.d.ts +0 -10
- package/dist/runtime/components/Navbar.vue.d.ts +0 -101
- package/dist/runtime/components/NavbarDivider.vue.d.ts +0 -101
- package/dist/runtime/components/NavbarSection.vue.d.ts +0 -101
- package/dist/runtime/components/NavbarSpacer.vue.d.ts +0 -101
- package/dist/runtime/components/NavigationMenu.vue.d.ts +0 -824
- package/dist/runtime/components/OverlayProvider.vue.d.ts +0 -2
- package/dist/runtime/components/Popover.vue.d.ts +0 -147
- package/dist/runtime/components/Progress.vue.d.ts +0 -592
- package/dist/runtime/components/RadioGroup.vue.d.ts +0 -723
- package/dist/runtime/components/Range.vue.d.ts +0 -417
- package/dist/runtime/components/Select.vue.d.ts +0 -1200
- package/dist/runtime/components/SelectMenu.vue.d.ts +0 -1298
- package/dist/runtime/components/Separator.vue.d.ts +0 -400
- package/dist/runtime/components/Sidebar.vue.d.ts +0 -101
- package/dist/runtime/components/SidebarBody.vue.d.ts +0 -90
- package/dist/runtime/components/SidebarFooter.vue.d.ts +0 -101
- package/dist/runtime/components/SidebarHeader.vue.d.ts +0 -101
- package/dist/runtime/components/SidebarHeading.vue.d.ts +0 -101
- package/dist/runtime/components/SidebarLayout.vue.d.ts +0 -222
- package/dist/runtime/components/SidebarSection.vue.d.ts +0 -101
- package/dist/runtime/components/SidebarSpacer.vue.d.ts +0 -101
- package/dist/runtime/components/Skeleton.vue.d.ts +0 -26
- package/dist/runtime/components/Slideover.vue.d.ts +0 -360
- package/dist/runtime/components/StackedLayout.vue.d.ts +0 -192
- package/dist/runtime/components/Switch.vue.d.ts +0 -587
- package/dist/runtime/components/Tabs.vue.d.ts +0 -453
- package/dist/runtime/components/Textarea.vue.d.ts +0 -601
- package/dist/runtime/components/Toast.vue.d.ts +0 -438
- package/dist/runtime/components/Toaster.vue.d.ts +0 -219
- package/dist/runtime/components/Tooltip.vue.d.ts +0 -186
- package/dist/runtime/components/content/TableWrapper.vue.d.ts +0 -237
- package/dist/runtime/prose/A.vue.d.ts +0 -84
- package/dist/runtime/prose/Blockquote.vue.d.ts +0 -84
- package/dist/runtime/prose/Code.vue.d.ts +0 -97
- package/dist/runtime/prose/Em.vue.d.ts +0 -84
- package/dist/runtime/prose/H1.vue.d.ts +0 -97
- package/dist/runtime/prose/H2.vue.d.ts +0 -123
- package/dist/runtime/prose/H3.vue.d.ts +0 -123
- package/dist/runtime/prose/H4.vue.d.ts +0 -123
- package/dist/runtime/prose/H5.vue.d.ts +0 -123
- package/dist/runtime/prose/H6.vue.d.ts +0 -123
- package/dist/runtime/prose/Hr.vue.d.ts +0 -74
- package/dist/runtime/prose/Img.vue.d.ts +0 -77
- package/dist/runtime/prose/Li.vue.d.ts +0 -84
- package/dist/runtime/prose/Ol.vue.d.ts +0 -84
- package/dist/runtime/prose/P.vue.d.ts +0 -84
- package/dist/runtime/prose/Pre.vue.d.ts +0 -117
- package/dist/runtime/prose/Strong.vue.d.ts +0 -84
- package/dist/runtime/prose/Table.vue.d.ts +0 -144
- package/dist/runtime/prose/Tbody.vue.d.ts +0 -84
- package/dist/runtime/prose/Td.vue.d.ts +0 -84
- package/dist/runtime/prose/Th.vue.d.ts +0 -84
- package/dist/runtime/prose/Thead.vue.d.ts +0 -84
- package/dist/runtime/prose/Tr.vue.d.ts +0 -84
- package/dist/runtime/prose/Ul.vue.d.ts +0 -84
- package/dist/runtime/vue/components/Link.vue.d.ts +0 -129
|
@@ -1,70 +1,80 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { VariantProps } from 'tailwind-variants'
|
|
3
|
+
import type { SeparatorProps as _SeparatorProps } from 'reka-ui'
|
|
4
|
+
import type { AppConfig } from '@nuxt/schema'
|
|
5
|
+
import _appConfig from '#build/app.config'
|
|
6
|
+
import theme from '#build/b24ui/separator'
|
|
7
|
+
import { tv } from '../utils/tv'
|
|
8
|
+
import type { AvatarProps, IconComponent } from '../types'
|
|
9
|
+
|
|
10
|
+
const appConfigSeparator = _appConfig as AppConfig & { b24ui: { separator: Partial<typeof theme> } }
|
|
11
|
+
|
|
12
|
+
const separator = tv({ extend: tv(theme), ...(appConfigSeparator.b24ui?.separator || {}) })
|
|
13
|
+
|
|
14
|
+
type SeparatorVariants = VariantProps<typeof separator>
|
|
15
|
+
|
|
16
|
+
export interface SeparatorProps extends Pick<_SeparatorProps, 'decorative'> {
|
|
17
|
+
/**
|
|
18
|
+
* The element or component this component should render as.
|
|
19
|
+
* @defaultValue 'div'
|
|
20
|
+
*/
|
|
21
|
+
as?: any
|
|
22
|
+
/** Display a label in the middle. */
|
|
23
|
+
label?: string
|
|
24
|
+
/**
|
|
25
|
+
* Display an icon in the middle
|
|
26
|
+
* @IconComponent
|
|
27
|
+
*/
|
|
28
|
+
icon?: IconComponent
|
|
29
|
+
/**
|
|
30
|
+
* Display an avatar in the middle
|
|
31
|
+
*/
|
|
32
|
+
avatar?: AvatarProps
|
|
33
|
+
/**
|
|
34
|
+
* @defaultValue 'default'
|
|
35
|
+
*/
|
|
36
|
+
color?: SeparatorVariants['color']
|
|
37
|
+
/**
|
|
38
|
+
* @defaultValue 'xs'
|
|
39
|
+
*/
|
|
40
|
+
size?: SeparatorVariants['size']
|
|
41
|
+
/**
|
|
42
|
+
* @defaultValue 'solid'
|
|
43
|
+
*/
|
|
44
|
+
type?: SeparatorVariants['type']
|
|
45
|
+
/**
|
|
46
|
+
* The orientation of the separator.
|
|
47
|
+
* @defaultValue 'horizontal'
|
|
48
|
+
*/
|
|
49
|
+
orientation?: _SeparatorProps['orientation']
|
|
50
|
+
class?: any
|
|
51
|
+
b24ui?: Partial<typeof separator.slots>
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export interface SeparatorSlots {
|
|
55
|
+
default(props?: {}): any
|
|
56
|
+
}
|
|
7
57
|
</script>
|
|
8
58
|
|
|
9
|
-
<script setup>
|
|
10
|
-
import { computed } from
|
|
11
|
-
import { useForwardProps } from
|
|
12
|
-
import { reactivePick } from
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
icon: {
|
|
23
|
-
type: [Function, Object],
|
|
24
|
-
required: false
|
|
25
|
-
},
|
|
26
|
-
avatar: {
|
|
27
|
-
type: Object,
|
|
28
|
-
required: false
|
|
29
|
-
},
|
|
30
|
-
color: {
|
|
31
|
-
type: null,
|
|
32
|
-
required: false
|
|
33
|
-
},
|
|
34
|
-
size: {
|
|
35
|
-
type: null,
|
|
36
|
-
required: false
|
|
37
|
-
},
|
|
38
|
-
type: {
|
|
39
|
-
type: null,
|
|
40
|
-
required: false
|
|
41
|
-
},
|
|
42
|
-
orientation: {
|
|
43
|
-
type: null,
|
|
44
|
-
required: false,
|
|
45
|
-
default: "horizontal"
|
|
46
|
-
},
|
|
47
|
-
class: {
|
|
48
|
-
type: null,
|
|
49
|
-
required: false
|
|
50
|
-
},
|
|
51
|
-
b24ui: {
|
|
52
|
-
type: Object,
|
|
53
|
-
required: false
|
|
54
|
-
},
|
|
55
|
-
decorative: {
|
|
56
|
-
type: Boolean,
|
|
57
|
-
required: false
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
const slots = defineSlots();
|
|
61
|
-
const rootProps = useForwardProps(reactivePick(props, "as", "decorative", "orientation"));
|
|
59
|
+
<script setup lang="ts">
|
|
60
|
+
import { computed } from 'vue'
|
|
61
|
+
import { Separator, useForwardProps } from 'reka-ui'
|
|
62
|
+
import { reactivePick } from '@vueuse/core'
|
|
63
|
+
import B24Avatar from './Avatar.vue'
|
|
64
|
+
|
|
65
|
+
const props = withDefaults(defineProps<SeparatorProps>(), {
|
|
66
|
+
orientation: 'horizontal'
|
|
67
|
+
})
|
|
68
|
+
const slots = defineSlots<SeparatorSlots>()
|
|
69
|
+
|
|
70
|
+
const rootProps = useForwardProps(reactivePick(props, 'as', 'decorative', 'orientation'))
|
|
71
|
+
|
|
62
72
|
const b24ui = computed(() => separator({
|
|
63
73
|
color: props.color,
|
|
64
74
|
orientation: props.orientation,
|
|
65
75
|
size: props.size,
|
|
66
76
|
type: props.type
|
|
67
|
-
}))
|
|
77
|
+
}))
|
|
68
78
|
</script>
|
|
69
79
|
|
|
70
80
|
<template>
|
|
@@ -76,7 +86,7 @@ const b24ui = computed(() => separator({
|
|
|
76
86
|
<slot>
|
|
77
87
|
<span v-if="label" :class="b24ui.label({ class: props.b24ui?.label })">{{ label }}</span>
|
|
78
88
|
<Component :is="icon" v-else-if="icon" :class="b24ui.icon({ class: props.b24ui?.icon })" />
|
|
79
|
-
<B24Avatar v-else-if="avatar" :size="props.b24ui?.avatarSize || b24ui.avatarSize()" v-bind="avatar" :class="b24ui.avatar({ class: props.b24ui?.avatar })" />
|
|
89
|
+
<B24Avatar v-else-if="avatar" :size="((props.b24ui?.avatarSize || b24ui.avatarSize()) as AvatarProps['size'])" v-bind="avatar" :class="b24ui.avatar({ class: props.b24ui?.avatar })" />
|
|
80
90
|
</slot>
|
|
81
91
|
</div>
|
|
82
92
|
|
|
@@ -1,29 +1,38 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { AppConfig } from '@nuxt/schema'
|
|
3
|
+
import _appConfig from '#build/app.config'
|
|
4
|
+
import theme from '#build/b24ui/sidebar'
|
|
5
|
+
import { tv } from '../utils/tv'
|
|
6
|
+
|
|
7
|
+
const appConfigSidebar = _appConfig as AppConfig & { b24ui: { sidebar: Partial<typeof theme> } }
|
|
8
|
+
|
|
9
|
+
const sidebar = tv({ extend: tv(theme), ...(appConfigSidebar.b24ui?.sidebar || {}) })
|
|
10
|
+
|
|
11
|
+
export interface SidebarProps {
|
|
12
|
+
/**
|
|
13
|
+
* The element or component this component should render as.
|
|
14
|
+
* @defaultValue 'div'
|
|
15
|
+
*/
|
|
16
|
+
as?: any
|
|
17
|
+
class?: any
|
|
18
|
+
b24ui?: Partial<typeof sidebar.slots>
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface SidebarSlots {
|
|
22
|
+
default(props?: {}): any
|
|
23
|
+
}
|
|
7
24
|
</script>
|
|
8
25
|
|
|
9
|
-
<script setup>
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
},
|
|
20
|
-
b24ui: {
|
|
21
|
-
type: Object,
|
|
22
|
-
required: false
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
defineSlots();
|
|
26
|
-
const b24ui = sidebar();
|
|
26
|
+
<script setup lang="ts">
|
|
27
|
+
import { Primitive } from 'reka-ui'
|
|
28
|
+
|
|
29
|
+
const props = withDefaults(defineProps<SidebarProps>(), {
|
|
30
|
+
as: 'div'
|
|
31
|
+
})
|
|
32
|
+
defineSlots<SidebarSlots>()
|
|
33
|
+
|
|
34
|
+
// eslint-disable-next-line vue/no-dupe-keys
|
|
35
|
+
const b24ui = sidebar()
|
|
27
36
|
</script>
|
|
28
37
|
|
|
29
38
|
<template>
|
|
@@ -1,37 +1,45 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { AppConfig } from '@nuxt/schema'
|
|
3
|
+
import _appConfig from '#build/app.config'
|
|
4
|
+
import theme from '#build/b24ui/sidebar-body'
|
|
5
|
+
import { tv } from '../utils/tv'
|
|
6
|
+
|
|
7
|
+
const appConfigSidebarBody = _appConfig as AppConfig & { b24ui: { sidebarBody: Partial<typeof theme> } }
|
|
8
|
+
|
|
9
|
+
const sidebarBody = tv({ extend: tv(theme), ...(appConfigSidebarBody.b24ui?.sidebarBody || {}) })
|
|
10
|
+
|
|
11
|
+
export interface SidebarBodyProps {
|
|
12
|
+
/**
|
|
13
|
+
* The element or component this component should render as.
|
|
14
|
+
* @defaultValue 'div'
|
|
15
|
+
*/
|
|
16
|
+
as?: any
|
|
17
|
+
/**
|
|
18
|
+
* @defaultValue true
|
|
19
|
+
*/
|
|
20
|
+
scrollbarThin?: boolean
|
|
21
|
+
class?: any
|
|
22
|
+
b24ui?: Partial<typeof sidebarBody.slots>
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface SidebarBodySlots {
|
|
26
|
+
default(props?: {}): any
|
|
27
|
+
}
|
|
7
28
|
</script>
|
|
8
29
|
|
|
9
|
-
<script setup>
|
|
10
|
-
import { computed } from
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
required: false,
|
|
20
|
-
default: true
|
|
21
|
-
},
|
|
22
|
-
class: {
|
|
23
|
-
type: null,
|
|
24
|
-
required: false
|
|
25
|
-
},
|
|
26
|
-
b24ui: {
|
|
27
|
-
type: Object,
|
|
28
|
-
required: false
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
defineSlots();
|
|
30
|
+
<script setup lang="ts">
|
|
31
|
+
import { computed } from 'vue'
|
|
32
|
+
import { Primitive } from 'reka-ui'
|
|
33
|
+
|
|
34
|
+
const props = withDefaults(defineProps<SidebarBodyProps>(), {
|
|
35
|
+
as: 'div',
|
|
36
|
+
scrollbarThin: true
|
|
37
|
+
})
|
|
38
|
+
defineSlots<SidebarBodySlots>()
|
|
39
|
+
|
|
32
40
|
const b24ui = computed(() => sidebarBody({
|
|
33
41
|
scrollbarThin: Boolean(props.scrollbarThin)
|
|
34
|
-
}))
|
|
42
|
+
}))
|
|
35
43
|
</script>
|
|
36
44
|
|
|
37
45
|
<template>
|
|
@@ -1,29 +1,38 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { AppConfig } from '@nuxt/schema'
|
|
3
|
+
import _appConfig from '#build/app.config'
|
|
4
|
+
import theme from '#build/b24ui/sidebar-footer'
|
|
5
|
+
import { tv } from '../utils/tv'
|
|
6
|
+
|
|
7
|
+
const appConfigSidebarFooter = _appConfig as AppConfig & { b24ui: { sidebarFooter: Partial<typeof theme> } }
|
|
8
|
+
|
|
9
|
+
const sidebarFooter = tv({ extend: tv(theme), ...(appConfigSidebarFooter.b24ui?.sidebarFooter || {}) })
|
|
10
|
+
|
|
11
|
+
export interface SidebarFooterProps {
|
|
12
|
+
/**
|
|
13
|
+
* The element or component this component should render as.
|
|
14
|
+
* @defaultValue 'div'
|
|
15
|
+
*/
|
|
16
|
+
as?: any
|
|
17
|
+
class?: any
|
|
18
|
+
b24ui?: Partial<typeof sidebarFooter.slots>
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface SidebarFooterSlots {
|
|
22
|
+
default(props?: {}): any
|
|
23
|
+
}
|
|
7
24
|
</script>
|
|
8
25
|
|
|
9
|
-
<script setup>
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
},
|
|
20
|
-
b24ui: {
|
|
21
|
-
type: Object,
|
|
22
|
-
required: false
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
defineSlots();
|
|
26
|
-
const b24ui = sidebarFooter();
|
|
26
|
+
<script setup lang="ts">
|
|
27
|
+
import { Primitive } from 'reka-ui'
|
|
28
|
+
|
|
29
|
+
const props = withDefaults(defineProps<SidebarFooterProps>(), {
|
|
30
|
+
as: 'div'
|
|
31
|
+
})
|
|
32
|
+
defineSlots<SidebarFooterSlots>()
|
|
33
|
+
|
|
34
|
+
// eslint-disable-next-line vue/no-dupe-keys
|
|
35
|
+
const b24ui = sidebarFooter()
|
|
27
36
|
</script>
|
|
28
37
|
|
|
29
38
|
<template>
|
|
@@ -1,29 +1,38 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { AppConfig } from '@nuxt/schema'
|
|
3
|
+
import _appConfig from '#build/app.config'
|
|
4
|
+
import theme from '#build/b24ui/sidebar-header'
|
|
5
|
+
import { tv } from '../utils/tv'
|
|
6
|
+
|
|
7
|
+
const appConfigSidebarHeader = _appConfig as AppConfig & { b24ui: { sidebarHeader: Partial<typeof theme> } }
|
|
8
|
+
|
|
9
|
+
const sidebarHeader = tv({ extend: tv(theme), ...(appConfigSidebarHeader.b24ui?.sidebarHeader || {}) })
|
|
10
|
+
|
|
11
|
+
export interface SidebarHeaderProps {
|
|
12
|
+
/**
|
|
13
|
+
* The element or component this component should render as.
|
|
14
|
+
* @defaultValue 'div'
|
|
15
|
+
*/
|
|
16
|
+
as?: any
|
|
17
|
+
class?: any
|
|
18
|
+
b24ui?: Partial<typeof sidebarHeader.slots>
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface SidebarHeaderSlots {
|
|
22
|
+
default(props?: {}): any
|
|
23
|
+
}
|
|
7
24
|
</script>
|
|
8
25
|
|
|
9
|
-
<script setup>
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
},
|
|
20
|
-
b24ui: {
|
|
21
|
-
type: Object,
|
|
22
|
-
required: false
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
defineSlots();
|
|
26
|
-
const b24ui = sidebarHeader();
|
|
26
|
+
<script setup lang="ts">
|
|
27
|
+
import { Primitive } from 'reka-ui'
|
|
28
|
+
|
|
29
|
+
const props = withDefaults(defineProps<SidebarHeaderProps>(), {
|
|
30
|
+
as: 'div'
|
|
31
|
+
})
|
|
32
|
+
defineSlots<SidebarHeaderSlots>()
|
|
33
|
+
|
|
34
|
+
// eslint-disable-next-line vue/no-dupe-keys
|
|
35
|
+
const b24ui = sidebarHeader()
|
|
27
36
|
</script>
|
|
28
37
|
|
|
29
38
|
<template>
|
|
@@ -1,29 +1,38 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { AppConfig } from '@nuxt/schema'
|
|
3
|
+
import _appConfig from '#build/app.config'
|
|
4
|
+
import theme from '#build/b24ui/sidebar-heading'
|
|
5
|
+
import { tv } from '../utils/tv'
|
|
6
|
+
|
|
7
|
+
const appConfigSidebarHeading = _appConfig as AppConfig & { b24ui: { sidebarHeading: Partial<typeof theme> } }
|
|
8
|
+
|
|
9
|
+
const sidebarHeading = tv({ extend: tv(theme), ...(appConfigSidebarHeading.b24ui?.sidebarHeading || {}) })
|
|
10
|
+
|
|
11
|
+
export interface SidebarHeadingProps {
|
|
12
|
+
/**
|
|
13
|
+
* The element or component this component should render as.
|
|
14
|
+
* @defaultValue 'h6'
|
|
15
|
+
*/
|
|
16
|
+
as?: any
|
|
17
|
+
class?: any
|
|
18
|
+
b24ui?: Partial<typeof sidebarHeading.slots>
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface SidebarHeadingSlots {
|
|
22
|
+
default(props?: {}): any
|
|
23
|
+
}
|
|
7
24
|
</script>
|
|
8
25
|
|
|
9
|
-
<script setup>
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
},
|
|
20
|
-
b24ui: {
|
|
21
|
-
type: Object,
|
|
22
|
-
required: false
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
defineSlots();
|
|
26
|
-
const b24ui = sidebarHeading();
|
|
26
|
+
<script setup lang="ts">
|
|
27
|
+
import { Primitive } from 'reka-ui'
|
|
28
|
+
|
|
29
|
+
const props = withDefaults(defineProps<SidebarHeadingProps>(), {
|
|
30
|
+
as: 'h6'
|
|
31
|
+
})
|
|
32
|
+
defineSlots<SidebarHeadingSlots>()
|
|
33
|
+
|
|
34
|
+
// eslint-disable-next-line vue/no-dupe-keys
|
|
35
|
+
const b24ui = sidebarHeading()
|
|
27
36
|
</script>
|
|
28
37
|
|
|
29
38
|
<template>
|
|
@@ -1,57 +1,87 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { AppConfig } from '@nuxt/schema'
|
|
3
|
+
import _appConfig from '#build/app.config'
|
|
4
|
+
import theme from '#build/b24ui/sidebar-layout'
|
|
5
|
+
import { tv } from '../utils/tv'
|
|
6
|
+
import { useRoute } from 'vue-router'
|
|
7
|
+
|
|
8
|
+
const appConfigSidebarLayout = _appConfig as AppConfig & { b24ui: { sidebarLayout: Partial<typeof theme> } }
|
|
9
|
+
|
|
10
|
+
const sidebarLayout = tv({ extend: tv(theme), ...(appConfigSidebarLayout.b24ui?.sidebarLayout || {}) })
|
|
11
|
+
|
|
12
|
+
export interface SidebarLayoutProps {
|
|
13
|
+
/**
|
|
14
|
+
* The element or component this component should render as.
|
|
15
|
+
* @defaultValue 'div'
|
|
16
|
+
*/
|
|
17
|
+
as?: any
|
|
18
|
+
useLightContent?: boolean
|
|
19
|
+
class?: any
|
|
20
|
+
b24ui?: Partial<typeof sidebarLayout.slots>
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface SidebarLayoutSlots {
|
|
24
|
+
/**
|
|
25
|
+
* Menu for all screen sizes.
|
|
26
|
+
* @param props
|
|
27
|
+
* @param props.handleClick - Handler for navigation click events
|
|
28
|
+
*/
|
|
29
|
+
sidebar(props: { handleClick: () => void }): any
|
|
30
|
+
/**
|
|
31
|
+
* Menu for mobile screen sizes.
|
|
32
|
+
*/
|
|
33
|
+
navbar(props?: {}): any
|
|
34
|
+
/**
|
|
35
|
+
* The page content.
|
|
36
|
+
*/
|
|
37
|
+
default(props?: {}): any
|
|
38
|
+
}
|
|
7
39
|
</script>
|
|
8
40
|
|
|
9
|
-
<script setup>
|
|
10
|
-
import { ref, computed, watch, onUnmounted } from
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
const slots = defineSlots();
|
|
32
|
-
const route = useRoute();
|
|
33
|
-
const isUseSideBar = computed(() => !!slots.sidebar);
|
|
34
|
-
const openSidebarSlideover = ref(false);
|
|
41
|
+
<script setup lang="ts">
|
|
42
|
+
import { ref, computed, watch, onUnmounted } from 'vue'
|
|
43
|
+
import { Primitive } from 'reka-ui'
|
|
44
|
+
import B24Slideover from './Slideover.vue'
|
|
45
|
+
import B24Sidebar from './Sidebar.vue'
|
|
46
|
+
import B24ModalDialogClose from './ModalDialogClose.vue'
|
|
47
|
+
import B24Navbar from './Navbar.vue'
|
|
48
|
+
import MenuIcon from '@bitrix24/b24icons-vue/main/MenuIcon'
|
|
49
|
+
import Cross50Icon from '@bitrix24/b24icons-vue/actions/Cross50Icon'
|
|
50
|
+
|
|
51
|
+
const props = withDefaults(defineProps<SidebarLayoutProps>(), {
|
|
52
|
+
as: 'div',
|
|
53
|
+
useLightContent: true
|
|
54
|
+
})
|
|
55
|
+
const slots = defineSlots<SidebarLayoutSlots>()
|
|
56
|
+
|
|
57
|
+
const route = useRoute()
|
|
58
|
+
const isUseSideBar = computed(() => !!slots.sidebar)
|
|
59
|
+
const openSidebarSlideover = ref(false)
|
|
60
|
+
|
|
35
61
|
const b24ui = computed(() => sidebarLayout({
|
|
36
62
|
useSidebar: isUseSideBar.value,
|
|
37
63
|
useLightContent: Boolean(props.useLightContent)
|
|
38
|
-
}))
|
|
64
|
+
}))
|
|
65
|
+
|
|
39
66
|
const closeModal = () => {
|
|
40
67
|
if (openSidebarSlideover.value) {
|
|
41
|
-
openSidebarSlideover.value = false
|
|
68
|
+
openSidebarSlideover.value = false
|
|
42
69
|
}
|
|
43
|
-
}
|
|
70
|
+
}
|
|
71
|
+
|
|
44
72
|
const stopWatcher = watch(
|
|
45
73
|
() => route.path,
|
|
46
74
|
() => closeModal(),
|
|
47
75
|
{ immediate: true }
|
|
48
|
-
)
|
|
76
|
+
)
|
|
77
|
+
|
|
49
78
|
onUnmounted(() => {
|
|
50
|
-
stopWatcher()
|
|
51
|
-
})
|
|
79
|
+
stopWatcher()
|
|
80
|
+
})
|
|
81
|
+
|
|
52
82
|
const handleNavigationClick = () => {
|
|
53
|
-
closeModal()
|
|
54
|
-
}
|
|
83
|
+
closeModal()
|
|
84
|
+
}
|
|
55
85
|
</script>
|
|
56
86
|
|
|
57
87
|
<template>
|
|
@@ -1,29 +1,38 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { AppConfig } from '@nuxt/schema'
|
|
3
|
+
import _appConfig from '#build/app.config'
|
|
4
|
+
import theme from '#build/b24ui/sidebar-section'
|
|
5
|
+
import { tv } from '../utils/tv'
|
|
6
|
+
|
|
7
|
+
const appConfigSidebarSection = _appConfig as AppConfig & { b24ui: { sidebarSection: Partial<typeof theme> } }
|
|
8
|
+
|
|
9
|
+
const sidebarSection = tv({ extend: tv(theme), ...(appConfigSidebarSection.b24ui?.sidebarSection || {}) })
|
|
10
|
+
|
|
11
|
+
export interface SidebarSectionProps {
|
|
12
|
+
/**
|
|
13
|
+
* The element or component this component should render as.
|
|
14
|
+
* @defaultValue 'div'
|
|
15
|
+
*/
|
|
16
|
+
as?: any
|
|
17
|
+
class?: any
|
|
18
|
+
b24ui?: Partial<typeof sidebarSection.slots>
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface SidebarSectionSlots {
|
|
22
|
+
default(props?: {}): any
|
|
23
|
+
}
|
|
7
24
|
</script>
|
|
8
25
|
|
|
9
|
-
<script setup>
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
},
|
|
20
|
-
b24ui: {
|
|
21
|
-
type: Object,
|
|
22
|
-
required: false
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
defineSlots();
|
|
26
|
-
const b24ui = sidebarSection();
|
|
26
|
+
<script setup lang="ts">
|
|
27
|
+
import { Primitive } from 'reka-ui'
|
|
28
|
+
|
|
29
|
+
const props = withDefaults(defineProps<SidebarSectionProps>(), {
|
|
30
|
+
as: 'div'
|
|
31
|
+
})
|
|
32
|
+
defineSlots<SidebarSectionSlots>()
|
|
33
|
+
|
|
34
|
+
// eslint-disable-next-line vue/no-dupe-keys
|
|
35
|
+
const b24ui = sidebarSection()
|
|
27
36
|
</script>
|
|
28
37
|
|
|
29
38
|
<template>
|