@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
@@ -0,0 +1,31 @@
1
+ export interface TableFilterOption {
2
+ value: unknown;
3
+ label: string;
4
+ /** Rows holding the value; omitted when unknown (a server-backed table). */
5
+ count?: number;
6
+ }
7
+ export interface TableFilterLabels {
8
+ search: string;
9
+ all: string;
10
+ none: string;
11
+ invert: string;
12
+ only: string;
13
+ onlyShown: string;
14
+ addShown: string;
15
+ noValues: string;
16
+ }
17
+ declare const _default: typeof __VLS_export;
18
+ export default _default;
19
+ declare const __VLS_export: import("vue").DefineComponent<{
20
+ options: TableFilterOption[];
21
+ hidden: ReadonlySet<unknown>;
22
+ labels: TableFilterLabels;
23
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
24
+ "update:hidden": (value: Set<unknown>) => any;
25
+ }, string, import("vue").PublicProps, Readonly<{
26
+ options: TableFilterOption[];
27
+ hidden: ReadonlySet<unknown>;
28
+ labels: TableFilterLabels;
29
+ }> & Readonly<{
30
+ "onUpdate:hidden"?: ((value: Set<unknown>) => any) | undefined;
31
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -0,0 +1,4 @@
1
+ import { _ as _sfc_main } from "../chunks/LpTableFilter-BV8PpLM9.js";
2
+ export {
3
+ _sfc_main as default
4
+ };
@@ -6,13 +6,15 @@ export interface TocLink {
6
6
  }
7
7
  type __VLS_Props = {
8
8
  links: TocLink[];
9
- /** Heading shown above the list. */
9
+ /** Heading shown above the list (defaults to the `title` label). */
10
10
  title?: string;
11
11
  /** px offset from the top used as the scroll-spy trigger line. */
12
12
  offset?: number;
13
+ labels?: Partial<{
14
+ title: string;
15
+ }>;
13
16
  };
14
17
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
15
- title: string;
16
18
  offset: number;
17
19
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
20
  declare const _default: typeof __VLS_export;
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpTableOfContents-CjvxPMpU.js";
1
+ import { _ as _sfc_main } from "../chunks/LpTableOfContents-BUcAfGPQ.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -6,6 +6,8 @@ export interface TabItem {
6
6
  }
7
7
  type __VLS_Props = {
8
8
  modelValue?: string;
9
+ /** Initially active tab when `v-model` is not bound (default: the first). */
10
+ defaultValue?: string;
9
11
  items: TabItem[];
10
12
  /**
11
13
  * "contained" (default) wraps the triggers in a bordered, filled bar.
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpTabs-Cefe_lys.js";
1
+ import { _ as _sfc_main } from "../chunks/LpTabs-29iW1XOx.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -0,0 +1,77 @@
1
+ import { type TagDuplicates, type TagRejection, type TagValidator } from "./tags";
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
4
+ export type TagsInputLabels = {
5
+ remove: string;
6
+ duplicate: string;
7
+ max: string;
8
+ added: string;
9
+ removed: string;
10
+ };
11
+ declare const __VLS_export: import("vue").DefineComponent<{
12
+ modelValue?: string[];
13
+ placeholder?: string;
14
+ /** Characters (or a RegExp) that end a tag while typing and split a paste. */
15
+ delimiter?: string | readonly string[] | RegExp;
16
+ /** At most this many tags. */
17
+ max?: number;
18
+ /**
19
+ * "reject" keeps a repeat typed with a note, "ignore" drops it with a passing
20
+ * note, "allow" keeps it. Either way the tag it repeats pulses.
21
+ */
22
+ duplicates?: TagDuplicates;
23
+ /** Return an error message to refuse a tag. */
24
+ validate?: TagValidator;
25
+ /** Applied to each tag before it is checked and stored (trim is always applied). */
26
+ normalize?: (tag: string) => string;
27
+ /** Turn leftover text into a tag when the field loses focus. */
28
+ addOnBlur?: boolean;
29
+ disabled?: boolean;
30
+ invalid?: boolean;
31
+ required?: boolean;
32
+ label?: string;
33
+ hint?: string;
34
+ error?: string;
35
+ labels?: Partial<TagsInputLabels>;
36
+ }, {
37
+ focus: () => void | undefined;
38
+ add: (value: string) => string;
39
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
40
+ blur: (event: FocusEvent) => any;
41
+ "update:modelValue": (value: string[]) => any;
42
+ reject: (rejected: TagRejection[]) => any;
43
+ }, string, import("vue").PublicProps, Readonly<{
44
+ modelValue?: string[];
45
+ placeholder?: string;
46
+ /** Characters (or a RegExp) that end a tag while typing and split a paste. */
47
+ delimiter?: string | readonly string[] | RegExp;
48
+ /** At most this many tags. */
49
+ max?: number;
50
+ /**
51
+ * "reject" keeps a repeat typed with a note, "ignore" drops it with a passing
52
+ * note, "allow" keeps it. Either way the tag it repeats pulses.
53
+ */
54
+ duplicates?: TagDuplicates;
55
+ /** Return an error message to refuse a tag. */
56
+ validate?: TagValidator;
57
+ /** Applied to each tag before it is checked and stored (trim is always applied). */
58
+ normalize?: (tag: string) => string;
59
+ /** Turn leftover text into a tag when the field loses focus. */
60
+ addOnBlur?: boolean;
61
+ disabled?: boolean;
62
+ invalid?: boolean;
63
+ required?: boolean;
64
+ label?: string;
65
+ hint?: string;
66
+ error?: string;
67
+ labels?: Partial<TagsInputLabels>;
68
+ }> & Readonly<{
69
+ onBlur?: ((event: FocusEvent) => any) | undefined;
70
+ "onUpdate:modelValue"?: ((value: string[]) => any) | undefined;
71
+ onReject?: ((rejected: TagRejection[]) => any) | undefined;
72
+ }>, {
73
+ modelValue: string[];
74
+ delimiter: string | readonly string[] | RegExp;
75
+ duplicates: TagDuplicates;
76
+ addOnBlur: boolean;
77
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -0,0 +1,4 @@
1
+ import { _ as _sfc_main } from "../chunks/LpTagsInput-D1SuqbhB.js";
2
+ export {
3
+ _sfc_main as default
4
+ };
@@ -1,4 +1,6 @@
1
- type __VLS_Props = {
1
+ declare const _default: typeof __VLS_export;
2
+ export default _default;
3
+ declare const __VLS_export: import("vue").DefineComponent<{
2
4
  modelValue?: string;
3
5
  placeholder?: string;
4
6
  rows?: number;
@@ -12,11 +14,22 @@ type __VLS_Props = {
12
14
  * the <textarea> for native validation.
13
15
  */
14
16
  required?: boolean;
15
- };
16
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
17
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
17
18
  "update:modelValue": (value: string) => any;
18
- }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
19
+ }, string, import("vue").PublicProps, Readonly<{
20
+ modelValue?: string;
21
+ placeholder?: string;
22
+ rows?: number;
23
+ invalid?: boolean;
24
+ disabled?: boolean;
25
+ label?: string;
26
+ hint?: string;
27
+ error?: string;
28
+ /**
29
+ * Marks the label with the required indicator; the attribute still reaches
30
+ * the <textarea> for native validation.
31
+ */
32
+ required?: boolean;
33
+ }> & Readonly<{
19
34
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
20
35
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
- declare const _default: typeof __VLS_export;
22
- export default _default;
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpTextarea-t7F6gv8E.js";
1
+ import { _ as _sfc_main } from "../chunks/LpTextarea-uuScWo6-.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -0,0 +1,22 @@
1
+ import { type Component } from "vue";
2
+ import type { TokenSet } from "../theme/tokens";
3
+ declare const _default: typeof __VLS_export;
4
+ export default _default;
5
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
6
+ theme: TokenSet;
7
+ /** Root element. A wrapper that should not affect layout can use `class="contents"`. */
8
+ as?: string | Component;
9
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
10
+ theme: TokenSet;
11
+ /** Root element. A wrapper that should not affect layout can use `class="contents"`. */
12
+ as?: string | Component;
13
+ }> & Readonly<{}>, {
14
+ as: string | Component;
15
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
16
+ default?: (props: {}) => any;
17
+ }>;
18
+ type __VLS_WithSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };
@@ -0,0 +1,4 @@
1
+ import { _ as _sfc_main } from "../chunks/LpThemeProvider-Be4r2TQX.js";
2
+ export {
3
+ _sfc_main as default
4
+ };
@@ -13,9 +13,9 @@ type __VLS_Props = {
13
13
  cycleThemes?: (string | TokenSet)[];
14
14
  /**
15
15
  * Trigger style:
16
- * - "swatch" (default): a square showing the active theme's brand colour.
16
+ * - "swatch" (default): a round chip previewing the theme's surface and brand.
17
17
  * - "icon": a sun/moon icon following the active theme's mode.
18
- * - "pill": swatch + the theme name in a pill (always shows the label).
18
+ * - "pill": the chip and the theme name in a rounded pill.
19
19
  */
20
20
  variant?: "swatch" | "icon" | "pill";
21
21
  /** Show the active theme's name next to the trigger (forced on for "pill"). */
@@ -31,6 +31,19 @@ type __VLS_Props = {
31
31
  transition?: boolean;
32
32
  size?: "sm" | "md" | "lg";
33
33
  "aria-label"?: string;
34
+ /**
35
+ * Offer a "System" entry in the menu that follows the OS colour scheme,
36
+ * switching between these two themes (names from `themes`, or TokenSets).
37
+ */
38
+ system?: {
39
+ light: string | TokenSet;
40
+ dark: string | TokenSet;
41
+ };
42
+ /** Text overrides. `trigger` may contain `{name}`. */
43
+ labels?: Partial<{
44
+ trigger: string;
45
+ system: string;
46
+ }>;
34
47
  };
35
48
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
36
49
  change: (theme: TokenSet) => any;
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpThemeSwitcher-Cue-myST.js";
1
+ import { _ as _sfc_main } from "../chunks/LpThemeSwitcher-B4aVPbNC.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpTilt-DuyKbpkA.js";
1
+ import { _ as _sfc_main } from "../chunks/LpTilt-B7KHX1zH.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpTimeField-K6nAGboX.js";
1
+ import { _ as _sfc_main } from "../chunks/LpTimeField-Cqe7fXnh.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -1,3 +1,8 @@
1
- declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1
+ type __VLS_Props = {
2
+ labels?: Partial<{
3
+ dismiss: string;
4
+ }>;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
2
7
  declare const _default: typeof __VLS_export;
3
8
  export default _default;
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpToaster-gDB1EaU3.js";
1
+ import { _ as _sfc_main } from "../chunks/LpToaster-DpJvoCOh.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -9,7 +9,7 @@ type __VLS_Props = {
9
9
  * adding a description.
10
10
  */
11
11
  label?: boolean;
12
- /** Milliseconds before the tip appears on hover. */
12
+ /** Milliseconds before the tip appears on hover. Unset follows the provider, else 200. */
13
13
  delay?: number;
14
14
  /**
15
15
  * Show on any focus, not just keyboard focus. Off by default: a tip that
@@ -45,7 +45,6 @@ type __VLS_Slots = {} & {
45
45
  content?: (props: typeof __VLS_38) => any;
46
46
  };
47
47
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
48
- delay: number;
49
48
  side: "top" | "right" | "bottom" | "left";
50
49
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
51
50
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpTooltip-hCLPAqMG.js";
1
+ import { _ as _sfc_main } from "../chunks/LpTooltip-CXVKcOXT.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -0,0 +1,22 @@
1
+ type __VLS_Props = {
2
+ /** Milliseconds before the first tip appears on hover. */
3
+ delay?: number;
4
+ /** How long after a tip closes the next one still opens at once. */
5
+ skipDelay?: number;
6
+ };
7
+ declare var __VLS_8: {};
8
+ type __VLS_Slots = {} & {
9
+ default?: (props: typeof __VLS_8) => any;
10
+ };
11
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
12
+ delay: number;
13
+ skipDelay: number;
14
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
16
+ declare const _default: typeof __VLS_export;
17
+ export default _default;
18
+ type __VLS_WithSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };
@@ -0,0 +1,4 @@
1
+ import { _ as _sfc_main } from "../chunks/LpTooltipProvider-CftjV7Xc.js";
2
+ export {
3
+ _sfc_main as default
4
+ };
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpTopologyCanvas-Cm1L39uL.js";
1
+ import { _ as _sfc_main } from "../chunks/LpTopologyCanvas-6ozNrQKh.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -24,6 +24,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
24
24
  * `{ degraded: '#ffb84d' }` to recolour just one state.
25
25
  */
26
26
  colors?: Partial<Record<UptimeStatus, string>>;
27
+ /** Status names, for the tooltip and screen readers. */
28
+ labels?: Partial<Record<UptimeStatus, string>>;
27
29
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
28
30
  /** Oldest → newest. Each entry is one slice of the timeline. */
29
31
  segments: UptimeSegment[];
@@ -41,6 +43,8 @@ declare const __VLS_export: import("vue").DefineComponent<{
41
43
  * `{ degraded: '#ffb84d' }` to recolour just one state.
42
44
  */
43
45
  colors?: Partial<Record<UptimeStatus, string>>;
46
+ /** Status names, for the tooltip and screen readers. */
47
+ labels?: Partial<Record<UptimeStatus, string>>;
44
48
  }> & Readonly<{}>, {
45
49
  showUptime: boolean;
46
50
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "../chunks/LpUptimeBar-DvAMno0S.js";
1
+ import { _ as _sfc_main } from "../chunks/LpUptimeBar-ugcv25xj.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -21,6 +21,37 @@ export interface ChartSeries {
21
21
  axis?: "left" | "right";
22
22
  }
23
23
  export type ChartAxis = "left" | "right";
24
+ /**
25
+ * A reference level drawn across the plot: a line at `value`, or a band from
26
+ * `value` to `to`. SLOs, budgets, alert thresholds.
27
+ */
28
+ export interface ChartThreshold {
29
+ value: number;
30
+ /** Upper (or lower) edge of a band. Omit for a single line. */
31
+ to?: number;
32
+ label?: string;
33
+ /** Any CSS colour. Defaults to the strong line token. */
34
+ color?: string;
35
+ axis?: ChartAxis;
36
+ /** Solid instead of the default dashed line. */
37
+ solid?: boolean;
38
+ }
39
+ /**
40
+ * A vertical marker at one x position: a deploy, an incident, a release.
41
+ * `at` is a point index or one of the x labels.
42
+ */
43
+ export interface ChartMarker {
44
+ at: number | string;
45
+ label?: string;
46
+ color?: string;
47
+ }
48
+ /** The x index a marker points at, or -1 when it names nothing on the axis. */
49
+ export declare const markerIndex: (at: number | string, labels: string[], count: number) => number;
50
+ /**
51
+ * A one-sentence reading of the chart for assistive technology: what is
52
+ * plotted, over how many points, and each series' range and latest value.
53
+ */
54
+ export declare const chartSummary: (series: NormalSeries[], labels: string[], fmt: (s: NormalSeries, v: number) => string, title?: string) => string;
24
55
  export interface NormalSeries {
25
56
  name: string;
26
57
  color: string;
@@ -175,6 +206,6 @@ elbow: number,
175
206
  run: number,
176
207
  /** Minimum vertical gap between two labels on the same side. */
177
208
  spacing: number, height: number) => CalloutLabel[];
178
- /** Compact default tick formatting: 1.2k, 3.4M — never 1200.0000001. */
209
+ /** Compact default tick formatting: 1.2k, 3.4M — never 1200.0000001 or 1000k. */
179
210
  export declare const formatTick: (v: number) => string;
180
211
  export {};
@@ -1,3 +1,21 @@
1
+ const markerIndex = (at, labels, count) => {
2
+ if (typeof at === "number") return Number.isInteger(at) && at >= 0 && at < count ? at : -1;
3
+ return labels.indexOf(at);
4
+ };
5
+ const chartSummary = (series, labels, fmt, title) => {
6
+ const parts = [];
7
+ const span = labels.length ? `${labels.length} points, ${labels[0]} to ${labels[labels.length - 1]}` : "";
8
+ parts.push([title, span].filter(Boolean).join(", "));
9
+ for (const s of series) {
10
+ const values = s.values.filter((v) => v != null);
11
+ if (!values.length) continue;
12
+ const last = values[values.length - 1];
13
+ parts.push(
14
+ `${s.name}: from ${fmt(s, Math.min(...values))} to ${fmt(s, Math.max(...values))}, latest ${fmt(s, last)}`
15
+ );
16
+ }
17
+ return parts.filter(Boolean).join(". ");
18
+ };
1
19
  const plotWidth = (b) => Math.max(0, b.width - b.left - b.right);
2
20
  const plotHeight = (b) => Math.max(0, b.height - b.top - b.bottom);
3
21
  const CHART_PALETTE = [
@@ -27,8 +45,9 @@ const niceScale = (min, max, ticks) => {
27
45
  if (!Number.isFinite(min) || !Number.isFinite(max)) return { min: 0, max: 1, step: 1 };
28
46
  if (min === max) {
29
47
  const pad = Math.abs(min) || 1;
30
- min -= pad / 2;
31
- max += pad / 2;
48
+ min = min >= 0 ? Math.max(0, min - pad / 2) : min - pad / 2;
49
+ max = max <= 0 ? Math.min(0, max + pad / 2) : max + pad / 2;
50
+ if (min === max) max = min + pad;
32
51
  }
33
52
  const raw = (max - min) / Math.max(1, ticks);
34
53
  const mag = 10 ** Math.floor(Math.log10(raw));
@@ -278,6 +297,7 @@ const calloutLabels = (angles, cx, cy, radius, elbow, run, spacing, height) => {
278
297
  return side === "right" ? a : -a;
279
298
  };
280
299
  const list = sides[side].sort((p, q) => rank(p.mid) - rank(q.mid));
300
+ if (!list.length) continue;
281
301
  const top = spacing / 2;
282
302
  const bottom = height - spacing / 2;
283
303
  for (let pass = 0; pass < 24; pass++) {
@@ -324,11 +344,25 @@ const calloutLabels = (angles, cx, cy, radius, elbow, run, spacing, height) => {
324
344
  return out;
325
345
  };
326
346
  const formatTick = (v) => {
347
+ if (!Number.isFinite(v)) return String(v);
348
+ const units = [
349
+ [1e3, "k"],
350
+ [1e6, "M"],
351
+ [1e9, "B"],
352
+ [1e12, "T"]
353
+ ];
327
354
  const abs = Math.abs(v);
328
- if (abs >= 1e9) return `${Number((v / 1e9).toFixed(1))}B`;
329
- if (abs >= 1e6) return `${Number((v / 1e6).toFixed(1))}M`;
330
- if (abs >= 1e3) return `${Number((v / 1e3).toFixed(1))}k`;
331
- return String(Number(v.toFixed(2)));
355
+ let i = units.length - 1;
356
+ while (i >= 0 && abs < units[i][0]) i--;
357
+ if (i < 0) {
358
+ const plain = Number(v.toFixed(2));
359
+ return Math.abs(plain) >= 1e3 ? formatTick(Math.sign(v) * 1e3) : String(plain);
360
+ }
361
+ const scaled = Number((v / units[i][0]).toFixed(1));
362
+ if (Math.abs(scaled) >= 1e3 && i < units.length - 1) {
363
+ return `${Number((v / units[i + 1][0]).toFixed(1))}${units[i + 1][1]}`;
364
+ }
365
+ return `${scaled}${units[i][1]}`;
332
366
  };
333
367
  export {
334
368
  CHART_PALETTE,
@@ -337,9 +371,11 @@ export {
337
371
  axisTicks,
338
372
  barPath,
339
373
  calloutLabels,
374
+ chartSummary,
340
375
  extent,
341
376
  formatTick,
342
377
  linePath,
378
+ markerIndex,
343
379
  nearestIndex,
344
380
  niceScale,
345
381
  normalise,
@@ -6,3 +6,9 @@ export interface Token {
6
6
  }
7
7
  /** Tokenize one line into coloured spans. JSON keys get the property colour. */
8
8
  export declare function tokenizeLine(line: string, lang: CodeLang): Token[];
9
+ /**
10
+ * Tokenize a whole snippet, carrying a block comment (`/* … *\/`, `<!-- … -->`)
11
+ * across the lines it spans. `tokenizeLine` alone sees each line in isolation
12
+ * and coloured the middle of a doc comment as code.
13
+ */
14
+ export declare function tokenizeLines(lines: string[], lang: CodeLang): Token[][];