@byyuurin/ui 0.0.11 → 0.2.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 (297) hide show
  1. package/README.md +170 -58
  2. package/dist/module.d.mts +4 -13
  3. package/dist/module.json +4 -4
  4. package/dist/module.mjs +54 -20
  5. package/dist/runtime/components/Accordion.vue +28 -23
  6. package/dist/runtime/components/Accordion.vue.d.ts +51 -29
  7. package/dist/runtime/components/Alert.vue +47 -27
  8. package/dist/runtime/components/Alert.vue.d.ts +37 -25
  9. package/dist/runtime/components/App.vue +9 -8
  10. package/dist/runtime/components/App.vue.d.ts +22 -20
  11. package/dist/runtime/components/Avatar.vue +65 -21
  12. package/dist/runtime/components/Avatar.vue.d.ts +27 -13
  13. package/dist/runtime/components/AvatarGroup.vue +14 -10
  14. package/dist/runtime/components/AvatarGroup.vue.d.ts +12 -9
  15. package/dist/runtime/components/Badge.vue +64 -32
  16. package/dist/runtime/components/Badge.vue.d.ts +30 -29
  17. package/dist/runtime/components/Breadcrumb.vue +40 -22
  18. package/dist/runtime/components/Breadcrumb.vue.d.ts +48 -21
  19. package/dist/runtime/components/Button.vue +113 -52
  20. package/dist/runtime/components/Button.vue.d.ts +36 -20
  21. package/dist/runtime/components/Calendar.vue +50 -43
  22. package/dist/runtime/components/Calendar.vue.d.ts +58 -31
  23. package/dist/runtime/components/Card.vue +18 -14
  24. package/dist/runtime/components/Card.vue.d.ts +18 -14
  25. package/dist/runtime/components/Carousel.vue +99 -46
  26. package/dist/runtime/components/Carousel.vue.d.ts +46 -25
  27. package/dist/runtime/components/Checkbox.vue +60 -35
  28. package/dist/runtime/components/Checkbox.vue.d.ts +35 -28
  29. package/dist/runtime/components/CheckboxGroup.vue +131 -0
  30. package/dist/runtime/components/CheckboxGroup.vue.d.ts +89 -0
  31. package/dist/runtime/components/Chip.vue +35 -32
  32. package/dist/runtime/components/Chip.vue.d.ts +33 -15
  33. package/dist/runtime/components/Collapsible.vue +13 -9
  34. package/dist/runtime/components/Collapsible.vue.d.ts +16 -8
  35. package/dist/runtime/components/Drawer.vue +80 -70
  36. package/dist/runtime/components/Drawer.vue.d.ts +51 -28
  37. package/dist/runtime/components/DropdownMenu.vue +23 -16
  38. package/dist/runtime/components/DropdownMenu.vue.d.ts +77 -36
  39. package/dist/runtime/components/DropdownMenuContent.vue +136 -106
  40. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +38 -26
  41. package/dist/runtime/components/FieldGroup.vue +33 -0
  42. package/dist/runtime/components/FieldGroup.vue.d.ts +33 -0
  43. package/dist/runtime/components/Form.vue +172 -88
  44. package/dist/runtime/components/Form.vue.d.ts +69 -44
  45. package/dist/runtime/components/FormField.vue +108 -0
  46. package/dist/runtime/components/FormField.vue.d.ts +63 -0
  47. package/dist/runtime/components/Icon.vue +20 -0
  48. package/dist/runtime/components/Icon.vue.d.ts +9 -0
  49. package/dist/runtime/components/Input.vue +84 -79
  50. package/dist/runtime/components/Input.vue.d.ts +55 -43
  51. package/dist/runtime/components/InputNumber.vue +66 -52
  52. package/dist/runtime/components/InputNumber.vue.d.ts +50 -109
  53. package/dist/runtime/components/InputTags.vue +155 -0
  54. package/dist/runtime/components/InputTags.vue.d.ts +85 -0
  55. package/dist/runtime/components/Kbd.vue +11 -5
  56. package/dist/runtime/components/Kbd.vue.d.ts +17 -11
  57. package/dist/runtime/components/Link.vue +54 -197
  58. package/dist/runtime/components/Link.vue.d.ts +17 -17
  59. package/dist/runtime/components/LinkBase.vue +11 -33
  60. package/dist/runtime/components/LinkBase.vue.d.ts +8 -3
  61. package/dist/runtime/components/Marquee.vue +38 -0
  62. package/dist/runtime/components/Marquee.vue.d.ts +54 -0
  63. package/dist/runtime/components/Modal.vue +53 -39
  64. package/dist/runtime/components/Modal.vue.d.ts +64 -34
  65. package/dist/runtime/components/NavigationMenu.vue +345 -0
  66. package/dist/runtime/components/NavigationMenu.vue.d.ts +216 -0
  67. package/dist/runtime/components/OverlayProvider.vue +3 -3
  68. package/dist/runtime/components/OverlayProvider.vue.d.ts +2 -1
  69. package/dist/runtime/components/Pagination.vue +39 -47
  70. package/dist/runtime/components/Pagination.vue.d.ts +54 -31
  71. package/dist/runtime/components/PinInput.vue +46 -32
  72. package/dist/runtime/components/PinInput.vue.d.ts +40 -21
  73. package/dist/runtime/components/Popover.vue +33 -19
  74. package/dist/runtime/components/Popover.vue.d.ts +57 -32
  75. package/dist/runtime/components/Progress.vue +31 -26
  76. package/dist/runtime/components/Progress.vue.d.ts +32 -23
  77. package/dist/runtime/components/RadioGroup.vue +75 -48
  78. package/dist/runtime/components/RadioGroup.vue.d.ts +58 -36
  79. package/dist/runtime/components/ScrollArea.vue +33 -31
  80. package/dist/runtime/components/ScrollArea.vue.d.ts +9 -5
  81. package/dist/runtime/components/Select.vue +166 -76
  82. package/dist/runtime/components/Select.vue.d.ts +206 -65
  83. package/dist/runtime/components/Separator.vue +42 -16
  84. package/dist/runtime/components/Separator.vue.d.ts +35 -14
  85. package/dist/runtime/components/Skeleton.vue +18 -6
  86. package/dist/runtime/components/Skeleton.vue.d.ts +4 -4
  87. package/dist/runtime/components/Slider.vue +42 -24
  88. package/dist/runtime/components/Slider.vue.d.ts +43 -27
  89. package/dist/runtime/components/Switch.vue +40 -31
  90. package/dist/runtime/components/Switch.vue.d.ts +36 -27
  91. package/dist/runtime/components/Table.vue +329 -79
  92. package/dist/runtime/components/Table.vue.d.ts +152 -66
  93. package/dist/runtime/components/Tabs.vue +70 -23
  94. package/dist/runtime/components/Tabs.vue.d.ts +61 -29
  95. package/dist/runtime/components/Textarea.vue +102 -54
  96. package/dist/runtime/components/Textarea.vue.d.ts +57 -41
  97. package/dist/runtime/components/Timeline.vue +102 -0
  98. package/dist/runtime/components/Timeline.vue.d.ts +74 -0
  99. package/dist/runtime/components/Toast.vue +84 -38
  100. package/dist/runtime/components/Toast.vue.d.ts +48 -27
  101. package/dist/runtime/components/ToastProvider.vue +31 -22
  102. package/dist/runtime/components/ToastProvider.vue.d.ts +30 -17
  103. package/dist/runtime/components/Tooltip.vue +33 -21
  104. package/dist/runtime/components/Tooltip.vue.d.ts +37 -15
  105. package/dist/runtime/composables/defineShortcuts.d.ts +16 -0
  106. package/dist/runtime/composables/defineShortcuts.js +129 -0
  107. package/dist/runtime/composables/useAvatarGroup.d.ts +8 -3
  108. package/dist/runtime/composables/useAvatarGroup.js +10 -3
  109. package/dist/runtime/composables/useComponentIcons.d.ts +9 -6
  110. package/dist/runtime/composables/useComponentIcons.js +4 -4
  111. package/dist/runtime/composables/useFieldGroup.d.ts +8 -0
  112. package/dist/runtime/composables/useFieldGroup.js +14 -0
  113. package/dist/runtime/composables/useFormField.d.ts +62 -0
  114. package/dist/runtime/composables/useFormField.js +99 -0
  115. package/dist/runtime/composables/useKbd.d.ts +3 -2
  116. package/dist/runtime/composables/useKbd.js +3 -2
  117. package/dist/runtime/composables/useLocale.d.ts +68 -5
  118. package/dist/runtime/composables/useLocale.js +11 -11
  119. package/dist/runtime/composables/useOverlay.d.ts +51 -15
  120. package/dist/runtime/composables/useOverlay.js +44 -30
  121. package/dist/runtime/composables/usePortal.d.ts +6 -0
  122. package/dist/runtime/composables/usePortal.js +17 -0
  123. package/dist/runtime/composables/useToast.d.ts +12 -5
  124. package/dist/runtime/composables/useToast.js +12 -7
  125. package/dist/runtime/locale/en.d.ts +30 -1
  126. package/dist/runtime/locale/en.js +2 -1
  127. package/dist/runtime/locale/index.d.ts +2 -2
  128. package/dist/runtime/locale/index.js +1 -1
  129. package/dist/runtime/locale/zh_tw.d.ts +31 -0
  130. package/dist/runtime/locale/{zh-tw.js → zh_tw.js} +2 -1
  131. package/dist/runtime/plugins/colors.d.ts +2 -0
  132. package/dist/runtime/plugins/colors.js +50 -0
  133. package/dist/runtime/types/app.config.d.ts +6 -0
  134. package/dist/runtime/types/form.d.ts +58 -17
  135. package/dist/runtime/types/form.js +11 -0
  136. package/dist/runtime/types/index.d.ts +56 -8
  137. package/dist/runtime/types/index.js +49 -1
  138. package/dist/runtime/types/input.d.ts +8 -0
  139. package/dist/runtime/types/locale.d.ts +5 -0
  140. package/dist/runtime/types/style.d.ts +33 -0
  141. package/dist/runtime/types/style.js +0 -0
  142. package/dist/runtime/types/unocss.d.ts +4 -0
  143. package/dist/runtime/types/utils.d.ts +41 -37
  144. package/dist/runtime/utils/form.d.ts +5 -1
  145. package/dist/runtime/utils/form.js +49 -0
  146. package/dist/runtime/utils/index.d.ts +10 -13
  147. package/dist/runtime/utils/index.js +41 -48
  148. package/dist/runtime/utils/link.d.ts +3 -2
  149. package/dist/runtime/utils/link.js +16 -2
  150. package/dist/runtime/utils/locale.d.ts +5 -0
  151. package/dist/runtime/utils/locale.js +10 -0
  152. package/dist/runtime/utils/style.d.ts +94 -0
  153. package/dist/runtime/utils/style.js +37 -0
  154. package/dist/runtime/vue/components/Icon.vue +15 -0
  155. package/dist/runtime/vue/components/Icon.vue.d.ts +7 -0
  156. package/dist/runtime/vue/components/Link.vue +163 -0
  157. package/dist/runtime/vue/components/Link.vue.d.ts +95 -0
  158. package/dist/runtime/vue/composables/useAppConfig.d.ts +1 -0
  159. package/dist/runtime/vue/composables/useAppConfig.js +4 -0
  160. package/dist/runtime/vue/plugins/color-mode.d.ts +4 -0
  161. package/dist/runtime/vue/plugins/color-mode.js +6 -0
  162. package/dist/runtime/vue/plugins/head.d.ts +4 -0
  163. package/dist/runtime/vue/plugins/head.js +9 -0
  164. package/dist/runtime/vue/stubs.d.ts +16 -1
  165. package/dist/runtime/vue/stubs.js +32 -1
  166. package/dist/setup.d.mts +13 -0
  167. package/dist/setup.mjs +12 -0
  168. package/dist/shared/ui.CzIlLITK.mjs +51 -0
  169. package/dist/shared/ui.DLOxhmP0.mjs +4242 -0
  170. package/dist/shared/ui.DpbffTXs.d.mts +84 -0
  171. package/dist/shared/ui.IulR-OYx.d.mts +64 -0
  172. package/dist/types.d.mts +3 -1
  173. package/dist/unocss.d.mts +12 -52
  174. package/dist/unocss.mjs +144 -254
  175. package/dist/unplugin.d.mts +13 -26
  176. package/dist/unplugin.mjs +193 -18
  177. package/dist/vite.d.mts +10 -1
  178. package/dist/vite.mjs +12 -3
  179. package/package.json +154 -87
  180. package/vue-plugin.d.ts +5 -0
  181. package/dist/module.d.ts +0 -13
  182. package/dist/module.mjs.map +0 -1
  183. package/dist/runtime/app/injections.d.ts +0 -9331
  184. package/dist/runtime/app/injections.js +0 -61
  185. package/dist/runtime/components/ButtonGroup.vue +0 -26
  186. package/dist/runtime/components/ButtonGroup.vue.d.ts +0 -26
  187. package/dist/runtime/components/FormItem.vue +0 -90
  188. package/dist/runtime/components/FormItem.vue.d.ts +0 -60
  189. package/dist/runtime/composables/useButtonGroup.d.ts +0 -5
  190. package/dist/runtime/composables/useButtonGroup.js +0 -9
  191. package/dist/runtime/composables/useFormItem.d.ts +0 -27
  192. package/dist/runtime/composables/useFormItem.js +0 -64
  193. package/dist/runtime/composables/useTheme.d.ts +0 -9
  194. package/dist/runtime/composables/useTheme.js +0 -23
  195. package/dist/runtime/index.d.ts +0 -44
  196. package/dist/runtime/index.js +0 -44
  197. package/dist/runtime/locale/zh-tw.d.ts +0 -2
  198. package/dist/runtime/theme/accordion.d.ts +0 -50
  199. package/dist/runtime/theme/accordion.js +0 -28
  200. package/dist/runtime/theme/alert.d.ts +0 -119
  201. package/dist/runtime/theme/alert.js +0 -47
  202. package/dist/runtime/theme/app.d.ts +0 -19
  203. package/dist/runtime/theme/app.js +0 -19
  204. package/dist/runtime/theme/avatar-group.d.ts +0 -46
  205. package/dist/runtime/theme/avatar-group.js +0 -32
  206. package/dist/runtime/theme/avatar.d.ts +0 -50
  207. package/dist/runtime/theme/avatar.js +0 -34
  208. package/dist/runtime/theme/badge.d.ts +0 -76
  209. package/dist/runtime/theme/badge.js +0 -92
  210. package/dist/runtime/theme/breadcrumb.d.ts +0 -61
  211. package/dist/runtime/theme/breadcrumb.js +0 -44
  212. package/dist/runtime/theme/button-group.d.ts +0 -60
  213. package/dist/runtime/theme/button-group.js +0 -42
  214. package/dist/runtime/theme/button.d.ts +0 -184
  215. package/dist/runtime/theme/button.js +0 -164
  216. package/dist/runtime/theme/calendar.d.ts +0 -58
  217. package/dist/runtime/theme/calendar.js +0 -86
  218. package/dist/runtime/theme/card.d.ts +0 -56
  219. package/dist/runtime/theme/card.js +0 -37
  220. package/dist/runtime/theme/carousel.d.ts +0 -107
  221. package/dist/runtime/theme/carousel.js +0 -43
  222. package/dist/runtime/theme/checkbox.d.ts +0 -82
  223. package/dist/runtime/theme/checkbox.js +0 -54
  224. package/dist/runtime/theme/chip.d.ts +0 -61
  225. package/dist/runtime/theme/chip.js +0 -66
  226. package/dist/runtime/theme/collapsible.d.ts +0 -32
  227. package/dist/runtime/theme/collapsible.js +0 -10
  228. package/dist/runtime/theme/drawer.d.ts +0 -142
  229. package/dist/runtime/theme/drawer.js +0 -113
  230. package/dist/runtime/theme/dropdown-menu.d.ts +0 -65
  231. package/dist/runtime/theme/dropdown-menu.js +0 -83
  232. package/dist/runtime/theme/form-item.d.ts +0 -70
  233. package/dist/runtime/theme/form-item.js +0 -34
  234. package/dist/runtime/theme/form.d.ts +0 -2
  235. package/dist/runtime/theme/form.js +0 -7
  236. package/dist/runtime/theme/index.d.ts +0 -41
  237. package/dist/runtime/theme/index.js +0 -41
  238. package/dist/runtime/theme/input-number.d.ts +0 -115
  239. package/dist/runtime/theme/input-number.js +0 -95
  240. package/dist/runtime/theme/input.d.ts +0 -172
  241. package/dist/runtime/theme/input.js +0 -151
  242. package/dist/runtime/theme/kbd.d.ts +0 -33
  243. package/dist/runtime/theme/kbd.js +0 -26
  244. package/dist/runtime/theme/link.d.ts +0 -38
  245. package/dist/runtime/theme/link.js +0 -26
  246. package/dist/runtime/theme/modal.d.ts +0 -42
  247. package/dist/runtime/theme/modal.js +0 -55
  248. package/dist/runtime/theme/pagination.d.ts +0 -74
  249. package/dist/runtime/theme/pagination.js +0 -17
  250. package/dist/runtime/theme/pinInput.d.ts +0 -94
  251. package/dist/runtime/theme/pinInput.js +0 -111
  252. package/dist/runtime/theme/popover.d.ts +0 -32
  253. package/dist/runtime/theme/popover.js +0 -13
  254. package/dist/runtime/theme/progress.d.ts +0 -180
  255. package/dist/runtime/theme/progress.js +0 -95
  256. package/dist/runtime/theme/radio-group.d.ts +0 -104
  257. package/dist/runtime/theme/radio-group.js +0 -61
  258. package/dist/runtime/theme/scroll-area.d.ts +0 -67
  259. package/dist/runtime/theme/scroll-area.js +0 -33
  260. package/dist/runtime/theme/select.d.ts +0 -186
  261. package/dist/runtime/theme/select.js +0 -173
  262. package/dist/runtime/theme/separator.d.ts +0 -74
  263. package/dist/runtime/theme/separator.js +0 -53
  264. package/dist/runtime/theme/skeleton.d.ts +0 -2
  265. package/dist/runtime/theme/skeleton.js +0 -7
  266. package/dist/runtime/theme/slider.d.ts +0 -70
  267. package/dist/runtime/theme/slider.js +0 -52
  268. package/dist/runtime/theme/switch.d.ts +0 -116
  269. package/dist/runtime/theme/switch.js +0 -78
  270. package/dist/runtime/theme/table.d.ts +0 -86
  271. package/dist/runtime/theme/table.js +0 -36
  272. package/dist/runtime/theme/tabs.d.ts +0 -129
  273. package/dist/runtime/theme/tabs.js +0 -146
  274. package/dist/runtime/theme/textarea.d.ts +0 -90
  275. package/dist/runtime/theme/textarea.js +0 -116
  276. package/dist/runtime/theme/toast-provider.d.ts +0 -116
  277. package/dist/runtime/theme/toast-provider.js +0 -97
  278. package/dist/runtime/theme/toast.d.ts +0 -83
  279. package/dist/runtime/theme/toast.js +0 -35
  280. package/dist/runtime/theme/tooltip.d.ts +0 -38
  281. package/dist/runtime/theme/tooltip.js +0 -11
  282. package/dist/runtime/types/components.d.ts +0 -42
  283. package/dist/runtime/utils/extend-theme.d.ts +0 -9
  284. package/dist/runtime/utils/extend-theme.js +0 -27
  285. package/dist/runtime/utils/styler.d.ts +0 -4
  286. package/dist/runtime/utils/styler.js +0 -10
  287. package/dist/runtime/utils/translator.d.ts +0 -18
  288. package/dist/runtime/utils/translator.js +0 -8
  289. package/dist/shared/ui.D1BTWZFB.mjs +0 -5
  290. package/dist/shared/ui.D1BTWZFB.mjs.map +0 -1
  291. package/dist/unocss.d.ts +0 -52
  292. package/dist/unocss.mjs.map +0 -1
  293. package/dist/unplugin.d.ts +0 -26
  294. package/dist/unplugin.mjs.map +0 -1
  295. package/dist/vite.d.ts +0 -9
  296. package/dist/vite.mjs.map +0 -1
  297. /package/dist/runtime/types/{components.js → input.js} +0 -0
@@ -1,26 +1,42 @@
1
1
  import type { VariantProps } from '@byyuurin/ui-kit';
2
- import type { UseComponentIconsProps } from '../composables/useComponentIcons.js';
3
- import type { button } from '../theme/index.js';
4
- import type { ComponentAttrs } from '../types/index.js';
5
- import type { LinkProps } from './Link.vue.js';
6
- export interface ButtonSlots {
7
- default?: (props?: {}) => any;
8
- leading?: (props?: {}) => any;
9
- trailing?: (props?: {}) => any;
10
- }
11
- type ButtonVariants = VariantProps<typeof button>;
12
- export interface ButtonProps extends ComponentAttrs<typeof button>, UseComponentIconsProps, Omit<LinkProps, 'raw' | 'custom' | 'underline'> {
13
- icon?: string;
2
+ import theme from '#build/ui/button';
3
+ import type { UseComponentIconsProps } from '../composables/useComponentIcons';
4
+ import type { ComponentBaseProps, ComponentStyler, ComponentUIProps, IconProps, LinkProps } from '../types';
5
+ import type { StaticSlot } from '../types/utils';
6
+ type ThemeVariants = VariantProps<typeof theme>;
7
+ export interface ButtonProps extends ComponentBaseProps, UseComponentIconsProps, Omit<LinkProps, 'raw' | 'custom'> {
8
+ icon?: IconProps['name'];
14
9
  label?: string;
15
- variant?: ButtonVariants['variant'];
16
- size?: ButtonVariants['size'];
17
- loading?: boolean;
18
- active?: boolean;
19
- disabled?: boolean;
10
+ /** @default "solid" */
11
+ variant?: ThemeVariants['variant'];
12
+ activeVariant?: ThemeVariants['variant'];
13
+ /** @default "md" */
14
+ size?: ThemeVariants['size'];
15
+ /** @default "primary" */
16
+ color?: ThemeVariants['color'];
17
+ activeColor?: ThemeVariants['color'];
18
+ /** Render the button with equal padding on all sides. */
19
+ square?: boolean;
20
+ /** Render the button full width. */
21
+ block?: boolean;
22
+ /** Set loading state automatically based on the `@click` promise state */
23
+ loadingAuto?: boolean;
24
+ onClick?: ((event: MouseEvent) => void | Promise<void>) | Array<((event: MouseEvent) => void | Promise<void>)>;
25
+ ui?: ComponentUIProps<typeof theme>;
26
+ }
27
+ export interface ButtonSlots {
28
+ default: StaticSlot<{
29
+ ui: ComponentStyler<typeof theme>;
30
+ }>;
31
+ leading: StaticSlot<{
32
+ ui: ComponentStyler<typeof theme>;
33
+ }>;
34
+ trailing: StaticSlot<{
35
+ ui: ComponentStyler<typeof theme>;
36
+ }>;
20
37
  }
21
- declare const _default: __VLS_WithSlots<import("vue").DefineComponent<ButtonProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ButtonProps> & Readonly<{}>, {
22
- variant: "solid" | "outline" | "soft" | "soft-outline" | "link" | "ghost";
23
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ButtonSlots>;
38
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ButtonProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ButtonProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ButtonSlots>;
39
+ declare const _default: typeof __VLS_export;
24
40
  export default _default;
25
41
  type __VLS_WithSlots<T, S> = T & {
26
42
  new (): {
@@ -1,5 +1,5 @@
1
1
  <script>
2
-
2
+ import theme from "#build/ui/calendar";
3
3
  </script>
4
4
 
5
5
  <script setup>
@@ -7,23 +7,31 @@ import { reactiveOmit } from "@vueuse/core";
7
7
  import { useForwardPropsEmits } from "reka-ui";
8
8
  import { Calendar as BaseCalendar, RangeCalendar } from "reka-ui/namespaced";
9
9
  import { computed } from "vue";
10
+ import { useAppConfig } from "#imports";
10
11
  import { useLocale } from "../composables/useLocale";
11
- import { useTheme } from "../composables/useTheme";
12
+ import { cv, merge } from "../utils/style";
12
13
  import Button from "./Button.vue";
13
14
  const props = defineProps({
14
- nextYearIcon: { type: String, required: false },
15
- nextMonthIcon: { type: String, required: false },
16
- prevYearIcon: { type: String, required: false },
17
- prevMonthIcon: { type: String, required: false },
15
+ as: { type: null, required: false },
16
+ nextYearIcon: { type: [String, Object], required: false },
17
+ nextYear: { type: Object, required: false },
18
+ nextMonthIcon: { type: [String, Object], required: false },
19
+ nextMonth: { type: Object, required: false },
20
+ prevYearIcon: { type: [String, Object], required: false },
21
+ prevYear: { type: Object, required: false },
22
+ prevMonthIcon: { type: [String, Object], required: false },
23
+ prevMonth: { type: Object, required: false },
18
24
  size: { type: null, required: false },
25
+ color: { type: null, required: false },
26
+ variant: { type: null, required: false },
19
27
  range: { type: Boolean, required: false },
20
28
  multiple: { type: Boolean, required: false },
21
29
  monthControls: { type: Boolean, required: false, default: true },
22
30
  yearControls: { type: Boolean, required: false, default: true },
23
31
  defaultValue: { type: null, required: false },
24
32
  modelValue: { type: null, required: false },
25
- class: { type: null, required: false },
26
33
  ui: { type: null, required: false },
34
+ class: { type: [Object, String, Number, Boolean, null, Array], required: false, skipCheck: true },
27
35
  defaultPlaceholder: { type: null, required: false },
28
36
  placeholder: { type: null, required: false },
29
37
  pagedNavigation: { type: Boolean, required: false },
@@ -47,25 +55,28 @@ const props = defineProps({
47
55
  isDateHighlightable: { type: Function, required: false },
48
56
  fixedDate: { type: String, required: false }
49
57
  });
50
- const emit = defineEmits(["update:modelValue", "update:placeholder", "update:startValue"]);
58
+ const emit = defineEmits(["update:modelValue", "update:placeholder", "update:validModelValue", "update:startValue"]);
51
59
  defineSlots();
52
- const rootProps = useForwardPropsEmits(reactiveOmit(props, "range", "modelValue", "defaultValue", "size", "monthControls", "yearControls", "class", "ui"), emit);
53
- const { code: locale, dir, t } = useLocale();
54
- const { theme, generateStyle } = useTheme();
55
- const nextYearIcon = computed(() => props.nextYearIcon || (dir.value === "rtl" ? theme.value.app.icons.chevronDoubleLeft : theme.value.app.icons.chevronDoubleRight));
56
- const nextMonthIcon = computed(() => props.nextMonthIcon || (dir.value === "rtl" ? theme.value.app.icons.chevronLeft : theme.value.app.icons.chevronRight));
57
- const prevYearIcon = computed(() => props.prevYearIcon || (dir.value === "rtl" ? theme.value.app.icons.chevronDoubleRight : theme.value.app.icons.chevronDoubleLeft));
58
- const prevMonthIcon = computed(() => props.prevMonthIcon || (dir.value === "rtl" ? theme.value.app.icons.chevronRight : theme.value.app.icons.chevronLeft));
60
+ const rootProps = useForwardPropsEmits(reactiveOmit(props, "range", "modelValue", "defaultValue", "size", "color", "variant", "monthControls", "yearControls", "class", "ui"), emit);
61
+ const { dir, t } = useLocale();
62
+ const appConfig = useAppConfig();
63
+ const ui = computed(() => {
64
+ const styler = cv(merge(theme, appConfig.ui.calendar));
65
+ return styler({
66
+ ...props,
67
+ outsideView: props.numberOfMonths === 1
68
+ });
69
+ });
70
+ const nextYearIcon = computed(() => props.nextYearIcon || (dir.value === "rtl" ? appConfig.ui.icons.chevronDoubleLeft : appConfig.ui.icons.chevronDoubleRight));
71
+ const nextMonthIcon = computed(() => props.nextMonthIcon || (dir.value === "rtl" ? appConfig.ui.icons.chevronLeft : appConfig.ui.icons.chevronRight));
72
+ const prevYearIcon = computed(() => props.prevYearIcon || (dir.value === "rtl" ? appConfig.ui.icons.chevronDoubleRight : appConfig.ui.icons.chevronDoubleLeft));
73
+ const prevMonthIcon = computed(() => props.prevMonthIcon || (dir.value === "rtl" ? appConfig.ui.icons.chevronRight : appConfig.ui.icons.chevronLeft));
59
74
  function paginateYear(date, sign) {
60
75
  if (sign === -1)
61
76
  return date.subtract({ years: 1 });
62
77
  return date.add({ years: 1 });
63
78
  }
64
79
  const Calendar = computed(() => props.range ? RangeCalendar : BaseCalendar);
65
- const style = computed(() => generateStyle("calendar", {
66
- ...props,
67
- multipleMonths: props.numberOfMonths > 1
68
- }));
69
80
  </script>
70
81
 
71
82
  <template>
@@ -74,72 +85,68 @@ const style = computed(() => generateStyle("calendar", {
74
85
  v-bind="rootProps"
75
86
  :model-value="props.modelValue"
76
87
  :default-value="props.defaultValue"
77
- :locale="locale"
78
- :dir="dir"
79
- :class="style.root({ class: [props.class, props.ui?.root] })"
88
+ :class="ui.root({ class: [props.class, props.ui?.root] })"
80
89
  data-part="root"
81
90
  >
82
- <Calendar.Header :class="style.header({ class: props.ui?.header })" data-part="header">
91
+ <Calendar.Header :class="ui.header({ class: props.ui?.header })" data-part="header">
83
92
  <Calendar.Prev v-if="props.yearControls" :prev-page="(date) => paginateYear(date, -1)" :aria-label="t('calendar.prevYear')" as-child>
84
- <Button :icon="prevYearIcon" :size="props.size" variant="ghost" />
93
+ <Button :icon="prevYearIcon" :size="props.size" color="neutral" variant="ghost" v-bind="props.prevYear" />
85
94
  </Calendar.Prev>
86
95
  <Calendar.Prev v-if="props.monthControls" :aria-label="t('calendar.prevMonth')" as-child>
87
- <Button :icon="prevMonthIcon" :size="props.size" variant="ghost" />
96
+ <Button :icon="prevMonthIcon" :size="props.size" color="neutral" variant="ghost" v-bind="props.prevMonth" />
88
97
  </Calendar.Prev>
89
98
 
90
- <Calendar.Heading v-slot="{ headingValue }" :class="style.heading({ class: props.ui?.heading })" data-part="heading">
99
+ <Calendar.Heading v-slot="{ headingValue }" :class="ui.heading({ class: props.ui?.heading })" data-part="heading">
91
100
  <slot name="heading" :value="headingValue">
92
101
  {{ headingValue }}
93
102
  </slot>
94
103
  </Calendar.Heading>
95
104
  <Calendar.Next v-if="props.monthControls" :aria-label="t('calendar.nextMonth')" as-child>
96
- <Button :icon="nextMonthIcon" :size="props.size" variant="ghost" />
105
+ <Button :icon="nextMonthIcon" :size="props.size" color="neutral" variant="ghost" v-bind="props.nextMonth" />
97
106
  </Calendar.Next>
98
107
  <Calendar.Next v-if="props.yearControls" :next-page="(date) => paginateYear(date, 1)" :aria-label="t('calendar.nextYear')" as-child>
99
- <Button :icon="nextYearIcon" :size="props.size" variant="ghost" />
108
+ <Button :icon="nextYearIcon" :size="props.size" color="neutral" variant="ghost" v-bind="props.nextYear" />
100
109
  </Calendar.Next>
101
110
  </Calendar.Header>
102
- <div :class="style.body({ class: props.ui?.body })" data-part="body">
111
+ <div :class="ui.body({ class: props.ui?.body })" data-part="body">
103
112
  <Calendar.Grid
104
113
  v-for="month in grid"
105
114
  :key="month.value.toString()"
106
- :class="style.grid({ class: props.ui?.grid })"
115
+ :class="ui.grid({ class: props.ui?.grid })"
107
116
  data-part="grid"
108
117
  >
109
118
  <Calendar.GridHead>
110
- <Calendar.GridRow :class="style.gridWeekDaysRow({ class: props.ui?.gridWeekDaysRow })" data-part="grid-week-day-row">
111
- <Calendar.HeadCell v-for="day in weekDays" :key="day" :class="style.headCell({ class: props.ui?.headCell })" data-part="head-cell">
119
+ <Calendar.GridRow :class="ui.gridWeekDaysRow({ class: props.ui?.gridWeekDaysRow })" data-part="gridWeekDaysRow">
120
+ <Calendar.HeadCell v-for="day in weekDays" :key="day" :class="ui.headCell({ class: props.ui?.headCell })" data-part="headCell">
112
121
  <slot name="week-day" :day="day">
113
122
  {{ day }}
114
123
  </slot>
115
124
  </Calendar.HeadCell>
116
125
  </Calendar.GridRow>
117
126
  </Calendar.GridHead>
118
- <Calendar.GridBody :class="style.gridBody({ class: props.ui?.gridBody })" data-part="grid-body">
127
+ <Calendar.GridBody :class="ui.gridBody({ class: props.ui?.gridBody })" data-part="gridBody">
119
128
  <Calendar.GridRow
120
129
  v-for="(weekDates, index) in month.rows"
121
130
  :key="`weekDates-${index}`"
122
- :class="style.gridRow({ class: props.ui?.gridRow })"
123
- data-part="grid-row"
131
+ :class="ui.gridRow({ class: props.ui?.gridRow })"
132
+ data-part="gridRow"
124
133
  >
125
134
  <Calendar.Cell
126
135
  v-for="weekDate in weekDates"
127
136
  :key="weekDate.toString()"
128
137
  :date="weekDate"
129
- :class="style.cell({ class: props.ui?.cell })"
138
+ :class="ui.cell({ class: props.ui?.cell })"
130
139
  data-part="cell"
131
140
  >
132
141
  <Calendar.CellTrigger
133
- v-slot="{ disabled, unavailable }"
134
142
  :day="weekDate"
135
143
  :month="month.value"
136
- as-child
144
+ :class="ui.cellTrigger({ class: props.ui?.cellTrigger })"
145
+ data-part="cellTrigger"
137
146
  >
138
- <div :class="style.cellTrigger({ class: props.ui?.cellTrigger, disabled: disabled || unavailable })" data-part="cell-trigger">
139
- <slot name="day" :day="weekDate">
140
- {{ weekDate.day }}
141
- </slot>
142
- </div>
147
+ <slot name="day" :day="weekDate">
148
+ {{ weekDate.day }}
149
+ </slot>
143
150
  </Calendar.CellTrigger>
144
151
  </Calendar.Cell>
145
152
  </Calendar.GridRow>
@@ -1,50 +1,62 @@
1
1
  import type { VariantProps } from '@byyuurin/ui-kit';
2
2
  import type { DateValue } from '@internationalized/date';
3
3
  import type { CalendarCellTriggerProps, CalendarRootEmits, CalendarRootProps, DateRange, RangeCalendarRootEmits, RangeCalendarRootProps } from 'reka-ui';
4
- import type { calendar } from '../theme/index.js';
5
- import type { ComponentAttrs } from '../types/index.js';
6
- export interface CalendarEmits<R extends boolean, M extends boolean> extends Omit<CalendarRootEmits & RangeCalendarRootEmits, 'update:modelValue'> {
7
- 'update:modelValue': [date: CalendarModelValue<R, M>];
8
- }
9
- export interface CalendarSlots {
10
- 'heading'?: (props: {
11
- value: string;
12
- }) => any;
13
- 'day'?: (props: Pick<CalendarCellTriggerProps, 'day'>) => any;
14
- 'week-day'?: (props: {
15
- day: string;
16
- }) => any;
17
- }
18
- type CalendarVariants = VariantProps<typeof calendar>;
4
+ import theme from '#build/ui/calendar';
5
+ import type { ButtonProps, ComponentBaseProps, ComponentUIProps, IconProps } from '../types';
6
+ import type { MaybeNull, StaticSlot } from '../types/utils';
19
7
  type CalendarDefaultValue<R extends boolean = false, M extends boolean = false> = R extends true ? DateRange : M extends true ? DateValue[] : DateValue;
20
- type CalendarModelValue<R extends boolean = false, M extends boolean = false> = R extends true ? (DateRange | null) : M extends true ? (DateValue[] | undefined) : (DateValue | undefined);
8
+ type CalendarModelValue<R extends boolean = false, M extends boolean = false> = R extends true ? MaybeNull<DateRange> : M extends true ? (DateValue[] | undefined) : (DateValue | undefined);
21
9
  type _CalendarRootProps = Omit<CalendarRootProps, 'as' | 'asChild' | 'modelValue' | 'defaultValue' | 'dir' | 'locale' | 'calendarLabel' | 'multiple'>;
22
10
  type _RangeCalendarRootProps = Omit<RangeCalendarRootProps, 'as' | 'asChild' | 'modelValue' | 'defaultValue' | 'dir' | 'locale' | 'calendarLabel' | 'multiple'>;
23
- export interface CalendarProps<R extends boolean = false, M extends boolean = false> extends ComponentAttrs<typeof calendar>, _CalendarRootProps, _RangeCalendarRootProps {
11
+ type ThemeVariants = VariantProps<typeof theme>;
12
+ export interface CalendarProps<R extends boolean = false, M extends boolean = false> extends ComponentBaseProps, _CalendarRootProps, _RangeCalendarRootProps {
13
+ /**
14
+ * The element or component this component should render as.
15
+ * @default "div"
16
+ */
17
+ as?: CalendarRootProps['as'];
24
18
  /**
25
19
  * The icon to use for the next year control.
26
20
  * @default app.icons.chevronDoubleRight
27
21
  */
28
- nextYearIcon?: string;
22
+ nextYearIcon?: IconProps['name'];
23
+ /**
24
+ * Configure the next year button.
25
+ */
26
+ nextYear?: ButtonProps;
29
27
  /**
30
28
  * The icon to use for the next month control.
31
29
  * @default app.icons.chevronRight
32
30
  */
33
- nextMonthIcon?: string;
31
+ nextMonthIcon?: IconProps['name'];
32
+ /**
33
+ * Configure the next month button.
34
+ */
35
+ nextMonth?: ButtonProps;
34
36
  /**
35
37
  * The icon to use for the previous year control.
36
38
  * @default app.icons.chevronDoubleLeft
37
39
  */
38
- prevYearIcon?: string;
40
+ prevYearIcon?: IconProps['name'];
41
+ /**
42
+ * Configure the prev year button.
43
+ */
44
+ prevYear?: ButtonProps;
39
45
  /**
40
46
  * The icon to use for the previous month control.
41
47
  * @default app.icons.chevronLeft
42
48
  */
43
- prevMonthIcon?: string;
49
+ prevMonthIcon?: IconProps['name'];
50
+ /**
51
+ * Configure the prev month button.
52
+ */
53
+ prevMonth?: ButtonProps;
44
54
  /**
45
55
  * @default "md"
46
56
  */
47
- size?: CalendarVariants['size'];
57
+ size?: ThemeVariants['size'];
58
+ color?: ThemeVariants['color'];
59
+ variant?: ThemeVariants['variant'];
48
60
  /** Whether or not a range of dates can be selected */
49
61
  range?: R & boolean;
50
62
  /** Whether or not multiple dates can be selected */
@@ -55,21 +67,36 @@ export interface CalendarProps<R extends boolean = false, M extends boolean = fa
55
67
  yearControls?: boolean;
56
68
  defaultValue?: CalendarDefaultValue<R, M>;
57
69
  modelValue?: CalendarDefaultValue<R, M>;
70
+ ui?: ComponentUIProps<typeof theme>;
71
+ }
72
+ export interface CalendarEmits<R extends boolean, M extends boolean> extends Omit<CalendarRootEmits & RangeCalendarRootEmits, 'update:modelValue'> {
73
+ 'update:modelValue': [date: CalendarModelValue<R, M>];
74
+ }
75
+ export interface CalendarSlots {
76
+ 'heading': StaticSlot<{
77
+ value: string;
78
+ }>;
79
+ 'day': StaticSlot<Pick<CalendarCellTriggerProps, 'day'>>;
80
+ 'week-day': StaticSlot<{
81
+ day: string;
82
+ }>;
58
83
  }
59
- declare const _default: <R extends boolean, M extends boolean>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
60
- props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
61
- readonly "onUpdate:modelValue"?: ((date: CalendarModelValue<R, M>) => any) | undefined;
62
- readonly "onUpdate:placeholder"?: ((...args: unknown[]) => any) | undefined;
63
- readonly "onUpdate:startValue"?: ((date: DateValue | undefined) => any) | undefined;
64
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:modelValue" | "onUpdate:placeholder" | "onUpdate:startValue"> & CalendarProps<R, M> & Partial<{}>> & import("vue").PublicProps;
65
- expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
84
+ declare const __VLS_export: <R extends boolean, M extends boolean>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
85
+ props: __VLS_PrettifyLocal<CalendarProps<R, M> & {
86
+ "onUpdate:modelValue"?: ((date: CalendarModelValue<R, M>) => any) | undefined;
87
+ "onUpdate:placeholder"?: ((...args: DateValue[]) => any) | undefined;
88
+ "onUpdate:validModelValue"?: ((date: DateRange) => any) | undefined;
89
+ "onUpdate:startValue"?: ((date: DateValue | undefined) => any) | undefined;
90
+ }> & import("vue").PublicProps;
91
+ expose: (exposed: {}) => void;
66
92
  attrs: any;
67
93
  slots: CalendarSlots;
68
- emit: ((evt: "update:modelValue", date: CalendarModelValue<R, M>) => void) & ((evt: "update:placeholder", ...args: [date: DateValue] & [date: DateValue]) => void) & ((evt: "update:startValue", date: DateValue | undefined) => void);
94
+ emit: ((evt: "update:modelValue", date: CalendarModelValue<R, M>) => void) & ((evt: "update:placeholder", ...args: [date: DateValue] & [date: DateValue]) => void) & ((evt: "update:validModelValue", date: DateRange) => void) & ((evt: "update:startValue", date: DateValue | undefined) => void);
69
95
  }>) => import("vue").VNode & {
70
96
  __ctx?: Awaited<typeof __VLS_setup>;
71
97
  };
98
+ declare const _default: typeof __VLS_export;
72
99
  export default _default;
73
100
  type __VLS_PrettifyLocal<T> = {
74
- [K in keyof T]: T[K];
101
+ [K in keyof T as K]: T[K];
75
102
  } & {};
@@ -1,37 +1,41 @@
1
1
  <script>
2
-
2
+ import theme from "#build/ui/card";
3
3
  </script>
4
4
 
5
5
  <script setup>
6
6
  import { Primitive } from "reka-ui";
7
7
  import { computed } from "vue";
8
- import { useTheme } from "../composables/useTheme";
8
+ import { useAppConfig } from "#imports";
9
+ import { cv, merge } from "../utils/style";
9
10
  const props = defineProps({
10
11
  as: { type: null, required: false },
11
12
  variant: { type: null, required: false },
12
13
  title: { type: String, required: false },
13
14
  description: { type: String, required: false },
14
- class: { type: null, required: false },
15
- ui: { type: null, required: false }
15
+ ui: { type: null, required: false },
16
+ class: { type: [Object, String, Number, Boolean, null, Array], required: false, skipCheck: true }
16
17
  });
17
18
  const slots = defineSlots();
18
- const { generateStyle } = useTheme();
19
- const style = computed(() => generateStyle("card", props));
19
+ const appConfig = useAppConfig();
20
+ const ui = computed(() => {
21
+ const styler = cv(merge(theme, appConfig.ui.card));
22
+ return styler(props);
23
+ });
20
24
  </script>
21
25
 
22
26
  <template>
23
- <Primitive :as="props.as" :class="style.root({ class: [props.class, props.ui?.root] })" data-part="root">
27
+ <Primitive :as="props.as" :class="ui.root({ class: [props.class, props.ui?.root] })" data-part="root">
24
28
  <slot name="content">
25
29
  <div
26
30
  v-if="slots.header || props.title || slots.title || props.description || slots.description"
27
- :class="style.header({ class: props.ui?.header })"
31
+ :class="ui.header({ class: props.ui?.header })"
28
32
  data-part="header"
29
33
  >
30
34
  <slot name="header">
31
35
  <Primitive
32
36
  v-if="props.title || slots.title"
33
- :as="slots.title ? void 0 : 'h2'"
34
- :class="style.title({ class: props.ui?.title })"
37
+ :as="!!slots.title ? void 0 : 'h2'"
38
+ :class="ui.title({ class: props.ui?.title })"
35
39
  data-part="title"
36
40
  >
37
41
  <slot name="title">
@@ -40,9 +44,9 @@ const style = computed(() => generateStyle("card", props));
40
44
  </Primitive>
41
45
  <Primitive
42
46
  v-if="props.description || slots.description"
43
- :as="slots.description ? void 0 : 'p'"
47
+ :as="!!slots.description ? void 0 : 'p'"
44
48
  :as-child="!!slots.description"
45
- :class="style.description({ class: props.ui?.description })"
49
+ :class="ui.description({ class: props.ui?.description })"
46
50
  data-part="description"
47
51
  >
48
52
  <slot name="description">
@@ -52,11 +56,11 @@ const style = computed(() => generateStyle("card", props));
52
56
  </slot>
53
57
  </div>
54
58
 
55
- <div v-if="slots.default" :class="style.body({ class: props.ui?.body })" data-part="body">
59
+ <div v-if="!!slots.default" :class="ui.body({ class: props.ui?.body })" data-part="body">
56
60
  <slot></slot>
57
61
  </div>
58
62
 
59
- <div v-if="slots.footer" :class="style.footer({ class: props.ui?.footer })" data-part="footer">
63
+ <div v-if="!!slots.footer" :class="ui.footer({ class: props.ui?.footer })" data-part="footer">
60
64
  <slot name="footer"></slot>
61
65
  </div>
62
66
  </slot>
@@ -1,27 +1,31 @@
1
1
  import type { VariantProps } from '@byyuurin/ui-kit';
2
2
  import type { PrimitiveProps } from 'reka-ui';
3
- import type { card } from '../theme/index.js';
4
- import type { ComponentAttrs } from '../types/index.js';
5
- export interface CardSlots {
6
- default?: (props?: {}) => any;
7
- content?: (props?: {}) => any;
8
- header?: (props?: {}) => any;
9
- title?: (props?: {}) => any;
10
- description?: (props?: {}) => any;
11
- footer?: (props?: {}) => any;
12
- }
13
- type CardVariants = VariantProps<typeof card>;
14
- export interface CardProps extends ComponentAttrs<typeof card> {
3
+ import theme from '#build/ui/card';
4
+ import type { ComponentBaseProps, ComponentUIProps } from '../types';
5
+ import type { StaticSlot } from '../types/utils';
6
+ type ThemeVariants = VariantProps<typeof theme>;
7
+ export interface CardProps extends ComponentBaseProps {
15
8
  /**
16
9
  * The element or component this component should render as.
17
10
  * @default "div"
18
11
  */
19
12
  as?: PrimitiveProps['as'];
20
- variant?: CardVariants['variant'];
13
+ /** @default "outline" */
14
+ variant?: ThemeVariants['variant'];
21
15
  title?: string;
22
16
  description?: string;
17
+ ui?: ComponentUIProps<typeof theme>;
18
+ }
19
+ export interface CardSlots {
20
+ default: StaticSlot;
21
+ content: StaticSlot;
22
+ header: StaticSlot;
23
+ title: StaticSlot;
24
+ description: StaticSlot;
25
+ footer: StaticSlot;
23
26
  }
24
- declare const _default: __VLS_WithSlots<import("vue").DefineComponent<CardProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<CardProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, CardSlots>;
27
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<CardProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<CardProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, CardSlots>;
28
+ declare const _default: typeof __VLS_export;
25
29
  export default _default;
26
30
  type __VLS_WithSlots<T, S> = T & {
27
31
  new (): {