@bitrix24/b24ui-nuxt 0.5.11 → 0.6.0

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 (199) hide show
  1. package/.nuxt/b24ui/input-menu.ts +2 -2
  2. package/.nuxt/b24ui/select-menu.ts +4 -4
  3. package/.nuxt/b24ui/select.ts +2 -2
  4. package/dist/meta.d.mts +5208 -5061
  5. package/dist/meta.mjs +5208 -5061
  6. package/dist/module.json +3 -3
  7. package/dist/module.mjs +2 -2
  8. package/dist/runtime/components/Advice.vue +27 -54
  9. package/dist/runtime/components/Advice.vue.d.ts +170 -0
  10. package/dist/runtime/components/Alert.vue +35 -96
  11. package/dist/runtime/components/Alert.vue.d.ts +464 -0
  12. package/dist/runtime/components/App.vue +24 -34
  13. package/dist/runtime/components/App.vue.d.ts +23 -0
  14. package/dist/runtime/components/Avatar.vue +43 -81
  15. package/dist/runtime/components/Avatar.vue.d.ts +281 -0
  16. package/dist/runtime/components/AvatarGroup.vue +40 -76
  17. package/dist/runtime/components/AvatarGroup.vue.d.ts +204 -0
  18. package/dist/runtime/components/Badge.vue +40 -83
  19. package/dist/runtime/components/Badge.vue.d.ts +517 -0
  20. package/dist/runtime/components/Button.vue +96 -155
  21. package/dist/runtime/components/Button.vue.d.ts +640 -0
  22. package/dist/runtime/components/ButtonGroup.vue +19 -51
  23. package/dist/runtime/components/ButtonGroup.vue.d.ts +116 -0
  24. package/dist/runtime/components/Calendar.vue +73 -152
  25. package/dist/runtime/components/Calendar.vue.d.ts +437 -0
  26. package/dist/runtime/components/Checkbox.vue +42 -73
  27. package/dist/runtime/components/Checkbox.vue.d.ts +354 -0
  28. package/dist/runtime/components/Chip.vue +26 -74
  29. package/dist/runtime/components/Chip.vue.d.ts +271 -0
  30. package/dist/runtime/components/Collapsible.vue +22 -41
  31. package/dist/runtime/components/Collapsible.vue.d.ts +118 -0
  32. package/dist/runtime/components/Container.vue +13 -27
  33. package/dist/runtime/components/Container.vue.d.ts +27 -0
  34. package/dist/runtime/components/Countdown.vue +153 -378
  35. package/dist/runtime/components/Countdown.vue.d.ts +356 -0
  36. package/dist/runtime/components/DescriptionList.vue +78 -149
  37. package/dist/runtime/components/DescriptionList.vue.d.ts +379 -0
  38. package/dist/runtime/components/DropdownMenu.vue +38 -139
  39. package/dist/runtime/components/DropdownMenu.vue.d.ts +533 -0
  40. package/dist/runtime/components/DropdownMenuContent.vue +68 -80
  41. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +228 -0
  42. package/dist/runtime/components/Form.vue +130 -217
  43. package/dist/runtime/components/Form.vue.d.ts +55 -0
  44. package/dist/runtime/components/FormField.vue +36 -80
  45. package/dist/runtime/components/FormField.vue.d.ts +282 -0
  46. package/dist/runtime/components/Input.vue +79 -179
  47. package/dist/runtime/components/Input.vue.d.ts +755 -0
  48. package/dist/runtime/components/InputMenu.vue +185 -381
  49. package/dist/runtime/components/InputMenu.vue.d.ts +1523 -0
  50. package/dist/runtime/components/InputNumber.vue +77 -175
  51. package/dist/runtime/components/InputNumber.vue.d.ts +658 -0
  52. package/dist/runtime/components/Kbd.vue +18 -45
  53. package/dist/runtime/components/Kbd.vue.d.ts +109 -0
  54. package/dist/runtime/components/Link.vue +92 -173
  55. package/dist/runtime/components/Link.vue.d.ts +129 -0
  56. package/dist/runtime/components/LinkBase.vue +33 -42
  57. package/dist/runtime/components/LinkBase.vue.d.ts +48 -0
  58. package/dist/runtime/components/Modal.vue +48 -127
  59. package/dist/runtime/components/Modal.vue.d.ts +327 -0
  60. package/dist/runtime/components/ModalDialogClose.vue +5 -8
  61. package/dist/runtime/components/ModalDialogClose.vue.d.ts +10 -0
  62. package/dist/runtime/components/Navbar.vue +15 -33
  63. package/dist/runtime/components/Navbar.vue.d.ts +101 -0
  64. package/dist/runtime/components/NavbarDivider.vue +15 -33
  65. package/dist/runtime/components/NavbarDivider.vue.d.ts +101 -0
  66. package/dist/runtime/components/NavbarSection.vue +15 -33
  67. package/dist/runtime/components/NavbarSection.vue.d.ts +101 -0
  68. package/dist/runtime/components/NavbarSpacer.vue +15 -33
  69. package/dist/runtime/components/NavbarSpacer.vue.d.ts +101 -0
  70. package/dist/runtime/components/NavigationMenu.vue +74 -208
  71. package/dist/runtime/components/NavigationMenu.vue.d.ts +824 -0
  72. package/dist/runtime/components/OverlayProvider.vue +14 -18
  73. package/dist/runtime/components/OverlayProvider.vue.d.ts +2 -0
  74. package/dist/runtime/components/Popover.vue +40 -81
  75. package/dist/runtime/components/Popover.vue.d.ts +147 -0
  76. package/dist/runtime/components/Progress.vue +70 -136
  77. package/dist/runtime/components/Progress.vue.d.ts +592 -0
  78. package/dist/runtime/components/RadioGroup.vue +59 -134
  79. package/dist/runtime/components/RadioGroup.vue.d.ts +723 -0
  80. package/dist/runtime/components/Range.vue +46 -85
  81. package/dist/runtime/components/Range.vue.d.ts +417 -0
  82. package/dist/runtime/components/Select.vue +110 -260
  83. package/dist/runtime/components/Select.vue.d.ts +1201 -0
  84. package/dist/runtime/components/SelectMenu.vue +161 -347
  85. package/dist/runtime/components/SelectMenu.vue.d.ts +1298 -0
  86. package/dist/runtime/components/Separator.vue +28 -71
  87. package/dist/runtime/components/Separator.vue.d.ts +400 -0
  88. package/dist/runtime/components/Sidebar.vue +15 -33
  89. package/dist/runtime/components/Sidebar.vue.d.ts +101 -0
  90. package/dist/runtime/components/SidebarBody.vue +17 -38
  91. package/dist/runtime/components/SidebarBody.vue.d.ts +90 -0
  92. package/dist/runtime/components/SidebarFooter.vue +15 -33
  93. package/dist/runtime/components/SidebarFooter.vue.d.ts +101 -0
  94. package/dist/runtime/components/SidebarHeader.vue +15 -33
  95. package/dist/runtime/components/SidebarHeader.vue.d.ts +101 -0
  96. package/dist/runtime/components/SidebarHeading.vue +15 -33
  97. package/dist/runtime/components/SidebarHeading.vue.d.ts +101 -0
  98. package/dist/runtime/components/SidebarLayout.vue +34 -70
  99. package/dist/runtime/components/SidebarLayout.vue.d.ts +222 -0
  100. package/dist/runtime/components/SidebarSection.vue +15 -33
  101. package/dist/runtime/components/SidebarSection.vue.d.ts +101 -0
  102. package/dist/runtime/components/SidebarSpacer.vue +15 -33
  103. package/dist/runtime/components/SidebarSpacer.vue.d.ts +101 -0
  104. package/dist/runtime/components/Skeleton.vue +12 -22
  105. package/dist/runtime/components/Skeleton.vue.d.ts +26 -0
  106. package/dist/runtime/components/Slideover.vue +50 -131
  107. package/dist/runtime/components/Slideover.vue.d.ts +360 -0
  108. package/dist/runtime/components/StackedLayout.vue +34 -73
  109. package/dist/runtime/components/StackedLayout.vue.d.ts +192 -0
  110. package/dist/runtime/components/Switch.vue +46 -95
  111. package/dist/runtime/components/Switch.vue.d.ts +587 -0
  112. package/dist/runtime/components/Tabs.vue +37 -105
  113. package/dist/runtime/components/Tabs.vue.d.ts +453 -0
  114. package/dist/runtime/components/Textarea.vue +92 -201
  115. package/dist/runtime/components/Textarea.vue.d.ts +601 -0
  116. package/dist/runtime/components/Toast.vue +47 -105
  117. package/dist/runtime/components/Toast.vue.d.ts +438 -0
  118. package/dist/runtime/components/Toaster.vue +70 -115
  119. package/dist/runtime/components/Toaster.vue.d.ts +219 -0
  120. package/dist/runtime/components/Tooltip.vue +36 -64
  121. package/dist/runtime/components/Tooltip.vue.d.ts +186 -0
  122. package/dist/runtime/components/content/TableWrapper.vue +24 -70
  123. package/dist/runtime/components/content/TableWrapper.vue.d.ts +237 -0
  124. package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
  125. package/dist/runtime/composables/useButtonGroup.d.ts +2 -2
  126. package/dist/runtime/composables/useComponentIcons.d.ts +3 -3
  127. package/dist/runtime/composables/useFormField.d.ts +2 -2
  128. package/dist/runtime/composables/useOverlay.d.ts +14 -7
  129. package/dist/runtime/composables/useOverlay.js +14 -6
  130. package/dist/runtime/prose/A.vue +12 -23
  131. package/dist/runtime/prose/A.vue.d.ts +84 -0
  132. package/dist/runtime/prose/Blockquote.vue +12 -23
  133. package/dist/runtime/prose/Blockquote.vue.d.ts +84 -0
  134. package/dist/runtime/prose/Code.vue +14 -31
  135. package/dist/runtime/prose/Code.vue.d.ts +97 -0
  136. package/dist/runtime/prose/Em.vue +12 -23
  137. package/dist/runtime/prose/Em.vue.d.ts +84 -0
  138. package/dist/runtime/prose/H1.vue +12 -23
  139. package/dist/runtime/prose/H1.vue.d.ts +97 -0
  140. package/dist/runtime/prose/H2.vue +12 -23
  141. package/dist/runtime/prose/H2.vue.d.ts +123 -0
  142. package/dist/runtime/prose/H3.vue +12 -23
  143. package/dist/runtime/prose/H3.vue.d.ts +123 -0
  144. package/dist/runtime/prose/H4.vue +12 -23
  145. package/dist/runtime/prose/H4.vue.d.ts +123 -0
  146. package/dist/runtime/prose/H5.vue +12 -23
  147. package/dist/runtime/prose/H5.vue.d.ts +123 -0
  148. package/dist/runtime/prose/H6.vue +12 -23
  149. package/dist/runtime/prose/H6.vue.d.ts +123 -0
  150. package/dist/runtime/prose/Hr.vue +12 -19
  151. package/dist/runtime/prose/Hr.vue.d.ts +74 -0
  152. package/dist/runtime/prose/Img.vue +12 -23
  153. package/dist/runtime/prose/Img.vue.d.ts +77 -0
  154. package/dist/runtime/prose/Li.vue +12 -23
  155. package/dist/runtime/prose/Li.vue.d.ts +84 -0
  156. package/dist/runtime/prose/Ol.vue +12 -23
  157. package/dist/runtime/prose/Ol.vue.d.ts +84 -0
  158. package/dist/runtime/prose/P.vue +12 -23
  159. package/dist/runtime/prose/P.vue.d.ts +84 -0
  160. package/dist/runtime/prose/Pre.vue +16 -33
  161. package/dist/runtime/prose/Pre.vue.d.ts +117 -0
  162. package/dist/runtime/prose/Strong.vue +12 -23
  163. package/dist/runtime/prose/Strong.vue.d.ts +84 -0
  164. package/dist/runtime/prose/Table.vue +19 -54
  165. package/dist/runtime/prose/Table.vue.d.ts +144 -0
  166. package/dist/runtime/prose/Tbody.vue +12 -23
  167. package/dist/runtime/prose/Tbody.vue.d.ts +84 -0
  168. package/dist/runtime/prose/Td.vue +12 -23
  169. package/dist/runtime/prose/Td.vue.d.ts +84 -0
  170. package/dist/runtime/prose/Th.vue +12 -23
  171. package/dist/runtime/prose/Th.vue.d.ts +84 -0
  172. package/dist/runtime/prose/Thead.vue +12 -23
  173. package/dist/runtime/prose/Thead.vue.d.ts +84 -0
  174. package/dist/runtime/prose/Tr.vue +12 -23
  175. package/dist/runtime/prose/Tr.vue.d.ts +84 -0
  176. package/dist/runtime/prose/Ul.vue +12 -23
  177. package/dist/runtime/prose/Ul.vue.d.ts +84 -0
  178. package/dist/runtime/utils/link.d.ts +3 -3
  179. package/dist/runtime/vue/components/Link.vue +115 -202
  180. package/dist/runtime/vue/components/Link.vue.d.ts +129 -0
  181. package/dist/shared/{b24ui-nuxt.CS9Lf0os.mjs → b24ui-nuxt.BA6Y2FnC.mjs} +6 -6
  182. package/dist/types.d.mts +3 -5
  183. package/dist/unplugin.mjs +1 -1
  184. package/dist/vite.mjs +1 -1
  185. package/package.json +14 -22
  186. package/dist/meta.cjs +0 -72112
  187. package/dist/meta.d.cts +0 -72110
  188. package/dist/meta.d.ts +0 -72110
  189. package/dist/module.cjs +0 -63
  190. package/dist/module.d.cts +0 -15
  191. package/dist/module.d.ts +0 -15
  192. package/dist/shared/b24ui-nuxt.DrKwIWoc.cjs +0 -7721
  193. package/dist/types.d.ts +0 -7
  194. package/dist/unplugin.cjs +0 -236
  195. package/dist/unplugin.d.cts +0 -33
  196. package/dist/unplugin.d.ts +0 -33
  197. package/dist/vite.cjs +0 -21
  198. package/dist/vite.d.cts +0 -14
  199. package/dist/vite.d.ts +0 -14
@@ -1,114 +1,69 @@
1
- <script lang="ts">
2
- import type { VariantProps } from 'tailwind-variants'
3
- import type { ToastProviderProps } from 'reka-ui'
4
- import type { AppConfig } from '@nuxt/schema'
5
- import _appConfig from '#build/app.config'
6
- import theme from '#build/b24ui/toaster'
7
- import { tv } from '../utils/tv'
8
-
9
- const appConfigToaster = _appConfig as AppConfig & { b24ui: { toaster: Partial<typeof theme> } }
10
-
11
- const toaster = tv({ extend: tv(theme), ...(appConfigToaster.b24ui?.toaster || {}) })
12
-
13
- type ToasterVariants = VariantProps<typeof toaster>
14
-
15
- export interface ToasterProps extends Omit<ToastProviderProps, 'swipeDirection'> {
16
- /**
17
- * The position on the screen to display the toasts.
18
- * @defaultValue 'top-right'
19
- */
20
- position?: ToasterVariants['position']
21
- /**
22
- * Expand the toasts to show multiple toasts at once.
23
- * @defaultValue true
24
- */
25
- expand?: boolean
26
- /**
27
- * Render the toaster in a portal.
28
- * @defaultValue true
29
- */
30
- portal?: boolean
31
- /**
32
- * @defaultValue 5000
33
- */
34
- duration?: number
35
- class?: any
36
- b24ui?: Partial<typeof toaster.slots>
37
- }
38
-
39
- export interface ToasterSlots {
40
- default(props?: {}): any
41
- }
42
-
1
+ <script>
2
+ import _appConfig from "#build/app.config";
3
+ import theme from "#build/b24ui/toaster";
4
+ import { tv } from "../utils/tv";
5
+ const appConfigToaster = _appConfig;
6
+ const toaster = tv({ extend: tv(theme), ...appConfigToaster.b24ui?.toaster || {} });
43
7
  export default {
44
- name: 'Toaster'
45
- }
8
+ name: "Toaster"
9
+ };
46
10
  </script>
47
11
 
48
- <script setup lang="ts">
49
- import { ref, computed } from 'vue'
50
- import { ToastProvider, ToastViewport, ToastPortal, useForwardProps } from 'reka-ui'
51
- import { reactivePick } from '@vueuse/core'
52
- import { useToast } from '../composables/useToast'
53
- import type { Toast } from '../composables/useToast'
54
- import { omit } from '../utils'
55
- import B24Toast from './Toast.vue'
56
-
57
- const props = withDefaults(defineProps<ToasterProps>(), {
58
- position: 'top-right' as const,
59
- expand: true,
60
- duration: 5000,
61
- portal: true
62
- })
63
- defineSlots<ToasterSlots>()
64
-
65
- const providerProps = useForwardProps(reactivePick(props, 'duration', 'label', 'swipeThreshold'))
66
-
67
- const proxyToastProps = (toast: Toast) => {
68
- return omit(toast, ['id', 'close'])
69
- }
70
-
71
- const { toasts, remove } = useToast()
72
-
12
+ <script setup>
13
+ import { ref, computed } from "vue";
14
+ import { ToastProvider, ToastViewport, ToastPortal, useForwardProps } from "reka-ui";
15
+ import { reactivePick } from "@vueuse/core";
16
+ import { useToast } from "../composables/useToast";
17
+ import { omit } from "../utils";
18
+ import B24Toast from "./Toast.vue";
19
+ const props = defineProps({
20
+ position: { type: null, required: false, default: "top-right" },
21
+ expand: { type: Boolean, required: false, default: true },
22
+ portal: { type: Boolean, required: false, default: true },
23
+ duration: { type: Number, required: false, default: 5e3 },
24
+ class: { type: null, required: false },
25
+ b24ui: { type: Object, required: false },
26
+ label: { type: String, required: false },
27
+ swipeThreshold: { type: Number, required: false }
28
+ });
29
+ defineSlots();
30
+ const providerProps = useForwardProps(reactivePick(props, "duration", "label", "swipeThreshold"));
31
+ const proxyToastProps = (toast) => {
32
+ return omit(toast, ["id", "close"]);
33
+ };
34
+ const { toasts, remove } = useToast();
73
35
  const swipeDirection = computed(() => {
74
36
  switch (props.position) {
75
- case 'top-center':
76
- return 'up'
77
- case 'top-right':
78
- case 'bottom-right':
79
- return 'right'
80
- case 'bottom-center':
81
- return 'down'
82
- case 'top-left':
83
- case 'bottom-left':
84
- return 'left'
37
+ case "top-center":
38
+ return "up";
39
+ case "top-right":
40
+ case "bottom-right":
41
+ return "right";
42
+ case "bottom-center":
43
+ return "down";
44
+ case "top-left":
45
+ case "bottom-left":
46
+ return "left";
85
47
  }
86
- return 'right'
87
- })
88
-
48
+ return "right";
49
+ });
89
50
  const b24ui = computed(() => toaster({
90
51
  position: props.position,
91
52
  swipeDirection: swipeDirection.value
92
- }))
93
-
94
- function onUpdateOpen(value: boolean, id: string | number) {
53
+ }));
54
+ function onUpdateOpen(value, id) {
95
55
  if (value) {
96
- return
56
+ return;
97
57
  }
98
-
99
- remove(id)
58
+ remove(id);
100
59
  }
101
-
102
- const hovered = ref(false)
103
- const expanded = computed(() => props.expand || hovered.value)
104
-
105
- const refs = ref<{ height: number }[]>([])
106
-
107
- const height = computed(() => refs.value.reduce((acc, { height }) => acc + height + 16, 0))
108
- const frontHeight = computed(() => refs.value[refs.value.length - 1]?.height || 0)
109
-
110
- function getOffset(index: number) {
111
- return refs.value.slice(index + 1).reduce((acc, { height }) => acc + height + 16, 0)
60
+ const hovered = ref(false);
61
+ const expanded = computed(() => props.expand || hovered.value);
62
+ const refs = ref([]);
63
+ const height = computed(() => refs.value.reduce((acc, { height: height2 }) => acc + height2 + 16, 0));
64
+ const frontHeight = computed(() => refs.value[refs.value.length - 1]?.height || 0);
65
+ function getOffset(index) {
66
+ return refs.value.slice(index + 1).reduce((acc, { height: height2 }) => acc + height2 + 16, 0);
112
67
  }
113
68
  </script>
114
69
 
@@ -121,20 +76,20 @@ function getOffset(index: number) {
121
76
  :key="toast.id"
122
77
  ref="refs"
123
78
  v-bind="proxyToastProps(toast)"
124
- :close="(toast.close as boolean)"
79
+ :close="toast.close"
125
80
  :data-expanded="expanded"
126
81
  :data-front="!expanded && index === toasts.length - 1"
127
82
  :style="{
128
- '--index': (index - toasts.length) + toasts.length,
129
- '--before': toasts.length - 1 - index,
130
- '--offset': getOffset(index),
131
- '--scale': expanded ? '1' : 'calc(1 - var(--before) * var(--scale-factor))',
132
- '--translate': expanded ? 'calc(var(--offset) * var(--translate-factor))' : 'calc(var(--before) * var(--gap))',
133
- '--transform': 'translateY(var(--translate)) scale(var(--scale))'
134
- }"
83
+ '--index': index - toasts.length + toasts.length,
84
+ '--before': toasts.length - 1 - index,
85
+ '--offset': getOffset(index),
86
+ '--scale': expanded ? '1' : 'calc(1 - var(--before) * var(--scale-factor))',
87
+ '--translate': expanded ? 'calc(var(--offset) * var(--translate-factor))' : 'calc(var(--before) * var(--gap))',
88
+ '--transform': 'translateY(var(--translate)) scale(var(--scale))'
89
+ }"
135
90
  :class="[b24ui.base(), {
136
- 'cursor-pointer': !!toast.onClick
137
- }]"
91
+ 'cursor-pointer': !!toast.onClick
92
+ }]"
138
93
  @update:open="onUpdateOpen($event, toast.id)"
139
94
  @click="toast.onClick && toast.onClick(toast)"
140
95
  />
@@ -144,12 +99,12 @@ function getOffset(index: number) {
144
99
  :data-expanded="expanded"
145
100
  :class="b24ui.viewport({ class: [props.class, props.b24ui?.viewport] })"
146
101
  :style="{
147
- '--scale-factor': '0.05',
148
- '--translate-factor': position?.startsWith('top') ? '1px' : '-1px',
149
- '--gap': position?.startsWith('top') ? '16px' : '-16px',
150
- '--front-height': `${frontHeight}px`,
151
- '--height': `${height}px`
152
- }"
102
+ '--scale-factor': '0.05',
103
+ '--translate-factor': position?.startsWith('top') ? '1px' : '-1px',
104
+ '--gap': position?.startsWith('top') ? '16px' : '-16px',
105
+ '--front-height': `${frontHeight}px`,
106
+ '--height': `${height}px`
107
+ }"
153
108
  @mouseenter="hovered = true"
154
109
  @mouseleave="hovered = false"
155
110
  />
@@ -0,0 +1,219 @@
1
+ import type { VariantProps } from 'tailwind-variants';
2
+ import type { ToastProviderProps } from 'reka-ui';
3
+ declare const toaster: import("tailwind-variants").TVReturnType<{
4
+ position: {
5
+ "top-left": {
6
+ viewport: string;
7
+ };
8
+ "top-center": {
9
+ viewport: string;
10
+ };
11
+ "top-right": {
12
+ viewport: string;
13
+ };
14
+ "bottom-left": {
15
+ viewport: string;
16
+ };
17
+ "bottom-center": {
18
+ viewport: string;
19
+ };
20
+ "bottom-right": {
21
+ viewport: string;
22
+ };
23
+ };
24
+ swipeDirection: {
25
+ up: string;
26
+ right: string;
27
+ down: string;
28
+ left: string;
29
+ };
30
+ }, {
31
+ viewport: string;
32
+ base: string;
33
+ }, undefined, {
34
+ position: {
35
+ "top-left": {
36
+ viewport: string;
37
+ };
38
+ "top-center": {
39
+ viewport: string;
40
+ };
41
+ "top-right": {
42
+ viewport: string;
43
+ };
44
+ "bottom-left": {
45
+ viewport: string;
46
+ };
47
+ "bottom-center": {
48
+ viewport: string;
49
+ };
50
+ "bottom-right": {
51
+ viewport: string;
52
+ };
53
+ };
54
+ swipeDirection: {
55
+ up: string;
56
+ right: string;
57
+ down: string;
58
+ left: string;
59
+ };
60
+ }, {
61
+ viewport: string;
62
+ base: string;
63
+ }, import("tailwind-variants").TVReturnType<{
64
+ position: {
65
+ "top-left": {
66
+ viewport: string;
67
+ };
68
+ "top-center": {
69
+ viewport: string;
70
+ };
71
+ "top-right": {
72
+ viewport: string;
73
+ };
74
+ "bottom-left": {
75
+ viewport: string;
76
+ };
77
+ "bottom-center": {
78
+ viewport: string;
79
+ };
80
+ "bottom-right": {
81
+ viewport: string;
82
+ };
83
+ };
84
+ swipeDirection: {
85
+ up: string;
86
+ right: string;
87
+ down: string;
88
+ left: string;
89
+ };
90
+ }, {
91
+ viewport: string;
92
+ base: string;
93
+ }, undefined, {
94
+ position: {
95
+ "top-left": {
96
+ viewport: string;
97
+ };
98
+ "top-center": {
99
+ viewport: string;
100
+ };
101
+ "top-right": {
102
+ viewport: string;
103
+ };
104
+ "bottom-left": {
105
+ viewport: string;
106
+ };
107
+ "bottom-center": {
108
+ viewport: string;
109
+ };
110
+ "bottom-right": {
111
+ viewport: string;
112
+ };
113
+ };
114
+ swipeDirection: {
115
+ up: string;
116
+ right: string;
117
+ down: string;
118
+ left: string;
119
+ };
120
+ }, {
121
+ viewport: string;
122
+ base: string;
123
+ }, import("tailwind-variants").TVReturnType<{
124
+ position: {
125
+ "top-left": {
126
+ viewport: string;
127
+ };
128
+ "top-center": {
129
+ viewport: string;
130
+ };
131
+ "top-right": {
132
+ viewport: string;
133
+ };
134
+ "bottom-left": {
135
+ viewport: string;
136
+ };
137
+ "bottom-center": {
138
+ viewport: string;
139
+ };
140
+ "bottom-right": {
141
+ viewport: string;
142
+ };
143
+ };
144
+ swipeDirection: {
145
+ up: string;
146
+ right: string;
147
+ down: string;
148
+ left: string;
149
+ };
150
+ }, {
151
+ viewport: string;
152
+ base: string;
153
+ }, undefined, unknown, unknown, undefined>>>;
154
+ type ToasterVariants = VariantProps<typeof toaster>;
155
+ export interface ToasterProps extends Omit<ToastProviderProps, 'swipeDirection'> {
156
+ /**
157
+ * The position on the screen to display the toasts.
158
+ * @defaultValue 'top-right'
159
+ */
160
+ position?: ToasterVariants['position'];
161
+ /**
162
+ * Expand the toasts to show multiple toasts at once.
163
+ * @defaultValue true
164
+ */
165
+ expand?: boolean;
166
+ /**
167
+ * Render the toaster in a portal.
168
+ * @defaultValue true
169
+ */
170
+ portal?: boolean;
171
+ /**
172
+ * @defaultValue 5000
173
+ */
174
+ duration?: number;
175
+ class?: any;
176
+ b24ui?: Partial<typeof toaster.slots>;
177
+ }
178
+ export interface ToasterSlots {
179
+ default(props?: {}): any;
180
+ }
181
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<ToasterProps>, {
182
+ position: "top-right";
183
+ expand: boolean;
184
+ duration: number;
185
+ portal: boolean;
186
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<ToasterProps>, {
187
+ position: "top-right";
188
+ expand: boolean;
189
+ duration: number;
190
+ portal: boolean;
191
+ }>>> & Readonly<{}>, {
192
+ duration: number;
193
+ position: "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
194
+ expand: boolean;
195
+ portal: boolean;
196
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<ToasterSlots> & ToasterSlots>;
197
+ export default _default;
198
+ type __VLS_WithDefaults<P, D> = {
199
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
200
+ default: D[K];
201
+ }> : P[K];
202
+ };
203
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
204
+ type __VLS_TypePropsToOption<T> = {
205
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
206
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
207
+ } : {
208
+ type: import('vue').PropType<T[K]>;
209
+ required: true;
210
+ };
211
+ };
212
+ type __VLS_WithTemplateSlots<T, S> = T & {
213
+ new (): {
214
+ $slots: S;
215
+ };
216
+ };
217
+ type __VLS_PrettifyLocal<T> = {
218
+ [K in keyof T]: T[K];
219
+ } & {};
@@ -1,69 +1,41 @@
1
- <script lang="ts">
2
- import type { TooltipRootProps, TooltipRootEmits, TooltipContentProps, TooltipContentEmits, TooltipArrowProps } from 'reka-ui'
3
- import type { AppConfig } from '@nuxt/schema'
4
- import _appConfig from '#build/app.config'
5
- import theme from '#build/b24ui/tooltip'
6
- import { tv } from '../utils/tv'
7
- import type { KbdProps } from '../types'
8
- import type { EmitsToProps } from '../types/utils'
9
-
10
- const appConfigTooltip = _appConfig as AppConfig & { b24ui: { tooltip: Partial<typeof theme> } }
11
-
12
- const tooltip = tv({ extend: tv(theme), ...(appConfigTooltip.b24ui?.tooltip || {}) })
13
-
14
- export interface TooltipProps extends TooltipRootProps {
15
- /** The text content of the tooltip. */
16
- text?: string
17
- /** The keyboard keys to display in the tooltip. */
18
- kbds?: KbdProps['value'][] | KbdProps[]
19
- /**
20
- * The content of the tooltip.
21
- * @defaultValue { side: 'bottom', sideOffset: 8, collisionPadding: 8 }
22
- */
23
- content?: Omit<TooltipContentProps, 'as' | 'asChild'> & Partial<EmitsToProps<TooltipContentEmits>>
24
- /**
25
- * Display an arrow alongside the tooltip.
26
- * @defaultValue false
27
- */
28
- arrow?: boolean | Omit<TooltipArrowProps, 'as' | 'asChild'>
29
- /**
30
- * Render the tooltip in a portal.
31
- * @defaultValue true
32
- */
33
- portal?: boolean
34
- class?: any
35
- b24ui?: Partial<typeof tooltip.slots>
36
- }
37
-
38
- export interface TooltipEmits extends TooltipRootEmits {}
39
-
40
- export interface TooltipSlots {
41
- default(props: { open: boolean }): any
42
- content(props?: {}): any
43
- }
1
+ <script>
2
+ import _appConfig from "#build/app.config";
3
+ import theme from "#build/b24ui/tooltip";
4
+ import { tv } from "../utils/tv";
5
+ const appConfigTooltip = _appConfig;
6
+ const tooltip = tv({ extend: tv(theme), ...appConfigTooltip.b24ui?.tooltip || {} });
44
7
  </script>
45
8
 
46
- <script setup lang="ts">
47
- import { computed, toRef } from 'vue'
48
- import { defu } from 'defu'
49
- import { TooltipRoot, TooltipTrigger, TooltipPortal, TooltipContent, TooltipArrow, useForwardPropsEmits } from 'reka-ui'
50
- import { reactivePick } from '@vueuse/core'
51
- import B24Kbd from './Kbd.vue'
52
-
53
- const props = withDefaults(defineProps<TooltipProps>(), {
54
- portal: true
55
- })
56
- const emits = defineEmits<TooltipEmits>()
57
- const slots = defineSlots<TooltipSlots>()
58
-
59
- const rootProps = useForwardPropsEmits(reactivePick(props, 'defaultOpen', 'open', 'delayDuration', 'disableHoverableContent', 'disableClosingTrigger', 'disabled', 'ignoreNonKeyboardFocus'), emits)
60
- const contentProps = toRef(() => defu(props.content, { side: 'bottom', sideOffset: 8, collisionPadding: 8 }) as TooltipContentProps)
61
- const arrowProps = toRef(() => props.arrow as TooltipArrowProps)
62
-
63
- // eslint-disable-next-line vue/no-dupe-keys
9
+ <script setup>
10
+ import { computed, toRef } from "vue";
11
+ import { defu } from "defu";
12
+ import { TooltipRoot, TooltipTrigger, TooltipPortal, TooltipContent, TooltipArrow, useForwardPropsEmits } from "reka-ui";
13
+ import { reactivePick } from "@vueuse/core";
14
+ import B24Kbd from "./Kbd.vue";
15
+ const props = defineProps({
16
+ text: { type: String, required: false },
17
+ kbds: { type: Array, required: false },
18
+ content: { type: Object, required: false },
19
+ arrow: { type: [Boolean, Object], required: false },
20
+ portal: { type: Boolean, required: false, default: true },
21
+ class: { type: null, required: false },
22
+ b24ui: { type: Object, required: false },
23
+ defaultOpen: { type: Boolean, required: false },
24
+ open: { type: Boolean, required: false },
25
+ delayDuration: { type: Number, required: false },
26
+ disableHoverableContent: { type: Boolean, required: false },
27
+ disableClosingTrigger: { type: Boolean, required: false },
28
+ disabled: { type: Boolean, required: false },
29
+ ignoreNonKeyboardFocus: { type: Boolean, required: false }
30
+ });
31
+ const emits = defineEmits(["update:open"]);
32
+ const slots = defineSlots();
33
+ const rootProps = useForwardPropsEmits(reactivePick(props, "defaultOpen", "open", "delayDuration", "disableHoverableContent", "disableClosingTrigger", "disabled", "ignoreNonKeyboardFocus"), emits);
34
+ const contentProps = toRef(() => defu(props.content, { side: "bottom", sideOffset: 8, collisionPadding: 8 }));
35
+ const arrowProps = toRef(() => props.arrow);
64
36
  const b24ui = computed(() => tooltip({
65
37
  side: contentProps.value.side
66
- }))
38
+ }));
67
39
  </script>
68
40
 
69
41
  <template>
@@ -81,8 +53,8 @@ const b24ui = computed(() => tooltip({
81
53
  <B24Kbd
82
54
  v-for="(kbd, index) in kbds"
83
55
  :key="index"
84
- :size="((props.b24ui?.kbdsSize || b24ui.kbdsSize()) as KbdProps['size'])"
85
- :depth="((props.b24ui?.kbdsDepth || b24ui.kbdsDepth()) as KbdProps['depth'])"
56
+ :size="props.b24ui?.kbdsSize || b24ui.kbdsSize()"
57
+ :depth="props.b24ui?.kbdsDepth || b24ui.kbdsDepth()"
86
58
  v-bind="typeof kbd === 'string' ? { value: kbd } : kbd"
87
59
  />
88
60
  </span>