@leavepulse/ui 0.70.1 → 0.71.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 +91 -0
- package/dist/assets/{LpCommandPalette-u-zOxKWa.css → LpCommandPalette-DgPZX0us.css} +24 -17
- package/dist/assets/{LpPaletteFacts-B9FdVmIO.css → LpPaletteFacts-CVNh5ICn.css} +16 -16
- package/dist/assets/{LpPaletteStats-ClE-37MK.css → LpPaletteStats-ZiZmR6vz.css} +5 -5
- package/dist/assets/{LpTable-DHxEQ_-3.css → LpTable-DHvorDiU.css} +19 -19
- package/dist/assets/LpTabs-CO3EcsNV.css +18 -0
- package/dist/chunks/{ContextMenuItems-6kxEivBI.js → ContextMenuItems-eS7qx9gD.js} +1 -1
- package/dist/chunks/{DropzoneLinkField-Bw8Flkhk.js → DropzoneLinkField-DkFhdfEJ.js} +2 -2
- package/dist/chunks/{FieldWrapper-BiennROB.js → FieldWrapper-YzbvvC3M.js} +1 -1
- package/dist/chunks/{LayoutCanvas-BsJIzhdd.js → LayoutCanvas-Ba4A9QC5.js} +1 -1
- package/dist/chunks/{LayoutNode-DJVhkSGk.js → LayoutNode-CTTTLMDM.js} +1 -1
- package/dist/chunks/{LpActionBar-CzOFar5t.js → LpActionBar-B7anGlkI.js} +2 -2
- package/dist/chunks/{LpAddressInput-Chv_Xf8q.js → LpAddressInput-CD0bzrt-.js} +7 -7
- package/dist/chunks/{LpAlert-C5igj802.js → LpAlert-BHi7ARqu.js} +1 -1
- package/dist/chunks/{LpAppShell-BiWByLmt.js → LpAppShell-1RmBp6xQ.js} +3 -3
- package/dist/chunks/{LpAutocomplete-D92niDHE.js → LpAutocomplete-DDqe2M5g.js} +5 -2
- package/dist/chunks/{LpAvatar-CLPl-qOF.js → LpAvatar-DqfKCIdr.js} +1 -1
- package/dist/chunks/{LpBadge-BBq1Er9T.js → LpBadge-C8fKEmTF.js} +1 -1
- package/dist/chunks/{LpBreadcrumbs-JKEi_yFF.js → LpBreadcrumbs-DhcoStFa.js} +1 -1
- package/dist/chunks/{LpButton-CVxBfGjd.js → LpButton-BQDAFXBd.js} +3 -0
- package/dist/chunks/{LpCalendar-pVL91-Pl.js → LpCalendar-NmrA47J9.js} +1 -1
- package/dist/chunks/{LpCheckbox-DHc2bHDe.js → LpCheckbox-BoOuLnGB.js} +5 -2
- package/dist/chunks/{LpCodeBlock-BGsQhxw8.js → LpCodeBlock-Czu-fq1M.js} +2 -2
- package/dist/chunks/{LpCodeDisplay-CbJMs-IK.js → LpCodeDisplay-BK2FHbtM.js} +5 -5
- package/dist/chunks/{LpColorPicker-B7HSIFmn.js → LpColorPicker-Ee1DZiRd.js} +2 -2
- package/dist/chunks/LpCommandScope-ubtWDMa0.js +53 -0
- package/dist/chunks/{LpConfirmDialog-CfGCux8m.js → LpConfirmDialog-i15pulMT.js} +3 -3
- package/dist/chunks/{LpConfirmHost-exB7JmcO.js → LpConfirmHost-D0oGavtd.js} +1 -1
- package/dist/chunks/{LpContextMenu-Cj96ENDC.js → LpContextMenu-DXpFJjlO.js} +13 -3
- package/dist/chunks/{LpCopyButton-DzHjnFs0.js → LpCopyButton-Dmq7DmFw.js} +3 -3
- package/dist/chunks/{LpCountdown-BQnmB4gq.js → LpCountdown-DTdMF8DL.js} +1 -1
- package/dist/chunks/{LpDataList-CHNYQw7h.js → LpDataList-CFPtSsBB.js} +3 -3
- package/dist/chunks/{LpDatePicker-ac1_6o5P.js → LpDatePicker-cC9K-Pk8.js} +4 -4
- package/dist/chunks/{LpDateRangePicker-B15gYrZJ.js → LpDateRangePicker-BVQKPbvo.js} +2 -2
- package/dist/chunks/{LpDisclosure-DOarzlAG.js → LpDisclosure-hRnX3FWL.js} +4 -1
- package/dist/chunks/{LpDrawer-DGNKRsGq.js → LpDrawer-u4rxnuR-.js} +1 -1
- package/dist/chunks/{LpDropdownMenu-R4aYVtVV.js → LpDropdownMenu-BgZ0Z_Im.js} +13 -3
- package/dist/chunks/{LpEditable-Ws3DNQHn.js → LpEditable-CjxuOVh_.js} +2 -2
- package/dist/chunks/{LpEmptyState-KTKipws2.js → LpEmptyState-CKFTtQgJ.js} +1 -1
- package/dist/chunks/{LpFieldNotice-CurbNuXI.js → LpFieldNotice-CPI8EwtU.js} +1 -1
- package/dist/chunks/{LpFileTree-DDNg34tJ.js → LpFileTree-BH0gNlSJ.js} +2 -2
- package/dist/chunks/{LpFileTreeNode-DmPuYNZ_.js → LpFileTreeNode-gPVB1oXM.js} +4 -4
- package/dist/chunks/{LpFormField-BWwgm1E4.js → LpFormField-gRASfyj2.js} +4 -1
- package/dist/chunks/{LpGauge-C14Z9503.js → LpGauge-BdjPGnqw.js} +1 -1
- package/dist/chunks/{LpHintLayer-HvwUA5Ec.js → LpHintLayer-C2asBIfs.js} +2 -2
- package/dist/chunks/{LpHints-DxbPKOzQ.js → LpHints-CNZQ76JV.js} +3 -3
- package/dist/chunks/{LpIcon-HJP5xMz4.js → LpIcon-DkP-9mzK.js} +1 -1
- package/dist/chunks/{LpInfraNode-D64hywJI.js → LpInfraNode-yTh4-5qa.js} +2 -2
- package/dist/chunks/{LpInput-CDuwODJG.js → LpInput-2H-5ILOB.js} +5 -2
- package/dist/chunks/{LpLightbox-XJ0LpTcZ.js → LpLightbox-lAt5uIfx.js} +2 -2
- package/dist/chunks/{LpLogViewer-DKK4ySZl.js → LpLogViewer-x78YfhJf.js} +5 -5
- package/dist/chunks/{LpMapPicker-BtIl7NOM.js → LpMapPicker-Dp5RSCi9.js} +1 -1
- package/dist/chunks/{LpMediaGallery-rmI1DjKN.js → LpMediaGallery-D92oJfY_.js} +3 -3
- package/dist/chunks/{LpModal-eBMt2Fqn.js → LpModal-CpH0bNo7.js} +1 -1
- package/dist/chunks/{LpModalNav-DiyFCHiZ.js → LpModalNav-BH4ANQGJ.js} +4 -4
- package/dist/chunks/{LpNotificationBell-D-WhE5m2.js → LpNotificationBell-BdUQqZhs.js} +6 -6
- package/dist/chunks/{LpNumberField-B9k-h2HE.js → LpNumberField-DZY3Z670.js} +4 -1
- package/dist/chunks/{LpNumberFlow-Cfyh033Q.js → LpNumberFlow-5khYxsfX.js} +6 -3
- package/dist/chunks/{LpPagination-VNCX6pFC.js → LpPagination-DbeACavM.js} +1 -1
- package/dist/chunks/LpPaletteTheme-CqWNRwHE.js +104 -0
- package/dist/chunks/{LpPasswordInput-GL2KOFK8.js → LpPasswordInput-BzAZsf5V.js} +4 -2
- package/dist/chunks/{LpPhoneInput-C60tx1tC.js → LpPhoneInput-BMpd-0QR.js} +2 -2
- package/dist/chunks/{LpPie-BgXZ3xmm.js → LpPie-DdFSTbGE.js} +4 -4
- package/dist/chunks/{LpPipeline-B31h41Mu.js → LpPipeline-zjEM1Lwc.js} +3 -3
- package/dist/chunks/{LpProgress-CE-m5OpD.js → LpProgress-BX33EKkN.js} +1 -1
- package/dist/chunks/{LpQuota-DaL8TgNe.js → LpQuota-DqNv1yjs.js} +2 -2
- package/dist/chunks/{LpRadioGroup-CGBr5nIp.js → LpRadioGroup-CsXeV9Ct.js} +4 -1
- package/dist/chunks/{LpRangeCalendar-c5qj7YcC.js → LpRangeCalendar-l-0nSFmY.js} +1 -1
- package/dist/chunks/{LpRangeSlider-Dv6lNvHY.js → LpRangeSlider-CM-0ZITZ.js} +3 -0
- package/dist/chunks/{LpRelativeTime-yin9uQP7.js → LpRelativeTime-UM8EkfrN.js} +1 -1
- package/dist/chunks/{LpRepeater-D0S7jjwr.js → LpRepeater-OvzByE5L.js} +2 -2
- package/dist/chunks/{LpSecretField-CfWyHv9m.js → LpSecretField-DwQiPOko.js} +9 -7
- package/dist/chunks/{LpSection-BW4xJ-Li.js → LpSection-DcQsieHG.js} +1 -1
- package/dist/chunks/{LpSegmented-BO99Sr4m.js → LpSegmented-D2VST0o3.js} +4 -1
- package/dist/chunks/{LpSelect-C_8cJtj6.js → LpSelect-DYX2-u5A.js} +36 -6
- package/dist/chunks/{LpSidebar-CZRXtvem.js → LpSidebar-D44peKq2.js} +3 -3
- package/dist/chunks/{LpSidebarNav-DBg1U1oW.js → LpSidebarNav--VwkXO_a.js} +3 -3
- package/dist/chunks/{LpSlider-DuoRpOrH.js → LpSlider-DxYoCJJO.js} +3 -0
- package/dist/chunks/{LpStat-DFKlPJgy.js → LpStat-DIsQfbeD.js} +3 -3
- package/dist/chunks/{LpStatus-BsGLrpor.js → LpStatus-BQU1TUsv.js} +1 -1
- package/dist/chunks/{LpStepMark-TrzOioa9.js → LpStepMark-CXa7DJy_.js} +1 -1
- package/dist/chunks/{LpStepper-BbnS5jUr.js → LpStepper-C9RM_yTG.js} +1 -1
- package/dist/chunks/{LpSwitch-DrzKrZZV.js → LpSwitch-bGZxUDSx.js} +3 -0
- package/dist/chunks/{LpTableFilter-DyvHGbOk.js → LpTableFilter-CTZMqFDU.js} +2 -2
- package/dist/chunks/{LpTableOfContents-rYvo8z5T.js → LpTableOfContents-CraicEs4.js} +2 -2
- package/dist/chunks/{LpTagsInput-DZg80W-B.js → LpTagsInput-DrjmrOge.js} +8 -5
- package/dist/chunks/{LpTextarea-DiWjeVoJ.js → LpTextarea-BbYqmG1S.js} +4 -1
- package/dist/chunks/{LpThemeStudio-DxVZMtzN.js → LpThemeStudio-B2nPaG-h.js} +18 -14
- package/dist/chunks/{LpThemeSwitcher-CadVBTBn.js → LpThemeSwitcher-C0A5sg_E.js} +5 -3
- package/dist/chunks/{LpTimeField-BFQVf_PW.js → LpTimeField-DQ8WvPr2.js} +4 -1
- package/dist/chunks/{LpToaster-Wv9ksj4q.js → LpToaster-BTTl_wuy.js} +2 -2
- package/dist/chunks/{LpTooltip-Cz8SQwRt.js → LpTooltip-BcBvIx4z.js} +23 -5
- package/dist/chunks/{LpTopologyCanvas-C17A1XCb.js → LpTopologyCanvas-B0wEvAoq.js} +1 -1
- package/dist/chunks/{LpTour-CY2bFXge.js → LpTour-BgCfNlaW.js} +1 -1
- package/dist/chunks/{LpTruncate-D_5Pfv5B.js → LpTruncate-TcqfkyJM.js} +2 -2
- package/dist/chunks/{LpUptimeBar-Tew1Ykx4.js → LpUptimeBar-DRadGq4Y.js} +136 -47
- package/dist/chunks/{MenuTitle-BjQZX8tQ.js → MenuTitle-Dab3EGOp.js} +1 -1
- package/dist/chunks/{OptionContent-CmYUUeWj.js → OptionContent-DPzNsybd.js} +1 -1
- package/dist/chunks/PalettePreviewBoundary-B0Hhu3Yw.js +20 -0
- package/dist/chunks/{PickerField-DoHv0WMH.js → PickerField-DwLw7j0L.js} +1 -1
- package/dist/chunks/{RevealToggle-C-KzaQGJ.js → RevealToggle-BVFM_FAU.js} +3 -3
- package/dist/chunks/{TourCard-BJ8i7dk0.js → TourCard--2IfgnUU.js} +2 -2
- package/dist/chunks/icons-CLu1iR1j.js +43 -0
- package/dist/chunks/palette-BiY7yQZL.js +29 -0
- package/dist/component-names.d.ts +1 -1
- package/dist/components/ContextMenuItems.vue.js +1 -1
- package/dist/components/DropzoneLinkField.vue.js +1 -1
- package/dist/components/FieldWrapper.vue.js +1 -1
- 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/LpAddressInput.vue.d.ts +1 -1
- package/dist/components/LpAddressInput.vue.js +1 -1
- package/dist/components/LpAlert.vue.d.ts +3 -3
- package/dist/components/LpAlert.vue.js +1 -1
- package/dist/components/LpAppShell.vue.js +1 -1
- package/dist/components/LpAutocomplete.vue.d.ts +7 -1
- package/dist/components/LpAutocomplete.vue.js +1 -1
- package/dist/components/LpAvatar.vue.js +1 -1
- package/dist/components/LpBadge.vue.d.ts +2 -2
- package/dist/components/LpBadge.vue.js +1 -1
- package/dist/components/LpBreadcrumbs.vue.js +1 -1
- package/dist/components/LpButton.vue.d.ts +4 -0
- package/dist/components/LpButton.vue.js +1 -1
- package/dist/components/LpCalendar.vue.js +1 -1
- package/dist/components/LpChart.vue.js +2 -2
- package/dist/components/LpCheckbox.vue.d.ts +8 -1
- 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/LpColorPicker.vue.d.ts +2 -2
- package/dist/components/LpColorPicker.vue.js +1 -1
- package/dist/components/LpCommandPalette.vue.d.ts +43 -7
- package/dist/components/LpCommandPalette.vue.js +451 -126
- package/dist/components/LpCommandScope.vue.d.ts +28 -0
- package/dist/components/LpCommandScope.vue.js +4 -0
- package/dist/components/LpConfirmDialog.vue.js +1 -1
- package/dist/components/LpConfirmHost.vue.js +1 -1
- package/dist/components/LpContextMenu.vue.d.ts +5 -1
- package/dist/components/LpContextMenu.vue.js +1 -1
- package/dist/components/LpCopyButton.vue.d.ts +1 -1
- package/dist/components/LpCopyButton.vue.js +1 -1
- package/dist/components/LpCountdown.vue.js +1 -1
- package/dist/components/LpDataList.vue.js +1 -1
- package/dist/components/LpDatePicker.vue.js +1 -1
- package/dist/components/LpDateRangePicker.vue.js +1 -1
- package/dist/components/LpDisclosure.vue.d.ts +4 -0
- package/dist/components/LpDisclosure.vue.js +1 -1
- package/dist/components/LpDock.vue.js +2 -2
- package/dist/components/LpDrawer.vue.js +1 -1
- package/dist/components/LpDropdownMenu.vue.d.ts +5 -1
- package/dist/components/LpDropdownMenu.vue.js +1 -1
- package/dist/components/LpDropzone.vue.js +2 -2
- 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 +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/LpGauge.vue.js +1 -1
- package/dist/components/LpHintLayer.vue.js +1 -1
- package/dist/components/LpHints.vue.js +1 -1
- package/dist/components/LpIcon.vue.js +1 -1
- package/dist/components/LpImageEditor.vue.js +3 -2
- package/dist/components/LpInfraNode.vue.js +1 -1
- package/dist/components/LpInput.vue.d.ts +6 -0
- package/dist/components/LpInput.vue.js +1 -1
- package/dist/components/LpLightbox.vue.js +1 -1
- package/dist/components/LpLoader.vue.d.ts +1 -1
- package/dist/components/LpLogViewer.vue.js +1 -1
- package/dist/components/LpMapPicker.vue.js +1 -1
- package/dist/components/LpMediaGallery.vue.d.ts +2 -2
- 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.js +1 -1
- package/dist/components/LpNumberField.vue.d.ts +6 -0
- package/dist/components/LpNumberField.vue.js +1 -1
- package/dist/components/LpNumberFlow.vue.js +1 -1
- package/dist/components/LpPagination.vue.js +1 -1
- package/dist/components/LpPaletteFacts.vue.d.ts +1 -0
- package/dist/components/LpPaletteFacts.vue.js +40 -26
- package/dist/components/LpPaletteHeader.vue.js +2 -2
- package/dist/components/LpPaletteStats.vue.d.ts +1 -0
- package/dist/components/LpPaletteStats.vue.js +45 -21
- package/dist/components/LpPaletteTheme.vue.d.ts +7 -0
- package/dist/components/LpPaletteTheme.vue.js +4 -0
- package/dist/components/LpPasswordInput.vue.js +1 -1
- package/dist/components/LpPhoneInput.vue.js +1 -1
- package/dist/components/LpPie.vue.js +1 -1
- package/dist/components/LpPipeline.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.d.ts +6 -1
- package/dist/components/LpRadioGroup.vue.js +1 -1
- package/dist/components/LpRangeCalendar.vue.js +1 -1
- package/dist/components/LpRangeSlider.vue.d.ts +6 -0
- 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/LpSecretField.vue.js +1 -1
- package/dist/components/LpSection.vue.js +1 -1
- package/dist/components/LpSegmented.vue.d.ts +6 -0
- package/dist/components/LpSegmented.vue.js +1 -1
- package/dist/components/LpSelect.vue.d.ts +3 -0
- package/dist/components/LpSelect.vue.js +1 -1
- package/dist/components/LpShinyText.vue.d.ts +1 -1
- 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.d.ts +6 -0
- package/dist/components/LpSlider.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/LpSwitch.vue.d.ts +6 -0
- package/dist/components/LpSwitch.vue.js +1 -1
- package/dist/components/LpTable.vue.d.ts +6 -0
- package/dist/components/LpTable.vue.js +74 -35
- package/dist/components/LpTableFilter.vue.js +1 -1
- package/dist/components/LpTableOfContents.vue.js +1 -1
- package/dist/components/LpTabs.vue.d.ts +1 -1
- package/dist/components/LpTabs.vue.js +14 -5
- package/dist/components/LpTagsInput.vue.d.ts +6 -0
- package/dist/components/LpTagsInput.vue.js +1 -1
- package/dist/components/LpTextarea.vue.d.ts +8 -1
- package/dist/components/LpTextarea.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.d.ts +6 -0
- 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.js +1 -1
- package/dist/components/LpTour.vue.js +1 -1
- package/dist/components/LpTruncate.vue.js +1 -1
- package/dist/components/LpUptimeBar.vue.d.ts +18 -9
- package/dist/components/LpUptimeBar.vue.js +1 -1
- package/dist/components/MenuTitle.vue.js +1 -1
- package/dist/components/OptionContent.vue.js +1 -1
- package/dist/components/PalettePreviewBoundary.vue.d.ts +13 -0
- package/dist/components/PalettePreviewBoundary.vue.js +4 -0
- package/dist/components/PickerField.vue.js +1 -1
- package/dist/components/RevealToggle.vue.js +1 -1
- package/dist/components/TourCard.vue.js +1 -1
- package/dist/components/commandPalette.d.ts +33 -0
- package/dist/components/commandPalette.js +21 -1
- package/dist/components/commandSearch.d.ts +5 -0
- package/dist/components/commandSearch.js +22 -2
- package/dist/components/format.d.ts +7 -0
- package/dist/components/format.js +4 -0
- package/dist/components/menuWhen.js +1 -1
- package/dist/components/uptimeBar.d.ts +45 -0
- package/dist/components/uptimeBar.js +51 -0
- package/dist/composables/scroll.d.ts +5 -0
- package/dist/composables/scroll.js +7 -0
- package/dist/composables/useField.d.ts +4 -0
- package/dist/composables/useField.js +3 -0
- package/dist/composables/usePaletteCommands.d.ts +61 -0
- package/dist/composables/usePaletteCommands.js +220 -0
- package/dist/composables/useReveal.js +21 -0
- package/dist/composables/useView.js +5 -1
- package/dist/icons-all.js +1 -1
- package/dist/index.d.ts +14 -1
- package/dist/index.js +101 -85
- package/dist/theme/palette.d.ts +9 -0
- package/dist/theme/studio.d.ts +12 -1
- package/package.json +1 -1
- package/src/component-names.ts +2 -0
- package/src/components/LpAutocomplete.vue +6 -1
- package/src/components/LpButton.vue +5 -1
- package/src/components/LpCheckbox.vue +7 -2
- package/src/components/LpCommandPalette.vue +263 -29
- package/src/components/LpCommandScope.vue +35 -0
- package/src/components/LpContextMenu.vue +13 -2
- package/src/components/LpDisclosure.vue +5 -1
- package/src/components/LpDropdownMenu.vue +13 -2
- package/src/components/LpFormField.vue +3 -0
- package/src/components/LpInput.vue +6 -1
- package/src/components/LpNumberField.vue +6 -1
- package/src/components/LpNumberFlow.vue +12 -2
- package/src/components/LpPaletteFacts.vue +11 -6
- package/src/components/LpPaletteStats.vue +12 -5
- package/src/components/LpPaletteTheme.vue +48 -0
- package/src/components/LpPasswordInput.vue +3 -0
- package/src/components/LpRadioGroup.vue +4 -1
- package/src/components/LpRangeSlider.vue +6 -1
- package/src/components/LpSecretField.vue +3 -0
- package/src/components/LpSegmented.vue +6 -1
- package/src/components/LpSelect.vue +41 -2
- package/src/components/LpSlider.vue +6 -1
- package/src/components/LpSwitch.vue +6 -1
- package/src/components/LpTable.vue +35 -2
- package/src/components/LpTableOfContents.vue +2 -4
- package/src/components/LpTabs.vue +7 -0
- package/src/components/LpTagsInput.vue +6 -1
- package/src/components/LpTextarea.vue +7 -2
- package/src/components/LpThemeStudio.vue +7 -5
- package/src/components/LpThemeSwitcher.vue +3 -0
- package/src/components/LpTimeField.vue +6 -1
- package/src/components/LpTooltip.vue +23 -1
- package/src/components/LpUptimeBar.vue +69 -41
- package/src/components/PalettePreviewBoundary.vue +5 -0
- package/src/components/commandPalette.ts +22 -1
- package/src/components/commandSearch.ts +23 -1
- package/src/components/format.ts +10 -0
- package/src/components/uptimeBar.ts +98 -0
- package/src/composables/scroll.ts +11 -0
- package/src/composables/useField.ts +7 -0
- package/src/composables/usePaletteCommands.ts +220 -0
- package/src/composables/useReveal.ts +29 -0
- package/src/composables/useView.ts +5 -1
- package/src/index.ts +18 -1
- package/src/kit-icons.ts +1 -1
- package/src/theme/palette.ts +26 -0
- package/src/theme/studio.ts +15 -8
- package/dist/assets/LpTabs-BJ-nrJuI.css +0 -18
- package/dist/chunks/icons-4IywzkHk.js +0 -43
package/README.md
CHANGED
|
@@ -232,3 +232,94 @@ Playwright starts an isolated Vite server on port 4501. The suite covers field
|
|
|
232
232
|
locking, secret reveal controls, date/select focus boundaries and a mobile
|
|
233
233
|
form inside a guarded drawer. These checks run in CI and before npm publishing.
|
|
234
234
|
Use `PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH` to run an existing Chromium installation.
|
|
235
|
+
|
|
236
|
+
### Contextual command palette
|
|
237
|
+
|
|
238
|
+
Wrap the application (or a page and its palette) in `LpCommandScope`. Nested
|
|
239
|
+
scopes share a registry, prioritise page commands, and unregister on unmount.
|
|
240
|
+
`isolated` starts a separate registry for an embedded application or demo.
|
|
241
|
+
|
|
242
|
+
```vue
|
|
243
|
+
<script setup lang="ts">
|
|
244
|
+
import { ref } from 'vue'
|
|
245
|
+
import {
|
|
246
|
+
LpCommandScope, LpCommandPalette, LpFormField, LpNumberField,
|
|
247
|
+
useThemeStudio,
|
|
248
|
+
} from '@leavepulse/ui'
|
|
249
|
+
|
|
250
|
+
const studio = useThemeStudio()
|
|
251
|
+
const open = ref(false)
|
|
252
|
+
const cpu = ref(4)
|
|
253
|
+
</script>
|
|
254
|
+
|
|
255
|
+
<template>
|
|
256
|
+
<LpCommandScope id="settings" label="Settings" :theme="studio">
|
|
257
|
+
<LpFormField label="CPU limit">
|
|
258
|
+
<LpNumberField v-model="cpu" :min="1" :max="128" :palette="{ id: 'cpu' }" />
|
|
259
|
+
</LpFormField>
|
|
260
|
+
<LpCommandPalette v-model:open="open" preview-pane recent-key="my-app-palette" />
|
|
261
|
+
</LpCommandScope>
|
|
262
|
+
</template>
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
Named kit fields, buttons, tabs and disclosures register automatically in a
|
|
266
|
+
scope. A field uses its own label, its `LpFormField` label or `aria-label`.
|
|
267
|
+
`palette` metadata (`id`, `label`, `description`, `keywords`) refines its metadata;
|
|
268
|
+
`:palette="false"` excludes it. Passwords and secrets are excluded even when
|
|
269
|
+
revealed. Previews reuse the original component's model bindings and constraints;
|
|
270
|
+
Enter opens an editor on narrow screens too. Escape returns to results.
|
|
271
|
+
Preview components and compound control internals are excluded from discovery.
|
|
272
|
+
|
|
273
|
+
Tables take `:palette="{ id: 'services', label: 'Services', labelKey: 'name' }"`.
|
|
274
|
+
They publish the currently loaded/filtered rows and their existing `rowMenu`
|
|
275
|
+
actions. Searching an entire remote dataset still needs a search provider.
|
|
276
|
+
Menus with a title reuse their existing item definitions. `discover=false` on a
|
|
277
|
+
scope disables automatic component discovery while retaining manual commands and
|
|
278
|
+
an explicitly supplied Theme studio. `context=false` on the palette excludes
|
|
279
|
+
contextual commands.
|
|
280
|
+
|
|
281
|
+
Inside a descendant page component, `usePaletteCommands(() => [...])` registers
|
|
282
|
+
reactive manual commands for that page's lifetime. Alternatively pass `commands`
|
|
283
|
+
to `LpCommandScope` directly. Manual `commands` passed to the palette replace a
|
|
284
|
+
registered command with the same ID. `previewComponent` provides a rich preview;
|
|
285
|
+
`editInPreview` makes Enter focus it. Native markup can opt in with the locally
|
|
286
|
+
imported `vPalette` directive:
|
|
287
|
+
|
|
288
|
+
```vue
|
|
289
|
+
<button v-palette="{ id: 'refresh', label: 'Refresh servers', action: 'click' }"
|
|
290
|
+
@click="refresh">Refresh</button>
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
The directive defaults to focusing its target. `afterClose` on a manual command
|
|
294
|
+
runs after the palette releases its focus trap, suitable for focusing a field
|
|
295
|
+
or a lazily revealed section. Page hints can prepare that section in `onSelect`
|
|
296
|
+
and locate its existing `v-hint` target in `afterClose`.
|
|
297
|
+
|
|
298
|
+
Theme uses the same `ThemeStudio` as `LpThemeSwitcher` / `LpThemeStudio`; these
|
|
299
|
+
components also register it when inside a scope. The palette editor keeps a
|
|
300
|
+
local draft, shows it through `LpThemeProvider`, and commits only on Apply.
|
|
301
|
+
Revert or closing the editor discards pending edits. `usePaletteTheme(studio)`
|
|
302
|
+
registers a studio explicitly from a descendant component.
|
|
303
|
+
|
|
304
|
+
`modes` accepts providers under `people`, `channels`, `roles`, `commands`, `help`.
|
|
305
|
+
Their sigils are `@`, `#`, `&`, `>`, `?`. People/channels/roles appear when supplied;
|
|
306
|
+
commands and keyboard help are provided by default. Each provider is the same
|
|
307
|
+
static array or abortable `CommandFetcher` used by `children`.
|
|
308
|
+
|
|
309
|
+
Pin the highlighted leaf with the star button or Alt+P in the search box.
|
|
310
|
+
Pins have their own group and storage (`pinnedKey`, defaulting to
|
|
311
|
+
`${recentKey}:pinned`) and do not expire from recent history. Bind `pinned` /
|
|
312
|
+
`update:pinned` for external storage. Persistence uses the kit's configured
|
|
313
|
+
storage adapter.
|
|
314
|
+
|
|
315
|
+
A `prompt` command accepts `{ placeholder, initial, validate, submit }`.
|
|
316
|
+
Validation may be asynchronous; errors keep the input open, and changing the
|
|
317
|
+
value or leaving the step invalidates an outstanding validation. Async actions
|
|
318
|
+
are awaited, duplicate execution is blocked, and failures remain visible.
|
|
319
|
+
`undo(result)` adds an Undo toast only after successful execution; the application
|
|
320
|
+
supplies the actual inverse operation. Preview actions have visible buttons as
|
|
321
|
+
well as the Tab menu, including an Actions button on phones.
|
|
322
|
+
|
|
323
|
+
`LpPaletteFacts` and `LpPaletteStats` accept `loading`. Known labels retain their
|
|
324
|
+
place, values become skeletons; empty item lists receive placeholder rows.
|
|
325
|
+
Try the complete example at `/component/context-palette` in the preview.
|
|
@@ -5,71 +5,78 @@
|
|
|
5
5
|
* pane from its right edge as it grows. Animating the columns themselves made
|
|
6
6
|
* every line of the list and the pane re-wrap on every frame.
|
|
7
7
|
*/
|
|
8
|
-
.lp-cmd-dialog[data-v-
|
|
8
|
+
.lp-cmd-dialog[data-v-e9366efe] {
|
|
9
9
|
--lp-cmd-list: min(92vw, 40rem);
|
|
10
10
|
--lp-cmd-pane: max(0px, min(26rem, 96vw - var(--lp-cmd-list)));
|
|
11
11
|
width: var(--lp-cmd-list);
|
|
12
12
|
}
|
|
13
|
-
.lp-cmd-split[data-v-
|
|
13
|
+
.lp-cmd-split[data-v-e9366efe] {
|
|
14
14
|
transition:
|
|
15
15
|
width 300ms var(--ease-emphasized, ease),
|
|
16
16
|
min-height 300ms var(--ease-emphasized, ease);
|
|
17
17
|
}
|
|
18
18
|
@media (min-width: 768px) {
|
|
19
|
-
.lp-cmd-split .lp-cmd-list[data-v-
|
|
19
|
+
.lp-cmd-split .lp-cmd-list[data-v-e9366efe] {
|
|
20
20
|
flex: 0 0 auto;
|
|
21
21
|
/* the dialog's 1px border on each side */
|
|
22
22
|
width: calc(var(--lp-cmd-list) - 2px);
|
|
23
23
|
}
|
|
24
|
-
.lp-cmd-dialog[data-pane="open"][data-v-
|
|
24
|
+
.lp-cmd-dialog[data-pane="open"][data-v-e9366efe] {
|
|
25
25
|
width: calc(var(--lp-cmd-list) + var(--lp-cmd-pane));
|
|
26
26
|
min-height: min(76vh, 36rem);
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
.lp-cmd-pane[data-v-
|
|
29
|
+
.lp-cmd-pane[data-v-e9366efe] {
|
|
30
30
|
width: var(--lp-cmd-pane);
|
|
31
31
|
}
|
|
32
|
+
.lp-cmd-dialog[data-editing] .lp-cmd-pane[data-v-e9366efe] {
|
|
33
|
+
width: 100%;
|
|
34
|
+
}
|
|
35
|
+
.lp-cmd-dialog[data-editing][data-v-e9366efe] {
|
|
36
|
+
width: var(--lp-cmd-list);
|
|
37
|
+
min-height: 0;
|
|
38
|
+
}
|
|
32
39
|
/*
|
|
33
40
|
* The pane rides in from the right edge while the dialog opens up to it, and
|
|
34
41
|
* leaves the same way, for as long as the dialog takes to close over it.
|
|
35
42
|
*/
|
|
36
|
-
.lp-cmd-pane-enter-active[data-v-
|
|
37
|
-
.lp-cmd-pane-leave-active[data-v-
|
|
43
|
+
.lp-cmd-pane-enter-active[data-v-e9366efe],
|
|
44
|
+
.lp-cmd-pane-leave-active[data-v-e9366efe] {
|
|
38
45
|
transition:
|
|
39
46
|
transform 300ms var(--ease-emphasized, ease),
|
|
40
47
|
opacity 300ms ease;
|
|
41
48
|
}
|
|
42
|
-
.lp-cmd-pane-enter-from[data-v-
|
|
43
|
-
.lp-cmd-pane-leave-to[data-v-
|
|
49
|
+
.lp-cmd-pane-enter-from[data-v-e9366efe],
|
|
50
|
+
.lp-cmd-pane-leave-to[data-v-e9366efe] {
|
|
44
51
|
opacity: 0;
|
|
45
52
|
transform: translateX(40%);
|
|
46
53
|
}
|
|
47
|
-
.lp-cmd-para[data-v-
|
|
54
|
+
.lp-cmd-para[data-v-e9366efe] {
|
|
48
55
|
--rise: 4px;
|
|
49
56
|
animation: rise-in 260ms ease-out both;
|
|
50
57
|
}
|
|
51
58
|
@media (prefers-reduced-motion: reduce) {
|
|
52
|
-
.lp-cmd-split[data-v-
|
|
53
|
-
.lp-cmd-pane-enter-active[data-v-
|
|
54
|
-
.lp-cmd-pane-leave-active[data-v-
|
|
59
|
+
.lp-cmd-split[data-v-e9366efe],
|
|
60
|
+
.lp-cmd-pane-enter-active[data-v-e9366efe],
|
|
61
|
+
.lp-cmd-pane-leave-active[data-v-e9366efe] {
|
|
55
62
|
transition: none;
|
|
56
63
|
}
|
|
57
|
-
.lp-cmd-para[data-v-
|
|
64
|
+
.lp-cmd-para[data-v-e9366efe] {
|
|
58
65
|
animation: none;
|
|
59
66
|
}
|
|
60
67
|
}
|
|
61
|
-
.lp-cmd-excerpt[data-v-
|
|
68
|
+
.lp-cmd-excerpt[data-v-e9366efe] {
|
|
62
69
|
display: -webkit-box;
|
|
63
70
|
-webkit-box-orient: vertical;
|
|
64
71
|
overflow: hidden;
|
|
65
72
|
}
|
|
66
73
|
/* Each result eases in; honours reduced motion. */
|
|
67
|
-
.lp-cmd-item[data-v-
|
|
74
|
+
.lp-cmd-item[data-v-e9366efe] {
|
|
68
75
|
--rise: 3px;
|
|
69
76
|
animation: rise-in 140ms ease-out both;
|
|
70
77
|
}
|
|
71
78
|
@media (prefers-reduced-motion: reduce) {
|
|
72
|
-
.lp-cmd-item[data-v-
|
|
79
|
+
.lp-cmd-item[data-v-e9366efe] {
|
|
73
80
|
animation: none;
|
|
74
81
|
}
|
|
75
82
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
.lp-palette-facts[data-v-
|
|
2
|
+
.lp-palette-facts[data-v-949a8890] {
|
|
3
3
|
min-width: 0;
|
|
4
4
|
}
|
|
5
|
-
.lp-palette-facts__title[data-v-
|
|
5
|
+
.lp-palette-facts__title[data-v-949a8890] {
|
|
6
6
|
margin: 0 0 0.4rem;
|
|
7
7
|
color: var(--color-muted);
|
|
8
8
|
font-size: 11px;
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
letter-spacing: 0.08em;
|
|
11
11
|
text-transform: uppercase;
|
|
12
12
|
}
|
|
13
|
-
.lp-palette-facts__list[data-v-
|
|
13
|
+
.lp-palette-facts__list[data-v-949a8890] {
|
|
14
14
|
display: grid;
|
|
15
15
|
gap: 2px;
|
|
16
16
|
margin: 0;
|
|
17
17
|
padding: 0;
|
|
18
18
|
list-style: none;
|
|
19
19
|
}
|
|
20
|
-
.lp-palette-facts__row[data-v-
|
|
20
|
+
.lp-palette-facts__row[data-v-949a8890] {
|
|
21
21
|
display: flex;
|
|
22
22
|
min-width: 0;
|
|
23
23
|
align-items: center;
|
|
@@ -29,26 +29,26 @@
|
|
|
29
29
|
font-size: 0.8125rem;
|
|
30
30
|
transition: background-color var(--duration-fast, 150ms) ease;
|
|
31
31
|
}
|
|
32
|
-
.lp-palette-facts--plain .lp-palette-facts__row[data-v-
|
|
32
|
+
.lp-palette-facts--plain .lp-palette-facts__row[data-v-949a8890] {
|
|
33
33
|
padding: 0.15rem 0;
|
|
34
34
|
background: transparent;
|
|
35
35
|
}
|
|
36
|
-
.lp-palette-facts__row.is-current[data-v-
|
|
36
|
+
.lp-palette-facts__row.is-current[data-v-949a8890] {
|
|
37
37
|
background: var(--color-brand-soft);
|
|
38
38
|
}
|
|
39
|
-
.lp-palette-facts--plain .lp-palette-facts__row.is-current[data-v-
|
|
39
|
+
.lp-palette-facts--plain .lp-palette-facts__row.is-current[data-v-949a8890] {
|
|
40
40
|
background: transparent;
|
|
41
41
|
color: var(--color-brand);
|
|
42
42
|
}
|
|
43
|
-
.lp-palette-facts__icon[data-v-
|
|
43
|
+
.lp-palette-facts__icon[data-v-949a8890] {
|
|
44
44
|
flex-shrink: 0;
|
|
45
45
|
color: var(--color-muted);
|
|
46
46
|
transition: color var(--duration-fast, 150ms) ease;
|
|
47
47
|
}
|
|
48
|
-
.is-current .lp-palette-facts__icon[data-v-
|
|
48
|
+
.is-current .lp-palette-facts__icon[data-v-949a8890] {
|
|
49
49
|
color: var(--color-brand);
|
|
50
50
|
}
|
|
51
|
-
.lp-palette-facts__dot[data-v-
|
|
51
|
+
.lp-palette-facts__dot[data-v-949a8890] {
|
|
52
52
|
width: 0.55rem;
|
|
53
53
|
height: 0.55rem;
|
|
54
54
|
flex-shrink: 0;
|
|
@@ -56,24 +56,24 @@
|
|
|
56
56
|
border-radius: 9999px;
|
|
57
57
|
box-shadow: 0 0 0 1px var(--color-line);
|
|
58
58
|
}
|
|
59
|
-
.lp-palette-facts__label[data-v-
|
|
59
|
+
.lp-palette-facts__label[data-v-949a8890] {
|
|
60
60
|
display: flex;
|
|
61
61
|
min-width: 0;
|
|
62
62
|
flex: 1;
|
|
63
63
|
flex-direction: column;
|
|
64
64
|
}
|
|
65
|
-
.lp-palette-facts__name[data-v-
|
|
65
|
+
.lp-palette-facts__name[data-v-949a8890] {
|
|
66
66
|
overflow: hidden;
|
|
67
67
|
text-overflow: ellipsis;
|
|
68
68
|
white-space: nowrap;
|
|
69
69
|
}
|
|
70
|
-
.lp-palette-facts__hint[data-v-
|
|
70
|
+
.lp-palette-facts__hint[data-v-949a8890] {
|
|
71
71
|
margin-top: 1px;
|
|
72
72
|
color: var(--color-muted);
|
|
73
73
|
font-size: 0.75rem;
|
|
74
74
|
line-height: 1.45;
|
|
75
75
|
}
|
|
76
|
-
.lp-palette-facts__value[data-v-
|
|
76
|
+
.lp-palette-facts__value[data-v-949a8890] {
|
|
77
77
|
display: inline-flex;
|
|
78
78
|
min-width: 0;
|
|
79
79
|
max-width: 55%;
|
|
@@ -85,9 +85,9 @@
|
|
|
85
85
|
font-variant-numeric: tabular-nums;
|
|
86
86
|
white-space: nowrap;
|
|
87
87
|
}
|
|
88
|
-
.lp-palette-facts__value[data-v-
|
|
88
|
+
.lp-palette-facts__value[data-v-949a8890] .lp-roll {
|
|
89
89
|
max-width: 100%;
|
|
90
90
|
}
|
|
91
|
-
.lp-palette-facts__value--mono[data-v-
|
|
91
|
+
.lp-palette-facts__value--mono[data-v-949a8890] {
|
|
92
92
|
font-family: var(--font-mono, ui-monospace, monospace);
|
|
93
93
|
}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
|
|
2
|
-
.lp-palette-stats[data-v-
|
|
2
|
+
.lp-palette-stats[data-v-3d47406a] {
|
|
3
3
|
display: grid;
|
|
4
4
|
gap: 0.5rem;
|
|
5
5
|
margin: 0;
|
|
6
6
|
}
|
|
7
|
-
.lp-palette-stats__tile[data-v-
|
|
7
|
+
.lp-palette-stats__tile[data-v-3d47406a] {
|
|
8
8
|
min-width: 0;
|
|
9
9
|
padding: 0.5rem 0.65rem;
|
|
10
10
|
border: 1px solid var(--color-line);
|
|
11
11
|
border-radius: var(--radius-control);
|
|
12
12
|
background: color-mix(in srgb, var(--color-surface-soft) 55%, transparent);
|
|
13
13
|
}
|
|
14
|
-
dt[data-v-
|
|
14
|
+
dt[data-v-3d47406a] {
|
|
15
15
|
overflow: hidden;
|
|
16
16
|
color: var(--color-muted);
|
|
17
17
|
font-size: 11px;
|
|
18
18
|
text-overflow: ellipsis;
|
|
19
19
|
white-space: nowrap;
|
|
20
20
|
}
|
|
21
|
-
dd[data-v-
|
|
21
|
+
dd[data-v-3d47406a] {
|
|
22
22
|
display: flex;
|
|
23
23
|
min-width: 0;
|
|
24
24
|
margin: 2px 0 0;
|
|
@@ -28,6 +28,6 @@ dd[data-v-dc30a10e] {
|
|
|
28
28
|
font-variant-numeric: tabular-nums;
|
|
29
29
|
line-height: 1.3;
|
|
30
30
|
}
|
|
31
|
-
dd[data-v-
|
|
31
|
+
dd[data-v-3d47406a] .lp-roll {
|
|
32
32
|
max-width: 100%;
|
|
33
33
|
}
|
|
@@ -11,17 +11,17 @@
|
|
|
11
11
|
* fade before closing the gap and the whole list lurches at the end instead of
|
|
12
12
|
* gliding.
|
|
13
13
|
*/
|
|
14
|
-
.lp-row-enter-active[data-v-
|
|
15
|
-
.lp-row-leave-active[data-v-
|
|
14
|
+
.lp-row-enter-active[data-v-c1911001],
|
|
15
|
+
.lp-row-leave-active[data-v-c1911001] {
|
|
16
16
|
transition:
|
|
17
17
|
opacity var(--duration-fast) var(--ease-emphasized),
|
|
18
18
|
transform var(--duration-fast) var(--ease-emphasized);
|
|
19
19
|
}
|
|
20
|
-
.lp-row-move[data-v-
|
|
20
|
+
.lp-row-move[data-v-c1911001] {
|
|
21
21
|
transition: transform var(--duration-medium) var(--ease-emphasized);
|
|
22
22
|
}
|
|
23
|
-
.lp-row-enter-from[data-v-
|
|
24
|
-
.lp-row-leave-to[data-v-
|
|
23
|
+
.lp-row-enter-from[data-v-c1911001],
|
|
24
|
+
.lp-row-leave-to[data-v-c1911001] {
|
|
25
25
|
opacity: 0;
|
|
26
26
|
transform: translateX(-0.5rem);
|
|
27
27
|
}
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
* drops out of the table layout entirely. Nothing sits below this row to be
|
|
36
36
|
* dragged around, so simply not animating its exit costs nothing.
|
|
37
37
|
*/
|
|
38
|
-
.lp-row-empty.lp-row-leave-active[data-v-
|
|
38
|
+
.lp-row-empty.lp-row-leave-active[data-v-c1911001] {
|
|
39
39
|
display: none;
|
|
40
40
|
}
|
|
41
41
|
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
* once anything is selected. An earlier version collapsed the column to nothing
|
|
55
55
|
* and floated the hover box over the first cell, where it sat on the text.
|
|
56
56
|
*/
|
|
57
|
-
.lp-tick[data-v-
|
|
57
|
+
.lp-tick[data-v-c1911001] {
|
|
58
58
|
display: flex;
|
|
59
59
|
align-items: center;
|
|
60
60
|
max-width: 0;
|
|
@@ -66,17 +66,17 @@
|
|
|
66
66
|
padding var(--duration-medium) var(--ease-emphasized),
|
|
67
67
|
opacity var(--duration-fast) ease;
|
|
68
68
|
}
|
|
69
|
-
.lp-tick-open[data-v-
|
|
69
|
+
.lp-tick-open[data-v-c1911001] {
|
|
70
70
|
max-width: 3.25rem;
|
|
71
71
|
padding-inline: 1rem;
|
|
72
72
|
opacity: 1;
|
|
73
73
|
}
|
|
74
|
-
.lp-tick-hidden[data-v-
|
|
75
|
-
.lp-tick-cue[data-v-
|
|
74
|
+
.lp-tick-hidden[data-v-c1911001],
|
|
75
|
+
.lp-tick-cue[data-v-c1911001] {
|
|
76
76
|
opacity: 0;
|
|
77
77
|
}
|
|
78
|
-
tr:hover .lp-tick-cue[data-v-
|
|
79
|
-
.lp-tick-cue[data-v-
|
|
78
|
+
tr:hover .lp-tick-cue[data-v-c1911001],
|
|
79
|
+
.lp-tick-cue[data-v-c1911001]:focus-within {
|
|
80
80
|
opacity: 1;
|
|
81
81
|
}
|
|
82
82
|
|
|
@@ -84,24 +84,24 @@ tr:hover .lp-tick-cue[data-v-18479205],
|
|
|
84
84
|
turned down the rows change without animating rather than not changing. */
|
|
85
85
|
/* Only where there is a hover to reveal it; a finger long-presses instead. */
|
|
86
86
|
@media (hover: none) {
|
|
87
|
-
tr:hover .lp-tick-cue[data-v-
|
|
87
|
+
tr:hover .lp-tick-cue[data-v-c1911001] {
|
|
88
88
|
opacity: 0;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
/* Nor is there anything for the column's width to hold until then: on a
|
|
92
92
|
touch screen it stays closed until a long press starts selecting, and
|
|
93
93
|
eases open like the rest of the column. */
|
|
94
|
-
.lp-tick-hidden[data-v-
|
|
95
|
-
.lp-tick-cue[data-v-
|
|
94
|
+
.lp-tick-hidden[data-v-c1911001],
|
|
95
|
+
.lp-tick-cue[data-v-c1911001] {
|
|
96
96
|
max-width: 0;
|
|
97
97
|
padding-inline: 0;
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
@media (prefers-reduced-motion: reduce) {
|
|
101
|
-
.lp-row-enter-active[data-v-
|
|
102
|
-
.lp-row-leave-active[data-v-
|
|
103
|
-
.lp-row-move[data-v-
|
|
104
|
-
.lp-tick[data-v-
|
|
101
|
+
.lp-row-enter-active[data-v-c1911001],
|
|
102
|
+
.lp-row-leave-active[data-v-c1911001],
|
|
103
|
+
.lp-row-move[data-v-c1911001],
|
|
104
|
+
.lp-tick[data-v-c1911001] {
|
|
105
105
|
transition: none;
|
|
106
106
|
}
|
|
107
107
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
|
|
2
|
+
.lp-tab-badge-enter-active[data-v-2c920d5a],
|
|
3
|
+
.lp-tab-badge-leave-active[data-v-2c920d5a] {
|
|
4
|
+
transition:
|
|
5
|
+
opacity var(--duration-fast) var(--ease-emphasized),
|
|
6
|
+
transform var(--duration-fast) var(--ease-emphasized);
|
|
7
|
+
}
|
|
8
|
+
.lp-tab-badge-enter-from[data-v-2c920d5a],
|
|
9
|
+
.lp-tab-badge-leave-to[data-v-2c920d5a] {
|
|
10
|
+
opacity: 0;
|
|
11
|
+
transform: scale(0.6);
|
|
12
|
+
}
|
|
13
|
+
@media (prefers-reduced-motion: reduce) {
|
|
14
|
+
.lp-tab-badge-enter-active[data-v-2c920d5a],
|
|
15
|
+
.lp-tab-badge-leave-active[data-v-2c920d5a] {
|
|
16
|
+
transition: none;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, computed, resolveComponent, openBlock, createElementBlock, Fragment, renderList, createBlock, resolveDynamicComponent, createCommentVNode, withCtx, normalizeClass, createElementVNode, createTextVNode, toDisplayString, createVNode, unref, withModifiers } from "vue";
|
|
2
2
|
import { DropdownMenuPortal, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuSub, DropdownMenuSeparator, DropdownMenuCheckboxItem, DropdownMenuItem, ContextMenuPortal, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuSub, ContextMenuSeparator, ContextMenuCheckboxItem, ContextMenuItem } from "reka-ui";
|
|
3
3
|
import { usePortalTarget, useOutsideGuard } from "../composables/useView.js";
|
|
4
|
-
import { _ as _sfc_main$1 } from "./LpIcon-
|
|
4
|
+
import { _ as _sfc_main$1 } from "./LpIcon-DkP-9mzK.js";
|
|
5
5
|
import MenuShortcut from "../components/MenuShortcut.vue.js";
|
|
6
6
|
const _hoisted_1 = { class: "flex items-center gap-2" };
|
|
7
7
|
const _hoisted_2 = { class: "flex items-center gap-2" };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent, useModel, ref, openBlock, createElementBlock, createElementVNode, createVNode, withCtx, createTextVNode, toDisplayString, normalizeClass, mergeModels } from "vue";
|
|
2
|
-
import { _ as _sfc_main$2 } from "./LpButton-
|
|
3
|
-
import { _ as _sfc_main$1 } from "./LpInput-
|
|
2
|
+
import { _ as _sfc_main$2 } from "./LpButton-BQDAFXBd.js";
|
|
3
|
+
import { _ as _sfc_main$1 } from "./LpInput-2H-5ILOB.js";
|
|
4
4
|
const _hoisted_1 = { class: "flex w-full flex-col gap-1.5" };
|
|
5
5
|
const _hoisted_2 = { class: "flex items-center gap-2" };
|
|
6
6
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, useAttrs, ref, openBlock, createBlock, resolveDynamicComponent, normalizeStyle, unref, normalizeClass, withCtx, renderSlot } from "vue";
|
|
2
|
-
import { _ as _sfc_main$1 } from "./LpFormField-
|
|
2
|
+
import { _ as _sfc_main$1 } from "./LpFormField-gRASfyj2.js";
|
|
3
3
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
4
4
|
...{ inheritAttrs: false },
|
|
5
5
|
__name: "FieldWrapper",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, ref, computed, openBlock, createElementBlock, createVNode, withCtx, renderSlot, normalizeProps, guardReactiveProps } from "vue";
|
|
2
|
-
import { _ as _sfc_main$1 } from "./LayoutNode-
|
|
2
|
+
import { _ as _sfc_main$1 } from "./LayoutNode-CTTTLMDM.js";
|
|
3
3
|
import { resizeAt, setActiveTab, reorderTab, removeBlock, moveLeaf } from "../layout/tree.js";
|
|
4
4
|
import { layoutController } from "../layout/useLayout.js";
|
|
5
5
|
const _hoisted_1 = { class: "flex min-h-0 min-w-0 flex-1" };
|
|
@@ -2,7 +2,7 @@ import { defineComponent, ref, computed, onBeforeUnmount, resolveComponent, open
|
|
|
2
2
|
import { Motion } from "motion-v";
|
|
3
3
|
import { usePillTransition } from "../composables/usePillTransition.js";
|
|
4
4
|
import { blockTitle } from "../layout/registry.js";
|
|
5
|
-
import { _ as _sfc_main$1 } from "./LpIcon-
|
|
5
|
+
import { _ as _sfc_main$1 } from "./LpIcon-DkP-9mzK.js";
|
|
6
6
|
const _hoisted_1 = ["onPointerdown"];
|
|
7
7
|
const _hoisted_2 = {
|
|
8
8
|
key: 1,
|
|
@@ -2,8 +2,8 @@ import { defineComponent, useSlots, computed, ref, watch, openBlock, createBlock
|
|
|
2
2
|
import { useLabels } from "../composables/useLpConfig.js";
|
|
3
3
|
import { useBarStack } from "../components/actionBar.js";
|
|
4
4
|
import { CLOSE_ICON } from "../components/dropdown.js";
|
|
5
|
-
import { _ as _sfc_main$2 } from "./LpButton-
|
|
6
|
-
import { _ as _sfc_main$1 } from "./LpIcon-
|
|
5
|
+
import { _ as _sfc_main$2 } from "./LpButton-BQDAFXBd.js";
|
|
6
|
+
import { _ as _sfc_main$1 } from "./LpIcon-DkP-9mzK.js";
|
|
7
7
|
import { _ as _sfc_main$3 } from "./LpLoader-DjJEX8hL.js";
|
|
8
8
|
import { usePortalTarget } from "../composables/useView.js";
|
|
9
9
|
import { useResizeObserver } from "../composables/useResizeObserver.js";
|
|
@@ -2,13 +2,13 @@ import { defineComponent, defineAsyncComponent, computed, watch, ref, onMounted,
|
|
|
2
2
|
import { useAsyncTask } from "../composables/useAsyncTask.js";
|
|
3
3
|
import { OSM_TILES, createNominatimProvider, emptyAddress, formatAddress } from "../components/address.js";
|
|
4
4
|
import { flagEmoji, loadCountries } from "../components/countries.js";
|
|
5
|
-
import { _ as _sfc_main$2 } from "./LpAutocomplete-
|
|
6
|
-
import { _ as _sfc_main$3 } from "./LpButton-
|
|
7
|
-
import { _ as _sfc_main$1 } from "./LpFormField-
|
|
8
|
-
import { _ as _sfc_main$4 } from "./LpIcon-
|
|
9
|
-
import { _ as _sfc_main$5 } from "./LpInput-
|
|
10
|
-
import { _ as _sfc_main$7 } from "./LpModal-
|
|
11
|
-
import { _ as _sfc_main$6 } from "./LpSelect-
|
|
5
|
+
import { _ as _sfc_main$2 } from "./LpAutocomplete-DDqe2M5g.js";
|
|
6
|
+
import { _ as _sfc_main$3 } from "./LpButton-BQDAFXBd.js";
|
|
7
|
+
import { _ as _sfc_main$1 } from "./LpFormField-gRASfyj2.js";
|
|
8
|
+
import { _ as _sfc_main$4 } from "./LpIcon-DkP-9mzK.js";
|
|
9
|
+
import { _ as _sfc_main$5 } from "./LpInput-2H-5ILOB.js";
|
|
10
|
+
import { _ as _sfc_main$7 } from "./LpModal-CpH0bNo7.js";
|
|
11
|
+
import { _ as _sfc_main$6 } from "./LpSelect-DYX2-u5A.js";
|
|
12
12
|
import { useFieldControl } from "../composables/useField.js";
|
|
13
13
|
import { useLabels } from "../composables/useLpConfig.js";
|
|
14
14
|
import { useMergedAttrs } from "../composables/useMergedClass.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, ref, watch, computed, useSlots, openBlock, createElementBlock, mergeProps, unref, createElementVNode, createVNode, Transition, withCtx, createBlock, normalizeClass, toDisplayString, createCommentVNode, renderSlot } from "vue";
|
|
2
2
|
import { tv } from "tailwind-variants";
|
|
3
3
|
import { useMergedAttrs } from "../composables/useMergedClass.js";
|
|
4
|
-
import { _ as _sfc_main$2 } from "./LpIcon-
|
|
4
|
+
import { _ as _sfc_main$2 } from "./LpIcon-DkP-9mzK.js";
|
|
5
5
|
import { _ as _sfc_main$1 } from "./LpLoader-DjJEX8hL.js";
|
|
6
6
|
import { _ as _sfc_main$3 } from "./LpSwap-DzE6M3Mg.js";
|
|
7
7
|
import { slotText } from "../components/slotText.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { defineComponent, computed, useModel, ref, useId, watch, openBlock, createElementBlock, mergeProps, unref, createElementVNode, withModifiers, toDisplayString, createVNode, createSlots, withCtx, renderSlot, normalizeProps, guardReactiveProps, normalizeClass, createBlock, mergeModels } from "vue";
|
|
2
2
|
import { useLabels } from "../composables/useLpConfig.js";
|
|
3
|
-
import { _ as _sfc_main$2 } from "./LpButton-
|
|
4
|
-
import { _ as _sfc_main$3 } from "./LpIcon-
|
|
3
|
+
import { _ as _sfc_main$2 } from "./LpButton-BQDAFXBd.js";
|
|
4
|
+
import { _ as _sfc_main$3 } from "./LpIcon-DkP-9mzK.js";
|
|
5
5
|
import { _ as _sfc_main$5 } from "./LpScrollArea-Hz3-JWUG.js";
|
|
6
6
|
import { _ as _sfc_main$4 } from "./LpShift-DXNsauQZ.js";
|
|
7
|
-
import { _ as _sfc_main$1 } from "./LpSidebar-
|
|
7
|
+
import { _ as _sfc_main$1 } from "./LpSidebar-D44peKq2.js";
|
|
8
8
|
import { useMergedAttrs, mergeClass } from "../composables/useMergedClass.js";
|
|
9
9
|
const _hoisted_1 = ["href"];
|
|
10
10
|
const _hoisted_2 = { class: "flex min-w-0 flex-1 flex-col" };
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { defineComponent, computed, useAttrs, ref, watch, useId, openBlock, createBlock, unref, normalizeStyle, normalizeClass, withCtx, createVNode, createElementBlock, createCommentVNode, createElementVNode, mergeProps, Transition, toDisplayString, withModifiers, createTextVNode, Fragment, renderList, nextTick } from "vue";
|
|
2
|
+
import { usePaletteControl } from "../composables/usePaletteCommands.js";
|
|
2
3
|
import { ComboboxRoot, ComboboxAnchor, ComboboxInput, ComboboxPortal, ComboboxContent, ComboboxViewport, ComboboxEmpty, ComboboxItem } from "reka-ui";
|
|
3
4
|
import { useFieldControl } from "../composables/useField.js";
|
|
4
5
|
import { useInputFilter } from "../composables/useInputFilter.js";
|
|
5
6
|
import { useLabels } from "../composables/useLpConfig.js";
|
|
6
7
|
import { CLOSE_ICON, POPOVER_PANEL, OPTION_ITEM, optionStagger } from "../components/dropdown.js";
|
|
7
|
-
import { _ as _sfc_main$1 } from "./LpIcon-
|
|
8
|
-
import { _ as _sfc_main$2 } from "./OptionContent-
|
|
8
|
+
import { _ as _sfc_main$1 } from "./LpIcon-DkP-9mzK.js";
|
|
9
|
+
import { _ as _sfc_main$2 } from "./OptionContent-DPzNsybd.js";
|
|
9
10
|
import { usePortalTarget, useOutsideGuard } from "../composables/useView.js";
|
|
10
11
|
const _hoisted_1 = ["src"];
|
|
11
12
|
const _hoisted_2 = { class: "relative flex min-w-0 flex-1 self-stretch" };
|
|
@@ -25,6 +26,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
25
26
|
...__default__,
|
|
26
27
|
__name: "LpAutocomplete",
|
|
27
28
|
props: {
|
|
29
|
+
palette: { type: [Boolean, Object], default: void 0 },
|
|
28
30
|
modelValue: {},
|
|
29
31
|
options: {},
|
|
30
32
|
placeholder: {},
|
|
@@ -159,6 +161,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
159
161
|
}
|
|
160
162
|
const portalTo = usePortalTarget();
|
|
161
163
|
const guardOutside = useOutsideGuard();
|
|
164
|
+
usePaletteControl({ disabled: () => field.value.disabled, invalid: () => field.value.invalid });
|
|
162
165
|
return (_ctx, _cache) => {
|
|
163
166
|
return openBlock(), createBlock(unref(ComboboxRoot), {
|
|
164
167
|
open: open.value,
|
|
@@ -2,7 +2,7 @@ import { defineComponent, computed, ref, onMounted, openBlock, createBlock, unre
|
|
|
2
2
|
import { AvatarRoot, AvatarImage, AvatarFallback } from "reka-ui";
|
|
3
3
|
import { tv } from "tailwind-variants";
|
|
4
4
|
import { MenuWhen } from "../components/menuWhen.js";
|
|
5
|
-
import { _ as _sfc_main$2 } from "./LpIcon-
|
|
5
|
+
import { _ as _sfc_main$2 } from "./LpIcon-DkP-9mzK.js";
|
|
6
6
|
import { _ as _sfc_main$1 } from "./LpIdenticon-BzdC_qz9.js";
|
|
7
7
|
import { useMergedAttrs } from "../composables/useMergedClass.js";
|
|
8
8
|
const __default__ = { inheritAttrs: false };
|
|
@@ -3,7 +3,7 @@ import { tv } from "tailwind-variants";
|
|
|
3
3
|
import { useLabels } from "../composables/useLpConfig.js";
|
|
4
4
|
import { useMergedClass } from "../composables/useMergedClass.js";
|
|
5
5
|
import { BADGE_REMOVE } from "../components/badge.js";
|
|
6
|
-
import { _ as _sfc_main$3 } from "./LpIcon-
|
|
6
|
+
import { _ as _sfc_main$3 } from "./LpIcon-DkP-9mzK.js";
|
|
7
7
|
import { _ as _sfc_main$2 } from "./LpRollingText-DiL717LK.js";
|
|
8
8
|
import { _ as _sfc_main$1 } from "./LpShift-DXNsauQZ.js";
|
|
9
9
|
import { slotText } from "../components/slotText.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, computed, ref, watch, openBlock, createElementBlock, mergeProps, unref, createVNode, withCtx, TransitionGroup, normalizeClass, Fragment, renderList, createBlock, createCommentVNode, resolveDynamicComponent } from "vue";
|
|
2
|
-
import { _ as _sfc_main$2 } from "./LpIcon-
|
|
2
|
+
import { _ as _sfc_main$2 } from "./LpIcon-DkP-9mzK.js";
|
|
3
3
|
import { _ as _sfc_main$3 } from "./LpRollingText-DiL717LK.js";
|
|
4
4
|
import { _ as _sfc_main$1 } from "./LpShift-DXNsauQZ.js";
|
|
5
5
|
import { useLabels, useLinkComponent } from "../composables/useLpConfig.js";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { defineComponent, useAttrs, getCurrentInstance, ref, computed, onMounted, onUpdated, openBlock, createBlock, resolveDynamicComponent, mergeProps, unref, withCtx, renderSlot, createElementBlock, normalizeClass, createVNode, createCommentVNode } from "vue";
|
|
2
|
+
import { usePaletteAction } from "../composables/usePaletteCommands.js";
|
|
2
3
|
import { tv } from "tailwind-variants";
|
|
3
4
|
import { HINT_SIGNALS, noteHotkeyTarget } from "../composables/useHintSystem.js";
|
|
4
5
|
import { hints } from "../composables/useHints.js";
|
|
@@ -13,6 +14,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
13
14
|
...__default__,
|
|
14
15
|
__name: "LpButton",
|
|
15
16
|
props: {
|
|
17
|
+
palette: { type: [Boolean, Object], default: void 0 },
|
|
16
18
|
variant: {},
|
|
17
19
|
size: {},
|
|
18
20
|
block: { type: Boolean },
|
|
@@ -205,6 +207,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
205
207
|
loading: busy.value
|
|
206
208
|
})
|
|
207
209
|
);
|
|
210
|
+
usePaletteAction({ label: () => typeof attrs["aria-label"] === "string" ? attrs["aria-label"] : void 0, element: () => rootEl(), disabled: () => props.disabled || busy.value });
|
|
208
211
|
return (_ctx, _cache) => {
|
|
209
212
|
return openBlock(), createBlock(resolveDynamicComponent(resolved.value.is), mergeProps({
|
|
210
213
|
ref_key: "root",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, computed, shallowRef, openBlock, createBlock, unref, mergeProps, withCtx, createVNode, normalizeClass, createElementVNode, createElementBlock, Fragment, renderList, createTextVNode, toDisplayString } from "vue";
|
|
2
2
|
import { today, getLocalTimeZone, parseDate } from "@internationalized/date";
|
|
3
3
|
import { CalendarRoot, CalendarHeader, CalendarPrev, CalendarHeading, CalendarNext, CalendarGrid, CalendarGridHead, CalendarGridRow, CalendarHeadCell, CalendarGridBody, CalendarCell, CalendarCellTrigger } from "reka-ui";
|
|
4
|
-
import { _ as _sfc_main$1 } from "./LpIcon-
|
|
4
|
+
import { _ as _sfc_main$1 } from "./LpIcon-DkP-9mzK.js";
|
|
5
5
|
import { useLabels } from "../composables/useLpConfig.js";
|
|
6
6
|
import { useMergedAttrs } from "../composables/useMergedClass.js";
|
|
7
7
|
import { CALENDAR_LABELS, CALENDAR_NAV, CALENDAR_FRAME } from "../components/calendar.js";
|