@privyid/persona 0.18.0 → 0.20.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.
- package/dist/components/avatar/Avatar.vue.d.ts +2 -2
- package/dist/components/avatar/utils/create-image.mjs +1 -1
- package/dist/components/breadcrumbs/Breadcrumb.vue +5 -1
- package/dist/components/breadcrumbs/Breadcrumb.vue.d.ts +1 -1
- package/dist/components/breadcrumbs/BreadcrumbItem.vue +19 -10
- package/dist/components/breadcrumbs/BreadcrumbItem.vue.d.ts +3 -0
- package/dist/components/breadcrumbs/BreadcrumbItemDropdown.vue +14 -6
- package/dist/components/breadcrumbs/BreadcrumbItemDropdown.vue.d.ts +3 -0
- package/dist/components/button/Button.vue +4 -11
- package/dist/components/button/Button.vue.d.ts +7 -7
- package/dist/components/caption/Caption.vue +30 -2
- package/dist/components/card/Card.vue +9 -1
- package/dist/components/checkbox/Checkbox.vue.d.ts +6 -6
- package/dist/components/collapse/Collapse.vue +13 -31
- package/dist/components/contextual-bar/ContextualBar.vue.d.ts +2 -2
- package/dist/components/cropper/Cropper.vue.d.ts +2 -2
- package/dist/components/dropdown/Dropdown.vue +5 -0
- package/dist/components/dropdown/Dropdown.vue.d.ts +8 -8
- package/dist/components/dropdown/DropdownItem.vue +1 -1
- package/dist/components/dropdown/index.d.ts +1 -1
- package/dist/components/filterbar/pinned/PinnedSelect.vue.d.ts +2 -2
- package/dist/components/filterbar/pinned/PinnedToggle.vue.d.ts +6 -6
- package/dist/components/heading/Heading.vue +26 -2
- package/dist/components/heading/index.d.ts +1 -1
- package/dist/components/input/Input.vue.d.ts +2 -2
- package/dist/components/input-file/InputFile.vue.d.ts +1 -1
- package/dist/components/input-pin/InputPin.vue.d.ts +1 -1
- package/dist/components/label/Label.vue.d.ts +1 -1
- package/dist/components/list-group/ListGroupItem.vue +1 -1
- package/dist/components/main/Main.vue +47 -44
- package/dist/components/modal/Modal.vue.d.ts +1 -1
- package/dist/components/nav/Nav.vue +33 -13
- package/dist/components/nav/NavCollapse.vue +78 -0
- package/dist/components/nav/NavCollapse.vue.d.ts +26 -0
- package/dist/components/nav/NavItem.vue +12 -19
- package/dist/components/nav/NavItem.vue.d.ts +11 -4
- package/dist/components/nav/NavItemDropdown.vue.d.ts +4 -4
- package/dist/components/nav/NavSubItem.vue +35 -19
- package/dist/components/nav/NavSubItem.vue.d.ts +2 -1
- package/dist/components/navbar/NavbarBrand.vue +1 -1
- package/dist/components/navbar-menu/NavbarNavMenu.vue +1 -1
- package/dist/components/navbar-menu/NavbarNavMenu.vue.d.ts +3 -3
- package/dist/components/pagination/index.mjs +3 -1
- package/dist/components/pdf-object/PdfObject.vue +1 -1
- package/dist/components/pdf-text/PdfText.vue.d.ts +1 -1
- package/dist/components/pdf-viewer/utils/use-sticky.mjs +7 -3
- package/dist/components/progressbar/Progressbar.vue +110 -0
- package/dist/components/progressbar/Progressbar.vue.d.ts +63 -0
- package/dist/components/progressbar/index.d.ts +7 -0
- package/dist/components/progressbar/index.mjs +11 -0
- package/dist/components/radio/Radio.vue.d.ts +4 -4
- package/dist/components/ringbar/Ringbar.vue +148 -0
- package/dist/components/ringbar/Ringbar.vue.d.ts +66 -0
- package/dist/components/select/Select.vue +17 -3
- package/dist/components/select/Select.vue.d.ts +13 -3
- package/dist/components/sidebar/SidebarBrand.vue +1 -1
- package/dist/components/sidebar/SidebarNav.vue +37 -29
- package/dist/components/sidebar/SidebarNav.vue.d.ts +2 -1
- package/dist/components/sidebar-menu/SidebarMenu.vue +14 -23
- package/dist/components/sidebar-menu/SidebarMenu.vue.d.ts +2 -5
- package/dist/components/sidebar-menu/index.d.ts +20 -2
- package/dist/components/signature-draw/SignatureDraw.vue +44 -15
- package/dist/components/signature-draw/SignatureDraw.vue.d.ts +3 -0
- package/dist/components/signature-draw/SignatureDrawMobile.vue +6 -1
- package/dist/components/signature-text/SignatureText.vue.d.ts +1 -1
- package/dist/components/spinner/Spinner.vue +0 -1
- package/dist/components/spinner/SpinnerRing.vue +0 -1
- package/dist/components/spread/Spread.vue +1 -1
- package/dist/components/spread/Spread.vue.d.ts +2 -2
- package/dist/components/subheading/Subheading.vue +36 -2
- package/dist/components/table/Table.vue +53 -9
- package/dist/components/table/Table.vue.d.ts +21 -3
- package/dist/components/table/index.d.ts +23 -6
- package/dist/components/table/index.mjs +18 -1
- package/dist/components/table-flex/TableFlex.vue +321 -0
- package/dist/components/table-static/TableStatic.vue +316 -0
- package/dist/components/text/Text.vue +46 -13
- package/dist/components/text/Text.vue.d.ts +2 -2
- package/dist/components/toggle/Toggle.vue.d.ts +7 -7
- package/dist/components/tour/TourDialog.vue.d.ts +1 -1
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.mjs +6 -0
- package/dist/module.json +1 -1
- package/dist/module.mjs +0 -1
- package/package.json +21 -19
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
<component
|
|
3
3
|
:is="elementNames"
|
|
4
4
|
data-testid="heading"
|
|
5
|
+
class="heading"
|
|
5
6
|
:class="classNames">
|
|
6
7
|
<slot />
|
|
7
8
|
</component>
|
|
@@ -73,16 +74,31 @@ export default defineComponent({
|
|
|
73
74
|
* Weight variant
|
|
74
75
|
* of heading
|
|
75
76
|
*/
|
|
76
|
-
|
|
77
|
-
:where(&--normal, &--medium, &--bold) {
|
|
77
|
+
&:not([class^='text-'], [class*='text-']) {
|
|
78
78
|
@apply text-default;
|
|
79
79
|
@apply dark:text-dark-default;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
+
&--thin {
|
|
83
|
+
@apply font-thin;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
&--extralight {
|
|
87
|
+
@apply font-extralight;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
&--light {
|
|
91
|
+
@apply font-light;
|
|
92
|
+
}
|
|
93
|
+
|
|
82
94
|
&--normal {
|
|
83
95
|
@apply font-normal;
|
|
84
96
|
}
|
|
85
97
|
|
|
98
|
+
&--semibold {
|
|
99
|
+
@apply font-semibold;
|
|
100
|
+
}
|
|
101
|
+
|
|
86
102
|
&--medium {
|
|
87
103
|
@apply font-medium;
|
|
88
104
|
}
|
|
@@ -91,6 +107,14 @@ export default defineComponent({
|
|
|
91
107
|
@apply font-bold;
|
|
92
108
|
}
|
|
93
109
|
|
|
110
|
+
&--extrabold {
|
|
111
|
+
@apply font-extrabold;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
&--black {
|
|
115
|
+
@apply font-black;
|
|
116
|
+
}
|
|
117
|
+
|
|
94
118
|
/**
|
|
95
119
|
* Text transform
|
|
96
120
|
* of heading
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export type ElementVariant = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
2
|
-
export type WeightVariant = 'normal' | 'medium' | 'bold';
|
|
2
|
+
export type WeightVariant = 'thin' | 'extralight' | 'light' | 'normal' | 'medium' | 'semibold' | 'bold' | 'extrabold' | 'black';
|
|
3
3
|
export type TransformVariant = 'normalcase' | 'lowercase' | 'capitalize' | 'uppercase';
|
|
@@ -27,7 +27,7 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
27
27
|
default: boolean;
|
|
28
28
|
};
|
|
29
29
|
containerClass: {
|
|
30
|
-
type: (StringConstructor |
|
|
30
|
+
type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
|
|
31
31
|
default: undefined;
|
|
32
32
|
};
|
|
33
33
|
accept: {
|
|
@@ -65,7 +65,7 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
65
65
|
default: boolean;
|
|
66
66
|
};
|
|
67
67
|
containerClass: {
|
|
68
|
-
type: (StringConstructor |
|
|
68
|
+
type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
|
|
69
69
|
default: undefined;
|
|
70
70
|
};
|
|
71
71
|
accept: {
|
|
@@ -124,8 +124,8 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
124
124
|
disabled: boolean;
|
|
125
125
|
readonly: boolean;
|
|
126
126
|
modelModifiers: ModelModifier;
|
|
127
|
-
placeholder: string;
|
|
128
127
|
multiple: boolean | MultipleType;
|
|
128
|
+
placeholder: string;
|
|
129
129
|
maxlength: string | number;
|
|
130
130
|
accept: string;
|
|
131
131
|
clearOnCancel: boolean;
|
|
@@ -72,8 +72,8 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
72
72
|
onChange?: ((...args: any[]) => any) | undefined;
|
|
73
73
|
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
74
74
|
}, {
|
|
75
|
-
error: boolean;
|
|
76
75
|
length: string | number;
|
|
76
|
+
error: boolean;
|
|
77
77
|
size: SizeVariant;
|
|
78
78
|
modelValue: string;
|
|
79
79
|
disabled: boolean;
|
|
@@ -43,8 +43,8 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
43
43
|
onDismissed?: ((...args: any[]) => any) | undefined;
|
|
44
44
|
}, {
|
|
45
45
|
variant: StyleVariant;
|
|
46
|
-
size: SizeVariant;
|
|
47
46
|
dismissable: boolean;
|
|
47
|
+
size: SizeVariant;
|
|
48
48
|
color: ColorVariant;
|
|
49
49
|
}, {}>;
|
|
50
50
|
export default _default;
|
|
@@ -76,7 +76,7 @@ export default defineComponent({
|
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
a& {
|
|
79
|
-
@apply cursor-pointer text-default hover:bg-default-alpha;
|
|
79
|
+
@apply no-underline hover:no-underline cursor-pointer text-default hover:bg-default-alpha;
|
|
80
80
|
@apply dark:text-dark-default dark:hover:bg-dark-default-alpha;
|
|
81
81
|
}
|
|
82
82
|
|
|
@@ -5,56 +5,59 @@
|
|
|
5
5
|
</template>
|
|
6
6
|
|
|
7
7
|
<style lang="postcss">
|
|
8
|
-
|
|
8
|
+
.main {
|
|
9
9
|
--p-spacer: 1rem;
|
|
10
|
-
}
|
|
11
10
|
|
|
12
|
-
/**
|
|
13
|
-
* Heading
|
|
14
|
-
*/
|
|
15
|
-
h1, h2, h3, h4, h5, h6 {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
11
|
+
/**
|
|
12
|
+
* Heading
|
|
13
|
+
*/
|
|
14
|
+
h1, h2, h3, h4, h5, h6 {
|
|
15
|
+
--p-heading-margin-bottom: calc(var(--p-spacer) * .5);
|
|
16
|
+
@apply mb-[var(--p-heading-margin-bottom)];
|
|
17
|
+
}
|
|
19
18
|
|
|
20
|
-
/**
|
|
21
|
-
* Permalink
|
|
22
|
-
*/
|
|
23
|
-
a {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Permalink
|
|
21
|
+
*/
|
|
22
|
+
a {
|
|
23
|
+
&:not(.navbar__brand, .sidebar__brand, .dropdown__item, .list-group__item, .btn, .nav__link, .breadcrumbs__item__link) {
|
|
24
|
+
--p-color-link-hover: darken(theme(textColor.link), 5%);
|
|
25
|
+
--p-color-dark-link-hover: darken(theme(textColor.link), 5%);
|
|
26
|
+
@apply underline text-link hover:text-[color:var(--p-color-link-hover)];
|
|
27
|
+
@apply dark:text-dark-link hover:dark:text-[color:var(--p-color-dark-link-hover)];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
29
30
|
|
|
30
|
-
/**
|
|
31
|
-
* Paragraph
|
|
32
|
-
*/
|
|
33
|
-
p {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
31
|
+
/**
|
|
32
|
+
* Paragraph
|
|
33
|
+
*/
|
|
34
|
+
p {
|
|
35
|
+
--p-paragraph-margin-bottom: var(--p-spacer);
|
|
36
|
+
@apply mt-0 mb-[var(--p-paragraph-margin-bottom)] text-base text-default;
|
|
37
|
+
@apply dark:text-dark-default;
|
|
38
|
+
}
|
|
38
39
|
|
|
39
|
-
/**
|
|
40
|
-
* Small
|
|
41
|
-
*/
|
|
42
|
-
small {
|
|
43
|
-
|
|
44
|
-
}
|
|
40
|
+
/**
|
|
41
|
+
* Small
|
|
42
|
+
*/
|
|
43
|
+
small {
|
|
44
|
+
@apply text-tn;
|
|
45
|
+
}
|
|
45
46
|
|
|
46
|
-
/**
|
|
47
|
-
* Strong
|
|
48
|
-
*/
|
|
49
|
-
strong {
|
|
50
|
-
|
|
51
|
-
}
|
|
47
|
+
/**
|
|
48
|
+
* Strong
|
|
49
|
+
*/
|
|
50
|
+
strong {
|
|
51
|
+
@apply font-bold;
|
|
52
|
+
}
|
|
52
53
|
|
|
53
|
-
/**
|
|
54
|
-
* Caption
|
|
55
|
-
*/
|
|
56
|
-
caption {
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
/**
|
|
55
|
+
* Caption
|
|
56
|
+
*/
|
|
57
|
+
caption {
|
|
58
|
+
@apply text-xs text-muted;
|
|
59
|
+
@apply dark:text-dark-muted;
|
|
60
|
+
}
|
|
59
61
|
}
|
|
62
|
+
|
|
60
63
|
</style>
|
|
@@ -91,9 +91,9 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
91
91
|
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
92
92
|
onClose?: ((...args: any[]) => any) | undefined;
|
|
93
93
|
}, {
|
|
94
|
-
size: SizeVariant;
|
|
95
94
|
dismissable: boolean;
|
|
96
95
|
banner: boolean;
|
|
96
|
+
size: SizeVariant;
|
|
97
97
|
text: string;
|
|
98
98
|
modelValue: boolean;
|
|
99
99
|
title: string;
|
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
data-testid="nav"
|
|
4
4
|
:class="classNames">
|
|
5
5
|
<li
|
|
6
|
-
v-if="title"
|
|
7
6
|
class="nav__title">
|
|
8
|
-
<span
|
|
7
|
+
<span
|
|
8
|
+
class="nav__title__item"
|
|
9
|
+
:class="[ (!title && titleActionLabel) ? 'justify-end' : 'justify-between' ]">
|
|
9
10
|
<Caption
|
|
11
|
+
v-if="title"
|
|
10
12
|
weight="bold"
|
|
11
13
|
transform="capitalize">
|
|
12
14
|
{{ title }}
|
|
@@ -84,7 +86,7 @@ export default defineComponent({
|
|
|
84
86
|
result.push(`nav--align-${props.align}`);
|
|
85
87
|
if (props.vertical)
|
|
86
88
|
result.push("nav--vertical");
|
|
87
|
-
if (props.title)
|
|
89
|
+
if (props.title || props.titleActionLabel)
|
|
88
90
|
result.push("nav--has-title");
|
|
89
91
|
if (props.condensed)
|
|
90
92
|
result.push("nav--condensed");
|
|
@@ -119,7 +121,9 @@ export default defineComponent({
|
|
|
119
121
|
@apply dark:text-dark-subtle;
|
|
120
122
|
|
|
121
123
|
&:hover,
|
|
122
|
-
&--active
|
|
124
|
+
&--active,
|
|
125
|
+
&.router-link-active:not(.nav__link--exact),
|
|
126
|
+
&.router-link-exact-active.nav__link--exact {
|
|
123
127
|
@apply text-default;
|
|
124
128
|
@apply dark:text-dark-default;
|
|
125
129
|
}
|
|
@@ -148,7 +152,9 @@ export default defineComponent({
|
|
|
148
152
|
* with border-bottom
|
|
149
153
|
*/
|
|
150
154
|
.nav__link {
|
|
151
|
-
&--active
|
|
155
|
+
&--active,
|
|
156
|
+
&.router-link-active:not(.nav__link--exact),
|
|
157
|
+
&.router-link-exact-active.nav__link--exact {
|
|
152
158
|
&:not(.nav__link--disabled) {
|
|
153
159
|
@apply border-b-inverse;
|
|
154
160
|
@apply dark:border-b-dark-inverse;
|
|
@@ -164,7 +170,9 @@ export default defineComponent({
|
|
|
164
170
|
.nav__link {
|
|
165
171
|
@apply border-y-0;
|
|
166
172
|
|
|
167
|
-
&--active
|
|
173
|
+
&--active,
|
|
174
|
+
&.router-link-active:not(.nav__link--exact),
|
|
175
|
+
&.router-link-exact-active.nav__link--exact {
|
|
168
176
|
&:not(.nav__link--disabled) {
|
|
169
177
|
@apply border-r border-r-inverse rounded-tr-none;
|
|
170
178
|
@apply dark:border-r-dark-inverse;
|
|
@@ -176,7 +184,9 @@ export default defineComponent({
|
|
|
176
184
|
.nav__link {
|
|
177
185
|
@apply border-r-0;
|
|
178
186
|
|
|
179
|
-
&--active
|
|
187
|
+
&--active,
|
|
188
|
+
&.router-link-active:not(.nav__link--exact),
|
|
189
|
+
&.router-link-exact-active.nav__link--exact {
|
|
180
190
|
&:not(.nav__link--disabled) {
|
|
181
191
|
@apply border-l border-l-inverse rounded-tl-none;
|
|
182
192
|
@apply dark:border-l-dark-inverse;
|
|
@@ -198,7 +208,9 @@ export default defineComponent({
|
|
|
198
208
|
* except in bottom-side
|
|
199
209
|
*/
|
|
200
210
|
.nav__link {
|
|
201
|
-
&--active
|
|
211
|
+
&--active,
|
|
212
|
+
&.router-link-active:not(.nav__link--exact),
|
|
213
|
+
&.router-link-exact-active.nav__link--exact {
|
|
202
214
|
&:not(.nav__link--disabled) {
|
|
203
215
|
@apply border-t-default border-x-default bg-base;
|
|
204
216
|
@apply dark:border-t-dark-default dark:border-x-dark-default dark:bg-dark-base;
|
|
@@ -212,7 +224,9 @@ export default defineComponent({
|
|
|
212
224
|
*/
|
|
213
225
|
&.nav--vertical {
|
|
214
226
|
.nav__link {
|
|
215
|
-
&--active
|
|
227
|
+
&--active,
|
|
228
|
+
&.router-link-active:not(.nav__link--exact),
|
|
229
|
+
&.router-link-exact-active.nav__link--exact {
|
|
216
230
|
&:not(.nav__link--disabled) {
|
|
217
231
|
@apply border-l-default border-y-default border-r-transparent bg-base rounded-l rounded-r-none;
|
|
218
232
|
@apply dark:border-l-dark-default dark:border-y-dark-default dark:border-r-transparent dark:bg-dark-base;
|
|
@@ -222,7 +236,9 @@ export default defineComponent({
|
|
|
222
236
|
|
|
223
237
|
&.nav--align-right {
|
|
224
238
|
.nav__link {
|
|
225
|
-
&--active
|
|
239
|
+
&--active,
|
|
240
|
+
&.router-link-active:not(.nav__link--exact),
|
|
241
|
+
&.router-link-exact-active.nav__link--exact {
|
|
226
242
|
&:not(.nav__link--disabled) {
|
|
227
243
|
@apply border-r-default border-y-default border-l-transparent rounded-r rounded-l-none;
|
|
228
244
|
@apply dark:border-r-dark-default dark:border-y-dark-default dark:border-l-transparent;
|
|
@@ -245,7 +261,9 @@ export default defineComponent({
|
|
|
245
261
|
* with background
|
|
246
262
|
*/
|
|
247
263
|
.nav__link {
|
|
248
|
-
&--active
|
|
264
|
+
&--active,
|
|
265
|
+
&.router-link-active:not(.nav__link--exact),
|
|
266
|
+
&.router-link-exact-active.nav__link--exact {
|
|
249
267
|
&:not(.nav__link--disabled) {
|
|
250
268
|
@apply bg-base rounded-b;
|
|
251
269
|
@apply dark:bg-dark-base;
|
|
@@ -260,7 +278,9 @@ export default defineComponent({
|
|
|
260
278
|
*/
|
|
261
279
|
&.nav--condensed {
|
|
262
280
|
.nav__link {
|
|
263
|
-
&--active
|
|
281
|
+
&--active,
|
|
282
|
+
&.router-link-active:not(.nav__link--exact),
|
|
283
|
+
&.router-link-exact-active.nav__link--exact {
|
|
264
284
|
@apply bg-transparent;
|
|
265
285
|
@apply dark:bg-transparent;
|
|
266
286
|
}
|
|
@@ -367,7 +387,7 @@ export default defineComponent({
|
|
|
367
387
|
@apply absolute left-5 top-0 text-base w-[calc(100%-1.75rem)]; /* 1.25rem + 0.75rem (padding) */
|
|
368
388
|
|
|
369
389
|
&__item {
|
|
370
|
-
@apply flex items-center w-full
|
|
390
|
+
@apply flex items-center w-full space-x-2;
|
|
371
391
|
}
|
|
372
392
|
|
|
373
393
|
.caption {
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<NavItem
|
|
3
|
+
ref="root"
|
|
4
|
+
class="nav__collapse"
|
|
5
|
+
:class="{ 'nav__collapse--expand': isExpand }"
|
|
6
|
+
data-testid="nav-collapse"
|
|
7
|
+
v-bind="$attrs"
|
|
8
|
+
@click.prevent="toggleExpand">
|
|
9
|
+
<template #icon>
|
|
10
|
+
<IconMore class="nav__collapse__icon" />
|
|
11
|
+
</template>
|
|
12
|
+
{{ isExpand ? showLessText : showMoreText }}
|
|
13
|
+
</NavItem>
|
|
14
|
+
<Collapse :model-value="isExpand">
|
|
15
|
+
<slot />
|
|
16
|
+
</Collapse>
|
|
17
|
+
</template>
|
|
18
|
+
|
|
19
|
+
<script>
|
|
20
|
+
import Collapse from "../collapse/Collapse.vue";
|
|
21
|
+
import NavItem from "../nav/NavItem.vue";
|
|
22
|
+
import IconMore from "@privyid/persona-icon/vue/chevron-down/20.vue";
|
|
23
|
+
import {
|
|
24
|
+
defineComponent,
|
|
25
|
+
onMounted,
|
|
26
|
+
ref
|
|
27
|
+
} from "vue-demi";
|
|
28
|
+
import { templateRef } from "@vueuse/core";
|
|
29
|
+
export default defineComponent({
|
|
30
|
+
components: {
|
|
31
|
+
Collapse,
|
|
32
|
+
NavItem,
|
|
33
|
+
IconMore
|
|
34
|
+
},
|
|
35
|
+
props: {
|
|
36
|
+
showMoreText: {
|
|
37
|
+
type: String,
|
|
38
|
+
default: "More"
|
|
39
|
+
},
|
|
40
|
+
showLessText: {
|
|
41
|
+
type: String,
|
|
42
|
+
default: "Less"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
setup() {
|
|
46
|
+
const nav = templateRef("root");
|
|
47
|
+
const isExpand = ref(false);
|
|
48
|
+
function toggleExpand() {
|
|
49
|
+
isExpand.value = !isExpand.value;
|
|
50
|
+
}
|
|
51
|
+
onMounted(() => {
|
|
52
|
+
if (nav.value.$el) {
|
|
53
|
+
isExpand.value = nav.value.$el.querySelectorAll(".router-link-active:not(.nav__link--exact),.router-link-exact-active.nav__link--exact").length > 0;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
return {
|
|
57
|
+
isExpand,
|
|
58
|
+
toggleExpand
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
</script>
|
|
63
|
+
|
|
64
|
+
<style lang="postcss">
|
|
65
|
+
.nav__collapse {
|
|
66
|
+
@apply select-none;
|
|
67
|
+
|
|
68
|
+
&__icon {
|
|
69
|
+
@apply transition-transform duration-150 ease-in-out;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
&--expand {
|
|
73
|
+
.nav__collapse__icon {
|
|
74
|
+
@apply rotate-180;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
</style>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
declare const _default: import("vue-demi").DefineComponent<{
|
|
2
|
+
showMoreText: {
|
|
3
|
+
type: StringConstructor;
|
|
4
|
+
default: string;
|
|
5
|
+
};
|
|
6
|
+
showLessText: {
|
|
7
|
+
type: StringConstructor;
|
|
8
|
+
default: string;
|
|
9
|
+
};
|
|
10
|
+
}, {
|
|
11
|
+
isExpand: import("vue-demi").Ref<boolean>;
|
|
12
|
+
toggleExpand: () => void;
|
|
13
|
+
}, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, {}, string, import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
|
|
14
|
+
showMoreText: {
|
|
15
|
+
type: StringConstructor;
|
|
16
|
+
default: string;
|
|
17
|
+
};
|
|
18
|
+
showLessText: {
|
|
19
|
+
type: StringConstructor;
|
|
20
|
+
default: string;
|
|
21
|
+
};
|
|
22
|
+
}>>, {
|
|
23
|
+
showMoreText: string;
|
|
24
|
+
showLessText: string;
|
|
25
|
+
}, {}>;
|
|
26
|
+
export default _default;
|
|
@@ -3,11 +3,9 @@
|
|
|
3
3
|
data-testid="nav-item"
|
|
4
4
|
class="nav__item"
|
|
5
5
|
:class="navItemClass">
|
|
6
|
-
<
|
|
7
|
-
:is="tagName"
|
|
6
|
+
<nuxt-link
|
|
8
7
|
data-testid="nav-link"
|
|
9
|
-
:href="
|
|
10
|
-
:to="isExternalLink ? undefined : href"
|
|
8
|
+
:href="link"
|
|
11
9
|
:target="target"
|
|
12
10
|
:class="[classNames, linkClass]">
|
|
13
11
|
<span
|
|
@@ -22,15 +20,14 @@
|
|
|
22
20
|
class="nav__link__label">
|
|
23
21
|
<slot />
|
|
24
22
|
</span>
|
|
25
|
-
</
|
|
23
|
+
</nuxt-link>
|
|
26
24
|
</li>
|
|
27
25
|
</template>
|
|
28
26
|
|
|
29
27
|
<script>
|
|
30
28
|
import {
|
|
31
29
|
computed,
|
|
32
|
-
defineComponent
|
|
33
|
-
resolveComponent
|
|
30
|
+
defineComponent
|
|
34
31
|
} from "vue-demi";
|
|
35
32
|
export default defineComponent({
|
|
36
33
|
props: {
|
|
@@ -57,6 +54,10 @@ export default defineComponent({
|
|
|
57
54
|
Object
|
|
58
55
|
],
|
|
59
56
|
default: void 0
|
|
57
|
+
},
|
|
58
|
+
exact: {
|
|
59
|
+
type: Boolean,
|
|
60
|
+
default: false
|
|
60
61
|
}
|
|
61
62
|
},
|
|
62
63
|
setup(props, { slots }) {
|
|
@@ -68,6 +69,8 @@ export default defineComponent({
|
|
|
68
69
|
result.push("nav__link--disabled");
|
|
69
70
|
if (slots.icon)
|
|
70
71
|
result.push("nav__link--icon");
|
|
72
|
+
if (props.exact)
|
|
73
|
+
result.push("nav__link--exact");
|
|
71
74
|
return result;
|
|
72
75
|
});
|
|
73
76
|
const navItemClass = computed(() => {
|
|
@@ -84,20 +87,10 @@ export default defineComponent({
|
|
|
84
87
|
permalink = props.href;
|
|
85
88
|
return permalink;
|
|
86
89
|
});
|
|
87
|
-
const isExternalLink = computed(() => {
|
|
88
|
-
return !props.href || typeof props.href === "string" && (props.href.startsWith("http") || props.href.startsWith("#"));
|
|
89
|
-
});
|
|
90
|
-
const tagName = computed(() => {
|
|
91
|
-
if (isExternalLink.value)
|
|
92
|
-
return "a";
|
|
93
|
-
return resolveComponent("router-link");
|
|
94
|
-
});
|
|
95
90
|
return {
|
|
96
91
|
classNames,
|
|
97
92
|
navItemClass,
|
|
98
|
-
link
|
|
99
|
-
isExternalLink,
|
|
100
|
-
tagName
|
|
93
|
+
link
|
|
101
94
|
};
|
|
102
95
|
}
|
|
103
96
|
});
|
|
@@ -125,7 +118,7 @@ export default defineComponent({
|
|
|
125
118
|
}
|
|
126
119
|
|
|
127
120
|
&__link {
|
|
128
|
-
@apply block relative py-[10px] px-3 -mb-[1px] border border-transparent rounded-t text-base font-normal cursor-pointer hover:no-underline text-subtle hover:text-default;
|
|
121
|
+
@apply block relative py-[10px] px-3 -mb-[1px] border border-transparent rounded-t text-base font-normal cursor-pointer no-underline hover:no-underline text-subtle hover:text-default;
|
|
129
122
|
@apply dark:text-dark-subtle hover:dark:text-dark-default;
|
|
130
123
|
|
|
131
124
|
&&--active {
|
|
@@ -18,15 +18,17 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
18
18
|
default: string;
|
|
19
19
|
};
|
|
20
20
|
linkClass: {
|
|
21
|
-
type: (StringConstructor |
|
|
21
|
+
type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
|
|
22
22
|
default: undefined;
|
|
23
23
|
};
|
|
24
|
+
exact: {
|
|
25
|
+
type: BooleanConstructor;
|
|
26
|
+
default: boolean;
|
|
27
|
+
};
|
|
24
28
|
}, {
|
|
25
29
|
classNames: import("vue-demi").ComputedRef<string[]>;
|
|
26
30
|
navItemClass: import("vue-demi").ComputedRef<string[]>;
|
|
27
31
|
link: import("vue-demi").ComputedRef<string | undefined>;
|
|
28
|
-
isExternalLink: import("vue-demi").ComputedRef<boolean>;
|
|
29
|
-
tagName: import("vue-demi").ComputedRef<string | import("vue-demi").ConcreteComponent<{}, any, any, import("vue-demi").ComputedOptions, import("vue-demi").MethodOptions>>;
|
|
30
32
|
}, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, {}, string, import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
|
|
31
33
|
active: {
|
|
32
34
|
type: BooleanConstructor;
|
|
@@ -45,14 +47,19 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
45
47
|
default: string;
|
|
46
48
|
};
|
|
47
49
|
linkClass: {
|
|
48
|
-
type: (StringConstructor |
|
|
50
|
+
type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
|
|
49
51
|
default: undefined;
|
|
50
52
|
};
|
|
53
|
+
exact: {
|
|
54
|
+
type: BooleanConstructor;
|
|
55
|
+
default: boolean;
|
|
56
|
+
};
|
|
51
57
|
}>>, {
|
|
52
58
|
href: RouteLocationRaw;
|
|
53
59
|
active: boolean;
|
|
54
60
|
disabled: boolean;
|
|
55
61
|
target: string | undefined;
|
|
62
|
+
exact: boolean;
|
|
56
63
|
linkClass: string | Record<string, any> | unknown[];
|
|
57
64
|
}, {}>;
|
|
58
65
|
export default _default;
|
|
@@ -32,7 +32,7 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
32
32
|
default: string;
|
|
33
33
|
};
|
|
34
34
|
menuClass: {
|
|
35
|
-
type: (StringConstructor |
|
|
35
|
+
type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
|
|
36
36
|
default: undefined;
|
|
37
37
|
};
|
|
38
38
|
menuSize: {
|
|
@@ -75,7 +75,7 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
75
75
|
default: string;
|
|
76
76
|
};
|
|
77
77
|
menuClass: {
|
|
78
|
-
type: (StringConstructor |
|
|
78
|
+
type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
|
|
79
79
|
default: undefined;
|
|
80
80
|
};
|
|
81
81
|
menuSize: {
|
|
@@ -90,13 +90,13 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
90
90
|
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
91
91
|
}, {
|
|
92
92
|
variant: StyleVariant;
|
|
93
|
-
size: SizeVariant;
|
|
94
93
|
icon: boolean;
|
|
94
|
+
size: SizeVariant;
|
|
95
|
+
divider: boolean;
|
|
95
96
|
text: string;
|
|
96
97
|
modelValue: boolean;
|
|
97
98
|
placement: Placement;
|
|
98
99
|
noCaret: boolean;
|
|
99
|
-
divider: boolean;
|
|
100
100
|
menuClass: string | Record<string, any> | unknown[];
|
|
101
101
|
menuSize: MenuSizeVariant;
|
|
102
102
|
}, {}>;
|