@leavepulse/ui 0.73.6 → 0.74.1
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/chunks/{DropzoneLinkField-ppY9xalk.js → DropzoneLinkField-C-9BCGJn.js} +2 -2
- package/dist/chunks/{FieldWrapper-y5bKBNxA.js → FieldWrapper-CORPzo9s.js} +1 -1
- package/dist/chunks/{LpActionBar-B55msXTr.js → LpActionBar-BP1ld7-S.js} +2 -2
- package/dist/chunks/{LpAddressInput-mf_dEpj_.js → LpAddressInput-Al3HT5ey.js} +3 -3
- package/dist/chunks/{LpAlert-Cg7oIx1B.js → LpAlert-n5XPAZfv.js} +2 -2
- package/dist/chunks/{LpAppShell-B0Yu9MVs.js → LpAppShell-CpSSm5WT.js} +53 -24
- package/dist/chunks/{LpBadge-0A6sPks3.js → LpBadge-wUYLN4U9.js} +1 -1
- package/dist/chunks/{LpBottomNav-Dik-ZcHv.js → LpBottomNav-CbNQQPuL.js} +1 -1
- package/dist/chunks/{LpBreadcrumbs-ssZV3_od.js → LpBreadcrumbs-DPdbth-c.js} +1 -1
- package/dist/chunks/{LpButton-BgdewXxF.js → LpButton-CFb44IjC.js} +1 -1
- package/dist/chunks/{LpCard-BJ59q6hR.js → LpCard-r13WRqox.js} +1 -1
- package/dist/chunks/{LpCheckbox-B0kJ-t6T.js → LpCheckbox-Cs4SHaHX.js} +1 -1
- package/dist/chunks/{LpCodeBlock-CXR_7t_F.js → LpCodeBlock-DRC8VbXW.js} +1 -1
- package/dist/chunks/{LpCodeDisplay-BCghfBFC.js → LpCodeDisplay-CE9TxCA4.js} +4 -4
- package/dist/chunks/{LpConfirmDialog-CaA4pAre.js → LpConfirmDialog-DY2VjDji.js} +1 -1
- package/dist/chunks/{LpConfirmHost-CBIzALSL.js → LpConfirmHost-DvSZTJ4N.js} +1 -1
- package/dist/chunks/LpContextSwitcher-Dwh6dyID.js +81 -0
- package/dist/chunks/{LpCopyButton-Cw-lF7Q3.js → LpCopyButton-xF7wFVoU.js} +1 -1
- package/dist/chunks/{LpCountdown-BNNhnQAK.js → LpCountdown-DgeY3cLG.js} +1 -1
- package/dist/chunks/{LpDataList-CcAA-rD9.js → LpDataList-Jxyl9H5w.js} +1 -1
- package/dist/chunks/{LpEditable-CSuJIPbG.js → LpEditable-Cy6GLbFx.js} +2 -2
- package/dist/chunks/{LpFileTree-CxOh3rL2.js → LpFileTree-zIFEgo3I.js} +1 -1
- package/dist/chunks/{LpFileTreeNode-9ue2P7ER.js → LpFileTreeNode-cT6BIWvz.js} +3 -3
- package/dist/chunks/{LpFormField-BBFg8i2I.js → LpFormField-Ch69Jd-X.js} +1 -1
- package/dist/chunks/{LpHintLayer-Db_s9_DL.js → LpHintLayer-CgObdUsM.js} +2 -2
- package/dist/chunks/{LpHints-Cxf5GXsx.js → LpHints-Bz-BlaSl.js} +3 -3
- package/dist/chunks/{LpInfraNode-6NLxkAnr.js → LpInfraNode-46XOCkfq.js} +2 -2
- package/dist/chunks/{LpInput-B2dTt4pc.js → LpInput-Tw-yxT4I.js} +1 -1
- package/dist/chunks/{LpLightbox-Coe4OBUl.js → LpLightbox-B95yu22B.js} +2 -2
- package/dist/chunks/{LpLoader-DPTNhqLu.js → LpLoader-DVwkOmt9.js} +1 -1
- package/dist/chunks/{LpLogViewer-DxiR6Mbd.js → LpLogViewer-D25jM2_I.js} +3 -3
- package/dist/chunks/{LpMapPicker-DeJRMfFN.js → LpMapPicker-DRGgh89B.js} +1 -1
- package/dist/chunks/{LpMediaGallery-B7Km8N9l.js → LpMediaGallery-Bkram-MO.js} +1 -1
- package/dist/chunks/{LpModalNav-BmxEyqOx.js → LpModalNav-DQpV2kdn.js} +2 -2
- package/dist/chunks/{LpNotificationBell-u8-ZjRON.js → LpNotificationBell-3244LUVc.js} +3 -3
- package/dist/chunks/{LpPaletteTheme-CWAIjBCi.js → LpPaletteTheme-DiLYKQiZ.js} +3 -3
- package/dist/chunks/{LpPasswordInput-Ih7Lv43S.js → LpPasswordInput-BkHKQDhM.js} +2 -2
- package/dist/chunks/{LpPie-Idujdb3M.js → LpPie-DrZepi0p.js} +2 -2
- package/dist/chunks/{LpPipeline-QCZWWB0G.js → LpPipeline-B3aOVOkV.js} +2 -2
- package/dist/chunks/{LpRepeater-DghUJ3bc.js → LpRepeater-D7ZmnIYd.js} +2 -2
- package/dist/chunks/{LpScramble-DeT_D36q.js → LpScramble-Bn9OoOtC.js} +1 -1
- package/dist/chunks/{LpSecretField-osKPNdNT.js → LpSecretField-BbmqM9ye.js} +6 -6
- package/dist/chunks/{LpShift-kKUeG9NS.js → LpShift-CCq7dofl.js} +2 -4
- package/dist/chunks/{LpSidebar-CR_WKcn2.js → LpSidebar-BoNLKgh-.js} +2 -2
- package/dist/chunks/{LpSidebarNav-h3YunOAr.js → LpSidebarNav-Bky8chrv.js} +2 -2
- package/dist/chunks/{LpSidebarRow-SjV0Ouhq.js → LpSidebarRow-BRYhNDSo.js} +1 -1
- package/dist/chunks/{LpStat-DXqKD1h5.js → LpStat-f2LfDCJ4.js} +1 -1
- package/dist/chunks/{LpStatus-DfZREVe0.js → LpStatus-DglxttQ7.js} +2 -2
- package/dist/chunks/{LpStepMark-TaAyuNsH.js → LpStepMark-DpzKVyh8.js} +1 -1
- package/dist/chunks/{LpStepper-CKSTFzHE.js → LpStepper-DpsocBNJ.js} +1 -1
- package/dist/chunks/{LpSwap-KIS24N8W.js → LpSwap-C96c0LWh.js} +1 -1
- package/dist/chunks/{LpSwitch-DlZHmj-M.js → LpSwitch-BnXd1llc.js} +1 -1
- package/dist/chunks/{LpTabFace-JFJLW0kA.js → LpTabFace-DPCwKkH2.js} +1 -1
- package/dist/chunks/{LpTableFilter-47ANnx_a.js → LpTableFilter-CiVBpaq0.js} +3 -3
- package/dist/chunks/{LpTagsInput-CHoiid8u.js → LpTagsInput-C-mDG648.js} +2 -2
- package/dist/chunks/{LpTextarea-CU7C1pLO.js → LpTextarea-TE-yZv2U.js} +1 -1
- package/dist/chunks/{LpThemeStudio-zyOH3dF2.js → LpThemeStudio-BpORDvH6.js} +2 -2
- package/dist/chunks/{LpThemeSwitcher-BXJhQYGD.js → LpThemeSwitcher-BnEn_mvf.js} +2 -2
- package/dist/chunks/{LpToaster-C1D35SKk.js → LpToaster-IwTXjbbU.js} +1 -1
- package/dist/chunks/{LpTopologyCanvas-1OufbBtQ.js → LpTopologyCanvas-B1gIbS0n.js} +1 -1
- package/dist/chunks/{LpTour-XshJslGg.js → LpTour-BZq-mUMv.js} +1 -1
- package/dist/chunks/{LpTruncate-qgKA-3K3.js → LpTruncate-CflAIwiJ.js} +1 -1
- package/dist/chunks/{LpUptimeBar-qhvvmmoI.js → LpUptimeBar-DqNvvMBK.js} +2 -2
- package/dist/chunks/{RevealToggle-6MlmohxS.js → RevealToggle-BEit1n6Z.js} +1 -1
- package/dist/chunks/{TourCard-BuB-i4kv.js → TourCard-DNclH3u_.js} +3 -3
- package/dist/component-names.d.ts +1 -1
- package/dist/components/DropzoneLinkField.vue.js +1 -1
- package/dist/components/FieldWrapper.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.d.ts +25 -1
- package/dist/components/LpAppShell.vue.js +1 -1
- package/dist/components/LpBadge.vue.js +1 -1
- package/dist/components/LpBottomNav.vue.js +1 -1
- package/dist/components/LpBreadcrumbs.vue.js +1 -1
- package/dist/components/LpButton.vue.js +1 -1
- package/dist/components/LpCard.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/LpCommandPalette.vue.js +2 -2
- package/dist/components/LpConfirmDialog.vue.js +1 -1
- package/dist/components/LpConfirmHost.vue.js +1 -1
- package/dist/components/LpContextSwitcher.vue.d.ts +34 -0
- package/dist/components/LpContextSwitcher.vue.js +4 -0
- package/dist/components/LpCopyButton.vue.js +1 -1
- package/dist/components/LpCountdown.vue.js +1 -1
- package/dist/components/LpDataList.vue.js +1 -1
- package/dist/components/LpDropzone.vue.js +1 -1
- package/dist/components/LpEditable.vue.js +1 -1
- package/dist/components/LpFileTree.vue.js +1 -1
- package/dist/components/LpFileTreeNode.vue.js +1 -1
- package/dist/components/LpFormField.vue.js +1 -1
- package/dist/components/LpHintLayer.vue.js +1 -1
- package/dist/components/LpHints.vue.js +1 -1
- package/dist/components/LpImageEditor.vue.js +1 -1
- package/dist/components/LpInfraNode.vue.js +1 -1
- package/dist/components/LpInput.vue.js +1 -1
- package/dist/components/LpLightbox.vue.js +1 -1
- package/dist/components/LpLoader.vue.js +1 -1
- package/dist/components/LpLogViewer.vue.js +1 -1
- package/dist/components/LpMapPicker.vue.js +1 -1
- package/dist/components/LpMediaGallery.vue.js +1 -1
- package/dist/components/LpModalNav.vue.js +1 -1
- package/dist/components/LpNotificationBell.vue.js +1 -1
- package/dist/components/LpPaletteTheme.vue.js +1 -1
- package/dist/components/LpPasswordInput.vue.js +1 -1
- package/dist/components/LpPie.vue.js +1 -1
- package/dist/components/LpPipeline.vue.js +1 -1
- package/dist/components/LpRepeater.vue.js +1 -1
- package/dist/components/LpScramble.vue.js +1 -1
- package/dist/components/LpSecretField.vue.js +1 -1
- package/dist/components/LpShift.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/LpStat.vue.js +1 -1
- package/dist/components/LpStatus.vue.js +1 -1
- package/dist/components/LpStepMark.vue.js +1 -1
- package/dist/components/LpStepper.vue.js +1 -1
- package/dist/components/LpSwap.vue.js +1 -1
- package/dist/components/LpSwitch.vue.js +1 -1
- package/dist/components/LpTabFace.vue.js +1 -1
- package/dist/components/LpTable.vue.js +6 -6
- 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/LpToaster.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/RevealToggle.vue.js +1 -1
- package/dist/components/TourCard.vue.js +1 -1
- package/dist/components/sidebar.d.ts +6 -0
- package/dist/composables/useShift.d.ts +0 -2
- package/dist/composables/useShift.js +0 -5
- package/dist/index.d.ts +2 -0
- package/dist/index.js +143 -141
- package/package.json +1 -1
- package/src/component-names.ts +1 -0
- package/src/components/LpAppShell.vue +27 -3
- package/src/components/LpContextSwitcher.vue +74 -0
- package/src/components/LpShift.vue +2 -4
- package/src/components/sidebar.ts +7 -0
- package/src/composables/useShift.ts +0 -10
- package/src/index.ts +2 -0
package/dist/index.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { _ } from "./chunks/LayoutCanvas-CNOAUk7D.js";
|
|
2
|
-
import { _ as _2 } from "./chunks/LpAddressInput-
|
|
3
|
-
import { _ as _3 } from "./chunks/LpMapPicker-
|
|
2
|
+
import { _ as _2 } from "./chunks/LpAddressInput-Al3HT5ey.js";
|
|
3
|
+
import { _ as _3 } from "./chunks/LpMapPicker-DRGgh89B.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-
|
|
5
|
+
import { _ as _4 } from "./chunks/LpActionBar-BP1ld7-S.js";
|
|
6
|
+
import { _ as _5 } from "./chunks/LpAlert-n5XPAZfv.js";
|
|
7
|
+
import { _ as _6 } from "./chunks/LpAppShell-CpSSm5WT.js";
|
|
8
8
|
import { _ as _7 } from "./chunks/LpAutocomplete-DOu7FN5P.js";
|
|
9
9
|
import { _ as _8 } from "./chunks/LpAvatar-Cg6Az3wz.js";
|
|
10
|
-
import { _ as _9 } from "./chunks/LpBadge-
|
|
11
|
-
import { _ as _10 } from "./chunks/LpBreadcrumbs-
|
|
12
|
-
import { _ as _11 } from "./chunks/LpButton-
|
|
10
|
+
import { _ as _9 } from "./chunks/LpBadge-wUYLN4U9.js";
|
|
11
|
+
import { _ as _10 } from "./chunks/LpBreadcrumbs-DPdbth-c.js";
|
|
12
|
+
import { _ as _11 } from "./chunks/LpButton-CFb44IjC.js";
|
|
13
13
|
import { _ as _12 } from "./chunks/LpCalendar-CuoWks-0.js";
|
|
14
|
-
import { _ as _13 } from "./chunks/LpCard-
|
|
14
|
+
import { _ as _13 } from "./chunks/LpCard-r13WRqox.js";
|
|
15
15
|
import { default as default2 } from "./components/LpChart.vue.js";
|
|
16
16
|
import { backgroundOf, csvField, downloadFile, fileStem, inlineSvg, resolveCssColor, svgToPng, toCsv } from "./components/exportData.js";
|
|
17
17
|
import { CHART_PALETTE, axisTicks, chartSummary, formatTick, markerIndex, niceScale, resolveSlices } from "./components/chart.js";
|
|
18
|
-
import { _ as _14 } from "./chunks/LpCheckbox-
|
|
19
|
-
import { _ as _15 } from "./chunks/LpCodeBlock-
|
|
18
|
+
import { _ as _14 } from "./chunks/LpCheckbox-Cs4SHaHX.js";
|
|
19
|
+
import { _ as _15 } from "./chunks/LpCodeBlock-DRC8VbXW.js";
|
|
20
20
|
import { tokenizeLines } from "./components/codeHighlight.js";
|
|
21
21
|
import { _ as _16 } from "./chunks/LpColorPicker-1y1QJHZR.js";
|
|
22
22
|
import { DEFAULT_SWATCHES, clampHsv, formatColor, hsvToHsl, hsvToRgb, isLight, normalizeHue, opaqueCss, parseColor, parseHex, rgbToHex, rgbToHsv } from "./components/color.js";
|
|
@@ -30,8 +30,8 @@ import { default as default6 } from "./components/LpPaletteStats.vue.js";
|
|
|
30
30
|
import { default as default7 } from "./components/LpPaletteSwatches.vue.js";
|
|
31
31
|
import { default as default8 } from "./components/LpKeys.vue.js";
|
|
32
32
|
import { comboKeys, comboSteps } from "./components/keys.js";
|
|
33
|
-
import { _ as _18 } from "./chunks/LpConfirmDialog-
|
|
34
|
-
import { _ as _19 } from "./chunks/LpConfirmHost-
|
|
33
|
+
import { _ as _18 } from "./chunks/LpConfirmDialog-DY2VjDji.js";
|
|
34
|
+
import { _ as _19 } from "./chunks/LpConfirmHost-DvSZTJ4N.js";
|
|
35
35
|
import { confirm, useConfirm } from "./components/confirm.js";
|
|
36
36
|
import { _ as _20 } from "./chunks/LpContextMenu-rx2tCjwk.js";
|
|
37
37
|
import { _ as _21 } from "./chunks/LpDatePicker-CA0QTfBC.js";
|
|
@@ -44,31 +44,31 @@ import { _ as _26 } from "./chunks/LpDrawer-RRamxbLV.js";
|
|
|
44
44
|
import { _ as _27 } from "./chunks/LpDropdownMenu-Dl7Z4ZhS.js";
|
|
45
45
|
import { default as default9 } from "./components/LpDropzone.vue.js";
|
|
46
46
|
import { _ as _28 } from "./chunks/LpEmptyState-EQHiRYhG.js";
|
|
47
|
-
import { _ as _29 } from "./chunks/LpFileTree-
|
|
47
|
+
import { _ as _29 } from "./chunks/LpFileTree-zIFEgo3I.js";
|
|
48
48
|
import { ancestorIds, checkStateOf, checkedCount, computeStats, fileIcon, formatModified, formatSize, sortNodes, subtreeIds, subtreeSize } from "./components/fileTree.js";
|
|
49
49
|
import { _ as _30 } from "./chunks/LpFieldNotice-CzQ2_5rQ.js";
|
|
50
|
-
import { _ as _31 } from "./chunks/LpFormField-
|
|
50
|
+
import { _ as _31 } from "./chunks/LpFormField-Ch69Jd-X.js";
|
|
51
51
|
import { _ as _32 } from "./chunks/LpIcon--5WSb3jJ.js";
|
|
52
52
|
import { i, b, a, c } from "./chunks/icons-DMITlfw5.js";
|
|
53
53
|
import { default as default10 } from "./components/LpImageEditor.vue.js";
|
|
54
|
-
import { _ as _33 } from "./chunks/LpInfraNode-
|
|
55
|
-
import { _ as _34 } from "./chunks/LpInput-
|
|
56
|
-
import { _ as _35 } from "./chunks/LpLightbox-
|
|
54
|
+
import { _ as _33 } from "./chunks/LpInfraNode-46XOCkfq.js";
|
|
55
|
+
import { _ as _34 } from "./chunks/LpInput-Tw-yxT4I.js";
|
|
56
|
+
import { _ as _35 } from "./chunks/LpLightbox-B95yu22B.js";
|
|
57
57
|
import { fileNameOf } from "./components/lightbox.js";
|
|
58
58
|
import { _ as _36 } from "./chunks/LpLink-Krkjhe_y.js";
|
|
59
|
-
import { _ as _37 } from "./chunks/LpLogViewer-
|
|
59
|
+
import { _ as _37 } from "./chunks/LpLogViewer-D25jM2_I.js";
|
|
60
60
|
import { countLevels, matchPositions, matchesTerm, ringWindow, stepMatch } from "./components/logSearch.js";
|
|
61
|
-
import { _ as _38 } from "./chunks/LpMediaGallery-
|
|
61
|
+
import { _ as _38 } from "./chunks/LpMediaGallery-Bkram-MO.js";
|
|
62
62
|
import { _ as _39 } from "./chunks/LpModal-BnjZ2iem.js";
|
|
63
|
-
import { _ as _40 } from "./chunks/LpModalNav-
|
|
64
|
-
import { _ as _41 } from "./chunks/LpNotificationBell-
|
|
63
|
+
import { _ as _40 } from "./chunks/LpModalNav-DQpV2kdn.js";
|
|
64
|
+
import { _ as _41 } from "./chunks/LpNotificationBell-3244LUVc.js";
|
|
65
65
|
import { _ as _42 } from "./chunks/LpNumberField-e0IBkWU1.js";
|
|
66
66
|
import { _ as _43 } from "./chunks/LpTimeField-BawSVsmt.js";
|
|
67
67
|
import { _ as _44 } from "./chunks/LpNumberFlow-Vqj0tP7B.js";
|
|
68
68
|
import { _ as _45 } from "./chunks/LpOtpInput-CeBPsM7D.js";
|
|
69
69
|
import { _ as _46 } from "./chunks/LpPagination-BIIiYHXR.js";
|
|
70
|
-
import { _ as _47 } from "./chunks/LpPasswordInput-
|
|
71
|
-
import { _ as _48 } from "./chunks/LpPie-
|
|
70
|
+
import { _ as _47 } from "./chunks/LpPasswordInput-BkHKQDhM.js";
|
|
71
|
+
import { _ as _48 } from "./chunks/LpPie-DrZepi0p.js";
|
|
72
72
|
import { _ as _49 } from "./chunks/LpPhoneInput-CETEp5W7.js";
|
|
73
73
|
import { filterCountries, flagEmoji, loadCountries, matchCountryByValue } from "./components/countries.js";
|
|
74
74
|
import { _ as _50 } from "./chunks/LpPopover-DmZ3wUtP.js";
|
|
@@ -82,49 +82,50 @@ import { _ as _57 } from "./chunks/LpSection-DFK_uoJE.js";
|
|
|
82
82
|
import { _ as _58 } from "./chunks/LpSelect-Cxq4yBGd.js";
|
|
83
83
|
import { fitChips, toggledValues } from "./components/select.js";
|
|
84
84
|
import { _ as _59 } from "./chunks/LpServiceNode-D8uJ8sGk.js";
|
|
85
|
-
import { _ as _60 } from "./chunks/LpShift-
|
|
86
|
-
import { _ as _61 } from "./chunks/LpSwap-
|
|
85
|
+
import { _ as _60 } from "./chunks/LpShift-CCq7dofl.js";
|
|
86
|
+
import { _ as _61 } from "./chunks/LpSwap-C96c0LWh.js";
|
|
87
87
|
import { _ as _62 } from "./chunks/LpHintExample-9Py0wc-L.js";
|
|
88
88
|
import { default as default11 } from "./components/LpShortcutsDialog.vue.js";
|
|
89
|
-
import { _ as _63 } from "./chunks/LpSidebar-
|
|
90
|
-
import { _ as _64 } from "./chunks/
|
|
91
|
-
import { _ as _65 } from "./chunks/
|
|
92
|
-
import { _ as _66 } from "./chunks/
|
|
93
|
-
import { _ as _67 } from "./chunks/
|
|
89
|
+
import { _ as _63 } from "./chunks/LpSidebar-BoNLKgh-.js";
|
|
90
|
+
import { _ as _64 } from "./chunks/LpContextSwitcher-Dwh6dyID.js";
|
|
91
|
+
import { _ as _65 } from "./chunks/LpSkeleton-BB6XIV-w.js";
|
|
92
|
+
import { _ as _66 } from "./chunks/LpSlider-DxYoCJJO.js";
|
|
93
|
+
import { _ as _67 } from "./chunks/LpRangeSlider-CM-0ZITZ.js";
|
|
94
|
+
import { _ as _68 } from "./chunks/LpVideoBackdrop-DS1wGv-X.js";
|
|
94
95
|
import { formatClipTime, isNativeLoop, planLoop, seamProgress, seamReached } from "./components/videoBackdrop.js";
|
|
95
|
-
import { _ as
|
|
96
|
-
import { _ as
|
|
97
|
-
import { _ as
|
|
98
|
-
import { _ as
|
|
96
|
+
import { _ as _69 } from "./chunks/LpSparkline-CExIRDb3.js";
|
|
97
|
+
import { _ as _70 } from "./chunks/LpStat-f2LfDCJ4.js";
|
|
98
|
+
import { _ as _71 } from "./chunks/LpStepper-DpsocBNJ.js";
|
|
99
|
+
import { _ as _72 } from "./chunks/LpSwitch-BnXd1llc.js";
|
|
99
100
|
import { default as default12 } from "./components/LpTable.vue.js";
|
|
100
101
|
import { compareValues } from "./components/tableSort.js";
|
|
101
102
|
import { resolveRowMenu } from "./components/tableRowMenu.js";
|
|
102
|
-
import { _ as
|
|
103
|
+
import { _ as _73 } from "./chunks/LpTableOfContents-BN5zvpnx.js";
|
|
103
104
|
import { default as default13 } from "./components/LpTabs.vue.js";
|
|
104
|
-
import { _ as
|
|
105
|
-
import { _ as
|
|
105
|
+
import { _ as _74 } from "./chunks/LpBottomNav-CbNQQPuL.js";
|
|
106
|
+
import { _ as _75 } from "./chunks/LpTagsInput-C-mDG648.js";
|
|
106
107
|
import { addTags, splitTags } from "./components/tags.js";
|
|
107
|
-
import { _ as
|
|
108
|
-
import { _ as
|
|
109
|
-
import { _ as
|
|
110
|
-
import { _ as
|
|
111
|
-
import { _ as
|
|
112
|
-
import { _ as
|
|
108
|
+
import { _ as _76 } from "./chunks/LpTextarea-TE-yZv2U.js";
|
|
109
|
+
import { _ as _77 } from "./chunks/LpThemeSwitcher-BnEn_mvf.js";
|
|
110
|
+
import { _ as _78 } from "./chunks/LpTilt-B7KHX1zH.js";
|
|
111
|
+
import { _ as _79 } from "./chunks/LpToaster-IwTXjbbU.js";
|
|
112
|
+
import { _ as _80 } from "./chunks/LpTooltip-BcBvIx4z.js";
|
|
113
|
+
import { _ as _81 } from "./chunks/LpTour-BZq-mUMv.js";
|
|
113
114
|
import { holeOf, openContextMenu, panelsAround } from "./components/tour.js";
|
|
114
|
-
import { _ as
|
|
115
|
-
import { _ as
|
|
115
|
+
import { _ as _82 } from "./chunks/LpHintLayer-CgObdUsM.js";
|
|
116
|
+
import { _ as _83 } from "./chunks/LpHints-Bz-BlaSl.js";
|
|
116
117
|
import { HINT_SIGNALS, contextMenuTip, createHintSystem, dropzoneTip, hintKey, hintSummary, hotkeyTip, localHintStorage, noteDropzone, noteHotkeyTarget, paletteTip, provideHintSystem, runningHintSystem, useHintSystem } from "./composables/useHintSystem.js";
|
|
117
|
-
import { _ as
|
|
118
|
-
import { _ as
|
|
119
|
-
import { _ as
|
|
118
|
+
import { _ as _84 } from "./chunks/LpTooltipProvider-CftjV7Xc.js";
|
|
119
|
+
import { _ as _85 } from "./chunks/LpTopologyCanvas-B1gIbS0n.js";
|
|
120
|
+
import { _ as _86 } from "./chunks/LpUptimeBar-DqNvvMBK.js";
|
|
120
121
|
import { deserializeLayout, serializeLayout } from "./layout/tree.js";
|
|
121
122
|
import { addLeaf, addTab, countBlocks, countLeaves, makeLayout, moveLeaf, removeBlock, removeLeaf, reorderTab, resizeAt, setActiveTab } from "./layout/tree.js";
|
|
122
123
|
import { blockTitle, defineBlocks } from "./layout/registry.js";
|
|
123
124
|
import { layoutController, useLayout } from "./layout/useLayout.js";
|
|
124
125
|
import { a as parseTheme, s as serializeTheme } from "./chunks/LpThemeProvider-8MG6yqU9.js";
|
|
125
|
-
import { D, _ as
|
|
126
|
+
import { D, _ as _87, T, b as b2, c as c2, d, e, f, g, l, h, n, i as i2, j, p, r, k, t, m, o, q, u, v } from "./chunks/LpThemeProvider-8MG6yqU9.js";
|
|
126
127
|
import { G, N, d as d2, i as i3, s } from "./chunks/backdrop-Dkf2vM81.js";
|
|
127
|
-
import { _ as
|
|
128
|
+
import { _ as _88, a as a2, b as b3, c as c3, d as d3, S, e as e2, u as u2, w } from "./chunks/LpThemeStudio-BpORDvH6.js";
|
|
128
129
|
import { useClipboard } from "./composables/useClipboard.js";
|
|
129
130
|
import { activeShortcuts, appleModifierLabel, findHotkeyConflicts, hotkeyConflicts, hotkeySteps, isAppleKeyboard, matchesHotkey, mergeShortcutGroups, parseCombo, pendingHotkey, sequenceProgress, useAppleKeyboard, useHotkeys } from "./composables/useHotkeys.js";
|
|
130
131
|
import { anyModalOpen, topModalElement, useModalLayer } from "./components/modalDepth.js";
|
|
@@ -160,64 +161,64 @@ import { useShift } from "./composables/useShift.js";
|
|
|
160
161
|
import { useTilt } from "./composables/useTilt.js";
|
|
161
162
|
import { useZoomPan } from "./composables/useZoomPan.js";
|
|
162
163
|
import { useToast } from "./composables/useToast.js";
|
|
163
|
-
import { _ as
|
|
164
|
-
import { _ as
|
|
164
|
+
import { _ as _89 } from "./chunks/LpFrame-BVQCQLDI.js";
|
|
165
|
+
import { _ as _90 } from "./chunks/LpThemeStudioSection-B7bt8Iyg.js";
|
|
165
166
|
import { isInternalHref, resolveLink } from "./components/link.js";
|
|
166
|
-
import { _ as
|
|
167
|
-
import { _ as
|
|
168
|
-
import { _ as
|
|
169
|
-
import { _ as
|
|
170
|
-
import { _ as
|
|
171
|
-
import { _ as
|
|
167
|
+
import { _ as _91 } from "./chunks/LpRepeater-D7ZmnIYd.js";
|
|
168
|
+
import { _ as _92 } from "./chunks/LpGauge-KZaQ_FDR.js";
|
|
169
|
+
import { _ as _93 } from "./chunks/LpQuota-Dk2MyI2Z.js";
|
|
170
|
+
import { _ as _94 } from "./chunks/LpStatus-DglxttQ7.js";
|
|
171
|
+
import { _ as _95 } from "./chunks/LpRelativeTime-DwgCb5-8.js";
|
|
172
|
+
import { _ as _96 } from "./chunks/LpActivityLine-CJvzrNpj.js";
|
|
172
173
|
import { TONE_COLOR, TONE_SOFT, arcPath, capacityThresholds, meterFraction, toneAt } from "./components/meter.js";
|
|
173
174
|
import { TONES, TONE_ALIASES, toneLook, toneOf } from "./components/tone.js";
|
|
174
175
|
import { formatAmount, quotaSegments, quotaState } from "./components/quota.js";
|
|
175
176
|
import { compactNumber, decimalMark, formatBytes } from "./components/format.js";
|
|
176
177
|
import { STATUS_LABELS, STATUS_LOOK } from "./components/status.js";
|
|
177
178
|
import { formatRelativeTime } from "./components/relativeTime.js";
|
|
178
|
-
import { _ as
|
|
179
|
-
import { _ as
|
|
179
|
+
import { _ as _97 } from "./chunks/LpPipeline-B3aOVOkV.js";
|
|
180
|
+
import { _ as _98 } from "./chunks/LpStepMark-DpzKVyh8.js";
|
|
180
181
|
import { childProgress, connectorFilled, currentStepIndex, isSettled, overallStatus, stepElapsed } from "./components/pipeline.js";
|
|
181
|
-
import { _ as
|
|
182
|
+
import { _ as _99 } from "./chunks/LpLoader-DVwkOmt9.js";
|
|
182
183
|
import { useLoadingGate } from "./composables/useLoadingGate.js";
|
|
183
184
|
import { useNow } from "./composables/useNow.js";
|
|
184
|
-
import { _ as
|
|
185
|
+
import { _ as _100 } from "./chunks/LpCountdown-DgeY3cLG.js";
|
|
185
186
|
import { DEFAULT_MILESTONES, DEFAULT_UNIT_LABELS, ceilToSecond, crossedMilestone, formatElapsed, formatTime, msToNextSecond, splitTime, timeParts } from "./components/timeSpan.js";
|
|
186
|
-
import { _ as
|
|
187
|
-
import { _ as
|
|
188
|
-
import { _ as
|
|
189
|
-
import { _ as
|
|
190
|
-
import { _ as
|
|
191
|
-
import { _ as
|
|
187
|
+
import { _ as _101 } from "./chunks/LpCopyButton-xF7wFVoU.js";
|
|
188
|
+
import { _ as _102 } from "./chunks/LpSecretField-BbmqM9ye.js";
|
|
189
|
+
import { _ as _103 } from "./chunks/LpDataList-Jxyl9H5w.js";
|
|
190
|
+
import { _ as _104 } from "./chunks/LpEditable-Cy6GLbFx.js";
|
|
191
|
+
import { _ as _105 } from "./chunks/LpTruncate-CflAIwiJ.js";
|
|
192
|
+
import { _ as _106 } from "./chunks/LpCodeDisplay-CE9TxCA4.js";
|
|
192
193
|
import { formatRemaining, groupCode, middleTruncate, normalizeCode } from "./components/fieldText.js";
|
|
193
|
-
import { _ as
|
|
194
|
-
import { _ as
|
|
194
|
+
import { _ as _107 } from "./chunks/LpHoverCard-spGxyw7T.js";
|
|
195
|
+
import { _ as _108 } from "./chunks/LpIdenticon-BzdC_qz9.js";
|
|
195
196
|
import { hashString, identicon, identiconRects, identiconSvg } from "./components/identicon.js";
|
|
196
|
-
import { _ as
|
|
197
|
+
import { _ as _109 } from "./chunks/LpShaderBackdrop-Bote0iuy.js";
|
|
197
198
|
import { PRESET_NAMES } from "./components/shaderBackdrop.js";
|
|
198
|
-
import { _ as
|
|
199
|
+
import { _ as _110 } from "./chunks/LpCollapse-CWS9M_lm.js";
|
|
199
200
|
import { pseudoLocalize } from "./composables/pseudoLocale.js";
|
|
200
|
-
import { _ as
|
|
201
|
-
import { _ as
|
|
202
|
-
import { _ as
|
|
203
|
-
import { _ as
|
|
201
|
+
import { _ as _111 } from "./chunks/LpTextReveal-CtAnOUkp.js";
|
|
202
|
+
import { _ as _112 } from "./chunks/LpShinyText-DX2ajtWq.js";
|
|
203
|
+
import { _ as _113 } from "./chunks/LpTypewriter-BCL_a6wE.js";
|
|
204
|
+
import { _ as _114 } from "./chunks/LpScramble-Bn9OoOtC.js";
|
|
204
205
|
import { useScramble } from "./composables/useScramble.js";
|
|
205
206
|
import { useInView } from "./composables/useInView.js";
|
|
206
207
|
import { SCRAMBLE_GLYPHS, graphemes, planScramble, randomGlyph, scrambleFrame, seededRandom, settledCells } from "./components/scramble.js";
|
|
207
208
|
import { default as default14 } from "./components/LpDock.vue.js";
|
|
208
209
|
import { dockSize, magneticOffset } from "./components/dock.js";
|
|
209
|
-
import { _ as
|
|
210
|
+
import { _ as _115 } from "./chunks/LpMasonry--k0571qG.js";
|
|
210
211
|
import { masonryColumnCount, placeMasonry } from "./components/masonry.js";
|
|
211
|
-
import { _ as
|
|
212
|
+
import { _ as _116 } from "./chunks/LpRevealOnScroll-DcQjexLy.js";
|
|
212
213
|
import { revealFrom, revealTo, staggerDelay } from "./components/reveal.js";
|
|
213
|
-
import { _ as
|
|
214
|
-
import { _ as
|
|
215
|
-
import { _ as
|
|
214
|
+
import { _ as _117 } from "./chunks/LpSpotlight-4F3NeUMY.js";
|
|
215
|
+
import { _ as _118 } from "./chunks/LpGlowBorder-B8V-QzIl.js";
|
|
216
|
+
import { _ as _119 } from "./chunks/LpMagnetic-CtXKLa2Y.js";
|
|
216
217
|
import { spotlightPoint, useSpotlight } from "./composables/useSpotlight.js";
|
|
217
|
-
import { _ as
|
|
218
|
+
import { _ as _120 } from "./chunks/LpCommandScope-CtUhJe8T.js";
|
|
218
219
|
import { createPaletteRegistry, mergePaletteCommands, usePaletteCommands, vPalette } from "./composables/usePaletteCommands.js";
|
|
219
220
|
import { u as u3 } from "./chunks/palette-Co8tSASo.js";
|
|
220
|
-
import { _ as
|
|
221
|
+
import { _ as _121 } from "./chunks/LpPaletteTheme-DiLYKQiZ.js";
|
|
221
222
|
const UI_CONFIG_VERSION = 1;
|
|
222
223
|
function serializeConfig(config) {
|
|
223
224
|
const out = {
|
|
@@ -250,14 +251,14 @@ export {
|
|
|
250
251
|
LP_FIELD,
|
|
251
252
|
_ as LayoutCanvas,
|
|
252
253
|
_4 as LpActionBar,
|
|
253
|
-
|
|
254
|
+
_96 as LpActivityLine,
|
|
254
255
|
_2 as LpAddressInput,
|
|
255
256
|
_5 as LpAlert,
|
|
256
257
|
_6 as LpAppShell,
|
|
257
258
|
_7 as LpAutocomplete,
|
|
258
259
|
_8 as LpAvatar,
|
|
259
260
|
_9 as LpBadge,
|
|
260
|
-
|
|
261
|
+
_74 as LpBottomNav,
|
|
261
262
|
_10 as LpBreadcrumbs,
|
|
262
263
|
_11 as LpButton,
|
|
263
264
|
_12 as LpCalendar,
|
|
@@ -265,17 +266,18 @@ export {
|
|
|
265
266
|
default2 as LpChart,
|
|
266
267
|
_14 as LpCheckbox,
|
|
267
268
|
_15 as LpCodeBlock,
|
|
268
|
-
|
|
269
|
-
|
|
269
|
+
_106 as LpCodeDisplay,
|
|
270
|
+
_110 as LpCollapse,
|
|
270
271
|
_16 as LpColorPicker,
|
|
271
272
|
default3 as LpCommandPalette,
|
|
272
|
-
|
|
273
|
+
_120 as LpCommandScope,
|
|
273
274
|
_18 as LpConfirmDialog,
|
|
274
275
|
_19 as LpConfirmHost,
|
|
275
276
|
_20 as LpContextMenu,
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
277
|
+
_64 as LpContextSwitcher,
|
|
278
|
+
_101 as LpCopyButton,
|
|
279
|
+
_100 as LpCountdown,
|
|
280
|
+
_103 as LpDataList,
|
|
279
281
|
_21 as LpDatePicker,
|
|
280
282
|
_22 as LpDateRangePicker,
|
|
281
283
|
_24 as LpDisclosure,
|
|
@@ -284,31 +286,31 @@ export {
|
|
|
284
286
|
_26 as LpDrawer,
|
|
285
287
|
_27 as LpDropdownMenu,
|
|
286
288
|
default9 as LpDropzone,
|
|
287
|
-
|
|
289
|
+
_104 as LpEditable,
|
|
288
290
|
_28 as LpEmptyState,
|
|
289
291
|
_30 as LpFieldNotice,
|
|
290
292
|
_29 as LpFileTree,
|
|
291
293
|
_31 as LpFormField,
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
294
|
+
_89 as LpFrame,
|
|
295
|
+
_92 as LpGauge,
|
|
296
|
+
_118 as LpGlowBorder,
|
|
295
297
|
_62 as LpHintExample,
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
298
|
+
_82 as LpHintLayer,
|
|
299
|
+
_83 as LpHints,
|
|
300
|
+
_107 as LpHoverCard,
|
|
299
301
|
_32 as LpIcon,
|
|
300
|
-
|
|
302
|
+
_108 as LpIdenticon,
|
|
301
303
|
default10 as LpImageEditor,
|
|
302
304
|
_33 as LpInfraNode,
|
|
303
305
|
_34 as LpInput,
|
|
304
306
|
default8 as LpKeys,
|
|
305
307
|
_35 as LpLightbox,
|
|
306
308
|
_36 as LpLink,
|
|
307
|
-
|
|
309
|
+
_99 as LpLoader,
|
|
308
310
|
_37 as LpLogViewer,
|
|
309
|
-
|
|
311
|
+
_119 as LpMagnetic,
|
|
310
312
|
_3 as LpMapPicker,
|
|
311
|
-
|
|
313
|
+
_115 as LpMasonry,
|
|
312
314
|
_38 as LpMediaGallery,
|
|
313
315
|
_39 as LpModal,
|
|
314
316
|
_40 as LpModalNav,
|
|
@@ -322,65 +324,65 @@ export {
|
|
|
322
324
|
_17 as LpPalettePreview,
|
|
323
325
|
default6 as LpPaletteStats,
|
|
324
326
|
default7 as LpPaletteSwatches,
|
|
325
|
-
|
|
327
|
+
_121 as LpPaletteTheme,
|
|
326
328
|
_47 as LpPasswordInput,
|
|
327
329
|
_49 as LpPhoneInput,
|
|
328
330
|
_48 as LpPie,
|
|
329
|
-
|
|
331
|
+
_97 as LpPipeline,
|
|
330
332
|
_50 as LpPopover,
|
|
331
333
|
_51 as LpProgress,
|
|
332
|
-
|
|
334
|
+
_93 as LpQuota,
|
|
333
335
|
_52 as LpRadio,
|
|
334
336
|
_53 as LpRadioGroup,
|
|
335
337
|
_23 as LpRangeCalendar,
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
338
|
+
_67 as LpRangeSlider,
|
|
339
|
+
_95 as LpRelativeTime,
|
|
340
|
+
_91 as LpRepeater,
|
|
341
|
+
_116 as LpRevealOnScroll,
|
|
340
342
|
_54 as LpRollingText,
|
|
341
|
-
|
|
343
|
+
_114 as LpScramble,
|
|
342
344
|
_55 as LpScrollArea,
|
|
343
|
-
|
|
345
|
+
_102 as LpSecretField,
|
|
344
346
|
_57 as LpSection,
|
|
345
347
|
_56 as LpSegmented,
|
|
346
348
|
_58 as LpSelect,
|
|
347
349
|
_59 as LpServiceNode,
|
|
348
|
-
|
|
350
|
+
_109 as LpShaderBackdrop,
|
|
349
351
|
_60 as LpShift,
|
|
350
|
-
|
|
352
|
+
_112 as LpShinyText,
|
|
351
353
|
default11 as LpShortcutsDialog,
|
|
352
354
|
_63 as LpSidebar,
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
355
|
+
_65 as LpSkeleton,
|
|
356
|
+
_66 as LpSlider,
|
|
357
|
+
_69 as LpSparkline,
|
|
358
|
+
_117 as LpSpotlight,
|
|
359
|
+
_70 as LpStat,
|
|
360
|
+
_94 as LpStatus,
|
|
361
|
+
_98 as LpStepMark,
|
|
362
|
+
_71 as LpStepper,
|
|
361
363
|
_61 as LpSwap,
|
|
362
|
-
|
|
364
|
+
_72 as LpSwitch,
|
|
363
365
|
default12 as LpTable,
|
|
364
|
-
|
|
366
|
+
_73 as LpTableOfContents,
|
|
365
367
|
default13 as LpTabs,
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
368
|
+
_75 as LpTagsInput,
|
|
369
|
+
_111 as LpTextReveal,
|
|
370
|
+
_76 as LpTextarea,
|
|
371
|
+
_87 as LpThemeProvider,
|
|
372
|
+
_88 as LpThemeStudio,
|
|
373
|
+
_90 as LpThemeStudioSection,
|
|
374
|
+
_77 as LpThemeSwitcher,
|
|
375
|
+
_78 as LpTilt,
|
|
374
376
|
_43 as LpTimeField,
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
377
|
+
_79 as LpToaster,
|
|
378
|
+
_80 as LpTooltip,
|
|
379
|
+
_84 as LpTooltipProvider,
|
|
380
|
+
_85 as LpTopologyCanvas,
|
|
381
|
+
_81 as LpTour,
|
|
382
|
+
_105 as LpTruncate,
|
|
383
|
+
_113 as LpTypewriter,
|
|
384
|
+
_86 as LpUptimeBar,
|
|
385
|
+
_68 as LpVideoBackdrop,
|
|
384
386
|
N as NO_BACKDROP_ATTR,
|
|
385
387
|
OSM_TILES,
|
|
386
388
|
PALETTE_MODES,
|
package/package.json
CHANGED
package/src/component-names.ts
CHANGED
|
@@ -35,12 +35,13 @@ import { computed, onMounted, ref, useId, watch } from "vue"
|
|
|
35
35
|
import { useLabels } from "../composables/useLpConfig"
|
|
36
36
|
import { useScrollMemory } from "../composables/scrollMemory"
|
|
37
37
|
import LpBottomNav from "./LpBottomNav.vue"
|
|
38
|
+
import LpContextSwitcher from "./LpContextSwitcher.vue"
|
|
38
39
|
import LpButton from "./LpButton.vue"
|
|
39
40
|
import LpIcon from "./LpIcon.vue"
|
|
40
41
|
import LpScrollArea from "./LpScrollArea.vue"
|
|
41
42
|
import LpShift from "./LpShift.vue"
|
|
42
43
|
import LpSidebar from "./LpSidebar.vue"
|
|
43
|
-
import type { SidebarItem, SidebarSection } from "./sidebar"
|
|
44
|
+
import type { AppContext, SidebarItem, SidebarSection } from "./sidebar"
|
|
44
45
|
import { mergeClass, useMergedAttrs } from "../composables/useMergedClass"
|
|
45
46
|
|
|
46
47
|
export type { SidebarItem, SidebarSection } from "./sidebar"
|
|
@@ -107,6 +108,14 @@ const props = withDefaults(
|
|
|
107
108
|
previewDelay?: number
|
|
108
109
|
/** The key that folds the rail; false turns it off. Forwarded to LpSidebar. */
|
|
109
110
|
compactHotkey?: string | false
|
|
111
|
+
/**
|
|
112
|
+
* The app's contexts — a server, a workspace, a part of the product — each
|
|
113
|
+
* with its own rail. With more than one, the rail's header becomes the
|
|
114
|
+
* switcher between them (v-model:context), and the `logo` slot draws the
|
|
115
|
+
* switcher's face with the current `context` in its props.
|
|
116
|
+
*/
|
|
117
|
+
contexts?: AppContext[]
|
|
118
|
+
context?: string
|
|
110
119
|
/** Marks a non-production copy along the top of the rail. Forwarded to LpSidebar. */
|
|
111
120
|
environment?: string | { label: string; tone?: "warning" | "danger" | "action" | "brand" }
|
|
112
121
|
/** The app's hint system; rows with a `hintPage` show unread news as a dot. Forwarded to LpSidebar. */
|
|
@@ -134,8 +143,11 @@ const emit = defineEmits<{
|
|
|
134
143
|
(e: "select", item: SidebarItem): void
|
|
135
144
|
(e: "update:compact", value: boolean): void
|
|
136
145
|
(e: "update:pinned", ids: string[]): void
|
|
146
|
+
(e: "update:context", id: string): void
|
|
137
147
|
}>()
|
|
138
148
|
|
|
149
|
+
const switching = computed(() => (props.contexts?.length ?? 0) > 1)
|
|
150
|
+
|
|
139
151
|
// Normalise items/sections to a flat list for the title computation.
|
|
140
152
|
const flatItems = computed<SidebarItem[]>(() =>
|
|
141
153
|
(props.sections ? props.sections.flatMap((s) => s.items) : (props.items ?? [])).flatMap((i) => [i, ...(i.children ?? [])]),
|
|
@@ -297,8 +309,20 @@ const { class: rootClass, attrs: rest } = useMergedAttrs(
|
|
|
297
309
|
@update:collapsed="(v) => emit('update:collapsed', v)"
|
|
298
310
|
@select="onSelect"
|
|
299
311
|
>
|
|
300
|
-
<template v-if="
|
|
301
|
-
<
|
|
312
|
+
<template v-if="switching" #header="{ compact: folded }">
|
|
313
|
+
<LpContextSwitcher
|
|
314
|
+
:contexts="contexts!"
|
|
315
|
+
:model-value="context"
|
|
316
|
+
:compact="folded"
|
|
317
|
+
@update:model-value="(id) => emit('update:context', id)"
|
|
318
|
+
>
|
|
319
|
+
<template v-if="$slots.logo" #default="{ context: shown }">
|
|
320
|
+
<slot name="logo" :compact="folded" :context="shown" />
|
|
321
|
+
</template>
|
|
322
|
+
</LpContextSwitcher>
|
|
323
|
+
</template>
|
|
324
|
+
<template v-else-if="$slots.logo" #header="{ compact: folded }">
|
|
325
|
+
<slot name="logo" :compact="folded" :context="contexts?.[0]" />
|
|
302
326
|
</template>
|
|
303
327
|
<template v-if="$slots['sidebar-actions']" #actions>
|
|
304
328
|
<slot name="sidebar-actions" />
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
/*
|
|
3
|
+
* Which of an app's contexts the rail is showing — a server, a workspace, a
|
|
4
|
+
* machine, a part of the product — and the menu to change it. Every app used
|
|
5
|
+
* to draw this into the rail's header slot itself, each a little differently;
|
|
6
|
+
* LpAppShell renders it from its `contexts` prop, and a standalone LpSidebar
|
|
7
|
+
* can put it in its own header.
|
|
8
|
+
*
|
|
9
|
+
* The trigger shows the current context's icon and label, or whatever the
|
|
10
|
+
* default slot draws (a brand mark for one context, a plain word for
|
|
11
|
+
* another). Folded to icons it is the icon alone, or the label's first letter.
|
|
12
|
+
*/
|
|
13
|
+
import { computed } from "vue"
|
|
14
|
+
import { useLabels } from "../composables/useLpConfig"
|
|
15
|
+
import LpDropdownMenu from "./LpDropdownMenu.vue"
|
|
16
|
+
import LpIcon from "./LpIcon.vue"
|
|
17
|
+
import type { ContextMenuItemDef } from "./LpContextMenu.vue"
|
|
18
|
+
import type { AppContext } from "./sidebar"
|
|
19
|
+
|
|
20
|
+
const props = withDefaults(
|
|
21
|
+
defineProps<{
|
|
22
|
+
contexts: AppContext[]
|
|
23
|
+
/** The current context's id (v-model). */
|
|
24
|
+
modelValue?: string
|
|
25
|
+
/** The icon rail: the trigger is a square with the icon or an initial. */
|
|
26
|
+
compact?: boolean
|
|
27
|
+
labels?: Partial<{ switch: string; title: string }>
|
|
28
|
+
}>(),
|
|
29
|
+
{ compact: false },
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
const emit = defineEmits<{ (e: "update:modelValue", id: string): void }>()
|
|
33
|
+
|
|
34
|
+
const text = useLabels("contextSwitcher", { switch: "{label}, switch", title: "Switch to" }, () => props.labels)
|
|
35
|
+
|
|
36
|
+
const current = computed(() => props.contexts.find((c) => c.id === props.modelValue) ?? props.contexts[0])
|
|
37
|
+
const initial = computed(() => [...(current.value?.label ?? "")][0] ?? "")
|
|
38
|
+
|
|
39
|
+
const items = computed<ContextMenuItemDef[]>(() =>
|
|
40
|
+
props.contexts.map((c) => ({
|
|
41
|
+
label: c.label,
|
|
42
|
+
icon: c.icon,
|
|
43
|
+
checked: c.id === current.value?.id ? true : undefined,
|
|
44
|
+
onSelect: () => {
|
|
45
|
+
if (c.id !== current.value?.id) emit("update:modelValue", c.id)
|
|
46
|
+
},
|
|
47
|
+
})),
|
|
48
|
+
)
|
|
49
|
+
</script>
|
|
50
|
+
|
|
51
|
+
<template>
|
|
52
|
+
<LpDropdownMenu :items="items" :title="text.title" :palette="false">
|
|
53
|
+
<template #trigger>
|
|
54
|
+
<button
|
|
55
|
+
type="button"
|
|
56
|
+
class="flex min-w-0 items-center gap-2 rounded-control text-base font-semibold text-ink outline-none transition-colors hover:bg-surface-soft focus-visible:ring-2 focus-visible:ring-ring"
|
|
57
|
+
:class="compact ? 'grid size-9 shrink-0 place-items-center bg-surface-soft' : 'max-w-full px-2 py-1'"
|
|
58
|
+
:aria-label="text.switch.replace('{label}', current?.label ?? '')"
|
|
59
|
+
>
|
|
60
|
+
<slot :context="current" :compact="compact">
|
|
61
|
+
<template v-if="compact">
|
|
62
|
+
<LpIcon v-if="current?.icon" :name="current.icon" :size="17" />
|
|
63
|
+
<template v-else>{{ initial }}</template>
|
|
64
|
+
</template>
|
|
65
|
+
<template v-else>
|
|
66
|
+
<LpIcon v-if="current?.icon" :name="current.icon" :size="17" class="shrink-0 text-brand" />
|
|
67
|
+
<span class="truncate">{{ current?.label }}</span>
|
|
68
|
+
</template>
|
|
69
|
+
</slot>
|
|
70
|
+
<LpIcon v-if="!compact" name="lucide:chevrons-up-down" :size="14" class="shrink-0 text-muted" />
|
|
71
|
+
</button>
|
|
72
|
+
</template>
|
|
73
|
+
</LpDropdownMenu>
|
|
74
|
+
</template>
|
|
@@ -304,10 +304,8 @@ defineExpose({ resizing })
|
|
|
304
304
|
resizing ? 'overflow-hidden' : '',
|
|
305
305
|
// While the box holds a width its content has outgrown, a flex row would
|
|
306
306
|
// squeeze its children to fit (a button's keys folding into a column)
|
|
307
|
-
// instead of letting the easing edge clip them.
|
|
308
|
-
|
|
309
|
-
// or it would break onto a second line until the tween lands.
|
|
310
|
-
resizing && axis !== 'height' ? '[&>*]:shrink-0 [&>*:only-child]:min-w-(--lp-shift-to-w)' : '',
|
|
307
|
+
// instead of letting the easing edge clip them.
|
|
308
|
+
resizing && axis !== 'height' ? '[&>*]:shrink-0' : '',
|
|
311
309
|
resizing && anchor === 'end' ? 'justify-end' : '',
|
|
312
310
|
]"
|
|
313
311
|
>
|
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
import type { Component } from "vue"
|
|
8
8
|
import type { ContextMenuItemDef } from "./LpContextMenu.vue"
|
|
9
9
|
|
|
10
|
+
/** One of an app's contexts in the rail header switcher (LpContextSwitcher). */
|
|
11
|
+
export interface AppContext {
|
|
12
|
+
id: string
|
|
13
|
+
label: string
|
|
14
|
+
icon?: string
|
|
15
|
+
}
|
|
16
|
+
|
|
10
17
|
export interface SidebarItem {
|
|
11
18
|
id: string
|
|
12
19
|
label: string
|