@bitrix24/b24ui-nuxt 0.5.9 → 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 (196) hide show
  1. package/.nuxt/b24ui/navigation-menu.ts +0 -2
  2. package/.nuxt/b24ui/popover.ts +1 -1
  3. package/dist/meta.d.mts +4789 -4897
  4. package/dist/meta.mjs +4789 -4897
  5. package/dist/module.json +5 -5
  6. package/dist/module.mjs +11 -7
  7. package/dist/runtime/components/Advice.vue +47 -54
  8. package/dist/runtime/components/Advice.vue.d.ts +170 -0
  9. package/dist/runtime/components/Alert.vue +71 -96
  10. package/dist/runtime/components/Alert.vue.d.ts +464 -0
  11. package/dist/runtime/components/App.vue +37 -34
  12. package/dist/runtime/components/App.vue.d.ts +23 -0
  13. package/dist/runtime/components/Avatar.vue +69 -81
  14. package/dist/runtime/components/Avatar.vue.d.ts +281 -0
  15. package/dist/runtime/components/AvatarGroup.vue +53 -76
  16. package/dist/runtime/components/AvatarGroup.vue.d.ts +204 -0
  17. package/dist/runtime/components/Badge.vue +83 -83
  18. package/dist/runtime/components/Badge.vue.d.ts +517 -0
  19. package/dist/runtime/components/Button.vue +219 -149
  20. package/dist/runtime/components/Button.vue.d.ts +640 -0
  21. package/dist/runtime/components/ButtonGroup.vue +35 -51
  22. package/dist/runtime/components/ButtonGroup.vue.d.ts +116 -0
  23. package/dist/runtime/components/Calendar.vue +186 -152
  24. package/dist/runtime/components/Calendar.vue.d.ts +437 -0
  25. package/dist/runtime/components/Checkbox.vue +84 -73
  26. package/dist/runtime/components/Checkbox.vue.d.ts +354 -0
  27. package/dist/runtime/components/Chip.vue +59 -74
  28. package/dist/runtime/components/Chip.vue.d.ts +271 -0
  29. package/dist/runtime/components/Collapsible.vue +44 -41
  30. package/dist/runtime/components/Collapsible.vue.d.ts +118 -0
  31. package/dist/runtime/components/Container.vue +18 -27
  32. package/dist/runtime/components/Container.vue.d.ts +27 -0
  33. package/dist/runtime/components/Countdown.vue +198 -378
  34. package/dist/runtime/components/Countdown.vue.d.ts +356 -0
  35. package/dist/runtime/components/DescriptionList.vue +102 -149
  36. package/dist/runtime/components/DescriptionList.vue.d.ts +379 -0
  37. package/dist/runtime/components/DropdownMenu.vue +83 -139
  38. package/dist/runtime/components/DropdownMenu.vue.d.ts +533 -0
  39. package/dist/runtime/components/DropdownMenuContent.vue +137 -81
  40. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +228 -0
  41. package/dist/runtime/components/Form.vue +162 -216
  42. package/dist/runtime/components/Form.vue.d.ts +55 -0
  43. package/dist/runtime/components/FormField.vue +76 -80
  44. package/dist/runtime/components/FormField.vue.d.ts +282 -0
  45. package/dist/runtime/components/Input.vue +160 -179
  46. package/dist/runtime/components/Input.vue.d.ts +755 -0
  47. package/dist/runtime/components/InputMenu.vue +300 -381
  48. package/dist/runtime/components/InputMenu.vue.d.ts +1504 -0
  49. package/dist/runtime/components/InputNumber.vue +178 -175
  50. package/dist/runtime/components/InputNumber.vue.d.ts +658 -0
  51. package/dist/runtime/components/Kbd.vue +33 -45
  52. package/dist/runtime/components/Kbd.vue.d.ts +109 -0
  53. package/dist/runtime/components/Link.vue +179 -173
  54. package/dist/runtime/components/Link.vue.d.ts +129 -0
  55. package/dist/runtime/components/LinkBase.vue +64 -42
  56. package/dist/runtime/components/LinkBase.vue.d.ts +48 -0
  57. package/dist/runtime/components/Modal.vue +105 -127
  58. package/dist/runtime/components/Modal.vue.d.ts +327 -0
  59. package/dist/runtime/components/ModalDialogClose.vue +4 -8
  60. package/dist/runtime/components/ModalDialogClose.vue.d.ts +10 -0
  61. package/dist/runtime/components/Navbar.vue +24 -33
  62. package/dist/runtime/components/Navbar.vue.d.ts +101 -0
  63. package/dist/runtime/components/NavbarDivider.vue +24 -33
  64. package/dist/runtime/components/NavbarDivider.vue.d.ts +101 -0
  65. package/dist/runtime/components/NavbarSection.vue +24 -33
  66. package/dist/runtime/components/NavbarSection.vue.d.ts +101 -0
  67. package/dist/runtime/components/NavbarSpacer.vue +24 -33
  68. package/dist/runtime/components/NavbarSpacer.vue.d.ts +101 -0
  69. package/dist/runtime/components/NavigationMenu.vue +152 -216
  70. package/dist/runtime/components/NavigationMenu.vue.d.ts +824 -0
  71. package/dist/runtime/components/OverlayProvider.vue +13 -17
  72. package/dist/runtime/components/OverlayProvider.vue.d.ts +2 -0
  73. package/dist/runtime/components/Popover.vue +81 -81
  74. package/dist/runtime/components/Popover.vue.d.ts +147 -0
  75. package/dist/runtime/components/Progress.vue +109 -136
  76. package/dist/runtime/components/Progress.vue.d.ts +592 -0
  77. package/dist/runtime/components/RadioGroup.vue +120 -134
  78. package/dist/runtime/components/RadioGroup.vue.d.ts +723 -0
  79. package/dist/runtime/components/Range.vue +94 -85
  80. package/dist/runtime/components/Range.vue.d.ts +417 -0
  81. package/dist/runtime/components/Select.vue +212 -260
  82. package/dist/runtime/components/Select.vue.d.ts +1200 -0
  83. package/dist/runtime/components/SelectMenu.vue +272 -366
  84. package/dist/runtime/components/SelectMenu.vue.d.ts +1298 -0
  85. package/dist/runtime/components/Separator.vue +61 -71
  86. package/dist/runtime/components/Separator.vue.d.ts +400 -0
  87. package/dist/runtime/components/Sidebar.vue +24 -33
  88. package/dist/runtime/components/Sidebar.vue.d.ts +101 -0
  89. package/dist/runtime/components/SidebarBody.vue +30 -38
  90. package/dist/runtime/components/SidebarBody.vue.d.ts +90 -0
  91. package/dist/runtime/components/SidebarFooter.vue +24 -33
  92. package/dist/runtime/components/SidebarFooter.vue.d.ts +101 -0
  93. package/dist/runtime/components/SidebarHeader.vue +24 -33
  94. package/dist/runtime/components/SidebarHeader.vue.d.ts +101 -0
  95. package/dist/runtime/components/SidebarHeading.vue +24 -33
  96. package/dist/runtime/components/SidebarHeading.vue.d.ts +101 -0
  97. package/dist/runtime/components/SidebarLayout.vue +40 -70
  98. package/dist/runtime/components/SidebarLayout.vue.d.ts +222 -0
  99. package/dist/runtime/components/SidebarSection.vue +24 -33
  100. package/dist/runtime/components/SidebarSection.vue.d.ts +101 -0
  101. package/dist/runtime/components/SidebarSpacer.vue +24 -33
  102. package/dist/runtime/components/SidebarSpacer.vue.d.ts +101 -0
  103. package/dist/runtime/components/Skeleton.vue +17 -22
  104. package/dist/runtime/components/Skeleton.vue.d.ts +26 -0
  105. package/dist/runtime/components/Slideover.vue +108 -131
  106. package/dist/runtime/components/Slideover.vue.d.ts +360 -0
  107. package/dist/runtime/components/StackedLayout.vue +40 -73
  108. package/dist/runtime/components/StackedLayout.vue.d.ts +192 -0
  109. package/dist/runtime/components/Switch.vue +100 -95
  110. package/dist/runtime/components/Switch.vue.d.ts +587 -0
  111. package/dist/runtime/components/Tabs.vue +83 -105
  112. package/dist/runtime/components/Tabs.vue.d.ts +453 -0
  113. package/dist/runtime/components/Textarea.vue +177 -201
  114. package/dist/runtime/components/Textarea.vue.d.ts +601 -0
  115. package/dist/runtime/components/Toast.vue +94 -105
  116. package/dist/runtime/components/Toast.vue.d.ts +438 -0
  117. package/dist/runtime/components/Toaster.vue +94 -111
  118. package/dist/runtime/components/Toaster.vue.d.ts +219 -0
  119. package/dist/runtime/components/Tooltip.vue +78 -64
  120. package/dist/runtime/components/Tooltip.vue.d.ts +186 -0
  121. package/dist/runtime/components/content/TableWrapper.vue +58 -70
  122. package/dist/runtime/components/content/TableWrapper.vue.d.ts +237 -0
  123. package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
  124. package/dist/runtime/composables/useButtonGroup.d.ts +2 -2
  125. package/dist/runtime/composables/useComponentIcons.d.ts +1 -1
  126. package/dist/runtime/composables/useFormField.d.ts +1 -1
  127. package/dist/runtime/prose/A.vue +18 -23
  128. package/dist/runtime/prose/A.vue.d.ts +84 -0
  129. package/dist/runtime/prose/Blockquote.vue +18 -23
  130. package/dist/runtime/prose/Blockquote.vue.d.ts +84 -0
  131. package/dist/runtime/prose/Code.vue +23 -31
  132. package/dist/runtime/prose/Code.vue.d.ts +97 -0
  133. package/dist/runtime/prose/Em.vue +18 -23
  134. package/dist/runtime/prose/Em.vue.d.ts +84 -0
  135. package/dist/runtime/prose/H1.vue +18 -23
  136. package/dist/runtime/prose/H1.vue.d.ts +97 -0
  137. package/dist/runtime/prose/H2.vue +18 -23
  138. package/dist/runtime/prose/H2.vue.d.ts +123 -0
  139. package/dist/runtime/prose/H3.vue +18 -23
  140. package/dist/runtime/prose/H3.vue.d.ts +123 -0
  141. package/dist/runtime/prose/H4.vue +18 -23
  142. package/dist/runtime/prose/H4.vue.d.ts +123 -0
  143. package/dist/runtime/prose/H5.vue +18 -23
  144. package/dist/runtime/prose/H5.vue.d.ts +123 -0
  145. package/dist/runtime/prose/H6.vue +18 -23
  146. package/dist/runtime/prose/H6.vue.d.ts +123 -0
  147. package/dist/runtime/prose/Hr.vue +18 -19
  148. package/dist/runtime/prose/Hr.vue.d.ts +74 -0
  149. package/dist/runtime/prose/Img.vue +18 -23
  150. package/dist/runtime/prose/Img.vue.d.ts +77 -0
  151. package/dist/runtime/prose/Li.vue +18 -23
  152. package/dist/runtime/prose/Li.vue.d.ts +84 -0
  153. package/dist/runtime/prose/Ol.vue +18 -23
  154. package/dist/runtime/prose/Ol.vue.d.ts +84 -0
  155. package/dist/runtime/prose/P.vue +18 -23
  156. package/dist/runtime/prose/P.vue.d.ts +84 -0
  157. package/dist/runtime/prose/Pre.vue +28 -33
  158. package/dist/runtime/prose/Pre.vue.d.ts +117 -0
  159. package/dist/runtime/prose/Strong.vue +18 -23
  160. package/dist/runtime/prose/Strong.vue.d.ts +84 -0
  161. package/dist/runtime/prose/Table.vue +44 -54
  162. package/dist/runtime/prose/Table.vue.d.ts +144 -0
  163. package/dist/runtime/prose/Tbody.vue +18 -23
  164. package/dist/runtime/prose/Tbody.vue.d.ts +84 -0
  165. package/dist/runtime/prose/Td.vue +18 -23
  166. package/dist/runtime/prose/Td.vue.d.ts +84 -0
  167. package/dist/runtime/prose/Th.vue +18 -23
  168. package/dist/runtime/prose/Th.vue.d.ts +84 -0
  169. package/dist/runtime/prose/Thead.vue +18 -23
  170. package/dist/runtime/prose/Thead.vue.d.ts +84 -0
  171. package/dist/runtime/prose/Tr.vue +18 -23
  172. package/dist/runtime/prose/Tr.vue.d.ts +84 -0
  173. package/dist/runtime/prose/Ul.vue +18 -23
  174. package/dist/runtime/prose/Ul.vue.d.ts +84 -0
  175. package/dist/runtime/vue/components/Link.vue +201 -202
  176. package/dist/runtime/vue/components/Link.vue.d.ts +129 -0
  177. package/dist/runtime/vue/stubs.d.ts +3 -3
  178. package/dist/shared/{b24ui-nuxt.C1lGF53R.mjs → b24ui-nuxt.CS9Lf0os.mjs} +4 -3
  179. package/dist/types.d.mts +3 -5
  180. package/dist/unplugin.mjs +1 -1
  181. package/dist/vite.mjs +1 -1
  182. package/package.json +59 -32
  183. package/dist/meta.cjs +0 -72220
  184. package/dist/meta.d.cts +0 -72218
  185. package/dist/meta.d.ts +0 -72218
  186. package/dist/module.cjs +0 -59
  187. package/dist/module.d.cts +0 -15
  188. package/dist/module.d.ts +0 -15
  189. package/dist/shared/b24ui-nuxt.BVg3rkkG.cjs +0 -7720
  190. package/dist/types.d.ts +0 -7
  191. package/dist/unplugin.cjs +0 -236
  192. package/dist/unplugin.d.cts +0 -33
  193. package/dist/unplugin.d.ts +0 -33
  194. package/dist/vite.cjs +0 -21
  195. package/dist/vite.d.cts +0 -14
  196. package/dist/vite.d.ts +0 -14
@@ -1,90 +1,57 @@
1
- <script lang="ts">
2
- // import type { VariantProps } from 'tailwind-variants'
3
- import type { AppConfig } from '@nuxt/schema'
4
- import _appConfig from '#build/app.config'
5
- import theme from '#build/b24ui/stacked-layout'
6
- import { tv } from '../utils/tv'
7
- import { useRoute } from 'vue-router'
8
-
9
- const appConfigStackedLayout = _appConfig as AppConfig & { b24ui: { stackedLayout: Partial<typeof theme> } }
10
-
11
- const stackedLayout = tv({ extend: tv(theme), ...(appConfigStackedLayout.b24ui?.stackedLayout || {}) })
12
-
13
- // type StackedLayoutVariants = VariantProps<typeof stackedLayout>
14
-
15
- export interface StackedLayoutProps {
16
- /**
17
- * The element or component this component should render as.
18
- * @defaultValue 'div'
19
- */
20
- as?: any
21
- useLightContent?: boolean
22
- class?: any
23
- b24ui?: Partial<typeof stackedLayout.slots>
24
- }
25
-
26
- export interface StackedLayoutSlots {
27
- /**
28
- * Menu for mobile screen sizes.
29
- * @param props
30
- * @param props.handleClick - Handler for navigation click events
31
- */
32
- sidebar(props: { handleClick: () => void }): any
33
- /**
34
- * Menu for desktop screen sizes.
35
- */
36
- navbar(props?: {}): any
37
- /**
38
- * The page content.
39
- */
40
- default(props?: {}): any
41
- }
1
+ <script>
2
+ import _appConfig from "#build/app.config";
3
+ import theme from "#build/b24ui/stacked-layout";
4
+ import { tv } from "../utils/tv";
5
+ const appConfigStackedLayout = _appConfig;
6
+ const stackedLayout = tv({ extend: tv(theme), ...appConfigStackedLayout.b24ui?.stackedLayout || {} });
42
7
  </script>
43
8
 
44
- <script setup lang="ts">
45
- import { ref, computed, watch, onUnmounted } from 'vue'
46
- import { Primitive } from 'reka-ui'
47
- import B24Slideover from './Slideover.vue'
48
- import B24Sidebar from './Sidebar.vue'
49
- import B24ModalDialogClose from './ModalDialogClose.vue'
50
- import B24Navbar from './Navbar.vue'
51
- import MenuIcon from '@bitrix24/b24icons-vue/main/MenuIcon'
52
- import Cross50Icon from '@bitrix24/b24icons-vue/actions/Cross50Icon'
53
-
54
- const props = withDefaults(defineProps<StackedLayoutProps>(), {
55
- as: 'div',
56
- useLightContent: true
57
- })
58
- const slots = defineSlots<StackedLayoutSlots>()
59
-
60
- const route = useRoute()
61
- const isUseSideBar = computed(() => !!slots.sidebar)
62
- const openSidebarSlideover = ref(false)
63
-
9
+ <script setup>
10
+ import { ref, computed, watch, onUnmounted } from "vue";
11
+ const props = defineProps({
12
+ as: {
13
+ type: null,
14
+ required: false,
15
+ default: "div"
16
+ },
17
+ useLightContent: {
18
+ type: Boolean,
19
+ required: false,
20
+ default: true
21
+ },
22
+ class: {
23
+ type: null,
24
+ required: false
25
+ },
26
+ b24ui: {
27
+ type: Object,
28
+ required: false
29
+ }
30
+ });
31
+ const slots = defineSlots();
32
+ const route = useRoute();
33
+ const isUseSideBar = computed(() => !!slots.sidebar);
34
+ const openSidebarSlideover = ref(false);
64
35
  const b24ui = computed(() => stackedLayout({
65
36
  useSidebar: isUseSideBar.value,
66
37
  useLightContent: Boolean(props.useLightContent)
67
- }))
68
-
38
+ }));
69
39
  const closeModal = () => {
70
40
  if (openSidebarSlideover.value) {
71
- openSidebarSlideover.value = false
41
+ openSidebarSlideover.value = false;
72
42
  }
73
- }
74
-
43
+ };
75
44
  const stopWatcher = watch(
76
45
  () => route.path,
77
46
  () => closeModal(),
78
47
  { immediate: true }
79
- )
80
-
48
+ );
81
49
  onUnmounted(() => {
82
- stopWatcher()
83
- })
84
-
50
+ stopWatcher();
51
+ });
85
52
  const handleNavigationClick = () => {
86
- closeModal()
87
- }
53
+ closeModal();
54
+ };
88
55
  </script>
89
56
 
90
57
  <template>
@@ -0,0 +1,192 @@
1
+ declare const stackedLayout: import("tailwind-variants").TVReturnType<{
2
+ useSidebar: {
3
+ true: string;
4
+ false: string;
5
+ };
6
+ useLightContent: {
7
+ true: {
8
+ root: string;
9
+ containerWrapper: string;
10
+ };
11
+ false: {
12
+ container: string;
13
+ };
14
+ };
15
+ }, {
16
+ root: string;
17
+ sidebarSlideoverContainer: string;
18
+ sidebarSlideover: string;
19
+ sidebarSlideoverBtnClose: string;
20
+ header: string;
21
+ headerMenuIcon: string;
22
+ headerPaddings: string;
23
+ headerWrapper: string;
24
+ container: string;
25
+ containerWrapper: string;
26
+ containerWrapperInner: string;
27
+ }, undefined, {
28
+ useSidebar: {
29
+ true: string;
30
+ false: string;
31
+ };
32
+ useLightContent: {
33
+ true: {
34
+ root: string;
35
+ containerWrapper: string;
36
+ };
37
+ false: {
38
+ container: string;
39
+ };
40
+ };
41
+ }, {
42
+ root: string;
43
+ sidebarSlideoverContainer: string;
44
+ sidebarSlideover: string;
45
+ sidebarSlideoverBtnClose: string;
46
+ header: string;
47
+ headerMenuIcon: string;
48
+ headerPaddings: string;
49
+ headerWrapper: string;
50
+ container: string;
51
+ containerWrapper: string;
52
+ containerWrapperInner: string;
53
+ }, import("tailwind-variants").TVReturnType<{
54
+ useSidebar: {
55
+ true: string;
56
+ false: string;
57
+ };
58
+ useLightContent: {
59
+ true: {
60
+ root: string;
61
+ containerWrapper: string;
62
+ };
63
+ false: {
64
+ container: string;
65
+ };
66
+ };
67
+ }, {
68
+ root: string;
69
+ sidebarSlideoverContainer: string;
70
+ sidebarSlideover: string;
71
+ sidebarSlideoverBtnClose: string;
72
+ header: string;
73
+ headerMenuIcon: string;
74
+ headerPaddings: string;
75
+ headerWrapper: string;
76
+ container: string;
77
+ containerWrapper: string;
78
+ containerWrapperInner: string;
79
+ }, undefined, {
80
+ useSidebar: {
81
+ true: string;
82
+ false: string;
83
+ };
84
+ useLightContent: {
85
+ true: {
86
+ root: string;
87
+ containerWrapper: string;
88
+ };
89
+ false: {
90
+ container: string;
91
+ };
92
+ };
93
+ }, {
94
+ root: string;
95
+ sidebarSlideoverContainer: string;
96
+ sidebarSlideover: string;
97
+ sidebarSlideoverBtnClose: string;
98
+ header: string;
99
+ headerMenuIcon: string;
100
+ headerPaddings: string;
101
+ headerWrapper: string;
102
+ container: string;
103
+ containerWrapper: string;
104
+ containerWrapperInner: string;
105
+ }, import("tailwind-variants").TVReturnType<{
106
+ useSidebar: {
107
+ true: string;
108
+ false: string;
109
+ };
110
+ useLightContent: {
111
+ true: {
112
+ root: string;
113
+ containerWrapper: string;
114
+ };
115
+ false: {
116
+ container: string;
117
+ };
118
+ };
119
+ }, {
120
+ root: string;
121
+ sidebarSlideoverContainer: string;
122
+ sidebarSlideover: string;
123
+ sidebarSlideoverBtnClose: string;
124
+ header: string;
125
+ headerMenuIcon: string;
126
+ headerPaddings: string;
127
+ headerWrapper: string;
128
+ container: string;
129
+ containerWrapper: string;
130
+ containerWrapperInner: string;
131
+ }, undefined, unknown, unknown, undefined>>>;
132
+ export interface StackedLayoutProps {
133
+ /**
134
+ * The element or component this component should render as.
135
+ * @defaultValue 'div'
136
+ */
137
+ as?: any;
138
+ useLightContent?: boolean;
139
+ class?: any;
140
+ b24ui?: Partial<typeof stackedLayout.slots>;
141
+ }
142
+ export interface StackedLayoutSlots {
143
+ /**
144
+ * Menu for mobile screen sizes.
145
+ * @param props
146
+ * @param props.handleClick - Handler for navigation click events
147
+ */
148
+ sidebar(props: {
149
+ handleClick: () => void;
150
+ }): any;
151
+ /**
152
+ * Menu for desktop screen sizes.
153
+ */
154
+ navbar(props?: {}): any;
155
+ /**
156
+ * The page content.
157
+ */
158
+ default(props?: {}): any;
159
+ }
160
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<StackedLayoutProps>, {
161
+ as: string;
162
+ useLightContent: boolean;
163
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<StackedLayoutProps>, {
164
+ as: string;
165
+ useLightContent: boolean;
166
+ }>>> & Readonly<{}>, {
167
+ as: any;
168
+ useLightContent: boolean;
169
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<StackedLayoutSlots> & StackedLayoutSlots>;
170
+ export default _default;
171
+ type __VLS_WithDefaults<P, D> = {
172
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
173
+ default: D[K];
174
+ }> : P[K];
175
+ };
176
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
177
+ type __VLS_TypePropsToOption<T> = {
178
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
179
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
180
+ } : {
181
+ type: import('vue').PropType<T[K]>;
182
+ required: true;
183
+ };
184
+ };
185
+ type __VLS_WithTemplateSlots<T, S> = T & {
186
+ new (): {
187
+ $slots: S;
188
+ };
189
+ };
190
+ type __VLS_PrettifyLocal<T> = {
191
+ [K in keyof T]: T[K];
192
+ } & {};
@@ -1,105 +1,110 @@
1
- <script lang="ts">
2
- import type { VariantProps } from 'tailwind-variants'
3
- import type { SwitchRootProps } from 'reka-ui'
4
- import type { AppConfig } from '@nuxt/schema'
5
- import _appConfig from '#build/app.config'
6
- import theme from '#build/b24ui/switch'
7
- import { tv } from '../utils/tv'
8
- import type { IconComponent } from '../types'
9
- import type { PartialString } from '../types/utils'
10
-
11
- const appConfigSwitch = _appConfig as AppConfig & { b24ui: { switch: Partial<typeof theme> } }
12
-
13
- const switchTv = tv({ extend: tv(theme), ...(appConfigSwitch.b24ui?.switch || {}) })
14
-
15
- type SwitchVariants = VariantProps<typeof switchTv>
16
-
17
- export interface SwitchProps extends Pick<SwitchRootProps, 'disabled' | 'id' | 'name' | 'required' | 'value' | 'defaultValue'> {
18
- /**
19
- * The element or component this component should render as.
20
- * @defaultValue 'div'
21
- */
22
- as?: any
23
- /**
24
- * @defaultValue 'primary'
25
- */
26
- color?: SwitchVariants['color']
27
- /**
28
- * @defaultValue 'md'
29
- */
30
- size?: SwitchVariants['size']
31
- /**
32
- * When `true`, the loading icon will be displayed
33
- * @defaultValue false
34
- */
35
- loading?: boolean
36
- /**
37
- * The icon when the `loading` prop is `true`.
38
- * @defaultValue icons.refresh
39
- * @IconComponent
40
- */
41
- loadingIcon?: IconComponent
42
- /**
43
- * Display an icon when the switch is checked.
44
- * @IconComponent
45
- */
46
- checkedIcon?: IconComponent
47
- /**
48
- * Display an icon when the switch is unchecked.
49
- * @IconComponent
50
- */
51
- uncheckedIcon?: IconComponent
52
- label?: string
53
- description?: string
54
- class?: any
55
- b24ui?: PartialString<typeof switchTv.slots>
56
- }
57
-
58
- export type SwitchEmits = {
59
- change: [payload: Event]
60
- }
61
-
62
- export interface SwitchSlots {
63
- label(props: { label?: string }): any
64
- description(props: { description?: string }): any
65
- }
1
+ <script>
2
+ import _appConfig from "#build/app.config";
3
+ import theme from "#build/b24ui/switch";
4
+ import { tv } from "../utils/tv";
5
+ const appConfigSwitch = _appConfig;
6
+ const switchTv = tv({ extend: tv(theme), ...appConfigSwitch.b24ui?.switch || {} });
66
7
  </script>
67
8
 
68
- <script setup lang="ts">
69
- import { computed, useId } from 'vue'
70
- import { Primitive, SwitchRoot, SwitchThumb, useForwardProps, Label } from 'reka-ui'
71
- import { reactivePick } from '@vueuse/core'
72
- import { useFormField } from '../composables/useFormField'
73
- import { omit } from '../utils'
74
- import icons from '../dictionary/icons'
75
-
76
- defineOptions({ inheritAttrs: false })
77
-
78
- const props = defineProps<SwitchProps>()
79
- const slots = defineSlots<SwitchSlots>()
80
- const emits = defineEmits<SwitchEmits>()
81
-
82
- const modelValue = defineModel<boolean>({ default: undefined })
83
-
84
- const rootProps = useForwardProps(reactivePick(props, 'required', 'value', 'defaultValue'))
85
-
86
- const { id: _id, emitFormChange, emitFormInput, size, color, name, disabled, ariaAttrs } = useFormField<SwitchProps>(props)
87
- const id = _id.value ?? useId()
88
-
9
+ <script setup>
10
+ import { computed, useId } from "vue";
11
+ import { useForwardProps } from "reka-ui";
12
+ import { reactivePick } from "@vueuse/core";
13
+ import { useFormField } from "../composables/useFormField";
14
+ defineOptions({ inheritAttrs: false });
15
+ const props = defineProps({
16
+ as: {
17
+ type: null,
18
+ required: false
19
+ },
20
+ color: {
21
+ type: null,
22
+ required: false
23
+ },
24
+ size: {
25
+ type: null,
26
+ required: false
27
+ },
28
+ loading: {
29
+ type: Boolean,
30
+ required: false
31
+ },
32
+ loadingIcon: {
33
+ type: [Function, Object],
34
+ required: false
35
+ },
36
+ checkedIcon: {
37
+ type: [Function, Object],
38
+ required: false
39
+ },
40
+ uncheckedIcon: {
41
+ type: [Function, Object],
42
+ required: false
43
+ },
44
+ label: {
45
+ type: String,
46
+ required: false
47
+ },
48
+ description: {
49
+ type: String,
50
+ required: false
51
+ },
52
+ class: {
53
+ type: null,
54
+ required: false
55
+ },
56
+ b24ui: {
57
+ type: null,
58
+ required: false
59
+ },
60
+ disabled: {
61
+ type: Boolean,
62
+ required: false
63
+ },
64
+ id: {
65
+ type: String,
66
+ required: false
67
+ },
68
+ name: {
69
+ type: String,
70
+ required: false
71
+ },
72
+ required: {
73
+ type: Boolean,
74
+ required: false
75
+ },
76
+ value: {
77
+ type: String,
78
+ required: false
79
+ },
80
+ defaultValue: {
81
+ type: Boolean,
82
+ required: false
83
+ }
84
+ });
85
+ const slots = defineSlots();
86
+ const emits = defineEmits(["change"]);
87
+ const modelValue = defineModel({
88
+ "type": Boolean,
89
+ ...{
90
+ default: void 0
91
+ }
92
+ });
93
+ const rootProps = useForwardProps(reactivePick(props, "required", "value", "defaultValue"));
94
+ const { id: _id, emitFormChange, emitFormInput, size, color, name, disabled, ariaAttrs } = useFormField(props);
95
+ const id = _id.value ?? useId();
89
96
  const b24ui = computed(() => switchTv({
90
97
  size: size.value,
91
98
  color: color.value,
92
99
  required: props.required,
93
100
  loading: props.loading,
94
101
  disabled: disabled.value || props.loading
95
- }))
96
-
97
- function onUpdate(value: any) {
98
- // @ts-expect-error - 'target' does not exist in type 'EventInit'
99
- const event = new Event('change', { target: { value } })
100
- emits('change', event)
101
- emitFormChange()
102
- emitFormInput()
102
+ }));
103
+ function onUpdate(value) {
104
+ const event = new Event("change", { target: { value } });
105
+ emits("change", event);
106
+ emitFormChange();
107
+ emitFormInput();
103
108
  }
104
109
  </script>
105
110
 
@@ -136,7 +141,7 @@ function onUpdate(value: any) {
136
141
  </SwitchThumb>
137
142
  </SwitchRoot>
138
143
  </div>
139
- <div v-if="(label || !!slots.label) || (description || !!slots.description)" :class="b24ui.wrapper({ class: props.b24ui?.wrapper })">
144
+ <div v-if="label || !!slots.label || (description || !!slots.description)" :class="b24ui.wrapper({ class: props.b24ui?.wrapper })">
140
145
  <Label v-if="label || !!slots.label" :for="id" :class="b24ui.label({ class: props.b24ui?.label })">
141
146
  <slot name="label" :label="label">
142
147
  {{ label }}