@leavepulse/ui 0.44.0 → 0.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -3
- package/dist/assets/{LpCommandPalette-DCP5g2ik.css → LpCommandPalette-nGNnzXqQ.css} +21 -21
- package/dist/assets/{LpRollingText-CR1mb0Vt.css → LpRollingText-BGnE6q9j.css} +3 -0
- package/dist/assets/{LpShortcutsDialog-ChUyU7oV.css → LpShortcutsDialog-CqYX3yy6.css} +28 -7
- package/dist/assets/{LpTable-DDQNdf86.css → LpTable-CPwWxTJS.css} +49 -9
- package/dist/chunks/{ContextMenuItems-CrfeNPWT.js → ContextMenuItems-BtKU7074.js} +2 -1
- package/dist/chunks/{LayoutCanvas-D-jPOAvg.js → LayoutCanvas-BkaGXTjx.js} +1 -1
- package/dist/chunks/{LayoutNode-D8Xy9N-o.js → LayoutNode-B3_9E1Xa.js} +9 -5
- package/dist/chunks/{LpActionBar-BbwCF6l5.js → LpActionBar-CnfFVIwC.js} +3 -3
- package/dist/chunks/{LpAddressInput-BrOqkZqg.js → LpAddressInput-BwX8uo4_.js} +7 -7
- package/dist/chunks/{LpAlert-DkOIjsbq.js → LpAlert-B6ilrM7T.js} +1 -1
- package/dist/chunks/{LpAppShell-BUKPcHco.js → LpAppShell-C53_RaGF.js} +4 -4
- package/dist/chunks/{LpAutocomplete-DxV3Y9h4.js → LpAutocomplete-C8IgSMsi.js} +2 -1
- package/dist/chunks/{LpAvatar-ClBbEYZN.js → LpAvatar-C1XStdOo.js} +3 -3
- package/dist/chunks/{LpBreadcrumbs-B8IJgFIc.js → LpBreadcrumbs-CQJd73Gm.js} +1 -1
- package/dist/chunks/{LpButton-kqJBHIIb.js → LpButton-CKSwC6Mu.js} +1 -1
- package/dist/chunks/{LpCalendar-B7Ko5RdR.js → LpCalendar-DrA2McTU.js} +1 -1
- package/dist/chunks/{LpCard-CpRByR0q.js → LpCard-C2IvucmX.js} +1 -1
- package/dist/chunks/{LpCheckbox-DpqchzH4.js → LpCheckbox-Bkj13CbW.js} +1 -1
- package/dist/chunks/{LpCodeBlock-DeHJPq7p.js → LpCodeBlock-ca7ANFyW.js} +1 -1
- package/dist/chunks/{LpColorPicker-Bhf1qxhB.js → LpColorPicker-zz4VGkG4.js} +46 -20
- package/dist/chunks/{LpConfirmDialog-CIUOSnWo.js → LpConfirmDialog-DCw5jR1t.js} +3 -3
- package/dist/chunks/{LpConfirmHost-CDm0Wtpv.js → LpConfirmHost-CbywMpMP.js} +1 -1
- package/dist/chunks/{LpContextMenu-DQw5dGfG.js → LpContextMenu-BqkAYa9X.js} +2 -1
- package/dist/chunks/{LpDatePicker-Drirx1AK.js → LpDatePicker-DuusgT69.js} +13 -9
- package/dist/chunks/LpDateRangePicker-DHeuznfC.js +208 -0
- package/dist/chunks/{LpDisclosure-ChQYmjlR.js → LpDisclosure-Cc23-JOT.js} +1 -1
- package/dist/chunks/{LpDrawer-bScx-KMO.js → LpDrawer-Dt4aB4Fr.js} +2 -2
- package/dist/chunks/{LpDropdownMenu-DJpoqRCb.js → LpDropdownMenu-DdJGQzPn.js} +2 -1
- package/dist/chunks/{LpEmptyState-Dsdqz1Wj.js → LpEmptyState-BJbZXC8D.js} +1 -1
- package/dist/chunks/LpFieldNotice-wtieLUTj.js +64 -0
- package/dist/chunks/{LpFileTree-CSI_5SK2.js → LpFileTree-CNurOvkV.js} +3 -3
- package/dist/chunks/{LpFileTreeNode-B4MiSQX2.js → LpFileTreeNode-D_qRRdsH.js} +3 -3
- package/dist/chunks/{LpFormField-CIk5qosh.js → LpFormField-CtVYj6tO.js} +29 -15
- package/dist/chunks/{LpIcon-CCnX5_2j.js → LpIcon-DYtaid0K.js} +20 -6
- package/dist/chunks/{LpInput-C0e8y8_d.js → LpInput-D-YGQbEv.js} +39 -16
- package/dist/chunks/{LpLightbox-Mr0W_6HK.js → LpLightbox-DSDahF23.js} +1 -1
- package/dist/chunks/{LpLogViewer-YBOaFnc_.js → LpLogViewer-KypbgOyo.js} +252 -58
- package/dist/chunks/{LpMapPicker-NUzS9e37.js → LpMapPicker-Cc84LaM3.js} +1 -1
- package/dist/chunks/{LpMediaGallery-DfJmMW0I.js → LpMediaGallery-YKr-cQPN.js} +2 -2
- package/dist/chunks/{LpModal-DPwGKBPv.js → LpModal-DMMDQHAu.js} +3 -3
- package/dist/chunks/{LpModalNav-DPg5H9f3.js → LpModalNav-BVPDyIup.js} +4 -4
- package/dist/chunks/{LpNotificationBell-t5yn-siX.js → LpNotificationBell-CCwyJP5C.js} +26 -14
- package/dist/chunks/{LpNumberField-DWnQKktS.js → LpNumberField-B77O-z28.js} +1 -1
- package/dist/chunks/{LpPagination-DFngX7Xo.js → LpPagination-BcDlo3r_.js} +1 -1
- package/dist/chunks/{LpPasswordInput-CWVDuBJ5.js → LpPasswordInput-eKzQhbQP.js} +2 -2
- package/dist/chunks/{LpPhoneInput-CD-ZTeSd.js → LpPhoneInput-BCbrrhgE.js} +126 -23
- package/dist/chunks/{LpPie-BLco31Nx.js → LpPie-BEJ2SfI6.js} +9 -10
- package/dist/chunks/{LpPopover-p_e_shN3.js → LpPopover-DCKeqiVn.js} +1 -0
- package/dist/chunks/LpRangeCalendar-DZuaRV0W.js +331 -0
- package/dist/chunks/{LpRollingText-CM5gkSeF.js → LpRollingText-DB7upf-5.js} +1 -1
- package/dist/chunks/{LpScrollArea-D8xyKXcF.js → LpScrollArea-Bry1fdOM.js} +14 -2
- package/dist/chunks/{LpSection-aM6J_u51.js → LpSection-tKEH0jYf.js} +1 -1
- package/dist/chunks/{LpSegmented-Dejd7cIx.js → LpSegmented-C09EEam2.js} +1 -1
- package/dist/chunks/{LpSelect-DrRD9I7L.js → LpSelect-DNIL6MB9.js} +20 -23
- package/dist/chunks/{LpSidebar-BgwUNWpJ.js → LpSidebar-CQNB0-yU.js} +3 -3
- package/dist/chunks/{LpSidebarNav-Bqxz8aWT.js → LpSidebarNav-kx-LdqNU.js} +3 -3
- package/dist/chunks/{LpStat-dXtyrdX9.js → LpStat-B-7udBRP.js} +1 -1
- package/dist/chunks/{LpStepper-Bk-XaQYU.js → LpStepper-C7XiVKZj.js} +34 -19
- package/dist/chunks/{LpSwitch-B1aLKulj.js → LpSwitch-OrcOJX9m.js} +1 -1
- package/dist/chunks/LpTableFilter-BV8PpLM9.js +158 -0
- package/dist/chunks/{LpTabs-_qMVaZJ6.js → LpTabs-29iW1XOx.js} +1 -1
- package/dist/chunks/LpTagsInput-D1SuqbhB.js +300 -0
- package/dist/chunks/{LpTextarea-yP8hGedR.js → LpTextarea-uuScWo6-.js} +1 -1
- package/dist/chunks/{LpThemeProvider-Wjm7Tuit.js → LpThemeProvider-Be4r2TQX.js} +1 -1
- package/dist/chunks/{LpThemeSwitcher-CKLc10KZ.js → LpThemeSwitcher-B4aVPbNC.js} +19 -22
- package/dist/chunks/{LpTimeField-C5HRgS5H.js → LpTimeField-Cqe7fXnh.js} +1 -1
- package/dist/chunks/{LpToaster--oT6lfhL.js → LpToaster-DpJvoCOh.js} +37 -3
- package/dist/chunks/{LpTooltip-CBdzeKNf.js → LpTooltip-CXVKcOXT.js} +3 -2
- package/dist/chunks/{LpTopologyCanvas-DocsLal3.js → LpTopologyCanvas-6ozNrQKh.js} +2 -1
- package/dist/chunks/{LpUptimeBar-DLtxOMRy.js → LpUptimeBar-ugcv25xj.js} +2 -2
- package/dist/chunks/icons-CkA0njzm.js +43 -0
- package/dist/chunks/{useTheme-C8JHUlPM.js → useTheme-DJm1JSsY.js} +47 -50
- package/dist/component-names.d.ts +1 -1
- package/dist/components/ContextMenuItems.vue.js +1 -1
- package/dist/components/LayoutCanvas.vue.js +1 -1
- package/dist/components/LayoutNode.vue.js +1 -1
- package/dist/components/LpActionBar.vue.js +1 -1
- package/dist/components/LpAddressInput.vue.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/LpAvatar.vue.js +1 -1
- package/dist/components/LpBreadcrumbs.vue.js +1 -1
- package/dist/components/LpButton.vue.d.ts +2 -2
- package/dist/components/LpButton.vue.js +1 -1
- package/dist/components/LpCalendar.vue.js +1 -1
- package/dist/components/LpCard.vue.js +1 -1
- package/dist/components/LpChart.vue.d.ts +16 -1
- package/dist/components/LpChart.vue.js +63 -5
- package/dist/components/LpCheckbox.vue.js +1 -1
- package/dist/components/LpCodeBlock.vue.js +1 -1
- package/dist/components/LpColorPicker.vue.d.ts +2 -2
- package/dist/components/LpColorPicker.vue.js +1 -1
- package/dist/components/LpCommandPalette.vue.d.ts +6 -0
- package/dist/components/LpCommandPalette.vue.js +61 -10
- 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/LpDatePicker.vue.js +1 -1
- package/dist/components/LpDateRangePicker.vue.d.ts +60 -0
- package/dist/components/LpDateRangePicker.vue.js +4 -0
- package/dist/components/LpDisclosure.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 +1 -1
- package/dist/components/LpEmptyState.vue.js +1 -1
- package/dist/components/LpFieldNotice.vue.d.ts +8 -0
- package/dist/components/LpFieldNotice.vue.js +4 -0
- package/dist/components/LpFileTree.vue.js +1 -1
- package/dist/components/LpFileTreeNode.vue.js +1 -1
- package/dist/components/LpFormField.vue.d.ts +4 -1
- package/dist/components/LpFormField.vue.js +1 -1
- package/dist/components/LpIcon.vue.d.ts +0 -1
- package/dist/components/LpIcon.vue.js +1 -1
- package/dist/components/LpImageEditor.vue.js +2 -2
- package/dist/components/LpInput.vue.d.ts +19 -0
- package/dist/components/LpInput.vue.js +1 -1
- package/dist/components/LpLightbox.vue.js +1 -1
- package/dist/components/LpLogViewer.vue.d.ts +52 -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/LpModal.vue.js +1 -1
- package/dist/components/LpModalNav.vue.js +1 -1
- package/dist/components/LpNotificationBell.vue.js +1 -1
- package/dist/components/LpNumberField.vue.js +1 -1
- package/dist/components/LpPagination.vue.js +1 -1
- package/dist/components/LpPasswordInput.vue.js +1 -1
- package/dist/components/LpPhoneInput.vue.d.ts +13 -0
- package/dist/components/LpPhoneInput.vue.js +1 -1
- package/dist/components/LpPie.vue.js +1 -1
- package/dist/components/LpPopover.vue.js +1 -1
- package/dist/components/LpProgress.vue.d.ts +1 -1
- package/dist/components/LpRangeCalendar.vue.d.ts +51 -0
- package/dist/components/LpRangeCalendar.vue.js +4 -0
- package/dist/components/LpRollingText.vue.d.ts +1 -1
- package/dist/components/LpRollingText.vue.js +1 -1
- package/dist/components/LpScrollArea.vue.d.ts +2 -2
- package/dist/components/LpScrollArea.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.d.ts +6 -0
- package/dist/components/LpShortcutsDialog.vue.js +56 -14
- package/dist/components/LpSidebar.vue.js +1 -1
- package/dist/components/LpSidebarNav.vue.js +1 -1
- package/dist/components/LpStat.vue.js +1 -1
- package/dist/components/LpStepper.vue.js +1 -1
- package/dist/components/LpSwitch.vue.js +1 -1
- package/dist/components/LpTable.vue.d.ts +84 -2
- package/dist/components/LpTable.vue.js +481 -107
- package/dist/components/LpTableFilter.vue.d.ts +31 -0
- package/dist/components/LpTableFilter.vue.js +4 -0
- package/dist/components/LpTabs.vue.js +1 -1
- package/dist/components/LpTagsInput.vue.d.ts +77 -0
- package/dist/components/LpTagsInput.vue.js +4 -0
- package/dist/components/LpTextarea.vue.js +1 -1
- package/dist/components/LpThemeProvider.vue.js +1 -1
- package/dist/components/LpThemeSwitcher.vue.d.ts +2 -2
- 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.js +1 -1
- package/dist/components/LpTopologyCanvas.vue.js +1 -1
- package/dist/components/LpUptimeBar.vue.js +1 -1
- package/dist/components/chart.js +3 -2
- package/dist/components/commandSearch.js +3 -0
- package/dist/components/dateRange.d.ts +43 -0
- package/dist/components/dateRange.js +76 -0
- package/dist/components/exportData.d.ts +58 -0
- package/dist/components/exportData.js +165 -0
- package/dist/components/logSearch.d.ts +18 -0
- package/dist/components/logSearch.js +36 -0
- package/dist/components/phone.d.ts +41 -0
- package/dist/components/phone.js +80 -0
- package/dist/components/tableFilter.d.ts +36 -0
- package/dist/components/tableFilter.js +84 -0
- package/dist/components/tags.d.ts +20 -0
- package/dist/components/tags.js +37 -0
- package/dist/composables/useField.d.ts +4 -0
- package/dist/composables/useFieldNotice.d.ts +17 -0
- package/dist/composables/useFieldNotice.js +28 -0
- package/dist/composables/useForm.d.ts +53 -0
- package/dist/composables/useForm.js +207 -0
- package/dist/composables/useHotkeys.d.ts +65 -5
- package/dist/composables/useHotkeys.js +170 -9
- package/dist/composables/useInputMask.d.ts +59 -0
- package/dist/composables/useInputMask.js +170 -0
- package/dist/composables/usePaintSelect.d.ts +22 -0
- package/dist/composables/usePaintSelect.js +169 -0
- package/dist/composables/useShift.js +7 -2
- package/dist/icons-all.d.ts +1 -0
- package/dist/icons-all.js +3 -0
- package/dist/icons.d.ts +14 -1
- package/dist/index.d.ts +29 -3
- package/dist/index.js +195 -138
- package/dist/kit-icons.d.ts +2 -0
- package/dist/theme/backdrop.d.ts +12 -0
- package/dist/theme/presets.d.ts +0 -2
- package/package.json +13 -4
- package/src/component-names.ts +4 -0
- package/src/components/ContextMenuItems.vue +1 -1
- package/src/components/LayoutNode.vue +11 -2
- package/src/components/LpActionBar.vue +1 -1
- package/src/components/LpAutocomplete.vue +1 -0
- package/src/components/LpAvatar.vue +2 -2
- package/src/components/LpButton.vue +1 -1
- package/src/components/LpChart.vue +80 -1
- package/src/components/LpColorPicker.vue +34 -1
- package/src/components/LpCommandPalette.vue +81 -7
- package/src/components/LpContextMenu.vue +1 -1
- package/src/components/LpDatePicker.vue +8 -3
- package/src/components/LpDateRangePicker.vue +224 -0
- package/src/components/LpDropdownMenu.vue +1 -0
- package/src/components/LpFieldNotice.vue +65 -0
- package/src/components/LpFormField.vue +33 -4
- package/src/components/LpIcon.vue +22 -4
- package/src/components/LpInput.vue +46 -6
- package/src/components/LpLogViewer.vue +225 -22
- package/src/components/LpModal.vue +1 -1
- package/src/components/LpNotificationBell.vue +15 -7
- package/src/components/LpPhoneInput.vue +179 -20
- package/src/components/LpPie.vue +8 -5
- package/src/components/LpPopover.vue +1 -0
- package/src/components/LpRangeCalendar.vue +365 -0
- package/src/components/LpRollingText.vue +3 -0
- package/src/components/LpScrollArea.vue +22 -2
- package/src/components/LpSelect.vue +0 -0
- package/src/components/LpShortcutsDialog.vue +77 -8
- package/src/components/LpStepper.vue +23 -10
- package/src/components/LpSwitch.vue +1 -1
- package/src/components/LpTable.vue +584 -65
- package/src/components/LpTableFilter.vue +175 -0
- package/src/components/LpTagsInput.vue +364 -0
- package/src/components/LpThemeSwitcher.vue +19 -23
- package/src/components/LpToaster.vue +49 -1
- package/src/components/LpTooltip.vue +9 -2
- package/src/components/LpTopologyCanvas.vue +7 -1
- package/src/components/chart.ts +5 -3
- package/src/components/commandSearch.ts +6 -0
- package/src/components/dateRange.ts +134 -0
- package/src/components/exportData.ts +228 -0
- package/src/components/logSearch.ts +46 -0
- package/src/components/phone.ts +140 -0
- package/src/components/tableFilter.ts +122 -0
- package/src/components/tags.ts +62 -0
- package/src/composables/useField.ts +4 -0
- package/src/composables/useFieldNotice.ts +59 -0
- package/src/composables/useForm.ts +314 -0
- package/src/composables/useHotkeys.ts +269 -13
- package/src/composables/useInputMask.ts +254 -0
- package/src/composables/usePaintSelect.ts +243 -0
- package/src/composables/useShift.ts +13 -2
- package/src/iconSubset.d.mts +10 -0
- package/src/iconSubset.mjs +51 -0
- package/src/icons-all.ts +10 -0
- package/src/icons.ts +59 -8
- package/src/index.ts +37 -3
- package/src/kit-icons.ts +5 -0
- package/src/nuxt.ts +30 -2
- package/src/runtime/theme.plugin.ts +2 -2
- package/src/theme/backdrop.ts +69 -0
- package/src/theme/presets.ts +6 -64
- package/src/tokens/tokens.css +46 -0
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import { defineComponent, computed, openBlock, createBlock, unref, withCtx, createElementVNode, createElementBlock, Fragment, renderList, toDisplayString } from "vue";
|
|
2
|
-
import { _ as _sfc_main$1 } from "../chunks/LpModal-
|
|
3
|
-
import { useAppleKeyboard, mergeShortcutGroups, activeShortcuts, appleModifierLabel } from "../composables/useHotkeys.js";
|
|
1
|
+
import { defineComponent, computed, openBlock, createBlock, unref, withCtx, createElementVNode, createElementBlock, Fragment, renderList, toDisplayString, createTextVNode, createCommentVNode } from "vue";
|
|
2
|
+
import { _ as _sfc_main$1 } from "../chunks/LpModal-DMMDQHAu.js";
|
|
3
|
+
import { useAppleKeyboard, mergeShortcutGroups, activeShortcuts, useHotkeys, appleModifierLabel } from "../composables/useHotkeys.js";
|
|
4
4
|
import { useLabels } from "../composables/useLpConfig.js";
|
|
5
5
|
import { _ as _export_sfc } from "../chunks/_plugin-vue_export-helper-1tPrXgE0.js";
|
|
6
|
-
import '../assets/LpShortcutsDialog-
|
|
6
|
+
import '../assets/LpShortcutsDialog-CqYX3yy6.css';const _hoisted_1 = { class: "shortcut-groups" };
|
|
7
|
+
const _hoisted_2 = ["aria-label", "title"];
|
|
8
|
+
const _hoisted_3 = {
|
|
9
|
+
key: 0,
|
|
10
|
+
class: "shortcut-then"
|
|
11
|
+
};
|
|
7
12
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
8
13
|
__name: "LpShortcutsDialog",
|
|
9
14
|
props: {
|
|
@@ -12,18 +17,39 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
12
17
|
live: { type: Boolean, default: false },
|
|
13
18
|
title: { default: void 0 },
|
|
14
19
|
description: {},
|
|
15
|
-
glass: { type: Boolean, default: void 0 }
|
|
20
|
+
glass: { type: Boolean, default: void 0 },
|
|
21
|
+
hotkey: {}
|
|
16
22
|
},
|
|
17
23
|
emits: ["update:open"],
|
|
18
24
|
setup(__props, { emit: __emit }) {
|
|
19
25
|
const props = __props;
|
|
20
|
-
const text = useLabels("shortcuts", {
|
|
26
|
+
const text = useLabels("shortcuts", {
|
|
27
|
+
title: "Keyboard shortcuts",
|
|
28
|
+
then: "then",
|
|
29
|
+
conflict: "Also bound elsewhere: only one of them runs",
|
|
30
|
+
group: "General"
|
|
31
|
+
});
|
|
21
32
|
const apple = useAppleKeyboard();
|
|
22
|
-
function keysOf(
|
|
23
|
-
return
|
|
33
|
+
function keysOf(chord) {
|
|
34
|
+
return chord.split(/\+(?!$)/);
|
|
35
|
+
}
|
|
36
|
+
function stepsOf(combo) {
|
|
37
|
+
return combo.trim().split(/\s+/);
|
|
24
38
|
}
|
|
25
39
|
const shown = computed(() => props.live ? mergeShortcutGroups(props.groups, activeShortcuts.value) : props.groups);
|
|
26
40
|
const emit = __emit;
|
|
41
|
+
useHotkeys(
|
|
42
|
+
() => props.hotkey ? [
|
|
43
|
+
{
|
|
44
|
+
key: props.hotkey,
|
|
45
|
+
allowInInput: true,
|
|
46
|
+
overLayers: true,
|
|
47
|
+
repeat: false,
|
|
48
|
+
help: { group: text.value.group, label: props.title ?? text.value.title },
|
|
49
|
+
handler: () => emit("update:open", !props.open)
|
|
50
|
+
}
|
|
51
|
+
] : []
|
|
52
|
+
);
|
|
27
53
|
return (_ctx, _cache) => {
|
|
28
54
|
return openBlock(), createBlock(_sfc_main$1, {
|
|
29
55
|
glass: props.glass,
|
|
@@ -47,12 +73,28 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
47
73
|
key: entry.combo,
|
|
48
74
|
class: "shortcut-row"
|
|
49
75
|
}, [
|
|
50
|
-
createElementVNode("dt", null,
|
|
76
|
+
createElementVNode("dt", null, [
|
|
77
|
+
createTextVNode(toDisplayString(entry.label) + " ", 1),
|
|
78
|
+
entry.conflict ? (openBlock(), createElementBlock("span", {
|
|
79
|
+
key: 0,
|
|
80
|
+
class: "shortcut-conflict",
|
|
81
|
+
role: "img",
|
|
82
|
+
"aria-label": unref(text).conflict,
|
|
83
|
+
title: unref(text).conflict
|
|
84
|
+
}, "!", 8, _hoisted_2)) : createCommentVNode("", true)
|
|
85
|
+
]),
|
|
51
86
|
createElementVNode("dd", null, [
|
|
52
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(
|
|
53
|
-
return openBlock(), createElementBlock(
|
|
54
|
-
key: `${
|
|
55
|
-
},
|
|
87
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(stepsOf(entry.combo), (step, stepIndex) => {
|
|
88
|
+
return openBlock(), createElementBlock(Fragment, {
|
|
89
|
+
key: `${step}-${stepIndex}`
|
|
90
|
+
}, [
|
|
91
|
+
stepIndex ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(unref(text).then), 1)) : createCommentVNode("", true),
|
|
92
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(keysOf(step), (key, index) => {
|
|
93
|
+
return openBlock(), createElementBlock("kbd", {
|
|
94
|
+
key: `${key}-${index}`
|
|
95
|
+
}, toDisplayString(unref(appleModifierLabel)(key.trim(), unref(apple))), 1);
|
|
96
|
+
}), 128))
|
|
97
|
+
], 64);
|
|
56
98
|
}), 128))
|
|
57
99
|
])
|
|
58
100
|
]);
|
|
@@ -67,7 +109,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
67
109
|
};
|
|
68
110
|
}
|
|
69
111
|
});
|
|
70
|
-
const LpShortcutsDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
112
|
+
const LpShortcutsDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-1c4cf3fa"]]);
|
|
71
113
|
export {
|
|
72
114
|
LpShortcutsDialog as default
|
|
73
115
|
};
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { type ContextMenuItemDef } from "./LpContextMenu.vue";
|
|
2
|
+
import { type CsvOptions } from "./exportData";
|
|
2
3
|
export interface TableColumn<Row> {
|
|
3
4
|
key: string;
|
|
4
5
|
label: string;
|
|
5
6
|
align?: "left" | "right" | "center";
|
|
6
7
|
width?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Keep the cell on one line. For ids, codes, dates and amounts, which a
|
|
10
|
+
* narrow screen otherwise breaks at a hyphen or a space ("ORD-" / "1040");
|
|
11
|
+
* the table scrolls sideways instead.
|
|
12
|
+
*/
|
|
13
|
+
nowrap?: boolean;
|
|
7
14
|
/** Allow clicking the header to sort by this column. */
|
|
8
15
|
sortable?: boolean;
|
|
9
16
|
/** The value this column sorts by, when the cell holds something else. */
|
|
@@ -22,6 +29,8 @@ export interface TableColumn<Row> {
|
|
|
22
29
|
* vocabulary; the menu should say what the column itself says.
|
|
23
30
|
*/
|
|
24
31
|
valueLabel?: (value: unknown) => string;
|
|
32
|
+
/** The value a CSV export writes for this column; the raw cell by default. */
|
|
33
|
+
exportValue?: (row: Row) => unknown;
|
|
25
34
|
/** Keep this column out of the show/hide list — an actions column has no
|
|
26
35
|
* name to offer and nothing to gain from being hidden. */
|
|
27
36
|
alwaysVisible?: boolean;
|
|
@@ -37,6 +46,41 @@ export interface TableLabels {
|
|
|
37
46
|
filter: string;
|
|
38
47
|
showAll: string;
|
|
39
48
|
columns: string;
|
|
49
|
+
exportCsv: string;
|
|
50
|
+
selectAll: string;
|
|
51
|
+
shortcutsGroup: string;
|
|
52
|
+
filterColumn: string;
|
|
53
|
+
filterSearch: string;
|
|
54
|
+
filterAll: string;
|
|
55
|
+
filterNone: string;
|
|
56
|
+
filterInvert: string;
|
|
57
|
+
filterOnly: string;
|
|
58
|
+
filterOnlyShown: string;
|
|
59
|
+
filterAddShown: string;
|
|
60
|
+
filterNoValues: string;
|
|
61
|
+
filterNothingShown: string;
|
|
62
|
+
clearFilter: string;
|
|
63
|
+
clearFilters: string;
|
|
64
|
+
noMatches: string;
|
|
65
|
+
resetFilters: string;
|
|
66
|
+
rowCount: string;
|
|
67
|
+
rowsTotal: string;
|
|
68
|
+
selectedCount: string;
|
|
69
|
+
clearSelection: string;
|
|
70
|
+
pageSelected: string;
|
|
71
|
+
selectAllMatching: string;
|
|
72
|
+
allMatchingSelected: string;
|
|
73
|
+
}
|
|
74
|
+
export interface TableExportOptions extends CsvOptions {
|
|
75
|
+
/**
|
|
76
|
+
* Which rows: every row in the current order, the rows the header filters
|
|
77
|
+
* leave, or the selected ones. With `load` only the loaded page is known.
|
|
78
|
+
*/
|
|
79
|
+
scope?: "all" | "filtered" | "selected";
|
|
80
|
+
/** File name without extension. */
|
|
81
|
+
filename?: string;
|
|
82
|
+
/** Return the CSV without offering a download. */
|
|
83
|
+
download?: boolean;
|
|
40
84
|
}
|
|
41
85
|
export interface SortState {
|
|
42
86
|
key: string;
|
|
@@ -91,8 +135,15 @@ declare const __VLS_export: <T extends Record<string, unknown>>(__VLS_props: Non
|
|
|
91
135
|
rowKey?: keyof T | ((row: T) => string | number);
|
|
92
136
|
emptyLabel?: string;
|
|
93
137
|
emptyIcon?: string;
|
|
94
|
-
/**
|
|
95
|
-
|
|
138
|
+
/**
|
|
139
|
+
* Rows can be selected (v-model:selected). `true` shows a tick column,
|
|
140
|
+
* where pressing a tick and sweeping ticks the run. `"hold"` keeps the
|
|
141
|
+
* column out of sight until it is needed: a long press on a row selects it
|
|
142
|
+
* (and the same press goes on selecting the rows it is dragged across), the
|
|
143
|
+
* column slides in, and while anything is selected a click on a row toggles
|
|
144
|
+
* it. Emptying the selection, or Escape, slides the column away again.
|
|
145
|
+
*/
|
|
146
|
+
selectable?: boolean | "hold";
|
|
96
147
|
/** Selected row keys (v-model:selected). */
|
|
97
148
|
selected?: (string | number)[];
|
|
98
149
|
/** Active sort (v-model:sort). When set, the parent owns ordering (server
|
|
@@ -112,17 +163,41 @@ declare const __VLS_export: <T extends Record<string, unknown>>(__VLS_props: Non
|
|
|
112
163
|
filterLabel?: string;
|
|
113
164
|
showAllLabel?: string;
|
|
114
165
|
columnsLabel?: string;
|
|
166
|
+
/** Offer a CSV download in a toolbar above the table and in its menu. */
|
|
167
|
+
exportable?: boolean;
|
|
168
|
+
/** File name for that download, without extension. */
|
|
169
|
+
exportFilename?: string;
|
|
115
170
|
/** All of the wording above in one object, and the config-level scope "table". */
|
|
116
171
|
labels?: Partial<TableLabels>;
|
|
172
|
+
/** Row height: `compact` for dense data, `comfortable` (default) otherwise. */
|
|
173
|
+
density?: "comfortable" | "compact";
|
|
174
|
+
/**
|
|
175
|
+
* Always show the bar above the table with the row count. It shows on its
|
|
176
|
+
* own while filters are active or rows are selected.
|
|
177
|
+
*/
|
|
178
|
+
summary?: boolean;
|
|
179
|
+
/**
|
|
180
|
+
* Remember sort, value filters and hidden columns across visits under this
|
|
181
|
+
* key (localStorage). Only plain filter values (text, numbers) are kept.
|
|
182
|
+
*/
|
|
183
|
+
persist?: string;
|
|
184
|
+
/**
|
|
185
|
+
* With `load`: the user chose "select all N" beyond the loaded page
|
|
186
|
+
* (v-model:allMatching). The keys in `selected` are then only the loaded
|
|
187
|
+
* ones; acting on everything that matches is the consumer's to do.
|
|
188
|
+
*/
|
|
189
|
+
allMatching?: boolean;
|
|
117
190
|
} & {
|
|
118
191
|
"onUpdate:selected"?: ((value: (string | number)[]) => any) | undefined;
|
|
119
192
|
"onUpdate:sort"?: ((value: SortState | null) => any) | undefined;
|
|
193
|
+
"onUpdate:allMatching"?: ((value: boolean) => any) | undefined;
|
|
120
194
|
onRowClick?: ((row: T) => any) | undefined;
|
|
121
195
|
}> & (typeof globalThis extends {
|
|
122
196
|
__VLS_PROPS_FALLBACK: infer P;
|
|
123
197
|
} ? P : {});
|
|
124
198
|
expose: (exposed: import("vue").ShallowUnwrapRef<{
|
|
125
199
|
reload: () => void;
|
|
200
|
+
exportCsv: (options?: TableExportOptions) => string;
|
|
126
201
|
}>) => void;
|
|
127
202
|
attrs: any;
|
|
128
203
|
slots: {
|
|
@@ -130,10 +205,17 @@ declare const __VLS_export: <T extends Record<string, unknown>>(__VLS_props: Non
|
|
|
130
205
|
row: T;
|
|
131
206
|
value: unknown;
|
|
132
207
|
}) => any) | undefined;
|
|
208
|
+
} & {
|
|
209
|
+
bulk?: (props: {
|
|
210
|
+
selected: (string | number)[];
|
|
211
|
+
allMatching: boolean;
|
|
212
|
+
clear: () => void;
|
|
213
|
+
}) => any;
|
|
133
214
|
};
|
|
134
215
|
emit: {
|
|
135
216
|
(e: "update:selected", value: (string | number)[]): void;
|
|
136
217
|
(e: "update:sort", value: SortState | null): void;
|
|
218
|
+
(e: "update:allMatching", value: boolean): void;
|
|
137
219
|
(e: "rowClick", row: T): void;
|
|
138
220
|
};
|
|
139
221
|
}>) => import("vue").VNode & {
|