@bitrix24/b24ui-nuxt 0.5.8 → 0.5.10

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 (197) hide show
  1. package/.nuxt/b24ui/navigation-menu.ts +0 -2
  2. package/.nuxt/b24ui/popover.ts +1 -1
  3. package/.nuxt/b24ui/textarea.ts +43 -0
  4. package/dist/meta.d.mts +5090 -4900
  5. package/dist/meta.mjs +5090 -4900
  6. package/dist/module.json +5 -5
  7. package/dist/module.mjs +11 -7
  8. package/dist/runtime/components/Advice.vue +47 -54
  9. package/dist/runtime/components/Advice.vue.d.ts +170 -0
  10. package/dist/runtime/components/Alert.vue +71 -96
  11. package/dist/runtime/components/Alert.vue.d.ts +464 -0
  12. package/dist/runtime/components/App.vue +37 -34
  13. package/dist/runtime/components/App.vue.d.ts +23 -0
  14. package/dist/runtime/components/Avatar.vue +69 -81
  15. package/dist/runtime/components/Avatar.vue.d.ts +281 -0
  16. package/dist/runtime/components/AvatarGroup.vue +53 -76
  17. package/dist/runtime/components/AvatarGroup.vue.d.ts +204 -0
  18. package/dist/runtime/components/Badge.vue +83 -83
  19. package/dist/runtime/components/Badge.vue.d.ts +517 -0
  20. package/dist/runtime/components/Button.vue +219 -149
  21. package/dist/runtime/components/Button.vue.d.ts +640 -0
  22. package/dist/runtime/components/ButtonGroup.vue +35 -51
  23. package/dist/runtime/components/ButtonGroup.vue.d.ts +116 -0
  24. package/dist/runtime/components/Calendar.vue +186 -152
  25. package/dist/runtime/components/Calendar.vue.d.ts +437 -0
  26. package/dist/runtime/components/Checkbox.vue +84 -73
  27. package/dist/runtime/components/Checkbox.vue.d.ts +354 -0
  28. package/dist/runtime/components/Chip.vue +59 -74
  29. package/dist/runtime/components/Chip.vue.d.ts +271 -0
  30. package/dist/runtime/components/Collapsible.vue +44 -41
  31. package/dist/runtime/components/Collapsible.vue.d.ts +118 -0
  32. package/dist/runtime/components/Container.vue +18 -27
  33. package/dist/runtime/components/Container.vue.d.ts +27 -0
  34. package/dist/runtime/components/Countdown.vue +198 -378
  35. package/dist/runtime/components/Countdown.vue.d.ts +356 -0
  36. package/dist/runtime/components/DescriptionList.vue +102 -149
  37. package/dist/runtime/components/DescriptionList.vue.d.ts +379 -0
  38. package/dist/runtime/components/DropdownMenu.vue +83 -139
  39. package/dist/runtime/components/DropdownMenu.vue.d.ts +533 -0
  40. package/dist/runtime/components/DropdownMenuContent.vue +137 -81
  41. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +228 -0
  42. package/dist/runtime/components/Form.vue +162 -216
  43. package/dist/runtime/components/Form.vue.d.ts +55 -0
  44. package/dist/runtime/components/FormField.vue +76 -80
  45. package/dist/runtime/components/FormField.vue.d.ts +282 -0
  46. package/dist/runtime/components/Input.vue +166 -185
  47. package/dist/runtime/components/Input.vue.d.ts +755 -0
  48. package/dist/runtime/components/InputMenu.vue +300 -381
  49. package/dist/runtime/components/InputMenu.vue.d.ts +1504 -0
  50. package/dist/runtime/components/InputNumber.vue +180 -177
  51. package/dist/runtime/components/InputNumber.vue.d.ts +658 -0
  52. package/dist/runtime/components/Kbd.vue +33 -45
  53. package/dist/runtime/components/Kbd.vue.d.ts +109 -0
  54. package/dist/runtime/components/Link.vue +179 -173
  55. package/dist/runtime/components/Link.vue.d.ts +129 -0
  56. package/dist/runtime/components/LinkBase.vue +64 -42
  57. package/dist/runtime/components/LinkBase.vue.d.ts +48 -0
  58. package/dist/runtime/components/Modal.vue +105 -127
  59. package/dist/runtime/components/Modal.vue.d.ts +327 -0
  60. package/dist/runtime/components/ModalDialogClose.vue +4 -8
  61. package/dist/runtime/components/ModalDialogClose.vue.d.ts +10 -0
  62. package/dist/runtime/components/Navbar.vue +24 -33
  63. package/dist/runtime/components/Navbar.vue.d.ts +101 -0
  64. package/dist/runtime/components/NavbarDivider.vue +24 -33
  65. package/dist/runtime/components/NavbarDivider.vue.d.ts +101 -0
  66. package/dist/runtime/components/NavbarSection.vue +24 -33
  67. package/dist/runtime/components/NavbarSection.vue.d.ts +101 -0
  68. package/dist/runtime/components/NavbarSpacer.vue +24 -33
  69. package/dist/runtime/components/NavbarSpacer.vue.d.ts +101 -0
  70. package/dist/runtime/components/NavigationMenu.vue +152 -216
  71. package/dist/runtime/components/NavigationMenu.vue.d.ts +824 -0
  72. package/dist/runtime/components/OverlayProvider.vue +13 -17
  73. package/dist/runtime/components/OverlayProvider.vue.d.ts +2 -0
  74. package/dist/runtime/components/Popover.vue +81 -81
  75. package/dist/runtime/components/Popover.vue.d.ts +147 -0
  76. package/dist/runtime/components/Progress.vue +109 -136
  77. package/dist/runtime/components/Progress.vue.d.ts +592 -0
  78. package/dist/runtime/components/RadioGroup.vue +120 -134
  79. package/dist/runtime/components/RadioGroup.vue.d.ts +723 -0
  80. package/dist/runtime/components/Range.vue +94 -85
  81. package/dist/runtime/components/Range.vue.d.ts +417 -0
  82. package/dist/runtime/components/Select.vue +212 -260
  83. package/dist/runtime/components/Select.vue.d.ts +1200 -0
  84. package/dist/runtime/components/SelectMenu.vue +272 -366
  85. package/dist/runtime/components/SelectMenu.vue.d.ts +1298 -0
  86. package/dist/runtime/components/Separator.vue +61 -71
  87. package/dist/runtime/components/Separator.vue.d.ts +400 -0
  88. package/dist/runtime/components/Sidebar.vue +24 -33
  89. package/dist/runtime/components/Sidebar.vue.d.ts +101 -0
  90. package/dist/runtime/components/SidebarBody.vue +30 -38
  91. package/dist/runtime/components/SidebarBody.vue.d.ts +90 -0
  92. package/dist/runtime/components/SidebarFooter.vue +24 -33
  93. package/dist/runtime/components/SidebarFooter.vue.d.ts +101 -0
  94. package/dist/runtime/components/SidebarHeader.vue +24 -33
  95. package/dist/runtime/components/SidebarHeader.vue.d.ts +101 -0
  96. package/dist/runtime/components/SidebarHeading.vue +24 -33
  97. package/dist/runtime/components/SidebarHeading.vue.d.ts +101 -0
  98. package/dist/runtime/components/SidebarLayout.vue +40 -70
  99. package/dist/runtime/components/SidebarLayout.vue.d.ts +222 -0
  100. package/dist/runtime/components/SidebarSection.vue +24 -33
  101. package/dist/runtime/components/SidebarSection.vue.d.ts +101 -0
  102. package/dist/runtime/components/SidebarSpacer.vue +24 -33
  103. package/dist/runtime/components/SidebarSpacer.vue.d.ts +101 -0
  104. package/dist/runtime/components/Skeleton.vue +17 -22
  105. package/dist/runtime/components/Skeleton.vue.d.ts +26 -0
  106. package/dist/runtime/components/Slideover.vue +108 -131
  107. package/dist/runtime/components/Slideover.vue.d.ts +360 -0
  108. package/dist/runtime/components/StackedLayout.vue +40 -73
  109. package/dist/runtime/components/StackedLayout.vue.d.ts +192 -0
  110. package/dist/runtime/components/Switch.vue +100 -95
  111. package/dist/runtime/components/Switch.vue.d.ts +587 -0
  112. package/dist/runtime/components/Tabs.vue +83 -105
  113. package/dist/runtime/components/Tabs.vue.d.ts +453 -0
  114. package/dist/runtime/components/Textarea.vue +215 -203
  115. package/dist/runtime/components/Textarea.vue.d.ts +601 -0
  116. package/dist/runtime/components/Toast.vue +94 -105
  117. package/dist/runtime/components/Toast.vue.d.ts +438 -0
  118. package/dist/runtime/components/Toaster.vue +94 -111
  119. package/dist/runtime/components/Toaster.vue.d.ts +219 -0
  120. package/dist/runtime/components/Tooltip.vue +78 -64
  121. package/dist/runtime/components/Tooltip.vue.d.ts +186 -0
  122. package/dist/runtime/components/content/TableWrapper.vue +58 -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 +1 -1
  128. package/dist/runtime/prose/A.vue +18 -23
  129. package/dist/runtime/prose/A.vue.d.ts +84 -0
  130. package/dist/runtime/prose/Blockquote.vue +18 -23
  131. package/dist/runtime/prose/Blockquote.vue.d.ts +84 -0
  132. package/dist/runtime/prose/Code.vue +23 -31
  133. package/dist/runtime/prose/Code.vue.d.ts +97 -0
  134. package/dist/runtime/prose/Em.vue +18 -23
  135. package/dist/runtime/prose/Em.vue.d.ts +84 -0
  136. package/dist/runtime/prose/H1.vue +18 -23
  137. package/dist/runtime/prose/H1.vue.d.ts +97 -0
  138. package/dist/runtime/prose/H2.vue +18 -23
  139. package/dist/runtime/prose/H2.vue.d.ts +123 -0
  140. package/dist/runtime/prose/H3.vue +18 -23
  141. package/dist/runtime/prose/H3.vue.d.ts +123 -0
  142. package/dist/runtime/prose/H4.vue +18 -23
  143. package/dist/runtime/prose/H4.vue.d.ts +123 -0
  144. package/dist/runtime/prose/H5.vue +18 -23
  145. package/dist/runtime/prose/H5.vue.d.ts +123 -0
  146. package/dist/runtime/prose/H6.vue +18 -23
  147. package/dist/runtime/prose/H6.vue.d.ts +123 -0
  148. package/dist/runtime/prose/Hr.vue +18 -19
  149. package/dist/runtime/prose/Hr.vue.d.ts +74 -0
  150. package/dist/runtime/prose/Img.vue +18 -23
  151. package/dist/runtime/prose/Img.vue.d.ts +77 -0
  152. package/dist/runtime/prose/Li.vue +18 -23
  153. package/dist/runtime/prose/Li.vue.d.ts +84 -0
  154. package/dist/runtime/prose/Ol.vue +18 -23
  155. package/dist/runtime/prose/Ol.vue.d.ts +84 -0
  156. package/dist/runtime/prose/P.vue +18 -23
  157. package/dist/runtime/prose/P.vue.d.ts +84 -0
  158. package/dist/runtime/prose/Pre.vue +28 -33
  159. package/dist/runtime/prose/Pre.vue.d.ts +117 -0
  160. package/dist/runtime/prose/Strong.vue +18 -23
  161. package/dist/runtime/prose/Strong.vue.d.ts +84 -0
  162. package/dist/runtime/prose/Table.vue +44 -54
  163. package/dist/runtime/prose/Table.vue.d.ts +144 -0
  164. package/dist/runtime/prose/Tbody.vue +18 -23
  165. package/dist/runtime/prose/Tbody.vue.d.ts +84 -0
  166. package/dist/runtime/prose/Td.vue +18 -23
  167. package/dist/runtime/prose/Td.vue.d.ts +84 -0
  168. package/dist/runtime/prose/Th.vue +18 -23
  169. package/dist/runtime/prose/Th.vue.d.ts +84 -0
  170. package/dist/runtime/prose/Thead.vue +18 -23
  171. package/dist/runtime/prose/Thead.vue.d.ts +84 -0
  172. package/dist/runtime/prose/Tr.vue +18 -23
  173. package/dist/runtime/prose/Tr.vue.d.ts +84 -0
  174. package/dist/runtime/prose/Ul.vue +18 -23
  175. package/dist/runtime/prose/Ul.vue.d.ts +84 -0
  176. package/dist/runtime/vue/components/Link.vue +201 -202
  177. package/dist/runtime/vue/components/Link.vue.d.ts +129 -0
  178. package/dist/runtime/vue/stubs.d.ts +2 -2
  179. package/dist/shared/{b24ui-nuxt.DBFS6LH7.mjs → b24ui-nuxt.CS9Lf0os.mjs} +54 -4
  180. package/dist/types.d.mts +3 -5
  181. package/dist/unplugin.mjs +1 -1
  182. package/dist/vite.mjs +1 -1
  183. package/package.json +62 -35
  184. package/dist/meta.cjs +0 -71922
  185. package/dist/meta.d.cts +0 -71920
  186. package/dist/meta.d.ts +0 -71920
  187. package/dist/module.cjs +0 -59
  188. package/dist/module.d.cts +0 -15
  189. package/dist/module.d.ts +0 -15
  190. package/dist/shared/b24ui-nuxt.B9fPD5yO.cjs +0 -7671
  191. package/dist/types.d.ts +0 -7
  192. package/dist/unplugin.cjs +0 -236
  193. package/dist/unplugin.d.cts +0 -33
  194. package/dist/unplugin.d.ts +0 -33
  195. package/dist/vite.cjs +0 -21
  196. package/dist/vite.d.cts +0 -14
  197. package/dist/vite.d.ts +0 -14
@@ -1,109 +1,92 @@
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 { omit } from '../utils'
54
- import B24Toast from './Toast.vue'
55
-
56
- const props = withDefaults(defineProps<ToasterProps>(), {
57
- position: 'top-right' as const,
58
- expand: true,
59
- duration: 5000,
60
- portal: true
61
- })
62
- defineSlots<ToasterSlots>()
63
-
64
- const providerProps = useForwardProps(reactivePick(props, 'duration', 'label', 'swipeThreshold'))
65
-
66
- const { toasts, remove } = useToast()
67
-
12
+ <script setup>
13
+ import { ref, computed } from "vue";
14
+ import { useForwardProps } from "reka-ui";
15
+ import { reactivePick } from "@vueuse/core";
16
+ import { useToast } from "../composables/useToast";
17
+ const props = defineProps({
18
+ position: {
19
+ type: null,
20
+ required: false,
21
+ default: "top-right"
22
+ },
23
+ expand: {
24
+ type: Boolean,
25
+ required: false,
26
+ default: true
27
+ },
28
+ portal: {
29
+ type: Boolean,
30
+ required: false,
31
+ default: true
32
+ },
33
+ duration: {
34
+ type: Number,
35
+ required: false,
36
+ default: 5e3
37
+ },
38
+ class: {
39
+ type: null,
40
+ required: false
41
+ },
42
+ b24ui: {
43
+ type: Object,
44
+ required: false
45
+ },
46
+ label: {
47
+ type: String,
48
+ required: false
49
+ },
50
+ swipeThreshold: {
51
+ type: Number,
52
+ required: false
53
+ }
54
+ });
55
+ defineSlots();
56
+ const providerProps = useForwardProps(reactivePick(props, "duration", "label", "swipeThreshold"));
57
+ const { toasts, remove } = useToast();
68
58
  const swipeDirection = computed(() => {
69
59
  switch (props.position) {
70
- case 'top-center':
71
- return 'up'
72
- case 'top-right':
73
- case 'bottom-right':
74
- return 'right'
75
- case 'bottom-center':
76
- return 'down'
77
- case 'top-left':
78
- case 'bottom-left':
79
- return 'left'
60
+ case "top-center":
61
+ return "up";
62
+ case "top-right":
63
+ case "bottom-right":
64
+ return "right";
65
+ case "bottom-center":
66
+ return "down";
67
+ case "top-left":
68
+ case "bottom-left":
69
+ return "left";
80
70
  }
81
- return 'right'
82
- })
83
-
71
+ return "right";
72
+ });
84
73
  const b24ui = computed(() => toaster({
85
74
  position: props.position,
86
75
  swipeDirection: swipeDirection.value
87
- }))
88
-
89
- function onUpdateOpen(value: boolean, id: string | number) {
76
+ }));
77
+ function onUpdateOpen(value, id) {
90
78
  if (value) {
91
- return
79
+ return;
92
80
  }
93
-
94
- remove(id)
81
+ remove(id);
95
82
  }
96
-
97
- const hovered = ref(false)
98
- const expanded = computed(() => props.expand || hovered.value)
99
-
100
- const refs = ref<{ height: number }[]>([])
101
-
102
- const height = computed(() => refs.value.reduce((acc, { height }) => acc + height + 16, 0))
103
- const frontHeight = computed(() => refs.value[refs.value.length - 1]?.height || 0)
104
-
105
- function getOffset(index: number) {
106
- return refs.value.slice(index + 1).reduce((acc, { height }) => acc + height + 16, 0)
83
+ const hovered = ref(false);
84
+ const expanded = computed(() => props.expand || hovered.value);
85
+ const refs = ref([]);
86
+ const height = computed(() => refs.value.reduce((acc, { height: height2 }) => acc + height2 + 16, 0));
87
+ const frontHeight = computed(() => refs.value[refs.value.length - 1]?.height || 0);
88
+ function getOffset(index) {
89
+ return refs.value.slice(index + 1).reduce((acc, { height: height2 }) => acc + height2 + 16, 0);
107
90
  }
108
91
  </script>
109
92
 
@@ -112,24 +95,24 @@ function getOffset(index: number) {
112
95
  <slot />
113
96
 
114
97
  <B24Toast
115
- v-for="(toast, index) of toasts"
98
+ v-for="(toast, index) in toasts"
116
99
  :key="toast.id"
117
100
  ref="refs"
118
101
  v-bind="omit(toast, ['id', 'close'])"
119
- :close="(toast.close as boolean)"
102
+ :close="toast.close"
120
103
  :data-expanded="expanded"
121
104
  :data-front="!expanded && index === toasts.length - 1"
122
105
  :style="{
123
- '--index': (index - toasts.length) + toasts.length,
124
- '--before': toasts.length - 1 - index,
125
- '--offset': getOffset(index),
126
- '--scale': expanded ? '1' : 'calc(1 - var(--before) * var(--scale-factor))',
127
- '--translate': expanded ? 'calc(var(--offset) * var(--translate-factor))' : 'calc(var(--before) * var(--gap))',
128
- '--transform': 'translateY(var(--translate)) scale(var(--scale))'
129
- }"
106
+ '--index': index - toasts.length + toasts.length,
107
+ '--before': toasts.length - 1 - index,
108
+ '--offset': getOffset(index),
109
+ '--scale': expanded ? '1' : 'calc(1 - var(--before) * var(--scale-factor))',
110
+ '--translate': expanded ? 'calc(var(--offset) * var(--translate-factor))' : 'calc(var(--before) * var(--gap))',
111
+ '--transform': 'translateY(var(--translate)) scale(var(--scale))'
112
+ }"
130
113
  :class="[b24ui.base(), {
131
- 'cursor-pointer': !!toast.onClick
132
- }]"
114
+ 'cursor-pointer': !!toast.onClick
115
+ }]"
133
116
  @update:open="onUpdateOpen($event, toast.id)"
134
117
  @click="toast.onClick && toast.onClick(toast)"
135
118
  />
@@ -139,12 +122,12 @@ function getOffset(index: number) {
139
122
  :data-expanded="expanded"
140
123
  :class="b24ui.viewport({ class: [props.class, props.b24ui?.viewport] })"
141
124
  :style="{
142
- '--scale-factor': '0.05',
143
- '--translate-factor': position?.startsWith('top') ? '1px' : '-1px',
144
- '--gap': position?.startsWith('top') ? '16px' : '-16px',
145
- '--front-height': `${frontHeight}px`,
146
- '--height': `${height}px`
147
- }"
125
+ '--scale-factor': '0.05',
126
+ '--translate-factor': position?.startsWith('top') ? '1px' : '-1px',
127
+ '--gap': position?.startsWith('top') ? '16px' : '-16px',
128
+ '--front-height': `${frontHeight}px`,
129
+ '--height': `${height}px`
130
+ }"
148
131
  @mouseenter="hovered = true"
149
132
  @mouseleave="hovered = false"
150
133
  />
@@ -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,83 @@
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 { useForwardPropsEmits } from "reka-ui";
13
+ import { reactivePick } from "@vueuse/core";
14
+ const props = defineProps({
15
+ text: {
16
+ type: String,
17
+ required: false
18
+ },
19
+ kbds: {
20
+ type: Array,
21
+ required: false
22
+ },
23
+ content: {
24
+ type: Object,
25
+ required: false
26
+ },
27
+ arrow: {
28
+ type: [Boolean, Object],
29
+ required: false
30
+ },
31
+ portal: {
32
+ type: Boolean,
33
+ required: false,
34
+ default: true
35
+ },
36
+ class: {
37
+ type: null,
38
+ required: false
39
+ },
40
+ b24ui: {
41
+ type: Object,
42
+ required: false
43
+ },
44
+ defaultOpen: {
45
+ type: Boolean,
46
+ required: false
47
+ },
48
+ open: {
49
+ type: Boolean,
50
+ required: false
51
+ },
52
+ delayDuration: {
53
+ type: Number,
54
+ required: false
55
+ },
56
+ disableHoverableContent: {
57
+ type: Boolean,
58
+ required: false
59
+ },
60
+ disableClosingTrigger: {
61
+ type: Boolean,
62
+ required: false
63
+ },
64
+ disabled: {
65
+ type: Boolean,
66
+ required: false
67
+ },
68
+ ignoreNonKeyboardFocus: {
69
+ type: Boolean,
70
+ required: false
71
+ }
72
+ });
73
+ const emits = defineEmits(["update:open"]);
74
+ const slots = defineSlots();
75
+ const rootProps = useForwardPropsEmits(reactivePick(props, "defaultOpen", "open", "delayDuration", "disableHoverableContent", "disableClosingTrigger", "disabled", "ignoreNonKeyboardFocus"), emits);
76
+ const contentProps = toRef(() => defu(props.content, { side: "bottom", sideOffset: 8, collisionPadding: 8 }));
77
+ const arrowProps = toRef(() => props.arrow);
64
78
  const b24ui = computed(() => tooltip({
65
79
  side: contentProps.value.side
66
- }))
80
+ }));
67
81
  </script>
68
82
 
69
83
  <template>
@@ -81,8 +95,8 @@ const b24ui = computed(() => tooltip({
81
95
  <B24Kbd
82
96
  v-for="(kbd, index) in kbds"
83
97
  :key="index"
84
- :size="((props.b24ui?.kbdsSize || b24ui.kbdsSize()) as KbdProps['size'])"
85
- :depth="((props.b24ui?.kbdsDepth || b24ui.kbdsDepth()) as KbdProps['depth'])"
98
+ :size="props.b24ui?.kbdsSize || b24ui.kbdsSize()"
99
+ :depth="props.b24ui?.kbdsDepth || b24ui.kbdsDepth()"
86
100
  v-bind="typeof kbd === 'string' ? { value: kbd } : kbd"
87
101
  />
88
102
  </span>