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.
Files changed (222) hide show
  1. package/dist/cjs/{index-BPF04Jvb.js → index-BzadfLTc.js} +6 -3
  2. package/dist/cjs/index-BzadfLTc.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +2 -2
  4. package/dist/cjs/le-bar_16.cjs.entry.js +21 -21
  5. package/dist/cjs/le-box.cjs.entry.js +5 -5
  6. package/dist/cjs/le-card.cjs.entry.js +5 -5
  7. package/dist/cjs/le-combobox.cjs.entry.js +2 -2
  8. package/dist/cjs/le-header-placeholder.cjs.entry.js +2 -2
  9. package/dist/cjs/le-kit.cjs.js +2 -2
  10. package/dist/cjs/le-multiselect.cjs.entry.js +4 -4
  11. package/dist/cjs/le-number-input.cjs.entry.js +3 -3
  12. package/dist/cjs/le-round-progress.cjs.entry.js +2 -2
  13. package/dist/cjs/le-segmented-control.cjs.entry.js +2 -2
  14. package/dist/cjs/le-side-panel-toggle.cjs.entry.js +229 -0
  15. package/dist/cjs/le-side-panel.cjs.entry.js +546 -0
  16. package/dist/cjs/le-stack.cjs.entry.js +3 -3
  17. package/dist/cjs/le-tab-bar.cjs.entry.js +2 -2
  18. package/dist/cjs/le-tab-panel.cjs.entry.js +3 -3
  19. package/dist/cjs/le-tab.cjs.entry.js +3 -3
  20. package/dist/cjs/le-tabs.cjs.entry.js +4 -4
  21. package/dist/cjs/le-tag.cjs.entry.js +2 -2
  22. package/dist/cjs/le-text.cjs.entry.js +8 -8
  23. package/dist/cjs/le-turntable.cjs.entry.js +2 -2
  24. package/dist/cjs/loader.cjs.js +2 -2
  25. package/dist/cjs/{utils-BYsLPHN1.js → utils-Dxx9WhWK.js} +3 -3
  26. package/dist/cjs/{utils-BYsLPHN1.js.map → utils-Dxx9WhWK.js.map} +1 -1
  27. package/dist/collection/collection-manifest.json +2 -0
  28. package/dist/collection/components/le-box/le-box.js +3 -3
  29. package/dist/collection/components/le-box/le-box.js.map +1 -1
  30. package/dist/collection/components/le-button/le-button.css +2 -2
  31. package/dist/collection/components/le-button/le-button.js +1 -1
  32. package/dist/collection/components/le-card/le-card.js +3 -3
  33. package/dist/collection/components/le-card/le-card.js.map +1 -1
  34. package/dist/collection/components/le-checkbox/le-checkbox.js +1 -1
  35. package/dist/collection/components/le-collapse/le-collapse.js +1 -1
  36. package/dist/collection/components/le-combobox/le-combobox.js +1 -1
  37. package/dist/collection/components/le-current-heading/le-current-heading.js +1 -1
  38. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js +1 -1
  39. package/dist/collection/components/le-header/le-header.js +2 -2
  40. package/dist/collection/components/le-header-placeholder/le-header-placeholder.js +1 -1
  41. package/dist/collection/components/le-icon/le-icon.js +1 -1
  42. package/dist/collection/components/le-multiselect/le-multiselect.js +3 -3
  43. package/dist/collection/components/le-navigation/le-navigation.css +10 -4
  44. package/dist/collection/components/le-number-input/le-number-input.js +1 -1
  45. package/dist/collection/components/le-popover/le-popover.js +3 -3
  46. package/dist/collection/components/le-round-progress/le-round-progress.js +1 -1
  47. package/dist/collection/components/le-scroll-progress/le-scroll-progress.js +1 -1
  48. package/dist/collection/components/le-segmented-control/le-segmented-control.js +1 -1
  49. package/dist/collection/components/le-select/le-select.js +2 -2
  50. package/dist/collection/components/le-side-panel/le-side-panel.css +193 -0
  51. package/dist/collection/components/le-side-panel/le-side-panel.js +953 -0
  52. package/dist/collection/components/le-side-panel/le-side-panel.js.map +1 -0
  53. package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js +610 -0
  54. package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js.map +1 -0
  55. package/dist/collection/components/le-slot/le-slot.js +1 -1
  56. package/dist/collection/components/le-stack/le-stack.js +1 -1
  57. package/dist/collection/components/le-string-input/le-string-input.js +2 -2
  58. package/dist/collection/components/le-tab/le-tab.js +1 -1
  59. package/dist/collection/components/le-tab-bar/le-tab-bar.js +1 -1
  60. package/dist/collection/components/le-tab-panel/le-tab-panel.js +2 -2
  61. package/dist/collection/components/le-tabs/le-tabs.js +2 -2
  62. package/dist/collection/components/le-tag/le-tag.js +1 -1
  63. package/dist/collection/components/le-text/le-text.js +7 -7
  64. package/dist/collection/components/le-text/le-text.js.map +1 -1
  65. package/dist/collection/components/le-turntable/le-turntable.js +1 -1
  66. package/dist/collection/dist/components/assets/custom-elements.json +5035 -4019
  67. package/dist/collection/dist/components/assets/icons/side-panel.json +61 -0
  68. package/dist/collection/dist/themes/dark.css +1 -0
  69. package/dist/collection/dist/themes/default.css +1 -0
  70. package/dist/collection/dist/themes/gradient.css +1 -0
  71. package/dist/collection/dist/themes/minimal.css +1 -0
  72. package/dist/collection/dist/themes/warm.css +1 -0
  73. package/dist/components/assets/custom-elements.json +5035 -4019
  74. package/dist/components/assets/icons/side-panel.json +61 -0
  75. package/dist/components/index.js.map +1 -1
  76. package/dist/components/le-box.js +3 -3
  77. package/dist/components/le-box.js.map +1 -1
  78. package/dist/components/le-button2.js +8 -8
  79. package/dist/components/le-button2.js.map +1 -1
  80. package/dist/components/le-card.js +3 -3
  81. package/dist/components/le-card.js.map +1 -1
  82. package/dist/components/le-collapse2.js +1 -1
  83. package/dist/components/le-combobox.js +1 -1
  84. package/dist/components/le-current-heading.js +1 -1
  85. package/dist/components/le-dropdown-base2.js +1 -1
  86. package/dist/components/le-header-placeholder.js +1 -1
  87. package/dist/components/le-header.js +2 -2
  88. package/dist/components/le-icon2.js +1 -1
  89. package/dist/components/le-multiselect.js +3 -3
  90. package/dist/components/le-navigation.js +1 -1
  91. package/dist/components/le-navigation.js.map +1 -1
  92. package/dist/components/le-number-input.js +1 -1
  93. package/dist/components/le-popover2.js +3 -3
  94. package/dist/components/le-round-progress.js +1 -1
  95. package/dist/components/le-scroll-progress.js +1 -1
  96. package/dist/components/le-segmented-control.js +1 -1
  97. package/dist/components/le-side-panel-toggle.d.ts +11 -0
  98. package/dist/components/le-side-panel-toggle.js +9 -0
  99. package/dist/components/le-side-panel-toggle.js.map +1 -0
  100. package/dist/components/le-side-panel-toggle2.js +311 -0
  101. package/dist/components/le-side-panel-toggle2.js.map +1 -0
  102. package/dist/components/le-side-panel.d.ts +11 -0
  103. package/dist/components/le-side-panel.js +660 -0
  104. package/dist/components/le-side-panel.js.map +1 -0
  105. package/dist/components/le-stack.js +1 -1
  106. package/dist/components/le-tab-bar.js +1 -1
  107. package/dist/components/le-tab-panel.js +2 -2
  108. package/dist/components/le-tab2.js +1 -1
  109. package/dist/components/le-tabs.js +2 -2
  110. package/dist/components/le-tag2.js +1 -1
  111. package/dist/components/le-text.js +6 -6
  112. package/dist/components/le-text.js.map +1 -1
  113. package/dist/components/le-turntable.js +1 -1
  114. package/dist/docs.json +1397 -130
  115. package/dist/esm/{index-C-Chwj1b.js → index-DFTm5BqT.js} +7 -4
  116. package/dist/esm/index-DFTm5BqT.js.map +1 -0
  117. package/dist/esm/index.js +2 -2
  118. package/dist/esm/le-bar_16.entry.js +21 -21
  119. package/dist/esm/le-box.entry.js +5 -5
  120. package/dist/esm/le-box.entry.js.map +1 -1
  121. package/dist/esm/le-card.entry.js +5 -5
  122. package/dist/esm/le-card.entry.js.map +1 -1
  123. package/dist/esm/le-combobox.entry.js +2 -2
  124. package/dist/esm/le-header-placeholder.entry.js +2 -2
  125. package/dist/esm/le-kit.js +3 -3
  126. package/dist/esm/le-multiselect.entry.js +4 -4
  127. package/dist/esm/le-number-input.entry.js +3 -3
  128. package/dist/esm/le-round-progress.entry.js +2 -2
  129. package/dist/esm/le-segmented-control.entry.js +2 -2
  130. package/dist/esm/le-side-panel-toggle.entry.js +227 -0
  131. package/dist/esm/le-side-panel-toggle.entry.js.map +1 -0
  132. package/dist/esm/le-side-panel.entry.js +544 -0
  133. package/dist/esm/le-side-panel.entry.js.map +1 -0
  134. package/dist/esm/le-stack.entry.js +3 -3
  135. package/dist/esm/le-tab-bar.entry.js +2 -2
  136. package/dist/esm/le-tab-panel.entry.js +3 -3
  137. package/dist/esm/le-tab.entry.js +3 -3
  138. package/dist/esm/le-tabs.entry.js +4 -4
  139. package/dist/esm/le-tag.entry.js +2 -2
  140. package/dist/esm/le-text.entry.js +8 -8
  141. package/dist/esm/le-text.entry.js.map +1 -1
  142. package/dist/esm/le-turntable.entry.js +2 -2
  143. package/dist/esm/loader.js +3 -3
  144. package/dist/esm/{utils-B3alHV04.js → utils-DZYCZLrF.js} +3 -3
  145. package/dist/esm/{utils-B3alHV04.js.map → utils-DZYCZLrF.js.map} +1 -1
  146. package/dist/le-kit/dist/components/assets/custom-elements.json +5035 -4019
  147. package/dist/le-kit/dist/components/assets/icons/side-panel.json +61 -0
  148. package/dist/le-kit/dist/themes/dark.css +1 -0
  149. package/dist/le-kit/dist/themes/default.css +1 -0
  150. package/dist/le-kit/dist/themes/gradient.css +1 -0
  151. package/dist/le-kit/dist/themes/minimal.css +1 -0
  152. package/dist/le-kit/dist/themes/warm.css +1 -0
  153. package/dist/le-kit/index.esm.js +1 -1
  154. package/dist/le-kit/le-kit.css +1 -1
  155. package/dist/le-kit/le-kit.esm.js +1 -1
  156. package/dist/le-kit/p-221d379a.entry.js +2 -0
  157. package/dist/le-kit/p-221d379a.entry.js.map +1 -0
  158. package/dist/le-kit/{p-d161946c.entry.js → p-33a24394.entry.js} +2 -2
  159. package/dist/le-kit/{p-3d22aeb2.entry.js → p-36f126bb.entry.js} +2 -2
  160. package/dist/le-kit/p-3f26be75.entry.js +2 -0
  161. package/dist/le-kit/{p-3ceede4e.entry.js.map → p-3f26be75.entry.js.map} +1 -1
  162. package/dist/le-kit/{p-3d873cdb.entry.js → p-3f31e31b.entry.js} +2 -2
  163. package/dist/le-kit/{p-ea71f22c.entry.js → p-46276e77.entry.js} +2 -2
  164. package/dist/le-kit/p-46276e77.entry.js.map +1 -0
  165. package/dist/le-kit/p-69dd089a.entry.js +2 -0
  166. package/dist/le-kit/{p-f8034500.entry.js.map → p-69dd089a.entry.js.map} +1 -1
  167. package/dist/le-kit/p-6da2d81a.entry.js +2 -0
  168. package/dist/le-kit/{p-06d2d79c.entry.js.map → p-6da2d81a.entry.js.map} +1 -1
  169. package/dist/le-kit/{p-2230ecd7.entry.js → p-7201ae65.entry.js} +2 -2
  170. package/dist/le-kit/p-7a60bfff.entry.js +2 -0
  171. package/dist/le-kit/p-98242429.entry.js +2 -0
  172. package/dist/le-kit/p-98242429.entry.js.map +1 -0
  173. package/dist/le-kit/{p-923828fe.entry.js → p-9863d6fb.entry.js} +2 -2
  174. package/dist/le-kit/{p-DFr88Szp.js → p-D8RYDS9p.js} +2 -2
  175. package/dist/le-kit/{p-DFr88Szp.js.map → p-D8RYDS9p.js.map} +1 -1
  176. package/dist/le-kit/{p-C-Chwj1b.js → p-DFTm5BqT.js} +3 -3
  177. package/dist/le-kit/p-DFTm5BqT.js.map +1 -0
  178. package/dist/le-kit/{p-be2a7276.entry.js → p-bf66757c.entry.js} +2 -2
  179. package/dist/le-kit/p-c4975e66.entry.js +2 -0
  180. package/dist/le-kit/{p-e1846fc2.entry.js.map → p-c4975e66.entry.js.map} +1 -1
  181. package/dist/le-kit/p-cd38c01b.entry.js +2 -0
  182. package/dist/le-kit/{p-33c2168a.entry.js.map → p-cd38c01b.entry.js.map} +1 -1
  183. package/dist/le-kit/{p-68d836a3.entry.js → p-d1eee582.entry.js} +2 -2
  184. package/dist/le-kit/{p-e6b2cf9a.entry.js → p-d449a88b.entry.js} +2 -2
  185. package/dist/le-kit/p-eb710c8e.entry.js +2 -0
  186. package/dist/le-kit/p-eb710c8e.entry.js.map +1 -0
  187. package/dist/le-kit/{p-5d72c894.entry.js → p-f78b1ee6.entry.js} +2 -2
  188. package/dist/le-kit/p-f78b1ee6.entry.js.map +1 -0
  189. package/dist/themes/dark.css +1 -0
  190. package/dist/themes/default.css +1 -0
  191. package/dist/themes/gradient.css +1 -0
  192. package/dist/themes/minimal.css +1 -0
  193. package/dist/themes/warm.css +1 -0
  194. package/dist/types/components/le-side-panel/le-side-panel.d.ts +100 -0
  195. package/dist/types/components/le-side-panel-toggle/le-side-panel-toggle.d.ts +48 -0
  196. package/dist/types/components.d.ts +336 -2
  197. package/package.json +1 -1
  198. package/dist/cjs/index-BPF04Jvb.js.map +0 -1
  199. package/dist/esm/index-C-Chwj1b.js.map +0 -1
  200. package/dist/le-kit/p-05ccab91.entry.js +0 -2
  201. package/dist/le-kit/p-05ccab91.entry.js.map +0 -1
  202. package/dist/le-kit/p-06d2d79c.entry.js +0 -2
  203. package/dist/le-kit/p-33c2168a.entry.js +0 -2
  204. package/dist/le-kit/p-3ceede4e.entry.js +0 -2
  205. package/dist/le-kit/p-4a45ff67.entry.js +0 -2
  206. package/dist/le-kit/p-5d72c894.entry.js.map +0 -1
  207. package/dist/le-kit/p-C-Chwj1b.js.map +0 -1
  208. package/dist/le-kit/p-e1846fc2.entry.js +0 -2
  209. package/dist/le-kit/p-ea71f22c.entry.js.map +0 -1
  210. package/dist/le-kit/p-f8034500.entry.js +0 -2
  211. /package/dist/collection/components/le-box/{le-box.default.css → le-box.css} +0 -0
  212. /package/dist/collection/components/le-card/{le-card.default.css → le-card.css} +0 -0
  213. /package/dist/collection/components/le-text/{le-text.default.css → le-text.css} +0 -0
  214. /package/dist/le-kit/{p-d161946c.entry.js.map → p-33a24394.entry.js.map} +0 -0
  215. /package/dist/le-kit/{p-3d22aeb2.entry.js.map → p-36f126bb.entry.js.map} +0 -0
  216. /package/dist/le-kit/{p-3d873cdb.entry.js.map → p-3f31e31b.entry.js.map} +0 -0
  217. /package/dist/le-kit/{p-2230ecd7.entry.js.map → p-7201ae65.entry.js.map} +0 -0
  218. /package/dist/le-kit/{p-4a45ff67.entry.js.map → p-7a60bfff.entry.js.map} +0 -0
  219. /package/dist/le-kit/{p-923828fe.entry.js.map → p-9863d6fb.entry.js.map} +0 -0
  220. /package/dist/le-kit/{p-be2a7276.entry.js.map → p-bf66757c.entry.js.map} +0 -0
  221. /package/dist/le-kit/{p-68d836a3.entry.js.map → p-d1eee582.entry.js.map} +0 -0
  222. /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-BPF04Jvb.js');
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: 'a285c7c0ca824e96670b51dc638301c2c8ab6a6b', class: `overflow-${this.overflow}` }, index.h("le-component", { key: '6afe6d0861d3e797efabac23b24ad9731e19b6dd', component: "le-segmented-control" }, index.h("div", { key: '251f4d07960c6f464001cf6fda7643fe8db6af09', class: classes, ref: el => (this.containerRef = el), role: "radiogroup", part: "container", onKeyDown: this.handleKeyDown, tabIndex: 0 }, segmentConfigs.map(option => {
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