@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
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { _ } from "./chunks/LayoutCanvas-CZKOltfA.js";
2
- import { _ as _2 } from "./chunks/LpAddressInput-ZqoZ-N2Y.js";
2
+ import { _ as _2 } from "./chunks/LpAddressInput-BSS49jpm.js";
3
3
  import { _ as _3 } from "./chunks/LpMapPicker-D5_YLLBC.js";
4
4
  import { OSM_TILES, createNominatimProvider, emptyAddress, formatAddress, project, tileUrl, unproject } from "./components/address.js";
5
5
  import { _ as _4 } from "./chunks/LpActionBar-BGMk5KoG.js";
6
6
  import { _ as _5 } from "./chunks/LpAlert-CjvTZIKF.js";
7
- import { _ as _6 } from "./chunks/LpAppShell-BNAVTQsY.js";
7
+ import { _ as _6 } from "./chunks/LpAppShell-BKbYCHkx.js";
8
8
  import { _ as _7 } from "./chunks/LpAutocomplete-DkY6CSyD.js";
9
9
  import { _ as _8 } from "./chunks/LpAvatar-cQVsNk6F.js";
10
10
  import { _ as _9 } from "./chunks/LpBadge-D5QQdDQ_.js";
@@ -19,9 +19,9 @@ import { chartView, lttbIndices, minMaxBuckets, panRange, slotOf, sourceOf, zoom
19
19
  import { useChartSync } from "./composables/useChartSync.js";
20
20
  import { createLinkedView, linkChart, linkLog, linkPipeline, linkTable, linkTopology, provideLinkedView, useLinkedView } from "./composables/useLinkedView.js";
21
21
  import { _ as _14 } from "./chunks/LpCheckbox-D6RuDW4X.js";
22
- import { _ as _15 } from "./chunks/LpCodeBlock-DuzmnIHl.js";
22
+ import { _ as _15 } from "./chunks/LpCodeBlock-DBqy4RLd.js";
23
23
  import { tokenizeLines } from "./components/codeHighlight.js";
24
- import { _ as _16 } from "./chunks/LpColorPicker-BxAHEnR5.js";
24
+ import { _ as _16 } from "./chunks/LpColorPicker-COHzV68R.js";
25
25
  import { DEFAULT_SWATCHES, clampHsv, formatColor, hsvToHsl, hsvToRgb, isLight, normalizeHue, opaqueCss, parseColor, parseHex, rgbToHex, rgbToHsv } from "./components/color.js";
26
26
  import { default as default3 } from "./components/LpCommandPalette.vue.js";
27
27
  import { applyQueryFilters, highlightParts, parseCommandQuery, parsePaletteQuery, rankCommandItems, searchCommandItems, swapCommandLayout } from "./components/commandSearch.js";
@@ -33,47 +33,47 @@ import { default as default6 } from "./components/LpPaletteStats.vue.js";
33
33
  import { default as default7 } from "./components/LpPaletteSwatches.vue.js";
34
34
  import { default as default8 } from "./components/LpKeys.vue.js";
35
35
  import { comboKeys, comboSteps } from "./components/keys.js";
36
- import { _ as _18 } from "./chunks/LpConfirmDialog-6oCIJTDa.js";
37
- import { _ as _19 } from "./chunks/LpConfirmHost-DgHvfT6s.js";
36
+ import { _ as _18 } from "./chunks/LpConfirmDialog-CnrmzkuN.js";
37
+ import { _ as _19 } from "./chunks/LpConfirmHost-CwbObVGH.js";
38
38
  import { confirm, useConfirm } from "./components/confirm.js";
39
- import { _ as _20 } from "./chunks/LpContextMenu--eMGIql6.js";
39
+ import { _ as _20 } from "./chunks/LpContextMenu-Bx_IhQDS.js";
40
40
  import { _ as _21 } from "./chunks/LpDatePicker-DwSDY0mt.js";
41
41
  import { _ as _22 } from "./chunks/LpDateRangePicker-CNQXdTVv.js";
42
42
  import { _ as _23 } from "./chunks/LpRangeCalendar-BrqlGZzE.js";
43
43
  import { clampRange, dayAllowed, defaultDatePresets, defaultRangePresets, formatRange, normalizeRange, sameRange } from "./components/dateRange.js";
44
44
  import { _ as _24 } from "./chunks/LpDisclosure-DG7JCo-d.js";
45
45
  import { _ as _25 } from "./chunks/LpDivider-CUX46KR0.js";
46
- import { _ as _26 } from "./chunks/LpDrawer-Bt9UUqt_.js";
46
+ import { _ as _26 } from "./chunks/LpDrawer-DXNQFpAA.js";
47
47
  import { _ as _27 } from "./chunks/LpDropdownMenu-CLzxIOgM.js";
48
48
  import { default as default9 } from "./components/LpDropzone.vue.js";
49
49
  import { _ as _28 } from "./chunks/LpEmptyState-DurPF001.js";
50
- import { _ as _29 } from "./chunks/LpFileTree-BSx1kBoV.js";
50
+ import { _ as _29 } from "./chunks/LpFileTree-C-rJKzEQ.js";
51
51
  import { ancestorIds, checkStateOf, checkedCount, computeStats, fileIcon, formatModified, formatSize, sortNodes, subtreeIds, subtreeSize } from "./components/fileTree.js";
52
52
  import { _ as _30 } from "./chunks/LpFieldNotice-DJ10cYIo.js";
53
53
  import { _ as _31 } from "./chunks/LpFormField-BKYn9dyP.js";
54
54
  import { _ as _32 } from "./chunks/LpIcon-C6JpQ5td.js";
55
55
  import { i, r, a, b } from "./chunks/icons-CYfcpSDS.js";
56
56
  import { default as default10 } from "./components/LpImageEditor.vue.js";
57
- import { _ as _33 } from "./chunks/LpInfraNode-BAU40Km2.js";
58
- import { _ as _34 } from "./chunks/LpInput-DL6HEJdi.js";
59
- import { _ as _35 } from "./chunks/LpLightbox-xvpQ64MM.js";
57
+ import { _ as _33 } from "./chunks/LpInfraNode-Bb5nbuFY.js";
58
+ import { _ as _34 } from "./chunks/LpInput-D0O6dpuA.js";
59
+ import { _ as _35 } from "./chunks/LpLightbox-CtDTQV01.js";
60
60
  import { fileNameOf } from "./components/lightbox.js";
61
61
  import { _ as _36 } from "./chunks/LpLink-Krkjhe_y.js";
62
- import { _ as _37 } from "./chunks/LpLogViewer-Dvb1E9_G.js";
63
- import { _ as _38 } from "./chunks/LpLogInspector-6cNnXqp4.js";
62
+ import { _ as _37 } from "./chunks/LpLogViewer-umCZBapN.js";
63
+ import { _ as _38 } from "./chunks/LpLogInspector-BdQlX6S-.js";
64
64
  import { compilePattern, findIds, messageShape, structuredPayload, timeMs } from "./components/logTools.js";
65
65
  import { countLevels, matchPositions, matchesTerm, ringWindow, stepMatch } from "./components/logSearch.js";
66
- import { _ as _39 } from "./chunks/LpMediaGallery-Df-tiWeq.js";
67
- import { _ as _40 } from "./chunks/LpModal-DrtQ_1A2.js";
68
- import { _ as _41 } from "./chunks/LpModalNav-DkmGCnZE.js";
69
- import { _ as _42 } from "./chunks/LpNotificationBell-D_wklO1m.js";
70
- import { _ as _43 } from "./chunks/LpNumberField-CNHsmSDZ.js";
66
+ import { _ as _39 } from "./chunks/LpMediaGallery-BYEwySoF.js";
67
+ import { _ as _40 } from "./chunks/LpModal-DDvrSAnf.js";
68
+ import { _ as _41 } from "./chunks/LpModalNav-gOi1Giz1.js";
69
+ import { _ as _42 } from "./chunks/LpNotificationBell-DUbVyK6R.js";
70
+ import { _ as _43 } from "./chunks/LpNumberField-Csg-1Zh_.js";
71
71
  import { _ as _44 } from "./chunks/LpTimeField-DeOcKWJq.js";
72
72
  import { _ as _45 } from "./chunks/LpNumberFlow-Vqj0tP7B.js";
73
73
  import { _ as _46 } from "./chunks/LpOtpInput-BRpLBbOD.js";
74
74
  import { _ as _47 } from "./chunks/LpPagination-snQ020xQ.js";
75
- import { _ as _48 } from "./chunks/LpPasswordInput-B-zD6tUS.js";
76
- import { _ as _49 } from "./chunks/LpPie-9t_guO49.js";
75
+ import { _ as _48 } from "./chunks/LpPasswordInput-D4HPhqfV.js";
76
+ import { _ as _49 } from "./chunks/LpPie-oVNHjsKD.js";
77
77
  import { _ as _50 } from "./chunks/LpPhoneInput-BSL7NX4z.js";
78
78
  import { filterCountries, flagEmoji, loadCountries, matchCountryByValue } from "./components/countries.js";
79
79
  import { _ as _51 } from "./chunks/LpPopover-BQSuxtai.js";
@@ -81,58 +81,59 @@ import { _ as _52 } from "./chunks/LpProgress-D_MSjowb.js";
81
81
  import { _ as _53 } from "./chunks/LpRadio-CWA5Eb3M.js";
82
82
  import { _ as _54 } from "./chunks/LpRadioGroup-BrazjLY_.js";
83
83
  import { _ as _55 } from "./chunks/LpRollingText-B54Pje7P.js";
84
- import { _ as _56 } from "./chunks/LpScrollArea-ay4Xo_hg.js";
85
- import { _ as _57 } from "./chunks/LpSegmented-DbEJhbv-.js";
86
- import { _ as _58 } from "./chunks/LpSection-BfteipxU.js";
87
- import { _ as _59 } from "./chunks/LpSelect-Y-iuSymW.js";
84
+ import { _ as _56 } from "./chunks/LpScrollArea-CqvwfZs2.js";
85
+ import { _ as _57 } from "./chunks/LpPageScrollbar-D2O0xhJw.js";
86
+ import { _ as _58 } from "./chunks/LpSegmented-DbEJhbv-.js";
87
+ import { _ as _59 } from "./chunks/LpSection-BfteipxU.js";
88
+ import { _ as _60 } from "./chunks/LpSelect-Y-iuSymW.js";
88
89
  import { fitChips, toggledValues } from "./components/select.js";
89
- import { _ as _60 } from "./chunks/LpServiceNode-D8uJ8sGk.js";
90
- import { _ as _61 } from "./chunks/LpShift-DAgS_d2x.js";
91
- import { _ as _62 } from "./chunks/LpSwap-M7nFeW3C.js";
92
- import { _ as _63 } from "./chunks/LpHintExample-YzCXiSUp.js";
90
+ import { _ as _61 } from "./chunks/LpServiceNode-Cln2ntdw.js";
91
+ import { _ as _62 } from "./chunks/LpShift-DAgS_d2x.js";
92
+ import { _ as _63 } from "./chunks/LpSwap-M7nFeW3C.js";
93
+ import { _ as _64 } from "./chunks/LpHintExample-YzCXiSUp.js";
93
94
  import { default as default11 } from "./components/LpShortcutsDialog.vue.js";
94
- import { _ as _64 } from "./chunks/LpSidebar-kSkpPh3-.js";
95
- import { _ as _65 } from "./chunks/LpContextSwitcher-1C1tExdl.js";
96
- import { _ as _66 } from "./chunks/LpSkeleton-BB6XIV-w.js";
97
- import { _ as _67 } from "./chunks/LpSlider-A4ixovgS.js";
98
- import { _ as _68 } from "./chunks/LpRangeSlider-fz61tzc-.js";
99
- import { _ as _69 } from "./chunks/LpVideoBackdrop-Ct4St4ZL.js";
95
+ import { _ as _65 } from "./chunks/LpSidebar-DDNJzb69.js";
96
+ import { _ as _66 } from "./chunks/LpContextSwitcher-1C1tExdl.js";
97
+ import { _ as _67 } from "./chunks/LpSkeleton-BB6XIV-w.js";
98
+ import { _ as _68 } from "./chunks/LpSlider-A4ixovgS.js";
99
+ import { _ as _69 } from "./chunks/LpRangeSlider-fz61tzc-.js";
100
+ import { _ as _70 } from "./chunks/LpVideoBackdrop-Ct4St4ZL.js";
100
101
  import { formatClipTime, isNativeLoop, planLoop, seamProgress, seamReached } from "./components/videoBackdrop.js";
101
- import { _ as _70 } from "./chunks/LpSparkline-CExIRDb3.js";
102
- import { _ as _71 } from "./chunks/LpStat-pMNZgFcq.js";
103
- import { _ as _72 } from "./chunks/LpStepper-DNnh7lCu.js";
104
- import { _ as _73 } from "./chunks/LpSwitch-DnC2-0aV.js";
102
+ import { _ as _71 } from "./chunks/LpSparkline-CExIRDb3.js";
103
+ import { _ as _72 } from "./chunks/LpStat-DPjc6_fX.js";
104
+ import { _ as _73 } from "./chunks/LpStepper-DNnh7lCu.js";
105
+ import { _ as _74 } from "./chunks/LpSwitch-DnC2-0aV.js";
105
106
  import { default as default12 } from "./components/LpTable.vue.js";
106
107
  import { compareValues } from "./components/tableSort.js";
107
108
  import { filterRows, showOnly, shownValues } from "./components/tableFilter.js";
108
109
  import { useTableFilterChoice } from "./composables/useTableFilterChoice.js";
109
110
  import { resolveRowMenu } from "./components/tableRowMenu.js";
110
- import { _ as _74 } from "./chunks/LpTableOfContents-CKkWEK6R.js";
111
+ import { _ as _75 } from "./chunks/LpTableOfContents-CKkWEK6R.js";
111
112
  import { default as default13 } from "./components/LpTabs.vue.js";
112
- import { _ as _75 } from "./chunks/LpBottomNav-zxLGGbjm.js";
113
- import { _ as _76 } from "./chunks/LpTagsInput-Dt0mteSj.js";
113
+ import { _ as _76 } from "./chunks/LpBottomNav-zxLGGbjm.js";
114
+ import { _ as _77 } from "./chunks/LpTagsInput-Dt0mteSj.js";
114
115
  import { addTags, splitTags } from "./components/tags.js";
115
- import { _ as _77 } from "./chunks/LpTextarea-Co0b9PVx.js";
116
- import { _ as _78 } from "./chunks/LpThemeSwitcher-CFLkdbBL.js";
117
- import { _ as _79 } from "./chunks/LpTilt-B7KHX1zH.js";
118
- import { _ as _80 } from "./chunks/LpToaster-QFj0P-5m.js";
119
- import { _ as _81 } from "./chunks/LpTooltip-BJf3lZMq.js";
120
- import { _ as _82 } from "./chunks/LpTour-ClKYhx4h.js";
116
+ import { _ as _78 } from "./chunks/LpTextarea-Co0b9PVx.js";
117
+ import { _ as _79 } from "./chunks/LpThemeSwitcher-DmCZ21P_.js";
118
+ import { _ as _80 } from "./chunks/LpTilt-B7KHX1zH.js";
119
+ import { _ as _81 } from "./chunks/LpToaster-Ct_ZOhCh.js";
120
+ import { _ as _82 } from "./chunks/LpTooltip-Bz_rrq5S.js";
121
+ import { _ as _83 } from "./chunks/LpTour-ClKYhx4h.js";
121
122
  import { holeOf, openContextMenu, panelsAround } from "./components/tour.js";
122
- import { _ as _83 } from "./chunks/LpHintLayer-BeKRsRon.js";
123
- import { _ as _84 } from "./chunks/LpHints-qf3xYsza.js";
123
+ import { _ as _84 } from "./chunks/LpHintLayer-BeKRsRon.js";
124
+ import { _ as _85 } from "./chunks/LpHints-qf3xYsza.js";
124
125
  import { HINT_SIGNALS, contextMenuTip, createHintSystem, dropzoneTip, hintKey, hintSummary, hotkeyTip, localHintStorage, noteDropzone, noteHotkeyTarget, paletteTip, provideHintSystem, runningHintSystem, useHintSystem } from "./composables/useHintSystem.js";
125
- import { _ as _85 } from "./chunks/LpTooltipProvider-CftjV7Xc.js";
126
- import { _ as _86 } from "./chunks/LpTopologyCanvas-BOHHHZ_6.js";
126
+ import { _ as _86 } from "./chunks/LpTooltipProvider-CftjV7Xc.js";
127
+ import { _ as _87 } from "./chunks/LpTopologyCanvas-jqz1KCq2.js";
127
128
  import { clusterGraph, diffTopology, findPath, layeredLayout, neighborhood, topologyToSvg } from "./components/topologyGraph.js";
128
- import { _ as _87 } from "./chunks/LpUptimeBar-BnYmR2rj.js";
129
+ import { _ as _88 } from "./chunks/LpUptimeBar-BoxcCDVY.js";
129
130
  import { addLeaf, addTab, countBlocks, countLeaves, deserializeLayout, makeLayout, moveLeaf, removeBlock, removeLeaf, reorderTab, resizeAt, serializeLayout, setActiveTab } from "./layout/tree.js";
130
131
  import { blockTitle, defineBlocks } from "./layout/registry.js";
131
132
  import { layoutController, useLayout } from "./layout/useLayout.js";
132
133
  import { useWorkspaces } from "./layout/useWorkspaces.js";
133
- import { _ as _88 } from "./chunks/LpWorkspaceSwitcher-D0e9upAy.js";
134
- import { _ as _89 } from "./chunks/LpInspector-CuoMAhiw.js";
135
- import { _ as _90 } from "./chunks/LpWindow-B8YSRVTH.js";
134
+ import { _ as _89 } from "./chunks/LpWorkspaceSwitcher-BeNHCLd5.js";
135
+ import { _ as _90 } from "./chunks/LpInspector-DO3fTCQ1.js";
136
+ import { _ as _91 } from "./chunks/LpWindow-B8YSRVTH.js";
136
137
  import { WINDOW_DOCKS, clampRect, dockAt, dockedRect, isWindowRect, resizeRect, snapRect, useWindowLayer } from "./composables/windowing.js";
137
138
  import { THEME_COOKIE, applyTheme, applyThemeWithTransition, bootstrapTheme, cacheSystemThemes, normalizeTheme, parseTheme, prefersDarkScheme, revealTransition, serializeTheme, themeEntries, themeFromCookie, themeToCssRule, themeToCssVars, useTheme } from "./theme/useTheme.js";
138
139
  import { GLASS_BACKDROP_ATTR, NO_BACKDROP_ATTR, detectBackdropFilter, isBrokenBackdropEngine, setGlassBackdrop } from "./theme/backdrop.js";
@@ -178,67 +179,67 @@ import { useShift } from "./composables/useShift.js";
178
179
  import { useTilt } from "./composables/useTilt.js";
179
180
  import { useZoomPan } from "./composables/useZoomPan.js";
180
181
  import { useToast } from "./composables/useToast.js";
181
- import { _ as _91 } from "./chunks/LpThemeProvider-XK6ZeWAE.js";
182
- import { _ as _92 } from "./chunks/LpFrame-Bv5Fphte.js";
183
- import { _ as _93 } from "./chunks/LpThemeStudio-DzYfE-5k.js";
184
- import { _ as _94 } from "./chunks/LpThemeStudioSection-B7bt8Iyg.js";
182
+ import { _ as _92 } from "./chunks/LpThemeProvider-XK6ZeWAE.js";
183
+ import { _ as _93 } from "./chunks/LpFrame-Bv5Fphte.js";
184
+ import { _ as _94 } from "./chunks/LpThemeStudio-ChU0_Ga8.js";
185
+ import { _ as _95 } from "./chunks/LpThemeStudioSection-B7bt8Iyg.js";
185
186
  import { isInternalHref, resolveLink } from "./components/link.js";
186
- import { _ as _95 } from "./chunks/LpRepeater-BkJHSPI1.js";
187
- import { _ as _96 } from "./chunks/LpGauge-KZaQ_FDR.js";
188
- import { _ as _97 } from "./chunks/LpQuota-CgWPgdVt.js";
189
- import { _ as _98 } from "./chunks/LpStatus-DGJFwk5F.js";
190
- import { _ as _99 } from "./chunks/LpRelativeTime-BovUk8MP.js";
191
- import { _ as _100 } from "./chunks/LpActivityLine-Ea-t5Vza.js";
187
+ import { _ as _96 } from "./chunks/LpRepeater-BkJHSPI1.js";
188
+ import { _ as _97 } from "./chunks/LpGauge-KZaQ_FDR.js";
189
+ import { _ as _98 } from "./chunks/LpQuota-CgWPgdVt.js";
190
+ import { _ as _99 } from "./chunks/LpStatus-DGJFwk5F.js";
191
+ import { _ as _100 } from "./chunks/LpRelativeTime-0zI-44ve.js";
192
+ import { _ as _101 } from "./chunks/LpActivityLine-Ea-t5Vza.js";
192
193
  import { TONE_COLOR, TONE_SOFT, arcPath, capacityThresholds, meterFraction, toneAt } from "./components/meter.js";
193
194
  import { TONES, TONE_ALIASES, toneLook, toneOf } from "./components/tone.js";
194
195
  import { formatAmount, quotaSegments, quotaState } from "./components/quota.js";
195
196
  import { compactNumber, decimalMark, formatBytes } from "./components/format.js";
196
197
  import { STATUS_LABELS, STATUS_LOOK } from "./components/status.js";
197
198
  import { formatRelativeTime } from "./components/relativeTime.js";
198
- import { _ as _101 } from "./chunks/LpPipeline-rjXvEDRJ.js";
199
- import { _ as _102 } from "./chunks/LpStepMark-Dw2MRTrt.js";
199
+ import { _ as _102 } from "./chunks/LpPipeline-BSXT6oUJ.js";
200
+ import { _ as _103 } from "./chunks/LpStepMark-Dw2MRTrt.js";
200
201
  import { childProgress, connectorFilled, currentStepIndex, isSettled, overallStatus, stepElapsed } from "./components/pipeline.js";
201
- import { _ as _103 } from "./chunks/LpLoader-Bf1yZwaU.js";
202
+ import { _ as _104 } from "./chunks/LpLoader-Bf1yZwaU.js";
202
203
  import { useLoadingGate } from "./composables/useLoadingGate.js";
203
204
  import { useNow } from "./composables/useNow.js";
204
- import { _ as _104 } from "./chunks/LpCountdown-DVl7vXI1.js";
205
+ import { _ as _105 } from "./chunks/LpCountdown-DVl7vXI1.js";
205
206
  import { DEFAULT_MILESTONES, DEFAULT_UNIT_LABELS, ceilToSecond, crossedMilestone, formatElapsed, formatTime, msToNextSecond, splitTime, timeParts } from "./components/timeSpan.js";
206
- import { _ as _105 } from "./chunks/LpCopyButton-7EOSIuwa.js";
207
- import { _ as _106 } from "./chunks/LpSecretField-DBvU6iAw.js";
208
- import { _ as _107 } from "./chunks/LpDataList-DgBeM01y.js";
209
- import { _ as _108 } from "./chunks/LpEditable-DVT0Rh8F.js";
210
- import { _ as _109 } from "./chunks/LpTruncate-C6u3gjc6.js";
211
- import { _ as _110 } from "./chunks/LpCodeDisplay-CO8fngxa.js";
207
+ import { _ as _106 } from "./chunks/LpCopyButton-sAMvWeLP.js";
208
+ import { _ as _107 } from "./chunks/LpSecretField-B2roc4Iz.js";
209
+ import { _ as _108 } from "./chunks/LpDataList-CaVfsozH.js";
210
+ import { _ as _109 } from "./chunks/LpEditable-DVT0Rh8F.js";
211
+ import { _ as _110 } from "./chunks/LpTruncate-ellq9RYM.js";
212
+ import { _ as _111 } from "./chunks/LpCodeDisplay-D3BUAhV1.js";
212
213
  import { formatRemaining, groupCode, middleTruncate, normalizeCode } from "./components/fieldText.js";
213
- import { _ as _111 } from "./chunks/LpHoverCard-DanH3Nz1.js";
214
- import { _ as _112 } from "./chunks/LpIdenticon-Dbbr4fvt.js";
214
+ import { _ as _112 } from "./chunks/LpHoverCard-CHE9jAJG.js";
215
+ import { _ as _113 } from "./chunks/LpIdenticon-Dbbr4fvt.js";
215
216
  import { hashString, identicon, identiconRects, identiconSvg } from "./components/identicon.js";
216
- import { _ as _113 } from "./chunks/LpShaderBackdrop-wQygYb5h.js";
217
+ import { _ as _114 } from "./chunks/LpShaderBackdrop-wQygYb5h.js";
217
218
  import { PRESET_NAMES } from "./components/shaderBackdrop.js";
218
- import { _ as _114 } from "./chunks/LpCollapse-DrAw5DBZ.js";
219
+ import { _ as _115 } from "./chunks/LpCollapse-DrAw5DBZ.js";
219
220
  import { pseudoLocalize } from "./composables/pseudoLocale.js";
220
- import { _ as _115 } from "./chunks/LpTextReveal-CtAnOUkp.js";
221
- import { _ as _116 } from "./chunks/LpShinyText-DX2ajtWq.js";
222
- import { _ as _117 } from "./chunks/LpTypewriter-CZIzpdbe.js";
223
- import { _ as _118 } from "./chunks/LpScramble-DsE77iVp.js";
221
+ import { _ as _116 } from "./chunks/LpTextReveal-CtAnOUkp.js";
222
+ import { _ as _117 } from "./chunks/LpShinyText-DX2ajtWq.js";
223
+ import { _ as _118 } from "./chunks/LpTypewriter-CZIzpdbe.js";
224
+ import { _ as _119 } from "./chunks/LpScramble-DsE77iVp.js";
224
225
  import { useScramble } from "./composables/useScramble.js";
225
226
  import { useInView } from "./composables/useInView.js";
226
227
  import { SCRAMBLE_GLYPHS, graphemes, planScramble, randomGlyph, scrambleFrame, seededRandom, settledCells } from "./components/scramble.js";
227
228
  import { default as default14 } from "./components/LpDock.vue.js";
228
229
  import { dockSize, magneticOffset } from "./components/dock.js";
229
- import { _ as _119 } from "./chunks/LpMasonry-DPYekFxs.js";
230
+ import { _ as _120 } from "./chunks/LpMasonry-DPYekFxs.js";
230
231
  import { masonryColumnCount, placeMasonry } from "./components/masonry.js";
231
- import { _ as _120 } from "./chunks/LpRevealOnScroll-CPwyiQAr.js";
232
+ import { _ as _121 } from "./chunks/LpRevealOnScroll-CPwyiQAr.js";
232
233
  import { revealFrom, revealTo, staggerDelay } from "./components/reveal.js";
233
- import { _ as _121 } from "./chunks/LpSpotlight-DwxkhFgR.js";
234
- import { _ as _122 } from "./chunks/LpGlowBorder-B8V-QzIl.js";
235
- import { _ as _123 } from "./chunks/LpMagnetic-CtXKLa2Y.js";
234
+ import { _ as _122 } from "./chunks/LpSpotlight-DwxkhFgR.js";
235
+ import { _ as _123 } from "./chunks/LpGlowBorder-B8V-QzIl.js";
236
+ import { _ as _124 } from "./chunks/LpMagnetic-CtXKLa2Y.js";
236
237
  import { spotlightPoint, useSpotlight } from "./composables/useSpotlight.js";
237
- import { _ as _124 } from "./chunks/LpCommandScope-DRUvHiX7.js";
238
+ import { _ as _125 } from "./chunks/LpCommandScope-DRUvHiX7.js";
238
239
  import { createPaletteRegistry, mergePaletteCommands, usePaletteCommands, vPalette } from "./composables/usePaletteCommands.js";
239
240
  import { commandShortcuts, commandToHotkey, commandToMenuItem, commandToPalette, useCommands } from "./composables/useCommands.js";
240
241
  import { usePaletteTheme } from "./theme/palette.js";
241
- import { _ as _125 } from "./chunks/LpPaletteTheme-dVtxHx-F.js";
242
+ import { _ as _126 } from "./chunks/LpPaletteTheme-BIXpZLGe.js";
242
243
  export {
243
244
  CHART_PALETTE,
244
245
  DEFAULT_MASK_TOKENS,
@@ -253,14 +254,14 @@ export {
253
254
  LP_FIELD,
254
255
  _ as LayoutCanvas,
255
256
  _4 as LpActionBar,
256
- _100 as LpActivityLine,
257
+ _101 as LpActivityLine,
257
258
  _2 as LpAddressInput,
258
259
  _5 as LpAlert,
259
260
  _6 as LpAppShell,
260
261
  _7 as LpAutocomplete,
261
262
  _8 as LpAvatar,
262
263
  _9 as LpBadge,
263
- _75 as LpBottomNav,
264
+ _76 as LpBottomNav,
264
265
  _10 as LpBreadcrumbs,
265
266
  _11 as LpButton,
266
267
  _12 as LpCalendar,
@@ -268,18 +269,18 @@ export {
268
269
  default2 as LpChart,
269
270
  _14 as LpCheckbox,
270
271
  _15 as LpCodeBlock,
271
- _110 as LpCodeDisplay,
272
- _114 as LpCollapse,
272
+ _111 as LpCodeDisplay,
273
+ _115 as LpCollapse,
273
274
  _16 as LpColorPicker,
274
275
  default3 as LpCommandPalette,
275
- _124 as LpCommandScope,
276
+ _125 as LpCommandScope,
276
277
  _18 as LpConfirmDialog,
277
278
  _19 as LpConfirmHost,
278
279
  _20 as LpContextMenu,
279
- _65 as LpContextSwitcher,
280
- _105 as LpCopyButton,
281
- _104 as LpCountdown,
282
- _107 as LpDataList,
280
+ _66 as LpContextSwitcher,
281
+ _106 as LpCopyButton,
282
+ _105 as LpCountdown,
283
+ _108 as LpDataList,
283
284
  _21 as LpDatePicker,
284
285
  _22 as LpDateRangePicker,
285
286
  _24 as LpDisclosure,
@@ -288,33 +289,33 @@ export {
288
289
  _26 as LpDrawer,
289
290
  _27 as LpDropdownMenu,
290
291
  default9 as LpDropzone,
291
- _108 as LpEditable,
292
+ _109 as LpEditable,
292
293
  _28 as LpEmptyState,
293
294
  _30 as LpFieldNotice,
294
295
  _29 as LpFileTree,
295
296
  _31 as LpFormField,
296
- _92 as LpFrame,
297
- _96 as LpGauge,
298
- _122 as LpGlowBorder,
299
- _63 as LpHintExample,
300
- _83 as LpHintLayer,
301
- _84 as LpHints,
302
- _111 as LpHoverCard,
297
+ _93 as LpFrame,
298
+ _97 as LpGauge,
299
+ _123 as LpGlowBorder,
300
+ _64 as LpHintExample,
301
+ _84 as LpHintLayer,
302
+ _85 as LpHints,
303
+ _112 as LpHoverCard,
303
304
  _32 as LpIcon,
304
- _112 as LpIdenticon,
305
+ _113 as LpIdenticon,
305
306
  default10 as LpImageEditor,
306
307
  _33 as LpInfraNode,
307
308
  _34 as LpInput,
308
- _89 as LpInspector,
309
+ _90 as LpInspector,
309
310
  default8 as LpKeys,
310
311
  _35 as LpLightbox,
311
312
  _36 as LpLink,
312
- _103 as LpLoader,
313
+ _104 as LpLoader,
313
314
  _38 as LpLogInspector,
314
315
  _37 as LpLogViewer,
315
- _123 as LpMagnetic,
316
+ _124 as LpMagnetic,
316
317
  _3 as LpMapPicker,
317
- _119 as LpMasonry,
318
+ _120 as LpMasonry,
318
319
  _39 as LpMediaGallery,
319
320
  _40 as LpModal,
320
321
  _41 as LpModalNav,
@@ -322,73 +323,74 @@ export {
322
323
  _43 as LpNumberField,
323
324
  _45 as LpNumberFlow,
324
325
  _46 as LpOtpInput,
326
+ _57 as LpPageScrollbar,
325
327
  _47 as LpPagination,
326
328
  default5 as LpPaletteFacts,
327
329
  default4 as LpPaletteHeader,
328
330
  _17 as LpPalettePreview,
329
331
  default6 as LpPaletteStats,
330
332
  default7 as LpPaletteSwatches,
331
- _125 as LpPaletteTheme,
333
+ _126 as LpPaletteTheme,
332
334
  _48 as LpPasswordInput,
333
335
  _50 as LpPhoneInput,
334
336
  _49 as LpPie,
335
- _101 as LpPipeline,
337
+ _102 as LpPipeline,
336
338
  _51 as LpPopover,
337
339
  _52 as LpProgress,
338
- _97 as LpQuota,
340
+ _98 as LpQuota,
339
341
  _53 as LpRadio,
340
342
  _54 as LpRadioGroup,
341
343
  _23 as LpRangeCalendar,
342
- _68 as LpRangeSlider,
343
- _99 as LpRelativeTime,
344
- _95 as LpRepeater,
345
- _120 as LpRevealOnScroll,
344
+ _69 as LpRangeSlider,
345
+ _100 as LpRelativeTime,
346
+ _96 as LpRepeater,
347
+ _121 as LpRevealOnScroll,
346
348
  _55 as LpRollingText,
347
- _118 as LpScramble,
349
+ _119 as LpScramble,
348
350
  _56 as LpScrollArea,
349
- _106 as LpSecretField,
350
- _58 as LpSection,
351
- _57 as LpSegmented,
352
- _59 as LpSelect,
353
- _60 as LpServiceNode,
354
- _113 as LpShaderBackdrop,
355
- _61 as LpShift,
356
- _116 as LpShinyText,
351
+ _107 as LpSecretField,
352
+ _59 as LpSection,
353
+ _58 as LpSegmented,
354
+ _60 as LpSelect,
355
+ _61 as LpServiceNode,
356
+ _114 as LpShaderBackdrop,
357
+ _62 as LpShift,
358
+ _117 as LpShinyText,
357
359
  default11 as LpShortcutsDialog,
358
- _64 as LpSidebar,
359
- _66 as LpSkeleton,
360
- _67 as LpSlider,
361
- _70 as LpSparkline,
362
- _121 as LpSpotlight,
363
- _71 as LpStat,
364
- _98 as LpStatus,
365
- _102 as LpStepMark,
366
- _72 as LpStepper,
367
- _62 as LpSwap,
368
- _73 as LpSwitch,
360
+ _65 as LpSidebar,
361
+ _67 as LpSkeleton,
362
+ _68 as LpSlider,
363
+ _71 as LpSparkline,
364
+ _122 as LpSpotlight,
365
+ _72 as LpStat,
366
+ _99 as LpStatus,
367
+ _103 as LpStepMark,
368
+ _73 as LpStepper,
369
+ _63 as LpSwap,
370
+ _74 as LpSwitch,
369
371
  default12 as LpTable,
370
- _74 as LpTableOfContents,
372
+ _75 as LpTableOfContents,
371
373
  default13 as LpTabs,
372
- _76 as LpTagsInput,
373
- _115 as LpTextReveal,
374
- _77 as LpTextarea,
375
- _91 as LpThemeProvider,
376
- _93 as LpThemeStudio,
377
- _94 as LpThemeStudioSection,
378
- _78 as LpThemeSwitcher,
379
- _79 as LpTilt,
374
+ _77 as LpTagsInput,
375
+ _116 as LpTextReveal,
376
+ _78 as LpTextarea,
377
+ _92 as LpThemeProvider,
378
+ _94 as LpThemeStudio,
379
+ _95 as LpThemeStudioSection,
380
+ _79 as LpThemeSwitcher,
381
+ _80 as LpTilt,
380
382
  _44 as LpTimeField,
381
- _80 as LpToaster,
382
- _81 as LpTooltip,
383
- _85 as LpTooltipProvider,
384
- _86 as LpTopologyCanvas,
385
- _82 as LpTour,
386
- _109 as LpTruncate,
387
- _117 as LpTypewriter,
388
- _87 as LpUptimeBar,
389
- _69 as LpVideoBackdrop,
390
- _90 as LpWindow,
391
- _88 as LpWorkspaceSwitcher,
383
+ _81 as LpToaster,
384
+ _82 as LpTooltip,
385
+ _86 as LpTooltipProvider,
386
+ _87 as LpTopologyCanvas,
387
+ _83 as LpTour,
388
+ _110 as LpTruncate,
389
+ _118 as LpTypewriter,
390
+ _88 as LpUptimeBar,
391
+ _70 as LpVideoBackdrop,
392
+ _91 as LpWindow,
393
+ _89 as LpWorkspaceSwitcher,
392
394
  NO_BACKDROP_ATTR,
393
395
  OSM_TILES,
394
396
  PALETTE_MODES,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leavepulse/ui",
3
- "version": "0.78.0",
3
+ "version": "0.78.1",
4
4
  "type": "module",
5
5
  "description": "LeavePulse token-driven Vue component kit.",
6
6
  "repository": {
@@ -73,6 +73,7 @@ export const COMPONENT_NAMES = [
73
73
  "LpNumberField",
74
74
  "LpNumberFlow",
75
75
  "LpOtpInput",
76
+ "LpPageScrollbar",
76
77
  "LpPagination",
77
78
  "LpPaletteFacts",
78
79
  "LpPaletteHeader",
@@ -0,0 +1,17 @@
1
+ <script setup lang="ts">
2
+ /*
3
+ * A field's leading icon: `icon` draws it, the field's own `leading` slot
4
+ * (handed on as this one's default) replaces it. Shared by LpInput and
5
+ * LpNumberField, so the two fields put the same thing in the same place.
6
+ * Renders nothing with neither.
7
+ */
8
+ import LpIcon from "./LpIcon.vue"
9
+
10
+ defineProps<{ icon?: string }>()
11
+ </script>
12
+
13
+ <template>
14
+ <span v-if="$slots.default || icon" class="flex shrink-0 items-center text-muted">
15
+ <slot><LpIcon :name="icon!" :size="16" /></slot>
16
+ </span>
17
+ </template>
@@ -65,6 +65,7 @@ import LpBottomNav from "./LpBottomNav.vue"
65
65
  import LpContextSwitcher from "./LpContextSwitcher.vue"
66
66
  import LpButton from "./LpButton.vue"
67
67
  import LpIcon from "./LpIcon.vue"
68
+ import LpPageScrollbar from "./LpPageScrollbar.vue"
68
69
  import LpScrollArea from "./LpScrollArea.vue"
69
70
  import LpShift from "./LpShift.vue"
70
71
  import LpSidebar from "./LpSidebar.vue"
@@ -130,6 +131,13 @@ const props = withDefaults(
130
131
  * remounts the page.
131
132
  */
132
133
  scroll?: "document" | "region"
134
+ /**
135
+ * While the document scrolls, draw the kit's overlay bar for it
136
+ * (LpPageScrollbar) under the header and above the bottom bar, in place of
137
+ * the browser's, which takes width from the page. `false` keeps the
138
+ * browser's. Where the browser's bars float anyway (phones) it draws none.
139
+ */
140
+ pageScrollbar?: boolean
133
141
  /** Loading skeleton for the nav. */
134
142
  loading?: boolean
135
143
  /** Text overrides: the burger's name and the skip link. */
@@ -206,6 +214,7 @@ const props = withDefaults(
206
214
  divider: true,
207
215
  contentClass: "mx-auto w-full max-w-6xl",
208
216
  scroll: "document",
217
+ pageScrollbar: true,
209
218
  // Unset, not false: an absent boolean would hand the sidebar "expanded"
210
219
  // and override the state it remembers.
211
220
  compact: undefined,
@@ -380,6 +389,18 @@ watch(bleeding, (bleed) => {
380
389
  void nextTick(() => view.scrollTo({ top, behavior: "instant" }))
381
390
  }
382
391
  })
392
+ // The bottom bar's height, for the page's scrollbar to stop above it (0 where it is hidden).
393
+ const bottomBarEl = ref<{ $el: HTMLElement } | null>(null)
394
+ const bottomBarHeight = ref(0)
395
+ let bottomBarSize: ResizeObserver | undefined
396
+ onMounted(() => {
397
+ const el = bottomBarEl.value?.$el
398
+ if (!el || el.nodeType !== 1) return
399
+ bottomBarSize = new (nodeWindow(el).ResizeObserver)(() => (bottomBarHeight.value = el.offsetHeight))
400
+ bottomBarSize.observe(el)
401
+ })
402
+ onBeforeUnmount(() => bottomBarSize?.disconnect())
403
+
383
404
  let releaseDocument: (() => void) | undefined
384
405
  onMounted(() => {
385
406
  if (!documentScroll || !pageEl.value) return
@@ -748,8 +769,10 @@ const backToTopClass = computed(() =>
748
769
  <slot name="aside" />
749
770
  </LpScrollArea>
750
771
  </aside>
772
+ <LpPageScrollbar v-if="windowScrolls && pageScrollbar" top="var(--lp-shell-top)" :bottom="`${bottomBarHeight}px`" />
751
773
  <LpBottomNav
752
774
  v-if="bottomNav"
775
+ ref="bottomBarEl"
753
776
  :class="[burgerHidden[mobileBreakpoint], spanClass, windowScrolls && `${STICKY} bottom-0`]"
754
777
  :items="bottomItems"
755
778
  :is-active="activeTest"
@@ -159,6 +159,12 @@ const portalTo = usePortalTarget()
159
159
  const guardOutside = useOutsideGuard()
160
160
 
161
161
  useMenuPalette(props)
162
+
163
+ // Several roots (trigger and portal), so Vue cannot hand attributes on by
164
+ // itself and dropped them: a trigger wrapped around this one from outside (an
165
+ // LpPopover's, as-child) lost its id, ARIA state and click, and its popover
166
+ // never opened. They go to the trigger, which merges them onto the slot's element.
167
+ defineOptions({ inheritAttrs: false })
162
168
  </script>
163
169
 
164
170
  <template>
@@ -169,6 +175,7 @@ useMenuPalette(props)
169
175
  <ContextMenuRoot @update:open="opened">
170
176
  <ContextMenuTrigger
171
177
  as-child
178
+ v-bind="$attrs"
172
179
  :disabled="!enabled"
173
180
  :data-lp-context-menu="hinted ? '' : undefined"
174
181
  @click.capture="leftClick"
@@ -165,6 +165,12 @@ watch(
165
165
  )
166
166
 
167
167
  onBeforeUnmount(cancelHold)
168
+
169
+ // Several roots (trigger and portal), so Vue cannot hand attributes on by
170
+ // itself and dropped them: a trigger wrapped around this one from outside (an
171
+ // LpPopover's, as-child) lost its id, ARIA state and click, and its popover
172
+ // never opened. They go to the trigger, which merges them onto the slot's element.
173
+ defineOptions({ inheritAttrs: false })
168
174
  </script>
169
175
 
170
176
  <template>
@@ -172,6 +178,7 @@ onBeforeUnmount(cancelHold)
172
178
  <HoverCardRoot v-else v-model:open="open" :open-delay="openDelay" :close-delay="closeDelay">
173
179
  <HoverCardTrigger
174
180
  as-child
181
+ v-bind="$attrs"
175
182
  :class="touch === 'hold' ? '[-webkit-touch-callout:none]' : undefined"
176
183
  @pointerdown="onPointerDown"
177
184
  @pointermove="onPointerMove"