@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,90 +1,51 @@
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
+ import { useRoute } from "vue-router";
6
+ const appConfigStackedLayout = _appConfig;
7
+ const stackedLayout = tv({ extend: tv(theme), ...appConfigStackedLayout.b24ui?.stackedLayout || {} });
42
8
  </script>
43
9
 
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
-
10
+ <script setup>
11
+ import { ref, computed, watch, onUnmounted } from "vue";
12
+ import { Primitive } from "reka-ui";
13
+ import B24Slideover from "./Slideover.vue";
14
+ import B24Sidebar from "./Sidebar.vue";
15
+ import B24ModalDialogClose from "./ModalDialogClose.vue";
16
+ import B24Navbar from "./Navbar.vue";
17
+ import MenuIcon from "@bitrix24/b24icons-vue/main/MenuIcon";
18
+ import Cross50Icon from "@bitrix24/b24icons-vue/actions/Cross50Icon";
19
+ const props = defineProps({
20
+ as: { type: null, required: false, default: "div" },
21
+ useLightContent: { type: Boolean, required: false, default: true },
22
+ class: { type: null, required: false },
23
+ b24ui: { type: Object, required: false }
24
+ });
25
+ const slots = defineSlots();
26
+ const route = useRoute();
27
+ const isUseSideBar = computed(() => !!slots.sidebar);
28
+ const openSidebarSlideover = ref(false);
64
29
  const b24ui = computed(() => stackedLayout({
65
30
  useSidebar: isUseSideBar.value,
66
31
  useLightContent: Boolean(props.useLightContent)
67
- }))
68
-
32
+ }));
69
33
  const closeModal = () => {
70
34
  if (openSidebarSlideover.value) {
71
- openSidebarSlideover.value = false
35
+ openSidebarSlideover.value = false;
72
36
  }
73
- }
74
-
37
+ };
75
38
  const stopWatcher = watch(
76
39
  () => route.path,
77
40
  () => closeModal(),
78
41
  { immediate: true }
79
- )
80
-
42
+ );
81
43
  onUnmounted(() => {
82
- stopWatcher()
83
- })
84
-
44
+ stopWatcher();
45
+ });
85
46
  const handleNavigationClick = () => {
86
- closeModal()
87
- }
47
+ closeModal();
48
+ };
88
49
  </script>
89
50
 
90
51
  <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,56 @@
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 { Primitive, SwitchRoot, SwitchThumb, useForwardProps, Label } from "reka-ui";
12
+ import { reactivePick } from "@vueuse/core";
13
+ import { useFormField } from "../composables/useFormField";
14
+ import { omit } from "../utils";
15
+ import icons from "../dictionary/icons";
16
+ defineOptions({ inheritAttrs: false });
17
+ const props = defineProps({
18
+ as: { type: null, required: false },
19
+ color: { type: null, required: false },
20
+ size: { type: null, required: false },
21
+ loading: { type: Boolean, required: false },
22
+ loadingIcon: { type: [Function, Object], required: false },
23
+ checkedIcon: { type: [Function, Object], required: false },
24
+ uncheckedIcon: { type: [Function, Object], required: false },
25
+ label: { type: String, required: false },
26
+ description: { type: String, required: false },
27
+ class: { type: null, required: false },
28
+ b24ui: { type: null, required: false },
29
+ disabled: { type: Boolean, required: false },
30
+ id: { type: String, required: false },
31
+ name: { type: String, required: false },
32
+ required: { type: Boolean, required: false },
33
+ value: { type: String, required: false },
34
+ defaultValue: { type: Boolean, required: false }
35
+ });
36
+ const slots = defineSlots();
37
+ const emits = defineEmits(["change"]);
38
+ const modelValue = defineModel({ type: Boolean, ...{ default: void 0 } });
39
+ const rootProps = useForwardProps(reactivePick(props, "required", "value", "defaultValue"));
40
+ const { id: _id, emitFormChange, emitFormInput, size, color, name, disabled, ariaAttrs } = useFormField(props);
41
+ const id = _id.value ?? useId();
89
42
  const b24ui = computed(() => switchTv({
90
43
  size: size.value,
91
44
  color: color.value,
92
45
  required: props.required,
93
46
  loading: props.loading,
94
47
  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()
48
+ }));
49
+ function onUpdate(value) {
50
+ const event = new Event("change", { target: { value } });
51
+ emits("change", event);
52
+ emitFormChange();
53
+ emitFormInput();
103
54
  }
104
55
  </script>
105
56
 
@@ -136,7 +87,7 @@ function onUpdate(value: any) {
136
87
  </SwitchThumb>
137
88
  </SwitchRoot>
138
89
  </div>
139
- <div v-if="(label || !!slots.label) || (description || !!slots.description)" :class="b24ui.wrapper({ class: props.b24ui?.wrapper })">
90
+ <div v-if="label || !!slots.label || (description || !!slots.description)" :class="b24ui.wrapper({ class: props.b24ui?.wrapper })">
140
91
  <Label v-if="label || !!slots.label" :for="id" :class="b24ui.label({ class: props.b24ui?.label })">
141
92
  <slot name="label" :label="label">
142
93
  {{ label }}