@leavepulse/ui 0.69.0 → 0.70.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 +37 -0
- package/dist/assets/LoaderMark-DxBV2iDJ.css +43 -0
- package/dist/assets/LpActivityLine-B3EwNQEB.css +33 -0
- package/dist/assets/{LpCommandPalette-DxyjhYn_.css → LpCommandPalette-u-zOxKWa.css} +21 -31
- package/dist/assets/LpDock-Cbh0wQUv.css +17 -0
- package/dist/assets/{LpDropzone-Qb8k7cg4.css → LpDropzone-Bb1vBTeU.css} +12 -17
- package/dist/assets/{LpImageEditor-CElPDzpF.css → LpImageEditor-XM5bAziW.css} +6 -6
- package/dist/assets/LpLogViewer-BDNW6P52.css +38 -0
- package/dist/assets/{LpPalettePreview-CJmAKgYW.css → LpPalettePreview-B9VKDrvA.css} +2 -7
- package/dist/assets/LpShinyText-D69cBYDR.css +61 -0
- package/dist/assets/LpStatus-430OGTZY.css +17 -0
- package/dist/assets/LpStepMark-Drvx33Vg.css +10 -0
- package/dist/assets/{LpTable-BPERfJIk.css → LpTable-DHxEQ_-3.css} +19 -19
- package/dist/assets/LpTabs-BJ-nrJuI.css +18 -0
- package/dist/assets/LpTextReveal-DjI1MsDS.css +35 -0
- package/dist/assets/LpTypewriter-CXAm9Nca.css +27 -0
- package/dist/chunks/AttentionDot-DCBf4aWg.js +25 -0
- package/dist/chunks/{ContextMenuItems-B7XFHksm.js → ContextMenuItems-B5uE8Znw.js} +1 -1
- package/dist/chunks/{DropzoneLinkField-CjkrpDqO.js → DropzoneLinkField-Bw8Flkhk.js} +2 -2
- package/dist/chunks/FieldWrapper-BiennROB.js +43 -0
- package/dist/chunks/{LayoutCanvas-DF9CovaK.js → LayoutCanvas-BsJIzhdd.js} +1 -1
- package/dist/chunks/{LayoutNode-D9bIFzk0.js → LayoutNode-DJVhkSGk.js} +6 -8
- package/dist/chunks/LegendSwatch-BhRjrtzv.js +18 -0
- package/dist/chunks/LoaderMark-C1dubiKn.js +85 -0
- package/dist/chunks/{LpActionBar-MPKMu3pz.js → LpActionBar-CzOFar5t.js} +14 -20
- package/dist/chunks/LpActivityLine-CJvzrNpj.js +95 -0
- package/dist/chunks/{LpAddressInput-DG0BTqdH.js → LpAddressInput-CNnLTDZg.js} +7 -7
- package/dist/chunks/LpAlert-C5igj802.js +119 -0
- package/dist/chunks/{LpAppShell-DPh1756q.js → LpAppShell-CEUAB8kK.js} +15 -16
- package/dist/chunks/{LpAutocomplete-Dgn6hw3p.js → LpAutocomplete-D92niDHE.js} +15 -32
- package/dist/chunks/{LpAvatar-Bs0Fb1lC.js → LpAvatar-CLPl-qOF.js} +18 -6
- package/dist/chunks/LpBadge-HOEPBYmi.js +126 -0
- package/dist/chunks/LpBreadcrumbs-DYoPc3P4.js +144 -0
- package/dist/chunks/{LpButton-DNR-YAq5.js → LpButton-CVxBfGjd.js} +12 -4
- package/dist/chunks/{LpCalendar-BLya39Fh.js → LpCalendar-pVL91-Pl.js} +1 -1
- package/dist/chunks/{LpCard-Bf71NXZq.js → LpCard-CqKLnEhl.js} +18 -8
- package/dist/chunks/{LpCheckbox-Da5oZPHo.js → LpCheckbox-DHc2bHDe.js} +9 -6
- package/dist/chunks/{LpCodeBlock-lLbmslfs.js → LpCodeBlock-BGsQhxw8.js} +24 -32
- package/dist/chunks/LpCodeDisplay-CIKKT2iW.js +189 -0
- package/dist/chunks/LpCollapse-CWS9M_lm.js +115 -0
- package/dist/chunks/{LpColorPicker-DtEfBAcK.js → LpColorPicker-DFugXNUi.js} +10 -5
- package/dist/chunks/{LpConfirmDialog-D7s4jakB.js → LpConfirmDialog-CfGCux8m.js} +3 -3
- package/dist/chunks/{LpConfirmHost-DrYI5y1K.js → LpConfirmHost-exB7JmcO.js} +1 -1
- package/dist/chunks/{LpContextMenu-CRnjoqSt.js → LpContextMenu-COwOwRgI.js} +13 -5
- package/dist/chunks/LpCopyButton-DzHjnFs0.js +133 -0
- package/dist/chunks/LpCountdown-Dtq1ihlJ.js +231 -0
- package/dist/chunks/LpDataList-B-5nHfNw.js +120 -0
- package/dist/chunks/LpDatePicker-BUe1VUC0.js +168 -0
- package/dist/chunks/LpDateRangePicker-C_k65vGR.js +126 -0
- package/dist/chunks/{LpDisclosure-6AplYBub.js → LpDisclosure-DOarzlAG.js} +22 -11
- package/dist/chunks/{LpDrawer-Q4SOxM4s.js → LpDrawer-DGNKRsGq.js} +9 -4
- package/dist/chunks/{LpDropdownMenu-DWTt0ooM.js → LpDropdownMenu-CRgrhdAH.js} +10 -5
- package/dist/chunks/LpEditable-DTqLt2lT.js +236 -0
- package/dist/chunks/{LpEmptyState-om1UnFjV.js → LpEmptyState-KTKipws2.js} +1 -1
- package/dist/chunks/{LpFieldNotice-CHuDeLjc.js → LpFieldNotice-CurbNuXI.js} +1 -1
- package/dist/chunks/{LpFileTree-CW24YsVX.js → LpFileTree-DMISXVHC.js} +5 -3
- package/dist/chunks/{LpFileTreeNode-BXhTHaKW.js → LpFileTreeNode-CPXB_Yy3.js} +42 -55
- package/dist/chunks/{LpFormField-DPb47HEm.js → LpFormField-BWwgm1E4.js} +23 -9
- package/dist/chunks/LpFrame-BVQCQLDI.js +155 -0
- package/dist/chunks/LpGauge-Bk8TwJj0.js +204 -0
- package/dist/chunks/LpGlowBorder-B8V-QzIl.js +40 -0
- package/dist/chunks/{LpHintExample-C1eKYdeL.js → LpHintExample-9Py0wc-L.js} +11 -34
- package/dist/chunks/{LpHintLayer-7UOdWQG3.js → LpHintLayer-p4hqzdyA.js} +27 -14
- package/dist/chunks/{LpHints-BUtBp9-w.js → LpHints-CCrhRfy9.js} +3 -3
- package/dist/chunks/LpHoverCard-spGxyw7T.js +130 -0
- package/dist/chunks/{LpIcon-6tSrZ3Zy.js → LpIcon-HJP5xMz4.js} +1 -1
- package/dist/chunks/LpIdenticon-BzdC_qz9.js +63 -0
- package/dist/chunks/{LpInfraNode-Ds_8SZgN.js → LpInfraNode-CUC3t4na.js} +39 -25
- package/dist/chunks/{LpInput-CUyr6PIE.js → LpInput-CDuwODJG.js} +44 -18
- package/dist/chunks/{LpLightbox-B9J8rzsj.js → LpLightbox-XJ0LpTcZ.js} +69 -69
- package/dist/chunks/LpLoader-DjJEX8hL.js +92 -0
- package/dist/chunks/{LpLogViewer-4QFc-sVN.js → LpLogViewer-elZHbj85.js} +225 -129
- package/dist/chunks/LpMagnetic-CtXKLa2Y.js +62 -0
- package/dist/chunks/{LpMapPicker-BTbkFeSG.js → LpMapPicker-BtIl7NOM.js} +34 -31
- package/dist/chunks/LpMasonry--k0571qG.js +185 -0
- package/dist/chunks/{LpMediaGallery-CuPcscx3.js → LpMediaGallery-D5swlmZ_.js} +3 -3
- package/dist/chunks/{LpModal-hk1noDcr.js → LpModal-eBMt2Fqn.js} +8 -3
- package/dist/chunks/{LpModalNav-DQd2keZm.js → LpModalNav-D4Z0wVHR.js} +4 -4
- package/dist/chunks/{LpNotificationBell-X84PJIxD.js → LpNotificationBell-DPZmP5dM.js} +32 -48
- package/dist/chunks/LpNumberField-B9k-h2HE.js +140 -0
- package/dist/chunks/{LpNumberFlow-z4WPZcZu.js → LpNumberFlow-Cfyh033Q.js} +8 -28
- package/dist/chunks/{LpOtpInput-PbeNJ5In.js → LpOtpInput-CeBPsM7D.js} +2 -1
- package/dist/chunks/{LpPagination-Bx-VG4Ag.js → LpPagination-VNCX6pFC.js} +37 -6
- package/dist/chunks/{LpPalettePreview-CFav_7co.js → LpPalettePreview-BNB8T_MY.js} +1 -1
- package/dist/chunks/{LpPasswordInput-CbnXitAS.js → LpPasswordInput-DTV18FIh.js} +20 -20
- package/dist/chunks/{LpPhoneInput-DP69HONS.js → LpPhoneInput-C60tx1tC.js} +12 -7
- package/dist/chunks/{LpPie-yLF9-aDR.js → LpPie-CFuV7pZv.js} +158 -47
- package/dist/chunks/LpPipeline-D81yh_NX.js +329 -0
- package/dist/chunks/{LpPopover-DVnkHaOu.js → LpPopover-BEIcqb9p.js} +8 -3
- package/dist/chunks/{LpProgress-CA86wxXu.js → LpProgress-CE-m5OpD.js} +23 -63
- package/dist/chunks/LpQuota-2Sw_gqcJ.js +162 -0
- package/dist/chunks/{LpRadioGroup-8S5hf8lE.js → LpRadioGroup-CGBr5nIp.js} +1 -1
- package/dist/chunks/{LpRangeCalendar-ByQi-WUz.js → LpRangeCalendar-c5qj7YcC.js} +1 -1
- package/dist/chunks/{LpRangeSlider-C1yF9-nP.js → LpRangeSlider-Dv6lNvHY.js} +6 -2
- package/dist/chunks/LpRelativeTime-CKzVqAo9.js +73 -0
- package/dist/chunks/LpRepeater-D0VjmD6y.js +140 -0
- package/dist/chunks/LpRevealOnScroll-DcQjexLy.js +76 -0
- package/dist/chunks/LpScramble-TDO5Kdou.js +85 -0
- package/dist/chunks/LpSecretField-DMfdJ1cQ.js +307 -0
- package/dist/chunks/{LpSection-BmRXe6ZP.js → LpSection-BW4xJ-Li.js} +1 -1
- package/dist/chunks/{LpSegmented-CW3bFHM4.js → LpSegmented-BO99Sr4m.js} +11 -14
- package/dist/chunks/{LpSelect-BCyDYoih.js → LpSelect-B4f_yRi5.js} +93 -108
- package/dist/chunks/LpShaderBackdrop-Bote0iuy.js +332 -0
- package/dist/chunks/LpShinyText-DX2ajtWq.js +48 -0
- package/dist/chunks/{LpSidebar-DfIiS-lB.js → LpSidebar-D-M0Y_7U.js} +5 -3
- package/dist/chunks/{LpSidebarNav-C5FDNI0t.js → LpSidebarNav-DF-TYxOV.js} +3 -3
- package/dist/chunks/{LpSlider-Cuzmrd7p.js → LpSlider-DuoRpOrH.js} +6 -2
- package/dist/chunks/{LpSparkline-DXT4KrSi.js → LpSparkline-CExIRDb3.js} +32 -27
- package/dist/chunks/LpSpotlight-4F3NeUMY.js +41 -0
- package/dist/chunks/{LpStat-iBMF5QNk.js → LpStat-B2ix1Q7t.js} +38 -35
- package/dist/chunks/LpStatus-C7kx5PKE.js +86 -0
- package/dist/chunks/LpStepMark-DK-5BKAt.js +101 -0
- package/dist/chunks/LpStepper-DRFfdJaq.js +76 -0
- package/dist/chunks/{LpSwap-D82jiecV.js → LpSwap-DzE6M3Mg.js} +1 -1
- package/dist/chunks/LpSwitch-DrzKrZZV.js +112 -0
- package/dist/chunks/{LpTableFilter-CuIbgdW0.js → LpTableFilter-DyvHGbOk.js} +3 -2
- package/dist/chunks/{LpTableOfContents-C_4VBktT.js → LpTableOfContents-rYvo8z5T.js} +34 -21
- package/dist/chunks/{LpTagsInput-DiXrpYeE.js → LpTagsInput-DgpBFRV2.js} +68 -71
- package/dist/chunks/LpTextReveal-CtAnOUkp.js +140 -0
- package/dist/chunks/{LpTextarea-xoQd5Lnp.js → LpTextarea-DiWjeVoJ.js} +12 -11
- package/dist/chunks/{LpThemeProvider-CQ2jC9TA.js → LpThemeProvider-DcbfOxsU.js} +1 -1
- package/dist/chunks/LpThemeStudio-DguwHdGt.js +416 -0
- package/dist/chunks/LpThemeStudioSection-BwhqYDLf.js +20 -0
- package/dist/chunks/LpThemeSwitcher-D5uz0MhK.js +278 -0
- package/dist/chunks/{LpTimeField-MFgAsNc5.js → LpTimeField-BFQVf_PW.js} +13 -5
- package/dist/chunks/{LpToaster-C4zE9zB7.js → LpToaster-Wv9ksj4q.js} +49 -82
- package/dist/chunks/{LpTooltip-suFCM34F.js → LpTooltip-Cz8SQwRt.js} +8 -3
- package/dist/chunks/{LpTopologyCanvas-6ozNrQKh.js → LpTopologyCanvas-ZhKthfgz.js} +1 -1
- package/dist/chunks/{LpTour-BUp3Jt2e.js → LpTour-NfRJNEIP.js} +24 -18
- package/dist/chunks/LpTruncate-D_5Pfv5B.js +112 -0
- package/dist/chunks/LpTypewriter-BCL_a6wE.js +159 -0
- package/dist/chunks/{LpUptimeBar-B6kHw4Cj.js → LpUptimeBar-DWegV2p6.js} +9 -8
- package/dist/chunks/{LpVideoBackdrop-qWRYBOTQ.js → LpVideoBackdrop-DS1wGv-X.js} +7 -8
- package/dist/chunks/{MenuTitle-obgek0B7.js → MenuTitle-BjQZX8tQ.js} +1 -1
- package/dist/chunks/OptionContent-CmYUUeWj.js +40 -0
- package/dist/chunks/PickerField-CHRS1h7K.js +116 -0
- package/dist/chunks/RevealToggle-C-KzaQGJ.js +65 -0
- package/dist/chunks/StepConnector-37OgEOXA.js +41 -0
- package/dist/chunks/TourCard-BXuVHsfn.js +123 -0
- package/dist/chunks/backdrop-Dkf2vM81.js +59 -0
- package/dist/chunks/{icons-DVhZ_plB.js → icons-4IywzkHk.js} +1 -1
- package/dist/chunks/{useTheme-2qHG8NEU.js → useTheme-BOV_-AiY.js} +9 -65
- package/dist/component-names.d.ts +1 -1
- package/dist/components/AttentionDot.vue.d.ts +9 -0
- package/dist/components/AttentionDot.vue.js +4 -0
- package/dist/components/ContextMenuItems.vue.js +1 -1
- package/dist/components/DropzoneLinkField.vue.js +1 -1
- package/dist/components/FieldWrapper.vue.d.ts +25 -0
- package/dist/components/FieldWrapper.vue.js +4 -0
- package/dist/components/LayoutCanvas.vue.js +1 -1
- package/dist/components/LayoutNode.vue.d.ts +4 -4
- package/dist/components/LayoutNode.vue.js +1 -1
- package/dist/components/LegendSwatch.vue.d.ts +6 -0
- package/dist/components/LegendSwatch.vue.js +4 -0
- package/dist/components/LoaderMark.vue.d.ts +12 -0
- package/dist/components/LoaderMark.vue.js +4 -0
- package/dist/components/LpActionBar.vue.js +1 -1
- package/dist/components/LpActivityLine.vue.d.ts +58 -0
- package/dist/components/LpActivityLine.vue.js +4 -0
- package/dist/components/LpAddressInput.vue.js +1 -1
- package/dist/components/LpAlert.vue.d.ts +2 -2
- package/dist/components/LpAlert.vue.js +1 -1
- package/dist/components/LpAppShell.vue.d.ts +8 -7
- package/dist/components/LpAppShell.vue.js +1 -1
- package/dist/components/LpAutocomplete.vue.js +1 -1
- package/dist/components/LpAvatar.vue.d.ts +16 -0
- package/dist/components/LpAvatar.vue.js +1 -1
- package/dist/components/LpBadge.vue.d.ts +19 -5
- package/dist/components/LpBadge.vue.js +1 -1
- package/dist/components/LpBreadcrumbs.vue.js +1 -1
- package/dist/components/LpButton.vue.d.ts +2 -2
- package/dist/components/LpButton.vue.js +1 -1
- package/dist/components/LpCalendar.vue.js +1 -1
- package/dist/components/LpCard.vue.d.ts +24 -0
- package/dist/components/LpCard.vue.js +1 -1
- package/dist/components/LpChart.vue.js +107 -138
- package/dist/components/LpCheckbox.vue.d.ts +2 -2
- package/dist/components/LpCheckbox.vue.js +1 -1
- package/dist/components/LpCodeBlock.vue.js +1 -1
- package/dist/components/LpCodeDisplay.vue.d.ts +89 -0
- package/dist/components/LpCodeDisplay.vue.js +4 -0
- package/dist/components/LpCollapse.vue.d.ts +58 -0
- package/dist/components/LpCollapse.vue.js +4 -0
- package/dist/components/LpColorPicker.vue.d.ts +2 -2
- package/dist/components/LpColorPicker.vue.js +1 -1
- package/dist/components/LpCommandPalette.vue.js +34 -23
- 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/LpCopyButton.vue.d.ts +82 -0
- package/dist/components/LpCopyButton.vue.js +4 -0
- package/dist/components/LpCountdown.vue.d.ts +100 -0
- package/dist/components/LpCountdown.vue.js +4 -0
- package/dist/components/LpDataList.vue.d.ts +66 -0
- package/dist/components/LpDataList.vue.js +4 -0
- package/dist/components/LpDatePicker.vue.d.ts +1 -1
- package/dist/components/LpDatePicker.vue.js +1 -1
- package/dist/components/LpDateRangePicker.vue.d.ts +1 -1
- package/dist/components/LpDateRangePicker.vue.js +1 -1
- package/dist/components/LpDisclosure.vue.js +1 -1
- package/dist/components/LpDock.vue.d.ts +74 -0
- package/dist/components/LpDock.vue.js +204 -0
- package/dist/components/LpDrawer.vue.js +1 -1
- package/dist/components/LpDropdownMenu.vue.js +1 -1
- package/dist/components/LpDropzone.vue.d.ts +8 -1
- package/dist/components/LpDropzone.vue.js +36 -15
- package/dist/components/LpEditable.vue.d.ts +85 -0
- package/dist/components/LpEditable.vue.js +4 -0
- package/dist/components/LpEmptyState.vue.js +1 -1
- package/dist/components/LpFieldNotice.vue.js +1 -1
- package/dist/components/LpFileTree.vue.js +1 -1
- package/dist/components/LpFileTreeNode.vue.js +1 -1
- package/dist/components/LpFormField.vue.js +1 -1
- package/dist/components/LpFrame.vue.d.ts +22 -0
- package/dist/components/LpFrame.vue.js +4 -0
- package/dist/components/LpGauge.vue.d.ts +116 -0
- package/dist/components/LpGauge.vue.js +4 -0
- package/dist/components/LpGlowBorder.vue.d.ts +47 -0
- package/dist/components/LpGlowBorder.vue.js +4 -0
- package/dist/components/LpHintExample.vue.d.ts +2 -2
- 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.d.ts +60 -0
- package/dist/components/LpHoverCard.vue.js +4 -0
- package/dist/components/LpIcon.vue.js +1 -1
- package/dist/components/LpIdenticon.vue.d.ts +37 -0
- package/dist/components/LpIdenticon.vue.js +4 -0
- package/dist/components/LpImageEditor.vue.js +13 -19
- package/dist/components/LpInfraNode.vue.js +1 -1
- package/dist/components/LpInput.vue.d.ts +10 -0
- package/dist/components/LpInput.vue.js +1 -1
- package/dist/components/LpLightbox.vue.js +1 -1
- package/dist/components/LpLoader.vue.d.ts +106 -0
- package/dist/components/LpLoader.vue.js +4 -0
- package/dist/components/LpLogViewer.vue.js +1 -1
- package/dist/components/LpMagnetic.vue.d.ts +28 -0
- package/dist/components/LpMagnetic.vue.js +4 -0
- package/dist/components/LpMapPicker.vue.js +1 -1
- package/dist/components/LpMasonry.vue.d.ts +42 -0
- package/dist/components/LpMasonry.vue.js +4 -0
- package/dist/components/LpMediaGallery.vue.js +1 -1
- package/dist/components/LpModal.vue.js +1 -1
- package/dist/components/LpModalNav.vue.js +1 -1
- package/dist/components/LpNotificationBell.vue.d.ts +15 -6
- package/dist/components/LpNotificationBell.vue.js +1 -1
- package/dist/components/LpNumberField.vue.d.ts +57 -0
- package/dist/components/LpNumberField.vue.js +1 -1
- package/dist/components/LpNumberFlow.vue.js +1 -1
- package/dist/components/LpOtpInput.vue.d.ts +12 -4
- 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/LpPalettePreview.vue.js +1 -1
- package/dist/components/LpPaletteStats.vue.js +1 -1
- package/dist/components/LpPasswordInput.vue.d.ts +12 -1
- package/dist/components/LpPasswordInput.vue.js +1 -1
- package/dist/components/LpPhoneInput.vue.js +1 -1
- package/dist/components/LpPie.vue.d.ts +3 -1
- package/dist/components/LpPie.vue.js +1 -1
- package/dist/components/LpPipeline.vue.d.ts +91 -0
- package/dist/components/LpPipeline.vue.js +4 -0
- package/dist/components/LpPopover.vue.d.ts +2 -2
- package/dist/components/LpPopover.vue.js +1 -1
- package/dist/components/LpProgress.vue.d.ts +11 -4
- package/dist/components/LpProgress.vue.js +1 -1
- package/dist/components/LpQuota.vue.d.ts +68 -0
- package/dist/components/LpQuota.vue.js +4 -0
- 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.d.ts +41 -0
- package/dist/components/LpRelativeTime.vue.js +4 -0
- package/dist/components/LpRepeater.vue.d.ts +48 -0
- package/dist/components/LpRepeater.vue.js +4 -0
- package/dist/components/LpRevealOnScroll.vue.d.ts +67 -0
- package/dist/components/LpRevealOnScroll.vue.js +4 -0
- package/dist/components/LpRollingText.vue.d.ts +1 -1
- package/dist/components/LpScramble.vue.d.ts +55 -0
- package/dist/components/LpScramble.vue.js +4 -0
- package/dist/components/LpScrollArea.vue.d.ts +1 -1
- package/dist/components/LpSecretField.vue.d.ts +108 -0
- package/dist/components/LpSecretField.vue.js +4 -0
- package/dist/components/LpSection.vue.js +1 -1
- package/dist/components/LpSegmented.vue.js +1 -1
- package/dist/components/LpSelect.vue.d.ts +2 -0
- package/dist/components/LpSelect.vue.js +1 -1
- package/dist/components/LpShaderBackdrop.vue.d.ts +39 -0
- package/dist/components/LpShaderBackdrop.vue.js +4 -0
- package/dist/components/LpShinyText.vue.d.ts +39 -0
- package/dist/components/LpShinyText.vue.js +4 -0
- package/dist/components/LpShortcutsDialog.vue.js +1 -1
- package/dist/components/LpSidebar.vue.js +1 -1
- package/dist/components/LpSidebarNav.vue.js +1 -1
- package/dist/components/LpSlider.vue.js +1 -1
- package/dist/components/LpSparkline.vue.d.ts +4 -3
- package/dist/components/LpSparkline.vue.js +1 -1
- package/dist/components/LpSpotlight.vue.d.ts +37 -0
- package/dist/components/LpSpotlight.vue.js +4 -0
- package/dist/components/LpStat.vue.js +1 -1
- package/dist/components/LpStatus.vue.d.ts +65 -0
- package/dist/components/LpStatus.vue.js +4 -0
- package/dist/components/LpStepMark.vue.d.ts +31 -0
- package/dist/components/LpStepMark.vue.js +4 -0
- package/dist/components/LpStepper.vue.js +1 -1
- package/dist/components/LpSwap.vue.js +1 -1
- package/dist/components/LpSwitch.vue.d.ts +2 -2
- package/dist/components/LpSwitch.vue.js +1 -1
- package/dist/components/LpTable.vue.js +104 -120
- package/dist/components/LpTableFilter.vue.js +1 -1
- package/dist/components/LpTableOfContents.vue.d.ts +6 -1
- package/dist/components/LpTableOfContents.vue.js +1 -1
- package/dist/components/LpTabs.vue.d.ts +5 -5
- package/dist/components/LpTabs.vue.js +25 -33
- package/dist/components/LpTagsInput.vue.js +1 -1
- package/dist/components/LpTextReveal.vue.d.ts +58 -0
- package/dist/components/LpTextReveal.vue.js +4 -0
- package/dist/components/LpTextarea.vue.js +1 -1
- package/dist/components/LpThemeProvider.vue.js +1 -1
- package/dist/components/LpThemeStudio.vue.d.ts +54 -0
- package/dist/components/LpThemeStudio.vue.js +4 -0
- package/dist/components/LpThemeStudioSection.vue.d.ts +16 -0
- package/dist/components/LpThemeStudioSection.vue.js +4 -0
- package/dist/components/LpThemeSwitcher.vue.d.ts +32 -1
- package/dist/components/LpThemeSwitcher.vue.js +1 -1
- package/dist/components/LpTimeField.vue.d.ts +2 -0
- package/dist/components/LpTimeField.vue.js +1 -1
- package/dist/components/LpToaster.vue.js +1 -1
- package/dist/components/LpTooltip.vue.d.ts +2 -2
- package/dist/components/LpTooltip.vue.js +1 -1
- package/dist/components/LpTopologyCanvas.vue.js +1 -1
- package/dist/components/LpTour.vue.js +1 -1
- package/dist/components/LpTruncate.vue.d.ts +34 -0
- package/dist/components/LpTruncate.vue.js +4 -0
- package/dist/components/LpTypewriter.vue.d.ts +61 -0
- package/dist/components/LpTypewriter.vue.js +4 -0
- package/dist/components/LpUptimeBar.vue.js +1 -1
- package/dist/components/LpVideoBackdrop.vue.js +1 -1
- package/dist/components/MenuTitle.vue.js +1 -1
- package/dist/components/OptionContent.vue.d.ts +7 -0
- package/dist/components/OptionContent.vue.js +4 -0
- package/dist/components/PickerField.vue.d.ts +43 -0
- package/dist/components/PickerField.vue.js +4 -0
- package/dist/components/RevealToggle.vue.d.ts +21 -0
- package/dist/components/RevealToggle.vue.js +4 -0
- package/dist/components/StepConnector.vue.d.ts +19 -0
- package/dist/components/StepConnector.vue.js +4 -0
- package/dist/components/TourCard.vue.js +1 -1
- package/dist/components/badge.d.ts +1 -0
- package/dist/components/badge.js +4 -0
- package/dist/components/chart.d.ts +5 -1
- package/dist/components/chart.js +2 -21
- package/dist/components/dateRange.d.ts +11 -0
- package/dist/components/dateRange.js +12 -0
- package/dist/components/dock.d.ts +19 -0
- package/dist/components/dock.js +16 -0
- package/dist/components/dropdown.d.ts +10 -1
- package/dist/components/dropdown.js +7 -2
- package/dist/components/fieldText.d.ts +38 -0
- package/dist/components/fieldText.js +53 -0
- package/dist/components/fileTree.d.ts +7 -3
- package/dist/components/fileTree.js +12 -18
- package/dist/components/format.d.ts +41 -0
- package/dist/components/format.js +67 -0
- package/dist/components/identicon.d.ts +38 -0
- package/dist/components/identicon.js +85 -0
- package/dist/components/masonry.d.ts +32 -0
- package/dist/components/masonry.js +40 -0
- package/dist/components/menuWhen.js +1 -1
- package/dist/components/meter.d.ts +64 -0
- package/dist/components/meter.js +53 -0
- package/dist/components/otp.d.ts +1 -1
- package/dist/components/otp.js +7 -2
- package/dist/components/pipeline.d.ts +55 -0
- package/dist/components/pipeline.js +51 -0
- package/dist/components/quota.d.ts +57 -0
- package/dist/components/quota.js +40 -0
- package/dist/components/relativeTime.d.ts +24 -0
- package/dist/components/relativeTime.js +56 -0
- package/dist/components/reveal.d.ts +18 -0
- package/dist/components/reveal.js +32 -0
- package/dist/components/scramble.d.ts +68 -0
- package/dist/components/scramble.js +58 -0
- package/dist/components/shaderBackdrop.d.ts +20 -0
- package/dist/components/shaderBackdrop.js +156 -0
- package/dist/components/slider.d.ts +5 -0
- package/dist/components/slider.js +24 -0
- package/dist/components/slotText.d.ts +2 -0
- package/dist/components/slotText.js +9 -0
- package/dist/components/status.d.ts +14 -0
- package/dist/components/status.js +22 -0
- package/dist/components/tableFacets.d.ts +8 -0
- package/dist/components/tableFacets.js +19 -0
- package/dist/components/textSplit.d.ts +17 -0
- package/dist/components/textSplit.js +24 -0
- package/dist/components/timeSpan.d.ts +78 -0
- package/dist/components/timeSpan.js +85 -0
- package/dist/components/tone.d.ts +43 -0
- package/dist/components/tone.js +82 -0
- package/dist/components/tour.js +3 -2
- package/dist/components/typewriter.d.ts +36 -0
- package/dist/components/typewriter.js +53 -0
- package/dist/components/videoBackdrop.js +5 -6
- package/dist/composables/easing.d.ts +22 -1
- package/dist/composables/easing.js +42 -1
- package/dist/composables/pseudoLocale.d.ts +15 -0
- package/dist/composables/pseudoLocale.js +96 -0
- package/dist/composables/scroll.js +5 -3
- package/dist/composables/useClipboard.d.ts +4 -1
- package/dist/composables/useClipboard.js +12 -2
- package/dist/composables/useField.d.ts +8 -0
- package/dist/composables/useField.js +5 -0
- package/dist/composables/useForm.js +19 -5
- package/dist/composables/useInView.d.ts +11 -0
- package/dist/composables/useInView.js +39 -0
- package/dist/composables/useLoadingGate.d.ts +8 -0
- package/dist/composables/useLoadingGate.js +38 -0
- package/dist/composables/useLpConfig.d.ts +10 -0
- package/dist/composables/useLpConfig.js +11 -1
- package/dist/composables/useMediaQuery.js +3 -1
- package/dist/composables/useNow.d.ts +16 -0
- package/dist/composables/useNow.js +39 -0
- package/dist/composables/usePersisted.js +14 -7
- package/dist/composables/usePillTransition.d.ts +5 -2
- package/dist/composables/usePillTransition.js +4 -3
- package/dist/composables/usePointerFrame.d.ts +18 -0
- package/dist/composables/usePointerFrame.js +31 -0
- package/dist/composables/useReducedMotion.d.ts +2 -0
- package/dist/composables/useReducedMotion.js +7 -0
- package/dist/composables/useRepeater.d.ts +17 -0
- package/dist/composables/useRepeater.js +31 -0
- package/dist/composables/useResizeObserver.d.ts +8 -0
- package/dist/composables/useResizeObserver.js +33 -0
- package/dist/composables/useRevealedValue.d.ts +31 -0
- package/dist/composables/useRevealedValue.js +26 -0
- package/dist/composables/useScramble.d.ts +42 -0
- package/dist/composables/useScramble.js +76 -0
- package/dist/composables/useShift.js +2 -10
- package/dist/composables/useSpotlight.d.ts +18 -0
- package/dist/composables/useSpotlight.js +53 -0
- package/dist/composables/useTilt.js +26 -18
- package/dist/composables/useTween.d.ts +43 -0
- package/dist/composables/useTween.js +69 -0
- package/dist/composables/useView.d.ts +18 -0
- package/dist/composables/useView.js +61 -0
- package/dist/icons-all.js +1 -1
- package/dist/index.d.ts +98 -1
- package/dist/index.js +262 -104
- package/dist/theme/define.d.ts +12 -0
- package/dist/theme/studio.d.ts +90 -0
- package/package.json +5 -2
- package/src/component-names.ts +33 -0
- package/src/components/AttentionDot.vue +27 -0
- package/src/components/FieldWrapper.vue +38 -0
- package/src/components/LayoutNode.vue +5 -9
- package/src/components/LegendSwatch.vue +15 -0
- package/src/components/LoaderMark.vue +90 -0
- package/src/components/LpActionBar.vue +12 -20
- package/src/components/LpActivityLine.vue +186 -0
- package/src/components/LpAlert.vue +54 -24
- package/src/components/LpAppShell.vue +7 -11
- package/src/components/LpAutocomplete.vue +16 -14
- package/src/components/LpAvatar.vue +17 -2
- package/src/components/LpBadge.vue +77 -13
- package/src/components/LpBreadcrumbs.vue +101 -35
- package/src/components/LpButton.vue +15 -3
- package/src/components/LpCard.vue +30 -7
- package/src/components/LpChart.vue +143 -154
- package/src/components/LpCheckbox.vue +10 -4
- package/src/components/LpCodeBlock.vue +11 -19
- package/src/components/LpCodeDisplay.vue +228 -0
- package/src/components/LpCollapse.vue +162 -0
- package/src/components/LpColorPicker.vue +10 -1
- package/src/components/LpCommandPalette.vue +38 -24
- package/src/components/LpContextMenu.vue +10 -1
- package/src/components/LpCopyButton.vue +185 -0
- package/src/components/LpCountdown.vue +308 -0
- package/src/components/LpDataList.vue +154 -0
- package/src/components/LpDatePicker.vue +53 -104
- package/src/components/LpDateRangePicker.vue +49 -95
- package/src/components/LpDisclosure.vue +58 -36
- package/src/components/LpDock.vue +274 -0
- package/src/components/LpDrawer.vue +10 -1
- package/src/components/LpDropdownMenu.vue +10 -1
- package/src/components/LpDropzone.vue +34 -13
- package/src/components/LpEditable.vue +293 -0
- package/src/components/LpFileTree.vue +5 -1
- package/src/components/LpFileTreeNode.vue +25 -50
- package/src/components/LpFormField.vue +22 -3
- package/src/components/LpFrame.vue +200 -0
- package/src/components/LpGauge.vue +287 -0
- package/src/components/LpGlowBorder.vue +60 -0
- package/src/components/LpHintExample.vue +9 -32
- package/src/components/LpHintLayer.vue +13 -3
- package/src/components/LpHoverCard.vue +175 -0
- package/src/components/LpIdenticon.vue +69 -0
- package/src/components/LpImageEditor.vue +15 -18
- package/src/components/LpInfraNode.vue +27 -16
- package/src/components/LpInput.vue +30 -16
- package/src/components/LpLightbox.vue +44 -23
- package/src/components/LpLoader.vue +145 -0
- package/src/components/LpLogViewer.vue +311 -82
- package/src/components/LpMagnetic.vue +97 -0
- package/src/components/LpMapPicker.vue +26 -28
- package/src/components/LpMasonry.vue +247 -0
- package/src/components/LpModal.vue +10 -1
- package/src/components/LpNotificationBell.vue +33 -49
- package/src/components/LpNumberField.vue +79 -14
- package/src/components/LpNumberFlow.vue +10 -35
- package/src/components/LpOtpInput.vue +7 -2
- package/src/components/LpPagination.vue +38 -4
- package/src/components/LpPalettePreview.vue +2 -7
- package/src/components/LpPasswordInput.vue +16 -14
- package/src/components/LpPhoneInput.vue +12 -3
- package/src/components/LpPie.vue +197 -36
- package/src/components/LpPipeline.vue +366 -0
- package/src/components/LpPopover.vue +10 -1
- package/src/components/LpProgress.vue +22 -84
- package/src/components/LpQuota.vue +197 -0
- package/src/components/LpRangeSlider.vue +5 -1
- package/src/components/LpRelativeTime.vue +90 -0
- package/src/components/LpRepeater.vue +80 -0
- package/src/components/LpRevealOnScroll.vue +125 -0
- package/src/components/LpScramble.vue +107 -0
- package/src/components/LpSecretField.vue +313 -0
- package/src/components/LpSegmented.vue +3 -10
- package/src/components/LpSelect.vue +78 -64
- package/src/components/LpShaderBackdrop.vue +434 -0
- package/src/components/LpShinyText.vue +139 -0
- package/src/components/LpSidebar.vue +2 -0
- package/src/components/LpSlider.vue +5 -1
- package/src/components/LpSparkline.vue +55 -37
- package/src/components/LpSpotlight.vue +51 -0
- package/src/components/LpStat.vue +6 -2
- package/src/components/LpStatus.vue +127 -0
- package/src/components/LpStepMark.vue +138 -0
- package/src/components/LpStepper.vue +37 -43
- package/src/components/LpSwap.vue +2 -2
- package/src/components/LpSwitch.vue +15 -22
- package/src/components/LpTable.vue +47 -63
- package/src/components/LpTableFilter.vue +1 -0
- package/src/components/LpTableOfContents.vue +53 -29
- package/src/components/LpTabs.vue +10 -21
- package/src/components/LpTagsInput.vue +53 -37
- package/src/components/LpTextReveal.vue +236 -0
- package/src/components/LpTextarea.vue +11 -11
- package/src/components/LpThemeStudio.vue +216 -0
- package/src/components/LpThemeStudioSection.vue +16 -0
- package/src/components/LpThemeSwitcher.vue +156 -47
- package/src/components/LpTimeField.vue +9 -1
- package/src/components/LpToaster.vue +63 -83
- package/src/components/LpTooltip.vue +10 -1
- package/src/components/LpTour.vue +24 -13
- package/src/components/LpTruncate.vue +135 -0
- package/src/components/LpTypewriter.vue +236 -0
- package/src/components/LpUptimeBar.vue +6 -5
- package/src/components/LpVideoBackdrop.vue +15 -13
- package/src/components/OptionContent.vue +17 -0
- package/src/components/PickerField.vue +58 -0
- package/src/components/RevealToggle.vue +51 -0
- package/src/components/StepConnector.vue +54 -0
- package/src/components/TourCard.vue +29 -16
- package/src/components/badge.ts +8 -0
- package/src/components/chart.ts +8 -23
- package/src/components/dateRange.ts +25 -0
- package/src/components/dock.ts +31 -0
- package/src/components/dropdown.ts +15 -3
- package/src/components/fieldText.ts +95 -0
- package/src/components/fileTree.ts +19 -21
- package/src/components/format.ts +136 -0
- package/src/components/identicon.ts +160 -0
- package/src/components/masonry.ts +73 -0
- package/src/components/meter.ts +122 -0
- package/src/components/otp.ts +14 -3
- package/src/components/pipeline.ts +101 -0
- package/src/components/quota.ts +111 -0
- package/src/components/relativeTime.ts +118 -0
- package/src/components/reveal.ts +56 -0
- package/src/components/scramble.ts +138 -0
- package/src/components/shaderBackdrop.ts +208 -0
- package/src/components/slider.ts +30 -0
- package/src/components/slotText.ts +13 -0
- package/src/components/status.ts +46 -0
- package/src/components/tableFacets.ts +25 -0
- package/src/components/textSplit.ts +55 -0
- package/src/components/timeSpan.ts +183 -0
- package/src/components/tone.ts +144 -0
- package/src/components/tour.ts +3 -2
- package/src/components/typewriter.ts +104 -0
- package/src/components/videoBackdrop.ts +7 -6
- package/src/composables/easing.ts +66 -1
- package/src/composables/pseudoLocale.ts +105 -0
- package/src/composables/scroll.ts +6 -3
- package/src/composables/useClipboard.ts +25 -3
- package/src/composables/useField.ts +12 -0
- package/src/composables/useForm.ts +27 -6
- package/src/composables/useInView.ts +61 -0
- package/src/composables/useLoadingGate.ts +63 -0
- package/src/composables/useLpConfig.ts +20 -1
- package/src/composables/useMediaQuery.ts +6 -2
- package/src/composables/useNow.ts +84 -0
- package/src/composables/usePersisted.ts +19 -8
- package/src/composables/usePillTransition.ts +21 -13
- package/src/composables/usePointerFrame.ts +72 -0
- package/src/composables/useReducedMotion.ts +22 -0
- package/src/composables/useRepeater.ts +44 -0
- package/src/composables/useResizeObserver.ts +59 -0
- package/src/composables/useRevealedValue.ts +84 -0
- package/src/composables/useScramble.ts +152 -0
- package/src/composables/useShift.ts +10 -16
- package/src/composables/useSpotlight.ts +82 -0
- package/src/composables/useTilt.ts +40 -23
- package/src/composables/useTween.ts +149 -0
- package/src/composables/useView.ts +93 -0
- package/src/index.css +1 -0
- package/src/index.ts +143 -1
- package/src/kit-icons.ts +1 -1
- package/src/theme/define.ts +65 -0
- package/src/theme/studio.ts +202 -0
- package/src/tokens/effects.css +151 -0
- package/src/tokens/tokens.css +131 -39
- package/src/tokens/utilities.css +81 -0
- package/dist/assets/LpTabs-Bk7v4bZz.css +0 -18
- package/dist/chunks/LpAlert-BdvxvcWE.js +0 -85
- package/dist/chunks/LpBadge-Fe0D1bYx.js +0 -62
- package/dist/chunks/LpBreadcrumbs-rzOKkLiI.js +0 -98
- package/dist/chunks/LpDatePicker-BMfM454Y.js +0 -243
- package/dist/chunks/LpDateRangePicker-CNb9X3eL.js +0 -195
- package/dist/chunks/LpNumberField-DO1ufKvE.js +0 -107
- package/dist/chunks/LpStepper-C2slwObu.js +0 -90
- package/dist/chunks/LpSwitch-CZy9_IoA.js +0 -132
- package/dist/chunks/LpThemeSwitcher-CDoziW0z.js +0 -166
- package/dist/chunks/TourCard-BKI7X9-r.js +0 -105
package/dist/theme/define.d.ts
CHANGED
|
@@ -10,3 +10,15 @@ export interface ThemeOverrides {
|
|
|
10
10
|
surface?: Partial<SurfaceTokens>;
|
|
11
11
|
}
|
|
12
12
|
export declare function defineTheme(base: TokenSet | keyof typeof presets, overrides?: ThemeOverrides): TokenSet;
|
|
13
|
+
/**
|
|
14
|
+
* A theme with one brand colour swapped in, and everything that follows from it
|
|
15
|
+
* derived to match: the hover shade, the soft fill behind badges and selections,
|
|
16
|
+
* the focus ring, and the text on a brand button where the theme's own no
|
|
17
|
+
* longer reads. Lets an app offer "pick your colour" without the
|
|
18
|
+
* person picking five shades that agree with each other.
|
|
19
|
+
*
|
|
20
|
+
* applyTheme(withBrand(presets.dark, "#ff5ca8"))
|
|
21
|
+
*
|
|
22
|
+
* A colour it cannot read leaves the theme as it was.
|
|
23
|
+
*/
|
|
24
|
+
export declare function withBrand(base: TokenSet | keyof typeof presets, color: string): TokenSet;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { type ComputedRef, type Ref } from "vue";
|
|
2
|
+
import type { TokenSet } from "./tokens";
|
|
3
|
+
import { type RevealOrigin } from "./useTheme";
|
|
4
|
+
export declare const STUDIO_BRANDS: string[];
|
|
5
|
+
export declare const STUDIO_CORNERS: {
|
|
6
|
+
readonly sharp: {
|
|
7
|
+
readonly radiusControl: 3;
|
|
8
|
+
readonly radiusCard: 6;
|
|
9
|
+
};
|
|
10
|
+
readonly default: {};
|
|
11
|
+
readonly round: {
|
|
12
|
+
readonly radiusControl: 12;
|
|
13
|
+
readonly radiusCard: 22;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export declare const STUDIO_SIZES: {
|
|
17
|
+
readonly compact: {
|
|
18
|
+
readonly controlSm: 28;
|
|
19
|
+
readonly controlMd: 34;
|
|
20
|
+
readonly controlLg: 40;
|
|
21
|
+
};
|
|
22
|
+
readonly default: {};
|
|
23
|
+
readonly comfortable: {
|
|
24
|
+
readonly controlSm: 36;
|
|
25
|
+
readonly controlMd: 42;
|
|
26
|
+
readonly controlLg: 48;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export declare const STUDIO_MOTION: {
|
|
30
|
+
readonly fast: 0.6;
|
|
31
|
+
readonly normal: 1;
|
|
32
|
+
readonly slow: 1.8;
|
|
33
|
+
};
|
|
34
|
+
/** The `theme` of a studio that follows the OS between its `system` pair. */
|
|
35
|
+
export declare const STUDIO_SYSTEM = "system";
|
|
36
|
+
export interface StudioState {
|
|
37
|
+
/** Name of the base theme in the offered list, or STUDIO_SYSTEM. */
|
|
38
|
+
theme: string;
|
|
39
|
+
/** Brand colour over the theme's own; null keeps the theme's. */
|
|
40
|
+
brand: string | null;
|
|
41
|
+
corners: keyof typeof STUDIO_CORNERS;
|
|
42
|
+
size: keyof typeof STUDIO_SIZES;
|
|
43
|
+
motion: keyof typeof STUDIO_MOTION;
|
|
44
|
+
}
|
|
45
|
+
export interface ThemeStudioOptions {
|
|
46
|
+
/** Base themes to offer. Defaults to the kit's presets. */
|
|
47
|
+
themes?: TokenSet[];
|
|
48
|
+
/** Where the tuning is remembered. One state per key is shared by every caller. */
|
|
49
|
+
storageKey?: string;
|
|
50
|
+
/**
|
|
51
|
+
* Offer "System": the base theme follows the OS colour scheme between these
|
|
52
|
+
* two (names from `themes`), with the tuning kept on top of either.
|
|
53
|
+
*/
|
|
54
|
+
system?: {
|
|
55
|
+
light: string;
|
|
56
|
+
dark: string;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export interface ThemeStudio {
|
|
60
|
+
state: Ref<StudioState>;
|
|
61
|
+
themes: ComputedRef<TokenSet[]>;
|
|
62
|
+
/** The light/dark pair "System" follows, when offered. */
|
|
63
|
+
system: ComputedRef<{
|
|
64
|
+
light: TokenSet;
|
|
65
|
+
dark: TokenSet;
|
|
66
|
+
} | null>;
|
|
67
|
+
/** The tuned theme as it is applied. */
|
|
68
|
+
theme: ComputedRef<TokenSet>;
|
|
69
|
+
/** The brand in effect: the picked one, else the base theme's. */
|
|
70
|
+
brand: Ref<string>;
|
|
71
|
+
/** Anything differs from the defaults. */
|
|
72
|
+
changed: ComputedRef<boolean>;
|
|
73
|
+
/** The tuned theme as an app takes it: code that builds it, the stored JSON, a CSS rule. */
|
|
74
|
+
exported: ComputedRef<{
|
|
75
|
+
code: string;
|
|
76
|
+
json: string;
|
|
77
|
+
css: string;
|
|
78
|
+
}>;
|
|
79
|
+
/** Another base theme, revealed from `origin`; brand, corners and size stay. */
|
|
80
|
+
pickTheme(name: string, origin?: RevealOrigin): void;
|
|
81
|
+
/** Change the tuning (not the base theme): applied at once, so a drag follows. */
|
|
82
|
+
tune(patch: Partial<Omit<StudioState, "theme">>): void;
|
|
83
|
+
reset(origin?: RevealOrigin): void;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The studio state for `storageKey`, made on first use and shared after. A
|
|
87
|
+
* later caller's `themes` or `system` fill in what the first one left out:
|
|
88
|
+
* the page may make the studio before the switcher that offers "System".
|
|
89
|
+
*/
|
|
90
|
+
export declare function useThemeStudio(options?: ThemeStudioOptions): ThemeStudio;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leavepulse/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.70.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "LeavePulse token-driven Vue component kit.",
|
|
6
6
|
"repository": {
|
|
@@ -63,7 +63,8 @@
|
|
|
63
63
|
"release:minor": "npm version minor -m \"chore: release v%s\" && git push --follow-tags",
|
|
64
64
|
"release:major": "npm version major -m \"chore: release v%s\" && git push --follow-tags",
|
|
65
65
|
"check:pack": "node scripts/check-pack.mjs",
|
|
66
|
-
"gen:icons": "node scripts/gen-kit-icons.mjs"
|
|
66
|
+
"gen:icons": "node scripts/gen-kit-icons.mjs",
|
|
67
|
+
"gen:meta": "node scripts/gen-preview-meta.mjs"
|
|
67
68
|
},
|
|
68
69
|
"peerDependencies": {
|
|
69
70
|
"@iconify-json/lucide": "^1.2.0",
|
|
@@ -87,6 +88,7 @@
|
|
|
87
88
|
"@tailwindcss/vite": "^4.2.4",
|
|
88
89
|
"@types/node": "^26.2.0",
|
|
89
90
|
"@vitejs/plugin-vue": "^6.0.6",
|
|
91
|
+
"@vue/compiler-dom": "3.5.31",
|
|
90
92
|
"motion-v": "^2.2.1",
|
|
91
93
|
"reka-ui": "^2.9.10",
|
|
92
94
|
"shiki": "^4.2.0",
|
|
@@ -96,6 +98,7 @@
|
|
|
96
98
|
"vite": "^7.0.0",
|
|
97
99
|
"vite-plugin-lib-inject-css": "^2.2.2",
|
|
98
100
|
"vue": "3.5.31",
|
|
101
|
+
"vue-component-meta": "3.3.5",
|
|
99
102
|
"vue-tsc": "^3.0.0"
|
|
100
103
|
},
|
|
101
104
|
"dependencies": {
|
package/src/component-names.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
export const COMPONENT_NAMES = [
|
|
5
5
|
"LayoutCanvas",
|
|
6
6
|
"LpActionBar",
|
|
7
|
+
"LpActivityLine",
|
|
7
8
|
"LpAddressInput",
|
|
8
9
|
"LpAlert",
|
|
9
10
|
"LpAppShell",
|
|
@@ -17,34 +18,49 @@ export const COMPONENT_NAMES = [
|
|
|
17
18
|
"LpChart",
|
|
18
19
|
"LpCheckbox",
|
|
19
20
|
"LpCodeBlock",
|
|
21
|
+
"LpCodeDisplay",
|
|
22
|
+
"LpCollapse",
|
|
20
23
|
"LpColorPicker",
|
|
21
24
|
"LpCommandPalette",
|
|
22
25
|
"LpConfirmDialog",
|
|
23
26
|
"LpConfirmHost",
|
|
24
27
|
"LpContextMenu",
|
|
28
|
+
"LpCopyButton",
|
|
29
|
+
"LpCountdown",
|
|
30
|
+
"LpDataList",
|
|
25
31
|
"LpDatePicker",
|
|
26
32
|
"LpDateRangePicker",
|
|
27
33
|
"LpDisclosure",
|
|
28
34
|
"LpDivider",
|
|
35
|
+
"LpDock",
|
|
29
36
|
"LpDrawer",
|
|
30
37
|
"LpDropdownMenu",
|
|
31
38
|
"LpDropzone",
|
|
39
|
+
"LpEditable",
|
|
32
40
|
"LpEmptyState",
|
|
33
41
|
"LpFieldNotice",
|
|
34
42
|
"LpFileTree",
|
|
35
43
|
"LpFormField",
|
|
44
|
+
"LpFrame",
|
|
45
|
+
"LpGauge",
|
|
46
|
+
"LpGlowBorder",
|
|
36
47
|
"LpHintExample",
|
|
37
48
|
"LpHintLayer",
|
|
38
49
|
"LpHints",
|
|
50
|
+
"LpHoverCard",
|
|
39
51
|
"LpIcon",
|
|
52
|
+
"LpIdenticon",
|
|
40
53
|
"LpImageEditor",
|
|
41
54
|
"LpInfraNode",
|
|
42
55
|
"LpInput",
|
|
43
56
|
"LpKeys",
|
|
44
57
|
"LpLightbox",
|
|
45
58
|
"LpLink",
|
|
59
|
+
"LpLoader",
|
|
46
60
|
"LpLogViewer",
|
|
61
|
+
"LpMagnetic",
|
|
47
62
|
"LpMapPicker",
|
|
63
|
+
"LpMasonry",
|
|
48
64
|
"LpMediaGallery",
|
|
49
65
|
"LpModal",
|
|
50
66
|
"LpModalNav",
|
|
@@ -61,25 +77,37 @@ export const COMPONENT_NAMES = [
|
|
|
61
77
|
"LpPasswordInput",
|
|
62
78
|
"LpPhoneInput",
|
|
63
79
|
"LpPie",
|
|
80
|
+
"LpPipeline",
|
|
64
81
|
"LpPopover",
|
|
65
82
|
"LpProgress",
|
|
83
|
+
"LpQuota",
|
|
66
84
|
"LpRadio",
|
|
67
85
|
"LpRadioGroup",
|
|
68
86
|
"LpRangeCalendar",
|
|
69
87
|
"LpRangeSlider",
|
|
88
|
+
"LpRelativeTime",
|
|
89
|
+
"LpRepeater",
|
|
90
|
+
"LpRevealOnScroll",
|
|
70
91
|
"LpRollingText",
|
|
92
|
+
"LpScramble",
|
|
71
93
|
"LpScrollArea",
|
|
94
|
+
"LpSecretField",
|
|
72
95
|
"LpSection",
|
|
73
96
|
"LpSegmented",
|
|
74
97
|
"LpSelect",
|
|
75
98
|
"LpServiceNode",
|
|
99
|
+
"LpShaderBackdrop",
|
|
76
100
|
"LpShift",
|
|
101
|
+
"LpShinyText",
|
|
77
102
|
"LpShortcutsDialog",
|
|
78
103
|
"LpSidebar",
|
|
79
104
|
"LpSkeleton",
|
|
80
105
|
"LpSlider",
|
|
81
106
|
"LpSparkline",
|
|
107
|
+
"LpSpotlight",
|
|
82
108
|
"LpStat",
|
|
109
|
+
"LpStatus",
|
|
110
|
+
"LpStepMark",
|
|
83
111
|
"LpStepper",
|
|
84
112
|
"LpSwap",
|
|
85
113
|
"LpSwitch",
|
|
@@ -87,8 +115,11 @@ export const COMPONENT_NAMES = [
|
|
|
87
115
|
"LpTableOfContents",
|
|
88
116
|
"LpTabs",
|
|
89
117
|
"LpTagsInput",
|
|
118
|
+
"LpTextReveal",
|
|
90
119
|
"LpTextarea",
|
|
91
120
|
"LpThemeProvider",
|
|
121
|
+
"LpThemeStudio",
|
|
122
|
+
"LpThemeStudioSection",
|
|
92
123
|
"LpThemeSwitcher",
|
|
93
124
|
"LpTilt",
|
|
94
125
|
"LpTimeField",
|
|
@@ -97,6 +128,8 @@ export const COMPONENT_NAMES = [
|
|
|
97
128
|
"LpTooltipProvider",
|
|
98
129
|
"LpTopologyCanvas",
|
|
99
130
|
"LpTour",
|
|
131
|
+
"LpTruncate",
|
|
132
|
+
"LpTypewriter",
|
|
100
133
|
"LpUptimeBar",
|
|
101
134
|
"LpVideoBackdrop"
|
|
102
135
|
] as const
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
// The caller's `class` is merged into the dot's own rather than appended.
|
|
3
|
+
export default { inheritAttrs: false }
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<script setup lang="ts">
|
|
7
|
+
/*
|
|
8
|
+
* The small dot on a tab or a segment that says "something behind this wants
|
|
9
|
+
* a look". Internal: LpTabs and LpSegmented both draw it, on the icon's corner
|
|
10
|
+
* when there is an icon to sit on, otherwise after the label. Decorative; the
|
|
11
|
+
* thing it marks says why in its own words.
|
|
12
|
+
*/
|
|
13
|
+
import { useMergedAttrs } from "../composables/useMergedClass"
|
|
14
|
+
|
|
15
|
+
const props = defineProps<{
|
|
16
|
+
/** On the corner of the icon it rides on (the icon's box is `relative`), rather than after the label. */
|
|
17
|
+
corner?: boolean
|
|
18
|
+
}>()
|
|
19
|
+
|
|
20
|
+
const { class: dotClass, attrs: rest } = useMergedAttrs(() =>
|
|
21
|
+
`rounded-full bg-accent ${props.corner ? "absolute -right-1 -top-0.5 size-2" : "relative z-10 size-1.5 self-start"}`,
|
|
22
|
+
)
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<template>
|
|
26
|
+
<span aria-hidden="true" :class="dotClass" v-bind="rest" />
|
|
27
|
+
</template>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ref, useAttrs } from "vue"
|
|
3
|
+
import type { FieldNoticeOptions } from "../composables/useFieldNotice"
|
|
4
|
+
import LpFormField from "./LpFormField.vue"
|
|
5
|
+
|
|
6
|
+
defineOptions({ inheritAttrs: false })
|
|
7
|
+
defineProps<{
|
|
8
|
+
wrapped: boolean
|
|
9
|
+
id?: string
|
|
10
|
+
label?: string
|
|
11
|
+
hint?: string
|
|
12
|
+
error?: string
|
|
13
|
+
required?: boolean
|
|
14
|
+
}>()
|
|
15
|
+
|
|
16
|
+
const attrs = useAttrs()
|
|
17
|
+
const field = ref<InstanceType<typeof LpFormField> | null>(null)
|
|
18
|
+
defineExpose({
|
|
19
|
+
notify: (text: string, options?: FieldNoticeOptions) => field.value?.notify?.(text, options),
|
|
20
|
+
clearNotice: () => field.value?.clearNotice?.(),
|
|
21
|
+
})
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
<template>
|
|
25
|
+
<component
|
|
26
|
+
:is="wrapped ? LpFormField : 'div'"
|
|
27
|
+
ref="field"
|
|
28
|
+
:id="wrapped ? id : undefined"
|
|
29
|
+
:label="wrapped ? label : undefined"
|
|
30
|
+
:hint="wrapped ? hint : undefined"
|
|
31
|
+
:error="wrapped ? error : undefined"
|
|
32
|
+
:required="wrapped ? required : undefined"
|
|
33
|
+
:class="wrapped ? attrs.class : 'contents'"
|
|
34
|
+
:style="wrapped ? attrs.style : undefined"
|
|
35
|
+
>
|
|
36
|
+
<slot />
|
|
37
|
+
</component>
|
|
38
|
+
</template>
|
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { Motion
|
|
2
|
+
import { Motion } from "motion-v"
|
|
3
3
|
import { computed, onBeforeUnmount, ref } from "vue"
|
|
4
|
+
import { usePillTransition } from "../composables/usePillTransition"
|
|
4
5
|
import type { LayoutNode, Leaf, Side, Split } from "../layout/tree"
|
|
5
6
|
import type { BlockRegistry } from "../layout/registry"
|
|
6
7
|
import { blockTitle } from "../layout/registry"
|
|
7
8
|
import LpIcon from "./LpIcon.vue"
|
|
8
9
|
|
|
9
|
-
//
|
|
10
|
-
// motion-v does not apply on its own.
|
|
11
|
-
const
|
|
12
|
-
const layoutTransition = computed(() =>
|
|
13
|
-
reduceMotion.value
|
|
14
|
-
? { duration: 0 }
|
|
15
|
-
: { type: "spring" as const, stiffness: 520, damping: 42, mass: 0.9 },
|
|
16
|
-
)
|
|
10
|
+
// The kit's layout spring, the same as LpTabs' panel height; instant under
|
|
11
|
+
// reduced motion, which motion-v does not apply on its own.
|
|
12
|
+
const layoutTransition = usePillTransition("layout")
|
|
17
13
|
|
|
18
14
|
const props = defineProps<{
|
|
19
15
|
node: LayoutNode
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
/*
|
|
3
|
+
* A series' colour in a chart legend: a dot that swells while its legend
|
|
4
|
+
* entry (the nearest `group`) is hovered. Internal; LpChart and LpPie draw
|
|
5
|
+
* their legends with it so the two keep reading as one family.
|
|
6
|
+
*/
|
|
7
|
+
defineProps<{ color: string }>()
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<span
|
|
12
|
+
class="size-2 shrink-0 rounded-full transition-transform duration-fast group-hover:scale-125"
|
|
13
|
+
:style="{ backgroundColor: color }"
|
|
14
|
+
/>
|
|
15
|
+
</template>
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
/*
|
|
3
|
+
* The drawing inside LpLoader: one of the three indicators plus its text.
|
|
4
|
+
* Internal — it exists so LpLoader can show the same mark on its own and as a
|
|
5
|
+
* placeholder swapped with content without writing it out twice. Its root
|
|
6
|
+
* takes the class and attributes LpLoader merged for it.
|
|
7
|
+
*/
|
|
8
|
+
import type { LoaderSize, LoaderVariant } from "./LpLoader.vue"
|
|
9
|
+
|
|
10
|
+
defineProps<{
|
|
11
|
+
variant: LoaderVariant
|
|
12
|
+
size: LoaderSize
|
|
13
|
+
track: boolean
|
|
14
|
+
label?: string
|
|
15
|
+
/** What a screen reader hears when there is no visible label. */
|
|
16
|
+
spoken: string
|
|
17
|
+
}>()
|
|
18
|
+
|
|
19
|
+
const SPINNER = { inline: "size-[1em]", sm: "size-3.5", md: "size-5", lg: "size-8" }
|
|
20
|
+
const DOT = { inline: "size-[0.25em]", sm: "size-1.5", md: "size-2", lg: "size-2.5" }
|
|
21
|
+
const BAR = { inline: "h-[0.2em]", sm: "h-0.5", md: "h-[3px]", lg: "h-1" }
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
<template>
|
|
25
|
+
<span role="status">
|
|
26
|
+
<template v-if="variant === 'bar'">
|
|
27
|
+
<span v-if="label" class="text-xs text-muted">{{ label }}</span>
|
|
28
|
+
<span class="lp-loader-bar relative block w-full overflow-hidden rounded-pill bg-current/15" :class="BAR[size]" aria-hidden="true">
|
|
29
|
+
<span class="lp-sweep absolute inset-y-0 left-0 w-2/5 rounded-pill bg-current" />
|
|
30
|
+
</span>
|
|
31
|
+
</template>
|
|
32
|
+
<template v-else>
|
|
33
|
+
<svg v-if="variant === 'spinner'" viewBox="0 0 24 24" fill="none" class="lp-loader-spin shrink-0" :class="SPINNER[size]" aria-hidden="true">
|
|
34
|
+
<circle v-if="track" cx="12" cy="12" r="9" stroke="currentColor" stroke-width="2" opacity="0.2" />
|
|
35
|
+
<path d="M21 12a9 9 0 1 1-6.219-8.56" stroke="currentColor" stroke-width="2" stroke-linecap="round" />
|
|
36
|
+
</svg>
|
|
37
|
+
<span v-else class="inline-flex shrink-0 items-center gap-[0.3em]" aria-hidden="true">
|
|
38
|
+
<span
|
|
39
|
+
v-for="i in 3"
|
|
40
|
+
:key="i"
|
|
41
|
+
class="lp-loader-dot rounded-full bg-current"
|
|
42
|
+
:class="DOT[size]"
|
|
43
|
+
:style="{ animationDelay: `${(i - 1) * 160}ms` }"
|
|
44
|
+
/>
|
|
45
|
+
</span>
|
|
46
|
+
<span v-if="label" class="text-sm text-muted">{{ label }}</span>
|
|
47
|
+
</template>
|
|
48
|
+
<span v-if="!label" class="sr-only">{{ spoken }}</span>
|
|
49
|
+
</span>
|
|
50
|
+
</template>
|
|
51
|
+
|
|
52
|
+
<style>
|
|
53
|
+
/*
|
|
54
|
+
* Unscoped, namespaced under lp-loader: the keyframes are named in the
|
|
55
|
+
* elements' own `animation`, which a scoped stylesheet would rename.
|
|
56
|
+
*/
|
|
57
|
+
.lp-loader-spin {
|
|
58
|
+
animation: lp-loader-spin 0.8s linear infinite;
|
|
59
|
+
}
|
|
60
|
+
@keyframes lp-loader-spin {
|
|
61
|
+
to { transform: rotate(360deg); }
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/* Each dot swells and brightens in turn: a wave that reads as "still going". */
|
|
65
|
+
.lp-loader-dot {
|
|
66
|
+
animation: lp-loader-dot 0.96s var(--ease-emphasized, ease-in-out) infinite both;
|
|
67
|
+
}
|
|
68
|
+
@keyframes lp-loader-dot {
|
|
69
|
+
0%, 80%, 100% { transform: scale(0.6); opacity: 0.35; }
|
|
70
|
+
40% { transform: scale(1); opacity: 1; }
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* The bar's run is the kit's sweep (.lp-sweep in tokens.css), the same one
|
|
74
|
+
LpActivityLine draws: it enters past one edge and leaves past the other,
|
|
75
|
+
so the bar never sits still and never looks full. */
|
|
76
|
+
|
|
77
|
+
@media (prefers-reduced-motion: reduce) {
|
|
78
|
+
.lp-loader-spin,
|
|
79
|
+
.lp-loader-dot,
|
|
80
|
+
.lp-loader-bar {
|
|
81
|
+
animation: lp-loader-breathe 1.6s ease-in-out infinite;
|
|
82
|
+
transform: none;
|
|
83
|
+
}
|
|
84
|
+
.lp-loader-dot { opacity: 1; }
|
|
85
|
+
@keyframes lp-loader-breathe {
|
|
86
|
+
0%, 100% { opacity: 1; }
|
|
87
|
+
50% { opacity: 0.4; }
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
</style>
|
|
@@ -20,12 +20,15 @@
|
|
|
20
20
|
* name rather than `alertdialog` — it is a landmark you can Tab into, not a
|
|
21
21
|
* thing demanding an answer before anything else can happen.
|
|
22
22
|
*/
|
|
23
|
-
import { computed,
|
|
23
|
+
import { computed, ref, useSlots, watch } from "vue"
|
|
24
24
|
import { useLabels } from "../composables/useLpConfig"
|
|
25
25
|
import { useBarStack } from "./actionBar"
|
|
26
26
|
import { CLOSE_ICON } from "./dropdown"
|
|
27
27
|
import LpButton from "./LpButton.vue"
|
|
28
28
|
import LpIcon from "./LpIcon.vue"
|
|
29
|
+
import LpLoader from "./LpLoader.vue"
|
|
30
|
+
import { usePortalTarget } from "../composables/useView"
|
|
31
|
+
import { useResizeObserver } from "../composables/useResizeObserver"
|
|
29
32
|
|
|
30
33
|
export interface ActionBarAction {
|
|
31
34
|
label: string
|
|
@@ -170,8 +173,6 @@ const stackOffset = computed(() => {
|
|
|
170
173
|
* rotation, or content swapped while the bar is up, changes it, and the bars
|
|
171
174
|
* above would overlap this one.
|
|
172
175
|
*/
|
|
173
|
-
let observer: ResizeObserver | null = null
|
|
174
|
-
|
|
175
176
|
watch(
|
|
176
177
|
() => props.open,
|
|
177
178
|
(isOpen) => {
|
|
@@ -187,17 +188,10 @@ watch(
|
|
|
187
188
|
{ immediate: true },
|
|
188
189
|
)
|
|
189
190
|
|
|
190
|
-
|
|
191
|
-
observer?.disconnect()
|
|
192
|
-
observer = null
|
|
193
|
-
if (!el) return
|
|
194
|
-
setHeight(el.getBoundingClientRect().height)
|
|
195
|
-
if (typeof ResizeObserver === "undefined") return
|
|
196
|
-
observer = new ResizeObserver(() => setHeight(el.getBoundingClientRect().height))
|
|
197
|
-
observer.observe(el)
|
|
198
|
-
})
|
|
191
|
+
useResizeObserver(root, (_, el) => setHeight(el.getBoundingClientRect().height), { immediate: true })
|
|
199
192
|
|
|
200
|
-
|
|
193
|
+
// Overlays open in the window this component renders in (an LpFrame's, inside one).
|
|
194
|
+
const portalTo = usePortalTarget()
|
|
201
195
|
</script>
|
|
202
196
|
|
|
203
197
|
<template>
|
|
@@ -207,7 +201,7 @@ onBeforeUnmount(() => observer?.disconnect())
|
|
|
207
201
|
ancestor instead, and the kit is full of such ancestors (any panel with a
|
|
208
202
|
blur). Declaring it next to the form it belongs to should not decide
|
|
209
203
|
where on screen it lands. -->
|
|
210
|
-
<Teleport to="
|
|
204
|
+
<Teleport :to="portalTo">
|
|
211
205
|
<!-- `forwards` on the way out, because the leave animation finishing is not
|
|
212
206
|
the same moment as the element leaving. `rise-out` is a bare `to {}`, so
|
|
213
207
|
once it ends the element snaps back to opacity 1 at its resting
|
|
@@ -280,12 +274,10 @@ onBeforeUnmount(() => observer?.disconnect())
|
|
|
280
274
|
:hotkey="action.hotkey"
|
|
281
275
|
@click="run(action)"
|
|
282
276
|
>
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
class="animate-spin"
|
|
288
|
-
/>
|
|
277
|
+
<!-- At once: it takes the icon's place, which a delay would
|
|
278
|
+
leave empty. Left announced, since nothing else tells a
|
|
279
|
+
screen reader the action is under way. -->
|
|
280
|
+
<LpLoader v-if="action.loading" size="inline" :delay="0" class="text-[15px]" />
|
|
289
281
|
<LpIcon v-else-if="action.icon" :name="action.icon" :size="15" />
|
|
290
282
|
{{ action.label }}
|
|
291
283
|
</LpButton>
|