@byyuurin/ui 0.0.10 → 0.1.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 (289) 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 +48 -72
  6. package/dist/runtime/components/Accordion.vue.d.ts +74 -0
  7. package/dist/runtime/components/Alert.vue +65 -83
  8. package/dist/runtime/components/Alert.vue.d.ts +71 -0
  9. package/dist/runtime/components/App.vue +28 -42
  10. package/dist/runtime/components/App.vue.d.ts +26 -0
  11. package/dist/runtime/components/Avatar.vue +82 -58
  12. package/dist/runtime/components/Avatar.vue.d.ts +39 -0
  13. package/dist/runtime/components/AvatarGroup.vue +43 -70
  14. package/dist/runtime/components/AvatarGroup.vue.d.ts +30 -0
  15. package/dist/runtime/components/Badge.vue +70 -64
  16. package/dist/runtime/components/Badge.vue.d.ts +45 -0
  17. package/dist/runtime/components/Breadcrumb.vue +56 -76
  18. package/dist/runtime/components/Breadcrumb.vue.d.ts +79 -0
  19. package/dist/runtime/components/Button.vue +150 -78
  20. package/dist/runtime/components/Button.vue.d.ts +45 -0
  21. package/dist/runtime/components/Calendar.vue +99 -125
  22. package/dist/runtime/components/Calendar.vue.d.ts +102 -0
  23. package/dist/runtime/components/Card.vue +33 -46
  24. package/dist/runtime/components/Card.vue.d.ts +34 -0
  25. package/dist/runtime/components/Carousel.vue +164 -237
  26. package/dist/runtime/components/Carousel.vue.d.ts +125 -0
  27. package/dist/runtime/components/Checkbox.vue +86 -88
  28. package/dist/runtime/components/Checkbox.vue.d.ts +63 -0
  29. package/dist/runtime/components/Chip.vue +44 -58
  30. package/dist/runtime/components/Chip.vue.d.ts +48 -0
  31. package/dist/runtime/components/Collapsible.vue +29 -33
  32. package/dist/runtime/components/Collapsible.vue.d.ts +34 -0
  33. package/dist/runtime/components/Drawer.vue +110 -150
  34. package/dist/runtime/components/Drawer.vue.d.ts +103 -0
  35. package/dist/runtime/components/DropdownMenu.vue +49 -120
  36. package/dist/runtime/components/DropdownMenu.vue.d.ts +140 -0
  37. package/dist/runtime/components/DropdownMenuContent.vue +177 -143
  38. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +51 -0
  39. package/dist/runtime/components/FieldGroup.vue +33 -0
  40. package/dist/runtime/components/FieldGroup.vue.d.ts +33 -0
  41. package/dist/runtime/components/Form.vue +245 -275
  42. package/dist/runtime/components/Form.vue.d.ts +103 -0
  43. package/dist/runtime/components/FormField.vue +108 -0
  44. package/dist/runtime/components/FormField.vue.d.ts +63 -0
  45. package/dist/runtime/components/Icon.vue +20 -0
  46. package/dist/runtime/components/Icon.vue.d.ts +9 -0
  47. package/dist/runtime/components/Input.vue +125 -156
  48. package/dist/runtime/components/Input.vue.d.ts +76 -0
  49. package/dist/runtime/components/InputNumber.vue +103 -130
  50. package/dist/runtime/components/InputNumber.vue.d.ts +191 -0
  51. package/dist/runtime/components/Kbd.vue +24 -39
  52. package/dist/runtime/components/Kbd.vue.d.ts +34 -0
  53. package/dist/runtime/components/Link.vue +105 -337
  54. package/dist/runtime/components/Link.vue.d.ts +95 -0
  55. package/dist/runtime/components/LinkBase.vue +31 -71
  56. package/dist/runtime/components/LinkBase.vue.d.ts +33 -0
  57. package/dist/runtime/components/Modal.vue +82 -103
  58. package/dist/runtime/components/Modal.vue.d.ts +96 -0
  59. package/dist/runtime/components/NavigationMenu.vue +336 -0
  60. package/dist/runtime/components/NavigationMenu.vue.d.ts +181 -0
  61. package/dist/runtime/components/OverlayProvider.vue +12 -16
  62. package/dist/runtime/components/OverlayProvider.vue.d.ts +3 -0
  63. package/dist/runtime/components/Pagination.vue +65 -139
  64. package/dist/runtime/components/Pagination.vue.d.ts +116 -0
  65. package/dist/runtime/components/PinInput.vue +78 -73
  66. package/dist/runtime/components/PinInput.vue.d.ts +54 -0
  67. package/dist/runtime/components/Popover.vue +60 -75
  68. package/dist/runtime/components/Popover.vue.d.ts +70 -0
  69. package/dist/runtime/components/Progress.vue +79 -126
  70. package/dist/runtime/components/Progress.vue.d.ts +63 -0
  71. package/dist/runtime/components/RadioGroup.vue +109 -140
  72. package/dist/runtime/components/RadioGroup.vue.d.ts +96 -0
  73. package/dist/runtime/components/ScrollArea.vue +50 -48
  74. package/dist/runtime/components/ScrollArea.vue.d.ts +21 -0
  75. package/dist/runtime/components/Select.vue +221 -221
  76. package/dist/runtime/components/Select.vue.d.ts +260 -0
  77. package/dist/runtime/components/Separator.vue +55 -47
  78. package/dist/runtime/components/Separator.vue.d.ts +48 -0
  79. package/dist/runtime/components/Skeleton.vue +25 -22
  80. package/dist/runtime/components/Skeleton.vue.d.ts +19 -0
  81. package/dist/runtime/components/Slider.vue +73 -77
  82. package/dist/runtime/components/Slider.vue.d.ts +52 -0
  83. package/dist/runtime/components/Switch.vue +66 -77
  84. package/dist/runtime/components/Switch.vue.d.ts +58 -0
  85. package/dist/runtime/components/Table.vue +357 -215
  86. package/dist/runtime/components/Table.vue.d.ts +234 -0
  87. package/dist/runtime/components/Tabs.vue +90 -88
  88. package/dist/runtime/components/Tabs.vue.d.ts +97 -0
  89. package/dist/runtime/components/Textarea.vue +147 -146
  90. package/dist/runtime/components/Textarea.vue.d.ts +76 -0
  91. package/dist/runtime/components/Toast.vue +108 -90
  92. package/dist/runtime/components/Toast.vue.d.ts +152 -0
  93. package/dist/runtime/components/ToastProvider.vue +82 -109
  94. package/dist/runtime/components/ToastProvider.vue.d.ts +51 -0
  95. package/dist/runtime/components/Tooltip.vue +54 -53
  96. package/dist/runtime/components/Tooltip.vue.d.ts +53 -0
  97. package/dist/runtime/composables/defineShortcuts.d.ts +16 -0
  98. package/dist/runtime/composables/defineShortcuts.js +129 -0
  99. package/dist/runtime/composables/useAvatarGroup.d.ts +8 -3
  100. package/dist/runtime/composables/useAvatarGroup.js +10 -3
  101. package/dist/runtime/composables/useComponentIcons.d.ts +9 -6
  102. package/dist/runtime/composables/useComponentIcons.js +4 -4
  103. package/dist/runtime/composables/useFieldGroup.d.ts +8 -0
  104. package/dist/runtime/composables/useFieldGroup.js +14 -0
  105. package/dist/runtime/composables/useFormField.d.ts +62 -0
  106. package/dist/runtime/composables/useFormField.js +99 -0
  107. package/dist/runtime/composables/useKbd.d.ts +3 -2
  108. package/dist/runtime/composables/useKbd.js +3 -2
  109. package/dist/runtime/composables/useLocale.d.ts +68 -5
  110. package/dist/runtime/composables/useLocale.js +11 -11
  111. package/dist/runtime/composables/useOverlay.d.ts +51 -15
  112. package/dist/runtime/composables/useOverlay.js +44 -30
  113. package/dist/runtime/composables/usePortal.d.ts +6 -0
  114. package/dist/runtime/composables/usePortal.js +17 -0
  115. package/dist/runtime/composables/useToast.d.ts +12 -5
  116. package/dist/runtime/composables/useToast.js +12 -7
  117. package/dist/runtime/locale/en.d.ts +30 -1
  118. package/dist/runtime/locale/en.js +2 -1
  119. package/dist/runtime/locale/index.d.ts +2 -2
  120. package/dist/runtime/locale/index.js +1 -1
  121. package/dist/runtime/locale/zh_tw.d.ts +31 -0
  122. package/dist/runtime/locale/{zh-tw.js → zh_tw.js} +2 -1
  123. package/dist/runtime/plugins/colors.d.ts +2 -0
  124. package/dist/runtime/plugins/colors.js +50 -0
  125. package/dist/runtime/types/app.config.d.ts +6 -0
  126. package/dist/runtime/types/form.d.ts +58 -17
  127. package/dist/runtime/types/form.js +11 -0
  128. package/dist/runtime/types/index.d.ts +51 -8
  129. package/dist/runtime/types/index.js +45 -2
  130. package/dist/runtime/types/input.d.ts +8 -0
  131. package/dist/runtime/types/locale.d.ts +5 -0
  132. package/dist/runtime/types/style.d.ts +33 -0
  133. package/dist/runtime/types/style.js +0 -0
  134. package/dist/runtime/types/unocss.d.ts +4 -0
  135. package/dist/runtime/types/utils.d.ts +38 -37
  136. package/dist/runtime/utils/form.d.ts +5 -1
  137. package/dist/runtime/utils/form.js +49 -0
  138. package/dist/runtime/utils/index.d.ts +10 -13
  139. package/dist/runtime/utils/index.js +41 -48
  140. package/dist/runtime/utils/link.d.ts +5 -6
  141. package/dist/runtime/utils/link.js +16 -2
  142. package/dist/runtime/utils/locale.d.ts +5 -0
  143. package/dist/runtime/utils/locale.js +10 -0
  144. package/dist/runtime/utils/style.d.ts +94 -0
  145. package/dist/runtime/utils/style.js +37 -0
  146. package/dist/runtime/vue/components/Icon.vue +15 -0
  147. package/dist/runtime/vue/components/Icon.vue.d.ts +7 -0
  148. package/dist/runtime/vue/components/Link.vue +163 -0
  149. package/dist/runtime/vue/components/Link.vue.d.ts +95 -0
  150. package/dist/runtime/vue/composables/useAppConfig.d.ts +1 -0
  151. package/dist/runtime/vue/composables/useAppConfig.js +4 -0
  152. package/dist/runtime/vue/plugins/color-mode.d.ts +4 -0
  153. package/dist/runtime/vue/plugins/color-mode.js +6 -0
  154. package/dist/runtime/vue/plugins/head.d.ts +4 -0
  155. package/dist/runtime/vue/plugins/head.js +9 -0
  156. package/dist/runtime/vue/stubs.d.ts +16 -1
  157. package/dist/runtime/vue/stubs.js +32 -1
  158. package/dist/setup.d.mts +13 -0
  159. package/dist/setup.mjs +12 -0
  160. package/dist/shared/ui.CzIlLITK.mjs +51 -0
  161. package/dist/shared/ui.DSyJHSTk.mjs +3787 -0
  162. package/dist/shared/ui.DpbffTXs.d.mts +84 -0
  163. package/dist/shared/ui.IulR-OYx.d.mts +64 -0
  164. package/dist/types.d.mts +3 -1
  165. package/dist/unocss.d.mts +12 -52
  166. package/dist/unocss.mjs +144 -253
  167. package/dist/unplugin.d.mts +13 -26
  168. package/dist/unplugin.mjs +193 -18
  169. package/dist/vite.d.mts +10 -1
  170. package/dist/vite.mjs +12 -3
  171. package/package.json +156 -87
  172. package/vue-plugin.d.ts +5 -0
  173. package/dist/module.cjs +0 -5
  174. package/dist/module.d.ts +0 -13
  175. package/dist/module.mjs.map +0 -1
  176. package/dist/runtime/app/injections.d.ts +0 -9307
  177. package/dist/runtime/app/injections.js +0 -61
  178. package/dist/runtime/components/ButtonGroup.vue +0 -46
  179. package/dist/runtime/components/FormItem.vue +0 -129
  180. package/dist/runtime/composables/useButtonGroup.d.ts +0 -5
  181. package/dist/runtime/composables/useButtonGroup.js +0 -9
  182. package/dist/runtime/composables/useFormItem.d.ts +0 -27
  183. package/dist/runtime/composables/useFormItem.js +0 -64
  184. package/dist/runtime/composables/useTheme.d.ts +0 -9
  185. package/dist/runtime/composables/useTheme.js +0 -23
  186. package/dist/runtime/index.d.ts +0 -44
  187. package/dist/runtime/index.js +0 -44
  188. package/dist/runtime/locale/zh-tw.d.ts +0 -2
  189. package/dist/runtime/theme/accordion.d.ts +0 -56
  190. package/dist/runtime/theme/accordion.js +0 -28
  191. package/dist/runtime/theme/alert.d.ts +0 -125
  192. package/dist/runtime/theme/alert.js +0 -47
  193. package/dist/runtime/theme/app.d.ts +0 -19
  194. package/dist/runtime/theme/app.js +0 -19
  195. package/dist/runtime/theme/avatar-group.d.ts +0 -52
  196. package/dist/runtime/theme/avatar-group.js +0 -32
  197. package/dist/runtime/theme/avatar.d.ts +0 -56
  198. package/dist/runtime/theme/avatar.js +0 -34
  199. package/dist/runtime/theme/badge.d.ts +0 -82
  200. package/dist/runtime/theme/badge.js +0 -92
  201. package/dist/runtime/theme/breadcrumb.d.ts +0 -67
  202. package/dist/runtime/theme/breadcrumb.js +0 -44
  203. package/dist/runtime/theme/button-group.d.ts +0 -66
  204. package/dist/runtime/theme/button-group.js +0 -42
  205. package/dist/runtime/theme/button.d.ts +0 -190
  206. package/dist/runtime/theme/button.js +0 -164
  207. package/dist/runtime/theme/calendar.d.ts +0 -56
  208. package/dist/runtime/theme/calendar.js +0 -69
  209. package/dist/runtime/theme/card.d.ts +0 -62
  210. package/dist/runtime/theme/card.js +0 -37
  211. package/dist/runtime/theme/carousel.d.ts +0 -113
  212. package/dist/runtime/theme/carousel.js +0 -43
  213. package/dist/runtime/theme/checkbox.d.ts +0 -88
  214. package/dist/runtime/theme/checkbox.js +0 -54
  215. package/dist/runtime/theme/chip.d.ts +0 -67
  216. package/dist/runtime/theme/chip.js +0 -66
  217. package/dist/runtime/theme/collapsible.d.ts +0 -38
  218. package/dist/runtime/theme/collapsible.js +0 -10
  219. package/dist/runtime/theme/drawer.d.ts +0 -148
  220. package/dist/runtime/theme/drawer.js +0 -113
  221. package/dist/runtime/theme/dropdown-menu.d.ts +0 -71
  222. package/dist/runtime/theme/dropdown-menu.js +0 -83
  223. package/dist/runtime/theme/form-item.d.ts +0 -76
  224. package/dist/runtime/theme/form-item.js +0 -34
  225. package/dist/runtime/theme/form.d.ts +0 -8
  226. package/dist/runtime/theme/form.js +0 -7
  227. package/dist/runtime/theme/index.d.ts +0 -41
  228. package/dist/runtime/theme/index.js +0 -41
  229. package/dist/runtime/theme/input-number.d.ts +0 -121
  230. package/dist/runtime/theme/input-number.js +0 -95
  231. package/dist/runtime/theme/input.d.ts +0 -178
  232. package/dist/runtime/theme/input.js +0 -151
  233. package/dist/runtime/theme/kbd.d.ts +0 -39
  234. package/dist/runtime/theme/kbd.js +0 -26
  235. package/dist/runtime/theme/link.d.ts +0 -44
  236. package/dist/runtime/theme/link.js +0 -26
  237. package/dist/runtime/theme/modal.d.ts +0 -48
  238. package/dist/runtime/theme/modal.js +0 -55
  239. package/dist/runtime/theme/pagination.d.ts +0 -80
  240. package/dist/runtime/theme/pagination.js +0 -17
  241. package/dist/runtime/theme/pinInput.d.ts +0 -100
  242. package/dist/runtime/theme/pinInput.js +0 -111
  243. package/dist/runtime/theme/popover.d.ts +0 -38
  244. package/dist/runtime/theme/popover.js +0 -13
  245. package/dist/runtime/theme/progress.d.ts +0 -186
  246. package/dist/runtime/theme/progress.js +0 -95
  247. package/dist/runtime/theme/radio-group.d.ts +0 -110
  248. package/dist/runtime/theme/radio-group.js +0 -61
  249. package/dist/runtime/theme/scroll-area.d.ts +0 -73
  250. package/dist/runtime/theme/scroll-area.js +0 -33
  251. package/dist/runtime/theme/select.d.ts +0 -192
  252. package/dist/runtime/theme/select.js +0 -173
  253. package/dist/runtime/theme/separator.d.ts +0 -80
  254. package/dist/runtime/theme/separator.js +0 -53
  255. package/dist/runtime/theme/skeleton.d.ts +0 -8
  256. package/dist/runtime/theme/skeleton.js +0 -7
  257. package/dist/runtime/theme/slider.d.ts +0 -76
  258. package/dist/runtime/theme/slider.js +0 -52
  259. package/dist/runtime/theme/switch.d.ts +0 -122
  260. package/dist/runtime/theme/switch.js +0 -78
  261. package/dist/runtime/theme/table.d.ts +0 -92
  262. package/dist/runtime/theme/table.js +0 -36
  263. package/dist/runtime/theme/tabs.d.ts +0 -135
  264. package/dist/runtime/theme/tabs.js +0 -146
  265. package/dist/runtime/theme/textarea.d.ts +0 -96
  266. package/dist/runtime/theme/textarea.js +0 -116
  267. package/dist/runtime/theme/toast-provider.d.ts +0 -122
  268. package/dist/runtime/theme/toast-provider.js +0 -97
  269. package/dist/runtime/theme/toast.d.ts +0 -89
  270. package/dist/runtime/theme/toast.js +0 -35
  271. package/dist/runtime/theme/tooltip.d.ts +0 -44
  272. package/dist/runtime/theme/tooltip.js +0 -11
  273. package/dist/runtime/types/components.d.ts +0 -42
  274. package/dist/runtime/utils/extend-theme.d.ts +0 -9
  275. package/dist/runtime/utils/extend-theme.js +0 -27
  276. package/dist/runtime/utils/styler.d.ts +0 -4
  277. package/dist/runtime/utils/styler.js +0 -10
  278. package/dist/runtime/utils/translator.d.ts +0 -18
  279. package/dist/runtime/utils/translator.js +0 -8
  280. package/dist/shared/ui.3e7fad19.mjs +0 -5
  281. package/dist/shared/ui.3e7fad19.mjs.map +0 -1
  282. package/dist/types.d.ts +0 -1
  283. package/dist/unocss.d.ts +0 -52
  284. package/dist/unocss.mjs.map +0 -1
  285. package/dist/unplugin.d.ts +0 -26
  286. package/dist/unplugin.mjs.map +0 -1
  287. package/dist/vite.d.ts +0 -9
  288. package/dist/vite.mjs.map +0 -1
  289. /package/dist/runtime/types/{components.js → input.js} +0 -0
@@ -0,0 +1,260 @@
1
+ import type { VariantProps } from '@byyuurin/ui-kit';
2
+ import type { SelectArrowProps, SelectContentEmits, SelectContentProps, SelectRootEmits, SelectRootProps } from 'reka-ui';
3
+ import theme from '#build/ui/select';
4
+ import type { UseComponentIconsProps } from '../composables/useComponentIcons';
5
+ import type { AvatarProps, ChipProps, ComponentBaseProps, ComponentStyler, ComponentUIProps, IconProps } from '../types';
6
+ import type { AcceptableValue, ArrayOrNested, EmitsToProps, GetItemKeys, GetModelValue, GetModelValueEmits, MaybeNull, NestedItem, StaticSlot } from '../types/utils';
7
+ export type SelectValue = Exclude<AcceptableValue, boolean>;
8
+ export type SelectItem = SelectValue | {
9
+ label?: string;
10
+ description?: string;
11
+ icon?: IconProps['name'];
12
+ avatar?: AvatarProps;
13
+ chip?: ChipProps;
14
+ /**
15
+ * The item type.
16
+ * @default "item"
17
+ */
18
+ type?: 'label' | 'separator' | 'item';
19
+ value?: SelectValue;
20
+ disabled?: boolean;
21
+ onSelect?: (e: Event) => void;
22
+ ui?: Pick<ComponentUIProps<typeof theme>, 'label' | 'separator' | 'item' | 'itemLeadingIcon' | 'itemLeadingAvatarSize' | 'itemLeadingAvatar' | 'itemLeadingChipSize' | 'itemLeadingChip' | 'itemWrapper' | 'itemLabel' | 'itemDescription' | 'itemTrailing' | 'itemTrailingIcon'>;
23
+ class?: ComponentBaseProps['class'];
24
+ [key: string]: any;
25
+ };
26
+ type ThemeVariants = VariantProps<typeof theme>;
27
+ export interface SelectProps<T extends ArrayOrNested<SelectItem> = ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = 'value', M extends boolean = false> extends ComponentBaseProps, UseComponentIconsProps, Omit<SelectRootProps<T>, 'dir' | 'multiple' | 'modelValue' | 'defaultValue' | 'by'> {
28
+ id?: string;
29
+ /** The placeholder text when the select is empty. */
30
+ placeholder?: string;
31
+ /** @default "outline" */
32
+ variant?: ThemeVariants['variant'];
33
+ /** @default "md" */
34
+ size?: ThemeVariants['size'];
35
+ /** @default "primary" */
36
+ color?: ThemeVariants['color'];
37
+ /**
38
+ * The icon displayed to open the menu.
39
+ * @default app.icons.chevronDown
40
+ */
41
+ trailingIcon?: IconProps['name'];
42
+ /**
43
+ * The icon displayed when an item is selected.
44
+ * @default app.icons.check
45
+ */
46
+ selectedIcon?: IconProps['name'];
47
+ /**
48
+ * The content of the menu.
49
+ * @default { side: 'bottom', sideOffset: 8, collisionPadding: 8, position: 'popper' }
50
+ */
51
+ content?: Omit<SelectContentProps, 'as' | 'asChild' | 'forceMount'> & Partial<EmitsToProps<SelectContentEmits>>;
52
+ /**
53
+ * Display an arrow alongside the menu.
54
+ * @default false
55
+ */
56
+ arrow?: boolean | Omit<SelectArrowProps, 'as' | 'asChild'>;
57
+ /**
58
+ * Render the menu in a portal.
59
+ * @default true
60
+ */
61
+ portal?: boolean | string | HTMLElement;
62
+ /**
63
+ * When `items` is an array of objects, select the field to use as the value.
64
+ * @default "value"
65
+ */
66
+ valueKey?: VK;
67
+ /**
68
+ * When `items` is an array of objects, select the field to use as the label.
69
+ * @default "label"
70
+ */
71
+ labelKey?: GetItemKeys<T>;
72
+ /**
73
+ * When `items` is an array of objects, select the field to use as the description.
74
+ * @default "description"
75
+ */
76
+ descriptionKey?: GetItemKeys<T>;
77
+ items?: T;
78
+ /** The value of the Select when initially rendered. Use when you do not need to control the state of the Select. */
79
+ defaultValue?: MaybeNull<GetModelValue<T, VK, M>>;
80
+ /** The controlled value of the Select. Can be bind as `v-model`. */
81
+ modelValue?: MaybeNull<GetModelValue<T, VK, M>>;
82
+ /** Whether multiple options can be selected or not. */
83
+ multiple?: M & boolean;
84
+ /** Highlight the ring color like a focus state. */
85
+ highlight?: boolean;
86
+ autofocus?: boolean;
87
+ autofocusDelay?: number;
88
+ ui?: ComponentUIProps<typeof theme>;
89
+ }
90
+ export type SelectEmits<A extends ArrayOrNested<SelectItem>, VK extends GetItemKeys<A> | undefined, M extends boolean> = Omit<SelectRootEmits, 'update:modelValue'> & {
91
+ change: [event: Event];
92
+ blur: [event: FocusEvent];
93
+ focus: [event: FocusEvent];
94
+ } & GetModelValueEmits<A, VK, M>;
95
+ export interface SelectSlots<A extends ArrayOrNested<SelectItem> = ArrayOrNested<SelectItem>, VK extends GetItemKeys<A> | undefined = undefined, M extends boolean = false, T extends NestedItem<A> = NestedItem<A>> {
96
+ 'leading': StaticSlot<{
97
+ modelValue?: MaybeNull<GetModelValue<A, VK, M>>;
98
+ open: boolean;
99
+ ui: ComponentStyler<typeof theme>;
100
+ }>;
101
+ 'default': StaticSlot<{
102
+ modelValue?: MaybeNull<GetModelValue<A, VK, M>>;
103
+ open: boolean;
104
+ ui: ComponentStyler<typeof theme>;
105
+ }>;
106
+ 'trailing': StaticSlot<{
107
+ modelValue?: MaybeNull<GetModelValue<A, VK, M>>;
108
+ open: boolean;
109
+ ui: ComponentStyler<typeof theme>;
110
+ }>;
111
+ 'item': StaticSlot<{
112
+ item: T;
113
+ index: number;
114
+ ui: ComponentStyler<typeof theme>;
115
+ }>;
116
+ 'item-leading': StaticSlot<{
117
+ item: T;
118
+ index: number;
119
+ ui: ComponentStyler<typeof theme>;
120
+ }>;
121
+ 'item-label': StaticSlot<{
122
+ item: T;
123
+ index: number;
124
+ }>;
125
+ 'item-description': StaticSlot<{
126
+ item: T;
127
+ index: number;
128
+ }>;
129
+ 'item-trailing': StaticSlot<{
130
+ item: T;
131
+ index: number;
132
+ ui: ComponentStyler<typeof theme>;
133
+ }>;
134
+ 'content-top': StaticSlot;
135
+ 'content-bottom': StaticSlot;
136
+ }
137
+ declare const __VLS_export: <T extends ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = "value", M extends boolean = false>(__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<{
138
+ props: __VLS_PrettifyLocal<SelectProps<T, VK, M> & {
139
+ onChange?: ((event: Event) => any) | undefined;
140
+ onBlur?: ((event: FocusEvent) => any) | undefined;
141
+ onFocus?: ((event: FocusEvent) => any) | undefined;
142
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
143
+ "onUpdate:modelValue"?: ((value: GetModelValue<T, VK, M>) => any) | undefined;
144
+ }> & import("vue").PublicProps;
145
+ expose: (exposed: import("vue").ShallowUnwrapRef<{
146
+ triggerRef: import("vue").ShallowRef<MaybeNull<{
147
+ $: import("vue").ComponentInternalInstance;
148
+ $data: {};
149
+ $props: {
150
+ readonly disabled?: boolean | undefined;
151
+ readonly reference?: import("reka-ui").ReferenceElement | undefined;
152
+ readonly asChild?: boolean | undefined;
153
+ readonly as?: (import("reka-ui").AsTag | import("vue").Component) | undefined;
154
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
155
+ $attrs: {
156
+ [x: string]: unknown;
157
+ };
158
+ $refs: {
159
+ [x: string]: unknown;
160
+ };
161
+ $slots: Readonly<{
162
+ [name: string]: import("vue").Slot<any> | undefined;
163
+ }>;
164
+ $root: import("vue").ComponentPublicInstance | null;
165
+ $parent: import("vue").ComponentPublicInstance | null;
166
+ $host: Element | null;
167
+ $emit: (event: string, ...args: any[]) => void;
168
+ $el: any;
169
+ $options: import("vue").ComponentOptionsBase<Readonly<import("reka-ui").SelectTriggerProps> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
170
+ as: import("reka-ui").AsTag | import("vue").Component;
171
+ }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
172
+ beforeCreate?: (() => void) | (() => void)[];
173
+ created?: (() => void) | (() => void)[];
174
+ beforeMount?: (() => void) | (() => void)[];
175
+ mounted?: (() => void) | (() => void)[];
176
+ beforeUpdate?: (() => void) | (() => void)[];
177
+ updated?: (() => void) | (() => void)[];
178
+ activated?: (() => void) | (() => void)[];
179
+ deactivated?: (() => void) | (() => void)[];
180
+ beforeDestroy?: (() => void) | (() => void)[];
181
+ beforeUnmount?: (() => void) | (() => void)[];
182
+ destroyed?: (() => void) | (() => void)[];
183
+ unmounted?: (() => void) | (() => void)[];
184
+ renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
185
+ renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
186
+ errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
187
+ };
188
+ $forceUpdate: () => void;
189
+ $nextTick: typeof import("vue").nextTick;
190
+ $watch<T_1 extends string | ((...args: any) => any)>(source: T_1, cb: T_1 extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions): import("vue").WatchStopHandle;
191
+ } & Readonly<{
192
+ as: import("reka-ui").AsTag | import("vue").Component;
193
+ }> & Omit<Readonly<import("reka-ui").SelectTriggerProps> & Readonly<{}>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
194
+ $slots: {
195
+ default?: (props: {}) => any;
196
+ };
197
+ }>, MaybeNull<{
198
+ $: import("vue").ComponentInternalInstance;
199
+ $data: {};
200
+ $props: {
201
+ readonly disabled?: boolean | undefined;
202
+ readonly reference?: import("reka-ui").ReferenceElement | undefined;
203
+ readonly asChild?: boolean | undefined;
204
+ readonly as?: (import("reka-ui").AsTag | import("vue").Component) | undefined;
205
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
206
+ $attrs: {
207
+ [x: string]: unknown;
208
+ };
209
+ $refs: {
210
+ [x: string]: unknown;
211
+ };
212
+ $slots: Readonly<{
213
+ [name: string]: import("vue").Slot<any> | undefined;
214
+ }>;
215
+ $root: import("vue").ComponentPublicInstance | null;
216
+ $parent: import("vue").ComponentPublicInstance | null;
217
+ $host: Element | null;
218
+ $emit: (event: string, ...args: any[]) => void;
219
+ $el: any;
220
+ $options: import("vue").ComponentOptionsBase<Readonly<import("reka-ui").SelectTriggerProps> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
221
+ as: import("reka-ui").AsTag | import("vue").Component;
222
+ }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
223
+ beforeCreate?: (() => void) | (() => void)[];
224
+ created?: (() => void) | (() => void)[];
225
+ beforeMount?: (() => void) | (() => void)[];
226
+ mounted?: (() => void) | (() => void)[];
227
+ beforeUpdate?: (() => void) | (() => void)[];
228
+ updated?: (() => void) | (() => void)[];
229
+ activated?: (() => void) | (() => void)[];
230
+ deactivated?: (() => void) | (() => void)[];
231
+ beforeDestroy?: (() => void) | (() => void)[];
232
+ beforeUnmount?: (() => void) | (() => void)[];
233
+ destroyed?: (() => void) | (() => void)[];
234
+ unmounted?: (() => void) | (() => void)[];
235
+ renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
236
+ renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
237
+ errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
238
+ };
239
+ $forceUpdate: () => void;
240
+ $nextTick: typeof import("vue").nextTick;
241
+ $watch<T_1 extends string | ((...args: any) => any)>(source: T_1, cb: T_1 extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions): import("vue").WatchStopHandle;
242
+ } & Readonly<{
243
+ as: import("reka-ui").AsTag | import("vue").Component;
244
+ }> & Omit<Readonly<import("reka-ui").SelectTriggerProps> & Readonly<{}>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
245
+ $slots: {
246
+ default?: (props: {}) => any;
247
+ };
248
+ }>>;
249
+ }>) => void;
250
+ attrs: any;
251
+ slots: SelectSlots<T, VK, M, NestedItem<T>>;
252
+ emit: ((evt: "change", event: Event) => void) & ((evt: "blur", event: FocusEvent) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: GetModelValue<T, VK, M>) => void);
253
+ }>) => import("vue").VNode & {
254
+ __ctx?: Awaited<typeof __VLS_setup>;
255
+ };
256
+ declare const _default: typeof __VLS_export;
257
+ export default _default;
258
+ type __VLS_PrettifyLocal<T> = {
259
+ [K in keyof T as K]: T[K];
260
+ } & {};
@@ -1,59 +1,67 @@
1
- <script lang="ts">
2
- import type { VariantProps } from '@byyuurin/ui-kit'
3
- import type { SeparatorProps as RekaSeparatorProps } from 'reka-ui'
4
- import type { separator } from '../theme'
5
- import type { ComponentAttrs } from '../types'
6
-
7
- export interface SeparatorSlots {
8
- default?: (props: {}) => any
9
- }
10
-
11
- type SeparatorVariants = VariantProps<typeof separator>
12
-
13
- export interface SeparatorProps extends ComponentAttrs<typeof separator>, Pick<RekaSeparatorProps, 'as' | 'decorative'> {
14
- orientation?: SeparatorVariants['orientation']
15
- align?: 'start' | 'end' | 'center'
16
- /** Display a label in the middle. */
17
- label?: string
18
- /**
19
- * Display an icon in the middle.
20
- */
21
- icon?: string
22
- }
1
+ <script>
2
+ import theme from "#build/ui/separator";
23
3
  </script>
24
4
 
25
- <script setup lang="ts">
26
- import { reactivePick } from '@vueuse/core'
27
- import { Separator, useForwardProps } from 'reka-ui'
28
- import { computed } from 'vue'
29
- import { useTheme } from '../composables/useTheme'
30
-
31
- const props = withDefaults(defineProps<SeparatorProps>(), {
32
- orientation: 'horizontal',
33
- position: 'center',
34
- })
35
-
36
- const slots = defineSlots<SeparatorSlots>()
37
-
38
- const rootProps = useForwardProps(reactivePick(props, 'as', 'decorative', 'orientation'))
39
-
40
- const { generateStyle } = useTheme()
41
- const style = computed(() => generateStyle('separator', props))
5
+ <script setup>
6
+ import { reactivePick } from "@vueuse/core";
7
+ import { Separator, useForwardProps } from "reka-ui";
8
+ import { computed } from "vue";
9
+ import { useAppConfig } from "#imports";
10
+ import { cv, merge } from "../utils/style";
11
+ import Avatar from "./Avatar.vue";
12
+ import Icon from "./Icon.vue";
13
+ const props = defineProps({
14
+ as: { type: null, required: false },
15
+ orientation: { type: null, required: false, default: "horizontal" },
16
+ color: { type: null, required: false },
17
+ size: { type: null, required: false },
18
+ type: { type: null, required: false },
19
+ align: { type: String, required: false, default: "center" },
20
+ label: { type: String, required: false },
21
+ icon: { type: [String, Object], required: false },
22
+ avatar: { type: Object, required: false },
23
+ ui: { type: null, required: false },
24
+ class: { type: [Object, String, Number, Boolean, null, Array], required: false, skipCheck: true },
25
+ decorative: { type: Boolean, required: false }
26
+ });
27
+ const slots = defineSlots();
28
+ const rootProps = useForwardProps(reactivePick(props, "as", "decorative", "orientation"));
29
+ const appConfig = useAppConfig();
30
+ const ui = computed(() => {
31
+ const styler = cv(merge(theme, appConfig.ui.separator));
32
+ return styler(props);
33
+ });
42
34
  </script>
43
35
 
44
36
  <template>
45
- <Separator v-bind="rootProps" :class="style.root({ class: [props.class, props.ui?.root] })">
46
- <div :class="style.line({ class: props.ui?.line, start: props.align === 'start' })"></div>
37
+ <Separator v-bind="rootProps" :class="ui.root({ class: [props.ui?.root, props.class] })" data-part="root">
38
+ <div :class="ui.border({ class: props.ui?.border, start: props.align === 'start' })" data-part="border"></div>
47
39
 
48
- <template v-if="props.label || props.icon || slots.default">
49
- <div :class="style.container({ class: props.ui?.container })">
50
- <slot>
51
- <span v-if="props.label" :class="style.label({ class: props.ui?.label })">{{ props.label }}</span>
52
- <span v-else-if="props.icon" :class="style.icon({ class: [props.icon, props.ui?.icon] })"></span>
40
+ <template v-if="props.label || props.icon || props.avatar || !!slots.default">
41
+ <div :class="ui.container({ class: props.ui?.container })" data-part="container">
42
+ <slot :ui="ui">
43
+ <span
44
+ v-if="props.label"
45
+ :class="ui.label({ class: props.ui?.label })"
46
+ data-part="label"
47
+ >{{ props.label }}</span>
48
+ <Icon
49
+ v-else-if="props.icon"
50
+ :name="props.icon"
51
+ :class="ui.icon({ class: props.ui?.icon })"
52
+ data-part="icon"
53
+ />
54
+ <Avatar
55
+ v-else-if="props.avatar"
56
+ :size="props.ui?.avatarSize || ui.avatarSize()"
57
+ v-bind="props.avatar"
58
+ :class="ui.avatar({ class: props.ui?.avatar })"
59
+ data-part="avatar"
60
+ />
53
61
  </slot>
54
62
  </div>
55
63
 
56
- <div :class="style.line({ class: props.ui?.line, end: props.align === 'end' })"></div>
64
+ <div :class="ui.border({ class: props.ui?.border, end: props.align === 'end' })" data-part="border"></div>
57
65
  </template>
58
66
  </Separator>
59
67
  </template>
@@ -0,0 +1,48 @@
1
+ import type { VariantProps } from '@byyuurin/ui-kit';
2
+ import type { SeparatorProps as _SeparatorProps } from 'reka-ui';
3
+ import theme from '#build/ui/separator';
4
+ import type { AvatarProps, ComponentBaseProps, ComponentStyler, ComponentUIProps, IconProps } from '../types';
5
+ import type { StaticSlot } from '../types/utils';
6
+ type ThemeVariants = VariantProps<typeof theme>;
7
+ export interface SeparatorProps extends ComponentBaseProps, Pick<_SeparatorProps, 'decorative'> {
8
+ /**
9
+ * The element or component this component should render as.
10
+ * @default "div"
11
+ */
12
+ as?: _SeparatorProps['as'];
13
+ /**
14
+ * The orientation of the separator.
15
+ * @default "horizontal"
16
+ */
17
+ orientation?: ThemeVariants['orientation'];
18
+ /** @default "neutral" */
19
+ color?: ThemeVariants['color'];
20
+ /** @default "xs" */
21
+ size?: ThemeVariants['size'];
22
+ /** @default "solid" */
23
+ type?: ThemeVariants['type'];
24
+ align?: 'start' | 'end' | 'center';
25
+ /** Display a label in the middle. */
26
+ label?: string;
27
+ /** Display an icon in the middle. */
28
+ icon?: IconProps['name'];
29
+ /** Display an avatar in the middle. */
30
+ avatar?: AvatarProps;
31
+ ui?: ComponentUIProps<typeof theme>;
32
+ }
33
+ export interface SeparatorSlots {
34
+ default: StaticSlot<{
35
+ ui: ComponentStyler<typeof theme>;
36
+ }>;
37
+ }
38
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<SeparatorProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<SeparatorProps> & Readonly<{}>, {
39
+ orientation: "horizontal" | "vertical";
40
+ align: "start" | "end" | "center";
41
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, SeparatorSlots>;
42
+ declare const _default: typeof __VLS_export;
43
+ export default _default;
44
+ type __VLS_WithSlots<T, S> = T & {
45
+ new (): {
46
+ $slots: S;
47
+ };
48
+ };
@@ -1,30 +1,33 @@
1
- <script lang="ts">
2
- import type { PrimitiveProps } from 'reka-ui'
3
- import type { skeleton } from '../theme'
4
- import type { ComponentAttrs } from '../types'
5
-
6
- export interface SkeletonProps extends Omit<ComponentAttrs<typeof skeleton>, 'ui'> {
7
- /**
8
- * The element or component this component should render as.
9
- * @default "div"
10
- */
11
- as?: PrimitiveProps['as']
12
- }
1
+ <script>
2
+ import { useAppConfig } from "#imports";
13
3
  </script>
14
4
 
15
- <script setup lang="ts">
16
- import { Primitive } from 'reka-ui'
17
- import { computed } from 'vue'
18
- import { useTheme } from '../composables/useTheme'
19
-
20
- const props = withDefaults(defineProps<SkeletonProps>(), {})
21
-
22
- const { generateStyle } = useTheme()
23
- const styler = computed(() => generateStyle('skeleton', props))
5
+ <script setup>
6
+ import { Primitive } from "reka-ui";
7
+ import { computed } from "vue";
8
+ import theme from "#build/ui/skeleton";
9
+ import { cv, merge } from "../utils/style";
10
+ const props = defineProps({
11
+ as: { type: null, required: false },
12
+ class: { type: [Object, String, Number, Boolean, null, Array], required: false, skipCheck: true }
13
+ });
14
+ const appConfig = useAppConfig();
15
+ const ui = computed(() => {
16
+ const styler = cv(merge(theme, appConfig.ui.skeleton));
17
+ return styler(props);
18
+ });
24
19
  </script>
25
20
 
26
21
  <template>
27
- <Primitive :as="props.as" :class="styler">
22
+ <Primitive
23
+ :as="props.as"
24
+ aria-busy="true"
25
+ aria-label="loading"
26
+ aria-live="polite"
27
+ role="alert"
28
+ :class="ui.base({ class: props.class })"
29
+ data-part="base"
30
+ >
28
31
  <slot></slot>
29
32
  </Primitive>
30
33
  </template>
@@ -0,0 +1,19 @@
1
+ import type { PrimitiveProps } from 'reka-ui';
2
+ import type { ComponentBaseProps } from '../types';
3
+ export interface SkeletonProps extends ComponentBaseProps {
4
+ /**
5
+ * The element or component this component should render as.
6
+ * @default "div"
7
+ */
8
+ as?: PrimitiveProps['as'];
9
+ }
10
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<SkeletonProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<SkeletonProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
11
+ default?: (props: {}) => any;
12
+ }>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
15
+ type __VLS_WithSlots<T, S> = T & {
16
+ new (): {
17
+ $slots: S;
18
+ };
19
+ };