@leavepulse/ui 0.77.2 → 0.78.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 +68 -0
- package/dist/assets/{LpCommandPalette-DOIZHw-g.css → LpCommandPalette-DDJKICKh.css} +19 -19
- package/dist/assets/{LpDock-Cbh0wQUv.css → LpDock-Dw82tWVD.css} +3 -3
- package/dist/assets/{LpDropzone-B_qRq1-R.css → LpDropzone-DNbh_NFJ.css} +10 -10
- package/dist/assets/{LpImageEditor-XM5bAziW.css → LpImageEditor-Bgu20XLs.css} +6 -6
- package/dist/assets/{LpTable-Bv-EcQs7.css → LpTable-CCk0ZHo7.css} +19 -19
- package/dist/assets/LpTabs-Bh7a-Bdl.css +18 -0
- package/dist/chunks/AppShellContextNav-C6Ho2mof.js +49 -0
- package/dist/chunks/ChartRangeSelector-HO0sMMz6.js +129 -0
- package/dist/chunks/{ContextMenuItems-BXumicbh.js → ContextMenuItems-DmaKSJVv.js} +1 -1
- package/dist/chunks/{DropzoneLinkField-C-9BCGJn.js → DropzoneLinkField-DXIr0eFz.js} +2 -2
- package/dist/chunks/{FieldWrapper-CORPzo9s.js → FieldWrapper-DnuMTrqW.js} +1 -1
- package/dist/chunks/IconCloseButton-COZEsa9u.js +29 -0
- package/dist/chunks/{LayoutCanvas-CNOAUk7D.js → LayoutCanvas-CZKOltfA.js} +1 -1
- package/dist/chunks/{LayoutNode-DF5BMN0J.js → LayoutNode-D2f7v683.js} +45 -45
- package/dist/chunks/{LpActionBar-BP1ld7-S.js → LpActionBar-BGMk5KoG.js} +3 -3
- package/dist/chunks/{LpActivityLine-CJvzrNpj.js → LpActivityLine-Ea-t5Vza.js} +4 -2
- package/dist/chunks/{LpAddressInput-sYMvYzcY.js → LpAddressInput-ZqoZ-N2Y.js} +12 -11
- package/dist/chunks/{LpAlert-n5XPAZfv.js → LpAlert-CjvTZIKF.js} +3 -3
- package/dist/chunks/LpAppShell-BNAVTQsY.js +582 -0
- package/dist/chunks/{LpAutocomplete-DOu7FN5P.js → LpAutocomplete-DkY6CSyD.js} +26 -42
- package/dist/chunks/{LpAvatar-Cg6Az3wz.js → LpAvatar-cQVsNk6F.js} +2 -2
- package/dist/chunks/{LpBadge-wUYLN4U9.js → LpBadge-D5QQdDQ_.js} +2 -2
- package/dist/chunks/{LpBottomNav-CbNQQPuL.js → LpBottomNav-zxLGGbjm.js} +9 -2
- package/dist/chunks/{LpBreadcrumbs-DPdbth-c.js → LpBreadcrumbs-CIIBsygI.js} +4 -3
- package/dist/chunks/{LpButton-CFb44IjC.js → LpButton-DSHioIfD.js} +5 -4
- package/dist/chunks/{LpCalendar-CuoWks-0.js → LpCalendar-D4-LVjfF.js} +1 -1
- package/dist/chunks/{LpCard-r13WRqox.js → LpCard-BPtYXwnT.js} +1 -1
- package/dist/chunks/{LpCheckbox-Cs4SHaHX.js → LpCheckbox-D6RuDW4X.js} +38 -16
- package/dist/chunks/{LpCodeBlock-DRC8VbXW.js → LpCodeBlock-DuzmnIHl.js} +19 -41
- package/dist/chunks/{LpCodeDisplay-CE9TxCA4.js → LpCodeDisplay-CO8fngxa.js} +5 -5
- package/dist/chunks/{LpCollapse-CWS9M_lm.js → LpCollapse-DrAw5DBZ.js} +5 -4
- package/dist/chunks/{LpColorPicker-1y1QJHZR.js → LpColorPicker-BxAHEnR5.js} +11 -12
- package/dist/chunks/{LpCommandScope-CtUhJe8T.js → LpCommandScope-DRUvHiX7.js} +1 -1
- package/dist/chunks/{LpConfirmDialog-DlD45Bi_.js → LpConfirmDialog-6oCIJTDa.js} +3 -3
- package/dist/chunks/{LpConfirmHost-BIWjBLmI.js → LpConfirmHost-DgHvfT6s.js} +1 -1
- package/dist/chunks/{LpContextMenu-rx2tCjwk.js → LpContextMenu--eMGIql6.js} +13 -15
- package/dist/chunks/{LpContextSwitcher-Dwh6dyID.js → LpContextSwitcher-1C1tExdl.js} +2 -2
- package/dist/chunks/{LpCopyButton-xF7wFVoU.js → LpCopyButton-7EOSIuwa.js} +3 -3
- package/dist/chunks/{LpCountdown-DgeY3cLG.js → LpCountdown-DVl7vXI1.js} +4 -3
- package/dist/chunks/{LpDataList-Jxyl9H5w.js → LpDataList-DgBeM01y.js} +13 -4
- package/dist/chunks/{LpDatePicker-CA0QTfBC.js → LpDatePicker-DwSDY0mt.js} +12 -18
- package/dist/chunks/{LpDateRangePicker-u3J51xXk.js → LpDateRangePicker-CNQXdTVv.js} +10 -16
- package/dist/chunks/{LpDisclosure-Cpa7Hc5T.js → LpDisclosure-DG7JCo-d.js} +2 -2
- package/dist/chunks/{LpDrawer-CrG8t_KP.js → LpDrawer-Bt9UUqt_.js} +61 -61
- package/dist/chunks/{LpDropdownMenu-Dl7Z4ZhS.js → LpDropdownMenu-CLzxIOgM.js} +9 -17
- package/dist/chunks/{LpEditable-Cy6GLbFx.js → LpEditable-DVT0Rh8F.js} +9 -6
- package/dist/chunks/{LpEmptyState-EQHiRYhG.js → LpEmptyState-DurPF001.js} +1 -1
- package/dist/chunks/{LpFieldNotice-CzQ2_5rQ.js → LpFieldNotice-DJ10cYIo.js} +1 -1
- package/dist/chunks/LpFileTree-BSx1kBoV.js +735 -0
- package/dist/chunks/{LpFileTreeNode-cT6BIWvz.js → LpFileTreeNode-4dVmFHb3.js} +116 -34
- package/dist/chunks/{LpFormField-Ch69Jd-X.js → LpFormField-BKYn9dyP.js} +3 -3
- package/dist/chunks/{LpFrame-BVQCQLDI.js → LpFrame-Bv5Fphte.js} +25 -11
- package/dist/chunks/{LpHintExample-9Py0wc-L.js → LpHintExample-YzCXiSUp.js} +1 -1
- package/dist/chunks/{LpHintLayer-CgObdUsM.js → LpHintLayer-BeKRsRon.js} +2 -2
- package/dist/chunks/{LpHints-Bz-BlaSl.js → LpHints-qf3xYsza.js} +3 -3
- package/dist/chunks/{LpHoverCard-spGxyw7T.js → LpHoverCard-DanH3Nz1.js} +23 -5
- package/dist/chunks/{LpIcon--5WSb3jJ.js → LpIcon-C6JpQ5td.js} +6 -3
- package/dist/chunks/{LpIdenticon-BzdC_qz9.js → LpIdenticon-Dbbr4fvt.js} +2 -1
- package/dist/chunks/{LpInfraNode-46XOCkfq.js → LpInfraNode-BAU40Km2.js} +2 -2
- package/dist/chunks/{LpInput-Tw-yxT4I.js → LpInput-DL6HEJdi.js} +16 -28
- package/dist/chunks/LpInspector-CuoMAhiw.js +209 -0
- package/dist/chunks/{LpLightbox-B95yu22B.js → LpLightbox-xvpQ64MM.js} +57 -32
- package/dist/chunks/{LpLoader-DVwkOmt9.js → LpLoader-Bf1yZwaU.js} +1 -1
- package/dist/chunks/LpLogInspector-6cNnXqp4.js +119 -0
- package/dist/chunks/{LpLogViewer-ngqkns4m.js → LpLogViewer-Dvb1E9_G.js} +234 -53
- package/dist/chunks/{LpMapPicker-DRGgh89B.js → LpMapPicker-D5_YLLBC.js} +4 -3
- package/dist/chunks/{LpMasonry--k0571qG.js → LpMasonry-DPYekFxs.js} +8 -5
- package/dist/chunks/{LpMediaGallery-Bkram-MO.js → LpMediaGallery-Df-tiWeq.js} +3 -3
- package/dist/chunks/{LpModal-CoGhLTyH.js → LpModal-DrtQ_1A2.js} +11 -13
- package/dist/chunks/{LpModalNav-BGvs2y5Q.js → LpModalNav-DkmGCnZE.js} +11 -37
- package/dist/chunks/{LpNotificationBell-B0034Lk-.js → LpNotificationBell-D_wklO1m.js} +9 -9
- package/dist/chunks/{LpNumberField-e0IBkWU1.js → LpNumberField-CNHsmSDZ.js} +7 -16
- package/dist/chunks/{LpOtpInput-CeBPsM7D.js → LpOtpInput-BRpLBbOD.js} +2 -2
- package/dist/chunks/{LpPagination-BIIiYHXR.js → LpPagination-snQ020xQ.js} +6 -4
- package/dist/chunks/{LpPaletteTheme-DiLYKQiZ.js → LpPaletteTheme-dVtxHx-F.js} +4 -4
- package/dist/chunks/{LpPasswordInput-BkHKQDhM.js → LpPasswordInput-B-zD6tUS.js} +2 -2
- package/dist/chunks/{LpPhoneInput-CETEp5W7.js → LpPhoneInput-BSL7NX4z.js} +15 -26
- package/dist/chunks/{LpPie-DrZepi0p.js → LpPie-9t_guO49.js} +22 -21
- package/dist/chunks/{LpPipeline-B3aOVOkV.js → LpPipeline-rjXvEDRJ.js} +16 -7
- package/dist/chunks/{LpPopover-DmZ3wUtP.js → LpPopover-BQSuxtai.js} +10 -1
- package/dist/chunks/{LpProgress-Yr6ONG5t.js → LpProgress-D_MSjowb.js} +2 -1
- package/dist/chunks/{LpQuota-Dk2MyI2Z.js → LpQuota-CgWPgdVt.js} +1 -1
- package/dist/chunks/{LpRadioGroup-ggaPL92T.js → LpRadioGroup-BrazjLY_.js} +4 -4
- package/dist/chunks/{LpRangeCalendar-CYYUYqJ7.js → LpRangeCalendar-BrqlGZzE.js} +1 -1
- package/dist/chunks/{LpRangeSlider-CM-0ZITZ.js → LpRangeSlider-fz61tzc-.js} +5 -9
- package/dist/chunks/{LpRelativeTime-DwgCb5-8.js → LpRelativeTime-BovUk8MP.js} +1 -1
- package/dist/chunks/{LpRepeater-D7ZmnIYd.js → LpRepeater-BkJHSPI1.js} +3 -3
- package/dist/chunks/{LpRevealOnScroll-DcQjexLy.js → LpRevealOnScroll-CPwyiQAr.js} +1 -1
- package/dist/chunks/{LpScramble-Bn9OoOtC.js → LpScramble-DsE77iVp.js} +1 -1
- package/dist/chunks/{LpScrollArea-MyEnVB_5.js → LpScrollArea-ay4Xo_hg.js} +22 -10
- package/dist/chunks/{LpSecretField-BbmqM9ye.js → LpSecretField-DBvU6iAw.js} +10 -9
- package/dist/chunks/{LpSection-DFK_uoJE.js → LpSection-BfteipxU.js} +1 -1
- package/dist/chunks/{LpSegmented-CeACsMMA.js → LpSegmented-DbEJhbv-.js} +8 -10
- package/dist/chunks/{LpSelect-Cxq4yBGd.js → LpSelect-Y-iuSymW.js} +47 -30
- package/dist/chunks/{LpShaderBackdrop-Bote0iuy.js → LpShaderBackdrop-wQygYb5h.js} +13 -10
- package/dist/chunks/{LpShift-CCq7dofl.js → LpShift-DAgS_d2x.js} +18 -15
- package/dist/chunks/{LpSidebar-DzE1783C.js → LpSidebar-kSkpPh3-.js} +74 -87
- package/dist/chunks/{LpSidebarNav-DE3PhXVP.js → LpSidebarNav-C2mvqrY2.js} +8 -6
- package/dist/chunks/{LpSidebarRow-BRYhNDSo.js → LpSidebarRow-eRP4Q31q.js} +6 -5
- package/dist/chunks/{LpSlider-DxYoCJJO.js → LpSlider-A4ixovgS.js} +5 -9
- package/dist/chunks/{LpSpotlight-4F3NeUMY.js → LpSpotlight-DwxkhFgR.js} +2 -1
- package/dist/chunks/{LpStat-f2LfDCJ4.js → LpStat-pMNZgFcq.js} +2 -2
- package/dist/chunks/{LpStatus-DglxttQ7.js → LpStatus-DGJFwk5F.js} +2 -2
- package/dist/chunks/{LpStepMark-DpzKVyh8.js → LpStepMark-Dw2MRTrt.js} +2 -2
- package/dist/chunks/{LpStepper-DpsocBNJ.js → LpStepper-DNnh7lCu.js} +1 -1
- package/dist/chunks/{LpSwap-C96c0LWh.js → LpSwap-M7nFeW3C.js} +1 -1
- package/dist/chunks/{LpSwitch-BnXd1llc.js → LpSwitch-DnC2-0aV.js} +3 -3
- package/dist/chunks/{LpTabFace-DPCwKkH2.js → LpTabFace-DQoV8mQG.js} +2 -2
- package/dist/chunks/{LpTableFilter-CiVBpaq0.js → LpTableFilter-DgARTsA1.js} +4 -4
- package/dist/chunks/{LpTableOfContents-BN5zvpnx.js → LpTableOfContents-CKkWEK6R.js} +14 -9
- package/dist/chunks/{LpTagsInput-C-mDG648.js → LpTagsInput-Dt0mteSj.js} +19 -27
- package/dist/chunks/{LpTextarea-TE-yZv2U.js → LpTextarea-Co0b9PVx.js} +8 -16
- package/dist/chunks/LpThemeProvider-XK6ZeWAE.js +81 -0
- package/dist/chunks/{LpThemeStudio-BpORDvH6.js → LpThemeStudio-DzYfE-5k.js} +12 -195
- package/dist/chunks/{LpThemeSwitcher-BnEn_mvf.js → LpThemeSwitcher-CFLkdbBL.js} +8 -6
- package/dist/chunks/{LpTimeField-BawSVsmt.js → LpTimeField-DeOcKWJq.js} +6 -9
- package/dist/chunks/{LpToaster-IwTXjbbU.js → LpToaster-QFj0P-5m.js} +10 -8
- package/dist/chunks/{LpTooltip-BcBvIx4z.js → LpTooltip-BJf3lZMq.js} +51 -19
- package/dist/chunks/LpTopologyCanvas-BOHHHZ_6.js +673 -0
- package/dist/chunks/{LpTour-BZq-mUMv.js → LpTour-ClKYhx4h.js} +7 -5
- package/dist/chunks/{LpTruncate-CflAIwiJ.js → LpTruncate-C6u3gjc6.js} +6 -5
- package/dist/chunks/{LpTypewriter-BCL_a6wE.js → LpTypewriter-CZIzpdbe.js} +2 -1
- package/dist/chunks/{LpUptimeBar-DqNvvMBK.js → LpUptimeBar-BnYmR2rj.js} +3 -3
- package/dist/chunks/{LpVideoBackdrop-DS1wGv-X.js → LpVideoBackdrop-Ct4St4ZL.js} +10 -13
- package/dist/chunks/LpWindow-B8YSRVTH.js +297 -0
- package/dist/chunks/LpWorkspaceSwitcher-D0e9upAy.js +139 -0
- package/dist/chunks/{MenuTitle-BmCNNTKH.js → MenuTitle-Bh5dAdV1.js} +1 -1
- package/dist/chunks/{OptionContent-22UT8zLn.js → OptionContent-CGb8QlHA.js} +1 -1
- package/dist/chunks/{PickerField-Bfh8id3d.js → PickerField-BM1dyafh.js} +4 -4
- package/dist/chunks/{RevealToggle-BEit1n6Z.js → RevealToggle-CCPDE8Mv.js} +3 -3
- package/dist/chunks/SliderRail-DhPREa_R.js +18 -0
- package/dist/chunks/{TourCard-DNclH3u_.js → TourCard-DAzTYfav.js} +4 -4
- package/dist/chunks/{icons-DMITlfw5.js → icons-CYfcpSDS.js} +26 -10
- package/dist/component-names.d.ts +1 -1
- package/dist/components/AppShellContextNav.vue.d.ts +13 -0
- package/dist/components/AppShellContextNav.vue.js +4 -0
- package/dist/components/ChartRangeSelector.vue.d.ts +21 -0
- package/dist/components/ChartRangeSelector.vue.js +4 -0
- package/dist/components/ContextMenuItems.vue.js +1 -1
- package/dist/components/DropzoneLinkField.vue.d.ts +2 -2
- package/dist/components/DropzoneLinkField.vue.js +1 -1
- package/dist/components/FieldWrapper.vue.js +1 -1
- package/dist/components/IconCloseButton.vue.d.ts +7 -0
- package/dist/components/IconCloseButton.vue.js +4 -0
- package/dist/components/LayoutCanvas.vue.js +1 -1
- package/dist/components/LayoutNode.vue.js +1 -1
- package/dist/components/LpActionBar.vue.js +1 -1
- package/dist/components/LpActivityLine.vue.js +1 -1
- package/dist/components/LpAddressInput.vue.js +1 -1
- package/dist/components/LpAlert.vue.js +1 -1
- package/dist/components/LpAppShell.vue.d.ts +110 -2
- package/dist/components/LpAppShell.vue.js +1 -1
- package/dist/components/LpAutocomplete.vue.js +1 -1
- package/dist/components/LpAvatar.vue.js +1 -1
- package/dist/components/LpBadge.vue.js +1 -1
- package/dist/components/LpBottomNav.vue.d.ts +5 -0
- package/dist/components/LpBottomNav.vue.js +1 -1
- package/dist/components/LpBreadcrumbs.vue.js +1 -1
- package/dist/components/LpButton.vue.d.ts +14 -2
- 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 +74 -2
- package/dist/components/LpChart.vue.js +326 -85
- package/dist/components/LpCheckbox.vue.d.ts +6 -2
- package/dist/components/LpCheckbox.vue.js +1 -1
- package/dist/components/LpCodeBlock.vue.js +1 -1
- package/dist/components/LpCodeDisplay.vue.js +1 -1
- package/dist/components/LpCollapse.vue.js +1 -1
- package/dist/components/LpColorPicker.vue.js +1 -1
- package/dist/components/LpCommandPalette.vue.d.ts +8 -0
- package/dist/components/LpCommandPalette.vue.js +107 -56
- package/dist/components/LpCommandScope.vue.js +1 -1
- package/dist/components/LpConfirmDialog.vue.js +1 -1
- package/dist/components/LpConfirmHost.vue.js +1 -1
- package/dist/components/LpContextMenu.vue.js +1 -1
- package/dist/components/LpContextSwitcher.vue.js +1 -1
- package/dist/components/LpCopyButton.vue.js +1 -1
- package/dist/components/LpCountdown.vue.js +1 -1
- package/dist/components/LpDataList.vue.d.ts +1 -1
- package/dist/components/LpDataList.vue.js +1 -1
- package/dist/components/LpDatePicker.vue.d.ts +3 -15
- package/dist/components/LpDatePicker.vue.js +1 -1
- package/dist/components/LpDateRangePicker.vue.d.ts +3 -13
- package/dist/components/LpDateRangePicker.vue.js +1 -1
- package/dist/components/LpDisclosure.vue.js +1 -1
- package/dist/components/LpDock.vue.js +21 -18
- package/dist/components/LpDrawer.vue.d.ts +1 -1
- package/dist/components/LpDrawer.vue.js +1 -1
- package/dist/components/LpDropdownMenu.vue.js +1 -1
- package/dist/components/LpDropzone.vue.js +14 -11
- package/dist/components/LpEditable.vue.js +1 -1
- package/dist/components/LpEmptyState.vue.js +1 -1
- package/dist/components/LpFieldNotice.vue.js +1 -1
- package/dist/components/LpFileTree.vue.d.ts +96 -6
- package/dist/components/LpFileTree.vue.js +1 -1
- package/dist/components/LpFileTreeNode.vue.d.ts +48 -0
- package/dist/components/LpFileTreeNode.vue.js +1 -1
- package/dist/components/LpFormField.vue.js +1 -1
- package/dist/components/LpFrame.vue.js +1 -1
- package/dist/components/LpGauge.vue.d.ts +1 -1
- package/dist/components/LpHintExample.vue.js +1 -1
- package/dist/components/LpHintLayer.vue.js +1 -1
- package/dist/components/LpHints.vue.js +1 -1
- package/dist/components/LpHoverCard.vue.js +1 -1
- package/dist/components/LpIcon.vue.d.ts +2 -0
- package/dist/components/LpIcon.vue.js +1 -1
- package/dist/components/LpIdenticon.vue.js +1 -1
- package/dist/components/LpImageEditor.vue.js +7 -6
- package/dist/components/LpInfraNode.vue.js +1 -1
- package/dist/components/LpInput.vue.d.ts +1 -1
- package/dist/components/LpInput.vue.js +1 -1
- package/dist/components/LpInspector.vue.d.ts +87 -0
- package/dist/components/LpInspector.vue.js +4 -0
- package/dist/components/LpLightbox.vue.d.ts +8 -0
- package/dist/components/LpLightbox.vue.js +1 -1
- package/dist/components/LpLoader.vue.d.ts +1 -1
- package/dist/components/LpLoader.vue.js +1 -1
- package/dist/components/LpLogInspector.vue.d.ts +18 -0
- package/dist/components/LpLogInspector.vue.js +4 -0
- package/dist/components/LpLogViewer.vue.d.ts +93 -0
- package/dist/components/LpLogViewer.vue.js +1 -1
- package/dist/components/LpMapPicker.vue.js +1 -1
- package/dist/components/LpMasonry.vue.js +1 -1
- package/dist/components/LpMediaGallery.vue.js +1 -1
- package/dist/components/LpModal.vue.d.ts +4 -2
- package/dist/components/LpModal.vue.js +1 -1
- package/dist/components/LpModalNav.vue.d.ts +5 -5
- package/dist/components/LpModalNav.vue.js +1 -1
- package/dist/components/LpNotificationBell.vue.d.ts +2 -2
- package/dist/components/LpNotificationBell.vue.js +1 -1
- package/dist/components/LpNumberField.vue.js +1 -1
- package/dist/components/LpOtpInput.vue.js +1 -1
- package/dist/components/LpPagination.vue.js +1 -1
- package/dist/components/LpPaletteFacts.vue.js +1 -1
- package/dist/components/LpPaletteHeader.vue.js +2 -2
- package/dist/components/LpPaletteTheme.vue.js +1 -1
- package/dist/components/LpPasswordInput.vue.js +1 -1
- package/dist/components/LpPhoneInput.vue.js +1 -1
- package/dist/components/LpPie.vue.d.ts +2 -2
- package/dist/components/LpPie.vue.js +1 -1
- package/dist/components/LpPipeline.vue.d.ts +4 -0
- package/dist/components/LpPipeline.vue.js +1 -1
- package/dist/components/LpPopover.vue.d.ts +7 -3
- 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/LpQuota.vue.js +1 -1
- package/dist/components/LpRadioGroup.vue.js +1 -1
- package/dist/components/LpRangeCalendar.vue.js +1 -1
- package/dist/components/LpRangeSlider.vue.js +1 -1
- package/dist/components/LpRelativeTime.vue.js +1 -1
- package/dist/components/LpRepeater.vue.js +1 -1
- package/dist/components/LpRevealOnScroll.vue.js +1 -1
- package/dist/components/LpScramble.vue.js +1 -1
- package/dist/components/LpScrollArea.vue.js +1 -1
- package/dist/components/LpSecretField.vue.js +1 -1
- package/dist/components/LpSection.vue.js +1 -1
- package/dist/components/LpSegmented.vue.js +1 -1
- package/dist/components/LpSelect.vue.js +1 -1
- package/dist/components/LpShaderBackdrop.vue.js +1 -1
- package/dist/components/LpShift.vue.js +1 -1
- package/dist/components/LpShortcutsDialog.vue.js +1 -1
- package/dist/components/LpSidebar.vue.d.ts +1 -1
- package/dist/components/LpSidebar.vue.js +1 -1
- package/dist/components/LpSidebarNav.vue.js +1 -1
- package/dist/components/LpSidebarRow.vue.js +1 -1
- package/dist/components/LpSlider.vue.js +1 -1
- package/dist/components/LpSparkline.vue.d.ts +1 -1
- package/dist/components/LpSpotlight.vue.js +1 -1
- package/dist/components/LpStat.vue.js +1 -1
- package/dist/components/LpStatus.vue.js +1 -1
- package/dist/components/LpStepMark.vue.js +1 -1
- package/dist/components/LpStepper.vue.js +1 -1
- package/dist/components/LpSwap.vue.js +1 -1
- package/dist/components/LpSwitch.vue.js +1 -1
- package/dist/components/LpTabFace.vue.js +1 -1
- package/dist/components/LpTable.vue.d.ts +132 -0
- package/dist/components/LpTable.vue.js +547 -135
- package/dist/components/LpTableFilter.vue.js +1 -1
- package/dist/components/LpTableOfContents.vue.js +1 -1
- package/dist/components/LpTabs.vue.js +6 -5
- package/dist/components/LpTagsInput.vue.js +1 -1
- package/dist/components/LpTextarea.vue.js +1 -1
- package/dist/components/LpThemeProvider.vue.d.ts +2 -0
- package/dist/components/LpThemeProvider.vue.js +1 -1
- package/dist/components/LpThemeStudio.vue.js +1 -1
- package/dist/components/LpThemeSwitcher.vue.js +1 -1
- package/dist/components/LpTimeField.vue.js +1 -1
- package/dist/components/LpToaster.vue.js +1 -1
- package/dist/components/LpTooltip.vue.js +1 -1
- package/dist/components/LpTopologyCanvas.vue.d.ts +131 -5
- package/dist/components/LpTopologyCanvas.vue.js +1 -1
- package/dist/components/LpTour.vue.js +1 -1
- package/dist/components/LpTruncate.vue.js +1 -1
- package/dist/components/LpTypewriter.vue.js +1 -1
- package/dist/components/LpUptimeBar.vue.js +1 -1
- package/dist/components/LpVideoBackdrop.vue.js +1 -1
- package/dist/components/LpWindow.vue.d.ts +99 -0
- package/dist/components/LpWindow.vue.js +4 -0
- package/dist/components/LpWorkspaceSwitcher.vue.d.ts +18 -0
- package/dist/components/LpWorkspaceSwitcher.vue.js +4 -0
- package/dist/components/MenuTitle.vue.js +1 -1
- package/dist/components/OptionContent.vue.js +1 -1
- package/dist/components/PickerField.vue.d.ts +2 -2
- package/dist/components/PickerField.vue.js +1 -1
- package/dist/components/RevealToggle.vue.js +1 -1
- package/dist/components/SliderRail.vue.d.ts +3 -0
- package/dist/components/SliderRail.vue.js +4 -0
- package/dist/components/TourCard.vue.js +1 -1
- package/dist/components/address.js +2 -1
- package/dist/components/appShell.d.ts +36 -0
- package/dist/components/appShell.js +30 -0
- package/dist/components/calendar.d.ts +12 -3
- package/dist/components/calendar.js +2 -5
- package/dist/components/chart.d.ts +21 -0
- package/dist/components/chart.js +4 -3
- package/dist/components/chartWindow.d.ts +57 -0
- package/dist/components/chartWindow.js +136 -0
- package/dist/components/color.js +1 -1
- package/dist/components/commandPalette.d.ts +16 -2
- package/dist/components/commandPalette.js +39 -4
- package/dist/components/controlSize.d.ts +5 -0
- package/dist/components/controlSize.js +8 -0
- package/dist/components/dropdown.d.ts +5 -0
- package/dist/components/dropdown.js +2 -0
- package/dist/components/exportData.d.ts +6 -1
- package/dist/components/exportData.js +25 -18
- package/dist/components/fileTree.d.ts +67 -0
- package/dist/components/fileTree.js +141 -1
- package/dist/components/identicon.js +3 -2
- package/dist/components/logTools.d.ts +93 -0
- package/dist/components/logTools.js +210 -0
- package/dist/components/menuWhen.js +1 -1
- package/dist/components/meter.js +2 -1
- package/dist/components/pipeline.d.ts +2 -0
- package/dist/components/pipeline.js +5 -0
- package/dist/components/relativeTime.js +2 -1
- package/dist/components/reveal.js +2 -1
- package/dist/components/select.d.ts +5 -0
- package/dist/components/select.js +10 -0
- package/dist/components/sidebar.d.ts +1 -0
- package/dist/components/tableFeatures.d.ts +58 -0
- package/dist/components/tableFeatures.js +87 -0
- package/dist/components/topologyGraph.d.ts +164 -0
- package/dist/components/topologyGraph.js +416 -0
- package/dist/components/tour.js +5 -3
- package/dist/components/videoBackdrop.js +7 -6
- package/dist/composables/clamp.d.ts +2 -0
- package/dist/composables/clamp.js +4 -0
- package/dist/composables/devWarn.d.ts +3 -0
- package/dist/composables/devWarn.js +14 -0
- package/dist/composables/easing.d.ts +13 -4
- package/dist/composables/easing.js +16 -10
- package/dist/composables/overlayHistory.js +14 -1
- package/dist/composables/pointerDrag.d.ts +15 -0
- package/dist/composables/pointerDrag.js +40 -0
- package/dist/composables/propCheck.d.ts +10 -0
- package/dist/composables/propCheck.js +78 -0
- package/dist/composables/realm.d.ts +6 -0
- package/dist/composables/realm.js +23 -0
- package/dist/composables/scroll.js +4 -2
- package/dist/composables/scrollMemory.d.ts +12 -1
- package/dist/composables/scrollMemory.js +36 -12
- package/dist/composables/spatialNav.js +2 -1
- package/dist/composables/textEntry.d.ts +17 -0
- package/dist/composables/textEntry.js +19 -0
- package/dist/composables/useAsyncTask.d.ts +6 -0
- package/dist/composables/useChartSync.d.ts +5 -0
- package/dist/composables/useChartSync.js +33 -0
- package/dist/composables/useCloseGuard.d.ts +3 -1
- package/dist/composables/useCloseGuard.js +6 -3
- package/dist/composables/useCommands.d.ts +50 -0
- package/dist/composables/useCommands.js +66 -0
- package/dist/composables/useField.d.ts +37 -0
- package/dist/composables/useField.js +27 -2
- package/dist/composables/useFitScale.js +4 -1
- package/dist/composables/useFormDraft.d.ts +13 -2
- package/dist/composables/useFormDraft.js +17 -9
- package/dist/composables/useHintSystem.js +2 -2
- package/dist/composables/useHotkeys.js +11 -32
- package/dist/composables/useInView.js +2 -1
- package/dist/composables/useInputFilter.js +7 -5
- package/dist/composables/useInputMask.js +5 -3
- package/dist/composables/useLinkedView.d.ts +97 -0
- package/dist/composables/useLinkedView.js +139 -0
- package/dist/composables/useOptimisticToggle.d.ts +3 -1
- package/dist/composables/useOptimisticToggle.js +2 -1
- package/dist/composables/useOverlayHistory.d.ts +7 -0
- package/dist/composables/useOverlayHistory.js +16 -2
- package/dist/composables/usePaintSelect.js +18 -14
- package/dist/composables/usePaletteCommands.d.ts +7 -0
- package/dist/composables/usePaletteCommands.js +12 -1
- package/dist/composables/usePersisted.d.ts +10 -0
- package/dist/composables/usePersisted.js +1 -1
- package/dist/composables/usePillTransition.d.ts +2 -2
- package/dist/composables/usePillTransition.js +5 -5
- package/dist/composables/useResizeObserver.js +2 -1
- package/dist/composables/useReveal.js +2 -1
- package/dist/composables/useRovingFocus.d.ts +2 -2
- package/dist/composables/useRovingFocus.js +9 -11
- package/dist/composables/useScramble.js +7 -1
- package/dist/composables/useShift.js +8 -6
- package/dist/composables/useTilt.js +2 -1
- package/dist/composables/useTween.js +9 -5
- package/dist/composables/useView.d.ts +1 -0
- package/dist/composables/useView.js +14 -2
- package/dist/composables/useZoomPan.js +2 -4
- package/dist/composables/windowing.d.ts +40 -0
- package/dist/composables/windowing.js +118 -0
- package/dist/icons-all.js +1 -1
- package/dist/icons.d.ts +4 -0
- package/dist/index.d.ts +30 -5
- package/dist/index.js +310 -264
- package/dist/layout/tree.js +19 -15
- package/dist/layout/useLayout.d.ts +2 -0
- package/dist/layout/useLayout.js +5 -1
- package/dist/layout/useWorkspaces.d.ts +52 -0
- package/dist/layout/useWorkspaces.js +140 -0
- package/dist/{chunks/backdrop-Dkf2vM81.js → theme/backdrop.js} +5 -5
- package/dist/theme/config.js +25 -0
- package/dist/theme/define.js +61 -0
- package/dist/{chunks/palette-Co8tSASo.js → theme/palette.js} +2 -2
- package/dist/theme/presets.js +239 -0
- package/dist/theme/studio.js +134 -0
- package/dist/theme/tokens.js +63 -0
- package/dist/theme/useTheme.d.ts +3 -2
- package/dist/theme/useTheme.js +325 -0
- package/package.json +8 -1
- package/src/component-names.ts +5 -1
- package/src/components/AppShellContextNav.vue +44 -0
- package/src/components/ChartRangeSelector.vue +120 -0
- package/src/components/IconCloseButton.vue +21 -0
- package/src/components/LayoutCanvas.vue +3 -0
- package/src/components/LayoutNode.vue +37 -38
- package/src/components/LpActivityLine.vue +4 -2
- package/src/components/LpAddressInput.vue +3 -3
- package/src/components/LpAppShell.vue +362 -24
- package/src/components/LpAutocomplete.vue +18 -30
- package/src/components/LpBottomNav.vue +9 -1
- package/src/components/LpBreadcrumbs.vue +2 -1
- package/src/components/LpButton.vue +11 -4
- package/src/components/LpChart.vue +336 -37
- package/src/components/LpCheckbox.vue +43 -9
- package/src/components/LpCodeBlock.vue +17 -23
- package/src/components/LpCollapse.vue +5 -4
- package/src/components/LpColorPicker.vue +8 -9
- package/src/components/LpCommandPalette.vue +133 -50
- package/src/components/LpContextMenu.vue +15 -13
- package/src/components/LpCountdown.vue +2 -1
- package/src/components/LpDataList.vue +13 -1
- package/src/components/LpDatePicker.vue +5 -17
- package/src/components/LpDateRangePicker.vue +5 -16
- package/src/components/LpDock.vue +25 -16
- package/src/components/LpDrawer.vue +70 -61
- package/src/components/LpDropdownMenu.vue +6 -10
- package/src/components/LpDropzone.vue +12 -7
- package/src/components/LpEditable.vue +6 -2
- package/src/components/LpFileTree.vue +507 -66
- package/src/components/LpFileTreeNode.vue +106 -5
- package/src/components/LpFormField.vue +1 -1
- package/src/components/LpFrame.vue +33 -13
- package/src/components/LpHoverCard.vue +30 -5
- package/src/components/LpIcon.vue +6 -2
- package/src/components/LpIdenticon.vue +2 -1
- package/src/components/LpImageEditor.vue +5 -2
- package/src/components/LpInput.vue +15 -23
- package/src/components/LpInspector.vue +197 -0
- package/src/components/LpLightbox.vue +74 -29
- package/src/components/LpLogInspector.vue +85 -0
- package/src/components/LpLogViewer.vue +239 -29
- package/src/components/LpMapPicker.vue +2 -1
- package/src/components/LpMasonry.vue +8 -5
- package/src/components/LpModal.vue +12 -12
- package/src/components/LpModalNav.vue +2 -21
- package/src/components/LpNumberField.vue +6 -15
- package/src/components/LpOtpInput.vue +2 -2
- package/src/components/LpPagination.vue +5 -3
- package/src/components/LpPhoneInput.vue +8 -19
- package/src/components/LpPie.vue +25 -23
- package/src/components/LpPipeline.vue +14 -1
- package/src/components/LpPopover.vue +23 -2
- package/src/components/LpProgress.vue +2 -1
- package/src/components/LpRadioGroup.vue +2 -2
- package/src/components/LpRangeSlider.vue +5 -6
- package/src/components/LpRevealOnScroll.vue +1 -1
- package/src/components/LpScrollArea.vue +28 -11
- package/src/components/LpSecretField.vue +2 -1
- package/src/components/LpSegmented.vue +6 -8
- package/src/components/LpSelect.vue +54 -24
- package/src/components/LpShaderBackdrop.vue +12 -9
- package/src/components/LpShift.vue +18 -15
- package/src/components/LpSidebar.vue +77 -74
- package/src/components/LpSidebarNav.vue +3 -2
- package/src/components/LpSidebarRow.vue +2 -1
- package/src/components/LpSlider.vue +5 -6
- package/src/components/LpSpotlight.vue +2 -1
- package/src/components/LpSwitch.vue +5 -3
- package/src/components/LpTable.vue +609 -93
- package/src/components/LpTableFilter.vue +1 -1
- package/src/components/LpTableOfContents.vue +16 -9
- package/src/components/LpTabs.vue +2 -1
- package/src/components/LpTagsInput.vue +12 -19
- package/src/components/LpTextarea.vue +5 -11
- package/src/components/LpThemeProvider.vue +29 -13
- package/src/components/LpTimeField.vue +4 -7
- package/src/components/LpToaster.vue +7 -6
- package/src/components/LpTooltip.vue +62 -18
- package/src/components/LpTopologyCanvas.vue +567 -42
- package/src/components/LpTour.vue +7 -5
- package/src/components/LpTruncate.vue +4 -3
- package/src/components/LpTypewriter.vue +2 -1
- package/src/components/LpVideoBackdrop.vue +11 -13
- package/src/components/LpWindow.vue +373 -0
- package/src/components/LpWorkspaceSwitcher.vue +116 -0
- package/src/components/PickerField.vue +2 -2
- package/src/components/SliderRail.vue +10 -0
- package/src/components/address.ts +3 -1
- package/src/components/appShell.ts +74 -0
- package/src/components/calendar.ts +12 -5
- package/src/components/chart.ts +27 -3
- package/src/components/chartWindow.ts +198 -0
- package/src/components/color.ts +2 -1
- package/src/components/commandPalette.ts +66 -5
- package/src/components/controlSize.ts +6 -0
- package/src/components/dropdown.ts +3 -0
- package/src/components/exportData.ts +33 -18
- package/src/components/fileTree.ts +215 -0
- package/src/components/identicon.ts +4 -2
- package/src/components/logTools.ts +298 -0
- package/src/components/meter.ts +2 -1
- package/src/components/pipeline.ts +6 -0
- package/src/components/relativeTime.ts +2 -1
- package/src/components/reveal.ts +3 -1
- package/src/components/select.ts +14 -0
- package/src/components/sidebar.ts +1 -0
- package/src/components/tableFeatures.ts +149 -0
- package/src/components/topologyGraph.ts +655 -0
- package/src/components/tour.ts +5 -3
- package/src/components/videoBackdrop.ts +7 -6
- package/src/composables/clamp.ts +2 -0
- package/src/composables/devWarn.ts +19 -0
- package/src/composables/easing.ts +37 -12
- package/src/composables/overlayHistory.ts +24 -0
- package/src/composables/pointerDrag.ts +54 -0
- package/src/composables/propCheck.ts +90 -0
- package/src/composables/realm.ts +25 -0
- package/src/composables/scroll.ts +4 -2
- package/src/composables/scrollMemory.ts +56 -14
- package/src/composables/spatialNav.ts +2 -1
- package/src/composables/textEntry.ts +33 -0
- package/src/composables/useAsyncTask.ts +6 -0
- package/src/composables/useChartSync.ts +52 -0
- package/src/composables/useCloseGuard.ts +22 -10
- package/src/composables/useCommands.ts +123 -0
- package/src/composables/useField.ts +41 -2
- package/src/composables/useFitScale.ts +4 -1
- package/src/composables/useFormDraft.ts +38 -14
- package/src/composables/useHintSystem.ts +2 -2
- package/src/composables/useHotkeys.ts +19 -48
- package/src/composables/useInView.ts +2 -1
- package/src/composables/useInputFilter.ts +8 -5
- package/src/composables/useInputMask.ts +8 -3
- package/src/composables/useLinkedView.ts +222 -0
- package/src/composables/useOptimisticToggle.ts +7 -1
- package/src/composables/useOverlayHistory.ts +20 -0
- package/src/composables/usePaintSelect.ts +20 -14
- package/src/composables/usePaletteCommands.ts +13 -0
- package/src/composables/usePersisted.ts +10 -0
- package/src/composables/usePillTransition.ts +9 -6
- package/src/composables/useResizeObserver.ts +2 -1
- package/src/composables/useReveal.ts +2 -1
- package/src/composables/useRovingFocus.ts +11 -14
- package/src/composables/useScramble.ts +12 -1
- package/src/composables/useShift.ts +8 -6
- package/src/composables/useTilt.ts +2 -1
- package/src/composables/useTween.ts +10 -5
- package/src/composables/useView.ts +17 -3
- package/src/composables/useZoomPan.ts +2 -5
- package/src/composables/windowing.ts +190 -0
- package/src/icons.ts +27 -6
- package/src/index.ts +41 -4
- package/src/kit-icons.ts +1 -1
- package/src/layout/tree.ts +31 -16
- package/src/layout/useLayout.ts +6 -0
- package/src/layout/useWorkspaces.ts +234 -0
- package/src/nuxt.ts +9 -1
- package/src/runtime/propCheck.plugin.ts +10 -0
- package/src/theme/studio.ts +7 -5
- package/src/theme/useTheme.ts +89 -15
- package/src/tokens/tokens.css +8 -1
- package/dist/assets/LpTabs-CJ0rYQbx.css +0 -18
- package/dist/chunks/LpAppShell-Dgejipzz.js +0 -319
- package/dist/chunks/LpFileTree-CooHinsC.js +0 -425
- package/dist/chunks/LpThemeProvider-8MG6yqU9.js +0 -640
- package/dist/chunks/LpTopologyCanvas-B1gIbS0n.js +0 -298
|
@@ -1,18 +1,25 @@
|
|
|
1
|
-
import { defineComponent, ref, computed, onMounted, watch,
|
|
1
|
+
import { defineComponent, ref, computed, onMounted, shallowRef, watch, nextTick, useId, openBlock, createElementBlock, mergeProps, unref, createBlock, createCommentVNode, createElementVNode, toDisplayString, renderSlot, Fragment, renderList, normalizeClass, createVNode, withCtx, normalizeStyle, createSlots, withDirectives, vShow, createTextVNode } from "vue";
|
|
2
|
+
import { clamp } from "../composables/clamp.js";
|
|
2
3
|
import { Motion } from "motion-v";
|
|
4
|
+
import { useChartSync } from "../composables/useChartSync.js";
|
|
3
5
|
import { useLabels } from "../composables/useLpConfig.js";
|
|
4
|
-
import {
|
|
6
|
+
import { easeTravel } from "../composables/easing.js";
|
|
7
|
+
import { usePrefersReducedMotion } from "../composables/useReducedMotion.js";
|
|
8
|
+
import { startPointerDrag } from "../composables/pointerDrag.js";
|
|
9
|
+
import { nodeWindow } from "../composables/realm.js";
|
|
5
10
|
import { usePillTransition } from "../composables/usePillTransition.js";
|
|
6
11
|
import { useReveal } from "../composables/useReveal.js";
|
|
7
12
|
import { useTween, lerp, mixValues, resample } from "../composables/useTween.js";
|
|
8
13
|
import { normalise, pointCount, resolveLabels, extent, axisTicks, fitScale, plotHeight, plotWidth, xLabelIndices, xAt, yAt, areaPath, linePath, barPath, markerIndex, chartSummary, niceScale, nearestIndex, formatTick } from "./chart.js";
|
|
14
|
+
import { _ as _sfc_main$8 } from "../chunks/ChartRangeSelector-HO0sMMz6.js";
|
|
15
|
+
import { clampRange, chartView, sourceOf, slotOf, ZOOM_STEP, zoomRange } from "./chartWindow.js";
|
|
9
16
|
import { PANEL_SURFACE } from "./dropdown.js";
|
|
10
17
|
import { _ as _sfc_main$2 } from "../chunks/LegendSwatch-BhRjrtzv.js";
|
|
11
|
-
import { _ as _sfc_main$3 } from "../chunks/LpContextMenu
|
|
12
|
-
import { _ as _sfc_main$6 } from "../chunks/LpEmptyState-
|
|
13
|
-
import { _ as _sfc_main$7 } from "../chunks/LpShift-
|
|
18
|
+
import { _ as _sfc_main$3 } from "../chunks/LpContextMenu--eMGIql6.js";
|
|
19
|
+
import { _ as _sfc_main$6 } from "../chunks/LpEmptyState-DurPF001.js";
|
|
20
|
+
import { _ as _sfc_main$7 } from "../chunks/LpShift-DAgS_d2x.js";
|
|
14
21
|
import { _ as _sfc_main$5 } from "../chunks/LpSkeleton-BB6XIV-w.js";
|
|
15
|
-
import { _ as _sfc_main$4 } from "../chunks/LpSwap-
|
|
22
|
+
import { _ as _sfc_main$4 } from "../chunks/LpSwap-M7nFeW3C.js";
|
|
16
23
|
import { sampleValues, skeletonHeights, skeletonWave } from "./chartSkeleton.js";
|
|
17
24
|
import { _ as _sfc_main$1 } from "../chunks/HintSampleTag-BV8AZXZh.js";
|
|
18
25
|
import { useSample } from "../composables/useSample.js";
|
|
@@ -82,33 +89,38 @@ const _hoisted_30 = ["x", "y"];
|
|
|
82
89
|
const _hoisted_31 = ["x1", "x2", "y1", "y2"];
|
|
83
90
|
const _hoisted_32 = ["x", "y", "width", "height"];
|
|
84
91
|
const _hoisted_33 = ["x", "y", "width", "height", "fill"];
|
|
85
|
-
const _hoisted_34 = ["
|
|
86
|
-
const _hoisted_35 = ["
|
|
87
|
-
const _hoisted_36 = ["
|
|
88
|
-
const _hoisted_37 = ["d", "
|
|
89
|
-
const _hoisted_38 = ["
|
|
90
|
-
const _hoisted_39 = ["
|
|
91
|
-
const _hoisted_40 = ["
|
|
92
|
-
const _hoisted_41 = ["x1", "x2", "y1", "y2", "stroke"];
|
|
92
|
+
const _hoisted_34 = ["x", "y", "fill"];
|
|
93
|
+
const _hoisted_35 = ["x", "y", "width", "height", "fill"];
|
|
94
|
+
const _hoisted_36 = ["clip-path"];
|
|
95
|
+
const _hoisted_37 = ["d", "fill", "opacity"];
|
|
96
|
+
const _hoisted_38 = ["d", "fill"];
|
|
97
|
+
const _hoisted_39 = ["d", "stroke", "stroke-dasharray"];
|
|
98
|
+
const _hoisted_40 = ["cx", "cy", "fill"];
|
|
99
|
+
const _hoisted_41 = ["x1", "x2", "y1", "y2", "stroke", "stroke-dasharray"];
|
|
93
100
|
const _hoisted_42 = ["x", "y", "fill"];
|
|
94
|
-
const _hoisted_43 =
|
|
95
|
-
const _hoisted_44 = ["
|
|
101
|
+
const _hoisted_43 = ["x1", "x2", "y1", "y2", "stroke"];
|
|
102
|
+
const _hoisted_44 = ["x", "y", "fill"];
|
|
96
103
|
const _hoisted_45 = ["cx", "cy", "fill"];
|
|
97
|
-
const _hoisted_46 = ["x", "y"];
|
|
98
|
-
const _hoisted_47 =
|
|
99
|
-
const _hoisted_48 = {
|
|
100
|
-
const _hoisted_49 =
|
|
101
|
-
const _hoisted_50 =
|
|
102
|
-
const _hoisted_51 =
|
|
104
|
+
const _hoisted_46 = ["x", "y", "text-anchor", "fill"];
|
|
105
|
+
const _hoisted_47 = ["x", "y", "width", "height"];
|
|
106
|
+
const _hoisted_48 = { key: 4 };
|
|
107
|
+
const _hoisted_49 = ["x1", "x2", "y1", "y2"];
|
|
108
|
+
const _hoisted_50 = ["cx", "cy", "fill"];
|
|
109
|
+
const _hoisted_51 = ["x", "y"];
|
|
110
|
+
const _hoisted_52 = { class: "mb-1 text-[11px] font-medium text-muted-strong" };
|
|
111
|
+
const _hoisted_53 = { class: "flex flex-col gap-1" };
|
|
112
|
+
const _hoisted_54 = { class: "flex items-center gap-1.5 text-muted" };
|
|
113
|
+
const _hoisted_55 = { class: "font-mono tabular-nums text-ink" };
|
|
114
|
+
const _hoisted_56 = {
|
|
103
115
|
class: "sr-only",
|
|
104
116
|
"aria-live": "polite"
|
|
105
117
|
};
|
|
106
|
-
const
|
|
107
|
-
key:
|
|
118
|
+
const _hoisted_57 = {
|
|
119
|
+
key: 4,
|
|
108
120
|
class: "sr-only"
|
|
109
121
|
};
|
|
110
|
-
const
|
|
111
|
-
const
|
|
122
|
+
const _hoisted_58 = { key: 0 };
|
|
123
|
+
const _hoisted_59 = { scope: "row" };
|
|
112
124
|
const __default__ = { inheritAttrs: false };
|
|
113
125
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
114
126
|
...__default__,
|
|
@@ -141,29 +153,45 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
141
153
|
loading: { type: Boolean },
|
|
142
154
|
thresholds: { default: () => [] },
|
|
143
155
|
markers: { default: () => [] },
|
|
156
|
+
bands: { default: () => [] },
|
|
157
|
+
annotations: { default: () => [] },
|
|
158
|
+
range: { default: void 0 },
|
|
159
|
+
rangeSelector: { type: Boolean },
|
|
160
|
+
zoomable: { type: Boolean },
|
|
161
|
+
downsample: { type: [String, Boolean] },
|
|
162
|
+
maxPoints: {},
|
|
163
|
+
syncGroup: {},
|
|
144
164
|
ariaLabel: {},
|
|
145
165
|
dataTable: { type: Boolean, default: false },
|
|
146
166
|
text: {},
|
|
147
167
|
menuItems: {}
|
|
148
168
|
},
|
|
149
|
-
emits: ["pointClick", "pointContextMenu"],
|
|
169
|
+
emits: ["pointClick", "pointContextMenu", "update:range"],
|
|
150
170
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
151
171
|
const props = __props;
|
|
152
172
|
const strings = useLabels(
|
|
153
173
|
"chart",
|
|
154
|
-
{
|
|
174
|
+
{
|
|
175
|
+
empty: "No data",
|
|
176
|
+
loading: "Loading",
|
|
177
|
+
rightAxis: "Measured on the right axis",
|
|
178
|
+
point: "Point",
|
|
179
|
+
xColumn: "Label",
|
|
180
|
+
rangeStart: "Start of the range",
|
|
181
|
+
rangeEnd: "End of the range",
|
|
182
|
+
resetZoom: "Show all"
|
|
183
|
+
},
|
|
155
184
|
() => props.text
|
|
156
185
|
);
|
|
157
186
|
const emit = __emit;
|
|
158
187
|
const root = ref(null);
|
|
159
188
|
const width = ref(0);
|
|
160
189
|
const { el: revealAnchor, revealed } = useReveal({ immediate: () => !props.animate });
|
|
161
|
-
const reduced =
|
|
190
|
+
const reduced = usePrefersReducedMotion();
|
|
162
191
|
const still = computed(() => !props.animate || reduced.value);
|
|
163
192
|
const drawing = computed(() => !still.value && revealed.value);
|
|
164
193
|
onMounted(() => {
|
|
165
194
|
revealAnchor.value = root.value;
|
|
166
|
-
reduced.value = prefersReducedMotion();
|
|
167
195
|
});
|
|
168
196
|
useResizeObserver(root, (entry, el) => width.value = entry ? entry.contentRect.width : el.clientWidth, {
|
|
169
197
|
immediate: true
|
|
@@ -173,7 +201,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
173
201
|
const next = new Set(hidden.value);
|
|
174
202
|
if (next.has(id)) next.delete(id);
|
|
175
203
|
else next.add(id);
|
|
176
|
-
if (
|
|
204
|
+
if (allSeries.value.some((s) => !next.has(s.id))) hidden.value = next;
|
|
177
205
|
};
|
|
178
206
|
const SAMPLE_POINTS = 12;
|
|
179
207
|
const sampling = useSample(
|
|
@@ -187,21 +215,56 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
187
215
|
const series = props.series.length ? props.series : [{ name: "", data: [] }];
|
|
188
216
|
return series.map((s, i) => ({ ...s, data: sampleValues(count2, i) }));
|
|
189
217
|
});
|
|
190
|
-
const
|
|
218
|
+
const fullSeries = computed(
|
|
191
219
|
() => normalise(source.value).map((s, i) => ({ ...s, id: `${i}:${s.name}` }))
|
|
192
220
|
);
|
|
221
|
+
const fullCount = computed(() => pointCount(fullSeries.value));
|
|
222
|
+
const fullLabels = computed(() => resolveLabels(source.value, props.labels, fullCount.value));
|
|
223
|
+
const ownRange = shallowRef(null);
|
|
224
|
+
const range = computed(() => clampRange(props.range === void 0 ? ownRange.value : props.range, fullCount.value));
|
|
225
|
+
const view = computed(
|
|
226
|
+
() => chartView(
|
|
227
|
+
fullSeries.value.map((s) => s.values),
|
|
228
|
+
fullCount.value,
|
|
229
|
+
range.value,
|
|
230
|
+
props.type === "bar" ? false : props.downsample,
|
|
231
|
+
props.maxPoints ?? Math.floor(width.value)
|
|
232
|
+
)
|
|
233
|
+
);
|
|
234
|
+
const narrowed = computed(() => range.value !== null || view.value.indices !== null);
|
|
235
|
+
const allSeries = computed(
|
|
236
|
+
() => narrowed.value ? fullSeries.value.map((s, i) => ({ ...s, values: view.value.values[i] })) : fullSeries.value
|
|
237
|
+
);
|
|
238
|
+
function setRange(next) {
|
|
239
|
+
ownRange.value = next;
|
|
240
|
+
emit("update:range", next);
|
|
241
|
+
}
|
|
242
|
+
let rangeMoving = false;
|
|
243
|
+
watch(
|
|
244
|
+
() => `${range.value?.start}:${range.value?.end}`,
|
|
245
|
+
() => {
|
|
246
|
+
rangeMoving = true;
|
|
247
|
+
void nextTick(() => rangeMoving = false);
|
|
248
|
+
},
|
|
249
|
+
{ flush: "sync" }
|
|
250
|
+
);
|
|
193
251
|
const visible = computed(() => allSeries.value.filter((s) => !hidden.value.has(s.id)));
|
|
194
252
|
const seeded = /* @__PURE__ */ new Set();
|
|
195
253
|
watch(
|
|
196
254
|
() => props.series.map((s, i) => [`${i}:${s.name}`, !!s.hidden]),
|
|
197
255
|
(entries) => {
|
|
198
|
-
|
|
256
|
+
if (!entries.length) return;
|
|
257
|
+
const ids = new Set(entries.map(([id]) => id));
|
|
258
|
+
for (const id of seeded) if (!ids.has(id)) seeded.delete(id);
|
|
259
|
+
const kept = [...hidden.value].filter((id) => ids.has(id));
|
|
260
|
+
const next = new Set(kept);
|
|
199
261
|
for (const [id, off] of entries) {
|
|
200
262
|
if (seeded.has(id)) continue;
|
|
201
263
|
seeded.add(id);
|
|
202
|
-
if (off)
|
|
264
|
+
if (off) next.add(id);
|
|
203
265
|
}
|
|
204
|
-
|
|
266
|
+
const allowed = next.size < entries.length ? next : new Set(kept);
|
|
267
|
+
if (allowed.size !== hidden.value.size || [...allowed].some((id) => !hidden.value.has(id))) hidden.value = allowed;
|
|
205
268
|
},
|
|
206
269
|
{ immediate: true }
|
|
207
270
|
);
|
|
@@ -209,7 +272,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
209
272
|
const settle = {
|
|
210
273
|
duration: SETTLE_MS,
|
|
211
274
|
ease: easeTravel,
|
|
212
|
-
enabled: () => props.animate
|
|
275
|
+
enabled: () => props.animate && !rangeMoving
|
|
213
276
|
};
|
|
214
277
|
const presenceTargets = computed(
|
|
215
278
|
() => new Map(allSeries.value.map((s) => [s.id, hidden.value.has(s.id) ? 0 : 1]))
|
|
@@ -254,7 +317,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
254
317
|
* itself in on its own entrance — a morph from readings nobody saw would
|
|
255
318
|
* only muddy it.
|
|
256
319
|
*/
|
|
257
|
-
enabled: () => props.animate && revealed.value && !!svgEl.value
|
|
320
|
+
enabled: () => props.animate && !rangeMoving && revealed.value && !!svgEl.value
|
|
258
321
|
});
|
|
259
322
|
const drawnById = computed(() => {
|
|
260
323
|
const out = /* @__PURE__ */ new Map();
|
|
@@ -262,10 +325,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
262
325
|
return out;
|
|
263
326
|
});
|
|
264
327
|
const count = computed(() => pointCount(allSeries.value));
|
|
265
|
-
const labels = computed(
|
|
328
|
+
const labels = computed(
|
|
329
|
+
() => narrowed.value ? Array.from({ length: count.value }, (_, slot) => fullLabels.value[sourceOf(view.value, slot)] ?? "") : fullLabels.value
|
|
330
|
+
);
|
|
266
331
|
const banded = computed(() => props.type === "bar");
|
|
267
332
|
const hasData = computed(
|
|
268
|
-
() =>
|
|
333
|
+
() => fullSeries.value.some((s) => s.values.some((v) => v != null))
|
|
269
334
|
);
|
|
270
335
|
const ready = computed(() => hasData.value && !props.loading);
|
|
271
336
|
const plotState = computed(() => props.loading ? "loading" : hasData.value ? "plot" : "empty");
|
|
@@ -431,23 +496,24 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
431
496
|
);
|
|
432
497
|
const baseY = computed(
|
|
433
498
|
() => yAt(
|
|
434
|
-
|
|
499
|
+
clamp(0, scale.value.min, scale.value.max),
|
|
435
500
|
scale.value.min,
|
|
436
501
|
scale.value.max,
|
|
437
502
|
box.value
|
|
438
503
|
)
|
|
439
504
|
);
|
|
505
|
+
const curve = computed(() => view.value.indices ? 0 : props.smooth);
|
|
440
506
|
const lines = computed(
|
|
441
507
|
() => drawnSeries.value.map((s) => {
|
|
442
508
|
const g = geoOf(s);
|
|
443
509
|
const p = presenceOf(s.id) * s.enter;
|
|
444
|
-
const base =
|
|
510
|
+
const base = clamp(0, g.min, g.max);
|
|
445
511
|
const values = p === 1 ? s.values : s.values.map((v) => v == null ? null : base + (v - base) * p);
|
|
446
512
|
return {
|
|
447
513
|
...s,
|
|
448
514
|
values,
|
|
449
|
-
d: linePath(values, g,
|
|
450
|
-
fill: props.type === "area" ? areaPath(values, g,
|
|
515
|
+
d: linePath(values, g, curve.value),
|
|
516
|
+
fill: props.type === "area" ? areaPath(values, g, curve.value) : "",
|
|
451
517
|
/* A dashed series is a reference level (a budget, a target), not a
|
|
452
518
|
measurement — dotting it implies readings that aren't there. */
|
|
453
519
|
points: props.showPoints && !s.dashed,
|
|
@@ -488,7 +554,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
488
554
|
} else {
|
|
489
555
|
const sc = scaleOf(s);
|
|
490
556
|
const top = yAt(v, sc.min, sc.max, box.value);
|
|
491
|
-
const base = yAt(
|
|
557
|
+
const base = yAt(clamp(0, sc.min, sc.max), sc.min, sc.max, box.value);
|
|
492
558
|
y = Math.min(top, base);
|
|
493
559
|
h = Math.abs(top - base);
|
|
494
560
|
}
|
|
@@ -531,6 +597,37 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
531
597
|
});
|
|
532
598
|
const active = ref(-1);
|
|
533
599
|
const pointer = ref({ x: 0, y: 0 });
|
|
600
|
+
const { peerLabel, publish } = useChartSync(() => props.syncGroup);
|
|
601
|
+
const labelIndex = computed(() => props.syncGroup ? new Map(fullLabels.value.map((label, i) => [label, i])) : null);
|
|
602
|
+
const peerSlot = computed(() => {
|
|
603
|
+
const source2 = peerLabel.value == null ? void 0 : labelIndex.value?.get(peerLabel.value);
|
|
604
|
+
return source2 === void 0 ? -1 : slotOf(view.value, source2);
|
|
605
|
+
});
|
|
606
|
+
const crosshair = computed(() => active.value >= 0 ? active.value : peerSlot.value);
|
|
607
|
+
watch(active, (slot) => publish(slot >= 0 ? labels.value[slot] ?? null : null));
|
|
608
|
+
const SELECT_SLOP = 4;
|
|
609
|
+
let swallowClick = false;
|
|
610
|
+
const selection = ref(null);
|
|
611
|
+
const onPointerDown = (e) => {
|
|
612
|
+
if (!props.zoomable || e.button !== 0) return;
|
|
613
|
+
const el = e.currentTarget;
|
|
614
|
+
const offset = (ev) => ev.clientX - el.getBoundingClientRect().left;
|
|
615
|
+
const pressedAt = offset(e);
|
|
616
|
+
startPointerDrag(e, {
|
|
617
|
+
move(ev) {
|
|
618
|
+
const x = offset(ev);
|
|
619
|
+
if (Math.abs(x - pressedAt) > SELECT_SLOP) selection.value = { from: pressedAt, to: x };
|
|
620
|
+
},
|
|
621
|
+
end(completed) {
|
|
622
|
+
const picked = selection.value;
|
|
623
|
+
selection.value = null;
|
|
624
|
+
if (!completed || !picked) return;
|
|
625
|
+
swallowClick = true;
|
|
626
|
+
const ends = [picked.from, picked.to].map((x) => sourceOf(view.value, nearestIndex(x, geo.value)));
|
|
627
|
+
setRange(clampRange({ start: ends[0], end: ends[1] }, fullCount.value));
|
|
628
|
+
}
|
|
629
|
+
});
|
|
630
|
+
};
|
|
534
631
|
const onMove = (e) => {
|
|
535
632
|
keyboard.value = false;
|
|
536
633
|
const el = e.currentTarget;
|
|
@@ -539,16 +636,39 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
539
636
|
pointer.value = { x, y: e.clientY - rect.top };
|
|
540
637
|
active.value = nearestIndex(x, geo.value);
|
|
541
638
|
};
|
|
639
|
+
const selectionBox = computed(() => {
|
|
640
|
+
if (!selection.value) return null;
|
|
641
|
+
const right = box.value.width - box.value.right;
|
|
642
|
+
const [from, to] = [selection.value.from, selection.value.to].map((x) => clamp(x, box.value.left, right));
|
|
643
|
+
return { x: Math.min(from, to), width: Math.abs(to - from) };
|
|
644
|
+
});
|
|
645
|
+
function zoomBy(factor, anchor) {
|
|
646
|
+
setRange(zoomRange(range.value, fullCount.value, anchor, factor));
|
|
647
|
+
}
|
|
648
|
+
const onWheel = (e) => {
|
|
649
|
+
if (!props.zoomable || !e.ctrlKey || !ready.value) return;
|
|
650
|
+
e.preventDefault();
|
|
651
|
+
const rect = e.currentTarget.getBoundingClientRect();
|
|
652
|
+
const plot = plotWidth(box.value) || 1;
|
|
653
|
+
zoomBy(e.deltaY < 0 ? ZOOM_STEP : 1 / ZOOM_STEP, (e.clientX - rect.left - box.value.left) / plot);
|
|
654
|
+
};
|
|
655
|
+
const resetZoom = () => {
|
|
656
|
+
if (range.value) setRange(null);
|
|
657
|
+
};
|
|
542
658
|
const onLeave = () => {
|
|
543
659
|
active.value = -1;
|
|
544
660
|
};
|
|
545
661
|
const pointEvent = (originalEvent) => ({
|
|
546
|
-
index: active.value,
|
|
662
|
+
index: sourceOf(view.value, active.value),
|
|
547
663
|
label: labels.value[active.value] ?? "",
|
|
548
664
|
values: allSeries.value.map((s) => s.values[active.value] ?? null),
|
|
549
665
|
originalEvent
|
|
550
666
|
});
|
|
551
667
|
const onClick = (e) => {
|
|
668
|
+
if (swallowClick) {
|
|
669
|
+
swallowClick = false;
|
|
670
|
+
return;
|
|
671
|
+
}
|
|
552
672
|
const rect = e.currentTarget.getBoundingClientRect();
|
|
553
673
|
active.value = nearestIndex(e.clientX - rect.left, geo.value);
|
|
554
674
|
if (active.value < 0) return;
|
|
@@ -566,13 +686,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
566
686
|
emit("pointContextMenu", menuPoint.value);
|
|
567
687
|
};
|
|
568
688
|
const activeX = computed(
|
|
569
|
-
() =>
|
|
689
|
+
() => crosshair.value < 0 ? 0 : xAt(crosshair.value, count.value, box.value, banded.value)
|
|
570
690
|
);
|
|
571
691
|
const activePoints = computed(() => {
|
|
572
|
-
if (
|
|
573
|
-
return visible.value.map((s) => ({ s, v: s.values[
|
|
692
|
+
if (crosshair.value < 0) return [];
|
|
693
|
+
return visible.value.map((s) => ({ s, v: s.values[crosshair.value] })).filter((r) => r.v != null).map(({ s, v }) => {
|
|
574
694
|
const sc = scaleOf(s);
|
|
575
|
-
const at = drawnById.value.get(s.id)?.values[
|
|
695
|
+
const at = drawnById.value.get(s.id)?.values[crosshair.value] ?? v;
|
|
576
696
|
return {
|
|
577
697
|
color: s.color,
|
|
578
698
|
id: s.id,
|
|
@@ -612,7 +732,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
612
732
|
revealKey.value++;
|
|
613
733
|
}
|
|
614
734
|
);
|
|
615
|
-
const clipId = `lp-chart-${
|
|
735
|
+
const clipId = `lp-chart-${useId()}`;
|
|
616
736
|
const gradientId = (name, index) => `${clipId}-g-${index}-${name.replace(/[^a-zA-Z0-9_-]/g, "-")}`;
|
|
617
737
|
const thresholdMarks = computed(
|
|
618
738
|
() => props.thresholds.flatMap((t, i) => {
|
|
@@ -635,7 +755,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
635
755
|
);
|
|
636
756
|
const markerMarks = computed(
|
|
637
757
|
() => props.markers.flatMap((m, i) => {
|
|
638
|
-
const index = markerIndex(m.at,
|
|
758
|
+
const index = slotOf(view.value, markerIndex(m.at, fullLabels.value, fullCount.value));
|
|
639
759
|
if (index < 0 || width.value <= 0) return [];
|
|
640
760
|
return [
|
|
641
761
|
{
|
|
@@ -647,6 +767,43 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
647
767
|
];
|
|
648
768
|
})
|
|
649
769
|
);
|
|
770
|
+
const xOfSource = (source2) => {
|
|
771
|
+
if (source2 < view.value.start) return box.value.left;
|
|
772
|
+
if (source2 > view.value.end) return box.value.width - box.value.right;
|
|
773
|
+
return xAt(slotOf(view.value, source2), count.value, box.value, banded.value);
|
|
774
|
+
};
|
|
775
|
+
const bandMarks = computed(
|
|
776
|
+
() => props.bands.flatMap((b, i) => {
|
|
777
|
+
const ends = [markerIndex(b.from, fullLabels.value, fullCount.value), markerIndex(b.to, fullLabels.value, fullCount.value)];
|
|
778
|
+
if (ends.some((end) => end < 0) || width.value <= 0) return [];
|
|
779
|
+
const from = Math.min(...ends);
|
|
780
|
+
const to = Math.max(...ends);
|
|
781
|
+
if (to < view.value.start || from > view.value.end) return [];
|
|
782
|
+
const x = xOfSource(from);
|
|
783
|
+
return [{ key: i, x, width: xOfSource(to) - x, label: b.label, color: b.color ?? "var(--color-line-strong)" }];
|
|
784
|
+
})
|
|
785
|
+
);
|
|
786
|
+
const annotationMarks = computed(
|
|
787
|
+
() => props.annotations.flatMap((a, i) => {
|
|
788
|
+
const source2 = markerIndex(a.at, fullLabels.value, fullCount.value);
|
|
789
|
+
const slot = slotOf(view.value, source2);
|
|
790
|
+
const lead = fullSeries.value.find((s) => !hidden.value.has(s.id) && s.values[source2] != null);
|
|
791
|
+
const value = a.value ?? lead?.values[source2];
|
|
792
|
+
if (slot < 0 || value == null || width.value <= 0) return [];
|
|
793
|
+
const sc = (a.value == null ? lead?.axis : a.axis) === "right" && rightScale.value ? rightScale.value : scale.value;
|
|
794
|
+
const x = xAt(slot, count.value, box.value, banded.value);
|
|
795
|
+
return [
|
|
796
|
+
{
|
|
797
|
+
key: i,
|
|
798
|
+
x,
|
|
799
|
+
y: yAt(value, sc.min, sc.max, box.value),
|
|
800
|
+
label: a.label,
|
|
801
|
+
color: a.color ?? "var(--color-ink)",
|
|
802
|
+
anchor: x > box.value.width - CARD_W ? "end" : "start"
|
|
803
|
+
}
|
|
804
|
+
];
|
|
805
|
+
})
|
|
806
|
+
);
|
|
650
807
|
const summary = computed(
|
|
651
808
|
() => props.ariaLabel ?? chartSummary(visible.value, labels.value, fmtSeries, props.title)
|
|
652
809
|
);
|
|
@@ -672,11 +829,23 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
672
829
|
case " ":
|
|
673
830
|
if (active.value < 0) return;
|
|
674
831
|
e.preventDefault();
|
|
675
|
-
emit("pointClick", pointEvent(new MouseEvent("click")));
|
|
832
|
+
emit("pointClick", pointEvent(new (nodeWindow(e.target)).MouseEvent("click")));
|
|
676
833
|
return;
|
|
677
834
|
case "Escape":
|
|
678
835
|
active.value = -1;
|
|
679
836
|
return;
|
|
837
|
+
case "+":
|
|
838
|
+
case "=":
|
|
839
|
+
case "-":
|
|
840
|
+
if (!props.zoomable) return;
|
|
841
|
+
e.preventDefault();
|
|
842
|
+
zoomBy(e.key === "-" ? 1 / ZOOM_STEP : ZOOM_STEP, active.value < 0 ? 0.5 : active.value / last);
|
|
843
|
+
return;
|
|
844
|
+
case "0":
|
|
845
|
+
if (!props.zoomable) return;
|
|
846
|
+
e.preventDefault();
|
|
847
|
+
resetZoom();
|
|
848
|
+
return;
|
|
680
849
|
default:
|
|
681
850
|
return;
|
|
682
851
|
}
|
|
@@ -698,20 +867,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
698
867
|
);
|
|
699
868
|
const svgEl = ref(null);
|
|
700
869
|
function exportCsv(options = {}) {
|
|
701
|
-
const rows =
|
|
870
|
+
const rows = fullLabels.value.map((label, i) => ({ label, i }));
|
|
702
871
|
const csv = toCsv(rows, [
|
|
703
872
|
{ key: "label", label: strings.value.xColumn },
|
|
704
|
-
...
|
|
873
|
+
...fullSeries.value.map((s) => ({ key: s.id, label: s.name, value: (r) => s.values[r.i] }))
|
|
705
874
|
], options);
|
|
706
875
|
if (options.download !== false) {
|
|
707
|
-
downloadFile(`${fileStem(options.filename ?? props.title, "chart")}.csv`, csv, "text/csv;charset=utf-8");
|
|
876
|
+
downloadFile(`${fileStem(options.filename ?? props.title, "chart")}.csv`, csv, "text/csv;charset=utf-8", svgEl.value?.ownerDocument);
|
|
708
877
|
}
|
|
709
878
|
return csv;
|
|
710
879
|
}
|
|
711
880
|
async function exportPng(options = {}) {
|
|
712
881
|
const svg = svgEl.value;
|
|
713
|
-
if (!svg
|
|
714
|
-
const style = getComputedStyle(root.value ?? svg);
|
|
882
|
+
if (!svg) return null;
|
|
883
|
+
const style = nodeWindow(svg).getComputedStyle(root.value ?? svg);
|
|
715
884
|
const font = style.fontFamily;
|
|
716
885
|
const ink = style.getPropertyValue("--color-ink").trim() || style.color;
|
|
717
886
|
const muted = style.getPropertyValue("--color-muted-strong").trim() || style.color;
|
|
@@ -747,7 +916,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
747
916
|
return y ? y + 8 : 0;
|
|
748
917
|
}
|
|
749
918
|
});
|
|
750
|
-
if (options.download !== false) downloadFile(`${fileStem(options.filename ?? props.title, "chart")}.png`, blob);
|
|
919
|
+
if (options.download !== false) downloadFile(`${fileStem(options.filename ?? props.title, "chart")}.png`, blob, void 0, svgEl.value?.ownerDocument);
|
|
751
920
|
return blob;
|
|
752
921
|
}
|
|
753
922
|
__expose({ exportCsv, exportPng });
|
|
@@ -896,9 +1065,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
896
1065
|
height: __props.height,
|
|
897
1066
|
class: "block overflow-visible touch-none select-none",
|
|
898
1067
|
"aria-hidden": "true",
|
|
1068
|
+
onPointerdown: onPointerDown,
|
|
899
1069
|
onPointermove: onMove,
|
|
900
1070
|
onPointerleave: onLeave,
|
|
901
1071
|
onClick,
|
|
1072
|
+
onDblclick: _cache[0] || (_cache[0] = ($event) => __props.zoomable && resetZoom()),
|
|
1073
|
+
onWheel,
|
|
902
1074
|
onContextmenu: onContextMenu
|
|
903
1075
|
}, [
|
|
904
1076
|
createElementVNode("defs", null, [
|
|
@@ -998,6 +1170,27 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
998
1170
|
fill: "var(--color-surface-soft)",
|
|
999
1171
|
opacity: "0.5"
|
|
1000
1172
|
}, null, 8, _hoisted_32)) : createCommentVNode("", true),
|
|
1173
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(bandMarks.value, (b) => {
|
|
1174
|
+
return openBlock(), createElementBlock("g", {
|
|
1175
|
+
key: `x-band-${b.key}`
|
|
1176
|
+
}, [
|
|
1177
|
+
createElementVNode("rect", {
|
|
1178
|
+
x: b.x,
|
|
1179
|
+
y: box.value.top,
|
|
1180
|
+
width: b.width,
|
|
1181
|
+
height: unref(plotHeight)(box.value),
|
|
1182
|
+
fill: b.color,
|
|
1183
|
+
opacity: "0.1"
|
|
1184
|
+
}, null, 8, _hoisted_33),
|
|
1185
|
+
b.label ? (openBlock(), createElementBlock("text", {
|
|
1186
|
+
key: 0,
|
|
1187
|
+
x: b.x + 4,
|
|
1188
|
+
y: box.value.top + 9,
|
|
1189
|
+
class: "text-[10px]",
|
|
1190
|
+
fill: b.color
|
|
1191
|
+
}, toDisplayString(b.label), 9, _hoisted_34)) : createCommentVNode("", true)
|
|
1192
|
+
]);
|
|
1193
|
+
}), 128)),
|
|
1001
1194
|
(openBlock(true), createElementBlock(Fragment, null, renderList(thresholdMarks.value.filter((m) => m.height > 0), (t) => {
|
|
1002
1195
|
return openBlock(), createElementBlock("rect", {
|
|
1003
1196
|
key: `band-${t.key}`,
|
|
@@ -1007,7 +1200,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1007
1200
|
height: t.height,
|
|
1008
1201
|
fill: t.color,
|
|
1009
1202
|
opacity: "0.08"
|
|
1010
|
-
}, null, 8,
|
|
1203
|
+
}, null, 8, _hoisted_35);
|
|
1011
1204
|
}), 128)),
|
|
1012
1205
|
createElementVNode("g", {
|
|
1013
1206
|
"clip-path": `url(#${clipId}-reveal)`
|
|
@@ -1019,7 +1212,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1019
1212
|
fill: b.color,
|
|
1020
1213
|
class: "transition-opacity duration-fast",
|
|
1021
1214
|
opacity: active.value < 0 || active.value === b.index ? 1 : 0.45
|
|
1022
|
-
}, null, 8,
|
|
1215
|
+
}, null, 8, _hoisted_37);
|
|
1023
1216
|
}), 128)),
|
|
1024
1217
|
(openBlock(true), createElementBlock(Fragment, null, renderList(lines.value, (s, i) => {
|
|
1025
1218
|
return openBlock(), createElementBlock("g", {
|
|
@@ -1029,7 +1222,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1029
1222
|
withDirectives(createElementVNode("path", {
|
|
1030
1223
|
d: s.fill,
|
|
1031
1224
|
fill: `url(#${gradientId(s.name, i)})`
|
|
1032
|
-
}, null, 8,
|
|
1225
|
+
}, null, 8, _hoisted_38), [
|
|
1033
1226
|
[vShow, __props.type === "area"]
|
|
1034
1227
|
]),
|
|
1035
1228
|
withDirectives(createElementVNode("path", {
|
|
@@ -1040,7 +1233,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1040
1233
|
"stroke-linecap": "round",
|
|
1041
1234
|
"stroke-linejoin": "round",
|
|
1042
1235
|
"stroke-dasharray": s.dashed ? "5 4" : void 0
|
|
1043
|
-
}, null, 8,
|
|
1236
|
+
}, null, 8, _hoisted_39), [
|
|
1044
1237
|
[vShow, __props.type !== "bar"]
|
|
1045
1238
|
]),
|
|
1046
1239
|
__props.type !== "bar" && s.points ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(s.values, (v, j) => {
|
|
@@ -1050,13 +1243,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1050
1243
|
cy: v == null ? 0 : unref(yAt)(v, s.scale.min, s.scale.max, box.value),
|
|
1051
1244
|
r: "2.5",
|
|
1052
1245
|
fill: s.color
|
|
1053
|
-
}, null, 8,
|
|
1246
|
+
}, null, 8, _hoisted_40)), [
|
|
1054
1247
|
[vShow, v != null]
|
|
1055
1248
|
]);
|
|
1056
1249
|
}), 128)) : createCommentVNode("", true)
|
|
1057
1250
|
], 4);
|
|
1058
1251
|
}), 128))
|
|
1059
|
-
], 8,
|
|
1252
|
+
], 8, _hoisted_36),
|
|
1060
1253
|
(openBlock(true), createElementBlock(Fragment, null, renderList(thresholdMarks.value, (t) => {
|
|
1061
1254
|
return openBlock(), createElementBlock("g", {
|
|
1062
1255
|
key: `t-${t.key}`
|
|
@@ -1069,7 +1262,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1069
1262
|
stroke: t.color,
|
|
1070
1263
|
"stroke-width": "1",
|
|
1071
1264
|
"stroke-dasharray": t.solid ? void 0 : "4 3"
|
|
1072
|
-
}, null, 8,
|
|
1265
|
+
}, null, 8, _hoisted_41),
|
|
1073
1266
|
t.label ? (openBlock(), createElementBlock("text", {
|
|
1074
1267
|
key: 0,
|
|
1075
1268
|
x: box.value.width - box.value.right - 4,
|
|
@@ -1077,7 +1270,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1077
1270
|
"text-anchor": "end",
|
|
1078
1271
|
class: "text-[10px]",
|
|
1079
1272
|
fill: t.color
|
|
1080
|
-
}, toDisplayString(t.label), 9,
|
|
1273
|
+
}, toDisplayString(t.label), 9, _hoisted_42)) : createCommentVNode("", true)
|
|
1081
1274
|
]);
|
|
1082
1275
|
}), 128)),
|
|
1083
1276
|
(openBlock(true), createElementBlock(Fragment, null, renderList(markerMarks.value, (m) => {
|
|
@@ -1092,17 +1285,48 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1092
1285
|
stroke: m.color,
|
|
1093
1286
|
"stroke-width": "1",
|
|
1094
1287
|
"stroke-dasharray": "2 3"
|
|
1095
|
-
}, null, 8,
|
|
1288
|
+
}, null, 8, _hoisted_43),
|
|
1096
1289
|
m.label ? (openBlock(), createElementBlock("text", {
|
|
1097
1290
|
key: 0,
|
|
1098
1291
|
x: m.x + 4,
|
|
1099
1292
|
y: box.value.top + 9,
|
|
1100
1293
|
class: "text-[10px]",
|
|
1101
1294
|
fill: m.color
|
|
1102
|
-
}, toDisplayString(m.label), 9,
|
|
1295
|
+
}, toDisplayString(m.label), 9, _hoisted_44)) : createCommentVNode("", true)
|
|
1296
|
+
]);
|
|
1297
|
+
}), 128)),
|
|
1298
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(annotationMarks.value, (a) => {
|
|
1299
|
+
return openBlock(), createElementBlock("g", {
|
|
1300
|
+
key: `a-${a.key}`
|
|
1301
|
+
}, [
|
|
1302
|
+
createElementVNode("circle", {
|
|
1303
|
+
cx: a.x,
|
|
1304
|
+
cy: a.y,
|
|
1305
|
+
r: "3.5",
|
|
1306
|
+
fill: a.color,
|
|
1307
|
+
stroke: "var(--color-surface)",
|
|
1308
|
+
"stroke-width": "1.5"
|
|
1309
|
+
}, null, 8, _hoisted_45),
|
|
1310
|
+
createElementVNode("text", {
|
|
1311
|
+
x: a.anchor === "end" ? a.x - 6 : a.x + 6,
|
|
1312
|
+
y: a.y - 6,
|
|
1313
|
+
"text-anchor": a.anchor,
|
|
1314
|
+
class: "text-[10px]",
|
|
1315
|
+
fill: a.color
|
|
1316
|
+
}, toDisplayString(a.label), 9, _hoisted_46)
|
|
1103
1317
|
]);
|
|
1104
1318
|
}), 128)),
|
|
1105
|
-
|
|
1319
|
+
selectionBox.value ? (openBlock(), createElementBlock("rect", {
|
|
1320
|
+
key: 3,
|
|
1321
|
+
"data-lp-chart-selection": "",
|
|
1322
|
+
x: selectionBox.value.x,
|
|
1323
|
+
y: box.value.top,
|
|
1324
|
+
width: selectionBox.value.width,
|
|
1325
|
+
height: unref(plotHeight)(box.value),
|
|
1326
|
+
fill: "var(--color-brand)",
|
|
1327
|
+
opacity: "0.15"
|
|
1328
|
+
}, null, 8, _hoisted_47)) : createCommentVNode("", true),
|
|
1329
|
+
crosshair.value >= 0 && __props.type !== "bar" ? (openBlock(), createElementBlock("g", _hoisted_48, [
|
|
1106
1330
|
createElementVNode("line", {
|
|
1107
1331
|
x1: activeX.value,
|
|
1108
1332
|
x2: activeX.value,
|
|
@@ -1111,7 +1335,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1111
1335
|
stroke: "var(--color-line-strong)",
|
|
1112
1336
|
"stroke-width": "1",
|
|
1113
1337
|
"stroke-dasharray": "3 3"
|
|
1114
|
-
}, null, 8,
|
|
1338
|
+
}, null, 8, _hoisted_49),
|
|
1115
1339
|
(openBlock(true), createElementBlock(Fragment, null, renderList(activePoints.value, (p) => {
|
|
1116
1340
|
return openBlock(), createElementBlock("circle", {
|
|
1117
1341
|
key: p.id,
|
|
@@ -1121,7 +1345,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1121
1345
|
fill: p.color,
|
|
1122
1346
|
stroke: "var(--color-surface)",
|
|
1123
1347
|
"stroke-width": "2"
|
|
1124
|
-
}, null, 8,
|
|
1348
|
+
}, null, 8, _hoisted_50);
|
|
1125
1349
|
}), 128))
|
|
1126
1350
|
])) : createCommentVNode("", true),
|
|
1127
1351
|
(openBlock(true), createElementBlock(Fragment, null, renderList(xLabels.value, (l) => {
|
|
@@ -1131,7 +1355,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1131
1355
|
y: __props.height - 8,
|
|
1132
1356
|
"text-anchor": "middle",
|
|
1133
1357
|
class: normalizeClass(["fill-[var(--color-muted)] text-[10px]", active.value === l.i ? "fill-[var(--color-ink)]" : ""])
|
|
1134
|
-
}, toDisplayString(l.label), 11,
|
|
1358
|
+
}, toDisplayString(l.label), 11, _hoisted_51)), [
|
|
1135
1359
|
[vShow, __props.showXAxis]
|
|
1136
1360
|
]);
|
|
1137
1361
|
}), 128))
|
|
@@ -1155,21 +1379,21 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1155
1379
|
default: withCtx(() => [
|
|
1156
1380
|
createVNode(_sfc_main$7, { axis: "both" }, {
|
|
1157
1381
|
default: withCtx(() => [
|
|
1158
|
-
createElementVNode("div",
|
|
1159
|
-
createElementVNode("div",
|
|
1382
|
+
createElementVNode("div", _hoisted_52, toDisplayString(labels.value[active.value]), 1),
|
|
1383
|
+
createElementVNode("div", _hoisted_53, [
|
|
1160
1384
|
(openBlock(true), createElementBlock(Fragment, null, renderList(tooltipRows.value, (r) => {
|
|
1161
1385
|
return openBlock(), createElementBlock("div", {
|
|
1162
1386
|
key: r.id,
|
|
1163
1387
|
class: "flex items-center justify-between gap-3 text-xs"
|
|
1164
1388
|
}, [
|
|
1165
|
-
createElementVNode("span",
|
|
1389
|
+
createElementVNode("span", _hoisted_54, [
|
|
1166
1390
|
createElementVNode("span", {
|
|
1167
1391
|
class: "size-1.5 shrink-0 rounded-full",
|
|
1168
1392
|
style: normalizeStyle({ backgroundColor: r.color })
|
|
1169
1393
|
}, null, 4),
|
|
1170
1394
|
createTextVNode(" " + toDisplayString(r.name), 1)
|
|
1171
1395
|
]),
|
|
1172
|
-
createElementVNode("span",
|
|
1396
|
+
createElementVNode("span", _hoisted_55, toDisplayString(r.text), 1)
|
|
1173
1397
|
]);
|
|
1174
1398
|
}), 128))
|
|
1175
1399
|
])
|
|
@@ -1179,18 +1403,35 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1179
1403
|
]),
|
|
1180
1404
|
_: 1
|
|
1181
1405
|
}, 8, ["class", "animate", "transition"])) : createCommentVNode("", true),
|
|
1182
|
-
|
|
1406
|
+
__props.zoomable && range.value && ready.value ? (openBlock(), createElementBlock("button", {
|
|
1407
|
+
key: 1,
|
|
1408
|
+
type: "button",
|
|
1409
|
+
class: "absolute right-1 top-1 rounded-inner bg-surface-raised px-2 py-0.5 text-[11px] text-muted-strong outline-none hover:text-ink focus-visible:ring-2 focus-visible:ring-ring",
|
|
1410
|
+
onClick: resetZoom
|
|
1411
|
+
}, toDisplayString(unref(strings).resetZoom), 1)) : createCommentVNode("", true),
|
|
1412
|
+
createElementVNode("span", _hoisted_56, toDisplayString(readout.value), 1)
|
|
1183
1413
|
], 44, _hoisted_10)
|
|
1184
1414
|
]),
|
|
1185
1415
|
_: 3
|
|
1186
1416
|
}, 8, ["items", "always"]),
|
|
1187
|
-
__props.
|
|
1417
|
+
__props.rangeSelector && ready.value && width.value > 0 ? (openBlock(), createBlock(_sfc_main$8, {
|
|
1418
|
+
key: 3,
|
|
1419
|
+
values: fullSeries.value.find((s) => s.values.some((v) => v != null))?.values ?? [],
|
|
1420
|
+
count: fullCount.value,
|
|
1421
|
+
range: range.value,
|
|
1422
|
+
width: width.value,
|
|
1423
|
+
labels: fullLabels.value,
|
|
1424
|
+
"start-label": unref(strings).rangeStart,
|
|
1425
|
+
"end-label": unref(strings).rangeEnd,
|
|
1426
|
+
onChange: setRange
|
|
1427
|
+
}, null, 8, ["values", "count", "range", "width", "labels", "start-label", "end-label"])) : createCommentVNode("", true),
|
|
1428
|
+
__props.dataTable && ready.value ? (openBlock(), createElementBlock("div", _hoisted_57, [
|
|
1188
1429
|
createElementVNode("table", null, [
|
|
1189
|
-
__props.title ? (openBlock(), createElementBlock("caption",
|
|
1430
|
+
__props.title ? (openBlock(), createElementBlock("caption", _hoisted_58, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
|
|
1190
1431
|
createElementVNode("thead", null, [
|
|
1191
1432
|
createElementVNode("tr", null, [
|
|
1192
|
-
_cache[
|
|
1193
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(
|
|
1433
|
+
_cache[1] || (_cache[1] = createElementVNode("th", { scope: "col" }, null, -1)),
|
|
1434
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(fullSeries.value, (s) => {
|
|
1194
1435
|
return openBlock(), createElementBlock("th", {
|
|
1195
1436
|
key: s.id,
|
|
1196
1437
|
scope: "col"
|
|
@@ -1199,10 +1440,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1199
1440
|
])
|
|
1200
1441
|
]),
|
|
1201
1442
|
createElementVNode("tbody", null, [
|
|
1202
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(
|
|
1443
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(fullLabels.value, (label, i) => {
|
|
1203
1444
|
return openBlock(), createElementBlock("tr", { key: i }, [
|
|
1204
|
-
createElementVNode("th",
|
|
1205
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(
|
|
1445
|
+
createElementVNode("th", _hoisted_59, toDisplayString(label), 1),
|
|
1446
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(fullSeries.value, (s) => {
|
|
1206
1447
|
return openBlock(), createElementBlock("td", {
|
|
1207
1448
|
key: s.id
|
|
1208
1449
|
}, toDisplayString(s.values[i] == null ? "—" : fmtSeries(s, s.values[i])), 1);
|
|
@@ -1216,7 +1457,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1216
1457
|
};
|
|
1217
1458
|
}
|
|
1218
1459
|
});
|
|
1219
|
-
const LpChart = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
1460
|
+
const LpChart = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-39ed90d7"]]);
|
|
1220
1461
|
export {
|
|
1221
1462
|
LpChart as default
|
|
1222
1463
|
};
|