@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
@@ -1,61 +0,0 @@
1
- import { defineInjection } from "../utils/index.js";
2
- export const {
3
- InjectionKey: InjectionKeyAvatarGroup,
4
- inject: injectAvatarGroup,
5
- provide: provideAvatarGroup
6
- } = defineInjection("ui.avatar-group");
7
- export const {
8
- InjectionKey: InjectionKeyButtonGroup,
9
- inject: injectButtonGroup,
10
- provide: provideButtonGroup
11
- } = defineInjection("ui.button-group");
12
- export const {
13
- InjectionKey: InjectionKeyFormOptions,
14
- inject: injectFormOptions,
15
- provide: provideFormOptions
16
- } = defineInjection("ui.form-options");
17
- export const {
18
- InjectionKey: InjectionKeyFormBus,
19
- inject: injectFormBus,
20
- provide: provideFormBus
21
- } = defineInjection("ui.form-bus");
22
- export const {
23
- InjectionKey: InjectionKeyFormItem,
24
- inject: injectFormItem,
25
- provide: provideFormItem
26
- } = defineInjection("ui.form-item");
27
- export const {
28
- InjectionKey: InjectionKeyFormInputId,
29
- inject: injectFormInputId,
30
- provide: provideFormInputId
31
- } = defineInjection("ui.form-input-id");
32
- export const {
33
- InjectionKey: InjectionKeyFormInputs,
34
- inject: injectFormInputs,
35
- provide: provideFormInputs
36
- } = defineInjection("ui.form-inputs");
37
- export const {
38
- InjectionKey: InjectionKeyFormLoading,
39
- inject: injectFormLoading,
40
- provide: provideFormLoading
41
- } = defineInjection("ui.form-loading");
42
- export const {
43
- InjectionKey: InjectionKeyFormErrors,
44
- inject: injectFormErrors,
45
- provide: provideFormErrors
46
- } = defineInjection("ui.form-errors", null);
47
- export const {
48
- InjectionKey: InjectionKeyLocaleContext,
49
- inject: injectLocaleContext,
50
- provide: provideLocaleContext
51
- } = defineInjection("ui.locale-context");
52
- export const {
53
- InjectionKey: InjectionKeyThemeExtension,
54
- provide: provideThemeExtension,
55
- inject: injectThemeExtension
56
- } = defineInjection("ui.theme-extension", {});
57
- export const {
58
- InjectionKey: InjectionKeyUnoConfig,
59
- provide: provideUnoConfig,
60
- inject: injectUnoConfig
61
- } = defineInjection("ui.uno-config", {});
@@ -1,46 +0,0 @@
1
- <script lang="ts">
2
- import type { VariantProps } from '@byyuurin/ui-kit'
3
- import type { PrimitiveProps } from 'reka-ui'
4
- import type { buttonGroup } from '../theme'
5
- import type { ComponentAttrs } from '../types'
6
-
7
- export interface ButtonGroupSlots {
8
- default?: (props?: {}) => any
9
- }
10
-
11
- type ButtonGroupVariant = VariantProps<typeof buttonGroup>
12
-
13
- export interface ButtonGroupProps extends Omit<ComponentAttrs<typeof buttonGroup>, 'ui'> {
14
- /**
15
- * The element or component this component should render as.
16
- * @default "div"
17
- */
18
- as?: PrimitiveProps['as']
19
- size?: ButtonGroupVariant['size']
20
- orientation?: ButtonGroupVariant['orientation']
21
- }
22
- </script>
23
-
24
- <script setup lang="ts">
25
- import { Primitive } from 'reka-ui'
26
- import { computed } from 'vue'
27
- import { provideButtonGroup } from '../app/injections'
28
- import { useTheme } from '../composables/useTheme'
29
-
30
- const props = withDefaults(defineProps<ButtonGroupProps>(), {
31
- orientation: 'horizontal',
32
- })
33
-
34
- defineSlots<ButtonGroupSlots>()
35
-
36
- provideButtonGroup(computed(() => props))
37
-
38
- const { generateStyle } = useTheme()
39
- const style = computed(() => generateStyle('buttonGroup', props))
40
- </script>
41
-
42
- <template>
43
- <Primitive :as="props.as" :class="style">
44
- <slot></slot>
45
- </Primitive>
46
- </template>
@@ -1,129 +0,0 @@
1
- <script lang="ts">
2
- import type { VariantProps } from '@byyuurin/ui-kit'
3
- import type { PrimitiveProps } from 'reka-ui'
4
- import type { formItem } from '../theme'
5
- import type { ComponentAttrs } from '../types'
6
-
7
- export interface FormFieldSlots {
8
- label?: (props: { label?: string }) => any
9
- hint?: (props: { hint?: string }) => any
10
- description?: (props: { description?: string }) => any
11
- help?: (props: { help?: string }) => any
12
- error?: (props: { error?: string | boolean }) => any
13
- default?: (props: { error?: string | boolean }) => any
14
- }
15
-
16
- type FormItemVariants = VariantProps<typeof formItem>
17
-
18
- export interface FormItemProps extends ComponentAttrs<typeof formItem> {
19
- /**
20
- * The element or component this component should render as.
21
- * @default "div"
22
- */
23
- as?: PrimitiveProps['as']
24
- /** The name of the FormItem. Also used to match form errors. */
25
- name?: string
26
- /** A regular expression to match form error names. */
27
- errorPattern?: RegExp
28
- label?: string
29
- description?: string
30
- help?: string
31
- error?: string | boolean
32
- hint?: string
33
- /**
34
- * @default 'md'
35
- */
36
- size?: FormItemVariants['size']
37
- required?: boolean
38
- /** If true, validation on input will be active immediately instead of waiting for a blur event. */
39
- eagerValidation?: boolean
40
- /**
41
- * Delay in milliseconds before validating the form on input events.
42
- * @default 300
43
- */
44
- validateOnInputDelay?: number
45
- }
46
- </script>
47
-
48
- <script setup lang="ts">
49
- import { Label, Primitive } from 'reka-ui'
50
- import { computed, ref, useId } from 'vue'
51
- import { injectFormErrors, provideFormInputId, provideFormItem } from '../app/injections'
52
- import { useTheme } from '../composables/useTheme'
53
-
54
- const props = defineProps<FormItemProps>()
55
- const slots = defineSlots<FormFieldSlots>()
56
-
57
- const id = ref(useId())
58
- // Copies id's initial value to bind aria-attributes such as aria-describedby.
59
- // This is required for the RadioGroup component which unsets the id value.
60
- const ariaId = id.value
61
- provideFormInputId(id)
62
-
63
- const formErrors = injectFormErrors()
64
- const error = computed(() => {
65
- if (props.error)
66
- return props.error
67
-
68
- const formError = formErrors?.value.find((error) => {
69
- if (error.name && error.name === props.name)
70
- return true
71
-
72
- if (error.name && props.errorPattern)
73
- return error.name.match(props.errorPattern)
74
-
75
- return false
76
- })
77
-
78
- return formError?.message
79
- })
80
-
81
- provideFormItem(computed(() => ({
82
- ...props,
83
- error: error.value,
84
- ariaId,
85
- })))
86
-
87
- const { generateStyle } = useTheme()
88
- const style = computed(() => generateStyle('formItem', props))
89
- </script>
90
-
91
- <template>
92
- <Primitive :as="props.as" :class="style.root({ class: [props.class, props.ui?.root] })">
93
- <div :class="style.wrapper({ class: props.ui?.wrapper })">
94
- <div v-if="props.label || slots.label" :class="style.labelWrapper({ class: props.ui?.labelWrapper })">
95
- <Label :for="id" :class="style.label({ class: props.ui?.label })">
96
- <slot name="label" :label="props.label">
97
- {{ props.label }}
98
- </slot>
99
- </Label>
100
- <span v-if="props.hint || slots.hint" :id="`${ariaId}-hint`" :class="style.hint({ class: props.ui?.hint })">
101
- <slot name="hint" :hint="props.hint">
102
- {{ props.hint }}
103
- </slot>
104
- </span>
105
- </div>
106
-
107
- <p v-if="props.description || slots.description" :id="`${ariaId}-description`" :class="style.description({ class: props.ui?.description })">
108
- <slot name="description" :description="props.description">
109
- {{ props.description }}
110
- </slot>
111
- </p>
112
- </div>
113
-
114
- <div :class="(props.label || slots.label || props.description || slots.description) && style.container({ class: props.ui?.container })">
115
- <slot :error="error"></slot>
116
-
117
- <p v-if="(typeof error === 'string' && error) || slots.error" :id="`${ariaId}-error`" :class="style.error({ class: props.ui?.error })">
118
- <slot name="error" :error="error">
119
- {{ error }}
120
- </slot>
121
- </p>
122
- <p v-else :class="style.help({ class: props.ui?.help })">
123
- <slot name="help" :help="props.help">
124
- {{ help }}
125
- </slot>
126
- </p>
127
- </div>
128
- </Primitive>
129
- </template>
@@ -1,5 +0,0 @@
1
- import type { ButtonProps } from '../types/index.js';
2
- export declare function useButtonGroup(props?: Pick<ButtonProps, 'size'>): {
3
- size: import("vue").ComputedRef<any>;
4
- orientation: import("vue").ComputedRef<any>;
5
- };
@@ -1,9 +0,0 @@
1
- import { computed } from "vue";
2
- import { injectButtonGroup } from "../app/injections.js";
3
- export function useButtonGroup(props = {}) {
4
- const buttonGroup = injectButtonGroup();
5
- return {
6
- size: computed(() => props.size ?? buttonGroup?.value.size),
7
- orientation: computed(() => buttonGroup?.value.orientation)
8
- };
9
- }
@@ -1,27 +0,0 @@
1
- import type { GetObjectField } from '../types/index.js';
2
- interface Props<T> {
3
- id?: string;
4
- name?: string;
5
- size?: GetObjectField<T, 'size'>;
6
- highlight?: boolean;
7
- disabled?: boolean;
8
- }
9
- export declare function useFormItem<T>(props?: Props<T>, options?: {
10
- bind?: boolean;
11
- deferInputValidation?: boolean;
12
- }): {
13
- id: import("vue").ComputedRef<string | undefined>;
14
- name: import("vue").ComputedRef<string | undefined>;
15
- size: import("vue").ComputedRef<any>;
16
- highlight: import("vue").ComputedRef<boolean | undefined>;
17
- disabled: import("vue").ComputedRef<boolean | undefined>;
18
- emitFormBlur: () => void;
19
- emitFormInput: import("@vueuse/core").PromisifyFn<() => void>;
20
- emitFormChange: () => void;
21
- emitFormFocus: () => void;
22
- ariaAttrs: import("vue").ComputedRef<{
23
- 'aria-describedby': string;
24
- 'aria-invalid': boolean;
25
- } | undefined>;
26
- };
27
- export {};
@@ -1,64 +0,0 @@
1
- import { useDebounceFn } from "@vueuse/core";
2
- import { computed } from "vue";
3
- import {
4
- injectFormBus,
5
- injectFormInputId,
6
- injectFormInputs,
7
- injectFormItem,
8
- injectFormOptions
9
- } from "../app/injections.js";
10
- export function useFormItem(props, options) {
11
- const formOptions = injectFormOptions();
12
- const formBus = injectFormBus();
13
- const formItem = injectFormItem();
14
- const formInputs = injectFormInputs();
15
- const inputId = injectFormInputId();
16
- if (formItem && inputId) {
17
- if (options?.bind === false) {
18
- inputId.value = void 0;
19
- } else if (props?.id) {
20
- inputId.value = props?.id;
21
- }
22
- if (formInputs && formItem.value.name && inputId.value)
23
- formInputs.value[formItem.value.name] = { id: inputId.value, pattern: formItem.value.errorPattern };
24
- }
25
- function emitFormEvent(type, name, eager) {
26
- if (formBus && formItem && name)
27
- formBus.emit({ type, name, eager });
28
- }
29
- function emitFormBlur() {
30
- emitFormEvent("blur", formItem?.value.name);
31
- }
32
- function emitFormFocus() {
33
- emitFormEvent("focus", formItem?.value.name);
34
- }
35
- function emitFormChange() {
36
- emitFormEvent("change", formItem?.value.name);
37
- }
38
- const emitFormInput = useDebounceFn(
39
- () => {
40
- emitFormEvent("input", formItem?.value.name, !options?.deferInputValidation || formItem?.value.eagerValidation);
41
- },
42
- formItem?.value.validateOnInputDelay ?? formOptions?.value.validateOnInputDelay ?? 0
43
- );
44
- return {
45
- id: computed(() => props?.id ?? inputId?.value),
46
- name: computed(() => props?.name ?? formItem?.value.name),
47
- size: computed(() => props?.size ?? formItem?.value.size),
48
- highlight: computed(() => formItem?.value.error ? true : props?.highlight),
49
- disabled: computed(() => formOptions?.value.disabled || props?.disabled),
50
- emitFormBlur,
51
- emitFormInput,
52
- emitFormChange,
53
- emitFormFocus,
54
- ariaAttrs: computed(() => {
55
- if (!formItem?.value)
56
- return;
57
- const descriptiveAttrs = ["error", "hint", "help", "description"].filter((type) => formItem?.value?.[type]).map((type) => `${formItem?.value.ariaId}-${type}`) || [];
58
- return {
59
- "aria-describedby": descriptiveAttrs.join(" "),
60
- "aria-invalid": !!formItem?.value.error
61
- };
62
- })
63
- };
64
- }
@@ -1,9 +0,0 @@
1
- import * as uiTheme from '../theme/index.js';
2
- import type { StylerProps, StylerReturnType, StylerTheme } from '../types/index.js';
3
- type UITheme = typeof uiTheme;
4
- export declare const useTheme: () => {
5
- theme: import("vue").ComputedRef<typeof uiTheme>;
6
- createStyler: <V extends import("@byyuurin/ui-kit").CVVariants<S, B>, CV extends import("@byyuurin/ui-kit").CVCompoundVariants<V, S, B>, DV extends import("@byyuurin/ui-kit").CVDefaultVariants<V, S>, B extends import("@byyuurin/ui-kit").ClassValue = undefined, S extends import("@byyuurin/ui-kit").CVSlots = undefined>(theme: import("@byyuurin/ui-kit").CVMeta<V, CV, DV, B, S>) => [keyof V] extends string[] ? (props: import("@byyuurin/ui-kit").VariantProps<import("@byyuurin/ui-kit").CVReturnType<V, S, B>> & import("..").StylerBaseProps) => S extends undefined ? string : { [K in keyof S | (B extends undefined ? never : "base")]: import("@byyuurin/ui-kit").CVHandler<V, S, string>; } : (props?: import("..").StylerBaseProps) => S extends undefined ? string : { [K in keyof S | (B extends undefined ? never : "base")]: import("@byyuurin/ui-kit").CVHandler<V, S, string>; };
7
- generateStyle: <T extends keyof UITheme>(name: T, props?: StylerProps<UITheme[T]>) => StylerReturnType<StylerTheme<UITheme[T]>>;
8
- };
9
- export {};
@@ -1,23 +0,0 @@
1
- import { transformUnoRules } from "@byyuurin/ui/unocss";
2
- import { createSharedComposable } from "@vueuse/core";
3
- import { computed, toValue } from "vue";
4
- import { injectThemeExtension, injectUnoConfig } from "../app/injections.js";
5
- import * as uiTheme from "../theme/index.js";
6
- import { extendTheme, prepareStyler } from "../utils/index.js";
7
- export const useTheme = createSharedComposable(() => {
8
- const themeExtension = injectThemeExtension();
9
- const unoConfig = injectUnoConfig();
10
- const mergeRules = transformUnoRules(toValue(unoConfig));
11
- const { createStyler } = prepareStyler(mergeRules);
12
- const themeDefaults = JSON.parse(JSON.stringify(uiTheme));
13
- const theme = computed(() => extendTheme(toValue(themeExtension), themeDefaults));
14
- function generateStyle(name, props) {
15
- const styler = createStyler(theme.value[name]);
16
- return styler(props);
17
- }
18
- return {
19
- theme,
20
- createStyler,
21
- generateStyle
22
- };
23
- });
@@ -1,44 +0,0 @@
1
- export { default as Accordion } from './components/Accordion.vue.js';
2
- export { default as Alert } from './components/Alert.vue.js';
3
- export { default as App } from './components/App.vue.js';
4
- export { default as Avatar } from './components/Avatar.vue.js';
5
- export { default as AvatarGroup } from './components/AvatarGroup.vue.js';
6
- export { default as Badge } from './components/Badge.vue.js';
7
- export { default as Breadcrumb } from './components/Breadcrumb.vue.js';
8
- export { default as Button } from './components/Button.vue.js';
9
- export { default as ButtonGroup } from './components/ButtonGroup.vue.js';
10
- export { default as Calendar } from './components/Calendar.vue.js';
11
- export { default as Card } from './components/Card.vue.js';
12
- export { default as Carousel } from './components/Carousel.vue.js';
13
- export { default as Checkbox } from './components/Checkbox.vue.js';
14
- export { default as Chip } from './components/Chip.vue.js';
15
- export { default as Collapsible } from './components/Collapsible.vue.js';
16
- export { default as Drawer } from './components/Drawer.vue.js';
17
- export { default as DropdownMenu } from './components/DropdownMenu.vue.js';
18
- export { default as Form } from './components/Form.vue.js';
19
- export { default as FormItem } from './components/FormItem.vue.js';
20
- export { default as Input } from './components/Input.vue.js';
21
- export { default as InputNumber } from './components/InputNumber.vue.js';
22
- export { default as Kbd } from './components/Kbd.vue.js';
23
- export { default as Link } from './components/Link.vue.js';
24
- export { default as LinkBase } from './components/LinkBase.vue.js';
25
- export { default as Modal } from './components/Modal.vue.js';
26
- export { default as OverlayProvider } from './components/OverlayProvider.vue.js';
27
- export { default as Pagination } from './components/Pagination.vue.js';
28
- export { default as PinInput } from './components/PinInput.vue.js';
29
- export { default as Popover } from './components/Popover.vue.js';
30
- export { default as Progress } from './components/Progress.vue.js';
31
- export { default as RadioGroup } from './components/RadioGroup.vue.js';
32
- export { default as ScrollArea } from './components/ScrollArea.vue.js';
33
- export { default as Select } from './components/Select.vue.js';
34
- export { default as Separator } from './components/Separator.vue.js';
35
- export { default as Skeleton } from './components/Skeleton.vue.js';
36
- export { default as Slider } from './components/Slider.vue.js';
37
- export { default as Switch } from './components/Switch.vue.js';
38
- export { default as Table } from './components/Table.vue.js';
39
- export { default as Tabs } from './components/Tabs.vue.js';
40
- export { default as Textarea } from './components/Textarea.vue.js';
41
- export { default as Toast } from './components/Toast.vue.js';
42
- export { default as ToastProvider } from './components/ToastProvider.vue.js';
43
- export { default as Tooltip } from './components/Tooltip.vue.js';
44
- export * from './types/index.js';
@@ -1,44 +0,0 @@
1
- export { default as Accordion } from "./components/Accordion.vue";
2
- export { default as Alert } from "./components/Alert.vue";
3
- export { default as App } from "./components/App.vue";
4
- export { default as Avatar } from "./components/Avatar.vue";
5
- export { default as AvatarGroup } from "./components/AvatarGroup.vue";
6
- export { default as Badge } from "./components/Badge.vue";
7
- export { default as Breadcrumb } from "./components/Breadcrumb.vue";
8
- export { default as Button } from "./components/Button.vue";
9
- export { default as ButtonGroup } from "./components/ButtonGroup.vue";
10
- export { default as Calendar } from "./components/Calendar.vue";
11
- export { default as Card } from "./components/Card.vue";
12
- export { default as Carousel } from "./components/Carousel.vue";
13
- export { default as Checkbox } from "./components/Checkbox.vue";
14
- export { default as Chip } from "./components/Chip.vue";
15
- export { default as Collapsible } from "./components/Collapsible.vue";
16
- export { default as Drawer } from "./components/Drawer.vue";
17
- export { default as DropdownMenu } from "./components/DropdownMenu.vue";
18
- export { default as Form } from "./components/Form.vue";
19
- export { default as FormItem } from "./components/FormItem.vue";
20
- export { default as Input } from "./components/Input.vue";
21
- export { default as InputNumber } from "./components/InputNumber.vue";
22
- export { default as Kbd } from "./components/Kbd.vue";
23
- export { default as Link } from "./components/Link.vue";
24
- export { default as LinkBase } from "./components/LinkBase.vue";
25
- export { default as Modal } from "./components/Modal.vue";
26
- export { default as OverlayProvider } from "./components/OverlayProvider.vue";
27
- export { default as Pagination } from "./components/Pagination.vue";
28
- export { default as PinInput } from "./components/PinInput.vue";
29
- export { default as Popover } from "./components/Popover.vue";
30
- export { default as Progress } from "./components/Progress.vue";
31
- export { default as RadioGroup } from "./components/RadioGroup.vue";
32
- export { default as ScrollArea } from "./components/ScrollArea.vue";
33
- export { default as Select } from "./components/Select.vue";
34
- export { default as Separator } from "./components/Separator.vue";
35
- export { default as Skeleton } from "./components/Skeleton.vue";
36
- export { default as Slider } from "./components/Slider.vue";
37
- export { default as Switch } from "./components/Switch.vue";
38
- export { default as Table } from "./components/Table.vue";
39
- export { default as Tabs } from "./components/Tabs.vue";
40
- export { default as Textarea } from "./components/Textarea.vue";
41
- export { default as Toast } from "./components/Toast.vue";
42
- export { default as ToastProvider } from "./components/ToastProvider.vue";
43
- export { default as Tooltip } from "./components/Tooltip.vue";
44
- export * from "./types/index.js";
@@ -1,2 +0,0 @@
1
- declare const _default: import("../utils").Locale<import("..").Messages>;
2
- export default _default;
@@ -1,56 +0,0 @@
1
- declare const _default: {
2
- base: undefined;
3
- slots: {
4
- root: string;
5
- item: string;
6
- header: string;
7
- trigger: string;
8
- content: string[];
9
- body: string;
10
- leadingIcon: string;
11
- trailingIcon: string;
12
- label: string;
13
- };
14
- variants: {
15
- disabled: {
16
- true: {
17
- trigger: string;
18
- };
19
- };
20
- };
21
- compoundVariants: import("@byyuurin/ui-kit").CVCompoundVariants<{
22
- disabled: {
23
- true: {
24
- trigger: string;
25
- };
26
- };
27
- }, {
28
- root: string;
29
- item: string;
30
- header: string;
31
- trigger: string;
32
- content: string[];
33
- body: string;
34
- leadingIcon: string;
35
- trailingIcon: string;
36
- label: string;
37
- }, undefined>;
38
- defaultVariants: import("@byyuurin/ui-kit").CVDefaultVariants<{
39
- disabled: {
40
- true: {
41
- trigger: string;
42
- };
43
- };
44
- }, {
45
- root: string;
46
- item: string;
47
- header: string;
48
- trigger: string;
49
- content: string[];
50
- body: string;
51
- leadingIcon: string;
52
- trailingIcon: string;
53
- label: string;
54
- }>;
55
- };
56
- export default _default;
@@ -1,28 +0,0 @@
1
- import { ct } from "@byyuurin/ui-kit";
2
- export default ct(
3
- /* @unocss-include */
4
- {
5
- slots: {
6
- root: "w-full color-ui-base",
7
- item: "border-b last:border-b-0",
8
- header: "flex",
9
- trigger: "group flex-1 flex items-center gap-2 font-medium text-sm py-4 outline-none focus-visible:outline-ui-base/80 min-w-0",
10
- content: [
11
- "overflow-hidden focus:outline-none",
12
- "data-[state=open]:animate-[accordion-down_200ms_ease-out]",
13
- "data-[state=closed]:animate-[accordion-up_200ms_ease-out]"
14
- ],
15
- body: "text-sm pb-4 color-ui-base/80",
16
- leadingIcon: "shrink-0 size-5",
17
- trailingIcon: "shrink-0 size-5 ms-auto group-data-[state=open]:rotate-180 transition-all duration-200",
18
- label: "text-start break-words"
19
- },
20
- variants: {
21
- disabled: {
22
- true: {
23
- trigger: "cursor-not-allowed opacity-50"
24
- }
25
- }
26
- }
27
- }
28
- );