@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.
- package/README.md +121 -7
- package/dist/assets/{LpCommandPalette-B-0Est4Z.css → LpCommandPalette-nGNnzXqQ.css} +21 -21
- package/dist/assets/{LpDropzone-BBoWvi-J.css → LpDropzone-i4BdMi1H.css} +12 -12
- package/dist/assets/{LpImageEditor-Ct7Y3aNu.css → LpImageEditor-CbMA82g8.css} +6 -6
- package/dist/assets/{LpRollingText-CR1mb0Vt.css → LpRollingText-BGnE6q9j.css} +3 -0
- package/dist/assets/{LpShortcutsDialog-C6YoQ8_M.css → LpShortcutsDialog-CqYX3yy6.css} +28 -7
- package/dist/assets/{LpSkeleton-D7xU8IPV.css → LpSkeleton-H3Z5dEIk.css} +4 -1
- package/dist/assets/{LpTable-BgPLJOXa.css → LpTable-CPwWxTJS.css} +49 -9
- package/dist/chunks/ContextMenuItems-BtKU7074.js +124 -0
- package/dist/chunks/{LayoutCanvas-Dd20boUG.js → LayoutCanvas-BkaGXTjx.js} +26 -9
- package/dist/chunks/{LayoutNode-DGpZA9LX.js → LayoutNode-B3_9E1Xa.js} +28 -12
- package/dist/chunks/{LpActionBar-BlvtGB2P.js → LpActionBar-CnfFVIwC.js} +26 -12
- package/dist/chunks/{LpAddressInput-B-Zvxsn7.js → LpAddressInput-BwX8uo4_.js} +54 -49
- package/dist/chunks/{LpAlert-BAYHDSS1.js → LpAlert-B6ilrM7T.js} +16 -9
- package/dist/chunks/{LpAppShell-BGQVIY-3.js → LpAppShell-C53_RaGF.js} +53 -26
- package/dist/chunks/{LpAutocomplete-DExlIZe_.js → LpAutocomplete-C8IgSMsi.js} +52 -24
- package/dist/chunks/{LpAvatar-B3-xAOH3.js → LpAvatar-C1XStdOo.js} +19 -10
- package/dist/chunks/LpBreadcrumbs-CQJd73Gm.js +95 -0
- package/dist/chunks/{LpButton-5VXXCjwF.js → LpButton-CKSwC6Mu.js} +45 -15
- package/dist/chunks/{LpCalendar-B7Ko5RdR.js → LpCalendar-DrA2McTU.js} +1 -1
- package/dist/chunks/{LpCard-BhI1N_vL.js → LpCard-C2IvucmX.js} +1 -1
- package/dist/chunks/{LpCheckbox-CVccKYaH.js → LpCheckbox-Bkj13CbW.js} +8 -4
- package/dist/chunks/{LpCodeBlock-Bo0B4TFR.js → LpCodeBlock-ca7ANFyW.js} +49 -17
- package/dist/chunks/{LpColorPicker-BlXea7LM.js → LpColorPicker-zz4VGkG4.js} +75 -26
- package/dist/chunks/{LpConfirmDialog-Q-bxff8z.js → LpConfirmDialog-DCw5jR1t.js} +59 -17
- package/dist/chunks/LpConfirmHost-CbywMpMP.js +49 -0
- package/dist/chunks/LpContextMenu-BqkAYa9X.js +69 -0
- package/dist/chunks/LpDatePicker-DuusgT69.js +195 -0
- package/dist/chunks/LpDateRangePicker-DHeuznfC.js +208 -0
- package/dist/chunks/{LpDisclosure-ChQYmjlR.js → LpDisclosure-Cc23-JOT.js} +1 -1
- package/dist/chunks/{LpDrawer-BZ6k3hvo.js → LpDrawer-Dt4aB4Fr.js} +65 -28
- package/dist/chunks/{LpDropdownMenu-DJpoqRCb.js → LpDropdownMenu-DdJGQzPn.js} +2 -1
- package/dist/chunks/{LpEmptyState-Dsdqz1Wj.js → LpEmptyState-BJbZXC8D.js} +1 -1
- package/dist/chunks/LpFieldNotice-wtieLUTj.js +64 -0
- package/dist/chunks/{LpFileTree-_5vFBgaK.js → LpFileTree-CNurOvkV.js} +25 -10
- package/dist/chunks/{LpFileTreeNode-BdcIYKIE.js → LpFileTreeNode-D_qRRdsH.js} +3 -3
- package/dist/chunks/LpFormField-CtVYj6tO.js +101 -0
- package/dist/chunks/{LpIcon-CCnX5_2j.js → LpIcon-DYtaid0K.js} +20 -6
- package/dist/chunks/{LpInput-9EXWUM9B.js → LpInput-D-YGQbEv.js} +58 -20
- package/dist/chunks/{LpLightbox-2sYVMY-S.js → LpLightbox-DSDahF23.js} +148 -61
- package/dist/chunks/{LpLink-DCND-zyu.js → LpLink-Krkjhe_y.js} +15 -6
- package/dist/chunks/{LpLogViewer-CaRy5MeS.js → LpLogViewer-KypbgOyo.js} +300 -72
- package/dist/chunks/{LpMapPicker-ul4oYno6.js → LpMapPicker-Cc84LaM3.js} +39 -14
- package/dist/chunks/{LpMediaGallery-FF-NquIo.js → LpMediaGallery-YKr-cQPN.js} +7 -4
- package/dist/chunks/{LpModal-Bt0pQCI_.js → LpModal-DMMDQHAu.js} +52 -29
- package/dist/chunks/{LpModalNav-YaifHrXC.js → LpModalNav-BVPDyIup.js} +10 -7
- package/dist/chunks/{LpNotificationBell-DyGGsMAM.js → LpNotificationBell-CCwyJP5C.js} +79 -33
- package/dist/chunks/{LpNumberField-CWuX08iX.js → LpNumberField-B77O-z28.js} +21 -8
- package/dist/chunks/{LpNumberFlow-amWYaeuA.js → LpNumberFlow-z4WPZcZu.js} +22 -12
- package/dist/chunks/{LpOtpInput-y2v-pmiN.js → LpOtpInput-CziPF3Oq.js} +37 -8
- package/dist/chunks/{LpPagination-5FxjmmB5.js → LpPagination-BcDlo3r_.js} +31 -20
- package/dist/chunks/{LpPasswordInput--sjYCkLS.js → LpPasswordInput-eKzQhbQP.js} +11 -8
- package/dist/chunks/LpPhoneInput-BCbrrhgE.js +336 -0
- package/dist/chunks/{LpPie-D6OnzwlJ.js → LpPie-BEJ2SfI6.js} +84 -28
- package/dist/chunks/{LpPopover-8268UmlC.js → LpPopover-DCKeqiVn.js} +5 -2
- package/dist/chunks/{LpProgress-Btq5W4Ut.js → LpProgress-CBU1iI69.js} +5 -4
- package/dist/chunks/{LpRadioGroup-xPIuVDO_.js → LpRadioGroup-DmEW0l78.js} +9 -2
- package/dist/chunks/LpRangeCalendar-DZuaRV0W.js +331 -0
- package/dist/chunks/{LpRollingText-CM5gkSeF.js → LpRollingText-DB7upf-5.js} +1 -1
- package/dist/chunks/{LpScrollArea-D8xyKXcF.js → LpScrollArea-Bry1fdOM.js} +14 -2
- package/dist/chunks/{LpSection-aM6J_u51.js → LpSection-tKEH0jYf.js} +1 -1
- package/dist/chunks/{LpSegmented-fV0Sk92p.js → LpSegmented-C09EEam2.js} +8 -4
- package/dist/chunks/{LpSelect-ANIVtrpM.js → LpSelect-DNIL6MB9.js} +50 -31
- package/dist/chunks/{LpSidebar-ClBUwoEz.js → LpSidebar-CQNB0-yU.js} +30 -22
- package/dist/chunks/{LpSidebarNav-llOcs_Fn.js → LpSidebarNav-kx-LdqNU.js} +16 -11
- package/dist/chunks/{LpSkeleton-CTI-vBgW.js → LpSkeleton-BB6XIV-w.js} +1 -1
- package/dist/chunks/{LpSlider-BwNIBkAK.js → LpSlider-Cuzmrd7p.js} +7 -2
- package/dist/chunks/{LpSparkline-C6xQ2dwv.js → LpSparkline-CB80N8SJ.js} +11 -4
- package/dist/chunks/{LpStat-CQaW8R--.js → LpStat-B-7udBRP.js} +2 -2
- package/dist/chunks/{LpStepper-Bk-XaQYU.js → LpStepper-C7XiVKZj.js} +34 -19
- package/dist/chunks/{LpSwitch-Blizvqyt.js → LpSwitch-OrcOJX9m.js} +41 -27
- package/dist/chunks/LpTableFilter-BV8PpLM9.js +158 -0
- package/dist/chunks/{LpTableOfContents-CjvxPMpU.js → LpTableOfContents-BUcAfGPQ.js} +36 -41
- package/dist/chunks/{LpTabs-Cefe_lys.js → LpTabs-29iW1XOx.js} +20 -6
- package/dist/chunks/LpTagsInput-D1SuqbhB.js +300 -0
- package/dist/chunks/LpTextarea-uuScWo6-.js +77 -0
- package/dist/chunks/LpThemeProvider-Be4r2TQX.js +35 -0
- package/dist/chunks/LpThemeSwitcher-B4aVPbNC.js +166 -0
- package/dist/chunks/{LpTilt-DuyKbpkA.js → LpTilt-B7KHX1zH.js} +2 -2
- package/dist/chunks/{LpTimeField-K6nAGboX.js → LpTimeField-Cqe7fXnh.js} +14 -8
- package/dist/chunks/{LpToaster-gDB1EaU3.js → LpToaster-DpJvoCOh.js} +94 -31
- package/dist/chunks/{LpTooltip-hCLPAqMG.js → LpTooltip-CXVKcOXT.js} +14 -6
- package/dist/chunks/LpTooltipProvider-CftjV7Xc.js +25 -0
- package/dist/chunks/{LpTopologyCanvas-Cm1L39uL.js → LpTopologyCanvas-6ozNrQKh.js} +8 -2
- package/dist/chunks/{LpUptimeBar-DvAMno0S.js → LpUptimeBar-ugcv25xj.js} +44 -15
- package/dist/chunks/icons-CkA0njzm.js +43 -0
- package/dist/chunks/{LpThemeSwitcher-Cue-myST.js → useTheme-DJm1JSsY.js} +215 -260
- package/dist/component-names.d.ts +1 -1
- package/dist/components/ContextMenuItems.vue.d.ts +8 -0
- package/dist/components/ContextMenuItems.vue.js +4 -0
- package/dist/components/LayoutCanvas.vue.js +1 -1
- package/dist/components/LayoutNode.vue.d.ts +4 -0
- package/dist/components/LayoutNode.vue.js +1 -1
- package/dist/components/LpActionBar.vue.d.ts +3 -0
- package/dist/components/LpActionBar.vue.js +1 -1
- package/dist/components/LpAddressInput.vue.d.ts +1 -1
- package/dist/components/LpAddressInput.vue.js +1 -1
- package/dist/components/LpAlert.vue.d.ts +9 -0
- package/dist/components/LpAlert.vue.js +1 -1
- package/dist/components/LpAppShell.vue.d.ts +10 -0
- package/dist/components/LpAppShell.vue.js +1 -1
- package/dist/components/LpAutocomplete.vue.d.ts +31 -6
- package/dist/components/LpAutocomplete.vue.js +1 -1
- package/dist/components/LpAvatar.vue.d.ts +3 -3
- package/dist/components/LpAvatar.vue.js +1 -1
- package/dist/components/LpBadge.vue.d.ts +2 -2
- package/dist/components/LpBreadcrumbs.vue.d.ts +13 -9
- package/dist/components/LpBreadcrumbs.vue.js +1 -1
- package/dist/components/LpButton.vue.d.ts +35 -98
- package/dist/components/LpButton.vue.js +1 -1
- package/dist/components/LpCalendar.vue.js +1 -1
- package/dist/components/LpCard.vue.js +1 -1
- package/dist/components/LpChart.vue.d.ts +47 -3
- package/dist/components/LpChart.vue.js +377 -97
- package/dist/components/LpCheckbox.vue.js +1 -1
- package/dist/components/LpCodeBlock.vue.d.ts +2 -0
- package/dist/components/LpCodeBlock.vue.js +1 -1
- package/dist/components/LpColorPicker.vue.d.ts +2 -2
- package/dist/components/LpColorPicker.vue.js +1 -1
- package/dist/components/LpCommandPalette.vue.d.ts +14 -3
- package/dist/components/LpCommandPalette.vue.js +142 -77
- package/dist/components/LpConfirmDialog.vue.d.ts +15 -3
- package/dist/components/LpConfirmDialog.vue.js +1 -1
- package/dist/components/LpConfirmHost.vue.d.ts +9 -0
- package/dist/components/LpConfirmHost.vue.js +4 -0
- package/dist/components/LpContextMenu.vue.d.ts +3 -5
- package/dist/components/LpContextMenu.vue.js +1 -1
- package/dist/components/LpDatePicker.vue.d.ts +24 -6
- package/dist/components/LpDatePicker.vue.js +1 -1
- package/dist/components/LpDateRangePicker.vue.d.ts +60 -0
- package/dist/components/LpDateRangePicker.vue.js +4 -0
- package/dist/components/LpDisclosure.vue.js +1 -1
- package/dist/components/LpDrawer.vue.d.ts +10 -0
- package/dist/components/LpDrawer.vue.js +1 -1
- package/dist/components/LpDropdownMenu.vue.js +1 -1
- package/dist/components/LpDropzone.vue.js +23 -7
- package/dist/components/LpEmptyState.vue.js +1 -1
- package/dist/components/LpFieldNotice.vue.d.ts +8 -0
- package/dist/components/LpFieldNotice.vue.js +4 -0
- package/dist/components/LpFileTree.vue.d.ts +11 -2
- package/dist/components/LpFileTree.vue.js +1 -1
- package/dist/components/LpFileTreeNode.vue.js +1 -1
- package/dist/components/LpFormField.vue.d.ts +13 -1
- package/dist/components/LpFormField.vue.js +1 -1
- package/dist/components/LpIcon.vue.d.ts +0 -1
- package/dist/components/LpIcon.vue.js +1 -1
- package/dist/components/LpImageEditor.vue.js +93 -58
- package/dist/components/LpInput.vue.d.ts +22 -3
- package/dist/components/LpInput.vue.js +1 -1
- package/dist/components/LpLightbox.vue.d.ts +17 -0
- package/dist/components/LpLightbox.vue.js +1 -1
- package/dist/components/LpLink.vue.d.ts +11 -11
- package/dist/components/LpLink.vue.js +1 -1
- package/dist/components/LpLogViewer.vue.d.ts +72 -3
- package/dist/components/LpLogViewer.vue.js +1 -1
- package/dist/components/LpMapPicker.vue.d.ts +4 -4
- package/dist/components/LpMapPicker.vue.js +1 -1
- package/dist/components/LpMediaGallery.vue.js +1 -1
- package/dist/components/LpModal.vue.d.ts +16 -6
- package/dist/components/LpModal.vue.js +1 -1
- package/dist/components/LpModalNav.vue.d.ts +0 -1
- package/dist/components/LpModalNav.vue.js +1 -1
- package/dist/components/LpNotificationBell.vue.d.ts +11 -2
- package/dist/components/LpNotificationBell.vue.js +1 -1
- package/dist/components/LpNumberField.vue.d.ts +2 -0
- package/dist/components/LpNumberField.vue.js +1 -1
- package/dist/components/LpNumberFlow.vue.js +1 -1
- package/dist/components/LpOtpInput.vue.js +1 -1
- package/dist/components/LpPagination.vue.d.ts +2 -0
- package/dist/components/LpPagination.vue.js +1 -1
- package/dist/components/LpPasswordInput.vue.js +1 -1
- package/dist/components/LpPhoneInput.vue.d.ts +13 -0
- package/dist/components/LpPhoneInput.vue.js +1 -1
- package/dist/components/LpPie.vue.d.ts +21 -2
- package/dist/components/LpPie.vue.js +1 -1
- package/dist/components/LpPopover.vue.d.ts +2 -0
- package/dist/components/LpPopover.vue.js +1 -1
- package/dist/components/LpProgress.vue.d.ts +1 -1
- package/dist/components/LpProgress.vue.js +1 -1
- package/dist/components/LpRadioGroup.vue.js +1 -1
- package/dist/components/LpRangeCalendar.vue.d.ts +51 -0
- package/dist/components/LpRangeCalendar.vue.js +4 -0
- package/dist/components/LpRollingText.vue.d.ts +1 -1
- package/dist/components/LpRollingText.vue.js +1 -1
- package/dist/components/LpScrollArea.vue.d.ts +2 -2
- package/dist/components/LpScrollArea.vue.js +1 -1
- package/dist/components/LpSection.vue.d.ts +1 -1
- package/dist/components/LpSection.vue.js +1 -1
- package/dist/components/LpSegmented.vue.d.ts +5 -0
- package/dist/components/LpSegmented.vue.js +1 -1
- package/dist/components/LpSelect.vue.d.ts +1 -0
- package/dist/components/LpSelect.vue.js +1 -1
- package/dist/components/LpShortcutsDialog.vue.d.ts +7 -1
- package/dist/components/LpShortcutsDialog.vue.js +60 -15
- package/dist/components/LpSidebar.vue.d.ts +6 -2
- package/dist/components/LpSidebar.vue.js +1 -1
- package/dist/components/LpSidebarNav.vue.js +1 -1
- package/dist/components/LpSkeleton.vue.js +1 -1
- package/dist/components/LpSlider.vue.js +1 -1
- package/dist/components/LpSparkline.vue.d.ts +1 -0
- package/dist/components/LpSparkline.vue.js +1 -1
- package/dist/components/LpStat.vue.js +1 -1
- package/dist/components/LpStepper.vue.js +1 -1
- package/dist/components/LpSwitch.vue.js +1 -1
- package/dist/components/LpTable.vue.d.ts +107 -3
- package/dist/components/LpTable.vue.js +540 -128
- package/dist/components/LpTableFilter.vue.d.ts +31 -0
- package/dist/components/LpTableFilter.vue.js +4 -0
- package/dist/components/LpTableOfContents.vue.d.ts +4 -2
- package/dist/components/LpTableOfContents.vue.js +1 -1
- package/dist/components/LpTabs.vue.d.ts +2 -0
- package/dist/components/LpTabs.vue.js +1 -1
- package/dist/components/LpTagsInput.vue.d.ts +77 -0
- package/dist/components/LpTagsInput.vue.js +4 -0
- package/dist/components/LpTextarea.vue.d.ts +19 -6
- package/dist/components/LpTextarea.vue.js +1 -1
- package/dist/components/LpThemeProvider.vue.d.ts +22 -0
- package/dist/components/LpThemeProvider.vue.js +4 -0
- package/dist/components/LpThemeSwitcher.vue.d.ts +15 -2
- package/dist/components/LpThemeSwitcher.vue.js +1 -1
- package/dist/components/LpTilt.vue.js +1 -1
- package/dist/components/LpTimeField.vue.js +1 -1
- package/dist/components/LpToaster.vue.d.ts +6 -1
- package/dist/components/LpToaster.vue.js +1 -1
- package/dist/components/LpTooltip.vue.d.ts +1 -2
- package/dist/components/LpTooltip.vue.js +1 -1
- package/dist/components/LpTooltipProvider.vue.d.ts +22 -0
- package/dist/components/LpTooltipProvider.vue.js +4 -0
- package/dist/components/LpTopologyCanvas.vue.js +1 -1
- package/dist/components/LpUptimeBar.vue.d.ts +4 -0
- package/dist/components/LpUptimeBar.vue.js +1 -1
- package/dist/components/chart.d.ts +32 -1
- package/dist/components/chart.js +42 -6
- package/dist/components/codeHighlight.d.ts +6 -0
- package/dist/components/codeHighlight.js +92 -20
- package/dist/components/color.d.ts +1 -1
- package/dist/components/color.js +20 -9
- package/dist/components/commandSearch.js +3 -0
- package/dist/components/confirm.d.ts +25 -0
- package/dist/components/confirm.js +26 -0
- package/dist/components/countries.d.ts +6 -0
- package/dist/components/countries.js +7 -0
- package/dist/components/dateRange.d.ts +43 -0
- package/dist/components/dateRange.js +76 -0
- package/dist/components/exportData.d.ts +58 -0
- package/dist/components/exportData.js +165 -0
- package/dist/components/fileTree.js +16 -7
- package/dist/components/imageCrop.d.ts +42 -0
- package/dist/components/imageCrop.js +47 -0
- package/dist/components/link.d.ts +12 -0
- package/dist/components/link.js +19 -0
- package/dist/components/logSearch.d.ts +18 -0
- package/dist/components/logSearch.js +36 -0
- package/dist/components/modalDepth.d.ts +18 -2
- package/dist/components/modalDepth.js +17 -5
- package/dist/components/otp.d.ts +5 -0
- package/dist/components/otp.js +10 -0
- package/dist/components/phone.d.ts +41 -0
- package/dist/components/phone.js +80 -0
- package/dist/components/sidebar.d.ts +7 -1
- package/dist/components/tableFilter.d.ts +36 -0
- package/dist/components/tableFilter.js +84 -0
- package/dist/components/tableSort.d.ts +8 -0
- package/dist/components/tableSort.js +31 -0
- package/dist/components/tags.d.ts +20 -0
- package/dist/components/tags.js +37 -0
- package/dist/composables/useField.d.ts +38 -0
- package/dist/composables/useField.js +45 -0
- package/dist/composables/useFieldNotice.d.ts +17 -0
- package/dist/composables/useFieldNotice.js +28 -0
- package/dist/composables/useForm.d.ts +53 -0
- package/dist/composables/useForm.js +207 -0
- package/dist/composables/useFormDraft.d.ts +10 -3
- package/dist/composables/useFormDraft.js +9 -14
- package/dist/composables/useHotkeys.d.ts +81 -5
- package/dist/composables/useHotkeys.js +223 -25
- package/dist/composables/useInputFilter.d.ts +17 -0
- package/dist/composables/useInputFilter.js +47 -10
- package/dist/composables/useInputMask.d.ts +59 -0
- package/dist/composables/useInputMask.js +170 -0
- package/dist/composables/useLpConfig.d.ts +24 -0
- package/dist/composables/useLpConfig.js +44 -0
- package/dist/composables/usePaintSelect.d.ts +22 -0
- package/dist/composables/usePaintSelect.js +169 -0
- package/dist/composables/useRovingFocus.js +7 -0
- package/dist/composables/useShift.js +7 -2
- package/dist/composables/useTilt.d.ts +2 -2
- package/dist/composables/useTilt.js +5 -6
- package/dist/composables/useToast.d.ts +20 -0
- package/dist/composables/useToast.js +28 -4
- package/dist/composables/useZoomPan.d.ts +3 -3
- package/dist/composables/useZoomPan.js +4 -4
- package/dist/icons-all.d.ts +1 -0
- package/dist/icons-all.js +3 -0
- package/dist/icons.d.ts +14 -1
- package/dist/index.d.ts +60 -4
- package/dist/index.js +245 -141
- package/dist/kit-icons.d.ts +2 -0
- package/dist/layout/tree.d.ts +2 -0
- package/dist/layout/tree.js +16 -1
- package/dist/layout/useLayout.d.ts +15 -0
- package/dist/layout/useLayout.js +41 -14
- package/dist/theme/backdrop.d.ts +12 -0
- package/dist/theme/presets.d.ts +0 -2
- package/dist/theme/useTheme.d.ts +32 -9
- package/package.json +18 -8
- package/src/component-names.ts +9 -7
- package/src/components/ContextMenuItems.vue +88 -0
- package/src/components/LayoutCanvas.vue +26 -6
- package/src/components/LayoutNode.vue +30 -4
- package/src/components/LpActionBar.vue +31 -8
- package/src/components/LpAddressInput.vue +57 -41
- package/src/components/LpAlert.vue +16 -3
- package/src/components/LpAppShell.vue +45 -12
- package/src/components/LpAutocomplete.vue +47 -10
- package/src/components/LpAvatar.vue +20 -6
- package/src/components/LpBreadcrumbs.vue +65 -41
- package/src/components/LpButton.vue +60 -14
- package/src/components/LpChart.vue +351 -28
- package/src/components/LpCheckbox.vue +7 -3
- package/src/components/LpCodeBlock.vue +50 -14
- package/src/components/LpColorPicker.vue +73 -10
- package/src/components/LpCommandPalette.vue +115 -20
- package/src/components/LpConfirmDialog.vue +68 -17
- package/src/components/LpConfirmHost.vue +59 -0
- package/src/components/LpContextMenu.vue +15 -116
- package/src/components/LpDatePicker.vue +104 -68
- package/src/components/LpDateRangePicker.vue +224 -0
- package/src/components/LpDrawer.vue +56 -19
- package/src/components/LpDropdownMenu.vue +1 -0
- package/src/components/LpDropzone.vue +21 -4
- package/src/components/LpFieldNotice.vue +65 -0
- package/src/components/LpFileTree.vue +33 -7
- package/src/components/LpFormField.vue +59 -7
- package/src/components/LpIcon.vue +22 -4
- package/src/components/LpImageEditor.vue +96 -57
- package/src/components/LpInput.vue +62 -11
- package/src/components/LpLightbox.vue +140 -29
- package/src/components/LpLink.vue +24 -13
- package/src/components/LpLogViewer.vue +311 -39
- package/src/components/LpMapPicker.vue +36 -13
- package/src/components/LpMediaGallery.vue +8 -2
- package/src/components/LpModal.vue +54 -28
- package/src/components/LpModalNav.vue +5 -2
- package/src/components/LpNotificationBell.vue +77 -23
- package/src/components/LpNumberField.vue +21 -6
- package/src/components/LpNumberFlow.vue +26 -10
- package/src/components/LpOtpInput.vue +43 -8
- package/src/components/LpPagination.vue +23 -7
- package/src/components/LpPasswordInput.vue +4 -1
- package/src/components/LpPhoneInput.vue +224 -39
- package/src/components/LpPie.vue +102 -20
- package/src/components/LpPopover.vue +4 -0
- package/src/components/LpProgress.vue +5 -3
- package/src/components/LpRadioGroup.vue +9 -2
- package/src/components/LpRangeCalendar.vue +365 -0
- package/src/components/LpRollingText.vue +3 -0
- package/src/components/LpScrollArea.vue +22 -2
- package/src/components/LpSegmented.vue +12 -2
- package/src/components/LpSelect.vue +0 -0
- package/src/components/LpShortcutsDialog.vue +83 -9
- package/src/components/LpSidebar.vue +14 -9
- package/src/components/LpSidebarNav.vue +17 -5
- package/src/components/LpSkeleton.vue +4 -1
- package/src/components/LpSlider.vue +7 -1
- package/src/components/LpSparkline.vue +11 -3
- package/src/components/LpStepper.vue +23 -10
- package/src/components/LpSwitch.vue +31 -8
- package/src/components/LpTable.vue +668 -90
- package/src/components/LpTableFilter.vue +175 -0
- package/src/components/LpTableOfContents.vue +50 -32
- package/src/components/LpTabs.vue +23 -6
- package/src/components/LpTagsInput.vue +364 -0
- package/src/components/LpTextarea.vue +44 -6
- package/src/components/LpThemeProvider.vue +41 -0
- package/src/components/LpThemeSwitcher.vue +76 -33
- package/src/components/LpTilt.vue +2 -2
- package/src/components/LpTimeField.vue +14 -3
- package/src/components/LpToaster.vue +115 -27
- package/src/components/LpTooltip.vue +29 -5
- package/src/components/LpTooltipProvider.vue +24 -0
- package/src/components/LpTopologyCanvas.vue +19 -2
- package/src/components/LpUptimeBar.vue +46 -8
- package/src/components/chart.ts +82 -8
- package/src/components/codeHighlight.ts +111 -15
- package/src/components/color.ts +30 -9
- package/src/components/commandSearch.ts +6 -0
- package/src/components/confirm.ts +58 -0
- package/src/components/countries.ts +12 -0
- package/src/components/dateRange.ts +134 -0
- package/src/components/exportData.ts +228 -0
- package/src/components/fileTree.ts +19 -7
- package/src/components/imageCrop.ts +107 -0
- package/src/components/link.ts +34 -0
- package/src/components/logSearch.ts +46 -0
- package/src/components/modalDepth.ts +48 -6
- package/src/components/otp.ts +16 -0
- package/src/components/phone.ts +140 -0
- package/src/components/sidebar.ts +7 -1
- package/src/components/tableFilter.ts +122 -0
- package/src/components/tableSort.ts +37 -0
- package/src/components/tags.ts +62 -0
- package/src/composables/useField.ts +83 -0
- package/src/composables/useFieldNotice.ts +59 -0
- package/src/composables/useForm.ts +314 -0
- package/src/composables/useFormDraft.ts +25 -20
- package/src/composables/useHotkeys.ts +355 -28
- package/src/composables/useInputFilter.ts +77 -14
- package/src/composables/useInputMask.ts +254 -0
- package/src/composables/useLpConfig.ts +87 -0
- package/src/composables/usePaintSelect.ts +243 -0
- package/src/composables/useRovingFocus.ts +11 -0
- package/src/composables/useShift.ts +13 -2
- package/src/composables/useTilt.ts +5 -6
- package/src/composables/useToast.ts +56 -4
- package/src/composables/useZoomPan.ts +6 -6
- package/src/iconSubset.d.mts +10 -0
- package/src/iconSubset.mjs +51 -0
- package/src/icons-all.ts +10 -0
- package/src/icons.ts +59 -8
- package/src/index.ts +73 -4
- package/src/kit-icons.ts +5 -0
- package/src/layout/tree.ts +30 -0
- package/src/layout/useLayout.ts +68 -18
- package/src/nuxt.ts +87 -17
- package/src/runtime/config.plugin.ts +14 -0
- package/src/runtime/theme.plugin.ts +43 -23
- package/src/theme/backdrop.ts +69 -0
- package/src/theme/presets.ts +6 -64
- package/src/theme/useTheme.ts +206 -100
- package/src/tokens/tokens.css +46 -0
- package/dist/chunks/LpBreadcrumbs-p4jHe_V-.js +0 -62
- package/dist/chunks/LpContextMenu-CwW1QXe_.js +0 -217
- package/dist/chunks/LpDatePicker-CwOToxGq.js +0 -164
- package/dist/chunks/LpFormField-CazBc2-a.js +0 -62
- package/dist/chunks/LpPhoneInput-BDSKVl_z.js +0 -209
- 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>;
|
|
@@ -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;
|
|
@@ -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.
|
|
@@ -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>;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
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<
|
|
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;
|
|
@@ -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
|
+
};
|
|
@@ -13,9 +13,9 @@ type __VLS_Props = {
|
|
|
13
13
|
cycleThemes?: (string | TokenSet)[];
|
|
14
14
|
/**
|
|
15
15
|
* Trigger style:
|
|
16
|
-
* - "swatch" (default): a
|
|
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":
|
|
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,3 +1,8 @@
|
|
|
1
|
-
|
|
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;
|
|
@@ -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>;
|
|
@@ -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
|
+
};
|
|
@@ -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>;
|
|
@@ -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 {};
|
package/dist/components/chart.js
CHANGED
|
@@ -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
|
|
31
|
-
max
|
|
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
|
-
|
|
329
|
-
|
|
330
|
-
if (
|
|
331
|
-
|
|
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[][];
|