@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
@@ -1,140 +1,60 @@
1
- <script lang="ts">
2
- import type { DialogRootProps, DialogRootEmits, DialogContentProps, DialogContentEmits } from 'reka-ui'
3
- import type { VariantProps } from 'tailwind-variants'
4
- import type { AppConfig } from '@nuxt/schema'
5
- import _appConfig from '#build/app.config'
6
- import theme from '#build/b24ui/modal'
7
- import { tv } from '../utils/tv'
8
- import type { ButtonProps, IconComponent } from '../types'
9
- import type { EmitsToProps } from '../types/utils'
10
-
11
- const appConfigModal = _appConfig as AppConfig & { b24ui: { modal: Partial<typeof theme> } }
12
-
13
- const modal = tv({ extend: tv(theme), ...(appConfigModal.b24ui?.modal || {}) })
14
-
15
- type ModalVariants = VariantProps<typeof modal>
16
-
17
- export interface ModalProps extends DialogRootProps {
18
- title?: string
19
- description?: string
20
- /**
21
- * The content of the modal
22
- */
23
- content?: Omit<DialogContentProps, 'as' | 'asChild' | 'forceMount'> & Partial<EmitsToProps<DialogContentEmits>>
24
- /**
25
- * Render an overlay behind the modal.
26
- * @defaultValue true
27
- */
28
- overlay?: boolean
29
- /**
30
- * Render an overlay blur behind the modal.
31
- * `auto` use `motion-safe`.
32
- * @defaultValue 'auto'
33
- */
34
- overlayBlur?: ModalVariants['overlayBlur']
35
- /**
36
- * Animate the modal when opening or closing.
37
- * @defaultValue true
38
- */
39
- transition?: boolean
40
- /**
41
- * When `true`, the modal will take up the full screen.
42
- * @defaultValue false
43
- */
44
- fullscreen?: boolean
45
- /**
46
- * Render the modal in a portal.
47
- * @defaultValue true
48
- */
49
- portal?: boolean
50
- /**
51
- * Display a close button to dismiss the modal.
52
- * `{ size: 'xs', color: 'link' }`{lang="ts"}
53
- * @defaultValue true
54
- */
55
- close?: boolean | Partial<ButtonProps>
56
- /**
57
- * The icon displayed in the close button.
58
- * @defaultValue icons.close
59
- * @IconComponent
60
- */
61
- closeIcon?: IconComponent
62
- /**
63
- * When `false`, the modal will not close when clicking outside or pressing escape.
64
- * @defaultValue false
65
- */
66
- dismissible?: boolean
67
- /**
68
- * @defaultValue true
69
- */
70
- scrollbarThin?: boolean
71
- class?: any
72
- b24ui?: Partial<typeof modal.slots>
73
- }
74
-
75
- export interface ModalEmits extends DialogRootEmits {
76
- 'after:leave': []
77
- }
78
-
79
- export interface ModalSlots {
80
- default(props: { open: boolean }): any
81
- content(props?: {}): any
82
- header(props?: {}): any
83
- title(props?: {}): any
84
- description(props?: {}): any
85
- close(props: { b24ui: ReturnType<typeof modal> }): any
86
- body(props?: {}): any
87
- footer(props?: {}): any
88
- }
1
+ <script>
2
+ import theme from "#build/b24ui/modal";
89
3
  </script>
90
4
 
91
- <script setup lang="ts">
92
- import { computed, toRef } from 'vue'
93
- import { DialogRoot, DialogTrigger, DialogPortal, DialogOverlay, DialogContent, DialogTitle, DialogDescription, DialogClose, VisuallyHidden, useForwardPropsEmits } from 'reka-ui'
94
- import { reactivePick } from '@vueuse/core'
95
- import { useLocale } from '../composables/useLocale'
96
- import icons from '../dictionary/icons'
97
- import B24Button from './Button.vue'
98
-
99
- const props = withDefaults(defineProps<ModalProps>(), {
100
- close: true,
101
- portal: true,
102
- overlay: true,
103
- transition: true,
104
- modal: true,
105
- dismissible: true,
106
- scrollbarThin: true,
107
- overlayBlur: 'auto'
108
- })
109
- const emits = defineEmits<ModalEmits>()
110
- const slots = defineSlots<ModalSlots>()
111
-
112
- const { t } = useLocale()
113
-
114
- const rootProps = useForwardPropsEmits(reactivePick(props, 'open', 'defaultOpen', 'modal'), emits)
115
- 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
+ fullscreen: { type: Boolean, required: false },
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);
116
39
  const contentEvents = computed(() => {
117
40
  const events = {
118
- closeAutoFocus: (e: Event) => e.preventDefault()
119
- }
120
-
41
+ closeAutoFocus: (e) => e.preventDefault()
42
+ };
121
43
  if (!props.dismissible) {
122
44
  return {
123
- pointerDownOutside: (e: Event) => e.preventDefault(),
124
- interactOutside: (e: Event) => e.preventDefault(),
125
- escapeKeyDown: (e: Event) => e.preventDefault(),
45
+ pointerDownOutside: (e) => e.preventDefault(),
46
+ interactOutside: (e) => e.preventDefault(),
47
+ escapeKeyDown: (e) => e.preventDefault(),
126
48
  ...events
127
- }
49
+ };
128
50
  }
129
-
130
- return events
131
- })
132
-
133
- const b24ui = computed(() => modal({
51
+ return events;
52
+ });
53
+ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.modal || {} })({
134
54
  transition: props.transition,
135
55
  fullscreen: props.fullscreen,
136
56
  overlayBlur: props.overlayBlur
137
- }))
57
+ }));
138
58
  </script>
139
59
 
140
60
  <template>
@@ -147,7 +67,7 @@ const b24ui = computed(() => modal({
147
67
  <DialogOverlay v-if="overlay" :class="b24ui.overlay({ class: props.b24ui?.overlay })" />
148
68
 
149
69
  <DialogContent :class="b24ui.content({ class: [!slots.default && props.class, props.b24ui?.content] })" v-bind="contentProps" @after-leave="emits('after:leave')" v-on="contentEvents">
150
- <VisuallyHidden v-if="!!slots.content && ((title || !!slots.title) || (description || !!slots.description))">
70
+ <VisuallyHidden v-if="!!slots.content && (title || !!slots.title || (description || !!slots.description))">
151
71
  <DialogTitle v-if="title || !!slots.title">
152
72
  <slot name="title">
153
73
  {{ title }}
@@ -186,7 +106,7 @@ const b24ui = computed(() => modal({
186
106
  size="xs"
187
107
  color="link"
188
108
  :aria-label="t('modal.close')"
189
- v-bind="(typeof close === 'object' ? close as Partial<ButtonProps> : {})"
109
+ v-bind="typeof close === 'object' ? close : {}"
190
110
  :class="b24ui.close({ class: props.b24ui?.close })"
191
111
  />
192
112
  </slot>
@@ -0,0 +1,124 @@
1
+ import type { DialogRootProps, DialogRootEmits, DialogContentProps, DialogContentEmits } from 'reka-ui';
2
+ import type { AppConfig } from '@nuxt/schema';
3
+ import theme from '#build/b24ui/modal';
4
+ import type { ButtonProps, IconComponent } from '../types';
5
+ import type { EmitsToProps, ComponentConfig } from '../types/utils';
6
+ type Modal = ComponentConfig<typeof theme, AppConfig, 'modal'>;
7
+ export interface ModalProps extends DialogRootProps {
8
+ title?: string;
9
+ description?: string;
10
+ /**
11
+ * The content of the modal
12
+ */
13
+ content?: Omit<DialogContentProps, 'as' | 'asChild' | 'forceMount'> & Partial<EmitsToProps<DialogContentEmits>>;
14
+ /**
15
+ * Render an overlay behind the modal.
16
+ * @defaultValue true
17
+ */
18
+ overlay?: boolean;
19
+ /**
20
+ * Render an overlay blur behind the modal.
21
+ * `auto` use `motion-safe`.
22
+ * @defaultValue 'auto'
23
+ */
24
+ overlayBlur?: Modal['variants']['overlayBlur'];
25
+ /**
26
+ * Animate the modal when opening or closing.
27
+ * @defaultValue true
28
+ */
29
+ transition?: boolean;
30
+ /**
31
+ * When `true`, the modal will take up the full screen.
32
+ * @defaultValue false
33
+ */
34
+ fullscreen?: boolean;
35
+ /**
36
+ * Render the modal in a portal.
37
+ * @defaultValue true
38
+ */
39
+ portal?: boolean;
40
+ /**
41
+ * Display a close button to dismiss the modal.
42
+ * `{ size: 'xs', color: 'link' }`{lang="ts"}
43
+ * @defaultValue true
44
+ */
45
+ close?: boolean | Partial<ButtonProps>;
46
+ /**
47
+ * The icon displayed in the close button.
48
+ * @defaultValue icons.close
49
+ * @IconComponent
50
+ */
51
+ closeIcon?: IconComponent;
52
+ /**
53
+ * When `false`, the modal will not close when clicking outside or pressing escape.
54
+ * @defaultValue false
55
+ */
56
+ dismissible?: boolean;
57
+ /**
58
+ * @defaultValue true
59
+ */
60
+ scrollbarThin?: boolean;
61
+ class?: any;
62
+ b24ui?: Modal['slots'];
63
+ }
64
+ export interface ModalEmits extends DialogRootEmits {
65
+ 'after:leave': [];
66
+ }
67
+ export interface ModalSlots {
68
+ default(props: {
69
+ open: boolean;
70
+ }): any;
71
+ content(props?: {}): any;
72
+ header(props?: {}): any;
73
+ title(props?: {}): any;
74
+ description(props?: {}): any;
75
+ close(props: {
76
+ b24ui: {
77
+ [K in keyof Required<Modal['slots']>]: (props?: Record<string, any>) => string;
78
+ };
79
+ }): any;
80
+ body(props?: {}): any;
81
+ footer(props?: {}): any;
82
+ }
83
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<ModalProps>, {
84
+ close: boolean;
85
+ portal: boolean;
86
+ overlay: boolean;
87
+ transition: boolean;
88
+ modal: boolean;
89
+ dismissible: boolean;
90
+ scrollbarThin: boolean;
91
+ overlayBlur: string;
92
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, any, string, import("vue").PublicProps, any, {
93
+ close: boolean | Partial<ButtonProps>;
94
+ modal: boolean;
95
+ transition: boolean;
96
+ portal: boolean;
97
+ overlay: boolean;
98
+ overlayBlur: Modal["variants"]["overlayBlur"];
99
+ dismissible: boolean;
100
+ scrollbarThin: boolean;
101
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<ModalSlots> & ModalSlots>;
102
+ export default _default;
103
+ type __VLS_WithDefaults<P, D> = {
104
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
105
+ default: D[K];
106
+ }> : P[K];
107
+ };
108
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
109
+ type __VLS_TypePropsToOption<T> = {
110
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
111
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
112
+ } : {
113
+ type: import('vue').PropType<T[K]>;
114
+ required: true;
115
+ };
116
+ };
117
+ type __VLS_WithTemplateSlots<T, S> = T & {
118
+ new (): {
119
+ $slots: S;
120
+ };
121
+ };
122
+ type __VLS_PrettifyLocal<T> = {
123
+ [K in keyof T]: T[K];
124
+ } & {};
@@ -1,13 +1,10 @@
1
- <script lang="ts">
2
- export interface ModalDialogCloseSlots {
3
- default(props: {}): any
4
- }
5
- </script>
1
+ <script>
6
2
 
7
- <script setup lang="ts">
8
- import { DialogClose } from 'reka-ui'
3
+ </script>
9
4
 
10
- defineSlots<ModalDialogCloseSlots>()
5
+ <script setup>
6
+ import { DialogClose } from "reka-ui";
7
+ defineSlots();
11
8
  </script>
12
9
 
13
10
  <template>
@@ -0,0 +1,10 @@
1
+ export interface ModalDialogCloseSlots {
2
+ default(props: {}): any;
3
+ }
4
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<ModalDialogCloseSlots> & ModalDialogCloseSlots>;
5
+ export default _default;
6
+ type __VLS_WithTemplateSlots<T, S> = T & {
7
+ new (): {
8
+ $slots: S;
9
+ };
10
+ };
@@ -1,38 +1,20 @@
1
- <script lang="ts">
2
- import type { AppConfig } from '@nuxt/schema'
3
- import _appConfig from '#build/app.config'
4
- import theme from '#build/b24ui/navbar'
5
- import { tv } from '../utils/tv'
6
-
7
- const appConfigNavbar = _appConfig as AppConfig & { b24ui: { navbar: Partial<typeof theme> } }
8
-
9
- const navbar = tv({ extend: tv(theme), ...(appConfigNavbar.b24ui?.navbar || {}) })
10
-
11
- export interface NavbarProps {
12
- /**
13
- * The element or component this component should render as.
14
- * @defaultValue 'nav'
15
- */
16
- as?: any
17
- class?: any
18
- b24ui?: Partial<typeof navbar.slots>
19
- }
20
-
21
- export interface NavbarSlots {
22
- default(props?: {}): any
23
- }
1
+ <script>
2
+ import theme from "#build/b24ui/navbar";
24
3
  </script>
25
4
 
26
- <script setup lang="ts">
27
- import { Primitive } from 'reka-ui'
28
-
29
- const props = withDefaults(defineProps<NavbarProps>(), {
30
- as: 'nav'
31
- })
32
- defineSlots<NavbarSlots>()
33
-
34
- // eslint-disable-next-line vue/no-dupe-keys
35
- const b24ui = navbar()
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, default: "nav" },
12
+ class: { type: null, required: false },
13
+ b24ui: { type: null, required: false }
14
+ });
15
+ defineSlots();
16
+ const appConfig = useAppConfig();
17
+ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.navbar || {} })());
36
18
  </script>
37
19
 
38
20
  <template>
@@ -0,0 +1,46 @@
1
+ import type { AppConfig } from '@nuxt/schema';
2
+ import theme from '#build/b24ui/navbar';
3
+ import type { ComponentConfig } from '../types/utils';
4
+ type Navbar = ComponentConfig<typeof theme, AppConfig, 'navbar'>;
5
+ export interface NavbarProps {
6
+ /**
7
+ * The element or component this component should render as.
8
+ * @defaultValue 'nav'
9
+ */
10
+ as?: any;
11
+ class?: any;
12
+ b24ui?: Navbar['slots'];
13
+ }
14
+ export interface NavbarSlots {
15
+ default(props?: {}): any;
16
+ }
17
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<NavbarProps>, {
18
+ as: string;
19
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<NavbarProps>, {
20
+ as: string;
21
+ }>>> & Readonly<{}>, {
22
+ as: any;
23
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<NavbarSlots> & NavbarSlots>;
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,38 +1,20 @@
1
- <script lang="ts">
2
- import type { AppConfig } from '@nuxt/schema'
3
- import _appConfig from '#build/app.config'
4
- import theme from '#build/b24ui/navbar-divider'
5
- import { tv } from '../utils/tv'
6
-
7
- const appConfigNavbarDivider = _appConfig as AppConfig & { b24ui: { navbarDivider: Partial<typeof theme> } }
8
-
9
- const navbarDivider = tv({ extend: tv(theme), ...(appConfigNavbarDivider.b24ui?.navbarDivider || {}) })
10
-
11
- export interface NavbarDividerProps {
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 navbarDivider.slots>
19
- }
20
-
21
- export interface NavbarDividerSlots {
22
- default(props?: {}): any
23
- }
1
+ <script>
2
+ import theme from "#build/b24ui/navbar-divider";
24
3
  </script>
25
4
 
26
- <script setup lang="ts">
27
- import { Primitive } from 'reka-ui'
28
-
29
- const props = withDefaults(defineProps<NavbarDividerProps>(), {
30
- as: 'div'
31
- })
32
- defineSlots<NavbarDividerSlots>()
33
-
34
- // eslint-disable-next-line vue/no-dupe-keys
35
- const b24ui = navbarDivider()
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, default: "div" },
12
+ class: { type: null, required: false },
13
+ b24ui: { type: null, required: false }
14
+ });
15
+ defineSlots();
16
+ const appConfig = useAppConfig();
17
+ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.navbarDivider || {} })());
36
18
  </script>
37
19
 
38
20
  <template>
@@ -0,0 +1,46 @@
1
+ import type { AppConfig } from '@nuxt/schema';
2
+ import theme from '#build/b24ui/navbar-divider';
3
+ import type { ComponentConfig } from '../types/utils';
4
+ type NavbarDivider = ComponentConfig<typeof theme, AppConfig, 'navbarDivider'>;
5
+ export interface NavbarDividerProps {
6
+ /**
7
+ * The element or component this component should render as.
8
+ * @defaultValue 'div'
9
+ */
10
+ as?: any;
11
+ class?: any;
12
+ b24ui?: NavbarDivider['slots'];
13
+ }
14
+ export interface NavbarDividerSlots {
15
+ default(props?: {}): any;
16
+ }
17
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<NavbarDividerProps>, {
18
+ as: string;
19
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<NavbarDividerProps>, {
20
+ as: string;
21
+ }>>> & Readonly<{}>, {
22
+ as: any;
23
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<NavbarDividerSlots> & NavbarDividerSlots>;
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,38 +1,20 @@
1
- <script lang="ts">
2
- import type { AppConfig } from '@nuxt/schema'
3
- import _appConfig from '#build/app.config'
4
- import theme from '#build/b24ui/navbar-section'
5
- import { tv } from '../utils/tv'
6
-
7
- const appConfigNavSection = _appConfig as AppConfig & { b24ui: { navbarSection: Partial<typeof theme> } }
8
-
9
- const navbarSection = tv({ extend: tv(theme), ...(appConfigNavSection.b24ui?.navbarSection || {}) })
10
-
11
- export interface NavbarSectionProps {
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 navbarSection.slots>
19
- }
20
-
21
- export interface NavbarSectionSlots {
22
- default(props?: {}): any
23
- }
1
+ <script>
2
+ import theme from "#build/b24ui/navbar-section";
24
3
  </script>
25
4
 
26
- <script setup lang="ts">
27
- import { Primitive } from 'reka-ui'
28
-
29
- const props = withDefaults(defineProps<NavbarSectionProps>(), {
30
- as: 'div'
31
- })
32
- defineSlots<NavbarSectionSlots>()
33
-
34
- // eslint-disable-next-line vue/no-dupe-keys
35
- const b24ui = navbarSection()
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, default: "div" },
12
+ class: { type: null, required: false },
13
+ b24ui: { type: null, required: false }
14
+ });
15
+ defineSlots();
16
+ const appConfig = useAppConfig();
17
+ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.navbarSection || {} })());
36
18
  </script>
37
19
 
38
20
  <template>
@@ -0,0 +1,46 @@
1
+ import type { AppConfig } from '@nuxt/schema';
2
+ import theme from '#build/b24ui/navbar-section';
3
+ import type { ComponentConfig } from '../types/utils';
4
+ type NavSection = ComponentConfig<typeof theme, AppConfig, 'navbarSection'>;
5
+ export interface NavbarSectionProps {
6
+ /**
7
+ * The element or component this component should render as.
8
+ * @defaultValue 'div'
9
+ */
10
+ as?: any;
11
+ class?: any;
12
+ b24ui?: NavSection['slots'];
13
+ }
14
+ export interface NavbarSectionSlots {
15
+ default(props?: {}): any;
16
+ }
17
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<NavbarSectionProps>, {
18
+ as: string;
19
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<NavbarSectionProps>, {
20
+ as: string;
21
+ }>>> & Readonly<{}>, {
22
+ as: any;
23
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<NavbarSectionSlots> & NavbarSectionSlots>;
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
+ } & {};