@leavepulse/ui 0.43.4 → 0.44.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 +75 -7
- package/dist/assets/{LpCommandPalette-B-0Est4Z.css → LpCommandPalette-DCP5g2ik.css} +21 -21
- package/dist/assets/{LpDropzone-BBoWvi-J.css → LpDropzone-i4BdMi1H.css} +12 -12
- package/dist/assets/{LpImageEditor-Ct7Y3aNu.css → LpImageEditor-CbMA82g8.css} +6 -6
- package/dist/assets/{LpShortcutsDialog-C6YoQ8_M.css → LpShortcutsDialog-ChUyU7oV.css} +7 -7
- package/dist/assets/{LpSkeleton-D7xU8IPV.css → LpSkeleton-H3Z5dEIk.css} +4 -1
- package/dist/assets/{LpTable-BgPLJOXa.css → LpTable-DDQNdf86.css} +9 -9
- package/dist/chunks/ContextMenuItems-CrfeNPWT.js +123 -0
- package/dist/chunks/{LayoutCanvas-Dd20boUG.js → LayoutCanvas-D-jPOAvg.js} +26 -9
- package/dist/chunks/{LayoutNode-DGpZA9LX.js → LayoutNode-D8Xy9N-o.js} +20 -8
- package/dist/chunks/{LpActionBar-BlvtGB2P.js → LpActionBar-BbwCF6l5.js} +24 -10
- package/dist/chunks/{LpAddressInput-B-Zvxsn7.js → LpAddressInput-BrOqkZqg.js} +53 -48
- package/dist/chunks/{LpAlert-BAYHDSS1.js → LpAlert-DkOIjsbq.js} +15 -8
- package/dist/chunks/{LpAppShell-BGQVIY-3.js → LpAppShell-BUKPcHco.js} +51 -24
- package/dist/chunks/{LpAutocomplete-DExlIZe_.js → LpAutocomplete-DxV3Y9h4.js} +50 -23
- package/dist/chunks/{LpAvatar-B3-xAOH3.js → LpAvatar-ClBbEYZN.js} +17 -8
- package/dist/chunks/LpBreadcrumbs-B8IJgFIc.js +95 -0
- package/dist/chunks/{LpButton-5VXXCjwF.js → LpButton-kqJBHIIb.js} +44 -14
- package/dist/chunks/{LpCard-BhI1N_vL.js → LpCard-CpRByR0q.js} +1 -1
- package/dist/chunks/{LpCheckbox-CVccKYaH.js → LpCheckbox-DpqchzH4.js} +7 -3
- package/dist/chunks/{LpCodeBlock-Bo0B4TFR.js → LpCodeBlock-DeHJPq7p.js} +48 -16
- package/dist/chunks/{LpColorPicker-BlXea7LM.js → LpColorPicker-Bhf1qxhB.js} +32 -9
- package/dist/chunks/{LpConfirmDialog-Q-bxff8z.js → LpConfirmDialog-CIUOSnWo.js} +58 -16
- package/dist/chunks/LpConfirmHost-CDm0Wtpv.js +49 -0
- package/dist/chunks/LpContextMenu-DQw5dGfG.js +68 -0
- package/dist/chunks/LpDatePicker-Drirx1AK.js +191 -0
- package/dist/chunks/{LpDrawer-BZ6k3hvo.js → LpDrawer-bScx-KMO.js} +63 -26
- package/dist/chunks/{LpFileTree-_5vFBgaK.js → LpFileTree-CSI_5SK2.js} +23 -8
- package/dist/chunks/{LpFileTreeNode-BdcIYKIE.js → LpFileTreeNode-B4MiSQX2.js} +2 -2
- package/dist/chunks/LpFormField-CIk5qosh.js +87 -0
- package/dist/chunks/{LpInput-9EXWUM9B.js → LpInput-C0e8y8_d.js} +26 -11
- package/dist/chunks/{LpLightbox-2sYVMY-S.js → LpLightbox-Mr0W_6HK.js} +147 -60
- package/dist/chunks/{LpLink-DCND-zyu.js → LpLink-Krkjhe_y.js} +15 -6
- package/dist/chunks/{LpLogViewer-CaRy5MeS.js → LpLogViewer-YBOaFnc_.js} +68 -34
- package/dist/chunks/{LpMapPicker-ul4oYno6.js → LpMapPicker-NUzS9e37.js} +38 -13
- package/dist/chunks/{LpMediaGallery-FF-NquIo.js → LpMediaGallery-DfJmMW0I.js} +6 -3
- package/dist/chunks/{LpModal-Bt0pQCI_.js → LpModal-DPwGKBPv.js} +49 -26
- package/dist/chunks/{LpModalNav-YaifHrXC.js → LpModalNav-DPg5H9f3.js} +9 -6
- package/dist/chunks/{LpNotificationBell-DyGGsMAM.js → LpNotificationBell-t5yn-siX.js} +58 -24
- package/dist/chunks/{LpNumberField-CWuX08iX.js → LpNumberField-DWnQKktS.js} +20 -7
- package/dist/chunks/{LpNumberFlow-amWYaeuA.js → LpNumberFlow-z4WPZcZu.js} +22 -12
- package/dist/chunks/{LpOtpInput-y2v-pmiN.js → LpOtpInput-CziPF3Oq.js} +37 -8
- package/dist/chunks/{LpPagination-5FxjmmB5.js → LpPagination-DFngX7Xo.js} +30 -19
- package/dist/chunks/{LpPasswordInput--sjYCkLS.js → LpPasswordInput-CWVDuBJ5.js} +10 -7
- package/dist/chunks/{LpPhoneInput-BDSKVl_z.js → LpPhoneInput-CD-ZTeSd.js} +57 -33
- package/dist/chunks/{LpPie-D6OnzwlJ.js → LpPie-BLco31Nx.js} +78 -21
- package/dist/chunks/{LpPopover-8268UmlC.js → LpPopover-p_e_shN3.js} +4 -2
- package/dist/chunks/{LpProgress-Btq5W4Ut.js → LpProgress-CBU1iI69.js} +5 -4
- package/dist/chunks/{LpRadioGroup-xPIuVDO_.js → LpRadioGroup-DmEW0l78.js} +9 -2
- package/dist/chunks/{LpSegmented-fV0Sk92p.js → LpSegmented-Dejd7cIx.js} +7 -3
- package/dist/chunks/{LpSelect-ANIVtrpM.js → LpSelect-DrRD9I7L.js} +40 -18
- package/dist/chunks/{LpSidebar-ClBUwoEz.js → LpSidebar-BgwUNWpJ.js} +30 -22
- package/dist/chunks/{LpSidebarNav-llOcs_Fn.js → LpSidebarNav-Bqxz8aWT.js} +14 -9
- package/dist/chunks/{LpSkeleton-CTI-vBgW.js → LpSkeleton-BB6XIV-w.js} +1 -1
- package/dist/chunks/{LpSlider-BwNIBkAK.js → LpSlider-Cuzmrd7p.js} +7 -2
- package/dist/chunks/{LpSparkline-C6xQ2dwv.js → LpSparkline-CB80N8SJ.js} +11 -4
- package/dist/chunks/{LpStat-CQaW8R--.js → LpStat-dXtyrdX9.js} +1 -1
- package/dist/chunks/{LpSwitch-Blizvqyt.js → LpSwitch-B1aLKulj.js} +40 -26
- package/dist/chunks/{LpTableOfContents-CjvxPMpU.js → LpTableOfContents-BUcAfGPQ.js} +36 -41
- package/dist/chunks/{LpTabs-Cefe_lys.js → LpTabs-_qMVaZJ6.js} +19 -5
- package/dist/chunks/LpTextarea-yP8hGedR.js +77 -0
- package/dist/chunks/LpThemeProvider-Wjm7Tuit.js +35 -0
- package/dist/chunks/LpThemeSwitcher-CKLc10KZ.js +169 -0
- package/dist/chunks/{LpTilt-DuyKbpkA.js → LpTilt-B7KHX1zH.js} +2 -2
- package/dist/chunks/{LpTimeField-K6nAGboX.js → LpTimeField-C5HRgS5H.js} +13 -7
- package/dist/chunks/{LpToaster-gDB1EaU3.js → LpToaster--oT6lfhL.js} +57 -28
- package/dist/chunks/{LpTooltip-hCLPAqMG.js → LpTooltip-CBdzeKNf.js} +13 -6
- package/dist/chunks/LpTooltipProvider-CftjV7Xc.js +25 -0
- package/dist/chunks/{LpTopologyCanvas-Cm1L39uL.js → LpTopologyCanvas-DocsLal3.js} +6 -1
- package/dist/chunks/{LpUptimeBar-DvAMno0S.js → LpUptimeBar-DLtxOMRy.js} +43 -14
- package/dist/chunks/{LpThemeSwitcher-Cue-myST.js → useTheme-C8JHUlPM.js} +173 -215
- package/dist/component-names.d.ts +1 -1
- package/dist/components/ContextMenuItems.vue.d.ts +8 -0
- package/dist/components/ContextMenuItems.vue.js +4 -0
- package/dist/components/LayoutCanvas.vue.js +1 -1
- package/dist/components/LayoutNode.vue.d.ts +4 -0
- package/dist/components/LayoutNode.vue.js +1 -1
- package/dist/components/LpActionBar.vue.d.ts +3 -0
- package/dist/components/LpActionBar.vue.js +1 -1
- package/dist/components/LpAddressInput.vue.d.ts +1 -1
- package/dist/components/LpAddressInput.vue.js +1 -1
- package/dist/components/LpAlert.vue.d.ts +9 -0
- package/dist/components/LpAlert.vue.js +1 -1
- package/dist/components/LpAppShell.vue.d.ts +10 -0
- package/dist/components/LpAppShell.vue.js +1 -1
- package/dist/components/LpAutocomplete.vue.d.ts +31 -6
- package/dist/components/LpAutocomplete.vue.js +1 -1
- package/dist/components/LpAvatar.vue.d.ts +3 -3
- package/dist/components/LpAvatar.vue.js +1 -1
- package/dist/components/LpBadge.vue.d.ts +2 -2
- package/dist/components/LpBreadcrumbs.vue.d.ts +13 -9
- package/dist/components/LpBreadcrumbs.vue.js +1 -1
- package/dist/components/LpButton.vue.d.ts +35 -98
- package/dist/components/LpButton.vue.js +1 -1
- package/dist/components/LpCard.vue.js +1 -1
- package/dist/components/LpChart.vue.d.ts +31 -2
- package/dist/components/LpChart.vue.js +317 -95
- package/dist/components/LpCheckbox.vue.js +1 -1
- package/dist/components/LpCodeBlock.vue.d.ts +2 -0
- package/dist/components/LpCodeBlock.vue.js +1 -1
- package/dist/components/LpColorPicker.vue.js +1 -1
- package/dist/components/LpCommandPalette.vue.d.ts +8 -3
- package/dist/components/LpCommandPalette.vue.js +86 -72
- package/dist/components/LpConfirmDialog.vue.d.ts +15 -3
- package/dist/components/LpConfirmDialog.vue.js +1 -1
- package/dist/components/LpConfirmHost.vue.d.ts +9 -0
- package/dist/components/LpConfirmHost.vue.js +4 -0
- package/dist/components/LpContextMenu.vue.d.ts +3 -5
- package/dist/components/LpContextMenu.vue.js +1 -1
- package/dist/components/LpDatePicker.vue.d.ts +24 -6
- package/dist/components/LpDatePicker.vue.js +1 -1
- package/dist/components/LpDrawer.vue.d.ts +10 -0
- package/dist/components/LpDrawer.vue.js +1 -1
- package/dist/components/LpDropzone.vue.js +22 -6
- package/dist/components/LpFileTree.vue.d.ts +11 -2
- package/dist/components/LpFileTree.vue.js +1 -1
- package/dist/components/LpFileTreeNode.vue.js +1 -1
- package/dist/components/LpFormField.vue.d.ts +9 -0
- package/dist/components/LpFormField.vue.js +1 -1
- package/dist/components/LpImageEditor.vue.js +92 -57
- package/dist/components/LpInput.vue.d.ts +3 -3
- package/dist/components/LpInput.vue.js +1 -1
- package/dist/components/LpLightbox.vue.d.ts +17 -0
- package/dist/components/LpLightbox.vue.js +1 -1
- package/dist/components/LpLink.vue.d.ts +11 -11
- package/dist/components/LpLink.vue.js +1 -1
- package/dist/components/LpLogViewer.vue.d.ts +20 -2
- package/dist/components/LpLogViewer.vue.js +1 -1
- package/dist/components/LpMapPicker.vue.d.ts +4 -4
- package/dist/components/LpMapPicker.vue.js +1 -1
- package/dist/components/LpMediaGallery.vue.js +1 -1
- package/dist/components/LpModal.vue.d.ts +16 -6
- package/dist/components/LpModal.vue.js +1 -1
- package/dist/components/LpModalNav.vue.d.ts +0 -1
- package/dist/components/LpModalNav.vue.js +1 -1
- package/dist/components/LpNotificationBell.vue.d.ts +11 -2
- package/dist/components/LpNotificationBell.vue.js +1 -1
- package/dist/components/LpNumberField.vue.d.ts +2 -0
- package/dist/components/LpNumberField.vue.js +1 -1
- package/dist/components/LpNumberFlow.vue.js +1 -1
- package/dist/components/LpOtpInput.vue.js +1 -1
- package/dist/components/LpPagination.vue.d.ts +2 -0
- package/dist/components/LpPagination.vue.js +1 -1
- package/dist/components/LpPasswordInput.vue.js +1 -1
- package/dist/components/LpPhoneInput.vue.js +1 -1
- package/dist/components/LpPie.vue.d.ts +21 -2
- package/dist/components/LpPie.vue.js +1 -1
- package/dist/components/LpPopover.vue.d.ts +2 -0
- package/dist/components/LpPopover.vue.js +1 -1
- package/dist/components/LpProgress.vue.js +1 -1
- package/dist/components/LpRadioGroup.vue.js +1 -1
- package/dist/components/LpSection.vue.d.ts +1 -1
- package/dist/components/LpSegmented.vue.d.ts +5 -0
- package/dist/components/LpSegmented.vue.js +1 -1
- package/dist/components/LpSelect.vue.d.ts +1 -0
- package/dist/components/LpSelect.vue.js +1 -1
- package/dist/components/LpShortcutsDialog.vue.d.ts +1 -1
- package/dist/components/LpShortcutsDialog.vue.js +11 -8
- package/dist/components/LpSidebar.vue.d.ts +6 -2
- package/dist/components/LpSidebar.vue.js +1 -1
- package/dist/components/LpSidebarNav.vue.js +1 -1
- package/dist/components/LpSkeleton.vue.js +1 -1
- package/dist/components/LpSlider.vue.js +1 -1
- package/dist/components/LpSparkline.vue.d.ts +1 -0
- package/dist/components/LpSparkline.vue.js +1 -1
- package/dist/components/LpStat.vue.js +1 -1
- package/dist/components/LpSwitch.vue.js +1 -1
- package/dist/components/LpTable.vue.d.ts +23 -1
- package/dist/components/LpTable.vue.js +74 -36
- package/dist/components/LpTableOfContents.vue.d.ts +4 -2
- package/dist/components/LpTableOfContents.vue.js +1 -1
- package/dist/components/LpTabs.vue.d.ts +2 -0
- package/dist/components/LpTabs.vue.js +1 -1
- package/dist/components/LpTextarea.vue.d.ts +19 -6
- package/dist/components/LpTextarea.vue.js +1 -1
- package/dist/components/LpThemeProvider.vue.d.ts +22 -0
- package/dist/components/LpThemeProvider.vue.js +4 -0
- package/dist/components/LpThemeSwitcher.vue.d.ts +13 -0
- package/dist/components/LpThemeSwitcher.vue.js +1 -1
- package/dist/components/LpTilt.vue.js +1 -1
- package/dist/components/LpTimeField.vue.js +1 -1
- package/dist/components/LpToaster.vue.d.ts +6 -1
- package/dist/components/LpToaster.vue.js +1 -1
- package/dist/components/LpTooltip.vue.d.ts +1 -2
- package/dist/components/LpTooltip.vue.js +1 -1
- package/dist/components/LpTooltipProvider.vue.d.ts +22 -0
- package/dist/components/LpTooltipProvider.vue.js +4 -0
- package/dist/components/LpTopologyCanvas.vue.js +1 -1
- package/dist/components/LpUptimeBar.vue.d.ts +4 -0
- package/dist/components/LpUptimeBar.vue.js +1 -1
- package/dist/components/chart.d.ts +32 -1
- package/dist/components/chart.js +39 -4
- package/dist/components/codeHighlight.d.ts +6 -0
- package/dist/components/codeHighlight.js +92 -20
- package/dist/components/color.d.ts +1 -1
- package/dist/components/color.js +20 -9
- package/dist/components/confirm.d.ts +25 -0
- package/dist/components/confirm.js +26 -0
- package/dist/components/countries.d.ts +6 -0
- package/dist/components/countries.js +7 -0
- package/dist/components/fileTree.js +16 -7
- package/dist/components/imageCrop.d.ts +42 -0
- package/dist/components/imageCrop.js +47 -0
- package/dist/components/link.d.ts +12 -0
- package/dist/components/link.js +19 -0
- package/dist/components/modalDepth.d.ts +18 -2
- package/dist/components/modalDepth.js +17 -5
- package/dist/components/otp.d.ts +5 -0
- package/dist/components/otp.js +10 -0
- package/dist/components/sidebar.d.ts +7 -1
- package/dist/components/tableSort.d.ts +8 -0
- package/dist/components/tableSort.js +31 -0
- package/dist/composables/useField.d.ts +34 -0
- package/dist/composables/useField.js +45 -0
- package/dist/composables/useFormDraft.d.ts +10 -3
- package/dist/composables/useFormDraft.js +9 -14
- package/dist/composables/useHotkeys.d.ts +17 -1
- package/dist/composables/useHotkeys.js +55 -18
- package/dist/composables/useInputFilter.d.ts +17 -0
- package/dist/composables/useInputFilter.js +47 -10
- package/dist/composables/useLpConfig.d.ts +24 -0
- package/dist/composables/useLpConfig.js +44 -0
- package/dist/composables/useRovingFocus.js +7 -0
- package/dist/composables/useTilt.d.ts +2 -2
- package/dist/composables/useTilt.js +5 -6
- package/dist/composables/useToast.d.ts +20 -0
- package/dist/composables/useToast.js +28 -4
- package/dist/composables/useZoomPan.d.ts +3 -3
- package/dist/composables/useZoomPan.js +4 -4
- package/dist/index.d.ts +32 -2
- package/dist/index.js +184 -137
- package/dist/layout/tree.d.ts +2 -0
- package/dist/layout/tree.js +16 -1
- package/dist/layout/useLayout.d.ts +15 -0
- package/dist/layout/useLayout.js +41 -14
- package/dist/theme/useTheme.d.ts +32 -9
- package/package.json +8 -7
- package/src/component-names.ts +5 -7
- package/src/components/ContextMenuItems.vue +88 -0
- package/src/components/LayoutCanvas.vue +26 -6
- package/src/components/LayoutNode.vue +19 -2
- package/src/components/LpActionBar.vue +30 -7
- package/src/components/LpAddressInput.vue +57 -41
- package/src/components/LpAlert.vue +16 -3
- package/src/components/LpAppShell.vue +45 -12
- package/src/components/LpAutocomplete.vue +46 -10
- package/src/components/LpAvatar.vue +19 -5
- package/src/components/LpBreadcrumbs.vue +65 -41
- package/src/components/LpButton.vue +59 -13
- package/src/components/LpChart.vue +272 -28
- package/src/components/LpCheckbox.vue +7 -3
- package/src/components/LpCodeBlock.vue +50 -14
- package/src/components/LpColorPicker.vue +39 -9
- package/src/components/LpCommandPalette.vue +34 -13
- package/src/components/LpConfirmDialog.vue +68 -17
- package/src/components/LpConfirmHost.vue +59 -0
- package/src/components/LpContextMenu.vue +14 -115
- package/src/components/LpDatePicker.vue +99 -68
- package/src/components/LpDrawer.vue +56 -19
- package/src/components/LpDropzone.vue +21 -4
- package/src/components/LpFileTree.vue +33 -7
- package/src/components/LpFormField.vue +30 -7
- package/src/components/LpImageEditor.vue +96 -57
- package/src/components/LpInput.vue +18 -7
- package/src/components/LpLightbox.vue +140 -29
- package/src/components/LpLink.vue +24 -13
- package/src/components/LpLogViewer.vue +86 -17
- package/src/components/LpMapPicker.vue +36 -13
- package/src/components/LpMediaGallery.vue +8 -2
- package/src/components/LpModal.vue +53 -27
- package/src/components/LpModalNav.vue +5 -2
- package/src/components/LpNotificationBell.vue +63 -17
- package/src/components/LpNumberField.vue +21 -6
- package/src/components/LpNumberFlow.vue +26 -10
- package/src/components/LpOtpInput.vue +43 -8
- package/src/components/LpPagination.vue +23 -7
- package/src/components/LpPasswordInput.vue +4 -1
- package/src/components/LpPhoneInput.vue +53 -27
- package/src/components/LpPie.vue +94 -15
- package/src/components/LpPopover.vue +3 -0
- package/src/components/LpProgress.vue +5 -3
- package/src/components/LpRadioGroup.vue +9 -2
- package/src/components/LpSegmented.vue +12 -2
- package/src/components/LpSelect.vue +0 -0
- package/src/components/LpShortcutsDialog.vue +8 -3
- package/src/components/LpSidebar.vue +14 -9
- package/src/components/LpSidebarNav.vue +17 -5
- package/src/components/LpSkeleton.vue +4 -1
- package/src/components/LpSlider.vue +7 -1
- package/src/components/LpSparkline.vue +11 -3
- package/src/components/LpSwitch.vue +30 -7
- package/src/components/LpTable.vue +91 -32
- package/src/components/LpTableOfContents.vue +50 -32
- package/src/components/LpTabs.vue +23 -6
- package/src/components/LpTextarea.vue +44 -6
- package/src/components/LpThemeProvider.vue +41 -0
- package/src/components/LpThemeSwitcher.vue +64 -17
- package/src/components/LpTilt.vue +2 -2
- package/src/components/LpTimeField.vue +14 -3
- package/src/components/LpToaster.vue +66 -26
- package/src/components/LpTooltip.vue +22 -5
- package/src/components/LpTooltipProvider.vue +24 -0
- package/src/components/LpTopologyCanvas.vue +12 -1
- package/src/components/LpUptimeBar.vue +46 -8
- package/src/components/chart.ts +77 -5
- package/src/components/codeHighlight.ts +111 -15
- package/src/components/color.ts +30 -9
- package/src/components/confirm.ts +58 -0
- package/src/components/countries.ts +12 -0
- package/src/components/fileTree.ts +19 -7
- package/src/components/imageCrop.ts +107 -0
- package/src/components/link.ts +34 -0
- package/src/components/modalDepth.ts +48 -6
- package/src/components/otp.ts +16 -0
- package/src/components/sidebar.ts +7 -1
- package/src/components/tableSort.ts +37 -0
- package/src/composables/useField.ts +79 -0
- package/src/composables/useFormDraft.ts +25 -20
- package/src/composables/useHotkeys.ts +89 -18
- package/src/composables/useInputFilter.ts +77 -14
- package/src/composables/useLpConfig.ts +87 -0
- package/src/composables/useRovingFocus.ts +11 -0
- package/src/composables/useTilt.ts +5 -6
- package/src/composables/useToast.ts +56 -4
- package/src/composables/useZoomPan.ts +6 -6
- package/src/index.ts +37 -2
- package/src/layout/tree.ts +30 -0
- package/src/layout/useLayout.ts +68 -18
- package/src/nuxt.ts +59 -17
- package/src/runtime/config.plugin.ts +14 -0
- package/src/runtime/theme.plugin.ts +42 -22
- package/src/theme/useTheme.ts +206 -100
- package/dist/chunks/LpBreadcrumbs-p4jHe_V-.js +0 -62
- package/dist/chunks/LpContextMenu-CwW1QXe_.js +0 -217
- package/dist/chunks/LpDatePicker-CwOToxGq.js +0 -164
- package/dist/chunks/LpFormField-CazBc2-a.js +0 -62
- package/dist/chunks/LpTextarea-t7F6gv8E.js +0 -47
|
@@ -70,6 +70,11 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
70
70
|
* `provideGlass`, and without one it is off.
|
|
71
71
|
*/
|
|
72
72
|
glass?: boolean;
|
|
73
|
+
/** Accessible name for a drawer without a visible `title`. */
|
|
74
|
+
ariaLabel?: string;
|
|
75
|
+
labels?: Partial<{
|
|
76
|
+
close: string;
|
|
77
|
+
}>;
|
|
73
78
|
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
74
79
|
"update:open": (value: boolean) => any;
|
|
75
80
|
}, string, import("vue").PublicProps, Readonly<{
|
|
@@ -142,6 +147,11 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
142
147
|
* `provideGlass`, and without one it is off.
|
|
143
148
|
*/
|
|
144
149
|
glass?: boolean;
|
|
150
|
+
/** Accessible name for a drawer without a visible `title`. */
|
|
151
|
+
ariaLabel?: string;
|
|
152
|
+
labels?: Partial<{
|
|
153
|
+
close: string;
|
|
154
|
+
}>;
|
|
145
155
|
}> & Readonly<{
|
|
146
156
|
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
147
157
|
}>, {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { defineComponent, ref, onMounted, onBeforeUnmount, openBlock, createElementBlock, mergeProps, unref, withModifiers, createElementVNode, renderSlot, createVNode, normalizeClass, toDisplayString, createCommentVNode } from "vue";
|
|
1
|
+
import { defineComponent, ref, onMounted, watch, onBeforeUnmount, openBlock, createElementBlock, mergeProps, unref, withModifiers, createElementVNode, renderSlot, createVNode, normalizeClass, toDisplayString, createCommentVNode } from "vue";
|
|
2
2
|
import { useMergedAttrs } from "../composables/useMergedClass.js";
|
|
3
3
|
import { useReveal } from "../composables/useReveal.js";
|
|
4
4
|
import { _ as _sfc_main$1 } from "../chunks/LpIcon-CCnX5_2j.js";
|
|
5
5
|
import { _ as _export_sfc } from "../chunks/_plugin-vue_export-helper-1tPrXgE0.js";
|
|
6
|
-
import '../assets/LpDropzone-
|
|
6
|
+
import '../assets/LpDropzone-i4BdMi1H.css';const _hoisted_1 = ["disabled"];
|
|
7
7
|
const _hoisted_2 = {
|
|
8
8
|
key: 0,
|
|
9
9
|
class: "text-sm font-medium text-ink"
|
|
@@ -92,15 +92,31 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
92
92
|
el.value = "";
|
|
93
93
|
}
|
|
94
94
|
function windowPaste(event) {
|
|
95
|
-
if (props.disabled) return;
|
|
95
|
+
if (props.disabled || event.defaultPrevented) return;
|
|
96
96
|
const target = event.target;
|
|
97
97
|
if (target?.closest("input, textarea, [contenteditable]")) return;
|
|
98
98
|
onPaste(event);
|
|
99
99
|
}
|
|
100
|
+
let listening = false;
|
|
101
|
+
function listen(on) {
|
|
102
|
+
if (on === listening || typeof window === "undefined") return;
|
|
103
|
+
listening = on;
|
|
104
|
+
if (on) window.addEventListener("paste", windowPaste);
|
|
105
|
+
else window.removeEventListener("paste", windowPaste);
|
|
106
|
+
}
|
|
107
|
+
let mounted = false;
|
|
100
108
|
onMounted(() => {
|
|
101
|
-
|
|
109
|
+
mounted = true;
|
|
110
|
+
listen(props.pasteTarget);
|
|
111
|
+
});
|
|
112
|
+
watch(
|
|
113
|
+
() => props.pasteTarget,
|
|
114
|
+
(on) => mounted && listen(on)
|
|
115
|
+
);
|
|
116
|
+
onBeforeUnmount(() => {
|
|
117
|
+
mounted = false;
|
|
118
|
+
listen(false);
|
|
102
119
|
});
|
|
103
|
-
onBeforeUnmount(() => window.removeEventListener("paste", windowPaste));
|
|
104
120
|
__expose({ browse: () => input.value?.click() });
|
|
105
121
|
const { class: rootClass, attrs: rest } = useMergedAttrs(() => [
|
|
106
122
|
"lp-dropzone relative flex w-full flex-col items-center gap-2 rounded-card px-6 py-8 text-center transition-colors duration-[var(--duration-fast)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-55",
|
|
@@ -163,7 +179,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
163
179
|
};
|
|
164
180
|
}
|
|
165
181
|
});
|
|
166
|
-
const LpDropzone = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
182
|
+
const LpDropzone = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-6f6d375e"]]);
|
|
167
183
|
export {
|
|
168
184
|
LpDropzone as default
|
|
169
185
|
};
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import { type FileNode } from "./fileTree";
|
|
2
2
|
export type { FileNode } from "./fileTree";
|
|
3
3
|
/** Rolled-up stats for the ticked entries — what a backup picker summarises. */
|
|
4
|
+
export interface FileTreeLabels {
|
|
5
|
+
[key: string]: string;
|
|
6
|
+
empty: string;
|
|
7
|
+
emptyDescription: string;
|
|
8
|
+
file: string;
|
|
9
|
+
files: string;
|
|
10
|
+
folder: string;
|
|
11
|
+
folders: string;
|
|
12
|
+
}
|
|
4
13
|
export interface FileTreeSummary {
|
|
5
14
|
/** Ticked files (directories excluded — they're containers, not payload). */
|
|
6
15
|
files: number;
|
|
@@ -43,6 +52,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
43
52
|
/** Empty-state copy when `nodes` is empty. */
|
|
44
53
|
emptyLabel?: string;
|
|
45
54
|
emptyDescription?: string;
|
|
55
|
+
labels?: Partial<FileTreeLabels>;
|
|
46
56
|
}, {
|
|
47
57
|
reveal: (id: string) => void;
|
|
48
58
|
expandAll: () => void;
|
|
@@ -89,6 +99,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
89
99
|
/** Empty-state copy when `nodes` is empty. */
|
|
90
100
|
emptyLabel?: string;
|
|
91
101
|
emptyDescription?: string;
|
|
102
|
+
labels?: Partial<FileTreeLabels>;
|
|
92
103
|
}> & Readonly<{
|
|
93
104
|
onExpand?: ((node: FileNode) => any) | undefined;
|
|
94
105
|
onSelect?: ((node: FileNode) => any) | undefined;
|
|
@@ -102,12 +113,10 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
102
113
|
sort: boolean;
|
|
103
114
|
loading: boolean;
|
|
104
115
|
skeletonRows: number;
|
|
105
|
-
emptyLabel: string;
|
|
106
116
|
iconSize: number;
|
|
107
117
|
checkable: boolean;
|
|
108
118
|
showSize: boolean;
|
|
109
119
|
showModified: boolean;
|
|
110
|
-
emptyDescription: string;
|
|
111
120
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
112
121
|
/** Replace the row's label (icons, chevron and indent stay). */
|
|
113
122
|
row(props: {
|
|
@@ -5,14 +5,23 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
5
5
|
hint?: string;
|
|
6
6
|
error?: string;
|
|
7
7
|
required?: boolean;
|
|
8
|
+
/** Id of the control; generated when unset. The label points at it. */
|
|
9
|
+
id?: string;
|
|
10
|
+
invalid?: boolean;
|
|
11
|
+
disabled?: boolean;
|
|
8
12
|
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
9
13
|
label?: string;
|
|
10
14
|
hint?: string;
|
|
11
15
|
error?: string;
|
|
12
16
|
required?: boolean;
|
|
17
|
+
/** Id of the control; generated when unset. The label points at it. */
|
|
18
|
+
id?: string;
|
|
19
|
+
invalid?: boolean;
|
|
20
|
+
disabled?: boolean;
|
|
13
21
|
}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
14
22
|
default?: (props: {
|
|
15
23
|
id: string;
|
|
24
|
+
describedBy: string | undefined;
|
|
16
25
|
}) => any;
|
|
17
26
|
} & {
|
|
18
27
|
hint?: (props: {}) => any;
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { defineComponent,
|
|
1
|
+
import { defineComponent, shallowRef, ref, watch, computed, onBeforeUnmount, openBlock, createElementBlock, mergeProps, unref, createElementVNode, withModifiers, normalizeStyle, normalizeClass, createCommentVNode, createVNode, Transition, withCtx, Fragment, renderList, toDisplayString, createBlock, createTextVNode } from "vue";
|
|
2
|
+
import { useLabels } from "../composables/useLpConfig.js";
|
|
3
|
+
import { isSideways, coverScale, cropGeometry } from "./imageCrop.js";
|
|
2
4
|
import { useHotkeys } from "../composables/useHotkeys.js";
|
|
3
5
|
import { useReveal } from "../composables/useReveal.js";
|
|
4
6
|
import { useZoomPan } from "../composables/useZoomPan.js";
|
|
5
|
-
import { _ as _sfc_main$1 } from "../chunks/LpButton-
|
|
7
|
+
import { _ as _sfc_main$1 } from "../chunks/LpButton-kqJBHIIb.js";
|
|
6
8
|
import "reka-ui";
|
|
7
9
|
import { _ as _sfc_main$2 } from "../chunks/LpIcon-CCnX5_2j.js";
|
|
8
10
|
import { useMergedAttrs } from "../composables/useMergedClass.js";
|
|
9
11
|
import { _ as _export_sfc } from "../chunks/_plugin-vue_export-helper-1tPrXgE0.js";
|
|
10
|
-
import '../assets/LpImageEditor-
|
|
12
|
+
import '../assets/LpImageEditor-CbMA82g8.css';const _hoisted_1 = ["aria-label"];
|
|
11
13
|
const _hoisted_2 = ["src"];
|
|
12
14
|
const _hoisted_3 = {
|
|
13
15
|
key: 0,
|
|
@@ -33,15 +35,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
33
35
|
setup(__props, { expose: __expose }) {
|
|
34
36
|
const props = __props;
|
|
35
37
|
const { el: revealAnchor, revealed } = useReveal({ immediate: () => !props.animate });
|
|
36
|
-
const text =
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
38
|
+
const text = useLabels(
|
|
39
|
+
"imageEditor",
|
|
40
|
+
{
|
|
41
|
+
rotateLeft: "Rotate left",
|
|
42
|
+
rotateRight: "Rotate right",
|
|
43
|
+
zoomIn: "Zoom in",
|
|
44
|
+
zoomOut: "Zoom out",
|
|
45
|
+
reset: "Reset",
|
|
46
|
+
canvas: "Crop area — arrows pan, +/− zoom, R rotates, Alt+wheel turns freely"
|
|
47
|
+
},
|
|
48
|
+
() => props.labels
|
|
49
|
+
);
|
|
45
50
|
const ASPECTS = {
|
|
46
51
|
free: null,
|
|
47
52
|
square: 1,
|
|
@@ -54,17 +59,38 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
54
59
|
const rotation = ref(0);
|
|
55
60
|
const viewport = ref(null);
|
|
56
61
|
const zoom = useZoomPan({ min: 1, max: 6 });
|
|
57
|
-
|
|
62
|
+
const frameSize = ref(null);
|
|
63
|
+
let frameObserver = null;
|
|
64
|
+
watch(viewport, (el) => {
|
|
65
|
+
zoom.setViewport(el);
|
|
66
|
+
frameObserver?.disconnect();
|
|
67
|
+
frameObserver = null;
|
|
68
|
+
if (!el) return;
|
|
69
|
+
frameSize.value = { width: el.clientWidth, height: el.clientHeight };
|
|
70
|
+
if (typeof ResizeObserver !== "undefined") {
|
|
71
|
+
frameObserver = new ResizeObserver(([entry]) => {
|
|
72
|
+
frameSize.value = { width: entry.contentRect.width, height: entry.contentRect.height };
|
|
73
|
+
});
|
|
74
|
+
frameObserver.observe(el);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
58
77
|
const upright = computed(() => (rotation.value % 360 + 360) % 360);
|
|
59
78
|
const edited = computed(() => upright.value !== 0 || zoom.scale.value !== 1);
|
|
79
|
+
let generation = 0;
|
|
60
80
|
watch(
|
|
61
81
|
() => props.file,
|
|
62
82
|
async (file) => {
|
|
63
83
|
revoke();
|
|
64
84
|
rotation.value = 0;
|
|
65
85
|
zoom.reset();
|
|
86
|
+
const mine = ++generation;
|
|
66
87
|
objectUrl.value = URL.createObjectURL(file);
|
|
67
|
-
|
|
88
|
+
const decoded = await decode(file, objectUrl.value);
|
|
89
|
+
if (mine !== generation) {
|
|
90
|
+
if (decoded instanceof ImageBitmap) decoded.close();
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
source.value = decoded;
|
|
68
94
|
},
|
|
69
95
|
{ immediate: true }
|
|
70
96
|
);
|
|
@@ -91,7 +117,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
91
117
|
if (source.value instanceof ImageBitmap) source.value.close();
|
|
92
118
|
source.value = null;
|
|
93
119
|
}
|
|
94
|
-
onBeforeUnmount(
|
|
120
|
+
onBeforeUnmount(() => {
|
|
121
|
+
generation++;
|
|
122
|
+
revoke();
|
|
123
|
+
frameObserver?.disconnect();
|
|
124
|
+
});
|
|
95
125
|
function rotate(by) {
|
|
96
126
|
rotation.value += by;
|
|
97
127
|
const { x, y } = zoom.offset.value;
|
|
@@ -110,13 +140,31 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
110
140
|
if (ratio) return ratio;
|
|
111
141
|
const size = sourceSize.value;
|
|
112
142
|
if (!size) return 1;
|
|
113
|
-
const turned =
|
|
143
|
+
const turned = isSideways(rotation.value);
|
|
114
144
|
const w = turned ? size.height : size.width;
|
|
115
145
|
const h = turned ? size.width : size.height;
|
|
116
146
|
return w / h;
|
|
117
147
|
});
|
|
118
148
|
const frameStyle = computed(() => ({ aspectRatio: String(boxRatio.value) }));
|
|
149
|
+
const sized = computed(() => {
|
|
150
|
+
const size = sourceSize.value;
|
|
151
|
+
const frame = frameSize.value;
|
|
152
|
+
if (!size || !frame || !frame.width || !frame.height) return null;
|
|
153
|
+
const cover = coverScale(size.width, size.height, frame.width, frame.height, rotation.value);
|
|
154
|
+
const width = size.width * cover;
|
|
155
|
+
const height = size.height * cover;
|
|
156
|
+
return {
|
|
157
|
+
width: `${width}px`,
|
|
158
|
+
height: `${height}px`,
|
|
159
|
+
left: "50%",
|
|
160
|
+
top: "50%",
|
|
161
|
+
marginLeft: `${-width / 2}px`,
|
|
162
|
+
marginTop: `${-height / 2}px`,
|
|
163
|
+
maxWidth: "none"
|
|
164
|
+
};
|
|
165
|
+
});
|
|
119
166
|
const imageStyle = computed(() => ({
|
|
167
|
+
...sized.value,
|
|
120
168
|
...zoom.style.value,
|
|
121
169
|
// Rotation sits innermost, after the composable's scale and translate, so a
|
|
122
170
|
// drag still moves the picture the way the pointer went once it is turned.
|
|
@@ -133,37 +181,26 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
133
181
|
const frame = viewport.value;
|
|
134
182
|
if (!picture || !size || !frame) return null;
|
|
135
183
|
if (!edited.value && props.aspect === "free") return null;
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
uprightW - cropW / 2
|
|
147
|
-
);
|
|
148
|
-
const centreY = clamp(
|
|
149
|
-
uprightH / 2 - zoom.offset.value.y / cover,
|
|
150
|
-
cropH / 2,
|
|
151
|
-
uprightH - cropH / 2
|
|
152
|
-
);
|
|
153
|
-
const scale = Math.min(1, props.maxEdge / Math.max(cropW, cropH));
|
|
184
|
+
const crop = cropGeometry({
|
|
185
|
+
sourceWidth: size.width,
|
|
186
|
+
sourceHeight: size.height,
|
|
187
|
+
frameWidth: frameSize.value?.width ?? frame.clientWidth,
|
|
188
|
+
frameHeight: frameSize.value?.height ?? frame.clientHeight,
|
|
189
|
+
rotation: rotation.value,
|
|
190
|
+
scale: zoom.scale.value,
|
|
191
|
+
offset: zoom.offset.value
|
|
192
|
+
});
|
|
193
|
+
const scale = Math.min(1, props.maxEdge / Math.max(crop.width, crop.height));
|
|
154
194
|
const canvas = document.createElement("canvas");
|
|
155
|
-
canvas.width = Math.max(1, Math.round(
|
|
156
|
-
canvas.height = Math.max(1, Math.round(
|
|
195
|
+
canvas.width = Math.max(1, Math.round(crop.width * scale));
|
|
196
|
+
canvas.height = Math.max(1, Math.round(crop.height * scale));
|
|
157
197
|
const ctx = canvas.getContext("2d");
|
|
158
198
|
if (!ctx) return null;
|
|
159
199
|
ctx.translate(canvas.width / 2, canvas.height / 2);
|
|
160
|
-
ctx.rotate(upright.value * Math.PI / 180);
|
|
161
200
|
ctx.scale(scale, scale);
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
const readY = (turned ? centreX : centreY) - readH / 2;
|
|
166
|
-
ctx.drawImage(picture, readX, readY, readW, readH, -readW / 2, -readH / 2, readW, readH);
|
|
201
|
+
ctx.translate(-crop.centre.x, -crop.centre.y);
|
|
202
|
+
ctx.rotate(rotation.value * Math.PI / 180);
|
|
203
|
+
ctx.drawImage(picture, -size.width / 2, -size.height / 2);
|
|
167
204
|
return await new Promise(
|
|
168
205
|
(resolve) => canvas.toBlob(resolve, outputType.value, props.quality)
|
|
169
206
|
);
|
|
@@ -173,9 +210,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
173
210
|
if (props.type !== "source") return props.type;
|
|
174
211
|
return ENCODABLE.has(props.file.type) ? props.file.type : "image/png";
|
|
175
212
|
});
|
|
176
|
-
function clamp(value, low, high) {
|
|
177
|
-
return Math.min(Math.max(value, low), Math.max(low, high));
|
|
178
|
-
}
|
|
179
213
|
function onWheel(event) {
|
|
180
214
|
if (event.altKey) {
|
|
181
215
|
event.preventDefault();
|
|
@@ -232,7 +266,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
232
266
|
ref: viewport,
|
|
233
267
|
tabindex: "0",
|
|
234
268
|
role: "application",
|
|
235
|
-
"aria-label": text.
|
|
269
|
+
"aria-label": unref(text).canvas,
|
|
236
270
|
class: "relative w-full overflow-hidden rounded-card border border-line bg-surface-soft focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
237
271
|
style: normalizeStyle(frameStyle.value),
|
|
238
272
|
onWheel: withModifiers(onWheel, ["prevent"]),
|
|
@@ -250,7 +284,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
250
284
|
src: objectUrl.value,
|
|
251
285
|
alt: "",
|
|
252
286
|
draggable: "false",
|
|
253
|
-
class: normalizeClass(["lp-editor__image absolute
|
|
287
|
+
class: normalizeClass(["lp-editor__image absolute select-none motion-reduce:transition-none", [
|
|
288
|
+
sized.value ? "" : "inset-0 size-full object-cover",
|
|
254
289
|
unref(zoom).panning.value ? "cursor-grabbing" : "cursor-grab",
|
|
255
290
|
__props.animate && !unref(revealed) ? "lp-editor__image--waiting" : ""
|
|
256
291
|
]]),
|
|
@@ -280,8 +315,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
280
315
|
createVNode(_sfc_main$1, {
|
|
281
316
|
size: "sm",
|
|
282
317
|
variant: "ghost",
|
|
283
|
-
title: text.
|
|
284
|
-
"aria-label": text.
|
|
318
|
+
title: unref(text).rotateLeft,
|
|
319
|
+
"aria-label": unref(text).rotateLeft,
|
|
285
320
|
onClick: _cache[4] || (_cache[4] = ($event) => rotate(-90))
|
|
286
321
|
}, {
|
|
287
322
|
default: withCtx(() => [
|
|
@@ -295,8 +330,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
295
330
|
createVNode(_sfc_main$1, {
|
|
296
331
|
size: "sm",
|
|
297
332
|
variant: "ghost",
|
|
298
|
-
title: text.
|
|
299
|
-
"aria-label": text.
|
|
333
|
+
title: unref(text).rotateRight,
|
|
334
|
+
"aria-label": unref(text).rotateRight,
|
|
300
335
|
onClick: _cache[5] || (_cache[5] = ($event) => rotate(90))
|
|
301
336
|
}, {
|
|
302
337
|
default: withCtx(() => [
|
|
@@ -313,8 +348,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
313
348
|
size: "sm",
|
|
314
349
|
variant: "ghost",
|
|
315
350
|
disabled: unref(zoom).scale.value <= 1,
|
|
316
|
-
title: text.
|
|
317
|
-
"aria-label": text.
|
|
351
|
+
title: unref(text).zoomOut,
|
|
352
|
+
"aria-label": unref(text).zoomOut,
|
|
318
353
|
onClick: _cache[6] || (_cache[6] = ($event) => unref(zoom).zoomBy(1 / 1.2))
|
|
319
354
|
}, {
|
|
320
355
|
default: withCtx(() => [
|
|
@@ -329,8 +364,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
329
364
|
createVNode(_sfc_main$1, {
|
|
330
365
|
size: "sm",
|
|
331
366
|
variant: "ghost",
|
|
332
|
-
title: text.
|
|
333
|
-
"aria-label": text.
|
|
367
|
+
title: unref(text).zoomIn,
|
|
368
|
+
"aria-label": unref(text).zoomIn,
|
|
334
369
|
onClick: _cache[7] || (_cache[7] = ($event) => unref(zoom).zoomBy(1.2))
|
|
335
370
|
}, {
|
|
336
371
|
default: withCtx(() => [
|
|
@@ -354,7 +389,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
354
389
|
name: "lucide:undo-2",
|
|
355
390
|
size: 15
|
|
356
391
|
}),
|
|
357
|
-
createTextVNode(" " + toDisplayString(text.
|
|
392
|
+
createTextVNode(" " + toDisplayString(unref(text).reset), 1)
|
|
358
393
|
]),
|
|
359
394
|
_: 1
|
|
360
395
|
})) : createCommentVNode("", true)
|
|
@@ -363,7 +398,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
363
398
|
};
|
|
364
399
|
}
|
|
365
400
|
});
|
|
366
|
-
const LpImageEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
401
|
+
const LpImageEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b510205a"]]);
|
|
367
402
|
export {
|
|
368
403
|
LpImageEditor as default
|
|
369
404
|
};
|
|
@@ -2,7 +2,7 @@ declare const _default: typeof __VLS_export;
|
|
|
2
2
|
export default _default;
|
|
3
3
|
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
4
4
|
modelValue?: string;
|
|
5
|
-
size?: "
|
|
5
|
+
size?: "md" | "sm" | "lg" | undefined;
|
|
6
6
|
invalid?: boolean;
|
|
7
7
|
placeholder?: string;
|
|
8
8
|
type?: string;
|
|
@@ -37,7 +37,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
37
37
|
"update:modelValue": (value: string) => any;
|
|
38
38
|
}, string, import("vue").PublicProps, Readonly<{
|
|
39
39
|
modelValue?: string;
|
|
40
|
-
size?: "
|
|
40
|
+
size?: "md" | "sm" | "lg" | undefined;
|
|
41
41
|
invalid?: boolean;
|
|
42
42
|
placeholder?: string;
|
|
43
43
|
type?: string;
|
|
@@ -67,7 +67,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
67
67
|
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
68
68
|
}>, {
|
|
69
69
|
type: string;
|
|
70
|
-
size: "
|
|
70
|
+
size: "md" | "sm" | "lg";
|
|
71
71
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
72
72
|
leading?: (props: {}) => any;
|
|
73
73
|
} & {
|
|
@@ -1,4 +1,20 @@
|
|
|
1
1
|
import { type LightboxItem } from "./lightbox";
|
|
2
|
+
export type LightboxLabels = {
|
|
3
|
+
viewer: string;
|
|
4
|
+
/** `{index}` and `{total}` are filled in. */
|
|
5
|
+
position: string;
|
|
6
|
+
previous: string;
|
|
7
|
+
next: string;
|
|
8
|
+
zoomIn: string;
|
|
9
|
+
zoomOut: string;
|
|
10
|
+
rotate: string;
|
|
11
|
+
copy: string;
|
|
12
|
+
download: string;
|
|
13
|
+
close: string;
|
|
14
|
+
failed: string;
|
|
15
|
+
spoiler: string;
|
|
16
|
+
reveal: string;
|
|
17
|
+
};
|
|
2
18
|
type __VLS_Props = {
|
|
3
19
|
open?: boolean;
|
|
4
20
|
/** Images to page through. */
|
|
@@ -17,6 +33,7 @@ type __VLS_Props = {
|
|
|
17
33
|
loop?: boolean;
|
|
18
34
|
/** Largest zoom level. */
|
|
19
35
|
maxZoom?: number;
|
|
36
|
+
labels?: Partial<LightboxLabels>;
|
|
20
37
|
};
|
|
21
38
|
type __VLS_Slots = {
|
|
22
39
|
/** Replace the caption block under the image. */
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { type Component } from "vue";
|
|
2
|
+
import { type LinkTarget } from "./link";
|
|
2
3
|
declare const _default: typeof __VLS_export;
|
|
3
4
|
export default _default;
|
|
4
5
|
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
5
6
|
href?: string;
|
|
7
|
+
/** Router destination; rendered through the configured link component. */
|
|
8
|
+
to?: LinkTarget;
|
|
6
9
|
external?: boolean;
|
|
7
10
|
/** Shorthand for `tone="muted"`. */
|
|
8
11
|
muted?: boolean;
|
|
@@ -14,11 +17,9 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
14
17
|
*/
|
|
15
18
|
tone?: "brand" | "ink" | "muted" | "soft";
|
|
16
19
|
/**
|
|
17
|
-
* Root element/component.
|
|
18
|
-
* component
|
|
19
|
-
*
|
|
20
|
-
* Router links take their destination through their own prop (`to`), which
|
|
21
|
-
* falls through as a plain attribute.
|
|
20
|
+
* Root element/component. By default an internal `to`/`href` renders the
|
|
21
|
+
* link component set with provideLpConfig (NuxtLink under the Nuxt module),
|
|
22
|
+
* anything else a native <a>. Pass a component here to override per link.
|
|
22
23
|
*/
|
|
23
24
|
as?: string | Component;
|
|
24
25
|
/**
|
|
@@ -42,6 +43,8 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
42
43
|
revealOn?: "self" | "group";
|
|
43
44
|
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
44
45
|
href?: string;
|
|
46
|
+
/** Router destination; rendered through the configured link component. */
|
|
47
|
+
to?: LinkTarget;
|
|
45
48
|
external?: boolean;
|
|
46
49
|
/** Shorthand for `tone="muted"`. */
|
|
47
50
|
muted?: boolean;
|
|
@@ -53,11 +56,9 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
53
56
|
*/
|
|
54
57
|
tone?: "brand" | "ink" | "muted" | "soft";
|
|
55
58
|
/**
|
|
56
|
-
* Root element/component.
|
|
57
|
-
* component
|
|
58
|
-
*
|
|
59
|
-
* Router links take their destination through their own prop (`to`), which
|
|
60
|
-
* falls through as a plain attribute.
|
|
59
|
+
* Root element/component. By default an internal `to`/`href` renders the
|
|
60
|
+
* link component set with provideLpConfig (NuxtLink under the Nuxt module),
|
|
61
|
+
* anything else a native <a>. Pass a component here to override per link.
|
|
61
62
|
*/
|
|
62
63
|
as?: string | Component;
|
|
63
64
|
/**
|
|
@@ -80,7 +81,6 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
80
81
|
*/
|
|
81
82
|
revealOn?: "self" | "group";
|
|
82
83
|
}> & Readonly<{}>, {
|
|
83
|
-
as: string | Component;
|
|
84
84
|
variant: "default" | "underline" | "reveal";
|
|
85
85
|
revealOn: "self" | "group";
|
|
86
86
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
@@ -1,4 +1,22 @@
|
|
|
1
1
|
import { type ContextMenuItemDef } from "./LpContextMenu.vue";
|
|
2
|
+
export interface LogViewerLabels {
|
|
3
|
+
[key: string]: string;
|
|
4
|
+
empty: string;
|
|
5
|
+
frozen: string;
|
|
6
|
+
noMatch: string;
|
|
7
|
+
loadingOlder: string;
|
|
8
|
+
copyMessage: string;
|
|
9
|
+
copyLine: string;
|
|
10
|
+
copyTimestamp: string;
|
|
11
|
+
copied: string;
|
|
12
|
+
/** `{source}` is replaced by the line's source. */
|
|
13
|
+
filterSource: string;
|
|
14
|
+
/** `{level}` is replaced by the line's level. */
|
|
15
|
+
filterLevel: string;
|
|
16
|
+
/** `{n}` is replaced by the count. */
|
|
17
|
+
identical: string;
|
|
18
|
+
jump: string;
|
|
19
|
+
}
|
|
2
20
|
export type LogLevel = "trace" | "debug" | "info" | "warn" | "error" | "fatal" | "success";
|
|
3
21
|
export interface LogLine {
|
|
4
22
|
/** Body of the line. */
|
|
@@ -69,6 +87,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
69
87
|
* so a duplicate level word / timestamp doesn't repeat in the message body.
|
|
70
88
|
*/
|
|
71
89
|
parse?: boolean;
|
|
90
|
+
labels?: Partial<LogViewerLabels>;
|
|
72
91
|
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
73
92
|
filter: (by: {
|
|
74
93
|
source?: string;
|
|
@@ -133,6 +152,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
133
152
|
* so a duplicate level word / timestamp doesn't repeat in the message body.
|
|
134
153
|
*/
|
|
135
154
|
parse?: boolean;
|
|
155
|
+
labels?: Partial<LogViewerLabels>;
|
|
136
156
|
}> & Readonly<{
|
|
137
157
|
onFilter?: ((by: {
|
|
138
158
|
source?: string;
|
|
@@ -142,12 +162,10 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
142
162
|
}>, {
|
|
143
163
|
height: string;
|
|
144
164
|
wrap: boolean;
|
|
145
|
-
emptyLabel: string;
|
|
146
165
|
lineNumbers: boolean;
|
|
147
166
|
showTime: boolean;
|
|
148
167
|
showLevel: boolean;
|
|
149
168
|
tail: boolean;
|
|
150
|
-
frozenLabel: string;
|
|
151
169
|
rowMenu: boolean;
|
|
152
170
|
parse: boolean;
|
|
153
171
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|