@leavepulse/ui 0.87.1 → 0.89.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 (244) 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/assets/{LpTable-BqZNpWgC.css → LpTable-DAVNb-x2.css} +25 -25
  5. package/dist/chunks/{ContextMenuItems-D0jObgzN.js → ContextMenuItems-LujPZSWM.js} +2 -1
  6. package/dist/chunks/{DropzoneLinkField-DhwYRnvd.js → DropzoneLinkField-Ckuh8zFC.js} +2 -2
  7. package/dist/chunks/{IconCloseButton-CmWOJAXG.js → IconCloseButton-C_V7qngw.js} +1 -1
  8. package/dist/chunks/{LpActionBar-Cx_MSZl9.js → LpActionBar-43WHmTsM.js} +1 -1
  9. package/dist/chunks/{LpAddressInput-CfqQR5jE.js → LpAddressInput-BCqR0zmv.js} +5 -5
  10. package/dist/chunks/{LpAlert-CYtbpRYW.js → LpAlert-Q0h7Gucu.js} +1 -1
  11. package/dist/chunks/{LpAppShell-BQG98odS.js → LpAppShell-BWaVRsDB.js} +3 -3
  12. package/dist/chunks/{LpAutocomplete-VNID5zdy.js → LpAutocomplete-YPxAPHEo.js} +5 -5
  13. package/dist/chunks/{LpButton-DSHioIfD.js → LpButton-BvVoF-PO.js} +1 -1
  14. package/dist/chunks/{LpCheckbox-P7tEw8GO.js → LpCheckbox-C9VnPIQf.js} +1 -1
  15. package/dist/chunks/{LpCodeBlock-BNThgUdQ.js → LpCodeBlock-BgWcg2mk.js} +3 -3
  16. package/dist/chunks/{LpCodeDisplay-DsiE-Qy9.js → LpCodeDisplay-DBi1YPLp.js} +3 -3
  17. package/dist/chunks/{LpColorPicker-EXpwcX-t.js → LpColorPicker-KGMG8QEh.js} +4 -4
  18. package/dist/chunks/{LpConfirmDialog-DPiPVRn_.js → LpConfirmDialog-y6k0ryWR.js} +2 -2
  19. package/dist/chunks/{LpConfirmHost-Ddiljlog.js → LpConfirmHost-D-X0tDym.js} +1 -1
  20. package/dist/chunks/{LpContextMenu-DYpDm6iI.js → LpContextMenu-DEFirphS.js} +3 -3
  21. package/dist/chunks/{LpContextSwitcher-BPDSkKyA.js → LpContextSwitcher-COw6GHPW.js} +1 -1
  22. package/dist/chunks/{LpCopyButton-CxX682t4.js → LpCopyButton-BGzw95Xc.js} +2 -2
  23. package/dist/chunks/{LpDataList-DCtF7krm.js → LpDataList-B56Gu6Yt.js} +3 -3
  24. package/dist/chunks/{LpDatePicker-BElEHVm6.js → LpDatePicker-Dlyvgsan.js} +2 -2
  25. package/dist/chunks/{LpDateRangePicker-vLt-drEu.js → LpDateRangePicker-CAn2yGbn.js} +1 -1
  26. package/dist/chunks/{LpDrawer-C97k-3L2.js → LpDrawer-iRHwJOGn.js} +4 -4
  27. package/dist/chunks/{LpDropdownMenu-BPEsqZCN.js → LpDropdownMenu-CdCe7D2d.js} +3 -3
  28. package/dist/chunks/{LpEditable-CeRAzYMv.js → LpEditable-DfRUAGkA.js} +2 -2
  29. package/dist/chunks/{LpEmptyState-DrHBR3yh.js → LpEmptyState-DLOm07KH.js} +1 -1
  30. package/dist/chunks/{LpFileTree-BcQgsw4e.js → LpFileTree-BN_zybBN.js} +3 -3
  31. package/dist/chunks/{LpFileTreeNode-Dk2WqkPF.js → LpFileTreeNode-CC48DbT5.js} +3 -3
  32. package/dist/chunks/{LpHintLayer-CUSRLtLu.js → LpHintLayer-nuMqfzvy.js} +3 -3
  33. package/dist/chunks/{LpHints-BF40CP4_.js → LpHints-ByAd3a76.js} +3 -3
  34. package/dist/chunks/{LpHoverCard-CHE9jAJG.js → LpHoverCard-DYguY2AP.js} +10 -61
  35. package/dist/chunks/{LpInput-BU5IsOlE.js → LpInput-DGMpxrcg.js} +1 -1
  36. package/dist/chunks/{LpInspector-CEko6-pS.js → LpInspector-oTfkOdYd.js} +2 -2
  37. package/dist/chunks/{LpLightbox-REei-y5e.js → LpLightbox-a24V_0Wk.js} +19 -7
  38. package/dist/chunks/{LpLogInspector-Bwz351LY.js → LpLogInspector-BhJTJIst.js} +1 -1
  39. package/dist/chunks/{LpLogViewer-BCkqdH66.js → LpLogViewer-BuIzr_6h.js} +4 -4
  40. package/dist/chunks/{LpMediaGallery-BF1Bch3v.js → LpMediaGallery-B7DOV_aL.js} +2 -2
  41. package/dist/chunks/{LpModal-BK2T5uIG.js → LpModal-D1E7rQzw.js} +5 -5
  42. package/dist/chunks/{LpModalNav-Dk4eHpg6.js → LpModalNav-DivqT1NV.js} +5 -4
  43. package/dist/chunks/{LpNotificationBell-CMwUXhFg.js → LpNotificationBell-KRgdRZs-.js} +4 -4
  44. package/dist/chunks/{LpNotificationFeed-BXsRp9jm.js → LpNotificationFeed-CMGYU8c-.js} +5 -5
  45. package/dist/chunks/{LpNumberField-QUMXvpqx.js → LpNumberField-C0LSu-tl.js} +1 -1
  46. package/dist/chunks/{LpPaletteTheme-wiJtP5hV.js → LpPaletteTheme-CLwO-SDf.js} +3 -3
  47. package/dist/chunks/{LpPasswordInput-W9AZfzaL.js → LpPasswordInput-LPVI7D3v.js} +2 -2
  48. package/dist/chunks/{LpPhoneInput-DsRv-Qla.js → LpPhoneInput-BdglZsGH.js} +5 -5
  49. package/dist/chunks/{LpPie-pbrNFbRP.js → LpPie-CsiBXe-e.js} +3 -3
  50. package/dist/chunks/{LpPipeline-BHWmvOiv.js → LpPipeline-DVcoSs--.js} +1 -1
  51. package/dist/chunks/{LpPopover-BQSuxtai.js → LpPopover-w2rr4x7n.js} +2 -2
  52. package/dist/chunks/{LpRadio-CWA5Eb3M.js → LpRadio-4KyxeSz4.js} +1 -1
  53. package/dist/chunks/{LpRadioGroup-D94KMStE.js → LpRadioGroup-Cr_fmrBY.js} +1 -1
  54. package/dist/chunks/{LpRangeSlider-CkP9hYUC.js → LpRangeSlider-DbaITHtC.js} +1 -1
  55. package/dist/chunks/{LpRelativeTime-0zI-44ve.js → LpRelativeTime-CN5bWD73.js} +1 -1
  56. package/dist/chunks/{LpRepeater-DLLcbQ6J.js → LpRepeater-C0rns2xW.js} +1 -1
  57. package/dist/chunks/{LpSecretField-Au7ZQTtm.js → LpSecretField-BwrZ4TfT.js} +5 -5
  58. package/dist/chunks/{LpSection-RKCwB0xN.js → LpSection-CwsfNR7N.js} +1 -1
  59. package/dist/chunks/{LpSegmented-DD8MPj4j.js → LpSegmented-DzFYP0ZF.js} +1 -1
  60. package/dist/chunks/{LpSelect-BeXz1TWh.js → LpSelect-Dffg5r4I.js} +5 -5
  61. package/dist/chunks/{LpSidebar-DUFlf6Uu.js → LpSidebar-DQtCYlT4.js} +4 -4
  62. package/dist/chunks/{LpSidebarNav-C34YEZIR.js → LpSidebarNav-CFcI7--7.js} +1 -1
  63. package/dist/chunks/{LpSidebarRow-BeEGgsZi.js → LpSidebarRow-C5jXpcRL.js} +2 -2
  64. package/dist/chunks/{LpSlider-BCy5rjwK.js → LpSlider-DUd4gXnw.js} +1 -1
  65. package/dist/chunks/{LpStat-eVz7iUfD.js → LpStat-SyVb5JXm.js} +1 -1
  66. package/dist/chunks/{LpSwitch-D7hmVsif.js → LpSwitch-D-mcaA6C.js} +1 -1
  67. package/dist/chunks/{LpTableFilter-BGFNKyUX.js → LpTableFilter-CILHffC1.js} +3 -3
  68. package/dist/chunks/{LpTagsInput-D9uOSlvf.js → LpTagsInput-DD8-xe3F.js} +2 -2
  69. package/dist/chunks/{LpTextarea-DwE-lQt4.js → LpTextarea-CQg-dVxN.js} +1 -1
  70. package/dist/chunks/{LpThemeStudio-COn2H76d.js → LpThemeStudio-BPPctXgd.js} +4 -4
  71. package/dist/chunks/{LpThemeSwitcher-B3R3nNid.js → LpThemeSwitcher-B3c44xFH.js} +4 -4
  72. package/dist/chunks/{LpTimeField-Mi8H1g_9.js → LpTimeField-Dio7Tj9A.js} +1 -1
  73. package/dist/chunks/{LpToaster-DOJn6Vey.js → LpToaster-Cdx1tnHB.js} +2 -2
  74. package/dist/chunks/{LpTooltip-Bz_rrq5S.js → LpTooltip-BKde8Xjv.js} +43 -7
  75. package/dist/chunks/{LpTopologyCanvas-5RFMP4gR.js → LpTopologyCanvas-CQ0l6A5h.js} +3 -3
  76. package/dist/chunks/{LpTour-DUI_hoPv.js → LpTour-BGUKUxSZ.js} +1 -1
  77. package/dist/chunks/{LpTruncate-CynJhsEw.js → LpTruncate-C_C8eiIE.js} +2 -2
  78. package/dist/chunks/{LpUptimeBar-G7PfNJUH.js → LpUptimeBar-Dt6SY_-m.js} +1 -1
  79. package/dist/chunks/{LpVideoCompress-CPUxXh-c.js → LpVideoCompress-CvxNdyjp.js} +2 -2
  80. package/dist/chunks/{LpVideoPlayer-BbCjEQAx.js → LpVideoPlayer-FMuxTAU8.js} +4 -4
  81. package/dist/chunks/{LpWindow-Dp_0nNqg.js → LpWindow-DsPeiDCZ.js} +1 -1
  82. package/dist/chunks/{LpWorkspaceSwitcher-bjkncjSl.js → LpWorkspaceSwitcher-DCIiOQt_.js} +4 -4
  83. package/dist/chunks/{PickerField-CjOTUXDK.js → PickerField-DzF3UVnX.js} +1 -1
  84. package/dist/chunks/{RevealToggle-Bl1NcfxB.js → RevealToggle-BsYxY6Oz.js} +2 -2
  85. package/dist/chunks/{TourCard-BovXtMbO.js → TourCard-yrLqv4Oz.js} +1 -1
  86. package/dist/chunks/{VideoVolume-DE3i1ree.js → VideoVolume-CzL5mZPE.js} +2 -2
  87. package/dist/components/ContextMenuItems.vue.js +1 -1
  88. package/dist/components/DropzoneLinkField.vue.js +1 -1
  89. package/dist/components/IconCloseButton.vue.js +1 -1
  90. package/dist/components/LpActionBar.vue.js +1 -1
  91. package/dist/components/LpAddressInput.vue.js +1 -1
  92. package/dist/components/LpAlert.vue.js +1 -1
  93. package/dist/components/LpAppShell.vue.js +1 -1
  94. package/dist/components/LpAutocomplete.vue.js +1 -1
  95. package/dist/components/LpButton.vue.js +1 -1
  96. package/dist/components/LpChart.vue.js +2 -2
  97. package/dist/components/LpCheckbox.vue.js +1 -1
  98. package/dist/components/LpCodeBlock.vue.js +1 -1
  99. package/dist/components/LpCodeDisplay.vue.js +1 -1
  100. package/dist/components/LpColorPicker.vue.js +1 -1
  101. package/dist/components/LpCommandPalette.vue.d.ts +2 -0
  102. package/dist/components/LpCommandPalette.vue.js +69 -33
  103. package/dist/components/LpConfirmDialog.vue.js +1 -1
  104. package/dist/components/LpConfirmHost.vue.js +1 -1
  105. package/dist/components/LpContextMenu.vue.js +1 -1
  106. package/dist/components/LpContextSwitcher.vue.js +1 -1
  107. package/dist/components/LpCopyButton.vue.js +1 -1
  108. package/dist/components/LpDataList.vue.js +1 -1
  109. package/dist/components/LpDatePicker.vue.js +1 -1
  110. package/dist/components/LpDateRangePicker.vue.js +1 -1
  111. package/dist/components/LpDock.vue.js +1 -1
  112. package/dist/components/LpDrawer.vue.js +1 -1
  113. package/dist/components/LpDropdownMenu.vue.js +1 -1
  114. package/dist/components/LpDropzone.vue.js +5 -5
  115. package/dist/components/LpEditable.vue.js +1 -1
  116. package/dist/components/LpEmptyState.vue.js +1 -1
  117. package/dist/components/LpFileTree.vue.js +1 -1
  118. package/dist/components/LpFileTreeNode.vue.js +1 -1
  119. package/dist/components/LpHintLayer.vue.js +1 -1
  120. package/dist/components/LpHints.vue.js +1 -1
  121. package/dist/components/LpHoverCard.vue.d.ts +3 -3
  122. package/dist/components/LpHoverCard.vue.js +1 -1
  123. package/dist/components/LpImageEditor.vue.js +4 -4
  124. package/dist/components/LpInput.vue.js +1 -1
  125. package/dist/components/LpInspector.vue.js +1 -1
  126. package/dist/components/LpLightbox.vue.js +1 -1
  127. package/dist/components/LpLogInspector.vue.js +1 -1
  128. package/dist/components/LpLogViewer.vue.js +1 -1
  129. package/dist/components/LpMediaGallery.vue.js +1 -1
  130. package/dist/components/LpModal.vue.js +1 -1
  131. package/dist/components/LpModalNav.vue.js +1 -1
  132. package/dist/components/LpNotificationBell.vue.js +1 -1
  133. package/dist/components/LpNotificationFeed.vue.js +1 -1
  134. package/dist/components/LpNumberField.vue.js +1 -1
  135. package/dist/components/LpPaletteTheme.vue.js +1 -1
  136. package/dist/components/LpPasswordInput.vue.js +1 -1
  137. package/dist/components/LpPhoneInput.vue.js +1 -1
  138. package/dist/components/LpPie.vue.js +1 -1
  139. package/dist/components/LpPipeline.vue.js +1 -1
  140. package/dist/components/LpPopover.vue.js +1 -1
  141. package/dist/components/LpRadio.vue.js +1 -1
  142. package/dist/components/LpRadioGroup.vue.js +1 -1
  143. package/dist/components/LpRangeSlider.vue.js +1 -1
  144. package/dist/components/LpRelativeTime.vue.js +1 -1
  145. package/dist/components/LpRepeater.vue.js +1 -1
  146. package/dist/components/LpSecretField.vue.js +1 -1
  147. package/dist/components/LpSection.vue.js +1 -1
  148. package/dist/components/LpSegmented.vue.js +1 -1
  149. package/dist/components/LpSelect.vue.js +1 -1
  150. package/dist/components/LpShortcutsDialog.vue.js +1 -1
  151. package/dist/components/LpSidebar.vue.js +1 -1
  152. package/dist/components/LpSidebarNav.vue.js +1 -1
  153. package/dist/components/LpSidebarRow.vue.js +1 -1
  154. package/dist/components/LpSlider.vue.js +1 -1
  155. package/dist/components/LpStat.vue.js +1 -1
  156. package/dist/components/LpSwitch.vue.js +1 -1
  157. package/dist/components/LpTable.vue.d.ts +7 -0
  158. package/dist/components/LpTable.vue.js +48 -41
  159. package/dist/components/LpTableFilter.vue.js +1 -1
  160. package/dist/components/LpTabs.vue.js +1 -1
  161. package/dist/components/LpTagsInput.vue.js +1 -1
  162. package/dist/components/LpTextarea.vue.js +1 -1
  163. package/dist/components/LpThemeStudio.vue.js +1 -1
  164. package/dist/components/LpThemeSwitcher.vue.js +1 -1
  165. package/dist/components/LpTimeField.vue.js +1 -1
  166. package/dist/components/LpToaster.vue.js +1 -1
  167. package/dist/components/LpTooltip.vue.d.ts +9 -0
  168. package/dist/components/LpTooltip.vue.js +1 -1
  169. package/dist/components/LpTopologyCanvas.vue.js +1 -1
  170. package/dist/components/LpTour.vue.js +1 -1
  171. package/dist/components/LpTruncate.vue.js +1 -1
  172. package/dist/components/LpUptimeBar.vue.js +1 -1
  173. package/dist/components/LpVideoCompress.vue.js +1 -1
  174. package/dist/components/LpVideoPlayer.vue.js +1 -1
  175. package/dist/components/LpVideoTrim.vue.js +4 -4
  176. package/dist/components/LpWindow.vue.js +1 -1
  177. package/dist/components/LpWorkspaceSwitcher.vue.js +1 -1
  178. package/dist/components/PickerField.vue.js +1 -1
  179. package/dist/components/RevealToggle.vue.js +1 -1
  180. package/dist/components/TourCard.vue.js +1 -1
  181. package/dist/components/VideoVolume.vue.js +1 -1
  182. package/dist/components/badge.d.ts +1 -1
  183. package/dist/components/badge.js +1 -1
  184. package/dist/components/dropdown.d.ts +14 -0
  185. package/dist/components/dropdown.js +7 -1
  186. package/dist/components/menuWhen.js +1 -1
  187. package/dist/components/modalDepth.d.ts +1 -0
  188. package/dist/components/modalDepth.js +2 -0
  189. package/dist/composables/useReveal.js +3 -3
  190. package/dist/composables/useTouchHold.d.ts +19 -0
  191. package/dist/composables/useTouchHold.js +60 -0
  192. package/dist/index.js +72 -71
  193. package/package.json +1 -1
  194. package/src/components/ContextMenuItems.vue +2 -1
  195. package/src/components/IconCloseButton.vue +1 -1
  196. package/src/components/LpAlert.vue +1 -1
  197. package/src/components/LpAutocomplete.vue +4 -4
  198. package/src/components/LpButton.vue +1 -1
  199. package/src/components/LpCheckbox.vue +1 -1
  200. package/src/components/LpCodeBlock.vue +2 -2
  201. package/src/components/LpColorPicker.vue +3 -3
  202. package/src/components/LpCommandPalette.vue +89 -7
  203. package/src/components/LpContextMenu.vue +2 -2
  204. package/src/components/LpDataList.vue +1 -1
  205. package/src/components/LpDrawer.vue +7 -4
  206. package/src/components/LpDropdownMenu.vue +2 -2
  207. package/src/components/LpDropzone.vue +2 -2
  208. package/src/components/LpEditable.vue +2 -2
  209. package/src/components/LpEmptyState.vue +1 -1
  210. package/src/components/LpFileTreeNode.vue +1 -1
  211. package/src/components/LpHintLayer.vue +2 -2
  212. package/src/components/LpHoverCard.vue +11 -80
  213. package/src/components/LpImageEditor.vue +1 -1
  214. package/src/components/LpInput.vue +1 -1
  215. package/src/components/LpLightbox.vue +20 -3
  216. package/src/components/LpModal.vue +4 -4
  217. package/src/components/LpModalNav.vue +2 -1
  218. package/src/components/LpNumberField.vue +1 -1
  219. package/src/components/LpPhoneInput.vue +5 -5
  220. package/src/components/LpPopover.vue +2 -2
  221. package/src/components/LpRadio.vue +1 -1
  222. package/src/components/LpRadioGroup.vue +1 -1
  223. package/src/components/LpRangeSlider.vue +1 -1
  224. package/src/components/LpSection.vue +9 -6
  225. package/src/components/LpSegmented.vue +1 -1
  226. package/src/components/LpSelect.vue +4 -4
  227. package/src/components/LpSlider.vue +1 -1
  228. package/src/components/LpStat.vue +1 -1
  229. package/src/components/LpSwitch.vue +1 -1
  230. package/src/components/LpTable.vue +13 -1
  231. package/src/components/LpTableFilter.vue +1 -1
  232. package/src/components/LpTagsInput.vue +2 -2
  233. package/src/components/LpTextarea.vue +1 -1
  234. package/src/components/LpThemeSwitcher.vue +2 -2
  235. package/src/components/LpTimeField.vue +1 -1
  236. package/src/components/LpToaster.vue +1 -1
  237. package/src/components/LpTooltip.vue +59 -5
  238. package/src/components/badge.ts +1 -1
  239. package/src/components/dropdown.ts +24 -0
  240. package/src/components/modalDepth.ts +6 -0
  241. package/src/composables/useReveal.ts +7 -4
  242. package/src/composables/useTouchHold.ts +92 -0
  243. package/src/locales/uk.ts +1 -0
  244. package/src/tokens/utilities.css +34 -0
@@ -1,9 +1,9 @@
1
1
  import { defineComponent, ref, computed, useAttrs, openBlock, createElementBlock, Fragment, createVNode, withCtx, mergeProps, unref, createElementVNode, normalizeStyle, toDisplayString, createCommentVNode } from "vue";
2
2
  import { COPY_LABELS, useClipboard } from "../composables/useClipboard.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 "./LpTooltip-Bz_rrq5S.js";
6
+ import { _ as _sfc_main$1 } from "./LpTooltip-BKde8Xjv.js";
7
7
  const _hoisted_1 = { key: 0 };
8
8
  const _hoisted_2 = {
9
9
  class: "sr-only",
@@ -1,11 +1,11 @@
1
1
  import { defineComponent, useSlots, computed, openBlock, createElementBlock, mergeProps, unref, createVNode, TransitionGroup, normalizeClass, withCtx, Fragment, renderList, createElementVNode, renderSlot, createTextVNode, toDisplayString, createBlock, createCommentVNode } from "vue";
2
2
  import { useLabels } from "../composables/useLpConfig.js";
3
3
  import { useMergedAttrs } from "../composables/useMergedClass.js";
4
- import { _ as _sfc_main$4 } from "./LpCopyButton-CxX682t4.js";
4
+ import { _ as _sfc_main$4 } from "./LpCopyButton-BGzw95Xc.js";
5
5
  import { _ as _sfc_main$2 } from "./LpIcon-CxHFPwKt.js";
6
6
  import { _ as _sfc_main$3 } from "./LpRollingText-B54Pje7P.js";
7
- import { _ as _sfc_main$1 } from "./LpTooltip-Bz_rrq5S.js";
8
- const _hoisted_1 = { class: "flex min-w-0 items-center gap-1 text-muted" };
7
+ import { _ as _sfc_main$1 } from "./LpTooltip-BKde8Xjv.js";
8
+ const _hoisted_1 = { class: "flex min-w-0 items-center gap-1 text-muted [overflow-wrap:anywhere]" };
9
9
  const _hoisted_2 = ["aria-label"];
10
10
  const _hoisted_3 = { class: "min-w-0 flex-1 [overflow-wrap:anywhere]" };
11
11
  const _hoisted_4 = {
@@ -6,8 +6,8 @@ import { useLabels } from "../composables/useLpConfig.js";
6
6
  import { defaultDatePresets, dayAllowed } from "../components/dateRange.js";
7
7
  import { _ as _sfc_main$3 } from "./LpCalendar-aACjUhpM.js";
8
8
  import { _ as _sfc_main$4 } from "./LpIcon-CxHFPwKt.js";
9
- import { _ as _sfc_main$2 } from "./PickerField-CjOTUXDK.js";
10
- import { _ as _sfc_main$5 } from "./LpTimeField-Mi8H1g_9.js";
9
+ import { _ as _sfc_main$2 } from "./PickerField-DzF3UVnX.js";
10
+ import { _ as _sfc_main$5 } from "./LpTimeField-Dio7Tj9A.js";
11
11
  const _hoisted_1 = { class: "flex flex-col" };
12
12
  const _hoisted_2 = {
13
13
  key: 0,
@@ -5,7 +5,7 @@ import { useLocale } from "../composables/useLocale.js";
5
5
  import { useLabels } from "../composables/useLpConfig.js";
6
6
  import { useMediaQuery } from "../composables/useMediaQuery.js";
7
7
  import { normalizeRange, formatRange, defaultRangePresets, sameRange, allowedRange } from "../components/dateRange.js";
8
- import { _ as _sfc_main$2 } from "./PickerField-CjOTUXDK.js";
8
+ import { _ as _sfc_main$2 } from "./PickerField-DzF3UVnX.js";
9
9
  import { _ as _sfc_main$3 } from "./LpRangeCalendar-C9gkNMYw.js";
10
10
  const __default__ = { inheritAttrs: false };
11
11
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -74,10 +74,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
74
74
  const surface = frosted.value ? layer.value.nested ? "lp-glass-overlay lp-glass-overlay--nested" : "lp-glass-overlay" : "bg-surface-raised";
75
75
  const base = `fixed z-(--z-modal) flex flex-col border-line ${surface} shadow-panel outline-none`;
76
76
  const map = {
77
- left: "inset-y-0 left-0 border-r rounded-r-card",
78
- right: "inset-y-0 right-0 border-l rounded-l-card",
79
- top: "inset-x-0 top-0 border-b rounded-b-card",
80
- bottom: "inset-x-0 bottom-0 border-t rounded-t-card"
77
+ left: "inset-y-0 left-0 border-r rounded-r-card pt-[env(safe-area-inset-top)] pb-[env(safe-area-inset-bottom)] pl-[env(safe-area-inset-left)]",
78
+ right: "inset-y-0 right-0 border-l rounded-l-card pt-[env(safe-area-inset-top)] pb-[env(safe-area-inset-bottom)] pr-[env(safe-area-inset-right)]",
79
+ top: "inset-x-0 top-0 border-b rounded-b-card pt-[env(safe-area-inset-top)] pl-[env(safe-area-inset-left)] pr-[env(safe-area-inset-right)]",
80
+ bottom: "inset-x-0 bottom-0 border-t rounded-t-card pb-[env(safe-area-inset-bottom)] pl-[env(safe-area-inset-left)] pr-[env(safe-area-inset-right)]"
81
81
  };
82
82
  return [base, map[dir.value]];
83
83
  });
@@ -3,8 +3,8 @@ import { useMenuPalette } from "../composables/usePaletteCommands.js";
3
3
  import { hints } from "../composables/useHints.js";
4
4
  import { HINT_SIGNALS } from "../composables/useHintSystem.js";
5
5
  import { DropdownMenuRoot, DropdownMenuTrigger, DropdownMenuPortal, DropdownMenuContent } from "reka-ui";
6
- import { _ as _sfc_main$2 } from "./ContextMenuItems-D0jObgzN.js";
7
- import { POPOVER_PANEL } from "../components/dropdown.js";
6
+ import { _ as _sfc_main$2 } from "./ContextMenuItems-LujPZSWM.js";
7
+ import { POPOVER_PANEL, PANEL_FIT } from "../components/dropdown.js";
8
8
  import { _ as _sfc_main$1 } from "./MenuTitle-YcSjF8xo.js";
9
9
  import { usePortalTarget, useOutsideGuard } from "../composables/useView.js";
10
10
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -21,7 +21,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
21
21
  emits: ["update:open"],
22
22
  setup(__props, { emit: __emit }) {
23
23
  const props = __props;
24
- const PANEL = `${POPOVER_PANEL} z-(--z-popover) min-w-44 p-1 outline-none`;
24
+ const PANEL = `${POPOVER_PANEL} ${PANEL_FIT} z-(--z-popover) min-w-44 p-1 outline-none`;
25
25
  const emit = __emit;
26
26
  function opened(open) {
27
27
  emit("update:open", open);
@@ -198,7 +198,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
198
198
  }, [
199
199
  createElementVNode("span", {
200
200
  "aria-hidden": "true",
201
- class: normalizeClass(["invisible col-start-1 row-start-1 min-w-[4ch]", [PAD[__props.size], __props.multiline ? "whitespace-pre-wrap break-words" : "whitespace-pre"]])
201
+ class: normalizeClass(["lp-entry invisible col-start-1 row-start-1 min-w-[4ch]", [PAD[__props.size], __props.multiline ? "whitespace-pre-wrap break-words" : "whitespace-pre"]])
202
202
  }, toDisplayString((draft.value || __props.placeholder || " ") + (__props.multiline ? "\n" : " ")), 3),
203
203
  (openBlock(), createBlock(resolveDynamicComponent(__props.multiline ? "textarea" : "input"), {
204
204
  ref_key: "field",
@@ -213,7 +213,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
213
213
  disabled: __props.disabled,
214
214
  readonly: __props.readonly,
215
215
  rows: __props.multiline ? 1 : void 0,
216
- class: normalizeClass(["col-start-1 row-start-1 w-full min-w-0 resize-none overflow-hidden bg-transparent text-ink outline-none placeholder:text-muted", PAD[__props.size]]),
216
+ class: normalizeClass(["lp-entry col-start-1 row-start-1 w-full min-w-0 resize-none overflow-hidden bg-transparent text-ink outline-none placeholder:text-muted", PAD[__props.size]]),
217
217
  onInput: _cache[1] || (_cache[1] = ($event) => draft.value = $event.target.value),
218
218
  onKeydown: onFieldKey,
219
219
  onBlur: _cache[2] || (_cache[2] = ($event) => commit(false))
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, openBlock, createElementBlock, mergeProps, unref, normalizeClass, createVNode, createCommentVNode, createElementVNode, toDisplayString, renderSlot, createTextVNode } from "vue";
2
2
  import { _ as _sfc_main$1 } from "./LpIcon-CxHFPwKt.js";
3
3
  import { useMergedAttrs } from "../composables/useMergedClass.js";
4
- const _hoisted_1 = { class: "flex flex-col gap-1" };
4
+ const _hoisted_1 = { class: "flex max-w-full flex-col gap-1 [overflow-wrap:anywhere]" };
5
5
  const _hoisted_2 = {
6
6
  key: 0,
7
7
  class: "max-w-sm text-sm text-muted"
@@ -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__,