@leavepulse/ui 0.43.3 → 0.44.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 (340) hide show
  1. package/README.md +75 -7
  2. package/dist/assets/{LpCommandPalette-DH7sPcKP.css → LpCommandPalette-DCP5g2ik.css} +21 -21
  3. package/dist/assets/{LpDropzone-BBoWvi-J.css → LpDropzone-i4BdMi1H.css} +12 -12
  4. package/dist/assets/{LpImageEditor-Ct7Y3aNu.css → LpImageEditor-CbMA82g8.css} +6 -6
  5. package/dist/assets/{LpShortcutsDialog-C6YoQ8_M.css → LpShortcutsDialog-ChUyU7oV.css} +7 -7
  6. package/dist/assets/{LpSkeleton-D7xU8IPV.css → LpSkeleton-H3Z5dEIk.css} +4 -1
  7. package/dist/assets/{LpTable-BgPLJOXa.css → LpTable-DDQNdf86.css} +9 -9
  8. package/dist/chunks/ContextMenuItems-CrfeNPWT.js +123 -0
  9. package/dist/chunks/{LayoutCanvas-Dd20boUG.js → LayoutCanvas-D-jPOAvg.js} +26 -9
  10. package/dist/chunks/{LayoutNode-DGpZA9LX.js → LayoutNode-D8Xy9N-o.js} +20 -8
  11. package/dist/chunks/{LpActionBar-BlvtGB2P.js → LpActionBar-BbwCF6l5.js} +24 -10
  12. package/dist/chunks/{LpAddressInput-B-Zvxsn7.js → LpAddressInput-BrOqkZqg.js} +53 -48
  13. package/dist/chunks/{LpAlert-BAYHDSS1.js → LpAlert-DkOIjsbq.js} +15 -8
  14. package/dist/chunks/{LpAppShell-BGQVIY-3.js → LpAppShell-BUKPcHco.js} +51 -24
  15. package/dist/chunks/{LpAutocomplete-DExlIZe_.js → LpAutocomplete-DxV3Y9h4.js} +50 -23
  16. package/dist/chunks/{LpAvatar-B3-xAOH3.js → LpAvatar-ClBbEYZN.js} +17 -8
  17. package/dist/chunks/LpBreadcrumbs-B8IJgFIc.js +95 -0
  18. package/dist/chunks/{LpButton-5VXXCjwF.js → LpButton-kqJBHIIb.js} +44 -14
  19. package/dist/chunks/{LpCard-BhI1N_vL.js → LpCard-CpRByR0q.js} +1 -1
  20. package/dist/chunks/{LpCheckbox-CVccKYaH.js → LpCheckbox-DpqchzH4.js} +7 -3
  21. package/dist/chunks/{LpCodeBlock-Bo0B4TFR.js → LpCodeBlock-DeHJPq7p.js} +48 -16
  22. package/dist/chunks/{LpColorPicker-BlXea7LM.js → LpColorPicker-Bhf1qxhB.js} +32 -9
  23. package/dist/chunks/{LpConfirmDialog-Q-bxff8z.js → LpConfirmDialog-CIUOSnWo.js} +58 -16
  24. package/dist/chunks/LpConfirmHost-CDm0Wtpv.js +49 -0
  25. package/dist/chunks/LpContextMenu-DQw5dGfG.js +68 -0
  26. package/dist/chunks/LpDatePicker-Drirx1AK.js +191 -0
  27. package/dist/chunks/{LpDrawer-BZ6k3hvo.js → LpDrawer-bScx-KMO.js} +63 -26
  28. package/dist/chunks/{LpFileTree-_5vFBgaK.js → LpFileTree-CSI_5SK2.js} +23 -8
  29. package/dist/chunks/{LpFileTreeNode-BdcIYKIE.js → LpFileTreeNode-B4MiSQX2.js} +2 -2
  30. package/dist/chunks/LpFormField-CIk5qosh.js +87 -0
  31. package/dist/chunks/{LpInput-9EXWUM9B.js → LpInput-C0e8y8_d.js} +26 -11
  32. package/dist/chunks/{LpLightbox-2sYVMY-S.js → LpLightbox-Mr0W_6HK.js} +147 -60
  33. package/dist/chunks/{LpLink-DCND-zyu.js → LpLink-Krkjhe_y.js} +15 -6
  34. package/dist/chunks/{LpLogViewer-CaRy5MeS.js → LpLogViewer-YBOaFnc_.js} +68 -34
  35. package/dist/chunks/{LpMapPicker-ul4oYno6.js → LpMapPicker-NUzS9e37.js} +38 -13
  36. package/dist/chunks/{LpMediaGallery-FF-NquIo.js → LpMediaGallery-DfJmMW0I.js} +6 -3
  37. package/dist/chunks/{LpModal-Bt0pQCI_.js → LpModal-DPwGKBPv.js} +49 -26
  38. package/dist/chunks/{LpModalNav-YaifHrXC.js → LpModalNav-DPg5H9f3.js} +9 -6
  39. package/dist/chunks/{LpNotificationBell-DyGGsMAM.js → LpNotificationBell-t5yn-siX.js} +58 -24
  40. package/dist/chunks/{LpNumberField-CWuX08iX.js → LpNumberField-DWnQKktS.js} +20 -7
  41. package/dist/chunks/{LpNumberFlow-amWYaeuA.js → LpNumberFlow-z4WPZcZu.js} +22 -12
  42. package/dist/chunks/{LpOtpInput-y2v-pmiN.js → LpOtpInput-CziPF3Oq.js} +37 -8
  43. package/dist/chunks/{LpPagination-5FxjmmB5.js → LpPagination-DFngX7Xo.js} +30 -19
  44. package/dist/chunks/{LpPasswordInput--sjYCkLS.js → LpPasswordInput-CWVDuBJ5.js} +10 -7
  45. package/dist/chunks/{LpPhoneInput-BDSKVl_z.js → LpPhoneInput-CD-ZTeSd.js} +57 -33
  46. package/dist/chunks/{LpPie-D6OnzwlJ.js → LpPie-BLco31Nx.js} +78 -21
  47. package/dist/chunks/{LpPopover-8268UmlC.js → LpPopover-p_e_shN3.js} +4 -2
  48. package/dist/chunks/{LpProgress-Btq5W4Ut.js → LpProgress-CBU1iI69.js} +5 -4
  49. package/dist/chunks/{LpRadioGroup-xPIuVDO_.js → LpRadioGroup-DmEW0l78.js} +9 -2
  50. package/dist/chunks/{LpSegmented-fV0Sk92p.js → LpSegmented-Dejd7cIx.js} +7 -3
  51. package/dist/chunks/{LpSelect-ANIVtrpM.js → LpSelect-DrRD9I7L.js} +40 -18
  52. package/dist/chunks/{LpSidebar-ClBUwoEz.js → LpSidebar-BgwUNWpJ.js} +30 -22
  53. package/dist/chunks/{LpSidebarNav-llOcs_Fn.js → LpSidebarNav-Bqxz8aWT.js} +14 -9
  54. package/dist/chunks/{LpSkeleton-CTI-vBgW.js → LpSkeleton-BB6XIV-w.js} +1 -1
  55. package/dist/chunks/{LpSlider-BwNIBkAK.js → LpSlider-Cuzmrd7p.js} +7 -2
  56. package/dist/chunks/{LpSparkline-C6xQ2dwv.js → LpSparkline-CB80N8SJ.js} +11 -4
  57. package/dist/chunks/{LpStat-CQaW8R--.js → LpStat-dXtyrdX9.js} +1 -1
  58. package/dist/chunks/{LpSwitch-Blizvqyt.js → LpSwitch-B1aLKulj.js} +40 -26
  59. package/dist/chunks/{LpTableOfContents-CjvxPMpU.js → LpTableOfContents-BUcAfGPQ.js} +36 -41
  60. package/dist/chunks/{LpTabs-Cefe_lys.js → LpTabs-_qMVaZJ6.js} +19 -5
  61. package/dist/chunks/LpTextarea-yP8hGedR.js +77 -0
  62. package/dist/chunks/LpThemeProvider-Wjm7Tuit.js +35 -0
  63. package/dist/chunks/LpThemeSwitcher-CKLc10KZ.js +169 -0
  64. package/dist/chunks/{LpTilt-DuyKbpkA.js → LpTilt-B7KHX1zH.js} +2 -2
  65. package/dist/chunks/{LpTimeField-K6nAGboX.js → LpTimeField-C5HRgS5H.js} +13 -7
  66. package/dist/chunks/{LpToaster-gDB1EaU3.js → LpToaster--oT6lfhL.js} +57 -28
  67. package/dist/chunks/{LpTooltip-hCLPAqMG.js → LpTooltip-CBdzeKNf.js} +13 -6
  68. package/dist/chunks/LpTooltipProvider-CftjV7Xc.js +25 -0
  69. package/dist/chunks/{LpTopologyCanvas-Cm1L39uL.js → LpTopologyCanvas-DocsLal3.js} +6 -1
  70. package/dist/chunks/{LpUptimeBar-DvAMno0S.js → LpUptimeBar-DLtxOMRy.js} +43 -14
  71. package/dist/chunks/{LpThemeSwitcher-Cue-myST.js → useTheme-C8JHUlPM.js} +173 -215
  72. package/dist/component-names.d.ts +1 -1
  73. package/dist/components/ContextMenuItems.vue.d.ts +8 -0
  74. package/dist/components/ContextMenuItems.vue.js +4 -0
  75. package/dist/components/LayoutCanvas.vue.js +1 -1
  76. package/dist/components/LayoutNode.vue.d.ts +4 -0
  77. package/dist/components/LayoutNode.vue.js +1 -1
  78. package/dist/components/LpActionBar.vue.d.ts +3 -0
  79. package/dist/components/LpActionBar.vue.js +1 -1
  80. package/dist/components/LpAddressInput.vue.d.ts +1 -1
  81. package/dist/components/LpAddressInput.vue.js +1 -1
  82. package/dist/components/LpAlert.vue.d.ts +9 -0
  83. package/dist/components/LpAlert.vue.js +1 -1
  84. package/dist/components/LpAppShell.vue.d.ts +10 -0
  85. package/dist/components/LpAppShell.vue.js +1 -1
  86. package/dist/components/LpAutocomplete.vue.d.ts +31 -6
  87. package/dist/components/LpAutocomplete.vue.js +1 -1
  88. package/dist/components/LpAvatar.vue.d.ts +3 -3
  89. package/dist/components/LpAvatar.vue.js +1 -1
  90. package/dist/components/LpBadge.vue.d.ts +2 -2
  91. package/dist/components/LpBreadcrumbs.vue.d.ts +13 -9
  92. package/dist/components/LpBreadcrumbs.vue.js +1 -1
  93. package/dist/components/LpButton.vue.d.ts +35 -98
  94. package/dist/components/LpButton.vue.js +1 -1
  95. package/dist/components/LpCard.vue.js +1 -1
  96. package/dist/components/LpChart.vue.d.ts +31 -2
  97. package/dist/components/LpChart.vue.js +317 -95
  98. package/dist/components/LpCheckbox.vue.js +1 -1
  99. package/dist/components/LpCodeBlock.vue.d.ts +2 -0
  100. package/dist/components/LpCodeBlock.vue.js +1 -1
  101. package/dist/components/LpColorPicker.vue.js +1 -1
  102. package/dist/components/LpCommandPalette.vue.d.ts +8 -10
  103. package/dist/components/LpCommandPalette.vue.js +88 -78
  104. package/dist/components/LpConfirmDialog.vue.d.ts +15 -3
  105. package/dist/components/LpConfirmDialog.vue.js +1 -1
  106. package/dist/components/LpConfirmHost.vue.d.ts +9 -0
  107. package/dist/components/LpConfirmHost.vue.js +4 -0
  108. package/dist/components/LpContextMenu.vue.d.ts +3 -5
  109. package/dist/components/LpContextMenu.vue.js +1 -1
  110. package/dist/components/LpDatePicker.vue.d.ts +24 -6
  111. package/dist/components/LpDatePicker.vue.js +1 -1
  112. package/dist/components/LpDrawer.vue.d.ts +10 -0
  113. package/dist/components/LpDrawer.vue.js +1 -1
  114. package/dist/components/LpDropzone.vue.js +22 -6
  115. package/dist/components/LpFileTree.vue.d.ts +11 -2
  116. package/dist/components/LpFileTree.vue.js +1 -1
  117. package/dist/components/LpFileTreeNode.vue.js +1 -1
  118. package/dist/components/LpFormField.vue.d.ts +9 -0
  119. package/dist/components/LpFormField.vue.js +1 -1
  120. package/dist/components/LpImageEditor.vue.js +92 -57
  121. package/dist/components/LpInput.vue.d.ts +3 -3
  122. package/dist/components/LpInput.vue.js +1 -1
  123. package/dist/components/LpLightbox.vue.d.ts +17 -0
  124. package/dist/components/LpLightbox.vue.js +1 -1
  125. package/dist/components/LpLink.vue.d.ts +11 -11
  126. package/dist/components/LpLink.vue.js +1 -1
  127. package/dist/components/LpLogViewer.vue.d.ts +20 -2
  128. package/dist/components/LpLogViewer.vue.js +1 -1
  129. package/dist/components/LpMapPicker.vue.d.ts +4 -4
  130. package/dist/components/LpMapPicker.vue.js +1 -1
  131. package/dist/components/LpMediaGallery.vue.js +1 -1
  132. package/dist/components/LpModal.vue.d.ts +16 -6
  133. package/dist/components/LpModal.vue.js +1 -1
  134. package/dist/components/LpModalNav.vue.d.ts +0 -1
  135. package/dist/components/LpModalNav.vue.js +1 -1
  136. package/dist/components/LpNotificationBell.vue.d.ts +11 -2
  137. package/dist/components/LpNotificationBell.vue.js +1 -1
  138. package/dist/components/LpNumberField.vue.d.ts +2 -0
  139. package/dist/components/LpNumberField.vue.js +1 -1
  140. package/dist/components/LpNumberFlow.vue.js +1 -1
  141. package/dist/components/LpOtpInput.vue.js +1 -1
  142. package/dist/components/LpPagination.vue.d.ts +2 -0
  143. package/dist/components/LpPagination.vue.js +1 -1
  144. package/dist/components/LpPasswordInput.vue.js +1 -1
  145. package/dist/components/LpPhoneInput.vue.js +1 -1
  146. package/dist/components/LpPie.vue.d.ts +21 -2
  147. package/dist/components/LpPie.vue.js +1 -1
  148. package/dist/components/LpPopover.vue.d.ts +2 -0
  149. package/dist/components/LpPopover.vue.js +1 -1
  150. package/dist/components/LpProgress.vue.js +1 -1
  151. package/dist/components/LpRadioGroup.vue.js +1 -1
  152. package/dist/components/LpSection.vue.d.ts +1 -1
  153. package/dist/components/LpSegmented.vue.d.ts +5 -0
  154. package/dist/components/LpSegmented.vue.js +1 -1
  155. package/dist/components/LpSelect.vue.d.ts +1 -0
  156. package/dist/components/LpSelect.vue.js +1 -1
  157. package/dist/components/LpShortcutsDialog.vue.d.ts +1 -1
  158. package/dist/components/LpShortcutsDialog.vue.js +11 -8
  159. package/dist/components/LpSidebar.vue.d.ts +6 -2
  160. package/dist/components/LpSidebar.vue.js +1 -1
  161. package/dist/components/LpSidebarNav.vue.js +1 -1
  162. package/dist/components/LpSkeleton.vue.js +1 -1
  163. package/dist/components/LpSlider.vue.js +1 -1
  164. package/dist/components/LpSparkline.vue.d.ts +1 -0
  165. package/dist/components/LpSparkline.vue.js +1 -1
  166. package/dist/components/LpStat.vue.js +1 -1
  167. package/dist/components/LpSwitch.vue.js +1 -1
  168. package/dist/components/LpTable.vue.d.ts +23 -1
  169. package/dist/components/LpTable.vue.js +74 -36
  170. package/dist/components/LpTableOfContents.vue.d.ts +4 -2
  171. package/dist/components/LpTableOfContents.vue.js +1 -1
  172. package/dist/components/LpTabs.vue.d.ts +2 -0
  173. package/dist/components/LpTabs.vue.js +1 -1
  174. package/dist/components/LpTextarea.vue.d.ts +19 -6
  175. package/dist/components/LpTextarea.vue.js +1 -1
  176. package/dist/components/LpThemeProvider.vue.d.ts +22 -0
  177. package/dist/components/LpThemeProvider.vue.js +4 -0
  178. package/dist/components/LpThemeSwitcher.vue.d.ts +13 -0
  179. package/dist/components/LpThemeSwitcher.vue.js +1 -1
  180. package/dist/components/LpTilt.vue.js +1 -1
  181. package/dist/components/LpTimeField.vue.js +1 -1
  182. package/dist/components/LpToaster.vue.d.ts +6 -1
  183. package/dist/components/LpToaster.vue.js +1 -1
  184. package/dist/components/LpTooltip.vue.d.ts +1 -2
  185. package/dist/components/LpTooltip.vue.js +1 -1
  186. package/dist/components/LpTooltipProvider.vue.d.ts +22 -0
  187. package/dist/components/LpTooltipProvider.vue.js +4 -0
  188. package/dist/components/LpTopologyCanvas.vue.js +1 -1
  189. package/dist/components/LpUptimeBar.vue.d.ts +4 -0
  190. package/dist/components/LpUptimeBar.vue.js +1 -1
  191. package/dist/components/chart.d.ts +32 -1
  192. package/dist/components/chart.js +39 -4
  193. package/dist/components/codeHighlight.d.ts +6 -0
  194. package/dist/components/codeHighlight.js +92 -20
  195. package/dist/components/color.d.ts +1 -1
  196. package/dist/components/color.js +20 -9
  197. package/dist/components/commandSearch.d.ts +0 -1
  198. package/dist/components/commandSearch.js +1 -17
  199. package/dist/components/confirm.d.ts +25 -0
  200. package/dist/components/confirm.js +26 -0
  201. package/dist/components/countries.d.ts +6 -0
  202. package/dist/components/countries.js +7 -0
  203. package/dist/components/fileTree.js +16 -7
  204. package/dist/components/imageCrop.d.ts +42 -0
  205. package/dist/components/imageCrop.js +47 -0
  206. package/dist/components/link.d.ts +12 -0
  207. package/dist/components/link.js +19 -0
  208. package/dist/components/modalDepth.d.ts +18 -2
  209. package/dist/components/modalDepth.js +17 -5
  210. package/dist/components/otp.d.ts +5 -0
  211. package/dist/components/otp.js +10 -0
  212. package/dist/components/sidebar.d.ts +7 -1
  213. package/dist/components/tableSort.d.ts +8 -0
  214. package/dist/components/tableSort.js +31 -0
  215. package/dist/composables/useField.d.ts +34 -0
  216. package/dist/composables/useField.js +45 -0
  217. package/dist/composables/useFormDraft.d.ts +10 -3
  218. package/dist/composables/useFormDraft.js +9 -14
  219. package/dist/composables/useHotkeys.d.ts +17 -1
  220. package/dist/composables/useHotkeys.js +55 -18
  221. package/dist/composables/useInputFilter.d.ts +17 -0
  222. package/dist/composables/useInputFilter.js +47 -10
  223. package/dist/composables/useLpConfig.d.ts +24 -0
  224. package/dist/composables/useLpConfig.js +44 -0
  225. package/dist/composables/useRovingFocus.js +7 -0
  226. package/dist/composables/useTilt.d.ts +2 -2
  227. package/dist/composables/useTilt.js +5 -6
  228. package/dist/composables/useToast.d.ts +20 -0
  229. package/dist/composables/useToast.js +28 -4
  230. package/dist/composables/useZoomPan.d.ts +3 -3
  231. package/dist/composables/useZoomPan.js +4 -4
  232. package/dist/index.d.ts +33 -3
  233. package/dist/index.js +185 -139
  234. package/dist/layout/tree.d.ts +2 -0
  235. package/dist/layout/tree.js +16 -1
  236. package/dist/layout/useLayout.d.ts +15 -0
  237. package/dist/layout/useLayout.js +41 -14
  238. package/dist/theme/useTheme.d.ts +32 -9
  239. package/package.json +8 -7
  240. package/src/component-names.ts +5 -7
  241. package/src/components/ContextMenuItems.vue +88 -0
  242. package/src/components/LayoutCanvas.vue +26 -6
  243. package/src/components/LayoutNode.vue +19 -2
  244. package/src/components/LpActionBar.vue +30 -7
  245. package/src/components/LpAddressInput.vue +57 -41
  246. package/src/components/LpAlert.vue +16 -3
  247. package/src/components/LpAppShell.vue +45 -12
  248. package/src/components/LpAutocomplete.vue +46 -10
  249. package/src/components/LpAvatar.vue +19 -5
  250. package/src/components/LpBreadcrumbs.vue +65 -41
  251. package/src/components/LpButton.vue +59 -13
  252. package/src/components/LpChart.vue +272 -28
  253. package/src/components/LpCheckbox.vue +7 -3
  254. package/src/components/LpCodeBlock.vue +50 -14
  255. package/src/components/LpColorPicker.vue +39 -9
  256. package/src/components/LpCommandPalette.vue +36 -25
  257. package/src/components/LpConfirmDialog.vue +68 -17
  258. package/src/components/LpConfirmHost.vue +59 -0
  259. package/src/components/LpContextMenu.vue +14 -115
  260. package/src/components/LpDatePicker.vue +99 -68
  261. package/src/components/LpDrawer.vue +56 -19
  262. package/src/components/LpDropzone.vue +21 -4
  263. package/src/components/LpFileTree.vue +33 -7
  264. package/src/components/LpFormField.vue +30 -7
  265. package/src/components/LpImageEditor.vue +96 -57
  266. package/src/components/LpInput.vue +18 -7
  267. package/src/components/LpLightbox.vue +140 -29
  268. package/src/components/LpLink.vue +24 -13
  269. package/src/components/LpLogViewer.vue +86 -17
  270. package/src/components/LpMapPicker.vue +36 -13
  271. package/src/components/LpMediaGallery.vue +8 -2
  272. package/src/components/LpModal.vue +53 -27
  273. package/src/components/LpModalNav.vue +5 -2
  274. package/src/components/LpNotificationBell.vue +63 -17
  275. package/src/components/LpNumberField.vue +21 -6
  276. package/src/components/LpNumberFlow.vue +26 -10
  277. package/src/components/LpOtpInput.vue +43 -8
  278. package/src/components/LpPagination.vue +23 -7
  279. package/src/components/LpPasswordInput.vue +4 -1
  280. package/src/components/LpPhoneInput.vue +53 -27
  281. package/src/components/LpPie.vue +94 -15
  282. package/src/components/LpPopover.vue +3 -0
  283. package/src/components/LpProgress.vue +5 -3
  284. package/src/components/LpRadioGroup.vue +9 -2
  285. package/src/components/LpSegmented.vue +12 -2
  286. package/src/components/LpSelect.vue +0 -0
  287. package/src/components/LpShortcutsDialog.vue +8 -3
  288. package/src/components/LpSidebar.vue +14 -9
  289. package/src/components/LpSidebarNav.vue +17 -5
  290. package/src/components/LpSkeleton.vue +4 -1
  291. package/src/components/LpSlider.vue +7 -1
  292. package/src/components/LpSparkline.vue +11 -3
  293. package/src/components/LpSwitch.vue +30 -7
  294. package/src/components/LpTable.vue +91 -32
  295. package/src/components/LpTableOfContents.vue +50 -32
  296. package/src/components/LpTabs.vue +23 -6
  297. package/src/components/LpTextarea.vue +44 -6
  298. package/src/components/LpThemeProvider.vue +41 -0
  299. package/src/components/LpThemeSwitcher.vue +64 -17
  300. package/src/components/LpTilt.vue +2 -2
  301. package/src/components/LpTimeField.vue +14 -3
  302. package/src/components/LpToaster.vue +66 -26
  303. package/src/components/LpTooltip.vue +22 -5
  304. package/src/components/LpTooltipProvider.vue +24 -0
  305. package/src/components/LpTopologyCanvas.vue +12 -1
  306. package/src/components/LpUptimeBar.vue +46 -8
  307. package/src/components/chart.ts +77 -5
  308. package/src/components/codeHighlight.ts +111 -15
  309. package/src/components/color.ts +30 -9
  310. package/src/components/commandSearch.ts +0 -17
  311. package/src/components/confirm.ts +58 -0
  312. package/src/components/countries.ts +12 -0
  313. package/src/components/fileTree.ts +19 -7
  314. package/src/components/imageCrop.ts +107 -0
  315. package/src/components/link.ts +34 -0
  316. package/src/components/modalDepth.ts +48 -6
  317. package/src/components/otp.ts +16 -0
  318. package/src/components/sidebar.ts +7 -1
  319. package/src/components/tableSort.ts +37 -0
  320. package/src/composables/useField.ts +79 -0
  321. package/src/composables/useFormDraft.ts +25 -20
  322. package/src/composables/useHotkeys.ts +89 -18
  323. package/src/composables/useInputFilter.ts +77 -14
  324. package/src/composables/useLpConfig.ts +87 -0
  325. package/src/composables/useRovingFocus.ts +11 -0
  326. package/src/composables/useTilt.ts +5 -6
  327. package/src/composables/useToast.ts +56 -4
  328. package/src/composables/useZoomPan.ts +6 -6
  329. package/src/index.ts +38 -3
  330. package/src/layout/tree.ts +30 -0
  331. package/src/layout/useLayout.ts +68 -18
  332. package/src/nuxt.ts +59 -17
  333. package/src/runtime/config.plugin.ts +14 -0
  334. package/src/runtime/theme.plugin.ts +42 -22
  335. package/src/theme/useTheme.ts +206 -100
  336. package/dist/chunks/LpBreadcrumbs-p4jHe_V-.js +0 -62
  337. package/dist/chunks/LpContextMenu-CwW1QXe_.js +0 -217
  338. package/dist/chunks/LpDatePicker-CwOToxGq.js +0 -164
  339. package/dist/chunks/LpFormField-CazBc2-a.js +0 -62
  340. package/dist/chunks/LpTextarea-t7F6gv8E.js +0 -47
package/dist/index.js CHANGED
@@ -1,97 +1,106 @@
1
- import { _ } from "./chunks/LayoutCanvas-Dd20boUG.js";
2
- import { _ as _2 } from "./chunks/LpAddressInput-B-Zvxsn7.js";
3
- import { _ as _3 } from "./chunks/LpMapPicker-ul4oYno6.js";
1
+ import { _ } from "./chunks/LayoutCanvas-D-jPOAvg.js";
2
+ import { _ as _2 } from "./chunks/LpAddressInput-BrOqkZqg.js";
3
+ import { _ as _3 } from "./chunks/LpMapPicker-NUzS9e37.js";
4
4
  import { OSM_TILES, createNominatimProvider, emptyAddress, formatAddress, project, tileUrl, unproject } from "./components/address.js";
5
- import { _ as _4 } from "./chunks/LpActionBar-BlvtGB2P.js";
6
- import { _ as _5 } from "./chunks/LpAlert-BAYHDSS1.js";
7
- import { _ as _6 } from "./chunks/LpAppShell-BGQVIY-3.js";
8
- import { _ as _7 } from "./chunks/LpAutocomplete-DExlIZe_.js";
9
- import { _ as _8 } from "./chunks/LpAvatar-B3-xAOH3.js";
5
+ import { _ as _4 } from "./chunks/LpActionBar-BbwCF6l5.js";
6
+ import { _ as _5 } from "./chunks/LpAlert-DkOIjsbq.js";
7
+ import { _ as _6 } from "./chunks/LpAppShell-BUKPcHco.js";
8
+ import { _ as _7 } from "./chunks/LpAutocomplete-DxV3Y9h4.js";
9
+ import { _ as _8 } from "./chunks/LpAvatar-ClBbEYZN.js";
10
10
  import { _ as _9 } from "./chunks/LpBadge-Fe0D1bYx.js";
11
- import { _ as _10 } from "./chunks/LpBreadcrumbs-p4jHe_V-.js";
12
- import { _ as _11 } from "./chunks/LpButton-5VXXCjwF.js";
11
+ import { _ as _10 } from "./chunks/LpBreadcrumbs-B8IJgFIc.js";
12
+ import { _ as _11 } from "./chunks/LpButton-kqJBHIIb.js";
13
13
  import { _ as _12 } from "./chunks/LpCalendar-B7Ko5RdR.js";
14
- import { _ as _13 } from "./chunks/LpCard-BhI1N_vL.js";
14
+ import { _ as _13 } from "./chunks/LpCard-CpRByR0q.js";
15
15
  import { default as default2 } from "./components/LpChart.vue.js";
16
- import { CHART_PALETTE, axisTicks, formatTick, niceScale, resolveSlices } from "./components/chart.js";
17
- import { _ as _14 } from "./chunks/LpCheckbox-CVccKYaH.js";
18
- import { _ as _15 } from "./chunks/LpCodeBlock-Bo0B4TFR.js";
19
- import { _ as _16 } from "./chunks/LpColorPicker-BlXea7LM.js";
16
+ import { CHART_PALETTE, axisTicks, chartSummary, formatTick, markerIndex, niceScale, resolveSlices } from "./components/chart.js";
17
+ import { _ as _14 } from "./chunks/LpCheckbox-DpqchzH4.js";
18
+ import { _ as _15 } from "./chunks/LpCodeBlock-DeHJPq7p.js";
19
+ import { tokenizeLines } from "./components/codeHighlight.js";
20
+ import { _ as _16 } from "./chunks/LpColorPicker-Bhf1qxhB.js";
20
21
  import { DEFAULT_SWATCHES, clampHsv, formatColor, hsvToHsl, hsvToRgb, isLight, normalizeHue, opaqueCss, parseColor, parseHex, rgbToHex, rgbToHsv } from "./components/color.js";
21
22
  import { default as default3 } from "./components/LpCommandPalette.vue.js";
22
- import { parseCommandQuery, rankCommandItems, swapCommandTerms } from "./components/commandSearch.js";
23
- import { _ as _17 } from "./chunks/LpConfirmDialog-Q-bxff8z.js";
24
- import { _ as _18 } from "./chunks/LpContextMenu-CwW1QXe_.js";
25
- import { _ as _19 } from "./chunks/LpDatePicker-CwOToxGq.js";
26
- import { _ as _20 } from "./chunks/LpDisclosure-ChQYmjlR.js";
27
- import { _ as _21 } from "./chunks/LpDivider-CUX46KR0.js";
28
- import { _ as _22 } from "./chunks/LpDrawer-BZ6k3hvo.js";
29
- import { _ as _23 } from "./chunks/LpDropdownMenu-DJpoqRCb.js";
23
+ import { parseCommandQuery, rankCommandItems } from "./components/commandSearch.js";
24
+ import { _ as _17 } from "./chunks/LpConfirmDialog-CIUOSnWo.js";
25
+ import { _ as _18 } from "./chunks/LpConfirmHost-CDm0Wtpv.js";
26
+ import { confirm, useConfirm } from "./components/confirm.js";
27
+ import { _ as _19 } from "./chunks/LpContextMenu-DQw5dGfG.js";
28
+ import { _ as _20 } from "./chunks/LpDatePicker-Drirx1AK.js";
29
+ import { _ as _21 } from "./chunks/LpDisclosure-ChQYmjlR.js";
30
+ import { _ as _22 } from "./chunks/LpDivider-CUX46KR0.js";
31
+ import { _ as _23 } from "./chunks/LpDrawer-bScx-KMO.js";
32
+ import { _ as _24 } from "./chunks/LpDropdownMenu-DJpoqRCb.js";
30
33
  import { default as default4 } from "./components/LpDropzone.vue.js";
31
- import { _ as _24 } from "./chunks/LpEmptyState-Dsdqz1Wj.js";
32
- import { _ as _25 } from "./chunks/LpFileTree-_5vFBgaK.js";
34
+ import { _ as _25 } from "./chunks/LpEmptyState-Dsdqz1Wj.js";
35
+ import { _ as _26 } from "./chunks/LpFileTree-CSI_5SK2.js";
33
36
  import { ancestorIds, checkStateOf, checkedCount, computeStats, fileIcon, formatModified, formatSize, sortNodes, subtreeIds, subtreeSize } from "./components/fileTree.js";
34
- import { _ as _26 } from "./chunks/LpFormField-CazBc2-a.js";
35
- import { _ as _27 } from "./chunks/LpIcon-CCnX5_2j.js";
37
+ import { _ as _27 } from "./chunks/LpFormField-CIk5qosh.js";
38
+ import { _ as _28 } from "./chunks/LpIcon-CCnX5_2j.js";
36
39
  import { default as default5 } from "./components/LpImageEditor.vue.js";
37
- import { _ as _28 } from "./chunks/LpInfraNode-Ds_8SZgN.js";
38
- import { _ as _29 } from "./chunks/LpInput-9EXWUM9B.js";
39
- import { _ as _30 } from "./chunks/LpLightbox-2sYVMY-S.js";
40
+ import { _ as _29 } from "./chunks/LpInfraNode-Ds_8SZgN.js";
41
+ import { _ as _30 } from "./chunks/LpInput-C0e8y8_d.js";
42
+ import { _ as _31 } from "./chunks/LpLightbox-Mr0W_6HK.js";
40
43
  import { fileNameOf } from "./components/lightbox.js";
41
- import { _ as _31 } from "./chunks/LpLink-DCND-zyu.js";
42
- import { _ as _32 } from "./chunks/LpLogViewer-CaRy5MeS.js";
43
- import { _ as _33 } from "./chunks/LpMediaGallery-FF-NquIo.js";
44
- import { _ as _34 } from "./chunks/LpModal-Bt0pQCI_.js";
45
- import { _ as _35 } from "./chunks/LpModalNav-YaifHrXC.js";
46
- import { _ as _36 } from "./chunks/LpNotificationBell-DyGGsMAM.js";
47
- import { _ as _37 } from "./chunks/LpNumberField-CWuX08iX.js";
48
- import { _ as _38 } from "./chunks/LpTimeField-K6nAGboX.js";
49
- import { _ as _39 } from "./chunks/LpNumberFlow-amWYaeuA.js";
50
- import { _ as _40 } from "./chunks/LpOtpInput-y2v-pmiN.js";
51
- import { _ as _41 } from "./chunks/LpPagination-5FxjmmB5.js";
52
- import { _ as _42 } from "./chunks/LpPasswordInput--sjYCkLS.js";
53
- import { _ as _43 } from "./chunks/LpPie-D6OnzwlJ.js";
54
- import { _ as _44 } from "./chunks/LpPhoneInput-BDSKVl_z.js";
55
- import { flagEmoji, loadCountries, matchCountryByValue } from "./components/countries.js";
56
- import { _ as _45 } from "./chunks/LpPopover-8268UmlC.js";
57
- import { _ as _46 } from "./chunks/LpProgress-Btq5W4Ut.js";
58
- import { _ as _47 } from "./chunks/LpRadio-B5AfqTpZ.js";
59
- import { _ as _48 } from "./chunks/LpRadioGroup-xPIuVDO_.js";
60
- import { _ as _49 } from "./chunks/LpRollingText-CM5gkSeF.js";
61
- import { _ as _50 } from "./chunks/LpScrollArea-D8xyKXcF.js";
62
- import { _ as _51 } from "./chunks/LpSegmented-fV0Sk92p.js";
63
- import { _ as _52 } from "./chunks/LpSection-aM6J_u51.js";
64
- import { _ as _53 } from "./chunks/LpSelect-ANIVtrpM.js";
65
- import { _ as _54 } from "./chunks/LpServiceNode-D8uJ8sGk.js";
66
- import { _ as _55 } from "./chunks/LpShift-DXNsauQZ.js";
44
+ import { _ as _32 } from "./chunks/LpLink-Krkjhe_y.js";
45
+ import { _ as _33 } from "./chunks/LpLogViewer-YBOaFnc_.js";
46
+ import { _ as _34 } from "./chunks/LpMediaGallery-DfJmMW0I.js";
47
+ import { _ as _35 } from "./chunks/LpModal-DPwGKBPv.js";
48
+ import { _ as _36 } from "./chunks/LpModalNav-DPg5H9f3.js";
49
+ import { _ as _37 } from "./chunks/LpNotificationBell-t5yn-siX.js";
50
+ import { _ as _38 } from "./chunks/LpNumberField-DWnQKktS.js";
51
+ import { _ as _39 } from "./chunks/LpTimeField-C5HRgS5H.js";
52
+ import { _ as _40 } from "./chunks/LpNumberFlow-z4WPZcZu.js";
53
+ import { _ as _41 } from "./chunks/LpOtpInput-CziPF3Oq.js";
54
+ import { _ as _42 } from "./chunks/LpPagination-DFngX7Xo.js";
55
+ import { _ as _43 } from "./chunks/LpPasswordInput-CWVDuBJ5.js";
56
+ import { _ as _44 } from "./chunks/LpPie-BLco31Nx.js";
57
+ import { _ as _45 } from "./chunks/LpPhoneInput-CD-ZTeSd.js";
58
+ import { filterCountries, flagEmoji, loadCountries, matchCountryByValue } from "./components/countries.js";
59
+ import { _ as _46 } from "./chunks/LpPopover-p_e_shN3.js";
60
+ import { _ as _47 } from "./chunks/LpProgress-CBU1iI69.js";
61
+ import { _ as _48 } from "./chunks/LpRadio-B5AfqTpZ.js";
62
+ import { _ as _49 } from "./chunks/LpRadioGroup-DmEW0l78.js";
63
+ import { _ as _50 } from "./chunks/LpRollingText-CM5gkSeF.js";
64
+ import { _ as _51 } from "./chunks/LpScrollArea-D8xyKXcF.js";
65
+ import { _ as _52 } from "./chunks/LpSegmented-Dejd7cIx.js";
66
+ import { _ as _53 } from "./chunks/LpSection-aM6J_u51.js";
67
+ import { _ as _54 } from "./chunks/LpSelect-DrRD9I7L.js";
68
+ import { _ as _55 } from "./chunks/LpServiceNode-D8uJ8sGk.js";
69
+ import { _ as _56 } from "./chunks/LpShift-DXNsauQZ.js";
67
70
  import { default as default6 } from "./components/LpShortcutsDialog.vue.js";
68
- import { _ as _56 } from "./chunks/LpSidebar-ClBUwoEz.js";
69
- import { _ as _57 } from "./chunks/LpSkeleton-CTI-vBgW.js";
70
- import { _ as _58 } from "./chunks/LpSlider-BwNIBkAK.js";
71
- import { _ as _59 } from "./chunks/LpSparkline-C6xQ2dwv.js";
72
- import { _ as _60 } from "./chunks/LpStat-CQaW8R--.js";
73
- import { _ as _61 } from "./chunks/LpStepper-Bk-XaQYU.js";
74
- import { _ as _62 } from "./chunks/LpSwitch-Blizvqyt.js";
71
+ import { _ as _57 } from "./chunks/LpSidebar-BgwUNWpJ.js";
72
+ import { _ as _58 } from "./chunks/LpSkeleton-BB6XIV-w.js";
73
+ import { _ as _59 } from "./chunks/LpSlider-Cuzmrd7p.js";
74
+ import { _ as _60 } from "./chunks/LpSparkline-CB80N8SJ.js";
75
+ import { _ as _61 } from "./chunks/LpStat-dXtyrdX9.js";
76
+ import { _ as _62 } from "./chunks/LpStepper-Bk-XaQYU.js";
77
+ import { _ as _63 } from "./chunks/LpSwitch-B1aLKulj.js";
75
78
  import { default as default7 } from "./components/LpTable.vue.js";
76
- import { _ as _63 } from "./chunks/LpTableOfContents-CjvxPMpU.js";
77
- import { _ as _64 } from "./chunks/LpTabs-Cefe_lys.js";
78
- import { _ as _65 } from "./chunks/LpTextarea-t7F6gv8E.js";
79
- import { p as presets, a as parseTheme, s as serializeTheme } from "./chunks/LpThemeSwitcher-Cue-myST.js";
80
- import { D, _ as _66, N, T, b, c, d, e, f, g, i, l, h, j, n, r, t, k, m, u, v } from "./chunks/LpThemeSwitcher-Cue-myST.js";
81
- import { _ as _67 } from "./chunks/LpTilt-DuyKbpkA.js";
82
- import { _ as _68 } from "./chunks/LpToaster-gDB1EaU3.js";
83
- import { _ as _69 } from "./chunks/LpTooltip-hCLPAqMG.js";
84
- import { _ as _70 } from "./chunks/LpTopologyCanvas-Cm1L39uL.js";
85
- import { _ as _71 } from "./chunks/LpUptimeBar-DvAMno0S.js";
79
+ import { compareValues } from "./components/tableSort.js";
80
+ import { _ as _64 } from "./chunks/LpTableOfContents-BUcAfGPQ.js";
81
+ import { _ as _65 } from "./chunks/LpTabs-_qMVaZJ6.js";
82
+ import { _ as _66 } from "./chunks/LpTextarea-yP8hGedR.js";
83
+ import { _ as _67 } from "./chunks/LpThemeSwitcher-CKLc10KZ.js";
84
+ import { _ as _68 } from "./chunks/LpTilt-B7KHX1zH.js";
85
+ import { _ as _69 } from "./chunks/LpToaster--oT6lfhL.js";
86
+ import { _ as _70 } from "./chunks/LpTooltip-CBdzeKNf.js";
87
+ import { _ as _71 } from "./chunks/LpTooltipProvider-CftjV7Xc.js";
88
+ import { _ as _72 } from "./chunks/LpTopologyCanvas-DocsLal3.js";
89
+ import { _ as _73 } from "./chunks/LpUptimeBar-DLtxOMRy.js";
86
90
  import { deserializeLayout, serializeLayout } from "./layout/tree.js";
87
91
  import { addLeaf, addTab, countBlocks, countLeaves, makeLayout, moveLeaf, removeBlock, removeLeaf, reorderTab, resizeAt, setActiveTab } from "./layout/tree.js";
88
92
  import { blockTitle, defineBlocks } from "./layout/registry.js";
89
- import { useLayout } from "./layout/useLayout.js";
93
+ import { layoutController, useLayout } from "./layout/useLayout.js";
94
+ import { p as presets, a as parseTheme, s as serializeTheme } from "./chunks/useTheme-C8JHUlPM.js";
95
+ import { D, N, T, b, c, d, e, f, g, h, i, l, j, k, n, m, o, r, t, q, v, w, u, x } from "./chunks/useTheme-C8JHUlPM.js";
90
96
  import { useClipboard } from "./composables/useClipboard.js";
91
- import { activeShortcuts, appleModifierLabel, isAppleKeyboard, mergeShortcutGroups, useHotkeys } from "./composables/useHotkeys.js";
97
+ import { activeShortcuts, appleModifierLabel, isAppleKeyboard, matchesHotkey, mergeShortcutGroups, useAppleKeyboard, useHotkeys } from "./composables/useHotkeys.js";
98
+ import { anyModalOpen, topModalElement, useModalLayer } from "./components/modalDepth.js";
92
99
  import { provideGlass, useGlass } from "./composables/useGlass.js";
100
+ import { LP_CONFIG, lpConfig, mergeConfig, provideLpConfig, useLabels, useLinkComponent, useLpConfig } from "./composables/useLpConfig.js";
93
101
  import { mergeClass, useMergedAttrs, useMergedClass } from "./composables/useMergedClass.js";
94
- import { useInputFilter } from "./composables/useInputFilter.js";
102
+ import { anchorPattern, stripDisallowed, useInputFilter } from "./composables/useInputFilter.js";
103
+ import { LP_FIELD, fieldMessageId, provideField, useField, useFieldControl } from "./composables/useField.js";
95
104
  import { easeOut, easeTravel, easingToken, prefersReducedMotion } from "./composables/easing.js";
96
105
  import { useReveal } from "./composables/useReveal.js";
97
106
  import { useAsyncTask } from "./composables/useAsyncTask.js";
@@ -102,6 +111,8 @@ import { useShift } from "./composables/useShift.js";
102
111
  import { useTilt } from "./composables/useTilt.js";
103
112
  import { useZoomPan } from "./composables/useZoomPan.js";
104
113
  import { useToast } from "./composables/useToast.js";
114
+ import { _ as _74 } from "./chunks/LpThemeProvider-Wjm7Tuit.js";
115
+ import { isInternalHref, resolveLink } from "./components/link.js";
105
116
  function defineTheme(base, overrides = {}) {
106
117
  const src = typeof base === "string" ? presets[base] : base;
107
118
  return {
@@ -136,6 +147,8 @@ export {
136
147
  CHART_PALETTE,
137
148
  D as DEFAULT_SURFACE,
138
149
  DEFAULT_SWATCHES,
150
+ LP_CONFIG,
151
+ LP_FIELD,
139
152
  _ as LayoutCanvas,
140
153
  _4 as LpActionBar,
141
154
  _2 as LpAddressInput,
@@ -154,65 +167,68 @@ export {
154
167
  _16 as LpColorPicker,
155
168
  default3 as LpCommandPalette,
156
169
  _17 as LpConfirmDialog,
157
- _18 as LpContextMenu,
158
- _19 as LpDatePicker,
159
- _20 as LpDisclosure,
160
- _21 as LpDivider,
161
- _22 as LpDrawer,
162
- _23 as LpDropdownMenu,
170
+ _18 as LpConfirmHost,
171
+ _19 as LpContextMenu,
172
+ _20 as LpDatePicker,
173
+ _21 as LpDisclosure,
174
+ _22 as LpDivider,
175
+ _23 as LpDrawer,
176
+ _24 as LpDropdownMenu,
163
177
  default4 as LpDropzone,
164
- _24 as LpEmptyState,
165
- _25 as LpFileTree,
166
- _26 as LpFormField,
167
- _27 as LpIcon,
178
+ _25 as LpEmptyState,
179
+ _26 as LpFileTree,
180
+ _27 as LpFormField,
181
+ _28 as LpIcon,
168
182
  default5 as LpImageEditor,
169
- _28 as LpInfraNode,
170
- _29 as LpInput,
171
- _30 as LpLightbox,
172
- _31 as LpLink,
173
- _32 as LpLogViewer,
183
+ _29 as LpInfraNode,
184
+ _30 as LpInput,
185
+ _31 as LpLightbox,
186
+ _32 as LpLink,
187
+ _33 as LpLogViewer,
174
188
  _3 as LpMapPicker,
175
- _33 as LpMediaGallery,
176
- _34 as LpModal,
177
- _35 as LpModalNav,
178
- _36 as LpNotificationBell,
179
- _37 as LpNumberField,
180
- _39 as LpNumberFlow,
181
- _40 as LpOtpInput,
182
- _41 as LpPagination,
183
- _42 as LpPasswordInput,
184
- _44 as LpPhoneInput,
185
- _43 as LpPie,
186
- _45 as LpPopover,
187
- _46 as LpProgress,
188
- _47 as LpRadio,
189
- _48 as LpRadioGroup,
190
- _49 as LpRollingText,
191
- _50 as LpScrollArea,
192
- _52 as LpSection,
193
- _51 as LpSegmented,
194
- _53 as LpSelect,
195
- _54 as LpServiceNode,
196
- _55 as LpShift,
189
+ _34 as LpMediaGallery,
190
+ _35 as LpModal,
191
+ _36 as LpModalNav,
192
+ _37 as LpNotificationBell,
193
+ _38 as LpNumberField,
194
+ _40 as LpNumberFlow,
195
+ _41 as LpOtpInput,
196
+ _42 as LpPagination,
197
+ _43 as LpPasswordInput,
198
+ _45 as LpPhoneInput,
199
+ _44 as LpPie,
200
+ _46 as LpPopover,
201
+ _47 as LpProgress,
202
+ _48 as LpRadio,
203
+ _49 as LpRadioGroup,
204
+ _50 as LpRollingText,
205
+ _51 as LpScrollArea,
206
+ _53 as LpSection,
207
+ _52 as LpSegmented,
208
+ _54 as LpSelect,
209
+ _55 as LpServiceNode,
210
+ _56 as LpShift,
197
211
  default6 as LpShortcutsDialog,
198
- _56 as LpSidebar,
199
- _57 as LpSkeleton,
200
- _58 as LpSlider,
201
- _59 as LpSparkline,
202
- _60 as LpStat,
203
- _61 as LpStepper,
204
- _62 as LpSwitch,
212
+ _57 as LpSidebar,
213
+ _58 as LpSkeleton,
214
+ _59 as LpSlider,
215
+ _60 as LpSparkline,
216
+ _61 as LpStat,
217
+ _62 as LpStepper,
218
+ _63 as LpSwitch,
205
219
  default7 as LpTable,
206
- _63 as LpTableOfContents,
207
- _64 as LpTabs,
208
- _65 as LpTextarea,
209
- _66 as LpThemeSwitcher,
210
- _67 as LpTilt,
211
- _38 as LpTimeField,
212
- _68 as LpToaster,
213
- _69 as LpTooltip,
214
- _70 as LpTopologyCanvas,
215
- _71 as LpUptimeBar,
220
+ _64 as LpTableOfContents,
221
+ _65 as LpTabs,
222
+ _66 as LpTextarea,
223
+ _74 as LpThemeProvider,
224
+ _67 as LpThemeSwitcher,
225
+ _68 as LpTilt,
226
+ _39 as LpTimeField,
227
+ _69 as LpToaster,
228
+ _70 as LpTooltip,
229
+ _71 as LpTooltipProvider,
230
+ _72 as LpTopologyCanvas,
231
+ _73 as LpUptimeBar,
216
232
  N as NO_BACKDROP_ATTR,
217
233
  OSM_TILES,
218
234
  T as THEME_COOKIE,
@@ -222,30 +238,38 @@ export {
222
238
  addTab,
223
239
  b as amber,
224
240
  ancestorIds,
241
+ anchorPattern,
242
+ anyModalOpen,
225
243
  appleModifierLabel,
226
244
  c as applyTheme,
227
245
  d as applyThemeWithTransition,
228
246
  axisTicks,
229
247
  blockTitle,
230
248
  e as bootstrapTheme,
249
+ f as cacheSystemThemes,
250
+ chartSummary,
231
251
  checkStateOf,
232
252
  checkedCount,
233
253
  clampHsv,
254
+ compareValues,
234
255
  computeStats,
256
+ confirm,
235
257
  countBlocks,
236
258
  countLeaves,
237
259
  createNominatimProvider,
238
- f as dark,
260
+ g as dark,
239
261
  defineBlocks,
240
262
  defineTheme,
241
263
  deserializeLayout,
242
- g as detectBackdropFilter,
264
+ h as detectBackdropFilter,
243
265
  easeOut,
244
266
  easeTravel,
245
267
  easingToken,
246
268
  emptyAddress,
269
+ fieldMessageId,
247
270
  fileIcon,
248
271
  fileNameOf,
272
+ filterCountries,
249
273
  flagEmoji,
250
274
  formatAddress,
251
275
  formatColor,
@@ -256,34 +280,45 @@ export {
256
280
  hsvToRgb,
257
281
  isAppleKeyboard,
258
282
  i as isBrokenBackdropEngine,
283
+ isInternalHref,
259
284
  isLight,
285
+ layoutController,
260
286
  l as leavepulse,
261
- h as light,
262
- j as lime,
287
+ j as light,
288
+ k as lime,
263
289
  loadCountries,
290
+ lpConfig,
264
291
  makeLayout,
292
+ markerIndex,
265
293
  matchCountryByValue,
294
+ matchesHotkey,
266
295
  mergeClass,
296
+ mergeConfig,
267
297
  mergeShortcutGroups,
268
298
  moveLeaf,
269
299
  niceScale,
270
300
  n as nord,
271
301
  normalizeHue,
302
+ m as normalizeTheme,
272
303
  opaqueCss,
273
304
  parseColor,
274
305
  parseCommandQuery,
275
306
  parseConfig,
276
307
  parseHex,
277
308
  parseTheme,
309
+ o as prefersDarkScheme,
278
310
  prefersReducedMotion,
279
311
  presets,
280
312
  project,
313
+ provideField,
281
314
  provideGlass,
315
+ provideLpConfig,
282
316
  rankCommandItems,
283
317
  removeBlock,
284
318
  removeLeaf,
285
319
  reorderTab,
286
320
  resizeAt,
321
+ resolveLink,
287
322
  resolveSlices,
288
323
  rgbToHex,
289
324
  rgbToHsv,
@@ -293,23 +328,34 @@ export {
293
328
  serializeTheme,
294
329
  setActiveTab,
295
330
  sortNodes,
331
+ stripDisallowed,
296
332
  subtreeIds,
297
333
  subtreeSize,
298
- swapCommandTerms,
299
- t as themeFromCookie,
300
- k as themeToCssRule,
301
- m as themeToCssVars,
334
+ t as themeEntries,
335
+ q as themeFromCookie,
336
+ v as themeToCssRule,
337
+ w as themeToCssVars,
302
338
  tileUrl,
339
+ tokenizeLines,
340
+ topModalElement,
303
341
  unproject,
342
+ useAppleKeyboard,
304
343
  useAsyncTask,
305
344
  useClipboard,
345
+ useConfirm,
346
+ useField,
347
+ useFieldControl,
306
348
  useFormDraft,
307
349
  useGlass,
308
350
  useHotkeys,
309
351
  useInputFilter,
352
+ useLabels,
310
353
  useLayout,
354
+ useLinkComponent,
355
+ useLpConfig,
311
356
  useMergedAttrs,
312
357
  useMergedClass,
358
+ useModalLayer,
313
359
  useReveal,
314
360
  useRovingFocus,
315
361
  useSettled,
@@ -318,5 +364,5 @@ export {
318
364
  useTilt,
319
365
  useToast,
320
366
  useZoomPan,
321
- v as violet
367
+ x as violet
322
368
  };
@@ -72,4 +72,6 @@ interface SerializedSplit {
72
72
  type SerializedNode = SerializedLeaf | SerializedSplit;
73
73
  export declare function serializeLayout(root: Split): SerializedNode;
74
74
  export declare function deserializeLayout(data: SerializedNode): Split;
75
+ export declare function snapshotLayout(root: Split): string;
76
+ export declare function restoreLayout(snapshot: string): Split;
75
77
  export {};
@@ -1,6 +1,11 @@
1
1
  import { reactive } from "vue";
2
2
  let uid = 0;
3
3
  const nid = () => `lp-n${uid++}`;
4
+ function claimId(id) {
5
+ const n = /^lp-n(\d+)$/.exec(id);
6
+ if (n) uid = Math.max(uid, Number(n[1]) + 1);
7
+ return id;
8
+ }
4
9
  function leaf(block) {
5
10
  return { kind: "leaf", id: nid(), blocks: [block], active: 0, size: 1 };
6
11
  }
@@ -173,6 +178,14 @@ function deserializeLayout(data) {
173
178
  };
174
179
  return reactive(hydrate(data));
175
180
  }
181
+ function snapshotLayout(root) {
182
+ const strip = (n) => n.kind === "leaf" ? { kind: "leaf", id: n.id, blocks: [...n.blocks], active: n.active, size: n.size } : { kind: "split", id: n.id, dir: n.dir, size: n.size, children: n.children.map(strip) };
183
+ return JSON.stringify(strip(root));
184
+ }
185
+ function restoreLayout(snapshot) {
186
+ const hydrate = (n) => n.kind === "leaf" ? { kind: "leaf", id: claimId(n.id), blocks: [...n.blocks], active: n.active, size: n.size } : { kind: "split", id: claimId(n.id), dir: n.dir, size: n.size, children: n.children.map(hydrate) };
187
+ return reactive(hydrate(JSON.parse(snapshot)));
188
+ }
176
189
  export {
177
190
  addLeaf,
178
191
  addTab,
@@ -187,6 +200,8 @@ export {
187
200
  removeLeaf,
188
201
  reorderTab,
189
202
  resizeAt,
203
+ restoreLayout,
190
204
  serializeLayout,
191
- setActiveTab
205
+ setActiveTab,
206
+ snapshotLayout
192
207
  };
@@ -1,5 +1,18 @@
1
1
  import { type Ref } from "vue";
2
2
  import { type Side, type Split } from "./tree";
3
+ /** The edits a canvas performs, routed through history when a controller owns the tree. */
4
+ export interface LayoutController {
5
+ move: (movingId: string, targetId: string, side: Side) => void;
6
+ removeBlock: (leafId: string, index: number) => void;
7
+ reorderTab: (leafId: string, from: number, to: number) => void;
8
+ setActive: (leafId: string, index: number) => void;
9
+ resize: (parent: Split, index: number, deltaFraction: number) => void;
10
+ /** Bracket a continuous resize gesture so it records one history step. */
11
+ beginResize: () => void;
12
+ endResize: () => void;
13
+ }
14
+ /** The controller managing `tree`, if a useLayout() owns it. */
15
+ export declare function layoutController(tree: Split): LayoutController | undefined;
3
16
  export interface UseLayoutOptions {
4
17
  /** Initial block ids, left-to-right, when no saved layout is loaded. */
5
18
  initial: string[];
@@ -27,6 +40,8 @@ export interface UseLayout {
27
40
  remove: (leafId: string) => void;
28
41
  move: (movingId: string, targetId: string, side: Side) => void;
29
42
  resize: (parent: Split, index: number, deltaFraction: number) => void;
43
+ beginResize: () => void;
44
+ endResize: () => void;
30
45
  undo: () => void;
31
46
  redo: () => void;
32
47
  /** Replace the whole layout from a flat block list. */
@@ -1,5 +1,9 @@
1
- import { shallowRef, computed, ref } from "vue";
2
- import { makeLayout, countBlocks, serializeLayout, resizeAt, setActiveTab, deserializeLayout, moveLeaf, removeLeaf, removeBlock, reorderTab, addTab, addLeaf } from "./tree.js";
1
+ import { shallowRef, computed, ref, watch } from "vue";
2
+ import { makeLayout, countBlocks, serializeLayout, resizeAt, setActiveTab, snapshotLayout, restoreLayout, reorderTab, removeBlock, moveLeaf, deserializeLayout, removeLeaf, addTab, addLeaf } from "./tree.js";
3
+ const controllers = /* @__PURE__ */ new WeakMap();
4
+ function layoutController(tree) {
5
+ return controllers.get(tree);
6
+ }
3
7
  function useLayout(options) {
4
8
  const limit = options.historyLimit ?? 50;
5
9
  const layout = shallowRef(makeLayout(options.initial));
@@ -8,16 +12,36 @@ function useLayout(options) {
8
12
  const future = ref([]);
9
13
  const canUndo = computed(() => past.value.length > 0);
10
14
  const canRedo = computed(() => future.value.length > 0);
11
- const snapshot = () => JSON.stringify(serializeLayout(layout.value));
12
- function record(mutate) {
13
- const before = snapshot();
14
- mutate();
15
+ const snapshot = () => snapshotLayout(layout.value);
16
+ function push(before) {
17
+ if (before === snapshot()) return;
15
18
  past.value.push(before);
16
19
  if (past.value.length > limit) past.value.shift();
17
20
  future.value = [];
18
21
  }
22
+ function record(mutate) {
23
+ const before = snapshot();
24
+ mutate();
25
+ push(before);
26
+ }
27
+ let resizeStart = null;
28
+ const controller = {
29
+ move: (movingId, targetId, side) => record(() => moveLeaf(layout.value, movingId, targetId, side)),
30
+ removeBlock: (leafId, index) => record(() => removeBlock(layout.value, leafId, index)),
31
+ reorderTab: (leafId, from, to) => record(() => reorderTab(layout.value, leafId, from, to)),
32
+ setActive: (leafId, index) => setActiveTab(layout.value, leafId, index),
33
+ resize: (parent, index, delta) => resizeAt(parent, index, delta),
34
+ beginResize: () => {
35
+ resizeStart = snapshot();
36
+ },
37
+ endResize: () => {
38
+ if (resizeStart !== null) push(resizeStart);
39
+ resizeStart = null;
40
+ }
41
+ };
42
+ watch(layout, (tree) => controllers.set(tree, controller), { immediate: true, flush: "sync" });
19
43
  function restore(serialized) {
20
- layout.value = deserializeLayout(JSON.parse(serialized));
44
+ layout.value = restoreLayout(serialized);
21
45
  }
22
46
  return {
23
47
  layout,
@@ -26,15 +50,17 @@ function useLayout(options) {
26
50
  canRedo,
27
51
  add: (block, side) => record(() => addLeaf(layout.value, block, side)),
28
52
  addTab: (leafId, block) => record(() => addTab(layout.value, leafId, block)),
29
- setActive: (leafId, index) => setActiveTab(layout.value, leafId, index),
30
- reorderTab: (leafId, from, to) => record(() => reorderTab(layout.value, leafId, from, to)),
31
- removeBlock: (leafId, index) => record(() => removeBlock(layout.value, leafId, index)),
53
+ setActive: controller.setActive,
54
+ reorderTab: controller.reorderTab,
55
+ removeBlock: controller.removeBlock,
32
56
  remove: (leafId) => record(() => removeLeaf(layout.value, leafId)),
33
- move: (movingId, targetId, side) => record(() => moveLeaf(layout.value, movingId, targetId, side)),
57
+ move: controller.move,
34
58
  // Resize fires continuously during a divider drag; recording every frame
35
- // would flood history, so it mutates without a snapshot. (A consumer that
36
- // wants resize in history can wrap a single record() around the gesture.)
37
- resize: (parent, index, delta) => resizeAt(parent, index, delta),
59
+ // would flood history. The canvas brackets its gestures with
60
+ // beginResize/endResize, which records the whole drag as one step.
61
+ resize: controller.resize,
62
+ beginResize: controller.beginResize,
63
+ endResize: controller.endResize,
38
64
  undo: () => {
39
65
  const prev = past.value.pop();
40
66
  if (prev === void 0) return;
@@ -57,5 +83,6 @@ function useLayout(options) {
57
83
  };
58
84
  }
59
85
  export {
86
+ layoutController,
60
87
  useLayout
61
88
  };