@leavepulse/ui 0.87.1 → 0.88.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/dist/assets/{LpCommandPalette-DCZB4EAf.css → LpCommandPalette-CO_5TFOQ.css} +38 -19
  2. package/dist/assets/{LpDropzone-CfL3Vrx4.css → LpDropzone-CVGUQqgY.css} +10 -10
  3. package/dist/assets/{LpImageEditor-y3B-aW3H.css → LpImageEditor-D_ECuegW.css} +6 -6
  4. package/dist/chunks/{ContextMenuItems-D0jObgzN.js → ContextMenuItems-LujPZSWM.js} +2 -1
  5. package/dist/chunks/{DropzoneLinkField-DhwYRnvd.js → DropzoneLinkField-Ckuh8zFC.js} +2 -2
  6. package/dist/chunks/{IconCloseButton-CmWOJAXG.js → IconCloseButton-C_V7qngw.js} +1 -1
  7. package/dist/chunks/{LpActionBar-Cx_MSZl9.js → LpActionBar-43WHmTsM.js} +1 -1
  8. package/dist/chunks/{LpAddressInput-CfqQR5jE.js → LpAddressInput-BCqR0zmv.js} +5 -5
  9. package/dist/chunks/{LpAlert-CYtbpRYW.js → LpAlert-Q0h7Gucu.js} +1 -1
  10. package/dist/chunks/{LpAppShell-BQG98odS.js → LpAppShell-BWaVRsDB.js} +3 -3
  11. package/dist/chunks/{LpAutocomplete-VNID5zdy.js → LpAutocomplete-YPxAPHEo.js} +5 -5
  12. package/dist/chunks/{LpButton-DSHioIfD.js → LpButton-BvVoF-PO.js} +1 -1
  13. package/dist/chunks/{LpCheckbox-P7tEw8GO.js → LpCheckbox-C9VnPIQf.js} +1 -1
  14. package/dist/chunks/{LpCodeBlock-BNThgUdQ.js → LpCodeBlock-BgWcg2mk.js} +3 -3
  15. package/dist/chunks/{LpCodeDisplay-DsiE-Qy9.js → LpCodeDisplay-DBi1YPLp.js} +3 -3
  16. package/dist/chunks/{LpColorPicker-EXpwcX-t.js → LpColorPicker-KGMG8QEh.js} +4 -4
  17. package/dist/chunks/{LpConfirmDialog-DPiPVRn_.js → LpConfirmDialog-y6k0ryWR.js} +2 -2
  18. package/dist/chunks/{LpConfirmHost-Ddiljlog.js → LpConfirmHost-D-X0tDym.js} +1 -1
  19. package/dist/chunks/{LpContextMenu-DYpDm6iI.js → LpContextMenu-DEFirphS.js} +3 -3
  20. package/dist/chunks/{LpContextSwitcher-BPDSkKyA.js → LpContextSwitcher-COw6GHPW.js} +1 -1
  21. package/dist/chunks/{LpCopyButton-CxX682t4.js → LpCopyButton-BGzw95Xc.js} +2 -2
  22. package/dist/chunks/{LpDataList-DCtF7krm.js → LpDataList-B56Gu6Yt.js} +3 -3
  23. package/dist/chunks/{LpDatePicker-BElEHVm6.js → LpDatePicker-Dlyvgsan.js} +2 -2
  24. package/dist/chunks/{LpDateRangePicker-vLt-drEu.js → LpDateRangePicker-CAn2yGbn.js} +1 -1
  25. package/dist/chunks/{LpDrawer-C97k-3L2.js → LpDrawer-iRHwJOGn.js} +4 -4
  26. package/dist/chunks/{LpDropdownMenu-BPEsqZCN.js → LpDropdownMenu-CdCe7D2d.js} +3 -3
  27. package/dist/chunks/{LpEditable-CeRAzYMv.js → LpEditable-DfRUAGkA.js} +2 -2
  28. package/dist/chunks/{LpEmptyState-DrHBR3yh.js → LpEmptyState-DLOm07KH.js} +1 -1
  29. package/dist/chunks/{LpFileTree-BcQgsw4e.js → LpFileTree-BN_zybBN.js} +3 -3
  30. package/dist/chunks/{LpFileTreeNode-Dk2WqkPF.js → LpFileTreeNode-CC48DbT5.js} +3 -3
  31. package/dist/chunks/{LpHintLayer-CUSRLtLu.js → LpHintLayer-nuMqfzvy.js} +3 -3
  32. package/dist/chunks/{LpHints-BF40CP4_.js → LpHints-ByAd3a76.js} +3 -3
  33. package/dist/chunks/{LpHoverCard-CHE9jAJG.js → LpHoverCard-DYguY2AP.js} +10 -61
  34. package/dist/chunks/{LpInput-BU5IsOlE.js → LpInput-DGMpxrcg.js} +1 -1
  35. package/dist/chunks/{LpInspector-CEko6-pS.js → LpInspector-oTfkOdYd.js} +2 -2
  36. package/dist/chunks/{LpLightbox-REei-y5e.js → LpLightbox-a24V_0Wk.js} +19 -7
  37. package/dist/chunks/{LpLogInspector-Bwz351LY.js → LpLogInspector-BhJTJIst.js} +1 -1
  38. package/dist/chunks/{LpLogViewer-BCkqdH66.js → LpLogViewer-BuIzr_6h.js} +4 -4
  39. package/dist/chunks/{LpMediaGallery-BF1Bch3v.js → LpMediaGallery-B7DOV_aL.js} +2 -2
  40. package/dist/chunks/{LpModal-BK2T5uIG.js → LpModal-D1E7rQzw.js} +5 -5
  41. package/dist/chunks/{LpModalNav-Dk4eHpg6.js → LpModalNav-DivqT1NV.js} +5 -4
  42. package/dist/chunks/{LpNotificationBell-CMwUXhFg.js → LpNotificationBell-KRgdRZs-.js} +4 -4
  43. package/dist/chunks/{LpNotificationFeed-BXsRp9jm.js → LpNotificationFeed-CMGYU8c-.js} +5 -5
  44. package/dist/chunks/{LpNumberField-QUMXvpqx.js → LpNumberField-C0LSu-tl.js} +1 -1
  45. package/dist/chunks/{LpPaletteTheme-wiJtP5hV.js → LpPaletteTheme-CLwO-SDf.js} +3 -3
  46. package/dist/chunks/{LpPasswordInput-W9AZfzaL.js → LpPasswordInput-LPVI7D3v.js} +2 -2
  47. package/dist/chunks/{LpPhoneInput-DsRv-Qla.js → LpPhoneInput-BdglZsGH.js} +5 -5
  48. package/dist/chunks/{LpPie-pbrNFbRP.js → LpPie-CsiBXe-e.js} +3 -3
  49. package/dist/chunks/{LpPipeline-BHWmvOiv.js → LpPipeline-DVcoSs--.js} +1 -1
  50. package/dist/chunks/{LpPopover-BQSuxtai.js → LpPopover-w2rr4x7n.js} +2 -2
  51. package/dist/chunks/{LpRadio-CWA5Eb3M.js → LpRadio-4KyxeSz4.js} +1 -1
  52. package/dist/chunks/{LpRadioGroup-D94KMStE.js → LpRadioGroup-Cr_fmrBY.js} +1 -1
  53. package/dist/chunks/{LpRangeSlider-CkP9hYUC.js → LpRangeSlider-DbaITHtC.js} +1 -1
  54. package/dist/chunks/{LpRelativeTime-0zI-44ve.js → LpRelativeTime-CN5bWD73.js} +1 -1
  55. package/dist/chunks/{LpRepeater-DLLcbQ6J.js → LpRepeater-C0rns2xW.js} +1 -1
  56. package/dist/chunks/{LpSecretField-Au7ZQTtm.js → LpSecretField-BwrZ4TfT.js} +5 -5
  57. package/dist/chunks/{LpSection-RKCwB0xN.js → LpSection-CwsfNR7N.js} +1 -1
  58. package/dist/chunks/{LpSegmented-DD8MPj4j.js → LpSegmented-DzFYP0ZF.js} +1 -1
  59. package/dist/chunks/{LpSelect-BeXz1TWh.js → LpSelect-Dffg5r4I.js} +5 -5
  60. package/dist/chunks/{LpSidebar-DUFlf6Uu.js → LpSidebar-DQtCYlT4.js} +4 -4
  61. package/dist/chunks/{LpSidebarNav-C34YEZIR.js → LpSidebarNav-CFcI7--7.js} +1 -1
  62. package/dist/chunks/{LpSidebarRow-BeEGgsZi.js → LpSidebarRow-C5jXpcRL.js} +2 -2
  63. package/dist/chunks/{LpSlider-BCy5rjwK.js → LpSlider-DUd4gXnw.js} +1 -1
  64. package/dist/chunks/{LpStat-eVz7iUfD.js → LpStat-SyVb5JXm.js} +1 -1
  65. package/dist/chunks/{LpSwitch-D7hmVsif.js → LpSwitch-D-mcaA6C.js} +1 -1
  66. package/dist/chunks/{LpTableFilter-BGFNKyUX.js → LpTableFilter-CILHffC1.js} +3 -3
  67. package/dist/chunks/{LpTagsInput-D9uOSlvf.js → LpTagsInput-DD8-xe3F.js} +2 -2
  68. package/dist/chunks/{LpTextarea-DwE-lQt4.js → LpTextarea-CQg-dVxN.js} +1 -1
  69. package/dist/chunks/{LpThemeStudio-COn2H76d.js → LpThemeStudio-BPPctXgd.js} +4 -4
  70. package/dist/chunks/{LpThemeSwitcher-B3R3nNid.js → LpThemeSwitcher-B3c44xFH.js} +4 -4
  71. package/dist/chunks/{LpTimeField-Mi8H1g_9.js → LpTimeField-Dio7Tj9A.js} +1 -1
  72. package/dist/chunks/{LpToaster-DOJn6Vey.js → LpToaster-Cdx1tnHB.js} +2 -2
  73. package/dist/chunks/{LpTooltip-Bz_rrq5S.js → LpTooltip-BKde8Xjv.js} +43 -7
  74. package/dist/chunks/{LpTopologyCanvas-5RFMP4gR.js → LpTopologyCanvas-CQ0l6A5h.js} +3 -3
  75. package/dist/chunks/{LpTour-DUI_hoPv.js → LpTour-BGUKUxSZ.js} +1 -1
  76. package/dist/chunks/{LpTruncate-CynJhsEw.js → LpTruncate-C_C8eiIE.js} +2 -2
  77. package/dist/chunks/{LpUptimeBar-G7PfNJUH.js → LpUptimeBar-Dt6SY_-m.js} +1 -1
  78. package/dist/chunks/{LpVideoCompress-CPUxXh-c.js → LpVideoCompress-CvxNdyjp.js} +2 -2
  79. package/dist/chunks/{LpVideoPlayer-BbCjEQAx.js → LpVideoPlayer-FMuxTAU8.js} +4 -4
  80. package/dist/chunks/{LpWindow-Dp_0nNqg.js → LpWindow-DsPeiDCZ.js} +1 -1
  81. package/dist/chunks/{LpWorkspaceSwitcher-bjkncjSl.js → LpWorkspaceSwitcher-DCIiOQt_.js} +4 -4
  82. package/dist/chunks/{PickerField-CjOTUXDK.js → PickerField-DzF3UVnX.js} +1 -1
  83. package/dist/chunks/{RevealToggle-Bl1NcfxB.js → RevealToggle-BsYxY6Oz.js} +2 -2
  84. package/dist/chunks/{TourCard-BovXtMbO.js → TourCard-yrLqv4Oz.js} +1 -1
  85. package/dist/chunks/{VideoVolume-DE3i1ree.js → VideoVolume-CzL5mZPE.js} +2 -2
  86. package/dist/components/ContextMenuItems.vue.js +1 -1
  87. package/dist/components/DropzoneLinkField.vue.js +1 -1
  88. package/dist/components/IconCloseButton.vue.js +1 -1
  89. package/dist/components/LpActionBar.vue.js +1 -1
  90. package/dist/components/LpAddressInput.vue.js +1 -1
  91. package/dist/components/LpAlert.vue.js +1 -1
  92. package/dist/components/LpAppShell.vue.js +1 -1
  93. package/dist/components/LpAutocomplete.vue.js +1 -1
  94. package/dist/components/LpButton.vue.js +1 -1
  95. package/dist/components/LpChart.vue.js +2 -2
  96. package/dist/components/LpCheckbox.vue.js +1 -1
  97. package/dist/components/LpCodeBlock.vue.js +1 -1
  98. package/dist/components/LpCodeDisplay.vue.js +1 -1
  99. package/dist/components/LpColorPicker.vue.js +1 -1
  100. package/dist/components/LpCommandPalette.vue.d.ts +2 -0
  101. package/dist/components/LpCommandPalette.vue.js +69 -33
  102. package/dist/components/LpConfirmDialog.vue.js +1 -1
  103. package/dist/components/LpConfirmHost.vue.js +1 -1
  104. package/dist/components/LpContextMenu.vue.js +1 -1
  105. package/dist/components/LpContextSwitcher.vue.js +1 -1
  106. package/dist/components/LpCopyButton.vue.js +1 -1
  107. package/dist/components/LpDataList.vue.js +1 -1
  108. package/dist/components/LpDatePicker.vue.js +1 -1
  109. package/dist/components/LpDateRangePicker.vue.js +1 -1
  110. package/dist/components/LpDock.vue.js +1 -1
  111. package/dist/components/LpDrawer.vue.js +1 -1
  112. package/dist/components/LpDropdownMenu.vue.js +1 -1
  113. package/dist/components/LpDropzone.vue.js +5 -5
  114. package/dist/components/LpEditable.vue.js +1 -1
  115. package/dist/components/LpEmptyState.vue.js +1 -1
  116. package/dist/components/LpFileTree.vue.js +1 -1
  117. package/dist/components/LpFileTreeNode.vue.js +1 -1
  118. package/dist/components/LpHintLayer.vue.js +1 -1
  119. package/dist/components/LpHints.vue.js +1 -1
  120. package/dist/components/LpHoverCard.vue.d.ts +3 -3
  121. package/dist/components/LpHoverCard.vue.js +1 -1
  122. package/dist/components/LpImageEditor.vue.js +4 -4
  123. package/dist/components/LpInput.vue.js +1 -1
  124. package/dist/components/LpInspector.vue.js +1 -1
  125. package/dist/components/LpLightbox.vue.js +1 -1
  126. package/dist/components/LpLogInspector.vue.js +1 -1
  127. package/dist/components/LpLogViewer.vue.js +1 -1
  128. package/dist/components/LpMediaGallery.vue.js +1 -1
  129. package/dist/components/LpModal.vue.js +1 -1
  130. package/dist/components/LpModalNav.vue.js +1 -1
  131. package/dist/components/LpNotificationBell.vue.js +1 -1
  132. package/dist/components/LpNotificationFeed.vue.js +1 -1
  133. package/dist/components/LpNumberField.vue.js +1 -1
  134. package/dist/components/LpPaletteTheme.vue.js +1 -1
  135. package/dist/components/LpPasswordInput.vue.js +1 -1
  136. package/dist/components/LpPhoneInput.vue.js +1 -1
  137. package/dist/components/LpPie.vue.js +1 -1
  138. package/dist/components/LpPipeline.vue.js +1 -1
  139. package/dist/components/LpPopover.vue.js +1 -1
  140. package/dist/components/LpRadio.vue.js +1 -1
  141. package/dist/components/LpRadioGroup.vue.js +1 -1
  142. package/dist/components/LpRangeSlider.vue.js +1 -1
  143. package/dist/components/LpRelativeTime.vue.js +1 -1
  144. package/dist/components/LpRepeater.vue.js +1 -1
  145. package/dist/components/LpSecretField.vue.js +1 -1
  146. package/dist/components/LpSection.vue.js +1 -1
  147. package/dist/components/LpSegmented.vue.js +1 -1
  148. package/dist/components/LpSelect.vue.js +1 -1
  149. package/dist/components/LpShortcutsDialog.vue.js +1 -1
  150. package/dist/components/LpSidebar.vue.js +1 -1
  151. package/dist/components/LpSidebarNav.vue.js +1 -1
  152. package/dist/components/LpSidebarRow.vue.js +1 -1
  153. package/dist/components/LpSlider.vue.js +1 -1
  154. package/dist/components/LpStat.vue.js +1 -1
  155. package/dist/components/LpSwitch.vue.js +1 -1
  156. package/dist/components/LpTable.vue.js +10 -10
  157. package/dist/components/LpTableFilter.vue.js +1 -1
  158. package/dist/components/LpTabs.vue.js +1 -1
  159. package/dist/components/LpTagsInput.vue.js +1 -1
  160. package/dist/components/LpTextarea.vue.js +1 -1
  161. package/dist/components/LpThemeStudio.vue.js +1 -1
  162. package/dist/components/LpThemeSwitcher.vue.js +1 -1
  163. package/dist/components/LpTimeField.vue.js +1 -1
  164. package/dist/components/LpToaster.vue.js +1 -1
  165. package/dist/components/LpTooltip.vue.d.ts +9 -0
  166. package/dist/components/LpTooltip.vue.js +1 -1
  167. package/dist/components/LpTopologyCanvas.vue.js +1 -1
  168. package/dist/components/LpTour.vue.js +1 -1
  169. package/dist/components/LpTruncate.vue.js +1 -1
  170. package/dist/components/LpUptimeBar.vue.js +1 -1
  171. package/dist/components/LpVideoCompress.vue.js +1 -1
  172. package/dist/components/LpVideoPlayer.vue.js +1 -1
  173. package/dist/components/LpVideoTrim.vue.js +4 -4
  174. package/dist/components/LpWindow.vue.js +1 -1
  175. package/dist/components/LpWorkspaceSwitcher.vue.js +1 -1
  176. package/dist/components/PickerField.vue.js +1 -1
  177. package/dist/components/RevealToggle.vue.js +1 -1
  178. package/dist/components/TourCard.vue.js +1 -1
  179. package/dist/components/VideoVolume.vue.js +1 -1
  180. package/dist/components/badge.d.ts +1 -1
  181. package/dist/components/badge.js +1 -1
  182. package/dist/components/dropdown.d.ts +14 -0
  183. package/dist/components/dropdown.js +7 -1
  184. package/dist/components/menuWhen.js +1 -1
  185. package/dist/components/modalDepth.d.ts +1 -0
  186. package/dist/components/modalDepth.js +2 -0
  187. package/dist/composables/useReveal.js +3 -3
  188. package/dist/composables/useTouchHold.d.ts +19 -0
  189. package/dist/composables/useTouchHold.js +60 -0
  190. package/dist/index.js +72 -71
  191. package/package.json +1 -1
  192. package/src/components/ContextMenuItems.vue +2 -1
  193. package/src/components/IconCloseButton.vue +1 -1
  194. package/src/components/LpAlert.vue +1 -1
  195. package/src/components/LpAutocomplete.vue +4 -4
  196. package/src/components/LpButton.vue +1 -1
  197. package/src/components/LpCheckbox.vue +1 -1
  198. package/src/components/LpCodeBlock.vue +2 -2
  199. package/src/components/LpColorPicker.vue +3 -3
  200. package/src/components/LpCommandPalette.vue +89 -7
  201. package/src/components/LpContextMenu.vue +2 -2
  202. package/src/components/LpDataList.vue +1 -1
  203. package/src/components/LpDrawer.vue +7 -4
  204. package/src/components/LpDropdownMenu.vue +2 -2
  205. package/src/components/LpDropzone.vue +2 -2
  206. package/src/components/LpEditable.vue +2 -2
  207. package/src/components/LpEmptyState.vue +1 -1
  208. package/src/components/LpFileTreeNode.vue +1 -1
  209. package/src/components/LpHintLayer.vue +2 -2
  210. package/src/components/LpHoverCard.vue +11 -80
  211. package/src/components/LpImageEditor.vue +1 -1
  212. package/src/components/LpInput.vue +1 -1
  213. package/src/components/LpLightbox.vue +20 -3
  214. package/src/components/LpModal.vue +4 -4
  215. package/src/components/LpModalNav.vue +2 -1
  216. package/src/components/LpNumberField.vue +1 -1
  217. package/src/components/LpPhoneInput.vue +5 -5
  218. package/src/components/LpPopover.vue +2 -2
  219. package/src/components/LpRadio.vue +1 -1
  220. package/src/components/LpRadioGroup.vue +1 -1
  221. package/src/components/LpRangeSlider.vue +1 -1
  222. package/src/components/LpSection.vue +9 -6
  223. package/src/components/LpSegmented.vue +1 -1
  224. package/src/components/LpSelect.vue +4 -4
  225. package/src/components/LpSlider.vue +1 -1
  226. package/src/components/LpStat.vue +1 -1
  227. package/src/components/LpSwitch.vue +1 -1
  228. package/src/components/LpTableFilter.vue +1 -1
  229. package/src/components/LpTagsInput.vue +2 -2
  230. package/src/components/LpTextarea.vue +1 -1
  231. package/src/components/LpThemeSwitcher.vue +2 -2
  232. package/src/components/LpTimeField.vue +1 -1
  233. package/src/components/LpToaster.vue +1 -1
  234. package/src/components/LpTooltip.vue +59 -5
  235. package/src/components/badge.ts +1 -1
  236. package/src/components/dropdown.ts +24 -0
  237. package/src/components/modalDepth.ts +6 -0
  238. package/src/composables/useReveal.ts +7 -4
  239. package/src/composables/useTouchHold.ts +92 -0
  240. package/src/locales/uk.ts +1 -0
  241. package/src/tokens/utilities.css +34 -0
@@ -4,9 +4,9 @@ import { useLocale } from "../composables/useLocale.js";
4
4
  import { isElement } from "../composables/realm.js";
5
5
  import { withLoadedChildren, computeStats, formatSize, isFilterEmpty, filterTree, sortNodes, flattenVisible, rowWindow, renameProblem, nodeTrail, subtreeIds, rangeIds, topmostIds, canDrop, ancestorIds } from "../components/fileTree.js";
6
6
  import { _ as _sfc_main$4 } from "./LpBreadcrumbs-Zv1fn9e_.js";
7
- import { _ as _sfc_main$2 } from "./LpEmptyState-DrHBR3yh.js";
8
- import { _ as _sfc_main$6 } from "./LpFileTreeNode-Dk2WqkPF.js";
9
- import { _ as _sfc_main$3 } from "./LpInput-BU5IsOlE.js";
7
+ import { _ as _sfc_main$2 } from "./LpEmptyState-DLOm07KH.js";
8
+ import { _ as _sfc_main$6 } from "./LpFileTreeNode-CC48DbT5.js";
9
+ import { _ as _sfc_main$3 } from "./LpInput-DGMpxrcg.js";
10
10
  import { _ as _sfc_main$5 } from "./LpScrollArea-CqvwfZs2.js";
11
11
  import { _ as _sfc_main$1 } from "./LpSkeleton-leTl53V9.js";
12
12
  import { usePersisted } from "../composables/usePersisted.js";
@@ -1,9 +1,9 @@
1
1
  import { defineComponent, computed, ref, watch, nextTick, resolveComponent, openBlock, createElementBlock, mergeProps, unref, createVNode, withCtx, createElementVNode, withModifiers, normalizeStyle, normalizeClass, createBlock, createCommentVNode, renderSlot, createTextVNode, toDisplayString, Fragment, renderList } from "vue";
2
2
  import { sortNodes, formatSize, formatModified, renameSelectionEnd, fileIcon } from "../components/fileTree.js";
3
3
  import { _ as _sfc_main$5 } from "./LpBadge-Bh5roBr_.js";
4
- import { _ as _sfc_main$4 } from "./LpCheckbox-P7tEw8GO.js";
4
+ import { _ as _sfc_main$4 } from "./LpCheckbox-C9VnPIQf.js";
5
5
  import { _ as _sfc_main$6 } from "./LpCollapse-DrAw5DBZ.js";
6
- import { _ as _sfc_main$1 } from "./LpContextMenu-DYpDm6iI.js";
6
+ import { _ as _sfc_main$1 } from "./LpContextMenu-DEFirphS.js";
7
7
  import { _ as _sfc_main$3 } from "./LpIcon-CxHFPwKt.js";
8
8
  import { _ as _sfc_main$2 } from "./LpLoader-Bf1yZwaU.js";
9
9
  import { staggerDelay } from "../components/reveal.js";
@@ -206,7 +206,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
206
206
  key: 0,
207
207
  ref_key: "renameField",
208
208
  ref: renameField,
209
- class: normalizeClass(["w-full min-w-0 rounded-sm border bg-surface-soft px-1 text-sm text-ink outline-none", __props.renameInvalid ? "border-danger" : "border-line-strong"]),
209
+ class: normalizeClass(["lp-entry w-full min-w-0 rounded-sm border bg-surface-soft px-1 text-sm text-ink outline-none", __props.renameInvalid ? "border-danger" : "border-line-strong"]),
210
210
  value: __props.renameValue,
211
211
  "aria-label": __props.renameLabel,
212
212
  "aria-invalid": __props.renameInvalid || void 0,
@@ -2,9 +2,9 @@ import { defineComponent, computed, ref, shallowRef, watch, onMounted, onBeforeU
2
2
  import { PopoverRoot, PopoverAnchor, PopoverPortal, PopoverContent } from "reka-ui";
3
3
  import { hints } from "../composables/useHints.js";
4
4
  import { useLabels } from "../composables/useLpConfig.js";
5
- import { PANEL_SURFACE, POPOVER_ANIM } from "../components/dropdown.js";
5
+ import { PANEL_SURFACE, POPOVER_ANIM, PANEL_FIT } from "../components/dropdown.js";
6
6
  import { _ as _sfc_main$1 } from "./LpBadge-Bh5roBr_.js";
7
- import { _ as _sfc_main$2 } from "./LpButton-DSHioIfD.js";
7
+ import { _ as _sfc_main$2 } from "./LpButton-BvVoF-PO.js";
8
8
  import { usePortalTarget, useOutsideGuard } from "../composables/useView.js";
9
9
  const _hoisted_1 = ["aria-label", "onPointerenter", "onFocus", "onClick"];
10
10
  const _hoisted_2 = { class: "flex items-center gap-2 font-medium" };
@@ -122,7 +122,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
122
122
  side: "bottom",
123
123
  "side-offset": 8,
124
124
  "collision-padding": 8,
125
- class: normalizeClass([unref(PANEL_SURFACE), unref(POPOVER_ANIM), "z-(--z-popover) w-72 rounded-card p-3 text-sm text-ink outline-none"])
125
+ class: normalizeClass([unref(PANEL_SURFACE), unref(POPOVER_ANIM), unref(PANEL_FIT), "z-(--z-popover) w-72 rounded-card p-3 text-sm text-ink outline-none"])
126
126
  }, {
127
127
  default: withCtx(() => [
128
128
  createElementVNode("p", _hoisted_2, [
@@ -2,9 +2,9 @@ import { defineComponent, ref, onErrorCaptured, onMounted, onBeforeUnmount, comp
2
2
  import { provideHintSystem } from "../composables/useHintSystem.js";
3
3
  import { useAppleKeyboard, appleModifierLabel } from "../composables/useHotkeys.js";
4
4
  import { useLabels } from "../composables/useLpConfig.js";
5
- import { _ as _sfc_main$3 } from "./LpActionBar-Cx_MSZl9.js";
6
- import { _ as _sfc_main$2 } from "./LpHintLayer-CUSRLtLu.js";
7
- import { _ as _sfc_main$1 } from "./LpTour-DUI_hoPv.js";
5
+ import { _ as _sfc_main$3 } from "./LpActionBar-43WHmTsM.js";
6
+ import { _ as _sfc_main$2 } from "./LpHintLayer-nuMqfzvy.js";
7
+ import { _ as _sfc_main$1 } from "./LpTour-BGUKUxSZ.js";
8
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
9
9
  __name: "LpHints",
10
10
  props: {
@@ -1,10 +1,9 @@
1
- import { defineComponent, useModel, computed, watch, onBeforeUnmount, renderSlot, openBlock, createBlock, unref, withCtx, createVNode, mergeProps, normalizeClass, createCommentVNode, mergeModels } from "vue";
1
+ import { defineComponent, useModel, computed, watch, useAttrs, mergeProps, renderSlot, openBlock, createBlock, unref, withCtx, createVNode, normalizeClass, createCommentVNode, mergeModels } from "vue";
2
2
  import { HoverCardRoot, HoverCardTrigger, HoverCardPortal, HoverCardContent, HoverCardArrow } from "reka-ui";
3
3
  import { mergeClass } from "../composables/useMergedClass.js";
4
+ import { useTouchHold } from "../composables/useTouchHold.js";
4
5
  import { usePortalTarget, useOutsideGuard } from "../composables/useView.js";
5
- import { POPOVER_PANEL } from "../components/dropdown.js";
6
- const SLOP = 8;
7
- const CLICK_AFTER_RELEASE_MS = 350;
6
+ import { PANEL_FIT, POPOVER_PANEL } from "../components/dropdown.js";
8
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
9
8
  ...{ inheritAttrs: false },
10
9
  __name: "LpHoverCard",
@@ -28,65 +27,21 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
28
27
  const props = __props;
29
28
  const open = useModel(__props, "open");
30
29
  const panel = computed(
31
- () => mergeClass(POPOVER_PANEL, "z-(--z-popover) w-72 rounded-card p-4 text-sm text-ink outline-none", props.panelClass)
30
+ () => mergeClass(POPOVER_PANEL, PANEL_FIT, "z-(--z-popover) w-72 rounded-card p-4 text-sm text-ink outline-none", props.panelClass)
32
31
  );
33
32
  const portalTo = usePortalTarget();
34
33
  const guardOutside = useOutsideGuard();
35
- let holdTimer = 0;
36
- let holdPointer = null;
37
- let start = { x: 0, y: 0 };
38
- let held = false;
39
- function cancelHold() {
40
- window.clearTimeout(holdTimer);
41
- holdTimer = 0;
42
- }
43
- function onPointerUp(event) {
44
- if (holdPointer !== null && event.pointerId !== holdPointer) return;
45
- holdPointer = null;
46
- cancelHold();
47
- if (held) window.setTimeout(() => held = false, CLICK_AFTER_RELEASE_MS);
48
- }
49
- function onPointerCancel(event) {
50
- if (event && holdPointer !== null && event.pointerId !== holdPointer) return;
51
- holdPointer = null;
52
- cancelHold();
53
- held = false;
54
- }
55
- function onPointerDown(event) {
56
- if (holdTimer && event.pointerId !== holdPointer) return;
57
- held = false;
58
- if (event.pointerType !== "touch" || props.touch !== "hold" || props.disabled) return;
59
- holdPointer = event.pointerId;
60
- start = { x: event.clientX, y: event.clientY };
61
- cancelHold();
62
- holdTimer = window.setTimeout(() => {
63
- holdTimer = 0;
64
- held = true;
65
- open.value = true;
66
- }, props.holdDelay);
67
- }
68
- function onPointerMove(event) {
69
- if (!holdTimer || event.pointerId !== holdPointer) return;
70
- if (Math.hypot(event.clientX - start.x, event.clientY - start.y) > SLOP) cancelHold();
71
- }
72
- function onClickCapture(event) {
73
- if (!held) return;
74
- held = false;
75
- event.preventDefault();
76
- event.stopPropagation();
77
- }
78
- function onContextMenu(event) {
79
- if (holdTimer || held) event.preventDefault();
80
- }
34
+ const hold = useTouchHold({ enabled: () => props.touch === "hold" && !props.disabled, delay: () => props.holdDelay, onHold: () => open.value = true });
81
35
  watch(
82
36
  () => props.disabled,
83
37
  (off) => {
84
38
  if (!off) return;
85
- onPointerCancel();
39
+ hold.cancel();
86
40
  open.value = false;
87
41
  }
88
42
  );
89
- onBeforeUnmount(cancelHold);
43
+ const attrs = useAttrs();
44
+ const triggerAttrs = computed(() => mergeProps(attrs, hold.handlers));
90
45
  return (_ctx, _cache) => {
91
46
  return __props.disabled ? renderSlot(_ctx.$slots, "trigger", { key: 0 }) : (openBlock(), createBlock(unref(HoverCardRoot), {
92
47
  key: 1,
@@ -96,14 +51,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
96
51
  "close-delay": __props.closeDelay
97
52
  }, {
98
53
  default: withCtx(() => [
99
- createVNode(unref(HoverCardTrigger), mergeProps({ "as-child": "" }, _ctx.$attrs, {
100
- class: __props.touch === "hold" ? "[-webkit-touch-callout:none]" : void 0,
101
- onPointerdown: onPointerDown,
102
- onPointermove: onPointerMove,
103
- onPointerup: onPointerUp,
104
- onPointercancel: onPointerCancel,
105
- onClickCapture,
106
- onContextmenu: onContextMenu
54
+ createVNode(unref(HoverCardTrigger), mergeProps({ "as-child": "" }, triggerAttrs.value, {
55
+ class: __props.touch === "hold" ? "[-webkit-touch-callout:none]" : void 0
107
56
  }), {
108
57
  default: withCtx(() => [
109
58
  renderSlot(_ctx.$slots, "trigger")
@@ -158,7 +158,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
158
158
  "aria-invalid": isInvalidState.value || void 0,
159
159
  "aria-describedby": unref(mergeDescribedBy)(unref(attrs)["aria-describedby"], unref(field).describedBy),
160
160
  class: [
161
- "lp-autofill min-w-0 flex-1 self-stretch bg-transparent outline-none placeholder:text-muted",
161
+ "lp-autofill lp-entry min-w-0 flex-1 self-stretch bg-transparent outline-none placeholder:text-muted",
162
162
  __props.clearable && "[&::-webkit-search-cancel-button]:hidden",
163
163
  hasLeading.value ? "pl-2" : padX[__props.size ?? "md"],
164
164
  hasTrailing.value ? "" : padX[__props.size ?? "md"]
@@ -5,12 +5,12 @@ import { useLabels } from "../composables/useLpConfig.js";
5
5
  import { useMergedAttrs } from "../composables/useMergedClass.js";
6
6
  import { usePersisted } from "../composables/usePersisted.js";
7
7
  import { clamp } from "../composables/clamp.js";
8
- import { _ as _sfc_main$4 } from "./LpDataList-DCtF7krm.js";
8
+ import { _ as _sfc_main$4 } from "./LpDataList-B56Gu6Yt.js";
9
9
  import { _ as _sfc_main$3 } from "./LpDisclosure-D4JZ-o8K.js";
10
10
  import "@iconify/vue";
11
11
  import "./icons-C8ccRCKw.js";
12
12
  import { _ as _sfc_main$2 } from "./LpScrollArea-CqvwfZs2.js";
13
- import { _ as _sfc_main$1 } from "./IconCloseButton-CmWOJAXG.js";
13
+ import { _ as _sfc_main$1 } from "./IconCloseButton-C_V7qngw.js";
14
14
  const _hoisted_1 = ["aria-label"];
15
15
  const _hoisted_2 = ["aria-label", "aria-valuenow", "aria-valuemin", "aria-valuemax"];
16
16
  const _hoisted_3 = {
@@ -6,10 +6,10 @@ import { useLabels } from "../composables/useLpConfig.js";
6
6
  import { useZoomPan } from "../composables/useZoomPan.js";
7
7
  import { clickLink } from "../components/exportData.js";
8
8
  import { isVideoItem, fileNameOf } from "../components/lightbox.js";
9
- import { _ as _sfc_main$2 } from "./LpCopyButton-CxX682t4.js";
9
+ import { _ as _sfc_main$2 } from "./LpCopyButton-BGzw95Xc.js";
10
10
  import { _ as _sfc_main$1 } from "./LpIcon-CxHFPwKt.js";
11
11
  import { _ as _sfc_main$4 } from "./LpLoader-Bf1yZwaU.js";
12
- import { _ as _sfc_main$3 } from "./LpVideoPlayer-BbCjEQAx.js";
12
+ import { _ as _sfc_main$3 } from "./LpVideoPlayer-FMuxTAU8.js";
13
13
  import { _ as _sfc_main$5 } from "./VideoThumb-BfDkIXqE.js";
14
14
  import { useModalLayer } from "../components/modalDepth.js";
15
15
  import { inTextField } from "../composables/textEntry.js";
@@ -251,7 +251,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
251
251
  zoom.reset();
252
252
  }
253
253
  let swipeStart = null;
254
+ const fingers = /* @__PURE__ */ new Set();
254
255
  function onPointerDown(e) {
256
+ fingers.add(e.pointerId);
257
+ if (fingers.size > 1) {
258
+ swipeStart = null;
259
+ if (!isVideo.value) zoom.onPointerDown(e);
260
+ return;
261
+ }
255
262
  if (isVideo.value) {
256
263
  swipeStart = e.target.closest?.("[data-lp-player-controls]") ? null : { x: e.clientX, y: e.clientY };
257
264
  return;
@@ -259,7 +266,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
259
266
  zoom.onPointerDown(e);
260
267
  swipeStart = zoom.zoomed.value ? null : { x: e.clientX, y: e.clientY };
261
268
  }
269
+ function onPointerCancel(e) {
270
+ fingers.delete(e.pointerId);
271
+ swipeStart = null;
272
+ if (!isVideo.value) zoom.onPointerUp(e);
273
+ }
262
274
  function onPointerUp(e) {
275
+ fingers.delete(e.pointerId);
263
276
  if (!isVideo.value) zoom.onPointerUp(e);
264
277
  if (!swipeStart) return;
265
278
  const dx = e.clientX - swipeStart.x;
@@ -353,7 +366,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
353
366
  return (_ctx, _cache) => {
354
367
  return openBlock(), createBlock(unref(DialogRoot), {
355
368
  open: __props.open,
356
- "onUpdate:open": _cache[11] || (_cache[11] = (v) => emit("update:open", v))
369
+ "onUpdate:open": _cache[10] || (_cache[10] = (v) => emit("update:open", v))
357
370
  }, {
358
371
  default: withCtx(() => [
359
372
  createVNode(unref(DialogPortal), { to: unref(portalTo) }, {
@@ -367,7 +380,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
367
380
  onEscapeKeyDown: unref(guardOutside),
368
381
  ref_key: "contentRef",
369
382
  ref: contentRef,
370
- class: "fixed inset-0 flex flex-col outline-none data-[state=open]:animate-[lightbox-in_var(--duration-medium)_var(--ease-emphasized)] data-[state=closed]:animate-[lightbox-out_140ms_cubic-bezier(0.4,0,1,1)] motion-reduce:animate-none",
383
+ class: "fixed inset-0 flex flex-col pt-[env(safe-area-inset-top)] pr-[env(safe-area-inset-right)] pb-[env(safe-area-inset-bottom)] pl-[env(safe-area-inset-left)] outline-none data-[state=open]:animate-[lightbox-in_var(--duration-medium)_var(--ease-emphasized)] data-[state=closed]:animate-[lightbox-out_140ms_cubic-bezier(0.4,0,1,1)] motion-reduce:animate-none",
371
384
  style: normalizeStyle({ zIndex: unref(layer).panel }),
372
385
  onKeydown
373
386
  }, {
@@ -465,14 +478,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
465
478
  createElementVNode("div", {
466
479
  ref_key: "viewport",
467
480
  ref: viewport,
468
- class: normalizeClass(["relative flex min-h-0 flex-1 items-center justify-center overflow-hidden", isPanning.value ? "cursor-grabbing" : isZoomed.value ? "cursor-grab" : ""]),
481
+ class: normalizeClass(["relative flex min-h-0 flex-1 touch-none items-center justify-center overflow-hidden", isPanning.value ? "cursor-grabbing" : isZoomed.value ? "cursor-grab" : ""]),
469
482
  onWheel: onStageWheel,
470
483
  onPointerdown: onPointerDown,
471
484
  onPointermove: _cache[9] || (_cache[9] = //@ts-ignore
472
485
  (...args) => unref(zoom).onPointerMove && unref(zoom).onPointerMove(...args)),
473
486
  onPointerup: onPointerUp,
474
- onPointercancel: _cache[10] || (_cache[10] = //@ts-ignore
475
- (...args) => unref(zoom).onPointerUp && unref(zoom).onPointerUp(...args)),
487
+ onPointercancel: onPointerCancel,
476
488
  onDblclick: onDoubleClick,
477
489
  onClick: onViewportClick
478
490
  }, [
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, ref, computed, watch, openBlock, createElementBlock, unref, Fragment, createVNode, toDisplayString, renderList, normalizeStyle, createElementVNode, normalizeClass, createTextVNode } from "vue";
2
2
  import { _ as _sfc_main$2 } from "./LpIcon-CxHFPwKt.js";
3
- import { _ as _sfc_main$1 } from "./LpInput-BU5IsOlE.js";
3
+ import { _ as _sfc_main$1 } from "./LpInput-DGMpxrcg.js";
4
4
  import { useLabels } from "../composables/useLpConfig.js";
5
5
  import { structuredPayload, jsonRows, stackLines } from "../components/logTools.js";
6
6
  const _hoisted_1 = ["aria-label"];
@@ -5,11 +5,11 @@ import { prefersReducedMotion, durationToken, tokenEase } from "../composables/e
5
5
  import { useClipboard } from "../composables/useClipboard.js";
6
6
  import { useHotkeys } from "../composables/useHotkeys.js";
7
7
  import { _ as _sfc_main$7 } from "./LpBadge-Bh5roBr_.js";
8
- import { _ as _sfc_main$6 } from "./LpContextMenu-DYpDm6iI.js";
9
- import { _ as _sfc_main$4 } from "./LpEmptyState-DrHBR3yh.js";
8
+ import { _ as _sfc_main$6 } from "./LpContextMenu-DEFirphS.js";
9
+ import { _ as _sfc_main$4 } from "./LpEmptyState-DLOm07KH.js";
10
10
  import { _ as _sfc_main$2 } from "./LpIcon-CxHFPwKt.js";
11
11
  import { _ as _sfc_main$5 } from "./LpLoader-Bf1yZwaU.js";
12
- import { _ as _sfc_main$1 } from "./LpInput-BU5IsOlE.js";
12
+ import { _ as _sfc_main$1 } from "./LpInput-DGMpxrcg.js";
13
13
  import { _ as _sfc_main$3 } from "./LpScrollArea-CqvwfZs2.js";
14
14
  import { useMergedAttrs } from "../composables/useMergedClass.js";
15
15
  import { useLabels } from "../composables/useLpConfig.js";
@@ -18,7 +18,7 @@ import { inTextField } from "../composables/textEntry.js";
18
18
  import { nodeWindow, isElement } from "../composables/realm.js";
19
19
  import { ringWindow, matchPositions, countLevels, stepMatch } from "../components/logSearch.js";
20
20
  import { downloadFile } from "../components/exportData.js";
21
- import { _ as _sfc_main$8 } from "./LpLogInspector-Bwz351LY.js";
21
+ import { _ as _sfc_main$8 } from "./LpLogInspector-BhJTJIst.js";
22
22
  import { compilePattern, inTimeRange, patternPositions, groupRepeats, rowSpan, exportLines, nearestByTime, termRanges, messageParts, findIds } from "../components/logTools.js";
23
23
  import { TONES, toneLook } from "../components/tone.js";
24
24
  import '../assets/LpLogViewer-BDNW6P52.css';const _hoisted_1 = {
@@ -2,9 +2,9 @@ import { defineComponent, ref, watch, computed, openBlock, createElementBlock, r
2
2
  import { isVideoItem } from "../components/lightbox.js";
3
3
  import { useMergedAttrs } from "../composables/useMergedClass.js";
4
4
  import { useLabels } from "../composables/useLpConfig.js";
5
- import { _ as _sfc_main$1 } from "./LpContextMenu-DYpDm6iI.js";
5
+ import { _ as _sfc_main$1 } from "./LpContextMenu-DEFirphS.js";
6
6
  import { _ as _sfc_main$3 } from "./LpIcon-CxHFPwKt.js";
7
- import { _ as _sfc_main$4 } from "./LpLightbox-REei-y5e.js";
7
+ import { _ as _sfc_main$4 } from "./LpLightbox-a24V_0Wk.js";
8
8
  import { _ as _sfc_main$2 } from "./VideoThumb-BfDkIXqE.js";
9
9
  const _hoisted_1 = { key: 0 };
10
10
  const _hoisted_2 = ["aria-label"];
@@ -6,7 +6,7 @@ import { useGlass } from "../composables/useGlass.js";
6
6
  import { useModelOverlayHistory } from "../composables/useOverlayHistory.js";
7
7
  import { useLabels } from "../composables/useLpConfig.js";
8
8
  import { useShift } from "../composables/useShift.js";
9
- import { useModalLayer } from "../components/modalDepth.js";
9
+ import { useModalLayer, MODAL_MAX_HEIGHT } from "../components/modalDepth.js";
10
10
  import { CLOSE_ICON } from "../components/dropdown.js";
11
11
  import { _ as _sfc_main$1 } from "./LpIcon-CxHFPwKt.js";
12
12
  import { _ as _sfc_main$2 } from "./LpScrollArea-CqvwfZs2.js";
@@ -185,7 +185,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
185
185
  }, [
186
186
  createVNode(unref(DialogContent), mergeProps({
187
187
  class: "pointer-events-auto flex min-h-0 items-start outline-none data-[state=open]:animate-[rise-in_var(--duration-medium)_var(--ease-emphasized)] data-[state=closed]:animate-[rise-out_120ms_cubic-bezier(0.4,0,1,1)]",
188
- style: { maxHeight: "min(90vh, calc(100dvh - 2rem))" }
188
+ style: { maxHeight: unref(MODAL_MAX_HEIGHT) }
189
189
  }, describedByAttrs.value, {
190
190
  onOpenAutoFocus,
191
191
  onInteractOutside,
@@ -199,8 +199,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
199
199
  createElementVNode("div", {
200
200
  ref_key: "panelRef",
201
201
  ref: panelRef,
202
- class: normalizeClass(["relative flex max-h-[min(90vh,calc(100dvh-2rem))] min-h-0 flex-col overflow-hidden rounded-card border border-line shadow-panel", [unref(frosted) ? unref(layer).nested ? "lp-glass-overlay lp-glass-overlay--nested" : "lp-glass-overlay" : "bg-surface-raised", widthClass.value, unref(tweening) ? "transition-[height] duration-fast ease-[var(--ease-emphasized)] motion-reduce:transition-none" : ""]]),
203
- style: normalizeStyle({ ...__props.width ? { width: __props.width } : {}, ...hasAside.value ? { alignSelf: "stretch" } : {} })
202
+ class: normalizeClass(["relative flex min-h-0 flex-col overflow-hidden rounded-card border border-line shadow-panel", [unref(frosted) ? unref(layer).nested ? "lp-glass-overlay lp-glass-overlay--nested" : "lp-glass-overlay" : "bg-surface-raised", widthClass.value, unref(tweening) ? "transition-[height] duration-fast ease-[var(--ease-emphasized)] motion-reduce:transition-none" : ""]]),
203
+ style: normalizeStyle({ maxHeight: unref(MODAL_MAX_HEIGHT), ...__props.width ? { width: __props.width } : {}, ...hasAside.value ? { alignSelf: "stretch" } : {} })
204
204
  }, [
205
205
  !(__props.title || _ctx.$slots.title) && __props.ariaLabel ? (openBlock(), createBlock(unref(DialogTitle), {
206
206
  key: 0,
@@ -273,7 +273,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
273
273
  ])) : createCommentVNode("", true)
274
274
  ]),
275
275
  _: 3
276
- }, 16)
276
+ }, 16, ["style"])
277
277
  ], 4)
278
278
  ]),
279
279
  _: 3
@@ -1,10 +1,11 @@
1
1
  import { defineComponent, computed, ref, openBlock, createBlock, createSlots, withCtx, renderSlot, createElementVNode, normalizeClass, createVNode, createCommentVNode, createTextVNode, toDisplayString } from "vue";
2
2
  import { useGlass } from "../composables/useGlass.js";
3
3
  import { useLabels } from "../composables/useLpConfig.js";
4
- import { _ as _sfc_main$2 } from "./LpButton-DSHioIfD.js";
4
+ import { _ as _sfc_main$2 } from "./LpButton-BvVoF-PO.js";
5
5
  import { _ as _sfc_main$3 } from "./LpIcon-CxHFPwKt.js";
6
- import { _ as _sfc_main$1 } from "./LpModal-BK2T5uIG.js";
7
- import { _ as _sfc_main$4 } from "./LpSidebar-DUFlf6Uu.js";
6
+ import { MODAL_MAX_HEIGHT } from "../components/modalDepth.js";
7
+ import { _ as _sfc_main$1 } from "./LpModal-D1E7rQzw.js";
8
+ import { _ as _sfc_main$4 } from "./LpSidebar-DQtCYlT4.js";
8
9
  const _hoisted_1 = { class: "flex items-center gap-2" };
9
10
  const _sfc_main = /* @__PURE__ */ defineComponent({
10
11
  __name: "LpModalNav",
@@ -61,7 +62,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
61
62
  () => (props.navSide === "end" ? RAIL_GAP_END : RAIL_GAP)[props.mobileBreakpoint]
62
63
  );
63
64
  const triggerClass = computed(() => TRIGGER_VISIBILITY[props.mobileBreakpoint]);
64
- const railStyle = { maxHeight: "min(90vh, calc(100dvh - 2rem))" };
65
+ const railStyle = { maxHeight: MODAL_MAX_HEIGHT };
65
66
  const frosted = useGlass(() => props.glass);
66
67
  const railPanel = computed(() => [
67
68
  "rounded-card border border-line p-2 shadow-panel",
@@ -1,11 +1,11 @@
1
1
  import { defineComponent, useModel, computed, getCurrentInstance, openBlock, createBlock, withCtx, createVNode, mergeProps, toHandlers, Transition, createCommentVNode, mergeModels } from "vue";
2
2
  import { useLabels } from "../composables/useLpConfig.js";
3
3
  import { _ as _sfc_main$6 } from "./LpBadge-Bh5roBr_.js";
4
- import { _ as _sfc_main$4 } from "./LpButton-DSHioIfD.js";
5
- import { _ as _sfc_main$3 } from "./LpContextMenu-DYpDm6iI.js";
4
+ import { _ as _sfc_main$4 } from "./LpButton-BvVoF-PO.js";
5
+ import { _ as _sfc_main$3 } from "./LpContextMenu-DEFirphS.js";
6
6
  import { _ as _sfc_main$5 } from "./LpIcon-CxHFPwKt.js";
7
- import { _ as _sfc_main$2 } from "./LpNotificationFeed-BXsRp9jm.js";
8
- import { _ as _sfc_main$1 } from "./LpPopover-BQSuxtai.js";
7
+ import { _ as _sfc_main$2 } from "./LpNotificationFeed-CMGYU8c-.js";
8
+ import { _ as _sfc_main$1 } from "./LpPopover-w2rr4x7n.js";
9
9
  import { _ as _sfc_main$7 } from "./LpRollingText-B54Pje7P.js";
10
10
  import { NOTIFICATION_LABELS } from "../components/notifications.js";
11
11
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -3,16 +3,16 @@ import { useLabels } from "../composables/useLpConfig.js";
3
3
  import { useNow } from "../composables/useNow.js";
4
4
  import { isHTMLElement } from "../composables/realm.js";
5
5
  import { _ as _sfc_main$8 } from "./LpAvatar-CfLBqlY1.js";
6
- import { _ as _sfc_main$a } from "./LpButton-DSHioIfD.js";
7
- import { _ as _sfc_main$7 } from "./LpContextMenu-DYpDm6iI.js";
8
- import { _ as _sfc_main$5 } from "./LpEmptyState-DrHBR3yh.js";
6
+ import { _ as _sfc_main$a } from "./LpButton-BvVoF-PO.js";
7
+ import { _ as _sfc_main$7 } from "./LpContextMenu-DEFirphS.js";
8
+ import { _ as _sfc_main$5 } from "./LpEmptyState-DLOm07KH.js";
9
9
  import { _ as _sfc_main$2 } from "./LpIcon-CxHFPwKt.js";
10
- import { _ as _sfc_main$9 } from "./LpRelativeTime-0zI-44ve.js";
10
+ import { _ as _sfc_main$9 } from "./LpRelativeTime-CN5bWD73.js";
11
11
  import { _ as _sfc_main$6 } from "./LpScrollArea-CqvwfZs2.js";
12
12
  import { _ as _sfc_main$3 } from "./LpShift-DAgS_d2x.js";
13
13
  import { _ as _sfc_main$4 } from "./LpSkeleton-leTl53V9.js";
14
14
  import LpTabs from "../components/LpTabs.vue.js";
15
- import { _ as _sfc_main$1 } from "./LpTooltip-Bz_rrq5S.js";
15
+ import { _ as _sfc_main$1 } from "./LpTooltip-BKde8Xjv.js";
16
16
  import { NOTIFICATION_LABELS, groupByDay, untilMidnight } from "../components/notifications.js";
17
17
  import { toneLook } from "../components/tone.js";
18
18
  const _hoisted_1 = ["aria-label"];
@@ -119,7 +119,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
119
119
  id: unref(field).id,
120
120
  "aria-describedby": describedBy.value,
121
121
  "aria-invalid": unref(field).invalid || void 0,
122
- class: ["min-w-0 flex-1 bg-transparent text-ink outline-none placeholder:text-muted [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none", __props.steppers ? "text-center @max-[8.5rem]:px-3 @max-[8.5rem]:text-left" : __props.icon || _ctx.$slots.leading ? "pl-2 pr-3" : "px-3"]
122
+ class: ["lp-entry min-w-0 flex-1 bg-transparent text-ink outline-none placeholder:text-muted [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none", __props.steppers ? "text-center @max-[8.5rem]:px-3 @max-[8.5rem]:text-left" : __props.icon || _ctx.$slots.leading ? "pl-2 pr-3" : "px-3"]
123
123
  }), null, 16, ["id", "aria-describedby", "aria-invalid", "class"]),
124
124
  __props.unit ? (openBlock(), createElementBlock("span", {
125
125
  key: 1,
@@ -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-COn2H76d.js";
4
+ import { _ as _sfc_main$4 } from "./LpThemeStudio-BPPctXgd.js";
5
5
  import { _ as _sfc_main$2 } from "./LpThemeProvider-XK6ZeWAE.js";
6
- import { _ as _sfc_main$1 } from "./LpButton-DSHioIfD.js";
7
- import { _ as _sfc_main$3 } from "./LpInput-BU5IsOlE.js";
6
+ import { _ as _sfc_main$1 } from "./LpButton-BvVoF-PO.js";
7
+ import { _ as _sfc_main$3 } from "./LpInput-DGMpxrcg.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-BU5IsOlE.js";
6
- import { _ as _sfc_main$2 } from "./RevealToggle-Bl1NcfxB.js";
5
+ import { _ as _sfc_main$1 } from "./LpInput-DGMpxrcg.js";
6
+ import { _ as _sfc_main$2 } from "./RevealToggle-BsYxY6Oz.js";
7
7
  const __default__ = { inheritAttrs: false };
8
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
9
9
  ...__default__,
@@ -7,7 +7,7 @@ import { useFieldNotice } from "../composables/useFieldNotice.js";
7
7
  import { useInputFilter } from "../composables/useInputFilter.js";
8
8
  import { useLabels } from "../composables/useLpConfig.js";
9
9
  import { matchCountryByValue, filterCountries, loadCountries, flagEmoji } from "../components/countries.js";
10
- import { COMBOBOX_PANEL, POPOVER_PANEL, OPTION_ITEM, optionStagger } from "../components/dropdown.js";
10
+ import { COMBOBOX_PANEL, POPOVER_PANEL, COMBOBOX_FIT, OPTION_ITEM, optionStagger } from "../components/dropdown.js";
11
11
  import { _ as _sfc_main$3 } from "./LpFieldNotice-DUPo1Yii.js";
12
12
  import { _ as _sfc_main$2 } from "./LpIcon-CxHFPwKt.js";
13
13
  import { loadPhoneLib, formatPhone, loadPhoneExamples, digitsBefore, caretAfterDigits, digitsOf } from "../components/phone.js";
@@ -253,7 +253,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
253
253
  onEscapeKeyDown: unref(guardOutside)
254
254
  }, unref(COMBOBOX_PANEL), {
255
255
  align: "start",
256
- class: [unref(POPOVER_PANEL), "z-(--z-popover) max-h-72 w-72 overflow-hidden"]
256
+ class: [unref(POPOVER_PANEL), "z-(--z-popover) w-72 max-w-[calc(100vw-1rem)] overflow-hidden", unref(COMBOBOX_FIT)]
257
257
  }), {
258
258
  default: withCtx(() => [
259
259
  createElementVNode("div", _hoisted_2, [
@@ -262,11 +262,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
262
262
  placeholder: __props.searchPlaceholder ?? unref(text).search,
263
263
  "aria-label": unref(text).searchLabel,
264
264
  "auto-focus": "",
265
- class: "h-(--size-control-sm) w-full rounded-inner border border-line bg-surface-soft px-2.5 text-sm text-ink outline-none placeholder:text-muted focus:border-brand",
265
+ class: "lp-entry h-(--size-control-sm) w-full rounded-inner border border-line bg-surface-soft px-2.5 text-sm text-ink outline-none placeholder:text-muted focus:border-brand",
266
266
  onInput: _cache[0] || (_cache[0] = ($event) => query.value = $event.target.value)
267
267
  }, null, 8, ["model-value", "placeholder", "aria-label"])
268
268
  ]),
269
- createVNode(unref(ComboboxViewport), { class: "max-h-56 overflow-y-auto p-1" }, {
269
+ createVNode(unref(ComboboxViewport), { class: "max-h-56 min-h-0 flex-1 overflow-y-auto p-1" }, {
270
270
  default: withCtx(() => [
271
271
  createVNode(unref(ComboboxEmpty), { class: "px-3 py-4 text-center text-sm italic text-muted" }, {
272
272
  default: withCtx(() => [
@@ -314,7 +314,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
314
314
  required: unref(field).required || void 0,
315
315
  "aria-invalid": unref(field).invalid || void 0,
316
316
  "aria-describedby": unref(mergeDescribedBy)(unref(rest)["aria-describedby"], unref(field).describedBy, unref(notice).message.value ? noticeId : void 0),
317
- class: "lp-autofill min-w-0 flex-1 self-stretch bg-transparent px-3 outline-none placeholder:text-muted",
317
+ class: "lp-autofill lp-entry min-w-0 flex-1 self-stretch bg-transparent px-3 outline-none placeholder:text-muted",
318
318
  onBeforeinput: onBeforeEdit,
319
319
  onPaste: _cache[2] || (_cache[2] = //@ts-ignore
320
320
  (...args) => unref(onPaste) && unref(onPaste)(...args)),
@@ -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-DYpDm6iI.js";
11
- import { _ as _sfc_main$3 } from "./LpEmptyState-DrHBR3yh.js";
10
+ import { _ as _sfc_main$4 } from "./LpContextMenu-DEFirphS.js";
11
+ import { _ as _sfc_main$3 } from "./LpEmptyState-DLOm07KH.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-leTl53V9.js";
16
16
  import { _ as _sfc_main$1 } from "./LpSwap-M7nFeW3C.js";
17
- import { _ as _sfc_main$5 } from "./LpTooltip-Bz_rrq5S.js";
17
+ import { _ as _sfc_main$5 } from "./LpTooltip-BKde8Xjv.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-CxHFPwKt.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-CPGVj1XG.js";
13
- import { _ as _sfc_main$7 } from "./LpTooltip-Bz_rrq5S.js";
13
+ import { _ as _sfc_main$7 } from "./LpTooltip-BKde8Xjv.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";
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, useModel, computed, useAttrs, openBlock, createBlock, unref, withCtx, createVNode, renderSlot, mergeProps, mergeModels } from "vue";
2
2
  import { PopoverRoot, PopoverTrigger, PopoverPortal, PopoverContent } from "reka-ui";
3
3
  import { mergeClass } from "../composables/useMergedClass.js";
4
- import { POPOVER_PANEL } from "../components/dropdown.js";
4
+ import { PANEL_FIT, POPOVER_PANEL } from "../components/dropdown.js";
5
5
  import { usePortalTarget, useOutsideGuard } from "../composables/useView.js";
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
7
  ...{ inheritAttrs: false },
@@ -21,7 +21,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
21
21
  const props = __props;
22
22
  const open = useModel(__props, "open");
23
23
  const panel = computed(
24
- () => mergeClass(POPOVER_PANEL, "z-(--z-popover) w-64 rounded-card p-3 text-sm text-ink outline-none", props.panelClass)
24
+ () => mergeClass(POPOVER_PANEL, PANEL_FIT, "z-(--z-popover) w-64 rounded-card p-3 text-sm text-ink outline-none", props.panelClass)
25
25
  );
26
26
  const attrs = useAttrs();
27
27
  function namePanel(event) {
@@ -23,7 +23,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
23
23
  createVNode(unref(RadioGroupItem), {
24
24
  value: __props.value,
25
25
  disabled: __props.disabled,
26
- class: "flex size-[18px] shrink-0 items-center justify-center rounded-full border border-line-strong bg-surface-soft outline-none transition-[color,border-color,box-shadow,scale] duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] not-data-[state=checked]:group-hover/radio:border-brand active:scale-90 motion-reduce:active:scale-100 focus-visible:ring-2 focus-visible:ring-ring data-[state=checked]:border-brand disabled:cursor-not-allowed disabled:opacity-55"
26
+ class: "lp-tap flex size-[18px] shrink-0 items-center justify-center rounded-full border border-line-strong bg-surface-soft outline-none transition-[color,border-color,box-shadow,scale] duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] not-data-[state=checked]:group-hover/radio:border-brand active:scale-90 motion-reduce:active:scale-100 focus-visible:ring-2 focus-visible:ring-ring data-[state=checked]:border-brand disabled:cursor-not-allowed disabled:opacity-55"
27
27
  }, {
28
28
  default: withCtx(() => [
29
29
  createVNode(unref(RadioGroupIndicator), { class: "flex data-[state=checked]:animate-[indicator-in_140ms_var(--ease-emphasized)]" }, {
@@ -59,7 +59,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
59
59
  value: opt.value,
60
60
  disabled: opt.disabled,
61
61
  "aria-describedby": opt.description ? `${unref(uid)}-${i}-desc` : void 0,
62
- class: normalizeClass([opt.description ? "mt-px" : "", "flex size-[18px] shrink-0 items-center justify-center rounded-full border border-line-strong bg-surface-soft outline-none transition-[color,border-color,box-shadow,scale] duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] not-data-[state=checked]:group-hover/radio:border-brand active:scale-90 motion-reduce:active:scale-100 focus-visible:ring-2 focus-visible:ring-ring data-[state=checked]:border-brand disabled:cursor-not-allowed disabled:opacity-55"])
62
+ class: normalizeClass([opt.description ? "mt-px" : "", "lp-tap flex size-[18px] shrink-0 items-center justify-center rounded-full border border-line-strong bg-surface-soft outline-none transition-[color,border-color,box-shadow,scale] duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] not-data-[state=checked]:group-hover/radio:border-brand active:scale-90 motion-reduce:active:scale-100 focus-visible:ring-2 focus-visible:ring-ring data-[state=checked]:border-brand disabled:cursor-not-allowed disabled:opacity-55"])
63
63
  }, {
64
64
  default: withCtx(() => [
65
65
  createVNode(unref(RadioGroupIndicator), { class: "flex data-[state=checked]:animate-[indicator-in_140ms_var(--ease-emphasized)]" }, {
@@ -39,7 +39,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
39
39
  }
40
40
  const { field, wrapper, ownAttrs } = useOwnField(() => ({ error: props.error, disabled: props.disabled }));
41
41
  const { class: rootClass, attrs: rest } = useMergedAttrs(
42
- `relative flex h-5 w-full touch-none select-none items-center data-[disabled]:opacity-55 ${SLIDER_GLIDE}`,
42
+ `lp-tap relative flex h-5 w-full touch-none select-none items-center data-[disabled]:opacity-55 ${SLIDER_GLIDE}`,
43
43
  () => ownAttrs()
44
44
  );
45
45
  const { dragging, onPointerDown } = useSliderDrag();
@@ -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-Bz_rrq5S.js";
6
+ import { _ as _sfc_main$1 } from "./LpTooltip-BKde8Xjv.js";
7
7
  import { formatRelativeTime } from "../components/relativeTime.js";
8
8
  import { toEpoch } from "../components/timeSpan.js";
9
9
  const _hoisted_1 = ["datetime"];
@@ -5,7 +5,7 @@ import { useLabels } from "../composables/useLpConfig.js";
5
5
  import { useMergedAttrs } from "../composables/useMergedClass.js";
6
6
  import { useRepeater } from "../composables/useRepeater.js";
7
7
  import { usePrefersReducedMotion } from "../composables/useReducedMotion.js";
8
- import { _ as _sfc_main$2 } from "./LpButton-DSHioIfD.js";
8
+ import { _ as _sfc_main$2 } from "./LpButton-BvVoF-PO.js";
9
9
  import { _ as _sfc_main$3 } from "./LpIcon-CxHFPwKt.js";
10
10
  import { _ as _sfc_main$4 } from "./LpShift-DAgS_d2x.js";
11
11
  import '../assets/LpRepeater-C1Cw27hj.css';const _hoisted_1 = ["aria-label", "aria-describedby"];