@bitrix24/b24ui-nuxt 0.5.11 → 0.6.1

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 (252) hide show
  1. package/.nuxt/b24ui/advice.ts +10 -2
  2. package/.nuxt/b24ui/alert.ts +10 -2
  3. package/.nuxt/b24ui/avatar-group.ts +10 -2
  4. package/.nuxt/b24ui/avatar.ts +10 -2
  5. package/.nuxt/b24ui/badge.ts +10 -2
  6. package/.nuxt/b24ui/button-group.ts +10 -2
  7. package/.nuxt/b24ui/button.ts +16 -6
  8. package/.nuxt/b24ui/calendar.ts +10 -2
  9. package/.nuxt/b24ui/checkbox.ts +10 -2
  10. package/.nuxt/b24ui/chip.ts +10 -2
  11. package/.nuxt/b24ui/collapsible.ts +10 -2
  12. package/.nuxt/b24ui/container.ts +10 -2
  13. package/.nuxt/b24ui/countdown.ts +10 -2
  14. package/.nuxt/b24ui/description-list.ts +10 -2
  15. package/.nuxt/b24ui/dropdown-menu.ts +10 -2
  16. package/.nuxt/b24ui/form-field.ts +10 -2
  17. package/.nuxt/b24ui/form.ts +10 -2
  18. package/.nuxt/b24ui/input-menu.ts +12 -4
  19. package/.nuxt/b24ui/input-number.ts +10 -2
  20. package/.nuxt/b24ui/input.ts +10 -2
  21. package/.nuxt/b24ui/kbd.ts +10 -2
  22. package/.nuxt/b24ui/link.ts +10 -2
  23. package/.nuxt/b24ui/modal.ts +10 -2
  24. package/.nuxt/b24ui/navbar-divider.ts +10 -2
  25. package/.nuxt/b24ui/navbar-section.ts +10 -2
  26. package/.nuxt/b24ui/navbar-spacer.ts +10 -2
  27. package/.nuxt/b24ui/navbar.ts +10 -2
  28. package/.nuxt/b24ui/navigation-menu.ts +10 -2
  29. package/.nuxt/b24ui/popover.ts +10 -2
  30. package/.nuxt/b24ui/progress.ts +10 -2
  31. package/.nuxt/b24ui/radio-group.ts +10 -2
  32. package/.nuxt/b24ui/range.ts +10 -2
  33. package/.nuxt/b24ui/select-menu.ts +14 -6
  34. package/.nuxt/b24ui/select.ts +12 -4
  35. package/.nuxt/b24ui/separator.ts +10 -2
  36. package/.nuxt/b24ui/sidebar-body.ts +10 -2
  37. package/.nuxt/b24ui/sidebar-footer.ts +10 -2
  38. package/.nuxt/b24ui/sidebar-header.ts +10 -2
  39. package/.nuxt/b24ui/sidebar-heading.ts +10 -2
  40. package/.nuxt/b24ui/sidebar-layout.ts +10 -2
  41. package/.nuxt/b24ui/sidebar-section.ts +10 -2
  42. package/.nuxt/b24ui/sidebar-spacer.ts +10 -2
  43. package/.nuxt/b24ui/sidebar.ts +10 -2
  44. package/.nuxt/b24ui/skeleton.ts +10 -2
  45. package/.nuxt/b24ui/slideover.ts +10 -2
  46. package/.nuxt/b24ui/stacked-layout.ts +10 -2
  47. package/.nuxt/b24ui/switch.ts +10 -2
  48. package/.nuxt/b24ui/tabs.ts +10 -2
  49. package/.nuxt/b24ui/textarea.ts +10 -2
  50. package/.nuxt/b24ui/toast.ts +10 -2
  51. package/.nuxt/b24ui/toaster.ts +10 -2
  52. package/.nuxt/b24ui/tooltip.ts +10 -2
  53. package/cli/templates.mjs +19 -15
  54. package/dist/meta.d.mts +5675 -7513
  55. package/dist/meta.mjs +5675 -7513
  56. package/dist/module.json +3 -3
  57. package/dist/module.mjs +2 -2
  58. package/dist/runtime/components/Advice.vue +27 -55
  59. package/dist/runtime/components/Advice.vue.d.ts +56 -0
  60. package/dist/runtime/components/Alert.vue +35 -97
  61. package/dist/runtime/components/Alert.vue.d.ts +97 -0
  62. package/dist/runtime/components/App.vue +24 -34
  63. package/dist/runtime/components/App.vue.d.ts +23 -0
  64. package/dist/runtime/components/Avatar.vue +43 -82
  65. package/dist/runtime/components/Avatar.vue.d.ts +62 -0
  66. package/dist/runtime/components/AvatarGroup.vue +40 -77
  67. package/dist/runtime/components/AvatarGroup.vue.d.ts +40 -0
  68. package/dist/runtime/components/Badge.vue +40 -84
  69. package/dist/runtime/components/Badge.vue.d.ts +78 -0
  70. package/dist/runtime/components/Button.vue +107 -164
  71. package/dist/runtime/components/Button.vue.d.ts +115 -0
  72. package/dist/runtime/components/ButtonGroup.vue +25 -52
  73. package/dist/runtime/components/ButtonGroup.vue.d.ts +63 -0
  74. package/dist/runtime/components/Calendar.vue +73 -153
  75. package/dist/runtime/components/Calendar.vue.d.ts +107 -0
  76. package/dist/runtime/components/Checkbox.vue +42 -74
  77. package/dist/runtime/components/Checkbox.vue.d.ts +55 -0
  78. package/dist/runtime/components/Chip.vue +26 -75
  79. package/dist/runtime/components/Chip.vue.d.ts +77 -0
  80. package/dist/runtime/components/Collapsible.vue +22 -41
  81. package/dist/runtime/components/Collapsible.vue.d.ts +50 -0
  82. package/dist/runtime/components/Container.vue +15 -28
  83. package/dist/runtime/components/Container.vue.d.ts +27 -0
  84. package/dist/runtime/components/Countdown.vue +153 -379
  85. package/dist/runtime/components/Countdown.vue.d.ts +122 -0
  86. package/dist/runtime/components/DescriptionList.vue +78 -150
  87. package/dist/runtime/components/DescriptionList.vue.d.ts +109 -0
  88. package/dist/runtime/components/DropdownMenu.vue +38 -140
  89. package/dist/runtime/components/DropdownMenu.vue.d.ts +133 -0
  90. package/dist/runtime/components/DropdownMenuContent.vue +65 -79
  91. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +51 -0
  92. package/dist/runtime/components/Form.vue +132 -218
  93. package/dist/runtime/components/Form.vue.d.ts +55 -0
  94. package/dist/runtime/components/FormField.vue +36 -81
  95. package/dist/runtime/components/FormField.vue.d.ts +73 -0
  96. package/dist/runtime/components/Input.vue +79 -180
  97. package/dist/runtime/components/Input.vue.d.ts +135 -0
  98. package/dist/runtime/components/InputMenu.vue +185 -382
  99. package/dist/runtime/components/InputMenu.vue.d.ts +357 -0
  100. package/dist/runtime/components/InputNumber.vue +77 -176
  101. package/dist/runtime/components/InputNumber.vue.d.ts +238 -0
  102. package/dist/runtime/components/Kbd.vue +20 -46
  103. package/dist/runtime/components/Kbd.vue.d.ts +55 -0
  104. package/dist/runtime/components/Link.vue +99 -179
  105. package/dist/runtime/components/Link.vue.d.ts +129 -0
  106. package/dist/runtime/components/LinkBase.vue +33 -42
  107. package/dist/runtime/components/LinkBase.vue.d.ts +48 -0
  108. package/dist/runtime/components/Modal.vue +48 -128
  109. package/dist/runtime/components/Modal.vue.d.ts +124 -0
  110. package/dist/runtime/components/ModalDialogClose.vue +5 -8
  111. package/dist/runtime/components/ModalDialogClose.vue.d.ts +10 -0
  112. package/dist/runtime/components/Navbar.vue +15 -33
  113. package/dist/runtime/components/Navbar.vue.d.ts +46 -0
  114. package/dist/runtime/components/NavbarDivider.vue +15 -33
  115. package/dist/runtime/components/NavbarDivider.vue.d.ts +46 -0
  116. package/dist/runtime/components/NavbarSection.vue +15 -33
  117. package/dist/runtime/components/NavbarSection.vue.d.ts +46 -0
  118. package/dist/runtime/components/NavbarSpacer.vue +15 -33
  119. package/dist/runtime/components/NavbarSpacer.vue.d.ts +46 -0
  120. package/dist/runtime/components/NavigationMenu.vue +74 -209
  121. package/dist/runtime/components/NavigationMenu.vue.d.ts +159 -0
  122. package/dist/runtime/components/OverlayProvider.vue +14 -18
  123. package/dist/runtime/components/OverlayProvider.vue.d.ts +2 -0
  124. package/dist/runtime/components/Popover.vue +40 -82
  125. package/dist/runtime/components/Popover.vue.d.ts +79 -0
  126. package/dist/runtime/components/Progress.vue +70 -137
  127. package/dist/runtime/components/Progress.vue.d.ts +103 -0
  128. package/dist/runtime/components/RadioGroup.vue +59 -135
  129. package/dist/runtime/components/RadioGroup.vue.d.ts +88 -0
  130. package/dist/runtime/components/Range.vue +46 -86
  131. package/dist/runtime/components/Range.vue.d.ts +73 -0
  132. package/dist/runtime/components/Select.vue +110 -261
  133. package/dist/runtime/components/Select.vue.d.ts +170 -0
  134. package/dist/runtime/components/SelectMenu.vue +161 -348
  135. package/dist/runtime/components/SelectMenu.vue.d.ts +217 -0
  136. package/dist/runtime/components/Separator.vue +28 -72
  137. package/dist/runtime/components/Separator.vue.d.ts +77 -0
  138. package/dist/runtime/components/Sidebar.vue +15 -33
  139. package/dist/runtime/components/Sidebar.vue.d.ts +46 -0
  140. package/dist/runtime/components/SidebarBody.vue +17 -39
  141. package/dist/runtime/components/SidebarBody.vue.d.ts +53 -0
  142. package/dist/runtime/components/SidebarFooter.vue +15 -33
  143. package/dist/runtime/components/SidebarFooter.vue.d.ts +46 -0
  144. package/dist/runtime/components/SidebarHeader.vue +15 -33
  145. package/dist/runtime/components/SidebarHeader.vue.d.ts +46 -0
  146. package/dist/runtime/components/SidebarHeading.vue +15 -33
  147. package/dist/runtime/components/SidebarHeading.vue.d.ts +46 -0
  148. package/dist/runtime/components/SidebarLayout.vue +34 -71
  149. package/dist/runtime/components/SidebarLayout.vue.d.ts +65 -0
  150. package/dist/runtime/components/SidebarSection.vue +15 -33
  151. package/dist/runtime/components/SidebarSection.vue.d.ts +46 -0
  152. package/dist/runtime/components/SidebarSpacer.vue +15 -33
  153. package/dist/runtime/components/SidebarSpacer.vue.d.ts +46 -0
  154. package/dist/runtime/components/Skeleton.vue +14 -23
  155. package/dist/runtime/components/Skeleton.vue.d.ts +26 -0
  156. package/dist/runtime/components/Slideover.vue +50 -132
  157. package/dist/runtime/components/Slideover.vue.d.ts +127 -0
  158. package/dist/runtime/components/StackedLayout.vue +34 -74
  159. package/dist/runtime/components/StackedLayout.vue.d.ts +65 -0
  160. package/dist/runtime/components/Switch.vue +46 -96
  161. package/dist/runtime/components/Switch.vue.d.ts +77 -0
  162. package/dist/runtime/components/Tabs.vue +41 -106
  163. package/dist/runtime/components/Tabs.vue.d.ts +104 -0
  164. package/dist/runtime/components/Textarea.vue +92 -202
  165. package/dist/runtime/components/Textarea.vue.d.ts +141 -0
  166. package/dist/runtime/components/Toast.vue +47 -106
  167. package/dist/runtime/components/Toast.vue.d.ts +95 -0
  168. package/dist/runtime/components/Toaster.vue +70 -116
  169. package/dist/runtime/components/Toaster.vue.d.ts +70 -0
  170. package/dist/runtime/components/Tooltip.vue +36 -65
  171. package/dist/runtime/components/Tooltip.vue.d.ts +65 -0
  172. package/dist/runtime/components/content/TableWrapper.vue +24 -71
  173. package/dist/runtime/components/content/TableWrapper.vue.d.ts +83 -0
  174. package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
  175. package/dist/runtime/composables/useButtonGroup.d.ts +2 -2
  176. package/dist/runtime/composables/useComponentIcons.d.ts +3 -3
  177. package/dist/runtime/composables/useFormField.d.ts +2 -2
  178. package/dist/runtime/composables/useOverlay.d.ts +14 -7
  179. package/dist/runtime/composables/useOverlay.js +14 -6
  180. package/dist/runtime/prose/A.vue +16 -26
  181. package/dist/runtime/prose/A.vue.d.ts +27 -0
  182. package/dist/runtime/prose/Blockquote.vue +14 -26
  183. package/dist/runtime/prose/Blockquote.vue.d.ts +27 -0
  184. package/dist/runtime/prose/Code.vue +15 -32
  185. package/dist/runtime/prose/Code.vue.d.ts +31 -0
  186. package/dist/runtime/prose/Em.vue +16 -26
  187. package/dist/runtime/prose/Em.vue.d.ts +27 -0
  188. package/dist/runtime/prose/H1.vue +14 -26
  189. package/dist/runtime/prose/H1.vue.d.ts +27 -0
  190. package/dist/runtime/prose/H2.vue +14 -26
  191. package/dist/runtime/prose/H2.vue.d.ts +27 -0
  192. package/dist/runtime/prose/H3.vue +14 -26
  193. package/dist/runtime/prose/H3.vue.d.ts +27 -0
  194. package/dist/runtime/prose/H4.vue +14 -26
  195. package/dist/runtime/prose/H4.vue.d.ts +27 -0
  196. package/dist/runtime/prose/H5.vue +14 -26
  197. package/dist/runtime/prose/H5.vue.d.ts +27 -0
  198. package/dist/runtime/prose/H6.vue +14 -26
  199. package/dist/runtime/prose/H6.vue.d.ts +27 -0
  200. package/dist/runtime/prose/Hr.vue +13 -22
  201. package/dist/runtime/prose/Hr.vue.d.ts +19 -0
  202. package/dist/runtime/prose/Img.vue +13 -26
  203. package/dist/runtime/prose/Img.vue.d.ts +19 -0
  204. package/dist/runtime/prose/Li.vue +14 -26
  205. package/dist/runtime/prose/Li.vue.d.ts +27 -0
  206. package/dist/runtime/prose/Ol.vue +14 -26
  207. package/dist/runtime/prose/Ol.vue.d.ts +27 -0
  208. package/dist/runtime/prose/P.vue +14 -26
  209. package/dist/runtime/prose/P.vue.d.ts +27 -0
  210. package/dist/runtime/prose/Pre.vue +17 -33
  211. package/dist/runtime/prose/Pre.vue.d.ts +47 -0
  212. package/dist/runtime/prose/Strong.vue +14 -26
  213. package/dist/runtime/prose/Strong.vue.d.ts +27 -0
  214. package/dist/runtime/prose/Table.vue +21 -57
  215. package/dist/runtime/prose/Table.vue.d.ts +74 -0
  216. package/dist/runtime/prose/Tbody.vue +14 -26
  217. package/dist/runtime/prose/Tbody.vue.d.ts +27 -0
  218. package/dist/runtime/prose/Td.vue +14 -26
  219. package/dist/runtime/prose/Td.vue.d.ts +27 -0
  220. package/dist/runtime/prose/Th.vue +14 -26
  221. package/dist/runtime/prose/Th.vue.d.ts +27 -0
  222. package/dist/runtime/prose/Thead.vue +14 -26
  223. package/dist/runtime/prose/Thead.vue.d.ts +27 -0
  224. package/dist/runtime/prose/Tr.vue +14 -26
  225. package/dist/runtime/prose/Tr.vue.d.ts +27 -0
  226. package/dist/runtime/prose/Ul.vue +14 -26
  227. package/dist/runtime/prose/Ul.vue.d.ts +27 -0
  228. package/dist/runtime/types/form.d.ts +1 -0
  229. package/dist/runtime/types/utils.d.ts +42 -3
  230. package/dist/runtime/utils/link.d.ts +3 -3
  231. package/dist/runtime/utils/tv.js +2 -2
  232. package/dist/runtime/vue/components/Link.vue +122 -208
  233. package/dist/runtime/vue/components/Link.vue.d.ts +129 -0
  234. package/dist/shared/{b24ui-nuxt.CS9Lf0os.mjs → b24ui-nuxt.wBs9vEU5.mjs} +33 -8
  235. package/dist/types.d.mts +3 -5
  236. package/dist/unplugin.mjs +1 -1
  237. package/dist/vite.mjs +1 -1
  238. package/package.json +19 -27
  239. package/dist/meta.cjs +0 -72112
  240. package/dist/meta.d.cts +0 -72110
  241. package/dist/meta.d.ts +0 -72110
  242. package/dist/module.cjs +0 -63
  243. package/dist/module.d.cts +0 -15
  244. package/dist/module.d.ts +0 -15
  245. package/dist/shared/b24ui-nuxt.DrKwIWoc.cjs +0 -7721
  246. package/dist/types.d.ts +0 -7
  247. package/dist/unplugin.cjs +0 -236
  248. package/dist/unplugin.d.cts +0 -33
  249. package/dist/unplugin.d.ts +0 -33
  250. package/dist/vite.cjs +0 -21
  251. package/dist/vite.d.cts +0 -14
  252. package/dist/vite.d.ts +0 -14
@@ -0,0 +1,46 @@
1
+ import type { AppConfig } from '@nuxt/schema';
2
+ import theme from '#build/b24ui/sidebar-spacer';
3
+ import type { ComponentConfig } from '../types/utils';
4
+ type SidebarSpacer = ComponentConfig<typeof theme, AppConfig, 'sidebarSpacer'>;
5
+ export interface SidebarSpacerProps {
6
+ /**
7
+ * The element or component this component should render as.
8
+ * @defaultValue 'div'
9
+ */
10
+ as?: any;
11
+ class?: any;
12
+ b24ui?: SidebarSpacer['slots'];
13
+ }
14
+ export interface SidebarSpacerSlots {
15
+ default(props?: {}): any;
16
+ }
17
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<SidebarSpacerProps>, {
18
+ as: string;
19
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<SidebarSpacerProps>, {
20
+ as: string;
21
+ }>>> & Readonly<{}>, {
22
+ as: any;
23
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<SidebarSpacerSlots> & SidebarSpacerSlots>;
24
+ export default _default;
25
+ type __VLS_WithDefaults<P, D> = {
26
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
27
+ default: D[K];
28
+ }> : P[K];
29
+ };
30
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
31
+ type __VLS_TypePropsToOption<T> = {
32
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
33
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
34
+ } : {
35
+ type: import('vue').PropType<T[K]>;
36
+ required: true;
37
+ };
38
+ };
39
+ type __VLS_WithTemplateSlots<T, S> = T & {
40
+ new (): {
41
+ $slots: S;
42
+ };
43
+ };
44
+ type __VLS_PrettifyLocal<T> = {
45
+ [K in keyof T]: T[K];
46
+ } & {};
@@ -1,31 +1,22 @@
1
- <script lang="ts">
2
- import type { AppConfig } from '@nuxt/schema'
3
- import _appConfig from '#build/app.config'
4
- import theme from '#build/b24ui/skeleton'
5
- import { tv } from '../utils/tv'
6
-
7
- const appConfigSkeleton = _appConfig as AppConfig & { b24ui: { skeleton: Partial<typeof theme> } }
8
-
9
- const skeleton = tv({ extend: tv(theme), ...(appConfigSkeleton.b24ui?.skeleton || {}) })
10
-
11
- export interface SkeletonProps {
12
- /**
13
- * The element or component this component should render as.
14
- * @defaultValue 'div'
15
- */
16
- as?: any
17
- class?: any
18
- }
1
+ <script>
2
+ import theme from "#build/b24ui/skeleton";
19
3
  </script>
20
4
 
21
- <script setup lang="ts">
22
- import { Primitive } from 'reka-ui'
23
-
24
- const props = defineProps<SkeletonProps>()
5
+ <script setup>
6
+ import { computed } from "vue";
7
+ import { Primitive } from "reka-ui";
8
+ import { useAppConfig } from "#imports";
9
+ import { tv } from "../utils/tv";
10
+ const props = defineProps({
11
+ as: { type: null, required: false },
12
+ class: { type: null, required: false }
13
+ });
14
+ const appConfig = useAppConfig();
15
+ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.skeleton || {} }));
25
16
  </script>
26
17
 
27
18
  <template>
28
- <Primitive :as="as" :class="skeleton({ class: props.class })">
19
+ <Primitive :as="as" :class="b24ui({ class: props.class })">
29
20
  <slot />
30
21
  </Primitive>
31
22
  </template>
@@ -0,0 +1,26 @@
1
+ export interface SkeletonProps {
2
+ /**
3
+ * The element or component this component should render as.
4
+ * @defaultValue 'div'
5
+ */
6
+ as?: any;
7
+ class?: any;
8
+ }
9
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<SkeletonProps>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<SkeletonProps>>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
10
+ default?(_: {}): any;
11
+ }>;
12
+ export default _default;
13
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
14
+ type __VLS_TypePropsToOption<T> = {
15
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
16
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
17
+ } : {
18
+ type: import('vue').PropType<T[K]>;
19
+ required: true;
20
+ };
21
+ };
22
+ type __VLS_WithTemplateSlots<T, S> = T & {
23
+ new (): {
24
+ $slots: S;
25
+ };
26
+ };
@@ -1,142 +1,60 @@
1
- <script lang="ts">
2
- import type { VariantProps } from 'tailwind-variants'
3
- import type { DialogRootProps, DialogRootEmits, DialogContentProps, DialogContentEmits } from 'reka-ui'
4
- import type { AppConfig } from '@nuxt/schema'
5
- import _appConfig from '#build/app.config'
6
- import theme from '#build/b24ui/slideover'
7
- import { tv } from '../utils/tv'
8
- import type { ButtonProps, IconComponent } from '../types'
9
- import type { EmitsToProps } from '../types/utils'
10
-
11
- const appConfigSlideover = _appConfig as AppConfig & { b24ui: { slideover: Partial<typeof theme> } }
12
-
13
- const slideover = tv({ extend: tv(theme), ...(appConfigSlideover.b24ui?.slideover || {}) })
14
-
15
- type SlideoverVariants = VariantProps<typeof slideover>
16
-
17
- export interface SlideoverProps extends DialogRootProps {
18
- title?: string
19
- description?: string
20
- /**
21
- * The content of the slideover
22
- */
23
- content?: Omit<DialogContentProps, 'as' | 'asChild' | 'forceMount'> & Partial<EmitsToProps<DialogContentEmits>>
24
- /**
25
- * Render an overlay behind the slideover.
26
- * @defaultValue true
27
- */
28
- overlay?: boolean
29
- /**
30
- * Render an overlay blur behind the slideover.
31
- * `auto` use `motion-safe`.
32
- * @defaultValue 'auto'
33
- */
34
- overlayBlur?: SlideoverVariants['overlayBlur']
35
- /**
36
- * Animate the slideover when opening or closing.
37
- * @defaultValue true
38
- */
39
- transition?: boolean
40
- /**
41
- * The side of the slideover.
42
- * @defaultValue 'right'
43
- */
44
- side?: SlideoverVariants['side']
45
- /**
46
- * Render the slideover in a portal.
47
- * @defaultValue true
48
- */
49
- portal?: boolean
50
- /**
51
- * Display a close button to dismiss the slideover.
52
- * `{ color: 'primary' }`{lang="ts"} for `left`, `right`
53
- * `{ color: 'link' }`{lang="ts"} for `top`, `bottom`
54
- * @defaultValue true
55
- */
56
- close?: boolean | Partial<ButtonProps>
57
- /**
58
- * The icon displayed in the close button.
59
- * @defaultValue icons.close
60
- * @IconifyIcon
61
- */
62
- closeIcon?: IconComponent
63
- /**
64
- * When `false`, the slideover will not close when clicking outside or pressing escape.
65
- * @defaultValue false
66
- */
67
- dismissible?: boolean
68
- /**
69
- * @defaultValue true
70
- */
71
- scrollbarThin?: boolean
72
- class?: any
73
- b24ui?: Partial<typeof slideover.slots>
74
- }
75
-
76
- export interface SlideoverEmits extends DialogRootEmits {
77
- 'after:leave': []
78
- }
79
-
80
- export interface SlideoverSlots {
81
- default(props: { open: boolean }): any
82
- content(props?: {}): any
83
- header(props?: {}): any
84
- title(props?: {}): any
85
- description(props?: {}): any
86
- close(props: { b24ui: ReturnType<typeof slideover> }): any
87
- body(props?: {}): any
88
- footer(props?: {}): any
89
- }
1
+ <script>
2
+ import theme from "#build/b24ui/slideover";
90
3
  </script>
91
4
 
92
- <script setup lang="ts">
93
- import { computed, toRef } from 'vue'
94
- import { DialogRoot, DialogTrigger, DialogPortal, DialogOverlay, DialogContent, DialogTitle, DialogDescription, DialogClose, VisuallyHidden, useForwardPropsEmits } from 'reka-ui'
95
- import { reactivePick } from '@vueuse/core'
96
- import { useLocale } from '../composables/useLocale'
97
- import icons from '../dictionary/icons'
98
- import B24Button from './Button.vue'
99
-
100
- const props = withDefaults(defineProps<SlideoverProps>(), {
101
- close: true,
102
- portal: true,
103
- overlay: true,
104
- transition: true,
105
- modal: true,
106
- dismissible: true,
107
- side: 'right',
108
- scrollbarThin: true,
109
- overlayBlur: 'auto'
110
- })
111
- const emits = defineEmits<SlideoverEmits>()
112
- const slots = defineSlots<SlideoverSlots>()
113
-
114
- const { t } = useLocale()
115
-
116
- const rootProps = useForwardPropsEmits(reactivePick(props, 'open', 'defaultOpen', 'modal'), emits)
117
- const contentProps = toRef(() => props.content)
5
+ <script setup>
6
+ import { computed, toRef } from "vue";
7
+ import { DialogRoot, DialogTrigger, DialogPortal, DialogOverlay, DialogContent, DialogTitle, DialogDescription, DialogClose, VisuallyHidden, useForwardPropsEmits } from "reka-ui";
8
+ import { reactivePick } from "@vueuse/core";
9
+ import { useAppConfig } from "#imports";
10
+ import { useLocale } from "../composables/useLocale";
11
+ import { tv } from "../utils/tv";
12
+ import icons from "../dictionary/icons";
13
+ import B24Button from "./Button.vue";
14
+ const props = defineProps({
15
+ title: { type: String, required: false },
16
+ description: { type: String, required: false },
17
+ content: { type: Object, required: false },
18
+ overlay: { type: Boolean, required: false, default: true },
19
+ overlayBlur: { type: null, required: false, default: "auto" },
20
+ transition: { type: Boolean, required: false, default: true },
21
+ side: { type: null, required: false, default: "right" },
22
+ portal: { type: Boolean, required: false, default: true },
23
+ close: { type: [Boolean, Object], required: false, default: true },
24
+ closeIcon: { type: [Function, Object], required: false },
25
+ dismissible: { type: Boolean, required: false, default: true },
26
+ scrollbarThin: { type: Boolean, required: false, default: true },
27
+ class: { type: null, required: false },
28
+ b24ui: { type: null, required: false },
29
+ open: { type: Boolean, required: false },
30
+ defaultOpen: { type: Boolean, required: false },
31
+ modal: { type: Boolean, required: false, default: true }
32
+ });
33
+ const emits = defineEmits(["after:leave", "update:open"]);
34
+ const slots = defineSlots();
35
+ const { t } = useLocale();
36
+ const appConfig = useAppConfig();
37
+ const rootProps = useForwardPropsEmits(reactivePick(props, "open", "defaultOpen", "modal"), emits);
38
+ const contentProps = toRef(() => props.content);
118
39
  const contentEvents = computed(() => {
119
40
  const events = {
120
- closeAutoFocus: (e: Event) => e.preventDefault()
121
- }
122
-
41
+ closeAutoFocus: (e) => e.preventDefault()
42
+ };
123
43
  if (!props.dismissible) {
124
44
  return {
125
- pointerDownOutside: (e: Event) => e.preventDefault(),
126
- interactOutside: (e: Event) => e.preventDefault(),
127
- escapeKeyDown: (e: Event) => e.preventDefault(),
45
+ pointerDownOutside: (e) => e.preventDefault(),
46
+ interactOutside: (e) => e.preventDefault(),
47
+ escapeKeyDown: (e) => e.preventDefault(),
128
48
  ...events
129
- }
49
+ };
130
50
  }
131
-
132
- return events
133
- })
134
-
135
- const b24ui = computed(() => slideover({
51
+ return events;
52
+ });
53
+ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.slideover || {} })({
136
54
  transition: props.transition,
137
55
  side: props.side,
138
56
  overlayBlur: props.overlayBlur
139
- }))
57
+ }));
140
58
  </script>
141
59
 
142
60
  <template>
@@ -149,7 +67,7 @@ const b24ui = computed(() => slideover({
149
67
  <DialogOverlay v-if="overlay" :class="b24ui.overlay({ class: props.b24ui?.overlay })" />
150
68
 
151
69
  <DialogContent :data-side="side" :class="b24ui.content({ class: [!slots.default && props.class, props.b24ui?.content] })" v-bind="contentProps" @after-leave="emits('after:leave')" v-on="contentEvents">
152
- <VisuallyHidden v-if="!!slots.content && ((title || !!slots.title) || (description || !!slots.description))">
70
+ <VisuallyHidden v-if="!!slots.content && (title || !!slots.title || (description || !!slots.description))">
153
71
  <DialogTitle v-if="title || !!slots.title">
154
72
  <slot name="title">
155
73
  {{ title }}
@@ -190,9 +108,9 @@ const b24ui = computed(() => slideover({
190
108
  :color="['left', 'right'].includes(props?.side) ? 'primary' : 'link'"
191
109
  :aria-label="t('slideover.close')"
192
110
  :b24ui="{
193
- leadingIcon: ['left', 'right'].includes(props?.side) ? 'group-hover:rounded-full group-hover:border-1 group-hover:border-current' : ''
194
- }"
195
- v-bind="(typeof close === 'object' ? close as Partial<ButtonProps> : {})"
111
+ leadingIcon: ['left', 'right'].includes(props?.side) ? 'group-hover:rounded-full group-hover:border-1 group-hover:border-current' : ''
112
+ }"
113
+ v-bind="typeof close === 'object' ? close : {}"
196
114
  :class="b24ui.close({ class: props.b24ui?.close })"
197
115
  />
198
116
  </slot>
@@ -0,0 +1,127 @@
1
+ import type { DialogRootProps, DialogRootEmits, DialogContentProps, DialogContentEmits } from 'reka-ui';
2
+ import type { AppConfig } from '@nuxt/schema';
3
+ import theme from '#build/b24ui/slideover';
4
+ import type { ButtonProps, IconComponent } from '../types';
5
+ import type { EmitsToProps, ComponentConfig } from '../types/utils';
6
+ type Slideover = ComponentConfig<typeof theme, AppConfig, 'slideover'>;
7
+ export interface SlideoverProps extends DialogRootProps {
8
+ title?: string;
9
+ description?: string;
10
+ /**
11
+ * The content of the slideover
12
+ */
13
+ content?: Omit<DialogContentProps, 'as' | 'asChild' | 'forceMount'> & Partial<EmitsToProps<DialogContentEmits>>;
14
+ /**
15
+ * Render an overlay behind the slideover.
16
+ * @defaultValue true
17
+ */
18
+ overlay?: boolean;
19
+ /**
20
+ * Render an overlay blur behind the slideover.
21
+ * `auto` use `motion-safe`.
22
+ * @defaultValue 'auto'
23
+ */
24
+ overlayBlur?: Slideover['variants']['overlayBlur'];
25
+ /**
26
+ * Animate the slideover when opening or closing.
27
+ * @defaultValue true
28
+ */
29
+ transition?: boolean;
30
+ /**
31
+ * The side of the slideover.
32
+ * @defaultValue 'right'
33
+ */
34
+ side?: Slideover['variants']['side'];
35
+ /**
36
+ * Render the slideover in a portal.
37
+ * @defaultValue true
38
+ */
39
+ portal?: boolean;
40
+ /**
41
+ * Display a close button to dismiss the slideover.
42
+ * `{ color: 'primary' }`{lang="ts"} for `left`, `right`
43
+ * `{ color: 'link' }`{lang="ts"} for `top`, `bottom`
44
+ * @defaultValue true
45
+ */
46
+ close?: boolean | Partial<ButtonProps>;
47
+ /**
48
+ * The icon displayed in the close button.
49
+ * @defaultValue icons.close
50
+ * @IconifyIcon
51
+ */
52
+ closeIcon?: IconComponent;
53
+ /**
54
+ * When `false`, the slideover will not close when clicking outside or pressing escape.
55
+ * @defaultValue false
56
+ */
57
+ dismissible?: boolean;
58
+ /**
59
+ * @defaultValue true
60
+ */
61
+ scrollbarThin?: boolean;
62
+ class?: any;
63
+ b24ui?: Slideover['slots'];
64
+ }
65
+ export interface SlideoverEmits extends DialogRootEmits {
66
+ 'after:leave': [];
67
+ }
68
+ export interface SlideoverSlots {
69
+ default(props: {
70
+ open: boolean;
71
+ }): any;
72
+ content(props?: {}): any;
73
+ header(props?: {}): any;
74
+ title(props?: {}): any;
75
+ description(props?: {}): any;
76
+ close(props: {
77
+ b24ui: {
78
+ [K in keyof Required<Slideover['slots']>]: (props?: Record<string, any>) => string;
79
+ };
80
+ }): any;
81
+ body(props?: {}): any;
82
+ footer(props?: {}): any;
83
+ }
84
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<SlideoverProps>, {
85
+ close: boolean;
86
+ portal: boolean;
87
+ overlay: boolean;
88
+ transition: boolean;
89
+ modal: boolean;
90
+ dismissible: boolean;
91
+ side: string;
92
+ scrollbarThin: boolean;
93
+ overlayBlur: string;
94
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, any, string, import("vue").PublicProps, any, {
95
+ close: boolean | Partial<ButtonProps>;
96
+ modal: boolean;
97
+ transition: boolean;
98
+ portal: boolean;
99
+ overlay: boolean;
100
+ side: Slideover["variants"]["side"];
101
+ overlayBlur: Slideover["variants"]["overlayBlur"];
102
+ dismissible: boolean;
103
+ scrollbarThin: boolean;
104
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<SlideoverSlots> & SlideoverSlots>;
105
+ export default _default;
106
+ type __VLS_WithDefaults<P, D> = {
107
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
108
+ default: D[K];
109
+ }> : P[K];
110
+ };
111
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
112
+ type __VLS_TypePropsToOption<T> = {
113
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
114
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
115
+ } : {
116
+ type: import('vue').PropType<T[K]>;
117
+ required: true;
118
+ };
119
+ };
120
+ type __VLS_WithTemplateSlots<T, S> = T & {
121
+ new (): {
122
+ $slots: S;
123
+ };
124
+ };
125
+ type __VLS_PrettifyLocal<T> = {
126
+ [K in keyof T]: T[K];
127
+ } & {};
@@ -1,90 +1,50 @@
1
- <script lang="ts">
2
- // import type { VariantProps } from 'tailwind-variants'
3
- import type { AppConfig } from '@nuxt/schema'
4
- import _appConfig from '#build/app.config'
5
- import theme from '#build/b24ui/stacked-layout'
6
- import { tv } from '../utils/tv'
7
- import { useRoute } from 'vue-router'
8
-
9
- const appConfigStackedLayout = _appConfig as AppConfig & { b24ui: { stackedLayout: Partial<typeof theme> } }
10
-
11
- const stackedLayout = tv({ extend: tv(theme), ...(appConfigStackedLayout.b24ui?.stackedLayout || {}) })
12
-
13
- // type StackedLayoutVariants = VariantProps<typeof stackedLayout>
14
-
15
- export interface StackedLayoutProps {
16
- /**
17
- * The element or component this component should render as.
18
- * @defaultValue 'div'
19
- */
20
- as?: any
21
- useLightContent?: boolean
22
- class?: any
23
- b24ui?: Partial<typeof stackedLayout.slots>
24
- }
25
-
26
- export interface StackedLayoutSlots {
27
- /**
28
- * Menu for mobile screen sizes.
29
- * @param props
30
- * @param props.handleClick - Handler for navigation click events
31
- */
32
- sidebar(props: { handleClick: () => void }): any
33
- /**
34
- * Menu for desktop screen sizes.
35
- */
36
- navbar(props?: {}): any
37
- /**
38
- * The page content.
39
- */
40
- default(props?: {}): any
41
- }
1
+ <script>
2
+ import theme from "#build/b24ui/stacked-layout";
42
3
  </script>
43
4
 
44
- <script setup lang="ts">
45
- import { ref, computed, watch, onUnmounted } from 'vue'
46
- import { Primitive } from 'reka-ui'
47
- import B24Slideover from './Slideover.vue'
48
- import B24Sidebar from './Sidebar.vue'
49
- import B24ModalDialogClose from './ModalDialogClose.vue'
50
- import B24Navbar from './Navbar.vue'
51
- import MenuIcon from '@bitrix24/b24icons-vue/main/MenuIcon'
52
- import Cross50Icon from '@bitrix24/b24icons-vue/actions/Cross50Icon'
53
-
54
- const props = withDefaults(defineProps<StackedLayoutProps>(), {
55
- as: 'div',
56
- useLightContent: true
57
- })
58
- const slots = defineSlots<StackedLayoutSlots>()
59
-
60
- const route = useRoute()
61
- const isUseSideBar = computed(() => !!slots.sidebar)
62
- const openSidebarSlideover = ref(false)
63
-
64
- const b24ui = computed(() => stackedLayout({
5
+ <script setup>
6
+ import { ref, computed, watch, onUnmounted } from "vue";
7
+ import { useRoute } from "vue-router";
8
+ import { Primitive } from "reka-ui";
9
+ import { useAppConfig } from "#imports";
10
+ import { tv } from "../utils/tv";
11
+ import B24Slideover from "./Slideover.vue";
12
+ import B24Sidebar from "./Sidebar.vue";
13
+ import B24ModalDialogClose from "./ModalDialogClose.vue";
14
+ import B24Navbar from "./Navbar.vue";
15
+ import MenuIcon from "@bitrix24/b24icons-vue/main/MenuIcon";
16
+ import Cross50Icon from "@bitrix24/b24icons-vue/actions/Cross50Icon";
17
+ const props = defineProps({
18
+ as: { type: null, required: false, default: "div" },
19
+ useLightContent: { type: Boolean, required: false, default: true },
20
+ class: { type: null, required: false },
21
+ b24ui: { type: null, required: false }
22
+ });
23
+ const slots = defineSlots();
24
+ const appConfig = useAppConfig();
25
+ const route = useRoute();
26
+ const isUseSideBar = computed(() => !!slots.sidebar);
27
+ const openSidebarSlideover = ref(false);
28
+ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.stackedLayout || {} })({
65
29
  useSidebar: isUseSideBar.value,
66
30
  useLightContent: Boolean(props.useLightContent)
67
- }))
68
-
31
+ }));
69
32
  const closeModal = () => {
70
33
  if (openSidebarSlideover.value) {
71
- openSidebarSlideover.value = false
34
+ openSidebarSlideover.value = false;
72
35
  }
73
- }
74
-
36
+ };
75
37
  const stopWatcher = watch(
76
38
  () => route.path,
77
39
  () => closeModal(),
78
40
  { immediate: true }
79
- )
80
-
41
+ );
81
42
  onUnmounted(() => {
82
- stopWatcher()
83
- })
84
-
43
+ stopWatcher();
44
+ });
85
45
  const handleNavigationClick = () => {
86
- closeModal()
87
- }
46
+ closeModal();
47
+ };
88
48
  </script>
89
49
 
90
50
  <template>
@@ -0,0 +1,65 @@
1
+ import type { AppConfig } from '@nuxt/schema';
2
+ import theme from '#build/b24ui/stacked-layout';
3
+ import type { ComponentConfig } from '../types/utils';
4
+ type StackedLayout = ComponentConfig<typeof theme, AppConfig, 'stackedLayout'>;
5
+ export interface StackedLayoutProps {
6
+ /**
7
+ * The element or component this component should render as.
8
+ * @defaultValue 'div'
9
+ */
10
+ as?: any;
11
+ useLightContent?: boolean;
12
+ class?: any;
13
+ b24ui?: StackedLayout['slots'];
14
+ }
15
+ export interface StackedLayoutSlots {
16
+ /**
17
+ * Menu for mobile screen sizes.
18
+ * @param props
19
+ * @param props.handleClick - Handler for navigation click events
20
+ */
21
+ sidebar(props: {
22
+ handleClick: () => void;
23
+ }): any;
24
+ /**
25
+ * Menu for desktop screen sizes.
26
+ */
27
+ navbar(props?: {}): any;
28
+ /**
29
+ * The page content.
30
+ */
31
+ default(props?: {}): any;
32
+ }
33
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<StackedLayoutProps>, {
34
+ as: string;
35
+ useLightContent: boolean;
36
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<StackedLayoutProps>, {
37
+ as: string;
38
+ useLightContent: boolean;
39
+ }>>> & Readonly<{}>, {
40
+ as: any;
41
+ useLightContent: boolean;
42
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<StackedLayoutSlots> & StackedLayoutSlots>;
43
+ export default _default;
44
+ type __VLS_WithDefaults<P, D> = {
45
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
46
+ default: D[K];
47
+ }> : P[K];
48
+ };
49
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
50
+ type __VLS_TypePropsToOption<T> = {
51
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
52
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
53
+ } : {
54
+ type: import('vue').PropType<T[K]>;
55
+ required: true;
56
+ };
57
+ };
58
+ type __VLS_WithTemplateSlots<T, S> = T & {
59
+ new (): {
60
+ $slots: S;
61
+ };
62
+ };
63
+ type __VLS_PrettifyLocal<T> = {
64
+ [K in keyof T]: T[K];
65
+ } & {};