@byyuurin/ui 0.0.11 → 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 +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 +48 -39
  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 +80 -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/Chip.vue +35 -32
  30. package/dist/runtime/components/Chip.vue.d.ts +33 -15
  31. package/dist/runtime/components/Collapsible.vue +13 -9
  32. package/dist/runtime/components/Collapsible.vue.d.ts +16 -8
  33. package/dist/runtime/components/Drawer.vue +80 -70
  34. package/dist/runtime/components/Drawer.vue.d.ts +51 -28
  35. package/dist/runtime/components/DropdownMenu.vue +23 -16
  36. package/dist/runtime/components/DropdownMenu.vue.d.ts +77 -36
  37. package/dist/runtime/components/DropdownMenuContent.vue +133 -103
  38. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +38 -26
  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 +172 -88
  42. package/dist/runtime/components/Form.vue.d.ts +69 -44
  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 +82 -77
  48. package/dist/runtime/components/Input.vue.d.ts +55 -43
  49. package/dist/runtime/components/InputNumber.vue +65 -49
  50. package/dist/runtime/components/InputNumber.vue.d.ts +51 -105
  51. package/dist/runtime/components/Kbd.vue +11 -5
  52. package/dist/runtime/components/Kbd.vue.d.ts +17 -11
  53. package/dist/runtime/components/Link.vue +54 -197
  54. package/dist/runtime/components/Link.vue.d.ts +17 -17
  55. package/dist/runtime/components/LinkBase.vue +11 -33
  56. package/dist/runtime/components/LinkBase.vue.d.ts +8 -3
  57. package/dist/runtime/components/Modal.vue +53 -39
  58. package/dist/runtime/components/Modal.vue.d.ts +64 -34
  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 +3 -3
  62. package/dist/runtime/components/OverlayProvider.vue.d.ts +2 -1
  63. package/dist/runtime/components/Pagination.vue +39 -47
  64. package/dist/runtime/components/Pagination.vue.d.ts +54 -31
  65. package/dist/runtime/components/PinInput.vue +46 -32
  66. package/dist/runtime/components/PinInput.vue.d.ts +40 -21
  67. package/dist/runtime/components/Popover.vue +33 -19
  68. package/dist/runtime/components/Popover.vue.d.ts +57 -32
  69. package/dist/runtime/components/Progress.vue +31 -26
  70. package/dist/runtime/components/Progress.vue.d.ts +32 -23
  71. package/dist/runtime/components/RadioGroup.vue +75 -48
  72. package/dist/runtime/components/RadioGroup.vue.d.ts +58 -36
  73. package/dist/runtime/components/ScrollArea.vue +33 -31
  74. package/dist/runtime/components/ScrollArea.vue.d.ts +9 -5
  75. package/dist/runtime/components/Select.vue +166 -76
  76. package/dist/runtime/components/Select.vue.d.ts +206 -65
  77. package/dist/runtime/components/Separator.vue +42 -16
  78. package/dist/runtime/components/Separator.vue.d.ts +35 -14
  79. package/dist/runtime/components/Skeleton.vue +18 -6
  80. package/dist/runtime/components/Skeleton.vue.d.ts +4 -4
  81. package/dist/runtime/components/Slider.vue +42 -24
  82. package/dist/runtime/components/Slider.vue.d.ts +43 -27
  83. package/dist/runtime/components/Switch.vue +40 -31
  84. package/dist/runtime/components/Switch.vue.d.ts +36 -27
  85. package/dist/runtime/components/Table.vue +279 -51
  86. package/dist/runtime/components/Table.vue.d.ts +151 -65
  87. package/dist/runtime/components/Tabs.vue +70 -23
  88. package/dist/runtime/components/Tabs.vue.d.ts +61 -29
  89. package/dist/runtime/components/Textarea.vue +102 -54
  90. package/dist/runtime/components/Textarea.vue.d.ts +57 -41
  91. package/dist/runtime/components/Toast.vue +84 -38
  92. package/dist/runtime/components/Toast.vue.d.ts +48 -27
  93. package/dist/runtime/components/ToastProvider.vue +31 -22
  94. package/dist/runtime/components/ToastProvider.vue.d.ts +30 -17
  95. package/dist/runtime/components/Tooltip.vue +33 -21
  96. package/dist/runtime/components/Tooltip.vue.d.ts +37 -15
  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 +3 -2
  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 -254
  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 +154 -87
  172. package/vue-plugin.d.ts +5 -0
  173. package/dist/module.d.ts +0 -13
  174. package/dist/module.mjs.map +0 -1
  175. package/dist/runtime/app/injections.d.ts +0 -9331
  176. package/dist/runtime/app/injections.js +0 -61
  177. package/dist/runtime/components/ButtonGroup.vue +0 -26
  178. package/dist/runtime/components/ButtonGroup.vue.d.ts +0 -26
  179. package/dist/runtime/components/FormItem.vue +0 -90
  180. package/dist/runtime/components/FormItem.vue.d.ts +0 -60
  181. package/dist/runtime/composables/useButtonGroup.d.ts +0 -5
  182. package/dist/runtime/composables/useButtonGroup.js +0 -9
  183. package/dist/runtime/composables/useFormItem.d.ts +0 -27
  184. package/dist/runtime/composables/useFormItem.js +0 -64
  185. package/dist/runtime/composables/useTheme.d.ts +0 -9
  186. package/dist/runtime/composables/useTheme.js +0 -23
  187. package/dist/runtime/index.d.ts +0 -44
  188. package/dist/runtime/index.js +0 -44
  189. package/dist/runtime/locale/zh-tw.d.ts +0 -2
  190. package/dist/runtime/theme/accordion.d.ts +0 -50
  191. package/dist/runtime/theme/accordion.js +0 -28
  192. package/dist/runtime/theme/alert.d.ts +0 -119
  193. package/dist/runtime/theme/alert.js +0 -47
  194. package/dist/runtime/theme/app.d.ts +0 -19
  195. package/dist/runtime/theme/app.js +0 -19
  196. package/dist/runtime/theme/avatar-group.d.ts +0 -46
  197. package/dist/runtime/theme/avatar-group.js +0 -32
  198. package/dist/runtime/theme/avatar.d.ts +0 -50
  199. package/dist/runtime/theme/avatar.js +0 -34
  200. package/dist/runtime/theme/badge.d.ts +0 -76
  201. package/dist/runtime/theme/badge.js +0 -92
  202. package/dist/runtime/theme/breadcrumb.d.ts +0 -61
  203. package/dist/runtime/theme/breadcrumb.js +0 -44
  204. package/dist/runtime/theme/button-group.d.ts +0 -60
  205. package/dist/runtime/theme/button-group.js +0 -42
  206. package/dist/runtime/theme/button.d.ts +0 -184
  207. package/dist/runtime/theme/button.js +0 -164
  208. package/dist/runtime/theme/calendar.d.ts +0 -58
  209. package/dist/runtime/theme/calendar.js +0 -86
  210. package/dist/runtime/theme/card.d.ts +0 -56
  211. package/dist/runtime/theme/card.js +0 -37
  212. package/dist/runtime/theme/carousel.d.ts +0 -107
  213. package/dist/runtime/theme/carousel.js +0 -43
  214. package/dist/runtime/theme/checkbox.d.ts +0 -82
  215. package/dist/runtime/theme/checkbox.js +0 -54
  216. package/dist/runtime/theme/chip.d.ts +0 -61
  217. package/dist/runtime/theme/chip.js +0 -66
  218. package/dist/runtime/theme/collapsible.d.ts +0 -32
  219. package/dist/runtime/theme/collapsible.js +0 -10
  220. package/dist/runtime/theme/drawer.d.ts +0 -142
  221. package/dist/runtime/theme/drawer.js +0 -113
  222. package/dist/runtime/theme/dropdown-menu.d.ts +0 -65
  223. package/dist/runtime/theme/dropdown-menu.js +0 -83
  224. package/dist/runtime/theme/form-item.d.ts +0 -70
  225. package/dist/runtime/theme/form-item.js +0 -34
  226. package/dist/runtime/theme/form.d.ts +0 -2
  227. package/dist/runtime/theme/form.js +0 -7
  228. package/dist/runtime/theme/index.d.ts +0 -41
  229. package/dist/runtime/theme/index.js +0 -41
  230. package/dist/runtime/theme/input-number.d.ts +0 -115
  231. package/dist/runtime/theme/input-number.js +0 -95
  232. package/dist/runtime/theme/input.d.ts +0 -172
  233. package/dist/runtime/theme/input.js +0 -151
  234. package/dist/runtime/theme/kbd.d.ts +0 -33
  235. package/dist/runtime/theme/kbd.js +0 -26
  236. package/dist/runtime/theme/link.d.ts +0 -38
  237. package/dist/runtime/theme/link.js +0 -26
  238. package/dist/runtime/theme/modal.d.ts +0 -42
  239. package/dist/runtime/theme/modal.js +0 -55
  240. package/dist/runtime/theme/pagination.d.ts +0 -74
  241. package/dist/runtime/theme/pagination.js +0 -17
  242. package/dist/runtime/theme/pinInput.d.ts +0 -94
  243. package/dist/runtime/theme/pinInput.js +0 -111
  244. package/dist/runtime/theme/popover.d.ts +0 -32
  245. package/dist/runtime/theme/popover.js +0 -13
  246. package/dist/runtime/theme/progress.d.ts +0 -180
  247. package/dist/runtime/theme/progress.js +0 -95
  248. package/dist/runtime/theme/radio-group.d.ts +0 -104
  249. package/dist/runtime/theme/radio-group.js +0 -61
  250. package/dist/runtime/theme/scroll-area.d.ts +0 -67
  251. package/dist/runtime/theme/scroll-area.js +0 -33
  252. package/dist/runtime/theme/select.d.ts +0 -186
  253. package/dist/runtime/theme/select.js +0 -173
  254. package/dist/runtime/theme/separator.d.ts +0 -74
  255. package/dist/runtime/theme/separator.js +0 -53
  256. package/dist/runtime/theme/skeleton.d.ts +0 -2
  257. package/dist/runtime/theme/skeleton.js +0 -7
  258. package/dist/runtime/theme/slider.d.ts +0 -70
  259. package/dist/runtime/theme/slider.js +0 -52
  260. package/dist/runtime/theme/switch.d.ts +0 -116
  261. package/dist/runtime/theme/switch.js +0 -78
  262. package/dist/runtime/theme/table.d.ts +0 -86
  263. package/dist/runtime/theme/table.js +0 -36
  264. package/dist/runtime/theme/tabs.d.ts +0 -129
  265. package/dist/runtime/theme/tabs.js +0 -146
  266. package/dist/runtime/theme/textarea.d.ts +0 -90
  267. package/dist/runtime/theme/textarea.js +0 -116
  268. package/dist/runtime/theme/toast-provider.d.ts +0 -116
  269. package/dist/runtime/theme/toast-provider.js +0 -97
  270. package/dist/runtime/theme/toast.d.ts +0 -83
  271. package/dist/runtime/theme/toast.js +0 -35
  272. package/dist/runtime/theme/tooltip.d.ts +0 -38
  273. package/dist/runtime/theme/tooltip.js +0 -11
  274. package/dist/runtime/types/components.d.ts +0 -42
  275. package/dist/runtime/utils/extend-theme.d.ts +0 -9
  276. package/dist/runtime/utils/extend-theme.js +0 -27
  277. package/dist/runtime/utils/styler.d.ts +0 -4
  278. package/dist/runtime/utils/styler.js +0 -10
  279. package/dist/runtime/utils/translator.d.ts +0 -18
  280. package/dist/runtime/utils/translator.js +0 -8
  281. package/dist/shared/ui.D1BTWZFB.mjs +0 -5
  282. package/dist/shared/ui.D1BTWZFB.mjs.map +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,56 +1,10 @@
1
+ import { get } from "@byyuurin/ui-kit";
1
2
  import { isEqual } from "ohash";
2
- export * from "./extend-theme.js";
3
3
  export * from "./form.js";
4
4
  export * from "./link.js";
5
- export * from "./styler.js";
6
- export * from "./translator.js";
7
5
  export * from "./vue.js";
6
+ export { get, omit, pick, set } from "@byyuurin/ui-kit";
8
7
  export { looseToNumber } from "@vue/shared";
9
- export function defineLocale(locale) {
10
- return locale;
11
- }
12
- export function pick(data, keys) {
13
- const result = {};
14
- for (const key of keys)
15
- result[key] = data[key];
16
- return result;
17
- }
18
- export function omit(data, keys) {
19
- const result = { ...data };
20
- for (const key of keys)
21
- delete result[key];
22
- return result;
23
- }
24
- export function get(object, path, defaultValue) {
25
- if (typeof path === "string") {
26
- path = path.split(".").map((key) => {
27
- const numKey = Number(key);
28
- return Number.isNaN(numKey) ? key : numKey;
29
- });
30
- }
31
- let result = object;
32
- for (const key of path) {
33
- if (result === void 0 || result === null)
34
- return defaultValue;
35
- result = result[key];
36
- }
37
- return result === void 0 ? defaultValue : result;
38
- }
39
- export function set(object, path, value) {
40
- if (typeof path === "string") {
41
- path = path.split(".").map((key) => {
42
- const numKey = Number(key);
43
- return Number.isNaN(numKey) ? key : numKey;
44
- });
45
- }
46
- path.reduce((acc, key, i) => {
47
- if (acc[key] === void 0)
48
- acc[key] = {};
49
- if (i === path.length - 1)
50
- acc[key] = value;
51
- return acc[key];
52
- }, object);
53
- }
54
8
  export function compare(value, currentValue, comparator) {
55
9
  if (value === void 0 || currentValue === void 0)
56
10
  return false;
@@ -62,6 +16,45 @@ export function compare(value, currentValue, comparator) {
62
16
  return get(value, comparator) === get(currentValue, comparator);
63
17
  return isEqual(value, currentValue);
64
18
  }
19
+ export function isEmpty(value) {
20
+ if (value == null)
21
+ return true;
22
+ if (typeof value === "boolean" || typeof value === "number")
23
+ return false;
24
+ if (typeof value === "string")
25
+ return value.trim().length === 0;
26
+ if (Array.isArray(value))
27
+ return value.length === 0;
28
+ if (value instanceof Map || value instanceof Set)
29
+ return value.size === 0;
30
+ if (value instanceof Date || value instanceof RegExp || typeof value === "function")
31
+ return false;
32
+ if (typeof value === "object") {
33
+ for (const _ in value) {
34
+ if (Object.hasOwn(value, _))
35
+ return false;
36
+ }
37
+ return true;
38
+ }
39
+ return false;
40
+ }
41
+ export function getDisplayValue(items, value, options = {}) {
42
+ const { valueKey, labelKey } = options;
43
+ const foundItem = items.find((item) => {
44
+ const itemValue = typeof item === "object" && item !== null && valueKey ? get(item, valueKey) : item;
45
+ return compare(itemValue, value);
46
+ });
47
+ if (isEmpty(value) && foundItem)
48
+ return labelKey ? get(foundItem, labelKey) : void 0;
49
+ if (isEmpty(value))
50
+ return void 0;
51
+ const source = foundItem ?? value;
52
+ if (source === null || source === void 0)
53
+ return void 0;
54
+ if (typeof source === "object")
55
+ return labelKey ? get(source, labelKey) : void 0;
56
+ return String(source);
57
+ }
65
58
  export function isArrayOfArray(item) {
66
59
  return Array.isArray(item[0]);
67
60
  }
@@ -1,6 +1,7 @@
1
- import type { LinkProps } from '../types/index.js';
1
+ import type { LinkProps } from '../types';
2
2
  export declare function pickLinkProps(link: LinkProps & {
3
3
  [key: string]: any;
4
4
  }): import("@vueuse/core").ReactivePickReturn<LinkProps & {
5
5
  [key: string]: any;
6
- }, "label" | "disabled" | "title" | "class" | "active" | "to" | "underline" | "type" | "replace" | "custom" | "activeClass" | "exactActiveClass" | "ariaCurrentValue" | "viewTransition" | `aria-${string}` | `data-${string}` | "as" | "exact" | "exactQuery" | "exactHash" | "inactiveClass" | "disableClass" | "raw" | "href" | "external" | "target" | "rel" | "noRel" | "prefetchedClass" | "prefetch" | "prefetchOn" | "noPrefetch">;
6
+ }, "label" | "raw" | "replace" | "disabled" | "title" | "class" | "active" | "to" | "type" | "custom" | "activeClass" | "exactActiveClass" | "ariaCurrentValue" | "viewTransition" | `aria-${string}` | `data-${string}` | "as" | "exact" | "exactQuery" | "exactHash" | "inactiveClass" | "href" | "external" | "target" | "rel" | "noRel" | "prefetchedClass" | "prefetch" | "prefetchOn" | "noPrefetch" | "download" | "onClick">;
7
+ export declare function isPartiallyEqual(item1: any, item2: any): boolean;
@@ -1,4 +1,5 @@
1
1
  import { reactivePick } from "@vueuse/core";
2
+ import { diff, isEqual } from "ohash/utils";
2
3
  export function pickLinkProps(link) {
3
4
  const keys = Object.keys(link);
4
5
  const ariaKeys = keys.filter((key) => key.startsWith("aria-"));
@@ -9,13 +10,13 @@ export function pickLinkProps(link) {
9
10
  "ariaCurrentValue",
10
11
  "as",
11
12
  "disabled",
12
- "disableClass",
13
13
  "exact",
14
14
  "exactActiveClass",
15
15
  "exactHash",
16
16
  "exactQuery",
17
17
  "external",
18
18
  "href",
19
+ "download",
19
20
  "inactiveClass",
20
21
  "noPrefetch",
21
22
  "noRel",
@@ -26,7 +27,10 @@ export function pickLinkProps(link) {
26
27
  "target",
27
28
  "to",
28
29
  "type",
29
- "title"
30
+ "title",
31
+ "onClick",
32
+ "title",
33
+ "onClick"
30
34
  ];
31
35
  return reactivePick(
32
36
  link,
@@ -35,3 +39,13 @@ export function pickLinkProps(link) {
35
39
  ...dataKeys
36
40
  );
37
41
  }
42
+ export function isPartiallyEqual(item1, item2) {
43
+ const diffedKeys = diff(item1, item2).reduce((filtered, q) => {
44
+ if (q.type === "added")
45
+ filtered.add(q.key);
46
+ return filtered;
47
+ }, /* @__PURE__ */ new Set());
48
+ const item1Filtered = Object.fromEntries(Object.entries(item1).filter(([key]) => !diffedKeys.has(key)));
49
+ const item2Filtered = Object.fromEntries(Object.entries(item2).filter(([key]) => !diffedKeys.has(key)));
50
+ return isEqual(item1Filtered, item2Filtered);
51
+ }
@@ -0,0 +1,5 @@
1
+ import type { DefineLocaleOptions, Locale, Messages } from '../types/locale';
2
+ import type { DeepPartial } from '../types/utils';
3
+ export { createTranslator } from '@byyuurin/ui-kit';
4
+ export declare function defineLocale<M extends Messages = Messages>(locale: DefineLocaleOptions<M>): Locale<M>;
5
+ export declare function extendLocale<M extends Messages = Messages>(locale: Locale<M>, options: Partial<DefineLocaleOptions<DeepPartial<M>>>): Locale<M>;
@@ -0,0 +1,10 @@
1
+ import { defu } from "defu";
2
+ export { createTranslator } from "@byyuurin/ui-kit";
3
+ // @__NO_SIDE_EFFECTS__
4
+ export function defineLocale(locale) {
5
+ return defu(locale, { dir: "ltr" });
6
+ }
7
+ // @__NO_SIDE_EFFECTS__
8
+ export function extendLocale(locale, options) {
9
+ return defu(options, locale);
10
+ }
@@ -0,0 +1,94 @@
1
+ export declare const cv: <V extends import("@byyuurin/ui-kit").CVVariants<P, B>, CV extends import("@byyuurin/ui-kit").CVCompoundVariants<V, P, B>, DV extends import("@byyuurin/ui-kit").CVDefaultVariants<V, P>, B extends import("@byyuurin/ui-kit").ClassValue = undefined, P extends import("@byyuurin/ui-kit").CVParts = undefined>(scope?: import("@byyuurin/ui-kit").CVScope<V, CV, DV, B, P>) => import("@byyuurin/ui-kit").CVReturnType<V, P, B>;
2
+ export declare function merge<T extends object, V extends object | undefined = undefined>(theme: T, overrides?: V): T extends {
3
+ [x: string]: any;
4
+ [x: number]: any;
5
+ [x: symbol]: any;
6
+ } ? {} extends infer T_1 ? T_1 extends {} ? T_1 extends T ? T_1 : Omit<T_1, keyof T_1 & keyof T> & Omit<T, keyof T_1 & keyof T> & { -readonly [Key in keyof T_1 & keyof T]: T_1[Key] extends void | null | undefined ? T[Key] extends void | null | undefined ? void | null | undefined : T[Key] : T[Key] extends void | null | undefined ? T_1[Key] : T_1[Key] extends infer T_2 ? T_2 extends T_1[Key] ? T_2 extends void | null | undefined ? T[Key] extends infer T_3 ? T_3 extends T[Key] ? T_3 extends void | null | undefined ? void | null | undefined : T_3 : never : never : T[Key] extends infer T_4 ? T_4 extends T[Key] ? T_4 extends void | null | undefined ? T_2 : T_2 extends any[] ? T_4 extends any[] ? T_2 extends infer T_5 ? T_5 extends T_2 ? T_5 extends (infer DestinationType)[] ? T_4 extends infer T_6 ? T_6 extends T_4 ? T_6 extends (infer SourceType)[] ? (DestinationType | SourceType)[] : DestinationType[] | T_6 : never : never : T_4 | T_5 : never : never : T_4 | T_2 : T_2 extends Function ? T_4 | T_2 : T_2 extends RegExp ? T_4 | T_2 : T_2 extends Promise<any> ? T_4 | T_2 : T_4 extends Function ? T_2 | T_4 : T_4 extends RegExp ? T_2 | T_4 : T_4 extends Promise<any> ? T_2 | T_4 : T_2 extends {
7
+ [x: string]: any;
8
+ [x: number]: any;
9
+ [x: symbol]: any;
10
+ } ? T_4 extends {
11
+ [x: string]: any;
12
+ [x: number]: any;
13
+ [x: symbol]: any;
14
+ } ? T_2 extends infer T_7 ? T_7 extends T_2 ? T_7 extends T_4 ? T_7 : Omit<T_7, keyof T_7 & keyof T_4> & Omit<T_4, keyof T_7 & keyof T_4> & { -readonly [Key_2 in keyof T_7 & keyof T_4]: T_7[Key_2] extends void | null | undefined ? T_4[Key_2] extends void | null | undefined ? void | null | undefined : T_4[Key_2] : T_4[Key_2] extends void | null | undefined ? T_7[Key_2] : T_7[Key_2] extends infer T_8 ? T_8 extends T_7[Key_2] ? T_8 extends void | null | undefined ? T_4[Key_2] extends infer T_9 ? T_9 extends T_4[Key_2] ? T_9 extends void | null | undefined ? void | null | undefined : T_9 : never : never : T_4[Key_2] extends infer T_10 ? T_10 extends T_4[Key_2] ? T_10 extends void | null | undefined ? T_8 : T_8 extends any[] ? T_10 extends any[] ? T_8 extends infer T_11 ? T_11 extends T_8 ? T_11 extends (infer DestinationType)[] ? T_10 extends infer T_12 ? T_12 extends T_10 ? T_12 extends (infer SourceType)[] ? (DestinationType | SourceType)[] : DestinationType[] | T_12 : never : never : T_10 | T_11 : never : never : T_10 | T_8 : T_8 extends Function ? T_10 | T_8 : T_8 extends RegExp ? T_10 | T_8 : T_8 extends Promise<any> ? T_10 | T_8 : T_10 extends Function ? T_8 | T_10 : T_10 extends RegExp ? T_8 | T_10 : T_10 extends Promise<any> ? T_8 | T_10 : T_8 extends {
15
+ [x: string]: any;
16
+ [x: number]: any;
17
+ [x: symbol]: any;
18
+ } ? T_10 extends {
19
+ [x: string]: any;
20
+ [x: number]: any;
21
+ [x: symbol]: any;
22
+ } ? T_8 extends infer T_13 ? T_13 extends T_8 ? T_13 extends T_10 ? T_13 : Omit<T_13, keyof T_13 & keyof T_10> & Omit<T_10, keyof T_13 & keyof T_10> & { -readonly [Key_3 in keyof T_13 & keyof T_10]: T_13[Key_3] extends void | null | undefined ? T_10[Key_3] extends void | null | undefined ? void | null | undefined : T_10[Key_3] : T_10[Key_3] extends void | null | undefined ? T_13[Key_3] : T_13[Key_3] extends infer T_14 ? T_14 extends T_13[Key_3] ? T_14 extends void | null | undefined ? T_10[Key_3] extends infer T_15 ? T_15 extends T_10[Key_3] ? T_15 extends void | null | undefined ? void | null | undefined : T_15 : never : never : T_10[Key_3] extends infer T_16 ? T_16 extends T_10[Key_3] ? T_16 extends void | null | undefined ? T_14 : T_14 extends any[] ? T_16 extends any[] ? T_14 extends infer T_17 ? T_17 extends T_14 ? T_17 extends (infer DestinationType)[] ? T_16 extends infer T_18 ? T_18 extends T_16 ? T_18 extends (infer SourceType)[] ? (DestinationType | SourceType)[] : DestinationType[] | T_18 : never : never : T_16 | T_17 : never : never : T_16 | T_14 : T_14 extends Function ? T_16 | T_14 : T_14 extends RegExp ? T_16 | T_14 : T_14 extends Promise<any> ? T_16 | T_14 : T_16 extends Function ? T_14 | T_16 : T_16 extends RegExp ? T_14 | T_16 : T_16 extends Promise<any> ? T_14 | T_16 : T_14 extends {
23
+ [x: string]: any;
24
+ [x: number]: any;
25
+ [x: symbol]: any;
26
+ } ? T_16 extends {
27
+ [x: string]: any;
28
+ [x: number]: any;
29
+ [x: symbol]: any;
30
+ } ? T_14 extends infer T_19 ? T_19 extends T_14 ? T_19 extends T_16 ? T_19 : Omit<T_19, keyof T_19 & keyof T_16> & Omit<T_16, keyof T_19 & keyof T_16> & { -readonly [Key_4 in keyof T_19 & keyof T_16]: T_19[Key_4] extends void | null | undefined ? T_16[Key_4] extends void | null | undefined ? void | null | undefined : T_16[Key_4] : T_16[Key_4] extends void | null | undefined ? T_19[Key_4] : T_19[Key_4] extends infer T_20 ? T_20 extends T_19[Key_4] ? T_20 extends void | null | undefined ? T_16[Key_4] extends infer T_21 ? T_21 extends T_16[Key_4] ? T_21 extends void | null | undefined ? void | null | undefined : T_21 : never : never : T_16[Key_4] extends infer T_22 ? T_22 extends T_16[Key_4] ? T_22 extends void | null | undefined ? T_20 : T_20 extends any[] ? T_22 extends any[] ? T_20 extends infer T_23 ? T_23 extends T_20 ? T_23 extends (infer DestinationType)[] ? T_22 extends infer T_24 ? T_24 extends T_22 ? T_24 extends (infer SourceType)[] ? (DestinationType | SourceType)[] : DestinationType[] | T_24 : never : never : T_22 | T_23 : never : never : T_22 | T_20 : T_20 extends Function ? T_22 | T_20 : T_20 extends RegExp ? T_22 | T_20 : T_20 extends Promise<any> ? T_22 | T_20 : T_22 extends Function ? T_20 | T_22 : T_22 extends RegExp ? T_20 | T_22 : T_22 extends Promise<any> ? T_20 | T_22 : T_20 extends {
31
+ [x: string]: any;
32
+ [x: number]: any;
33
+ [x: symbol]: any;
34
+ } ? T_22 extends {
35
+ [x: string]: any;
36
+ [x: number]: any;
37
+ [x: symbol]: any;
38
+ } ? T_20 extends infer T_25 ? T_25 extends T_20 ? T_25 extends T_22 ? T_25 : Omit<T_25, keyof T_25 & keyof T_22> & Omit<T_22, keyof T_25 & keyof T_22> & { -readonly [Key_5 in keyof T_25 & keyof T_22]: T_25[Key_5] extends void | null | undefined ? T_22[Key_5] extends void | null | undefined ? void | null | undefined : T_22[Key_5] : T_22[Key_5] extends void | null | undefined ? T_25[Key_5] : T_25[Key_5] extends infer T_26 ? T_26 extends T_25[Key_5] ? T_26 extends void | null | undefined ? T_22[Key_5] extends infer T_27 ? T_27 extends T_22[Key_5] ? T_27 extends void | null | undefined ? void | null | undefined : T_27 : never : never : T_22[Key_5] extends infer T_28 ? T_28 extends T_22[Key_5] ? T_28 extends void | null | undefined ? T_26 : T_26 extends any[] ? T_28 extends any[] ? T_26 extends infer T_29 ? T_29 extends T_26 ? T_29 extends (infer DestinationType)[] ? T_28 extends infer T_30 ? T_30 extends T_28 ? T_30 extends (infer SourceType)[] ? (DestinationType | SourceType)[] : DestinationType[] | T_30 : never : never : T_28 | T_29 : never : never : T_28 | T_26 : T_26 extends Function ? T_28 | T_26 : T_26 extends RegExp ? T_28 | T_26 : T_26 extends Promise<any> ? T_28 | T_26 : T_28 extends Function ? T_26 | T_28 : T_28 extends RegExp ? T_26 | T_28 : T_28 extends Promise<any> ? T_26 | T_28 : T_26 extends {
39
+ [x: string]: any;
40
+ [x: number]: any;
41
+ [x: symbol]: any;
42
+ } ? T_28 extends {
43
+ [x: string]: any;
44
+ [x: number]: any;
45
+ [x: symbol]: any;
46
+ } ? T_26 extends infer T_31 ? T_31 extends T_26 ? T_31 extends T_28 ? T_31 : Omit<T_31, keyof T_31 & keyof T_28> & Omit<T_28, keyof T_31 & keyof T_28> & { -readonly [Key_6 in keyof T_31 & keyof T_28]: T_31[Key_6] extends void | null | undefined ? T_28[Key_6] extends void | null | undefined ? void | null | undefined : T_28[Key_6] : T_28[Key_6] extends void | null | undefined ? T_31[Key_6] : T_31[Key_6] extends infer T_32 ? T_32 extends T_31[Key_6] ? T_32 extends void | null | undefined ? T_28[Key_6] extends infer T_33 ? T_33 extends T_28[Key_6] ? T_33 extends void | null | undefined ? void | null | undefined : T_33 : never : never : T_28[Key_6] extends infer T_34 ? T_34 extends T_28[Key_6] ? T_34 extends void | null | undefined ? T_32 : T_32 extends any[] ? T_34 extends any[] ? T_32 extends infer T_35 ? T_35 extends T_32 ? T_35 extends (infer DestinationType)[] ? T_34 extends infer T_36 ? T_36 extends T_34 ? T_36 extends (infer SourceType)[] ? (DestinationType | SourceType)[] : DestinationType[] | T_36 : never : never : T_34 | T_35 : never : never : T_34 | T_32 : T_32 extends Function ? T_34 | T_32 : T_32 extends RegExp ? T_34 | T_32 : T_32 extends Promise<any> ? T_34 | T_32 : T_34 extends Function ? T_32 | T_34 : T_34 extends RegExp ? T_32 | T_34 : T_34 extends Promise<any> ? T_32 | T_34 : T_32 extends {
47
+ [x: string]: any;
48
+ [x: number]: any;
49
+ [x: symbol]: any;
50
+ } ? T_34 extends {
51
+ [x: string]: any;
52
+ [x: number]: any;
53
+ [x: symbol]: any;
54
+ } ? T_32 extends infer T_37 ? T_37 extends T_32 ? T_37 extends T_34 ? T_37 : Omit<T_37, keyof T_37 & keyof T_34> & Omit<T_34, keyof T_37 & keyof T_34> & { -readonly [Key_7 in keyof T_37 & keyof T_34]: T_37[Key_7] extends void | null | undefined ? T_34[Key_7] extends void | null | undefined ? void | null | undefined : T_34[Key_7] : T_34[Key_7] extends void | null | undefined ? T_37[Key_7] : T_37[Key_7] extends infer T_38 ? T_38 extends T_37[Key_7] ? T_38 extends void | null | undefined ? T_34[Key_7] extends infer T_39 ? T_39 extends T_34[Key_7] ? T_39 extends void | null | undefined ? void | null | undefined : T_39 : never : never : T_34[Key_7] extends infer T_40 ? T_40 extends T_34[Key_7] ? T_40 extends void | null | undefined ? T_38 : T_38 extends any[] ? T_40 extends any[] ? T_38 extends infer T_41 ? T_41 extends T_38 ? T_41 extends (infer DestinationType)[] ? T_40 extends infer T_42 ? T_42 extends T_40 ? T_42 extends (infer SourceType)[] ? (DestinationType | SourceType)[] : DestinationType[] | T_42 : never : never : T_40 | T_41 : never : never : T_40 | T_38 : T_38 extends Function ? T_40 | T_38 : T_38 extends RegExp ? T_40 | T_38 : T_38 extends Promise<any> ? T_40 | T_38 : T_40 extends Function ? T_38 | T_40 : T_40 extends RegExp ? T_38 | T_40 : T_40 extends Promise<any> ? T_38 | T_40 : T_38 extends {
55
+ [x: string]: any;
56
+ [x: number]: any;
57
+ [x: symbol]: any;
58
+ } ? T_40 extends {
59
+ [x: string]: any;
60
+ [x: number]: any;
61
+ [x: symbol]: any;
62
+ } ? T_38 extends infer T_43 ? T_43 extends T_38 ? T_43 extends T_40 ? T_43 : Omit<T_43, keyof T_43 & keyof T_40> & Omit<T_40, keyof T_43 & keyof T_40> & { -readonly [Key_8 in keyof T_43 & keyof T_40]: T_43[Key_8] extends void | null | undefined ? T_40[Key_8] extends void | null | undefined ? void | null | undefined : T_40[Key_8] : T_40[Key_8] extends void | null | undefined ? T_43[Key_8] : T_43[Key_8] extends infer T_44 ? T_44 extends T_43[Key_8] ? T_44 extends void | null | undefined ? T_40[Key_8] extends infer T_45 ? T_45 extends T_40[Key_8] ? T_45 extends void | null | undefined ? void | null | undefined : T_45 : never : never : T_40[Key_8] extends infer T_46 ? T_46 extends T_40[Key_8] ? T_46 extends void | null | undefined ? T_44 : T_44 extends any[] ? T_46 extends any[] ? T_44 extends infer T_47 ? T_47 extends T_44 ? T_47 extends (infer DestinationType)[] ? T_46 extends infer T_48 ? T_48 extends T_46 ? T_48 extends (infer SourceType)[] ? (DestinationType | SourceType)[] : DestinationType[] | T_48 : never : never : T_46 | T_47 : never : never : T_46 | T_44 : T_44 extends Function ? T_46 | T_44 : T_44 extends RegExp ? T_46 | T_44 : T_44 extends Promise<any> ? T_46 | T_44 : T_46 extends Function ? T_44 | T_46 : T_46 extends RegExp ? T_44 | T_46 : T_46 extends Promise<any> ? T_44 | T_46 : T_44 extends {
63
+ [x: string]: any;
64
+ [x: number]: any;
65
+ [x: symbol]: any;
66
+ } ? T_46 extends {
67
+ [x: string]: any;
68
+ [x: number]: any;
69
+ [x: symbol]: any;
70
+ } ? T_44 extends infer T_49 ? T_49 extends T_44 ? T_49 extends T_46 ? T_49 : Omit<T_49, keyof T_49 & keyof T_46> & Omit<T_46, keyof T_49 & keyof T_46> & { -readonly [Key_9 in keyof T_49 & keyof T_46]: T_49[Key_9] extends void | null | undefined ? T_46[Key_9] extends void | null | undefined ? void | null | undefined : T_46[Key_9] : T_46[Key_9] extends void | null | undefined ? T_49[Key_9] : T_49[Key_9] extends infer T_50 ? T_50 extends T_49[Key_9] ? T_50 extends void | null | undefined ? T_46[Key_9] extends infer T_51 ? T_51 extends T_46[Key_9] ? T_51 extends void | null | undefined ? void | null | undefined : T_51 : never : never : T_46[Key_9] extends infer T_52 ? T_52 extends T_46[Key_9] ? T_52 extends void | null | undefined ? T_50 : T_50 extends any[] ? T_52 extends any[] ? T_50 extends infer T_53 ? T_53 extends T_50 ? T_53 extends (infer DestinationType)[] ? T_52 extends infer T_54 ? T_54 extends T_52 ? T_54 extends (infer SourceType)[] ? (DestinationType | SourceType)[] : DestinationType[] | T_54 : never : never : T_52 | T_53 : never : never : T_52 | T_50 : T_50 extends Function ? T_52 | T_50 : T_50 extends RegExp ? T_52 | T_50 : T_50 extends Promise<any> ? T_52 | T_50 : T_52 extends Function ? T_50 | T_52 : T_52 extends RegExp ? T_50 | T_52 : T_52 extends Promise<any> ? T_50 | T_52 : T_50 extends {
71
+ [x: string]: any;
72
+ [x: number]: any;
73
+ [x: symbol]: any;
74
+ } ? T_52 extends {
75
+ [x: string]: any;
76
+ [x: number]: any;
77
+ [x: symbol]: any;
78
+ } ? T_50 extends infer T_55 ? T_55 extends T_50 ? T_55 extends T_52 ? T_55 : Omit<T_55, keyof T_55 & keyof T_52> & Omit<T_52, keyof T_55 & keyof T_52> & { -readonly [Key_10 in keyof T_55 & keyof T_52]: T_55[Key_10] extends void | null | undefined ? T_52[Key_10] extends void | null | undefined ? void | null | undefined : T_52[Key_10] : T_52[Key_10] extends void | null | undefined ? T_55[Key_10] : T_55[Key_10] extends infer T_56 ? T_56 extends T_55[Key_10] ? T_56 extends void | null | undefined ? T_52[Key_10] extends infer T_57 ? T_57 extends T_52[Key_10] ? T_57 extends void | null | undefined ? void | null | undefined : T_57 : never : never : T_52[Key_10] extends infer T_58 ? T_58 extends T_52[Key_10] ? T_58 extends void | null | undefined ? T_56 : T_56 extends any[] ? T_58 extends any[] ? T_56 extends infer T_59 ? T_59 extends T_56 ? T_59 extends (infer DestinationType)[] ? T_58 extends infer T_60 ? T_60 extends T_58 ? T_60 extends (infer SourceType)[] ? (DestinationType | SourceType)[] : DestinationType[] | T_60 : never : never : T_58 | T_59 : never : never : T_58 | T_56 : T_56 extends Function ? T_58 | T_56 : T_56 extends RegExp ? T_58 | T_56 : T_56 extends Promise<any> ? T_58 | T_56 : T_58 extends Function ? T_56 | T_58 : T_58 extends RegExp ? T_56 | T_58 : T_58 extends Promise<any> ? T_56 | T_58 : T_56 extends {
79
+ [x: string]: any;
80
+ [x: number]: any;
81
+ [x: symbol]: any;
82
+ } ? T_58 extends {
83
+ [x: string]: any;
84
+ [x: number]: any;
85
+ [x: symbol]: any;
86
+ } ? T_56 extends infer T_61 ? T_61 extends T_56 ? T_61 extends T_58 ? T_61 : Omit<T_61, keyof T_61 & keyof T_58> & Omit<T_58, keyof T_61 & keyof T_58> & { -readonly [Key_11 in keyof T_61 & keyof T_58]: T_61[Key_11] extends void | null | undefined ? T_58[Key_11] extends void | null | undefined ? void | null | undefined : T_58[Key_11] : T_58[Key_11] extends void | null | undefined ? T_61[Key_11] : T_61[Key_11] extends infer T_62 ? T_62 extends T_61[Key_11] ? T_62 extends void | null | undefined ? T_58[Key_11] extends infer T_63 ? T_63 extends T_58[Key_11] ? T_63 extends void | null | undefined ? void | null | undefined : T_63 : never : never : T_58[Key_11] extends infer T_64 ? T_64 extends T_58[Key_11] ? T_64 extends void | null | undefined ? T_62 : T_62 extends any[] ? T_64 extends any[] ? T_62 extends infer T_65 ? T_65 extends T_62 ? T_65 extends (infer DestinationType)[] ? T_64 extends infer T_66 ? T_66 extends T_64 ? T_66 extends (infer SourceType)[] ? (DestinationType | SourceType)[] : DestinationType[] | T_66 : never : never : T_64 | T_65 : never : never : T_64 | T_62 : T_62 extends Function ? T_64 | T_62 : T_62 extends RegExp ? T_64 | T_62 : T_62 extends Promise<any> ? T_64 | T_62 : T_64 extends Function ? T_62 | T_64 : T_64 extends RegExp ? T_62 | T_64 : T_64 extends Promise<any> ? T_62 | T_64 : T_62 extends {
87
+ [x: string]: any;
88
+ [x: number]: any;
89
+ [x: symbol]: any;
90
+ } ? T_64 extends {
91
+ [x: string]: any;
92
+ [x: number]: any;
93
+ [x: symbol]: any;
94
+ } ? /*elided*/ any : T_64 | T_62 : T_62 | T_64 : never : never : never : never; } : never : never : T_58 | T_56 : T_56 | T_58 : never : never : never : never; } : never : never : T_52 | T_50 : T_50 | T_52 : never : never : never : never; } : never : never : T_46 | T_44 : T_44 | T_46 : never : never : never : never; } : never : never : T_40 | T_38 : T_38 | T_40 : never : never : never : never; } : never : never : T_34 | T_32 : T_32 | T_34 : never : never : never : never; } : never : never : T_28 | T_26 : T_26 | T_28 : never : never : never : never; } : never : never : T_22 | T_20 : T_20 | T_22 : never : never : never : never; } : never : never : T_16 | T_14 : T_14 | T_16 : never : never : never : never; } : never : never : T_10 | T_8 : T_8 | T_10 : never : never : never : never; } : never : never : T_4 | T_2 : T_2 | T_4 : never : never : never : never; } : never : never : T extends number | boolean | any[] | Record<never, any> | null | undefined ? {} : {};
@@ -0,0 +1,37 @@
1
+ import { createCV, cx } from "@byyuurin/ui-kit";
2
+ import { createDefu } from "defu";
3
+ import { unoMerge } from "#build/uno-merge";
4
+ export const cv = createCV((...classValues) => unoMerge(cx(...classValues)));
5
+ const mergeFn = createDefu((obj, key, value) => {
6
+ if (typeof obj[key] === "string" && typeof value !== "string") {
7
+ return true;
8
+ }
9
+ if (obj[key] === "") {
10
+ return true;
11
+ }
12
+ if (Array.isArray(value) && key !== "compoundVariants") {
13
+ return true;
14
+ }
15
+ if (Array.isArray(value) && key === "compoundVariants") {
16
+ obj[key] ||= [];
17
+ obj[key] = [...obj[key], ...value].filter(Boolean);
18
+ return true;
19
+ }
20
+ if (typeof obj[key] === "string" && typeof value === "string") {
21
+ if (String(key).endsWith("Size")) {
22
+ obj[key] = value;
23
+ return true;
24
+ }
25
+ if (value.trim())
26
+ obj[key] += ` ${value}`;
27
+ return true;
28
+ }
29
+ if (Array.isArray(obj[key]) && typeof obj[key][0] === "string" && typeof value === "string") {
30
+ if (value.trim())
31
+ obj[key] = [...obj[key], value];
32
+ return true;
33
+ }
34
+ });
35
+ export function merge(theme, overrides) {
36
+ return mergeFn(overrides || {}, theme);
37
+ }
@@ -0,0 +1,15 @@
1
+ <script>
2
+
3
+ </script>
4
+
5
+ <script setup>
6
+ import { Icon as IconifyIcon } from "@iconify/vue";
7
+ const props = defineProps({
8
+ name: { type: [String, Object], required: true }
9
+ });
10
+ </script>
11
+
12
+ <template>
13
+ <IconifyIcon v-if="typeof props.name === 'string'" :icon="props.name.replace(/^i-/, '')" />
14
+ <component :is="props.name" v-else />
15
+ </template>
@@ -0,0 +1,7 @@
1
+ import type { IconProps as NuxtIconProps } from '../../types';
2
+ export interface IconProps {
3
+ name: NuxtIconProps['name'];
4
+ }
5
+ declare const __VLS_export: import("vue").DefineComponent<IconProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -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
+ };