@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.
Files changed (190) hide show
  1. package/dist/meta.cjs +72112 -0
  2. package/dist/meta.d.cts +72110 -0
  3. package/dist/meta.d.mts +5060 -5060
  4. package/dist/meta.d.ts +72110 -0
  5. package/dist/meta.mjs +5060 -5060
  6. package/dist/module.cjs +63 -0
  7. package/dist/module.d.cts +15 -0
  8. package/dist/module.d.ts +15 -0
  9. package/dist/module.json +3 -3
  10. package/dist/module.mjs +1 -1
  11. package/dist/runtime/components/Advice.vue +54 -47
  12. package/dist/runtime/components/Alert.vue +96 -71
  13. package/dist/runtime/components/App.vue +34 -37
  14. package/dist/runtime/components/Avatar.vue +81 -69
  15. package/dist/runtime/components/AvatarGroup.vue +76 -53
  16. package/dist/runtime/components/Badge.vue +83 -83
  17. package/dist/runtime/components/Button.vue +157 -220
  18. package/dist/runtime/components/ButtonGroup.vue +51 -35
  19. package/dist/runtime/components/Calendar.vue +152 -186
  20. package/dist/runtime/components/Checkbox.vue +73 -84
  21. package/dist/runtime/components/Chip.vue +74 -59
  22. package/dist/runtime/components/Collapsible.vue +41 -44
  23. package/dist/runtime/components/Container.vue +27 -18
  24. package/dist/runtime/components/Countdown.vue +378 -198
  25. package/dist/runtime/components/DescriptionList.vue +149 -102
  26. package/dist/runtime/components/DropdownMenu.vue +139 -83
  27. package/dist/runtime/components/DropdownMenuContent.vue +84 -137
  28. package/dist/runtime/components/Form.vue +216 -162
  29. package/dist/runtime/components/FormField.vue +80 -76
  30. package/dist/runtime/components/Input.vue +179 -160
  31. package/dist/runtime/components/InputMenu.vue +380 -300
  32. package/dist/runtime/components/InputNumber.vue +175 -178
  33. package/dist/runtime/components/Kbd.vue +45 -33
  34. package/dist/runtime/components/Link.vue +173 -179
  35. package/dist/runtime/components/LinkBase.vue +42 -64
  36. package/dist/runtime/components/Modal.vue +127 -105
  37. package/dist/runtime/components/ModalDialogClose.vue +8 -4
  38. package/dist/runtime/components/Navbar.vue +33 -24
  39. package/dist/runtime/components/NavbarDivider.vue +33 -24
  40. package/dist/runtime/components/NavbarSection.vue +33 -24
  41. package/dist/runtime/components/NavbarSpacer.vue +33 -24
  42. package/dist/runtime/components/NavigationMenu.vue +210 -144
  43. package/dist/runtime/components/OverlayProvider.vue +17 -13
  44. package/dist/runtime/components/Popover.vue +81 -81
  45. package/dist/runtime/components/Progress.vue +136 -109
  46. package/dist/runtime/components/RadioGroup.vue +134 -120
  47. package/dist/runtime/components/Range.vue +85 -94
  48. package/dist/runtime/components/Select.vue +260 -212
  49. package/dist/runtime/components/SelectMenu.vue +365 -272
  50. package/dist/runtime/components/Separator.vue +71 -61
  51. package/dist/runtime/components/Sidebar.vue +33 -24
  52. package/dist/runtime/components/SidebarBody.vue +38 -30
  53. package/dist/runtime/components/SidebarFooter.vue +33 -24
  54. package/dist/runtime/components/SidebarHeader.vue +33 -24
  55. package/dist/runtime/components/SidebarHeading.vue +33 -24
  56. package/dist/runtime/components/SidebarLayout.vue +70 -40
  57. package/dist/runtime/components/SidebarSection.vue +33 -24
  58. package/dist/runtime/components/SidebarSpacer.vue +33 -24
  59. package/dist/runtime/components/Skeleton.vue +22 -17
  60. package/dist/runtime/components/Slideover.vue +131 -108
  61. package/dist/runtime/components/StackedLayout.vue +73 -40
  62. package/dist/runtime/components/Switch.vue +95 -100
  63. package/dist/runtime/components/Tabs.vue +107 -81
  64. package/dist/runtime/components/Textarea.vue +201 -177
  65. package/dist/runtime/components/Toast.vue +105 -94
  66. package/dist/runtime/components/Toaster.vue +116 -94
  67. package/dist/runtime/components/Tooltip.vue +64 -78
  68. package/dist/runtime/components/content/TableWrapper.vue +70 -58
  69. package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
  70. package/dist/runtime/composables/useButtonGroup.d.ts +2 -2
  71. package/dist/runtime/composables/useComponentIcons.d.ts +3 -3
  72. package/dist/runtime/composables/useFormField.d.ts +1 -1
  73. package/dist/runtime/prose/A.vue +23 -18
  74. package/dist/runtime/prose/Blockquote.vue +23 -18
  75. package/dist/runtime/prose/Code.vue +31 -23
  76. package/dist/runtime/prose/Em.vue +23 -18
  77. package/dist/runtime/prose/H1.vue +23 -18
  78. package/dist/runtime/prose/H2.vue +23 -18
  79. package/dist/runtime/prose/H3.vue +23 -18
  80. package/dist/runtime/prose/H4.vue +23 -18
  81. package/dist/runtime/prose/H5.vue +23 -18
  82. package/dist/runtime/prose/H6.vue +23 -18
  83. package/dist/runtime/prose/Hr.vue +19 -18
  84. package/dist/runtime/prose/Img.vue +23 -18
  85. package/dist/runtime/prose/Li.vue +23 -18
  86. package/dist/runtime/prose/Ol.vue +23 -18
  87. package/dist/runtime/prose/P.vue +23 -18
  88. package/dist/runtime/prose/Pre.vue +33 -28
  89. package/dist/runtime/prose/Strong.vue +23 -18
  90. package/dist/runtime/prose/Table.vue +54 -44
  91. package/dist/runtime/prose/Tbody.vue +23 -18
  92. package/dist/runtime/prose/Td.vue +23 -18
  93. package/dist/runtime/prose/Th.vue +23 -18
  94. package/dist/runtime/prose/Thead.vue +23 -18
  95. package/dist/runtime/prose/Tr.vue +23 -18
  96. package/dist/runtime/prose/Ul.vue +23 -18
  97. package/dist/runtime/vue/components/Link.vue +202 -201
  98. package/dist/shared/b24ui-nuxt.DrKwIWoc.cjs +7721 -0
  99. package/dist/types.d.mts +5 -3
  100. package/dist/types.d.ts +7 -0
  101. package/dist/unplugin.cjs +236 -0
  102. package/dist/unplugin.d.cts +33 -0
  103. package/dist/unplugin.d.ts +33 -0
  104. package/dist/vite.cjs +21 -0
  105. package/dist/vite.d.cts +14 -0
  106. package/dist/vite.d.ts +14 -0
  107. package/package.json +25 -13
  108. package/dist/runtime/components/Advice.vue.d.ts +0 -170
  109. package/dist/runtime/components/Alert.vue.d.ts +0 -464
  110. package/dist/runtime/components/App.vue.d.ts +0 -23
  111. package/dist/runtime/components/Avatar.vue.d.ts +0 -281
  112. package/dist/runtime/components/AvatarGroup.vue.d.ts +0 -204
  113. package/dist/runtime/components/Badge.vue.d.ts +0 -517
  114. package/dist/runtime/components/Button.vue.d.ts +0 -640
  115. package/dist/runtime/components/ButtonGroup.vue.d.ts +0 -116
  116. package/dist/runtime/components/Calendar.vue.d.ts +0 -437
  117. package/dist/runtime/components/Checkbox.vue.d.ts +0 -354
  118. package/dist/runtime/components/Chip.vue.d.ts +0 -271
  119. package/dist/runtime/components/Collapsible.vue.d.ts +0 -118
  120. package/dist/runtime/components/Container.vue.d.ts +0 -27
  121. package/dist/runtime/components/Countdown.vue.d.ts +0 -356
  122. package/dist/runtime/components/DescriptionList.vue.d.ts +0 -379
  123. package/dist/runtime/components/DropdownMenu.vue.d.ts +0 -533
  124. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +0 -228
  125. package/dist/runtime/components/Form.vue.d.ts +0 -55
  126. package/dist/runtime/components/FormField.vue.d.ts +0 -282
  127. package/dist/runtime/components/Input.vue.d.ts +0 -755
  128. package/dist/runtime/components/InputMenu.vue.d.ts +0 -1504
  129. package/dist/runtime/components/InputNumber.vue.d.ts +0 -658
  130. package/dist/runtime/components/Kbd.vue.d.ts +0 -109
  131. package/dist/runtime/components/Link.vue.d.ts +0 -129
  132. package/dist/runtime/components/LinkBase.vue.d.ts +0 -48
  133. package/dist/runtime/components/Modal.vue.d.ts +0 -327
  134. package/dist/runtime/components/ModalDialogClose.vue.d.ts +0 -10
  135. package/dist/runtime/components/Navbar.vue.d.ts +0 -101
  136. package/dist/runtime/components/NavbarDivider.vue.d.ts +0 -101
  137. package/dist/runtime/components/NavbarSection.vue.d.ts +0 -101
  138. package/dist/runtime/components/NavbarSpacer.vue.d.ts +0 -101
  139. package/dist/runtime/components/NavigationMenu.vue.d.ts +0 -824
  140. package/dist/runtime/components/OverlayProvider.vue.d.ts +0 -2
  141. package/dist/runtime/components/Popover.vue.d.ts +0 -147
  142. package/dist/runtime/components/Progress.vue.d.ts +0 -592
  143. package/dist/runtime/components/RadioGroup.vue.d.ts +0 -723
  144. package/dist/runtime/components/Range.vue.d.ts +0 -417
  145. package/dist/runtime/components/Select.vue.d.ts +0 -1200
  146. package/dist/runtime/components/SelectMenu.vue.d.ts +0 -1298
  147. package/dist/runtime/components/Separator.vue.d.ts +0 -400
  148. package/dist/runtime/components/Sidebar.vue.d.ts +0 -101
  149. package/dist/runtime/components/SidebarBody.vue.d.ts +0 -90
  150. package/dist/runtime/components/SidebarFooter.vue.d.ts +0 -101
  151. package/dist/runtime/components/SidebarHeader.vue.d.ts +0 -101
  152. package/dist/runtime/components/SidebarHeading.vue.d.ts +0 -101
  153. package/dist/runtime/components/SidebarLayout.vue.d.ts +0 -222
  154. package/dist/runtime/components/SidebarSection.vue.d.ts +0 -101
  155. package/dist/runtime/components/SidebarSpacer.vue.d.ts +0 -101
  156. package/dist/runtime/components/Skeleton.vue.d.ts +0 -26
  157. package/dist/runtime/components/Slideover.vue.d.ts +0 -360
  158. package/dist/runtime/components/StackedLayout.vue.d.ts +0 -192
  159. package/dist/runtime/components/Switch.vue.d.ts +0 -587
  160. package/dist/runtime/components/Tabs.vue.d.ts +0 -453
  161. package/dist/runtime/components/Textarea.vue.d.ts +0 -601
  162. package/dist/runtime/components/Toast.vue.d.ts +0 -438
  163. package/dist/runtime/components/Toaster.vue.d.ts +0 -219
  164. package/dist/runtime/components/Tooltip.vue.d.ts +0 -186
  165. package/dist/runtime/components/content/TableWrapper.vue.d.ts +0 -237
  166. package/dist/runtime/prose/A.vue.d.ts +0 -84
  167. package/dist/runtime/prose/Blockquote.vue.d.ts +0 -84
  168. package/dist/runtime/prose/Code.vue.d.ts +0 -97
  169. package/dist/runtime/prose/Em.vue.d.ts +0 -84
  170. package/dist/runtime/prose/H1.vue.d.ts +0 -97
  171. package/dist/runtime/prose/H2.vue.d.ts +0 -123
  172. package/dist/runtime/prose/H3.vue.d.ts +0 -123
  173. package/dist/runtime/prose/H4.vue.d.ts +0 -123
  174. package/dist/runtime/prose/H5.vue.d.ts +0 -123
  175. package/dist/runtime/prose/H6.vue.d.ts +0 -123
  176. package/dist/runtime/prose/Hr.vue.d.ts +0 -74
  177. package/dist/runtime/prose/Img.vue.d.ts +0 -77
  178. package/dist/runtime/prose/Li.vue.d.ts +0 -84
  179. package/dist/runtime/prose/Ol.vue.d.ts +0 -84
  180. package/dist/runtime/prose/P.vue.d.ts +0 -84
  181. package/dist/runtime/prose/Pre.vue.d.ts +0 -117
  182. package/dist/runtime/prose/Strong.vue.d.ts +0 -84
  183. package/dist/runtime/prose/Table.vue.d.ts +0 -144
  184. package/dist/runtime/prose/Tbody.vue.d.ts +0 -84
  185. package/dist/runtime/prose/Td.vue.d.ts +0 -84
  186. package/dist/runtime/prose/Th.vue.d.ts +0 -84
  187. package/dist/runtime/prose/Thead.vue.d.ts +0 -84
  188. package/dist/runtime/prose/Tr.vue.d.ts +0 -84
  189. package/dist/runtime/prose/Ul.vue.d.ts +0 -84
  190. package/dist/runtime/vue/components/Link.vue.d.ts +0 -129
@@ -1,70 +1,80 @@
1
- <script>
2
- import _appConfig from "#build/app.config";
3
- import theme from "#build/b24ui/separator";
4
- import { tv } from "../utils/tv";
5
- const appConfigSeparator = _appConfig;
6
- const separator = tv({ extend: tv(theme), ...appConfigSeparator.b24ui?.separator || {} });
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 "vue";
11
- import { useForwardProps } from "reka-ui";
12
- import { reactivePick } from "@vueuse/core";
13
- const props = defineProps({
14
- as: {
15
- type: null,
16
- required: false
17
- },
18
- label: {
19
- type: String,
20
- required: false
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 _appConfig from "#build/app.config";
3
- import theme from "#build/b24ui/sidebar";
4
- import { tv } from "../utils/tv";
5
- const appConfigSidebar = _appConfig;
6
- const sidebar = tv({ extend: tv(theme), ...appConfigSidebar.b24ui?.sidebar || {} });
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
- const props = defineProps({
11
- as: {
12
- type: null,
13
- required: false,
14
- default: "div"
15
- },
16
- class: {
17
- type: null,
18
- required: false
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 _appConfig from "#build/app.config";
3
- import theme from "#build/b24ui/sidebar-body";
4
- import { tv } from "../utils/tv";
5
- const appConfigSidebarBody = _appConfig;
6
- const sidebarBody = tv({ extend: tv(theme), ...appConfigSidebarBody.b24ui?.sidebarBody || {} });
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 "vue";
11
- const props = defineProps({
12
- as: {
13
- type: null,
14
- required: false,
15
- default: "div"
16
- },
17
- scrollbarThin: {
18
- type: Boolean,
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 _appConfig from "#build/app.config";
3
- import theme from "#build/b24ui/sidebar-footer";
4
- import { tv } from "../utils/tv";
5
- const appConfigSidebarFooter = _appConfig;
6
- const sidebarFooter = tv({ extend: tv(theme), ...appConfigSidebarFooter.b24ui?.sidebarFooter || {} });
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
- const props = defineProps({
11
- as: {
12
- type: null,
13
- required: false,
14
- default: "div"
15
- },
16
- class: {
17
- type: null,
18
- required: false
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 _appConfig from "#build/app.config";
3
- import theme from "#build/b24ui/sidebar-header";
4
- import { tv } from "../utils/tv";
5
- const appConfigSidebarHeader = _appConfig;
6
- const sidebarHeader = tv({ extend: tv(theme), ...appConfigSidebarHeader.b24ui?.sidebarHeader || {} });
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
- const props = defineProps({
11
- as: {
12
- type: null,
13
- required: false,
14
- default: "div"
15
- },
16
- class: {
17
- type: null,
18
- required: false
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 _appConfig from "#build/app.config";
3
- import theme from "#build/b24ui/sidebar-heading";
4
- import { tv } from "../utils/tv";
5
- const appConfigSidebarHeading = _appConfig;
6
- const sidebarHeading = tv({ extend: tv(theme), ...appConfigSidebarHeading.b24ui?.sidebarHeading || {} });
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
- const props = defineProps({
11
- as: {
12
- type: null,
13
- required: false,
14
- default: "h6"
15
- },
16
- class: {
17
- type: null,
18
- required: false
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 _appConfig from "#build/app.config";
3
- import theme from "#build/b24ui/sidebar-layout";
4
- import { tv } from "../utils/tv";
5
- const appConfigSidebarLayout = _appConfig;
6
- const sidebarLayout = tv({ extend: tv(theme), ...appConfigSidebarLayout.b24ui?.sidebarLayout || {} });
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 "vue";
11
- const props = defineProps({
12
- as: {
13
- type: null,
14
- required: false,
15
- default: "div"
16
- },
17
- useLightContent: {
18
- type: Boolean,
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
- 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 _appConfig from "#build/app.config";
3
- import theme from "#build/b24ui/sidebar-section";
4
- import { tv } from "../utils/tv";
5
- const appConfigSidebarSection = _appConfig;
6
- const sidebarSection = tv({ extend: tv(theme), ...appConfigSidebarSection.b24ui?.sidebarSection || {} });
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
- const props = defineProps({
11
- as: {
12
- type: null,
13
- required: false,
14
- default: "div"
15
- },
16
- class: {
17
- type: null,
18
- required: false
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>