@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.
Files changed (157) hide show
  1. package/dist/assets/{LpCommandPalette-DyT6aGdW.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 +124 -115
  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/composables/useHotkeys.js +41 -21
  25. package/dist/index.js +13 -9
  26. package/package.json +3 -3
  27. package/src/components/LpCommandPalette.vue +81 -99
  28. package/src/components/LpDrawer.vue +3 -3
  29. package/src/components/LpLightbox.vue +11 -5
  30. package/src/components/LpModal.vue +2 -2
  31. package/src/components/commandSearch.ts +92 -0
  32. package/src/components/modalDepth.ts +4 -48
  33. package/src/composables/useHotkeys.ts +54 -33
  34. package/src/index.ts +2 -0
  35. package/src/tokens/tokens.css +13 -19
  36. package/dist/component-names.d.ts +0 -1
  37. package/dist/components/LayoutCanvas.vue.d.ts +0 -28
  38. package/dist/components/LayoutNode.vue.d.ts +0 -40
  39. package/dist/components/LpActionBar.vue.d.ts +0 -84
  40. package/dist/components/LpAddressInput.vue.d.ts +0 -70
  41. package/dist/components/LpAlert.vue.d.ts +0 -44
  42. package/dist/components/LpAppShell.vue.d.ts +0 -123
  43. package/dist/components/LpAutocomplete.vue.d.ts +0 -50
  44. package/dist/components/LpAvatar.vue.d.ts +0 -34
  45. package/dist/components/LpBadge.vue.d.ts +0 -20
  46. package/dist/components/LpBreadcrumbs.vue.d.ts +0 -32
  47. package/dist/components/LpButton.vue.d.ts +0 -113
  48. package/dist/components/LpCalendar.vue.d.ts +0 -29
  49. package/dist/components/LpCard.vue.d.ts +0 -60
  50. package/dist/components/LpChart.vue.d.ts +0 -130
  51. package/dist/components/LpCheckbox.vue.d.ts +0 -32
  52. package/dist/components/LpCodeBlock.vue.d.ts +0 -58
  53. package/dist/components/LpColorPicker.vue.d.ts +0 -124
  54. package/dist/components/LpCommandPalette.vue.d.ts +0 -206
  55. package/dist/components/LpConfirmDialog.vue.d.ts +0 -59
  56. package/dist/components/LpContextMenu.vue.d.ts +0 -44
  57. package/dist/components/LpDatePicker.vue.d.ts +0 -33
  58. package/dist/components/LpDisclosure.vue.d.ts +0 -47
  59. package/dist/components/LpDivider.vue.d.ts +0 -17
  60. package/dist/components/LpDrawer.vue.d.ts +0 -170
  61. package/dist/components/LpDropdownMenu.vue.d.ts +0 -23
  62. package/dist/components/LpDropzone.vue.d.ts +0 -90
  63. package/dist/components/LpEmptyState.vue.d.ts +0 -28
  64. package/dist/components/LpFileTree.vue.d.ts +0 -126
  65. package/dist/components/LpFileTreeNode.vue.d.ts +0 -62
  66. package/dist/components/LpFormField.vue.d.ts +0 -24
  67. package/dist/components/LpIcon.vue.d.ts +0 -8
  68. package/dist/components/LpImageEditor.vue.d.ts +0 -106
  69. package/dist/components/LpInfraNode.vue.d.ts +0 -65
  70. package/dist/components/LpInput.vue.d.ts +0 -80
  71. package/dist/components/LpLaneNode.vue.d.ts +0 -24
  72. package/dist/components/LpLightbox.vue.d.ts +0 -62
  73. package/dist/components/LpLink.vue.d.ts +0 -93
  74. package/dist/components/LpLogViewer.vue.d.ts +0 -153
  75. package/dist/components/LpMapPicker.vue.d.ts +0 -59
  76. package/dist/components/LpMediaGallery.vue.d.ts +0 -80
  77. package/dist/components/LpModal.vue.d.ts +0 -66
  78. package/dist/components/LpModalNav.vue.d.ts +0 -66
  79. package/dist/components/LpNotificationBell.vue.d.ts +0 -85
  80. package/dist/components/LpNumberField.vue.d.ts +0 -21
  81. package/dist/components/LpNumberFlow.vue.d.ts +0 -35
  82. package/dist/components/LpOtpInput.vue.d.ts +0 -39
  83. package/dist/components/LpPagination.vue.d.ts +0 -35
  84. package/dist/components/LpPasswordInput.vue.d.ts +0 -36
  85. package/dist/components/LpPhoneInput.vue.d.ts +0 -49
  86. package/dist/components/LpPie.vue.d.ts +0 -196
  87. package/dist/components/LpPopover.vue.d.ts +0 -34
  88. package/dist/components/LpProgress.vue.d.ts +0 -66
  89. package/dist/components/LpRadio.vue.d.ts +0 -18
  90. package/dist/components/LpRadioGroup.vue.d.ts +0 -26
  91. package/dist/components/LpRollingText.vue.d.ts +0 -33
  92. package/dist/components/LpScrollArea.vue.d.ts +0 -28
  93. package/dist/components/LpSection.vue.d.ts +0 -120
  94. package/dist/components/LpSegmented.vue.d.ts +0 -30
  95. package/dist/components/LpSelect.vue.d.ts +0 -47
  96. package/dist/components/LpServiceNode.vue.d.ts +0 -14
  97. package/dist/components/LpShift.vue.d.ts +0 -36
  98. package/dist/components/LpShortcutsDialog.vue.d.ts +0 -24
  99. package/dist/components/LpSidebar.vue.d.ts +0 -146
  100. package/dist/components/LpSidebarNav.vue.d.ts +0 -54
  101. package/dist/components/LpSkeleton.vue.d.ts +0 -16
  102. package/dist/components/LpSlider.vue.d.ts +0 -30
  103. package/dist/components/LpSparkline.vue.d.ts +0 -48
  104. package/dist/components/LpStat.vue.d.ts +0 -69
  105. package/dist/components/LpStepper.vue.d.ts +0 -36
  106. package/dist/components/LpSwitch.vue.d.ts +0 -42
  107. package/dist/components/LpTable.vue.d.ts +0 -124
  108. package/dist/components/LpTableOfContents.vue.d.ts +0 -19
  109. package/dist/components/LpTabs.vue.d.ts +0 -47
  110. package/dist/components/LpTextarea.vue.d.ts +0 -22
  111. package/dist/components/LpThemeSwitcher.vue.d.ts +0 -47
  112. package/dist/components/LpTilt.vue.d.ts +0 -31
  113. package/dist/components/LpTimeField.vue.d.ts +0 -24
  114. package/dist/components/LpToaster.vue.d.ts +0 -3
  115. package/dist/components/LpTooltip.vue.d.ts +0 -58
  116. package/dist/components/LpTopologyCanvas.vue.d.ts +0 -205
  117. package/dist/components/LpUptimeBar.vue.d.ts +0 -46
  118. package/dist/components/LpWaypointEdge.vue.d.ts +0 -21
  119. package/dist/components/actionBar.d.ts +0 -19
  120. package/dist/components/address.d.ts +0 -107
  121. package/dist/components/chart.d.ts +0 -180
  122. package/dist/components/codeHighlight.d.ts +0 -8
  123. package/dist/components/color.d.ts +0 -65
  124. package/dist/components/countries-data.d.ts +0 -2
  125. package/dist/components/countries.d.ts +0 -20
  126. package/dist/components/dropdown.d.ts +0 -29
  127. package/dist/components/fileTree.d.ts +0 -79
  128. package/dist/components/lightbox.d.ts +0 -24
  129. package/dist/components/modalDepth.d.ts +0 -15
  130. package/dist/components/sidebar.d.ts +0 -42
  131. package/dist/composables/easing.d.ts +0 -46
  132. package/dist/composables/useAsyncTask.d.ts +0 -18
  133. package/dist/composables/useClipboard.d.ts +0 -46
  134. package/dist/composables/useFormDraft.d.ts +0 -67
  135. package/dist/composables/useGlass.d.ts +0 -9
  136. package/dist/composables/useHotkeys.d.ts +0 -99
  137. package/dist/composables/useInputFilter.d.ts +0 -14
  138. package/dist/composables/useMergedClass.d.ts +0 -42
  139. package/dist/composables/usePillTransition.d.ts +0 -21
  140. package/dist/composables/useReveal.d.ts +0 -26
  141. package/dist/composables/useRovingFocus.d.ts +0 -49
  142. package/dist/composables/useSettled.d.ts +0 -26
  143. package/dist/composables/useShift.d.ts +0 -35
  144. package/dist/composables/useTilt.d.ts +0 -23
  145. package/dist/composables/useToast.d.ts +0 -41
  146. package/dist/composables/useZoomPan.d.ts +0 -58
  147. package/dist/icons.d.ts +0 -1
  148. package/dist/index.d.ts +0 -160
  149. package/dist/layout/registry.d.ts +0 -26
  150. package/dist/layout/tree.d.ts +0 -75
  151. package/dist/layout/useLayout.d.ts +0 -39
  152. package/dist/theme/backdrop.d.ts +0 -9
  153. package/dist/theme/config.d.ts +0 -16
  154. package/dist/theme/define.d.ts +0 -12
  155. package/dist/theme/presets.d.ts +0 -20
  156. package/dist/theme/tokens.d.ts +0 -75
  157. package/dist/theme/useTheme.d.ts +0 -46
@@ -1,65 +0,0 @@
1
- export interface InfraNodeData {
2
- name: string;
3
- /** Role key: selects the colour/glyph, and shown as-is unless `roleLabel`. */
4
- role: string;
5
- /**
6
- * What to print for the role. The key itself ("host", "proxy") is an API
7
- * value, not a word for an operator to read in their own language.
8
- */
9
- roleLabel?: string;
10
- overlay?: string;
11
- online?: boolean;
12
- kind?: string;
13
- project?: string;
14
- /** Control-plane firewall rule count on this host (badge when > 0). */
15
- firewallCount?: number;
16
- /** Service count on this host (badge when defined — services toggle on). */
17
- serviceCount?: number;
18
- /**
19
- * How old this node's readings are, human-readable ("28d"). An unreachable
20
- * machine keeps serving its last snapshot, which reads as current unless the
21
- * card says otherwise — so when set, the counts below are struck through and
22
- * the age is shown in their place.
23
- */
24
- staleFor?: string;
25
- /** Fade the node back (search miss / not part of the focused node's graph). */
26
- dimmed?: boolean;
27
- /**
28
- * Wording for this node's badges. Carried in `data` because that is what
29
- * LpTopologyCanvas forwards to the node renderer; a component prop would
30
- * never reach it.
31
- */
32
- labels?: InfraNodeLabels;
33
- }
34
- /**
35
- * Wording for the badges, so the node speaks the app's language.
36
- *
37
- * The kit ships English defaults; a localised app passes its own. `{n}` is the
38
- * count, `{age}` the value of `staleFor`.
39
- */
40
- export interface InfraNodeLabels {
41
- /** Tooltip on the firewall badge. Default: "{n} firewall rule(s)". */
42
- firewallRules?: string;
43
- /** Tooltip on the service badge. Default: "{n} service(s)". */
44
- services?: string;
45
- /** Tooltip on the service badge when readings are stale. */
46
- servicesStale?: string;
47
- /** Tooltip on the staleness badge. */
48
- noContact?: string;
49
- /** Suffix after the age, e.g. "old" in "4m old". */
50
- old?: string;
51
- }
52
- type __VLS_Props = {
53
- data: InfraNodeData;
54
- selected?: boolean;
55
- /** Extra/overriding role styles, merged over the defaults below. */
56
- roles?: Record<string, InfraRoleStyle>;
57
- };
58
- export interface InfraRoleStyle {
59
- /** CSS colour — normally a var() reference, e.g. var(--color-node-edge). */
60
- color: string;
61
- icon: string;
62
- }
63
- 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>;
64
- declare const _default: typeof __VLS_export;
65
- export default _default;
@@ -1,80 +0,0 @@
1
- declare const _default: typeof __VLS_export;
2
- export default _default;
3
- declare const __VLS_export: __VLS_WithSlots<import('vue').DefineComponent<{
4
- modelValue?: string;
5
- size?: "sm" | "md" | "lg" | undefined;
6
- invalid?: boolean;
7
- placeholder?: string;
8
- type?: string;
9
- disabled?: boolean;
10
- label?: string;
11
- hint?: string;
12
- error?: string;
13
- icon?: string;
14
- /**
15
- * Marks the label with the required indicator. The attribute still reaches
16
- * the underlying <input> for native validation; this only makes the field
17
- * read as required.
18
- */
19
- required?: boolean;
20
- /**
21
- * RegExp/string the whole value must match to be valid. Validation only —
22
- * never blocks typing; a non-matching non-empty value shows the invalid
23
- * style + aria-invalid. A bare string is anchored, like HTML `pattern`.
24
- */
25
- pattern?: RegExp | string;
26
- /**
27
- * One-char RegExp of allowed characters (e.g. /[0-9]/). Hard-blocks
28
- * disallowed input/paste at the source — cursor- and IME-safe.
29
- */
30
- restrict?: RegExp;
31
- }, {
32
- focus: (options?: FocusOptions) => void | undefined;
33
- blur: () => void | undefined;
34
- select: () => void | undefined;
35
- input: import('vue').Ref<HTMLInputElement | null, HTMLInputElement | null>;
36
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
37
- "update:modelValue": (value: string) => any;
38
- }, string, import('vue').PublicProps, Readonly<{
39
- modelValue?: string;
40
- size?: "sm" | "md" | "lg" | undefined;
41
- invalid?: boolean;
42
- placeholder?: string;
43
- type?: string;
44
- disabled?: boolean;
45
- label?: string;
46
- hint?: string;
47
- error?: string;
48
- icon?: string;
49
- /**
50
- * Marks the label with the required indicator. The attribute still reaches
51
- * the underlying <input> for native validation; this only makes the field
52
- * read as required.
53
- */
54
- required?: boolean;
55
- /**
56
- * RegExp/string the whole value must match to be valid. Validation only —
57
- * never blocks typing; a non-matching non-empty value shows the invalid
58
- * style + aria-invalid. A bare string is anchored, like HTML `pattern`.
59
- */
60
- pattern?: RegExp | string;
61
- /**
62
- * One-char RegExp of allowed characters (e.g. /[0-9]/). Hard-blocks
63
- * disallowed input/paste at the source — cursor- and IME-safe.
64
- */
65
- restrict?: RegExp;
66
- }> & Readonly<{
67
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
68
- }>, {
69
- size: "sm" | "md" | "lg";
70
- type: string;
71
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, {
72
- leading?: (props: {}) => any;
73
- } & {
74
- trailing?: (props: {}) => any;
75
- }>;
76
- type __VLS_WithSlots<T, S> = T & {
77
- new (): {
78
- $slots: S;
79
- };
80
- };
@@ -1,24 +0,0 @@
1
- /**
2
- * Custom Vue Flow node for a project SWIMLANE on LpTopologyCanvas: a sized
3
- * background zone that groups the nodes of one project (overlay network). It is
4
- * a NODE (not an overlay) so Vue Flow transforms it with pan/zoom for free.
5
- *
6
- * Purely decorative: the lane never intercepts pointer events (pan/drag pass
7
- * through to the canvas), is non-selectable / non-draggable (set on the node
8
- * object by the canvas), and sits below real nodes via a low z-index. The label
9
- * tab stays clickable-looking but is inert. Tailwind utilities only so styles
10
- * reach consumer apps via @source.
11
- */
12
- export interface LaneNodeData {
13
- label: string;
14
- /** Optional accent colour token for the lane border + label. */
15
- accent?: string;
16
- width: number;
17
- height: number;
18
- }
19
- type __VLS_Props = {
20
- data: LaneNodeData;
21
- };
22
- 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>;
23
- declare const _default: typeof __VLS_export;
24
- export default _default;
@@ -1,62 +0,0 @@
1
- import { LightboxItem } from './lightbox';
2
- type __VLS_Props = {
3
- open?: boolean;
4
- /** Images to page through. */
5
- items: LightboxItem[];
6
- /** Index of the visible image (v-model:index). */
7
- index?: number;
8
- /** Thumbnail strip along the bottom. Defaults on when there's more than one. */
9
- filmstrip?: boolean;
10
- /** Show the rotate control. */
11
- rotatable?: boolean;
12
- /** Show the download control. */
13
- downloadable?: boolean;
14
- /** Show "copy image" — needs a same-origin or CORS-readable source. */
15
- copyable?: boolean;
16
- /** Wrap from the last image back to the first. */
17
- loop?: boolean;
18
- /** Largest zoom level. */
19
- maxZoom?: number;
20
- };
21
- type __VLS_Slots = {
22
- /** Replace the caption block under the image. */
23
- caption(props: {
24
- item: LightboxItem;
25
- index: number;
26
- total: number;
27
- }): unknown;
28
- /** Extra controls in the toolbar, before the close button. */
29
- actions(props: {
30
- item: LightboxItem;
31
- index: number;
32
- }): unknown;
33
- };
34
- declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
35
- copy: (item: LightboxItem, ok: boolean) => any;
36
- download: (item: LightboxItem) => any;
37
- change: (index: number, item: LightboxItem) => any;
38
- "update:open": (value: boolean) => any;
39
- "update:index": (value: number) => any;
40
- }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
41
- onCopy?: ((item: LightboxItem, ok: boolean) => any) | undefined;
42
- onDownload?: ((item: LightboxItem) => any) | undefined;
43
- onChange?: ((index: number, item: LightboxItem) => any) | undefined;
44
- "onUpdate:open"?: ((value: boolean) => any) | undefined;
45
- "onUpdate:index"?: ((value: number) => any) | undefined;
46
- }>, {
47
- loop: boolean;
48
- open: boolean;
49
- maxZoom: number;
50
- index: number;
51
- copyable: boolean;
52
- rotatable: boolean;
53
- downloadable: boolean;
54
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
55
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
56
- declare const _default: typeof __VLS_export;
57
- export default _default;
58
- type __VLS_WithSlots<T, S> = T & {
59
- new (): {
60
- $slots: S;
61
- };
62
- };
@@ -1,93 +0,0 @@
1
- import { Component } from 'vue';
2
- declare const _default: typeof __VLS_export;
3
- export default _default;
4
- declare const __VLS_export: __VLS_WithSlots<import('vue').DefineComponent<{
5
- href?: string;
6
- external?: boolean;
7
- /** Shorthand for `tone="muted"`. */
8
- muted?: boolean;
9
- /**
10
- * "brand" — the accent link colour (default).
11
- * "ink" — inherits body text colour; for links that sit inside prose or
12
- * chrome where an accent would shout (breadcrumbs, footers, nav).
13
- * "muted" / "soft" — progressively quieter, both resolving to ink on hover.
14
- */
15
- tone?: "brand" | "ink" | "muted" | "soft";
16
- /**
17
- * Root element/component. Defaults to a native <a>. Pass a router link
18
- * component (e.g. NuxtLink or RouterLink) to keep client-side navigation;
19
- * the kit stays DOM-agnostic, the consumer supplies the link component.
20
- * Router links take their destination through their own prop (`to`), which
21
- * falls through as a plain attribute.
22
- */
23
- as?: string | Component;
24
- /**
25
- * "default" — plain hover underline.
26
- * "underline" — underlined at rest; for links inside running prose,
27
- * where hover-only underlines leave the link invisible until pointed at.
28
- * "reveal" — an underline bar that grows in from the left on hover
29
- * (origin-left scale-x 0→1). The LeavePulse landing "monitoring" link feel;
30
- * good for inline prose links and nav items that want a bit of motion.
31
- */
32
- variant?: "default" | "underline" | "reveal";
33
- /**
34
- * Which hover draws the `reveal` bar.
35
- *
36
- * "self" — the link's own hover (default), for an inline prose link.
37
- * "group" — the hover of an ancestor marked `group`, for a link inside a
38
- * row or card that is itself the click target. The row lights up and the
39
- * name sweeps with it, instead of the bar waiting for the pointer to
40
- * cross the text exactly.
41
- */
42
- revealOn?: "self" | "group";
43
- }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
44
- href?: string;
45
- external?: boolean;
46
- /** Shorthand for `tone="muted"`. */
47
- muted?: boolean;
48
- /**
49
- * "brand" — the accent link colour (default).
50
- * "ink" — inherits body text colour; for links that sit inside prose or
51
- * chrome where an accent would shout (breadcrumbs, footers, nav).
52
- * "muted" / "soft" — progressively quieter, both resolving to ink on hover.
53
- */
54
- tone?: "brand" | "ink" | "muted" | "soft";
55
- /**
56
- * Root element/component. Defaults to a native <a>. Pass a router link
57
- * component (e.g. NuxtLink or RouterLink) to keep client-side navigation;
58
- * the kit stays DOM-agnostic, the consumer supplies the link component.
59
- * Router links take their destination through their own prop (`to`), which
60
- * falls through as a plain attribute.
61
- */
62
- as?: string | Component;
63
- /**
64
- * "default" — plain hover underline.
65
- * "underline" — underlined at rest; for links inside running prose,
66
- * where hover-only underlines leave the link invisible until pointed at.
67
- * "reveal" — an underline bar that grows in from the left on hover
68
- * (origin-left scale-x 0→1). The LeavePulse landing "monitoring" link feel;
69
- * good for inline prose links and nav items that want a bit of motion.
70
- */
71
- variant?: "default" | "underline" | "reveal";
72
- /**
73
- * Which hover draws the `reveal` bar.
74
- *
75
- * "self" — the link's own hover (default), for an inline prose link.
76
- * "group" — the hover of an ancestor marked `group`, for a link inside a
77
- * row or card that is itself the click target. The row lights up and the
78
- * name sweeps with it, instead of the bar waiting for the pointer to
79
- * cross the text exactly.
80
- */
81
- revealOn?: "self" | "group";
82
- }> & Readonly<{}>, {
83
- as: string | Component;
84
- variant: "default" | "underline" | "reveal";
85
- revealOn: "self" | "group";
86
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, {
87
- default?: (props: {}) => any;
88
- }>;
89
- type __VLS_WithSlots<T, S> = T & {
90
- new (): {
91
- $slots: S;
92
- };
93
- };
@@ -1,153 +0,0 @@
1
- import { ContextMenuItemDef } from './LpContextMenu.vue';
2
- export type LogLevel = "trace" | "debug" | "info" | "warn" | "error" | "fatal" | "success";
3
- export interface LogLine {
4
- /** Body of the line. */
5
- message: string;
6
- level?: LogLevel;
7
- /** Epoch ms, ISO string, or pre-formatted label — shown in the time column. */
8
- time?: number | string;
9
- /** Short origin tag (service / module), rendered as a dim chip. */
10
- source?: string;
11
- }
12
- declare const _default: typeof __VLS_export;
13
- export default _default;
14
- declare const __VLS_export: import('vue').DefineComponent<{
15
- lines: LogLine[];
16
- /** Show the timestamp column. */
17
- showTime?: boolean;
18
- /**
19
- * Show the per-line level chip (INFO/WARN/…). On by default. Turn off for
20
- * raw streams (e.g. docker logs) where most lines have no real level and a
21
- * blanket "INFO" chip is just noise — the tonal level RAIL still renders, so
22
- * errors/warnings stay visually distinct.
23
- */
24
- showLevel?: boolean;
25
- /** Show 1-based gutter line numbers. */
26
- lineNumbers?: boolean;
27
- /** Wrap long lines instead of scrolling horizontally. */
28
- wrap?: boolean;
29
- /** Case-insensitive substring to highlight in message bodies. */
30
- highlight?: string;
31
- /** When set with `highlight`, hide every line that doesn't match. */
32
- filterMatches?: boolean;
33
- /** Collapse consecutive identical lines into one, badged with a ×N count. */
34
- compact?: boolean;
35
- /** Pin to the bottom as new lines arrive (until the user scrolls up). */
36
- tail?: boolean;
37
- /** Fixed height. Anything CSS-valid; defaults to a comfortable terminal. */
38
- height?: string;
39
- emptyLabel?: string;
40
- /** Shown while the stream is held. Defaulted in English; apps with i18n
41
- * pass their own. */
42
- frozenLabel?: string;
43
- /**
44
- * When true, a "loading older…" row is shown pinned at the top — set it while
45
- * fetching a previous page in response to `reach-top`, clear it when done.
46
- */
47
- loadingOlder?: boolean;
48
- /**
49
- * When true, the viewer emits `reach-top` as the user scrolls near the top so
50
- * the consumer can prepend older history (infinite scroll-back). The viewer
51
- * preserves the scroll position across a prepend so the view doesn't jump.
52
- */
53
- loadOlder?: boolean;
54
- /**
55
- * Right-click row menu: built-in copy actions (+ "filter by" when the line
56
- * has a source/level). Set false to disable; the row keeps the native menu.
57
- */
58
- rowMenu?: boolean;
59
- /** Extra menu items per line, appended below the built-ins with a divider. */
60
- extraRowItems?: (line: LogLine, index: number) => ContextMenuItemDef[];
61
- /**
62
- * Recognise common log formats inside each `message` and lift the level,
63
- * timestamp and [source] out of the text into the dedicated columns. When a
64
- * line already carries an explicit `level`/`time`/`source`, those win and
65
- * the message is left untouched. Off by default (raw). Handles e.g.:
66
- * "2025-01-02T03:04:05.123Z INFO [auth] user logged in"
67
- * "[2025-01-02 03:04:05] WARN: disk almost full"
68
- * "ERROR something broke"
69
- * so a duplicate level word / timestamp doesn't repeat in the message body.
70
- */
71
- parse?: boolean;
72
- }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
73
- filter: (by: {
74
- source?: string;
75
- level?: LogLevel;
76
- }) => any;
77
- "reach-top": () => any;
78
- }, string, import('vue').PublicProps, Readonly<{
79
- lines: LogLine[];
80
- /** Show the timestamp column. */
81
- showTime?: boolean;
82
- /**
83
- * Show the per-line level chip (INFO/WARN/…). On by default. Turn off for
84
- * raw streams (e.g. docker logs) where most lines have no real level and a
85
- * blanket "INFO" chip is just noise — the tonal level RAIL still renders, so
86
- * errors/warnings stay visually distinct.
87
- */
88
- showLevel?: boolean;
89
- /** Show 1-based gutter line numbers. */
90
- lineNumbers?: boolean;
91
- /** Wrap long lines instead of scrolling horizontally. */
92
- wrap?: boolean;
93
- /** Case-insensitive substring to highlight in message bodies. */
94
- highlight?: string;
95
- /** When set with `highlight`, hide every line that doesn't match. */
96
- filterMatches?: boolean;
97
- /** Collapse consecutive identical lines into one, badged with a ×N count. */
98
- compact?: boolean;
99
- /** Pin to the bottom as new lines arrive (until the user scrolls up). */
100
- tail?: boolean;
101
- /** Fixed height. Anything CSS-valid; defaults to a comfortable terminal. */
102
- height?: string;
103
- emptyLabel?: string;
104
- /** Shown while the stream is held. Defaulted in English; apps with i18n
105
- * pass their own. */
106
- frozenLabel?: string;
107
- /**
108
- * When true, a "loading older…" row is shown pinned at the top — set it while
109
- * fetching a previous page in response to `reach-top`, clear it when done.
110
- */
111
- loadingOlder?: boolean;
112
- /**
113
- * When true, the viewer emits `reach-top` as the user scrolls near the top so
114
- * the consumer can prepend older history (infinite scroll-back). The viewer
115
- * preserves the scroll position across a prepend so the view doesn't jump.
116
- */
117
- loadOlder?: boolean;
118
- /**
119
- * Right-click row menu: built-in copy actions (+ "filter by" when the line
120
- * has a source/level). Set false to disable; the row keeps the native menu.
121
- */
122
- rowMenu?: boolean;
123
- /** Extra menu items per line, appended below the built-ins with a divider. */
124
- extraRowItems?: (line: LogLine, index: number) => ContextMenuItemDef[];
125
- /**
126
- * Recognise common log formats inside each `message` and lift the level,
127
- * timestamp and [source] out of the text into the dedicated columns. When a
128
- * line already carries an explicit `level`/`time`/`source`, those win and
129
- * the message is left untouched. Off by default (raw). Handles e.g.:
130
- * "2025-01-02T03:04:05.123Z INFO [auth] user logged in"
131
- * "[2025-01-02 03:04:05] WARN: disk almost full"
132
- * "ERROR something broke"
133
- * so a duplicate level word / timestamp doesn't repeat in the message body.
134
- */
135
- parse?: boolean;
136
- }> & Readonly<{
137
- onFilter?: ((by: {
138
- source?: string;
139
- level?: LogLevel;
140
- }) => any) | undefined;
141
- "onReach-top"?: (() => any) | undefined;
142
- }>, {
143
- height: string;
144
- wrap: boolean;
145
- emptyLabel: string;
146
- lineNumbers: boolean;
147
- showTime: boolean;
148
- showLevel: boolean;
149
- tail: boolean;
150
- frozenLabel: string;
151
- rowMenu: boolean;
152
- parse: boolean;
153
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -1,59 +0,0 @@
1
- import { LatLon, TileSource } from './address';
2
- declare const _default: typeof __VLS_export;
3
- export default _default;
4
- declare const __VLS_export: import('vue').DefineComponent<{
5
- /** Picked point. Bind with v-model; undefined leaves the map unpinned. */
6
- modelValue?: LatLon;
7
- /** Tile server. Defaults to OpenStreetMap; swap for your own. */
8
- tiles?: TileSource;
9
- /** Zoom used on first paint, and when a point arrives from outside. */
10
- zoom?: number;
11
- /** Where to look when there is no point yet. */
12
- center?: LatLon;
13
- disabled?: boolean;
14
- /** Any CSS length. */
15
- height?: string;
16
- /** Offer the "use my location" control (needs a secure context). */
17
- locatable?: boolean;
18
- zoomInLabel?: string;
19
- zoomOutLabel?: string;
20
- locateLabel?: string;
21
- recentreLabel?: string;
22
- }, {
23
- zoomIn: () => void;
24
- zoomOut: () => void;
25
- recentre: () => void;
26
- locate: () => void;
27
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
28
- "update:modelValue": (value: LatLon) => any;
29
- }, string, import('vue').PublicProps, Readonly<{
30
- /** Picked point. Bind with v-model; undefined leaves the map unpinned. */
31
- modelValue?: LatLon;
32
- /** Tile server. Defaults to OpenStreetMap; swap for your own. */
33
- tiles?: TileSource;
34
- /** Zoom used on first paint, and when a point arrives from outside. */
35
- zoom?: number;
36
- /** Where to look when there is no point yet. */
37
- center?: LatLon;
38
- disabled?: boolean;
39
- /** Any CSS length. */
40
- height?: string;
41
- /** Offer the "use my location" control (needs a secure context). */
42
- locatable?: boolean;
43
- zoomInLabel?: string;
44
- zoomOutLabel?: string;
45
- locateLabel?: string;
46
- recentreLabel?: string;
47
- }> & Readonly<{
48
- "onUpdate:modelValue"?: ((value: LatLon) => any) | undefined;
49
- }>, {
50
- center: LatLon;
51
- height: string;
52
- zoom: number;
53
- tiles: TileSource;
54
- locatable: boolean;
55
- zoomInLabel: string;
56
- zoomOutLabel: string;
57
- locateLabel: string;
58
- recentreLabel: string;
59
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -1,80 +0,0 @@
1
- import { LightboxItem } from './lightbox';
2
- type __VLS_Props = {
3
- /** Images in the set. The same shape LpLightbox takes. */
4
- items: LightboxItem[];
5
- /**
6
- * Thumbnails per row. A number is that many at every width; an object is
7
- * per breakpoint, e.g. `{ base: 2, md: 3, lg: 4 }`.
8
- */
9
- columns?: number | {
10
- base?: number;
11
- sm?: number;
12
- md?: number;
13
- lg?: number;
14
- xl?: number;
15
- };
16
- /** Space between thumbnails, as a Tailwind gap step. */
17
- gap?: 0 | 0.5 | 1 | 1.5 | 2 | 3 | 4;
18
- /** Shape of each cell. `auto` lets the image decide its own height. */
19
- aspect?: "square" | "video" | "auto";
20
- /**
21
- * Show at most this many, with the remainder as a "+N" badge over the last
22
- * visible one — the usual treatment for a set too big for the space it has.
23
- * Clicking the badge opens the lightbox at the first hidden image, because
24
- * that is the one the count is about.
25
- */
26
- max?: number;
27
- /** Open the lightbox on click. Off makes the grid a pure display. */
28
- openable?: boolean;
29
- /** Passed through to the lightbox. */
30
- downloadable?: boolean;
31
- /** Passed through to the lightbox. */
32
- rotatable?: boolean;
33
- /** Accessible name for the grid. */
34
- ariaLabel?: string;
35
- };
36
- type __VLS_Slots = {
37
- /** Replace a cell's contents. Gets the item and its index. */
38
- item(props: {
39
- item: LightboxItem;
40
- index: number;
41
- }): unknown;
42
- /** Shown instead of the grid when `items` is empty. */
43
- empty(): unknown;
44
- };
45
- declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
46
- /** Open the lightbox at an index — for a "view all" button outside the grid. */
47
- openAt: (i: number) => void;
48
- /** Uncover every spoiler in the set. */
49
- revealAll: () => void;
50
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
51
- select: (item: LightboxItem, index: number) => any;
52
- "update:open": (value: boolean) => any;
53
- reveal: (item: LightboxItem) => any;
54
- }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
55
- onSelect?: ((item: LightboxItem, index: number) => any) | undefined;
56
- "onUpdate:open"?: ((value: boolean) => any) | undefined;
57
- onReveal?: ((item: LightboxItem) => any) | undefined;
58
- }>, {
59
- columns: number | {
60
- base?: number;
61
- sm?: number;
62
- md?: number;
63
- lg?: number;
64
- xl?: number;
65
- };
66
- gap: 0 | 0.5 | 1 | 1.5 | 2 | 3 | 4;
67
- ariaLabel: string;
68
- aspect: "square" | "video" | "auto";
69
- rotatable: boolean;
70
- downloadable: boolean;
71
- openable: boolean;
72
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
73
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
74
- declare const _default: typeof __VLS_export;
75
- export default _default;
76
- type __VLS_WithSlots<T, S> = T & {
77
- new (): {
78
- $slots: S;
79
- };
80
- };