@leavepulse/ui 0.42.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.
Files changed (155) hide show
  1. package/dist/assets/{LpCommandPalette-Esv0a-gS.css → LpCommandPalette-s_kKuCRf.css} +21 -21
  2. package/dist/chunks/{LpAddressInput-CMjaPQVw.js → LpAddressInput-B-Zvxsn7.js} +1 -1
  3. package/dist/chunks/{LpAppShell-Bcv6EhqU.js → LpAppShell-BGQVIY-3.js} +1 -1
  4. package/dist/chunks/{LpConfirmDialog-BNAvOR24.js → LpConfirmDialog-Q-bxff8z.js} +1 -1
  5. package/dist/chunks/{LpDrawer-DgaS2s2i.js → LpDrawer-BZ6k3hvo.js} +3 -3
  6. package/dist/chunks/{LpLightbox-oLqyjOln.js → LpLightbox-2sYVMY-S.js} +12 -4
  7. package/dist/chunks/{LpMediaGallery-Cid7PGYx.js → LpMediaGallery-FF-NquIo.js} +1 -1
  8. package/dist/chunks/{LpModal-8bja5bWS.js → LpModal-Bt0pQCI_.js} +2 -2
  9. package/dist/chunks/{LpModalNav-w9kfwHqO.js → LpModalNav-YaifHrXC.js} +2 -2
  10. package/dist/chunks/{LpSidebar-DlTn5nXc.js → LpSidebar-ClBUwoEz.js} +1 -1
  11. package/dist/components/LpAddressInput.vue.js +1 -1
  12. package/dist/components/LpAppShell.vue.js +1 -1
  13. package/dist/components/LpCommandPalette.vue.js +19 -72
  14. package/dist/components/LpConfirmDialog.vue.js +1 -1
  15. package/dist/components/LpDrawer.vue.js +1 -1
  16. package/dist/components/LpLightbox.vue.js +1 -1
  17. package/dist/components/LpMediaGallery.vue.js +1 -1
  18. package/dist/components/LpModal.vue.js +1 -1
  19. package/dist/components/LpModalNav.vue.js +1 -1
  20. package/dist/components/LpShortcutsDialog.vue.js +1 -1
  21. package/dist/components/LpSidebar.vue.js +1 -1
  22. package/dist/components/commandSearch.js +66 -0
  23. package/dist/components/modalDepth.js +3 -2
  24. package/dist/index.js +13 -9
  25. package/package.json +3 -3
  26. package/src/components/LpCommandPalette.vue +18 -110
  27. package/src/components/LpDrawer.vue +3 -3
  28. package/src/components/LpLightbox.vue +11 -5
  29. package/src/components/LpModal.vue +2 -2
  30. package/src/components/commandSearch.ts +92 -0
  31. package/src/components/modalDepth.ts +4 -48
  32. package/src/index.ts +2 -0
  33. package/src/tokens/tokens.css +13 -19
  34. package/dist/component-names.d.ts +0 -1
  35. package/dist/components/LayoutCanvas.vue.d.ts +0 -28
  36. package/dist/components/LayoutNode.vue.d.ts +0 -40
  37. package/dist/components/LpActionBar.vue.d.ts +0 -84
  38. package/dist/components/LpAddressInput.vue.d.ts +0 -70
  39. package/dist/components/LpAlert.vue.d.ts +0 -44
  40. package/dist/components/LpAppShell.vue.d.ts +0 -123
  41. package/dist/components/LpAutocomplete.vue.d.ts +0 -50
  42. package/dist/components/LpAvatar.vue.d.ts +0 -34
  43. package/dist/components/LpBadge.vue.d.ts +0 -20
  44. package/dist/components/LpBreadcrumbs.vue.d.ts +0 -32
  45. package/dist/components/LpButton.vue.d.ts +0 -113
  46. package/dist/components/LpCalendar.vue.d.ts +0 -29
  47. package/dist/components/LpCard.vue.d.ts +0 -60
  48. package/dist/components/LpChart.vue.d.ts +0 -130
  49. package/dist/components/LpCheckbox.vue.d.ts +0 -32
  50. package/dist/components/LpCodeBlock.vue.d.ts +0 -58
  51. package/dist/components/LpColorPicker.vue.d.ts +0 -124
  52. package/dist/components/LpCommandPalette.vue.d.ts +0 -206
  53. package/dist/components/LpConfirmDialog.vue.d.ts +0 -59
  54. package/dist/components/LpContextMenu.vue.d.ts +0 -44
  55. package/dist/components/LpDatePicker.vue.d.ts +0 -33
  56. package/dist/components/LpDisclosure.vue.d.ts +0 -47
  57. package/dist/components/LpDivider.vue.d.ts +0 -17
  58. package/dist/components/LpDrawer.vue.d.ts +0 -170
  59. package/dist/components/LpDropdownMenu.vue.d.ts +0 -23
  60. package/dist/components/LpDropzone.vue.d.ts +0 -90
  61. package/dist/components/LpEmptyState.vue.d.ts +0 -28
  62. package/dist/components/LpFileTree.vue.d.ts +0 -126
  63. package/dist/components/LpFileTreeNode.vue.d.ts +0 -62
  64. package/dist/components/LpFormField.vue.d.ts +0 -24
  65. package/dist/components/LpIcon.vue.d.ts +0 -8
  66. package/dist/components/LpImageEditor.vue.d.ts +0 -106
  67. package/dist/components/LpInfraNode.vue.d.ts +0 -65
  68. package/dist/components/LpInput.vue.d.ts +0 -80
  69. package/dist/components/LpLaneNode.vue.d.ts +0 -24
  70. package/dist/components/LpLightbox.vue.d.ts +0 -62
  71. package/dist/components/LpLink.vue.d.ts +0 -93
  72. package/dist/components/LpLogViewer.vue.d.ts +0 -153
  73. package/dist/components/LpMapPicker.vue.d.ts +0 -59
  74. package/dist/components/LpMediaGallery.vue.d.ts +0 -80
  75. package/dist/components/LpModal.vue.d.ts +0 -66
  76. package/dist/components/LpModalNav.vue.d.ts +0 -66
  77. package/dist/components/LpNotificationBell.vue.d.ts +0 -85
  78. package/dist/components/LpNumberField.vue.d.ts +0 -21
  79. package/dist/components/LpNumberFlow.vue.d.ts +0 -35
  80. package/dist/components/LpOtpInput.vue.d.ts +0 -39
  81. package/dist/components/LpPagination.vue.d.ts +0 -35
  82. package/dist/components/LpPasswordInput.vue.d.ts +0 -36
  83. package/dist/components/LpPhoneInput.vue.d.ts +0 -49
  84. package/dist/components/LpPie.vue.d.ts +0 -196
  85. package/dist/components/LpPopover.vue.d.ts +0 -34
  86. package/dist/components/LpProgress.vue.d.ts +0 -66
  87. package/dist/components/LpRadio.vue.d.ts +0 -18
  88. package/dist/components/LpRadioGroup.vue.d.ts +0 -26
  89. package/dist/components/LpRollingText.vue.d.ts +0 -33
  90. package/dist/components/LpScrollArea.vue.d.ts +0 -28
  91. package/dist/components/LpSection.vue.d.ts +0 -120
  92. package/dist/components/LpSegmented.vue.d.ts +0 -30
  93. package/dist/components/LpSelect.vue.d.ts +0 -47
  94. package/dist/components/LpServiceNode.vue.d.ts +0 -14
  95. package/dist/components/LpShift.vue.d.ts +0 -36
  96. package/dist/components/LpShortcutsDialog.vue.d.ts +0 -24
  97. package/dist/components/LpSidebar.vue.d.ts +0 -146
  98. package/dist/components/LpSidebarNav.vue.d.ts +0 -54
  99. package/dist/components/LpSkeleton.vue.d.ts +0 -16
  100. package/dist/components/LpSlider.vue.d.ts +0 -30
  101. package/dist/components/LpSparkline.vue.d.ts +0 -48
  102. package/dist/components/LpStat.vue.d.ts +0 -69
  103. package/dist/components/LpStepper.vue.d.ts +0 -36
  104. package/dist/components/LpSwitch.vue.d.ts +0 -42
  105. package/dist/components/LpTable.vue.d.ts +0 -124
  106. package/dist/components/LpTableOfContents.vue.d.ts +0 -19
  107. package/dist/components/LpTabs.vue.d.ts +0 -47
  108. package/dist/components/LpTextarea.vue.d.ts +0 -22
  109. package/dist/components/LpThemeSwitcher.vue.d.ts +0 -47
  110. package/dist/components/LpTilt.vue.d.ts +0 -31
  111. package/dist/components/LpTimeField.vue.d.ts +0 -24
  112. package/dist/components/LpToaster.vue.d.ts +0 -3
  113. package/dist/components/LpTooltip.vue.d.ts +0 -58
  114. package/dist/components/LpTopologyCanvas.vue.d.ts +0 -205
  115. package/dist/components/LpUptimeBar.vue.d.ts +0 -46
  116. package/dist/components/LpWaypointEdge.vue.d.ts +0 -21
  117. package/dist/components/actionBar.d.ts +0 -19
  118. package/dist/components/address.d.ts +0 -107
  119. package/dist/components/chart.d.ts +0 -180
  120. package/dist/components/codeHighlight.d.ts +0 -8
  121. package/dist/components/color.d.ts +0 -65
  122. package/dist/components/countries-data.d.ts +0 -2
  123. package/dist/components/countries.d.ts +0 -20
  124. package/dist/components/dropdown.d.ts +0 -29
  125. package/dist/components/fileTree.d.ts +0 -79
  126. package/dist/components/lightbox.d.ts +0 -24
  127. package/dist/components/modalDepth.d.ts +0 -15
  128. package/dist/components/sidebar.d.ts +0 -42
  129. package/dist/composables/easing.d.ts +0 -46
  130. package/dist/composables/useAsyncTask.d.ts +0 -18
  131. package/dist/composables/useClipboard.d.ts +0 -46
  132. package/dist/composables/useFormDraft.d.ts +0 -67
  133. package/dist/composables/useGlass.d.ts +0 -9
  134. package/dist/composables/useHotkeys.d.ts +0 -101
  135. package/dist/composables/useInputFilter.d.ts +0 -14
  136. package/dist/composables/useMergedClass.d.ts +0 -42
  137. package/dist/composables/usePillTransition.d.ts +0 -21
  138. package/dist/composables/useReveal.d.ts +0 -26
  139. package/dist/composables/useRovingFocus.d.ts +0 -49
  140. package/dist/composables/useSettled.d.ts +0 -26
  141. package/dist/composables/useShift.d.ts +0 -35
  142. package/dist/composables/useTilt.d.ts +0 -23
  143. package/dist/composables/useToast.d.ts +0 -41
  144. package/dist/composables/useZoomPan.d.ts +0 -58
  145. package/dist/icons.d.ts +0 -1
  146. package/dist/index.d.ts +0 -160
  147. package/dist/layout/registry.d.ts +0 -26
  148. package/dist/layout/tree.d.ts +0 -75
  149. package/dist/layout/useLayout.d.ts +0 -39
  150. package/dist/theme/backdrop.d.ts +0 -9
  151. package/dist/theme/config.d.ts +0 -16
  152. package/dist/theme/define.d.ts +0 -12
  153. package/dist/theme/presets.d.ts +0 -20
  154. package/dist/theme/tokens.d.ts +0 -75
  155. package/dist/theme/useTheme.d.ts +0 -46
@@ -1,44 +0,0 @@
1
- export interface ContextMenuItemDef {
2
- label: string;
3
- icon?: string;
4
- /** Right-aligned hint, e.g. "⌘C". */
5
- shortcut?: string;
6
- danger?: boolean;
7
- disabled?: boolean;
8
- separatorBefore?: boolean;
9
- onSelect?: () => void;
10
- /** Nested submenu. When present, onSelect is ignored. */
11
- children?: ContextMenuItemDef[];
12
- /**
13
- * Renders as a tick-box rather than a plain item, and the menu stays open on
14
- * select. For the lists where the point is to set several at once — which
15
- * columns to show, which values to filter by — and closing after each one
16
- * would mean reopening the menu for every tick.
17
- */
18
- checked?: boolean;
19
- }
20
- type __VLS_Props = {
21
- items: ContextMenuItemDef[];
22
- /**
23
- * Keep the reka menu mounted even while `items` is momentarily empty. Use when
24
- * the items are resolved on the right-click itself (e.g. a list that figures
25
- * out which row was clicked): without this the trigger would still be in
26
- * native-menu mode on that first click and swallow it.
27
- */
28
- always?: boolean;
29
- };
30
- declare var __VLS_1: {}, __VLS_18: {};
31
- type __VLS_Slots = {} & {
32
- default?: (props: typeof __VLS_1) => any;
33
- } & {
34
- default?: (props: typeof __VLS_18) => any;
35
- };
36
- 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>;
37
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
38
- declare const _default: typeof __VLS_export;
39
- export default _default;
40
- type __VLS_WithSlots<T, S> = T & {
41
- new (): {
42
- $slots: S;
43
- };
44
- };
@@ -1,33 +0,0 @@
1
- type __VLS_Props = {
2
- /** Selected date "YYYY-MM-DD" (v-model). */
3
- modelValue?: string;
4
- placeholder?: string;
5
- min?: string;
6
- max?: string;
7
- isDisabled?: (iso: string) => boolean;
8
- clearable?: boolean;
9
- disabled?: boolean;
10
- invalid?: boolean;
11
- size?: "sm" | "md" | "lg";
12
- /** Intl format for the displayed date. */
13
- format?: Intl.DateTimeFormatOptions;
14
- /** Also pick a minute; the model becomes "YYYY-MM-DDTHH:mm". */
15
- time?: boolean;
16
- /** Time a freshly picked day starts at, "HH:mm". */
17
- defaultTime?: string;
18
- /** Label of the button that closes the popover in `time` mode. */
19
- doneLabel?: string;
20
- };
21
- declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
22
- "update:modelValue": (value: string | undefined) => any;
23
- }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
24
- "onUpdate:modelValue"?: ((value: string | undefined) => any) | undefined;
25
- }>, {
26
- size: "sm" | "md" | "lg";
27
- format: Intl.DateTimeFormatOptions;
28
- placeholder: string;
29
- defaultTime: string;
30
- doneLabel: string;
31
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
32
- declare const _default: typeof __VLS_export;
33
- export default _default;
@@ -1,47 +0,0 @@
1
- declare const _default: typeof __VLS_export;
2
- export default _default;
3
- declare const __VLS_export: __VLS_WithSlots<import('vue').DefineComponent<{
4
- /** Controlled open state. Omit to let the component own it (with `defaultOpen`). */
5
- open?: boolean;
6
- defaultOpen?: boolean;
7
- /** Trigger label (or use the #trigger slot for richer content). */
8
- label?: string;
9
- /** Optional iconify name shown left of the label. */
10
- icon?: string;
11
- /**
12
- * On open, smooth-scroll the block to the top of the nearest scroll
13
- * container so its content isn't left below the fold. Fires immediately,
14
- * in parallel with the expand.
15
- */
16
- scrollIntoView?: boolean;
17
- }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
18
- "update:open": (value: boolean) => any;
19
- }, string, import('vue').PublicProps, Readonly<{
20
- /** Controlled open state. Omit to let the component own it (with `defaultOpen`). */
21
- open?: boolean;
22
- defaultOpen?: boolean;
23
- /** Trigger label (or use the #trigger slot for richer content). */
24
- label?: string;
25
- /** Optional iconify name shown left of the label. */
26
- icon?: string;
27
- /**
28
- * On open, smooth-scroll the block to the top of the nearest scroll
29
- * container so its content isn't left below the fold. Fires immediately,
30
- * in parallel with the expand.
31
- */
32
- scrollIntoView?: boolean;
33
- }> & Readonly<{
34
- "onUpdate:open"?: ((value: boolean) => any) | undefined;
35
- }>, {
36
- defaultOpen: boolean;
37
- scrollIntoView: boolean;
38
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, {
39
- trigger?: (props: {}) => any;
40
- } & {
41
- default?: (props: {}) => any;
42
- }>;
43
- type __VLS_WithSlots<T, S> = T & {
44
- new (): {
45
- $slots: S;
46
- };
47
- };
@@ -1,17 +0,0 @@
1
- type __VLS_Props = {
2
- vertical?: boolean;
3
- label?: string;
4
- };
5
- declare var __VLS_1: {};
6
- type __VLS_Slots = {} & {
7
- default?: (props: typeof __VLS_1) => any;
8
- };
9
- 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>;
10
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
11
- declare const _default: typeof __VLS_export;
12
- export default _default;
13
- type __VLS_WithSlots<T, S> = T & {
14
- new (): {
15
- $slots: S;
16
- };
17
- };
@@ -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
- };