@privyid/persona 0.14.0 → 0.16.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 +3 -3
- package/dist/components/button/Button.vue.d.ts +2 -2
- package/dist/components/calendar/Calendar.vue +162 -38
- package/dist/components/calendar/Calendar.vue.d.ts +63 -10
- package/dist/components/calendar/adapter/adapter.d.ts +8 -2
- package/dist/components/calendar/adapter/adapter.mjs +38 -1
- package/dist/components/calendar/adapter/date.mjs +10 -8
- package/dist/components/calendar/adapter/month.mjs +11 -8
- package/dist/components/calendar/adapter/year.mjs +7 -7
- package/dist/components/checkbox/Checkbox.vue.d.ts +6 -6
- package/dist/components/contextual-bar/ContextualBar.vue.d.ts +2 -2
- package/dist/components/cropper/Cropper.vue.d.ts +2 -2
- package/dist/components/datepicker/Datepicker.vue +37 -3
- package/dist/components/datepicker/Datepicker.vue.d.ts +50 -3
- package/dist/components/dropdown/Dropdown.vue +2 -1
- package/dist/components/dropdown/Dropdown.vue.d.ts +4 -4
- 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/input/Input.vue.d.ts +1 -1
- package/dist/components/input-file/InputFile.vue.d.ts +2 -2
- package/dist/components/input-group/InputGroup.vue.d.ts +1 -1
- package/dist/components/input-pin/InputPin.vue.d.ts +1 -1
- package/dist/components/input-range/InputRange.vue +4 -4
- package/dist/components/input-range/InputRange.vue.d.ts +4 -4
- package/dist/components/label/Label.vue.d.ts +2 -2
- package/dist/components/modal/Modal.vue.d.ts +2 -2
- package/dist/components/nav/Nav.vue +29 -7
- package/dist/components/nav/Nav.vue.d.ts +18 -0
- package/dist/components/nav/NavItem.vue +9 -1
- package/dist/components/nav/NavItem.vue.d.ts +9 -0
- package/dist/components/nav/NavItemDropdown.vue +6 -1
- package/dist/components/nav/NavItemDropdown.vue.d.ts +14 -4
- package/dist/components/nav/NavSubItem.vue +1 -1
- package/dist/components/navbar/Navbar.vue +22 -5
- package/dist/components/navbar/Navbar.vue.d.ts +9 -0
- package/dist/components/pdf-object/PdfObject.vue +18 -8
- package/dist/components/pdf-object/PdfObject.vue.d.ts +4 -4
- package/dist/components/pdf-object/utils/position.mjs +9 -3
- package/dist/components/pdf-text/PdfText.vue.d.ts +1 -1
- package/dist/components/pdf-viewer/PdfViewer.vue +1 -1
- package/dist/components/pdf-viewer/PdfViewer.vue.d.ts +2 -2
- package/dist/components/radio/Radio.vue.d.ts +4 -4
- package/dist/components/select/Select.vue.d.ts +3 -3
- package/dist/components/sidebar/Sidebar.vue +40 -7
- package/dist/components/sidebar/Sidebar.vue.d.ts +11 -0
- package/dist/components/sidebar/SidebarBrand.vue +12 -2
- package/dist/components/sidebar/SidebarNav.vue +95 -4
- package/dist/components/sidebar/SidebarNav.vue.d.ts +29 -0
- package/dist/components/sidebar-menu/SidebarMenu.vue +9 -1
- package/dist/components/sidebar-menu/SidebarMenu.vue.d.ts +9 -0
- package/dist/components/sidebar-menu/index.d.ts +3 -0
- package/dist/components/text/Text.vue +2 -1
- package/dist/components/toast/Toast.vue +0 -2
- package/dist/components/toast/ToastContainer.vue +5 -0
- package/dist/components/toast/index.d.ts +1 -0
- package/dist/components/toggle/Toggle.vue.d.ts +6 -6
- package/dist/components/tour/TourDialog.vue.d.ts +2 -2
- package/dist/module.json +1 -1
- package/package.json +10 -7
|
@@ -16,6 +16,10 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
16
16
|
type: PropType<string | undefined>;
|
|
17
17
|
default: string;
|
|
18
18
|
};
|
|
19
|
+
linkClass: {
|
|
20
|
+
type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
|
|
21
|
+
default: undefined;
|
|
22
|
+
};
|
|
19
23
|
}, {
|
|
20
24
|
classNames: import("vue-demi").ComputedRef<string[]>;
|
|
21
25
|
navItemClass: import("vue-demi").ComputedRef<string[]>;
|
|
@@ -37,10 +41,15 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
37
41
|
type: PropType<string | undefined>;
|
|
38
42
|
default: string;
|
|
39
43
|
};
|
|
44
|
+
linkClass: {
|
|
45
|
+
type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
|
|
46
|
+
default: undefined;
|
|
47
|
+
};
|
|
40
48
|
}>>, {
|
|
41
49
|
href: string;
|
|
42
50
|
active: boolean;
|
|
43
51
|
disabled: boolean;
|
|
44
52
|
target: string | undefined;
|
|
53
|
+
linkClass: string | Record<string, any> | unknown[];
|
|
45
54
|
}, {}>;
|
|
46
55
|
export default _default;
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
:size="size"
|
|
11
11
|
:placement="placement"
|
|
12
12
|
:no-caret="noCaret"
|
|
13
|
-
:menu-class="menuClass"
|
|
13
|
+
:menu-class="menuClass"
|
|
14
|
+
:menu-size="menuSize">
|
|
14
15
|
<template #button-content>
|
|
15
16
|
<slot name="button-content">
|
|
16
17
|
{{ text }}
|
|
@@ -63,6 +64,10 @@ export default defineComponent({
|
|
|
63
64
|
Object
|
|
64
65
|
],
|
|
65
66
|
default: void 0
|
|
67
|
+
},
|
|
68
|
+
menuSize: {
|
|
69
|
+
type: String,
|
|
70
|
+
default: "sm"
|
|
66
71
|
}
|
|
67
72
|
},
|
|
68
73
|
models: {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PropType } from 'vue-demi';
|
|
2
2
|
import { Placement } from '@floating-ui/core';
|
|
3
3
|
import type { SizeVariant, StyleVariant } from '../button';
|
|
4
|
+
import { MenuSizeVariant } from '../dropdown';
|
|
4
5
|
declare const _default: import("vue-demi").DefineComponent<{
|
|
5
6
|
modelValue: {
|
|
6
7
|
type: BooleanConstructor;
|
|
@@ -31,9 +32,13 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
31
32
|
default: string;
|
|
32
33
|
};
|
|
33
34
|
menuClass: {
|
|
34
|
-
type: (StringConstructor |
|
|
35
|
+
type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
|
|
35
36
|
default: undefined;
|
|
36
37
|
};
|
|
38
|
+
menuSize: {
|
|
39
|
+
type: PropType<MenuSizeVariant>;
|
|
40
|
+
default: string;
|
|
41
|
+
};
|
|
37
42
|
}, {
|
|
38
43
|
model: import("vue-demi").Ref<boolean>;
|
|
39
44
|
}, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
|
|
@@ -66,19 +71,24 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
66
71
|
default: string;
|
|
67
72
|
};
|
|
68
73
|
menuClass: {
|
|
69
|
-
type: (StringConstructor |
|
|
74
|
+
type: (StringConstructor | ObjectConstructor | ArrayConstructor)[];
|
|
70
75
|
default: undefined;
|
|
71
76
|
};
|
|
77
|
+
menuSize: {
|
|
78
|
+
type: PropType<MenuSizeVariant>;
|
|
79
|
+
default: string;
|
|
80
|
+
};
|
|
72
81
|
}>> & {
|
|
73
82
|
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
74
83
|
}, {
|
|
75
84
|
variant: StyleVariant;
|
|
76
|
-
size: SizeVariant;
|
|
77
|
-
text: string;
|
|
78
85
|
icon: boolean;
|
|
86
|
+
text: string;
|
|
87
|
+
size: SizeVariant;
|
|
79
88
|
modelValue: boolean;
|
|
80
89
|
placement: Placement;
|
|
81
90
|
noCaret: boolean;
|
|
82
91
|
menuClass: string | Record<string, any> | unknown[];
|
|
92
|
+
menuSize: MenuSizeVariant;
|
|
83
93
|
}, {}>;
|
|
84
94
|
export default _default;
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
inject
|
|
31
31
|
} from "vue-demi";
|
|
32
32
|
import { SIDEBAR_SETTINGS } from "../sidebar";
|
|
33
|
-
import IconArrow from "@
|
|
33
|
+
import IconArrow from "@privyid/persona-icon/vue/chevron-down/16.vue";
|
|
34
34
|
export default defineComponent({
|
|
35
35
|
components: { IconArrow },
|
|
36
36
|
props: {
|
|
@@ -38,6 +38,10 @@ export default defineComponent({
|
|
|
38
38
|
type: Boolean,
|
|
39
39
|
default: false
|
|
40
40
|
},
|
|
41
|
+
sticky: {
|
|
42
|
+
type: Boolean,
|
|
43
|
+
default: false
|
|
44
|
+
},
|
|
41
45
|
condensed: {
|
|
42
46
|
type: Boolean,
|
|
43
47
|
default: false
|
|
@@ -56,6 +60,8 @@ export default defineComponent({
|
|
|
56
60
|
const result = [""];
|
|
57
61
|
if (props.fixed)
|
|
58
62
|
result.push("navbar--fixed");
|
|
63
|
+
if (props.sticky)
|
|
64
|
+
result.push("navbar--sticky");
|
|
59
65
|
if (props.variant)
|
|
60
66
|
result.push(`navbar--${props.variant}`);
|
|
61
67
|
if (props.toggleable)
|
|
@@ -82,15 +88,24 @@ export default defineComponent({
|
|
|
82
88
|
<style lang="postcss">
|
|
83
89
|
.navbar {
|
|
84
90
|
--p-navbar-z-index: theme(zIndex.fixed);
|
|
91
|
+
--p-navbar-sticky-top: theme(spacing.0);
|
|
85
92
|
--p-navbar-collapse-max-height: 20rem; /** 320px */
|
|
93
|
+
--p-navbar-padding-x: theme(spacing.3);
|
|
94
|
+
--p-navbar-padding-y: theme(spacing.3);
|
|
95
|
+
--p-navbar-bg: theme(backgroundColor.default.DEFAULT);
|
|
96
|
+
--p-navbar-bg-dark: theme(backgroundColor.dark.default.DEFAULT);
|
|
86
97
|
|
|
87
|
-
@apply bg-
|
|
88
|
-
@apply dark:bg-dark
|
|
98
|
+
@apply bg-[color:var(--p-navbar-bg)] relative px-[var(--p-navbar-padding-x)] py-[var(--p-navbar-padding-y)] flex items-center flex-wrap transition-shadow duration-150 ease-in-out;
|
|
99
|
+
@apply dark:bg-[color:var(--p-navbar-bg-dark)];
|
|
89
100
|
|
|
90
101
|
&&--fixed {
|
|
91
102
|
@apply fixed left-0 top-0 w-full z-[var(--p-navbar-z-index)];
|
|
92
103
|
}
|
|
93
104
|
|
|
105
|
+
&&--sticky {
|
|
106
|
+
@apply sticky top-[var(--p-navbar-sticky-top)] z-sticky;
|
|
107
|
+
}
|
|
108
|
+
|
|
94
109
|
&&--shadow {
|
|
95
110
|
@apply shadow-lg transition-shadow duration-150 ease-in-out;
|
|
96
111
|
}
|
|
@@ -174,6 +189,10 @@ export default defineComponent({
|
|
|
174
189
|
@apply static shadow-none border-0 bg-base rounded-t-none;
|
|
175
190
|
@apply dark:bg-dark-base;
|
|
176
191
|
|
|
192
|
+
&:where(.dropdown__menu--sm, .dropdown__menu--md, .dropdown__menu--lg) {
|
|
193
|
+
@apply w-full;
|
|
194
|
+
}
|
|
195
|
+
|
|
177
196
|
&__container {
|
|
178
197
|
.dropdown__item {
|
|
179
198
|
@apply first:rounded-t-none;
|
|
@@ -206,9 +225,7 @@ export default defineComponent({
|
|
|
206
225
|
}
|
|
207
226
|
}
|
|
208
227
|
|
|
209
|
-
.nav__item,
|
|
210
|
-
.nav__text,
|
|
211
|
-
.nav__form {
|
|
228
|
+
:where(.nav__item, .nav__text, .nav__form) {
|
|
212
229
|
@apply w-full;
|
|
213
230
|
}
|
|
214
231
|
}
|
|
@@ -14,6 +14,10 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
14
14
|
type: BooleanConstructor;
|
|
15
15
|
default: boolean;
|
|
16
16
|
};
|
|
17
|
+
sticky: {
|
|
18
|
+
type: BooleanConstructor;
|
|
19
|
+
default: boolean;
|
|
20
|
+
};
|
|
17
21
|
condensed: {
|
|
18
22
|
type: BooleanConstructor;
|
|
19
23
|
default: boolean;
|
|
@@ -35,6 +39,10 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
35
39
|
type: BooleanConstructor;
|
|
36
40
|
default: boolean;
|
|
37
41
|
};
|
|
42
|
+
sticky: {
|
|
43
|
+
type: BooleanConstructor;
|
|
44
|
+
default: boolean;
|
|
45
|
+
};
|
|
38
46
|
condensed: {
|
|
39
47
|
type: BooleanConstructor;
|
|
40
48
|
default: boolean;
|
|
@@ -44,5 +52,6 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
44
52
|
variant: StyleVariant;
|
|
45
53
|
toggleable: ToggleableVariant | undefined;
|
|
46
54
|
condensed: boolean;
|
|
55
|
+
sticky: boolean;
|
|
47
56
|
}, {}>;
|
|
48
57
|
export default _default;
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
:data-page="page"
|
|
10
10
|
:data-width="width"
|
|
11
11
|
:data-height="height"
|
|
12
|
-
@keydown.up.stop.prevent="move(0, -1)"
|
|
13
|
-
@keydown.down.stop.prevent="move(0, 1)"
|
|
14
|
-
@keydown.left.stop.prevent="move(-1, 0)"
|
|
15
|
-
@keydown.right.stop.prevent="move(1, 0)">
|
|
12
|
+
@keydown.up.stop.prevent="move($event, 0, -1)"
|
|
13
|
+
@keydown.down.stop.prevent="move($event, 0, 1)"
|
|
14
|
+
@keydown.left.stop.prevent="move($event, -1, 0)"
|
|
15
|
+
@keydown.right.stop.prevent="move($event, 1, 0)">
|
|
16
16
|
<div class="pdf-object__container">
|
|
17
17
|
<slot />
|
|
18
18
|
<PdfObjectDebugger v-if="debug" />
|
|
@@ -52,6 +52,7 @@ import {
|
|
|
52
52
|
import { computePosition, getPosition } from "./utils/position";
|
|
53
53
|
import { getEmptyPosition } from "./utils/overlap";
|
|
54
54
|
import PdfObjectDebugger from "./PdfObjectDebugger.vue";
|
|
55
|
+
import { clamp } from "lodash-es";
|
|
55
56
|
export default defineComponent({
|
|
56
57
|
components: { PdfObjectDebugger },
|
|
57
58
|
props: {
|
|
@@ -156,7 +157,8 @@ export default defineComponent({
|
|
|
156
157
|
y.value = top;
|
|
157
158
|
},
|
|
158
159
|
onmove(event) {
|
|
159
|
-
|
|
160
|
+
x.value += event.dx;
|
|
161
|
+
y.value += event.dy;
|
|
160
162
|
},
|
|
161
163
|
onend(event) {
|
|
162
164
|
if (event.relatedTarget) {
|
|
@@ -221,10 +223,18 @@ export default defineComponent({
|
|
|
221
223
|
object.value.style.display = "none";
|
|
222
224
|
}
|
|
223
225
|
});
|
|
224
|
-
function move(dx, dy) {
|
|
226
|
+
function move(event, dx, dy) {
|
|
225
227
|
if (props.moveable) {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
+
const pageWidth = pageEl.value.clientWidth;
|
|
229
|
+
const pageHeight = pageEl.value.clientHeight;
|
|
230
|
+
const maxX = Math.floor(pageWidth / scale.value - width.value);
|
|
231
|
+
const maxY = Math.floor(pageHeight / scale.value - height.value);
|
|
232
|
+
const ax = event.metaKey || event.ctrlKey ? maxX : event.shiftKey ? 10 : 1;
|
|
233
|
+
const ay = event.metaKey || event.ctrlKey ? maxY : event.shiftKey ? 10 : 1;
|
|
234
|
+
const x1 = x.value + dx * ax;
|
|
235
|
+
const y1 = y.value + dy * ay;
|
|
236
|
+
x.value = clamp(x1, 0, maxX);
|
|
237
|
+
y.value = clamp(y1, 0, maxY);
|
|
228
238
|
}
|
|
229
239
|
}
|
|
230
240
|
function autoPosition() {
|
|
@@ -53,9 +53,9 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
53
53
|
default: boolean;
|
|
54
54
|
};
|
|
55
55
|
}, {
|
|
56
|
-
move: (dx: number, dy: number) => void;
|
|
56
|
+
move: (event: KeyboardEvent, dx: number, dy: number) => void;
|
|
57
57
|
focus: import("lodash").DebouncedFunc<typeof import("../tour/utils/focus").focus>;
|
|
58
|
-
}, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, ("update:
|
|
58
|
+
}, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, ("update:page" | "update:x" | "update:y" | "update:width" | "update:height")[], "update:page" | "update:x" | "update:y" | "update:width" | "update:height", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
|
|
59
59
|
x: {
|
|
60
60
|
type: NumberConstructor;
|
|
61
61
|
default: undefined;
|
|
@@ -109,15 +109,15 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
109
109
|
default: boolean;
|
|
110
110
|
};
|
|
111
111
|
}>> & {
|
|
112
|
+
"onUpdate:page"?: ((...args: any[]) => any) | undefined;
|
|
112
113
|
"onUpdate:x"?: ((...args: any[]) => any) | undefined;
|
|
113
114
|
"onUpdate:y"?: ((...args: any[]) => any) | undefined;
|
|
114
|
-
"onUpdate:page"?: ((...args: any[]) => any) | undefined;
|
|
115
115
|
"onUpdate:width"?: ((...args: any[]) => any) | undefined;
|
|
116
116
|
"onUpdate:height"?: ((...args: any[]) => any) | undefined;
|
|
117
117
|
}, {
|
|
118
|
+
y: number;
|
|
118
119
|
x: number;
|
|
119
120
|
width: number;
|
|
120
|
-
y: number;
|
|
121
121
|
height: number;
|
|
122
122
|
autofocus: boolean;
|
|
123
123
|
maxHeight: number;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { clamp } from "lodash-es";
|
|
1
2
|
export function findRelativeParent(element, container = document.body) {
|
|
2
3
|
let parent = element.parentElement;
|
|
3
4
|
do {
|
|
@@ -34,9 +35,14 @@ export function getPosition(context) {
|
|
|
34
35
|
} = context;
|
|
35
36
|
const objectBounding = object.getBoundingClientRect();
|
|
36
37
|
const refBounding = reference.getBoundingClientRect();
|
|
38
|
+
const maxX = Math.floor((refBounding.width - objectBounding.width) / scale);
|
|
39
|
+
const maxY = Math.floor((refBounding.height - objectBounding.height) / scale);
|
|
40
|
+
const x = (objectBounding.left - refBounding.left) / scale;
|
|
41
|
+
const y = (objectBounding.top - refBounding.top) / scale;
|
|
42
|
+
const page = Number.parseInt(reference.dataset.pageNumber);
|
|
37
43
|
return {
|
|
38
|
-
x: (
|
|
39
|
-
y: (
|
|
40
|
-
page
|
|
44
|
+
x: clamp(x, 1, maxX - 1),
|
|
45
|
+
y: clamp(y, 1, maxY - 1),
|
|
46
|
+
page
|
|
41
47
|
};
|
|
42
48
|
}
|
|
@@ -147,9 +147,9 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
147
147
|
default: number;
|
|
148
148
|
};
|
|
149
149
|
}>>, {
|
|
150
|
-
size: number;
|
|
151
150
|
color: string;
|
|
152
151
|
text: string;
|
|
152
|
+
size: number;
|
|
153
153
|
modelValue: string | File;
|
|
154
154
|
label: string;
|
|
155
155
|
modelModifiers: ModelModifier;
|
|
@@ -41,7 +41,7 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
41
41
|
idle: import("vue-demi").Ref<boolean>;
|
|
42
42
|
loading: import("vue-demi").WritableComputedRef<boolean>;
|
|
43
43
|
error: import("vue-demi").ShallowRef<Error | undefined>;
|
|
44
|
-
}, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, ("error" | "
|
|
44
|
+
}, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, ("error" | "ready" | "loaded" | "error-password" | "update:page" | "update:scale")[], "error" | "ready" | "loaded" | "error-password" | "update:page" | "update:scale", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
|
|
45
45
|
src: {
|
|
46
46
|
type: StringConstructor;
|
|
47
47
|
default: string;
|
|
@@ -72,10 +72,10 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
72
72
|
};
|
|
73
73
|
}>> & {
|
|
74
74
|
onError?: ((...args: any[]) => any) | undefined;
|
|
75
|
-
"onUpdate:page"?: ((...args: any[]) => any) | undefined;
|
|
76
75
|
onReady?: ((...args: any[]) => any) | undefined;
|
|
77
76
|
onLoaded?: ((...args: any[]) => any) | undefined;
|
|
78
77
|
"onError-password"?: ((...args: any[]) => any) | undefined;
|
|
78
|
+
"onUpdate:page"?: ((...args: any[]) => any) | undefined;
|
|
79
79
|
"onUpdate:scale"?: ((...args: any[]) => any) | undefined;
|
|
80
80
|
}, {
|
|
81
81
|
src: string;
|
|
@@ -10,11 +10,11 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
10
10
|
default: string;
|
|
11
11
|
};
|
|
12
12
|
modelValue: {
|
|
13
|
-
type: (NumberConstructor | StringConstructor |
|
|
13
|
+
type: (NumberConstructor | StringConstructor | BooleanConstructor | ObjectConstructor | DateConstructor | ArrayConstructor)[];
|
|
14
14
|
default: boolean;
|
|
15
15
|
};
|
|
16
16
|
value: {
|
|
17
|
-
type: (NumberConstructor | StringConstructor |
|
|
17
|
+
type: (NumberConstructor | StringConstructor | BooleanConstructor | ObjectConstructor | DateConstructor | ArrayConstructor)[];
|
|
18
18
|
default: boolean;
|
|
19
19
|
};
|
|
20
20
|
checked: {
|
|
@@ -43,11 +43,11 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
43
43
|
default: string;
|
|
44
44
|
};
|
|
45
45
|
modelValue: {
|
|
46
|
-
type: (NumberConstructor | StringConstructor |
|
|
46
|
+
type: (NumberConstructor | StringConstructor | BooleanConstructor | ObjectConstructor | DateConstructor | ArrayConstructor)[];
|
|
47
47
|
default: boolean;
|
|
48
48
|
};
|
|
49
49
|
value: {
|
|
50
|
-
type: (NumberConstructor | StringConstructor |
|
|
50
|
+
type: (NumberConstructor | StringConstructor | BooleanConstructor | ObjectConstructor | DateConstructor | ArrayConstructor)[];
|
|
51
51
|
default: boolean;
|
|
52
52
|
};
|
|
53
53
|
checked: {
|
|
@@ -4,7 +4,7 @@ import { Adapter } from './adapter/adapter';
|
|
|
4
4
|
import { SizeVariant } from '../button';
|
|
5
5
|
declare const _default: import("vue-demi").DefineComponent<{
|
|
6
6
|
modelValue: {
|
|
7
|
-
type: (NumberConstructor | StringConstructor |
|
|
7
|
+
type: (NumberConstructor | StringConstructor | BooleanConstructor | ObjectConstructor | DateConstructor | ArrayConstructor)[];
|
|
8
8
|
default: string;
|
|
9
9
|
};
|
|
10
10
|
selected: {
|
|
@@ -62,7 +62,7 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
62
62
|
isSelected: (item: SelectItem) => boolean;
|
|
63
63
|
}, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, ("change" | "update:modelValue" | "update:selected" | "userInput")[], "change" | "update:modelValue" | "update:selected" | "userInput", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
|
|
64
64
|
modelValue: {
|
|
65
|
-
type: (NumberConstructor | StringConstructor |
|
|
65
|
+
type: (NumberConstructor | StringConstructor | BooleanConstructor | ObjectConstructor | DateConstructor | ArrayConstructor)[];
|
|
66
66
|
default: string;
|
|
67
67
|
};
|
|
68
68
|
selected: {
|
|
@@ -114,8 +114,8 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
114
114
|
"onUpdate:selected"?: ((...args: any[]) => any) | undefined;
|
|
115
115
|
onUserInput?: ((...args: any[]) => any) | undefined;
|
|
116
116
|
}, {
|
|
117
|
-
error: boolean;
|
|
118
117
|
size: SizeVariant;
|
|
118
|
+
error: boolean;
|
|
119
119
|
modelValue: string | number | boolean | Record<string, any> | unknown[] | Date;
|
|
120
120
|
disabled: boolean;
|
|
121
121
|
readonly: boolean;
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
ref="sidebarMenus"
|
|
12
12
|
data-testid="sidebar-menus"
|
|
13
13
|
:data-sidebar-menu="brandHeight"
|
|
14
|
+
:data-bottom-menu="isBottomMenu"
|
|
14
15
|
class="sidebar__menus"
|
|
15
16
|
:style="{ 'padding-bottom': bottomHeight }">
|
|
16
17
|
<slot />
|
|
@@ -30,7 +31,9 @@ import { templateRef, useElementSize } from "@vueuse/core";
|
|
|
30
31
|
import {
|
|
31
32
|
defineComponent,
|
|
32
33
|
computed,
|
|
33
|
-
|
|
34
|
+
ref,
|
|
35
|
+
provide,
|
|
36
|
+
onMounted
|
|
34
37
|
} from "vue-demi";
|
|
35
38
|
import { SIDEBAR_SETTINGS } from ".";
|
|
36
39
|
import { useSelector } from "../pdf-object/utils/use-selector";
|
|
@@ -53,6 +56,10 @@ export default defineComponent({
|
|
|
53
56
|
type: Boolean,
|
|
54
57
|
default: false
|
|
55
58
|
},
|
|
59
|
+
sticky: {
|
|
60
|
+
type: Boolean,
|
|
61
|
+
default: false
|
|
62
|
+
},
|
|
56
63
|
toggleable: {
|
|
57
64
|
type: String,
|
|
58
65
|
default: void 0
|
|
@@ -75,15 +82,15 @@ export default defineComponent({
|
|
|
75
82
|
});
|
|
76
83
|
const sidebar = templateRef("sidebar");
|
|
77
84
|
const sidebarBrand = useSelector(".sidebar__brand", sidebar);
|
|
85
|
+
const brand = useElementSize(sidebarBrand);
|
|
78
86
|
const sidebarMenus = templateRef("sidebarMenus");
|
|
79
87
|
const sidebarBottom = useSelector(".sidebar__bottom", sidebarMenus);
|
|
80
88
|
const { height } = useElementSize(sidebarBottom);
|
|
81
|
-
const brand = useElementSize(sidebarBrand);
|
|
82
89
|
const brandHeight = computed(() => {
|
|
83
|
-
return slots.brand ? `${brand.height.value + 16}px` : 0;
|
|
90
|
+
return slots.brand ? `${brand.height.value + titleHeight.value + 16}px` : 0;
|
|
84
91
|
});
|
|
85
92
|
const bottomHeight = computed(() => {
|
|
86
|
-
return
|
|
93
|
+
return isBottomMenu.value && !isDefault.value || !isBottomMenu.value && isDefault.value ? 0 : `${height.value + 16}px`;
|
|
87
94
|
});
|
|
88
95
|
const model = useVModel(props);
|
|
89
96
|
const classNames = computed(() => {
|
|
@@ -96,16 +103,28 @@ export default defineComponent({
|
|
|
96
103
|
result.push(`sidebar--${props.variant}`);
|
|
97
104
|
if (props.fixed)
|
|
98
105
|
result.push("sidebar--fixed");
|
|
106
|
+
if (props.sticky)
|
|
107
|
+
result.push("sidebar--sticky");
|
|
99
108
|
if (props.toggleable)
|
|
100
109
|
result.push(`sidebar--toggleable sidebar--toggleable-${props.toggleable}`);
|
|
101
110
|
if (props.toggleable && props.fixed && model.value)
|
|
102
111
|
result.push("sidebar--show");
|
|
103
112
|
return result;
|
|
104
113
|
});
|
|
114
|
+
const titleHeight = ref(0);
|
|
115
|
+
const isBottomMenu = ref(false);
|
|
116
|
+
const isDefault = ref(false);
|
|
117
|
+
onMounted(() => {
|
|
118
|
+
titleHeight.value = document.querySelectorAll(".sidebar .nav--has-title").length * 0.25 * 20;
|
|
119
|
+
isBottomMenu.value = document.querySelectorAll(".sidebar .sidebar__nav--bottom").length > 0;
|
|
120
|
+
isDefault.value = document.querySelectorAll(".sidebar .sidebar__nav:not(.sidebar__nav--bottom)").length > 0;
|
|
121
|
+
});
|
|
105
122
|
return {
|
|
106
123
|
classNames,
|
|
107
124
|
bottomHeight,
|
|
108
|
-
brandHeight
|
|
125
|
+
brandHeight,
|
|
126
|
+
isBottomMenu,
|
|
127
|
+
isDefault
|
|
109
128
|
};
|
|
110
129
|
}
|
|
111
130
|
});
|
|
@@ -118,8 +137,11 @@ export default defineComponent({
|
|
|
118
137
|
--p-sidebar-bg: theme(backgroundColor.DEFAULT);
|
|
119
138
|
--p-sidebar-bg-dark: theme(backgroundColor.dark.DEFAULT);
|
|
120
139
|
--p-sidebar-z-index: theme(zIndex.fixed);
|
|
140
|
+
--p-sidebar-sticky-top: theme(spacing.0);
|
|
141
|
+
--p-sidebar-padding-x: theme(spacing.2);
|
|
142
|
+
--p-sidebar-padding-y: theme(spacing.4);
|
|
121
143
|
|
|
122
|
-
@apply bg-[color:var(--p-sidebar-bg)] px-
|
|
144
|
+
@apply bg-[color:var(--p-sidebar-bg)] px-[var(--p-sidebar-padding-x)] py-[var(--p-sidebar-padding-y)];
|
|
123
145
|
@apply dark:bg-[color:var(--p-sidebar-bg-dark)];
|
|
124
146
|
|
|
125
147
|
/**
|
|
@@ -154,8 +176,12 @@ export default defineComponent({
|
|
|
154
176
|
}
|
|
155
177
|
|
|
156
178
|
.sidebar__bottom {
|
|
157
|
-
@apply absolute -bottom-
|
|
179
|
+
@apply absolute -bottom-2 w-[calc(100%+1rem)] -left-2 bg-[color:var(--p-sidebar-bg)];
|
|
158
180
|
@apply dark:bg-[color:var(--p-sidebar-bg-dark)];
|
|
181
|
+
|
|
182
|
+
.sidebar__nav {
|
|
183
|
+
@apply px-2;
|
|
184
|
+
}
|
|
159
185
|
}
|
|
160
186
|
|
|
161
187
|
/**
|
|
@@ -193,6 +219,13 @@ export default defineComponent({
|
|
|
193
219
|
}
|
|
194
220
|
}
|
|
195
221
|
|
|
222
|
+
/**
|
|
223
|
+
* Sticky sidebar
|
|
224
|
+
*/
|
|
225
|
+
&&--sticky {
|
|
226
|
+
@apply sticky top-[var(--p-sidebar-sticky-top)] z-sticky;
|
|
227
|
+
}
|
|
228
|
+
|
|
196
229
|
/**
|
|
197
230
|
* Narrow sidebar
|
|
198
231
|
* is 60px width
|
|
@@ -19,6 +19,10 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
19
19
|
type: BooleanConstructor;
|
|
20
20
|
default: boolean;
|
|
21
21
|
};
|
|
22
|
+
sticky: {
|
|
23
|
+
type: BooleanConstructor;
|
|
24
|
+
default: boolean;
|
|
25
|
+
};
|
|
22
26
|
toggleable: {
|
|
23
27
|
type: PropType<ToggleableVariant>;
|
|
24
28
|
default: undefined;
|
|
@@ -31,6 +35,8 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
31
35
|
classNames: import("vue-demi").ComputedRef<string[]>;
|
|
32
36
|
bottomHeight: import("vue-demi").ComputedRef<string | 0>;
|
|
33
37
|
brandHeight: import("vue-demi").ComputedRef<string | 0>;
|
|
38
|
+
isBottomMenu: import("vue-demi").Ref<boolean>;
|
|
39
|
+
isDefault: import("vue-demi").Ref<boolean>;
|
|
34
40
|
}, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
|
|
35
41
|
variant: {
|
|
36
42
|
type: PropType<StyleVariant>;
|
|
@@ -48,6 +54,10 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
48
54
|
type: BooleanConstructor;
|
|
49
55
|
default: boolean;
|
|
50
56
|
};
|
|
57
|
+
sticky: {
|
|
58
|
+
type: BooleanConstructor;
|
|
59
|
+
default: boolean;
|
|
60
|
+
};
|
|
51
61
|
toggleable: {
|
|
52
62
|
type: PropType<ToggleableVariant>;
|
|
53
63
|
default: undefined;
|
|
@@ -65,5 +75,6 @@ declare const _default: import("vue-demi").DefineComponent<{
|
|
|
65
75
|
modelValue: boolean;
|
|
66
76
|
align: AlignVariant;
|
|
67
77
|
toggleable: ToggleableVariant;
|
|
78
|
+
sticky: boolean;
|
|
68
79
|
}, {}>;
|
|
69
80
|
export default _default;
|
|
@@ -57,9 +57,19 @@ export default defineComponent({
|
|
|
57
57
|
|
|
58
58
|
a {
|
|
59
59
|
@apply no-underline;
|
|
60
|
+
|
|
61
|
+
& > img {
|
|
62
|
+
@apply max-w-full h-auto;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.sidebar--wide & {
|
|
66
|
+
& > img {
|
|
67
|
+
@apply h-7 w-auto;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
60
70
|
}
|
|
61
71
|
|
|
62
|
-
img {
|
|
72
|
+
& > img {
|
|
63
73
|
@apply max-w-full h-auto;
|
|
64
74
|
}
|
|
65
75
|
|
|
@@ -78,7 +88,7 @@ export default defineComponent({
|
|
|
78
88
|
.sidebar--wide & {
|
|
79
89
|
@apply px-3;
|
|
80
90
|
|
|
81
|
-
img {
|
|
91
|
+
& > img {
|
|
82
92
|
@apply h-7 w-auto;
|
|
83
93
|
}
|
|
84
94
|
}
|