@bitrix24/b24ui-nuxt 0.5.10 → 0.5.11

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 (190) hide show
  1. package/dist/meta.cjs +72112 -0
  2. package/dist/meta.d.cts +72110 -0
  3. package/dist/meta.d.mts +5060 -5060
  4. package/dist/meta.d.ts +72110 -0
  5. package/dist/meta.mjs +5060 -5060
  6. package/dist/module.cjs +63 -0
  7. package/dist/module.d.cts +15 -0
  8. package/dist/module.d.ts +15 -0
  9. package/dist/module.json +3 -3
  10. package/dist/module.mjs +1 -1
  11. package/dist/runtime/components/Advice.vue +54 -47
  12. package/dist/runtime/components/Alert.vue +96 -71
  13. package/dist/runtime/components/App.vue +34 -37
  14. package/dist/runtime/components/Avatar.vue +81 -69
  15. package/dist/runtime/components/AvatarGroup.vue +76 -53
  16. package/dist/runtime/components/Badge.vue +83 -83
  17. package/dist/runtime/components/Button.vue +157 -220
  18. package/dist/runtime/components/ButtonGroup.vue +51 -35
  19. package/dist/runtime/components/Calendar.vue +152 -186
  20. package/dist/runtime/components/Checkbox.vue +73 -84
  21. package/dist/runtime/components/Chip.vue +74 -59
  22. package/dist/runtime/components/Collapsible.vue +41 -44
  23. package/dist/runtime/components/Container.vue +27 -18
  24. package/dist/runtime/components/Countdown.vue +378 -198
  25. package/dist/runtime/components/DescriptionList.vue +149 -102
  26. package/dist/runtime/components/DropdownMenu.vue +139 -83
  27. package/dist/runtime/components/DropdownMenuContent.vue +84 -137
  28. package/dist/runtime/components/Form.vue +216 -162
  29. package/dist/runtime/components/FormField.vue +80 -76
  30. package/dist/runtime/components/Input.vue +179 -160
  31. package/dist/runtime/components/InputMenu.vue +380 -300
  32. package/dist/runtime/components/InputNumber.vue +175 -178
  33. package/dist/runtime/components/Kbd.vue +45 -33
  34. package/dist/runtime/components/Link.vue +173 -179
  35. package/dist/runtime/components/LinkBase.vue +42 -64
  36. package/dist/runtime/components/Modal.vue +127 -105
  37. package/dist/runtime/components/ModalDialogClose.vue +8 -4
  38. package/dist/runtime/components/Navbar.vue +33 -24
  39. package/dist/runtime/components/NavbarDivider.vue +33 -24
  40. package/dist/runtime/components/NavbarSection.vue +33 -24
  41. package/dist/runtime/components/NavbarSpacer.vue +33 -24
  42. package/dist/runtime/components/NavigationMenu.vue +210 -144
  43. package/dist/runtime/components/OverlayProvider.vue +17 -13
  44. package/dist/runtime/components/Popover.vue +81 -81
  45. package/dist/runtime/components/Progress.vue +136 -109
  46. package/dist/runtime/components/RadioGroup.vue +134 -120
  47. package/dist/runtime/components/Range.vue +85 -94
  48. package/dist/runtime/components/Select.vue +260 -212
  49. package/dist/runtime/components/SelectMenu.vue +365 -272
  50. package/dist/runtime/components/Separator.vue +71 -61
  51. package/dist/runtime/components/Sidebar.vue +33 -24
  52. package/dist/runtime/components/SidebarBody.vue +38 -30
  53. package/dist/runtime/components/SidebarFooter.vue +33 -24
  54. package/dist/runtime/components/SidebarHeader.vue +33 -24
  55. package/dist/runtime/components/SidebarHeading.vue +33 -24
  56. package/dist/runtime/components/SidebarLayout.vue +70 -40
  57. package/dist/runtime/components/SidebarSection.vue +33 -24
  58. package/dist/runtime/components/SidebarSpacer.vue +33 -24
  59. package/dist/runtime/components/Skeleton.vue +22 -17
  60. package/dist/runtime/components/Slideover.vue +131 -108
  61. package/dist/runtime/components/StackedLayout.vue +73 -40
  62. package/dist/runtime/components/Switch.vue +95 -100
  63. package/dist/runtime/components/Tabs.vue +107 -81
  64. package/dist/runtime/components/Textarea.vue +201 -177
  65. package/dist/runtime/components/Toast.vue +105 -94
  66. package/dist/runtime/components/Toaster.vue +116 -94
  67. package/dist/runtime/components/Tooltip.vue +64 -78
  68. package/dist/runtime/components/content/TableWrapper.vue +70 -58
  69. package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
  70. package/dist/runtime/composables/useButtonGroup.d.ts +2 -2
  71. package/dist/runtime/composables/useComponentIcons.d.ts +3 -3
  72. package/dist/runtime/composables/useFormField.d.ts +1 -1
  73. package/dist/runtime/prose/A.vue +23 -18
  74. package/dist/runtime/prose/Blockquote.vue +23 -18
  75. package/dist/runtime/prose/Code.vue +31 -23
  76. package/dist/runtime/prose/Em.vue +23 -18
  77. package/dist/runtime/prose/H1.vue +23 -18
  78. package/dist/runtime/prose/H2.vue +23 -18
  79. package/dist/runtime/prose/H3.vue +23 -18
  80. package/dist/runtime/prose/H4.vue +23 -18
  81. package/dist/runtime/prose/H5.vue +23 -18
  82. package/dist/runtime/prose/H6.vue +23 -18
  83. package/dist/runtime/prose/Hr.vue +19 -18
  84. package/dist/runtime/prose/Img.vue +23 -18
  85. package/dist/runtime/prose/Li.vue +23 -18
  86. package/dist/runtime/prose/Ol.vue +23 -18
  87. package/dist/runtime/prose/P.vue +23 -18
  88. package/dist/runtime/prose/Pre.vue +33 -28
  89. package/dist/runtime/prose/Strong.vue +23 -18
  90. package/dist/runtime/prose/Table.vue +54 -44
  91. package/dist/runtime/prose/Tbody.vue +23 -18
  92. package/dist/runtime/prose/Td.vue +23 -18
  93. package/dist/runtime/prose/Th.vue +23 -18
  94. package/dist/runtime/prose/Thead.vue +23 -18
  95. package/dist/runtime/prose/Tr.vue +23 -18
  96. package/dist/runtime/prose/Ul.vue +23 -18
  97. package/dist/runtime/vue/components/Link.vue +202 -201
  98. package/dist/shared/b24ui-nuxt.DrKwIWoc.cjs +7721 -0
  99. package/dist/types.d.mts +5 -3
  100. package/dist/types.d.ts +7 -0
  101. package/dist/unplugin.cjs +236 -0
  102. package/dist/unplugin.d.cts +33 -0
  103. package/dist/unplugin.d.ts +33 -0
  104. package/dist/vite.cjs +21 -0
  105. package/dist/vite.d.cts +14 -0
  106. package/dist/vite.d.ts +14 -0
  107. package/package.json +25 -13
  108. package/dist/runtime/components/Advice.vue.d.ts +0 -170
  109. package/dist/runtime/components/Alert.vue.d.ts +0 -464
  110. package/dist/runtime/components/App.vue.d.ts +0 -23
  111. package/dist/runtime/components/Avatar.vue.d.ts +0 -281
  112. package/dist/runtime/components/AvatarGroup.vue.d.ts +0 -204
  113. package/dist/runtime/components/Badge.vue.d.ts +0 -517
  114. package/dist/runtime/components/Button.vue.d.ts +0 -640
  115. package/dist/runtime/components/ButtonGroup.vue.d.ts +0 -116
  116. package/dist/runtime/components/Calendar.vue.d.ts +0 -437
  117. package/dist/runtime/components/Checkbox.vue.d.ts +0 -354
  118. package/dist/runtime/components/Chip.vue.d.ts +0 -271
  119. package/dist/runtime/components/Collapsible.vue.d.ts +0 -118
  120. package/dist/runtime/components/Container.vue.d.ts +0 -27
  121. package/dist/runtime/components/Countdown.vue.d.ts +0 -356
  122. package/dist/runtime/components/DescriptionList.vue.d.ts +0 -379
  123. package/dist/runtime/components/DropdownMenu.vue.d.ts +0 -533
  124. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +0 -228
  125. package/dist/runtime/components/Form.vue.d.ts +0 -55
  126. package/dist/runtime/components/FormField.vue.d.ts +0 -282
  127. package/dist/runtime/components/Input.vue.d.ts +0 -755
  128. package/dist/runtime/components/InputMenu.vue.d.ts +0 -1504
  129. package/dist/runtime/components/InputNumber.vue.d.ts +0 -658
  130. package/dist/runtime/components/Kbd.vue.d.ts +0 -109
  131. package/dist/runtime/components/Link.vue.d.ts +0 -129
  132. package/dist/runtime/components/LinkBase.vue.d.ts +0 -48
  133. package/dist/runtime/components/Modal.vue.d.ts +0 -327
  134. package/dist/runtime/components/ModalDialogClose.vue.d.ts +0 -10
  135. package/dist/runtime/components/Navbar.vue.d.ts +0 -101
  136. package/dist/runtime/components/NavbarDivider.vue.d.ts +0 -101
  137. package/dist/runtime/components/NavbarSection.vue.d.ts +0 -101
  138. package/dist/runtime/components/NavbarSpacer.vue.d.ts +0 -101
  139. package/dist/runtime/components/NavigationMenu.vue.d.ts +0 -824
  140. package/dist/runtime/components/OverlayProvider.vue.d.ts +0 -2
  141. package/dist/runtime/components/Popover.vue.d.ts +0 -147
  142. package/dist/runtime/components/Progress.vue.d.ts +0 -592
  143. package/dist/runtime/components/RadioGroup.vue.d.ts +0 -723
  144. package/dist/runtime/components/Range.vue.d.ts +0 -417
  145. package/dist/runtime/components/Select.vue.d.ts +0 -1200
  146. package/dist/runtime/components/SelectMenu.vue.d.ts +0 -1298
  147. package/dist/runtime/components/Separator.vue.d.ts +0 -400
  148. package/dist/runtime/components/Sidebar.vue.d.ts +0 -101
  149. package/dist/runtime/components/SidebarBody.vue.d.ts +0 -90
  150. package/dist/runtime/components/SidebarFooter.vue.d.ts +0 -101
  151. package/dist/runtime/components/SidebarHeader.vue.d.ts +0 -101
  152. package/dist/runtime/components/SidebarHeading.vue.d.ts +0 -101
  153. package/dist/runtime/components/SidebarLayout.vue.d.ts +0 -222
  154. package/dist/runtime/components/SidebarSection.vue.d.ts +0 -101
  155. package/dist/runtime/components/SidebarSpacer.vue.d.ts +0 -101
  156. package/dist/runtime/components/Skeleton.vue.d.ts +0 -26
  157. package/dist/runtime/components/Slideover.vue.d.ts +0 -360
  158. package/dist/runtime/components/StackedLayout.vue.d.ts +0 -192
  159. package/dist/runtime/components/Switch.vue.d.ts +0 -587
  160. package/dist/runtime/components/Tabs.vue.d.ts +0 -453
  161. package/dist/runtime/components/Textarea.vue.d.ts +0 -601
  162. package/dist/runtime/components/Toast.vue.d.ts +0 -438
  163. package/dist/runtime/components/Toaster.vue.d.ts +0 -219
  164. package/dist/runtime/components/Tooltip.vue.d.ts +0 -186
  165. package/dist/runtime/components/content/TableWrapper.vue.d.ts +0 -237
  166. package/dist/runtime/prose/A.vue.d.ts +0 -84
  167. package/dist/runtime/prose/Blockquote.vue.d.ts +0 -84
  168. package/dist/runtime/prose/Code.vue.d.ts +0 -97
  169. package/dist/runtime/prose/Em.vue.d.ts +0 -84
  170. package/dist/runtime/prose/H1.vue.d.ts +0 -97
  171. package/dist/runtime/prose/H2.vue.d.ts +0 -123
  172. package/dist/runtime/prose/H3.vue.d.ts +0 -123
  173. package/dist/runtime/prose/H4.vue.d.ts +0 -123
  174. package/dist/runtime/prose/H5.vue.d.ts +0 -123
  175. package/dist/runtime/prose/H6.vue.d.ts +0 -123
  176. package/dist/runtime/prose/Hr.vue.d.ts +0 -74
  177. package/dist/runtime/prose/Img.vue.d.ts +0 -77
  178. package/dist/runtime/prose/Li.vue.d.ts +0 -84
  179. package/dist/runtime/prose/Ol.vue.d.ts +0 -84
  180. package/dist/runtime/prose/P.vue.d.ts +0 -84
  181. package/dist/runtime/prose/Pre.vue.d.ts +0 -117
  182. package/dist/runtime/prose/Strong.vue.d.ts +0 -84
  183. package/dist/runtime/prose/Table.vue.d.ts +0 -144
  184. package/dist/runtime/prose/Tbody.vue.d.ts +0 -84
  185. package/dist/runtime/prose/Td.vue.d.ts +0 -84
  186. package/dist/runtime/prose/Th.vue.d.ts +0 -84
  187. package/dist/runtime/prose/Thead.vue.d.ts +0 -84
  188. package/dist/runtime/prose/Tr.vue.d.ts +0 -84
  189. package/dist/runtime/prose/Ul.vue.d.ts +0 -84
  190. package/dist/runtime/vue/components/Link.vue.d.ts +0 -129
@@ -1,150 +1,137 @@
1
- <script>
2
- import { tv } from "tailwind-variants";
3
- import _appConfig from "#build/app.config";
4
- import theme from "#build/b24ui/link";
5
- const appConfigLink = _appConfig;
6
- const link = tv({ extend: tv(theme), ...appConfigLink.b24ui?.link || {} });
1
+ <script lang="ts">
2
+ import type { ButtonHTMLAttributes } from 'vue'
3
+ import { tv } from 'tailwind-variants'
4
+ import type { AppConfig } from '@nuxt/schema'
5
+ import _appConfig from '#build/app.config'
6
+ import type { RouterLinkProps, RouteLocationRaw } from 'vue-router'
7
+ import theme from '#build/b24ui/link'
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
+ /** Will only be active if the current route query is an exact match. */
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
+ }
7
92
  </script>
8
93
 
9
- <script setup>
10
- import { computed, getCurrentInstance } from "vue";
11
- import { isEqual, diff } from "ohash/utils";
12
- import { useForwardProps } from "reka-ui";
13
- import { reactiveOmit } from "@vueuse/core";
14
- import { hasProtocol } from "ufo";
15
- import { useRoute } from "#imports";
16
- defineOptions({ inheritAttrs: false });
17
- const props = defineProps({
18
- as: {
19
- type: null,
20
- required: false,
21
- default: "button"
22
- },
23
- type: {
24
- type: null,
25
- required: false,
26
- default: "button"
27
- },
28
- disabled: {
29
- type: Boolean,
30
- required: false
31
- },
32
- active: {
33
- type: Boolean,
34
- required: false,
35
- default: void 0
36
- },
37
- exact: {
38
- type: Boolean,
39
- required: false
40
- },
41
- exactQuery: {
42
- type: [Boolean, String],
43
- required: false
44
- },
45
- exactHash: {
46
- type: Boolean,
47
- required: false
48
- },
49
- inactiveClass: {
50
- type: String,
51
- required: false,
52
- default: ""
53
- },
54
- custom: {
55
- type: Boolean,
56
- required: false
57
- },
58
- isAction: {
59
- type: Boolean,
60
- required: false,
61
- default: false
62
- },
63
- raw: {
64
- type: Boolean,
65
- required: false
66
- },
67
- class: {
68
- type: null,
69
- required: false
70
- },
71
- to: {
72
- type: null,
73
- required: false
74
- },
75
- href: {
76
- type: null,
77
- required: false
78
- },
79
- external: {
80
- type: Boolean,
81
- required: false
82
- },
83
- target: {
84
- type: [String, Object, null],
85
- required: false
86
- },
87
- rel: {
88
- type: [String, Object, null],
89
- required: false
90
- },
91
- noRel: {
92
- type: Boolean,
93
- required: false
94
- },
95
- prefetchedClass: {
96
- type: String,
97
- required: false
98
- },
99
- prefetch: {
100
- type: Boolean,
101
- required: false
102
- },
103
- prefetchOn: {
104
- type: [String, Object],
105
- required: false
106
- },
107
- noPrefetch: {
108
- type: Boolean,
109
- required: false
110
- },
111
- activeClass: {
112
- type: String,
113
- required: false,
114
- default: ""
115
- },
116
- exactActiveClass: {
117
- type: String,
118
- required: false
119
- },
120
- ariaCurrentValue: {
121
- type: String,
122
- required: false,
123
- default: "page"
124
- },
125
- viewTransition: {
126
- type: Boolean,
127
- required: false
128
- },
129
- replace: {
130
- type: Boolean,
131
- required: false
132
- }
133
- });
134
- defineSlots();
94
+ <script setup lang="ts">
95
+ import { computed, getCurrentInstance } from 'vue'
96
+ import { isEqual, diff } from 'ohash/utils'
97
+ import { useForwardProps } from 'reka-ui'
98
+ import { reactiveOmit } from '@vueuse/core'
99
+ import { hasProtocol } from 'ufo'
100
+ import { useRoute } from '#imports'
101
+ import { RouterLink } from 'vue-router'
102
+ import B24LinkBase from './../../components/LinkBase.vue'
103
+
104
+ defineOptions({ inheritAttrs: false })
105
+
106
+ const props = withDefaults(defineProps<LinkProps>(), {
107
+ as: 'button',
108
+ type: 'button',
109
+ ariaCurrentValue: 'page',
110
+ active: undefined,
111
+ isAction: false,
112
+ activeClass: '',
113
+ inactiveClass: ''
114
+ })
115
+ defineSlots<LinkSlots>()
116
+
117
+ // Check if vue-router is available by checking for the injection key
135
118
  const hasRouter = computed(() => {
136
- const app = getCurrentInstance()?.appContext.app;
137
- return !!app?.config?.globalProperties?.$router;
138
- });
119
+ const app = getCurrentInstance()?.appContext.app
120
+ return !!(app?.config?.globalProperties?.$router)
121
+ })
122
+
123
+ // Only try to get route if router exists
139
124
  const route = computed(() => {
140
- if (!hasRouter.value) return null;
125
+ if (!hasRouter.value) return null
141
126
  try {
142
- return useRoute();
127
+ return useRoute()
143
128
  } catch {
144
- return null;
129
+ return null
145
130
  }
146
- });
147
- const routerLinkProps = useForwardProps(reactiveOmit(props, "as", "type", "disabled", "active", "exact", "exactQuery", "exactHash", "activeClass", "inactiveClass", "to", "raw", "class"));
131
+ })
132
+
133
+ const routerLinkProps = useForwardProps(reactiveOmit(props, 'as', 'type', 'disabled', 'active', 'exact', 'exactQuery', 'exactHash', 'activeClass', 'inactiveClass', 'to', 'raw', 'class'))
134
+
148
135
  const b24ui = computed(() => tv({
149
136
  extend: link,
150
137
  variants: {
@@ -153,56 +140,70 @@ const b24ui = computed(() => tv({
153
140
  false: props.inactiveClass
154
141
  }
155
142
  }
156
- }));
157
- function isPartiallyEqual(item1, item2) {
143
+ }))
144
+
145
+ function isPartiallyEqual(item1: any, item2: any) {
158
146
  const diffedKeys = diff(item1, item2).reduce((filtered, q) => {
159
- if (q.type === "added") {
160
- filtered.add(q.key);
147
+ if (q.type === 'added') {
148
+ filtered.add(q.key)
161
149
  }
162
- return filtered;
163
- }, /* @__PURE__ */ new Set());
164
- const item1Filtered = Object.fromEntries(Object.entries(item1).filter(([key]) => !diffedKeys.has(key)));
165
- const item2Filtered = Object.fromEntries(Object.entries(item2).filter(([key]) => !diffedKeys.has(key)));
166
- return isEqual(item1Filtered, item2Filtered);
150
+ return filtered
151
+ }, new Set<string>())
152
+
153
+ const item1Filtered = Object.fromEntries(Object.entries(item1).filter(([key]) => !diffedKeys.has(key)))
154
+ const item2Filtered = Object.fromEntries(Object.entries(item2).filter(([key]) => !diffedKeys.has(key)))
155
+
156
+ return isEqual(item1Filtered, item2Filtered)
167
157
  }
158
+
168
159
  const isExternal = computed(() => {
169
- if (!props.to) return false;
170
- return typeof props.to === "string" && hasProtocol(props.to, { acceptRelative: true });
171
- });
172
- function isLinkActive({ route: linkRoute, isActive, isExactActive }) {
173
- if (props.active !== void 0) {
174
- return props.active;
160
+ if (!props.to) return false
161
+ return typeof props.to === 'string' && hasProtocol(props.to, { acceptRelative: true })
162
+ })
163
+
164
+ function isLinkActive({ route: linkRoute, isActive, isExactActive }: any) {
165
+ if (props.active !== undefined) {
166
+ return props.active
175
167
  }
168
+
176
169
  if (!props.to || !route.value) {
177
- return false;
170
+ return false
178
171
  }
179
- if (props.exactQuery === "partial") {
180
- if (!isPartiallyEqual(linkRoute.query, route.value.query)) return false;
172
+
173
+ if (props.exactQuery === 'partial') {
174
+ if (!isPartiallyEqual(linkRoute.query, route.value.query)) return false
181
175
  } else if (props.exactQuery === true) {
182
- if (!isEqual(linkRoute.query, route.value.query)) return false;
176
+ if (!isEqual(linkRoute.query, route.value.query)) return false
183
177
  }
178
+
184
179
  if (props.exactHash && linkRoute.hash !== route.value.hash) {
185
- return false;
180
+ return false
186
181
  }
182
+
187
183
  if (props.exact && isExactActive) {
188
- return true;
184
+ return true
189
185
  }
186
+
190
187
  if (!props.exact && isActive) {
191
- return true;
188
+ return true
192
189
  }
193
- return false;
190
+
191
+ return false
194
192
  }
195
- function resolveLinkClass({ route: route2, isActive, isExactActive } = {}) {
196
- const active = isLinkActive({ route: route2, isActive, isExactActive });
193
+
194
+ function resolveLinkClass({ route, isActive, isExactActive }: any = {}) {
195
+ const active = isLinkActive({ route, isActive, isExactActive })
196
+
197
197
  if (props.raw) {
198
- return [props.class, active ? props.activeClass : props.inactiveClass];
198
+ return [props.class, active ? props.activeClass : props.inactiveClass]
199
199
  }
200
+
200
201
  return b24ui.value({
201
202
  class: props.class,
202
203
  active,
203
204
  disabled: props.disabled,
204
205
  isAction: Boolean(props.isAction)
205
- });
206
+ })
206
207
  }
207
208
  </script>
208
209
 
@@ -212,30 +213,30 @@ function resolveLinkClass({ route: route2, isActive, isExactActive } = {}) {
212
213
  <template v-if="custom">
213
214
  <slot
214
215
  v-bind="{
215
- ...$attrs,
216
- ...exact && isExactActive ? { 'aria-current': props.ariaCurrentValue } : {},
217
- as,
218
- type,
219
- disabled,
220
- target: props.target ? props.target : void 0,
221
- href: to ? href : void 0,
222
- navigate,
223
- active: isLinkActive({ route: linkRoute, isActive, isExactActive })
224
- }"
216
+ ...$attrs,
217
+ ...(exact && isExactActive ? { 'aria-current': props.ariaCurrentValue } : {}),
218
+ as,
219
+ type,
220
+ disabled,
221
+ target: props.target ? props.target : undefined,
222
+ href: to ? href : undefined,
223
+ navigate,
224
+ active: isLinkActive({ route: linkRoute, isActive, isExactActive })
225
+ }"
225
226
  />
226
227
  </template>
227
228
  <B24LinkBase
228
229
  v-else
229
230
  v-bind="{
230
- ...$attrs,
231
- ...exact && isExactActive ? { 'aria-current': props.ariaCurrentValue } : {},
232
- as,
233
- type,
234
- disabled,
235
- href: to ? href : void 0,
236
- navigate
237
- }"
238
- :class="resolveLinkClass({ route: linkRoute, isActive, isExactActive })"
231
+ ...$attrs,
232
+ ...(exact && isExactActive ? { 'aria-current': props.ariaCurrentValue } : {}),
233
+ as,
234
+ type,
235
+ disabled,
236
+ href: to ? href : undefined,
237
+ navigate
238
+ }"
239
+ :class="resolveLinkClass({ route: linkRoute, isActive: isActive, isExactActive: isExactActive })"
239
240
  >
240
241
  <slot :active="isLinkActive({ route: linkRoute, isActive, isExactActive })" />
241
242
  </B24LinkBase>
@@ -246,26 +247,26 @@ function resolveLinkClass({ route: route2, isActive, isExactActive } = {}) {
246
247
  <template v-if="custom">
247
248
  <slot
248
249
  v-bind="{
249
- ...$attrs,
250
- as,
251
- type,
252
- disabled,
253
- href: to,
254
- target: isExternal ? '_blank' : void 0,
255
- active: props?.active || false
256
- }"
250
+ ...$attrs,
251
+ as,
252
+ type,
253
+ disabled,
254
+ href: to,
255
+ target: isExternal ? '_blank' : undefined,
256
+ active: props?.active || false
257
+ }"
257
258
  />
258
259
  </template>
259
260
  <B24LinkBase
260
261
  v-else
261
262
  v-bind="{
262
- ...$attrs,
263
- as,
264
- type,
265
- disabled,
266
- href: to,
267
- target: isExternal ? '_blank' : void 0
268
- }"
263
+ ...$attrs,
264
+ as,
265
+ type,
266
+ disabled,
267
+ href: (to as string),
268
+ target: isExternal ? '_blank' : undefined
269
+ }"
269
270
  :is-external="isExternal"
270
271
  :class="resolveLinkClass()"
271
272
  >