@leavepulse/ui 0.41.0 → 0.43.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/assets/{LpCommandPalette-DyT6aGdW.css → LpCommandPalette-s_kKuCRf.css} +21 -21
- package/dist/chunks/{LpAddressInput-CMjaPQVw.js → LpAddressInput-B-Zvxsn7.js} +1 -1
- package/dist/chunks/{LpAppShell-Bcv6EhqU.js → LpAppShell-BGQVIY-3.js} +1 -1
- package/dist/chunks/{LpConfirmDialog-BNAvOR24.js → LpConfirmDialog-Q-bxff8z.js} +1 -1
- package/dist/chunks/{LpDrawer-DgaS2s2i.js → LpDrawer-BZ6k3hvo.js} +3 -3
- package/dist/chunks/{LpLightbox-oLqyjOln.js → LpLightbox-2sYVMY-S.js} +12 -4
- package/dist/chunks/{LpMediaGallery-Cid7PGYx.js → LpMediaGallery-FF-NquIo.js} +1 -1
- package/dist/chunks/{LpModal-8bja5bWS.js → LpModal-Bt0pQCI_.js} +2 -2
- package/dist/chunks/{LpModalNav-w9kfwHqO.js → LpModalNav-YaifHrXC.js} +2 -2
- package/dist/chunks/{LpSidebar-DlTn5nXc.js → LpSidebar-ClBUwoEz.js} +1 -1
- package/dist/components/LpAddressInput.vue.js +1 -1
- package/dist/components/LpAppShell.vue.js +1 -1
- package/dist/components/LpCommandPalette.vue.js +124 -115
- package/dist/components/LpConfirmDialog.vue.js +1 -1
- package/dist/components/LpDrawer.vue.js +1 -1
- package/dist/components/LpLightbox.vue.js +1 -1
- package/dist/components/LpMediaGallery.vue.js +1 -1
- package/dist/components/LpModal.vue.js +1 -1
- package/dist/components/LpModalNav.vue.js +1 -1
- package/dist/components/LpShortcutsDialog.vue.js +1 -1
- package/dist/components/LpSidebar.vue.js +1 -1
- package/dist/components/commandSearch.js +66 -0
- package/dist/components/modalDepth.js +3 -2
- package/dist/composables/useHotkeys.js +41 -21
- package/dist/index.js +13 -9
- package/package.json +3 -3
- package/src/components/LpCommandPalette.vue +81 -99
- package/src/components/LpDrawer.vue +3 -3
- package/src/components/LpLightbox.vue +11 -5
- package/src/components/LpModal.vue +2 -2
- package/src/components/commandSearch.ts +92 -0
- package/src/components/modalDepth.ts +4 -48
- package/src/composables/useHotkeys.ts +54 -33
- package/src/index.ts +2 -0
- package/src/tokens/tokens.css +13 -19
- package/dist/component-names.d.ts +0 -1
- package/dist/components/LayoutCanvas.vue.d.ts +0 -28
- package/dist/components/LayoutNode.vue.d.ts +0 -40
- package/dist/components/LpActionBar.vue.d.ts +0 -84
- package/dist/components/LpAddressInput.vue.d.ts +0 -70
- package/dist/components/LpAlert.vue.d.ts +0 -44
- package/dist/components/LpAppShell.vue.d.ts +0 -123
- package/dist/components/LpAutocomplete.vue.d.ts +0 -50
- package/dist/components/LpAvatar.vue.d.ts +0 -34
- package/dist/components/LpBadge.vue.d.ts +0 -20
- package/dist/components/LpBreadcrumbs.vue.d.ts +0 -32
- package/dist/components/LpButton.vue.d.ts +0 -113
- package/dist/components/LpCalendar.vue.d.ts +0 -29
- package/dist/components/LpCard.vue.d.ts +0 -60
- package/dist/components/LpChart.vue.d.ts +0 -130
- package/dist/components/LpCheckbox.vue.d.ts +0 -32
- package/dist/components/LpCodeBlock.vue.d.ts +0 -58
- package/dist/components/LpColorPicker.vue.d.ts +0 -124
- package/dist/components/LpCommandPalette.vue.d.ts +0 -206
- package/dist/components/LpConfirmDialog.vue.d.ts +0 -59
- package/dist/components/LpContextMenu.vue.d.ts +0 -44
- package/dist/components/LpDatePicker.vue.d.ts +0 -33
- package/dist/components/LpDisclosure.vue.d.ts +0 -47
- package/dist/components/LpDivider.vue.d.ts +0 -17
- package/dist/components/LpDrawer.vue.d.ts +0 -170
- package/dist/components/LpDropdownMenu.vue.d.ts +0 -23
- package/dist/components/LpDropzone.vue.d.ts +0 -90
- package/dist/components/LpEmptyState.vue.d.ts +0 -28
- package/dist/components/LpFileTree.vue.d.ts +0 -126
- package/dist/components/LpFileTreeNode.vue.d.ts +0 -62
- package/dist/components/LpFormField.vue.d.ts +0 -24
- package/dist/components/LpIcon.vue.d.ts +0 -8
- package/dist/components/LpImageEditor.vue.d.ts +0 -106
- package/dist/components/LpInfraNode.vue.d.ts +0 -65
- package/dist/components/LpInput.vue.d.ts +0 -80
- package/dist/components/LpLaneNode.vue.d.ts +0 -24
- package/dist/components/LpLightbox.vue.d.ts +0 -62
- package/dist/components/LpLink.vue.d.ts +0 -93
- package/dist/components/LpLogViewer.vue.d.ts +0 -153
- package/dist/components/LpMapPicker.vue.d.ts +0 -59
- package/dist/components/LpMediaGallery.vue.d.ts +0 -80
- package/dist/components/LpModal.vue.d.ts +0 -66
- package/dist/components/LpModalNav.vue.d.ts +0 -66
- package/dist/components/LpNotificationBell.vue.d.ts +0 -85
- package/dist/components/LpNumberField.vue.d.ts +0 -21
- package/dist/components/LpNumberFlow.vue.d.ts +0 -35
- package/dist/components/LpOtpInput.vue.d.ts +0 -39
- package/dist/components/LpPagination.vue.d.ts +0 -35
- package/dist/components/LpPasswordInput.vue.d.ts +0 -36
- package/dist/components/LpPhoneInput.vue.d.ts +0 -49
- package/dist/components/LpPie.vue.d.ts +0 -196
- package/dist/components/LpPopover.vue.d.ts +0 -34
- package/dist/components/LpProgress.vue.d.ts +0 -66
- package/dist/components/LpRadio.vue.d.ts +0 -18
- package/dist/components/LpRadioGroup.vue.d.ts +0 -26
- package/dist/components/LpRollingText.vue.d.ts +0 -33
- package/dist/components/LpScrollArea.vue.d.ts +0 -28
- package/dist/components/LpSection.vue.d.ts +0 -120
- package/dist/components/LpSegmented.vue.d.ts +0 -30
- package/dist/components/LpSelect.vue.d.ts +0 -47
- package/dist/components/LpServiceNode.vue.d.ts +0 -14
- package/dist/components/LpShift.vue.d.ts +0 -36
- package/dist/components/LpShortcutsDialog.vue.d.ts +0 -24
- package/dist/components/LpSidebar.vue.d.ts +0 -146
- package/dist/components/LpSidebarNav.vue.d.ts +0 -54
- package/dist/components/LpSkeleton.vue.d.ts +0 -16
- package/dist/components/LpSlider.vue.d.ts +0 -30
- package/dist/components/LpSparkline.vue.d.ts +0 -48
- package/dist/components/LpStat.vue.d.ts +0 -69
- package/dist/components/LpStepper.vue.d.ts +0 -36
- package/dist/components/LpSwitch.vue.d.ts +0 -42
- package/dist/components/LpTable.vue.d.ts +0 -124
- package/dist/components/LpTableOfContents.vue.d.ts +0 -19
- package/dist/components/LpTabs.vue.d.ts +0 -47
- package/dist/components/LpTextarea.vue.d.ts +0 -22
- package/dist/components/LpThemeSwitcher.vue.d.ts +0 -47
- package/dist/components/LpTilt.vue.d.ts +0 -31
- package/dist/components/LpTimeField.vue.d.ts +0 -24
- package/dist/components/LpToaster.vue.d.ts +0 -3
- package/dist/components/LpTooltip.vue.d.ts +0 -58
- package/dist/components/LpTopologyCanvas.vue.d.ts +0 -205
- package/dist/components/LpUptimeBar.vue.d.ts +0 -46
- package/dist/components/LpWaypointEdge.vue.d.ts +0 -21
- package/dist/components/actionBar.d.ts +0 -19
- package/dist/components/address.d.ts +0 -107
- package/dist/components/chart.d.ts +0 -180
- package/dist/components/codeHighlight.d.ts +0 -8
- package/dist/components/color.d.ts +0 -65
- package/dist/components/countries-data.d.ts +0 -2
- package/dist/components/countries.d.ts +0 -20
- package/dist/components/dropdown.d.ts +0 -29
- package/dist/components/fileTree.d.ts +0 -79
- package/dist/components/lightbox.d.ts +0 -24
- package/dist/components/modalDepth.d.ts +0 -15
- package/dist/components/sidebar.d.ts +0 -42
- package/dist/composables/easing.d.ts +0 -46
- package/dist/composables/useAsyncTask.d.ts +0 -18
- package/dist/composables/useClipboard.d.ts +0 -46
- package/dist/composables/useFormDraft.d.ts +0 -67
- package/dist/composables/useGlass.d.ts +0 -9
- package/dist/composables/useHotkeys.d.ts +0 -99
- package/dist/composables/useInputFilter.d.ts +0 -14
- package/dist/composables/useMergedClass.d.ts +0 -42
- package/dist/composables/usePillTransition.d.ts +0 -21
- package/dist/composables/useReveal.d.ts +0 -26
- package/dist/composables/useRovingFocus.d.ts +0 -49
- package/dist/composables/useSettled.d.ts +0 -26
- package/dist/composables/useShift.d.ts +0 -35
- package/dist/composables/useTilt.d.ts +0 -23
- package/dist/composables/useToast.d.ts +0 -41
- package/dist/composables/useZoomPan.d.ts +0 -58
- package/dist/icons.d.ts +0 -1
- package/dist/index.d.ts +0 -160
- package/dist/layout/registry.d.ts +0 -26
- package/dist/layout/tree.d.ts +0 -75
- package/dist/layout/useLayout.d.ts +0 -39
- package/dist/theme/backdrop.d.ts +0 -9
- package/dist/theme/config.d.ts +0 -16
- package/dist/theme/define.d.ts +0 -12
- package/dist/theme/presets.d.ts +0 -20
- package/dist/theme/tokens.d.ts +0 -75
- package/dist/theme/useTheme.d.ts +0 -46
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
declare const _default: typeof __VLS_export;
|
|
2
|
-
export default _default;
|
|
3
|
-
declare const __VLS_export: __VLS_WithSlots<import('vue').DefineComponent<{
|
|
4
|
-
open?: boolean;
|
|
5
|
-
/** Edge the drawer attaches to. `side` is a back-compat alias (left/right). */
|
|
6
|
-
direction?: "left" | "right" | "top" | "bottom";
|
|
7
|
-
side?: "left" | "right";
|
|
8
|
-
title?: string;
|
|
9
|
-
description?: string;
|
|
10
|
-
/** Size preset along the drawer's main axis (width for left/right, height for top/bottom). */
|
|
11
|
-
size?: "sm" | "md" | "lg" | "xl";
|
|
12
|
-
/** Explicit size override (any CSS length), wins over `size`. */
|
|
13
|
-
width?: string;
|
|
14
|
-
/** Drag-to-dismiss + click-outside. Set false to force a controlled close. */
|
|
15
|
-
dismissible?: boolean;
|
|
16
|
-
/** Fractions (0–1) or px strings the drawer snaps between, nearest edge first. */
|
|
17
|
-
snapPoints?: (number | string)[];
|
|
18
|
-
/** Show the drag handle (auto-on for bottom/top sheets). */
|
|
19
|
-
handle?: boolean;
|
|
20
|
-
/** Only the handle initiates a drag — frees inner content to scroll. */
|
|
21
|
-
handleOnly?: boolean;
|
|
22
|
-
/** Scale the [vaul-drawer-wrapper] background while open. */
|
|
23
|
-
scaleBackground?: boolean;
|
|
24
|
-
/** Drag fraction (0–1) past which a release dismisses. */
|
|
25
|
-
closeThreshold?: number;
|
|
26
|
-
/**
|
|
27
|
-
* Auto-tag interactive descendants (input, textarea, select, button, links,
|
|
28
|
-
* [contenteditable]) with data-vaul-no-drag so a drag can't start on them —
|
|
29
|
-
* you can select text / use controls without dragging the drawer. On by
|
|
30
|
-
* default; the drawer still drags from empty space, the handle and header.
|
|
31
|
-
*/
|
|
32
|
-
noDragControls?: boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Mark the entire body as non-draggable: the drawer then only drags from the
|
|
35
|
-
* handle/header. Stronger than noDragControls — use for form-heavy drawers.
|
|
36
|
-
*/
|
|
37
|
-
noDragContent?: boolean;
|
|
38
|
-
/**
|
|
39
|
-
* Open by dragging in from the screen edge (Discord-style). A touch that
|
|
40
|
-
* starts within `edgeSize` of the edge and travels inward drags a preview of
|
|
41
|
-
* the panel (with its content) under the finger; a release past
|
|
42
|
-
* `edgeOpenThreshold`, or a quick flick, opens the drawer. Nothing is laid
|
|
43
|
-
* over the edge, so taps there still reach the page. Left/right drawers only.
|
|
44
|
-
*/
|
|
45
|
-
edgeOpen?: boolean;
|
|
46
|
-
/**
|
|
47
|
-
* Tailwind breakpoint at and above which the edge pull is ignored. Pass the
|
|
48
|
-
* same breakpoint at which the host switches to the drawer (LpSidebar
|
|
49
|
-
* does), so a wide touch screen with the rail visible doesn't pull it too.
|
|
50
|
-
*/
|
|
51
|
-
edgeBreakpoint?: "sm" | "md" | "lg" | "xl";
|
|
52
|
-
/** Distance (px) from the edge within which a touch can start a pull. */
|
|
53
|
-
edgeSize?: number;
|
|
54
|
-
/** Fraction (0–1) of the panel width the pull must reach to open on release. */
|
|
55
|
-
edgeOpenThreshold?: number;
|
|
56
|
-
/**
|
|
57
|
-
* Let the user drag the inner edge to resize the panel (horizontal drawers
|
|
58
|
-
* only — e.g. a logs panel whose long lines overflow). The new size is kept
|
|
59
|
-
* for the session. Min/max bound the drag.
|
|
60
|
-
*/
|
|
61
|
-
resizable?: boolean;
|
|
62
|
-
/** Min main-axis size while resizing (any CSS length). Default 22rem. */
|
|
63
|
-
minSize?: string;
|
|
64
|
-
/** Max main-axis size while resizing (any CSS length). Default 96vw. */
|
|
65
|
-
maxSize?: string;
|
|
66
|
-
/**
|
|
67
|
-
* Frosted glass instead of a solid panel: the page shows through,
|
|
68
|
-
* blurred, under a lighter scrim (.lp-glass-overlay, .lp-scrim--light).
|
|
69
|
-
* A look, not a behaviour, so it is the app's call: unset follows
|
|
70
|
-
* `provideGlass`, and without one it is off.
|
|
71
|
-
*/
|
|
72
|
-
glass?: boolean;
|
|
73
|
-
}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
74
|
-
"update:open": (value: boolean) => any;
|
|
75
|
-
}, string, import('vue').PublicProps, Readonly<{
|
|
76
|
-
open?: boolean;
|
|
77
|
-
/** Edge the drawer attaches to. `side` is a back-compat alias (left/right). */
|
|
78
|
-
direction?: "left" | "right" | "top" | "bottom";
|
|
79
|
-
side?: "left" | "right";
|
|
80
|
-
title?: string;
|
|
81
|
-
description?: string;
|
|
82
|
-
/** Size preset along the drawer's main axis (width for left/right, height for top/bottom). */
|
|
83
|
-
size?: "sm" | "md" | "lg" | "xl";
|
|
84
|
-
/** Explicit size override (any CSS length), wins over `size`. */
|
|
85
|
-
width?: string;
|
|
86
|
-
/** Drag-to-dismiss + click-outside. Set false to force a controlled close. */
|
|
87
|
-
dismissible?: boolean;
|
|
88
|
-
/** Fractions (0–1) or px strings the drawer snaps between, nearest edge first. */
|
|
89
|
-
snapPoints?: (number | string)[];
|
|
90
|
-
/** Show the drag handle (auto-on for bottom/top sheets). */
|
|
91
|
-
handle?: boolean;
|
|
92
|
-
/** Only the handle initiates a drag — frees inner content to scroll. */
|
|
93
|
-
handleOnly?: boolean;
|
|
94
|
-
/** Scale the [vaul-drawer-wrapper] background while open. */
|
|
95
|
-
scaleBackground?: boolean;
|
|
96
|
-
/** Drag fraction (0–1) past which a release dismisses. */
|
|
97
|
-
closeThreshold?: number;
|
|
98
|
-
/**
|
|
99
|
-
* Auto-tag interactive descendants (input, textarea, select, button, links,
|
|
100
|
-
* [contenteditable]) with data-vaul-no-drag so a drag can't start on them —
|
|
101
|
-
* you can select text / use controls without dragging the drawer. On by
|
|
102
|
-
* default; the drawer still drags from empty space, the handle and header.
|
|
103
|
-
*/
|
|
104
|
-
noDragControls?: boolean;
|
|
105
|
-
/**
|
|
106
|
-
* Mark the entire body as non-draggable: the drawer then only drags from the
|
|
107
|
-
* handle/header. Stronger than noDragControls — use for form-heavy drawers.
|
|
108
|
-
*/
|
|
109
|
-
noDragContent?: boolean;
|
|
110
|
-
/**
|
|
111
|
-
* Open by dragging in from the screen edge (Discord-style). A touch that
|
|
112
|
-
* starts within `edgeSize` of the edge and travels inward drags a preview of
|
|
113
|
-
* the panel (with its content) under the finger; a release past
|
|
114
|
-
* `edgeOpenThreshold`, or a quick flick, opens the drawer. Nothing is laid
|
|
115
|
-
* over the edge, so taps there still reach the page. Left/right drawers only.
|
|
116
|
-
*/
|
|
117
|
-
edgeOpen?: boolean;
|
|
118
|
-
/**
|
|
119
|
-
* Tailwind breakpoint at and above which the edge pull is ignored. Pass the
|
|
120
|
-
* same breakpoint at which the host switches to the drawer (LpSidebar
|
|
121
|
-
* does), so a wide touch screen with the rail visible doesn't pull it too.
|
|
122
|
-
*/
|
|
123
|
-
edgeBreakpoint?: "sm" | "md" | "lg" | "xl";
|
|
124
|
-
/** Distance (px) from the edge within which a touch can start a pull. */
|
|
125
|
-
edgeSize?: number;
|
|
126
|
-
/** Fraction (0–1) of the panel width the pull must reach to open on release. */
|
|
127
|
-
edgeOpenThreshold?: number;
|
|
128
|
-
/**
|
|
129
|
-
* Let the user drag the inner edge to resize the panel (horizontal drawers
|
|
130
|
-
* only — e.g. a logs panel whose long lines overflow). The new size is kept
|
|
131
|
-
* for the session. Min/max bound the drag.
|
|
132
|
-
*/
|
|
133
|
-
resizable?: boolean;
|
|
134
|
-
/** Min main-axis size while resizing (any CSS length). Default 22rem. */
|
|
135
|
-
minSize?: string;
|
|
136
|
-
/** Max main-axis size while resizing (any CSS length). Default 96vw. */
|
|
137
|
-
maxSize?: string;
|
|
138
|
-
/**
|
|
139
|
-
* Frosted glass instead of a solid panel: the page shows through,
|
|
140
|
-
* blurred, under a lighter scrim (.lp-glass-overlay, .lp-scrim--light).
|
|
141
|
-
* A look, not a behaviour, so it is the app's call: unset follows
|
|
142
|
-
* `provideGlass`, and without one it is off.
|
|
143
|
-
*/
|
|
144
|
-
glass?: boolean;
|
|
145
|
-
}> & Readonly<{
|
|
146
|
-
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
147
|
-
}>, {
|
|
148
|
-
size: "sm" | "md" | "lg" | "xl";
|
|
149
|
-
side: "left" | "right";
|
|
150
|
-
glass: boolean;
|
|
151
|
-
dismissible: boolean;
|
|
152
|
-
noDragControls: boolean;
|
|
153
|
-
edgeSize: number;
|
|
154
|
-
edgeOpenThreshold: number;
|
|
155
|
-
minSize: string;
|
|
156
|
-
maxSize: string;
|
|
157
|
-
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, {
|
|
158
|
-
default?: (props: {}) => any;
|
|
159
|
-
} & {
|
|
160
|
-
title?: (props: {}) => any;
|
|
161
|
-
} & {
|
|
162
|
-
default?: (props: {}) => any;
|
|
163
|
-
} & {
|
|
164
|
-
footer?: (props: {}) => any;
|
|
165
|
-
}>;
|
|
166
|
-
type __VLS_WithSlots<T, S> = T & {
|
|
167
|
-
new (): {
|
|
168
|
-
$slots: S;
|
|
169
|
-
};
|
|
170
|
-
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export interface MenuItem {
|
|
2
|
-
label: string;
|
|
3
|
-
icon?: string;
|
|
4
|
-
danger?: boolean;
|
|
5
|
-
separatorBefore?: boolean;
|
|
6
|
-
onSelect?: () => void;
|
|
7
|
-
}
|
|
8
|
-
type __VLS_Props = {
|
|
9
|
-
items: MenuItem[];
|
|
10
|
-
};
|
|
11
|
-
declare var __VLS_14: {};
|
|
12
|
-
type __VLS_Slots = {} & {
|
|
13
|
-
trigger?: (props: typeof __VLS_14) => any;
|
|
14
|
-
};
|
|
15
|
-
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
16
|
-
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
17
|
-
declare const _default: typeof __VLS_export;
|
|
18
|
-
export default _default;
|
|
19
|
-
type __VLS_WithSlots<T, S> = T & {
|
|
20
|
-
new (): {
|
|
21
|
-
$slots: S;
|
|
22
|
-
};
|
|
23
|
-
};
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
declare const _default: typeof __VLS_export;
|
|
2
|
-
export default _default;
|
|
3
|
-
declare const __VLS_export: __VLS_WithSlots<import('vue').DefineComponent<{
|
|
4
|
-
/** Same syntax as the input's: "image/*", ".yaml,.yml". */
|
|
5
|
-
accept?: string;
|
|
6
|
-
/** Take more than one at a time. */
|
|
7
|
-
multiple?: boolean;
|
|
8
|
-
disabled?: boolean;
|
|
9
|
-
/**
|
|
10
|
-
* Also accept a paste anywhere on the page, not only while focused.
|
|
11
|
-
* Off by default: two zones both listening would each take the same
|
|
12
|
-
* screenshot, and a page with one obvious target is the case for it.
|
|
13
|
-
*/
|
|
14
|
-
pasteTarget?: boolean;
|
|
15
|
-
/** Largest file accepted, in bytes. Bigger ones are rejected, not silently
|
|
16
|
-
* dropped — a picture that vanishes reads as a broken uploader. */
|
|
17
|
-
maxBytes?: number;
|
|
18
|
-
icon?: string;
|
|
19
|
-
title?: string;
|
|
20
|
-
hint?: string;
|
|
21
|
-
/**
|
|
22
|
-
* How the well sits against what holds it. A drop target reads as a hole
|
|
23
|
-
* in the surface, not a tile on top of it, so the default is darker than
|
|
24
|
-
* the card — which is what a dashed border is already suggesting.
|
|
25
|
-
* `flush` for a zone that fills a panel of its own, `soft` when it sits
|
|
26
|
-
* directly on the page background and needs to lift off it instead.
|
|
27
|
-
*/
|
|
28
|
-
tone?: "sunken" | "flush" | "soft";
|
|
29
|
-
/** Draw the entrance when the zone first comes into view. */
|
|
30
|
-
animate?: boolean;
|
|
31
|
-
}, {
|
|
32
|
-
browse: () => void | undefined;
|
|
33
|
-
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
34
|
-
files: (files: File[]) => any;
|
|
35
|
-
rejected: (reason: {
|
|
36
|
-
file: File;
|
|
37
|
-
cause: "type" | "size";
|
|
38
|
-
}[]) => any;
|
|
39
|
-
}, string, import('vue').PublicProps, Readonly<{
|
|
40
|
-
/** Same syntax as the input's: "image/*", ".yaml,.yml". */
|
|
41
|
-
accept?: string;
|
|
42
|
-
/** Take more than one at a time. */
|
|
43
|
-
multiple?: boolean;
|
|
44
|
-
disabled?: boolean;
|
|
45
|
-
/**
|
|
46
|
-
* Also accept a paste anywhere on the page, not only while focused.
|
|
47
|
-
* Off by default: two zones both listening would each take the same
|
|
48
|
-
* screenshot, and a page with one obvious target is the case for it.
|
|
49
|
-
*/
|
|
50
|
-
pasteTarget?: boolean;
|
|
51
|
-
/** Largest file accepted, in bytes. Bigger ones are rejected, not silently
|
|
52
|
-
* dropped — a picture that vanishes reads as a broken uploader. */
|
|
53
|
-
maxBytes?: number;
|
|
54
|
-
icon?: string;
|
|
55
|
-
title?: string;
|
|
56
|
-
hint?: string;
|
|
57
|
-
/**
|
|
58
|
-
* How the well sits against what holds it. A drop target reads as a hole
|
|
59
|
-
* in the surface, not a tile on top of it, so the default is darker than
|
|
60
|
-
* the card — which is what a dashed border is already suggesting.
|
|
61
|
-
* `flush` for a zone that fills a panel of its own, `soft` when it sits
|
|
62
|
-
* directly on the page background and needs to lift off it instead.
|
|
63
|
-
*/
|
|
64
|
-
tone?: "sunken" | "flush" | "soft";
|
|
65
|
-
/** Draw the entrance when the zone first comes into view. */
|
|
66
|
-
animate?: boolean;
|
|
67
|
-
}> & Readonly<{
|
|
68
|
-
onFiles?: ((files: File[]) => any) | undefined;
|
|
69
|
-
onRejected?: ((reason: {
|
|
70
|
-
file: File;
|
|
71
|
-
cause: "type" | "size";
|
|
72
|
-
}[]) => any) | undefined;
|
|
73
|
-
}>, {
|
|
74
|
-
title: string;
|
|
75
|
-
animate: boolean;
|
|
76
|
-
icon: string;
|
|
77
|
-
accept: string;
|
|
78
|
-
multiple: boolean;
|
|
79
|
-
hint: string;
|
|
80
|
-
tone: "sunken" | "flush" | "soft";
|
|
81
|
-
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, {
|
|
82
|
-
default?: (props: {
|
|
83
|
-
over: boolean;
|
|
84
|
-
}) => any;
|
|
85
|
-
}>;
|
|
86
|
-
type __VLS_WithSlots<T, S> = T & {
|
|
87
|
-
new (): {
|
|
88
|
-
$slots: S;
|
|
89
|
-
};
|
|
90
|
-
};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
declare const _default: typeof __VLS_export;
|
|
2
|
-
export default _default;
|
|
3
|
-
declare const __VLS_export: __VLS_WithSlots<import('vue').DefineComponent<{
|
|
4
|
-
icon?: string;
|
|
5
|
-
title: string;
|
|
6
|
-
description?: string;
|
|
7
|
-
/**
|
|
8
|
-
* Tightens the block for empty states nested inside a card or a panel,
|
|
9
|
-
* where the full-page padding would dwarf its container.
|
|
10
|
-
*/
|
|
11
|
-
compact?: boolean;
|
|
12
|
-
}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
|
|
13
|
-
icon?: string;
|
|
14
|
-
title: string;
|
|
15
|
-
description?: string;
|
|
16
|
-
/**
|
|
17
|
-
* Tightens the block for empty states nested inside a card or a panel,
|
|
18
|
-
* where the full-page padding would dwarf its container.
|
|
19
|
-
*/
|
|
20
|
-
compact?: boolean;
|
|
21
|
-
}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, {
|
|
22
|
-
default?: (props: {}) => any;
|
|
23
|
-
}>;
|
|
24
|
-
type __VLS_WithSlots<T, S> = T & {
|
|
25
|
-
new (): {
|
|
26
|
-
$slots: S;
|
|
27
|
-
};
|
|
28
|
-
};
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { FileNode } from './fileTree';
|
|
2
|
-
export type { FileNode } from './fileTree';
|
|
3
|
-
/** Rolled-up stats for the ticked entries — what a backup picker summarises. */
|
|
4
|
-
export interface FileTreeSummary {
|
|
5
|
-
/** Ticked files (directories excluded — they're containers, not payload). */
|
|
6
|
-
files: number;
|
|
7
|
-
/** Ticked directories. */
|
|
8
|
-
dirs: number;
|
|
9
|
-
/** Total bytes across ticked files, or undefined when no size is known. */
|
|
10
|
-
bytes?: number;
|
|
11
|
-
/** `bytes` pre-formatted ("2.4 GB"), or "—". */
|
|
12
|
-
sizeLabel: string;
|
|
13
|
-
}
|
|
14
|
-
declare const _default: typeof __VLS_export;
|
|
15
|
-
export default _default;
|
|
16
|
-
declare const __VLS_export: __VLS_WithSlots<import('vue').DefineComponent<{
|
|
17
|
-
nodes: FileNode[];
|
|
18
|
-
/** Selected node id (v-model:selected). */
|
|
19
|
-
selected?: string;
|
|
20
|
-
/** Expanded directory ids (v-model:expanded). Omit to let the tree own it. */
|
|
21
|
-
expanded?: string[];
|
|
22
|
-
/** Directory ids currently fetching children — shows a spinner on the row. */
|
|
23
|
-
loadingIds?: string[];
|
|
24
|
-
/**
|
|
25
|
-
* Multi-select mode: every row gets a tri-state checkbox and ticking a
|
|
26
|
-
* directory cascades to its loaded subtree. This is the mode for "pick what
|
|
27
|
-
* to back up" — `selected` stays independent (it's the highlighted row).
|
|
28
|
-
*/
|
|
29
|
-
checkable?: boolean;
|
|
30
|
-
/** Ticked node ids (v-model:checked). */
|
|
31
|
-
checked?: string[];
|
|
32
|
-
/** Right-aligned size column (directories roll up their subtree). */
|
|
33
|
-
showSize?: boolean;
|
|
34
|
-
/** Right-aligned last-modified column. */
|
|
35
|
-
showModified?: boolean;
|
|
36
|
-
/** Directories first, then by name. Turn off to keep the caller's order. */
|
|
37
|
-
sort?: boolean;
|
|
38
|
-
/** Row icon size in px. */
|
|
39
|
-
iconSize?: number;
|
|
40
|
-
/** Skeleton rows while the initial listing loads. */
|
|
41
|
-
loading?: boolean;
|
|
42
|
-
skeletonRows?: number;
|
|
43
|
-
/** Empty-state copy when `nodes` is empty. */
|
|
44
|
-
emptyLabel?: string;
|
|
45
|
-
emptyDescription?: string;
|
|
46
|
-
}, {
|
|
47
|
-
reveal: (id: string) => void;
|
|
48
|
-
expandAll: () => void;
|
|
49
|
-
collapseAll: () => void;
|
|
50
|
-
checkAll: () => void;
|
|
51
|
-
clearChecked: () => void;
|
|
52
|
-
summary: import('vue').ComputedRef<FileTreeSummary>;
|
|
53
|
-
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
54
|
-
expand: (node: FileNode) => any;
|
|
55
|
-
select: (node: FileNode) => any;
|
|
56
|
-
summary: (summary: FileTreeSummary) => any;
|
|
57
|
-
open: (node: FileNode) => any;
|
|
58
|
-
collapse: (node: FileNode) => any;
|
|
59
|
-
"update:selected": (id: string) => any;
|
|
60
|
-
"update:expanded": (ids: string[]) => any;
|
|
61
|
-
"update:checked": (ids: string[]) => any;
|
|
62
|
-
}, string, import('vue').PublicProps, Readonly<{
|
|
63
|
-
nodes: FileNode[];
|
|
64
|
-
/** Selected node id (v-model:selected). */
|
|
65
|
-
selected?: string;
|
|
66
|
-
/** Expanded directory ids (v-model:expanded). Omit to let the tree own it. */
|
|
67
|
-
expanded?: string[];
|
|
68
|
-
/** Directory ids currently fetching children — shows a spinner on the row. */
|
|
69
|
-
loadingIds?: string[];
|
|
70
|
-
/**
|
|
71
|
-
* Multi-select mode: every row gets a tri-state checkbox and ticking a
|
|
72
|
-
* directory cascades to its loaded subtree. This is the mode for "pick what
|
|
73
|
-
* to back up" — `selected` stays independent (it's the highlighted row).
|
|
74
|
-
*/
|
|
75
|
-
checkable?: boolean;
|
|
76
|
-
/** Ticked node ids (v-model:checked). */
|
|
77
|
-
checked?: string[];
|
|
78
|
-
/** Right-aligned size column (directories roll up their subtree). */
|
|
79
|
-
showSize?: boolean;
|
|
80
|
-
/** Right-aligned last-modified column. */
|
|
81
|
-
showModified?: boolean;
|
|
82
|
-
/** Directories first, then by name. Turn off to keep the caller's order. */
|
|
83
|
-
sort?: boolean;
|
|
84
|
-
/** Row icon size in px. */
|
|
85
|
-
iconSize?: number;
|
|
86
|
-
/** Skeleton rows while the initial listing loads. */
|
|
87
|
-
loading?: boolean;
|
|
88
|
-
skeletonRows?: number;
|
|
89
|
-
/** Empty-state copy when `nodes` is empty. */
|
|
90
|
-
emptyLabel?: string;
|
|
91
|
-
emptyDescription?: string;
|
|
92
|
-
}> & Readonly<{
|
|
93
|
-
onExpand?: ((node: FileNode) => any) | undefined;
|
|
94
|
-
onSelect?: ((node: FileNode) => any) | undefined;
|
|
95
|
-
onSummary?: ((summary: FileTreeSummary) => any) | undefined;
|
|
96
|
-
onOpen?: ((node: FileNode) => any) | undefined;
|
|
97
|
-
onCollapse?: ((node: FileNode) => any) | undefined;
|
|
98
|
-
"onUpdate:selected"?: ((id: string) => any) | undefined;
|
|
99
|
-
"onUpdate:expanded"?: ((ids: string[]) => any) | undefined;
|
|
100
|
-
"onUpdate:checked"?: ((ids: string[]) => any) | undefined;
|
|
101
|
-
}>, {
|
|
102
|
-
sort: boolean;
|
|
103
|
-
loading: boolean;
|
|
104
|
-
skeletonRows: number;
|
|
105
|
-
emptyLabel: string;
|
|
106
|
-
iconSize: number;
|
|
107
|
-
checkable: boolean;
|
|
108
|
-
showSize: boolean;
|
|
109
|
-
showModified: boolean;
|
|
110
|
-
emptyDescription: string;
|
|
111
|
-
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, {
|
|
112
|
-
/** Replace the row's label (icons, chevron and indent stay). */
|
|
113
|
-
row(props: {
|
|
114
|
-
node: FileNode;
|
|
115
|
-
depth: number;
|
|
116
|
-
expanded: boolean;
|
|
117
|
-
selected: boolean;
|
|
118
|
-
}): unknown;
|
|
119
|
-
/** Footer under the tree, handed the live selection stats. */
|
|
120
|
-
summary(props: FileTreeSummary): unknown;
|
|
121
|
-
}>;
|
|
122
|
-
type __VLS_WithSlots<T, S> = T & {
|
|
123
|
-
new (): {
|
|
124
|
-
$slots: S;
|
|
125
|
-
};
|
|
126
|
-
};
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { FileNode, NodeStats } from './fileTree';
|
|
2
|
-
declare const _default: typeof __VLS_export;
|
|
3
|
-
export default _default;
|
|
4
|
-
declare const __VLS_export: __VLS_WithSlots<import('vue').DefineComponent<{
|
|
5
|
-
node: FileNode;
|
|
6
|
-
/** Nesting depth, 0 at the root — drives the indent guide and aria-level. */
|
|
7
|
-
depth: number;
|
|
8
|
-
expanded: Set<string>;
|
|
9
|
-
loading: Set<string>;
|
|
10
|
-
selectedId?: string;
|
|
11
|
-
focusedId?: string;
|
|
12
|
-
sort: boolean;
|
|
13
|
-
/** Rendered size of the row's icon, in px. */
|
|
14
|
-
iconSize: number;
|
|
15
|
-
/** Render a tri-state checkbox per row (multi-select mode). */
|
|
16
|
-
checkable: boolean;
|
|
17
|
-
checked: Set<string>;
|
|
18
|
-
/** Per-node state, derived once by the root for the whole tree. */
|
|
19
|
-
stats: Map<string, NodeStats>;
|
|
20
|
-
showSize: boolean;
|
|
21
|
-
showModified: boolean;
|
|
22
|
-
}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
23
|
-
check: (node: FileNode, value: boolean) => any;
|
|
24
|
-
focus: (node: FileNode) => any;
|
|
25
|
-
select: (node: FileNode) => any;
|
|
26
|
-
toggle: (node: FileNode) => any;
|
|
27
|
-
}, string, import('vue').PublicProps, Readonly<{
|
|
28
|
-
node: FileNode;
|
|
29
|
-
/** Nesting depth, 0 at the root — drives the indent guide and aria-level. */
|
|
30
|
-
depth: number;
|
|
31
|
-
expanded: Set<string>;
|
|
32
|
-
loading: Set<string>;
|
|
33
|
-
selectedId?: string;
|
|
34
|
-
focusedId?: string;
|
|
35
|
-
sort: boolean;
|
|
36
|
-
/** Rendered size of the row's icon, in px. */
|
|
37
|
-
iconSize: number;
|
|
38
|
-
/** Render a tri-state checkbox per row (multi-select mode). */
|
|
39
|
-
checkable: boolean;
|
|
40
|
-
checked: Set<string>;
|
|
41
|
-
/** Per-node state, derived once by the root for the whole tree. */
|
|
42
|
-
stats: Map<string, NodeStats>;
|
|
43
|
-
showSize: boolean;
|
|
44
|
-
showModified: boolean;
|
|
45
|
-
}> & Readonly<{
|
|
46
|
-
onCheck?: ((node: FileNode, value: boolean) => any) | undefined;
|
|
47
|
-
onFocus?: ((node: FileNode) => any) | undefined;
|
|
48
|
-
onSelect?: ((node: FileNode) => any) | undefined;
|
|
49
|
-
onToggle?: ((node: FileNode) => any) | undefined;
|
|
50
|
-
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, {
|
|
51
|
-
row(props: {
|
|
52
|
-
node: FileNode;
|
|
53
|
-
depth: number;
|
|
54
|
-
expanded: boolean;
|
|
55
|
-
selected: boolean;
|
|
56
|
-
}): unknown;
|
|
57
|
-
}>;
|
|
58
|
-
type __VLS_WithSlots<T, S> = T & {
|
|
59
|
-
new (): {
|
|
60
|
-
$slots: S;
|
|
61
|
-
};
|
|
62
|
-
};
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
declare const _default: typeof __VLS_export;
|
|
2
|
-
export default _default;
|
|
3
|
-
declare const __VLS_export: __VLS_WithSlots<import('vue').DefineComponent<{
|
|
4
|
-
label?: string;
|
|
5
|
-
hint?: string;
|
|
6
|
-
error?: string;
|
|
7
|
-
required?: boolean;
|
|
8
|
-
}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
|
|
9
|
-
label?: string;
|
|
10
|
-
hint?: string;
|
|
11
|
-
error?: string;
|
|
12
|
-
required?: boolean;
|
|
13
|
-
}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, {
|
|
14
|
-
default?: (props: {
|
|
15
|
-
id: string;
|
|
16
|
-
}) => any;
|
|
17
|
-
} & {
|
|
18
|
-
hint?: (props: {}) => any;
|
|
19
|
-
}>;
|
|
20
|
-
type __VLS_WithSlots<T, S> = T & {
|
|
21
|
-
new (): {
|
|
22
|
-
$slots: S;
|
|
23
|
-
};
|
|
24
|
-
};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
type __VLS_Props = {
|
|
2
|
-
/** iconify name, e.g. "lucide:check". Bare names assume the lucide set. */
|
|
3
|
-
name: string;
|
|
4
|
-
size?: number | string;
|
|
5
|
-
};
|
|
6
|
-
declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
7
|
-
declare const _default: typeof __VLS_export;
|
|
8
|
-
export default _default;
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
declare const _default: typeof __VLS_export;
|
|
2
|
-
export default _default;
|
|
3
|
-
declare const __VLS_export: import('vue').DefineComponent<{
|
|
4
|
-
/** The picture to work on. */
|
|
5
|
-
file: File | Blob;
|
|
6
|
-
/**
|
|
7
|
-
* Shape of the crop box.
|
|
8
|
-
*
|
|
9
|
-
* The named ones are shorthand for the common cases; a NUMBER is the real
|
|
10
|
-
* interface — `:aspect="2.35"` for anamorphic, `:aspect="0.8"` for a
|
|
11
|
-
* shelf label — so a consumer whose shape is not on the list is not stuck
|
|
12
|
-
* choosing the nearest wrong one. "free" keeps the source's own
|
|
13
|
-
* proportions and crops only what panning and zoom leave outside.
|
|
14
|
-
*/
|
|
15
|
-
aspect?: "free" | "square" | "4:3" | "3:4" | "16:9" | number;
|
|
16
|
-
/** Longest edge of the exported image. Larger sources are scaled down. */
|
|
17
|
-
maxEdge?: number;
|
|
18
|
-
/**
|
|
19
|
-
* Encoding of the export; read the result's `blob.type` for the one used.
|
|
20
|
-
*
|
|
21
|
-
* JPEG, the default, is the smallest for photographs, the case this was
|
|
22
|
-
* built for. It has no alpha channel, though: a transparent PNG comes back
|
|
23
|
-
* with its background filled black, and a logo or an icon is ruined by the
|
|
24
|
-
* crop. "source" keeps the picture's own format where a canvas can write it
|
|
25
|
-
* (PNG, JPEG, WebP) and falls back to PNG for the ones it cannot (GIF, BMP,
|
|
26
|
-
* SVG), so transparency survives either way. An animated GIF still comes
|
|
27
|
-
* back as its first frame: a canvas holds one picture.
|
|
28
|
-
*/
|
|
29
|
-
type?: "image/jpeg" | "image/png" | "image/webp" | "source";
|
|
30
|
-
/** Quality of a lossy export (JPEG, WebP); PNG ignores it. */
|
|
31
|
-
quality?: number;
|
|
32
|
-
/**
|
|
33
|
-
* Labels for the toolbar. Defaulted in English rather than left blank: an
|
|
34
|
-
* icon button with no accessible name is announced as "button", and the
|
|
35
|
-
* kit cannot reach the consumer's translations. Apps with i18n pass their
|
|
36
|
-
* own strings.
|
|
37
|
-
*/
|
|
38
|
-
labels?: Partial<Record<"rotateLeft" | "rotateRight" | "zoomIn" | "zoomOut" | "reset" | "canvas", string>>;
|
|
39
|
-
/** Fade the picture in when the editor first comes into view. */
|
|
40
|
-
animate?: boolean;
|
|
41
|
-
}, {
|
|
42
|
-
export: () => Promise<Blob | null>;
|
|
43
|
-
reset: () => void;
|
|
44
|
-
edited: import('vue').ComputedRef<boolean>;
|
|
45
|
-
shortcuts: readonly [{
|
|
46
|
-
readonly keys: readonly ["←", "→", "↑", "↓"];
|
|
47
|
-
readonly label: "Pan (Shift for a bigger step)";
|
|
48
|
-
}, {
|
|
49
|
-
readonly keys: readonly ["+", "−"];
|
|
50
|
-
readonly label: "Zoom";
|
|
51
|
-
}, {
|
|
52
|
-
readonly keys: readonly ["R"];
|
|
53
|
-
readonly label: "Rotate a quarter turn (Shift reverses)";
|
|
54
|
-
}, {
|
|
55
|
-
readonly keys: readonly ["Alt", "wheel"];
|
|
56
|
-
readonly label: "Turn freely (Shift snaps to 15°)";
|
|
57
|
-
}, {
|
|
58
|
-
readonly keys: readonly ["0"];
|
|
59
|
-
readonly label: "Reset";
|
|
60
|
-
}];
|
|
61
|
-
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
|
|
62
|
-
/** The picture to work on. */
|
|
63
|
-
file: File | Blob;
|
|
64
|
-
/**
|
|
65
|
-
* Shape of the crop box.
|
|
66
|
-
*
|
|
67
|
-
* The named ones are shorthand for the common cases; a NUMBER is the real
|
|
68
|
-
* interface — `:aspect="2.35"` for anamorphic, `:aspect="0.8"` for a
|
|
69
|
-
* shelf label — so a consumer whose shape is not on the list is not stuck
|
|
70
|
-
* choosing the nearest wrong one. "free" keeps the source's own
|
|
71
|
-
* proportions and crops only what panning and zoom leave outside.
|
|
72
|
-
*/
|
|
73
|
-
aspect?: "free" | "square" | "4:3" | "3:4" | "16:9" | number;
|
|
74
|
-
/** Longest edge of the exported image. Larger sources are scaled down. */
|
|
75
|
-
maxEdge?: number;
|
|
76
|
-
/**
|
|
77
|
-
* Encoding of the export; read the result's `blob.type` for the one used.
|
|
78
|
-
*
|
|
79
|
-
* JPEG, the default, is the smallest for photographs, the case this was
|
|
80
|
-
* built for. It has no alpha channel, though: a transparent PNG comes back
|
|
81
|
-
* with its background filled black, and a logo or an icon is ruined by the
|
|
82
|
-
* crop. "source" keeps the picture's own format where a canvas can write it
|
|
83
|
-
* (PNG, JPEG, WebP) and falls back to PNG for the ones it cannot (GIF, BMP,
|
|
84
|
-
* SVG), so transparency survives either way. An animated GIF still comes
|
|
85
|
-
* back as its first frame: a canvas holds one picture.
|
|
86
|
-
*/
|
|
87
|
-
type?: "image/jpeg" | "image/png" | "image/webp" | "source";
|
|
88
|
-
/** Quality of a lossy export (JPEG, WebP); PNG ignores it. */
|
|
89
|
-
quality?: number;
|
|
90
|
-
/**
|
|
91
|
-
* Labels for the toolbar. Defaulted in English rather than left blank: an
|
|
92
|
-
* icon button with no accessible name is announced as "button", and the
|
|
93
|
-
* kit cannot reach the consumer's translations. Apps with i18n pass their
|
|
94
|
-
* own strings.
|
|
95
|
-
*/
|
|
96
|
-
labels?: Partial<Record<"rotateLeft" | "rotateRight" | "zoomIn" | "zoomOut" | "reset" | "canvas", string>>;
|
|
97
|
-
/** Fade the picture in when the editor first comes into view. */
|
|
98
|
-
animate?: boolean;
|
|
99
|
-
}> & Readonly<{}>, {
|
|
100
|
-
type: "image/jpeg" | "image/png" | "image/webp" | "source";
|
|
101
|
-
animate: boolean;
|
|
102
|
-
labels: Partial<Record<"rotateLeft" | "rotateRight" | "zoomIn" | "zoomOut" | "reset" | "canvas", string>>;
|
|
103
|
-
aspect: "free" | "square" | "4:3" | "3:4" | "16:9" | number;
|
|
104
|
-
maxEdge: number;
|
|
105
|
-
quality: number;
|
|
106
|
-
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|