@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,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpVideoPlayer-BbCjEQAx.js";
1
+ import { _ as _sfc_main } from "../chunks/LpVideoPlayer-FMuxTAU8.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -6,13 +6,13 @@ import { useMergedAttrs } from "../composables/useMergedClass.js";
6
6
  import { useResizeObserver } from "../composables/useResizeObserver.js";
7
7
  import { usePrefersReducedMotion } from "../composables/useReducedMotion.js";
8
8
  import { useVideoMedia } from "../composables/useVideoMedia.js";
9
- import { _ as _sfc_main$3 } from "../chunks/LpButton-DSHioIfD.js";
9
+ import { _ as _sfc_main$3 } from "../chunks/LpButton-BvVoF-PO.js";
10
10
  import { _ as _sfc_main$2 } from "../chunks/LpIcon-CxHFPwKt.js";
11
- import { _ as _sfc_main$1 } from "../chunks/LpContextMenu-DYpDm6iI.js";
12
- import { _ as _sfc_main$6 } from "../chunks/LpInput-BU5IsOlE.js";
11
+ import { _ as _sfc_main$1 } from "../chunks/LpContextMenu-DEFirphS.js";
12
+ import { _ as _sfc_main$6 } from "../chunks/LpInput-DGMpxrcg.js";
13
13
  import { _ as _sfc_main$4 } from "../chunks/SteadyText-CwH-kduj.js";
14
14
  import VideoFlash from "./VideoFlash.vue.js";
15
- import { _ as _sfc_main$5 } from "../chunks/VideoVolume-DE3i1ree.js";
15
+ import { _ as _sfc_main$5 } from "../chunks/VideoVolume-CzL5mZPE.js";
16
16
  import { FADE, FADE_SCALE, OVERLAY_BUTTON, ICON_SWAP } from "./videoMotion.js";
17
17
  import { useClipboard } from "../composables/useClipboard.js";
18
18
  import { useToast } from "../composables/useToast.js";
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpWindow-Dp_0nNqg.js";
1
+ import { _ as _sfc_main } from "../chunks/LpWindow-DsPeiDCZ.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpWorkspaceSwitcher-bjkncjSl.js";
1
+ import { _ as _sfc_main } from "../chunks/LpWorkspaceSwitcher-DCIiOQt_.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/PickerField-CjOTUXDK.js";
1
+ import { _ as _sfc_main } from "../chunks/PickerField-DzF3UVnX.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/RevealToggle-Bl1NcfxB.js";
1
+ import { _ as _sfc_main } from "../chunks/RevealToggle-BsYxY6Oz.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/TourCard-BovXtMbO.js";
1
+ import { _ as _sfc_main } from "../chunks/TourCard-yrLqv4Oz.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/VideoVolume-DE3i1ree.js";
1
+ import { _ as _sfc_main } from "../chunks/VideoVolume-CzL5mZPE.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -1 +1 @@
1
- export declare const BADGE_REMOVE = "grid size-4 shrink-0 place-items-center rounded-pill text-muted outline-none transition-colors duration-fast hover:bg-ink/10 hover:text-ink focus-visible:ring-2 focus-visible:ring-ring";
1
+ export declare const BADGE_REMOVE = "lp-tap grid size-4 shrink-0 place-items-center rounded-pill text-muted outline-none transition-colors duration-fast hover:bg-ink/10 hover:text-ink focus-visible:ring-2 focus-visible:ring-ring";
@@ -1,4 +1,4 @@
1
- const BADGE_REMOVE = "grid size-4 shrink-0 place-items-center rounded-pill text-muted outline-none transition-colors duration-fast hover:bg-ink/10 hover:text-ink focus-visible:ring-2 focus-visible:ring-ring";
1
+ const BADGE_REMOVE = "lp-tap grid size-4 shrink-0 place-items-center rounded-pill text-muted outline-none transition-colors duration-fast hover:bg-ink/10 hover:text-ink focus-visible:ring-2 focus-visible:ring-ring";
2
2
  export {
3
3
  BADGE_REMOVE
4
4
  };
@@ -14,6 +14,19 @@ export declare const PANEL_SURFACE = "group rounded-control border border-line b
14
14
  * rest use z-(--z-popover)).
15
15
  */
16
16
  export declare const POPOVER_PANEL: string;
17
+ /**
18
+ * Keeps a free-form panel (popover, menu, hover card) inside the window. Its
19
+ * width stops 0.5rem short of each edge, so a w-96 panel or a long menu label
20
+ * no longer runs off a phone; its height stops at the room reka measured on the
21
+ * side it opened, and the rest scrolls. A date picker opened in landscape used
22
+ * to hang off the top of the screen with its first weeks out of reach.
23
+ */
24
+ export declare const PANEL_FIT = "max-w-[calc(100vw-1rem)] max-h-(--reka-popper-available-height) overflow-y-auto";
25
+ /**
26
+ * A list row on a touch screen: 2.5rem tall instead of 2, so a thumb picks the
27
+ * row it is on and not its neighbour. A mouse keeps the compact row.
28
+ */
29
+ export declare const TOUCH_ROW = "[@media(hover:none)_and_(pointer:coarse)]:py-2.5";
17
30
  /**
18
31
  * A selectable option row: layout, highlight state, and the staggered cascade.
19
32
  * Cascades downward by default and upward when the panel is flipped above the
@@ -40,4 +53,5 @@ export declare const COMBOBOX_PANEL: {
40
53
  readonly position: "popper";
41
54
  readonly sideOffset: 6;
42
55
  };
56
+ export declare const COMBOBOX_FIT = "flex flex-col max-h-[min(18rem,var(--reka-popper-available-height,18rem))]";
43
57
  export declare const CLOSE_ICON: string;
@@ -3,19 +3,25 @@ const POPOVER_ANIM = "data-[state=open]:animate-[popover-in_140ms_var(--ease-emp
3
3
  const TOOLTIP_ANIM = "data-[state=delayed-open]:animate-[popover-in_120ms_var(--ease-emphasized)] data-[state=closed]:animate-[popover-out_100ms_ease] data-[side=top]:data-[state=delayed-open]:animate-[popover-in-up_120ms_var(--ease-emphasized)] data-[side=top]:data-[state=closed]:animate-[popover-out-up_100ms_ease]";
4
4
  const PANEL_SURFACE = "group rounded-control border border-line bg-surface-overlay shadow-panel backdrop-blur";
5
5
  const POPOVER_PANEL = PANEL_SURFACE + " " + POPOVER_ANIM;
6
- const OPTION_ITEM = "flex cursor-pointer items-center gap-2 rounded-inner px-2.5 py-1.5 text-sm text-ink outline-none animate-[rise-in_180ms_var(--ease-emphasized)_both] [--rise:-6px] group-data-[side=top]:[--rise:6px] data-[highlighted]:bg-brand-soft data-[highlighted]:text-brand";
6
+ const PANEL_FIT = "max-w-[calc(100vw-1rem)] max-h-(--reka-popper-available-height) overflow-y-auto";
7
+ const TOUCH_ROW = "[@media(hover:none)_and_(pointer:coarse)]:py-2.5";
8
+ const OPTION_ITEM = "flex cursor-pointer items-center gap-2 rounded-inner px-2.5 py-1.5 text-sm text-ink outline-none " + TOUCH_ROW + " animate-[rise-in_180ms_var(--ease-emphasized)_both] [--rise:-6px] group-data-[side=top]:[--rise:6px] data-[highlighted]:bg-brand-soft data-[highlighted]:text-brand";
7
9
  const optionStagger = (index) => ({
8
10
  animationDelay: `${staggerDelay(index, 0, 22, 12)}ms`
9
11
  });
10
12
  const COMBOBOX_PANEL = { collisionPadding: 8, position: "popper", sideOffset: 6 };
13
+ const COMBOBOX_FIT = "flex flex-col max-h-[min(18rem,var(--reka-popper-available-height,18rem))]";
11
14
  const CLOSE_ICON = "transition-transform duration-medium ease-[var(--ease-emphasized)] group-hover:rotate-90 group-active:scale-90 motion-reduce:group-hover:rotate-0";
12
15
  export {
13
16
  CLOSE_ICON,
17
+ COMBOBOX_FIT,
14
18
  COMBOBOX_PANEL,
15
19
  OPTION_ITEM,
20
+ PANEL_FIT,
16
21
  PANEL_SURFACE,
17
22
  POPOVER_ANIM,
18
23
  POPOVER_PANEL,
19
24
  TOOLTIP_ANIM,
25
+ TOUCH_ROW,
20
26
  optionStagger
21
27
  };
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, h } from "vue";
2
- import { _ as _sfc_main } from "../chunks/LpContextMenu-DYpDm6iI.js";
2
+ import { _ as _sfc_main } from "../chunks/LpContextMenu-DEFirphS.js";
3
3
  const MenuWhen = defineComponent({
4
4
  name: "MenuWhen",
5
5
  inheritAttrs: false,
@@ -1,4 +1,5 @@
1
1
  import { type ComputedRef } from "vue";
2
+ export declare const MODAL_MAX_HEIGHT = "min(90vh, calc(100dvh - 2rem - env(safe-area-inset-top) - env(safe-area-inset-bottom)))";
2
3
  export interface ModalLayer {
3
4
  /** Join the stack on top. Ignored on the server, where nothing would ever release it. */
4
5
  claim: () => void;
@@ -1,5 +1,6 @@
1
1
  import { ref, computed } from "vue";
2
2
  const STEP = 20;
3
+ const MODAL_MAX_HEIGHT = "min(90vh, calc(100dvh - 2rem - env(safe-area-inset-top) - env(safe-area-inset-bottom)))";
3
4
  const STATE_KEY = /* @__PURE__ */ Symbol.for("@leavepulse/ui:modal-stack");
4
5
  const g = globalThis;
5
6
  const state = g[STATE_KEY] ??= { stack: ref([]), nextId: 0, elements: /* @__PURE__ */ new Map() };
@@ -41,6 +42,7 @@ function topModalElement() {
41
42
  return state.elements.get(id)?.() ?? null;
42
43
  }
43
44
  export {
45
+ MODAL_MAX_HEIGHT,
44
46
  anyModalOpen,
45
47
  topModalElement,
46
48
  useModalLayer
@@ -1,10 +1,10 @@
1
1
  import { nodeWindow } from "./realm.js";
2
- import { ref, watch, toValue, onBeforeUnmount } from "vue";
2
+ import { ref, toValue, watch, onBeforeUnmount } from "vue";
3
3
  import { prefersReducedMotion } from "./easing.js";
4
4
  function useReveal(options = {}) {
5
5
  const { threshold = 0.25, rootMargin = "0px" } = options;
6
6
  const el = ref(null);
7
- const revealed = ref(typeof window === "undefined");
7
+ const revealed = ref(!!toValue(options.immediate));
8
8
  let observer = null;
9
9
  function stop() {
10
10
  observer?.disconnect();
@@ -17,7 +17,7 @@ function useReveal(options = {}) {
17
17
  watch(
18
18
  [el, () => toValue(options.immediate)],
19
19
  ([node, immediate]) => {
20
- if (revealed.value) return;
20
+ if (revealed.value || typeof window === "undefined") return;
21
21
  if (immediate || prefersReducedMotion()) {
22
22
  reveal();
23
23
  return;
@@ -0,0 +1,19 @@
1
+ export interface TouchHoldOptions {
2
+ /** Whether a touch press may start a hold now. */
3
+ enabled: () => boolean;
4
+ /** How long the finger must stay, in ms. */
5
+ delay: () => number;
6
+ onHold: () => void;
7
+ }
8
+ export declare function useTouchHold(options: TouchHoldOptions): {
9
+ /** Drops a hold in progress, as if the finger had been lifted off the screen. */
10
+ cancel: () => void;
11
+ handlers: {
12
+ onPointerdown: (event: PointerEvent) => void;
13
+ onPointermove: (event: PointerEvent) => void;
14
+ onPointerup: (event: PointerEvent) => void;
15
+ onPointercancel: (event?: PointerEvent) => void;
16
+ onClickCapture: (event: MouseEvent) => void;
17
+ onContextmenu: (event: Event) => void;
18
+ };
19
+ };
@@ -0,0 +1,60 @@
1
+ import { onBeforeUnmount } from "vue";
2
+ const SLOP = 8;
3
+ const CLICK_AFTER_RELEASE_MS = 350;
4
+ function useTouchHold(options) {
5
+ let timer = 0;
6
+ let finger = null;
7
+ let start = { x: 0, y: 0 };
8
+ let held = false;
9
+ function stop() {
10
+ window.clearTimeout(timer);
11
+ timer = 0;
12
+ }
13
+ function onPointerDown(event) {
14
+ if (timer && event.pointerId !== finger) return;
15
+ held = false;
16
+ if (event.pointerType !== "touch" || !options.enabled()) return;
17
+ finger = event.pointerId;
18
+ start = { x: event.clientX, y: event.clientY };
19
+ stop();
20
+ timer = window.setTimeout(() => {
21
+ timer = 0;
22
+ held = true;
23
+ options.onHold();
24
+ }, options.delay());
25
+ }
26
+ function onPointerMove(event) {
27
+ if (!timer || event.pointerId !== finger) return;
28
+ if (Math.hypot(event.clientX - start.x, event.clientY - start.y) > SLOP) stop();
29
+ }
30
+ function onPointerUp(event) {
31
+ if (finger !== null && event.pointerId !== finger) return;
32
+ finger = null;
33
+ stop();
34
+ if (held) window.setTimeout(() => held = false, CLICK_AFTER_RELEASE_MS);
35
+ }
36
+ function onPointerCancel(event) {
37
+ if (event && finger !== null && event.pointerId !== finger) return;
38
+ finger = null;
39
+ stop();
40
+ held = false;
41
+ }
42
+ function onClickCapture(event) {
43
+ if (!held) return;
44
+ held = false;
45
+ event.preventDefault();
46
+ event.stopImmediatePropagation();
47
+ }
48
+ function onContextMenu(event) {
49
+ if (timer || held) event.preventDefault();
50
+ }
51
+ onBeforeUnmount(stop);
52
+ return {
53
+ /** Drops a hold in progress, as if the finger had been lifted off the screen. */
54
+ cancel: () => onPointerCancel(),
55
+ handlers: { onPointerdown: onPointerDown, onPointermove: onPointerMove, onPointerup: onPointerUp, onPointercancel: onPointerCancel, onClickCapture, onContextmenu: onContextMenu }
56
+ };
57
+ }
58
+ export {
59
+ useTouchHold
60
+ };
package/dist/index.js CHANGED
@@ -1,15 +1,15 @@
1
1
  import { _ } from "./chunks/LayoutCanvas-j4TZqx1A.js";
2
- import { _ as _2 } from "./chunks/LpAddressInput-CfqQR5jE.js";
2
+ import { _ as _2 } from "./chunks/LpAddressInput-BCqR0zmv.js";
3
3
  import { _ as _3 } from "./chunks/LpMapPicker-DVfiy3rR.js";
4
4
  import { OSM_TILES, createNominatimProvider, emptyAddress, formatAddress, project, tileUrl, unproject } from "./components/address.js";
5
- import { _ as _4 } from "./chunks/LpActionBar-Cx_MSZl9.js";
6
- import { _ as _5 } from "./chunks/LpAlert-CYtbpRYW.js";
7
- import { _ as _6 } from "./chunks/LpAppShell-BQG98odS.js";
8
- import { _ as _7 } from "./chunks/LpAutocomplete-VNID5zdy.js";
5
+ import { _ as _4 } from "./chunks/LpActionBar-43WHmTsM.js";
6
+ import { _ as _5 } from "./chunks/LpAlert-Q0h7Gucu.js";
7
+ import { _ as _6 } from "./chunks/LpAppShell-BWaVRsDB.js";
8
+ import { _ as _7 } from "./chunks/LpAutocomplete-YPxAPHEo.js";
9
9
  import { _ as _8 } from "./chunks/LpAvatar-CfLBqlY1.js";
10
10
  import { _ as _9 } from "./chunks/LpBadge-Bh5roBr_.js";
11
11
  import { _ as _10 } from "./chunks/LpBreadcrumbs-Zv1fn9e_.js";
12
- import { _ as _11 } from "./chunks/LpButton-DSHioIfD.js";
12
+ import { _ as _11 } from "./chunks/LpButton-BvVoF-PO.js";
13
13
  import { _ as _12 } from "./chunks/LpCalendar-aACjUhpM.js";
14
14
  import { _ as _13 } from "./chunks/LpCard-xXBqLVGo.js";
15
15
  import { default as default2 } from "./components/LpChart.vue.js";
@@ -18,10 +18,10 @@ import { CHART_PALETTE, axisTicks, chartSummary, formatTick, markerIndex, niceSc
18
18
  import { chartView, lttbIndices, minMaxBuckets, panRange, slotOf, sourceOf, zoomRange } from "./components/chartWindow.js";
19
19
  import { useChartSync } from "./composables/useChartSync.js";
20
20
  import { createLinkedView, linkChart, linkLog, linkPipeline, linkTable, linkTopology, provideLinkedView, useLinkedView } from "./composables/useLinkedView.js";
21
- import { _ as _14 } from "./chunks/LpCheckbox-P7tEw8GO.js";
22
- import { _ as _15 } from "./chunks/LpCodeBlock-BNThgUdQ.js";
21
+ import { _ as _14 } from "./chunks/LpCheckbox-C9VnPIQf.js";
22
+ import { _ as _15 } from "./chunks/LpCodeBlock-BgWcg2mk.js";
23
23
  import { tokenizeLines } from "./components/codeHighlight.js";
24
- import { _ as _16 } from "./chunks/LpColorPicker-EXpwcX-t.js";
24
+ import { _ as _16 } from "./chunks/LpColorPicker-KGMG8QEh.js";
25
25
  import { DEFAULT_SWATCHES, clampHsv, formatColor, hsvToHsl, hsvToRgb, isLight, normalizeHue, opaqueCss, parseColor, parseHex, rgbToHex, rgbToHsv } from "./components/color.js";
26
26
  import { default as default3 } from "./components/LpCommandPalette.vue.js";
27
27
  import { applyQueryFilters, highlightParts, parseCommandQuery, parsePaletteQuery, rankCommandItems, searchCommandItems, swapCommandLayout } from "./components/commandSearch.js";
@@ -33,21 +33,21 @@ import { default as default6 } from "./components/LpPaletteStats.vue.js";
33
33
  import { default as default7 } from "./components/LpPaletteSwatches.vue.js";
34
34
  import { default as default8 } from "./components/LpKeys.vue.js";
35
35
  import { comboKeys, comboSteps } from "./components/keys.js";
36
- import { _ as _18 } from "./chunks/LpConfirmDialog-DPiPVRn_.js";
37
- import { _ as _19 } from "./chunks/LpConfirmHost-Ddiljlog.js";
36
+ import { _ as _18 } from "./chunks/LpConfirmDialog-y6k0ryWR.js";
37
+ import { _ as _19 } from "./chunks/LpConfirmHost-D-X0tDym.js";
38
38
  import { confirm, useConfirm } from "./components/confirm.js";
39
- import { _ as _20 } from "./chunks/LpContextMenu-DYpDm6iI.js";
40
- import { _ as _21 } from "./chunks/LpDatePicker-BElEHVm6.js";
41
- import { _ as _22 } from "./chunks/LpDateRangePicker-vLt-drEu.js";
39
+ import { _ as _20 } from "./chunks/LpContextMenu-DEFirphS.js";
40
+ import { _ as _21 } from "./chunks/LpDatePicker-Dlyvgsan.js";
41
+ import { _ as _22 } from "./chunks/LpDateRangePicker-CAn2yGbn.js";
42
42
  import { _ as _23 } from "./chunks/LpRangeCalendar-C9gkNMYw.js";
43
43
  import { clampRange, dayAllowed, defaultDatePresets, defaultRangePresets, formatRange, normalizeRange, sameRange } from "./components/dateRange.js";
44
44
  import { _ as _24 } from "./chunks/LpDisclosure-D4JZ-o8K.js";
45
45
  import { _ as _25 } from "./chunks/LpDivider-CUX46KR0.js";
46
- import { _ as _26 } from "./chunks/LpDrawer-C97k-3L2.js";
47
- import { _ as _27 } from "./chunks/LpDropdownMenu-BPEsqZCN.js";
46
+ import { _ as _26 } from "./chunks/LpDrawer-iRHwJOGn.js";
47
+ import { _ as _27 } from "./chunks/LpDropdownMenu-CdCe7D2d.js";
48
48
  import { default as default9 } from "./components/LpDropzone.vue.js";
49
- import { _ as _28 } from "./chunks/LpEmptyState-DrHBR3yh.js";
50
- import { _ as _29 } from "./chunks/LpFileTree-BcQgsw4e.js";
49
+ import { _ as _28 } from "./chunks/LpEmptyState-DLOm07KH.js";
50
+ import { _ as _29 } from "./chunks/LpFileTree-BN_zybBN.js";
51
51
  import { ancestorIds, checkStateOf, checkedCount, computeStats, fileIcon, formatModified, formatSize, sortNodes, subtreeIds, subtreeSize } from "./components/fileTree.js";
52
52
  import { _ as _30 } from "./chunks/LpFieldNotice-DUPo1Yii.js";
53
53
  import { _ as _31 } from "./chunks/LpFormField-jbM7K1Hg.js";
@@ -55,61 +55,61 @@ import { _ as _32 } from "./chunks/LpIcon-CxHFPwKt.js";
55
55
  import { i, b, a, c } from "./chunks/icons-C8ccRCKw.js";
56
56
  import { default as default10 } from "./components/LpImageEditor.vue.js";
57
57
  import { _ as _33 } from "./chunks/LpInfraNode-BYiMFDnA.js";
58
- import { _ as _34 } from "./chunks/LpInput-BU5IsOlE.js";
59
- import { _ as _35 } from "./chunks/LpLightbox-REei-y5e.js";
58
+ import { _ as _34 } from "./chunks/LpInput-DGMpxrcg.js";
59
+ import { _ as _35 } from "./chunks/LpLightbox-a24V_0Wk.js";
60
60
  import { fileNameOf, isVideoItem } from "./components/lightbox.js";
61
61
  import { _ as _36 } from "./chunks/LpLink-Krkjhe_y.js";
62
- import { _ as _37 } from "./chunks/LpLogViewer-BCkqdH66.js";
63
- import { _ as _38 } from "./chunks/LpLogInspector-Bwz351LY.js";
62
+ import { _ as _37 } from "./chunks/LpLogViewer-BuIzr_6h.js";
63
+ import { _ as _38 } from "./chunks/LpLogInspector-BhJTJIst.js";
64
64
  import { compilePattern, findIds, messageShape, structuredPayload, timeMs } from "./components/logTools.js";
65
65
  import { countLevels, matchPositions, matchesTerm, ringWindow, stepMatch } from "./components/logSearch.js";
66
- import { _ as _39 } from "./chunks/LpMediaGallery-BF1Bch3v.js";
67
- import { _ as _40 } from "./chunks/LpModal-BK2T5uIG.js";
68
- import { _ as _41 } from "./chunks/LpModalNav-Dk4eHpg6.js";
69
- import { _ as _42 } from "./chunks/LpNotificationBell-CMwUXhFg.js";
70
- import { _ as _43 } from "./chunks/LpNotificationFeed-BXsRp9jm.js";
71
- import { _ as _44 } from "./chunks/LpNumberField-QUMXvpqx.js";
72
- import { _ as _45 } from "./chunks/LpTimeField-Mi8H1g_9.js";
66
+ import { _ as _39 } from "./chunks/LpMediaGallery-B7DOV_aL.js";
67
+ import { _ as _40 } from "./chunks/LpModal-D1E7rQzw.js";
68
+ import { _ as _41 } from "./chunks/LpModalNav-DivqT1NV.js";
69
+ import { _ as _42 } from "./chunks/LpNotificationBell-KRgdRZs-.js";
70
+ import { _ as _43 } from "./chunks/LpNotificationFeed-CMGYU8c-.js";
71
+ import { _ as _44 } from "./chunks/LpNumberField-C0LSu-tl.js";
72
+ import { _ as _45 } from "./chunks/LpTimeField-Dio7Tj9A.js";
73
73
  import { _ as _46 } from "./chunks/LpNumberFlow-Vqj0tP7B.js";
74
74
  import { _ as _47 } from "./chunks/LpOtpInput-C14XagVB.js";
75
75
  import { _ as _48 } from "./chunks/LpPagination-DGLntZJN.js";
76
- import { _ as _49 } from "./chunks/LpPasswordInput-W9AZfzaL.js";
77
- import { _ as _50 } from "./chunks/LpPie-pbrNFbRP.js";
78
- import { _ as _51 } from "./chunks/LpPhoneInput-DsRv-Qla.js";
76
+ import { _ as _49 } from "./chunks/LpPasswordInput-LPVI7D3v.js";
77
+ import { _ as _50 } from "./chunks/LpPie-CsiBXe-e.js";
78
+ import { _ as _51 } from "./chunks/LpPhoneInput-BdglZsGH.js";
79
79
  import { filterCountries, flagEmoji, loadCountries, matchCountryByValue } from "./components/countries.js";
80
- import { _ as _52 } from "./chunks/LpPopover-BQSuxtai.js";
80
+ import { _ as _52 } from "./chunks/LpPopover-w2rr4x7n.js";
81
81
  import { _ as _53 } from "./chunks/LpProgress-D_MSjowb.js";
82
- import { _ as _54 } from "./chunks/LpRadio-CWA5Eb3M.js";
83
- import { _ as _55 } from "./chunks/LpRadioGroup-D94KMStE.js";
82
+ import { _ as _54 } from "./chunks/LpRadio-4KyxeSz4.js";
83
+ import { _ as _55 } from "./chunks/LpRadioGroup-Cr_fmrBY.js";
84
84
  import { _ as _56 } from "./chunks/LpRollingText-B54Pje7P.js";
85
85
  import { _ as _57 } from "./chunks/LpScrollArea-CqvwfZs2.js";
86
86
  import { _ as _58 } from "./chunks/LpPageScrollbar-C9sTeU-2.js";
87
- import { _ as _59 } from "./chunks/LpSegmented-DD8MPj4j.js";
88
- import { _ as _60 } from "./chunks/LpSection-RKCwB0xN.js";
89
- import { _ as _61 } from "./chunks/LpSelect-BeXz1TWh.js";
87
+ import { _ as _59 } from "./chunks/LpSegmented-DzFYP0ZF.js";
88
+ import { _ as _60 } from "./chunks/LpSection-CwsfNR7N.js";
89
+ import { _ as _61 } from "./chunks/LpSelect-Dffg5r4I.js";
90
90
  import { fitChips, toggledValues } from "./components/select.js";
91
91
  import { _ as _62 } from "./chunks/LpServiceNode-Cln2ntdw.js";
92
92
  import { _ as _63 } from "./chunks/LpShift-DAgS_d2x.js";
93
93
  import { _ as _64 } from "./chunks/LpSwap-M7nFeW3C.js";
94
94
  import { _ as _65 } from "./chunks/LpHintExample-YzCXiSUp.js";
95
95
  import { default as default11 } from "./components/LpShortcutsDialog.vue.js";
96
- import { _ as _66 } from "./chunks/LpSidebar-DUFlf6Uu.js";
97
- import { _ as _67 } from "./chunks/LpContextSwitcher-BPDSkKyA.js";
96
+ import { _ as _66 } from "./chunks/LpSidebar-DQtCYlT4.js";
97
+ import { _ as _67 } from "./chunks/LpContextSwitcher-COw6GHPW.js";
98
98
  import { _ as _68 } from "./chunks/LpSkeleton-leTl53V9.js";
99
- import { _ as _69 } from "./chunks/LpSlider-BCy5rjwK.js";
100
- import { _ as _70 } from "./chunks/LpRangeSlider-CkP9hYUC.js";
99
+ import { _ as _69 } from "./chunks/LpSlider-DUd4gXnw.js";
100
+ import { _ as _70 } from "./chunks/LpRangeSlider-DbaITHtC.js";
101
101
  import { _ as _71 } from "./chunks/LpVideoBackdrop-57i8RY8g.js";
102
102
  import { formatClipTime, isNativeLoop, planLoop, seamProgress, seamReached } from "./components/videoBackdrop.js";
103
103
  import { default as default12 } from "./components/LpVideoTrim.vue.js";
104
- import { _ as _72 } from "./chunks/LpVideoCompress-CPUxXh-c.js";
104
+ import { _ as _72 } from "./chunks/LpVideoCompress-CvxNdyjp.js";
105
105
  import { bitrateForHeight, canTranscodeVideo, estimateTranscodedBytes, probeVideo, transcodeVideo, transcodedName } from "./composables/videoTranscode.js";
106
- import { _ as _73 } from "./chunks/LpVideoPlayer-BbCjEQAx.js";
106
+ import { _ as _73 } from "./chunks/LpVideoPlayer-FMuxTAU8.js";
107
107
  import { useVideoMedia } from "./composables/useVideoMedia.js";
108
108
  import { dragEnd, normalizeRange as normalizeRange2, parseClipTime, setEnd } from "./components/videoTrim.js";
109
109
  import { _ as _74 } from "./chunks/LpSparkline-11ryFdPX.js";
110
- import { _ as _75 } from "./chunks/LpStat-eVz7iUfD.js";
110
+ import { _ as _75 } from "./chunks/LpStat-SyVb5JXm.js";
111
111
  import { _ as _76 } from "./chunks/LpStepper-DBNRA6Q2.js";
112
- import { _ as _77 } from "./chunks/LpSwitch-D7hmVsif.js";
112
+ import { _ as _77 } from "./chunks/LpSwitch-D-mcaA6C.js";
113
113
  import { default as default13 } from "./components/LpTable.vue.js";
114
114
  import { compareValues } from "./components/tableSort.js";
115
115
  import { filterRows, showOnly, shownValues } from "./components/tableFilter.js";
@@ -118,29 +118,29 @@ import { resolveRowMenu } from "./components/tableRowMenu.js";
118
118
  import { _ as _78 } from "./chunks/LpTableOfContents-CKkWEK6R.js";
119
119
  import { default as default14 } from "./components/LpTabs.vue.js";
120
120
  import { _ as _79 } from "./chunks/LpBottomNav-9AqvZlRW.js";
121
- import { _ as _80 } from "./chunks/LpTagsInput-D9uOSlvf.js";
121
+ import { _ as _80 } from "./chunks/LpTagsInput-DD8-xe3F.js";
122
122
  import { addTags, splitTags } from "./components/tags.js";
123
- import { _ as _81 } from "./chunks/LpTextarea-DwE-lQt4.js";
124
- import { _ as _82 } from "./chunks/LpThemeSwitcher-B3R3nNid.js";
123
+ import { _ as _81 } from "./chunks/LpTextarea-CQg-dVxN.js";
124
+ import { _ as _82 } from "./chunks/LpThemeSwitcher-B3c44xFH.js";
125
125
  import { _ as _83 } from "./chunks/LpTilt-B7KHX1zH.js";
126
- import { _ as _84 } from "./chunks/LpToaster-DOJn6Vey.js";
127
- import { _ as _85 } from "./chunks/LpTooltip-Bz_rrq5S.js";
128
- import { _ as _86 } from "./chunks/LpTour-DUI_hoPv.js";
126
+ import { _ as _84 } from "./chunks/LpToaster-Cdx1tnHB.js";
127
+ import { _ as _85 } from "./chunks/LpTooltip-BKde8Xjv.js";
128
+ import { _ as _86 } from "./chunks/LpTour-BGUKUxSZ.js";
129
129
  import { holeOf, openContextMenu, panelsAround } from "./components/tour.js";
130
- import { _ as _87 } from "./chunks/LpHintLayer-CUSRLtLu.js";
131
- import { _ as _88 } from "./chunks/LpHints-BF40CP4_.js";
130
+ import { _ as _87 } from "./chunks/LpHintLayer-nuMqfzvy.js";
131
+ import { _ as _88 } from "./chunks/LpHints-ByAd3a76.js";
132
132
  import { HINT_SIGNALS, contextMenuTip, createHintSystem, dropzoneTip, hintKey, hintSummary, hotkeyTip, localHintStorage, noteDropzone, noteHotkeyTarget, paletteTip, provideHintSystem, runningHintSystem, useHintSystem } from "./composables/useHintSystem.js";
133
133
  import { _ as _89 } from "./chunks/LpTooltipProvider-CftjV7Xc.js";
134
- import { _ as _90 } from "./chunks/LpTopologyCanvas-5RFMP4gR.js";
134
+ import { _ as _90 } from "./chunks/LpTopologyCanvas-CQ0l6A5h.js";
135
135
  import { clusterGraph, diffTopology, findPath, layeredLayout, neighborhood, topologyToSvg } from "./components/topologyGraph.js";
136
- import { _ as _91 } from "./chunks/LpUptimeBar-G7PfNJUH.js";
136
+ import { _ as _91 } from "./chunks/LpUptimeBar-Dt6SY_-m.js";
137
137
  import { addLeaf, addTab, countBlocks, countLeaves, deserializeLayout, makeLayout, moveLeaf, removeBlock, removeLeaf, reorderTab, resizeAt, serializeLayout, setActiveTab } from "./layout/tree.js";
138
138
  import { blockTitle, defineBlocks } from "./layout/registry.js";
139
139
  import { layoutController, useLayout } from "./layout/useLayout.js";
140
140
  import { useWorkspaces } from "./layout/useWorkspaces.js";
141
- import { _ as _92 } from "./chunks/LpWorkspaceSwitcher-bjkncjSl.js";
142
- import { _ as _93 } from "./chunks/LpInspector-CEko6-pS.js";
143
- import { _ as _94 } from "./chunks/LpWindow-Dp_0nNqg.js";
141
+ import { _ as _92 } from "./chunks/LpWorkspaceSwitcher-DCIiOQt_.js";
142
+ import { _ as _93 } from "./chunks/LpInspector-oTfkOdYd.js";
143
+ import { _ as _94 } from "./chunks/LpWindow-DsPeiDCZ.js";
144
144
  import { WINDOW_DOCKS, clampRect, dockAt, dockedRect, isWindowRect, resizeRect, snapRect, useWindowLayer } from "./composables/windowing.js";
145
145
  import { THEME_COOKIE, applyTheme, applyThemeWithTransition, bootstrapTheme, cacheSystemThemes, normalizeTheme, parseTheme, prefersDarkScheme, revealTransition, serializeTheme, themeEntries, themeFromCookie, themeToCssRule, themeToCssVars, useTheme } from "./theme/useTheme.js";
146
146
  import { GLASS_BACKDROP_ATTR, NO_BACKDROP_ATTR, detectBackdropFilter, isBrokenBackdropEngine, setGlassBackdrop } from "./theme/backdrop.js";
@@ -188,14 +188,14 @@ import { useZoomPan } from "./composables/useZoomPan.js";
188
188
  import { useToast } from "./composables/useToast.js";
189
189
  import { _ as _95 } from "./chunks/LpThemeProvider-XK6ZeWAE.js";
190
190
  import { _ as _96 } from "./chunks/LpFrame-Bv5Fphte.js";
191
- import { _ as _97 } from "./chunks/LpThemeStudio-COn2H76d.js";
191
+ import { _ as _97 } from "./chunks/LpThemeStudio-BPPctXgd.js";
192
192
  import { _ as _98 } from "./chunks/LpThemeStudioSection-B7bt8Iyg.js";
193
193
  import { isInternalHref, resolveLink } from "./components/link.js";
194
- import { _ as _99 } from "./chunks/LpRepeater-DLLcbQ6J.js";
194
+ import { _ as _99 } from "./chunks/LpRepeater-C0rns2xW.js";
195
195
  import { _ as _100 } from "./chunks/LpGauge-KZaQ_FDR.js";
196
196
  import { _ as _101 } from "./chunks/LpQuota-BaCq5YOQ.js";
197
197
  import { _ as _102 } from "./chunks/LpStatus-C6GqSHJj.js";
198
- import { _ as _103 } from "./chunks/LpRelativeTime-0zI-44ve.js";
198
+ import { _ as _103 } from "./chunks/LpRelativeTime-CN5bWD73.js";
199
199
  import { _ as _104 } from "./chunks/LpActivityLine-Ea-t5Vza.js";
200
200
  import { TONE_COLOR, TONE_SOFT, arcPath, capacityThresholds, meterFraction, toneAt } from "./components/meter.js";
201
201
  import { TONES, TONE_ALIASES, toneLook, toneOf } from "./components/tone.js";
@@ -203,7 +203,7 @@ import { formatAmount, quotaSegments, quotaState } from "./components/quota.js";
203
203
  import { compactNumber, decimalMark, formatBytes } from "./components/format.js";
204
204
  import { STATUS_LABELS, STATUS_LOOK } from "./components/status.js";
205
205
  import { formatRelativeTime } from "./components/relativeTime.js";
206
- import { _ as _105 } from "./chunks/LpPipeline-BHWmvOiv.js";
206
+ import { _ as _105 } from "./chunks/LpPipeline-DVcoSs--.js";
207
207
  import { _ as _106 } from "./chunks/LpStepMark-CPGVj1XG.js";
208
208
  import { childProgress, connectorFilled, currentStepIndex, isSettled, overallStatus, stepElapsed } from "./components/pipeline.js";
209
209
  import { _ as _107 } from "./chunks/LpLoader-Bf1yZwaU.js";
@@ -211,14 +211,14 @@ import { useLoadingGate } from "./composables/useLoadingGate.js";
211
211
  import { useNow } from "./composables/useNow.js";
212
212
  import { _ as _108 } from "./chunks/LpCountdown-DVl7vXI1.js";
213
213
  import { DEFAULT_MILESTONES, DEFAULT_UNIT_LABELS, ceilToSecond, crossedMilestone, formatElapsed, formatTime, msToNextSecond, splitTime, timeParts } from "./components/timeSpan.js";
214
- import { _ as _109 } from "./chunks/LpCopyButton-CxX682t4.js";
215
- import { _ as _110 } from "./chunks/LpSecretField-Au7ZQTtm.js";
216
- import { _ as _111 } from "./chunks/LpDataList-DCtF7krm.js";
217
- import { _ as _112 } from "./chunks/LpEditable-CeRAzYMv.js";
218
- import { _ as _113 } from "./chunks/LpTruncate-CynJhsEw.js";
219
- import { _ as _114 } from "./chunks/LpCodeDisplay-DsiE-Qy9.js";
214
+ import { _ as _109 } from "./chunks/LpCopyButton-BGzw95Xc.js";
215
+ import { _ as _110 } from "./chunks/LpSecretField-BwrZ4TfT.js";
216
+ import { _ as _111 } from "./chunks/LpDataList-B56Gu6Yt.js";
217
+ import { _ as _112 } from "./chunks/LpEditable-DfRUAGkA.js";
218
+ import { _ as _113 } from "./chunks/LpTruncate-C_C8eiIE.js";
219
+ import { _ as _114 } from "./chunks/LpCodeDisplay-DBi1YPLp.js";
220
220
  import { formatRemaining, groupCode, middleTruncate, normalizeCode } from "./components/fieldText.js";
221
- import { _ as _115 } from "./chunks/LpHoverCard-CHE9jAJG.js";
221
+ import { _ as _115 } from "./chunks/LpHoverCard-DYguY2AP.js";
222
222
  import { _ as _116 } from "./chunks/LpIdenticon-Dbbr4fvt.js";
223
223
  import { hashString, identicon, identiconRects, identiconSvg } from "./components/identicon.js";
224
224
  import { _ as _117 } from "./chunks/LpShaderBackdrop-wQygYb5h.js";
@@ -246,7 +246,7 @@ import { _ as _128 } from "./chunks/LpCommandScope-DRUvHiX7.js";
246
246
  import { createPaletteRegistry, mergePaletteCommands, usePaletteCommands, vPalette } from "./composables/usePaletteCommands.js";
247
247
  import { commandShortcuts, commandToHotkey, commandToMenuItem, commandToPalette, useCommands } from "./composables/useCommands.js";
248
248
  import { usePaletteTheme } from "./theme/palette.js";
249
- import { _ as _129 } from "./chunks/LpPaletteTheme-wiJtP5hV.js";
249
+ import { _ as _129 } from "./chunks/LpPaletteTheme-CLwO-SDf.js";
250
250
  const uk = {
251
251
  actionBar: { dismiss: "Закрити" },
252
252
  activityLine: { busy: "Завантаження" },
@@ -518,6 +518,7 @@ const uk = {
518
518
  running: "Виконується…",
519
519
  select: "вибрати",
520
520
  close: "закрити",
521
+ dismiss: "Закрити",
521
522
  back: "назад",
522
523
  searching: "Пошук…",
523
524
  searchFailed: "Пошук зараз недоступний.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leavepulse/ui",
3
- "version": "0.87.1",
3
+ "version": "0.89.1",
4
4
  "type": "module",
5
5
  "description": "LeavePulse token-driven Vue component kit.",
6
6
  "repository": {
@@ -32,6 +32,7 @@ import { useOutsideGuard, usePortalTarget } from "../composables/useView"
32
32
  import type { ContextMenuItemDef } from "./LpContextMenu.vue"
33
33
  import LpIcon from "./LpIcon.vue"
34
34
  import MenuShortcut from "./MenuShortcut.vue"
35
+ import { TOUCH_ROW } from "./dropdown"
35
36
 
36
37
  defineOptions({ name: "ContextMenuItems" })
37
38
 
@@ -71,7 +72,7 @@ const portalTo = usePortalTarget()
71
72
  const guardOutside = useOutsideGuard()
72
73
 
73
74
  const ITEM =
74
- "group/item flex cursor-pointer select-none items-center gap-2 rounded-inner px-2.5 py-1.5 text-sm outline-none transition-[background-color,color] duration-[var(--duration-fast)] data-[disabled]:pointer-events-none data-[disabled]:opacity-45 data-[highlighted]:bg-brand-soft"
75
+ "group/item flex cursor-pointer select-none items-center gap-2 rounded-inner px-2.5 py-1.5 text-sm outline-none transition-[background-color,color] duration-[var(--duration-fast)] data-[disabled]:pointer-events-none data-[disabled]:opacity-45 data-[highlighted]:bg-brand-soft " + TOUCH_ROW
75
76
  const ICON =
76
77
  "transition-transform duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] group-data-[highlighted]/item:translate-x-0.5"
77
78
  </script>
@@ -12,7 +12,7 @@ defineProps<{ label: string; inline?: boolean }>()
12
12
  <template>
13
13
  <button
14
14
  type="button"
15
- class="group flex shrink-0 items-center text-muted outline-none transition-colors duration-[var(--duration-fast)] hover:text-ink"
15
+ class="lp-tap group flex shrink-0 items-center text-muted outline-none transition-colors duration-[var(--duration-fast)] hover:text-ink"
16
16
  :class="inline ? undefined : 'rounded-inner p-1 focus-visible:ring-2 focus-visible:ring-ring'"
17
17
  :aria-label="label"
18
18
  >
@@ -120,7 +120,7 @@ const messageKey = () => [props.variant, props.title ?? "", slotText(slots.defau
120
120
  />
121
121
  </Transition>
122
122
  </span>
123
- <LpSwap :swap-key="messageKey()" class="min-w-0 flex-1">
123
+ <LpSwap :swap-key="messageKey()" class="min-w-0 flex-1 [overflow-wrap:anywhere]">
124
124
  <p v-if="title" class="font-semibold text-ink">{{ title }}</p>
125
125
  <div :class="['text-muted-strong', title ? 'mt-0.5' : '']">
126
126
  <slot />
@@ -40,7 +40,7 @@ import { computed, nextTick, ref, useId, watch, useAttrs } from "vue"
40
40
  import { useOwnField, mergeDescribedBy } from "../composables/useField"
41
41
  import { useInputFilter } from "../composables/useInputFilter"
42
42
  import { useLabels } from "../composables/useLpConfig"
43
- import { CLOSE_ICON, OPTION_ITEM, optionStagger, COMBOBOX_PANEL, POPOVER_PANEL } from "./dropdown"
43
+ import { CLOSE_ICON, OPTION_ITEM, optionStagger, COMBOBOX_FIT, COMBOBOX_PANEL, POPOVER_PANEL } from "./dropdown"
44
44
  import LpIcon from "./LpIcon.vue"
45
45
  import OptionContent from "./OptionContent.vue"
46
46
  import type { LpOptionBase, OptionSelection } from "./options"
@@ -335,7 +335,7 @@ usePaletteControl({ disabled: () => field.value.disabled, invalid: () => field.v
335
335
  :required="field.required || undefined"
336
336
  :aria-invalid="isInvalidState || undefined"
337
337
  :aria-describedby="describedBy"
338
- class="lp-autofill min-w-0 flex-1 self-stretch bg-transparent outline-none placeholder:text-muted"
338
+ class="lp-autofill lp-entry min-w-0 flex-1 self-stretch bg-transparent outline-none placeholder:text-muted"
339
339
  :class="showSelected && 'text-transparent placeholder:text-transparent'"
340
340
  @beforeinput="onBeforeInput"
341
341
  @paste="onPaste"
@@ -388,11 +388,11 @@ usePaletteControl({ disabled: () => field.value.disabled, invalid: () => field.v
388
388
  @interact-outside="guardOutside"
389
389
  @escape-key-down="guardOutside"
390
390
  v-bind="COMBOBOX_PANEL"
391
- :class="[POPOVER_PANEL, 'z-(--z-popover) max-h-72 w-(--reka-combobox-trigger-width) overflow-hidden']"
391
+ :class="[POPOVER_PANEL, 'z-(--z-popover) w-(--reka-combobox-trigger-width) overflow-hidden', COMBOBOX_FIT]"
392
392
  @open-auto-focus.prevent
393
393
  @mousedown.prevent
394
394
  >
395
- <ComboboxViewport class="max-h-72 overflow-y-auto p-1">
395
+ <ComboboxViewport class="max-h-72 min-h-0 flex-1 overflow-y-auto p-1">
396
396
  <div v-if="loading" class="px-3 py-4 text-center text-sm italic text-muted">
397
397
  {{ loadingText ?? labels.loading }}
398
398
  </div>