@bitrix24/b24ui-nuxt 0.5.8 → 0.5.10

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 (197) hide show
  1. package/.nuxt/b24ui/navigation-menu.ts +0 -2
  2. package/.nuxt/b24ui/popover.ts +1 -1
  3. package/.nuxt/b24ui/textarea.ts +43 -0
  4. package/dist/meta.d.mts +5090 -4900
  5. package/dist/meta.mjs +5090 -4900
  6. package/dist/module.json +5 -5
  7. package/dist/module.mjs +11 -7
  8. package/dist/runtime/components/Advice.vue +47 -54
  9. package/dist/runtime/components/Advice.vue.d.ts +170 -0
  10. package/dist/runtime/components/Alert.vue +71 -96
  11. package/dist/runtime/components/Alert.vue.d.ts +464 -0
  12. package/dist/runtime/components/App.vue +37 -34
  13. package/dist/runtime/components/App.vue.d.ts +23 -0
  14. package/dist/runtime/components/Avatar.vue +69 -81
  15. package/dist/runtime/components/Avatar.vue.d.ts +281 -0
  16. package/dist/runtime/components/AvatarGroup.vue +53 -76
  17. package/dist/runtime/components/AvatarGroup.vue.d.ts +204 -0
  18. package/dist/runtime/components/Badge.vue +83 -83
  19. package/dist/runtime/components/Badge.vue.d.ts +517 -0
  20. package/dist/runtime/components/Button.vue +219 -149
  21. package/dist/runtime/components/Button.vue.d.ts +640 -0
  22. package/dist/runtime/components/ButtonGroup.vue +35 -51
  23. package/dist/runtime/components/ButtonGroup.vue.d.ts +116 -0
  24. package/dist/runtime/components/Calendar.vue +186 -152
  25. package/dist/runtime/components/Calendar.vue.d.ts +437 -0
  26. package/dist/runtime/components/Checkbox.vue +84 -73
  27. package/dist/runtime/components/Checkbox.vue.d.ts +354 -0
  28. package/dist/runtime/components/Chip.vue +59 -74
  29. package/dist/runtime/components/Chip.vue.d.ts +271 -0
  30. package/dist/runtime/components/Collapsible.vue +44 -41
  31. package/dist/runtime/components/Collapsible.vue.d.ts +118 -0
  32. package/dist/runtime/components/Container.vue +18 -27
  33. package/dist/runtime/components/Container.vue.d.ts +27 -0
  34. package/dist/runtime/components/Countdown.vue +198 -378
  35. package/dist/runtime/components/Countdown.vue.d.ts +356 -0
  36. package/dist/runtime/components/DescriptionList.vue +102 -149
  37. package/dist/runtime/components/DescriptionList.vue.d.ts +379 -0
  38. package/dist/runtime/components/DropdownMenu.vue +83 -139
  39. package/dist/runtime/components/DropdownMenu.vue.d.ts +533 -0
  40. package/dist/runtime/components/DropdownMenuContent.vue +137 -81
  41. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +228 -0
  42. package/dist/runtime/components/Form.vue +162 -216
  43. package/dist/runtime/components/Form.vue.d.ts +55 -0
  44. package/dist/runtime/components/FormField.vue +76 -80
  45. package/dist/runtime/components/FormField.vue.d.ts +282 -0
  46. package/dist/runtime/components/Input.vue +166 -185
  47. package/dist/runtime/components/Input.vue.d.ts +755 -0
  48. package/dist/runtime/components/InputMenu.vue +300 -381
  49. package/dist/runtime/components/InputMenu.vue.d.ts +1504 -0
  50. package/dist/runtime/components/InputNumber.vue +180 -177
  51. package/dist/runtime/components/InputNumber.vue.d.ts +658 -0
  52. package/dist/runtime/components/Kbd.vue +33 -45
  53. package/dist/runtime/components/Kbd.vue.d.ts +109 -0
  54. package/dist/runtime/components/Link.vue +179 -173
  55. package/dist/runtime/components/Link.vue.d.ts +129 -0
  56. package/dist/runtime/components/LinkBase.vue +64 -42
  57. package/dist/runtime/components/LinkBase.vue.d.ts +48 -0
  58. package/dist/runtime/components/Modal.vue +105 -127
  59. package/dist/runtime/components/Modal.vue.d.ts +327 -0
  60. package/dist/runtime/components/ModalDialogClose.vue +4 -8
  61. package/dist/runtime/components/ModalDialogClose.vue.d.ts +10 -0
  62. package/dist/runtime/components/Navbar.vue +24 -33
  63. package/dist/runtime/components/Navbar.vue.d.ts +101 -0
  64. package/dist/runtime/components/NavbarDivider.vue +24 -33
  65. package/dist/runtime/components/NavbarDivider.vue.d.ts +101 -0
  66. package/dist/runtime/components/NavbarSection.vue +24 -33
  67. package/dist/runtime/components/NavbarSection.vue.d.ts +101 -0
  68. package/dist/runtime/components/NavbarSpacer.vue +24 -33
  69. package/dist/runtime/components/NavbarSpacer.vue.d.ts +101 -0
  70. package/dist/runtime/components/NavigationMenu.vue +152 -216
  71. package/dist/runtime/components/NavigationMenu.vue.d.ts +824 -0
  72. package/dist/runtime/components/OverlayProvider.vue +13 -17
  73. package/dist/runtime/components/OverlayProvider.vue.d.ts +2 -0
  74. package/dist/runtime/components/Popover.vue +81 -81
  75. package/dist/runtime/components/Popover.vue.d.ts +147 -0
  76. package/dist/runtime/components/Progress.vue +109 -136
  77. package/dist/runtime/components/Progress.vue.d.ts +592 -0
  78. package/dist/runtime/components/RadioGroup.vue +120 -134
  79. package/dist/runtime/components/RadioGroup.vue.d.ts +723 -0
  80. package/dist/runtime/components/Range.vue +94 -85
  81. package/dist/runtime/components/Range.vue.d.ts +417 -0
  82. package/dist/runtime/components/Select.vue +212 -260
  83. package/dist/runtime/components/Select.vue.d.ts +1200 -0
  84. package/dist/runtime/components/SelectMenu.vue +272 -366
  85. package/dist/runtime/components/SelectMenu.vue.d.ts +1298 -0
  86. package/dist/runtime/components/Separator.vue +61 -71
  87. package/dist/runtime/components/Separator.vue.d.ts +400 -0
  88. package/dist/runtime/components/Sidebar.vue +24 -33
  89. package/dist/runtime/components/Sidebar.vue.d.ts +101 -0
  90. package/dist/runtime/components/SidebarBody.vue +30 -38
  91. package/dist/runtime/components/SidebarBody.vue.d.ts +90 -0
  92. package/dist/runtime/components/SidebarFooter.vue +24 -33
  93. package/dist/runtime/components/SidebarFooter.vue.d.ts +101 -0
  94. package/dist/runtime/components/SidebarHeader.vue +24 -33
  95. package/dist/runtime/components/SidebarHeader.vue.d.ts +101 -0
  96. package/dist/runtime/components/SidebarHeading.vue +24 -33
  97. package/dist/runtime/components/SidebarHeading.vue.d.ts +101 -0
  98. package/dist/runtime/components/SidebarLayout.vue +40 -70
  99. package/dist/runtime/components/SidebarLayout.vue.d.ts +222 -0
  100. package/dist/runtime/components/SidebarSection.vue +24 -33
  101. package/dist/runtime/components/SidebarSection.vue.d.ts +101 -0
  102. package/dist/runtime/components/SidebarSpacer.vue +24 -33
  103. package/dist/runtime/components/SidebarSpacer.vue.d.ts +101 -0
  104. package/dist/runtime/components/Skeleton.vue +17 -22
  105. package/dist/runtime/components/Skeleton.vue.d.ts +26 -0
  106. package/dist/runtime/components/Slideover.vue +108 -131
  107. package/dist/runtime/components/Slideover.vue.d.ts +360 -0
  108. package/dist/runtime/components/StackedLayout.vue +40 -73
  109. package/dist/runtime/components/StackedLayout.vue.d.ts +192 -0
  110. package/dist/runtime/components/Switch.vue +100 -95
  111. package/dist/runtime/components/Switch.vue.d.ts +587 -0
  112. package/dist/runtime/components/Tabs.vue +83 -105
  113. package/dist/runtime/components/Tabs.vue.d.ts +453 -0
  114. package/dist/runtime/components/Textarea.vue +215 -203
  115. package/dist/runtime/components/Textarea.vue.d.ts +601 -0
  116. package/dist/runtime/components/Toast.vue +94 -105
  117. package/dist/runtime/components/Toast.vue.d.ts +438 -0
  118. package/dist/runtime/components/Toaster.vue +94 -111
  119. package/dist/runtime/components/Toaster.vue.d.ts +219 -0
  120. package/dist/runtime/components/Tooltip.vue +78 -64
  121. package/dist/runtime/components/Tooltip.vue.d.ts +186 -0
  122. package/dist/runtime/components/content/TableWrapper.vue +58 -70
  123. package/dist/runtime/components/content/TableWrapper.vue.d.ts +237 -0
  124. package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
  125. package/dist/runtime/composables/useButtonGroup.d.ts +2 -2
  126. package/dist/runtime/composables/useComponentIcons.d.ts +3 -3
  127. package/dist/runtime/composables/useFormField.d.ts +1 -1
  128. package/dist/runtime/prose/A.vue +18 -23
  129. package/dist/runtime/prose/A.vue.d.ts +84 -0
  130. package/dist/runtime/prose/Blockquote.vue +18 -23
  131. package/dist/runtime/prose/Blockquote.vue.d.ts +84 -0
  132. package/dist/runtime/prose/Code.vue +23 -31
  133. package/dist/runtime/prose/Code.vue.d.ts +97 -0
  134. package/dist/runtime/prose/Em.vue +18 -23
  135. package/dist/runtime/prose/Em.vue.d.ts +84 -0
  136. package/dist/runtime/prose/H1.vue +18 -23
  137. package/dist/runtime/prose/H1.vue.d.ts +97 -0
  138. package/dist/runtime/prose/H2.vue +18 -23
  139. package/dist/runtime/prose/H2.vue.d.ts +123 -0
  140. package/dist/runtime/prose/H3.vue +18 -23
  141. package/dist/runtime/prose/H3.vue.d.ts +123 -0
  142. package/dist/runtime/prose/H4.vue +18 -23
  143. package/dist/runtime/prose/H4.vue.d.ts +123 -0
  144. package/dist/runtime/prose/H5.vue +18 -23
  145. package/dist/runtime/prose/H5.vue.d.ts +123 -0
  146. package/dist/runtime/prose/H6.vue +18 -23
  147. package/dist/runtime/prose/H6.vue.d.ts +123 -0
  148. package/dist/runtime/prose/Hr.vue +18 -19
  149. package/dist/runtime/prose/Hr.vue.d.ts +74 -0
  150. package/dist/runtime/prose/Img.vue +18 -23
  151. package/dist/runtime/prose/Img.vue.d.ts +77 -0
  152. package/dist/runtime/prose/Li.vue +18 -23
  153. package/dist/runtime/prose/Li.vue.d.ts +84 -0
  154. package/dist/runtime/prose/Ol.vue +18 -23
  155. package/dist/runtime/prose/Ol.vue.d.ts +84 -0
  156. package/dist/runtime/prose/P.vue +18 -23
  157. package/dist/runtime/prose/P.vue.d.ts +84 -0
  158. package/dist/runtime/prose/Pre.vue +28 -33
  159. package/dist/runtime/prose/Pre.vue.d.ts +117 -0
  160. package/dist/runtime/prose/Strong.vue +18 -23
  161. package/dist/runtime/prose/Strong.vue.d.ts +84 -0
  162. package/dist/runtime/prose/Table.vue +44 -54
  163. package/dist/runtime/prose/Table.vue.d.ts +144 -0
  164. package/dist/runtime/prose/Tbody.vue +18 -23
  165. package/dist/runtime/prose/Tbody.vue.d.ts +84 -0
  166. package/dist/runtime/prose/Td.vue +18 -23
  167. package/dist/runtime/prose/Td.vue.d.ts +84 -0
  168. package/dist/runtime/prose/Th.vue +18 -23
  169. package/dist/runtime/prose/Th.vue.d.ts +84 -0
  170. package/dist/runtime/prose/Thead.vue +18 -23
  171. package/dist/runtime/prose/Thead.vue.d.ts +84 -0
  172. package/dist/runtime/prose/Tr.vue +18 -23
  173. package/dist/runtime/prose/Tr.vue.d.ts +84 -0
  174. package/dist/runtime/prose/Ul.vue +18 -23
  175. package/dist/runtime/prose/Ul.vue.d.ts +84 -0
  176. package/dist/runtime/vue/components/Link.vue +201 -202
  177. package/dist/runtime/vue/components/Link.vue.d.ts +129 -0
  178. package/dist/runtime/vue/stubs.d.ts +2 -2
  179. package/dist/shared/{b24ui-nuxt.DBFS6LH7.mjs → b24ui-nuxt.CS9Lf0os.mjs} +54 -4
  180. package/dist/types.d.mts +3 -5
  181. package/dist/unplugin.mjs +1 -1
  182. package/dist/vite.mjs +1 -1
  183. package/package.json +62 -35
  184. package/dist/meta.cjs +0 -71922
  185. package/dist/meta.d.cts +0 -71920
  186. package/dist/meta.d.ts +0 -71920
  187. package/dist/module.cjs +0 -59
  188. package/dist/module.d.cts +0 -15
  189. package/dist/module.d.ts +0 -15
  190. package/dist/shared/b24ui-nuxt.B9fPD5yO.cjs +0 -7671
  191. package/dist/types.d.ts +0 -7
  192. package/dist/unplugin.cjs +0 -236
  193. package/dist/unplugin.d.cts +0 -33
  194. package/dist/unplugin.d.ts +0 -33
  195. package/dist/vite.cjs +0 -21
  196. package/dist/vite.d.cts +0 -14
  197. package/dist/vite.d.ts +0 -14
@@ -1,50 +1,38 @@
1
- <script lang="ts">
2
- import type { VariantProps } from 'tailwind-variants'
3
- import type { AppConfig } from '@nuxt/schema'
4
- import _appConfig from '#build/app.config'
5
- import theme from '#build/b24ui/kbd'
6
- import type { KbdKey } from '../composables/useKbd'
7
- import { tv } from '../utils/tv'
8
-
9
- const appConfigKbd = _appConfig as AppConfig & { b24ui: { kbd: Partial<typeof theme> } }
10
-
11
- const kbd = tv({ extend: tv(theme), ...(appConfigKbd.b24ui?.kbd || {}) })
12
-
13
- type KbdVariants = VariantProps<typeof kbd>
14
-
15
- export interface KbdProps {
16
- /**
17
- * The element or component this component should render as.
18
- * @defaultValue 'kbd'
19
- */
20
- as?: any
21
- value?: KbdKey | string
22
- /**
23
- * @defaultValue 'light'
24
- */
25
- depth?: KbdVariants['depth']
26
- /**
27
- * @defaultValue 'md'
28
- */
29
- size?: KbdVariants['size']
30
- class?: any
31
- }
32
-
33
- export interface KbdSlots {
34
- default(props?: {}): any
35
- }
1
+ <script>
2
+ import _appConfig from "#build/app.config";
3
+ import theme from "#build/b24ui/kbd";
4
+ import { tv } from "../utils/tv";
5
+ const appConfigKbd = _appConfig;
6
+ const kbd = tv({ extend: tv(theme), ...appConfigKbd.b24ui?.kbd || {} });
36
7
  </script>
37
8
 
38
- <script setup lang="ts">
39
- import { Primitive } from 'reka-ui'
40
- import { useKbd } from '../composables/useKbd'
41
-
42
- const props = withDefaults(defineProps<KbdProps>(), {
43
- as: 'kbd'
44
- })
45
- defineSlots<KbdSlots>()
46
-
47
- const { getKbdKey } = useKbd()
9
+ <script setup>
10
+ import { useKbd } from "../composables/useKbd";
11
+ const props = defineProps({
12
+ as: {
13
+ type: null,
14
+ required: false,
15
+ default: "kbd"
16
+ },
17
+ value: {
18
+ type: null,
19
+ required: false
20
+ },
21
+ depth: {
22
+ type: null,
23
+ required: false
24
+ },
25
+ size: {
26
+ type: null,
27
+ required: false
28
+ },
29
+ class: {
30
+ type: null,
31
+ required: false
32
+ }
33
+ });
34
+ defineSlots();
35
+ const { getKbdKey } = useKbd();
48
36
  </script>
49
37
 
50
38
  <template>
@@ -0,0 +1,109 @@
1
+ import type { VariantProps } from 'tailwind-variants';
2
+ import type { KbdKey } from '../composables/useKbd';
3
+ declare const kbd: import("tailwind-variants").TVReturnType<{
4
+ depth: {
5
+ light: string;
6
+ normal: string;
7
+ dark: string;
8
+ };
9
+ size: {
10
+ sm: string;
11
+ md: string;
12
+ lg: string;
13
+ };
14
+ }, undefined, string, {
15
+ depth: {
16
+ light: string;
17
+ normal: string;
18
+ dark: string;
19
+ };
20
+ size: {
21
+ sm: string;
22
+ md: string;
23
+ lg: string;
24
+ };
25
+ }, undefined, import("tailwind-variants").TVReturnType<{
26
+ depth: {
27
+ light: string;
28
+ normal: string;
29
+ dark: string;
30
+ };
31
+ size: {
32
+ sm: string;
33
+ md: string;
34
+ lg: string;
35
+ };
36
+ }, undefined, string, {
37
+ depth: {
38
+ light: string;
39
+ normal: string;
40
+ dark: string;
41
+ };
42
+ size: {
43
+ sm: string;
44
+ md: string;
45
+ lg: string;
46
+ };
47
+ }, undefined, import("tailwind-variants").TVReturnType<{
48
+ depth: {
49
+ light: string;
50
+ normal: string;
51
+ dark: string;
52
+ };
53
+ size: {
54
+ sm: string;
55
+ md: string;
56
+ lg: string;
57
+ };
58
+ }, undefined, string, unknown, unknown, undefined>>>;
59
+ type KbdVariants = VariantProps<typeof kbd>;
60
+ export interface KbdProps {
61
+ /**
62
+ * The element or component this component should render as.
63
+ * @defaultValue 'kbd'
64
+ */
65
+ as?: any;
66
+ value?: KbdKey | string;
67
+ /**
68
+ * @defaultValue 'light'
69
+ */
70
+ depth?: KbdVariants['depth'];
71
+ /**
72
+ * @defaultValue 'md'
73
+ */
74
+ size?: KbdVariants['size'];
75
+ class?: any;
76
+ }
77
+ export interface KbdSlots {
78
+ default(props?: {}): any;
79
+ }
80
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<KbdProps>, {
81
+ as: string;
82
+ }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<KbdProps>, {
83
+ as: string;
84
+ }>>> & Readonly<{}>, {
85
+ as: any;
86
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<KbdSlots> & KbdSlots>;
87
+ export default _default;
88
+ type __VLS_WithDefaults<P, D> = {
89
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
90
+ default: D[K];
91
+ }> : P[K];
92
+ };
93
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
94
+ type __VLS_TypePropsToOption<T> = {
95
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
96
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
97
+ } : {
98
+ type: import('vue').PropType<T[K]>;
99
+ required: true;
100
+ };
101
+ };
102
+ type __VLS_WithTemplateSlots<T, S> = T & {
103
+ new (): {
104
+ $slots: S;
105
+ };
106
+ };
107
+ type __VLS_PrettifyLocal<T> = {
108
+ [K in keyof T]: T[K];
109
+ } & {};
@@ -1,120 +1,138 @@
1
- <script lang="ts">
2
- import type { ButtonHTMLAttributes } from 'vue'
3
- import type { AppConfig } from '@nuxt/schema'
4
- import _appConfig from '#build/app.config'
5
- import type { RouterLinkProps, RouteLocationRaw } from 'vue-router'
6
- import theme from '#build/b24ui/link'
7
- import { tv } from '../utils/tv'
8
-
9
- interface NuxtLinkProps extends Omit<RouterLinkProps, 'to'> {
10
- /**
11
- * Route Location the link should navigate to when clicked on.
12
- */
13
- to?: RouteLocationRaw // need to manually type to avoid breaking typedPages
14
- /**
15
- * An alias for `to`. If used with `to`, `href` will be ignored
16
- */
17
- href?: NuxtLinkProps['to']
18
- /**
19
- * Forces the link to be considered as external (true) or internal (false). This is helpful to handle edge-cases
20
- */
21
- external?: boolean
22
- /**
23
- * Where to display the linked URL as the name for a browsing context.
24
- */
25
- target?: '_blank' | '_parent' | '_self' | '_top' | (string & {}) | null
26
- /**
27
- * A rel attribute value to apply on the link. Defaults to "noopener noreferrer" for external links.
28
- */
29
- rel?: 'noopener' | 'noreferrer' | 'nofollow' | 'sponsored' | 'ugc' | (string & {}) | null
30
- /**
31
- * If set to true, no rel attribute will be added to the link
32
- */
33
- noRel?: boolean
34
- /**
35
- * A class to apply to links that have been prefetched.
36
- */
37
- prefetchedClass?: string
38
- /**
39
- * When enabled will prefetch middleware, layouts and payloads of links in the viewport.
40
- */
41
- prefetch?: boolean
42
- /**
43
- * Allows controlling when to prefetch links. By default, prefetch is triggered only on visibility.
44
- */
45
- prefetchOn?: 'visibility' | 'interaction' | Partial<{
46
- visibility: boolean
47
- interaction: boolean
48
- }>
49
- /**
50
- * Escape hatch to disable `prefetch` attribute.
51
- */
52
- noPrefetch?: boolean
53
- }
54
-
55
- const appConfigLink = _appConfig as AppConfig & { b24ui: { link: Partial<typeof theme> } }
56
-
57
- const link = tv({ extend: tv(theme), ...(appConfigLink.b24ui?.link || {}) })
58
-
59
- export interface LinkProps extends NuxtLinkProps {
60
- /**
61
- * The element or component this component should render as when not a link.
62
- * @defaultValue 'button'
63
- */
64
- as?: any
65
- /**
66
- * The type of the button when not a link.
67
- * @defaultValue 'button'
68
- */
69
- type?: ButtonHTMLAttributes['type']
70
- disabled?: boolean
71
- /** Force the link to be active independent of the current route. */
72
- active?: boolean
73
- /** Will only be active if the current route is an exact match. */
74
- exact?: boolean
75
- /** Allows controlling how the current route query sets the link as active. */
76
- exactQuery?: boolean | 'partial'
77
- /** Will only be active if the current route hash is an exact match. */
78
- exactHash?: boolean
79
- /** The class to apply when the link is inactive. */
80
- inactiveClass?: string
81
- custom?: boolean
82
- /** When `true`, uses special underlined styling. */
83
- isAction?: boolean
84
- /** When `true`, only styles from `class`, `activeClass`, and `inactiveClass` will be applied. */
85
- raw?: boolean
86
- class?: any
87
- }
88
-
89
- export interface LinkSlots {
90
- default(props: { active: boolean }): any
91
- }
1
+ <script>
2
+ import _appConfig from "#build/app.config";
3
+ import theme from "#build/b24ui/link";
4
+ import { tv } from "../utils/tv";
5
+ const appConfigLink = _appConfig;
6
+ const link = tv({ extend: tv(theme), ...appConfigLink.b24ui?.link || {} });
92
7
  </script>
93
8
 
94
- <script setup lang="ts">
95
- import { computed } from 'vue'
96
- import { isEqual, diff } from 'ohash/utils'
97
- import { useForwardProps } from 'reka-ui'
98
- import { reactiveOmit } from '@vueuse/core'
99
- import { useRoute } from '#imports'
100
- import B24LinkBase from './LinkBase.vue'
101
-
102
- defineOptions({ inheritAttrs: false })
103
-
104
- const props = withDefaults(defineProps<LinkProps>(), {
105
- as: 'button',
106
- type: 'button',
107
- ariaCurrentValue: 'page',
108
- active: undefined,
109
- isAction: false,
110
- activeClass: '',
111
- inactiveClass: ''
112
- })
113
- defineSlots<LinkSlots>()
114
-
115
- const route = useRoute()
116
- const nuxtLinkProps = useForwardProps(reactiveOmit(props, 'as', 'type', 'disabled', 'active', 'exact', 'exactQuery', 'exactHash', 'activeClass', 'inactiveClass', 'raw', 'class'))
117
-
9
+ <script setup>
10
+ import { computed } from "vue";
11
+ import { isEqual, diff } from "ohash/utils";
12
+ import { useForwardProps } from "reka-ui";
13
+ import { reactiveOmit } from "@vueuse/core";
14
+ import { useRoute } from "#imports";
15
+ defineOptions({ inheritAttrs: false });
16
+ const props = defineProps({
17
+ as: {
18
+ type: null,
19
+ required: false,
20
+ default: "button"
21
+ },
22
+ type: {
23
+ type: null,
24
+ required: false,
25
+ default: "button"
26
+ },
27
+ disabled: {
28
+ type: Boolean,
29
+ required: false
30
+ },
31
+ active: {
32
+ type: Boolean,
33
+ required: false,
34
+ default: void 0
35
+ },
36
+ exact: {
37
+ type: Boolean,
38
+ required: false
39
+ },
40
+ exactQuery: {
41
+ type: [Boolean, String],
42
+ required: false
43
+ },
44
+ exactHash: {
45
+ type: Boolean,
46
+ required: false
47
+ },
48
+ inactiveClass: {
49
+ type: String,
50
+ required: false,
51
+ default: ""
52
+ },
53
+ custom: {
54
+ type: Boolean,
55
+ required: false
56
+ },
57
+ isAction: {
58
+ type: Boolean,
59
+ required: false,
60
+ default: false
61
+ },
62
+ raw: {
63
+ type: Boolean,
64
+ required: false
65
+ },
66
+ class: {
67
+ type: null,
68
+ required: false
69
+ },
70
+ to: {
71
+ type: null,
72
+ required: false
73
+ },
74
+ href: {
75
+ type: null,
76
+ required: false
77
+ },
78
+ external: {
79
+ type: Boolean,
80
+ required: false
81
+ },
82
+ target: {
83
+ type: [String, Object, null],
84
+ required: false
85
+ },
86
+ rel: {
87
+ type: [String, Object, null],
88
+ required: false
89
+ },
90
+ noRel: {
91
+ type: Boolean,
92
+ required: false
93
+ },
94
+ prefetchedClass: {
95
+ type: String,
96
+ required: false
97
+ },
98
+ prefetch: {
99
+ type: Boolean,
100
+ required: false
101
+ },
102
+ prefetchOn: {
103
+ type: [String, Object],
104
+ required: false
105
+ },
106
+ noPrefetch: {
107
+ type: Boolean,
108
+ required: false
109
+ },
110
+ activeClass: {
111
+ type: String,
112
+ required: false,
113
+ default: ""
114
+ },
115
+ exactActiveClass: {
116
+ type: String,
117
+ required: false
118
+ },
119
+ ariaCurrentValue: {
120
+ type: String,
121
+ required: false,
122
+ default: "page"
123
+ },
124
+ viewTransition: {
125
+ type: Boolean,
126
+ required: false
127
+ },
128
+ replace: {
129
+ type: Boolean,
130
+ required: false
131
+ }
132
+ });
133
+ defineSlots();
134
+ const route = useRoute();
135
+ const nuxtLinkProps = useForwardProps(reactiveOmit(props, "as", "type", "disabled", "active", "exact", "exactQuery", "exactHash", "activeClass", "inactiveClass", "raw", "class"));
118
136
  const b24ui = computed(() => tv({
119
137
  extend: link,
120
138
  variants: {
@@ -123,61 +141,49 @@ const b24ui = computed(() => tv({
123
141
  false: props.inactiveClass
124
142
  }
125
143
  }
126
- }))
127
-
128
- function isPartiallyEqual(item1: any, item2: any) {
144
+ }));
145
+ function isPartiallyEqual(item1, item2) {
129
146
  const diffedKeys = diff(item1, item2).reduce((filtered, q) => {
130
- if (q.type === 'added') {
131
- filtered.add(q.key)
147
+ if (q.type === "added") {
148
+ filtered.add(q.key);
132
149
  }
133
- return filtered
134
- }, new Set<string>())
135
-
136
- const item1Filtered = Object.fromEntries(Object.entries(item1).filter(([key]) => !diffedKeys.has(key)))
137
- const item2Filtered = Object.fromEntries(Object.entries(item2).filter(([key]) => !diffedKeys.has(key)))
138
-
139
- return isEqual(item1Filtered, item2Filtered)
150
+ return filtered;
151
+ }, /* @__PURE__ */ new Set());
152
+ const item1Filtered = Object.fromEntries(Object.entries(item1).filter(([key]) => !diffedKeys.has(key)));
153
+ const item2Filtered = Object.fromEntries(Object.entries(item2).filter(([key]) => !diffedKeys.has(key)));
154
+ return isEqual(item1Filtered, item2Filtered);
140
155
  }
141
-
142
- function isLinkActive({ route: linkRoute, isActive, isExactActive }: any) {
143
- if (props.active !== undefined) {
144
- return props.active
156
+ function isLinkActive({ route: linkRoute, isActive, isExactActive }) {
157
+ if (props.active !== void 0) {
158
+ return props.active;
145
159
  }
146
-
147
- if (props.exactQuery === 'partial') {
148
- if (!isPartiallyEqual(linkRoute.query, route.query)) return false
160
+ if (props.exactQuery === "partial") {
161
+ if (!isPartiallyEqual(linkRoute.query, route.query)) return false;
149
162
  } else if (props.exactQuery === true) {
150
- if (!isEqual(linkRoute.query, route.query)) return false
163
+ if (!isEqual(linkRoute.query, route.query)) return false;
151
164
  }
152
-
153
165
  if (props.exactHash && linkRoute.hash !== route.hash) {
154
- return false
166
+ return false;
155
167
  }
156
-
157
168
  if (props.exact && isExactActive) {
158
- return true
169
+ return true;
159
170
  }
160
-
161
171
  if (!props.exact && isActive) {
162
- return true
172
+ return true;
163
173
  }
164
-
165
- return false
174
+ return false;
166
175
  }
167
-
168
- function resolveLinkClass({ route, isActive, isExactActive }: any) {
169
- const active = isLinkActive({ route, isActive, isExactActive })
170
-
176
+ function resolveLinkClass({ route: route2, isActive, isExactActive }) {
177
+ const active = isLinkActive({ route: route2, isActive, isExactActive });
171
178
  if (props.raw) {
172
- return [props.class, active ? props.activeClass : props.inactiveClass]
179
+ return [props.class, active ? props.activeClass : props.inactiveClass];
173
180
  }
174
-
175
181
  return b24ui.value({
176
182
  class: props.class,
177
183
  active,
178
184
  disabled: props.disabled,
179
185
  isAction: Boolean(props.isAction)
180
- })
186
+ });
181
187
  }
182
188
  </script>
183
189
 
@@ -190,34 +196,34 @@ function resolveLinkClass({ route, isActive, isExactActive }: any) {
190
196
  <template v-if="custom">
191
197
  <slot
192
198
  v-bind="{
193
- ...$attrs,
194
- ...(exact && isExactActive ? { 'aria-current': props.ariaCurrentValue } : {}),
195
- as,
196
- type,
197
- disabled,
198
- href,
199
- navigate,
200
- rel,
201
- target,
202
- isExternal,
203
- active: isLinkActive({ route: linkRoute, isActive, isExactActive })
204
- }"
199
+ ...$attrs,
200
+ ...exact && isExactActive ? { 'aria-current': props.ariaCurrentValue } : {},
201
+ as,
202
+ type,
203
+ disabled,
204
+ href,
205
+ navigate,
206
+ rel,
207
+ target,
208
+ isExternal,
209
+ active: isLinkActive({ route: linkRoute, isActive, isExactActive })
210
+ }"
205
211
  />
206
212
  </template>
207
213
  <B24LinkBase
208
214
  v-else
209
215
  v-bind="{
210
- ...$attrs,
211
- ...(exact && isExactActive ? { 'aria-current': props.ariaCurrentValue } : {}),
212
- as,
213
- type,
214
- disabled,
215
- href,
216
- navigate,
217
- rel,
218
- target,
219
- isExternal
220
- }"
216
+ ...$attrs,
217
+ ...exact && isExactActive ? { 'aria-current': props.ariaCurrentValue } : {},
218
+ as,
219
+ type,
220
+ disabled,
221
+ href,
222
+ navigate,
223
+ rel,
224
+ target,
225
+ isExternal
226
+ }"
221
227
  :class="resolveLinkClass({ route: linkRoute, isActive, isExactActive })"
222
228
  >
223
229
  <slot :active="isLinkActive({ route: linkRoute, isActive, isExactActive })" />