@leavepulse/ui 0.78.0 → 0.78.1

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 (147) hide show
  1. package/dist/chunks/{DropzoneLinkField-DXIr0eFz.js → DropzoneLinkField-CLLhd3WB.js} +1 -1
  2. package/dist/chunks/FieldLeading-mr81aEAP.js +27 -0
  3. package/dist/chunks/{LpAddressInput-ZqoZ-N2Y.js → LpAddressInput-BSS49jpm.js} +2 -2
  4. package/dist/chunks/{LpAppShell-BNAVTQsY.js → LpAppShell-BKbYCHkx.js} +23 -4
  5. package/dist/chunks/{LpCodeBlock-DuzmnIHl.js → LpCodeBlock-DBqy4RLd.js} +1 -1
  6. package/dist/chunks/{LpCodeDisplay-CO8fngxa.js → LpCodeDisplay-D3BUAhV1.js} +2 -2
  7. package/dist/chunks/{LpColorPicker-BxAHEnR5.js → LpColorPicker-COHzV68R.js} +1 -1
  8. package/dist/chunks/{LpConfirmDialog-6oCIJTDa.js → LpConfirmDialog-CnrmzkuN.js} +1 -1
  9. package/dist/chunks/{LpConfirmHost-DgHvfT6s.js → LpConfirmHost-CwbObVGH.js} +1 -1
  10. package/dist/chunks/{LpContextMenu--eMGIql6.js → LpContextMenu-Bx_IhQDS.js} +5 -5
  11. package/dist/chunks/{LpCopyButton-7EOSIuwa.js → LpCopyButton-sAMvWeLP.js} +1 -1
  12. package/dist/chunks/{LpDataList-DgBeM01y.js → LpDataList-CaVfsozH.js} +2 -2
  13. package/dist/chunks/{LpDrawer-Bt9UUqt_.js → LpDrawer-DXNQFpAA.js} +1 -1
  14. package/dist/chunks/{LpFileTree-BSx1kBoV.js → LpFileTree-C-rJKzEQ.js} +3 -3
  15. package/dist/chunks/{LpFileTreeNode-4dVmFHb3.js → LpFileTreeNode-BgYn4U1J.js} +1 -1
  16. package/dist/chunks/{LpHoverCard-DanH3Nz1.js → LpHoverCard-CHE9jAJG.js} +6 -6
  17. package/dist/chunks/{LpInfraNode-BAU40Km2.js → LpInfraNode-Bb5nbuFY.js} +17 -0
  18. package/dist/chunks/{LpInput-DL6HEJdi.js → LpInput-D0O6dpuA.js} +18 -21
  19. package/dist/chunks/{LpInspector-CuoMAhiw.js → LpInspector-DO3fTCQ1.js} +2 -2
  20. package/dist/chunks/{LpLaneNode-HtnQf2FF.js → LpLaneNode-Bqcdm8Rf.js} +19 -1
  21. package/dist/chunks/{LpLightbox-xvpQ64MM.js → LpLightbox-CtDTQV01.js} +1 -1
  22. package/dist/chunks/{LpLogInspector-6cNnXqp4.js → LpLogInspector-BdQlX6S-.js} +1 -1
  23. package/dist/chunks/{LpLogViewer-Dvb1E9_G.js → LpLogViewer-umCZBapN.js} +4 -4
  24. package/dist/chunks/{LpMediaGallery-Df-tiWeq.js → LpMediaGallery-BYEwySoF.js} +2 -2
  25. package/dist/chunks/{LpModal-DrtQ_1A2.js → LpModal-DDvrSAnf.js} +1 -1
  26. package/dist/chunks/{LpModalNav-DkmGCnZE.js → LpModalNav-gOi1Giz1.js} +2 -2
  27. package/dist/chunks/{LpNotificationBell-D_wklO1m.js → LpNotificationBell-DUbVyK6R.js} +3 -3
  28. package/dist/chunks/{LpNumberField-CNHsmSDZ.js → LpNumberField-Csg-1Zh_.js} +20 -6
  29. package/dist/chunks/LpPageScrollbar-D2O0xhJw.js +164 -0
  30. package/dist/chunks/{LpPaletteTheme-dVtxHx-F.js → LpPaletteTheme-BIXpZLGe.js} +2 -2
  31. package/dist/chunks/{LpPasswordInput-B-zD6tUS.js → LpPasswordInput-D4HPhqfV.js} +2 -2
  32. package/dist/chunks/{LpPie-9t_guO49.js → LpPie-oVNHjsKD.js} +2 -2
  33. package/dist/chunks/{LpPipeline-rjXvEDRJ.js → LpPipeline-BSXT6oUJ.js} +1 -1
  34. package/dist/chunks/{LpRelativeTime-BovUk8MP.js → LpRelativeTime-0zI-44ve.js} +1 -1
  35. package/dist/chunks/{LpScrollArea-ay4Xo_hg.js → LpScrollArea-CqvwfZs2.js} +9 -12
  36. package/dist/chunks/{LpSecretField-DBvU6iAw.js → LpSecretField-B2roc4Iz.js} +4 -4
  37. package/dist/chunks/{LpServiceNode-D8uJ8sGk.js → LpServiceNode-Cln2ntdw.js} +17 -0
  38. package/dist/chunks/{LpSidebar-kSkpPh3-.js → LpSidebar-DDNJzb69.js} +4 -4
  39. package/dist/chunks/{LpSidebarNav-C2mvqrY2.js → LpSidebarNav-CE0jQS8i.js} +2 -2
  40. package/dist/chunks/{LpSidebarRow-eRP4Q31q.js → LpSidebarRow-DOTg1txp.js} +2 -2
  41. package/dist/chunks/{LpStat-pMNZgFcq.js → LpStat-DPjc6_fX.js} +17 -4
  42. package/dist/chunks/{LpTableFilter-DgARTsA1.js → LpTableFilter-B_XMOeAh.js} +1 -1
  43. package/dist/chunks/{LpThemeStudio-DzYfE-5k.js → LpThemeStudio-ChU0_Ga8.js} +2 -2
  44. package/dist/chunks/{LpThemeSwitcher-CFLkdbBL.js → LpThemeSwitcher-DmCZ21P_.js} +2 -2
  45. package/dist/chunks/{LpToaster-QFj0P-5m.js → LpToaster-Ct_ZOhCh.js} +1 -1
  46. package/dist/chunks/{LpTooltip-BJf3lZMq.js → LpTooltip-Bz_rrq5S.js} +5 -5
  47. package/dist/chunks/{LpTopologyCanvas-BOHHHZ_6.js → LpTopologyCanvas-jqz1KCq2.js} +14 -9
  48. package/dist/chunks/{LpTruncate-C6u3gjc6.js → LpTruncate-ellq9RYM.js} +2 -2
  49. package/dist/chunks/{LpUptimeBar-BnYmR2rj.js → LpUptimeBar-BoxcCDVY.js} +1 -1
  50. package/dist/chunks/{LpWorkspaceSwitcher-D0e9upAy.js → LpWorkspaceSwitcher-BeNHCLd5.js} +2 -2
  51. package/dist/chunks/{RevealToggle-CCPDE8Mv.js → RevealToggle-D_iyrB8d.js} +1 -1
  52. package/dist/component-names.d.ts +1 -1
  53. package/dist/components/DropzoneLinkField.vue.js +1 -1
  54. package/dist/components/FieldLeading.vue.d.ts +16 -0
  55. package/dist/components/FieldLeading.vue.js +4 -0
  56. package/dist/components/LpAddressInput.vue.js +1 -1
  57. package/dist/components/LpAppShell.vue.d.ts +15 -0
  58. package/dist/components/LpAppShell.vue.js +1 -1
  59. package/dist/components/LpChart.vue.js +1 -1
  60. package/dist/components/LpCodeBlock.vue.js +1 -1
  61. package/dist/components/LpCodeDisplay.vue.js +1 -1
  62. package/dist/components/LpColorPicker.vue.js +1 -1
  63. package/dist/components/LpCommandPalette.vue.js +1 -1
  64. package/dist/components/LpConfirmDialog.vue.js +1 -1
  65. package/dist/components/LpConfirmHost.vue.js +1 -1
  66. package/dist/components/LpContextMenu.vue.js +1 -1
  67. package/dist/components/LpCopyButton.vue.js +1 -1
  68. package/dist/components/LpDataList.vue.js +1 -1
  69. package/dist/components/LpDock.vue.js +1 -1
  70. package/dist/components/LpDrawer.vue.js +1 -1
  71. package/dist/components/LpDropzone.vue.js +1 -1
  72. package/dist/components/LpFileTree.vue.js +1 -1
  73. package/dist/components/LpFileTreeNode.vue.js +1 -1
  74. package/dist/components/LpHoverCard.vue.js +1 -1
  75. package/dist/components/LpInfraNode.vue.d.ts +11 -2
  76. package/dist/components/LpInfraNode.vue.js +1 -1
  77. package/dist/components/LpInput.vue.js +1 -1
  78. package/dist/components/LpInspector.vue.js +1 -1
  79. package/dist/components/LpLaneNode.vue.d.ts +2 -3
  80. package/dist/components/LpLaneNode.vue.js +1 -1
  81. package/dist/components/LpLightbox.vue.js +1 -1
  82. package/dist/components/LpLogInspector.vue.js +1 -1
  83. package/dist/components/LpLogViewer.vue.js +1 -1
  84. package/dist/components/LpMediaGallery.vue.js +1 -1
  85. package/dist/components/LpModal.vue.js +1 -1
  86. package/dist/components/LpModalNav.vue.js +1 -1
  87. package/dist/components/LpNotificationBell.vue.js +1 -1
  88. package/dist/components/LpNumberField.vue.d.ts +13 -2
  89. package/dist/components/LpNumberField.vue.js +1 -1
  90. package/dist/components/LpPageScrollbar.vue.d.ts +10 -0
  91. package/dist/components/LpPageScrollbar.vue.js +4 -0
  92. package/dist/components/LpPaletteTheme.vue.js +1 -1
  93. package/dist/components/LpPasswordInput.vue.js +1 -1
  94. package/dist/components/LpPie.vue.js +1 -1
  95. package/dist/components/LpPipeline.vue.js +1 -1
  96. package/dist/components/LpRelativeTime.vue.js +1 -1
  97. package/dist/components/LpScrollArea.vue.js +1 -1
  98. package/dist/components/LpSecretField.vue.js +1 -1
  99. package/dist/components/LpServiceNode.vue.d.ts +8 -2
  100. package/dist/components/LpServiceNode.vue.js +1 -1
  101. package/dist/components/LpShortcutsDialog.vue.js +1 -1
  102. package/dist/components/LpSidebar.vue.js +1 -1
  103. package/dist/components/LpSidebarNav.vue.js +1 -1
  104. package/dist/components/LpSidebarRow.vue.js +1 -1
  105. package/dist/components/LpStat.vue.d.ts +16 -0
  106. package/dist/components/LpStat.vue.js +1 -1
  107. package/dist/components/LpTable.vue.js +4 -4
  108. package/dist/components/LpTableFilter.vue.js +1 -1
  109. package/dist/components/LpTabs.vue.js +1 -1
  110. package/dist/components/LpThemeStudio.vue.js +1 -1
  111. package/dist/components/LpThemeSwitcher.vue.js +1 -1
  112. package/dist/components/LpToaster.vue.js +1 -1
  113. package/dist/components/LpTooltip.vue.js +1 -1
  114. package/dist/components/LpTopologyCanvas.vue.d.ts +2 -2
  115. package/dist/components/LpTopologyCanvas.vue.js +1 -1
  116. package/dist/components/LpTruncate.vue.js +1 -1
  117. package/dist/components/LpUptimeBar.vue.js +1 -1
  118. package/dist/components/LpWorkspaceSwitcher.vue.js +1 -1
  119. package/dist/components/RevealToggle.vue.js +1 -1
  120. package/dist/components/menuWhen.js +1 -1
  121. package/dist/components/scrollbar.d.ts +34 -0
  122. package/dist/components/scrollbar.js +47 -0
  123. package/dist/composables/propCheck.d.ts +1 -1
  124. package/dist/composables/propCheck.js +15 -4
  125. package/dist/composables/usePaletteCommands.js +4 -2
  126. package/dist/index.d.ts +1 -0
  127. package/dist/index.js +162 -160
  128. package/package.json +1 -1
  129. package/src/component-names.ts +1 -0
  130. package/src/components/FieldLeading.vue +17 -0
  131. package/src/components/LpAppShell.vue +23 -0
  132. package/src/components/LpContextMenu.vue +7 -0
  133. package/src/components/LpHoverCard.vue +7 -0
  134. package/src/components/LpInfraNode.vue +4 -3
  135. package/src/components/LpInput.vue +4 -3
  136. package/src/components/LpLaneNode.vue +5 -1
  137. package/src/components/LpNumberField.vue +7 -1
  138. package/src/components/LpPageScrollbar.vue +195 -0
  139. package/src/components/LpScrollArea.vue +27 -23
  140. package/src/components/LpServiceNode.vue +4 -2
  141. package/src/components/LpStat.vue +25 -5
  142. package/src/components/LpTooltip.vue +7 -0
  143. package/src/components/LpTopologyCanvas.vue +3 -1
  144. package/src/components/scrollbar.ts +71 -0
  145. package/src/composables/propCheck.ts +20 -5
  146. package/src/composables/usePaletteCommands.ts +5 -2
  147. package/src/index.ts +1 -0
@@ -0,0 +1,164 @@
1
+ import { defineComponent, ref, computed, onMounted, onBeforeUnmount, openBlock, createElementBlock, normalizeStyle, normalizeClass, createElementVNode, withModifiers, unref } from "vue";
2
+ import { mergeClass } from "../composables/useMergedClass.js";
3
+ import { nodeWindow } from "../composables/realm.js";
4
+ import { hideNativeBar, BAR_FADE, BAR_Y_SIZE, BAR_Y, THUMB_Y, THUMB_Y_ROUND, SCROLL_HIDE_DELAY_MS, pageToward } from "../components/scrollbar.js";
5
+ const _hoisted_1 = ["data-state"];
6
+ const MIN_THUMB_PX = 18;
7
+ const _sfc_main = /* @__PURE__ */ defineComponent({
8
+ __name: "LpPageScrollbar",
9
+ props: {
10
+ top: { default: "0px" },
11
+ bottom: { default: "0px" }
12
+ },
13
+ setup(__props) {
14
+ const props = __props;
15
+ const barEl = ref(null);
16
+ const active = ref(false);
17
+ const thumb = ref({ top: 0, height: 0 });
18
+ const scrollable = ref(false);
19
+ const scrolling = ref(false);
20
+ const hovered = ref(false);
21
+ const dragging = ref(false);
22
+ const state = computed(() => scrolling.value || hovered.value || dragging.value ? "visible" : shownOnce.value ? "hidden" : void 0);
23
+ const shownOnce = ref(false);
24
+ let releaseNative;
25
+ let doc;
26
+ let hideTimer;
27
+ let frame = 0;
28
+ let sizes;
29
+ function scroller() {
30
+ return doc?.scrollingElement ?? null;
31
+ }
32
+ function nativeBarWidth(d) {
33
+ const probe = d.createElement("div");
34
+ probe.style.cssText = "position:absolute;top:-9999px;width:100px;height:100px;overflow:scroll";
35
+ d.body.append(probe);
36
+ const width = probe.offsetWidth - probe.clientWidth;
37
+ probe.remove();
38
+ return width;
39
+ }
40
+ function measure() {
41
+ frame = 0;
42
+ const view = scroller();
43
+ const bar = barEl.value;
44
+ if (!view || !bar) return;
45
+ const range = view.scrollHeight - view.clientHeight;
46
+ scrollable.value = range > 1;
47
+ if (!scrollable.value) return;
48
+ const track = bar.clientHeight;
49
+ const height = Math.max(MIN_THUMB_PX, Math.round(track * view.clientHeight / view.scrollHeight));
50
+ thumb.value = { height, top: Math.round((track - height) * view.scrollTop / range) };
51
+ }
52
+ function measureSoon() {
53
+ if (!frame && doc) frame = nodeWindow(doc).requestAnimationFrame(measure);
54
+ }
55
+ function onScroll() {
56
+ measureSoon();
57
+ scrolling.value = true;
58
+ shownOnce.value = true;
59
+ clearTimeout(hideTimer);
60
+ hideTimer = setTimeout(() => scrolling.value = false, SCROLL_HIDE_DELAY_MS);
61
+ }
62
+ function onEnter() {
63
+ hovered.value = true;
64
+ shownOnce.value = true;
65
+ }
66
+ function onLeave() {
67
+ hideTimer && clearTimeout(hideTimer);
68
+ hideTimer = setTimeout(() => {
69
+ hovered.value = false;
70
+ scrolling.value = false;
71
+ }, SCROLL_HIDE_DELAY_MS);
72
+ }
73
+ function locked() {
74
+ return !!doc && nodeWindow(doc).getComputedStyle(doc.body).overflow === "hidden";
75
+ }
76
+ function onTrackPointerDown(event) {
77
+ const view = scroller();
78
+ const thumbEl = barEl.value?.querySelector("[data-lp-thumb]");
79
+ if (!view || !thumbEl || event.button !== 0 || thumbEl.contains(event.target) || locked()) return;
80
+ event.preventDefault();
81
+ pageToward(view, "y", event.clientY < thumbEl.getBoundingClientRect().top);
82
+ }
83
+ function onThumbPointerDown(event) {
84
+ const view = scroller();
85
+ const bar = barEl.value;
86
+ if (!view || !bar || event.button !== 0 || locked()) return;
87
+ event.preventDefault();
88
+ const handle = event.currentTarget;
89
+ handle.setPointerCapture(event.pointerId);
90
+ dragging.value = true;
91
+ const startY = event.clientY;
92
+ const startTop = view.scrollTop;
93
+ const perPixel = (view.scrollHeight - view.clientHeight) / Math.max(1, bar.clientHeight - thumb.value.height);
94
+ const move = (e) => view.scrollTo({ top: startTop + (e.clientY - startY) * perPixel, behavior: "instant" });
95
+ const stop = () => {
96
+ dragging.value = false;
97
+ handle.removeEventListener("pointermove", move);
98
+ handle.removeEventListener("pointerup", stop);
99
+ handle.removeEventListener("pointercancel", stop);
100
+ handle.removeEventListener("lostpointercapture", stop);
101
+ };
102
+ handle.addEventListener("pointermove", move);
103
+ handle.addEventListener("pointerup", stop);
104
+ handle.addEventListener("pointercancel", stop);
105
+ handle.addEventListener("lostpointercapture", stop);
106
+ }
107
+ onMounted(() => {
108
+ const host = barEl.value ?? void 0;
109
+ doc = host?.ownerDocument;
110
+ if (!doc || nativeBarWidth(doc) === 0) return;
111
+ active.value = true;
112
+ releaseNative = hideNativeBar(doc);
113
+ const win = nodeWindow(doc);
114
+ win.addEventListener("scroll", onScroll, { passive: true });
115
+ win.addEventListener("resize", measureSoon);
116
+ sizes = new win.ResizeObserver(measureSoon);
117
+ sizes.observe(doc.body);
118
+ if (host) sizes.observe(host);
119
+ measure();
120
+ });
121
+ onBeforeUnmount(() => {
122
+ clearTimeout(hideTimer);
123
+ sizes?.disconnect();
124
+ if (!doc || !active.value) return;
125
+ const win = nodeWindow(doc);
126
+ if (frame) win.cancelAnimationFrame(frame);
127
+ win.removeEventListener("scroll", onScroll);
128
+ win.removeEventListener("resize", measureSoon);
129
+ releaseNative?.();
130
+ });
131
+ const barClass = computed(
132
+ () => mergeClass(
133
+ BAR_Y,
134
+ BAR_Y_SIZE.wall,
135
+ BAR_FADE,
136
+ "fixed right-0 z-(--z-sticky) transition-[top,bottom] duration-[var(--duration-medium)] ease-[var(--ease-settle)] print:hidden"
137
+ )
138
+ );
139
+ return (_ctx, _cache) => {
140
+ return openBlock(), createElementBlock("div", {
141
+ ref_key: "barEl",
142
+ ref: barEl,
143
+ "aria-hidden": "true",
144
+ "data-lp-page-scrollbar": "",
145
+ class: normalizeClass(barClass.value),
146
+ "data-state": active.value && scrollable.value ? state.value : void 0,
147
+ style: normalizeStyle({ top: props.top, bottom: props.bottom, visibility: active.value && scrollable.value ? void 0 : "hidden" }),
148
+ onPointerenter: onEnter,
149
+ onPointerleave: onLeave,
150
+ onPointerdown: onTrackPointerDown
151
+ }, [
152
+ createElementVNode("div", {
153
+ "data-lp-thumb": "",
154
+ class: normalizeClass(["absolute right-px", [unref(THUMB_Y), unref(THUMB_Y_ROUND).wall]]),
155
+ style: normalizeStyle({ top: `${thumb.value.top}px`, height: `${thumb.value.height}px` }),
156
+ onPointerdown: withModifiers(onThumbPointerDown, ["stop"])
157
+ }, null, 38)
158
+ ], 46, _hoisted_1);
159
+ };
160
+ }
161
+ });
162
+ export {
163
+ _sfc_main as _
164
+ };
@@ -1,10 +1,10 @@
1
1
  import { defineComponent, ref, computed, openBlock, createElementBlock, createElementVNode, createVNode, withCtx, createTextVNode, toDisplayString, unref } from "vue";
2
2
  import { useLabels } from "../composables/useLpConfig.js";
3
3
  import { suppressPaletteDiscovery } from "../composables/usePaletteCommands.js";
4
- import { _ as _sfc_main$4 } from "./LpThemeStudio-DzYfE-5k.js";
4
+ import { _ as _sfc_main$4 } from "./LpThemeStudio-ChU0_Ga8.js";
5
5
  import { _ as _sfc_main$2 } from "./LpThemeProvider-XK6ZeWAE.js";
6
6
  import { _ as _sfc_main$1 } from "./LpButton-DSHioIfD.js";
7
- import { _ as _sfc_main$3 } from "./LpInput-DL6HEJdi.js";
7
+ import { _ as _sfc_main$3 } from "./LpInput-D0O6dpuA.js";
8
8
  const _hoisted_1 = { class: "flex min-w-0 flex-col gap-4" };
9
9
  const _hoisted_2 = { class: "sticky top-0 z-10 flex gap-2 border-b border-line bg-surface-overlay pb-3" };
10
10
  const _hoisted_3 = { class: "text-sm font-semibold" };
@@ -2,8 +2,8 @@ import { defineComponent, useModel, ref, openBlock, createBlock, mergeProps, unr
2
2
  import { suppressPaletteDiscovery } from "../composables/usePaletteCommands.js";
3
3
  import { useFieldControl } from "../composables/useField.js";
4
4
  import { useLabels } from "../composables/useLpConfig.js";
5
- import { _ as _sfc_main$1 } from "./LpInput-DL6HEJdi.js";
6
- import { _ as _sfc_main$2 } from "./RevealToggle-CCPDE8Mv.js";
5
+ import { _ as _sfc_main$1 } from "./LpInput-D0O6dpuA.js";
6
+ import { _ as _sfc_main$2 } from "./RevealToggle-D_iyrB8d.js";
7
7
  const __default__ = { inheritAttrs: false };
8
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
9
9
  ...__default__,
@@ -7,14 +7,14 @@ import { useReveal } from "../composables/useReveal.js";
7
7
  import { useTween, lerp, mixColor } from "../composables/useTween.js";
8
8
  import { resolveSlices, arcPath, calloutLabels, formatTick } from "../components/chart.js";
9
9
  import { _ as _sfc_main$9 } from "./LegendSwatch-BhRjrtzv.js";
10
- import { _ as _sfc_main$4 } from "./LpContextMenu--eMGIql6.js";
10
+ import { _ as _sfc_main$4 } from "./LpContextMenu-Bx_IhQDS.js";
11
11
  import { _ as _sfc_main$3 } from "./LpEmptyState-DurPF001.js";
12
12
  import { _ as _sfc_main$6 } from "./LpNumberFlow-Vqj0tP7B.js";
13
13
  import { _ as _sfc_main$7 } from "./LpRollingText-B54Pje7P.js";
14
14
  import { _ as _sfc_main$8 } from "./LpShift-DAgS_d2x.js";
15
15
  import { _ as _sfc_main$2 } from "./LpSkeleton-BB6XIV-w.js";
16
16
  import { _ as _sfc_main$1 } from "./LpSwap-M7nFeW3C.js";
17
- import { _ as _sfc_main$5 } from "./LpTooltip-BJf3lZMq.js";
17
+ import { _ as _sfc_main$5 } from "./LpTooltip-Bz_rrq5S.js";
18
18
  import { useMergedAttrs } from "../composables/useMergedClass.js";
19
19
  import { useLabels } from "../composables/useLpConfig.js";
20
20
  import { isElement } from "../composables/realm.js";
@@ -10,7 +10,7 @@ import { _ as _sfc_main$5 } from "./LpIcon-C6JpQ5td.js";
10
10
  import { _ as _sfc_main$4 } from "./LpRollingText-B54Pje7P.js";
11
11
  import { _ as _sfc_main$3 } from "./LpShift-DAgS_d2x.js";
12
12
  import { _ as _sfc_main$1 } from "./LpStepMark-Dw2MRTrt.js";
13
- import { _ as _sfc_main$7 } from "./LpTooltip-BJf3lZMq.js";
13
+ import { _ as _sfc_main$7 } from "./LpTooltip-Bz_rrq5S.js";
14
14
  import { _ as _sfc_main$2 } from "./StepConnector-37OgEOXA.js";
15
15
  import { stepKey, duplicateStepKeys, connectorFilled, currentStepIndex, stepElapsed, childProgress } from "../components/pipeline.js";
16
16
  import { DEFAULT_UNIT_LABELS, toEpoch, formatElapsed } from "../components/timeSpan.js";
@@ -3,7 +3,7 @@ import { useLocale } from "../composables/useLocale.js";
3
3
  import { useMergedAttrs } from "../composables/useMergedClass.js";
4
4
  import { useNow } from "../composables/useNow.js";
5
5
  import { _ as _sfc_main$2 } from "./LpRollingText-B54Pje7P.js";
6
- import { _ as _sfc_main$1 } from "./LpTooltip-BJf3lZMq.js";
6
+ import { _ as _sfc_main$1 } from "./LpTooltip-Bz_rrq5S.js";
7
7
  import { formatRelativeTime } from "../components/relativeTime.js";
8
8
  import { toEpoch } from "../components/timeSpan.js";
9
9
  const _hoisted_1 = ["datetime"];
@@ -1,8 +1,7 @@
1
1
  import { defineComponent, ref, computed, watch, onBeforeUnmount, openBlock, createBlock, unref, normalizeClass, withCtx, createVNode, normalizeStyle, createElementVNode, renderSlot } from "vue";
2
2
  import { ScrollAreaRoot, ScrollAreaScrollbar, ScrollAreaThumb, ScrollAreaViewport } from "reka-ui";
3
- import { prefersReducedMotion } from "../composables/easing.js";
4
3
  import { nodeWindow } from "../composables/realm.js";
5
- const barFade = "opacity-0 data-[state=visible]:animate-[fade-in_180ms_ease] data-[state=visible]:opacity-100 data-[state=hidden]:animate-[fade-out_240ms_ease]";
4
+ import { SCROLL_HIDE_DELAY_MS, BAR_Y, BAR_FADE, BAR_Y_SIZE, THUMB_Y, THUMB_Y_ROUND, BAR_X, BAR_X_SIZE, THUMB_X, THUMB_X_ROUND, pageToward } from "../components/scrollbar.js";
6
5
  const FADE_PX = 14;
7
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
8
7
  __name: "LpScrollArea",
@@ -29,6 +28,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
29
28
  function onViewportBlur() {
30
29
  pointerFocus.value = false;
31
30
  }
31
+ const edge = computed(() => props.floating ? "floating" : "wall");
32
32
  const dragging = ref(false);
33
33
  const atTop = ref(true);
34
34
  const atBottom = ref(true);
@@ -100,10 +100,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
100
100
  event.preventDefault();
101
101
  event.stopImmediatePropagation();
102
102
  const rect = thumb.getBoundingClientRect();
103
- const before = axis === "y" ? event.clientY < rect.top : event.clientX < rect.left;
104
- const step = (axis === "y" ? el.clientHeight : el.clientWidth) * 0.85 * (before ? -1 : 1);
105
- const behavior = prefersReducedMotion() ? "auto" : "smooth";
106
- el.scrollBy(axis === "y" ? { top: step, behavior } : { left: step, behavior });
103
+ pageToward(el, axis, axis === "y" ? event.clientY < rect.top : event.clientX < rect.left);
107
104
  }
108
105
  let stopThumbDrag = null;
109
106
  function onThumbPointerDown(event) {
@@ -126,20 +123,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
126
123
  return openBlock(), createBlock(unref(ScrollAreaRoot), {
127
124
  class: normalizeClass(["relative flex flex-col overflow-hidden", dragging.value ? "select-none" : void 0]),
128
125
  type: "hover",
129
- "scroll-hide-delay": 500
126
+ "scroll-hide-delay": unref(SCROLL_HIDE_DELAY_MS)
130
127
  }, {
131
128
  default: withCtx(() => [
132
129
  createVNode(unref(ScrollAreaScrollbar), {
133
130
  orientation: "vertical",
134
131
  "force-mount": "",
135
- class: normalizeClass(["group z-1 flex touch-none select-none justify-end pl-2.5", [barFade, __props.floating ? "w-4 py-1 pr-1" : "w-3.5 py-px pr-px"]]),
132
+ class: normalizeClass(["z-1", [unref(BAR_Y), unref(BAR_FADE), unref(BAR_Y_SIZE)[edge.value]]]),
136
133
  style: normalizeStyle(__props.barInsetTop ? { marginTop: __props.barInsetTop } : void 0),
137
134
  onPointerdownCapture: _cache[0] || (_cache[0] = ($event) => onTrackPointerDown($event, "y"))
138
135
  }, {
139
136
  default: withCtx(() => [
140
137
  createVNode(unref(ScrollAreaThumb), {
141
138
  "data-lp-thumb": "",
142
- class: normalizeClass(["relative min-w-1 bg-brand/40 before:absolute before:inset-y-0 before:right-0 before:-left-2.5 before:content-[''] transition-[min-width,background-color] duration-[var(--duration-fast)] group-hover:min-w-1.5 group-hover:bg-brand", __props.floating ? "rounded-pill" : "rounded-l-pill"]),
139
+ class: normalizeClass(["relative", [unref(THUMB_Y), unref(THUMB_Y_ROUND)[edge.value]]]),
143
140
  onPointerdown: onThumbPointerDown
144
141
  }, null, 8, ["class"])
145
142
  ]),
@@ -147,13 +144,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
147
144
  }, 8, ["class", "style"]),
148
145
  createVNode(unref(ScrollAreaScrollbar), {
149
146
  orientation: "horizontal",
150
- class: normalizeClass(["group z-1 flex flex-col touch-none select-none justify-end pt-2.5", [barFade, __props.floating ? "h-4 px-1 pb-1" : "h-3.5 px-px pb-px"]]),
147
+ class: normalizeClass(["z-1", [unref(BAR_X), unref(BAR_FADE), unref(BAR_X_SIZE)[edge.value]]]),
151
148
  onPointerdownCapture: _cache[1] || (_cache[1] = ($event) => onTrackPointerDown($event, "x"))
152
149
  }, {
153
150
  default: withCtx(() => [
154
151
  createVNode(unref(ScrollAreaThumb), {
155
152
  "data-lp-thumb": "",
156
- class: normalizeClass(["relative min-h-1 bg-brand/40 before:absolute before:inset-x-0 before:bottom-0 before:-top-2.5 before:content-[''] transition-[min-height,background-color] duration-[var(--duration-fast)] group-hover:min-h-1.5 group-hover:bg-brand", __props.floating ? "rounded-pill" : "rounded-t-pill"]),
153
+ class: normalizeClass(["relative", [unref(THUMB_X), unref(THUMB_X_ROUND)[edge.value]]]),
157
154
  onPointerdown: onThumbPointerDown
158
155
  }, null, 8, ["class"])
159
156
  ]),
@@ -182,7 +179,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
182
179
  }, 8, ["class", "style"])
183
180
  ]),
184
181
  _: 3
185
- }, 8, ["class"]);
182
+ }, 8, ["class", "scroll-hide-delay"]);
186
183
  };
187
184
  }
188
185
  });
@@ -8,12 +8,12 @@ import { useFieldControl } from "../composables/useField.js";
8
8
  import { mergeClass } from "../composables/useMergedClass.js";
9
9
  import { _ as _sfc_main$5 } from "./FieldWrapper-DnuMTrqW.js";
10
10
  import { _ as _sfc_main$3 } from "./LpButton-DSHioIfD.js";
11
- import { _ as _sfc_main$2 } from "./LpCopyButton-7EOSIuwa.js";
11
+ import { _ as _sfc_main$2 } from "./LpCopyButton-sAMvWeLP.js";
12
12
  import { _ as _sfc_main$4 } from "./LpIcon-C6JpQ5td.js";
13
- import { _ as _sfc_main$1 } from "./LpPasswordInput-B-zD6tUS.js";
13
+ import { _ as _sfc_main$1 } from "./LpPasswordInput-D4HPhqfV.js";
14
14
  import { _ as _sfc_main$6 } from "./LpShift-DAgS_d2x.js";
15
- import { _ as _sfc_main$8 } from "./LpTooltip-BJf3lZMq.js";
16
- import { _ as _sfc_main$7 } from "./RevealToggle-CCPDE8Mv.js";
15
+ import { _ as _sfc_main$8 } from "./LpTooltip-Bz_rrq5S.js";
16
+ import { _ as _sfc_main$7 } from "./RevealToggle-D_iyrB8d.js";
17
17
  const _hoisted_1 = ["id", "aria-label"];
18
18
  const _hoisted_2 = {
19
19
  key: "empty",
@@ -10,7 +10,24 @@ const _hoisted_4 = {
10
10
  const _sfc_main = /* @__PURE__ */ defineComponent({
11
11
  __name: "LpServiceNode",
12
12
  props: {
13
+ id: {},
14
+ type: {},
15
+ connectable: { type: [Boolean, Number, String, Function] },
16
+ position: {},
17
+ dimensions: {},
18
+ label: {},
19
+ isValidTargetPos: { type: Function },
20
+ isValidSourcePos: { type: Function },
21
+ parent: {},
22
+ parentNodeId: {},
23
+ dragging: { type: Boolean },
24
+ resizing: { type: Boolean },
25
+ zIndex: {},
26
+ targetPosition: {},
27
+ sourcePosition: {},
28
+ dragHandle: {},
13
29
  data: {},
30
+ events: {},
14
31
  selected: { type: Boolean }
15
32
  },
16
33
  setup(__props) {
@@ -4,11 +4,11 @@ import { useHotkeys, parseCombo } from "../composables/useHotkeys.js";
4
4
  import { startPointerDrag } from "../composables/pointerDrag.js";
5
5
  import { usePersisted } from "../composables/usePersisted.js";
6
6
  import { useLabels } from "../composables/useLpConfig.js";
7
- import { _ as _sfc_main$5 } from "./LpDrawer-Bt9UUqt_.js";
7
+ import { _ as _sfc_main$5 } from "./LpDrawer-DXNQFpAA.js";
8
8
  import { _ as _sfc_main$2 } from "./LpIcon-C6JpQ5td.js";
9
- import { _ as _sfc_main$3 } from "./LpInput-DL6HEJdi.js";
10
- import { _ as _sfc_main$1 } from "./LpTooltip-BJf3lZMq.js";
11
- import { _ as _sfc_main$4 } from "./LpSidebarNav-C2mvqrY2.js";
9
+ import { _ as _sfc_main$3 } from "./LpInput-D0O6dpuA.js";
10
+ import { _ as _sfc_main$1 } from "./LpTooltip-Bz_rrq5S.js";
11
+ import { _ as _sfc_main$4 } from "./LpSidebarNav-CE0jQS8i.js";
12
12
  const _hoisted_1 = ["data-compact", "aria-label"];
13
13
  const _hoisted_2 = {
14
14
  key: 0,
@@ -8,9 +8,9 @@ import { _ as _sfc_main$4 } from "./LpIcon-C6JpQ5td.js";
8
8
  import "../composables/useHotkeys.js";
9
9
  import '../assets/MenuShortcut-Cyub0frr.css';import '../assets/LpKeys-C5VMcBOW.css';/* empty css */
10
10
  /* empty css */
11
- import { _ as _sfc_main$2 } from "./LpScrollArea-ay4Xo_hg.js";
11
+ import { _ as _sfc_main$2 } from "./LpScrollArea-CqvwfZs2.js";
12
12
  import { _ as _sfc_main$1 } from "./LpSkeleton-BB6XIV-w.js";
13
- import { _ as _sfc_main$3 } from "./LpSidebarRow-eRP4Q31q.js";
13
+ import { _ as _sfc_main$3 } from "./LpSidebarRow-DOTg1txp.js";
14
14
  import { waiting } from "../components/sidebar.js";
15
15
  import { useMergedAttrs } from "../composables/useMergedClass.js";
16
16
  const _hoisted_1 = {
@@ -5,8 +5,8 @@ import { useLocale } from "../composables/useLocale.js";
5
5
  import { usePillTransition } from "../composables/usePillTransition.js";
6
6
  import { useLinkComponent } from "../composables/useLpConfig.js";
7
7
  import { _ as _sfc_main$2 } from "./LpBadge-D5QQdDQ_.js";
8
- import { _ as _sfc_main$4 } from "./LpContextMenu--eMGIql6.js";
9
- import { _ as _sfc_main$1 } from "./LpHoverCard-DanH3Nz1.js";
8
+ import { _ as _sfc_main$4 } from "./LpContextMenu-Bx_IhQDS.js";
9
+ import { _ as _sfc_main$1 } from "./LpHoverCard-CHE9jAJG.js";
10
10
  import { _ as _sfc_main$3 } from "./LpIcon-C6JpQ5td.js";
11
11
  import LpKeys from "../components/LpKeys.vue.js";
12
12
  import { _ as _sfc_main$5 } from "./LpNumberFlow-Vqj0tP7B.js";
@@ -5,7 +5,7 @@ import { _ as _sfc_main$3 } from "./LpSkeleton-BB6XIV-w.js";
5
5
  import { _ as _sfc_main$1 } from "./LpStatus-DGJFwk5F.js";
6
6
  import { useFitScale } from "../composables/useFitScale.js";
7
7
  import { useMergedAttrs } from "../composables/useMergedClass.js";
8
- import { TONES } from "../components/tone.js";
8
+ import { TONES, toneOf } from "../components/tone.js";
9
9
  const _hoisted_1 = { class: "flex items-center gap-2" };
10
10
  const _hoisted_2 = { class: "text-[11px] font-semibold uppercase tracking-[0.08em] text-muted" };
11
11
  const _hoisted_3 = { key: 1 };
@@ -44,10 +44,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
44
44
  deltaSuffix: {},
45
45
  trend: { default: "auto" },
46
46
  invertTrend: { type: Boolean },
47
- loading: { type: Boolean }
47
+ loading: { type: Boolean },
48
+ tone: {},
49
+ size: { default: "lg" }
48
50
  },
49
51
  setup(__props) {
50
52
  const props = __props;
53
+ const FIGURE_SIZE = {
54
+ sm: { class: "text-lg", font: "var(--text-lg, 1.125rem)", line: "var(--text-lg--line-height, 1.55)" },
55
+ md: { class: "text-2xl", font: "var(--text-2xl, 1.5rem)", line: "var(--text-2xl--line-height, 1.33)" },
56
+ lg: { class: "text-3xl", font: "var(--text-3xl, 1.875rem)", line: "var(--text-3xl--line-height, 1.2)" }
57
+ };
58
+ const figureSize = computed(() => FIGURE_SIZE[props.size]);
59
+ const figureColor = computed(() => props.tone ? TONES[toneOf(props.tone)].text : "text-ink");
51
60
  const dir = computed(() => {
52
61
  if (props.trend !== "auto") return props.trend;
53
62
  if (typeof props.delta === "number") {
@@ -89,7 +98,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
89
98
  const row = ref(null);
90
99
  const figure = ref(null);
91
100
  const fit = useFitScale(row, figure, FIT_MIN);
92
- const figureStyle = computed(() => fit.scale.value < 1 ? { fontSize: `calc(var(--text-3xl, 1.875rem) * ${fit.scale.value})`, lineHeight: "calc(var(--text-3xl, 1.875rem) * var(--text-3xl--line-height, 1.2))" } : void 0);
101
+ const figureStyle = computed(() => {
102
+ if (fit.scale.value >= 1) return void 0;
103
+ const { font, line } = figureSize.value;
104
+ return { fontSize: `calc(${font} * ${fit.scale.value})`, lineHeight: `calc(${font} * ${line})` };
105
+ });
93
106
  const figureTitle = computed(() => fit.clipped.value && !props.loading ? `${props.prefix ?? ""}${props.value}${props.valueSuffix ?? ""}` : void 0);
94
107
  const { class: rootClass, attrs: rest } = useMergedAttrs(
95
108
  "flex flex-col gap-2"
@@ -129,7 +142,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
129
142
  createElementVNode("span", {
130
143
  ref_key: "figure",
131
144
  ref: figure,
132
- class: normalizeClass(["max-w-full whitespace-nowrap font-mono text-3xl font-medium tracking-tight text-ink", unref(fit).clipped.value ? "inline-block overflow-hidden text-ellipsis align-bottom" : ""]),
145
+ class: normalizeClass(["max-w-full whitespace-nowrap font-mono font-medium tracking-tight", [figureSize.value.class, figureColor.value, unref(fit).clipped.value ? "inline-block overflow-hidden text-ellipsis align-bottom" : ""]]),
133
146
  style: normalizeStyle(figureStyle.value),
134
147
  title: figureTitle.value
135
148
  }, [
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, ref, computed, openBlock, createElementBlock, createBlock, createCommentVNode, createElementVNode, Fragment, unref, normalizeClass, toDisplayString, createVNode, withCtx, renderList } from "vue";
2
2
  import { _ as _sfc_main$3 } from "./LpCheckbox-D6RuDW4X.js";
3
- import { _ as _sfc_main$1 } from "./LpInput-DL6HEJdi.js";
3
+ import { _ as _sfc_main$1 } from "./LpInput-D0O6dpuA.js";
4
4
  import { _ as _sfc_main$2 } from "./LpShift-DAgS_d2x.js";
5
5
  import { usePaintSelect } from "../composables/usePaintSelect.js";
6
6
  import { matchesQuery, onlyValues, unhideValues, hideAllValues, invertHidden } from "../components/tableFilter.js";
@@ -3,8 +3,8 @@ import { usePaletteTheme } from "../theme/palette.js";
3
3
  import { useLabels } from "../composables/useLpConfig.js";
4
4
  import { useThemeStudio, STUDIO_BRANDS, STUDIO_SYSTEM } from "../theme/studio.js";
5
5
  import { _ as _sfc_main$1 } from "./LpButton-DSHioIfD.js";
6
- import { _ as _sfc_main$7 } from "./LpCodeBlock-DuzmnIHl.js";
7
- import { _ as _sfc_main$4 } from "./LpColorPicker-BxAHEnR5.js";
6
+ import { _ as _sfc_main$7 } from "./LpCodeBlock-DBqy4RLd.js";
7
+ import { _ as _sfc_main$4 } from "./LpColorPicker-COHzV68R.js";
8
8
  import { _ as _sfc_main$2 } from "./LpIcon-C6JpQ5td.js";
9
9
  import { _ as _sfc_main$5 } from "./LpSegmented-DbEJhbv-.js";
10
10
  import { _ as _sfc_main$6 } from "./LpDisclosure-DG7JCo-d.js";
@@ -7,11 +7,11 @@ import { presets } from "../theme/presets.js";
7
7
  import { useThemeStudio, STUDIO_SYSTEM } from "../theme/studio.js";
8
8
  import { useTheme } from "../theme/useTheme.js";
9
9
  import { POPOVER_PANEL } from "../components/dropdown.js";
10
- import { _ as _sfc_main$1 } from "./LpContextMenu--eMGIql6.js";
10
+ import { _ as _sfc_main$1 } from "./LpContextMenu-Bx_IhQDS.js";
11
11
  import { _ as _sfc_main$2 } from "./LpIcon-C6JpQ5td.js";
12
12
  import { _ as _sfc_main$4 } from "./LpRollingText-B54Pje7P.js";
13
13
  import { _ as _sfc_main$3 } from "./LpShift-DAgS_d2x.js";
14
- import { _ as _sfc_main$5 } from "./LpThemeStudio-DzYfE-5k.js";
14
+ import { _ as _sfc_main$5 } from "./LpThemeStudio-ChU0_Ga8.js";
15
15
  const _hoisted_1 = ["aria-label", "title"];
16
16
  const _hoisted_2 = {
17
17
  key: 1,
@@ -4,7 +4,7 @@ import { prefersReducedMotion } from "../composables/easing.js";
4
4
  import { useLabels } from "../composables/useLpConfig.js";
5
5
  import { useToast } from "../composables/useToast.js";
6
6
  import { CLOSE_ICON } from "../components/dropdown.js";
7
- import { _ as _sfc_main$2 } from "./LpCopyButton-7EOSIuwa.js";
7
+ import { _ as _sfc_main$2 } from "./LpCopyButton-sAMvWeLP.js";
8
8
  import { _ as _sfc_main$1 } from "./LpIcon-C6JpQ5td.js";
9
9
  import { toneLook } from "../components/tone.js";
10
10
  import { useView, viewDocument, usePortalTarget, viewWindow } from "../composables/useView.js";
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, watch, onBeforeUnmount, openBlock, createBlock, resolveDynamicComponent, unref, normalizeProps, guardReactiveProps, withCtx, createVNode, renderSlot, normalizeStyle, normalizeClass, createElementVNode, createTextVNode, toDisplayString } from "vue";
1
+ import { defineComponent, ref, watch, onBeforeUnmount, openBlock, createBlock, resolveDynamicComponent, unref, normalizeProps, guardReactiveProps, withCtx, createVNode, mergeProps, renderSlot, normalizeStyle, normalizeClass, createElementVNode, createTextVNode, toDisplayString } from "vue";
2
2
  import { clamp } from "../composables/clamp.js";
3
3
  import { injectTooltipProviderContext, TooltipProvider, TooltipRoot, TooltipTrigger, TooltipPortal, TooltipContent } from "reka-ui";
4
4
  import { springStep, springSettled } from "../composables/usePillTransition.js";
@@ -7,6 +7,7 @@ import { prefersReducedMotion } from "../composables/easing.js";
7
7
  import { useView, viewWindow, usePortalTarget, useOutsideGuard } from "../composables/useView.js";
8
8
  import '../assets/LpTooltip-B61SYd4K.css';const EDGE = 8;
9
9
  const _sfc_main = /* @__PURE__ */ defineComponent({
10
+ ...{ inheritAttrs: false },
10
11
  __name: "LpTooltip",
11
12
  props: {
12
13
  content: {},
@@ -139,16 +140,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
139
140
  "onUpdate:open": onOpenChange
140
141
  }, {
141
142
  default: withCtx(() => [
142
- createVNode(unref(TooltipTrigger), {
143
- "as-child": "",
143
+ createVNode(unref(TooltipTrigger), mergeProps({ "as-child": "" }, _ctx.$attrs, {
144
144
  "aria-label": __props.label ? __props.content : void 0,
145
145
  onPointermove: onPointerMove
146
- }, {
146
+ }), {
147
147
  default: withCtx(() => [
148
148
  renderSlot(_ctx.$slots, "default")
149
149
  ]),
150
150
  _: 3
151
- }, 8, ["aria-label"]),
151
+ }, 16, ["aria-label"]),
152
152
  createVNode(unref(TooltipPortal), { to: unref(portalTo) }, {
153
153
  default: withCtx(() => [
154
154
  createVNode(unref(TooltipContent), {
@@ -9,11 +9,12 @@ import { useResizeObserver } from "../composables/useResizeObserver.js";
9
9
  import { nodeWindow, isHTMLElement } from "../composables/realm.js";
10
10
  import { backgroundOf, resolveCssColor, svgToPng } from "../components/exportData.js";
11
11
  import { _ as _sfc_main$6 } from "./LpButton-DSHioIfD.js";
12
- import { _ as _sfc_main$3 } from "./LpInfraNode-BAU40Km2.js";
13
- import { _ as _sfc_main$5 } from "./LpInput-DL6HEJdi.js";
14
- import { _ as _sfc_main$1 } from "./LpLaneNode-HtnQf2FF.js";
15
- import { _ as _sfc_main$2 } from "./LpServiceNode-D8uJ8sGk.js";
16
- import { _ as _sfc_main$7 } from "./LpSlider-A4ixovgS.js";
12
+ import { _ as _sfc_main$7 } from "./LpIcon-C6JpQ5td.js";
13
+ import { _ as _sfc_main$3 } from "./LpInfraNode-Bb5nbuFY.js";
14
+ import { _ as _sfc_main$5 } from "./LpInput-D0O6dpuA.js";
15
+ import { _ as _sfc_main$1 } from "./LpLaneNode-Bqcdm8Rf.js";
16
+ import { _ as _sfc_main$2 } from "./LpServiceNode-Cln2ntdw.js";
17
+ import { _ as _sfc_main$8 } from "./LpSlider-A4ixovgS.js";
17
18
  import { _ as _sfc_main$4 } from "./LpWaypointEdge-D8yHlQiw.js";
18
19
  import { diffTopology, detailAtZoom, collapseChildren, clusterGraph, findNodes, findPath, neighborhood, groupBoxes, nodeName, frameSize, edgeLabelText, nearestInDirection, absolutePositions, layeredLayout, topologyToSvg } from "../components/topologyGraph.js";
19
20
  const _hoisted_1 = {
@@ -596,14 +597,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
596
597
  key: action.id,
597
598
  size: "sm",
598
599
  variant: "outline",
599
- icon: action.icon,
600
600
  onClick: ($event) => emit("selection-action", { action: action.id, ids: selectedIds.value })
601
601
  }, {
602
602
  default: withCtx(() => [
603
- createTextVNode(toDisplayString(action.label), 1)
603
+ action.icon ? (openBlock(), createBlock(_sfc_main$7, {
604
+ key: 0,
605
+ name: action.icon,
606
+ size: 14
607
+ }, null, 8, ["name"])) : createCommentVNode("", true),
608
+ createTextVNode(" " + toDisplayString(action.label), 1)
604
609
  ]),
605
610
  _: 2
606
- }, 1032, ["icon", "onClick"]);
611
+ }, 1032, ["onClick"]);
607
612
  }), 128))
608
613
  ]),
609
614
  _: 1
@@ -615,7 +620,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
615
620
  }, {
616
621
  default: withCtx(() => [
617
622
  createElementVNode("span", null, toDisplayString(__props.timeline?.[versionIndex.value]?.label ?? `${unref(text).timeline} ${versionIndex.value + 1}`), 1),
618
- createVNode(_sfc_main$7, {
623
+ createVNode(_sfc_main$8, {
619
624
  "model-value": versionIndex.value,
620
625
  min: 0,
621
626
  max: (__props.timeline?.length ?? 1) - 1,
@@ -2,8 +2,8 @@ import { defineComponent, ref, onMounted, watch, nextTick, computed, openBlock,
2
2
  import { nodeWindow } from "../composables/realm.js";
3
3
  import { useMergedAttrs } from "../composables/useMergedClass.js";
4
4
  import { useResizeObserver } from "../composables/useResizeObserver.js";
5
- import { _ as _sfc_main$2 } from "./LpCopyButton-7EOSIuwa.js";
6
- import { _ as _sfc_main$1 } from "./LpTooltip-BJf3lZMq.js";
5
+ import { _ as _sfc_main$2 } from "./LpCopyButton-sAMvWeLP.js";
6
+ import { _ as _sfc_main$1 } from "./LpTooltip-Bz_rrq5S.js";
7
7
  import { middleTruncate } from "../components/fieldText.js";
8
8
  const _hoisted_1 = ["tabindex"];
9
9
  const _hoisted_2 = { "aria-hidden": "true" };
@@ -4,7 +4,7 @@ import { _ as _sfc_main$5 } from "./LpRollingText-B54Pje7P.js";
4
4
  import { _ as _sfc_main$4 } from "./LpShift-DAgS_d2x.js";
5
5
  import { _ as _sfc_main$2 } from "./LpSkeleton-BB6XIV-w.js";
6
6
  import { _ as _sfc_main$1 } from "./LpSwap-M7nFeW3C.js";
7
- import { _ as _sfc_main$3 } from "./LpTooltip-BJf3lZMq.js";
7
+ import { _ as _sfc_main$3 } from "./LpTooltip-Bz_rrq5S.js";
8
8
  import { TONES } from "../components/tone.js";
9
9
  import { useMergedAttrs } from "../composables/useMergedClass.js";
10
10
  import { useLabels } from "../composables/useLpConfig.js";
@@ -2,8 +2,8 @@ import { defineComponent, computed, ref, openBlock, createElementBlock, Fragment
2
2
  import { useLabels } from "../composables/useLpConfig.js";
3
3
  import { _ as _sfc_main$2 } from "./LpButton-DSHioIfD.js";
4
4
  import { _ as _sfc_main$1 } from "./LpDropdownMenu-CLzxIOgM.js";
5
- import { _ as _sfc_main$4 } from "./LpInput-DL6HEJdi.js";
6
- import { _ as _sfc_main$3 } from "./LpModal-DrtQ_1A2.js";
5
+ import { _ as _sfc_main$4 } from "./LpInput-D0O6dpuA.js";
6
+ import { _ as _sfc_main$3 } from "./LpModal-DDvrSAnf.js";
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
8
8
  __name: "LpWorkspaceSwitcher",
9
9
  props: {
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, useModel, openBlock, createBlock, withCtx, createVNode, mergeProps, createElementVNode, mergeModels } from "vue";
2
2
  import { _ as _sfc_main$2 } from "./LpButton-DSHioIfD.js";
3
3
  import { _ as _sfc_main$3 } from "./LpIcon-C6JpQ5td.js";
4
- import { _ as _sfc_main$1 } from "./LpTooltip-BJf3lZMq.js";
4
+ import { _ as _sfc_main$1 } from "./LpTooltip-Bz_rrq5S.js";
5
5
  const _hoisted_1 = { class: "grid place-items-center" };
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
7
  ...{ inheritAttrs: false },