@leavepulse/ui 0.43.2 → 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 (124) hide show
  1. package/dist/component-names.d.ts +1 -0
  2. package/dist/components/LayoutCanvas.vue.d.ts +28 -0
  3. package/dist/components/LayoutNode.vue.d.ts +40 -0
  4. package/dist/components/LpActionBar.vue.d.ts +84 -0
  5. package/dist/components/LpAddressInput.vue.d.ts +70 -0
  6. package/dist/components/LpAlert.vue.d.ts +44 -0
  7. package/dist/components/LpAppShell.vue.d.ts +123 -0
  8. package/dist/components/LpAutocomplete.vue.d.ts +50 -0
  9. package/dist/components/LpAvatar.vue.d.ts +34 -0
  10. package/dist/components/LpBadge.vue.d.ts +20 -0
  11. package/dist/components/LpBreadcrumbs.vue.d.ts +32 -0
  12. package/dist/components/LpButton.vue.d.ts +113 -0
  13. package/dist/components/LpCalendar.vue.d.ts +29 -0
  14. package/dist/components/LpCard.vue.d.ts +60 -0
  15. package/dist/components/LpChart.vue.d.ts +130 -0
  16. package/dist/components/LpCheckbox.vue.d.ts +32 -0
  17. package/dist/components/LpCodeBlock.vue.d.ts +58 -0
  18. package/dist/components/LpColorPicker.vue.d.ts +124 -0
  19. package/dist/components/LpCommandPalette.vue.d.ts +206 -0
  20. package/dist/components/LpConfirmDialog.vue.d.ts +59 -0
  21. package/dist/components/LpContextMenu.vue.d.ts +44 -0
  22. package/dist/components/LpDatePicker.vue.d.ts +33 -0
  23. package/dist/components/LpDisclosure.vue.d.ts +47 -0
  24. package/dist/components/LpDivider.vue.d.ts +17 -0
  25. package/dist/components/LpDrawer.vue.d.ts +170 -0
  26. package/dist/components/LpDropdownMenu.vue.d.ts +23 -0
  27. package/dist/components/LpDropzone.vue.d.ts +90 -0
  28. package/dist/components/LpEmptyState.vue.d.ts +28 -0
  29. package/dist/components/LpFileTree.vue.d.ts +126 -0
  30. package/dist/components/LpFileTreeNode.vue.d.ts +62 -0
  31. package/dist/components/LpFormField.vue.d.ts +24 -0
  32. package/dist/components/LpIcon.vue.d.ts +9 -0
  33. package/dist/components/LpImageEditor.vue.d.ts +106 -0
  34. package/dist/components/LpInfraNode.vue.d.ts +65 -0
  35. package/dist/components/LpInput.vue.d.ts +80 -0
  36. package/dist/components/LpLaneNode.vue.d.ts +24 -0
  37. package/dist/components/LpLightbox.vue.d.ts +62 -0
  38. package/dist/components/LpLink.vue.d.ts +93 -0
  39. package/dist/components/LpLogViewer.vue.d.ts +153 -0
  40. package/dist/components/LpMapPicker.vue.d.ts +59 -0
  41. package/dist/components/LpMediaGallery.vue.d.ts +80 -0
  42. package/dist/components/LpModal.vue.d.ts +66 -0
  43. package/dist/components/LpModalNav.vue.d.ts +66 -0
  44. package/dist/components/LpNotificationBell.vue.d.ts +85 -0
  45. package/dist/components/LpNumberField.vue.d.ts +21 -0
  46. package/dist/components/LpNumberFlow.vue.d.ts +35 -0
  47. package/dist/components/LpOtpInput.vue.d.ts +39 -0
  48. package/dist/components/LpPagination.vue.d.ts +35 -0
  49. package/dist/components/LpPasswordInput.vue.d.ts +36 -0
  50. package/dist/components/LpPhoneInput.vue.d.ts +49 -0
  51. package/dist/components/LpPie.vue.d.ts +196 -0
  52. package/dist/components/LpPopover.vue.d.ts +34 -0
  53. package/dist/components/LpProgress.vue.d.ts +66 -0
  54. package/dist/components/LpRadio.vue.d.ts +18 -0
  55. package/dist/components/LpRadioGroup.vue.d.ts +26 -0
  56. package/dist/components/LpRollingText.vue.d.ts +33 -0
  57. package/dist/components/LpScrollArea.vue.d.ts +28 -0
  58. package/dist/components/LpSection.vue.d.ts +120 -0
  59. package/dist/components/LpSegmented.vue.d.ts +30 -0
  60. package/dist/components/LpSelect.vue.d.ts +47 -0
  61. package/dist/components/LpServiceNode.vue.d.ts +14 -0
  62. package/dist/components/LpShift.vue.d.ts +36 -0
  63. package/dist/components/LpShortcutsDialog.vue.d.ts +24 -0
  64. package/dist/components/LpSidebar.vue.d.ts +146 -0
  65. package/dist/components/LpSidebarNav.vue.d.ts +54 -0
  66. package/dist/components/LpSkeleton.vue.d.ts +16 -0
  67. package/dist/components/LpSlider.vue.d.ts +30 -0
  68. package/dist/components/LpSparkline.vue.d.ts +48 -0
  69. package/dist/components/LpStat.vue.d.ts +69 -0
  70. package/dist/components/LpStepper.vue.d.ts +36 -0
  71. package/dist/components/LpSwitch.vue.d.ts +42 -0
  72. package/dist/components/LpTable.vue.d.ts +124 -0
  73. package/dist/components/LpTableOfContents.vue.d.ts +19 -0
  74. package/dist/components/LpTabs.vue.d.ts +47 -0
  75. package/dist/components/LpTextarea.vue.d.ts +22 -0
  76. package/dist/components/LpThemeSwitcher.vue.d.ts +47 -0
  77. package/dist/components/LpTilt.vue.d.ts +31 -0
  78. package/dist/components/LpTimeField.vue.d.ts +24 -0
  79. package/dist/components/LpToaster.vue.d.ts +3 -0
  80. package/dist/components/LpTooltip.vue.d.ts +58 -0
  81. package/dist/components/LpTopologyCanvas.vue.d.ts +205 -0
  82. package/dist/components/LpUptimeBar.vue.d.ts +46 -0
  83. package/dist/components/LpWaypointEdge.vue.d.ts +33 -0
  84. package/dist/components/actionBar.d.ts +19 -0
  85. package/dist/components/address.d.ts +107 -0
  86. package/dist/components/chart.d.ts +180 -0
  87. package/dist/components/codeHighlight.d.ts +8 -0
  88. package/dist/components/color.d.ts +65 -0
  89. package/dist/components/commandSearch.d.ts +14 -0
  90. package/dist/components/countries-data.d.ts +2 -0
  91. package/dist/components/countries.d.ts +20 -0
  92. package/dist/components/dropdown.d.ts +29 -0
  93. package/dist/components/fileTree.d.ts +79 -0
  94. package/dist/components/lightbox.d.ts +24 -0
  95. package/dist/components/modalDepth.d.ts +11 -0
  96. package/dist/components/sidebar.d.ts +42 -0
  97. package/dist/composables/easing.d.ts +46 -0
  98. package/dist/composables/useAsyncTask.d.ts +18 -0
  99. package/dist/composables/useClipboard.d.ts +46 -0
  100. package/dist/composables/useFormDraft.d.ts +67 -0
  101. package/dist/composables/useGlass.d.ts +9 -0
  102. package/dist/composables/useHotkeys.d.ts +101 -0
  103. package/dist/composables/useInputFilter.d.ts +14 -0
  104. package/dist/composables/useMergedClass.d.ts +42 -0
  105. package/dist/composables/usePillTransition.d.ts +21 -0
  106. package/dist/composables/useReveal.d.ts +26 -0
  107. package/dist/composables/useRovingFocus.d.ts +49 -0
  108. package/dist/composables/useSettled.d.ts +26 -0
  109. package/dist/composables/useShift.d.ts +35 -0
  110. package/dist/composables/useTilt.d.ts +23 -0
  111. package/dist/composables/useToast.d.ts +41 -0
  112. package/dist/composables/useZoomPan.d.ts +58 -0
  113. package/dist/icons.d.ts +1 -0
  114. package/dist/index.d.ts +162 -0
  115. package/dist/layout/registry.d.ts +26 -0
  116. package/dist/layout/tree.d.ts +75 -0
  117. package/dist/layout/useLayout.d.ts +39 -0
  118. package/dist/theme/backdrop.d.ts +9 -0
  119. package/dist/theme/config.d.ts +16 -0
  120. package/dist/theme/define.d.ts +12 -0
  121. package/dist/theme/presets.d.ts +20 -0
  122. package/dist/theme/tokens.d.ts +75 -0
  123. package/dist/theme/useTheme.d.ts +46 -0
  124. package/package.json +2 -2
@@ -0,0 +1,62 @@
1
+ import { type FileNode, type 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
+ };
@@ -0,0 +1,24 @@
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
+ };
@@ -0,0 +1,9 @@
1
+ import "../icons";
2
+ type __VLS_Props = {
3
+ /** iconify name, e.g. "lucide:check". Bare names assume the lucide set. */
4
+ name: string;
5
+ size?: number | string;
6
+ };
7
+ 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>;
8
+ declare const _default: typeof __VLS_export;
9
+ export default _default;
@@ -0,0 +1,106 @@
1
+ declare const _default: typeof __VLS_export;
2
+ export default _default;
3
+ declare const __VLS_export: import("vue").DefineComponent<{
4
+ /** The picture to work on. */
5
+ file: File | Blob;
6
+ /**
7
+ * Shape of the crop box.
8
+ *
9
+ * The named ones are shorthand for the common cases; a NUMBER is the real
10
+ * interface — `:aspect="2.35"` for anamorphic, `:aspect="0.8"` for a
11
+ * shelf label — so a consumer whose shape is not on the list is not stuck
12
+ * choosing the nearest wrong one. "free" keeps the source's own
13
+ * proportions and crops only what panning and zoom leave outside.
14
+ */
15
+ aspect?: "free" | "square" | "4:3" | "3:4" | "16:9" | number;
16
+ /** Longest edge of the exported image. Larger sources are scaled down. */
17
+ maxEdge?: number;
18
+ /**
19
+ * Encoding of the export; read the result's `blob.type` for the one used.
20
+ *
21
+ * JPEG, the default, is the smallest for photographs, the case this was
22
+ * built for. It has no alpha channel, though: a transparent PNG comes back
23
+ * with its background filled black, and a logo or an icon is ruined by the
24
+ * crop. "source" keeps the picture's own format where a canvas can write it
25
+ * (PNG, JPEG, WebP) and falls back to PNG for the ones it cannot (GIF, BMP,
26
+ * SVG), so transparency survives either way. An animated GIF still comes
27
+ * back as its first frame: a canvas holds one picture.
28
+ */
29
+ type?: "image/jpeg" | "image/png" | "image/webp" | "source";
30
+ /** Quality of a lossy export (JPEG, WebP); PNG ignores it. */
31
+ quality?: number;
32
+ /**
33
+ * Labels for the toolbar. Defaulted in English rather than left blank: an
34
+ * icon button with no accessible name is announced as "button", and the
35
+ * kit cannot reach the consumer's translations. Apps with i18n pass their
36
+ * own strings.
37
+ */
38
+ labels?: Partial<Record<"rotateLeft" | "rotateRight" | "zoomIn" | "zoomOut" | "reset" | "canvas", string>>;
39
+ /** Fade the picture in when the editor first comes into view. */
40
+ animate?: boolean;
41
+ }, {
42
+ export: () => Promise<Blob | null>;
43
+ reset: () => void;
44
+ edited: import("vue").ComputedRef<boolean>;
45
+ shortcuts: readonly [{
46
+ readonly keys: readonly ["←", "→", "↑", "↓"];
47
+ readonly label: "Pan (Shift for a bigger step)";
48
+ }, {
49
+ readonly keys: readonly ["+", "−"];
50
+ readonly label: "Zoom";
51
+ }, {
52
+ readonly keys: readonly ["R"];
53
+ readonly label: "Rotate a quarter turn (Shift reverses)";
54
+ }, {
55
+ readonly keys: readonly ["Alt", "wheel"];
56
+ readonly label: "Turn freely (Shift snaps to 15°)";
57
+ }, {
58
+ readonly keys: readonly ["0"];
59
+ readonly label: "Reset";
60
+ }];
61
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
62
+ /** The picture to work on. */
63
+ file: File | Blob;
64
+ /**
65
+ * Shape of the crop box.
66
+ *
67
+ * The named ones are shorthand for the common cases; a NUMBER is the real
68
+ * interface — `:aspect="2.35"` for anamorphic, `:aspect="0.8"` for a
69
+ * shelf label — so a consumer whose shape is not on the list is not stuck
70
+ * choosing the nearest wrong one. "free" keeps the source's own
71
+ * proportions and crops only what panning and zoom leave outside.
72
+ */
73
+ aspect?: "free" | "square" | "4:3" | "3:4" | "16:9" | number;
74
+ /** Longest edge of the exported image. Larger sources are scaled down. */
75
+ maxEdge?: number;
76
+ /**
77
+ * Encoding of the export; read the result's `blob.type` for the one used.
78
+ *
79
+ * JPEG, the default, is the smallest for photographs, the case this was
80
+ * built for. It has no alpha channel, though: a transparent PNG comes back
81
+ * with its background filled black, and a logo or an icon is ruined by the
82
+ * crop. "source" keeps the picture's own format where a canvas can write it
83
+ * (PNG, JPEG, WebP) and falls back to PNG for the ones it cannot (GIF, BMP,
84
+ * SVG), so transparency survives either way. An animated GIF still comes
85
+ * back as its first frame: a canvas holds one picture.
86
+ */
87
+ type?: "image/jpeg" | "image/png" | "image/webp" | "source";
88
+ /** Quality of a lossy export (JPEG, WebP); PNG ignores it. */
89
+ quality?: number;
90
+ /**
91
+ * Labels for the toolbar. Defaulted in English rather than left blank: an
92
+ * icon button with no accessible name is announced as "button", and the
93
+ * kit cannot reach the consumer's translations. Apps with i18n pass their
94
+ * own strings.
95
+ */
96
+ labels?: Partial<Record<"rotateLeft" | "rotateRight" | "zoomIn" | "zoomOut" | "reset" | "canvas", string>>;
97
+ /** Fade the picture in when the editor first comes into view. */
98
+ animate?: boolean;
99
+ }> & Readonly<{}>, {
100
+ type: "image/jpeg" | "image/png" | "image/webp" | "source";
101
+ animate: boolean;
102
+ labels: Partial<Record<"rotateLeft" | "rotateRight" | "zoomIn" | "zoomOut" | "reset" | "canvas", string>>;
103
+ aspect: "free" | "square" | "4:3" | "3:4" | "16:9" | number;
104
+ maxEdge: number;
105
+ quality: number;
106
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -0,0 +1,65 @@
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;
@@ -0,0 +1,80 @@
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
+ type: string;
70
+ size: "sm" | "md" | "lg";
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
+ };
@@ -0,0 +1,24 @@
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;
@@ -0,0 +1,62 @@
1
+ import { type 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
+ };
@@ -0,0 +1,93 @@
1
+ import { type 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
+ };