@leavepulse/ui 0.87.1 → 0.88.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/dist/assets/{LpCommandPalette-DCZB4EAf.css → LpCommandPalette-CO_5TFOQ.css} +38 -19
  2. package/dist/assets/{LpDropzone-CfL3Vrx4.css → LpDropzone-CVGUQqgY.css} +10 -10
  3. package/dist/assets/{LpImageEditor-y3B-aW3H.css → LpImageEditor-D_ECuegW.css} +6 -6
  4. package/dist/chunks/{ContextMenuItems-D0jObgzN.js → ContextMenuItems-LujPZSWM.js} +2 -1
  5. package/dist/chunks/{DropzoneLinkField-DhwYRnvd.js → DropzoneLinkField-Ckuh8zFC.js} +2 -2
  6. package/dist/chunks/{IconCloseButton-CmWOJAXG.js → IconCloseButton-C_V7qngw.js} +1 -1
  7. package/dist/chunks/{LpActionBar-Cx_MSZl9.js → LpActionBar-43WHmTsM.js} +1 -1
  8. package/dist/chunks/{LpAddressInput-CfqQR5jE.js → LpAddressInput-BCqR0zmv.js} +5 -5
  9. package/dist/chunks/{LpAlert-CYtbpRYW.js → LpAlert-Q0h7Gucu.js} +1 -1
  10. package/dist/chunks/{LpAppShell-BQG98odS.js → LpAppShell-BWaVRsDB.js} +3 -3
  11. package/dist/chunks/{LpAutocomplete-VNID5zdy.js → LpAutocomplete-YPxAPHEo.js} +5 -5
  12. package/dist/chunks/{LpButton-DSHioIfD.js → LpButton-BvVoF-PO.js} +1 -1
  13. package/dist/chunks/{LpCheckbox-P7tEw8GO.js → LpCheckbox-C9VnPIQf.js} +1 -1
  14. package/dist/chunks/{LpCodeBlock-BNThgUdQ.js → LpCodeBlock-BgWcg2mk.js} +3 -3
  15. package/dist/chunks/{LpCodeDisplay-DsiE-Qy9.js → LpCodeDisplay-DBi1YPLp.js} +3 -3
  16. package/dist/chunks/{LpColorPicker-EXpwcX-t.js → LpColorPicker-KGMG8QEh.js} +4 -4
  17. package/dist/chunks/{LpConfirmDialog-DPiPVRn_.js → LpConfirmDialog-y6k0ryWR.js} +2 -2
  18. package/dist/chunks/{LpConfirmHost-Ddiljlog.js → LpConfirmHost-D-X0tDym.js} +1 -1
  19. package/dist/chunks/{LpContextMenu-DYpDm6iI.js → LpContextMenu-DEFirphS.js} +3 -3
  20. package/dist/chunks/{LpContextSwitcher-BPDSkKyA.js → LpContextSwitcher-COw6GHPW.js} +1 -1
  21. package/dist/chunks/{LpCopyButton-CxX682t4.js → LpCopyButton-BGzw95Xc.js} +2 -2
  22. package/dist/chunks/{LpDataList-DCtF7krm.js → LpDataList-B56Gu6Yt.js} +3 -3
  23. package/dist/chunks/{LpDatePicker-BElEHVm6.js → LpDatePicker-Dlyvgsan.js} +2 -2
  24. package/dist/chunks/{LpDateRangePicker-vLt-drEu.js → LpDateRangePicker-CAn2yGbn.js} +1 -1
  25. package/dist/chunks/{LpDrawer-C97k-3L2.js → LpDrawer-iRHwJOGn.js} +4 -4
  26. package/dist/chunks/{LpDropdownMenu-BPEsqZCN.js → LpDropdownMenu-CdCe7D2d.js} +3 -3
  27. package/dist/chunks/{LpEditable-CeRAzYMv.js → LpEditable-DfRUAGkA.js} +2 -2
  28. package/dist/chunks/{LpEmptyState-DrHBR3yh.js → LpEmptyState-DLOm07KH.js} +1 -1
  29. package/dist/chunks/{LpFileTree-BcQgsw4e.js → LpFileTree-BN_zybBN.js} +3 -3
  30. package/dist/chunks/{LpFileTreeNode-Dk2WqkPF.js → LpFileTreeNode-CC48DbT5.js} +3 -3
  31. package/dist/chunks/{LpHintLayer-CUSRLtLu.js → LpHintLayer-nuMqfzvy.js} +3 -3
  32. package/dist/chunks/{LpHints-BF40CP4_.js → LpHints-ByAd3a76.js} +3 -3
  33. package/dist/chunks/{LpHoverCard-CHE9jAJG.js → LpHoverCard-DYguY2AP.js} +10 -61
  34. package/dist/chunks/{LpInput-BU5IsOlE.js → LpInput-DGMpxrcg.js} +1 -1
  35. package/dist/chunks/{LpInspector-CEko6-pS.js → LpInspector-oTfkOdYd.js} +2 -2
  36. package/dist/chunks/{LpLightbox-REei-y5e.js → LpLightbox-a24V_0Wk.js} +19 -7
  37. package/dist/chunks/{LpLogInspector-Bwz351LY.js → LpLogInspector-BhJTJIst.js} +1 -1
  38. package/dist/chunks/{LpLogViewer-BCkqdH66.js → LpLogViewer-BuIzr_6h.js} +4 -4
  39. package/dist/chunks/{LpMediaGallery-BF1Bch3v.js → LpMediaGallery-B7DOV_aL.js} +2 -2
  40. package/dist/chunks/{LpModal-BK2T5uIG.js → LpModal-D1E7rQzw.js} +5 -5
  41. package/dist/chunks/{LpModalNav-Dk4eHpg6.js → LpModalNav-DivqT1NV.js} +5 -4
  42. package/dist/chunks/{LpNotificationBell-CMwUXhFg.js → LpNotificationBell-KRgdRZs-.js} +4 -4
  43. package/dist/chunks/{LpNotificationFeed-BXsRp9jm.js → LpNotificationFeed-CMGYU8c-.js} +5 -5
  44. package/dist/chunks/{LpNumberField-QUMXvpqx.js → LpNumberField-C0LSu-tl.js} +1 -1
  45. package/dist/chunks/{LpPaletteTheme-wiJtP5hV.js → LpPaletteTheme-CLwO-SDf.js} +3 -3
  46. package/dist/chunks/{LpPasswordInput-W9AZfzaL.js → LpPasswordInput-LPVI7D3v.js} +2 -2
  47. package/dist/chunks/{LpPhoneInput-DsRv-Qla.js → LpPhoneInput-BdglZsGH.js} +5 -5
  48. package/dist/chunks/{LpPie-pbrNFbRP.js → LpPie-CsiBXe-e.js} +3 -3
  49. package/dist/chunks/{LpPipeline-BHWmvOiv.js → LpPipeline-DVcoSs--.js} +1 -1
  50. package/dist/chunks/{LpPopover-BQSuxtai.js → LpPopover-w2rr4x7n.js} +2 -2
  51. package/dist/chunks/{LpRadio-CWA5Eb3M.js → LpRadio-4KyxeSz4.js} +1 -1
  52. package/dist/chunks/{LpRadioGroup-D94KMStE.js → LpRadioGroup-Cr_fmrBY.js} +1 -1
  53. package/dist/chunks/{LpRangeSlider-CkP9hYUC.js → LpRangeSlider-DbaITHtC.js} +1 -1
  54. package/dist/chunks/{LpRelativeTime-0zI-44ve.js → LpRelativeTime-CN5bWD73.js} +1 -1
  55. package/dist/chunks/{LpRepeater-DLLcbQ6J.js → LpRepeater-C0rns2xW.js} +1 -1
  56. package/dist/chunks/{LpSecretField-Au7ZQTtm.js → LpSecretField-BwrZ4TfT.js} +5 -5
  57. package/dist/chunks/{LpSection-RKCwB0xN.js → LpSection-CwsfNR7N.js} +1 -1
  58. package/dist/chunks/{LpSegmented-DD8MPj4j.js → LpSegmented-DzFYP0ZF.js} +1 -1
  59. package/dist/chunks/{LpSelect-BeXz1TWh.js → LpSelect-Dffg5r4I.js} +5 -5
  60. package/dist/chunks/{LpSidebar-DUFlf6Uu.js → LpSidebar-DQtCYlT4.js} +4 -4
  61. package/dist/chunks/{LpSidebarNav-C34YEZIR.js → LpSidebarNav-CFcI7--7.js} +1 -1
  62. package/dist/chunks/{LpSidebarRow-BeEGgsZi.js → LpSidebarRow-C5jXpcRL.js} +2 -2
  63. package/dist/chunks/{LpSlider-BCy5rjwK.js → LpSlider-DUd4gXnw.js} +1 -1
  64. package/dist/chunks/{LpStat-eVz7iUfD.js → LpStat-SyVb5JXm.js} +1 -1
  65. package/dist/chunks/{LpSwitch-D7hmVsif.js → LpSwitch-D-mcaA6C.js} +1 -1
  66. package/dist/chunks/{LpTableFilter-BGFNKyUX.js → LpTableFilter-CILHffC1.js} +3 -3
  67. package/dist/chunks/{LpTagsInput-D9uOSlvf.js → LpTagsInput-DD8-xe3F.js} +2 -2
  68. package/dist/chunks/{LpTextarea-DwE-lQt4.js → LpTextarea-CQg-dVxN.js} +1 -1
  69. package/dist/chunks/{LpThemeStudio-COn2H76d.js → LpThemeStudio-BPPctXgd.js} +4 -4
  70. package/dist/chunks/{LpThemeSwitcher-B3R3nNid.js → LpThemeSwitcher-B3c44xFH.js} +4 -4
  71. package/dist/chunks/{LpTimeField-Mi8H1g_9.js → LpTimeField-Dio7Tj9A.js} +1 -1
  72. package/dist/chunks/{LpToaster-DOJn6Vey.js → LpToaster-Cdx1tnHB.js} +2 -2
  73. package/dist/chunks/{LpTooltip-Bz_rrq5S.js → LpTooltip-BKde8Xjv.js} +43 -7
  74. package/dist/chunks/{LpTopologyCanvas-5RFMP4gR.js → LpTopologyCanvas-CQ0l6A5h.js} +3 -3
  75. package/dist/chunks/{LpTour-DUI_hoPv.js → LpTour-BGUKUxSZ.js} +1 -1
  76. package/dist/chunks/{LpTruncate-CynJhsEw.js → LpTruncate-C_C8eiIE.js} +2 -2
  77. package/dist/chunks/{LpUptimeBar-G7PfNJUH.js → LpUptimeBar-Dt6SY_-m.js} +1 -1
  78. package/dist/chunks/{LpVideoCompress-CPUxXh-c.js → LpVideoCompress-CvxNdyjp.js} +2 -2
  79. package/dist/chunks/{LpVideoPlayer-BbCjEQAx.js → LpVideoPlayer-FMuxTAU8.js} +4 -4
  80. package/dist/chunks/{LpWindow-Dp_0nNqg.js → LpWindow-DsPeiDCZ.js} +1 -1
  81. package/dist/chunks/{LpWorkspaceSwitcher-bjkncjSl.js → LpWorkspaceSwitcher-DCIiOQt_.js} +4 -4
  82. package/dist/chunks/{PickerField-CjOTUXDK.js → PickerField-DzF3UVnX.js} +1 -1
  83. package/dist/chunks/{RevealToggle-Bl1NcfxB.js → RevealToggle-BsYxY6Oz.js} +2 -2
  84. package/dist/chunks/{TourCard-BovXtMbO.js → TourCard-yrLqv4Oz.js} +1 -1
  85. package/dist/chunks/{VideoVolume-DE3i1ree.js → VideoVolume-CzL5mZPE.js} +2 -2
  86. package/dist/components/ContextMenuItems.vue.js +1 -1
  87. package/dist/components/DropzoneLinkField.vue.js +1 -1
  88. package/dist/components/IconCloseButton.vue.js +1 -1
  89. package/dist/components/LpActionBar.vue.js +1 -1
  90. package/dist/components/LpAddressInput.vue.js +1 -1
  91. package/dist/components/LpAlert.vue.js +1 -1
  92. package/dist/components/LpAppShell.vue.js +1 -1
  93. package/dist/components/LpAutocomplete.vue.js +1 -1
  94. package/dist/components/LpButton.vue.js +1 -1
  95. package/dist/components/LpChart.vue.js +2 -2
  96. package/dist/components/LpCheckbox.vue.js +1 -1
  97. package/dist/components/LpCodeBlock.vue.js +1 -1
  98. package/dist/components/LpCodeDisplay.vue.js +1 -1
  99. package/dist/components/LpColorPicker.vue.js +1 -1
  100. package/dist/components/LpCommandPalette.vue.d.ts +2 -0
  101. package/dist/components/LpCommandPalette.vue.js +69 -33
  102. package/dist/components/LpConfirmDialog.vue.js +1 -1
  103. package/dist/components/LpConfirmHost.vue.js +1 -1
  104. package/dist/components/LpContextMenu.vue.js +1 -1
  105. package/dist/components/LpContextSwitcher.vue.js +1 -1
  106. package/dist/components/LpCopyButton.vue.js +1 -1
  107. package/dist/components/LpDataList.vue.js +1 -1
  108. package/dist/components/LpDatePicker.vue.js +1 -1
  109. package/dist/components/LpDateRangePicker.vue.js +1 -1
  110. package/dist/components/LpDock.vue.js +1 -1
  111. package/dist/components/LpDrawer.vue.js +1 -1
  112. package/dist/components/LpDropdownMenu.vue.js +1 -1
  113. package/dist/components/LpDropzone.vue.js +5 -5
  114. package/dist/components/LpEditable.vue.js +1 -1
  115. package/dist/components/LpEmptyState.vue.js +1 -1
  116. package/dist/components/LpFileTree.vue.js +1 -1
  117. package/dist/components/LpFileTreeNode.vue.js +1 -1
  118. package/dist/components/LpHintLayer.vue.js +1 -1
  119. package/dist/components/LpHints.vue.js +1 -1
  120. package/dist/components/LpHoverCard.vue.d.ts +3 -3
  121. package/dist/components/LpHoverCard.vue.js +1 -1
  122. package/dist/components/LpImageEditor.vue.js +4 -4
  123. package/dist/components/LpInput.vue.js +1 -1
  124. package/dist/components/LpInspector.vue.js +1 -1
  125. package/dist/components/LpLightbox.vue.js +1 -1
  126. package/dist/components/LpLogInspector.vue.js +1 -1
  127. package/dist/components/LpLogViewer.vue.js +1 -1
  128. package/dist/components/LpMediaGallery.vue.js +1 -1
  129. package/dist/components/LpModal.vue.js +1 -1
  130. package/dist/components/LpModalNav.vue.js +1 -1
  131. package/dist/components/LpNotificationBell.vue.js +1 -1
  132. package/dist/components/LpNotificationFeed.vue.js +1 -1
  133. package/dist/components/LpNumberField.vue.js +1 -1
  134. package/dist/components/LpPaletteTheme.vue.js +1 -1
  135. package/dist/components/LpPasswordInput.vue.js +1 -1
  136. package/dist/components/LpPhoneInput.vue.js +1 -1
  137. package/dist/components/LpPie.vue.js +1 -1
  138. package/dist/components/LpPipeline.vue.js +1 -1
  139. package/dist/components/LpPopover.vue.js +1 -1
  140. package/dist/components/LpRadio.vue.js +1 -1
  141. package/dist/components/LpRadioGroup.vue.js +1 -1
  142. package/dist/components/LpRangeSlider.vue.js +1 -1
  143. package/dist/components/LpRelativeTime.vue.js +1 -1
  144. package/dist/components/LpRepeater.vue.js +1 -1
  145. package/dist/components/LpSecretField.vue.js +1 -1
  146. package/dist/components/LpSection.vue.js +1 -1
  147. package/dist/components/LpSegmented.vue.js +1 -1
  148. package/dist/components/LpSelect.vue.js +1 -1
  149. package/dist/components/LpShortcutsDialog.vue.js +1 -1
  150. package/dist/components/LpSidebar.vue.js +1 -1
  151. package/dist/components/LpSidebarNav.vue.js +1 -1
  152. package/dist/components/LpSidebarRow.vue.js +1 -1
  153. package/dist/components/LpSlider.vue.js +1 -1
  154. package/dist/components/LpStat.vue.js +1 -1
  155. package/dist/components/LpSwitch.vue.js +1 -1
  156. package/dist/components/LpTable.vue.js +10 -10
  157. package/dist/components/LpTableFilter.vue.js +1 -1
  158. package/dist/components/LpTabs.vue.js +1 -1
  159. package/dist/components/LpTagsInput.vue.js +1 -1
  160. package/dist/components/LpTextarea.vue.js +1 -1
  161. package/dist/components/LpThemeStudio.vue.js +1 -1
  162. package/dist/components/LpThemeSwitcher.vue.js +1 -1
  163. package/dist/components/LpTimeField.vue.js +1 -1
  164. package/dist/components/LpToaster.vue.js +1 -1
  165. package/dist/components/LpTooltip.vue.d.ts +9 -0
  166. package/dist/components/LpTooltip.vue.js +1 -1
  167. package/dist/components/LpTopologyCanvas.vue.js +1 -1
  168. package/dist/components/LpTour.vue.js +1 -1
  169. package/dist/components/LpTruncate.vue.js +1 -1
  170. package/dist/components/LpUptimeBar.vue.js +1 -1
  171. package/dist/components/LpVideoCompress.vue.js +1 -1
  172. package/dist/components/LpVideoPlayer.vue.js +1 -1
  173. package/dist/components/LpVideoTrim.vue.js +4 -4
  174. package/dist/components/LpWindow.vue.js +1 -1
  175. package/dist/components/LpWorkspaceSwitcher.vue.js +1 -1
  176. package/dist/components/PickerField.vue.js +1 -1
  177. package/dist/components/RevealToggle.vue.js +1 -1
  178. package/dist/components/TourCard.vue.js +1 -1
  179. package/dist/components/VideoVolume.vue.js +1 -1
  180. package/dist/components/badge.d.ts +1 -1
  181. package/dist/components/badge.js +1 -1
  182. package/dist/components/dropdown.d.ts +14 -0
  183. package/dist/components/dropdown.js +7 -1
  184. package/dist/components/menuWhen.js +1 -1
  185. package/dist/components/modalDepth.d.ts +1 -0
  186. package/dist/components/modalDepth.js +2 -0
  187. package/dist/composables/useReveal.js +3 -3
  188. package/dist/composables/useTouchHold.d.ts +19 -0
  189. package/dist/composables/useTouchHold.js +60 -0
  190. package/dist/index.js +72 -71
  191. package/package.json +1 -1
  192. package/src/components/ContextMenuItems.vue +2 -1
  193. package/src/components/IconCloseButton.vue +1 -1
  194. package/src/components/LpAlert.vue +1 -1
  195. package/src/components/LpAutocomplete.vue +4 -4
  196. package/src/components/LpButton.vue +1 -1
  197. package/src/components/LpCheckbox.vue +1 -1
  198. package/src/components/LpCodeBlock.vue +2 -2
  199. package/src/components/LpColorPicker.vue +3 -3
  200. package/src/components/LpCommandPalette.vue +89 -7
  201. package/src/components/LpContextMenu.vue +2 -2
  202. package/src/components/LpDataList.vue +1 -1
  203. package/src/components/LpDrawer.vue +7 -4
  204. package/src/components/LpDropdownMenu.vue +2 -2
  205. package/src/components/LpDropzone.vue +2 -2
  206. package/src/components/LpEditable.vue +2 -2
  207. package/src/components/LpEmptyState.vue +1 -1
  208. package/src/components/LpFileTreeNode.vue +1 -1
  209. package/src/components/LpHintLayer.vue +2 -2
  210. package/src/components/LpHoverCard.vue +11 -80
  211. package/src/components/LpImageEditor.vue +1 -1
  212. package/src/components/LpInput.vue +1 -1
  213. package/src/components/LpLightbox.vue +20 -3
  214. package/src/components/LpModal.vue +4 -4
  215. package/src/components/LpModalNav.vue +2 -1
  216. package/src/components/LpNumberField.vue +1 -1
  217. package/src/components/LpPhoneInput.vue +5 -5
  218. package/src/components/LpPopover.vue +2 -2
  219. package/src/components/LpRadio.vue +1 -1
  220. package/src/components/LpRadioGroup.vue +1 -1
  221. package/src/components/LpRangeSlider.vue +1 -1
  222. package/src/components/LpSection.vue +9 -6
  223. package/src/components/LpSegmented.vue +1 -1
  224. package/src/components/LpSelect.vue +4 -4
  225. package/src/components/LpSlider.vue +1 -1
  226. package/src/components/LpStat.vue +1 -1
  227. package/src/components/LpSwitch.vue +1 -1
  228. package/src/components/LpTableFilter.vue +1 -1
  229. package/src/components/LpTagsInput.vue +2 -2
  230. package/src/components/LpTextarea.vue +1 -1
  231. package/src/components/LpThemeSwitcher.vue +2 -2
  232. package/src/components/LpTimeField.vue +1 -1
  233. package/src/components/LpToaster.vue +1 -1
  234. package/src/components/LpTooltip.vue +59 -5
  235. package/src/components/badge.ts +1 -1
  236. package/src/components/dropdown.ts +24 -0
  237. package/src/components/modalDepth.ts +6 -0
  238. package/src/composables/useReveal.ts +7 -4
  239. package/src/composables/useTouchHold.ts +92 -0
  240. package/src/locales/uk.ts +1 -0
  241. package/src/tokens/utilities.css +34 -0
@@ -5,34 +5,53 @@
5
5
  * pane from its right edge as it grows. Animating the columns themselves made
6
6
  * every line of the list and the pane re-wrap on every frame.
7
7
  */
8
- .lp-cmd-dialog[data-v-b72dc3e1] {
8
+ .lp-cmd-dialog[data-v-1801065c] {
9
9
  --lp-cmd-list: min(92vw, 40rem);
10
10
  --lp-cmd-pane: max(0px, min(26rem, 96vw - var(--lp-cmd-list)));
11
11
  width: var(--lp-cmd-list);
12
12
  }
13
- .lp-cmd-split[data-v-b72dc3e1] {
13
+ .lp-cmd-split[data-v-1801065c] {
14
14
  transition:
15
15
  width 300ms var(--ease-emphasized, ease),
16
16
  min-height 300ms var(--ease-emphasized, ease);
17
17
  }
18
18
  @media (min-width: 768px) {
19
- .lp-cmd-split .lp-cmd-list[data-v-b72dc3e1] {
19
+ .lp-cmd-split .lp-cmd-list[data-v-1801065c] {
20
20
  flex: 0 0 auto;
21
21
  /* the dialog's 1px border on each side */
22
22
  width: calc(var(--lp-cmd-list) - 2px);
23
23
  }
24
- .lp-cmd-dialog[data-pane="open"][data-v-b72dc3e1] {
24
+ .lp-cmd-dialog[data-pane="open"][data-v-1801065c] {
25
25
  width: calc(var(--lp-cmd-list) + var(--lp-cmd-pane));
26
26
  min-height: min(76vh, 36rem);
27
27
  }
28
28
  }
29
- .lp-cmd-pane[data-v-b72dc3e1] {
29
+ .lp-cmd-pane[data-v-1801065c] {
30
30
  width: var(--lp-cmd-pane);
31
31
  }
32
- .lp-cmd-dialog[data-editing] .lp-cmd-pane[data-v-b72dc3e1] {
32
+ /*
33
+ * A phone: a sheet over the whole visible screen rather than a card floating
34
+ * a tenth of the way down, which left a band of nothing above it and let the
35
+ * keyboard cover its lower half. Keyed to touch as well as width, so a narrow
36
+ * desktop window keeps the card.
37
+ */
38
+ @media (hover: none) and (pointer: coarse) and (max-width: 639px) {
39
+ .lp-cmd-dialog[data-v-1801065c] {
40
+ inset: var(--lp-cmd-vy, 0) auto auto var(--lp-cmd-vx, 0);
41
+ translate: none;
42
+ width: var(--lp-cmd-vw, 100%);
43
+ height: var(--lp-cmd-vh, 100dvh);
44
+ max-height: var(--lp-cmd-vh, 100dvh);
45
+ border-width: 0;
46
+ border-radius: 0;
47
+ padding-top: env(safe-area-inset-top);
48
+ padding-bottom: env(safe-area-inset-bottom);
49
+ }
50
+ }
51
+ .lp-cmd-dialog[data-editing] .lp-cmd-pane[data-v-1801065c] {
33
52
  width: 100%;
34
53
  }
35
- .lp-cmd-dialog[data-editing][data-v-b72dc3e1] {
54
+ .lp-cmd-dialog[data-editing][data-v-1801065c] {
36
55
  width: var(--lp-cmd-list);
37
56
  min-height: 0;
38
57
  }
@@ -40,43 +59,43 @@
40
59
  * The pane rides in from the right edge while the dialog opens up to it, and
41
60
  * leaves the same way, for as long as the dialog takes to close over it.
42
61
  */
43
- .lp-cmd-pane-enter-active[data-v-b72dc3e1],
44
- .lp-cmd-pane-leave-active[data-v-b72dc3e1] {
62
+ .lp-cmd-pane-enter-active[data-v-1801065c],
63
+ .lp-cmd-pane-leave-active[data-v-1801065c] {
45
64
  transition:
46
65
  transform 300ms var(--ease-emphasized, ease),
47
66
  opacity 300ms ease;
48
67
  }
49
- .lp-cmd-pane-enter-from[data-v-b72dc3e1],
50
- .lp-cmd-pane-leave-to[data-v-b72dc3e1] {
68
+ .lp-cmd-pane-enter-from[data-v-1801065c],
69
+ .lp-cmd-pane-leave-to[data-v-1801065c] {
51
70
  opacity: 0;
52
71
  transform: translateX(40%);
53
72
  }
54
- .lp-cmd-para[data-v-b72dc3e1] {
73
+ .lp-cmd-para[data-v-1801065c] {
55
74
  --rise: 4px;
56
75
  animation: rise-in 260ms ease-out both;
57
76
  }
58
77
  @media (prefers-reduced-motion: reduce) {
59
- .lp-cmd-split[data-v-b72dc3e1],
60
- .lp-cmd-pane-enter-active[data-v-b72dc3e1],
61
- .lp-cmd-pane-leave-active[data-v-b72dc3e1] {
78
+ .lp-cmd-split[data-v-1801065c],
79
+ .lp-cmd-pane-enter-active[data-v-1801065c],
80
+ .lp-cmd-pane-leave-active[data-v-1801065c] {
62
81
  transition: none;
63
82
  }
64
- .lp-cmd-para[data-v-b72dc3e1] {
83
+ .lp-cmd-para[data-v-1801065c] {
65
84
  animation: none;
66
85
  }
67
86
  }
68
- .lp-cmd-excerpt[data-v-b72dc3e1] {
87
+ .lp-cmd-excerpt[data-v-1801065c] {
69
88
  display: -webkit-box;
70
89
  -webkit-box-orient: vertical;
71
90
  overflow: hidden;
72
91
  }
73
92
  /* Each result eases in; honours reduced motion. */
74
- .lp-cmd-item[data-v-b72dc3e1] {
93
+ .lp-cmd-item[data-v-1801065c] {
75
94
  --rise: 3px;
76
95
  animation: rise-in 140ms ease-out both;
77
96
  }
78
97
  @media (prefers-reduced-motion: reduce) {
79
- .lp-cmd-item[data-v-b72dc3e1] {
98
+ .lp-cmd-item[data-v-1801065c] {
80
99
  animation: none;
81
100
  }
82
101
  }
@@ -1,9 +1,9 @@
1
1
 
2
- .lp-dropzone__frame rect[data-v-701532c5] {
2
+ .lp-dropzone__frame rect[data-v-ccad017c] {
3
3
  stroke: var(--color-line);
4
4
  transition: stroke var(--duration-fast) linear;
5
5
  }
6
- .lp-dropzone:hover .lp-dropzone__frame rect[data-v-701532c5] {
6
+ .lp-dropzone:hover .lp-dropzone__frame rect[data-v-ccad017c] {
7
7
  stroke: var(--color-line-strong);
8
8
  }
9
9
 
@@ -12,28 +12,28 @@
12
12
  with every other thing on it; under a drag it is the answer to "can I let go
13
13
  here". One dash period per cycle, so the travel is continuous rather than
14
14
  jumping back at the seam. */
15
- .lp-dropzone--over .lp-dropzone__frame rect[data-v-701532c5] {
15
+ .lp-dropzone--over .lp-dropzone__frame rect[data-v-ccad017c] {
16
16
  stroke: var(--color-brand);
17
- animation: lp-dropzone-ants-701532c5 500ms linear infinite;
17
+ animation: lp-dropzone-ants-ccad017c 500ms linear infinite;
18
18
  }
19
- @keyframes lp-dropzone-ants-701532c5 {
19
+ @keyframes lp-dropzone-ants-ccad017c {
20
20
  to {
21
21
  stroke-dashoffset: -11;
22
22
  }
23
23
  }
24
24
 
25
25
  /* The dashes fade in and the block settles up a few pixels. */
26
- .lp-dropzone[data-v-701532c5] {
26
+ .lp-dropzone[data-v-ccad017c] {
27
27
  --rise: 6px;
28
28
  animation: rise-in var(--duration-slow) var(--ease-settle) both;
29
29
  }
30
- .lp-dropzone--waiting[data-v-701532c5] {
30
+ .lp-dropzone--waiting[data-v-ccad017c] {
31
31
  opacity: 0;
32
32
  animation: none;
33
33
  }
34
34
  @media (prefers-reduced-motion: reduce) {
35
- .lp-dropzone[data-v-701532c5],
36
- .lp-dropzone--waiting[data-v-701532c5] {
35
+ .lp-dropzone[data-v-ccad017c],
36
+ .lp-dropzone--waiting[data-v-ccad017c] {
37
37
  opacity: 1;
38
38
  transform: none;
39
39
  animation: none;
@@ -41,7 +41,7 @@ to {
41
41
 
42
42
  /* The ants stop, the colour stays: the brand stroke is what says "drop
43
43
  here", and it says it standing still. */
44
- .lp-dropzone--over .lp-dropzone__frame rect[data-v-701532c5] {
44
+ .lp-dropzone--over .lp-dropzone__frame rect[data-v-ccad017c] {
45
45
  animation: none;
46
46
  }
47
47
  }
@@ -2,22 +2,22 @@
2
2
  /* The picture settles into the frame instead of appearing in it. Scale rather
3
3
  than a slide: the frame is the fixed thing here and the image lives inside
4
4
  it, so anything that moved would read as a crop that had shifted. */
5
- .lp-editor__image[data-v-132069a4] {
6
- animation: lp-editor-in-132069a4 var(--duration-slow) var(--ease-settle) both;
5
+ .lp-editor__image[data-v-d8ea66b8] {
6
+ animation: lp-editor-in-d8ea66b8 var(--duration-slow) var(--ease-settle) both;
7
7
  }
8
- .lp-editor__image--waiting[data-v-132069a4] {
8
+ .lp-editor__image--waiting[data-v-d8ea66b8] {
9
9
  opacity: 0;
10
10
  animation: none;
11
11
  }
12
- @keyframes lp-editor-in-132069a4 {
12
+ @keyframes lp-editor-in-d8ea66b8 {
13
13
  from {
14
14
  opacity: 0;
15
15
  scale: 1.04;
16
16
  }
17
17
  }
18
18
  @media (prefers-reduced-motion: reduce) {
19
- .lp-editor__image[data-v-132069a4],
20
- .lp-editor__image--waiting[data-v-132069a4] {
19
+ .lp-editor__image[data-v-d8ea66b8],
20
+ .lp-editor__image--waiting[data-v-d8ea66b8] {
21
21
  opacity: 1;
22
22
  scale: 1;
23
23
  animation: none;
@@ -3,11 +3,11 @@ import { DropdownMenuPortal, DropdownMenuSubContent, DropdownMenuSubTrigger, Dro
3
3
  import { usePortalTarget, useOutsideGuard } from "../composables/useView.js";
4
4
  import { _ as _sfc_main$1 } from "./LpIcon-CxHFPwKt.js";
5
5
  import MenuShortcut from "../components/MenuShortcut.vue.js";
6
+ import { TOUCH_ROW } from "../components/dropdown.js";
6
7
  const _hoisted_1 = { class: "flex items-center gap-2" };
7
8
  const _hoisted_2 = { class: "flex items-center gap-2" };
8
9
  const _hoisted_3 = { class: "flex items-center gap-2" };
9
10
  const _hoisted_4 = { class: "flex items-center gap-2" };
10
- const ITEM = "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";
11
11
  const ICON = "transition-transform duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] group-data-[highlighted]/item:translate-x-0.5";
12
12
  const _sfc_main = /* @__PURE__ */ defineComponent({
13
13
  ...{ name: "ContextMenuItems" },
@@ -42,6 +42,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
42
42
  const P = computed(() => PRIMITIVES[props.kind]);
43
43
  const portalTo = usePortalTarget();
44
44
  const guardOutside = useOutsideGuard();
45
+ const ITEM = "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;
45
46
  return (_ctx, _cache) => {
46
47
  const _component_ContextMenuItems = resolveComponent("ContextMenuItems", true);
47
48
  return openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item, i) => {
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, useModel, ref, openBlock, createElementBlock, createElementVNode, createVNode, withCtx, createTextVNode, toDisplayString, normalizeClass, mergeModels } from "vue";
2
- import { _ as _sfc_main$2 } from "./LpButton-DSHioIfD.js";
3
- import { _ as _sfc_main$1 } from "./LpInput-BU5IsOlE.js";
2
+ import { _ as _sfc_main$2 } from "./LpButton-BvVoF-PO.js";
3
+ import { _ as _sfc_main$1 } from "./LpInput-DGMpxrcg.js";
4
4
  const _hoisted_1 = { class: "flex w-full flex-col gap-1.5" };
5
5
  const _hoisted_2 = { class: "flex items-center gap-2" };
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -12,7 +12,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
12
12
  return (_ctx, _cache) => {
13
13
  return openBlock(), createElementBlock("button", {
14
14
  type: "button",
15
- class: normalizeClass(["group flex shrink-0 items-center text-muted outline-none transition-colors duration-[var(--duration-fast)] hover:text-ink", __props.inline ? void 0 : "rounded-inner p-1 focus-visible:ring-2 focus-visible:ring-ring"]),
15
+ class: normalizeClass(["lp-tap group flex shrink-0 items-center text-muted outline-none transition-colors duration-[var(--duration-fast)] hover:text-ink", __props.inline ? void 0 : "rounded-inner p-1 focus-visible:ring-2 focus-visible:ring-ring"]),
16
16
  "aria-label": __props.label
17
17
  }, [
18
18
  createVNode(_sfc_main$1, {
@@ -2,7 +2,7 @@ import { defineComponent, useSlots, computed, ref, watch, openBlock, createBlock
2
2
  import { useLabels } from "../composables/useLpConfig.js";
3
3
  import { useBarStack } from "../components/actionBar.js";
4
4
  import { CLOSE_ICON } from "../components/dropdown.js";
5
- import { _ as _sfc_main$2 } from "./LpButton-DSHioIfD.js";
5
+ import { _ as _sfc_main$2 } from "./LpButton-BvVoF-PO.js";
6
6
  import { _ as _sfc_main$1 } from "./LpIcon-CxHFPwKt.js";
7
7
  import { _ as _sfc_main$3 } from "./LpLoader-Bf1yZwaU.js";
8
8
  import { usePortalTarget } from "../composables/useView.js";
@@ -3,13 +3,13 @@ import { _ as _sfc_main$1 } from "./FieldWrapper-CVTPnpoG.js";
3
3
  import { useAsyncTask } from "../composables/useAsyncTask.js";
4
4
  import { OSM_TILES, createNominatimProvider, emptyAddress, formatAddress } from "../components/address.js";
5
5
  import { flagEmoji, loadCountries } from "../components/countries.js";
6
- import { _ as _sfc_main$3 } from "./LpAutocomplete-VNID5zdy.js";
7
- import { _ as _sfc_main$4 } from "./LpButton-DSHioIfD.js";
6
+ import { _ as _sfc_main$3 } from "./LpAutocomplete-YPxAPHEo.js";
7
+ import { _ as _sfc_main$4 } from "./LpButton-BvVoF-PO.js";
8
8
  import { _ as _sfc_main$2 } from "./LpFormField-jbM7K1Hg.js";
9
9
  import { _ as _sfc_main$5 } from "./LpIcon-CxHFPwKt.js";
10
- import { _ as _sfc_main$6 } from "./LpInput-BU5IsOlE.js";
11
- import { _ as _sfc_main$8 } from "./LpModal-BK2T5uIG.js";
12
- import { _ as _sfc_main$7 } from "./LpSelect-BeXz1TWh.js";
10
+ import { _ as _sfc_main$6 } from "./LpInput-DGMpxrcg.js";
11
+ import { _ as _sfc_main$8 } from "./LpModal-D1E7rQzw.js";
12
+ import { _ as _sfc_main$7 } from "./LpSelect-Dffg5r4I.js";
13
13
  import { useOwnField, mergeDescribedBy } from "../composables/useField.js";
14
14
  import { useLabels } from "../composables/useLpConfig.js";
15
15
  import { useMergedAttrs } from "../composables/useMergedClass.js";
@@ -98,7 +98,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
98
98
  ]),
99
99
  createVNode(_sfc_main$3, {
100
100
  "swap-key": messageKey(),
101
- class: "min-w-0 flex-1"
101
+ class: "min-w-0 flex-1 [overflow-wrap:anywhere]"
102
102
  }, {
103
103
  default: withCtx(() => [
104
104
  __props.title ? (openBlock(), createElementBlock("p", _hoisted_3, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
@@ -7,13 +7,13 @@ import { useView, viewWindow } from "../composables/useView.js";
7
7
  import { _ as _sfc_main$6 } from "./AppShellContextNav-C6Ho2mof.js";
8
8
  import { DENSITY_CLASS, resolveNavMode, NAV_BREAKPOINT_PX, contextNavItems, headerCollapsedAfter } from "../components/appShell.js";
9
9
  import { _ as _sfc_main$9 } from "./LpBottomNav-9AqvZlRW.js";
10
- import { _ as _sfc_main$2 } from "./LpContextSwitcher-BPDSkKyA.js";
11
- import { _ as _sfc_main$3 } from "./LpButton-DSHioIfD.js";
10
+ import { _ as _sfc_main$2 } from "./LpContextSwitcher-COw6GHPW.js";
11
+ import { _ as _sfc_main$3 } from "./LpButton-BvVoF-PO.js";
12
12
  import { _ as _sfc_main$4 } from "./LpIcon-CxHFPwKt.js";
13
13
  import { _ as _sfc_main$8 } from "./LpPageScrollbar-C9sTeU-2.js";
14
14
  import { _ as _sfc_main$7 } from "./LpScrollArea-CqvwfZs2.js";
15
15
  import { _ as _sfc_main$5 } from "./LpShift-DAgS_d2x.js";
16
- import { _ as _sfc_main$1 } from "./LpSidebar-DUFlf6Uu.js";
16
+ import { _ as _sfc_main$1 } from "./LpSidebar-DQtCYlT4.js";
17
17
  import { mergeClass, useMergedAttrs } from "../composables/useMergedClass.js";
18
18
  import { nodeWindow, isHTMLElement } from "../composables/realm.js";
19
19
  const _hoisted_1 = ["href"];
@@ -1,13 +1,13 @@
1
1
  import { defineComponent, computed, useAttrs, ref, watch, useId, openBlock, createBlock, normalizeProps, guardReactiveProps, unref, withCtx, createVNode, normalizeStyle, normalizeClass, createElementBlock, createCommentVNode, createElementVNode, mergeProps, Transition, toDisplayString, withModifiers, createTextVNode, Fragment, renderList, nextTick } from "vue";
2
2
  import { _ as _sfc_main$1 } from "./FieldWrapper-CVTPnpoG.js";
3
- import { _ as _sfc_main$3 } from "./IconCloseButton-CmWOJAXG.js";
3
+ import { _ as _sfc_main$3 } from "./IconCloseButton-C_V7qngw.js";
4
4
  import { CONTROL_SIZE } from "../components/controlSize.js";
5
5
  import { usePaletteControl } from "../composables/usePaletteCommands.js";
6
6
  import { ComboboxRoot, ComboboxAnchor, ComboboxInput, ComboboxPortal, ComboboxContent, ComboboxViewport, ComboboxEmpty, ComboboxItem } from "reka-ui";
7
7
  import { useOwnField, mergeDescribedBy } from "../composables/useField.js";
8
8
  import { useInputFilter } from "../composables/useInputFilter.js";
9
9
  import { useLabels } from "../composables/useLpConfig.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$2 } from "./LpIcon-CxHFPwKt.js";
12
12
  import { _ as _sfc_main$4 } from "./OptionContent-DZb5eKRV.js";
13
13
  import { usePortalTarget, useOutsideGuard } from "../composables/useView.js";
@@ -204,7 +204,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
204
204
  required: unref(field).required || void 0,
205
205
  "aria-invalid": isInvalidState.value || void 0,
206
206
  "aria-describedby": describedBy.value,
207
- class: ["lp-autofill min-w-0 flex-1 self-stretch bg-transparent outline-none placeholder:text-muted", showSelected.value && "text-transparent placeholder:text-transparent"],
207
+ class: ["lp-autofill lp-entry min-w-0 flex-1 self-stretch bg-transparent outline-none placeholder:text-muted", showSelected.value && "text-transparent placeholder:text-transparent"],
208
208
  onBeforeinput: unref(onBeforeInput),
209
209
  onPaste: unref(onPaste),
210
210
  onCompositionend: unref(onCompositionEnd),
@@ -254,14 +254,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
254
254
  onInteractOutside: unref(guardOutside),
255
255
  onEscapeKeyDown: unref(guardOutside)
256
256
  }, unref(COMBOBOX_PANEL), {
257
- class: [unref(POPOVER_PANEL), "z-(--z-popover) max-h-72 w-(--reka-combobox-trigger-width) overflow-hidden"],
257
+ class: [unref(POPOVER_PANEL), "z-(--z-popover) w-(--reka-combobox-trigger-width) overflow-hidden", unref(COMBOBOX_FIT)],
258
258
  onOpenAutoFocus: _cache[1] || (_cache[1] = withModifiers(() => {
259
259
  }, ["prevent"])),
260
260
  onMousedown: _cache[2] || (_cache[2] = withModifiers(() => {
261
261
  }, ["prevent"]))
262
262
  }), {
263
263
  default: withCtx(() => [
264
- createVNode(unref(ComboboxViewport), { class: "max-h-72 overflow-y-auto p-1" }, {
264
+ createVNode(unref(ComboboxViewport), { class: "max-h-72 min-h-0 flex-1 overflow-y-auto p-1" }, {
265
265
  default: withCtx(() => [
266
266
  __props.loading ? (openBlock(), createElementBlock("div", _hoisted_5, toDisplayString(__props.loadingText ?? unref(labels).loading), 1)) : (openBlock(), createBlock(unref(ComboboxEmpty), {
267
267
  key: 1,
@@ -36,7 +36,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
36
36
  setup(__props, { emit: __emit }) {
37
37
  const button = tv({
38
38
  base: [
39
- "inline-flex select-none items-center justify-center gap-2 whitespace-nowrap font-semibold",
39
+ "lp-tap inline-flex select-none items-center justify-center gap-2 whitespace-nowrap font-semibold",
40
40
  "rounded-control transition-[color,background-color,border-color,box-shadow,scale] duration-[var(--duration-fast)] ease-[var(--ease-emphasized)]",
41
41
  // tactile press: dips slightly on click, springs back on release.
42
42
  "active:scale-[0.97] motion-reduce:active:scale-100",
@@ -82,7 +82,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
82
82
  required: unref(field).required,
83
83
  "aria-describedby": describedBy.value,
84
84
  "aria-busy": unref(pending) || void 0,
85
- class: [__props.description ? "mt-px" : "", "relative flex size-[18px] shrink-0 items-center justify-center rounded-[5px] border border-line-strong bg-surface-soft outline-none transition-[color,background-color,border-color,box-shadow,scale] duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] not-data-[state=checked]:not-data-[state=indeterminate]:group-hover/check:border-brand active:scale-90 motion-reduce:active:scale-100 focus-visible:ring-2 focus-visible:ring-ring data-[state=checked]:border-transparent data-[state=checked]:bg-brand data-[state=indeterminate]:border-transparent data-[state=indeterminate]:bg-brand disabled:cursor-not-allowed disabled:opacity-55"],
85
+ class: [__props.description ? "mt-px" : "", "lp-tap relative flex size-[18px] shrink-0 items-center justify-center rounded-[5px] border border-line-strong bg-surface-soft outline-none transition-[color,background-color,border-color,box-shadow,scale] duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] not-data-[state=checked]:not-data-[state=indeterminate]:group-hover/check:border-brand active:scale-90 motion-reduce:active:scale-100 focus-visible:ring-2 focus-visible:ring-ring data-[state=checked]:border-transparent data-[state=checked]:bg-brand data-[state=indeterminate]:border-transparent data-[state=indeterminate]:bg-brand disabled:cursor-not-allowed disabled:opacity-55"],
86
86
  "onUpdate:modelValue": onUpdate
87
87
  }), {
88
88
  default: withCtx(() => [
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, computed, reactive, watch, ref, openBlock, createElementBlock, mergeProps, unref, toDisplayString, createCommentVNode, createElementVNode, createVNode, createBlock, normalizeStyle, normalizeClass, Fragment, renderList, h } from "vue";
2
2
  import { tokenizeLines } from "../components/codeHighlight.js";
3
3
  import { useLabels } from "../composables/useLpConfig.js";
4
- import { _ as _sfc_main$2 } from "./LpCopyButton-CxX682t4.js";
4
+ import { _ as _sfc_main$2 } from "./LpCopyButton-BGzw95Xc.js";
5
5
  import { _ as _sfc_main$1 } from "./LpIcon-CxHFPwKt.js";
6
6
  import { useMergedAttrs } from "../composables/useMergedClass.js";
7
7
  const _hoisted_1 = {
@@ -197,7 +197,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
197
197
  key: 0,
198
198
  value: code.value,
199
199
  spellcheck: "false",
200
- class: normalizeClass(["lp-scrollbar-none absolute inset-0 size-full resize-none overflow-auto whitespace-pre bg-transparent p-3 leading-relaxed text-transparent caret-brand outline-none", [__props.wrap ? "whitespace-pre-wrap break-words" : "whitespace-pre", __props.lineNumbers ? "pl-13" : ""]]),
200
+ class: normalizeClass(["lp-entry lp-scrollbar-none absolute inset-0 size-full resize-none overflow-auto whitespace-pre bg-transparent p-3 leading-relaxed text-transparent caret-brand outline-none", [__props.wrap ? "whitespace-pre-wrap break-words" : "whitespace-pre", __props.lineNumbers ? "pl-13" : ""]]),
201
201
  onInput,
202
202
  onScroll: syncScroll
203
203
  }, null, 42, _hoisted_6)) : createCommentVNode("", true),
@@ -206,7 +206,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
206
206
  ref: preEl,
207
207
  class: normalizeClass(["lp-scrollbar-none m-0 overflow-auto p-3 leading-relaxed", [
208
208
  __props.wrap ? "whitespace-pre-wrap break-words" : "whitespace-pre",
209
- editing.value ? "pointer-events-none" : "",
209
+ editing.value ? "lp-entry pointer-events-none" : "",
210
210
  editing.value && __props.height ? "h-full overflow-hidden" : ""
211
211
  ]])
212
212
  }, [
@@ -2,12 +2,12 @@ import { defineComponent, useModel, computed, ref, watch, openBlock, createEleme
2
2
  import { useLabels } from "../composables/useLpConfig.js";
3
3
  import { useMergedAttrs } from "../composables/useMergedClass.js";
4
4
  import { useNow } from "../composables/useNow.js";
5
- import { _ as _sfc_main$6 } from "./LpCheckbox-P7tEw8GO.js";
6
- import { _ as _sfc_main$3 } from "./LpCopyButton-CxX682t4.js";
5
+ import { _ as _sfc_main$6 } from "./LpCheckbox-C9VnPIQf.js";
6
+ import { _ as _sfc_main$3 } from "./LpCopyButton-BGzw95Xc.js";
7
7
  import { _ as _sfc_main$5 } from "./LpCountdown-DVl7vXI1.js";
8
8
  import { _ as _sfc_main$4 } from "./LpIcon-CxHFPwKt.js";
9
9
  import { _ as _sfc_main$1 } from "./LpRollingText-B54Pje7P.js";
10
- import { _ as _sfc_main$2 } from "./RevealToggle-Bl1NcfxB.js";
10
+ import { _ as _sfc_main$2 } from "./RevealToggle-BsYxY6Oz.js";
11
11
  import { groupCode } from "../components/fieldText.js";
12
12
  import { toEpoch, formatTime, ceilToSecond, msToNextSecond } from "../components/timeSpan.js";
13
13
  const _hoisted_1 = { class: "flex flex-wrap items-center gap-x-2 gap-y-1" };
@@ -9,8 +9,8 @@ import { useOwnField, mergeDescribedBy } from "../composables/useField.js";
9
9
  import { DEFAULT_SWATCHES, formatColor, opaqueCss, parseColor, rgbToHsv, isLight, clampHsv } from "../components/color.js";
10
10
  import { useClipboard } from "../composables/useClipboard.js";
11
11
  import { useLabels } from "../composables/useLpConfig.js";
12
- import { POPOVER_PANEL } from "../components/dropdown.js";
13
- import { _ as _sfc_main$2 } from "./LpContextMenu-DYpDm6iI.js";
12
+ import { POPOVER_PANEL, PANEL_FIT } from "../components/dropdown.js";
13
+ import { _ as _sfc_main$2 } from "./LpContextMenu-DEFirphS.js";
14
14
  import { _ as _sfc_main$3 } from "./LpIcon-CxHFPwKt.js";
15
15
  import { _ as _sfc_main$4 } from "./LpRollingText-B54Pje7P.js";
16
16
  import { usePortalTarget, useOutsideGuard } from "../composables/useView.js";
@@ -413,7 +413,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
413
413
  side: __props.side,
414
414
  align: __props.align,
415
415
  "side-offset": 6,
416
- class: normalizeClass([unref(POPOVER_PANEL), "z-(--z-popover) w-64 select-none rounded-card p-3 outline-none"]),
416
+ class: normalizeClass([unref(POPOVER_PANEL), unref(PANEL_FIT), "z-(--z-popover) w-64 select-none rounded-card p-3 outline-none"]),
417
417
  onOpenAutoFocus: onPanelOpen
418
418
  }, {
419
419
  default: withCtx(() => [
@@ -503,7 +503,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
503
503
  autocapitalize: "off",
504
504
  autocomplete: "off",
505
505
  "aria-label": unref(l).value,
506
- class: normalizeClass(["min-w-0 flex-1 select-text bg-transparent font-mono text-xs text-ink outline-none placeholder:text-muted", rolling.value ? "text-transparent" : ""]),
506
+ class: normalizeClass(["lp-entry min-w-0 flex-1 select-text bg-transparent font-mono text-xs text-ink outline-none placeholder:text-muted", rolling.value ? "text-transparent" : ""]),
507
507
  onInput,
508
508
  onKeydown: withKeys(commitTyped, ["enter"]),
509
509
  onBlur: onInputBlur
@@ -1,8 +1,8 @@
1
1
  import { defineComponent, computed, ref, watch, openBlock, createBlock, createSlots, withCtx, renderSlot, createElementBlock, toDisplayString, createCommentVNode, createVNode, createTextVNode, unref, createElementVNode, normalizeClass, nextTick } from "vue";
2
2
  import { useLabels } from "../composables/useLpConfig.js";
3
- import { _ as _sfc_main$2 } from "./LpButton-DSHioIfD.js";
3
+ import { _ as _sfc_main$2 } from "./LpButton-BvVoF-PO.js";
4
4
  import { _ as _sfc_main$3 } from "./LpIcon-CxHFPwKt.js";
5
- import { _ as _sfc_main$1 } from "./LpModal-BK2T5uIG.js";
5
+ import { _ as _sfc_main$1 } from "./LpModal-D1E7rQzw.js";
6
6
  const _hoisted_1 = { class: "inline-flex items-center gap-2.5" };
7
7
  const _hoisted_2 = {
8
8
  key: 0,
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, ref, watch, openBlock, createBlock, createCommentVNode } from "vue";
2
2
  import { confirmQueue, settleConfirm } from "../components/confirm.js";
3
- import { _ as _sfc_main$1 } from "./LpConfirmDialog-DPiPVRn_.js";
3
+ import { _ as _sfc_main$1 } from "./LpConfirmDialog-y6k0ryWR.js";
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
5
5
  __name: "LpConfirmHost",
6
6
  props: {
@@ -3,9 +3,9 @@ import { useMenuPalette } from "../composables/usePaletteCommands.js";
3
3
  import { ContextMenuRoot, ContextMenuTrigger, ContextMenuPortal, ContextMenuContent } from "reka-ui";
4
4
  import { hints } from "../composables/useHints.js";
5
5
  import { HINT_SIGNALS, noteContextTarget } from "../composables/useHintSystem.js";
6
- import { _ as _sfc_main$2 } from "./ContextMenuItems-D0jObgzN.js";
6
+ import { _ as _sfc_main$2 } from "./ContextMenuItems-LujPZSWM.js";
7
7
  import { _ as _sfc_main$1 } from "./MenuTitle-YcSjF8xo.js";
8
- import { POPOVER_PANEL } from "../components/dropdown.js";
8
+ import { POPOVER_PANEL, PANEL_FIT } from "../components/dropdown.js";
9
9
  import { useView, usePortalTarget, useOutsideGuard, viewDocument } from "../composables/useView.js";
10
10
  const _sfc_main = /* @__PURE__ */ defineComponent({
11
11
  ...{ inheritAttrs: false },
@@ -24,7 +24,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
24
24
  const props = __props;
25
25
  const enabled = computed(() => props.always || props.items.length > 0);
26
26
  const hinted = computed(() => enabled.value && !props.noHint);
27
- const PANEL = `${POPOVER_PANEL} z-(--z-popover) min-w-48 p-1 outline-none`;
27
+ const PANEL = `${POPOVER_PANEL} ${PANEL_FIT} z-(--z-popover) min-w-48 p-1 outline-none`;
28
28
  const SELECTABLE = /* @__PURE__ */ new Set(["text", "search", "url", "tel", "password"]);
29
29
  const view = useView();
30
30
  let field = null;
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, openBlock, createBlock, unref, withCtx, createElementVNode, normalizeClass, renderSlot, createElementBlock, Fragment, createTextVNode, toDisplayString, createCommentVNode } from "vue";
2
2
  import { useLabels } from "../composables/useLpConfig.js";
3
- import { _ as _sfc_main$1 } from "./LpDropdownMenu-BPEsqZCN.js";
3
+ import { _ as _sfc_main$1 } from "./LpDropdownMenu-CdCe7D2d.js";
4
4
  import { _ as _sfc_main$2 } from "./LpIcon-CxHFPwKt.js";
5
5
  const _hoisted_1 = ["aria-label"];
6
6
  const _hoisted_2 = { class: "truncate" };
@@ -1,9 +1,9 @@
1
1
  import { defineComponent, ref, computed, useAttrs, openBlock, createElementBlock, Fragment, createVNode, withCtx, mergeProps, unref, createElementVNode, normalizeStyle, toDisplayString, createCommentVNode } from "vue";
2
2
  import { COPY_LABELS, useClipboard } from "../composables/useClipboard.js";
3
3
  import { useLabels } from "../composables/useLpConfig.js";
4
- import { _ as _sfc_main$2 } from "./LpButton-DSHioIfD.js";
4
+ import { _ as _sfc_main$2 } from "./LpButton-BvVoF-PO.js";
5
5
  import { _ as _sfc_main$3 } from "./LpIcon-CxHFPwKt.js";
6
- import { _ as _sfc_main$1 } from "./LpTooltip-Bz_rrq5S.js";
6
+ import { _ as _sfc_main$1 } from "./LpTooltip-BKde8Xjv.js";
7
7
  const _hoisted_1 = { key: 0 };
8
8
  const _hoisted_2 = {
9
9
  class: "sr-only",
@@ -1,11 +1,11 @@
1
1
  import { defineComponent, useSlots, computed, openBlock, createElementBlock, mergeProps, unref, createVNode, TransitionGroup, normalizeClass, withCtx, Fragment, renderList, createElementVNode, renderSlot, createTextVNode, toDisplayString, createBlock, createCommentVNode } from "vue";
2
2
  import { useLabels } from "../composables/useLpConfig.js";
3
3
  import { useMergedAttrs } from "../composables/useMergedClass.js";
4
- import { _ as _sfc_main$4 } from "./LpCopyButton-CxX682t4.js";
4
+ import { _ as _sfc_main$4 } from "./LpCopyButton-BGzw95Xc.js";
5
5
  import { _ as _sfc_main$2 } from "./LpIcon-CxHFPwKt.js";
6
6
  import { _ as _sfc_main$3 } from "./LpRollingText-B54Pje7P.js";
7
- import { _ as _sfc_main$1 } from "./LpTooltip-Bz_rrq5S.js";
8
- const _hoisted_1 = { class: "flex min-w-0 items-center gap-1 text-muted" };
7
+ import { _ as _sfc_main$1 } from "./LpTooltip-BKde8Xjv.js";
8
+ const _hoisted_1 = { class: "flex min-w-0 items-center gap-1 text-muted [overflow-wrap:anywhere]" };
9
9
  const _hoisted_2 = ["aria-label"];
10
10
  const _hoisted_3 = { class: "min-w-0 flex-1 [overflow-wrap:anywhere]" };
11
11
  const _hoisted_4 = {
@@ -6,8 +6,8 @@ import { useLabels } from "../composables/useLpConfig.js";
6
6
  import { defaultDatePresets, dayAllowed } from "../components/dateRange.js";
7
7
  import { _ as _sfc_main$3 } from "./LpCalendar-aACjUhpM.js";
8
8
  import { _ as _sfc_main$4 } from "./LpIcon-CxHFPwKt.js";
9
- import { _ as _sfc_main$2 } from "./PickerField-CjOTUXDK.js";
10
- import { _ as _sfc_main$5 } from "./LpTimeField-Mi8H1g_9.js";
9
+ import { _ as _sfc_main$2 } from "./PickerField-DzF3UVnX.js";
10
+ import { _ as _sfc_main$5 } from "./LpTimeField-Dio7Tj9A.js";
11
11
  const _hoisted_1 = { class: "flex flex-col" };
12
12
  const _hoisted_2 = {
13
13
  key: 0,
@@ -5,7 +5,7 @@ import { useLocale } from "../composables/useLocale.js";
5
5
  import { useLabels } from "../composables/useLpConfig.js";
6
6
  import { useMediaQuery } from "../composables/useMediaQuery.js";
7
7
  import { normalizeRange, formatRange, defaultRangePresets, sameRange, allowedRange } from "../components/dateRange.js";
8
- import { _ as _sfc_main$2 } from "./PickerField-CjOTUXDK.js";
8
+ import { _ as _sfc_main$2 } from "./PickerField-DzF3UVnX.js";
9
9
  import { _ as _sfc_main$3 } from "./LpRangeCalendar-C9gkNMYw.js";
10
10
  const __default__ = { inheritAttrs: false };
11
11
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -74,10 +74,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
74
74
  const surface = frosted.value ? layer.value.nested ? "lp-glass-overlay lp-glass-overlay--nested" : "lp-glass-overlay" : "bg-surface-raised";
75
75
  const base = `fixed z-(--z-modal) flex flex-col border-line ${surface} shadow-panel outline-none`;
76
76
  const map = {
77
- left: "inset-y-0 left-0 border-r rounded-r-card",
78
- right: "inset-y-0 right-0 border-l rounded-l-card",
79
- top: "inset-x-0 top-0 border-b rounded-b-card",
80
- bottom: "inset-x-0 bottom-0 border-t rounded-t-card"
77
+ left: "inset-y-0 left-0 border-r rounded-r-card pt-[env(safe-area-inset-top)] pb-[env(safe-area-inset-bottom)] pl-[env(safe-area-inset-left)]",
78
+ right: "inset-y-0 right-0 border-l rounded-l-card pt-[env(safe-area-inset-top)] pb-[env(safe-area-inset-bottom)] pr-[env(safe-area-inset-right)]",
79
+ top: "inset-x-0 top-0 border-b rounded-b-card pt-[env(safe-area-inset-top)] pl-[env(safe-area-inset-left)] pr-[env(safe-area-inset-right)]",
80
+ bottom: "inset-x-0 bottom-0 border-t rounded-t-card pb-[env(safe-area-inset-bottom)] pl-[env(safe-area-inset-left)] pr-[env(safe-area-inset-right)]"
81
81
  };
82
82
  return [base, map[dir.value]];
83
83
  });
@@ -3,8 +3,8 @@ import { useMenuPalette } from "../composables/usePaletteCommands.js";
3
3
  import { hints } from "../composables/useHints.js";
4
4
  import { HINT_SIGNALS } from "../composables/useHintSystem.js";
5
5
  import { DropdownMenuRoot, DropdownMenuTrigger, DropdownMenuPortal, DropdownMenuContent } from "reka-ui";
6
- import { _ as _sfc_main$2 } from "./ContextMenuItems-D0jObgzN.js";
7
- import { POPOVER_PANEL } from "../components/dropdown.js";
6
+ import { _ as _sfc_main$2 } from "./ContextMenuItems-LujPZSWM.js";
7
+ import { POPOVER_PANEL, PANEL_FIT } from "../components/dropdown.js";
8
8
  import { _ as _sfc_main$1 } from "./MenuTitle-YcSjF8xo.js";
9
9
  import { usePortalTarget, useOutsideGuard } from "../composables/useView.js";
10
10
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -21,7 +21,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
21
21
  emits: ["update:open"],
22
22
  setup(__props, { emit: __emit }) {
23
23
  const props = __props;
24
- const PANEL = `${POPOVER_PANEL} z-(--z-popover) min-w-44 p-1 outline-none`;
24
+ const PANEL = `${POPOVER_PANEL} ${PANEL_FIT} z-(--z-popover) min-w-44 p-1 outline-none`;
25
25
  const emit = __emit;
26
26
  function opened(open) {
27
27
  emit("update:open", open);
@@ -198,7 +198,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
198
198
  }, [
199
199
  createElementVNode("span", {
200
200
  "aria-hidden": "true",
201
- class: normalizeClass(["invisible col-start-1 row-start-1 min-w-[4ch]", [PAD[__props.size], __props.multiline ? "whitespace-pre-wrap break-words" : "whitespace-pre"]])
201
+ class: normalizeClass(["lp-entry invisible col-start-1 row-start-1 min-w-[4ch]", [PAD[__props.size], __props.multiline ? "whitespace-pre-wrap break-words" : "whitespace-pre"]])
202
202
  }, toDisplayString((draft.value || __props.placeholder || " ") + (__props.multiline ? "\n" : " ")), 3),
203
203
  (openBlock(), createBlock(resolveDynamicComponent(__props.multiline ? "textarea" : "input"), {
204
204
  ref_key: "field",
@@ -213,7 +213,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
213
213
  disabled: __props.disabled,
214
214
  readonly: __props.readonly,
215
215
  rows: __props.multiline ? 1 : void 0,
216
- class: normalizeClass(["col-start-1 row-start-1 w-full min-w-0 resize-none overflow-hidden bg-transparent text-ink outline-none placeholder:text-muted", PAD[__props.size]]),
216
+ class: normalizeClass(["lp-entry col-start-1 row-start-1 w-full min-w-0 resize-none overflow-hidden bg-transparent text-ink outline-none placeholder:text-muted", PAD[__props.size]]),
217
217
  onInput: _cache[1] || (_cache[1] = ($event) => draft.value = $event.target.value),
218
218
  onKeydown: onFieldKey,
219
219
  onBlur: _cache[2] || (_cache[2] = ($event) => commit(false))
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, openBlock, createElementBlock, mergeProps, unref, normalizeClass, createVNode, createCommentVNode, createElementVNode, toDisplayString, renderSlot, createTextVNode } from "vue";
2
2
  import { _ as _sfc_main$1 } from "./LpIcon-CxHFPwKt.js";
3
3
  import { useMergedAttrs } from "../composables/useMergedClass.js";
4
- const _hoisted_1 = { class: "flex flex-col gap-1" };
4
+ const _hoisted_1 = { class: "flex max-w-full flex-col gap-1 [overflow-wrap:anywhere]" };
5
5
  const _hoisted_2 = {
6
6
  key: 0,
7
7
  class: "max-w-sm text-sm text-muted"