@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
@@ -0,0 +1,163 @@
1
+ <script>
2
+
3
+ </script>
4
+
5
+ <script setup>
6
+ import { reactiveOmit, reactivePick } from "@vueuse/core";
7
+ import { isEqual } from "ohash/utils";
8
+ import { useForwardProps } from "reka-ui";
9
+ import { hasProtocol } from "ufo";
10
+ import { computed } from "vue";
11
+ import theme from "#build/ui/link";
12
+ import { useAppConfig, useRoute } from "#imports";
13
+ import LinkBase from "../../components/LinkBase.vue";
14
+ import { isPartiallyEqual } from "../../utils/link";
15
+ import { cv, merge } from "../../utils/style";
16
+ defineOptions({ inheritAttrs: false });
17
+ const props = defineProps({
18
+ as: { type: null, required: false, default: "button" },
19
+ type: { type: null, required: false, default: "button" },
20
+ label: { type: String, required: false },
21
+ disabled: { type: Boolean, required: false },
22
+ active: { type: Boolean, required: false, default: void 0 },
23
+ exact: { type: Boolean, required: false },
24
+ exactQuery: { type: [Boolean, String], required: false },
25
+ exactHash: { type: Boolean, required: false },
26
+ inactiveClass: { type: String, required: false },
27
+ custom: { type: Boolean, required: false },
28
+ raw: { type: Boolean, required: false },
29
+ class: { type: [Object, String, Number, Boolean, null, Array], required: false, skipCheck: true },
30
+ to: { type: null, required: false },
31
+ href: { type: null, required: false },
32
+ external: { type: Boolean, required: false },
33
+ target: { type: [String, Object], required: false },
34
+ rel: { type: [String, Object], required: false },
35
+ noRel: { type: Boolean, required: false },
36
+ prefetchedClass: { type: String, required: false },
37
+ prefetch: { type: Boolean, required: false },
38
+ prefetchOn: { type: [String, Object], required: false },
39
+ noPrefetch: { type: Boolean, required: false },
40
+ activeClass: { type: String, required: false },
41
+ exactActiveClass: { type: String, required: false },
42
+ ariaCurrentValue: { type: String, required: false, default: "page" },
43
+ viewTransition: { type: Boolean, required: false },
44
+ replace: { type: Boolean, required: false }
45
+ });
46
+ defineSlots();
47
+ const route = useRoute();
48
+ const inheritProps = useForwardProps(reactivePick(props, "as", "type", "disabled"));
49
+ const routerLinkProps = useForwardProps(reactiveOmit(props, "as", "type", "disabled", "active", "exact", "exactQuery", "exactHash", "activeClass", "inactiveClass", "to", "href", "raw", "custom", "class"));
50
+ const to = computed(() => props.to ?? props.href);
51
+ const isExternal = computed(() => {
52
+ if (props.external)
53
+ return true;
54
+ if (!to.value)
55
+ return false;
56
+ return typeof to.value === "string" && hasProtocol(to.value, { acceptRelative: true });
57
+ });
58
+ function isLinkActive({ route: linkRoute, isActive, isExactActive }) {
59
+ if (props.active !== void 0)
60
+ return props.active;
61
+ if (props.exactQuery === "partial") {
62
+ if (!isPartiallyEqual(linkRoute.query, route.query))
63
+ return false;
64
+ } else if (props.exactQuery === true && !isEqual(linkRoute.query, route.query)) {
65
+ return false;
66
+ }
67
+ if (props.exactHash && linkRoute.hash !== route.hash)
68
+ return false;
69
+ if (props.exact && isExactActive)
70
+ return true;
71
+ if (!props.exact && isActive)
72
+ return true;
73
+ return false;
74
+ }
75
+ const appConfig = useAppConfig();
76
+ const ui = computed(() => {
77
+ const link = merge(theme, {
78
+ ...appConfig.ui.link,
79
+ variants: {
80
+ ...appConfig.ui.link?.variants,
81
+ active: {
82
+ true: [appConfig.ui.link?.variants?.active?.true, props.activeClass].filter(Boolean).join(" "),
83
+ false: [appConfig.ui.link?.variants?.active?.false, props.inactiveClass].filter(Boolean).join(" ")
84
+ }
85
+ }
86
+ });
87
+ return cv(link)();
88
+ });
89
+ function resolveLinkClass({ route: route2, isActive, isExactActive } = {}) {
90
+ const active = isLinkActive({ route: route2, isActive, isExactActive });
91
+ if (props.raw)
92
+ return [props.class, active ? props.activeClass : props.inactiveClass];
93
+ return ui.value.base({ ...props, active });
94
+ }
95
+ </script>
96
+
97
+ <template>
98
+ <template v-if="!isExternal && !!to">
99
+ <RouterLink v-slot="{ href, navigate, route: linkRoute, isActive, isExactActive }" v-bind="routerLinkProps" :to="to" custom>
100
+ <template v-if="custom">
101
+ <slot
102
+ v-bind="{
103
+ ...$attrs,
104
+ ...props.exact && isExactActive ? { 'aria-current': props.ariaCurrentValue } : {},
105
+ ...inheritProps,
106
+ href,
107
+ navigate,
108
+ active: isLinkActive({ route: linkRoute, isActive, isExactActive })
109
+ }"
110
+ >
111
+ {{ props.label }}
112
+ </slot>
113
+ </template>
114
+ <LinkBase
115
+ v-else
116
+ v-bind="{
117
+ ...$attrs,
118
+ ...props.exact && isExactActive ? { 'aria-current': props.ariaCurrentValue } : {},
119
+ ...inheritProps,
120
+ href,
121
+ navigate
122
+ }"
123
+ :class="resolveLinkClass({ route: linkRoute, isActive, isExactActive })"
124
+ >
125
+ <slot :active="isLinkActive({ route: linkRoute, isActive, isExactActive })">
126
+ {{ props.label }}
127
+ </slot>
128
+ </LinkBase>
129
+ </RouterLink>
130
+ </template>
131
+
132
+ <template v-else>
133
+ <template v-if="custom">
134
+ <slot
135
+ v-bind="{
136
+ ...$attrs,
137
+ ...inheritProps,
138
+ href: to,
139
+ target: isExternal ? '_blank' : void 0,
140
+ active,
141
+ isExternal
142
+ }"
143
+ >
144
+ {{ props.label }}
145
+ </slot>
146
+ </template>
147
+ <LinkBase
148
+ v-else
149
+ v-bind="{
150
+ ...$attrs,
151
+ ...inheritProps,
152
+ href: to,
153
+ target: isExternal ? '_blank' : void 0,
154
+ isExternal
155
+ }"
156
+ :class="resolveLinkClass()"
157
+ >
158
+ <slot :active="active">
159
+ {{ props.label }}
160
+ </slot>
161
+ </LinkBase>
162
+ </template>
163
+ </template>
@@ -0,0 +1,95 @@
1
+ import type { PrimitiveProps } from 'reka-ui';
2
+ import type { ButtonHTMLAttributes } from 'vue';
3
+ import type { RouteLocationRaw, RouterLinkProps } from 'vue-router';
4
+ import type { ComponentBaseProps } from '../../types';
5
+ import type { StaticSlot } from '../../types/utils';
6
+ export interface LinkSlots {
7
+ default: StaticSlot<{
8
+ active: boolean;
9
+ }>;
10
+ }
11
+ interface NuxtLinkProps extends Omit<RouterLinkProps, 'to'> {
12
+ /**
13
+ * Route Location the link should navigate to when clicked on.
14
+ */
15
+ to?: RouteLocationRaw;
16
+ /**
17
+ * An alias for `to`. If used with `to`, `href` will be ignored
18
+ */
19
+ href?: NuxtLinkProps['to'];
20
+ /**
21
+ * Forces the link to be considered as external (true) or internal (false). This is helpful to handle edge-cases
22
+ */
23
+ external?: boolean;
24
+ /**
25
+ * Where to display the linked URL, as the name for a browsing context.
26
+ */
27
+ target?: '_blank' | '_parent' | '_self' | '_top' | (string & {});
28
+ /**
29
+ * A rel attribute value to apply on the link. Defaults to "noopener noreferrer" for external links.
30
+ */
31
+ rel?: 'noopener' | 'noreferrer' | 'nofollow' | 'sponsored' | 'ugc' | (string & {});
32
+ /**
33
+ * If set to true, no rel attribute will be added to the link
34
+ */
35
+ noRel?: boolean;
36
+ /**
37
+ * A class to apply to links that have been prefetched.
38
+ */
39
+ prefetchedClass?: string;
40
+ /**
41
+ * When enabled will prefetch middleware, layouts and payloads of links in the viewport.
42
+ */
43
+ prefetch?: boolean;
44
+ /**
45
+ * Allows controlling when to prefetch links. By default, prefetch is triggered only on visibility.
46
+ */
47
+ prefetchOn?: 'visibility' | 'interaction' | Partial<{
48
+ visibility: boolean;
49
+ interaction: boolean;
50
+ }>;
51
+ /**
52
+ * Escape hatch to disable `prefetch` attribute.
53
+ */
54
+ noPrefetch?: boolean;
55
+ }
56
+ export interface LinkProps extends ComponentBaseProps, NuxtLinkProps {
57
+ /**
58
+ * The element or component this component should render as when not a link.
59
+ * @default "button"
60
+ */
61
+ as?: PrimitiveProps['as'];
62
+ /**
63
+ * The type of the button when not a link.
64
+ * @default "button"
65
+ */
66
+ type?: ButtonHTMLAttributes['type'];
67
+ label?: string;
68
+ disabled?: boolean;
69
+ /** Force the link to be active independent of the current route. */
70
+ active?: boolean;
71
+ /** Will only be active if the current route is an exact match. */
72
+ exact?: boolean;
73
+ /** Allows controlling how the current route query sets the link as active. */
74
+ exactQuery?: boolean | 'partial';
75
+ /** Will only be active if the current route hash is an exact match. */
76
+ exactHash?: boolean;
77
+ /** The class to apply when the link is inactive. */
78
+ inactiveClass?: string;
79
+ custom?: boolean;
80
+ /** When `true`, only styles from `class`, `activeClass`, and `inactiveClass` will be applied. */
81
+ raw?: boolean;
82
+ }
83
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<LinkProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<LinkProps> & Readonly<{}>, {
84
+ active: boolean;
85
+ type: "reset" | "submit" | "button";
86
+ ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false";
87
+ as: import("reka-ui").AsTag | import("vue").Component;
88
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, LinkSlots>;
89
+ declare const _default: typeof __VLS_export;
90
+ export default _default;
91
+ type __VLS_WithSlots<T, S> = T & {
92
+ new (): {
93
+ $slots: S;
94
+ };
95
+ };
@@ -0,0 +1 @@
1
+ export declare const useAppConfig: () => any;
@@ -0,0 +1,4 @@
1
+ import { reactive } from "vue";
2
+ import appConfig from "#build/app.config";
3
+ const _appConfig = reactive(appConfig);
4
+ export const useAppConfig = () => _appConfig;
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ install(): void;
3
+ };
4
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { useDark } from "@vueuse/core";
2
+ export default {
3
+ install() {
4
+ useDark();
5
+ }
6
+ };
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ install(app: import("vue").App<any>): void;
3
+ };
4
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import { createHead } from "@unhead/vue/client";
2
+ export default {
3
+ install(app) {
4
+ if (app._context.provides.usehead)
5
+ return;
6
+ const head = createHead();
7
+ app.use(head);
8
+ }
9
+ };
@@ -1,9 +1,24 @@
1
1
  import type { Ref } from 'vue';
2
+ import type { NuxtApp } from '#app';
3
+ export { useAppConfig } from './composables/useAppConfig';
4
+ export { useHead } from '@unhead/vue';
2
5
  export { useRoute, useRouter } from 'vue-router';
6
+ export declare function useColorMode(): {
7
+ forced: boolean;
8
+ preference?: undefined;
9
+ readonly value?: undefined;
10
+ } | {
11
+ preference: "light" | "dark" | "system";
12
+ readonly value: import("@vueuse/core").BasicColorMode;
13
+ forced: boolean;
14
+ };
3
15
  export declare function useState<T>(key: string, init: () => T): Ref<T>;
4
16
  export declare function useNuxtApp(): {
5
17
  isHydrating: boolean;
6
18
  payload: {
7
- serverRendered: boolean;
19
+ serverRendered: any;
8
20
  };
9
21
  };
22
+ export declare function defineNuxtPlugin(plugin: (nuxtApp: NuxtApp) => void): {
23
+ install(app: import("vue").App<any>): void;
24
+ };
@@ -1,5 +1,29 @@
1
+ import { useColorMode as _useColorMode } from "@vueuse/core";
1
2
  import { ref } from "vue";
3
+ import appConfig from "#build/app.config";
4
+ export { useAppConfig } from "./composables/useAppConfig.js";
5
+ export { useHead } from "@unhead/vue";
2
6
  export { useRoute, useRouter } from "vue-router";
7
+ export function useColorMode() {
8
+ if (!appConfig.colorMode) {
9
+ return {
10
+ forced: false
11
+ };
12
+ }
13
+ const { store, system } = _useColorMode();
14
+ return {
15
+ get preference() {
16
+ return store.value === "auto" ? "system" : store.value;
17
+ },
18
+ set preference(value) {
19
+ store.value = value === "system" ? "auto" : value;
20
+ },
21
+ get value() {
22
+ return store.value === "auto" ? system.value : store.value;
23
+ },
24
+ forced: false
25
+ };
26
+ }
3
27
  const state = {};
4
28
  export function useState(key, init) {
5
29
  if (state[key])
@@ -11,6 +35,13 @@ export function useState(key, init) {
11
35
  export function useNuxtApp() {
12
36
  return {
13
37
  isHydrating: true,
14
- payload: { serverRendered: false }
38
+ payload: { serverRendered: import.meta.env.SSR || false }
39
+ };
40
+ }
41
+ export function defineNuxtPlugin(plugin) {
42
+ return {
43
+ install(app) {
44
+ app.runWithContext(() => plugin({ vueApp: app }));
45
+ }
15
46
  };
16
47
  }
@@ -0,0 +1,13 @@
1
+ import '#build/ui';
2
+ import './shared/ui.IulR-OYx.mjs';
3
+ import '../dist/runtime/types/style.js';
4
+ export { A as AppConfigIcons, a as AppConfigUI, s as setup } from './shared/ui.DpbffTXs.mjs';
5
+ import './unocss.mjs';
6
+ import '@nuxt/schema';
7
+ import '@unocss/preset-wind4/colors';
8
+ import '../dist/runtime/types/index.js';
9
+ import 'unplugin';
10
+ import 'unplugin-auto-import/types';
11
+ import 'unplugin-vue-components/types';
12
+ import '@unocss/core';
13
+ import '@unocss/preset-wind4/theme';
package/dist/setup.mjs ADDED
@@ -0,0 +1,12 @@
1
+ function setup(defaults = {}) {
2
+ const uno = {
3
+ colors: defaults.theme?.colors
4
+ };
5
+ const vite = defaults;
6
+ return {
7
+ uno,
8
+ vite
9
+ };
10
+ }
11
+
12
+ export { setup };
@@ -0,0 +1,51 @@
1
+ import { pick } from '../../dist/runtime/utils/index.js';
2
+
3
+ const icons = {
4
+ close: "i-lucide-x",
5
+ loading: "i-lucide-loader-circle",
6
+ check: "i-lucide-check",
7
+ chevronUp: "i-lucide-chevron-up",
8
+ chevronDown: "i-lucide-chevron-down",
9
+ chevronLeft: "i-lucide-chevron-left",
10
+ chevronRight: "i-lucide-chevron-right",
11
+ chevronDoubleLeft: "i-lucide-chevrons-left",
12
+ chevronDoubleRight: "i-lucide-chevrons-right",
13
+ ellipsis: "i-lucide-ellipsis",
14
+ plus: "i-lucide-plus",
15
+ minus: "i-lucide-minus",
16
+ external: "i-lucide-arrow-up-right"
17
+ };
18
+
19
+ function getDefaultUIConfig(colors) {
20
+ return {
21
+ colors: pick({
22
+ primary: "green",
23
+ secondary: "blue",
24
+ success: "green",
25
+ info: "blue",
26
+ warning: "yellow",
27
+ error: "red",
28
+ neutral: "slate"
29
+ }, [...colors || [], "neutral"]),
30
+ icons
31
+ };
32
+ }
33
+ const defaultOptions = {
34
+ prefix: "U",
35
+ fonts: true,
36
+ colorMode: true,
37
+ theme: {
38
+ colors: void 0,
39
+ transitions: true
40
+ }
41
+ };
42
+ const defaultColors = ["primary", "secondary", "success", "info", "warning", "error"];
43
+ function resolveColors(colors) {
44
+ return colors?.length ? [.../* @__PURE__ */ new Set(["primary", ...colors])] : [...defaultColors];
45
+ }
46
+ function pickColorNames(colors) {
47
+ return colors;
48
+ }
49
+ const neutralColors = pickColorNames(["slate", "gray", "zinc", "neutral", "stone", "light", "dark"]);
50
+
51
+ export { defaultOptions as d, getDefaultUIConfig as g, neutralColors as n, resolveColors as r };