@leavepulse/ui 0.43.1 → 0.43.3

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 (132) hide show
  1. package/dist/assets/{LpCommandPalette-s_kKuCRf.css → LpCommandPalette-DH7sPcKP.css} +21 -21
  2. package/dist/assets/{LpImageEditor-D-s8tNGO.css → LpImageEditor-Ct7Y3aNu.css} +6 -6
  3. package/dist/component-names.d.ts +1 -0
  4. package/dist/components/LayoutCanvas.vue.d.ts +28 -0
  5. package/dist/components/LayoutNode.vue.d.ts +40 -0
  6. package/dist/components/LpActionBar.vue.d.ts +84 -0
  7. package/dist/components/LpAddressInput.vue.d.ts +70 -0
  8. package/dist/components/LpAlert.vue.d.ts +44 -0
  9. package/dist/components/LpAppShell.vue.d.ts +123 -0
  10. package/dist/components/LpAutocomplete.vue.d.ts +50 -0
  11. package/dist/components/LpAvatar.vue.d.ts +34 -0
  12. package/dist/components/LpBadge.vue.d.ts +20 -0
  13. package/dist/components/LpBreadcrumbs.vue.d.ts +32 -0
  14. package/dist/components/LpButton.vue.d.ts +113 -0
  15. package/dist/components/LpCalendar.vue.d.ts +29 -0
  16. package/dist/components/LpCard.vue.d.ts +60 -0
  17. package/dist/components/LpChart.vue.d.ts +130 -0
  18. package/dist/components/LpCheckbox.vue.d.ts +32 -0
  19. package/dist/components/LpCodeBlock.vue.d.ts +58 -0
  20. package/dist/components/LpColorPicker.vue.d.ts +124 -0
  21. package/dist/components/LpCommandPalette.vue.d.ts +206 -0
  22. package/dist/components/LpCommandPalette.vue.js +2 -2
  23. package/dist/components/LpConfirmDialog.vue.d.ts +59 -0
  24. package/dist/components/LpContextMenu.vue.d.ts +44 -0
  25. package/dist/components/LpDatePicker.vue.d.ts +33 -0
  26. package/dist/components/LpDisclosure.vue.d.ts +47 -0
  27. package/dist/components/LpDivider.vue.d.ts +17 -0
  28. package/dist/components/LpDrawer.vue.d.ts +170 -0
  29. package/dist/components/LpDropdownMenu.vue.d.ts +23 -0
  30. package/dist/components/LpDropzone.vue.d.ts +90 -0
  31. package/dist/components/LpEmptyState.vue.d.ts +28 -0
  32. package/dist/components/LpFileTree.vue.d.ts +126 -0
  33. package/dist/components/LpFileTreeNode.vue.d.ts +62 -0
  34. package/dist/components/LpFormField.vue.d.ts +24 -0
  35. package/dist/components/LpIcon.vue.d.ts +9 -0
  36. package/dist/components/LpImageEditor.vue.d.ts +106 -0
  37. package/dist/components/LpImageEditor.vue.js +2 -2
  38. package/dist/components/LpInfraNode.vue.d.ts +65 -0
  39. package/dist/components/LpInput.vue.d.ts +80 -0
  40. package/dist/components/LpLaneNode.vue.d.ts +24 -0
  41. package/dist/components/LpLightbox.vue.d.ts +62 -0
  42. package/dist/components/LpLink.vue.d.ts +93 -0
  43. package/dist/components/LpLogViewer.vue.d.ts +153 -0
  44. package/dist/components/LpMapPicker.vue.d.ts +59 -0
  45. package/dist/components/LpMediaGallery.vue.d.ts +80 -0
  46. package/dist/components/LpModal.vue.d.ts +66 -0
  47. package/dist/components/LpModalNav.vue.d.ts +66 -0
  48. package/dist/components/LpNotificationBell.vue.d.ts +85 -0
  49. package/dist/components/LpNumberField.vue.d.ts +21 -0
  50. package/dist/components/LpNumberFlow.vue.d.ts +35 -0
  51. package/dist/components/LpOtpInput.vue.d.ts +39 -0
  52. package/dist/components/LpPagination.vue.d.ts +35 -0
  53. package/dist/components/LpPasswordInput.vue.d.ts +36 -0
  54. package/dist/components/LpPhoneInput.vue.d.ts +49 -0
  55. package/dist/components/LpPie.vue.d.ts +196 -0
  56. package/dist/components/LpPopover.vue.d.ts +34 -0
  57. package/dist/components/LpProgress.vue.d.ts +66 -0
  58. package/dist/components/LpRadio.vue.d.ts +18 -0
  59. package/dist/components/LpRadioGroup.vue.d.ts +26 -0
  60. package/dist/components/LpRollingText.vue.d.ts +33 -0
  61. package/dist/components/LpScrollArea.vue.d.ts +28 -0
  62. package/dist/components/LpSection.vue.d.ts +120 -0
  63. package/dist/components/LpSegmented.vue.d.ts +30 -0
  64. package/dist/components/LpSelect.vue.d.ts +47 -0
  65. package/dist/components/LpServiceNode.vue.d.ts +14 -0
  66. package/dist/components/LpShift.vue.d.ts +36 -0
  67. package/dist/components/LpShortcutsDialog.vue.d.ts +24 -0
  68. package/dist/components/LpSidebar.vue.d.ts +146 -0
  69. package/dist/components/LpSidebarNav.vue.d.ts +54 -0
  70. package/dist/components/LpSkeleton.vue.d.ts +16 -0
  71. package/dist/components/LpSlider.vue.d.ts +30 -0
  72. package/dist/components/LpSparkline.vue.d.ts +48 -0
  73. package/dist/components/LpStat.vue.d.ts +69 -0
  74. package/dist/components/LpStepper.vue.d.ts +36 -0
  75. package/dist/components/LpSwitch.vue.d.ts +42 -0
  76. package/dist/components/LpTable.vue.d.ts +124 -0
  77. package/dist/components/LpTableOfContents.vue.d.ts +19 -0
  78. package/dist/components/LpTabs.vue.d.ts +47 -0
  79. package/dist/components/LpTextarea.vue.d.ts +22 -0
  80. package/dist/components/LpThemeSwitcher.vue.d.ts +47 -0
  81. package/dist/components/LpTilt.vue.d.ts +31 -0
  82. package/dist/components/LpTimeField.vue.d.ts +24 -0
  83. package/dist/components/LpToaster.vue.d.ts +3 -0
  84. package/dist/components/LpTooltip.vue.d.ts +58 -0
  85. package/dist/components/LpTopologyCanvas.vue.d.ts +205 -0
  86. package/dist/components/LpUptimeBar.vue.d.ts +46 -0
  87. package/dist/components/LpWaypointEdge.vue.d.ts +33 -0
  88. package/dist/components/actionBar.d.ts +19 -0
  89. package/dist/components/address.d.ts +107 -0
  90. package/dist/components/chart.d.ts +180 -0
  91. package/dist/components/codeHighlight.d.ts +8 -0
  92. package/dist/components/color.d.ts +65 -0
  93. package/dist/components/commandSearch.d.ts +14 -0
  94. package/dist/components/countries-data.d.ts +2 -0
  95. package/dist/components/countries.d.ts +20 -0
  96. package/dist/components/dropdown.d.ts +29 -0
  97. package/dist/components/fileTree.d.ts +79 -0
  98. package/dist/components/lightbox.d.ts +24 -0
  99. package/dist/components/modalDepth.d.ts +11 -0
  100. package/dist/components/sidebar.d.ts +42 -0
  101. package/dist/composables/easing.d.ts +46 -0
  102. package/dist/composables/useAsyncTask.d.ts +18 -0
  103. package/dist/composables/useClipboard.d.ts +46 -0
  104. package/dist/composables/useFormDraft.d.ts +67 -0
  105. package/dist/composables/useGlass.d.ts +9 -0
  106. package/dist/composables/useHotkeys.d.ts +101 -0
  107. package/dist/composables/useInputFilter.d.ts +14 -0
  108. package/dist/composables/useMergedClass.d.ts +42 -0
  109. package/dist/composables/usePillTransition.d.ts +21 -0
  110. package/dist/composables/useReveal.d.ts +26 -0
  111. package/dist/composables/useRovingFocus.d.ts +49 -0
  112. package/dist/composables/useSettled.d.ts +26 -0
  113. package/dist/composables/useShift.d.ts +35 -0
  114. package/dist/composables/useTilt.d.ts +23 -0
  115. package/dist/composables/useToast.d.ts +41 -0
  116. package/dist/composables/useZoomPan.d.ts +58 -0
  117. package/dist/icons.d.ts +1 -0
  118. package/dist/index.d.ts +162 -0
  119. package/dist/layout/registry.d.ts +26 -0
  120. package/dist/layout/tree.d.ts +75 -0
  121. package/dist/layout/useLayout.d.ts +39 -0
  122. package/dist/theme/backdrop.d.ts +9 -0
  123. package/dist/theme/config.d.ts +16 -0
  124. package/dist/theme/define.d.ts +12 -0
  125. package/dist/theme/presets.d.ts +20 -0
  126. package/dist/theme/tokens.d.ts +75 -0
  127. package/dist/theme/useTheme.d.ts +46 -0
  128. package/package.json +2 -2
  129. package/src/components/LpCommandPalette.vue +4 -4
  130. package/src/components/LpImageEditor.vue +2 -2
  131. package/src/components/commandSearch.ts +1 -1
  132. package/src/composables/useHotkeys.ts +1 -1
@@ -0,0 +1,120 @@
1
+ import { type VariantProps } from "tailwind-variants";
2
+ declare const section: import("tailwind-variants").TVReturnType<{
3
+ described: {
4
+ true: {
5
+ root: string;
6
+ };
7
+ false: {
8
+ root: string;
9
+ };
10
+ };
11
+ level: {
12
+ sm: {
13
+ title: string;
14
+ };
15
+ md: {
16
+ title: string;
17
+ };
18
+ lg: {
19
+ title: string;
20
+ };
21
+ xl: {
22
+ title: string;
23
+ };
24
+ };
25
+ }, {
26
+ root: string;
27
+ title: string;
28
+ description: string;
29
+ actions: string;
30
+ }, undefined, {
31
+ described: {
32
+ true: {
33
+ root: string;
34
+ };
35
+ false: {
36
+ root: string;
37
+ };
38
+ };
39
+ level: {
40
+ sm: {
41
+ title: string;
42
+ };
43
+ md: {
44
+ title: string;
45
+ };
46
+ lg: {
47
+ title: string;
48
+ };
49
+ xl: {
50
+ title: string;
51
+ };
52
+ };
53
+ }, {
54
+ root: string;
55
+ title: string;
56
+ description: string;
57
+ actions: string;
58
+ }, import("tailwind-variants").TVReturnType<{
59
+ described: {
60
+ true: {
61
+ root: string;
62
+ };
63
+ false: {
64
+ root: string;
65
+ };
66
+ };
67
+ level: {
68
+ sm: {
69
+ title: string;
70
+ };
71
+ md: {
72
+ title: string;
73
+ };
74
+ lg: {
75
+ title: string;
76
+ };
77
+ xl: {
78
+ title: string;
79
+ };
80
+ };
81
+ }, {
82
+ root: string;
83
+ title: string;
84
+ description: string;
85
+ actions: string;
86
+ }, undefined, unknown, unknown, undefined>>;
87
+ type SectionVariants = VariantProps<typeof section>;
88
+ type __VLS_Props = {
89
+ title?: string;
90
+ /** One line under the title. */
91
+ description?: string;
92
+ /** Iconify name shown before the title, e.g. "lucide:server". */
93
+ icon?: string;
94
+ /** Visual size. Independent of `as`, see the note above. */
95
+ level?: SectionVariants["level"];
96
+ /** The heading element to render. Pick it for the document outline. */
97
+ as?: "h1" | "h2" | "h3" | "h4" | "p";
98
+ };
99
+ type __VLS_Slots = {
100
+ /** Title markup, when a plain string is not enough. */
101
+ title?: () => unknown;
102
+ /** Description markup, when a plain string is not enough. */
103
+ description?: () => unknown;
104
+ /** Right-aligned controls: buttons, filters, a count. */
105
+ actions?: () => unknown;
106
+ /** Extra content beside the title: a badge, a count, a status dot. */
107
+ meta?: () => unknown;
108
+ };
109
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
110
+ as: "h1" | "h2" | "h3" | "h4" | "p";
111
+ level: "sm" | "md" | "lg" | "xl";
112
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
113
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
114
+ declare const _default: typeof __VLS_export;
115
+ export default _default;
116
+ type __VLS_WithSlots<T, S> = T & {
117
+ new (): {
118
+ $slots: S;
119
+ };
120
+ };
@@ -0,0 +1,30 @@
1
+ export interface SegmentedOption {
2
+ value: string;
3
+ label?: string;
4
+ /** Optional iconify name shown before the label (or alone, icon-only). */
5
+ icon?: string;
6
+ }
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
9
+ declare const __VLS_export: import("vue").DefineComponent<{
10
+ modelValue?: string;
11
+ options: SegmentedOption[];
12
+ size?: "sm" | "md";
13
+ /** Stretch to fill the container with equal-width segments. */
14
+ block?: boolean;
15
+ disabled?: boolean;
16
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
17
+ "update:modelValue": (value: string) => any;
18
+ }, string, import("vue").PublicProps, Readonly<{
19
+ modelValue?: string;
20
+ options: SegmentedOption[];
21
+ size?: "sm" | "md";
22
+ /** Stretch to fill the container with equal-width segments. */
23
+ block?: boolean;
24
+ disabled?: boolean;
25
+ }> & Readonly<{
26
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
27
+ }>, {
28
+ size: "sm" | "md";
29
+ block: boolean;
30
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -0,0 +1,47 @@
1
+ export type SelectValue = string | number;
2
+ export interface SelectOption<V extends SelectValue = SelectValue> {
3
+ value: V;
4
+ label: string;
5
+ description?: string;
6
+ }
7
+ declare const __VLS_export: <V extends SelectValue = string>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
8
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<{
9
+ modelValue?: V | V[] | undefined;
10
+ options: SelectOption<V>[];
11
+ placeholder?: string;
12
+ searchPlaceholder?: string;
13
+ searchable?: boolean;
14
+ multiple?: boolean;
15
+ clearable?: boolean;
16
+ disabled?: boolean;
17
+ emptyText?: string;
18
+ searchTerm?: string;
19
+ loading?: boolean;
20
+ loadingText?: string;
21
+ /** Trigger height, keyed to --size-control-*. Default "md". */
22
+ size?: "sm" | "md" | "lg";
23
+ } & {
24
+ onChange?: ((value: V) => any) | undefined;
25
+ "onUpdate:modelValue"?: ((value: V | V[] | undefined) => any) | undefined;
26
+ "onUpdate:searchTerm"?: ((value: string) => any) | undefined;
27
+ }> & (typeof globalThis extends {
28
+ __VLS_PROPS_FALLBACK: infer P;
29
+ } ? P : {});
30
+ expose: (exposed: {}) => void;
31
+ attrs: any;
32
+ slots: {};
33
+ emit: {
34
+ (e: "update:modelValue", value: V | V[] | undefined): void;
35
+ (e: "change", value: V): void;
36
+ (e: "update:searchTerm", value: string): void;
37
+ };
38
+ }>) => import("vue").VNode & {
39
+ __ctx?: Awaited<typeof __VLS_setup>;
40
+ };
41
+ declare const _default: typeof __VLS_export;
42
+ export default _default;
43
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
44
+ [K in keyof T]: T[K];
45
+ } : {
46
+ [K in keyof T as K]: T[K];
47
+ }) & {};
@@ -0,0 +1,14 @@
1
+ export interface ServiceNodeData {
2
+ name: string;
3
+ kind?: string;
4
+ stack?: string;
5
+ /** Fade the node back (search miss / not part of the focused node's graph). */
6
+ dimmed?: boolean;
7
+ }
8
+ type __VLS_Props = {
9
+ data: ServiceNodeData;
10
+ selected?: boolean;
11
+ };
12
+ 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>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
@@ -0,0 +1,36 @@
1
+ import { type ShiftAxis } from "../composables/useShift";
2
+ type __VLS_Props = {
3
+ /**
4
+ * Which dimension eases. `"width"` for a row that gains/loses controls,
5
+ * `"height"` for a stack whose content grows, `"both"` when either can.
6
+ */
7
+ axis?: ShiftAxis;
8
+ /** Tween length in ms. Defaults to the kit's `--duration-fast`. */
9
+ duration?: number;
10
+ /**
11
+ * Turn the easing off entirely — the wrapper stays, the box resizes
12
+ * instantly. For a box that is being driven by something else (a drag, a
13
+ * canvas), where a tween would fight the thing already animating it.
14
+ */
15
+ disabled?: boolean;
16
+ };
17
+ declare var __VLS_1: {
18
+ resizing: boolean;
19
+ };
20
+ type __VLS_Slots = {} & {
21
+ default?: (props: typeof __VLS_1) => any;
22
+ };
23
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
24
+ resizing: import("vue").Ref<boolean, boolean>;
25
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
26
+ disabled: boolean;
27
+ axis: ShiftAxis;
28
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
30
+ declare const _default: typeof __VLS_export;
31
+ export default _default;
32
+ type __VLS_WithSlots<T, S> = T & {
33
+ new (): {
34
+ $slots: S;
35
+ };
36
+ };
@@ -0,0 +1,24 @@
1
+ import { type ShortcutGroup } from "../composables/useHotkeys";
2
+ type __VLS_Props = {
3
+ open?: boolean;
4
+ groups?: ShortcutGroup[];
5
+ /** Also list the bindings mounted right now (`useHotkeys` with `help`). */
6
+ live?: boolean;
7
+ title?: string;
8
+ description?: string;
9
+ /** Frosted glass panel, passed to LpModal. Follows `provideGlass` when unset. */
10
+ glass?: boolean;
11
+ };
12
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
13
+ "update:open": (value: boolean) => any;
14
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
15
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
16
+ }>, {
17
+ title: string;
18
+ open: boolean;
19
+ glass: boolean;
20
+ groups: ShortcutGroup[];
21
+ live: boolean;
22
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
+ declare const _default: typeof __VLS_export;
24
+ export default _default;
@@ -0,0 +1,146 @@
1
+ import type { SidebarItem, SidebarSection } from "./sidebar";
2
+ export type { SidebarItem, SidebarSection } from "./sidebar";
3
+ type __VLS_Props = {
4
+ /** Active item id (v-model). Ignored when `isActive` is provided. */
5
+ modelValue?: string;
6
+ /** Flat items, or sections for grouped nav. */
7
+ items?: SidebarItem[];
8
+ sections?: SidebarSection[];
9
+ /**
10
+ * Custom active test — for router-driven nav where "active" is a path-prefix
11
+ * match (e.g. /billing vs /billing-details), not a simple id compare. When
12
+ * given it overrides the modelValue check. The consumer owns the routing.
13
+ */
14
+ isActive?: (item: SidebarItem) => boolean;
15
+ /**
16
+ * Put a filter field above the nav. A hundred-item sidebar is not read, it
17
+ * is searched: past a screenful, scanning costs more than typing, and every
18
+ * app that has one had built the same LpInput into the #header slot.
19
+ *
20
+ * Filtering is on `label` (and any `keywords` on the item), case- and
21
+ * accent-insensitive. Sections whose items all fail drop out rather than
22
+ * leaving a run of empty headings, and a collapsed section opens while a
23
+ * query is active — a hidden match is the same as no match.
24
+ */
25
+ searchable?: boolean;
26
+ /** Placeholder for that field. */
27
+ searchPlaceholder?: string;
28
+ /** The query, when the app wants to own it (v-model:search). */
29
+ search?: string;
30
+ /** Show a skeleton placeholder instead of the items. */
31
+ loading?: boolean;
32
+ /** Skeleton row count while loading. */
33
+ skeletonRows?: number;
34
+ /** Render the user/header skeleton row too (paired with a #header avatar). */
35
+ skeletonHeader?: boolean;
36
+ /**
37
+ * Collapse to a swipeable drawer on phones. Off by default so existing
38
+ * static-rail usage is unchanged.
39
+ */
40
+ responsive?: boolean;
41
+ /** Drawer open state on mobile (v-model:open). Only used when `responsive`. */
42
+ open?: boolean;
43
+ /** Tailwind breakpoint below which the drawer takes over. */
44
+ mobileBreakpoint?: "sm" | "md" | "lg" | "xl";
45
+ /** Let a pull from the left screen edge drag the mobile drawer open. */
46
+ edgeOpen?: boolean;
47
+ /**
48
+ * Draw a hairline rule between the #header (logo) and the nav. On by
49
+ * default — it visually anchors the brand above the items. Pass false for a
50
+ * flush, header-less look.
51
+ */
52
+ divider?: boolean;
53
+ /**
54
+ * Where this nav lives.
55
+ *
56
+ * `rail` is the app shell's edge: one hairline on the inner side, square
57
+ * corners, the raised shell background.
58
+ *
59
+ * `panel` is a nav that sits inside a page next to the content it drives —
60
+ * a settings index, a table picker. It is a card: boxed on all four sides
61
+ * and rounded. Without it the rail's single border reads as a stray line
62
+ * down the middle of the page, and a consumer cannot cancel it with a class
63
+ * of their own.
64
+ */
65
+ variant?: "rail" | "panel";
66
+ /**
67
+ * Rail width. A plain `class` cannot set it — the component's own `w-60`
68
+ * wins, and the kit does not merge conflicting Tailwind classes — so the
69
+ * width is a prop. Any CSS length; a page-embedded nav usually wants to
70
+ * match the column it lives in.
71
+ */
72
+ width?: string;
73
+ /**
74
+ * Which collapsible groups are folded away (v-model:collapsed). Leave it
75
+ * unbound to let the sidebar fold long navs on its own — see
76
+ * `autoCollapseAfter`.
77
+ */
78
+ collapsed?: string[];
79
+ /**
80
+ * Fold collapsible groups automatically once the nav has more than this
81
+ * many rows, counting headings and items alike.
82
+ *
83
+ * The reason is the reader, not the pixels: a short nav is taken in at a
84
+ * glance, a long one has to be searched, and searching a list you did not
85
+ * choose to have is the part that grates. Past the threshold the groups
86
+ * that are not today's work fold themselves, and the one holding the
87
+ * current page always stays open.
88
+ *
89
+ * 0 turns it off — the app then owns the state through `collapsed`.
90
+ */
91
+ autoCollapseAfter?: number;
92
+ };
93
+ declare var __VLS_1: {}, __VLS_18: {
94
+ item: SidebarItem;
95
+ active: boolean;
96
+ }, __VLS_20: {}, __VLS_22: {}, __VLS_32: {}, __VLS_49: {
97
+ item: SidebarItem;
98
+ active: boolean;
99
+ }, __VLS_51: {}, __VLS_53: {};
100
+ type __VLS_Slots = {} & {
101
+ header?: (props: typeof __VLS_1) => any;
102
+ } & {
103
+ item?: (props: typeof __VLS_18) => any;
104
+ } & {
105
+ actions?: (props: typeof __VLS_20) => any;
106
+ } & {
107
+ footer?: (props: typeof __VLS_22) => any;
108
+ } & {
109
+ header?: (props: typeof __VLS_32) => any;
110
+ } & {
111
+ item?: (props: typeof __VLS_49) => any;
112
+ } & {
113
+ actions?: (props: typeof __VLS_51) => any;
114
+ } & {
115
+ footer?: (props: typeof __VLS_53) => any;
116
+ };
117
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
118
+ select: (item: SidebarItem) => any;
119
+ "update:modelValue": (id: string) => any;
120
+ "update:open": (value: boolean) => any;
121
+ "update:collapsed": (keys: string[]) => any;
122
+ "update:search": (value: string) => any;
123
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
124
+ onSelect?: ((item: SidebarItem) => any) | undefined;
125
+ "onUpdate:modelValue"?: ((id: string) => any) | undefined;
126
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
127
+ "onUpdate:collapsed"?: ((keys: string[]) => any) | undefined;
128
+ "onUpdate:search"?: ((value: string) => any) | undefined;
129
+ }>, {
130
+ variant: "rail" | "panel";
131
+ searchPlaceholder: string;
132
+ skeletonRows: number;
133
+ skeletonHeader: boolean;
134
+ responsive: boolean;
135
+ mobileBreakpoint: "sm" | "md" | "lg" | "xl";
136
+ divider: boolean;
137
+ autoCollapseAfter: number;
138
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
139
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
140
+ declare const _default: typeof __VLS_export;
141
+ export default _default;
142
+ type __VLS_WithSlots<T, S> = T & {
143
+ new (): {
144
+ $slots: S;
145
+ };
146
+ };
@@ -0,0 +1,54 @@
1
+ import type { SidebarItem, SidebarSection } from "./sidebar";
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
4
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
5
+ /** Normalised section list (LpSidebar collapses items/sections into this). */
6
+ groups: SidebarSection[];
7
+ /** Shared layoutId so the active pill flies between desktop/drawer renders. */
8
+ pillId: string;
9
+ itemActive: (item: SidebarItem) => boolean;
10
+ loading?: boolean;
11
+ skeletonRows?: number;
12
+ skeletonHeader?: boolean;
13
+ /**
14
+ * Keys of the groups currently folded away. The owner holds this so the
15
+ * choice can outlive the component (a setting, a stored preference) — the
16
+ * nav itself only reports the intent to change it.
17
+ */
18
+ collapsedKeys?: string[];
19
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
20
+ "toggle-section": (key: string, collapsed: boolean) => any;
21
+ activate: (item: SidebarItem) => any;
22
+ }, string, import("vue").PublicProps, Readonly<{
23
+ /** Normalised section list (LpSidebar collapses items/sections into this). */
24
+ groups: SidebarSection[];
25
+ /** Shared layoutId so the active pill flies between desktop/drawer renders. */
26
+ pillId: string;
27
+ itemActive: (item: SidebarItem) => boolean;
28
+ loading?: boolean;
29
+ skeletonRows?: number;
30
+ skeletonHeader?: boolean;
31
+ /**
32
+ * Keys of the groups currently folded away. The owner holds this so the
33
+ * choice can outlive the component (a setting, a stored preference) — the
34
+ * nav itself only reports the intent to change it.
35
+ */
36
+ collapsedKeys?: string[];
37
+ }> & Readonly<{
38
+ "onToggle-section"?: ((key: string, collapsed: boolean) => any) | undefined;
39
+ onActivate?: ((item: SidebarItem) => any) | undefined;
40
+ }>, {
41
+ skeletonRows: number;
42
+ skeletonHeader: boolean;
43
+ collapsedKeys: string[];
44
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
45
+ item?: (props: {
46
+ item: SidebarItem;
47
+ active: boolean;
48
+ }) => any;
49
+ }>;
50
+ type __VLS_WithSlots<T, S> = T & {
51
+ new (): {
52
+ $slots: S;
53
+ };
54
+ };
@@ -0,0 +1,16 @@
1
+ type __VLS_Props = {
2
+ rounded?: "control" | "card" | "pill";
3
+ };
4
+ declare var __VLS_1: {};
5
+ type __VLS_Slots = {} & {
6
+ default?: (props: typeof __VLS_1) => any;
7
+ };
8
+ 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>;
9
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
12
+ type __VLS_WithSlots<T, S> = T & {
13
+ new (): {
14
+ $slots: S;
15
+ };
16
+ };
@@ -0,0 +1,30 @@
1
+ declare const _default: typeof __VLS_export;
2
+ export default _default;
3
+ declare const __VLS_export: import("vue").DefineComponent<{
4
+ modelValue?: number;
5
+ min?: number;
6
+ max?: number;
7
+ step?: number;
8
+ disabled?: boolean;
9
+ /** Accessible name for the thumb when there's no visible label. */
10
+ ariaLabel?: string;
11
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
12
+ change: (value: number) => any;
13
+ "update:modelValue": (value: number) => any;
14
+ }, string, import("vue").PublicProps, Readonly<{
15
+ modelValue?: number;
16
+ min?: number;
17
+ max?: number;
18
+ step?: number;
19
+ disabled?: boolean;
20
+ /** Accessible name for the thumb when there's no visible label. */
21
+ ariaLabel?: string;
22
+ }> & Readonly<{
23
+ onChange?: ((value: number) => any) | undefined;
24
+ "onUpdate:modelValue"?: ((value: number) => any) | undefined;
25
+ }>, {
26
+ max: number;
27
+ min: number;
28
+ step: number;
29
+ modelValue: number;
30
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -0,0 +1,48 @@
1
+ type __VLS_Props = {
2
+ /** Oldest → newest. `null` breaks the line, as in LpChart. */
3
+ data: (number | null)[];
4
+ /** Rendered size in px. The path scales to it; stroke width does not. */
5
+ width?: number;
6
+ height?: number;
7
+ /** Any CSS colour. Defaults to the brand token. */
8
+ color?: string;
9
+ /** Named theme tones, for callers that don't want to spell a var(). */
10
+ tone?: "brand" | "action" | "danger" | "accent" | "muted";
11
+ /** Fill under the line. */
12
+ area?: boolean;
13
+ /** Curve tension, as in LpChart. 0 draws a polyline. */
14
+ smooth?: number;
15
+ /** Dot on the final point — "you are here" on a trend. */
16
+ showLast?: boolean;
17
+ /**
18
+ * Pin the vertical range instead of fitting the data. Without it a flat
19
+ * series fills the box with noise, and two sparklines in one column can't
20
+ * be compared: each would be scaled to its own extremes.
21
+ */
22
+ min?: number;
23
+ max?: number;
24
+ /** Accessible description; falls back to a direction + latest value. */
25
+ ariaLabel?: string;
26
+ /**
27
+ * Draw the line on from oldest to newest when it first appears. Turn it off
28
+ * for a table that renders many at once — dozens of simultaneous sweeps
29
+ * read as flicker.
30
+ */
31
+ animate?: boolean;
32
+ /**
33
+ * Draw time in ms. The stroke travels at a near-even rate (see
34
+ * `--ease-travel`), so this is roughly how long the line is actually
35
+ * watched being drawn — not a figure mostly spent easing out.
36
+ */
37
+ duration?: number;
38
+ };
39
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
40
+ width: number;
41
+ height: number;
42
+ animate: boolean;
43
+ duration: number;
44
+ smooth: number;
45
+ tone: "brand" | "action" | "danger" | "accent" | "muted";
46
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
47
+ declare const _default: typeof __VLS_export;
48
+ export default _default;
@@ -0,0 +1,69 @@
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
+ /**
6
+ * A string is printed as given; a NUMBER counts to its new value on
7
+ * LpNumberFlow's digit wheels. A tile on a live dashboard is the one place
8
+ * a figure changes while somebody is looking at it, and a value that cuts
9
+ * from 41 to 43 says nothing about which way it moved.
10
+ */
11
+ value: string | number;
12
+ /** Formatting for a numeric `value` — see LpNumberFlow. */
13
+ compact?: boolean;
14
+ grouped?: boolean;
15
+ decimals?: number;
16
+ prefix?: string;
17
+ valueSuffix?: string;
18
+ hint?: string;
19
+ icon?: string;
20
+ online?: boolean;
21
+ /** Change vs. a previous period. Renders a coloured arrow + this text. A
22
+ * number is shown with a sign; a string is shown verbatim (e.g. "+12%"). */
23
+ delta?: number | string;
24
+ /** Appended to a numeric delta, e.g. "%". Ignored for string deltas. */
25
+ deltaSuffix?: string;
26
+ /** Trend direction. "auto" derives it from a numeric delta's sign. */
27
+ trend?: "auto" | "up" | "down" | "flat";
28
+ /** For metrics where down is good (latency, errors): swaps the colours so a
29
+ * downward trend reads as positive (action) and upward as danger. */
30
+ invertTrend?: boolean;
31
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
32
+ label: string;
33
+ /**
34
+ * A string is printed as given; a NUMBER counts to its new value on
35
+ * LpNumberFlow's digit wheels. A tile on a live dashboard is the one place
36
+ * a figure changes while somebody is looking at it, and a value that cuts
37
+ * from 41 to 43 says nothing about which way it moved.
38
+ */
39
+ value: string | number;
40
+ /** Formatting for a numeric `value` — see LpNumberFlow. */
41
+ compact?: boolean;
42
+ grouped?: boolean;
43
+ decimals?: number;
44
+ prefix?: string;
45
+ valueSuffix?: string;
46
+ hint?: string;
47
+ icon?: string;
48
+ online?: boolean;
49
+ /** Change vs. a previous period. Renders a coloured arrow + this text. A
50
+ * number is shown with a sign; a string is shown verbatim (e.g. "+12%"). */
51
+ delta?: number | string;
52
+ /** Appended to a numeric delta, e.g. "%". Ignored for string deltas. */
53
+ deltaSuffix?: string;
54
+ /** Trend direction. "auto" derives it from a numeric delta's sign. */
55
+ trend?: "auto" | "up" | "down" | "flat";
56
+ /** For metrics where down is good (latency, errors): swaps the colours so a
57
+ * downward trend reads as positive (action) and upward as danger. */
58
+ invertTrend?: boolean;
59
+ }> & Readonly<{}>, {
60
+ decimals: number;
61
+ trend: "auto" | "up" | "down" | "flat";
62
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
63
+ trend?: (props: {}) => any;
64
+ }>;
65
+ type __VLS_WithSlots<T, S> = T & {
66
+ new (): {
67
+ $slots: S;
68
+ };
69
+ };