le-kit 0.3.5 → 0.4.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/cjs/{index-BPF04Jvb.js → index-BzadfLTc.js} +6 -3
- package/dist/cjs/index-BzadfLTc.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/le-bar_16.cjs.entry.js +21 -21
- package/dist/cjs/le-box.cjs.entry.js +5 -5
- package/dist/cjs/le-card.cjs.entry.js +5 -5
- package/dist/cjs/le-combobox.cjs.entry.js +2 -2
- package/dist/cjs/le-header-placeholder.cjs.entry.js +2 -2
- package/dist/cjs/le-kit.cjs.js +2 -2
- package/dist/cjs/le-multiselect.cjs.entry.js +4 -4
- package/dist/cjs/le-number-input.cjs.entry.js +3 -3
- package/dist/cjs/le-round-progress.cjs.entry.js +2 -2
- package/dist/cjs/le-segmented-control.cjs.entry.js +2 -2
- package/dist/cjs/le-side-panel-toggle.cjs.entry.js +229 -0
- package/dist/cjs/le-side-panel.cjs.entry.js +546 -0
- package/dist/cjs/le-stack.cjs.entry.js +3 -3
- package/dist/cjs/le-tab-bar.cjs.entry.js +2 -2
- package/dist/cjs/le-tab-panel.cjs.entry.js +3 -3
- package/dist/cjs/le-tab.cjs.entry.js +3 -3
- package/dist/cjs/le-tabs.cjs.entry.js +4 -4
- package/dist/cjs/le-tag.cjs.entry.js +2 -2
- package/dist/cjs/le-text.cjs.entry.js +8 -8
- package/dist/cjs/le-turntable.cjs.entry.js +2 -2
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{utils-BYsLPHN1.js → utils-Dxx9WhWK.js} +3 -3
- package/dist/cjs/{utils-BYsLPHN1.js.map → utils-Dxx9WhWK.js.map} +1 -1
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/le-box/le-box.js +3 -3
- package/dist/collection/components/le-box/le-box.js.map +1 -1
- package/dist/collection/components/le-button/le-button.css +2 -2
- package/dist/collection/components/le-button/le-button.js +1 -1
- package/dist/collection/components/le-card/le-card.js +3 -3
- package/dist/collection/components/le-card/le-card.js.map +1 -1
- package/dist/collection/components/le-checkbox/le-checkbox.js +1 -1
- package/dist/collection/components/le-collapse/le-collapse.js +1 -1
- package/dist/collection/components/le-combobox/le-combobox.js +1 -1
- package/dist/collection/components/le-current-heading/le-current-heading.js +1 -1
- package/dist/collection/components/le-dropdown-base/le-dropdown-base.js +1 -1
- package/dist/collection/components/le-header/le-header.js +2 -2
- package/dist/collection/components/le-header-placeholder/le-header-placeholder.js +1 -1
- package/dist/collection/components/le-icon/le-icon.js +1 -1
- package/dist/collection/components/le-multiselect/le-multiselect.js +3 -3
- package/dist/collection/components/le-navigation/le-navigation.css +10 -4
- package/dist/collection/components/le-number-input/le-number-input.js +1 -1
- package/dist/collection/components/le-popover/le-popover.js +3 -3
- package/dist/collection/components/le-round-progress/le-round-progress.js +1 -1
- package/dist/collection/components/le-scroll-progress/le-scroll-progress.js +1 -1
- package/dist/collection/components/le-segmented-control/le-segmented-control.js +1 -1
- package/dist/collection/components/le-select/le-select.js +2 -2
- package/dist/collection/components/le-side-panel/le-side-panel.css +193 -0
- package/dist/collection/components/le-side-panel/le-side-panel.js +953 -0
- package/dist/collection/components/le-side-panel/le-side-panel.js.map +1 -0
- package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js +610 -0
- package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js.map +1 -0
- package/dist/collection/components/le-slot/le-slot.js +1 -1
- package/dist/collection/components/le-stack/le-stack.js +1 -1
- package/dist/collection/components/le-string-input/le-string-input.js +2 -2
- package/dist/collection/components/le-tab/le-tab.js +1 -1
- package/dist/collection/components/le-tab-bar/le-tab-bar.js +1 -1
- package/dist/collection/components/le-tab-panel/le-tab-panel.js +2 -2
- package/dist/collection/components/le-tabs/le-tabs.js +2 -2
- package/dist/collection/components/le-tag/le-tag.js +1 -1
- package/dist/collection/components/le-text/le-text.js +7 -7
- package/dist/collection/components/le-text/le-text.js.map +1 -1
- package/dist/collection/components/le-turntable/le-turntable.js +1 -1
- package/dist/collection/dist/components/assets/custom-elements.json +5035 -4019
- package/dist/collection/dist/components/assets/icons/side-panel.json +61 -0
- package/dist/collection/dist/themes/dark.css +1 -0
- package/dist/collection/dist/themes/default.css +1 -0
- package/dist/collection/dist/themes/gradient.css +1 -0
- package/dist/collection/dist/themes/minimal.css +1 -0
- package/dist/collection/dist/themes/warm.css +1 -0
- package/dist/components/assets/custom-elements.json +5035 -4019
- package/dist/components/assets/icons/side-panel.json +61 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/le-box.js +3 -3
- package/dist/components/le-box.js.map +1 -1
- package/dist/components/le-button2.js +8 -8
- package/dist/components/le-button2.js.map +1 -1
- package/dist/components/le-card.js +3 -3
- package/dist/components/le-card.js.map +1 -1
- package/dist/components/le-collapse2.js +1 -1
- package/dist/components/le-combobox.js +1 -1
- package/dist/components/le-current-heading.js +1 -1
- package/dist/components/le-dropdown-base2.js +1 -1
- package/dist/components/le-header-placeholder.js +1 -1
- package/dist/components/le-header.js +2 -2
- package/dist/components/le-icon2.js +1 -1
- package/dist/components/le-multiselect.js +3 -3
- package/dist/components/le-navigation.js +1 -1
- package/dist/components/le-navigation.js.map +1 -1
- package/dist/components/le-number-input.js +1 -1
- package/dist/components/le-popover2.js +3 -3
- package/dist/components/le-round-progress.js +1 -1
- package/dist/components/le-scroll-progress.js +1 -1
- package/dist/components/le-segmented-control.js +1 -1
- package/dist/components/le-side-panel-toggle.d.ts +11 -0
- package/dist/components/le-side-panel-toggle.js +9 -0
- package/dist/components/le-side-panel-toggle.js.map +1 -0
- package/dist/components/le-side-panel-toggle2.js +311 -0
- package/dist/components/le-side-panel-toggle2.js.map +1 -0
- package/dist/components/le-side-panel.d.ts +11 -0
- package/dist/components/le-side-panel.js +660 -0
- package/dist/components/le-side-panel.js.map +1 -0
- package/dist/components/le-stack.js +1 -1
- package/dist/components/le-tab-bar.js +1 -1
- package/dist/components/le-tab-panel.js +2 -2
- package/dist/components/le-tab2.js +1 -1
- package/dist/components/le-tabs.js +2 -2
- package/dist/components/le-tag2.js +1 -1
- package/dist/components/le-text.js +6 -6
- package/dist/components/le-text.js.map +1 -1
- package/dist/components/le-turntable.js +1 -1
- package/dist/docs.json +1397 -130
- package/dist/esm/{index-C-Chwj1b.js → index-DFTm5BqT.js} +7 -4
- package/dist/esm/index-DFTm5BqT.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/le-bar_16.entry.js +21 -21
- package/dist/esm/le-box.entry.js +5 -5
- package/dist/esm/le-box.entry.js.map +1 -1
- package/dist/esm/le-card.entry.js +5 -5
- package/dist/esm/le-card.entry.js.map +1 -1
- package/dist/esm/le-combobox.entry.js +2 -2
- package/dist/esm/le-header-placeholder.entry.js +2 -2
- package/dist/esm/le-kit.js +3 -3
- package/dist/esm/le-multiselect.entry.js +4 -4
- package/dist/esm/le-number-input.entry.js +3 -3
- package/dist/esm/le-round-progress.entry.js +2 -2
- package/dist/esm/le-segmented-control.entry.js +2 -2
- package/dist/esm/le-side-panel-toggle.entry.js +227 -0
- package/dist/esm/le-side-panel-toggle.entry.js.map +1 -0
- package/dist/esm/le-side-panel.entry.js +544 -0
- package/dist/esm/le-side-panel.entry.js.map +1 -0
- package/dist/esm/le-stack.entry.js +3 -3
- package/dist/esm/le-tab-bar.entry.js +2 -2
- package/dist/esm/le-tab-panel.entry.js +3 -3
- package/dist/esm/le-tab.entry.js +3 -3
- package/dist/esm/le-tabs.entry.js +4 -4
- package/dist/esm/le-tag.entry.js +2 -2
- package/dist/esm/le-text.entry.js +8 -8
- package/dist/esm/le-text.entry.js.map +1 -1
- package/dist/esm/le-turntable.entry.js +2 -2
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{utils-B3alHV04.js → utils-DZYCZLrF.js} +3 -3
- package/dist/esm/{utils-B3alHV04.js.map → utils-DZYCZLrF.js.map} +1 -1
- package/dist/le-kit/dist/components/assets/custom-elements.json +5035 -4019
- package/dist/le-kit/dist/components/assets/icons/side-panel.json +61 -0
- package/dist/le-kit/dist/themes/dark.css +1 -0
- package/dist/le-kit/dist/themes/default.css +1 -0
- package/dist/le-kit/dist/themes/gradient.css +1 -0
- package/dist/le-kit/dist/themes/minimal.css +1 -0
- package/dist/le-kit/dist/themes/warm.css +1 -0
- package/dist/le-kit/index.esm.js +1 -1
- package/dist/le-kit/le-kit.css +1 -1
- package/dist/le-kit/le-kit.esm.js +1 -1
- package/dist/le-kit/p-221d379a.entry.js +2 -0
- package/dist/le-kit/p-221d379a.entry.js.map +1 -0
- package/dist/le-kit/{p-d161946c.entry.js → p-33a24394.entry.js} +2 -2
- package/dist/le-kit/{p-3d22aeb2.entry.js → p-36f126bb.entry.js} +2 -2
- package/dist/le-kit/p-3f26be75.entry.js +2 -0
- package/dist/le-kit/{p-3ceede4e.entry.js.map → p-3f26be75.entry.js.map} +1 -1
- package/dist/le-kit/{p-3d873cdb.entry.js → p-3f31e31b.entry.js} +2 -2
- package/dist/le-kit/{p-ea71f22c.entry.js → p-46276e77.entry.js} +2 -2
- package/dist/le-kit/p-46276e77.entry.js.map +1 -0
- package/dist/le-kit/p-69dd089a.entry.js +2 -0
- package/dist/le-kit/{p-f8034500.entry.js.map → p-69dd089a.entry.js.map} +1 -1
- package/dist/le-kit/p-6da2d81a.entry.js +2 -0
- package/dist/le-kit/{p-06d2d79c.entry.js.map → p-6da2d81a.entry.js.map} +1 -1
- package/dist/le-kit/{p-2230ecd7.entry.js → p-7201ae65.entry.js} +2 -2
- package/dist/le-kit/p-7a60bfff.entry.js +2 -0
- package/dist/le-kit/p-98242429.entry.js +2 -0
- package/dist/le-kit/p-98242429.entry.js.map +1 -0
- package/dist/le-kit/{p-923828fe.entry.js → p-9863d6fb.entry.js} +2 -2
- package/dist/le-kit/{p-DFr88Szp.js → p-D8RYDS9p.js} +2 -2
- package/dist/le-kit/{p-DFr88Szp.js.map → p-D8RYDS9p.js.map} +1 -1
- package/dist/le-kit/{p-C-Chwj1b.js → p-DFTm5BqT.js} +3 -3
- package/dist/le-kit/p-DFTm5BqT.js.map +1 -0
- package/dist/le-kit/{p-be2a7276.entry.js → p-bf66757c.entry.js} +2 -2
- package/dist/le-kit/p-c4975e66.entry.js +2 -0
- package/dist/le-kit/{p-e1846fc2.entry.js.map → p-c4975e66.entry.js.map} +1 -1
- package/dist/le-kit/p-cd38c01b.entry.js +2 -0
- package/dist/le-kit/{p-33c2168a.entry.js.map → p-cd38c01b.entry.js.map} +1 -1
- package/dist/le-kit/{p-68d836a3.entry.js → p-d1eee582.entry.js} +2 -2
- package/dist/le-kit/{p-e6b2cf9a.entry.js → p-d449a88b.entry.js} +2 -2
- package/dist/le-kit/p-eb710c8e.entry.js +2 -0
- package/dist/le-kit/p-eb710c8e.entry.js.map +1 -0
- package/dist/le-kit/{p-5d72c894.entry.js → p-f78b1ee6.entry.js} +2 -2
- package/dist/le-kit/p-f78b1ee6.entry.js.map +1 -0
- package/dist/themes/dark.css +1 -0
- package/dist/themes/default.css +1 -0
- package/dist/themes/gradient.css +1 -0
- package/dist/themes/minimal.css +1 -0
- package/dist/themes/warm.css +1 -0
- package/dist/types/components/le-side-panel/le-side-panel.d.ts +100 -0
- package/dist/types/components/le-side-panel-toggle/le-side-panel-toggle.d.ts +48 -0
- package/dist/types/components.d.ts +336 -2
- package/package.json +1 -1
- package/dist/cjs/index-BPF04Jvb.js.map +0 -1
- package/dist/esm/index-C-Chwj1b.js.map +0 -1
- package/dist/le-kit/p-05ccab91.entry.js +0 -2
- package/dist/le-kit/p-05ccab91.entry.js.map +0 -1
- package/dist/le-kit/p-06d2d79c.entry.js +0 -2
- package/dist/le-kit/p-33c2168a.entry.js +0 -2
- package/dist/le-kit/p-3ceede4e.entry.js +0 -2
- package/dist/le-kit/p-4a45ff67.entry.js +0 -2
- package/dist/le-kit/p-5d72c894.entry.js.map +0 -1
- package/dist/le-kit/p-C-Chwj1b.js.map +0 -1
- package/dist/le-kit/p-e1846fc2.entry.js +0 -2
- package/dist/le-kit/p-ea71f22c.entry.js.map +0 -1
- package/dist/le-kit/p-f8034500.entry.js +0 -2
- /package/dist/collection/components/le-box/{le-box.default.css → le-box.css} +0 -0
- /package/dist/collection/components/le-card/{le-card.default.css → le-card.css} +0 -0
- /package/dist/collection/components/le-text/{le-text.default.css → le-text.css} +0 -0
- /package/dist/le-kit/{p-d161946c.entry.js.map → p-33a24394.entry.js.map} +0 -0
- /package/dist/le-kit/{p-3d22aeb2.entry.js.map → p-36f126bb.entry.js.map} +0 -0
- /package/dist/le-kit/{p-3d873cdb.entry.js.map → p-3f31e31b.entry.js.map} +0 -0
- /package/dist/le-kit/{p-2230ecd7.entry.js.map → p-7201ae65.entry.js.map} +0 -0
- /package/dist/le-kit/{p-4a45ff67.entry.js.map → p-7a60bfff.entry.js.map} +0 -0
- /package/dist/le-kit/{p-923828fe.entry.js.map → p-9863d6fb.entry.js.map} +0 -0
- /package/dist/le-kit/{p-be2a7276.entry.js.map → p-bf66757c.entry.js.map} +0 -0
- /package/dist/le-kit/{p-68d836a3.entry.js.map → p-d1eee582.entry.js.map} +0 -0
- /package/dist/le-kit/{p-e6b2cf9a.entry.js.map → p-d449a88b.entry.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-BzadfLTc.js');
|
|
4
4
|
|
|
5
5
|
const leSegmentedControlCss = () => `:host{display:inline-block;max-width:100%;--le-segmented-control-bg:var(--le-color-background-secondary);--le-segmented-control-padding:var(--le-spacing-1)}:host([full-width]){width:100%}:host(.overflow-visible){max-width:none}.le-segmented-control{flex-direction:row;white-space:nowrap;border:none;gap:0;background-color:var(--le-segmented-control-bg);border-radius:calc(var(--le-radius-md) + var(--le-segmented-control-padding));padding:var(--le-segmented-control-padding)}.le-segmented-control.overflow-auto{overflow:auto}.le-segmented-control.overflow-hidden{overflow:hidden}.le-segmented-control.overflow-visible{overflow:visible}.le-segmented-control.overflow-scroll{overflow:scroll}.le-segmented-control.full-width{display:flex;width:100%;width:calc(100% - var(--le-segmented-control-padding) * 2)}.le-segmented-control.disabled{opacity:0.5;pointer-events:none}.le-segmented-control:focus{outline:2px solid var(--le-color-focus);outline-offset:2px}.full-width .segment{flex:1}.segment:focus-visible{outline:2px solid var(--le-focus-ring-color, var(--le-color-primary));outline-offset:2px}.segment-active{color:var(--le-segmented-text-color-active, var(--le-text-primary))}.segment-disabled{opacity:0.5;cursor:not-allowed}`;
|
|
6
6
|
|
|
@@ -228,7 +228,7 @@ const LeSegmentedControl = class {
|
|
|
228
228
|
'full-width': fullWidth,
|
|
229
229
|
'disabled': disabled,
|
|
230
230
|
};
|
|
231
|
-
return (index.h(index.Host, { key: '
|
|
231
|
+
return (index.h(index.Host, { key: '8cf5102c9418447bc6648a367261d1ebe9dd8e96', class: `overflow-${this.overflow}` }, index.h("le-component", { key: '035ed7391d0ca24d020383a8e03fee4e366c1216', component: "le-segmented-control" }, index.h("div", { key: '7273688a85a0f3b4b4fabb5e754bcd1b69adefb3', class: classes, ref: el => (this.containerRef = el), role: "radiogroup", part: "container", onKeyDown: this.handleKeyDown, tabIndex: 0 }, segmentConfigs.map(option => {
|
|
232
232
|
const optValue = this.getOptionValue(option);
|
|
233
233
|
const isSelected = optValue === value;
|
|
234
234
|
const isDisabled = option.disabled || disabled;
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-BzadfLTc.js');
|
|
4
|
+
|
|
5
|
+
function parseShortcut(input) {
|
|
6
|
+
if (!input) {
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
const trimmed = input.trim();
|
|
10
|
+
if (!trimmed) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
const parts = trimmed
|
|
14
|
+
.split('+')
|
|
15
|
+
.map(p => p.trim())
|
|
16
|
+
.filter(Boolean);
|
|
17
|
+
if (parts.length === 0) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
const key = parts[parts.length - 1];
|
|
21
|
+
const mods = parts.slice(0, -1).map(m => m.toLowerCase());
|
|
22
|
+
const spec = {
|
|
23
|
+
key: key.toLowerCase(),
|
|
24
|
+
alt: mods.includes('alt') || mods.includes('option'),
|
|
25
|
+
ctrl: mods.includes('ctrl') || mods.includes('control'),
|
|
26
|
+
meta: mods.includes('meta') || mods.includes('cmd') || mods.includes('command'),
|
|
27
|
+
shift: mods.includes('shift'),
|
|
28
|
+
};
|
|
29
|
+
if (mods.includes('mod')) {
|
|
30
|
+
// mac: Cmd, others: Ctrl
|
|
31
|
+
const isMac = typeof navigator !== 'undefined' && /mac/i.test(navigator.platform);
|
|
32
|
+
if (isMac) {
|
|
33
|
+
spec.meta = true;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
spec.ctrl = true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return spec;
|
|
40
|
+
}
|
|
41
|
+
function isEditableTarget(target) {
|
|
42
|
+
if (!(target instanceof HTMLElement)) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
const tag = target.tagName.toLowerCase();
|
|
46
|
+
if (tag === 'input' || tag === 'textarea' || tag === 'select') {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
return target.isContentEditable;
|
|
50
|
+
}
|
|
51
|
+
const LeSidePanelToggle = class {
|
|
52
|
+
constructor(hostRef) {
|
|
53
|
+
index.registerInstance(this, hostRef);
|
|
54
|
+
this.leSidePanelRequestToggle = index.createEvent(this, "leSidePanelRequestToggle");
|
|
55
|
+
}
|
|
56
|
+
get el() { return index.getElement(this); }
|
|
57
|
+
/** Optional id used to target a specific panel. */
|
|
58
|
+
panelId;
|
|
59
|
+
/** Action to emit. Default toggles the panel. */
|
|
60
|
+
action = 'toggle';
|
|
61
|
+
/** Optional keyboard shortcut like `Mod+B` or `Alt+N`. */
|
|
62
|
+
shortcut;
|
|
63
|
+
/** Disables the toggle. */
|
|
64
|
+
disabled = false;
|
|
65
|
+
// Pass-through props for le-button
|
|
66
|
+
mode;
|
|
67
|
+
variant = 'solid';
|
|
68
|
+
color = 'primary';
|
|
69
|
+
size = 'medium';
|
|
70
|
+
selected = false;
|
|
71
|
+
fullWidth = false;
|
|
72
|
+
iconOnly;
|
|
73
|
+
iconStart;
|
|
74
|
+
iconEnd;
|
|
75
|
+
type = 'button';
|
|
76
|
+
href;
|
|
77
|
+
target;
|
|
78
|
+
align = 'center';
|
|
79
|
+
leSidePanelRequestToggle;
|
|
80
|
+
shortcutSpec;
|
|
81
|
+
expanded;
|
|
82
|
+
buttonEl;
|
|
83
|
+
forwardedNodes;
|
|
84
|
+
onShortcutChanged() {
|
|
85
|
+
this.shortcutSpec = parseShortcut(this.shortcut);
|
|
86
|
+
this.syncShortcutListener();
|
|
87
|
+
}
|
|
88
|
+
connectedCallback() {
|
|
89
|
+
this.shortcutSpec = parseShortcut(this.shortcut);
|
|
90
|
+
this.forwardedNodes = Array.from(this.el.childNodes);
|
|
91
|
+
{
|
|
92
|
+
this.syncShortcutListener();
|
|
93
|
+
document.addEventListener('leSidePanelOpenChange', this.onPanelStateChange);
|
|
94
|
+
document.addEventListener('leSidePanelCollapsedChange', this.onPanelStateChange);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
componentDidLoad() {
|
|
98
|
+
this.syncForwardedNodesIntoButton();
|
|
99
|
+
this.syncAriaExpanded();
|
|
100
|
+
}
|
|
101
|
+
componentDidRender() {
|
|
102
|
+
this.syncForwardedNodesIntoButton();
|
|
103
|
+
this.syncAriaExpanded();
|
|
104
|
+
}
|
|
105
|
+
disconnectedCallback() {
|
|
106
|
+
{
|
|
107
|
+
document.removeEventListener('keydown', this.onDocumentKeyDown, true);
|
|
108
|
+
document.removeEventListener('leSidePanelOpenChange', this.onPanelStateChange);
|
|
109
|
+
document.removeEventListener('leSidePanelCollapsedChange', this.onPanelStateChange);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
syncShortcutListener() {
|
|
113
|
+
if (this.shortcutSpec) {
|
|
114
|
+
document.addEventListener('keydown', this.onDocumentKeyDown, true);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
document.removeEventListener('keydown', this.onDocumentKeyDown, true);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
getResolvedPanelId() {
|
|
121
|
+
if (this.panelId) {
|
|
122
|
+
return this.panelId;
|
|
123
|
+
}
|
|
124
|
+
const closestPanel = this.el?.closest?.('le-side-panel');
|
|
125
|
+
if (closestPanel?.panelId) {
|
|
126
|
+
return closestPanel.panelId;
|
|
127
|
+
}
|
|
128
|
+
return undefined;
|
|
129
|
+
}
|
|
130
|
+
emitRequest() {
|
|
131
|
+
if (this.disabled) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
this.leSidePanelRequestToggle.emit({
|
|
135
|
+
panelId: this.getResolvedPanelId(),
|
|
136
|
+
action: this.action,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
onDocumentKeyDown = (ev) => {
|
|
140
|
+
if (this.disabled) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const spec = this.shortcutSpec;
|
|
144
|
+
if (!spec) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
if (isEditableTarget(ev.target)) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
const key = (ev.key || '').toLowerCase();
|
|
151
|
+
if (key !== spec.key) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
if (!!ev.altKey !== spec.alt) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
if (!!ev.ctrlKey !== spec.ctrl) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
if (!!ev.metaKey !== spec.meta) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
if (!!ev.shiftKey !== spec.shift) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
ev.preventDefault();
|
|
167
|
+
this.emitRequest();
|
|
168
|
+
};
|
|
169
|
+
onPanelStateChange = (ev) => {
|
|
170
|
+
const detail = ev.detail || {};
|
|
171
|
+
const requestedId = this.getResolvedPanelId() || '';
|
|
172
|
+
const eventId = detail.panelId || '';
|
|
173
|
+
if (requestedId !== eventId) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
if (typeof detail.open === 'boolean') {
|
|
177
|
+
this.expanded = detail.open;
|
|
178
|
+
this.syncAriaExpanded();
|
|
179
|
+
}
|
|
180
|
+
if (typeof detail.collapsed === 'boolean') {
|
|
181
|
+
this.expanded = !detail.collapsed;
|
|
182
|
+
this.syncAriaExpanded();
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
syncForwardedNodesIntoButton() {
|
|
186
|
+
const btn = this.buttonEl;
|
|
187
|
+
if (!btn || !this.forwardedNodes || this.forwardedNodes.length === 0) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
for (const node of this.forwardedNodes) {
|
|
191
|
+
if (!node) {
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
if (node.parentNode !== btn) {
|
|
195
|
+
try {
|
|
196
|
+
btn.appendChild(node);
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
// ignore
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
syncAriaExpanded() {
|
|
205
|
+
const value = typeof this.expanded === 'boolean' ? String(this.expanded) : null;
|
|
206
|
+
const hostBtn = this.buttonEl;
|
|
207
|
+
if (!hostBtn) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
// Best-effort: set on the actual internal <button>/<a> inside le-button.
|
|
211
|
+
const inner = hostBtn.shadowRoot?.querySelector?.('[part="button"]') || null;
|
|
212
|
+
const target = inner || hostBtn;
|
|
213
|
+
if (value) {
|
|
214
|
+
target.setAttribute('aria-expanded', value);
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
target.removeAttribute('aria-expanded');
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
render() {
|
|
221
|
+
return (index.h("le-button", { key: '382be5b4b8c301dc1d5b8c2d8709bd83cfc08409', ref: el => (this.buttonEl = el), mode: this.mode, variant: this.variant, color: this.color, size: this.size, selected: this.selected, fullWidth: this.fullWidth, iconOnly: this.iconOnly, iconStart: this.iconStart, iconEnd: this.iconEnd, disabled: this.disabled, type: this.type, href: this.href, target: this.target, align: this.align, onClick: () => this.emitRequest() }));
|
|
222
|
+
}
|
|
223
|
+
static get watchers() { return {
|
|
224
|
+
"shortcut": ["onShortcutChanged"]
|
|
225
|
+
}; }
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
exports.le_side_panel_toggle = LeSidePanelToggle;
|
|
229
|
+
//# sourceMappingURL=le-side-panel-toggle.entry.cjs.js.map
|