@leavepulse/ui 0.87.1 → 0.89.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/dist/assets/{LpCommandPalette-DCZB4EAf.css → LpCommandPalette-CO_5TFOQ.css} +38 -19
  2. package/dist/assets/{LpDropzone-CfL3Vrx4.css → LpDropzone-CVGUQqgY.css} +10 -10
  3. package/dist/assets/{LpImageEditor-y3B-aW3H.css → LpImageEditor-D_ECuegW.css} +6 -6
  4. package/dist/assets/{LpTable-BqZNpWgC.css → LpTable-DAVNb-x2.css} +25 -25
  5. package/dist/chunks/{ContextMenuItems-D0jObgzN.js → ContextMenuItems-LujPZSWM.js} +2 -1
  6. package/dist/chunks/{DropzoneLinkField-DhwYRnvd.js → DropzoneLinkField-Ckuh8zFC.js} +2 -2
  7. package/dist/chunks/{IconCloseButton-CmWOJAXG.js → IconCloseButton-C_V7qngw.js} +1 -1
  8. package/dist/chunks/{LpActionBar-Cx_MSZl9.js → LpActionBar-43WHmTsM.js} +1 -1
  9. package/dist/chunks/{LpAddressInput-CfqQR5jE.js → LpAddressInput-BCqR0zmv.js} +5 -5
  10. package/dist/chunks/{LpAlert-CYtbpRYW.js → LpAlert-Q0h7Gucu.js} +1 -1
  11. package/dist/chunks/{LpAppShell-BQG98odS.js → LpAppShell-BWaVRsDB.js} +3 -3
  12. package/dist/chunks/{LpAutocomplete-VNID5zdy.js → LpAutocomplete-YPxAPHEo.js} +5 -5
  13. package/dist/chunks/{LpButton-DSHioIfD.js → LpButton-BvVoF-PO.js} +1 -1
  14. package/dist/chunks/{LpCheckbox-P7tEw8GO.js → LpCheckbox-C9VnPIQf.js} +1 -1
  15. package/dist/chunks/{LpCodeBlock-BNThgUdQ.js → LpCodeBlock-BgWcg2mk.js} +3 -3
  16. package/dist/chunks/{LpCodeDisplay-DsiE-Qy9.js → LpCodeDisplay-DBi1YPLp.js} +3 -3
  17. package/dist/chunks/{LpColorPicker-EXpwcX-t.js → LpColorPicker-KGMG8QEh.js} +4 -4
  18. package/dist/chunks/{LpConfirmDialog-DPiPVRn_.js → LpConfirmDialog-y6k0ryWR.js} +2 -2
  19. package/dist/chunks/{LpConfirmHost-Ddiljlog.js → LpConfirmHost-D-X0tDym.js} +1 -1
  20. package/dist/chunks/{LpContextMenu-DYpDm6iI.js → LpContextMenu-DEFirphS.js} +3 -3
  21. package/dist/chunks/{LpContextSwitcher-BPDSkKyA.js → LpContextSwitcher-COw6GHPW.js} +1 -1
  22. package/dist/chunks/{LpCopyButton-CxX682t4.js → LpCopyButton-BGzw95Xc.js} +2 -2
  23. package/dist/chunks/{LpDataList-DCtF7krm.js → LpDataList-B56Gu6Yt.js} +3 -3
  24. package/dist/chunks/{LpDatePicker-BElEHVm6.js → LpDatePicker-Dlyvgsan.js} +2 -2
  25. package/dist/chunks/{LpDateRangePicker-vLt-drEu.js → LpDateRangePicker-CAn2yGbn.js} +1 -1
  26. package/dist/chunks/{LpDrawer-C97k-3L2.js → LpDrawer-iRHwJOGn.js} +4 -4
  27. package/dist/chunks/{LpDropdownMenu-BPEsqZCN.js → LpDropdownMenu-CdCe7D2d.js} +3 -3
  28. package/dist/chunks/{LpEditable-CeRAzYMv.js → LpEditable-DfRUAGkA.js} +2 -2
  29. package/dist/chunks/{LpEmptyState-DrHBR3yh.js → LpEmptyState-DLOm07KH.js} +1 -1
  30. package/dist/chunks/{LpFileTree-BcQgsw4e.js → LpFileTree-BN_zybBN.js} +3 -3
  31. package/dist/chunks/{LpFileTreeNode-Dk2WqkPF.js → LpFileTreeNode-CC48DbT5.js} +3 -3
  32. package/dist/chunks/{LpHintLayer-CUSRLtLu.js → LpHintLayer-nuMqfzvy.js} +3 -3
  33. package/dist/chunks/{LpHints-BF40CP4_.js → LpHints-ByAd3a76.js} +3 -3
  34. package/dist/chunks/{LpHoverCard-CHE9jAJG.js → LpHoverCard-DYguY2AP.js} +10 -61
  35. package/dist/chunks/{LpInput-BU5IsOlE.js → LpInput-DGMpxrcg.js} +1 -1
  36. package/dist/chunks/{LpInspector-CEko6-pS.js → LpInspector-oTfkOdYd.js} +2 -2
  37. package/dist/chunks/{LpLightbox-REei-y5e.js → LpLightbox-a24V_0Wk.js} +19 -7
  38. package/dist/chunks/{LpLogInspector-Bwz351LY.js → LpLogInspector-BhJTJIst.js} +1 -1
  39. package/dist/chunks/{LpLogViewer-BCkqdH66.js → LpLogViewer-BuIzr_6h.js} +4 -4
  40. package/dist/chunks/{LpMediaGallery-BF1Bch3v.js → LpMediaGallery-B7DOV_aL.js} +2 -2
  41. package/dist/chunks/{LpModal-BK2T5uIG.js → LpModal-D1E7rQzw.js} +5 -5
  42. package/dist/chunks/{LpModalNav-Dk4eHpg6.js → LpModalNav-DivqT1NV.js} +5 -4
  43. package/dist/chunks/{LpNotificationBell-CMwUXhFg.js → LpNotificationBell-KRgdRZs-.js} +4 -4
  44. package/dist/chunks/{LpNotificationFeed-BXsRp9jm.js → LpNotificationFeed-CMGYU8c-.js} +5 -5
  45. package/dist/chunks/{LpNumberField-QUMXvpqx.js → LpNumberField-C0LSu-tl.js} +1 -1
  46. package/dist/chunks/{LpPaletteTheme-wiJtP5hV.js → LpPaletteTheme-CLwO-SDf.js} +3 -3
  47. package/dist/chunks/{LpPasswordInput-W9AZfzaL.js → LpPasswordInput-LPVI7D3v.js} +2 -2
  48. package/dist/chunks/{LpPhoneInput-DsRv-Qla.js → LpPhoneInput-BdglZsGH.js} +5 -5
  49. package/dist/chunks/{LpPie-pbrNFbRP.js → LpPie-CsiBXe-e.js} +3 -3
  50. package/dist/chunks/{LpPipeline-BHWmvOiv.js → LpPipeline-DVcoSs--.js} +1 -1
  51. package/dist/chunks/{LpPopover-BQSuxtai.js → LpPopover-w2rr4x7n.js} +2 -2
  52. package/dist/chunks/{LpRadio-CWA5Eb3M.js → LpRadio-4KyxeSz4.js} +1 -1
  53. package/dist/chunks/{LpRadioGroup-D94KMStE.js → LpRadioGroup-Cr_fmrBY.js} +1 -1
  54. package/dist/chunks/{LpRangeSlider-CkP9hYUC.js → LpRangeSlider-DbaITHtC.js} +1 -1
  55. package/dist/chunks/{LpRelativeTime-0zI-44ve.js → LpRelativeTime-CN5bWD73.js} +1 -1
  56. package/dist/chunks/{LpRepeater-DLLcbQ6J.js → LpRepeater-C0rns2xW.js} +1 -1
  57. package/dist/chunks/{LpSecretField-Au7ZQTtm.js → LpSecretField-BwrZ4TfT.js} +5 -5
  58. package/dist/chunks/{LpSection-RKCwB0xN.js → LpSection-CwsfNR7N.js} +1 -1
  59. package/dist/chunks/{LpSegmented-DD8MPj4j.js → LpSegmented-DzFYP0ZF.js} +1 -1
  60. package/dist/chunks/{LpSelect-BeXz1TWh.js → LpSelect-Dffg5r4I.js} +5 -5
  61. package/dist/chunks/{LpSidebar-DUFlf6Uu.js → LpSidebar-DQtCYlT4.js} +4 -4
  62. package/dist/chunks/{LpSidebarNav-C34YEZIR.js → LpSidebarNav-CFcI7--7.js} +1 -1
  63. package/dist/chunks/{LpSidebarRow-BeEGgsZi.js → LpSidebarRow-C5jXpcRL.js} +2 -2
  64. package/dist/chunks/{LpSlider-BCy5rjwK.js → LpSlider-DUd4gXnw.js} +1 -1
  65. package/dist/chunks/{LpStat-eVz7iUfD.js → LpStat-SyVb5JXm.js} +1 -1
  66. package/dist/chunks/{LpSwitch-D7hmVsif.js → LpSwitch-D-mcaA6C.js} +1 -1
  67. package/dist/chunks/{LpTableFilter-BGFNKyUX.js → LpTableFilter-CILHffC1.js} +3 -3
  68. package/dist/chunks/{LpTagsInput-D9uOSlvf.js → LpTagsInput-DD8-xe3F.js} +2 -2
  69. package/dist/chunks/{LpTextarea-DwE-lQt4.js → LpTextarea-CQg-dVxN.js} +1 -1
  70. package/dist/chunks/{LpThemeStudio-COn2H76d.js → LpThemeStudio-BPPctXgd.js} +4 -4
  71. package/dist/chunks/{LpThemeSwitcher-B3R3nNid.js → LpThemeSwitcher-B3c44xFH.js} +4 -4
  72. package/dist/chunks/{LpTimeField-Mi8H1g_9.js → LpTimeField-Dio7Tj9A.js} +1 -1
  73. package/dist/chunks/{LpToaster-DOJn6Vey.js → LpToaster-Cdx1tnHB.js} +2 -2
  74. package/dist/chunks/{LpTooltip-Bz_rrq5S.js → LpTooltip-BKde8Xjv.js} +43 -7
  75. package/dist/chunks/{LpTopologyCanvas-5RFMP4gR.js → LpTopologyCanvas-CQ0l6A5h.js} +3 -3
  76. package/dist/chunks/{LpTour-DUI_hoPv.js → LpTour-BGUKUxSZ.js} +1 -1
  77. package/dist/chunks/{LpTruncate-CynJhsEw.js → LpTruncate-C_C8eiIE.js} +2 -2
  78. package/dist/chunks/{LpUptimeBar-G7PfNJUH.js → LpUptimeBar-Dt6SY_-m.js} +1 -1
  79. package/dist/chunks/{LpVideoCompress-CPUxXh-c.js → LpVideoCompress-CvxNdyjp.js} +2 -2
  80. package/dist/chunks/{LpVideoPlayer-BbCjEQAx.js → LpVideoPlayer-FMuxTAU8.js} +4 -4
  81. package/dist/chunks/{LpWindow-Dp_0nNqg.js → LpWindow-DsPeiDCZ.js} +1 -1
  82. package/dist/chunks/{LpWorkspaceSwitcher-bjkncjSl.js → LpWorkspaceSwitcher-DCIiOQt_.js} +4 -4
  83. package/dist/chunks/{PickerField-CjOTUXDK.js → PickerField-DzF3UVnX.js} +1 -1
  84. package/dist/chunks/{RevealToggle-Bl1NcfxB.js → RevealToggle-BsYxY6Oz.js} +2 -2
  85. package/dist/chunks/{TourCard-BovXtMbO.js → TourCard-yrLqv4Oz.js} +1 -1
  86. package/dist/chunks/{VideoVolume-DE3i1ree.js → VideoVolume-CzL5mZPE.js} +2 -2
  87. package/dist/components/ContextMenuItems.vue.js +1 -1
  88. package/dist/components/DropzoneLinkField.vue.js +1 -1
  89. package/dist/components/IconCloseButton.vue.js +1 -1
  90. package/dist/components/LpActionBar.vue.js +1 -1
  91. package/dist/components/LpAddressInput.vue.js +1 -1
  92. package/dist/components/LpAlert.vue.js +1 -1
  93. package/dist/components/LpAppShell.vue.js +1 -1
  94. package/dist/components/LpAutocomplete.vue.js +1 -1
  95. package/dist/components/LpButton.vue.js +1 -1
  96. package/dist/components/LpChart.vue.js +2 -2
  97. package/dist/components/LpCheckbox.vue.js +1 -1
  98. package/dist/components/LpCodeBlock.vue.js +1 -1
  99. package/dist/components/LpCodeDisplay.vue.js +1 -1
  100. package/dist/components/LpColorPicker.vue.js +1 -1
  101. package/dist/components/LpCommandPalette.vue.d.ts +2 -0
  102. package/dist/components/LpCommandPalette.vue.js +69 -33
  103. package/dist/components/LpConfirmDialog.vue.js +1 -1
  104. package/dist/components/LpConfirmHost.vue.js +1 -1
  105. package/dist/components/LpContextMenu.vue.js +1 -1
  106. package/dist/components/LpContextSwitcher.vue.js +1 -1
  107. package/dist/components/LpCopyButton.vue.js +1 -1
  108. package/dist/components/LpDataList.vue.js +1 -1
  109. package/dist/components/LpDatePicker.vue.js +1 -1
  110. package/dist/components/LpDateRangePicker.vue.js +1 -1
  111. package/dist/components/LpDock.vue.js +1 -1
  112. package/dist/components/LpDrawer.vue.js +1 -1
  113. package/dist/components/LpDropdownMenu.vue.js +1 -1
  114. package/dist/components/LpDropzone.vue.js +5 -5
  115. package/dist/components/LpEditable.vue.js +1 -1
  116. package/dist/components/LpEmptyState.vue.js +1 -1
  117. package/dist/components/LpFileTree.vue.js +1 -1
  118. package/dist/components/LpFileTreeNode.vue.js +1 -1
  119. package/dist/components/LpHintLayer.vue.js +1 -1
  120. package/dist/components/LpHints.vue.js +1 -1
  121. package/dist/components/LpHoverCard.vue.d.ts +3 -3
  122. package/dist/components/LpHoverCard.vue.js +1 -1
  123. package/dist/components/LpImageEditor.vue.js +4 -4
  124. package/dist/components/LpInput.vue.js +1 -1
  125. package/dist/components/LpInspector.vue.js +1 -1
  126. package/dist/components/LpLightbox.vue.js +1 -1
  127. package/dist/components/LpLogInspector.vue.js +1 -1
  128. package/dist/components/LpLogViewer.vue.js +1 -1
  129. package/dist/components/LpMediaGallery.vue.js +1 -1
  130. package/dist/components/LpModal.vue.js +1 -1
  131. package/dist/components/LpModalNav.vue.js +1 -1
  132. package/dist/components/LpNotificationBell.vue.js +1 -1
  133. package/dist/components/LpNotificationFeed.vue.js +1 -1
  134. package/dist/components/LpNumberField.vue.js +1 -1
  135. package/dist/components/LpPaletteTheme.vue.js +1 -1
  136. package/dist/components/LpPasswordInput.vue.js +1 -1
  137. package/dist/components/LpPhoneInput.vue.js +1 -1
  138. package/dist/components/LpPie.vue.js +1 -1
  139. package/dist/components/LpPipeline.vue.js +1 -1
  140. package/dist/components/LpPopover.vue.js +1 -1
  141. package/dist/components/LpRadio.vue.js +1 -1
  142. package/dist/components/LpRadioGroup.vue.js +1 -1
  143. package/dist/components/LpRangeSlider.vue.js +1 -1
  144. package/dist/components/LpRelativeTime.vue.js +1 -1
  145. package/dist/components/LpRepeater.vue.js +1 -1
  146. package/dist/components/LpSecretField.vue.js +1 -1
  147. package/dist/components/LpSection.vue.js +1 -1
  148. package/dist/components/LpSegmented.vue.js +1 -1
  149. package/dist/components/LpSelect.vue.js +1 -1
  150. package/dist/components/LpShortcutsDialog.vue.js +1 -1
  151. package/dist/components/LpSidebar.vue.js +1 -1
  152. package/dist/components/LpSidebarNav.vue.js +1 -1
  153. package/dist/components/LpSidebarRow.vue.js +1 -1
  154. package/dist/components/LpSlider.vue.js +1 -1
  155. package/dist/components/LpStat.vue.js +1 -1
  156. package/dist/components/LpSwitch.vue.js +1 -1
  157. package/dist/components/LpTable.vue.d.ts +7 -0
  158. package/dist/components/LpTable.vue.js +48 -41
  159. package/dist/components/LpTableFilter.vue.js +1 -1
  160. package/dist/components/LpTabs.vue.js +1 -1
  161. package/dist/components/LpTagsInput.vue.js +1 -1
  162. package/dist/components/LpTextarea.vue.js +1 -1
  163. package/dist/components/LpThemeStudio.vue.js +1 -1
  164. package/dist/components/LpThemeSwitcher.vue.js +1 -1
  165. package/dist/components/LpTimeField.vue.js +1 -1
  166. package/dist/components/LpToaster.vue.js +1 -1
  167. package/dist/components/LpTooltip.vue.d.ts +9 -0
  168. package/dist/components/LpTooltip.vue.js +1 -1
  169. package/dist/components/LpTopologyCanvas.vue.js +1 -1
  170. package/dist/components/LpTour.vue.js +1 -1
  171. package/dist/components/LpTruncate.vue.js +1 -1
  172. package/dist/components/LpUptimeBar.vue.js +1 -1
  173. package/dist/components/LpVideoCompress.vue.js +1 -1
  174. package/dist/components/LpVideoPlayer.vue.js +1 -1
  175. package/dist/components/LpVideoTrim.vue.js +4 -4
  176. package/dist/components/LpWindow.vue.js +1 -1
  177. package/dist/components/LpWorkspaceSwitcher.vue.js +1 -1
  178. package/dist/components/PickerField.vue.js +1 -1
  179. package/dist/components/RevealToggle.vue.js +1 -1
  180. package/dist/components/TourCard.vue.js +1 -1
  181. package/dist/components/VideoVolume.vue.js +1 -1
  182. package/dist/components/badge.d.ts +1 -1
  183. package/dist/components/badge.js +1 -1
  184. package/dist/components/dropdown.d.ts +14 -0
  185. package/dist/components/dropdown.js +7 -1
  186. package/dist/components/menuWhen.js +1 -1
  187. package/dist/components/modalDepth.d.ts +1 -0
  188. package/dist/components/modalDepth.js +2 -0
  189. package/dist/composables/useReveal.js +3 -3
  190. package/dist/composables/useTouchHold.d.ts +19 -0
  191. package/dist/composables/useTouchHold.js +60 -0
  192. package/dist/index.js +72 -71
  193. package/package.json +1 -1
  194. package/src/components/ContextMenuItems.vue +2 -1
  195. package/src/components/IconCloseButton.vue +1 -1
  196. package/src/components/LpAlert.vue +1 -1
  197. package/src/components/LpAutocomplete.vue +4 -4
  198. package/src/components/LpButton.vue +1 -1
  199. package/src/components/LpCheckbox.vue +1 -1
  200. package/src/components/LpCodeBlock.vue +2 -2
  201. package/src/components/LpColorPicker.vue +3 -3
  202. package/src/components/LpCommandPalette.vue +89 -7
  203. package/src/components/LpContextMenu.vue +2 -2
  204. package/src/components/LpDataList.vue +1 -1
  205. package/src/components/LpDrawer.vue +7 -4
  206. package/src/components/LpDropdownMenu.vue +2 -2
  207. package/src/components/LpDropzone.vue +2 -2
  208. package/src/components/LpEditable.vue +2 -2
  209. package/src/components/LpEmptyState.vue +1 -1
  210. package/src/components/LpFileTreeNode.vue +1 -1
  211. package/src/components/LpHintLayer.vue +2 -2
  212. package/src/components/LpHoverCard.vue +11 -80
  213. package/src/components/LpImageEditor.vue +1 -1
  214. package/src/components/LpInput.vue +1 -1
  215. package/src/components/LpLightbox.vue +20 -3
  216. package/src/components/LpModal.vue +4 -4
  217. package/src/components/LpModalNav.vue +2 -1
  218. package/src/components/LpNumberField.vue +1 -1
  219. package/src/components/LpPhoneInput.vue +5 -5
  220. package/src/components/LpPopover.vue +2 -2
  221. package/src/components/LpRadio.vue +1 -1
  222. package/src/components/LpRadioGroup.vue +1 -1
  223. package/src/components/LpRangeSlider.vue +1 -1
  224. package/src/components/LpSection.vue +9 -6
  225. package/src/components/LpSegmented.vue +1 -1
  226. package/src/components/LpSelect.vue +4 -4
  227. package/src/components/LpSlider.vue +1 -1
  228. package/src/components/LpStat.vue +1 -1
  229. package/src/components/LpSwitch.vue +1 -1
  230. package/src/components/LpTable.vue +13 -1
  231. package/src/components/LpTableFilter.vue +1 -1
  232. package/src/components/LpTagsInput.vue +2 -2
  233. package/src/components/LpTextarea.vue +1 -1
  234. package/src/components/LpThemeSwitcher.vue +2 -2
  235. package/src/components/LpTimeField.vue +1 -1
  236. package/src/components/LpToaster.vue +1 -1
  237. package/src/components/LpTooltip.vue +59 -5
  238. package/src/components/badge.ts +1 -1
  239. package/src/components/dropdown.ts +24 -0
  240. package/src/components/modalDepth.ts +6 -0
  241. package/src/composables/useReveal.ts +7 -4
  242. package/src/composables/useTouchHold.ts +92 -0
  243. package/src/locales/uk.ts +1 -0
  244. package/src/tokens/utilities.css +34 -0
@@ -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;
@@ -11,17 +11,17 @@
11
11
  * fade before closing the gap and the whole list lurches at the end instead of
12
12
  * gliding.
13
13
  */
14
- .lp-row-enter-active[data-v-c73bcf2c],
15
- .lp-row-leave-active[data-v-c73bcf2c] {
14
+ .lp-row-enter-active[data-v-f0750892],
15
+ .lp-row-leave-active[data-v-f0750892] {
16
16
  transition:
17
17
  opacity var(--duration-fast) var(--ease-emphasized),
18
18
  transform var(--duration-fast) var(--ease-emphasized);
19
19
  }
20
- .lp-row-move[data-v-c73bcf2c] {
20
+ .lp-row-move[data-v-f0750892] {
21
21
  transition: transform var(--duration-medium) var(--ease-emphasized);
22
22
  }
23
- .lp-row-enter-from[data-v-c73bcf2c],
24
- .lp-row-leave-to[data-v-c73bcf2c] {
23
+ .lp-row-enter-from[data-v-f0750892],
24
+ .lp-row-leave-to[data-v-f0750892] {
25
25
  opacity: 0;
26
26
  transform: translateX(-0.5rem);
27
27
  }
@@ -35,7 +35,7 @@
35
35
  * drops out of the table layout entirely. Nothing sits below this row to be
36
36
  * dragged around, so simply not animating its exit costs nothing.
37
37
  */
38
- .lp-row-empty.lp-row-leave-active[data-v-c73bcf2c] {
38
+ .lp-row-empty.lp-row-leave-active[data-v-f0750892] {
39
39
  display: none;
40
40
  }
41
41
 
@@ -54,7 +54,7 @@
54
54
  * once anything is selected. An earlier version collapsed the column to nothing
55
55
  * and floated the hover box over the first cell, where it sat on the text.
56
56
  */
57
- .lp-tick[data-v-c73bcf2c] {
57
+ .lp-tick[data-v-f0750892] {
58
58
  display: flex;
59
59
  align-items: center;
60
60
  max-width: 0;
@@ -66,17 +66,17 @@
66
66
  padding var(--duration-medium) var(--ease-emphasized),
67
67
  opacity var(--duration-fast) ease;
68
68
  }
69
- .lp-tick-open[data-v-c73bcf2c] {
69
+ .lp-tick-open[data-v-f0750892] {
70
70
  max-width: 3.25rem;
71
71
  padding-inline: 1rem;
72
72
  opacity: 1;
73
73
  }
74
- .lp-tick-hidden[data-v-c73bcf2c],
75
- .lp-tick-cue[data-v-c73bcf2c] {
74
+ .lp-tick-hidden[data-v-f0750892],
75
+ .lp-tick-cue[data-v-f0750892] {
76
76
  opacity: 0;
77
77
  }
78
- tr:hover .lp-tick-cue[data-v-c73bcf2c],
79
- .lp-tick-cue[data-v-c73bcf2c]:focus-within {
78
+ tr:hover .lp-tick-cue[data-v-f0750892],
79
+ .lp-tick-cue[data-v-f0750892]:focus-within {
80
80
  opacity: 1;
81
81
  }
82
82
 
@@ -84,15 +84,15 @@ tr:hover .lp-tick-cue[data-v-c73bcf2c],
84
84
  turned down the rows change without animating rather than not changing. */
85
85
  /* Only where there is a hover to reveal it; a finger long-presses instead. */
86
86
  @media (hover: none) {
87
- tr:hover .lp-tick-cue[data-v-c73bcf2c] {
87
+ tr:hover .lp-tick-cue[data-v-f0750892] {
88
88
  opacity: 0;
89
89
  }
90
90
 
91
91
  /* Nor is there anything for the column's width to hold until then: on a
92
92
  touch screen it stays closed until a long press starts selecting, and
93
93
  eases open like the rest of the column. */
94
- .lp-tick-hidden[data-v-c73bcf2c],
95
- .lp-tick-cue[data-v-c73bcf2c] {
94
+ .lp-tick-hidden[data-v-f0750892],
95
+ .lp-tick-cue[data-v-f0750892] {
96
96
  max-width: 0;
97
97
  padding-inline: 0;
98
98
  }
@@ -102,7 +102,7 @@ tr:hover .lp-tick-cue[data-v-c73bcf2c] {
102
102
  * A list line's tick opens from nothing, as the table's column does, so lines
103
103
  * do not carry an empty gap until selection starts.
104
104
  */
105
- .lp-tick-line[data-v-c73bcf2c] {
105
+ .lp-tick-line[data-v-f0750892] {
106
106
  max-width: 2rem;
107
107
  opacity: 1;
108
108
  }
@@ -112,28 +112,28 @@ tr:hover .lp-tick-cue[data-v-c73bcf2c] {
112
112
  * open; a cue shows it only while
113
113
  * the card is pointed at or holds focus, the same rule as a row's.
114
114
  */
115
- .lp-tick-card[data-v-c73bcf2c] {
115
+ .lp-tick-card[data-v-f0750892] {
116
116
  max-width: none;
117
117
  padding-inline: 0;
118
118
  opacity: 1;
119
119
  }
120
- .lp-tick[data-cue][data-v-c73bcf2c] {
120
+ .lp-tick[data-cue][data-v-f0750892] {
121
121
  opacity: 0;
122
122
  }
123
- .lp-item:hover .lp-tick[data-cue][data-v-c73bcf2c],
124
- .lp-tick[data-cue][data-v-c73bcf2c]:focus-within {
123
+ .lp-item:hover .lp-tick[data-cue][data-v-f0750892],
124
+ .lp-tick[data-cue][data-v-f0750892]:focus-within {
125
125
  opacity: 1;
126
126
  }
127
127
  @media (hover: none) {
128
- .lp-item:hover .lp-tick[data-cue][data-v-c73bcf2c] {
128
+ .lp-item:hover .lp-tick[data-cue][data-v-f0750892] {
129
129
  opacity: 0;
130
130
  }
131
131
  }
132
132
  @media (prefers-reduced-motion: reduce) {
133
- .lp-row-enter-active[data-v-c73bcf2c],
134
- .lp-row-leave-active[data-v-c73bcf2c],
135
- .lp-row-move[data-v-c73bcf2c],
136
- .lp-tick[data-v-c73bcf2c] {
133
+ .lp-row-enter-active[data-v-f0750892],
134
+ .lp-row-leave-active[data-v-f0750892],
135
+ .lp-row-move[data-v-f0750892],
136
+ .lp-tick[data-v-f0750892] {
137
137
  transition: none;
138
138
  }
139
139
  }
@@ -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" };