@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,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 };