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