@leavepulse/ui 0.87.0 → 0.88.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/dist/assets/{LpCommandPalette-DCZB4EAf.css → LpCommandPalette-CO_5TFOQ.css} +38 -19
- package/dist/assets/{LpDropzone-CfL3Vrx4.css → LpDropzone-CVGUQqgY.css} +10 -10
- package/dist/assets/{LpImageEditor-y3B-aW3H.css → LpImageEditor-D_ECuegW.css} +6 -6
- package/dist/assets/{LpTable-ClBFQeTd.css → LpTable-BqZNpWgC.css} +25 -25
- package/dist/chunks/{ContextMenuItems-D0jObgzN.js → ContextMenuItems-LujPZSWM.js} +2 -1
- package/dist/chunks/{DropzoneLinkField-DhwYRnvd.js → DropzoneLinkField-Ckuh8zFC.js} +2 -2
- package/dist/chunks/{IconCloseButton-CmWOJAXG.js → IconCloseButton-C_V7qngw.js} +1 -1
- package/dist/chunks/{LpActionBar-Cx_MSZl9.js → LpActionBar-43WHmTsM.js} +1 -1
- package/dist/chunks/{LpAddressInput-CfqQR5jE.js → LpAddressInput-BCqR0zmv.js} +5 -5
- package/dist/chunks/{LpAlert-CYtbpRYW.js → LpAlert-Q0h7Gucu.js} +1 -1
- package/dist/chunks/{LpAppShell-BQG98odS.js → LpAppShell-BWaVRsDB.js} +3 -3
- package/dist/chunks/{LpAutocomplete-VNID5zdy.js → LpAutocomplete-YPxAPHEo.js} +5 -5
- package/dist/chunks/{LpButton-DSHioIfD.js → LpButton-BvVoF-PO.js} +1 -1
- package/dist/chunks/{LpCheckbox-P7tEw8GO.js → LpCheckbox-C9VnPIQf.js} +1 -1
- package/dist/chunks/{LpCodeBlock-BNThgUdQ.js → LpCodeBlock-BgWcg2mk.js} +3 -3
- package/dist/chunks/{LpCodeDisplay-DsiE-Qy9.js → LpCodeDisplay-DBi1YPLp.js} +3 -3
- package/dist/chunks/{LpColorPicker-EXpwcX-t.js → LpColorPicker-KGMG8QEh.js} +4 -4
- package/dist/chunks/{LpConfirmDialog-DPiPVRn_.js → LpConfirmDialog-y6k0ryWR.js} +2 -2
- package/dist/chunks/{LpConfirmHost-Ddiljlog.js → LpConfirmHost-D-X0tDym.js} +1 -1
- package/dist/chunks/{LpContextMenu-DYpDm6iI.js → LpContextMenu-DEFirphS.js} +3 -3
- package/dist/chunks/{LpContextSwitcher-BPDSkKyA.js → LpContextSwitcher-COw6GHPW.js} +1 -1
- package/dist/chunks/{LpCopyButton-CxX682t4.js → LpCopyButton-BGzw95Xc.js} +2 -2
- package/dist/chunks/{LpDataList-DCtF7krm.js → LpDataList-B56Gu6Yt.js} +3 -3
- package/dist/chunks/{LpDatePicker-BElEHVm6.js → LpDatePicker-Dlyvgsan.js} +2 -2
- package/dist/chunks/{LpDateRangePicker-vLt-drEu.js → LpDateRangePicker-CAn2yGbn.js} +1 -1
- package/dist/chunks/{LpDrawer-C97k-3L2.js → LpDrawer-iRHwJOGn.js} +4 -4
- package/dist/chunks/{LpDropdownMenu-BPEsqZCN.js → LpDropdownMenu-CdCe7D2d.js} +3 -3
- package/dist/chunks/{LpEditable-CeRAzYMv.js → LpEditable-DfRUAGkA.js} +2 -2
- package/dist/chunks/{LpEmptyState-DrHBR3yh.js → LpEmptyState-DLOm07KH.js} +1 -1
- package/dist/chunks/{LpFileTree-BcQgsw4e.js → LpFileTree-BN_zybBN.js} +3 -3
- package/dist/chunks/{LpFileTreeNode-Dk2WqkPF.js → LpFileTreeNode-CC48DbT5.js} +3 -3
- package/dist/chunks/{LpHintLayer-CUSRLtLu.js → LpHintLayer-nuMqfzvy.js} +3 -3
- package/dist/chunks/{LpHints-BF40CP4_.js → LpHints-ByAd3a76.js} +3 -3
- package/dist/chunks/{LpHoverCard-CHE9jAJG.js → LpHoverCard-DYguY2AP.js} +10 -61
- package/dist/chunks/{LpInput-BU5IsOlE.js → LpInput-DGMpxrcg.js} +1 -1
- package/dist/chunks/{LpInspector-CEko6-pS.js → LpInspector-oTfkOdYd.js} +2 -2
- package/dist/chunks/{LpLightbox-REei-y5e.js → LpLightbox-a24V_0Wk.js} +19 -7
- package/dist/chunks/{LpLogInspector-Bwz351LY.js → LpLogInspector-BhJTJIst.js} +1 -1
- package/dist/chunks/{LpLogViewer-BCkqdH66.js → LpLogViewer-BuIzr_6h.js} +4 -4
- package/dist/chunks/{LpMediaGallery-BF1Bch3v.js → LpMediaGallery-B7DOV_aL.js} +2 -2
- package/dist/chunks/{LpModal-BK2T5uIG.js → LpModal-D1E7rQzw.js} +5 -5
- package/dist/chunks/{LpModalNav-Dk4eHpg6.js → LpModalNav-DivqT1NV.js} +5 -4
- package/dist/chunks/{LpNotificationBell-CMwUXhFg.js → LpNotificationBell-KRgdRZs-.js} +4 -4
- package/dist/chunks/{LpNotificationFeed-BXsRp9jm.js → LpNotificationFeed-CMGYU8c-.js} +5 -5
- package/dist/chunks/{LpNumberField-QUMXvpqx.js → LpNumberField-C0LSu-tl.js} +1 -1
- package/dist/chunks/{LpPaletteTheme-wiJtP5hV.js → LpPaletteTheme-CLwO-SDf.js} +3 -3
- package/dist/chunks/{LpPasswordInput-W9AZfzaL.js → LpPasswordInput-LPVI7D3v.js} +2 -2
- package/dist/chunks/{LpPhoneInput-DsRv-Qla.js → LpPhoneInput-BdglZsGH.js} +5 -5
- package/dist/chunks/{LpPie-pbrNFbRP.js → LpPie-CsiBXe-e.js} +3 -3
- package/dist/chunks/{LpPipeline-BHWmvOiv.js → LpPipeline-DVcoSs--.js} +1 -1
- package/dist/chunks/{LpPopover-BQSuxtai.js → LpPopover-w2rr4x7n.js} +2 -2
- package/dist/chunks/{LpRadio-CWA5Eb3M.js → LpRadio-4KyxeSz4.js} +1 -1
- package/dist/chunks/{LpRadioGroup-D94KMStE.js → LpRadioGroup-Cr_fmrBY.js} +1 -1
- package/dist/chunks/{LpRangeSlider-CkP9hYUC.js → LpRangeSlider-DbaITHtC.js} +1 -1
- package/dist/chunks/{LpRelativeTime-0zI-44ve.js → LpRelativeTime-CN5bWD73.js} +1 -1
- package/dist/chunks/{LpRepeater-DLLcbQ6J.js → LpRepeater-C0rns2xW.js} +1 -1
- package/dist/chunks/{LpSecretField-Au7ZQTtm.js → LpSecretField-BwrZ4TfT.js} +5 -5
- package/dist/chunks/{LpSection-RKCwB0xN.js → LpSection-CwsfNR7N.js} +1 -1
- package/dist/chunks/{LpSegmented-DD8MPj4j.js → LpSegmented-DzFYP0ZF.js} +1 -1
- package/dist/chunks/{LpSelect-BeXz1TWh.js → LpSelect-Dffg5r4I.js} +5 -5
- package/dist/chunks/{LpSidebar-DUFlf6Uu.js → LpSidebar-DQtCYlT4.js} +4 -4
- package/dist/chunks/{LpSidebarNav-C34YEZIR.js → LpSidebarNav-CFcI7--7.js} +1 -1
- package/dist/chunks/{LpSidebarRow-BeEGgsZi.js → LpSidebarRow-C5jXpcRL.js} +2 -2
- package/dist/chunks/{LpSlider-BCy5rjwK.js → LpSlider-DUd4gXnw.js} +1 -1
- package/dist/chunks/{LpStat-eVz7iUfD.js → LpStat-SyVb5JXm.js} +1 -1
- package/dist/chunks/{LpSwitch-D7hmVsif.js → LpSwitch-D-mcaA6C.js} +1 -1
- package/dist/chunks/{LpTableFilter-BGFNKyUX.js → LpTableFilter-CILHffC1.js} +3 -3
- package/dist/chunks/{LpTagsInput-D9uOSlvf.js → LpTagsInput-DD8-xe3F.js} +2 -2
- package/dist/chunks/{LpTextarea-DwE-lQt4.js → LpTextarea-CQg-dVxN.js} +1 -1
- package/dist/chunks/{LpThemeStudio-COn2H76d.js → LpThemeStudio-BPPctXgd.js} +4 -4
- package/dist/chunks/{LpThemeSwitcher-B3R3nNid.js → LpThemeSwitcher-B3c44xFH.js} +4 -4
- package/dist/chunks/{LpTimeField-Mi8H1g_9.js → LpTimeField-Dio7Tj9A.js} +1 -1
- package/dist/chunks/{LpToaster-DOJn6Vey.js → LpToaster-Cdx1tnHB.js} +2 -2
- package/dist/chunks/{LpTooltip-Bz_rrq5S.js → LpTooltip-BKde8Xjv.js} +43 -7
- package/dist/chunks/{LpTopologyCanvas-5RFMP4gR.js → LpTopologyCanvas-CQ0l6A5h.js} +3 -3
- package/dist/chunks/{LpTour-DUI_hoPv.js → LpTour-BGUKUxSZ.js} +1 -1
- package/dist/chunks/{LpTruncate-CynJhsEw.js → LpTruncate-C_C8eiIE.js} +2 -2
- package/dist/chunks/{LpUptimeBar-G7PfNJUH.js → LpUptimeBar-Dt6SY_-m.js} +1 -1
- package/dist/chunks/{LpVideoCompress-CPUxXh-c.js → LpVideoCompress-CvxNdyjp.js} +2 -2
- package/dist/chunks/{LpVideoPlayer-BbCjEQAx.js → LpVideoPlayer-FMuxTAU8.js} +4 -4
- package/dist/chunks/{LpWindow-Dp_0nNqg.js → LpWindow-DsPeiDCZ.js} +1 -1
- package/dist/chunks/{LpWorkspaceSwitcher-bjkncjSl.js → LpWorkspaceSwitcher-DCIiOQt_.js} +4 -4
- package/dist/chunks/{PickerField-CjOTUXDK.js → PickerField-DzF3UVnX.js} +1 -1
- package/dist/chunks/{RevealToggle-Bl1NcfxB.js → RevealToggle-BsYxY6Oz.js} +2 -2
- package/dist/chunks/{TourCard-BovXtMbO.js → TourCard-yrLqv4Oz.js} +1 -1
- package/dist/chunks/{VideoVolume-DE3i1ree.js → VideoVolume-CzL5mZPE.js} +2 -2
- package/dist/components/ContextMenuItems.vue.js +1 -1
- package/dist/components/DropzoneLinkField.vue.js +1 -1
- package/dist/components/IconCloseButton.vue.js +1 -1
- package/dist/components/LpActionBar.vue.js +1 -1
- package/dist/components/LpAddressInput.vue.js +1 -1
- package/dist/components/LpAlert.vue.js +1 -1
- package/dist/components/LpAppShell.vue.js +1 -1
- package/dist/components/LpAutocomplete.vue.js +1 -1
- package/dist/components/LpButton.vue.js +1 -1
- package/dist/components/LpChart.vue.js +2 -2
- package/dist/components/LpCheckbox.vue.js +1 -1
- package/dist/components/LpCodeBlock.vue.js +1 -1
- package/dist/components/LpCodeDisplay.vue.js +1 -1
- package/dist/components/LpColorPicker.vue.js +1 -1
- package/dist/components/LpCommandPalette.vue.d.ts +2 -0
- package/dist/components/LpCommandPalette.vue.js +69 -33
- package/dist/components/LpConfirmDialog.vue.js +1 -1
- package/dist/components/LpConfirmHost.vue.js +1 -1
- package/dist/components/LpContextMenu.vue.js +1 -1
- package/dist/components/LpContextSwitcher.vue.js +1 -1
- package/dist/components/LpCopyButton.vue.js +1 -1
- package/dist/components/LpDataList.vue.js +1 -1
- package/dist/components/LpDatePicker.vue.js +1 -1
- package/dist/components/LpDateRangePicker.vue.js +1 -1
- package/dist/components/LpDock.vue.js +1 -1
- package/dist/components/LpDrawer.vue.js +1 -1
- package/dist/components/LpDropdownMenu.vue.js +1 -1
- package/dist/components/LpDropzone.vue.js +5 -5
- package/dist/components/LpEditable.vue.js +1 -1
- package/dist/components/LpEmptyState.vue.js +1 -1
- package/dist/components/LpFileTree.vue.js +1 -1
- package/dist/components/LpFileTreeNode.vue.js +1 -1
- package/dist/components/LpHintLayer.vue.js +1 -1
- package/dist/components/LpHints.vue.js +1 -1
- package/dist/components/LpHoverCard.vue.d.ts +3 -3
- package/dist/components/LpHoverCard.vue.js +1 -1
- package/dist/components/LpImageEditor.vue.js +4 -4
- package/dist/components/LpInput.vue.js +1 -1
- package/dist/components/LpInspector.vue.js +1 -1
- package/dist/components/LpLightbox.vue.js +1 -1
- package/dist/components/LpLogInspector.vue.js +1 -1
- package/dist/components/LpLogViewer.vue.js +1 -1
- 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/LpNotificationFeed.vue.js +1 -1
- package/dist/components/LpNumberField.vue.js +1 -1
- package/dist/components/LpPaletteTheme.vue.js +1 -1
- package/dist/components/LpPasswordInput.vue.js +1 -1
- package/dist/components/LpPhoneInput.vue.js +1 -1
- package/dist/components/LpPie.vue.js +1 -1
- package/dist/components/LpPipeline.vue.js +1 -1
- package/dist/components/LpPopover.vue.js +1 -1
- package/dist/components/LpRadio.vue.js +1 -1
- package/dist/components/LpRadioGroup.vue.js +1 -1
- package/dist/components/LpRangeSlider.vue.js +1 -1
- package/dist/components/LpRelativeTime.vue.js +1 -1
- package/dist/components/LpRepeater.vue.js +1 -1
- package/dist/components/LpSecretField.vue.js +1 -1
- package/dist/components/LpSection.vue.js +1 -1
- package/dist/components/LpSegmented.vue.js +1 -1
- package/dist/components/LpSelect.vue.js +1 -1
- package/dist/components/LpShortcutsDialog.vue.js +1 -1
- package/dist/components/LpSidebar.vue.js +1 -1
- package/dist/components/LpSidebarNav.vue.js +1 -1
- package/dist/components/LpSidebarRow.vue.js +1 -1
- package/dist/components/LpSlider.vue.js +1 -1
- package/dist/components/LpStat.vue.js +1 -1
- package/dist/components/LpSwitch.vue.js +1 -1
- package/dist/components/LpTable.vue.js +16 -13
- package/dist/components/LpTableFilter.vue.js +1 -1
- package/dist/components/LpTabs.vue.js +1 -1
- package/dist/components/LpTagsInput.vue.js +1 -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.js +1 -1
- package/dist/components/LpToaster.vue.js +1 -1
- package/dist/components/LpTooltip.vue.d.ts +9 -0
- 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.js +1 -1
- package/dist/components/LpVideoCompress.vue.js +1 -1
- package/dist/components/LpVideoPlayer.vue.js +1 -1
- package/dist/components/LpVideoTrim.vue.js +4 -4
- package/dist/components/LpWindow.vue.js +1 -1
- package/dist/components/LpWorkspaceSwitcher.vue.js +1 -1
- 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/VideoVolume.vue.js +1 -1
- package/dist/components/badge.d.ts +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/dropdown.d.ts +14 -0
- package/dist/components/dropdown.js +7 -1
- package/dist/components/menuWhen.js +1 -1
- package/dist/components/modalDepth.d.ts +1 -0
- package/dist/components/modalDepth.js +2 -0
- package/dist/composables/useReveal.js +3 -3
- package/dist/composables/useTouchHold.d.ts +19 -0
- package/dist/composables/useTouchHold.js +60 -0
- package/dist/index.js +72 -71
- package/package.json +1 -1
- package/src/components/ContextMenuItems.vue +2 -1
- package/src/components/IconCloseButton.vue +1 -1
- package/src/components/LpAlert.vue +1 -1
- package/src/components/LpAutocomplete.vue +4 -4
- package/src/components/LpButton.vue +1 -1
- package/src/components/LpCheckbox.vue +1 -1
- package/src/components/LpCodeBlock.vue +2 -2
- package/src/components/LpColorPicker.vue +3 -3
- package/src/components/LpCommandPalette.vue +89 -7
- package/src/components/LpContextMenu.vue +2 -2
- package/src/components/LpDataList.vue +1 -1
- package/src/components/LpDrawer.vue +7 -4
- package/src/components/LpDropdownMenu.vue +2 -2
- package/src/components/LpDropzone.vue +2 -2
- package/src/components/LpEditable.vue +2 -2
- package/src/components/LpEmptyState.vue +1 -1
- package/src/components/LpFileTreeNode.vue +1 -1
- package/src/components/LpHintLayer.vue +2 -2
- package/src/components/LpHoverCard.vue +11 -80
- package/src/components/LpImageEditor.vue +1 -1
- package/src/components/LpInput.vue +1 -1
- package/src/components/LpLightbox.vue +20 -3
- package/src/components/LpModal.vue +4 -4
- package/src/components/LpModalNav.vue +2 -1
- package/src/components/LpNumberField.vue +1 -1
- package/src/components/LpPhoneInput.vue +5 -5
- package/src/components/LpPopover.vue +2 -2
- package/src/components/LpRadio.vue +1 -1
- package/src/components/LpRadioGroup.vue +1 -1
- package/src/components/LpRangeSlider.vue +1 -1
- package/src/components/LpSection.vue +9 -6
- package/src/components/LpSegmented.vue +1 -1
- package/src/components/LpSelect.vue +4 -4
- package/src/components/LpSlider.vue +1 -1
- package/src/components/LpStat.vue +1 -1
- package/src/components/LpSwitch.vue +1 -1
- package/src/components/LpTable.vue +6 -1
- package/src/components/LpTableFilter.vue +1 -1
- package/src/components/LpTagsInput.vue +2 -2
- package/src/components/LpTextarea.vue +1 -1
- package/src/components/LpThemeSwitcher.vue +2 -2
- package/src/components/LpTimeField.vue +1 -1
- package/src/components/LpToaster.vue +1 -1
- package/src/components/LpTooltip.vue +59 -5
- package/src/components/badge.ts +1 -1
- package/src/components/dropdown.ts +24 -0
- package/src/components/modalDepth.ts +6 -0
- package/src/composables/useReveal.ts +7 -4
- package/src/composables/useTouchHold.ts +92 -0
- package/src/locales/uk.ts +1 -0
- package/src/tokens/utilities.css +34 -0
package/dist/components/badge.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const BADGE_REMOVE = "grid size-4 shrink-0 place-items-center rounded-pill text-muted outline-none transition-colors duration-fast hover:bg-ink/10 hover:text-ink focus-visible:ring-2 focus-visible:ring-ring";
|
|
1
|
+
const BADGE_REMOVE = "lp-tap grid size-4 shrink-0 place-items-center rounded-pill text-muted outline-none transition-colors duration-fast hover:bg-ink/10 hover:text-ink focus-visible:ring-2 focus-visible:ring-ring";
|
|
2
2
|
export {
|
|
3
3
|
BADGE_REMOVE
|
|
4
4
|
};
|
|
@@ -14,6 +14,19 @@ export declare const PANEL_SURFACE = "group rounded-control border border-line b
|
|
|
14
14
|
* rest use z-(--z-popover)).
|
|
15
15
|
*/
|
|
16
16
|
export declare const POPOVER_PANEL: string;
|
|
17
|
+
/**
|
|
18
|
+
* Keeps a free-form panel (popover, menu, hover card) inside the window. Its
|
|
19
|
+
* width stops 0.5rem short of each edge, so a w-96 panel or a long menu label
|
|
20
|
+
* no longer runs off a phone; its height stops at the room reka measured on the
|
|
21
|
+
* side it opened, and the rest scrolls. A date picker opened in landscape used
|
|
22
|
+
* to hang off the top of the screen with its first weeks out of reach.
|
|
23
|
+
*/
|
|
24
|
+
export declare const PANEL_FIT = "max-w-[calc(100vw-1rem)] max-h-(--reka-popper-available-height) overflow-y-auto";
|
|
25
|
+
/**
|
|
26
|
+
* A list row on a touch screen: 2.5rem tall instead of 2, so a thumb picks the
|
|
27
|
+
* row it is on and not its neighbour. A mouse keeps the compact row.
|
|
28
|
+
*/
|
|
29
|
+
export declare const TOUCH_ROW = "[@media(hover:none)_and_(pointer:coarse)]:py-2.5";
|
|
17
30
|
/**
|
|
18
31
|
* A selectable option row: layout, highlight state, and the staggered cascade.
|
|
19
32
|
* Cascades downward by default and upward when the panel is flipped above the
|
|
@@ -40,4 +53,5 @@ export declare const COMBOBOX_PANEL: {
|
|
|
40
53
|
readonly position: "popper";
|
|
41
54
|
readonly sideOffset: 6;
|
|
42
55
|
};
|
|
56
|
+
export declare const COMBOBOX_FIT = "flex flex-col max-h-[min(18rem,var(--reka-popper-available-height,18rem))]";
|
|
43
57
|
export declare const CLOSE_ICON: string;
|
|
@@ -3,19 +3,25 @@ const POPOVER_ANIM = "data-[state=open]:animate-[popover-in_140ms_var(--ease-emp
|
|
|
3
3
|
const TOOLTIP_ANIM = "data-[state=delayed-open]:animate-[popover-in_120ms_var(--ease-emphasized)] data-[state=closed]:animate-[popover-out_100ms_ease] data-[side=top]:data-[state=delayed-open]:animate-[popover-in-up_120ms_var(--ease-emphasized)] data-[side=top]:data-[state=closed]:animate-[popover-out-up_100ms_ease]";
|
|
4
4
|
const PANEL_SURFACE = "group rounded-control border border-line bg-surface-overlay shadow-panel backdrop-blur";
|
|
5
5
|
const POPOVER_PANEL = PANEL_SURFACE + " " + POPOVER_ANIM;
|
|
6
|
-
const
|
|
6
|
+
const PANEL_FIT = "max-w-[calc(100vw-1rem)] max-h-(--reka-popper-available-height) overflow-y-auto";
|
|
7
|
+
const TOUCH_ROW = "[@media(hover:none)_and_(pointer:coarse)]:py-2.5";
|
|
8
|
+
const OPTION_ITEM = "flex cursor-pointer items-center gap-2 rounded-inner px-2.5 py-1.5 text-sm text-ink outline-none " + TOUCH_ROW + " animate-[rise-in_180ms_var(--ease-emphasized)_both] [--rise:-6px] group-data-[side=top]:[--rise:6px] data-[highlighted]:bg-brand-soft data-[highlighted]:text-brand";
|
|
7
9
|
const optionStagger = (index) => ({
|
|
8
10
|
animationDelay: `${staggerDelay(index, 0, 22, 12)}ms`
|
|
9
11
|
});
|
|
10
12
|
const COMBOBOX_PANEL = { collisionPadding: 8, position: "popper", sideOffset: 6 };
|
|
13
|
+
const COMBOBOX_FIT = "flex flex-col max-h-[min(18rem,var(--reka-popper-available-height,18rem))]";
|
|
11
14
|
const CLOSE_ICON = "transition-transform duration-medium ease-[var(--ease-emphasized)] group-hover:rotate-90 group-active:scale-90 motion-reduce:group-hover:rotate-0";
|
|
12
15
|
export {
|
|
13
16
|
CLOSE_ICON,
|
|
17
|
+
COMBOBOX_FIT,
|
|
14
18
|
COMBOBOX_PANEL,
|
|
15
19
|
OPTION_ITEM,
|
|
20
|
+
PANEL_FIT,
|
|
16
21
|
PANEL_SURFACE,
|
|
17
22
|
POPOVER_ANIM,
|
|
18
23
|
POPOVER_PANEL,
|
|
19
24
|
TOOLTIP_ANIM,
|
|
25
|
+
TOUCH_ROW,
|
|
20
26
|
optionStagger
|
|
21
27
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ComputedRef } from "vue";
|
|
2
|
+
export declare const MODAL_MAX_HEIGHT = "min(90vh, calc(100dvh - 2rem - env(safe-area-inset-top) - env(safe-area-inset-bottom)))";
|
|
2
3
|
export interface ModalLayer {
|
|
3
4
|
/** Join the stack on top. Ignored on the server, where nothing would ever release it. */
|
|
4
5
|
claim: () => void;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ref, computed } from "vue";
|
|
2
2
|
const STEP = 20;
|
|
3
|
+
const MODAL_MAX_HEIGHT = "min(90vh, calc(100dvh - 2rem - env(safe-area-inset-top) - env(safe-area-inset-bottom)))";
|
|
3
4
|
const STATE_KEY = /* @__PURE__ */ Symbol.for("@leavepulse/ui:modal-stack");
|
|
4
5
|
const g = globalThis;
|
|
5
6
|
const state = g[STATE_KEY] ??= { stack: ref([]), nextId: 0, elements: /* @__PURE__ */ new Map() };
|
|
@@ -41,6 +42,7 @@ function topModalElement() {
|
|
|
41
42
|
return state.elements.get(id)?.() ?? null;
|
|
42
43
|
}
|
|
43
44
|
export {
|
|
45
|
+
MODAL_MAX_HEIGHT,
|
|
44
46
|
anyModalOpen,
|
|
45
47
|
topModalElement,
|
|
46
48
|
useModalLayer
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { nodeWindow } from "./realm.js";
|
|
2
|
-
import { ref,
|
|
2
|
+
import { ref, toValue, watch, onBeforeUnmount } from "vue";
|
|
3
3
|
import { prefersReducedMotion } from "./easing.js";
|
|
4
4
|
function useReveal(options = {}) {
|
|
5
5
|
const { threshold = 0.25, rootMargin = "0px" } = options;
|
|
6
6
|
const el = ref(null);
|
|
7
|
-
const revealed = ref(
|
|
7
|
+
const revealed = ref(!!toValue(options.immediate));
|
|
8
8
|
let observer = null;
|
|
9
9
|
function stop() {
|
|
10
10
|
observer?.disconnect();
|
|
@@ -17,7 +17,7 @@ function useReveal(options = {}) {
|
|
|
17
17
|
watch(
|
|
18
18
|
[el, () => toValue(options.immediate)],
|
|
19
19
|
([node, immediate]) => {
|
|
20
|
-
if (revealed.value) return;
|
|
20
|
+
if (revealed.value || typeof window === "undefined") return;
|
|
21
21
|
if (immediate || prefersReducedMotion()) {
|
|
22
22
|
reveal();
|
|
23
23
|
return;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface TouchHoldOptions {
|
|
2
|
+
/** Whether a touch press may start a hold now. */
|
|
3
|
+
enabled: () => boolean;
|
|
4
|
+
/** How long the finger must stay, in ms. */
|
|
5
|
+
delay: () => number;
|
|
6
|
+
onHold: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function useTouchHold(options: TouchHoldOptions): {
|
|
9
|
+
/** Drops a hold in progress, as if the finger had been lifted off the screen. */
|
|
10
|
+
cancel: () => void;
|
|
11
|
+
handlers: {
|
|
12
|
+
onPointerdown: (event: PointerEvent) => void;
|
|
13
|
+
onPointermove: (event: PointerEvent) => void;
|
|
14
|
+
onPointerup: (event: PointerEvent) => void;
|
|
15
|
+
onPointercancel: (event?: PointerEvent) => void;
|
|
16
|
+
onClickCapture: (event: MouseEvent) => void;
|
|
17
|
+
onContextmenu: (event: Event) => void;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { onBeforeUnmount } from "vue";
|
|
2
|
+
const SLOP = 8;
|
|
3
|
+
const CLICK_AFTER_RELEASE_MS = 350;
|
|
4
|
+
function useTouchHold(options) {
|
|
5
|
+
let timer = 0;
|
|
6
|
+
let finger = null;
|
|
7
|
+
let start = { x: 0, y: 0 };
|
|
8
|
+
let held = false;
|
|
9
|
+
function stop() {
|
|
10
|
+
window.clearTimeout(timer);
|
|
11
|
+
timer = 0;
|
|
12
|
+
}
|
|
13
|
+
function onPointerDown(event) {
|
|
14
|
+
if (timer && event.pointerId !== finger) return;
|
|
15
|
+
held = false;
|
|
16
|
+
if (event.pointerType !== "touch" || !options.enabled()) return;
|
|
17
|
+
finger = event.pointerId;
|
|
18
|
+
start = { x: event.clientX, y: event.clientY };
|
|
19
|
+
stop();
|
|
20
|
+
timer = window.setTimeout(() => {
|
|
21
|
+
timer = 0;
|
|
22
|
+
held = true;
|
|
23
|
+
options.onHold();
|
|
24
|
+
}, options.delay());
|
|
25
|
+
}
|
|
26
|
+
function onPointerMove(event) {
|
|
27
|
+
if (!timer || event.pointerId !== finger) return;
|
|
28
|
+
if (Math.hypot(event.clientX - start.x, event.clientY - start.y) > SLOP) stop();
|
|
29
|
+
}
|
|
30
|
+
function onPointerUp(event) {
|
|
31
|
+
if (finger !== null && event.pointerId !== finger) return;
|
|
32
|
+
finger = null;
|
|
33
|
+
stop();
|
|
34
|
+
if (held) window.setTimeout(() => held = false, CLICK_AFTER_RELEASE_MS);
|
|
35
|
+
}
|
|
36
|
+
function onPointerCancel(event) {
|
|
37
|
+
if (event && finger !== null && event.pointerId !== finger) return;
|
|
38
|
+
finger = null;
|
|
39
|
+
stop();
|
|
40
|
+
held = false;
|
|
41
|
+
}
|
|
42
|
+
function onClickCapture(event) {
|
|
43
|
+
if (!held) return;
|
|
44
|
+
held = false;
|
|
45
|
+
event.preventDefault();
|
|
46
|
+
event.stopImmediatePropagation();
|
|
47
|
+
}
|
|
48
|
+
function onContextMenu(event) {
|
|
49
|
+
if (timer || held) event.preventDefault();
|
|
50
|
+
}
|
|
51
|
+
onBeforeUnmount(stop);
|
|
52
|
+
return {
|
|
53
|
+
/** Drops a hold in progress, as if the finger had been lifted off the screen. */
|
|
54
|
+
cancel: () => onPointerCancel(),
|
|
55
|
+
handlers: { onPointerdown: onPointerDown, onPointermove: onPointerMove, onPointerup: onPointerUp, onPointercancel: onPointerCancel, onClickCapture, onContextmenu: onContextMenu }
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export {
|
|
59
|
+
useTouchHold
|
|
60
|
+
};
|
package/dist/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { _ } from "./chunks/LayoutCanvas-j4TZqx1A.js";
|
|
2
|
-
import { _ as _2 } from "./chunks/LpAddressInput-
|
|
2
|
+
import { _ as _2 } from "./chunks/LpAddressInput-BCqR0zmv.js";
|
|
3
3
|
import { _ as _3 } from "./chunks/LpMapPicker-DVfiy3rR.js";
|
|
4
4
|
import { OSM_TILES, createNominatimProvider, emptyAddress, formatAddress, project, tileUrl, unproject } from "./components/address.js";
|
|
5
|
-
import { _ as _4 } from "./chunks/LpActionBar-
|
|
6
|
-
import { _ as _5 } from "./chunks/LpAlert-
|
|
7
|
-
import { _ as _6 } from "./chunks/LpAppShell-
|
|
8
|
-
import { _ as _7 } from "./chunks/LpAutocomplete-
|
|
5
|
+
import { _ as _4 } from "./chunks/LpActionBar-43WHmTsM.js";
|
|
6
|
+
import { _ as _5 } from "./chunks/LpAlert-Q0h7Gucu.js";
|
|
7
|
+
import { _ as _6 } from "./chunks/LpAppShell-BWaVRsDB.js";
|
|
8
|
+
import { _ as _7 } from "./chunks/LpAutocomplete-YPxAPHEo.js";
|
|
9
9
|
import { _ as _8 } from "./chunks/LpAvatar-CfLBqlY1.js";
|
|
10
10
|
import { _ as _9 } from "./chunks/LpBadge-Bh5roBr_.js";
|
|
11
11
|
import { _ as _10 } from "./chunks/LpBreadcrumbs-Zv1fn9e_.js";
|
|
12
|
-
import { _ as _11 } from "./chunks/LpButton-
|
|
12
|
+
import { _ as _11 } from "./chunks/LpButton-BvVoF-PO.js";
|
|
13
13
|
import { _ as _12 } from "./chunks/LpCalendar-aACjUhpM.js";
|
|
14
14
|
import { _ as _13 } from "./chunks/LpCard-xXBqLVGo.js";
|
|
15
15
|
import { default as default2 } from "./components/LpChart.vue.js";
|
|
@@ -18,10 +18,10 @@ import { CHART_PALETTE, axisTicks, chartSummary, formatTick, markerIndex, niceSc
|
|
|
18
18
|
import { chartView, lttbIndices, minMaxBuckets, panRange, slotOf, sourceOf, zoomRange } from "./components/chartWindow.js";
|
|
19
19
|
import { useChartSync } from "./composables/useChartSync.js";
|
|
20
20
|
import { createLinkedView, linkChart, linkLog, linkPipeline, linkTable, linkTopology, provideLinkedView, useLinkedView } from "./composables/useLinkedView.js";
|
|
21
|
-
import { _ as _14 } from "./chunks/LpCheckbox-
|
|
22
|
-
import { _ as _15 } from "./chunks/LpCodeBlock-
|
|
21
|
+
import { _ as _14 } from "./chunks/LpCheckbox-C9VnPIQf.js";
|
|
22
|
+
import { _ as _15 } from "./chunks/LpCodeBlock-BgWcg2mk.js";
|
|
23
23
|
import { tokenizeLines } from "./components/codeHighlight.js";
|
|
24
|
-
import { _ as _16 } from "./chunks/LpColorPicker-
|
|
24
|
+
import { _ as _16 } from "./chunks/LpColorPicker-KGMG8QEh.js";
|
|
25
25
|
import { DEFAULT_SWATCHES, clampHsv, formatColor, hsvToHsl, hsvToRgb, isLight, normalizeHue, opaqueCss, parseColor, parseHex, rgbToHex, rgbToHsv } from "./components/color.js";
|
|
26
26
|
import { default as default3 } from "./components/LpCommandPalette.vue.js";
|
|
27
27
|
import { applyQueryFilters, highlightParts, parseCommandQuery, parsePaletteQuery, rankCommandItems, searchCommandItems, swapCommandLayout } from "./components/commandSearch.js";
|
|
@@ -33,21 +33,21 @@ import { default as default6 } from "./components/LpPaletteStats.vue.js";
|
|
|
33
33
|
import { default as default7 } from "./components/LpPaletteSwatches.vue.js";
|
|
34
34
|
import { default as default8 } from "./components/LpKeys.vue.js";
|
|
35
35
|
import { comboKeys, comboSteps } from "./components/keys.js";
|
|
36
|
-
import { _ as _18 } from "./chunks/LpConfirmDialog-
|
|
37
|
-
import { _ as _19 } from "./chunks/LpConfirmHost-
|
|
36
|
+
import { _ as _18 } from "./chunks/LpConfirmDialog-y6k0ryWR.js";
|
|
37
|
+
import { _ as _19 } from "./chunks/LpConfirmHost-D-X0tDym.js";
|
|
38
38
|
import { confirm, useConfirm } from "./components/confirm.js";
|
|
39
|
-
import { _ as _20 } from "./chunks/LpContextMenu-
|
|
40
|
-
import { _ as _21 } from "./chunks/LpDatePicker-
|
|
41
|
-
import { _ as _22 } from "./chunks/LpDateRangePicker-
|
|
39
|
+
import { _ as _20 } from "./chunks/LpContextMenu-DEFirphS.js";
|
|
40
|
+
import { _ as _21 } from "./chunks/LpDatePicker-Dlyvgsan.js";
|
|
41
|
+
import { _ as _22 } from "./chunks/LpDateRangePicker-CAn2yGbn.js";
|
|
42
42
|
import { _ as _23 } from "./chunks/LpRangeCalendar-C9gkNMYw.js";
|
|
43
43
|
import { clampRange, dayAllowed, defaultDatePresets, defaultRangePresets, formatRange, normalizeRange, sameRange } from "./components/dateRange.js";
|
|
44
44
|
import { _ as _24 } from "./chunks/LpDisclosure-D4JZ-o8K.js";
|
|
45
45
|
import { _ as _25 } from "./chunks/LpDivider-CUX46KR0.js";
|
|
46
|
-
import { _ as _26 } from "./chunks/LpDrawer-
|
|
47
|
-
import { _ as _27 } from "./chunks/LpDropdownMenu-
|
|
46
|
+
import { _ as _26 } from "./chunks/LpDrawer-iRHwJOGn.js";
|
|
47
|
+
import { _ as _27 } from "./chunks/LpDropdownMenu-CdCe7D2d.js";
|
|
48
48
|
import { default as default9 } from "./components/LpDropzone.vue.js";
|
|
49
|
-
import { _ as _28 } from "./chunks/LpEmptyState-
|
|
50
|
-
import { _ as _29 } from "./chunks/LpFileTree-
|
|
49
|
+
import { _ as _28 } from "./chunks/LpEmptyState-DLOm07KH.js";
|
|
50
|
+
import { _ as _29 } from "./chunks/LpFileTree-BN_zybBN.js";
|
|
51
51
|
import { ancestorIds, checkStateOf, checkedCount, computeStats, fileIcon, formatModified, formatSize, sortNodes, subtreeIds, subtreeSize } from "./components/fileTree.js";
|
|
52
52
|
import { _ as _30 } from "./chunks/LpFieldNotice-DUPo1Yii.js";
|
|
53
53
|
import { _ as _31 } from "./chunks/LpFormField-jbM7K1Hg.js";
|
|
@@ -55,61 +55,61 @@ import { _ as _32 } from "./chunks/LpIcon-CxHFPwKt.js";
|
|
|
55
55
|
import { i, b, a, c } from "./chunks/icons-C8ccRCKw.js";
|
|
56
56
|
import { default as default10 } from "./components/LpImageEditor.vue.js";
|
|
57
57
|
import { _ as _33 } from "./chunks/LpInfraNode-BYiMFDnA.js";
|
|
58
|
-
import { _ as _34 } from "./chunks/LpInput-
|
|
59
|
-
import { _ as _35 } from "./chunks/LpLightbox-
|
|
58
|
+
import { _ as _34 } from "./chunks/LpInput-DGMpxrcg.js";
|
|
59
|
+
import { _ as _35 } from "./chunks/LpLightbox-a24V_0Wk.js";
|
|
60
60
|
import { fileNameOf, isVideoItem } from "./components/lightbox.js";
|
|
61
61
|
import { _ as _36 } from "./chunks/LpLink-Krkjhe_y.js";
|
|
62
|
-
import { _ as _37 } from "./chunks/LpLogViewer-
|
|
63
|
-
import { _ as _38 } from "./chunks/LpLogInspector-
|
|
62
|
+
import { _ as _37 } from "./chunks/LpLogViewer-BuIzr_6h.js";
|
|
63
|
+
import { _ as _38 } from "./chunks/LpLogInspector-BhJTJIst.js";
|
|
64
64
|
import { compilePattern, findIds, messageShape, structuredPayload, timeMs } from "./components/logTools.js";
|
|
65
65
|
import { countLevels, matchPositions, matchesTerm, ringWindow, stepMatch } from "./components/logSearch.js";
|
|
66
|
-
import { _ as _39 } from "./chunks/LpMediaGallery-
|
|
67
|
-
import { _ as _40 } from "./chunks/LpModal-
|
|
68
|
-
import { _ as _41 } from "./chunks/LpModalNav-
|
|
69
|
-
import { _ as _42 } from "./chunks/LpNotificationBell-
|
|
70
|
-
import { _ as _43 } from "./chunks/LpNotificationFeed-
|
|
71
|
-
import { _ as _44 } from "./chunks/LpNumberField-
|
|
72
|
-
import { _ as _45 } from "./chunks/LpTimeField-
|
|
66
|
+
import { _ as _39 } from "./chunks/LpMediaGallery-B7DOV_aL.js";
|
|
67
|
+
import { _ as _40 } from "./chunks/LpModal-D1E7rQzw.js";
|
|
68
|
+
import { _ as _41 } from "./chunks/LpModalNav-DivqT1NV.js";
|
|
69
|
+
import { _ as _42 } from "./chunks/LpNotificationBell-KRgdRZs-.js";
|
|
70
|
+
import { _ as _43 } from "./chunks/LpNotificationFeed-CMGYU8c-.js";
|
|
71
|
+
import { _ as _44 } from "./chunks/LpNumberField-C0LSu-tl.js";
|
|
72
|
+
import { _ as _45 } from "./chunks/LpTimeField-Dio7Tj9A.js";
|
|
73
73
|
import { _ as _46 } from "./chunks/LpNumberFlow-Vqj0tP7B.js";
|
|
74
74
|
import { _ as _47 } from "./chunks/LpOtpInput-C14XagVB.js";
|
|
75
75
|
import { _ as _48 } from "./chunks/LpPagination-DGLntZJN.js";
|
|
76
|
-
import { _ as _49 } from "./chunks/LpPasswordInput-
|
|
77
|
-
import { _ as _50 } from "./chunks/LpPie-
|
|
78
|
-
import { _ as _51 } from "./chunks/LpPhoneInput-
|
|
76
|
+
import { _ as _49 } from "./chunks/LpPasswordInput-LPVI7D3v.js";
|
|
77
|
+
import { _ as _50 } from "./chunks/LpPie-CsiBXe-e.js";
|
|
78
|
+
import { _ as _51 } from "./chunks/LpPhoneInput-BdglZsGH.js";
|
|
79
79
|
import { filterCountries, flagEmoji, loadCountries, matchCountryByValue } from "./components/countries.js";
|
|
80
|
-
import { _ as _52 } from "./chunks/LpPopover-
|
|
80
|
+
import { _ as _52 } from "./chunks/LpPopover-w2rr4x7n.js";
|
|
81
81
|
import { _ as _53 } from "./chunks/LpProgress-D_MSjowb.js";
|
|
82
|
-
import { _ as _54 } from "./chunks/LpRadio-
|
|
83
|
-
import { _ as _55 } from "./chunks/LpRadioGroup-
|
|
82
|
+
import { _ as _54 } from "./chunks/LpRadio-4KyxeSz4.js";
|
|
83
|
+
import { _ as _55 } from "./chunks/LpRadioGroup-Cr_fmrBY.js";
|
|
84
84
|
import { _ as _56 } from "./chunks/LpRollingText-B54Pje7P.js";
|
|
85
85
|
import { _ as _57 } from "./chunks/LpScrollArea-CqvwfZs2.js";
|
|
86
86
|
import { _ as _58 } from "./chunks/LpPageScrollbar-C9sTeU-2.js";
|
|
87
|
-
import { _ as _59 } from "./chunks/LpSegmented-
|
|
88
|
-
import { _ as _60 } from "./chunks/LpSection-
|
|
89
|
-
import { _ as _61 } from "./chunks/LpSelect-
|
|
87
|
+
import { _ as _59 } from "./chunks/LpSegmented-DzFYP0ZF.js";
|
|
88
|
+
import { _ as _60 } from "./chunks/LpSection-CwsfNR7N.js";
|
|
89
|
+
import { _ as _61 } from "./chunks/LpSelect-Dffg5r4I.js";
|
|
90
90
|
import { fitChips, toggledValues } from "./components/select.js";
|
|
91
91
|
import { _ as _62 } from "./chunks/LpServiceNode-Cln2ntdw.js";
|
|
92
92
|
import { _ as _63 } from "./chunks/LpShift-DAgS_d2x.js";
|
|
93
93
|
import { _ as _64 } from "./chunks/LpSwap-M7nFeW3C.js";
|
|
94
94
|
import { _ as _65 } from "./chunks/LpHintExample-YzCXiSUp.js";
|
|
95
95
|
import { default as default11 } from "./components/LpShortcutsDialog.vue.js";
|
|
96
|
-
import { _ as _66 } from "./chunks/LpSidebar-
|
|
97
|
-
import { _ as _67 } from "./chunks/LpContextSwitcher-
|
|
96
|
+
import { _ as _66 } from "./chunks/LpSidebar-DQtCYlT4.js";
|
|
97
|
+
import { _ as _67 } from "./chunks/LpContextSwitcher-COw6GHPW.js";
|
|
98
98
|
import { _ as _68 } from "./chunks/LpSkeleton-leTl53V9.js";
|
|
99
|
-
import { _ as _69 } from "./chunks/LpSlider-
|
|
100
|
-
import { _ as _70 } from "./chunks/LpRangeSlider-
|
|
99
|
+
import { _ as _69 } from "./chunks/LpSlider-DUd4gXnw.js";
|
|
100
|
+
import { _ as _70 } from "./chunks/LpRangeSlider-DbaITHtC.js";
|
|
101
101
|
import { _ as _71 } from "./chunks/LpVideoBackdrop-57i8RY8g.js";
|
|
102
102
|
import { formatClipTime, isNativeLoop, planLoop, seamProgress, seamReached } from "./components/videoBackdrop.js";
|
|
103
103
|
import { default as default12 } from "./components/LpVideoTrim.vue.js";
|
|
104
|
-
import { _ as _72 } from "./chunks/LpVideoCompress-
|
|
104
|
+
import { _ as _72 } from "./chunks/LpVideoCompress-CvxNdyjp.js";
|
|
105
105
|
import { bitrateForHeight, canTranscodeVideo, estimateTranscodedBytes, probeVideo, transcodeVideo, transcodedName } from "./composables/videoTranscode.js";
|
|
106
|
-
import { _ as _73 } from "./chunks/LpVideoPlayer-
|
|
106
|
+
import { _ as _73 } from "./chunks/LpVideoPlayer-FMuxTAU8.js";
|
|
107
107
|
import { useVideoMedia } from "./composables/useVideoMedia.js";
|
|
108
108
|
import { dragEnd, normalizeRange as normalizeRange2, parseClipTime, setEnd } from "./components/videoTrim.js";
|
|
109
109
|
import { _ as _74 } from "./chunks/LpSparkline-11ryFdPX.js";
|
|
110
|
-
import { _ as _75 } from "./chunks/LpStat-
|
|
110
|
+
import { _ as _75 } from "./chunks/LpStat-SyVb5JXm.js";
|
|
111
111
|
import { _ as _76 } from "./chunks/LpStepper-DBNRA6Q2.js";
|
|
112
|
-
import { _ as _77 } from "./chunks/LpSwitch-
|
|
112
|
+
import { _ as _77 } from "./chunks/LpSwitch-D-mcaA6C.js";
|
|
113
113
|
import { default as default13 } from "./components/LpTable.vue.js";
|
|
114
114
|
import { compareValues } from "./components/tableSort.js";
|
|
115
115
|
import { filterRows, showOnly, shownValues } from "./components/tableFilter.js";
|
|
@@ -118,29 +118,29 @@ import { resolveRowMenu } from "./components/tableRowMenu.js";
|
|
|
118
118
|
import { _ as _78 } from "./chunks/LpTableOfContents-CKkWEK6R.js";
|
|
119
119
|
import { default as default14 } from "./components/LpTabs.vue.js";
|
|
120
120
|
import { _ as _79 } from "./chunks/LpBottomNav-9AqvZlRW.js";
|
|
121
|
-
import { _ as _80 } from "./chunks/LpTagsInput-
|
|
121
|
+
import { _ as _80 } from "./chunks/LpTagsInput-DD8-xe3F.js";
|
|
122
122
|
import { addTags, splitTags } from "./components/tags.js";
|
|
123
|
-
import { _ as _81 } from "./chunks/LpTextarea-
|
|
124
|
-
import { _ as _82 } from "./chunks/LpThemeSwitcher-
|
|
123
|
+
import { _ as _81 } from "./chunks/LpTextarea-CQg-dVxN.js";
|
|
124
|
+
import { _ as _82 } from "./chunks/LpThemeSwitcher-B3c44xFH.js";
|
|
125
125
|
import { _ as _83 } from "./chunks/LpTilt-B7KHX1zH.js";
|
|
126
|
-
import { _ as _84 } from "./chunks/LpToaster-
|
|
127
|
-
import { _ as _85 } from "./chunks/LpTooltip-
|
|
128
|
-
import { _ as _86 } from "./chunks/LpTour-
|
|
126
|
+
import { _ as _84 } from "./chunks/LpToaster-Cdx1tnHB.js";
|
|
127
|
+
import { _ as _85 } from "./chunks/LpTooltip-BKde8Xjv.js";
|
|
128
|
+
import { _ as _86 } from "./chunks/LpTour-BGUKUxSZ.js";
|
|
129
129
|
import { holeOf, openContextMenu, panelsAround } from "./components/tour.js";
|
|
130
|
-
import { _ as _87 } from "./chunks/LpHintLayer-
|
|
131
|
-
import { _ as _88 } from "./chunks/LpHints-
|
|
130
|
+
import { _ as _87 } from "./chunks/LpHintLayer-nuMqfzvy.js";
|
|
131
|
+
import { _ as _88 } from "./chunks/LpHints-ByAd3a76.js";
|
|
132
132
|
import { HINT_SIGNALS, contextMenuTip, createHintSystem, dropzoneTip, hintKey, hintSummary, hotkeyTip, localHintStorage, noteDropzone, noteHotkeyTarget, paletteTip, provideHintSystem, runningHintSystem, useHintSystem } from "./composables/useHintSystem.js";
|
|
133
133
|
import { _ as _89 } from "./chunks/LpTooltipProvider-CftjV7Xc.js";
|
|
134
|
-
import { _ as _90 } from "./chunks/LpTopologyCanvas-
|
|
134
|
+
import { _ as _90 } from "./chunks/LpTopologyCanvas-CQ0l6A5h.js";
|
|
135
135
|
import { clusterGraph, diffTopology, findPath, layeredLayout, neighborhood, topologyToSvg } from "./components/topologyGraph.js";
|
|
136
|
-
import { _ as _91 } from "./chunks/LpUptimeBar-
|
|
136
|
+
import { _ as _91 } from "./chunks/LpUptimeBar-Dt6SY_-m.js";
|
|
137
137
|
import { addLeaf, addTab, countBlocks, countLeaves, deserializeLayout, makeLayout, moveLeaf, removeBlock, removeLeaf, reorderTab, resizeAt, serializeLayout, setActiveTab } from "./layout/tree.js";
|
|
138
138
|
import { blockTitle, defineBlocks } from "./layout/registry.js";
|
|
139
139
|
import { layoutController, useLayout } from "./layout/useLayout.js";
|
|
140
140
|
import { useWorkspaces } from "./layout/useWorkspaces.js";
|
|
141
|
-
import { _ as _92 } from "./chunks/LpWorkspaceSwitcher-
|
|
142
|
-
import { _ as _93 } from "./chunks/LpInspector-
|
|
143
|
-
import { _ as _94 } from "./chunks/LpWindow-
|
|
141
|
+
import { _ as _92 } from "./chunks/LpWorkspaceSwitcher-DCIiOQt_.js";
|
|
142
|
+
import { _ as _93 } from "./chunks/LpInspector-oTfkOdYd.js";
|
|
143
|
+
import { _ as _94 } from "./chunks/LpWindow-DsPeiDCZ.js";
|
|
144
144
|
import { WINDOW_DOCKS, clampRect, dockAt, dockedRect, isWindowRect, resizeRect, snapRect, useWindowLayer } from "./composables/windowing.js";
|
|
145
145
|
import { THEME_COOKIE, applyTheme, applyThemeWithTransition, bootstrapTheme, cacheSystemThemes, normalizeTheme, parseTheme, prefersDarkScheme, revealTransition, serializeTheme, themeEntries, themeFromCookie, themeToCssRule, themeToCssVars, useTheme } from "./theme/useTheme.js";
|
|
146
146
|
import { GLASS_BACKDROP_ATTR, NO_BACKDROP_ATTR, detectBackdropFilter, isBrokenBackdropEngine, setGlassBackdrop } from "./theme/backdrop.js";
|
|
@@ -188,14 +188,14 @@ import { useZoomPan } from "./composables/useZoomPan.js";
|
|
|
188
188
|
import { useToast } from "./composables/useToast.js";
|
|
189
189
|
import { _ as _95 } from "./chunks/LpThemeProvider-XK6ZeWAE.js";
|
|
190
190
|
import { _ as _96 } from "./chunks/LpFrame-Bv5Fphte.js";
|
|
191
|
-
import { _ as _97 } from "./chunks/LpThemeStudio-
|
|
191
|
+
import { _ as _97 } from "./chunks/LpThemeStudio-BPPctXgd.js";
|
|
192
192
|
import { _ as _98 } from "./chunks/LpThemeStudioSection-B7bt8Iyg.js";
|
|
193
193
|
import { isInternalHref, resolveLink } from "./components/link.js";
|
|
194
|
-
import { _ as _99 } from "./chunks/LpRepeater-
|
|
194
|
+
import { _ as _99 } from "./chunks/LpRepeater-C0rns2xW.js";
|
|
195
195
|
import { _ as _100 } from "./chunks/LpGauge-KZaQ_FDR.js";
|
|
196
196
|
import { _ as _101 } from "./chunks/LpQuota-BaCq5YOQ.js";
|
|
197
197
|
import { _ as _102 } from "./chunks/LpStatus-C6GqSHJj.js";
|
|
198
|
-
import { _ as _103 } from "./chunks/LpRelativeTime-
|
|
198
|
+
import { _ as _103 } from "./chunks/LpRelativeTime-CN5bWD73.js";
|
|
199
199
|
import { _ as _104 } from "./chunks/LpActivityLine-Ea-t5Vza.js";
|
|
200
200
|
import { TONE_COLOR, TONE_SOFT, arcPath, capacityThresholds, meterFraction, toneAt } from "./components/meter.js";
|
|
201
201
|
import { TONES, TONE_ALIASES, toneLook, toneOf } from "./components/tone.js";
|
|
@@ -203,7 +203,7 @@ import { formatAmount, quotaSegments, quotaState } from "./components/quota.js";
|
|
|
203
203
|
import { compactNumber, decimalMark, formatBytes } from "./components/format.js";
|
|
204
204
|
import { STATUS_LABELS, STATUS_LOOK } from "./components/status.js";
|
|
205
205
|
import { formatRelativeTime } from "./components/relativeTime.js";
|
|
206
|
-
import { _ as _105 } from "./chunks/LpPipeline-
|
|
206
|
+
import { _ as _105 } from "./chunks/LpPipeline-DVcoSs--.js";
|
|
207
207
|
import { _ as _106 } from "./chunks/LpStepMark-CPGVj1XG.js";
|
|
208
208
|
import { childProgress, connectorFilled, currentStepIndex, isSettled, overallStatus, stepElapsed } from "./components/pipeline.js";
|
|
209
209
|
import { _ as _107 } from "./chunks/LpLoader-Bf1yZwaU.js";
|
|
@@ -211,14 +211,14 @@ import { useLoadingGate } from "./composables/useLoadingGate.js";
|
|
|
211
211
|
import { useNow } from "./composables/useNow.js";
|
|
212
212
|
import { _ as _108 } from "./chunks/LpCountdown-DVl7vXI1.js";
|
|
213
213
|
import { DEFAULT_MILESTONES, DEFAULT_UNIT_LABELS, ceilToSecond, crossedMilestone, formatElapsed, formatTime, msToNextSecond, splitTime, timeParts } from "./components/timeSpan.js";
|
|
214
|
-
import { _ as _109 } from "./chunks/LpCopyButton-
|
|
215
|
-
import { _ as _110 } from "./chunks/LpSecretField-
|
|
216
|
-
import { _ as _111 } from "./chunks/LpDataList-
|
|
217
|
-
import { _ as _112 } from "./chunks/LpEditable-
|
|
218
|
-
import { _ as _113 } from "./chunks/LpTruncate-
|
|
219
|
-
import { _ as _114 } from "./chunks/LpCodeDisplay-
|
|
214
|
+
import { _ as _109 } from "./chunks/LpCopyButton-BGzw95Xc.js";
|
|
215
|
+
import { _ as _110 } from "./chunks/LpSecretField-BwrZ4TfT.js";
|
|
216
|
+
import { _ as _111 } from "./chunks/LpDataList-B56Gu6Yt.js";
|
|
217
|
+
import { _ as _112 } from "./chunks/LpEditable-DfRUAGkA.js";
|
|
218
|
+
import { _ as _113 } from "./chunks/LpTruncate-C_C8eiIE.js";
|
|
219
|
+
import { _ as _114 } from "./chunks/LpCodeDisplay-DBi1YPLp.js";
|
|
220
220
|
import { formatRemaining, groupCode, middleTruncate, normalizeCode } from "./components/fieldText.js";
|
|
221
|
-
import { _ as _115 } from "./chunks/LpHoverCard-
|
|
221
|
+
import { _ as _115 } from "./chunks/LpHoverCard-DYguY2AP.js";
|
|
222
222
|
import { _ as _116 } from "./chunks/LpIdenticon-Dbbr4fvt.js";
|
|
223
223
|
import { hashString, identicon, identiconRects, identiconSvg } from "./components/identicon.js";
|
|
224
224
|
import { _ as _117 } from "./chunks/LpShaderBackdrop-wQygYb5h.js";
|
|
@@ -246,7 +246,7 @@ import { _ as _128 } from "./chunks/LpCommandScope-DRUvHiX7.js";
|
|
|
246
246
|
import { createPaletteRegistry, mergePaletteCommands, usePaletteCommands, vPalette } from "./composables/usePaletteCommands.js";
|
|
247
247
|
import { commandShortcuts, commandToHotkey, commandToMenuItem, commandToPalette, useCommands } from "./composables/useCommands.js";
|
|
248
248
|
import { usePaletteTheme } from "./theme/palette.js";
|
|
249
|
-
import { _ as _129 } from "./chunks/LpPaletteTheme-
|
|
249
|
+
import { _ as _129 } from "./chunks/LpPaletteTheme-CLwO-SDf.js";
|
|
250
250
|
const uk = {
|
|
251
251
|
actionBar: { dismiss: "Закрити" },
|
|
252
252
|
activityLine: { busy: "Завантаження" },
|
|
@@ -518,6 +518,7 @@ const uk = {
|
|
|
518
518
|
running: "Виконується…",
|
|
519
519
|
select: "вибрати",
|
|
520
520
|
close: "закрити",
|
|
521
|
+
dismiss: "Закрити",
|
|
521
522
|
back: "назад",
|
|
522
523
|
searching: "Пошук…",
|
|
523
524
|
searchFailed: "Пошук зараз недоступний.",
|
package/package.json
CHANGED
|
@@ -32,6 +32,7 @@ import { useOutsideGuard, usePortalTarget } from "../composables/useView"
|
|
|
32
32
|
import type { ContextMenuItemDef } from "./LpContextMenu.vue"
|
|
33
33
|
import LpIcon from "./LpIcon.vue"
|
|
34
34
|
import MenuShortcut from "./MenuShortcut.vue"
|
|
35
|
+
import { TOUCH_ROW } from "./dropdown"
|
|
35
36
|
|
|
36
37
|
defineOptions({ name: "ContextMenuItems" })
|
|
37
38
|
|
|
@@ -71,7 +72,7 @@ const portalTo = usePortalTarget()
|
|
|
71
72
|
const guardOutside = useOutsideGuard()
|
|
72
73
|
|
|
73
74
|
const ITEM =
|
|
74
|
-
"group/item flex cursor-pointer select-none items-center gap-2 rounded-inner px-2.5 py-1.5 text-sm outline-none transition-[background-color,color] duration-[var(--duration-fast)] data-[disabled]:pointer-events-none data-[disabled]:opacity-45 data-[highlighted]:bg-brand-soft"
|
|
75
|
+
"group/item flex cursor-pointer select-none items-center gap-2 rounded-inner px-2.5 py-1.5 text-sm outline-none transition-[background-color,color] duration-[var(--duration-fast)] data-[disabled]:pointer-events-none data-[disabled]:opacity-45 data-[highlighted]:bg-brand-soft " + TOUCH_ROW
|
|
75
76
|
const ICON =
|
|
76
77
|
"transition-transform duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] group-data-[highlighted]/item:translate-x-0.5"
|
|
77
78
|
</script>
|
|
@@ -12,7 +12,7 @@ defineProps<{ label: string; inline?: boolean }>()
|
|
|
12
12
|
<template>
|
|
13
13
|
<button
|
|
14
14
|
type="button"
|
|
15
|
-
class="group flex shrink-0 items-center text-muted outline-none transition-colors duration-[var(--duration-fast)] hover:text-ink"
|
|
15
|
+
class="lp-tap group flex shrink-0 items-center text-muted outline-none transition-colors duration-[var(--duration-fast)] hover:text-ink"
|
|
16
16
|
:class="inline ? undefined : 'rounded-inner p-1 focus-visible:ring-2 focus-visible:ring-ring'"
|
|
17
17
|
:aria-label="label"
|
|
18
18
|
>
|
|
@@ -120,7 +120,7 @@ const messageKey = () => [props.variant, props.title ?? "", slotText(slots.defau
|
|
|
120
120
|
/>
|
|
121
121
|
</Transition>
|
|
122
122
|
</span>
|
|
123
|
-
<LpSwap :swap-key="messageKey()" class="min-w-0 flex-1">
|
|
123
|
+
<LpSwap :swap-key="messageKey()" class="min-w-0 flex-1 [overflow-wrap:anywhere]">
|
|
124
124
|
<p v-if="title" class="font-semibold text-ink">{{ title }}</p>
|
|
125
125
|
<div :class="['text-muted-strong', title ? 'mt-0.5' : '']">
|
|
126
126
|
<slot />
|
|
@@ -40,7 +40,7 @@ import { computed, nextTick, ref, useId, watch, useAttrs } from "vue"
|
|
|
40
40
|
import { useOwnField, mergeDescribedBy } from "../composables/useField"
|
|
41
41
|
import { useInputFilter } from "../composables/useInputFilter"
|
|
42
42
|
import { useLabels } from "../composables/useLpConfig"
|
|
43
|
-
import { CLOSE_ICON, OPTION_ITEM, optionStagger, COMBOBOX_PANEL, POPOVER_PANEL } from "./dropdown"
|
|
43
|
+
import { CLOSE_ICON, OPTION_ITEM, optionStagger, COMBOBOX_FIT, COMBOBOX_PANEL, POPOVER_PANEL } from "./dropdown"
|
|
44
44
|
import LpIcon from "./LpIcon.vue"
|
|
45
45
|
import OptionContent from "./OptionContent.vue"
|
|
46
46
|
import type { LpOptionBase, OptionSelection } from "./options"
|
|
@@ -335,7 +335,7 @@ usePaletteControl({ disabled: () => field.value.disabled, invalid: () => field.v
|
|
|
335
335
|
:required="field.required || undefined"
|
|
336
336
|
:aria-invalid="isInvalidState || undefined"
|
|
337
337
|
:aria-describedby="describedBy"
|
|
338
|
-
class="lp-autofill min-w-0 flex-1 self-stretch bg-transparent outline-none placeholder:text-muted"
|
|
338
|
+
class="lp-autofill lp-entry min-w-0 flex-1 self-stretch bg-transparent outline-none placeholder:text-muted"
|
|
339
339
|
:class="showSelected && 'text-transparent placeholder:text-transparent'"
|
|
340
340
|
@beforeinput="onBeforeInput"
|
|
341
341
|
@paste="onPaste"
|
|
@@ -388,11 +388,11 @@ usePaletteControl({ disabled: () => field.value.disabled, invalid: () => field.v
|
|
|
388
388
|
@interact-outside="guardOutside"
|
|
389
389
|
@escape-key-down="guardOutside"
|
|
390
390
|
v-bind="COMBOBOX_PANEL"
|
|
391
|
-
:class="[POPOVER_PANEL, 'z-(--z-popover)
|
|
391
|
+
:class="[POPOVER_PANEL, 'z-(--z-popover) w-(--reka-combobox-trigger-width) overflow-hidden', COMBOBOX_FIT]"
|
|
392
392
|
@open-auto-focus.prevent
|
|
393
393
|
@mousedown.prevent
|
|
394
394
|
>
|
|
395
|
-
<ComboboxViewport class="max-h-72 overflow-y-auto p-1">
|
|
395
|
+
<ComboboxViewport class="max-h-72 min-h-0 flex-1 overflow-y-auto p-1">
|
|
396
396
|
<div v-if="loading" class="px-3 py-4 text-center text-sm italic text-muted">
|
|
397
397
|
{{ loadingText ?? labels.loading }}
|
|
398
398
|
</div>
|
|
@@ -25,7 +25,7 @@ import { resolveLink, type LinkTarget } from "./link"
|
|
|
25
25
|
|
|
26
26
|
const button = tv({
|
|
27
27
|
base: [
|
|
28
|
-
"inline-flex select-none items-center justify-center gap-2 whitespace-nowrap font-semibold",
|
|
28
|
+
"lp-tap inline-flex select-none items-center justify-center gap-2 whitespace-nowrap font-semibold",
|
|
29
29
|
"rounded-control transition-[color,background-color,border-color,box-shadow,scale] duration-[var(--duration-fast)] ease-[var(--ease-emphasized)]",
|
|
30
30
|
// tactile press: dips slightly on click, springs back on release.
|
|
31
31
|
"active:scale-[0.97] motion-reduce:active:scale-100",
|
|
@@ -118,7 +118,7 @@ usePaletteControl({ label: () => props.label, disabled: () => field.value.disabl
|
|
|
118
118
|
:aria-describedby="describedBy"
|
|
119
119
|
:aria-busy="pending || undefined"
|
|
120
120
|
:class="description ? 'mt-px' : ''"
|
|
121
|
-
class="relative flex size-[18px] shrink-0 items-center justify-center rounded-[5px] border border-line-strong bg-surface-soft outline-none transition-[color,background-color,border-color,box-shadow,scale] duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] not-data-[state=checked]:not-data-[state=indeterminate]:group-hover/check:border-brand active:scale-90 motion-reduce:active:scale-100 focus-visible:ring-2 focus-visible:ring-ring data-[state=checked]:border-transparent data-[state=checked]:bg-brand data-[state=indeterminate]:border-transparent data-[state=indeterminate]:bg-brand disabled:cursor-not-allowed disabled:opacity-55"
|
|
121
|
+
class="lp-tap relative flex size-[18px] shrink-0 items-center justify-center rounded-[5px] border border-line-strong bg-surface-soft outline-none transition-[color,background-color,border-color,box-shadow,scale] duration-[var(--duration-fast)] ease-[var(--ease-emphasized)] not-data-[state=checked]:not-data-[state=indeterminate]:group-hover/check:border-brand active:scale-90 motion-reduce:active:scale-100 focus-visible:ring-2 focus-visible:ring-ring data-[state=checked]:border-transparent data-[state=checked]:bg-brand data-[state=indeterminate]:border-transparent data-[state=indeterminate]:bg-brand disabled:cursor-not-allowed disabled:opacity-55"
|
|
122
122
|
@update:model-value="onUpdate"
|
|
123
123
|
>
|
|
124
124
|
<CheckboxIndicator
|
|
@@ -295,7 +295,7 @@ const CodeLine: FunctionalComponent<{ n: number }> = ({ n }) =>
|
|
|
295
295
|
v-if="!locked && !hasFolds"
|
|
296
296
|
:value="code"
|
|
297
297
|
spellcheck="false"
|
|
298
|
-
class="lp-scrollbar-none absolute inset-0 size-full resize-none overflow-auto whitespace-pre bg-transparent p-3 leading-relaxed text-transparent caret-brand outline-none"
|
|
298
|
+
class="lp-entry lp-scrollbar-none absolute inset-0 size-full resize-none overflow-auto whitespace-pre bg-transparent p-3 leading-relaxed text-transparent caret-brand outline-none"
|
|
299
299
|
:class="[wrap ? 'whitespace-pre-wrap break-words' : 'whitespace-pre', lineNumbers ? 'pl-13' : '']"
|
|
300
300
|
@input="onInput"
|
|
301
301
|
@scroll="syncScroll"
|
|
@@ -305,7 +305,7 @@ const CodeLine: FunctionalComponent<{ n: number }> = ({ n }) =>
|
|
|
305
305
|
class="lp-scrollbar-none m-0 overflow-auto p-3 leading-relaxed"
|
|
306
306
|
:class="[
|
|
307
307
|
wrap ? 'whitespace-pre-wrap break-words' : 'whitespace-pre',
|
|
308
|
-
editing ? 'pointer-events-none' : '',
|
|
308
|
+
editing ? 'lp-entry pointer-events-none' : '',
|
|
309
309
|
editing && height ? 'h-full overflow-hidden' : '',
|
|
310
310
|
]"
|
|
311
311
|
><code class="block"><template
|
|
@@ -56,7 +56,7 @@ import {
|
|
|
56
56
|
} from "./color"
|
|
57
57
|
import { useClipboard } from "../composables/useClipboard"
|
|
58
58
|
import { useLabels } from "../composables/useLpConfig"
|
|
59
|
-
import { POPOVER_PANEL } from "./dropdown"
|
|
59
|
+
import { PANEL_FIT, POPOVER_PANEL } from "./dropdown"
|
|
60
60
|
import LpContextMenu, { type ContextMenuItemDef } from "./LpContextMenu.vue"
|
|
61
61
|
import LpIcon from "./LpIcon.vue"
|
|
62
62
|
import LpRollingText from "./LpRollingText.vue"
|
|
@@ -716,7 +716,7 @@ const guardOutside = useOutsideGuard()
|
|
|
716
716
|
:side="side"
|
|
717
717
|
:align="align"
|
|
718
718
|
:side-offset="6"
|
|
719
|
-
:class="[POPOVER_PANEL, 'z-(--z-popover) w-64 select-none rounded-card p-3 outline-none']"
|
|
719
|
+
:class="[POPOVER_PANEL, PANEL_FIT, 'z-(--z-popover) w-64 select-none rounded-card p-3 outline-none']"
|
|
720
720
|
@open-auto-focus="onPanelOpen"
|
|
721
721
|
>
|
|
722
722
|
<!-- The same menu inside the panel: copy/paste is wanted most while
|
|
@@ -823,7 +823,7 @@ const guardOutside = useOutsideGuard()
|
|
|
823
823
|
autocapitalize="off"
|
|
824
824
|
autocomplete="off"
|
|
825
825
|
:aria-label="l.value"
|
|
826
|
-
class="min-w-0 flex-1 select-text bg-transparent font-mono text-xs text-ink outline-none placeholder:text-muted"
|
|
826
|
+
class="lp-entry min-w-0 flex-1 select-text bg-transparent font-mono text-xs text-ink outline-none placeholder:text-muted"
|
|
827
827
|
:class="rolling ? 'text-transparent' : ''"
|
|
828
828
|
@input="onInput"
|
|
829
829
|
@keydown.enter="commitTyped"
|