@leavepulse/ui 0.87.0 → 0.88.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) 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-ClBFQeTd.css → LpTable-BqZNpWgC.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.js +16 -13
  158. package/dist/components/LpTableFilter.vue.js +1 -1
  159. package/dist/components/LpTabs.vue.js +1 -1
  160. package/dist/components/LpTagsInput.vue.js +1 -1
  161. package/dist/components/LpTextarea.vue.js +1 -1
  162. package/dist/components/LpThemeStudio.vue.js +1 -1
  163. package/dist/components/LpThemeSwitcher.vue.js +1 -1
  164. package/dist/components/LpTimeField.vue.js +1 -1
  165. package/dist/components/LpToaster.vue.js +1 -1
  166. package/dist/components/LpTooltip.vue.d.ts +9 -0
  167. package/dist/components/LpTooltip.vue.js +1 -1
  168. package/dist/components/LpTopologyCanvas.vue.js +1 -1
  169. package/dist/components/LpTour.vue.js +1 -1
  170. package/dist/components/LpTruncate.vue.js +1 -1
  171. package/dist/components/LpUptimeBar.vue.js +1 -1
  172. package/dist/components/LpVideoCompress.vue.js +1 -1
  173. package/dist/components/LpVideoPlayer.vue.js +1 -1
  174. package/dist/components/LpVideoTrim.vue.js +4 -4
  175. package/dist/components/LpWindow.vue.js +1 -1
  176. package/dist/components/LpWorkspaceSwitcher.vue.js +1 -1
  177. package/dist/components/PickerField.vue.js +1 -1
  178. package/dist/components/RevealToggle.vue.js +1 -1
  179. package/dist/components/TourCard.vue.js +1 -1
  180. package/dist/components/VideoVolume.vue.js +1 -1
  181. package/dist/components/badge.d.ts +1 -1
  182. package/dist/components/badge.js +1 -1
  183. package/dist/components/dropdown.d.ts +14 -0
  184. package/dist/components/dropdown.js +7 -1
  185. package/dist/components/menuWhen.js +1 -1
  186. package/dist/components/modalDepth.d.ts +1 -0
  187. package/dist/components/modalDepth.js +2 -0
  188. package/dist/composables/useReveal.js +3 -3
  189. package/dist/composables/useTouchHold.d.ts +19 -0
  190. package/dist/composables/useTouchHold.js +60 -0
  191. package/dist/index.js +72 -71
  192. package/package.json +1 -1
  193. package/src/components/ContextMenuItems.vue +2 -1
  194. package/src/components/IconCloseButton.vue +1 -1
  195. package/src/components/LpAlert.vue +1 -1
  196. package/src/components/LpAutocomplete.vue +4 -4
  197. package/src/components/LpButton.vue +1 -1
  198. package/src/components/LpCheckbox.vue +1 -1
  199. package/src/components/LpCodeBlock.vue +2 -2
  200. package/src/components/LpColorPicker.vue +3 -3
  201. package/src/components/LpCommandPalette.vue +89 -7
  202. package/src/components/LpContextMenu.vue +2 -2
  203. package/src/components/LpDataList.vue +1 -1
  204. package/src/components/LpDrawer.vue +7 -4
  205. package/src/components/LpDropdownMenu.vue +2 -2
  206. package/src/components/LpDropzone.vue +2 -2
  207. package/src/components/LpEditable.vue +2 -2
  208. package/src/components/LpEmptyState.vue +1 -1
  209. package/src/components/LpFileTreeNode.vue +1 -1
  210. package/src/components/LpHintLayer.vue +2 -2
  211. package/src/components/LpHoverCard.vue +11 -80
  212. package/src/components/LpImageEditor.vue +1 -1
  213. package/src/components/LpInput.vue +1 -1
  214. package/src/components/LpLightbox.vue +20 -3
  215. package/src/components/LpModal.vue +4 -4
  216. package/src/components/LpModalNav.vue +2 -1
  217. package/src/components/LpNumberField.vue +1 -1
  218. package/src/components/LpPhoneInput.vue +5 -5
  219. package/src/components/LpPopover.vue +2 -2
  220. package/src/components/LpRadio.vue +1 -1
  221. package/src/components/LpRadioGroup.vue +1 -1
  222. package/src/components/LpRangeSlider.vue +1 -1
  223. package/src/components/LpSection.vue +9 -6
  224. package/src/components/LpSegmented.vue +1 -1
  225. package/src/components/LpSelect.vue +4 -4
  226. package/src/components/LpSlider.vue +1 -1
  227. package/src/components/LpStat.vue +1 -1
  228. package/src/components/LpSwitch.vue +1 -1
  229. package/src/components/LpTable.vue +6 -1
  230. package/src/components/LpTableFilter.vue +1 -1
  231. package/src/components/LpTagsInput.vue +2 -2
  232. package/src/components/LpTextarea.vue +1 -1
  233. package/src/components/LpThemeSwitcher.vue +2 -2
  234. package/src/components/LpTimeField.vue +1 -1
  235. package/src/components/LpToaster.vue +1 -1
  236. package/src/components/LpTooltip.vue +59 -5
  237. package/src/components/badge.ts +1 -1
  238. package/src/components/dropdown.ts +24 -0
  239. package/src/components/modalDepth.ts +6 -0
  240. package/src/composables/useReveal.ts +7 -4
  241. package/src/composables/useTouchHold.ts +92 -0
  242. package/src/locales/uk.ts +1 -0
  243. package/src/tokens/utilities.css +34 -0
@@ -7,7 +7,7 @@ import { useFieldNotice } from "../composables/useFieldNotice.js";
7
7
  import { useInputFilter } from "../composables/useInputFilter.js";
8
8
  import { useLabels } from "../composables/useLpConfig.js";
9
9
  import { matchCountryByValue, filterCountries, loadCountries, flagEmoji } from "../components/countries.js";
10
- import { COMBOBOX_PANEL, POPOVER_PANEL, OPTION_ITEM, optionStagger } from "../components/dropdown.js";
10
+ import { COMBOBOX_PANEL, POPOVER_PANEL, COMBOBOX_FIT, OPTION_ITEM, optionStagger } from "../components/dropdown.js";
11
11
  import { _ as _sfc_main$3 } from "./LpFieldNotice-DUPo1Yii.js";
12
12
  import { _ as _sfc_main$2 } from "./LpIcon-CxHFPwKt.js";
13
13
  import { loadPhoneLib, formatPhone, loadPhoneExamples, digitsBefore, caretAfterDigits, digitsOf } from "../components/phone.js";
@@ -253,7 +253,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
253
253
  onEscapeKeyDown: unref(guardOutside)
254
254
  }, unref(COMBOBOX_PANEL), {
255
255
  align: "start",
256
- class: [unref(POPOVER_PANEL), "z-(--z-popover) max-h-72 w-72 overflow-hidden"]
256
+ class: [unref(POPOVER_PANEL), "z-(--z-popover) w-72 max-w-[calc(100vw-1rem)] overflow-hidden", unref(COMBOBOX_FIT)]
257
257
  }), {
258
258
  default: withCtx(() => [
259
259
  createElementVNode("div", _hoisted_2, [
@@ -262,11 +262,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
262
262
  placeholder: __props.searchPlaceholder ?? unref(text).search,
263
263
  "aria-label": unref(text).searchLabel,
264
264
  "auto-focus": "",
265
- class: "h-(--size-control-sm) w-full rounded-inner border border-line bg-surface-soft px-2.5 text-sm text-ink outline-none placeholder:text-muted focus:border-brand",
265
+ class: "lp-entry h-(--size-control-sm) w-full rounded-inner border border-line bg-surface-soft px-2.5 text-sm text-ink outline-none placeholder:text-muted focus:border-brand",
266
266
  onInput: _cache[0] || (_cache[0] = ($event) => query.value = $event.target.value)
267
267
  }, null, 8, ["model-value", "placeholder", "aria-label"])
268
268
  ]),
269
- createVNode(unref(ComboboxViewport), { class: "max-h-56 overflow-y-auto p-1" }, {
269
+ createVNode(unref(ComboboxViewport), { class: "max-h-56 min-h-0 flex-1 overflow-y-auto p-1" }, {
270
270
  default: withCtx(() => [
271
271
  createVNode(unref(ComboboxEmpty), { class: "px-3 py-4 text-center text-sm italic text-muted" }, {
272
272
  default: withCtx(() => [
@@ -314,7 +314,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
314
314
  required: unref(field).required || void 0,
315
315
  "aria-invalid": unref(field).invalid || void 0,
316
316
  "aria-describedby": unref(mergeDescribedBy)(unref(rest)["aria-describedby"], unref(field).describedBy, unref(notice).message.value ? noticeId : void 0),
317
- class: "lp-autofill min-w-0 flex-1 self-stretch bg-transparent px-3 outline-none placeholder:text-muted",
317
+ class: "lp-autofill lp-entry min-w-0 flex-1 self-stretch bg-transparent px-3 outline-none placeholder:text-muted",
318
318
  onBeforeinput: onBeforeEdit,
319
319
  onPaste: _cache[2] || (_cache[2] = //@ts-ignore
320
320
  (...args) => unref(onPaste) && unref(onPaste)(...args)),
@@ -7,14 +7,14 @@ import { useReveal } from "../composables/useReveal.js";
7
7
  import { useTween, lerp, mixColor } from "../composables/useTween.js";
8
8
  import { resolveSlices, arcPath, calloutLabels, formatTick } from "../components/chart.js";
9
9
  import { _ as _sfc_main$9 } from "./LegendSwatch-BhRjrtzv.js";
10
- import { _ as _sfc_main$4 } from "./LpContextMenu-DYpDm6iI.js";
11
- import { _ as _sfc_main$3 } from "./LpEmptyState-DrHBR3yh.js";
10
+ import { _ as _sfc_main$4 } from "./LpContextMenu-DEFirphS.js";
11
+ import { _ as _sfc_main$3 } from "./LpEmptyState-DLOm07KH.js";
12
12
  import { _ as _sfc_main$6 } from "./LpNumberFlow-Vqj0tP7B.js";
13
13
  import { _ as _sfc_main$7 } from "./LpRollingText-B54Pje7P.js";
14
14
  import { _ as _sfc_main$8 } from "./LpShift-DAgS_d2x.js";
15
15
  import { _ as _sfc_main$2 } from "./LpSkeleton-leTl53V9.js";
16
16
  import { _ as _sfc_main$1 } from "./LpSwap-M7nFeW3C.js";
17
- import { _ as _sfc_main$5 } from "./LpTooltip-Bz_rrq5S.js";
17
+ import { _ as _sfc_main$5 } from "./LpTooltip-BKde8Xjv.js";
18
18
  import { useMergedAttrs } from "../composables/useMergedClass.js";
19
19
  import { useLabels } from "../composables/useLpConfig.js";
20
20
  import { isElement } from "../composables/realm.js";
@@ -10,7 +10,7 @@ import { _ as _sfc_main$5 } from "./LpIcon-CxHFPwKt.js";
10
10
  import { _ as _sfc_main$4 } from "./LpRollingText-B54Pje7P.js";
11
11
  import { _ as _sfc_main$3 } from "./LpShift-DAgS_d2x.js";
12
12
  import { _ as _sfc_main$1 } from "./LpStepMark-CPGVj1XG.js";
13
- import { _ as _sfc_main$7 } from "./LpTooltip-Bz_rrq5S.js";
13
+ import { _ as _sfc_main$7 } from "./LpTooltip-BKde8Xjv.js";
14
14
  import { _ as _sfc_main$2 } from "./StepConnector-37OgEOXA.js";
15
15
  import { stepKey, duplicateStepKeys, connectorFilled, currentStepIndex, stepElapsed, childProgress } from "../components/pipeline.js";
16
16
  import { DEFAULT_UNIT_LABELS, toEpoch, formatElapsed } from "../components/timeSpan.js";
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, useModel, computed, useAttrs, openBlock, createBlock, unref, withCtx, createVNode, renderSlot, mergeProps, mergeModels } from "vue";
2
2
  import { PopoverRoot, PopoverTrigger, PopoverPortal, PopoverContent } from "reka-ui";
3
3
  import { mergeClass } from "../composables/useMergedClass.js";
4
- import { POPOVER_PANEL } from "../components/dropdown.js";
4
+ import { PANEL_FIT, POPOVER_PANEL } from "../components/dropdown.js";
5
5
  import { usePortalTarget, useOutsideGuard } from "../composables/useView.js";
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
7
  ...{ inheritAttrs: false },
@@ -21,7 +21,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
21
21
  const props = __props;
22
22
  const open = useModel(__props, "open");
23
23
  const panel = computed(
24
- () => mergeClass(POPOVER_PANEL, "z-(--z-popover) w-64 rounded-card p-3 text-sm text-ink outline-none", props.panelClass)
24
+ () => mergeClass(POPOVER_PANEL, PANEL_FIT, "z-(--z-popover) w-64 rounded-card p-3 text-sm text-ink outline-none", props.panelClass)
25
25
  );
26
26
  const attrs = useAttrs();
27
27
  function namePanel(event) {
@@ -23,7 +23,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
23
23
  createVNode(unref(RadioGroupItem), {
24
24
  value: __props.value,
25
25
  disabled: __props.disabled,
26
- class: "flex size-[18px] shrink-0 items-center justify-center rounded-full border border-line-strong bg-surface-soft outline-none transition-[color,border-color,box-shadow,scale] duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] not-data-[state=checked]:group-hover/radio:border-brand active:scale-90 motion-reduce:active:scale-100 focus-visible:ring-2 focus-visible:ring-ring data-[state=checked]:border-brand disabled:cursor-not-allowed disabled:opacity-55"
26
+ class: "lp-tap flex size-[18px] shrink-0 items-center justify-center rounded-full border border-line-strong bg-surface-soft outline-none transition-[color,border-color,box-shadow,scale] duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] not-data-[state=checked]:group-hover/radio:border-brand active:scale-90 motion-reduce:active:scale-100 focus-visible:ring-2 focus-visible:ring-ring data-[state=checked]:border-brand disabled:cursor-not-allowed disabled:opacity-55"
27
27
  }, {
28
28
  default: withCtx(() => [
29
29
  createVNode(unref(RadioGroupIndicator), { class: "flex data-[state=checked]:animate-[indicator-in_140ms_var(--ease-emphasized)]" }, {
@@ -59,7 +59,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
59
59
  value: opt.value,
60
60
  disabled: opt.disabled,
61
61
  "aria-describedby": opt.description ? `${unref(uid)}-${i}-desc` : void 0,
62
- class: normalizeClass([opt.description ? "mt-px" : "", "flex size-[18px] shrink-0 items-center justify-center rounded-full border border-line-strong bg-surface-soft outline-none transition-[color,border-color,box-shadow,scale] duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] not-data-[state=checked]:group-hover/radio:border-brand active:scale-90 motion-reduce:active:scale-100 focus-visible:ring-2 focus-visible:ring-ring data-[state=checked]:border-brand disabled:cursor-not-allowed disabled:opacity-55"])
62
+ class: normalizeClass([opt.description ? "mt-px" : "", "lp-tap flex size-[18px] shrink-0 items-center justify-center rounded-full border border-line-strong bg-surface-soft outline-none transition-[color,border-color,box-shadow,scale] duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] not-data-[state=checked]:group-hover/radio:border-brand active:scale-90 motion-reduce:active:scale-100 focus-visible:ring-2 focus-visible:ring-ring data-[state=checked]:border-brand disabled:cursor-not-allowed disabled:opacity-55"])
63
63
  }, {
64
64
  default: withCtx(() => [
65
65
  createVNode(unref(RadioGroupIndicator), { class: "flex data-[state=checked]:animate-[indicator-in_140ms_var(--ease-emphasized)]" }, {
@@ -39,7 +39,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
39
39
  }
40
40
  const { field, wrapper, ownAttrs } = useOwnField(() => ({ error: props.error, disabled: props.disabled }));
41
41
  const { class: rootClass, attrs: rest } = useMergedAttrs(
42
- `relative flex h-5 w-full touch-none select-none items-center data-[disabled]:opacity-55 ${SLIDER_GLIDE}`,
42
+ `lp-tap relative flex h-5 w-full touch-none select-none items-center data-[disabled]:opacity-55 ${SLIDER_GLIDE}`,
43
43
  () => ownAttrs()
44
44
  );
45
45
  const { dragging, onPointerDown } = useSliderDrag();
@@ -3,7 +3,7 @@ import { useLocale } from "../composables/useLocale.js";
3
3
  import { useMergedAttrs } from "../composables/useMergedClass.js";
4
4
  import { useNow } from "../composables/useNow.js";
5
5
  import { _ as _sfc_main$2 } from "./LpRollingText-B54Pje7P.js";
6
- import { _ as _sfc_main$1 } from "./LpTooltip-Bz_rrq5S.js";
6
+ import { _ as _sfc_main$1 } from "./LpTooltip-BKde8Xjv.js";
7
7
  import { formatRelativeTime } from "../components/relativeTime.js";
8
8
  import { toEpoch } from "../components/timeSpan.js";
9
9
  const _hoisted_1 = ["datetime"];
@@ -5,7 +5,7 @@ import { useLabels } from "../composables/useLpConfig.js";
5
5
  import { useMergedAttrs } from "../composables/useMergedClass.js";
6
6
  import { useRepeater } from "../composables/useRepeater.js";
7
7
  import { usePrefersReducedMotion } from "../composables/useReducedMotion.js";
8
- import { _ as _sfc_main$2 } from "./LpButton-DSHioIfD.js";
8
+ import { _ as _sfc_main$2 } from "./LpButton-BvVoF-PO.js";
9
9
  import { _ as _sfc_main$3 } from "./LpIcon-CxHFPwKt.js";
10
10
  import { _ as _sfc_main$4 } from "./LpShift-DAgS_d2x.js";
11
11
  import '../assets/LpRepeater-C1Cw27hj.css';const _hoisted_1 = ["aria-label", "aria-describedby"];
@@ -7,13 +7,13 @@ import { useLabels } from "../composables/useLpConfig.js";
7
7
  import { useFieldControl } from "../composables/useField.js";
8
8
  import { mergeClass } from "../composables/useMergedClass.js";
9
9
  import { _ as _sfc_main$5 } from "./FieldWrapper-CVTPnpoG.js";
10
- import { _ as _sfc_main$3 } from "./LpButton-DSHioIfD.js";
11
- import { _ as _sfc_main$2 } from "./LpCopyButton-CxX682t4.js";
10
+ import { _ as _sfc_main$3 } from "./LpButton-BvVoF-PO.js";
11
+ import { _ as _sfc_main$2 } from "./LpCopyButton-BGzw95Xc.js";
12
12
  import { _ as _sfc_main$4 } from "./LpIcon-CxHFPwKt.js";
13
- import { _ as _sfc_main$1 } from "./LpPasswordInput-W9AZfzaL.js";
13
+ import { _ as _sfc_main$1 } from "./LpPasswordInput-LPVI7D3v.js";
14
14
  import { _ as _sfc_main$6 } from "./LpShift-DAgS_d2x.js";
15
- import { _ as _sfc_main$8 } from "./LpTooltip-Bz_rrq5S.js";
16
- import { _ as _sfc_main$7 } from "./RevealToggle-Bl1NcfxB.js";
15
+ import { _ as _sfc_main$8 } from "./LpTooltip-BKde8Xjv.js";
16
+ import { _ as _sfc_main$7 } from "./RevealToggle-BsYxY6Oz.js";
17
17
  const _hoisted_1 = ["id", "aria-label"];
18
18
  const _hoisted_2 = {
19
19
  key: "empty",
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, useSlots, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, createBlock, createCommentVNode, resolveDynamicComponent, withCtx, renderSlot, createTextVNode, toDisplayString } from "vue";
2
2
  import { tv } from "tailwind-variants";
3
3
  import { _ as _sfc_main$1 } from "./LpIcon-CxHFPwKt.js";
4
- const _hoisted_1 = { class: "min-w-0 flex-1 break-words" };
4
+ const _hoisted_1 = { class: "min-w-0 flex-1 [overflow-wrap:anywhere]" };
5
5
  const _hoisted_2 = { class: "flex flex-wrap items-center gap-2" };
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
7
  __name: "LpSection",
@@ -84,7 +84,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
84
84
  value: opt.value,
85
85
  disabled: opt.disabled,
86
86
  "aria-label": opt.ariaLabel ?? (opt.label ? void 0 : opt.value),
87
- class: normalizeClass(["relative inline-flex h-full items-center justify-center gap-1.5 rounded-inner font-medium outline-none transition-colors duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] focus-visible:ring-2 focus-visible:ring-ring data-[state=on]:text-ink data-[state=off]:text-muted data-[state=off]:hover:text-ink disabled:cursor-not-allowed disabled:opacity-55", [__props.block ? "flex-1" : "", __props.size === "lg" ? "px-4" : "px-3", hovered.value === opt.value ? "text-ink" : ""]]),
87
+ class: normalizeClass(["lp-tap relative inline-flex h-full items-center justify-center gap-1.5 rounded-inner font-medium outline-none transition-colors duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] focus-visible:ring-2 focus-visible:ring-ring data-[state=on]:text-ink data-[state=off]:text-muted data-[state=off]:hover:text-ink disabled:cursor-not-allowed disabled:opacity-55", [__props.block ? "flex-1" : "", __props.size === "lg" ? "px-4" : "px-3", hovered.value === opt.value ? "text-ink" : ""]]),
88
88
  onPointerenter: ($event) => onEnter(opt),
89
89
  onPointerup: releaseFocusAfterPointer
90
90
  }, {
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, computed, ref, useAttrs, useId, reactive, watch, nextTick, openBlock, createBlock, normalizeProps, guardReactiveProps, unref, withCtx, createVNode, mergeProps, normalizeClass, createElementVNode, toDisplayString, createElementBlock, TransitionGroup, Fragment, renderList, createCommentVNode, withModifiers, createTextVNode, normalizeStyle } from "vue";
2
- import { _ as _sfc_main$4 } from "./IconCloseButton-CmWOJAXG.js";
2
+ import { _ as _sfc_main$4 } from "./IconCloseButton-C_V7qngw.js";
3
3
  import { CONTROL_SIZE } from "../components/controlSize.js";
4
4
  import { usePaletteControl } from "../composables/usePaletteCommands.js";
5
5
  import { ComboboxRoot, ComboboxAnchor, ComboboxTrigger, ComboboxPortal, ComboboxContent, ComboboxInput, ComboboxViewport, ComboboxEmpty, ComboboxItem, ComboboxItemIndicator } from "reka-ui";
@@ -7,7 +7,7 @@ import { _ as _sfc_main$1 } from "./FieldWrapper-CVTPnpoG.js";
7
7
  import { useOwnField, useFieldBlur, mergeDescribedBy } from "../composables/useField.js";
8
8
  import { useLabels } from "../composables/useLpConfig.js";
9
9
  import { useMergedAttrs } from "../composables/useMergedClass.js";
10
- import { POPOVER_PANEL, OPTION_ITEM, optionStagger } from "../components/dropdown.js";
10
+ import { POPOVER_PANEL, COMBOBOX_FIT, OPTION_ITEM, optionStagger } from "../components/dropdown.js";
11
11
  import { _ as _sfc_main$2 } from "./LpIcon-CxHFPwKt.js";
12
12
  import { _ as _sfc_main$5 } from "./OptionContent-DZb5eKRV.js";
13
13
  import { _ as _sfc_main$3 } from "./LpRollingText-B54Pje7P.js";
@@ -446,7 +446,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
446
446
  onEscapeKeyDown: unref(guardOutside),
447
447
  position: "popper",
448
448
  "side-offset": 6,
449
- class: normalizeClass([unref(POPOVER_PANEL), "z-(--z-popover) max-h-72 w-(--reka-combobox-trigger-width) overflow-hidden"])
449
+ class: normalizeClass([unref(POPOVER_PANEL), "z-(--z-popover) w-(--reka-combobox-trigger-width) overflow-hidden", unref(COMBOBOX_FIT)])
450
450
  }, {
451
451
  default: withCtx(() => [
452
452
  __props.searchable || serverSide.value ? (openBlock(), createElementBlock("div", _hoisted_12, [
@@ -455,10 +455,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
455
455
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => query.value = $event),
456
456
  placeholder: searchPlaceholderText.value,
457
457
  "aria-label": unref(labels).searchLabel,
458
- class: "h-(--size-control-sm) w-full rounded-md border border-line bg-surface-soft px-2.5 text-sm text-ink outline-none placeholder:text-muted focus:border-brand"
458
+ class: "lp-entry h-(--size-control-sm) w-full rounded-md border border-line bg-surface-soft px-2.5 text-sm text-ink outline-none placeholder:text-muted focus:border-brand"
459
459
  }, null, 8, ["modelValue", "placeholder", "aria-label"])
460
460
  ])) : createCommentVNode("", true),
461
- createVNode(unref(ComboboxViewport), { class: "max-h-56 overflow-y-auto p-1" }, {
461
+ createVNode(unref(ComboboxViewport), { class: "max-h-56 min-h-0 flex-1 overflow-y-auto p-1" }, {
462
462
  default: withCtx(() => [
463
463
  __props.loading ? (openBlock(), createElementBlock("div", _hoisted_13, toDisplayString(loadingLabel.value), 1)) : (openBlock(), createBlock(unref(ComboboxEmpty), {
464
464
  key: 1,
@@ -4,11 +4,11 @@ import { useHotkeys, parseCombo } from "../composables/useHotkeys.js";
4
4
  import { startPointerDrag } from "../composables/pointerDrag.js";
5
5
  import { usePersisted } from "../composables/usePersisted.js";
6
6
  import { useLabels } from "../composables/useLpConfig.js";
7
- import { _ as _sfc_main$5 } from "./LpDrawer-C97k-3L2.js";
7
+ import { _ as _sfc_main$5 } from "./LpDrawer-iRHwJOGn.js";
8
8
  import { _ as _sfc_main$2 } from "./LpIcon-CxHFPwKt.js";
9
- import { _ as _sfc_main$3 } from "./LpInput-BU5IsOlE.js";
10
- import { _ as _sfc_main$1 } from "./LpTooltip-Bz_rrq5S.js";
11
- import { _ as _sfc_main$4 } from "./LpSidebarNav-C34YEZIR.js";
9
+ import { _ as _sfc_main$3 } from "./LpInput-DGMpxrcg.js";
10
+ import { _ as _sfc_main$1 } from "./LpTooltip-BKde8Xjv.js";
11
+ import { _ as _sfc_main$4 } from "./LpSidebarNav-CFcI7--7.js";
12
12
  const _hoisted_1 = ["data-compact", "aria-label"];
13
13
  const _hoisted_2 = {
14
14
  key: 0,
@@ -10,7 +10,7 @@ import '../assets/MenuShortcut-Cyub0frr.css';import '../assets/LpKeys-5ijsXX-M.c
10
10
  /* empty css */
11
11
  import { _ as _sfc_main$2 } from "./LpScrollArea-CqvwfZs2.js";
12
12
  import { _ as _sfc_main$1 } from "./LpSkeleton-leTl53V9.js";
13
- import { _ as _sfc_main$3 } from "./LpSidebarRow-BeEGgsZi.js";
13
+ import { _ as _sfc_main$3 } from "./LpSidebarRow-C5jXpcRL.js";
14
14
  import { waiting } from "../components/sidebar.js";
15
15
  import { useMergedAttrs } from "../composables/useMergedClass.js";
16
16
  const _hoisted_1 = {
@@ -5,8 +5,8 @@ import { useLocale } from "../composables/useLocale.js";
5
5
  import { usePillTransition } from "../composables/usePillTransition.js";
6
6
  import { useLinkComponent } from "../composables/useLpConfig.js";
7
7
  import { _ as _sfc_main$2 } from "./LpBadge-Bh5roBr_.js";
8
- import { _ as _sfc_main$4 } from "./LpContextMenu-DYpDm6iI.js";
9
- import { _ as _sfc_main$1 } from "./LpHoverCard-CHE9jAJG.js";
8
+ import { _ as _sfc_main$4 } from "./LpContextMenu-DEFirphS.js";
9
+ import { _ as _sfc_main$1 } from "./LpHoverCard-DYguY2AP.js";
10
10
  import { _ as _sfc_main$3 } from "./LpIcon-CxHFPwKt.js";
11
11
  import LpKeys from "../components/LpKeys.vue.js";
12
12
  import { _ as _sfc_main$5 } from "./LpNumberFlow-Vqj0tP7B.js";
@@ -32,7 +32,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
32
32
  }
33
33
  const { field, wrapper, ownAttrs } = useOwnField(() => ({ error: props.error, disabled: props.disabled }));
34
34
  const { class: rootClass, attrs: rest } = useMergedAttrs(
35
- `relative flex h-5 w-full touch-none select-none items-center data-[disabled]:opacity-55 ${SLIDER_GLIDE}`,
35
+ `lp-tap relative flex h-5 w-full touch-none select-none items-center data-[disabled]:opacity-55 ${SLIDER_GLIDE}`,
36
36
  () => ownAttrs()
37
37
  );
38
38
  const { dragging, onPointerDown } = useSliderDrag();
@@ -7,7 +7,7 @@ import { useFitScale } from "../composables/useFitScale.js";
7
7
  import { useMergedAttrs } from "../composables/useMergedClass.js";
8
8
  import { TONES, toneOf } from "../components/tone.js";
9
9
  const _hoisted_1 = { class: "flex items-center gap-2" };
10
- const _hoisted_2 = { class: "text-[11px] font-semibold uppercase tracking-[0.08em] text-muted" };
10
+ const _hoisted_2 = { class: "min-w-0 text-[11px] font-semibold uppercase tracking-[0.08em] text-muted [overflow-wrap:anywhere]" };
11
11
  const _hoisted_3 = { key: 1 };
12
12
  const _hoisted_4 = ["title"];
13
13
  const _hoisted_5 = { key: "loading" };
@@ -35,7 +35,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
35
35
  const { pending, set } = useOptimisticToggle(() => props.action, emit);
36
36
  const slots = useSlots();
37
37
  const labelled = computed(() => Boolean(props.label || props.description || slots.default));
38
- const TRACK = "group/switch inline-flex h-5 w-9 shrink-0 items-center rounded-pill border border-line bg-surface-soft px-0.5 outline-none transition-colors duration-[var(--duration-fast)] focus-visible:ring-2 focus-visible:ring-ring data-[state=checked]:border-transparent data-[state=checked]:bg-brand disabled:cursor-not-allowed disabled:opacity-55";
38
+ const TRACK = "lp-tap group/switch inline-flex h-5 w-9 shrink-0 items-center rounded-pill border border-line bg-surface-soft px-0.5 outline-none transition-colors duration-[var(--duration-fast)] focus-visible:ring-2 focus-visible:ring-ring data-[state=checked]:border-transparent data-[state=checked]:bg-brand disabled:cursor-not-allowed disabled:opacity-55";
39
39
  const THUMB = "h-3.5 w-3.5 rounded-full bg-ink shadow transition-[translate,width,background-color] duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] group-active/switch:w-5 group-data-[state=checked]/switch:translate-x-4 group-data-[state=checked]/switch:bg-ink-inverse group-data-[state=checked]/switch:group-active/switch:translate-x-2.5 motion-reduce:group-active/switch:w-3.5";
40
40
  const { class: rootClass, attrs: rest } = useMergedAttrs(() => {
41
41
  if (!labelled.value) return TRACK;
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, ref, computed, openBlock, createElementBlock, createBlock, createCommentVNode, createElementVNode, Fragment, unref, normalizeClass, toDisplayString, createVNode, withCtx, renderList } from "vue";
2
- import { _ as _sfc_main$3 } from "./LpCheckbox-P7tEw8GO.js";
3
- import { _ as _sfc_main$1 } from "./LpInput-BU5IsOlE.js";
2
+ import { _ as _sfc_main$3 } from "./LpCheckbox-C9VnPIQf.js";
3
+ import { _ as _sfc_main$1 } from "./LpInput-DGMpxrcg.js";
4
4
  import { _ as _sfc_main$2 } from "./LpShift-DAgS_d2x.js";
5
5
  import { usePaintSelect } from "../composables/usePaintSelect.js";
6
6
  import { matchesQuery, onlyValues, unhideValues, hideAllValues, invertHidden } from "../components/tableFilter.js";
@@ -140,7 +140,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
140
140
  option.count !== void 0 ? (openBlock(), createElementBlock("span", _hoisted_9, toDisplayString(option.count), 1)) : createCommentVNode("", true),
141
141
  createElementVNode("button", {
142
142
  type: "button",
143
- class: "rounded-control px-1.5 py-0.5 text-xs font-medium text-brand opacity-0 outline-none transition-opacity duration-fast group-hover/opt:opacity-100 hover:bg-brand-soft focus-visible:opacity-100 focus-visible:ring-2 focus-visible:ring-ring",
143
+ class: "rounded-control px-1.5 py-0.5 text-xs font-medium text-brand opacity-0 outline-none transition-opacity duration-fast group-hover/opt:opacity-100 [@media(hover:none)]:opacity-100 hover:bg-brand-soft focus-visible:opacity-100 focus-visible:ring-2 focus-visible:ring-ring",
144
144
  onClick: ($event) => set(unref(onlyValues)(values.value, [option.value]))
145
145
  }, toDisplayString(__props.labels.only), 9, _hoisted_10)
146
146
  ], 8, _hoisted_7);
@@ -395,7 +395,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
395
395
  "aria-expanded": __props.options ? listOpen.value : void 0,
396
396
  "aria-controls": __props.options ? listId : void 0,
397
397
  "aria-activedescendant": listOpen.value && activeIndex.value >= 0 ? optionId(activeIndex.value) : void 0,
398
- class: "min-w-24 flex-1 bg-transparent px-1 outline-none placeholder:text-muted",
398
+ class: "lp-entry min-w-24 flex-1 bg-transparent px-1 outline-none placeholder:text-muted",
399
399
  onFocus,
400
400
  onKeydown,
401
401
  onBeforeinput: onBeforeInput,
@@ -433,7 +433,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
433
433
  align: "start",
434
434
  "side-offset": 6,
435
435
  "collision-padding": 8,
436
- class: normalizeClass([unref(POPOVER_PANEL), "z-(--z-popover) max-h-72 w-(--reka-popper-anchor-width) overflow-y-auto p-1 outline-none"]),
436
+ class: normalizeClass([unref(POPOVER_PANEL), "z-(--z-popover) max-h-[min(18rem,var(--reka-popper-available-height,18rem))] w-(--reka-popper-anchor-width) overflow-y-auto p-1 outline-none"]),
437
437
  onOpenAutoFocus: _cache[1] || (_cache[1] = withModifiers(() => {
438
438
  }, ["prevent"])),
439
439
  onCloseAutoFocus: _cache[2] || (_cache[2] = withModifiers(() => {
@@ -60,7 +60,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
60
60
  const textareaClass = computed(
61
61
  () => mergeClass(
62
62
  props.autosize ? "w-full resize-none" : "w-full resize-y",
63
- "rounded-control border bg-surface-soft px-3 py-2 text-sm text-ink outline-none transition-colors duration-[var(--duration-fast)] placeholder:text-muted focus:border-brand focus:ring-2 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-55",
63
+ "lp-entry rounded-control border bg-surface-soft px-3 py-2 text-sm text-ink outline-none transition-colors duration-[var(--duration-fast)] placeholder:text-muted focus:border-brand focus:ring-2 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-55",
64
64
  field.value.invalid ? "border-danger focus:border-danger focus:ring-danger-soft" : "border-line",
65
65
  hasField.value ? "" : attrs.class
66
66
  )
@@ -2,11 +2,11 @@ import { defineComponent, computed, ref, openBlock, createElementBlock, unref, c
2
2
  import { usePaletteTheme } from "../theme/palette.js";
3
3
  import { useLabels } from "../composables/useLpConfig.js";
4
4
  import { useThemeStudio, STUDIO_BRANDS, STUDIO_SYSTEM } from "../theme/studio.js";
5
- import { _ as _sfc_main$1 } from "./LpButton-DSHioIfD.js";
6
- import { _ as _sfc_main$7 } from "./LpCodeBlock-BNThgUdQ.js";
7
- import { _ as _sfc_main$4 } from "./LpColorPicker-EXpwcX-t.js";
5
+ import { _ as _sfc_main$1 } from "./LpButton-BvVoF-PO.js";
6
+ import { _ as _sfc_main$7 } from "./LpCodeBlock-BgWcg2mk.js";
7
+ import { _ as _sfc_main$4 } from "./LpColorPicker-KGMG8QEh.js";
8
8
  import { _ as _sfc_main$2 } from "./LpIcon-CxHFPwKt.js";
9
- import { _ as _sfc_main$5 } from "./LpSegmented-DD8MPj4j.js";
9
+ import { _ as _sfc_main$5 } from "./LpSegmented-DzFYP0ZF.js";
10
10
  import { _ as _sfc_main$6 } from "./LpDisclosure-D4JZ-o8K.js";
11
11
  import { _ as _sfc_main$8 } from "./LpThemeProvider-XK6ZeWAE.js";
12
12
  import { _ as _sfc_main$3 } from "./LpThemeStudioSection-B7bt8Iyg.js";
@@ -6,12 +6,12 @@ import { usePortalTarget, useOutsideGuard } from "../composables/useView.js";
6
6
  import { presets } from "../theme/presets.js";
7
7
  import { useThemeStudio, STUDIO_SYSTEM } from "../theme/studio.js";
8
8
  import { useTheme } from "../theme/useTheme.js";
9
- import { POPOVER_PANEL } from "../components/dropdown.js";
10
- import { _ as _sfc_main$1 } from "./LpContextMenu-DYpDm6iI.js";
9
+ import { POPOVER_PANEL, PANEL_FIT } from "../components/dropdown.js";
10
+ import { _ as _sfc_main$1 } from "./LpContextMenu-DEFirphS.js";
11
11
  import { _ as _sfc_main$2 } from "./LpIcon-CxHFPwKt.js";
12
12
  import { _ as _sfc_main$4 } from "./LpRollingText-B54Pje7P.js";
13
13
  import { _ as _sfc_main$3 } from "./LpShift-DAgS_d2x.js";
14
- import { _ as _sfc_main$5 } from "./LpThemeStudio-COn2H76d.js";
14
+ import { _ as _sfc_main$5 } from "./LpThemeStudio-BPPctXgd.js";
15
15
  const _hoisted_1 = ["aria-label", "title"];
16
16
  const _hoisted_2 = {
17
17
  key: 1,
@@ -248,7 +248,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
248
248
  align: "end",
249
249
  "side-offset": 6,
250
250
  "aria-label": unref(text).studio,
251
- class: normalizeClass([unref(POPOVER_PANEL), "z-(--z-popover) w-96 max-w-[calc(100vw-24px)] rounded-card p-3 text-sm text-ink outline-none"]),
251
+ class: normalizeClass([unref(POPOVER_PANEL), unref(PANEL_FIT), "z-(--z-popover) w-96 rounded-card p-3 text-sm text-ink outline-none"]),
252
252
  "data-lp-glide-position": "",
253
253
  onInteractOutside: keepForTrigger,
254
254
  onEscapeKeyDown: unref(guardOutside)
@@ -48,7 +48,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
48
48
  }));
49
49
  const shellSize = CONTROL_SIZE;
50
50
  const { class: rootClass, attrs: rest } = useMergedAttrs(() => [
51
- "flex w-full items-center gap-0.5 rounded-control border bg-surface-soft px-3 text-ink transition-colors duration-[var(--duration-fast)] focus-within:ring-2 focus-within:ring-ring data-[disabled]:cursor-not-allowed data-[disabled]:opacity-55",
51
+ "lp-entry flex w-full items-center gap-0.5 rounded-control border bg-surface-soft px-3 text-ink transition-colors duration-[var(--duration-fast)] focus-within:ring-2 focus-within:ring-ring data-[disabled]:cursor-not-allowed data-[disabled]:opacity-55",
52
52
  shellSize[props.size],
53
53
  field.value.invalid ? "border-danger focus-within:ring-danger-soft" : "border-line focus-within:border-brand"
54
54
  ].join(" "), () => ownAttrs());
@@ -4,7 +4,7 @@ import { prefersReducedMotion } from "../composables/easing.js";
4
4
  import { useLabels } from "../composables/useLpConfig.js";
5
5
  import { useToast } from "../composables/useToast.js";
6
6
  import { CLOSE_ICON } from "../components/dropdown.js";
7
- import { _ as _sfc_main$2 } from "./LpCopyButton-CxX682t4.js";
7
+ import { _ as _sfc_main$2 } from "./LpCopyButton-BGzw95Xc.js";
8
8
  import { _ as _sfc_main$1 } from "./LpIcon-CxHFPwKt.js";
9
9
  import { toneLook } from "../components/tone.js";
10
10
  import { useView, viewDocument, usePortalTarget, viewWindow } from "../composables/useView.js";
@@ -247,7 +247,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
247
247
  (openBlock(), createBlock(Teleport, { to: unref(portalTo) }, [
248
248
  createVNode(unref(ToastViewport), {
249
249
  "data-lp-toasts": unref(viewportId),
250
- class: "fixed bottom-0 right-0 z-(--z-toast) flex w-[min(92vw,22rem)] flex-col gap-2 p-4 outline-none"
250
+ class: "fixed bottom-0 right-0 z-(--z-toast) flex w-[min(92vw,22rem)] flex-col gap-2 p-4 pr-[max(1rem,env(safe-area-inset-right))] pb-[max(1rem,env(safe-area-inset-bottom))] outline-none"
251
251
  }, null, 8, ["data-lp-toasts"])
252
252
  ], 8, ["to"]))
253
253
  ]),
@@ -1,11 +1,13 @@
1
- import { defineComponent, ref, watch, onBeforeUnmount, openBlock, createBlock, resolveDynamicComponent, unref, normalizeProps, guardReactiveProps, withCtx, createVNode, mergeProps, renderSlot, normalizeStyle, normalizeClass, createElementVNode, createTextVNode, toDisplayString } from "vue";
1
+ import { defineComponent, ref, watch, onBeforeUnmount, useAttrs, computed, mergeProps, openBlock, createBlock, resolveDynamicComponent, unref, normalizeProps, guardReactiveProps, withCtx, createVNode, renderSlot, normalizeStyle, normalizeClass, createElementVNode, createTextVNode, toDisplayString } from "vue";
2
2
  import { clamp } from "../composables/clamp.js";
3
3
  import { injectTooltipProviderContext, TooltipProvider, TooltipRoot, TooltipTrigger, TooltipPortal, TooltipContent } from "reka-ui";
4
4
  import { springStep, springSettled } from "../composables/usePillTransition.js";
5
5
  import { PANEL_SURFACE, TOOLTIP_ANIM } from "../components/dropdown.js";
6
+ import { useTouchHold } from "../composables/useTouchHold.js";
6
7
  import { prefersReducedMotion } from "../composables/easing.js";
7
8
  import { useView, viewWindow, usePortalTarget, useOutsideGuard } from "../composables/useView.js";
8
- import '../assets/LpTooltip-B61SYd4K.css';const EDGE = 8;
9
+ import '../assets/LpTooltip-B61SYd4K.css';const HOLD_MS = 450;
10
+ const EDGE = 8;
9
11
  const _sfc_main = /* @__PURE__ */ defineComponent({
10
12
  ...{ inheritAttrs: false },
11
13
  __name: "LpTooltip",
@@ -17,7 +19,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
17
19
  delay: {},
18
20
  showOnPointerFocus: { type: Boolean },
19
21
  followCursor: { type: Boolean },
20
- disabled: { type: Boolean }
22
+ disabled: { type: Boolean },
23
+ touch: { default: "hold" }
21
24
  },
22
25
  setup(__props) {
23
26
  const props = __props;
@@ -99,7 +102,23 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
99
102
  }
100
103
  const open = ref(false);
101
104
  const wanted = ref(false);
105
+ const heldOpen = ref(false);
106
+ const hold = useTouchHold({
107
+ enabled: () => props.touch === "hold" && !props.followCursor && !props.disabled,
108
+ delay: () => HOLD_MS,
109
+ onHold: () => {
110
+ heldOpen.value = true;
111
+ wanted.value = true;
112
+ open.value = true;
113
+ }
114
+ });
115
+ function release() {
116
+ heldOpen.value = false;
117
+ wanted.value = false;
118
+ open.value = false;
119
+ }
102
120
  const onOpenChange = (next) => {
121
+ if (!next && heldOpen.value) return;
103
122
  wanted.value = next;
104
123
  open.value = next && !props.disabled;
105
124
  if (!open.value || !props.followCursor) return;
@@ -108,8 +127,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
108
127
  watch(
109
128
  () => props.disabled,
110
129
  (off) => {
111
- if (off) open.value = false;
112
- else if (wanted.value) open.value = true;
130
+ if (off) {
131
+ hold.cancel();
132
+ heldOpen.value = false;
133
+ open.value = false;
134
+ } else if (wanted.value) open.value = true;
113
135
  }
114
136
  );
115
137
  const view = useView();
@@ -125,9 +147,22 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
125
147
  onCleanup(() => win.removeEventListener("resize", follow));
126
148
  }
127
149
  );
150
+ watch(heldOpen, (held, _, onCleanup) => {
151
+ if (!held) return;
152
+ const win = viewWindow(view.value);
153
+ const onKey = (event) => event.key === "Escape" && release();
154
+ win.addEventListener("pointerdown", release, true);
155
+ win.addEventListener("keydown", onKey, true);
156
+ onCleanup(() => {
157
+ win.removeEventListener("pointerdown", release, true);
158
+ win.removeEventListener("keydown", onKey, true);
159
+ });
160
+ });
128
161
  onBeforeUnmount(stopSpring);
129
162
  const portalTo = usePortalTarget();
130
163
  const guardOutside = useOutsideGuard();
164
+ const attrs = useAttrs();
165
+ const triggerAttrs = computed(() => mergeProps(attrs, hold.handlers));
131
166
  return (_ctx, _cache) => {
132
167
  return openBlock(), createBlock(resolveDynamicComponent(unref(shared) ? PassThrough : unref(TooltipProvider)), normalizeProps(guardReactiveProps(unref(shared) ? {} : { delayDuration: __props.delay ?? 200 })), {
133
168
  default: withCtx(() => [
@@ -140,15 +175,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
140
175
  "onUpdate:open": onOpenChange
141
176
  }, {
142
177
  default: withCtx(() => [
143
- createVNode(unref(TooltipTrigger), mergeProps({ "as-child": "" }, _ctx.$attrs, {
178
+ createVNode(unref(TooltipTrigger), mergeProps({ "as-child": "" }, triggerAttrs.value, {
144
179
  "aria-label": __props.label ? __props.content : void 0,
180
+ class: __props.touch === "hold" && !__props.followCursor ? "[-webkit-touch-callout:none]" : void 0,
145
181
  onPointermove: onPointerMove
146
182
  }), {
147
183
  default: withCtx(() => [
148
184
  renderSlot(_ctx.$slots, "default")
149
185
  ]),
150
186
  _: 3
151
- }, 16, ["aria-label"]),
187
+ }, 16, ["aria-label", "class"]),
152
188
  createVNode(unref(TooltipPortal), { to: unref(portalTo) }, {
153
189
  default: withCtx(() => [
154
190
  createVNode(unref(TooltipContent), {
@@ -8,13 +8,13 @@ import { useLabels } from "../composables/useLpConfig.js";
8
8
  import { useResizeObserver } from "../composables/useResizeObserver.js";
9
9
  import { nodeWindow, isHTMLElement } from "../composables/realm.js";
10
10
  import { backgroundOf, resolveCssColor, svgToPng } from "../components/exportData.js";
11
- import { _ as _sfc_main$6 } from "./LpButton-DSHioIfD.js";
11
+ import { _ as _sfc_main$6 } from "./LpButton-BvVoF-PO.js";
12
12
  import { _ as _sfc_main$7 } from "./LpIcon-CxHFPwKt.js";
13
13
  import { _ as _sfc_main$3 } from "./LpInfraNode-BYiMFDnA.js";
14
- import { _ as _sfc_main$5 } from "./LpInput-BU5IsOlE.js";
14
+ import { _ as _sfc_main$5 } from "./LpInput-DGMpxrcg.js";
15
15
  import { _ as _sfc_main$1 } from "./LpLaneNode-Bqcdm8Rf.js";
16
16
  import { _ as _sfc_main$2 } from "./LpServiceNode-Cln2ntdw.js";
17
- import { _ as _sfc_main$8 } from "./LpSlider-BCy5rjwK.js";
17
+ import { _ as _sfc_main$8 } from "./LpSlider-DUd4gXnw.js";
18
18
  import { _ as _sfc_main$4 } from "./LpWaypointEdge-D8yHlQiw.js";
19
19
  import { diffTopology, detailAtZoom, collapseChildren, clusterGraph, findNodes, findPath, neighborhood, groupBoxes, nodeName, frameSize, edgeLabelText, nearestInDirection, absolutePositions, layeredLayout, topologyToSvg } from "../components/topologyGraph.js";
20
20
  const _hoisted_1 = {
@@ -8,7 +8,7 @@ import { useMediaQuery } from "../composables/useMediaQuery.js";
8
8
  import { useView, usePortalTarget, viewDocument, viewWindow } from "../composables/useView.js";
9
9
  import { scrollToElement } from "../composables/scroll.js";
10
10
  import { PANEL_SURFACE } from "../components/dropdown.js";
11
- import { _ as _sfc_main$1 } from "./TourCard-BovXtMbO.js";
11
+ import { _ as _sfc_main$1 } from "./TourCard-yrLqv4Oz.js";
12
12
  import { holeOf, panelsAround, holeClip } from "../components/tour.js";
13
13
  import { isElement } from "../composables/realm.js";
14
14
  const _hoisted_1 = ["aria-label"];
@@ -2,8 +2,8 @@ import { defineComponent, ref, onMounted, watch, nextTick, computed, openBlock,
2
2
  import { nodeWindow } from "../composables/realm.js";
3
3
  import { useMergedAttrs } from "../composables/useMergedClass.js";
4
4
  import { useResizeObserver } from "../composables/useResizeObserver.js";
5
- import { _ as _sfc_main$2 } from "./LpCopyButton-CxX682t4.js";
6
- import { _ as _sfc_main$1 } from "./LpTooltip-Bz_rrq5S.js";
5
+ import { _ as _sfc_main$2 } from "./LpCopyButton-BGzw95Xc.js";
6
+ import { _ as _sfc_main$1 } from "./LpTooltip-BKde8Xjv.js";
7
7
  import { middleTruncate } from "../components/fieldText.js";
8
8
  const _hoisted_1 = ["tabindex"];
9
9
  const _hoisted_2 = { "aria-hidden": "true" };
@@ -4,7 +4,7 @@ import { _ as _sfc_main$5 } from "./LpRollingText-B54Pje7P.js";
4
4
  import { _ as _sfc_main$4 } from "./LpShift-DAgS_d2x.js";
5
5
  import { _ as _sfc_main$2 } from "./LpSkeleton-leTl53V9.js";
6
6
  import { _ as _sfc_main$1 } from "./LpSwap-M7nFeW3C.js";
7
- import { _ as _sfc_main$3 } from "./LpTooltip-Bz_rrq5S.js";
7
+ import { _ as _sfc_main$3 } from "./LpTooltip-BKde8Xjv.js";
8
8
  import { TONES } from "../components/tone.js";
9
9
  import { useMergedAttrs } from "../composables/useMergedClass.js";
10
10
  import { useLabels } from "../composables/useLpConfig.js";
@@ -3,10 +3,10 @@ import { useLocale } from "../composables/useLocale.js";
3
3
  import { useLabels } from "../composables/useLpConfig.js";
4
4
  import { canTranscodeVideo, estimateTranscodedBytes, clipLength, probeVideo, transcodeVideo } from "../composables/videoTranscode.js";
5
5
  import { formatBytes } from "../components/format.js";
6
- import { _ as _sfc_main$4 } from "./LpButton-DSHioIfD.js";
6
+ import { _ as _sfc_main$4 } from "./LpButton-BvVoF-PO.js";
7
7
  import { _ as _sfc_main$2 } from "./LpCollapse-DrAw5DBZ.js";
8
8
  import { _ as _sfc_main$3 } from "./LpProgress-D_MSjowb.js";
9
- import { _ as _sfc_main$1 } from "./LpSegmented-DD8MPj4j.js";
9
+ import { _ as _sfc_main$1 } from "./LpSegmented-DzFYP0ZF.js";
10
10
  import LpVideoTrim from "../components/LpVideoTrim.vue.js";
11
11
  const _hoisted_1 = {
12
12
  class: "flex flex-col gap-4",