le-kit 0.1.19 → 0.2.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.
Files changed (143) hide show
  1. package/dist/cjs/index-pT2cVC5w.js.map +1 -1
  2. package/dist/cjs/le-button_13.cjs.entry.js +17 -21
  3. package/dist/cjs/le-icon.cjs.entry.js +108 -0
  4. package/dist/cjs/le-kit.cjs.js +1 -1
  5. package/dist/cjs/le-multiselect.cjs.entry.js +3 -3
  6. package/dist/cjs/le-navigation.cjs.entry.js +505 -0
  7. package/dist/cjs/le-number-input.cjs.entry.js +1 -1
  8. package/dist/cjs/le-round-progress.cjs.entry.js +1 -1
  9. package/dist/cjs/le-segmented-control.cjs.entry.js +1 -1
  10. package/dist/cjs/le-stack.cjs.entry.js +1 -1
  11. package/dist/cjs/le-tab-bar.cjs.entry.js +1 -1
  12. package/dist/cjs/le-tab-panel.cjs.entry.js +2 -2
  13. package/dist/cjs/le-tab.cjs.entry.js +1 -1
  14. package/dist/cjs/le-tabs.cjs.entry.js +2 -2
  15. package/dist/cjs/le-tag.cjs.entry.js +1 -1
  16. package/dist/cjs/le-turntable.cjs.entry.js +1 -1
  17. package/dist/cjs/loader.cjs.js +1 -1
  18. package/dist/collection/assets/icons/chevron-down.svg +3 -0
  19. package/dist/collection/collection-manifest.json +2 -0
  20. package/dist/collection/components/le-collapse/le-collapse.css +3 -3
  21. package/dist/collection/components/le-collapse/le-collapse.js +11 -15
  22. package/dist/collection/components/le-collapse/le-collapse.js.map +1 -1
  23. package/dist/collection/components/le-icon/le-icon.css +13 -0
  24. package/dist/collection/components/le-icon/le-icon.js +168 -0
  25. package/dist/collection/components/le-icon/le-icon.js.map +1 -0
  26. package/dist/collection/components/le-multiselect/le-multiselect.js +3 -3
  27. package/dist/collection/components/le-navigation/le-navigation.css +323 -0
  28. package/dist/collection/components/le-navigation/le-navigation.js +768 -0
  29. package/dist/collection/components/le-navigation/le-navigation.js.map +1 -0
  30. package/dist/collection/components/le-number-input/le-number-input.js +1 -1
  31. package/dist/collection/components/le-popover/le-popover.js +3 -3
  32. package/dist/collection/components/le-popup/le-popup.js +7 -7
  33. package/dist/collection/components/le-round-progress/le-round-progress.js +1 -1
  34. package/dist/collection/components/le-scroll-progress/le-scroll-progress.js +1 -1
  35. package/dist/collection/components/le-segmented-control/le-segmented-control.js +1 -1
  36. package/dist/collection/components/le-select/le-select.js +2 -2
  37. package/dist/collection/components/le-slot/le-slot.js +1 -1
  38. package/dist/collection/components/le-stack/le-stack.js +1 -1
  39. package/dist/collection/components/le-string-input/le-string-input.js +2 -2
  40. package/dist/collection/components/le-tab/le-tab.js +1 -1
  41. package/dist/collection/components/le-tab-bar/le-tab-bar.js +1 -1
  42. package/dist/collection/components/le-tab-panel/le-tab-panel.js +2 -2
  43. package/dist/collection/components/le-tabs/le-tabs.js +2 -2
  44. package/dist/collection/components/le-tag/le-tag.js +1 -1
  45. package/dist/collection/components/le-turntable/le-turntable.js +1 -1
  46. package/dist/collection/dist/components/assets/custom-elements.json +1278 -533
  47. package/dist/collection/dist/components/assets/icons/chevron-down.json +13 -0
  48. package/dist/collection/dist/components/assets/icons/chevron-down.svg +3 -0
  49. package/dist/collection/types/options.js.map +1 -1
  50. package/dist/components/assets/custom-elements.json +1278 -533
  51. package/dist/components/assets/icons/chevron-down.json +13 -0
  52. package/dist/components/assets/icons/chevron-down.svg +3 -0
  53. package/dist/components/index.js.map +1 -1
  54. package/dist/components/le-button2.js +5 -5
  55. package/dist/components/le-collapse.js +1 -137
  56. package/dist/components/le-collapse.js.map +1 -1
  57. package/dist/components/le-collapse2.js +138 -0
  58. package/dist/components/le-collapse2.js.map +1 -0
  59. package/dist/components/le-icon.d.ts +11 -0
  60. package/dist/components/le-icon.js +9 -0
  61. package/dist/components/le-icon.js.map +1 -0
  62. package/dist/components/le-icon2.js +133 -0
  63. package/dist/components/le-icon2.js.map +1 -0
  64. package/dist/components/le-multiselect.js +3 -3
  65. package/dist/components/le-navigation.d.ts +11 -0
  66. package/dist/components/le-navigation.js +605 -0
  67. package/dist/components/le-navigation.js.map +1 -0
  68. package/dist/components/le-number-input.js +1 -1
  69. package/dist/components/le-popover2.js +3 -3
  70. package/dist/components/le-round-progress.js +1 -1
  71. package/dist/components/le-scroll-progress.js +1 -1
  72. package/dist/components/le-segmented-control.js +1 -1
  73. package/dist/components/le-stack.js +1 -1
  74. package/dist/components/le-tab-bar.js +1 -1
  75. package/dist/components/le-tab-panel.js +2 -2
  76. package/dist/components/le-tab2.js +1 -1
  77. package/dist/components/le-tabs.js +2 -2
  78. package/dist/components/le-tag2.js +1 -1
  79. package/dist/components/le-turntable.js +1 -1
  80. package/dist/docs.json +544 -27
  81. package/dist/esm/index-CNv6tzAt.js.map +1 -1
  82. package/dist/esm/le-button_13.entry.js +17 -21
  83. package/dist/esm/le-icon.entry.js +106 -0
  84. package/dist/esm/le-icon.entry.js.map +1 -0
  85. package/dist/esm/le-kit.js +1 -1
  86. package/dist/esm/le-multiselect.entry.js +3 -3
  87. package/dist/esm/le-navigation.entry.js +503 -0
  88. package/dist/esm/le-navigation.entry.js.map +1 -0
  89. package/dist/esm/le-number-input.entry.js +1 -1
  90. package/dist/esm/le-round-progress.entry.js +1 -1
  91. package/dist/esm/le-segmented-control.entry.js +1 -1
  92. package/dist/esm/le-stack.entry.js +1 -1
  93. package/dist/esm/le-tab-bar.entry.js +1 -1
  94. package/dist/esm/le-tab-panel.entry.js +2 -2
  95. package/dist/esm/le-tab.entry.js +1 -1
  96. package/dist/esm/le-tabs.entry.js +2 -2
  97. package/dist/esm/le-tag.entry.js +1 -1
  98. package/dist/esm/le-turntable.entry.js +1 -1
  99. package/dist/esm/loader.js +1 -1
  100. package/dist/le-kit/dist/components/assets/custom-elements.json +1278 -533
  101. package/dist/le-kit/dist/components/assets/icons/chevron-down.json +13 -0
  102. package/dist/le-kit/dist/components/assets/icons/chevron-down.svg +3 -0
  103. package/dist/le-kit/le-kit.esm.js +1 -1
  104. package/dist/le-kit/{p-3327b089.entry.js → p-0ac4397c.entry.js} +2 -2
  105. package/dist/le-kit/{p-dfd20890.entry.js → p-25a29e69.entry.js} +2 -2
  106. package/dist/le-kit/{p-64c2cee1.entry.js → p-511fbb63.entry.js} +2 -2
  107. package/dist/le-kit/{p-4bdb03cb.entry.js → p-58120921.entry.js} +2 -2
  108. package/dist/le-kit/{p-b7c008de.entry.js → p-5ceb06d8.entry.js} +2 -2
  109. package/dist/le-kit/{p-e3f3cc8f.entry.js → p-9a3bdbe1.entry.js} +2 -2
  110. package/dist/le-kit/p-CNv6tzAt.js.map +1 -1
  111. package/dist/le-kit/{p-f88c804a.entry.js → p-a0d2c580.entry.js} +2 -2
  112. package/dist/le-kit/p-b1dc7e06.entry.js +2 -0
  113. package/dist/le-kit/p-b1dc7e06.entry.js.map +1 -0
  114. package/dist/le-kit/p-bb160082.entry.js +2 -0
  115. package/dist/le-kit/p-bb160082.entry.js.map +1 -0
  116. package/dist/le-kit/{p-da0265c5.entry.js → p-de5638c9.entry.js} +2 -2
  117. package/dist/le-kit/{p-1733d907.entry.js → p-e24d3e33.entry.js} +2 -2
  118. package/dist/le-kit/{p-6acdf000.entry.js → p-ec20e438.entry.js} +2 -2
  119. package/dist/le-kit/p-f2fa3bf5.entry.js +2 -0
  120. package/dist/le-kit/p-f2fa3bf5.entry.js.map +1 -0
  121. package/dist/le-kit/{p-02532919.entry.js → p-f4f2c3e7.entry.js} +2 -2
  122. package/dist/types/components/le-collapse/le-collapse.d.ts +5 -3
  123. package/dist/types/components/le-icon/le-icon.d.ts +28 -0
  124. package/dist/types/components/le-navigation/le-navigation.d.ts +116 -0
  125. package/dist/types/components.d.ts +204 -10
  126. package/dist/types/types/options.d.ts +5 -0
  127. package/package.json +1 -1
  128. package/dist/collection/dist/components/assets/.gitkeep +0 -1
  129. package/dist/components/assets/.gitkeep +0 -1
  130. package/dist/le-kit/dist/components/assets/.gitkeep +0 -1
  131. package/dist/le-kit/p-83007215.entry.js +0 -2
  132. package/dist/le-kit/p-83007215.entry.js.map +0 -1
  133. /package/dist/le-kit/{p-3327b089.entry.js.map → p-0ac4397c.entry.js.map} +0 -0
  134. /package/dist/le-kit/{p-dfd20890.entry.js.map → p-25a29e69.entry.js.map} +0 -0
  135. /package/dist/le-kit/{p-64c2cee1.entry.js.map → p-511fbb63.entry.js.map} +0 -0
  136. /package/dist/le-kit/{p-4bdb03cb.entry.js.map → p-58120921.entry.js.map} +0 -0
  137. /package/dist/le-kit/{p-b7c008de.entry.js.map → p-5ceb06d8.entry.js.map} +0 -0
  138. /package/dist/le-kit/{p-e3f3cc8f.entry.js.map → p-9a3bdbe1.entry.js.map} +0 -0
  139. /package/dist/le-kit/{p-f88c804a.entry.js.map → p-a0d2c580.entry.js.map} +0 -0
  140. /package/dist/le-kit/{p-da0265c5.entry.js.map → p-de5638c9.entry.js.map} +0 -0
  141. /package/dist/le-kit/{p-1733d907.entry.js.map → p-e24d3e33.entry.js.map} +0 -0
  142. /package/dist/le-kit/{p-6acdf000.entry.js.map → p-ec20e438.entry.js.map} +0 -0
  143. /package/dist/le-kit/{p-02532919.entry.js.map → p-f4f2c3e7.entry.js.map} +0 -0
@@ -292,13 +292,13 @@ const LeMultiselect$1 = /*@__PURE__*/ proxyCustomElement(class LeMultiselect ext
292
292
  render() {
293
293
  const hasSelections = this.selectedOptions.length > 0;
294
294
  const atMaxSelections = this.maxSelections && this.value.length >= this.maxSelections;
295
- return (h("le-component", { key: '140e151311a635aac4f9a14405466c5b93127576', component: "le-multiselect" }, h("le-dropdown-base", { key: '39f2f2ea2bccccd7dfee5514afb3c3767d0ac006', ref: el => (this.dropdownEl = el), options: this.effectiveOptions, value: this.value, multiple: true, disabled: this.disabled, filterFn: this.searchable ? this.filterOption : undefined, filterQuery: this.searchQuery, emptyText: this.emptyText, showCheckboxes: true, fullWidth: this.fullWidth, onLeOptionSelect: this.handleOptionSelect, onLeDropdownOpen: this.handleDropdownOpen, onLeDropdownClose: this.handleDropdownClose }, h("div", { key: '202886428f7731f7102135746c7506ccc9649390', slot: "trigger", class: {
295
+ return (h("le-component", { key: '6fa8274a23f2cc144150442ca9478d405fa9db59', component: "le-multiselect" }, h("le-dropdown-base", { key: 'eccf77b1d40bcc1dbae6d6e73523199dba89c02a', ref: el => (this.dropdownEl = el), options: this.effectiveOptions, value: this.value, multiple: true, disabled: this.disabled, filterFn: this.searchable ? this.filterOption : undefined, filterQuery: this.searchQuery, emptyText: this.emptyText, showCheckboxes: true, fullWidth: this.fullWidth, onLeOptionSelect: this.handleOptionSelect, onLeDropdownOpen: this.handleDropdownOpen, onLeDropdownClose: this.handleDropdownClose }, h("div", { key: '3c665ad3efc5543a9afcb836c8a996030460723a', slot: "trigger", class: {
296
296
  'multiselect-trigger': true,
297
297
  'has-selections': hasSelections,
298
298
  'is-open': this.open,
299
299
  'is-disabled': this.disabled,
300
- }, tabIndex: this.disabled ? -1 : 0, role: "combobox", "aria-haspopup": "listbox", "aria-expanded": this.open ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : undefined, onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown }, this.renderTags(), h("div", { key: 'a181ed91241b2b2e67f6b0cf0450b172a505311a', class: "multiselect-actions" }, hasSelections && !this.disabled && (h("button", { key: 'cf6406faa147cefd721b4be7eebe36b7dcc096b9', type: "button", class: "multiselect-clear", onClick: this.handleClearAll, "aria-label": "Clear all", tabIndex: -1 }, h("svg", { key: '123cbff9842d26bb5854d1a501f1b6efa4c94e1b', viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "2" }, h("path", { key: '966646d52554f636938cac32281b71185fd1af84', d: "M4 4l8 8M12 4l-8 8" })))), h("span", { key: '9005886bc32ed7ce748db6ec9c7e194814043097', class: "multiselect-arrow" }, h("svg", { key: 'ed065128791c22b1015e209108d1352d4023dfd9', viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "2" }, h("path", { key: '53c8a514bca6a56a70f4fe830e43f6433a31f07b', d: "M4 6l4 4 4-4" }))))), this.searchable && this.open && (h("div", { key: '9883672b6d448039ba2774db6c327432825759c3', class: "multiselect-search", slot: "header" }, h("le-string-input", { key: 'd8f1a827363829bb57f437bf478a9e331cfc1119', mode: "default", inputRef: el => (this.inputEl = el), class: "search-input", placeholder: "Search...", value: this.searchQuery, onInput: this.handleSearchInput })))), this.name &&
301
- this.value.map(val => (h("input", { type: "hidden", name: this.name, value: val.toString(), key: val.toString() }))), atMaxSelections && (h("span", { key: 'c723d1feb85be0e1b4cd840f24acc53e16fd09f3', class: "multiselect-status" }, "Maximum ", this.maxSelections, " selections"))));
300
+ }, tabIndex: this.disabled ? -1 : 0, role: "combobox", "aria-haspopup": "listbox", "aria-expanded": this.open ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : undefined, onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown }, this.renderTags(), h("div", { key: 'a19d6d1dfa9bfb757874bb4e39f75e3dc8e4f101', class: "multiselect-actions" }, hasSelections && !this.disabled && (h("button", { key: 'f639279dd53a1eaff6ff146c57129d598bc55ca5', type: "button", class: "multiselect-clear", onClick: this.handleClearAll, "aria-label": "Clear all", tabIndex: -1 }, h("svg", { key: 'a5458f2d7dae924b7f943df067269beca1d9bfdd', viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "2" }, h("path", { key: 'c2fd9f943f0496e2c0e0ecbb79e1a16993cb796d', d: "M4 4l8 8M12 4l-8 8" })))), h("span", { key: 'bd7fc5ef0af6b937fea089881f3d5fc881219247', class: "multiselect-arrow" }, h("svg", { key: '180c1c3b35713fc5de0aade07ef3524dd674cca5', viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "2" }, h("path", { key: '48c1e6e3f2c0c20b52d2ba551d2720e5da5f0bed', d: "M4 6l4 4 4-4" }))))), this.searchable && this.open && (h("div", { key: '3b6dbe407a4d33065ff50496c14a71ebd27e71bb', class: "multiselect-search", slot: "header" }, h("le-string-input", { key: '35ed3a229b0ca6f4e1f9e8732c94a531af2d7fb3', mode: "default", inputRef: el => (this.inputEl = el), class: "search-input", placeholder: "Search...", value: this.searchQuery, onInput: this.handleSearchInput })))), this.name &&
301
+ this.value.map(val => (h("input", { type: "hidden", name: this.name, value: val.toString(), key: val.toString() }))), atMaxSelections && (h("span", { key: '214ee34c77755375045fce655129736ff4a1ef0f', class: "multiselect-status" }, "Maximum ", this.maxSelections, " selections"))));
302
302
  }
303
303
  static get watchers() { return {
304
304
  "value": ["handleValueChange"],
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface LeNavigation extends Components.LeNavigation, HTMLElement {}
4
+ export const LeNavigation: {
5
+ prototype: LeNavigation;
6
+ new (): LeNavigation;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,605 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host, transformTag } from '@stencil/core/internal/client';
2
+ import { g as generateId, h as classnames } from './utils.js';
3
+ import { d as defineCustomElement$2, a as defineCustomElement$3, b as defineCustomElement$4, c as defineCustomElement$5, e as defineCustomElement$9, f as defineCustomElement$b, g as defineCustomElement$c } from './le-button2.js';
4
+ import { d as defineCustomElement$a } from './le-collapse2.js';
5
+ import { d as defineCustomElement$8 } from './le-dropdown-base2.js';
6
+ import { d as defineCustomElement$7 } from './le-icon2.js';
7
+ import { d as defineCustomElement$6 } from './le-popover2.js';
8
+
9
+ const leNavigationCss = () => `:host{display:block;--le-nav-radius:var(--le-radius-md);--le-nav-gap:var(--le-spacing-2);--le-nav-item-padding-x:var(--le-spacing-1);--le-nav-item-padding-y:var(--le-spacing-2);--le-nav-item-gap:var(--le-spacing-2);--le-nav-color:var(--le-color-text-primary);--le-nav-muted:var(--le-color-text-secondary);--le-nav-hover-bg:var(--le-color-gray-100);--le-nav-selected-bg:var(--le-color-primary);--le-nav-selected-color:var(--le-color-primary-contrast)}.nav-vertical{display:flex;flex-direction:column;gap:var(--le-nav-gap)}.nav-search{width:100%}.nav-search-input{--le-input-radius:var(--le-radius-md)}.nav-empty{padding:var(--le-spacing-2);color:var(--le-nav-muted);font-size:var(--le-font-size-sm)}.nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--le-spacing-1)}.nav-row{display:flex;align-items:stretch;gap:var(--le-spacing-1);border-radius:var(--le-nav-radius)}.nav-row:hover{background:var(--le-nav-hover-bg)}.nav-toggle,.nav-toggle-spacer{box-sizing:border-box;width:var(--le-spacing-4);min-width:var(--le-spacing-4);display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--le-nav-radius);color:inherit}.nav-toggle{background:transparent;cursor:pointer;opacity:0.4}.nav-toggle:hover:not(:disabled){opacity:1}.nav-toggle:focus-visible{outline:2px solid var(--le-color-focus);outline-offset:2px;opacity:1}.nav-chevron{display:inline-block;transition:transform var(--le-transition-fast)}.nav-chevron svg{display:block;width:var(--le-spacing-4);height:var(--le-spacing-4)}.nav-node>div>button>.nav-chevron{transform:rotate(-90deg)}.nav-node.open>div>button>.nav-chevron{transform:rotate(0deg)}.nav-item{flex:1;display:inline-flex;align-items:center;gap:var(--le-nav-item-gap);padding:var(--le-nav-item-padding-y) var(--le-nav-item-padding-x) var(--le-nav-item-padding-y) 0;border-radius:var(--le-nav-radius);border:1px solid transparent;background:transparent;text-decoration:none;color:var(--le-nav-color);font-family:var(--le-font-family-base);font-size:var(--le-font-size-md);line-height:var(--le-line-height-tight);cursor:pointer}.nav-item:focus-visible{outline:2px solid var(--le-color-focus);outline-offset:2px}.nav-node.selected>.nav-row{background:var(--le-nav-selected-bg);color:var(--le-nav-selected-color)}.nav-node.selected>.nav-row>.nav-item{color:inherit}.nav-node.disabled>.nav-row>.nav-item{opacity:0.5;cursor:not-allowed}.nav-text{display:flex;flex-direction:column;min-width:0}.nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-description{color:color-mix(in srgb, var(--le-nav-muted) 90%, transparent);font-size:var(--le-font-size-sm);line-height:var(--le-line-height-tight)}.nav-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.nav-icon-end{margin-left:auto}.nav-children{margin-top:var(--le-spacing-1)}.nav-horizontal{display:flex;align-items:center;gap:var(--le-spacing-2)}.nav-horizontal-shell{position:relative}.nav-horizontal-measure{position:absolute;left:-10000px;top:-10000px;visibility:hidden;pointer-events:none;display:flex;align-items:center;gap:var(--le-spacing-2);flex-wrap:wrap}.nav-horizontal.wrap{flex-wrap:wrap}.nav-horizontal.nowrap{flex-wrap:nowrap;overflow:hidden}.h-item{display:flex;align-items:center}.h-link{display:inline-flex;align-items:center;gap:var(--le-spacing-2);padding:var(--le-spacing-2) var(--le-spacing-3);border-radius:var(--le-nav-radius);border:1px solid transparent;background:transparent;text-decoration:none;color:var(--le-nav-color);font-family:var(--le-font-family-base);font-size:var(--le-font-size-md);cursor:pointer}.h-link:hover{background:var(--le-nav-hover-bg)}.h-link:focus-visible{outline:2px solid var(--le-color-focus);outline-offset:2px}.h-link.disabled,.h-trigger.disabled{opacity:0.5;pointer-events:none}.h-link.selected,.h-trigger.selected{background:var(--le-nav-selected-bg);color:var(--le-nav-selected-color)}.h-label{white-space:nowrap}.h-trigger{display:inline-flex;align-items:center;gap:var(--le-spacing-1);border-radius:var(--le-nav-radius)}.h-submenu-toggle{width:var(--le-spacing-3);height:var(--le-spacing-3);display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--le-nav-radius);background:transparent;color:currentColor;cursor:pointer}.h-submenu-toggle:hover{background:var(--le-nav-hover-bg)}.more-trigger-wrap{display:flex;align-items:center}.more-trigger-wrap.is-measure{position:absolute;visibility:hidden;pointer-events:none}.more-trigger-wrap.is-visible{position:static;visibility:visible}.overflow-trigger{display:inline-flex;align-items:center;justify-content:center;gap:var(--le-spacing-2);padding:var(--le-spacing-2) var(--le-spacing-3);border-radius:var(--le-nav-radius);border:1px solid transparent;background:transparent;color:var(--le-nav-color);cursor:pointer;font-family:var(--le-font-family-base);font-size:var(--le-font-size-md)}.overflow-trigger:hover{background:var(--le-nav-hover-bg)}.overflow-trigger:focus-visible{outline:2px solid var(--le-color-focus);outline-offset:2px}le-popover::part(content){padding:var(--le-spacing-1)}`;
10
+
11
+ const LeNavigation$1 = /*@__PURE__*/ proxyCustomElement(class LeNavigation extends HTMLElement {
12
+ constructor(registerHost) {
13
+ super();
14
+ if (registerHost !== false) {
15
+ this.__registerHost();
16
+ }
17
+ this.__attachShadow();
18
+ this.leNavItemSelect = createEvent(this, "leNavItemSelect", 7);
19
+ this.leNavItemToggle = createEvent(this, "leNavItemToggle", 7);
20
+ }
21
+ get el() { return this; }
22
+ /**
23
+ * Navigation items.
24
+ * Can be passed as an array or JSON string (same pattern as le-select).
25
+ */
26
+ items = [];
27
+ /**
28
+ * Layout orientation.
29
+ */
30
+ orientation = 'horizontal';
31
+ /**
32
+ * Horizontal wrapping behavior.
33
+ * If false, overflow behavior depends on `overflowMode`.
34
+ */
35
+ wrap = true;
36
+ /**
37
+ * Overflow behavior for horizontal, non-wrapping menus.
38
+ * - more: moves overflow items into a "More" popover
39
+ * - hamburger: turns the whole nav into a hamburger popover
40
+ */
41
+ overflowMode = 'more';
42
+ /**
43
+ * Active url for automatic selection.
44
+ */
45
+ activeUrl = '';
46
+ /**
47
+ * Enables a search input for the vertical navigation.
48
+ */
49
+ searchable = false;
50
+ /**
51
+ * Placeholder text for the search input.
52
+ */
53
+ searchPlaceholder = 'Search...';
54
+ /**
55
+ * Text shown when no items match the filter.
56
+ */
57
+ emptyText = 'No results found';
58
+ /**
59
+ * Whether submenu popovers should include a filter input.
60
+ */
61
+ submenuSearchable = false;
62
+ /**
63
+ * Fired when a navigation item is activated.
64
+ *
65
+ * This event is cancelable. Call `event.preventDefault()` to prevent
66
+ * default browser navigation and implement custom routing.
67
+ */
68
+ leNavItemSelect;
69
+ /**
70
+ * Fired when a tree branch is toggled.
71
+ */
72
+ leNavItemToggle;
73
+ searchQuery = '';
74
+ openState = {};
75
+ overflowIds = [];
76
+ hamburgerActive = false;
77
+ submenuQueries = {};
78
+ navContainerEl;
79
+ measureEl;
80
+ measureMoreEl;
81
+ topItemEls = new Map();
82
+ popoverRefs = new Map();
83
+ resizeObserver;
84
+ instanceId = generateId('le-nav');
85
+ handleLayoutInputsChange() {
86
+ this.scheduleOverflowRecalc();
87
+ }
88
+ componentDidLoad() {
89
+ this.setupResizeObserver();
90
+ this.scheduleOverflowRecalc();
91
+ }
92
+ disconnectedCallback() {
93
+ this.resizeObserver?.disconnect();
94
+ this.resizeObserver = undefined;
95
+ }
96
+ componentDidRender() {
97
+ // In case refs change after render.
98
+ this.scheduleOverflowRecalc();
99
+ }
100
+ setupResizeObserver() {
101
+ this.resizeObserver?.disconnect();
102
+ if (typeof ResizeObserver === 'undefined')
103
+ return;
104
+ this.resizeObserver = new ResizeObserver(() => this.computeOverflow());
105
+ this.observeContainer(this.navContainerEl);
106
+ }
107
+ observeContainer(el) {
108
+ if (!this.resizeObserver)
109
+ return;
110
+ this.resizeObserver.disconnect();
111
+ if (el)
112
+ this.resizeObserver.observe(el);
113
+ }
114
+ scheduleOverflowRecalc() {
115
+ // Avoid work for vertical layout.
116
+ if (this.orientation !== 'horizontal')
117
+ return;
118
+ // Ensure it runs after layout.
119
+ requestAnimationFrame(() => this.computeOverflow());
120
+ }
121
+ get parsedItems() {
122
+ if (typeof this.items === 'string') {
123
+ try {
124
+ return JSON.parse(this.items);
125
+ }
126
+ catch {
127
+ return [];
128
+ }
129
+ }
130
+ return this.items;
131
+ }
132
+ getItemId(item, path) {
133
+ return item.id ?? `${this.instanceId}:${path}`;
134
+ }
135
+ getChildItems(item) {
136
+ return Array.isArray(item.children) ? item.children : [];
137
+ }
138
+ isOpen(item, id) {
139
+ const fromState = this.openState[id];
140
+ if (typeof fromState === 'boolean')
141
+ return fromState;
142
+ return !!item.open;
143
+ }
144
+ setOpen(id, open) {
145
+ if (this.openState[id] === open)
146
+ return;
147
+ this.openState = {
148
+ ...this.openState,
149
+ [id]: open,
150
+ };
151
+ }
152
+ matchesQuery(option, query) {
153
+ if (!query)
154
+ return true;
155
+ const q = query.toLowerCase();
156
+ return (option.label.toLowerCase().includes(q) ||
157
+ (option.description?.toLowerCase().includes(q) ?? false));
158
+ }
159
+ filterTree(items, query, pathPrefix, autoOpen) {
160
+ if (!query)
161
+ return items;
162
+ const result = [];
163
+ items.forEach((item, index) => {
164
+ const path = pathPrefix ? `${pathPrefix}.${index}` : String(index);
165
+ const id = this.getItemId(item, path);
166
+ const children = this.getChildItems(item);
167
+ const filteredChildren = this.filterTree(children, query, path, autoOpen);
168
+ const selfMatch = this.matchesQuery(item, query);
169
+ const childMatch = filteredChildren.length > 0;
170
+ if (selfMatch || childMatch) {
171
+ if (childMatch) {
172
+ autoOpen.add(id);
173
+ }
174
+ if (childMatch && filteredChildren !== children) {
175
+ result.push({
176
+ ...item,
177
+ children: filteredChildren,
178
+ });
179
+ }
180
+ else {
181
+ result.push(item);
182
+ }
183
+ }
184
+ });
185
+ return result;
186
+ }
187
+ handleItemSelect = (e, item, id) => {
188
+ if (item.disabled) {
189
+ e.preventDefault();
190
+ e.stopPropagation();
191
+ return;
192
+ }
193
+ const emitted = this.leNavItemSelect.emit({
194
+ item,
195
+ id,
196
+ href: item.href,
197
+ originalEvent: e,
198
+ });
199
+ if (emitted.defaultPrevented) {
200
+ e.preventDefault();
201
+ }
202
+ };
203
+ handleToggle = (e, item, id) => {
204
+ e.preventDefault();
205
+ e.stopPropagation();
206
+ if (item.disabled)
207
+ return;
208
+ const next = !this.isOpen(item, id);
209
+ this.setOpen(id, next);
210
+ this.leNavItemToggle.emit({
211
+ item,
212
+ id,
213
+ open: next,
214
+ originalEvent: e,
215
+ });
216
+ };
217
+ handleSearchInput = (e) => {
218
+ const target = e.target;
219
+ this.searchQuery = target.value;
220
+ };
221
+ handleSubmenuSearchInput = (submenuId, e) => {
222
+ const target = e.target;
223
+ const value = target.value;
224
+ if (this.submenuQueries[submenuId] === value)
225
+ return;
226
+ this.submenuQueries = {
227
+ ...this.submenuQueries,
228
+ [submenuId]: value,
229
+ };
230
+ // Position may change as items filter.
231
+ requestAnimationFrame(() => this.popoverRefs.get(submenuId)?.updatePosition());
232
+ };
233
+ getTopLevelIds(items) {
234
+ return items.map((item, index) => this.getItemId(item, String(index)));
235
+ }
236
+ computeOverflow() {
237
+ // Only applies to horizontal, non-wrapping navs.
238
+ if (this.orientation !== 'horizontal' || this.wrap) {
239
+ if (this.overflowIds.length)
240
+ this.overflowIds = [];
241
+ if (this.hamburgerActive)
242
+ this.hamburgerActive = false;
243
+ return;
244
+ }
245
+ const container = this.navContainerEl;
246
+ if (!container)
247
+ return;
248
+ const topIds = this.getTopLevelIds(this.parsedItems);
249
+ const widths = topIds.map(id => this.topItemEls.get(id)?.getBoundingClientRect().width ?? 0);
250
+ const totalWidth = widths.reduce((a, b) => a + b, 0);
251
+ const availableWidth = container.getBoundingClientRect().width;
252
+ if (this.overflowMode === 'hamburger') {
253
+ const shouldHamburger = totalWidth > availableWidth;
254
+ if (shouldHamburger !== this.hamburgerActive) {
255
+ this.hamburgerActive = shouldHamburger;
256
+ }
257
+ if (this.overflowIds.length)
258
+ this.overflowIds = [];
259
+ return;
260
+ }
261
+ // overflowMode === 'more'
262
+ this.computeOverflowMoreByWrap(availableWidth);
263
+ }
264
+ computeOverflowMoreByWrap(availableWidth) {
265
+ const container = this.navContainerEl;
266
+ const measure = this.measureEl;
267
+ const measureMore = this.measureMoreEl;
268
+ const items = this.parsedItems;
269
+ if (!container || !measure)
270
+ return;
271
+ // Ensure measurement container matches visible container width.
272
+ measure.style.width = `${availableWidth}px`;
273
+ const allIds = this.getTopLevelIds(items);
274
+ const itemEls = allIds
275
+ .map(id => measure.querySelector(`[data-nav-id="${CSS.escape(id)}"]`))
276
+ .filter((el) => !!el);
277
+ // Reset measurement visibility.
278
+ itemEls.forEach(el => {
279
+ el.style.display = '';
280
+ });
281
+ if (measureMore) {
282
+ measureMore.style.display = 'none';
283
+ }
284
+ if (itemEls.length === 0) {
285
+ if (!this.overflowIds || this.overflowIds.length) {
286
+ this.overflowIds = [];
287
+ }
288
+ return;
289
+ }
290
+ const firstRowTop = Math.min(...itemEls.map(el => el.offsetTop));
291
+ const overflowSet = new Set();
292
+ // Pass 1: detect which items fall onto rows > 1 (without "More" in flow).
293
+ itemEls.forEach(el => {
294
+ const id = el.getAttribute('data-nav-id');
295
+ if (!id)
296
+ return;
297
+ if (el.offsetTop > firstRowTop)
298
+ overflowSet.add(id);
299
+ });
300
+ if (overflowSet.size === 0) {
301
+ if (!this.overflowIds || this.overflowIds.length) {
302
+ this.overflowIds = [];
303
+ }
304
+ return;
305
+ }
306
+ // Pass 2: show "More" and iteratively move items into overflow until "More" fits on row 1.
307
+ if (measureMore) {
308
+ measureMore.style.display = '';
309
+ }
310
+ // Hide currently overflowing items.
311
+ itemEls.forEach(el => {
312
+ const id = el.getAttribute('data-nav-id');
313
+ if (!id)
314
+ return;
315
+ if (overflowSet.has(id))
316
+ el.style.display = 'none';
317
+ });
318
+ const getVisibleItemEls = () => itemEls.filter(el => el.style.display !== 'none');
319
+ while (measureMore) {
320
+ const visible = getVisibleItemEls();
321
+ const rowTop = visible.length ? Math.min(...visible.map(el => el.offsetTop)) : 0;
322
+ if (measureMore.offsetTop <= rowTop)
323
+ break;
324
+ if (visible.length === 0)
325
+ break;
326
+ // Remove one last visible item and retry.
327
+ const last = visible[visible.length - 1];
328
+ const lastId = last.getAttribute('data-nav-id');
329
+ if (!lastId)
330
+ break;
331
+ last.style.display = 'none';
332
+ overflowSet.add(lastId);
333
+ }
334
+ const overflowIds = allIds.filter(id => overflowSet.has(id));
335
+ const same = overflowIds.length === this.overflowIds.length &&
336
+ overflowIds.every((v, i) => v === this.overflowIds[i]);
337
+ if (!same) {
338
+ this.overflowIds = overflowIds;
339
+ }
340
+ }
341
+ renderHorizontalMeasureItem(item, index) {
342
+ const id = this.getItemId(item, String(index));
343
+ const children = this.getChildItems(item);
344
+ const hasChildren = children.length > 0;
345
+ const setRef = (el) => {
346
+ if (el)
347
+ this.topItemEls.set(id, el);
348
+ };
349
+ if (!hasChildren) {
350
+ return (h("div", { class: "h-item", ref: setRef, "data-nav-id": id }, h("span", { class: "h-link" }, item.iconStart && (h("span", { class: "nav-icon", "aria-hidden": "true" }, item.iconStart)), h("span", { class: "h-label" }, item.label), item.iconEnd && (h("span", { class: "nav-icon nav-icon-end", "aria-hidden": "true" }, item.iconEnd)))));
351
+ }
352
+ return (h("div", { class: "h-item", ref: setRef, "data-nav-id": id }, h("span", { class: "h-trigger" }, h("span", { class: "h-link" }, item.iconStart && (h("span", { class: "nav-icon", "aria-hidden": "true" }, item.iconStart)), h("span", { class: "h-label" }, item.label)), h("span", { class: "h-submenu-toggle", "aria-hidden": "true" }, h("span", { class: "nav-chevron" }, "\u25BC")))));
353
+ }
354
+ renderVerticalList(items, { depth, pathPrefix, autoOpenIds, searchable, searchQuery, searchPlaceholder, emptyText, submenuId, }) {
355
+ const query = searchQuery ?? '';
356
+ const openFromSearch = autoOpenIds ?? new Set();
357
+ const filtered = query ? this.filterTree(items, query, pathPrefix, openFromSearch) : items;
358
+ return (h("div", { class: classnames('nav-vertical', { 'is-submenu': !!submenuId }) }, searchable && (h("div", { class: "nav-search" }, h("le-string-input", { mode: "default", class: "nav-search-input", placeholder: searchPlaceholder ?? 'Search...', value: query, onInput: (e) => submenuId ? this.handleSubmenuSearchInput(submenuId, e) : this.handleSearchInput(e) }))), filtered.length === 0 ? (h("div", { class: "nav-empty" }, emptyText ?? this.emptyText)) : (h("ul", { class: "nav-list", role: "tree" }, filtered.map((item, index) => {
359
+ const path = pathPrefix ? `${pathPrefix}.${index}` : String(index);
360
+ const id = this.getItemId(item, path);
361
+ const children = this.getChildItems(item);
362
+ const hasChildren = children.length > 0;
363
+ const open = hasChildren && (this.isOpen(item, id) || openFromSearch.has(id));
364
+ const paddingLeft = `calc(var(--le-nav-item-padding-x) + ${depth} * var(--le-spacing-4))`;
365
+ const TagType = item.href && !item.disabled ? 'a' : 'button';
366
+ const attrs = TagType === 'a'
367
+ ? { href: item.href, role: 'treeitem' }
368
+ : { type: 'button', role: 'treeitem' };
369
+ return (h("li", { class: classnames('nav-node', {
370
+ 'disabled': item.disabled,
371
+ 'selected': item.selected || (this.activeUrl && item.href === this.activeUrl),
372
+ open,
373
+ 'has-children': hasChildren,
374
+ }), key: id, role: "none" }, h("div", { class: "nav-row", style: { paddingLeft } }, hasChildren ? (h("button", { type: "button", class: "nav-toggle", "aria-label": open ? 'Collapse' : 'Expand', "aria-expanded": open ? 'true' : 'false', onClick: (e) => this.handleToggle(e, item, id), disabled: item.disabled }, h("le-icon", { name: "chevron-down", class: "nav-chevron", "aria-hidden": "true" }))) : (h("span", { class: "nav-toggle-spacer", "aria-hidden": "true" })), h(TagType, { class: "nav-item", ...attrs, "aria-disabled": item.disabled ? 'true' : undefined, onClick: (e) => {
375
+ // For buttons, also toggle if this is a purely structural node.
376
+ this.handleItemSelect(e, item, id);
377
+ if (!item.href && hasChildren && !item.disabled) {
378
+ this.handleToggle(e, item, id);
379
+ }
380
+ } }, item.iconStart && (h("span", { class: "nav-icon", "aria-hidden": "true" }, item.iconStart)), h("span", { class: "nav-text" }, h("span", { class: "nav-label" }, item.label), item.description && (h("span", { class: "nav-description" }, item.description))), item.iconEnd && (h("span", { class: "nav-icon nav-icon-end", "aria-hidden": "true" }, item.iconEnd)))), hasChildren && (h("le-collapse", { class: "nav-children", closed: !open, noFading: true, role: "group" }, this.renderVerticalList(children, {
381
+ depth: depth + 1,
382
+ pathPrefix: path,
383
+ autoOpenIds: openFromSearch,
384
+ })))));
385
+ })))));
386
+ }
387
+ renderHorizontalItem(item, index) {
388
+ const id = this.getItemId(item, String(index));
389
+ const children = this.getChildItems(item);
390
+ const hasChildren = children.length > 0;
391
+ if (!hasChildren) {
392
+ const TagType = item.href && !item.disabled ? 'a' : 'button';
393
+ const attrs = TagType === 'a'
394
+ ? { href: item.href, role: 'menuitem' }
395
+ : { type: 'button', role: 'menuitem' };
396
+ return (h("div", { class: "h-item" }, h(TagType, { class: classnames('h-link', {
397
+ disabled: item.disabled,
398
+ selected: item.selected || (this.activeUrl && item.href === this.activeUrl),
399
+ }), ...attrs, "aria-disabled": item.disabled ? 'true' : undefined, onClick: (e) => this.handleItemSelect(e, item, id) }, item.iconStart && (h("span", { class: "nav-icon", "aria-hidden": "true" }, item.iconStart)), h("span", { class: "h-label" }, item.label), item.iconEnd && (h("span", { class: "nav-icon nav-icon-end", "aria-hidden": "true" }, item.iconEnd)))));
400
+ }
401
+ const submenuId = id;
402
+ return (h("div", { class: "h-item" }, h("le-popover", { ref: el => {
403
+ if (el)
404
+ this.popoverRefs.set(submenuId, el);
405
+ }, mode: "default", showClose: false, closeOnClickOutside: true, closeOnEscape: true, position: "bottom", align: "start", minWidth: "240px" }, h("div", { slot: "trigger", class: classnames('h-trigger', {
406
+ disabled: item.disabled,
407
+ selected: item.selected || (this.activeUrl && item.href === this.activeUrl),
408
+ }), role: "menuitem", "aria-disabled": item.disabled ? 'true' : undefined, onClick: (e) => {
409
+ // Don’t let le-popover auto-toggle from its internal wrapper.
410
+ e.stopPropagation();
411
+ if (item.disabled)
412
+ return;
413
+ if (item.href) {
414
+ this.handleItemSelect(e, item, id);
415
+ }
416
+ else {
417
+ this.popoverRefs.get(submenuId)?.toggle();
418
+ }
419
+ } }, item.href ? (h("a", { class: "h-link", href: item.href, onClick: (e) => {
420
+ e.stopPropagation();
421
+ this.handleItemSelect(e, item, id);
422
+ } }, item.iconStart && (h("span", { class: "nav-icon", "aria-hidden": "true" }, item.iconStart)), h("span", { class: "h-label" }, item.label))) : (h("button", { type: "button", class: "h-link", onClick: (e) => {
423
+ e.stopPropagation();
424
+ if (item.disabled)
425
+ return;
426
+ this.popoverRefs.get(submenuId)?.toggle();
427
+ } }, item.iconStart && (h("span", { class: "nav-icon", "aria-hidden": "true" }, item.iconStart)), h("span", { class: "h-label" }, item.label))), h("button", { type: "button", class: "h-submenu-toggle", "aria-label": "Open submenu", onClick: (e) => {
428
+ e.preventDefault();
429
+ e.stopPropagation();
430
+ if (item.disabled)
431
+ return;
432
+ this.popoverRefs.get(submenuId)?.toggle();
433
+ } }, h("span", { class: "nav-chevron", "aria-hidden": "true" }, h("le-icon", { name: "chevron-down" })))), h("div", { class: "popover-menu" }, this.renderVerticalList(children, {
434
+ depth: 0,
435
+ pathPrefix: String(index),
436
+ searchable: this.submenuSearchable,
437
+ searchQuery: this.submenuQueries[submenuId] ?? '',
438
+ searchPlaceholder: this.searchPlaceholder,
439
+ emptyText: this.emptyText,
440
+ submenuId,
441
+ })))));
442
+ }
443
+ renderHorizontal() {
444
+ const items = this.parsedItems;
445
+ const overflowSet = new Set(this.overflowIds);
446
+ const overflowItems = [];
447
+ items.forEach((item, index) => {
448
+ const id = this.getItemId(item, String(index));
449
+ if (!this.wrap && this.overflowMode === 'more' && overflowSet.has(id)) {
450
+ overflowItems.push(item);
451
+ }
452
+ });
453
+ // Hamburger mode: show a single trigger if anything overflows.
454
+ if (!this.wrap && this.overflowMode === 'hamburger' && this.hamburgerActive) {
455
+ return (h("div", { class: "nav-horizontal-shell" }, h("div", { class: "nav-horizontal-measure", "aria-hidden": "true", ref: el => {
456
+ this.measureEl = el;
457
+ } }, items.map((item, index) => this.renderHorizontalMeasureItem(item, index)), h("div", { class: "h-item", ref: el => {
458
+ this.measureMoreEl = el;
459
+ } }, h("button", { type: "button", class: "overflow-trigger" }, "More"))), h("div", { class: "nav-horizontal", ref: el => {
460
+ this.navContainerEl = el;
461
+ this.setupResizeObserver();
462
+ this.observeContainer(this.navContainerEl);
463
+ } }, h("le-popover", { mode: "default", showClose: false, closeOnClickOutside: true, closeOnEscape: true, position: "bottom", align: "end", minWidth: "260px" }, h("button", { slot: "trigger", type: "button", class: "overflow-trigger", "aria-label": "Open menu" }, "\u2630"), h("div", { class: "popover-menu" }, this.renderVerticalList(items, { depth: 0, pathPrefix: '' }))))));
464
+ }
465
+ const showMore = !this.wrap && this.overflowMode === 'more' && overflowItems.length > 0;
466
+ return (h("div", { class: "nav-horizontal-shell", role: "menubar" }, h("div", { class: "nav-horizontal-measure", "aria-hidden": "true", ref: el => {
467
+ this.measureEl = el;
468
+ } }, items.map((item, index) => this.renderHorizontalMeasureItem(item, index)), h("div", { class: "h-item", ref: el => {
469
+ this.measureMoreEl = el;
470
+ } }, h("button", { type: "button", class: "overflow-trigger" }, "More"))), h("div", { class: classnames('nav-horizontal', {
471
+ wrap: this.wrap,
472
+ nowrap: !this.wrap,
473
+ }), ref: el => {
474
+ this.navContainerEl = el;
475
+ this.setupResizeObserver();
476
+ this.observeContainer(this.navContainerEl);
477
+ } }, items.map((item, index) => {
478
+ const id = this.getItemId(item, String(index));
479
+ const isOverflow = !this.wrap && this.overflowMode === 'more' && overflowSet.has(id);
480
+ if (isOverflow)
481
+ return null;
482
+ return this.renderHorizontalItem(item, index);
483
+ }), h("div", { class: classnames('more-trigger-wrap', {
484
+ 'is-visible': showMore,
485
+ 'is-measure': !showMore,
486
+ }) }, h("le-popover", { mode: "default", position: "bottom", align: "end", minWidth: "260px", showClose: false }, h("button", { slot: "trigger", type: "button", class: "overflow-trigger", "aria-label": "More" }, "More"), h("div", { class: "popover-menu" }, this.renderVerticalList(overflowItems, { depth: 0, pathPrefix: '' })))))));
487
+ }
488
+ render() {
489
+ const items = this.parsedItems;
490
+ if (this.orientation === 'horizontal') {
491
+ return (h(Host, null, h("le-component", { component: "le-navigation" }, this.renderHorizontal())));
492
+ }
493
+ return (h(Host, null, h("le-component", { component: "le-navigation" }, this.renderVerticalList(items, {
494
+ depth: 0,
495
+ pathPrefix: '',
496
+ searchable: this.searchable,
497
+ searchQuery: this.searchQuery,
498
+ searchPlaceholder: this.searchPlaceholder,
499
+ emptyText: this.emptyText,
500
+ }))));
501
+ }
502
+ static get watchers() { return {
503
+ "items": ["handleLayoutInputsChange"],
504
+ "orientation": ["handleLayoutInputsChange"],
505
+ "wrap": ["handleLayoutInputsChange"],
506
+ "overflowMode": ["handleLayoutInputsChange"]
507
+ }; }
508
+ static get style() { return leNavigationCss(); }
509
+ }, [769, "le-navigation", {
510
+ "items": [1],
511
+ "orientation": [513],
512
+ "wrap": [516],
513
+ "overflowMode": [513, "overflow-mode"],
514
+ "activeUrl": [1, "active-url"],
515
+ "searchable": [4],
516
+ "searchPlaceholder": [1, "search-placeholder"],
517
+ "emptyText": [1, "empty-text"],
518
+ "submenuSearchable": [4, "submenu-searchable"],
519
+ "searchQuery": [32],
520
+ "openState": [32],
521
+ "overflowIds": [32],
522
+ "hamburgerActive": [32],
523
+ "submenuQueries": [32]
524
+ }, undefined, {
525
+ "items": ["handleLayoutInputsChange"],
526
+ "orientation": ["handleLayoutInputsChange"],
527
+ "wrap": ["handleLayoutInputsChange"],
528
+ "overflowMode": ["handleLayoutInputsChange"]
529
+ }]);
530
+ function defineCustomElement$1() {
531
+ if (typeof customElements === "undefined") {
532
+ return;
533
+ }
534
+ const components = ["le-navigation", "le-button", "le-checkbox", "le-collapse", "le-component", "le-dropdown-base", "le-icon", "le-popover", "le-popup", "le-select", "le-slot", "le-string-input"];
535
+ components.forEach(tagName => { switch (tagName) {
536
+ case "le-navigation":
537
+ if (!customElements.get(transformTag(tagName))) {
538
+ customElements.define(transformTag(tagName), LeNavigation$1);
539
+ }
540
+ break;
541
+ case "le-button":
542
+ if (!customElements.get(transformTag(tagName))) {
543
+ defineCustomElement$c();
544
+ }
545
+ break;
546
+ case "le-checkbox":
547
+ if (!customElements.get(transformTag(tagName))) {
548
+ defineCustomElement$b();
549
+ }
550
+ break;
551
+ case "le-collapse":
552
+ if (!customElements.get(transformTag(tagName))) {
553
+ defineCustomElement$a();
554
+ }
555
+ break;
556
+ case "le-component":
557
+ if (!customElements.get(transformTag(tagName))) {
558
+ defineCustomElement$9();
559
+ }
560
+ break;
561
+ case "le-dropdown-base":
562
+ if (!customElements.get(transformTag(tagName))) {
563
+ defineCustomElement$8();
564
+ }
565
+ break;
566
+ case "le-icon":
567
+ if (!customElements.get(transformTag(tagName))) {
568
+ defineCustomElement$7();
569
+ }
570
+ break;
571
+ case "le-popover":
572
+ if (!customElements.get(transformTag(tagName))) {
573
+ defineCustomElement$6();
574
+ }
575
+ break;
576
+ case "le-popup":
577
+ if (!customElements.get(transformTag(tagName))) {
578
+ defineCustomElement$5();
579
+ }
580
+ break;
581
+ case "le-select":
582
+ if (!customElements.get(transformTag(tagName))) {
583
+ defineCustomElement$4();
584
+ }
585
+ break;
586
+ case "le-slot":
587
+ if (!customElements.get(transformTag(tagName))) {
588
+ defineCustomElement$3();
589
+ }
590
+ break;
591
+ case "le-string-input":
592
+ if (!customElements.get(transformTag(tagName))) {
593
+ defineCustomElement$2();
594
+ }
595
+ break;
596
+ } });
597
+ }
598
+
599
+ const LeNavigation = LeNavigation$1;
600
+ const defineCustomElement = defineCustomElement$1;
601
+
602
+ export { LeNavigation, defineCustomElement };
603
+ //# sourceMappingURL=le-navigation.js.map
604
+
605
+ //# sourceMappingURL=le-navigation.js.map