@leavepulse/ui 0.43.4 → 0.45.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 (437) hide show
  1. package/README.md +121 -7
  2. package/dist/assets/{LpCommandPalette-B-0Est4Z.css → LpCommandPalette-nGNnzXqQ.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/{LpRollingText-CR1mb0Vt.css → LpRollingText-BGnE6q9j.css} +3 -0
  6. package/dist/assets/{LpShortcutsDialog-C6YoQ8_M.css → LpShortcutsDialog-CqYX3yy6.css} +28 -7
  7. package/dist/assets/{LpSkeleton-D7xU8IPV.css → LpSkeleton-H3Z5dEIk.css} +4 -1
  8. package/dist/assets/{LpTable-BgPLJOXa.css → LpTable-CPwWxTJS.css} +49 -9
  9. package/dist/chunks/ContextMenuItems-BtKU7074.js +124 -0
  10. package/dist/chunks/{LayoutCanvas-Dd20boUG.js → LayoutCanvas-BkaGXTjx.js} +26 -9
  11. package/dist/chunks/{LayoutNode-DGpZA9LX.js → LayoutNode-B3_9E1Xa.js} +28 -12
  12. package/dist/chunks/{LpActionBar-BlvtGB2P.js → LpActionBar-CnfFVIwC.js} +26 -12
  13. package/dist/chunks/{LpAddressInput-B-Zvxsn7.js → LpAddressInput-BwX8uo4_.js} +54 -49
  14. package/dist/chunks/{LpAlert-BAYHDSS1.js → LpAlert-B6ilrM7T.js} +16 -9
  15. package/dist/chunks/{LpAppShell-BGQVIY-3.js → LpAppShell-C53_RaGF.js} +53 -26
  16. package/dist/chunks/{LpAutocomplete-DExlIZe_.js → LpAutocomplete-C8IgSMsi.js} +52 -24
  17. package/dist/chunks/{LpAvatar-B3-xAOH3.js → LpAvatar-C1XStdOo.js} +19 -10
  18. package/dist/chunks/LpBreadcrumbs-CQJd73Gm.js +95 -0
  19. package/dist/chunks/{LpButton-5VXXCjwF.js → LpButton-CKSwC6Mu.js} +45 -15
  20. package/dist/chunks/{LpCalendar-B7Ko5RdR.js → LpCalendar-DrA2McTU.js} +1 -1
  21. package/dist/chunks/{LpCard-BhI1N_vL.js → LpCard-C2IvucmX.js} +1 -1
  22. package/dist/chunks/{LpCheckbox-CVccKYaH.js → LpCheckbox-Bkj13CbW.js} +8 -4
  23. package/dist/chunks/{LpCodeBlock-Bo0B4TFR.js → LpCodeBlock-ca7ANFyW.js} +49 -17
  24. package/dist/chunks/{LpColorPicker-BlXea7LM.js → LpColorPicker-zz4VGkG4.js} +75 -26
  25. package/dist/chunks/{LpConfirmDialog-Q-bxff8z.js → LpConfirmDialog-DCw5jR1t.js} +59 -17
  26. package/dist/chunks/LpConfirmHost-CbywMpMP.js +49 -0
  27. package/dist/chunks/LpContextMenu-BqkAYa9X.js +69 -0
  28. package/dist/chunks/LpDatePicker-DuusgT69.js +195 -0
  29. package/dist/chunks/LpDateRangePicker-DHeuznfC.js +208 -0
  30. package/dist/chunks/{LpDisclosure-ChQYmjlR.js → LpDisclosure-Cc23-JOT.js} +1 -1
  31. package/dist/chunks/{LpDrawer-BZ6k3hvo.js → LpDrawer-Dt4aB4Fr.js} +65 -28
  32. package/dist/chunks/{LpDropdownMenu-DJpoqRCb.js → LpDropdownMenu-DdJGQzPn.js} +2 -1
  33. package/dist/chunks/{LpEmptyState-Dsdqz1Wj.js → LpEmptyState-BJbZXC8D.js} +1 -1
  34. package/dist/chunks/LpFieldNotice-wtieLUTj.js +64 -0
  35. package/dist/chunks/{LpFileTree-_5vFBgaK.js → LpFileTree-CNurOvkV.js} +25 -10
  36. package/dist/chunks/{LpFileTreeNode-BdcIYKIE.js → LpFileTreeNode-D_qRRdsH.js} +3 -3
  37. package/dist/chunks/LpFormField-CtVYj6tO.js +101 -0
  38. package/dist/chunks/{LpIcon-CCnX5_2j.js → LpIcon-DYtaid0K.js} +20 -6
  39. package/dist/chunks/{LpInput-9EXWUM9B.js → LpInput-D-YGQbEv.js} +58 -20
  40. package/dist/chunks/{LpLightbox-2sYVMY-S.js → LpLightbox-DSDahF23.js} +148 -61
  41. package/dist/chunks/{LpLink-DCND-zyu.js → LpLink-Krkjhe_y.js} +15 -6
  42. package/dist/chunks/{LpLogViewer-CaRy5MeS.js → LpLogViewer-KypbgOyo.js} +300 -72
  43. package/dist/chunks/{LpMapPicker-ul4oYno6.js → LpMapPicker-Cc84LaM3.js} +39 -14
  44. package/dist/chunks/{LpMediaGallery-FF-NquIo.js → LpMediaGallery-YKr-cQPN.js} +7 -4
  45. package/dist/chunks/{LpModal-Bt0pQCI_.js → LpModal-DMMDQHAu.js} +52 -29
  46. package/dist/chunks/{LpModalNav-YaifHrXC.js → LpModalNav-BVPDyIup.js} +10 -7
  47. package/dist/chunks/{LpNotificationBell-DyGGsMAM.js → LpNotificationBell-CCwyJP5C.js} +79 -33
  48. package/dist/chunks/{LpNumberField-CWuX08iX.js → LpNumberField-B77O-z28.js} +21 -8
  49. package/dist/chunks/{LpNumberFlow-amWYaeuA.js → LpNumberFlow-z4WPZcZu.js} +22 -12
  50. package/dist/chunks/{LpOtpInput-y2v-pmiN.js → LpOtpInput-CziPF3Oq.js} +37 -8
  51. package/dist/chunks/{LpPagination-5FxjmmB5.js → LpPagination-BcDlo3r_.js} +31 -20
  52. package/dist/chunks/{LpPasswordInput--sjYCkLS.js → LpPasswordInput-eKzQhbQP.js} +11 -8
  53. package/dist/chunks/LpPhoneInput-BCbrrhgE.js +336 -0
  54. package/dist/chunks/{LpPie-D6OnzwlJ.js → LpPie-BEJ2SfI6.js} +84 -28
  55. package/dist/chunks/{LpPopover-8268UmlC.js → LpPopover-DCKeqiVn.js} +5 -2
  56. package/dist/chunks/{LpProgress-Btq5W4Ut.js → LpProgress-CBU1iI69.js} +5 -4
  57. package/dist/chunks/{LpRadioGroup-xPIuVDO_.js → LpRadioGroup-DmEW0l78.js} +9 -2
  58. package/dist/chunks/LpRangeCalendar-DZuaRV0W.js +331 -0
  59. package/dist/chunks/{LpRollingText-CM5gkSeF.js → LpRollingText-DB7upf-5.js} +1 -1
  60. package/dist/chunks/{LpScrollArea-D8xyKXcF.js → LpScrollArea-Bry1fdOM.js} +14 -2
  61. package/dist/chunks/{LpSection-aM6J_u51.js → LpSection-tKEH0jYf.js} +1 -1
  62. package/dist/chunks/{LpSegmented-fV0Sk92p.js → LpSegmented-C09EEam2.js} +8 -4
  63. package/dist/chunks/{LpSelect-ANIVtrpM.js → LpSelect-DNIL6MB9.js} +50 -31
  64. package/dist/chunks/{LpSidebar-ClBUwoEz.js → LpSidebar-CQNB0-yU.js} +30 -22
  65. package/dist/chunks/{LpSidebarNav-llOcs_Fn.js → LpSidebarNav-kx-LdqNU.js} +16 -11
  66. package/dist/chunks/{LpSkeleton-CTI-vBgW.js → LpSkeleton-BB6XIV-w.js} +1 -1
  67. package/dist/chunks/{LpSlider-BwNIBkAK.js → LpSlider-Cuzmrd7p.js} +7 -2
  68. package/dist/chunks/{LpSparkline-C6xQ2dwv.js → LpSparkline-CB80N8SJ.js} +11 -4
  69. package/dist/chunks/{LpStat-CQaW8R--.js → LpStat-B-7udBRP.js} +2 -2
  70. package/dist/chunks/{LpStepper-Bk-XaQYU.js → LpStepper-C7XiVKZj.js} +34 -19
  71. package/dist/chunks/{LpSwitch-Blizvqyt.js → LpSwitch-OrcOJX9m.js} +41 -27
  72. package/dist/chunks/LpTableFilter-BV8PpLM9.js +158 -0
  73. package/dist/chunks/{LpTableOfContents-CjvxPMpU.js → LpTableOfContents-BUcAfGPQ.js} +36 -41
  74. package/dist/chunks/{LpTabs-Cefe_lys.js → LpTabs-29iW1XOx.js} +20 -6
  75. package/dist/chunks/LpTagsInput-D1SuqbhB.js +300 -0
  76. package/dist/chunks/LpTextarea-uuScWo6-.js +77 -0
  77. package/dist/chunks/LpThemeProvider-Be4r2TQX.js +35 -0
  78. package/dist/chunks/LpThemeSwitcher-B4aVPbNC.js +166 -0
  79. package/dist/chunks/{LpTilt-DuyKbpkA.js → LpTilt-B7KHX1zH.js} +2 -2
  80. package/dist/chunks/{LpTimeField-K6nAGboX.js → LpTimeField-Cqe7fXnh.js} +14 -8
  81. package/dist/chunks/{LpToaster-gDB1EaU3.js → LpToaster-DpJvoCOh.js} +94 -31
  82. package/dist/chunks/{LpTooltip-hCLPAqMG.js → LpTooltip-CXVKcOXT.js} +14 -6
  83. package/dist/chunks/LpTooltipProvider-CftjV7Xc.js +25 -0
  84. package/dist/chunks/{LpTopologyCanvas-Cm1L39uL.js → LpTopologyCanvas-6ozNrQKh.js} +8 -2
  85. package/dist/chunks/{LpUptimeBar-DvAMno0S.js → LpUptimeBar-ugcv25xj.js} +44 -15
  86. package/dist/chunks/icons-CkA0njzm.js +43 -0
  87. package/dist/chunks/{LpThemeSwitcher-Cue-myST.js → useTheme-DJm1JSsY.js} +215 -260
  88. package/dist/component-names.d.ts +1 -1
  89. package/dist/components/ContextMenuItems.vue.d.ts +8 -0
  90. package/dist/components/ContextMenuItems.vue.js +4 -0
  91. package/dist/components/LayoutCanvas.vue.js +1 -1
  92. package/dist/components/LayoutNode.vue.d.ts +4 -0
  93. package/dist/components/LayoutNode.vue.js +1 -1
  94. package/dist/components/LpActionBar.vue.d.ts +3 -0
  95. package/dist/components/LpActionBar.vue.js +1 -1
  96. package/dist/components/LpAddressInput.vue.d.ts +1 -1
  97. package/dist/components/LpAddressInput.vue.js +1 -1
  98. package/dist/components/LpAlert.vue.d.ts +9 -0
  99. package/dist/components/LpAlert.vue.js +1 -1
  100. package/dist/components/LpAppShell.vue.d.ts +10 -0
  101. package/dist/components/LpAppShell.vue.js +1 -1
  102. package/dist/components/LpAutocomplete.vue.d.ts +31 -6
  103. package/dist/components/LpAutocomplete.vue.js +1 -1
  104. package/dist/components/LpAvatar.vue.d.ts +3 -3
  105. package/dist/components/LpAvatar.vue.js +1 -1
  106. package/dist/components/LpBadge.vue.d.ts +2 -2
  107. package/dist/components/LpBreadcrumbs.vue.d.ts +13 -9
  108. package/dist/components/LpBreadcrumbs.vue.js +1 -1
  109. package/dist/components/LpButton.vue.d.ts +35 -98
  110. package/dist/components/LpButton.vue.js +1 -1
  111. package/dist/components/LpCalendar.vue.js +1 -1
  112. package/dist/components/LpCard.vue.js +1 -1
  113. package/dist/components/LpChart.vue.d.ts +47 -3
  114. package/dist/components/LpChart.vue.js +377 -97
  115. package/dist/components/LpCheckbox.vue.js +1 -1
  116. package/dist/components/LpCodeBlock.vue.d.ts +2 -0
  117. package/dist/components/LpCodeBlock.vue.js +1 -1
  118. package/dist/components/LpColorPicker.vue.d.ts +2 -2
  119. package/dist/components/LpColorPicker.vue.js +1 -1
  120. package/dist/components/LpCommandPalette.vue.d.ts +14 -3
  121. package/dist/components/LpCommandPalette.vue.js +142 -77
  122. package/dist/components/LpConfirmDialog.vue.d.ts +15 -3
  123. package/dist/components/LpConfirmDialog.vue.js +1 -1
  124. package/dist/components/LpConfirmHost.vue.d.ts +9 -0
  125. package/dist/components/LpConfirmHost.vue.js +4 -0
  126. package/dist/components/LpContextMenu.vue.d.ts +3 -5
  127. package/dist/components/LpContextMenu.vue.js +1 -1
  128. package/dist/components/LpDatePicker.vue.d.ts +24 -6
  129. package/dist/components/LpDatePicker.vue.js +1 -1
  130. package/dist/components/LpDateRangePicker.vue.d.ts +60 -0
  131. package/dist/components/LpDateRangePicker.vue.js +4 -0
  132. package/dist/components/LpDisclosure.vue.js +1 -1
  133. package/dist/components/LpDrawer.vue.d.ts +10 -0
  134. package/dist/components/LpDrawer.vue.js +1 -1
  135. package/dist/components/LpDropdownMenu.vue.js +1 -1
  136. package/dist/components/LpDropzone.vue.js +23 -7
  137. package/dist/components/LpEmptyState.vue.js +1 -1
  138. package/dist/components/LpFieldNotice.vue.d.ts +8 -0
  139. package/dist/components/LpFieldNotice.vue.js +4 -0
  140. package/dist/components/LpFileTree.vue.d.ts +11 -2
  141. package/dist/components/LpFileTree.vue.js +1 -1
  142. package/dist/components/LpFileTreeNode.vue.js +1 -1
  143. package/dist/components/LpFormField.vue.d.ts +13 -1
  144. package/dist/components/LpFormField.vue.js +1 -1
  145. package/dist/components/LpIcon.vue.d.ts +0 -1
  146. package/dist/components/LpIcon.vue.js +1 -1
  147. package/dist/components/LpImageEditor.vue.js +93 -58
  148. package/dist/components/LpInput.vue.d.ts +22 -3
  149. package/dist/components/LpInput.vue.js +1 -1
  150. package/dist/components/LpLightbox.vue.d.ts +17 -0
  151. package/dist/components/LpLightbox.vue.js +1 -1
  152. package/dist/components/LpLink.vue.d.ts +11 -11
  153. package/dist/components/LpLink.vue.js +1 -1
  154. package/dist/components/LpLogViewer.vue.d.ts +72 -3
  155. package/dist/components/LpLogViewer.vue.js +1 -1
  156. package/dist/components/LpMapPicker.vue.d.ts +4 -4
  157. package/dist/components/LpMapPicker.vue.js +1 -1
  158. package/dist/components/LpMediaGallery.vue.js +1 -1
  159. package/dist/components/LpModal.vue.d.ts +16 -6
  160. package/dist/components/LpModal.vue.js +1 -1
  161. package/dist/components/LpModalNav.vue.d.ts +0 -1
  162. package/dist/components/LpModalNav.vue.js +1 -1
  163. package/dist/components/LpNotificationBell.vue.d.ts +11 -2
  164. package/dist/components/LpNotificationBell.vue.js +1 -1
  165. package/dist/components/LpNumberField.vue.d.ts +2 -0
  166. package/dist/components/LpNumberField.vue.js +1 -1
  167. package/dist/components/LpNumberFlow.vue.js +1 -1
  168. package/dist/components/LpOtpInput.vue.js +1 -1
  169. package/dist/components/LpPagination.vue.d.ts +2 -0
  170. package/dist/components/LpPagination.vue.js +1 -1
  171. package/dist/components/LpPasswordInput.vue.js +1 -1
  172. package/dist/components/LpPhoneInput.vue.d.ts +13 -0
  173. package/dist/components/LpPhoneInput.vue.js +1 -1
  174. package/dist/components/LpPie.vue.d.ts +21 -2
  175. package/dist/components/LpPie.vue.js +1 -1
  176. package/dist/components/LpPopover.vue.d.ts +2 -0
  177. package/dist/components/LpPopover.vue.js +1 -1
  178. package/dist/components/LpProgress.vue.d.ts +1 -1
  179. package/dist/components/LpProgress.vue.js +1 -1
  180. package/dist/components/LpRadioGroup.vue.js +1 -1
  181. package/dist/components/LpRangeCalendar.vue.d.ts +51 -0
  182. package/dist/components/LpRangeCalendar.vue.js +4 -0
  183. package/dist/components/LpRollingText.vue.d.ts +1 -1
  184. package/dist/components/LpRollingText.vue.js +1 -1
  185. package/dist/components/LpScrollArea.vue.d.ts +2 -2
  186. package/dist/components/LpScrollArea.vue.js +1 -1
  187. package/dist/components/LpSection.vue.d.ts +1 -1
  188. package/dist/components/LpSection.vue.js +1 -1
  189. package/dist/components/LpSegmented.vue.d.ts +5 -0
  190. package/dist/components/LpSegmented.vue.js +1 -1
  191. package/dist/components/LpSelect.vue.d.ts +1 -0
  192. package/dist/components/LpSelect.vue.js +1 -1
  193. package/dist/components/LpShortcutsDialog.vue.d.ts +7 -1
  194. package/dist/components/LpShortcutsDialog.vue.js +60 -15
  195. package/dist/components/LpSidebar.vue.d.ts +6 -2
  196. package/dist/components/LpSidebar.vue.js +1 -1
  197. package/dist/components/LpSidebarNav.vue.js +1 -1
  198. package/dist/components/LpSkeleton.vue.js +1 -1
  199. package/dist/components/LpSlider.vue.js +1 -1
  200. package/dist/components/LpSparkline.vue.d.ts +1 -0
  201. package/dist/components/LpSparkline.vue.js +1 -1
  202. package/dist/components/LpStat.vue.js +1 -1
  203. package/dist/components/LpStepper.vue.js +1 -1
  204. package/dist/components/LpSwitch.vue.js +1 -1
  205. package/dist/components/LpTable.vue.d.ts +107 -3
  206. package/dist/components/LpTable.vue.js +540 -128
  207. package/dist/components/LpTableFilter.vue.d.ts +31 -0
  208. package/dist/components/LpTableFilter.vue.js +4 -0
  209. package/dist/components/LpTableOfContents.vue.d.ts +4 -2
  210. package/dist/components/LpTableOfContents.vue.js +1 -1
  211. package/dist/components/LpTabs.vue.d.ts +2 -0
  212. package/dist/components/LpTabs.vue.js +1 -1
  213. package/dist/components/LpTagsInput.vue.d.ts +77 -0
  214. package/dist/components/LpTagsInput.vue.js +4 -0
  215. package/dist/components/LpTextarea.vue.d.ts +19 -6
  216. package/dist/components/LpTextarea.vue.js +1 -1
  217. package/dist/components/LpThemeProvider.vue.d.ts +22 -0
  218. package/dist/components/LpThemeProvider.vue.js +4 -0
  219. package/dist/components/LpThemeSwitcher.vue.d.ts +15 -2
  220. package/dist/components/LpThemeSwitcher.vue.js +1 -1
  221. package/dist/components/LpTilt.vue.js +1 -1
  222. package/dist/components/LpTimeField.vue.js +1 -1
  223. package/dist/components/LpToaster.vue.d.ts +6 -1
  224. package/dist/components/LpToaster.vue.js +1 -1
  225. package/dist/components/LpTooltip.vue.d.ts +1 -2
  226. package/dist/components/LpTooltip.vue.js +1 -1
  227. package/dist/components/LpTooltipProvider.vue.d.ts +22 -0
  228. package/dist/components/LpTooltipProvider.vue.js +4 -0
  229. package/dist/components/LpTopologyCanvas.vue.js +1 -1
  230. package/dist/components/LpUptimeBar.vue.d.ts +4 -0
  231. package/dist/components/LpUptimeBar.vue.js +1 -1
  232. package/dist/components/chart.d.ts +32 -1
  233. package/dist/components/chart.js +42 -6
  234. package/dist/components/codeHighlight.d.ts +6 -0
  235. package/dist/components/codeHighlight.js +92 -20
  236. package/dist/components/color.d.ts +1 -1
  237. package/dist/components/color.js +20 -9
  238. package/dist/components/commandSearch.js +3 -0
  239. package/dist/components/confirm.d.ts +25 -0
  240. package/dist/components/confirm.js +26 -0
  241. package/dist/components/countries.d.ts +6 -0
  242. package/dist/components/countries.js +7 -0
  243. package/dist/components/dateRange.d.ts +43 -0
  244. package/dist/components/dateRange.js +76 -0
  245. package/dist/components/exportData.d.ts +58 -0
  246. package/dist/components/exportData.js +165 -0
  247. package/dist/components/fileTree.js +16 -7
  248. package/dist/components/imageCrop.d.ts +42 -0
  249. package/dist/components/imageCrop.js +47 -0
  250. package/dist/components/link.d.ts +12 -0
  251. package/dist/components/link.js +19 -0
  252. package/dist/components/logSearch.d.ts +18 -0
  253. package/dist/components/logSearch.js +36 -0
  254. package/dist/components/modalDepth.d.ts +18 -2
  255. package/dist/components/modalDepth.js +17 -5
  256. package/dist/components/otp.d.ts +5 -0
  257. package/dist/components/otp.js +10 -0
  258. package/dist/components/phone.d.ts +41 -0
  259. package/dist/components/phone.js +80 -0
  260. package/dist/components/sidebar.d.ts +7 -1
  261. package/dist/components/tableFilter.d.ts +36 -0
  262. package/dist/components/tableFilter.js +84 -0
  263. package/dist/components/tableSort.d.ts +8 -0
  264. package/dist/components/tableSort.js +31 -0
  265. package/dist/components/tags.d.ts +20 -0
  266. package/dist/components/tags.js +37 -0
  267. package/dist/composables/useField.d.ts +38 -0
  268. package/dist/composables/useField.js +45 -0
  269. package/dist/composables/useFieldNotice.d.ts +17 -0
  270. package/dist/composables/useFieldNotice.js +28 -0
  271. package/dist/composables/useForm.d.ts +53 -0
  272. package/dist/composables/useForm.js +207 -0
  273. package/dist/composables/useFormDraft.d.ts +10 -3
  274. package/dist/composables/useFormDraft.js +9 -14
  275. package/dist/composables/useHotkeys.d.ts +81 -5
  276. package/dist/composables/useHotkeys.js +223 -25
  277. package/dist/composables/useInputFilter.d.ts +17 -0
  278. package/dist/composables/useInputFilter.js +47 -10
  279. package/dist/composables/useInputMask.d.ts +59 -0
  280. package/dist/composables/useInputMask.js +170 -0
  281. package/dist/composables/useLpConfig.d.ts +24 -0
  282. package/dist/composables/useLpConfig.js +44 -0
  283. package/dist/composables/usePaintSelect.d.ts +22 -0
  284. package/dist/composables/usePaintSelect.js +169 -0
  285. package/dist/composables/useRovingFocus.js +7 -0
  286. package/dist/composables/useShift.js +7 -2
  287. package/dist/composables/useTilt.d.ts +2 -2
  288. package/dist/composables/useTilt.js +5 -6
  289. package/dist/composables/useToast.d.ts +20 -0
  290. package/dist/composables/useToast.js +28 -4
  291. package/dist/composables/useZoomPan.d.ts +3 -3
  292. package/dist/composables/useZoomPan.js +4 -4
  293. package/dist/icons-all.d.ts +1 -0
  294. package/dist/icons-all.js +3 -0
  295. package/dist/icons.d.ts +14 -1
  296. package/dist/index.d.ts +60 -4
  297. package/dist/index.js +245 -141
  298. package/dist/kit-icons.d.ts +2 -0
  299. package/dist/layout/tree.d.ts +2 -0
  300. package/dist/layout/tree.js +16 -1
  301. package/dist/layout/useLayout.d.ts +15 -0
  302. package/dist/layout/useLayout.js +41 -14
  303. package/dist/theme/backdrop.d.ts +12 -0
  304. package/dist/theme/presets.d.ts +0 -2
  305. package/dist/theme/useTheme.d.ts +32 -9
  306. package/package.json +18 -8
  307. package/src/component-names.ts +9 -7
  308. package/src/components/ContextMenuItems.vue +88 -0
  309. package/src/components/LayoutCanvas.vue +26 -6
  310. package/src/components/LayoutNode.vue +30 -4
  311. package/src/components/LpActionBar.vue +31 -8
  312. package/src/components/LpAddressInput.vue +57 -41
  313. package/src/components/LpAlert.vue +16 -3
  314. package/src/components/LpAppShell.vue +45 -12
  315. package/src/components/LpAutocomplete.vue +47 -10
  316. package/src/components/LpAvatar.vue +20 -6
  317. package/src/components/LpBreadcrumbs.vue +65 -41
  318. package/src/components/LpButton.vue +60 -14
  319. package/src/components/LpChart.vue +351 -28
  320. package/src/components/LpCheckbox.vue +7 -3
  321. package/src/components/LpCodeBlock.vue +50 -14
  322. package/src/components/LpColorPicker.vue +73 -10
  323. package/src/components/LpCommandPalette.vue +115 -20
  324. package/src/components/LpConfirmDialog.vue +68 -17
  325. package/src/components/LpConfirmHost.vue +59 -0
  326. package/src/components/LpContextMenu.vue +15 -116
  327. package/src/components/LpDatePicker.vue +104 -68
  328. package/src/components/LpDateRangePicker.vue +224 -0
  329. package/src/components/LpDrawer.vue +56 -19
  330. package/src/components/LpDropdownMenu.vue +1 -0
  331. package/src/components/LpDropzone.vue +21 -4
  332. package/src/components/LpFieldNotice.vue +65 -0
  333. package/src/components/LpFileTree.vue +33 -7
  334. package/src/components/LpFormField.vue +59 -7
  335. package/src/components/LpIcon.vue +22 -4
  336. package/src/components/LpImageEditor.vue +96 -57
  337. package/src/components/LpInput.vue +62 -11
  338. package/src/components/LpLightbox.vue +140 -29
  339. package/src/components/LpLink.vue +24 -13
  340. package/src/components/LpLogViewer.vue +311 -39
  341. package/src/components/LpMapPicker.vue +36 -13
  342. package/src/components/LpMediaGallery.vue +8 -2
  343. package/src/components/LpModal.vue +54 -28
  344. package/src/components/LpModalNav.vue +5 -2
  345. package/src/components/LpNotificationBell.vue +77 -23
  346. package/src/components/LpNumberField.vue +21 -6
  347. package/src/components/LpNumberFlow.vue +26 -10
  348. package/src/components/LpOtpInput.vue +43 -8
  349. package/src/components/LpPagination.vue +23 -7
  350. package/src/components/LpPasswordInput.vue +4 -1
  351. package/src/components/LpPhoneInput.vue +224 -39
  352. package/src/components/LpPie.vue +102 -20
  353. package/src/components/LpPopover.vue +4 -0
  354. package/src/components/LpProgress.vue +5 -3
  355. package/src/components/LpRadioGroup.vue +9 -2
  356. package/src/components/LpRangeCalendar.vue +365 -0
  357. package/src/components/LpRollingText.vue +3 -0
  358. package/src/components/LpScrollArea.vue +22 -2
  359. package/src/components/LpSegmented.vue +12 -2
  360. package/src/components/LpSelect.vue +0 -0
  361. package/src/components/LpShortcutsDialog.vue +83 -9
  362. package/src/components/LpSidebar.vue +14 -9
  363. package/src/components/LpSidebarNav.vue +17 -5
  364. package/src/components/LpSkeleton.vue +4 -1
  365. package/src/components/LpSlider.vue +7 -1
  366. package/src/components/LpSparkline.vue +11 -3
  367. package/src/components/LpStepper.vue +23 -10
  368. package/src/components/LpSwitch.vue +31 -8
  369. package/src/components/LpTable.vue +668 -90
  370. package/src/components/LpTableFilter.vue +175 -0
  371. package/src/components/LpTableOfContents.vue +50 -32
  372. package/src/components/LpTabs.vue +23 -6
  373. package/src/components/LpTagsInput.vue +364 -0
  374. package/src/components/LpTextarea.vue +44 -6
  375. package/src/components/LpThemeProvider.vue +41 -0
  376. package/src/components/LpThemeSwitcher.vue +76 -33
  377. package/src/components/LpTilt.vue +2 -2
  378. package/src/components/LpTimeField.vue +14 -3
  379. package/src/components/LpToaster.vue +115 -27
  380. package/src/components/LpTooltip.vue +29 -5
  381. package/src/components/LpTooltipProvider.vue +24 -0
  382. package/src/components/LpTopologyCanvas.vue +19 -2
  383. package/src/components/LpUptimeBar.vue +46 -8
  384. package/src/components/chart.ts +82 -8
  385. package/src/components/codeHighlight.ts +111 -15
  386. package/src/components/color.ts +30 -9
  387. package/src/components/commandSearch.ts +6 -0
  388. package/src/components/confirm.ts +58 -0
  389. package/src/components/countries.ts +12 -0
  390. package/src/components/dateRange.ts +134 -0
  391. package/src/components/exportData.ts +228 -0
  392. package/src/components/fileTree.ts +19 -7
  393. package/src/components/imageCrop.ts +107 -0
  394. package/src/components/link.ts +34 -0
  395. package/src/components/logSearch.ts +46 -0
  396. package/src/components/modalDepth.ts +48 -6
  397. package/src/components/otp.ts +16 -0
  398. package/src/components/phone.ts +140 -0
  399. package/src/components/sidebar.ts +7 -1
  400. package/src/components/tableFilter.ts +122 -0
  401. package/src/components/tableSort.ts +37 -0
  402. package/src/components/tags.ts +62 -0
  403. package/src/composables/useField.ts +83 -0
  404. package/src/composables/useFieldNotice.ts +59 -0
  405. package/src/composables/useForm.ts +314 -0
  406. package/src/composables/useFormDraft.ts +25 -20
  407. package/src/composables/useHotkeys.ts +355 -28
  408. package/src/composables/useInputFilter.ts +77 -14
  409. package/src/composables/useInputMask.ts +254 -0
  410. package/src/composables/useLpConfig.ts +87 -0
  411. package/src/composables/usePaintSelect.ts +243 -0
  412. package/src/composables/useRovingFocus.ts +11 -0
  413. package/src/composables/useShift.ts +13 -2
  414. package/src/composables/useTilt.ts +5 -6
  415. package/src/composables/useToast.ts +56 -4
  416. package/src/composables/useZoomPan.ts +6 -6
  417. package/src/iconSubset.d.mts +10 -0
  418. package/src/iconSubset.mjs +51 -0
  419. package/src/icons-all.ts +10 -0
  420. package/src/icons.ts +59 -8
  421. package/src/index.ts +73 -4
  422. package/src/kit-icons.ts +5 -0
  423. package/src/layout/tree.ts +30 -0
  424. package/src/layout/useLayout.ts +68 -18
  425. package/src/nuxt.ts +87 -17
  426. package/src/runtime/config.plugin.ts +14 -0
  427. package/src/runtime/theme.plugin.ts +43 -23
  428. package/src/theme/backdrop.ts +69 -0
  429. package/src/theme/presets.ts +6 -64
  430. package/src/theme/useTheme.ts +206 -100
  431. package/src/tokens/tokens.css +46 -0
  432. package/dist/chunks/LpBreadcrumbs-p4jHe_V-.js +0 -62
  433. package/dist/chunks/LpContextMenu-CwW1QXe_.js +0 -217
  434. package/dist/chunks/LpDatePicker-CwOToxGq.js +0 -164
  435. package/dist/chunks/LpFormField-CazBc2-a.js +0 -62
  436. package/dist/chunks/LpPhoneInput-BDSKVl_z.js +0 -209
  437. package/dist/chunks/LpTextarea-t7F6gv8E.js +0 -47
@@ -1,13 +1,15 @@
1
- import { defineComponent, computed, shallowRef, ref, watch, onBeforeUnmount, openBlock, createElementBlock, mergeProps, unref, createElementVNode, withModifiers, normalizeStyle, normalizeClass, createCommentVNode, createVNode, Transition, withCtx, Fragment, renderList, toDisplayString, createBlock, createTextVNode } from "vue";
1
+ import { defineComponent, shallowRef, ref, watch, computed, onBeforeUnmount, openBlock, createElementBlock, mergeProps, unref, createElementVNode, withModifiers, normalizeStyle, normalizeClass, createCommentVNode, createVNode, Transition, withCtx, Fragment, renderList, toDisplayString, createBlock, createTextVNode } from "vue";
2
+ import { useLabels } from "../composables/useLpConfig.js";
3
+ import { isSideways, coverScale, cropGeometry } from "./imageCrop.js";
2
4
  import { useHotkeys } from "../composables/useHotkeys.js";
3
5
  import { useReveal } from "../composables/useReveal.js";
4
6
  import { useZoomPan } from "../composables/useZoomPan.js";
5
- import { _ as _sfc_main$1 } from "../chunks/LpButton-5VXXCjwF.js";
7
+ import { _ as _sfc_main$1 } from "../chunks/LpButton-CKSwC6Mu.js";
6
8
  import "reka-ui";
7
- import { _ as _sfc_main$2 } from "../chunks/LpIcon-CCnX5_2j.js";
9
+ import { _ as _sfc_main$2 } from "../chunks/LpIcon-DYtaid0K.js";
8
10
  import { useMergedAttrs } from "../composables/useMergedClass.js";
9
11
  import { _ as _export_sfc } from "../chunks/_plugin-vue_export-helper-1tPrXgE0.js";
10
- import '../assets/LpImageEditor-Ct7Y3aNu.css';const _hoisted_1 = ["aria-label"];
12
+ import '../assets/LpImageEditor-CbMA82g8.css';const _hoisted_1 = ["aria-label"];
11
13
  const _hoisted_2 = ["src"];
12
14
  const _hoisted_3 = {
13
15
  key: 0,
@@ -33,15 +35,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
33
35
  setup(__props, { expose: __expose }) {
34
36
  const props = __props;
35
37
  const { el: revealAnchor, revealed } = useReveal({ immediate: () => !props.animate });
36
- const text = computed(() => ({
37
- rotateLeft: "Rotate left",
38
- rotateRight: "Rotate right",
39
- zoomIn: "Zoom in",
40
- zoomOut: "Zoom out",
41
- reset: "Reset",
42
- canvas: "Crop area — arrows pan, +/− zoom, R rotates, Alt+wheel turns freely",
43
- ...props.labels
44
- }));
38
+ const text = useLabels(
39
+ "imageEditor",
40
+ {
41
+ rotateLeft: "Rotate left",
42
+ rotateRight: "Rotate right",
43
+ zoomIn: "Zoom in",
44
+ zoomOut: "Zoom out",
45
+ reset: "Reset",
46
+ canvas: "Crop area — arrows pan, +/− zoom, R rotates, Alt+wheel turns freely"
47
+ },
48
+ () => props.labels
49
+ );
45
50
  const ASPECTS = {
46
51
  free: null,
47
52
  square: 1,
@@ -54,17 +59,38 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
54
59
  const rotation = ref(0);
55
60
  const viewport = ref(null);
56
61
  const zoom = useZoomPan({ min: 1, max: 6 });
57
- watch(viewport, (el) => zoom.setViewport(el));
62
+ const frameSize = ref(null);
63
+ let frameObserver = null;
64
+ watch(viewport, (el) => {
65
+ zoom.setViewport(el);
66
+ frameObserver?.disconnect();
67
+ frameObserver = null;
68
+ if (!el) return;
69
+ frameSize.value = { width: el.clientWidth, height: el.clientHeight };
70
+ if (typeof ResizeObserver !== "undefined") {
71
+ frameObserver = new ResizeObserver(([entry]) => {
72
+ frameSize.value = { width: entry.contentRect.width, height: entry.contentRect.height };
73
+ });
74
+ frameObserver.observe(el);
75
+ }
76
+ });
58
77
  const upright = computed(() => (rotation.value % 360 + 360) % 360);
59
78
  const edited = computed(() => upright.value !== 0 || zoom.scale.value !== 1);
79
+ let generation = 0;
60
80
  watch(
61
81
  () => props.file,
62
82
  async (file) => {
63
83
  revoke();
64
84
  rotation.value = 0;
65
85
  zoom.reset();
86
+ const mine = ++generation;
66
87
  objectUrl.value = URL.createObjectURL(file);
67
- source.value = await decode(file, objectUrl.value);
88
+ const decoded = await decode(file, objectUrl.value);
89
+ if (mine !== generation) {
90
+ if (decoded instanceof ImageBitmap) decoded.close();
91
+ return;
92
+ }
93
+ source.value = decoded;
68
94
  },
69
95
  { immediate: true }
70
96
  );
@@ -91,7 +117,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
91
117
  if (source.value instanceof ImageBitmap) source.value.close();
92
118
  source.value = null;
93
119
  }
94
- onBeforeUnmount(revoke);
120
+ onBeforeUnmount(() => {
121
+ generation++;
122
+ revoke();
123
+ frameObserver?.disconnect();
124
+ });
95
125
  function rotate(by) {
96
126
  rotation.value += by;
97
127
  const { x, y } = zoom.offset.value;
@@ -110,13 +140,31 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
110
140
  if (ratio) return ratio;
111
141
  const size = sourceSize.value;
112
142
  if (!size) return 1;
113
- const turned = upright.value % 180 !== 0;
143
+ const turned = isSideways(rotation.value);
114
144
  const w = turned ? size.height : size.width;
115
145
  const h = turned ? size.width : size.height;
116
146
  return w / h;
117
147
  });
118
148
  const frameStyle = computed(() => ({ aspectRatio: String(boxRatio.value) }));
149
+ const sized = computed(() => {
150
+ const size = sourceSize.value;
151
+ const frame = frameSize.value;
152
+ if (!size || !frame || !frame.width || !frame.height) return null;
153
+ const cover = coverScale(size.width, size.height, frame.width, frame.height, rotation.value);
154
+ const width = size.width * cover;
155
+ const height = size.height * cover;
156
+ return {
157
+ width: `${width}px`,
158
+ height: `${height}px`,
159
+ left: "50%",
160
+ top: "50%",
161
+ marginLeft: `${-width / 2}px`,
162
+ marginTop: `${-height / 2}px`,
163
+ maxWidth: "none"
164
+ };
165
+ });
119
166
  const imageStyle = computed(() => ({
167
+ ...sized.value,
120
168
  ...zoom.style.value,
121
169
  // Rotation sits innermost, after the composable's scale and translate, so a
122
170
  // drag still moves the picture the way the pointer went once it is turned.
@@ -133,37 +181,26 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
133
181
  const frame = viewport.value;
134
182
  if (!picture || !size || !frame) return null;
135
183
  if (!edited.value && props.aspect === "free") return null;
136
- const turned = upright.value % 180 !== 0;
137
- const uprightW = turned ? size.height : size.width;
138
- const uprightH = turned ? size.width : size.height;
139
- const cover = Math.max(frame.clientWidth / uprightW, frame.clientHeight / uprightH);
140
- const shown = cover * zoom.scale.value;
141
- const cropW = Math.min(uprightW, frame.clientWidth / shown);
142
- const cropH = Math.min(uprightH, frame.clientHeight / shown);
143
- const centreX = clamp(
144
- uprightW / 2 - zoom.offset.value.x / cover,
145
- cropW / 2,
146
- uprightW - cropW / 2
147
- );
148
- const centreY = clamp(
149
- uprightH / 2 - zoom.offset.value.y / cover,
150
- cropH / 2,
151
- uprightH - cropH / 2
152
- );
153
- const scale = Math.min(1, props.maxEdge / Math.max(cropW, cropH));
184
+ const crop = cropGeometry({
185
+ sourceWidth: size.width,
186
+ sourceHeight: size.height,
187
+ frameWidth: frameSize.value?.width ?? frame.clientWidth,
188
+ frameHeight: frameSize.value?.height ?? frame.clientHeight,
189
+ rotation: rotation.value,
190
+ scale: zoom.scale.value,
191
+ offset: zoom.offset.value
192
+ });
193
+ const scale = Math.min(1, props.maxEdge / Math.max(crop.width, crop.height));
154
194
  const canvas = document.createElement("canvas");
155
- canvas.width = Math.max(1, Math.round(cropW * scale));
156
- canvas.height = Math.max(1, Math.round(cropH * scale));
195
+ canvas.width = Math.max(1, Math.round(crop.width * scale));
196
+ canvas.height = Math.max(1, Math.round(crop.height * scale));
157
197
  const ctx = canvas.getContext("2d");
158
198
  if (!ctx) return null;
159
199
  ctx.translate(canvas.width / 2, canvas.height / 2);
160
- ctx.rotate(upright.value * Math.PI / 180);
161
200
  ctx.scale(scale, scale);
162
- const readW = turned ? cropH : cropW;
163
- const readH = turned ? cropW : cropH;
164
- const readX = (turned ? centreY : centreX) - readW / 2;
165
- const readY = (turned ? centreX : centreY) - readH / 2;
166
- ctx.drawImage(picture, readX, readY, readW, readH, -readW / 2, -readH / 2, readW, readH);
201
+ ctx.translate(-crop.centre.x, -crop.centre.y);
202
+ ctx.rotate(rotation.value * Math.PI / 180);
203
+ ctx.drawImage(picture, -size.width / 2, -size.height / 2);
167
204
  return await new Promise(
168
205
  (resolve) => canvas.toBlob(resolve, outputType.value, props.quality)
169
206
  );
@@ -173,9 +210,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
173
210
  if (props.type !== "source") return props.type;
174
211
  return ENCODABLE.has(props.file.type) ? props.file.type : "image/png";
175
212
  });
176
- function clamp(value, low, high) {
177
- return Math.min(Math.max(value, low), Math.max(low, high));
178
- }
179
213
  function onWheel(event) {
180
214
  if (event.altKey) {
181
215
  event.preventDefault();
@@ -232,7 +266,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
232
266
  ref: viewport,
233
267
  tabindex: "0",
234
268
  role: "application",
235
- "aria-label": text.value.canvas,
269
+ "aria-label": unref(text).canvas,
236
270
  class: "relative w-full overflow-hidden rounded-card border border-line bg-surface-soft focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
237
271
  style: normalizeStyle(frameStyle.value),
238
272
  onWheel: withModifiers(onWheel, ["prevent"]),
@@ -250,7 +284,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
250
284
  src: objectUrl.value,
251
285
  alt: "",
252
286
  draggable: "false",
253
- class: normalizeClass(["lp-editor__image absolute inset-0 size-full select-none object-cover motion-reduce:transition-none", [
287
+ class: normalizeClass(["lp-editor__image absolute select-none motion-reduce:transition-none", [
288
+ sized.value ? "" : "inset-0 size-full object-cover",
254
289
  unref(zoom).panning.value ? "cursor-grabbing" : "cursor-grab",
255
290
  __props.animate && !unref(revealed) ? "lp-editor__image--waiting" : ""
256
291
  ]]),
@@ -280,8 +315,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
280
315
  createVNode(_sfc_main$1, {
281
316
  size: "sm",
282
317
  variant: "ghost",
283
- title: text.value.rotateLeft,
284
- "aria-label": text.value.rotateLeft,
318
+ title: unref(text).rotateLeft,
319
+ "aria-label": unref(text).rotateLeft,
285
320
  onClick: _cache[4] || (_cache[4] = ($event) => rotate(-90))
286
321
  }, {
287
322
  default: withCtx(() => [
@@ -295,8 +330,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
295
330
  createVNode(_sfc_main$1, {
296
331
  size: "sm",
297
332
  variant: "ghost",
298
- title: text.value.rotateRight,
299
- "aria-label": text.value.rotateRight,
333
+ title: unref(text).rotateRight,
334
+ "aria-label": unref(text).rotateRight,
300
335
  onClick: _cache[5] || (_cache[5] = ($event) => rotate(90))
301
336
  }, {
302
337
  default: withCtx(() => [
@@ -313,8 +348,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
313
348
  size: "sm",
314
349
  variant: "ghost",
315
350
  disabled: unref(zoom).scale.value <= 1,
316
- title: text.value.zoomOut,
317
- "aria-label": text.value.zoomOut,
351
+ title: unref(text).zoomOut,
352
+ "aria-label": unref(text).zoomOut,
318
353
  onClick: _cache[6] || (_cache[6] = ($event) => unref(zoom).zoomBy(1 / 1.2))
319
354
  }, {
320
355
  default: withCtx(() => [
@@ -329,8 +364,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
329
364
  createVNode(_sfc_main$1, {
330
365
  size: "sm",
331
366
  variant: "ghost",
332
- title: text.value.zoomIn,
333
- "aria-label": text.value.zoomIn,
367
+ title: unref(text).zoomIn,
368
+ "aria-label": unref(text).zoomIn,
334
369
  onClick: _cache[7] || (_cache[7] = ($event) => unref(zoom).zoomBy(1.2))
335
370
  }, {
336
371
  default: withCtx(() => [
@@ -354,7 +389,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
354
389
  name: "lucide:undo-2",
355
390
  size: 15
356
391
  }),
357
- createTextVNode(" " + toDisplayString(text.value.reset), 1)
392
+ createTextVNode(" " + toDisplayString(unref(text).reset), 1)
358
393
  ]),
359
394
  _: 1
360
395
  })) : createCommentVNode("", true)
@@ -363,7 +398,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
363
398
  };
364
399
  }
365
400
  });
366
- const LpImageEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a19a8cf6"]]);
401
+ const LpImageEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b510205a"]]);
367
402
  export {
368
403
  LpImageEditor as default
369
404
  };
@@ -1,8 +1,9 @@
1
+ import { type MaskSpec, type MaskTokens } from "../composables/useInputMask";
1
2
  declare const _default: typeof __VLS_export;
2
3
  export default _default;
3
4
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
4
5
  modelValue?: string;
5
- size?: "sm" | "md" | "lg" | undefined;
6
+ size?: "md" | "sm" | "lg" | undefined;
6
7
  invalid?: boolean;
7
8
  placeholder?: string;
8
9
  type?: string;
@@ -28,6 +29,14 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
28
29
  * disallowed input/paste at the source — cursor- and IME-safe.
29
30
  */
30
31
  restrict?: RegExp;
32
+ /**
33
+ * Format-as-you-type mask ("+0 (000) 000-00-00", a list, or a function of
34
+ * the raw value). The model holds the masked text; `update:raw` carries
35
+ * the accepted characters alone.
36
+ */
37
+ mask?: MaskSpec;
38
+ /** Extra or replacement mask tokens, one-character RegExps by key. */
39
+ maskTokens?: MaskTokens;
31
40
  }, {
32
41
  focus: (options?: FocusOptions) => void | undefined;
33
42
  blur: () => void | undefined;
@@ -35,9 +44,10 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
35
44
  input: import("vue").Ref<HTMLInputElement | null, HTMLInputElement | null>;
36
45
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
37
46
  "update:modelValue": (value: string) => any;
47
+ "update:raw": (value: string) => any;
38
48
  }, string, import("vue").PublicProps, Readonly<{
39
49
  modelValue?: string;
40
- size?: "sm" | "md" | "lg" | undefined;
50
+ size?: "md" | "sm" | "lg" | undefined;
41
51
  invalid?: boolean;
42
52
  placeholder?: string;
43
53
  type?: string;
@@ -63,11 +73,20 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
63
73
  * disallowed input/paste at the source — cursor- and IME-safe.
64
74
  */
65
75
  restrict?: RegExp;
76
+ /**
77
+ * Format-as-you-type mask ("+0 (000) 000-00-00", a list, or a function of
78
+ * the raw value). The model holds the masked text; `update:raw` carries
79
+ * the accepted characters alone.
80
+ */
81
+ mask?: MaskSpec;
82
+ /** Extra or replacement mask tokens, one-character RegExps by key. */
83
+ maskTokens?: MaskTokens;
66
84
  }> & Readonly<{
67
85
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
86
+ "onUpdate:raw"?: ((value: string) => any) | undefined;
68
87
  }>, {
69
88
  type: string;
70
- size: "sm" | "md" | "lg";
89
+ size: "md" | "sm" | "lg";
71
90
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
72
91
  leading?: (props: {}) => any;
73
92
  } & {
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpInput-9EXWUM9B.js";
1
+ import { _ as _sfc_main } from "../chunks/LpInput-D-YGQbEv.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -1,4 +1,20 @@
1
1
  import { type LightboxItem } from "./lightbox";
2
+ export type LightboxLabels = {
3
+ viewer: string;
4
+ /** `{index}` and `{total}` are filled in. */
5
+ position: string;
6
+ previous: string;
7
+ next: string;
8
+ zoomIn: string;
9
+ zoomOut: string;
10
+ rotate: string;
11
+ copy: string;
12
+ download: string;
13
+ close: string;
14
+ failed: string;
15
+ spoiler: string;
16
+ reveal: string;
17
+ };
2
18
  type __VLS_Props = {
3
19
  open?: boolean;
4
20
  /** Images to page through. */
@@ -17,6 +33,7 @@ type __VLS_Props = {
17
33
  loop?: boolean;
18
34
  /** Largest zoom level. */
19
35
  maxZoom?: number;
36
+ labels?: Partial<LightboxLabels>;
20
37
  };
21
38
  type __VLS_Slots = {
22
39
  /** Replace the caption block under the image. */
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpLightbox-2sYVMY-S.js";
1
+ import { _ as _sfc_main } from "../chunks/LpLightbox-DSDahF23.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -1,8 +1,11 @@
1
1
  import { type Component } from "vue";
2
+ import { type LinkTarget } from "./link";
2
3
  declare const _default: typeof __VLS_export;
3
4
  export default _default;
4
5
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
5
6
  href?: string;
7
+ /** Router destination; rendered through the configured link component. */
8
+ to?: LinkTarget;
6
9
  external?: boolean;
7
10
  /** Shorthand for `tone="muted"`. */
8
11
  muted?: boolean;
@@ -14,11 +17,9 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
14
17
  */
15
18
  tone?: "brand" | "ink" | "muted" | "soft";
16
19
  /**
17
- * Root element/component. Defaults to a native <a>. Pass a router link
18
- * component (e.g. NuxtLink or RouterLink) to keep client-side navigation;
19
- * the kit stays DOM-agnostic, the consumer supplies the link component.
20
- * Router links take their destination through their own prop (`to`), which
21
- * falls through as a plain attribute.
20
+ * Root element/component. By default an internal `to`/`href` renders the
21
+ * link component set with provideLpConfig (NuxtLink under the Nuxt module),
22
+ * anything else a native <a>. Pass a component here to override per link.
22
23
  */
23
24
  as?: string | Component;
24
25
  /**
@@ -42,6 +43,8 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
42
43
  revealOn?: "self" | "group";
43
44
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
44
45
  href?: string;
46
+ /** Router destination; rendered through the configured link component. */
47
+ to?: LinkTarget;
45
48
  external?: boolean;
46
49
  /** Shorthand for `tone="muted"`. */
47
50
  muted?: boolean;
@@ -53,11 +56,9 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
53
56
  */
54
57
  tone?: "brand" | "ink" | "muted" | "soft";
55
58
  /**
56
- * Root element/component. Defaults to a native <a>. Pass a router link
57
- * component (e.g. NuxtLink or RouterLink) to keep client-side navigation;
58
- * the kit stays DOM-agnostic, the consumer supplies the link component.
59
- * Router links take their destination through their own prop (`to`), which
60
- * falls through as a plain attribute.
59
+ * Root element/component. By default an internal `to`/`href` renders the
60
+ * link component set with provideLpConfig (NuxtLink under the Nuxt module),
61
+ * anything else a native <a>. Pass a component here to override per link.
61
62
  */
62
63
  as?: string | Component;
63
64
  /**
@@ -80,7 +81,6 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
80
81
  */
81
82
  revealOn?: "self" | "group";
82
83
  }> & Readonly<{}>, {
83
- as: string | Component;
84
84
  variant: "default" | "underline" | "reveal";
85
85
  revealOn: "self" | "group";
86
86
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpLink-DCND-zyu.js";
1
+ import { _ as _sfc_main } from "../chunks/LpLink-Krkjhe_y.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -1,4 +1,30 @@
1
1
  import { type ContextMenuItemDef } from "./LpContextMenu.vue";
2
+ export interface LogViewerLabels {
3
+ [key: string]: string;
4
+ empty: string;
5
+ frozen: string;
6
+ noMatch: string;
7
+ loadingOlder: string;
8
+ copyMessage: string;
9
+ copyLine: string;
10
+ copyTimestamp: string;
11
+ copied: string;
12
+ /** `{source}` is replaced by the line's source. */
13
+ filterSource: string;
14
+ /** `{level}` is replaced by the line's level. */
15
+ filterLevel: string;
16
+ /** `{n}` is replaced by the count. */
17
+ identical: string;
18
+ jump: string;
19
+ search: string;
20
+ clearSearch: string;
21
+ previousMatch: string;
22
+ nextMatch: string;
23
+ /** `{current}` and `{total}` are replaced. */
24
+ matchCount: string;
25
+ noMatches: string;
26
+ levels: string;
27
+ }
2
28
  export type LogLevel = "trace" | "debug" | "info" | "warn" | "error" | "fatal" | "success";
3
29
  export interface LogLine {
4
30
  /** Body of the line. */
@@ -69,7 +95,32 @@ declare const __VLS_export: import("vue").DefineComponent<{
69
95
  * so a duplicate level word / timestamp doesn't repeat in the message body.
70
96
  */
71
97
  parse?: boolean;
72
- }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
98
+ /**
99
+ * Keep only the newest N lines on screen. The consumer can keep pushing
100
+ * into the same array (or hand over a longer one) and the viewer shows the
101
+ * tail; trimming the source itself is still the cheaper way to cap memory.
102
+ */
103
+ maxLines?: number;
104
+ /**
105
+ * A bar above the stream with a search box (Enter / Shift+Enter or F3 step
106
+ * through matches) and level chips. The term binds via `v-model:search`,
107
+ * the chosen levels via `v-model:levels`.
108
+ */
109
+ toolbar?: boolean;
110
+ labels?: Partial<LogViewerLabels>;
111
+ } & {
112
+ /** The toolbar's search term. Without the toolbar, `highlight` is the term. */
113
+ search?: string;
114
+ /** Levels to show. Empty shows every level. */
115
+ levels?: LogLevel[];
116
+ }, {
117
+ next: () => void;
118
+ previous: () => void;
119
+ focusSearch: () => void | undefined;
120
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
121
+ "update:search": (value: string) => any;
122
+ "update:levels": (value: LogLevel[]) => any;
123
+ } & {
73
124
  filter: (by: {
74
125
  source?: string;
75
126
  level?: LogLevel;
@@ -133,21 +184,39 @@ declare const __VLS_export: import("vue").DefineComponent<{
133
184
  * so a duplicate level word / timestamp doesn't repeat in the message body.
134
185
  */
135
186
  parse?: boolean;
187
+ /**
188
+ * Keep only the newest N lines on screen. The consumer can keep pushing
189
+ * into the same array (or hand over a longer one) and the viewer shows the
190
+ * tail; trimming the source itself is still the cheaper way to cap memory.
191
+ */
192
+ maxLines?: number;
193
+ /**
194
+ * A bar above the stream with a search box (Enter / Shift+Enter or F3 step
195
+ * through matches) and level chips. The term binds via `v-model:search`,
196
+ * the chosen levels via `v-model:levels`.
197
+ */
198
+ toolbar?: boolean;
199
+ labels?: Partial<LogViewerLabels>;
200
+ } & {
201
+ /** The toolbar's search term. Without the toolbar, `highlight` is the term. */
202
+ search?: string;
203
+ /** Levels to show. Empty shows every level. */
204
+ levels?: LogLevel[];
136
205
  }> & Readonly<{
137
206
  onFilter?: ((by: {
138
207
  source?: string;
139
208
  level?: LogLevel;
140
209
  }) => any) | undefined;
210
+ "onUpdate:search"?: ((value: string) => any) | undefined;
211
+ "onUpdate:levels"?: ((value: LogLevel[]) => any) | undefined;
141
212
  "onReach-top"?: (() => any) | undefined;
142
213
  }>, {
143
214
  height: string;
144
215
  wrap: boolean;
145
- emptyLabel: string;
146
216
  lineNumbers: boolean;
147
217
  showTime: boolean;
148
218
  showLevel: boolean;
149
219
  tail: boolean;
150
- frozenLabel: string;
151
220
  rowMenu: boolean;
152
221
  parse: boolean;
153
222
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpLogViewer-CaRy5MeS.js";
1
+ import { _ as _sfc_main } from "../chunks/LpLogViewer-KypbgOyo.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -19,6 +19,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
19
19
  zoomOutLabel?: string;
20
20
  locateLabel?: string;
21
21
  recentreLabel?: string;
22
+ /** Accessible name of the map itself. */
23
+ mapLabel?: string;
22
24
  }, {
23
25
  zoomIn: () => void;
24
26
  zoomOut: () => void;
@@ -44,6 +46,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
44
46
  zoomOutLabel?: string;
45
47
  locateLabel?: string;
46
48
  recentreLabel?: string;
49
+ /** Accessible name of the map itself. */
50
+ mapLabel?: string;
47
51
  }> & Readonly<{
48
52
  "onUpdate:modelValue"?: ((value: LatLon) => any) | undefined;
49
53
  }>, {
@@ -52,8 +56,4 @@ declare const __VLS_export: import("vue").DefineComponent<{
52
56
  zoom: number;
53
57
  tiles: TileSource;
54
58
  locatable: boolean;
55
- zoomInLabel: string;
56
- zoomOutLabel: string;
57
- locateLabel: string;
58
- recentreLabel: string;
59
59
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpMapPicker-ul4oYno6.js";
1
+ import { _ as _sfc_main } from "../chunks/LpMapPicker-Cc84LaM3.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpMediaGallery-FF-NquIo.js";
1
+ import { _ as _sfc_main } from "../chunks/LpMediaGallery-YKr-cQPN.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -32,20 +32,30 @@ type __VLS_Props = {
32
32
  * `provideGlass`, and without one it is off.
33
33
  */
34
34
  glass?: boolean;
35
+ /**
36
+ * Accessible name for a dialog without a visible `title`. Rendered as a
37
+ * visually hidden title, so assistive tech still announces what opened.
38
+ */
39
+ ariaLabel?: string;
40
+ /** `alertdialog` for a prompt that interrupts the user (a confirmation). */
41
+ role?: "dialog" | "alertdialog";
42
+ labels?: Partial<{
43
+ close: string;
44
+ }>;
35
45
  };
36
- declare var __VLS_31: {}, __VLS_39: {}, __VLS_58: {}, __VLS_66: {}, __VLS_68: {}, __VLS_70: {};
46
+ declare var __VLS_31: {}, __VLS_45: {}, __VLS_64: {}, __VLS_72: {}, __VLS_74: {}, __VLS_76: {};
37
47
  type __VLS_Slots = {} & {
38
48
  aside?: (props: typeof __VLS_31) => any;
39
49
  } & {
40
- title?: (props: typeof __VLS_39) => any;
50
+ title?: (props: typeof __VLS_45) => any;
41
51
  } & {
42
- default?: (props: typeof __VLS_58) => any;
52
+ default?: (props: typeof __VLS_64) => any;
43
53
  } & {
44
- default?: (props: typeof __VLS_66) => any;
54
+ default?: (props: typeof __VLS_72) => any;
45
55
  } & {
46
- footer?: (props: typeof __VLS_68) => any;
56
+ footer?: (props: typeof __VLS_74) => any;
47
57
  } & {
48
- asideEnd?: (props: typeof __VLS_70) => any;
58
+ asideEnd?: (props: typeof __VLS_76) => any;
49
59
  };
50
60
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
51
61
  "update:open": (value: boolean) => any;
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpModal-Bt0pQCI_.js";
1
+ import { _ as _sfc_main } from "../chunks/LpModal-DMMDQHAu.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -53,7 +53,6 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
53
53
  glass: boolean;
54
54
  mobileBreakpoint: Breakpoint;
55
55
  navWidth: string;
56
- navLabel: string;
57
56
  navSide: "start" | "end";
58
57
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
59
58
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpModalNav-YaifHrXC.js";
1
+ import { _ as _sfc_main } from "../chunks/LpModalNav-BVPDyIup.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };