le-kit 0.3.2 → 0.3.4

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 (128) hide show
  1. package/dist/cjs/{index-CNRmviSz.js → index-BPF04Jvb.js} +30 -19
  2. package/dist/cjs/index-BPF04Jvb.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +3 -2
  4. package/dist/cjs/index.cjs.js.map +1 -1
  5. package/dist/cjs/le-bar_16.cjs.entry.js +20 -6
  6. package/dist/cjs/le-box.cjs.entry.js +2 -2
  7. package/dist/cjs/le-card.cjs.entry.js +2 -2
  8. package/dist/cjs/le-combobox.cjs.entry.js +1 -1
  9. package/dist/cjs/le-header-placeholder.cjs.entry.js +1 -1
  10. package/dist/cjs/le-kit.cjs.js +1 -1
  11. package/dist/cjs/le-multiselect.cjs.entry.js +1 -1
  12. package/dist/cjs/le-number-input.cjs.entry.js +2 -2
  13. package/dist/cjs/le-round-progress.cjs.entry.js +1 -1
  14. package/dist/cjs/le-segmented-control.cjs.entry.js +1 -1
  15. package/dist/cjs/le-stack.cjs.entry.js +2 -2
  16. package/dist/cjs/le-tab-bar.cjs.entry.js +1 -1
  17. package/dist/cjs/le-tab-panel.cjs.entry.js +1 -1
  18. package/dist/cjs/le-tab.cjs.entry.js +2 -2
  19. package/dist/cjs/le-tabs.cjs.entry.js +2 -2
  20. package/dist/cjs/le-tag.cjs.entry.js +1 -1
  21. package/dist/cjs/le-text.cjs.entry.js +2 -2
  22. package/dist/cjs/le-turntable.cjs.entry.js +1 -1
  23. package/dist/cjs/loader.cjs.js +1 -1
  24. package/dist/cjs/{utils-CZG22_vQ.js → utils-BYsLPHN1.js} +3 -3
  25. package/dist/cjs/{utils-CZG22_vQ.js.map → utils-BYsLPHN1.js.map} +1 -1
  26. package/dist/collection/components/le-icon/le-icon.js +19 -4
  27. package/dist/collection/components/le-icon/le-icon.js.map +1 -1
  28. package/dist/collection/dist/components/assets/custom-elements.json +825 -825
  29. package/dist/collection/global/app.js +27 -17
  30. package/dist/collection/global/app.js.map +1 -1
  31. package/dist/collection/index.js +1 -1
  32. package/dist/collection/index.js.map +1 -1
  33. package/dist/components/app.js +180 -0
  34. package/dist/components/app.js.map +1 -0
  35. package/dist/components/assets/custom-elements.json +825 -825
  36. package/dist/components/index.js +3 -2
  37. package/dist/components/index.js.map +1 -1
  38. package/dist/components/le-bar2.js +1 -1
  39. package/dist/components/le-box.js +1 -1
  40. package/dist/components/le-button2.js +2 -1
  41. package/dist/components/le-button2.js.map +1 -1
  42. package/dist/components/le-card.js +1 -1
  43. package/dist/components/le-header.js +1 -1
  44. package/dist/components/le-icon2.js +19 -4
  45. package/dist/components/le-icon2.js.map +1 -1
  46. package/dist/components/le-navigation.js +1 -1
  47. package/dist/components/le-number-input.js +1 -1
  48. package/dist/components/le-popover2.js +1 -1
  49. package/dist/components/le-stack.js +1 -1
  50. package/dist/components/le-tab2.js +1 -1
  51. package/dist/components/le-tabs.js +1 -1
  52. package/dist/components/utils.js +2 -166
  53. package/dist/components/utils.js.map +1 -1
  54. package/dist/docs.json +1 -1
  55. package/dist/esm/{index-BqH-zsXr.js → index-C-Chwj1b.js} +30 -20
  56. package/dist/esm/index-C-Chwj1b.js.map +1 -0
  57. package/dist/esm/index.js +2 -2
  58. package/dist/esm/le-bar_16.entry.js +20 -6
  59. package/dist/esm/le-box.entry.js +2 -2
  60. package/dist/esm/le-card.entry.js +2 -2
  61. package/dist/esm/le-combobox.entry.js +1 -1
  62. package/dist/esm/le-header-placeholder.entry.js +1 -1
  63. package/dist/esm/le-kit.js +2 -2
  64. package/dist/esm/le-multiselect.entry.js +1 -1
  65. package/dist/esm/le-number-input.entry.js +2 -2
  66. package/dist/esm/le-round-progress.entry.js +1 -1
  67. package/dist/esm/le-segmented-control.entry.js +1 -1
  68. package/dist/esm/le-stack.entry.js +2 -2
  69. package/dist/esm/le-tab-bar.entry.js +1 -1
  70. package/dist/esm/le-tab-panel.entry.js +1 -1
  71. package/dist/esm/le-tab.entry.js +2 -2
  72. package/dist/esm/le-tabs.entry.js +2 -2
  73. package/dist/esm/le-tag.entry.js +1 -1
  74. package/dist/esm/le-text.entry.js +2 -2
  75. package/dist/esm/le-turntable.entry.js +1 -1
  76. package/dist/esm/loader.js +2 -2
  77. package/dist/esm/{utils-CdBk0DdF.js → utils-B3alHV04.js} +3 -3
  78. package/dist/esm/{utils-CdBk0DdF.js.map → utils-B3alHV04.js.map} +1 -1
  79. package/dist/le-kit/dist/components/assets/custom-elements.json +825 -825
  80. package/dist/le-kit/index.esm.js +1 -1
  81. package/dist/le-kit/le-kit.esm.js +1 -1
  82. package/dist/le-kit/{p-0a270831.entry.js → p-05ccab91.entry.js} +2 -2
  83. package/dist/le-kit/{p-ebd86d4f.entry.js → p-06d2d79c.entry.js} +2 -2
  84. package/dist/le-kit/{p-764005e3.entry.js → p-2230ecd7.entry.js} +2 -2
  85. package/dist/le-kit/{p-b21277e8.entry.js → p-33c2168a.entry.js} +2 -2
  86. package/dist/le-kit/{p-249db213.entry.js → p-3d22aeb2.entry.js} +2 -2
  87. package/dist/le-kit/{p-3a0a57e9.entry.js → p-3d873cdb.entry.js} +2 -2
  88. package/dist/le-kit/{p-ac822433.entry.js → p-4a45ff67.entry.js} +2 -2
  89. package/dist/le-kit/{p-43f87acb.entry.js → p-5d72c894.entry.js} +2 -2
  90. package/dist/le-kit/{p-b6997587.entry.js → p-68d836a3.entry.js} +2 -2
  91. package/dist/le-kit/{p-6d0090c1.entry.js → p-923828fe.entry.js} +2 -2
  92. package/dist/le-kit/p-9880466c.entry.js +2 -0
  93. package/dist/le-kit/p-9880466c.entry.js.map +1 -0
  94. package/dist/le-kit/p-C-Chwj1b.js +3 -0
  95. package/dist/le-kit/p-C-Chwj1b.js.map +1 -0
  96. package/dist/le-kit/{p-VG5nXRzT.js → p-DFr88Szp.js} +2 -2
  97. package/dist/le-kit/{p-VG5nXRzT.js.map → p-DFr88Szp.js.map} +1 -1
  98. package/dist/le-kit/{p-244ff3d7.entry.js → p-be2a7276.entry.js} +2 -2
  99. package/dist/le-kit/{p-61edb398.entry.js → p-d161946c.entry.js} +2 -2
  100. package/dist/le-kit/{p-c0ccc9aa.entry.js → p-e1846fc2.entry.js} +2 -2
  101. package/dist/le-kit/{p-07705c61.entry.js → p-e6b2cf9a.entry.js} +2 -2
  102. package/dist/le-kit/{p-4b88b0da.entry.js → p-ea71f22c.entry.js} +2 -2
  103. package/dist/le-kit/{p-73f7de28.entry.js → p-f8034500.entry.js} +2 -2
  104. package/dist/types/global/app.d.ts +29 -6
  105. package/dist/types/index.d.ts +1 -1
  106. package/package.json +1 -1
  107. package/dist/cjs/index-CNRmviSz.js.map +0 -1
  108. package/dist/esm/index-BqH-zsXr.js.map +0 -1
  109. package/dist/le-kit/p-BqH-zsXr.js +0 -3
  110. package/dist/le-kit/p-BqH-zsXr.js.map +0 -1
  111. package/dist/le-kit/p-dea78542.entry.js +0 -2
  112. package/dist/le-kit/p-dea78542.entry.js.map +0 -1
  113. /package/dist/le-kit/{p-0a270831.entry.js.map → p-05ccab91.entry.js.map} +0 -0
  114. /package/dist/le-kit/{p-ebd86d4f.entry.js.map → p-06d2d79c.entry.js.map} +0 -0
  115. /package/dist/le-kit/{p-764005e3.entry.js.map → p-2230ecd7.entry.js.map} +0 -0
  116. /package/dist/le-kit/{p-b21277e8.entry.js.map → p-33c2168a.entry.js.map} +0 -0
  117. /package/dist/le-kit/{p-249db213.entry.js.map → p-3d22aeb2.entry.js.map} +0 -0
  118. /package/dist/le-kit/{p-3a0a57e9.entry.js.map → p-3d873cdb.entry.js.map} +0 -0
  119. /package/dist/le-kit/{p-ac822433.entry.js.map → p-4a45ff67.entry.js.map} +0 -0
  120. /package/dist/le-kit/{p-43f87acb.entry.js.map → p-5d72c894.entry.js.map} +0 -0
  121. /package/dist/le-kit/{p-b6997587.entry.js.map → p-68d836a3.entry.js.map} +0 -0
  122. /package/dist/le-kit/{p-6d0090c1.entry.js.map → p-923828fe.entry.js.map} +0 -0
  123. /package/dist/le-kit/{p-244ff3d7.entry.js.map → p-be2a7276.entry.js.map} +0 -0
  124. /package/dist/le-kit/{p-61edb398.entry.js.map → p-d161946c.entry.js.map} +0 -0
  125. /package/dist/le-kit/{p-c0ccc9aa.entry.js.map → p-e1846fc2.entry.js.map} +0 -0
  126. /package/dist/le-kit/{p-07705c61.entry.js.map → p-e6b2cf9a.entry.js.map} +0 -0
  127. /package/dist/le-kit/{p-4b88b0da.entry.js.map → p-ea71f22c.entry.js.map} +0 -0
  128. /package/dist/le-kit/{p-73f7de28.entry.js.map → p-f8034500.entry.js.map} +0 -0
package/dist/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
- export { g as generateId, p as parseCommaSeparated, s as slotHasContent } from './utils-CdBk0DdF.js';
2
- export { m as configureLeKit, f as getLeKitConfig, a as getMode, k as getTheme, i as setAssetPath, j as setGlobalMode, l as setGlobalTheme } from './index-BqH-zsXr.js';
1
+ export { g as generateId, p as parseCommaSeparated, s as slotHasContent } from './utils-B3alHV04.js';
2
+ export { n as configureLeKit, i as getAssetBasePath, e as getLeKitConfig, a as getMode, l as getTheme, j as setAssetPath, k as setGlobalMode, m as setGlobalTheme } from './index-C-Chwj1b.js';
3
3
 
4
4
  /**
5
5
  * Programmatic API for le-popup component
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, d as createEvent, c as getElement, h, H as Host, F as Fragment, e as getAssetPath, f as getLeKitConfig } from './index-BqH-zsXr.js';
2
- import { g as generateId, c as classnames, o as observeModeChanges } from './utils-CdBk0DdF.js';
1
+ import { r as registerInstance, d as createEvent, c as getElement, h, H as Host, F as Fragment, e as getLeKitConfig, f as getAssetPath, i as getAssetBasePath } from './index-C-Chwj1b.js';
2
+ import { g as generateId, c as classnames, o as observeModeChanges } from './utils-B3alHV04.js';
3
3
  import { leConfirm } from './index.js';
4
4
 
5
5
  const leBarCss = () => `:host{display:block;--le-bar-gap:var(--le-spacing-2);--le-bar-padding:var(--le-spacing-2);--le-bar-min-height:2.5rem;--le-bar-background:transparent;--le-bar-border-color:var(--le-color-border);--le-bar-border-radius:var(--le-radius-md);--le-bar-button-size:2rem;--le-bar-button-color:var(--le-color-text-primary);--le-bar-button-hover-bg:var(--le-color-gray-100);--le-bar-button-border-radius:var(--le-radius-sm);--le-bar-arrow-size:1.5rem;--le-bar-popover-min-width:200px;--le-bar-popover-gap:var(--le-spacing-1)}.bar-container{display:flex;align-items:center;gap:var(--le-bar-gap);min-height:var(--le-bar-min-height);background:var(--le-bar-background);border-radius:var(--le-bar-border-radius);padding:var(--le-bar-padding)}.bar-container.align-start{justify-content:flex-start}.bar-container.align-end .bar-items{justify-content:flex-end}.bar-container.align-center .bar-items{justify-content:center}.bar-container.align-stretch .bar-items{justify-content:space-evenly}.bar-items{display:flex;flex-wrap:wrap;align-items:center;gap:var(--le-bar-gap);overflow:hidden;min-width:0;flex:1 1 0%;position:relative}.bar-items[style*="height"]{overflow:hidden}.bar-items.is-scrollable{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.bar-items.is-scrollable::-webkit-scrollbar{display:none}.bar-items.is-scrollable ::slotted(*){scroll-snap-align:start;flex-shrink:0}.bar-items.is-wrapping{flex-wrap:wrap;overflow:visible;height:auto !important}.bar-controls{display:flex;align-items:center;gap:var(--le-spacing-1);flex-shrink:0}.bar-controls-start{order:-1}.bar-controls-end{order:1}.bar-more-button,.bar-hamburger-button,.bar-all-menu-button{display:inline-flex;align-items:center;justify-content:center;width:var(--le-bar-button-size);height:var(--le-bar-button-size);padding:0;border:none;background:transparent;color:var(--le-bar-button-color);border-radius:var(--le-bar-button-border-radius);cursor:pointer;transition:background-color 0.15s ease}.bar-more-button:hover,.bar-hamburger-button:hover,.bar-all-menu-button:hover{background:var(--le-bar-button-hover-bg)}.bar-more-button:focus-visible,.bar-hamburger-button:focus-visible,.bar-all-menu-button:focus-visible{outline:2px solid var(--le-color-focus);outline-offset:2px}.bar-arrow{display:inline-flex;align-items:center;justify-content:center;width:var(--le-bar-arrow-size);height:var(--le-bar-arrow-size);padding:0;border:none;background:transparent;color:var(--le-bar-button-color);border-radius:var(--le-bar-button-border-radius);cursor:pointer;transition:background-color 0.15s ease, opacity 0.15s ease}.bar-arrow:hover:not(:disabled){background:var(--le-bar-button-hover-bg)}.bar-arrow:focus-visible{outline:2px solid var(--le-color-focus);outline-offset:2px}.bar-arrow:disabled,.bar-arrow.disabled{opacity:0.3;cursor:not-allowed}.arrow-icon-start{transform:rotate(90deg)}.arrow-icon-end{transform:rotate(-90deg)}.bar-overflow-trigger,.bar-all-menu-trigger{display:inline-flex}.bar-popover-content{display:flex;flex-direction:column;gap:var(--le-bar-popover-gap);min-width:var(--le-bar-popover-min-width);padding:var(--le-spacing-2)}.bar-popover-item{cursor:pointer}.bar-popover-item:hover{background:var(--le-bar-button-hover-bg);border-radius:var(--le-bar-button-border-radius)}:host(.hamburger-active) .bar-items{visibility:hidden;pointer-events:none}`;
@@ -1578,16 +1578,30 @@ const leIconCss = () => `:host{display:inline-block;width:var(--le-icon-size, va
1578
1578
 
1579
1579
  const iconCache = {};
1580
1580
  const requestCache = {};
1581
+ /**
1582
+ * Get the URL for loading an icon.
1583
+ * Uses configurable assetBasePath if set, otherwise falls back to Stencil's getAssetPath.
1584
+ */
1585
+ function getIconUrl(name) {
1586
+ const basePath = getAssetBasePath();
1587
+ if (basePath) {
1588
+ // Use configured base path - normalize by removing trailing slash
1589
+ const normalizedBase = basePath.endsWith('/') ? basePath.slice(0, -1) : basePath;
1590
+ return `${normalizedBase}/icons/${name}.json`;
1591
+ }
1592
+ // Fall back to Stencil's getAssetPath for local development
1593
+ return getAssetPath(`./assets/icons/${name}.json`);
1594
+ }
1581
1595
  async function fetchIcon({ name }) {
1582
1596
  if (iconCache[name]) {
1583
1597
  return iconCache[name];
1584
1598
  }
1585
1599
  if (!requestCache[name]) {
1586
- console.log(`Fetching icon "${name}"`, getAssetPath(`./assets/icons/${name}.json`));
1587
- requestCache[name] = fetch(getAssetPath(`./assets/icons/${name}.json`))
1600
+ const iconUrl = getIconUrl(name);
1601
+ requestCache[name] = fetch(iconUrl)
1588
1602
  .then(resp => resp.json())
1589
1603
  .catch(() => {
1590
- console.error(`"${name}" is not a valid name`);
1604
+ console.error(`Icon "${name}" could not be loaded from: ${iconUrl}`);
1591
1605
  return '';
1592
1606
  });
1593
1607
  }
@@ -1669,7 +1683,7 @@ const LeIcon = class {
1669
1683
  return svgElements;
1670
1684
  }
1671
1685
  render() {
1672
- return (h("svg", { key: 'ef551908a289cd765ae88ded83b99057d510e142', xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", height: this.size || 16, width: this.size || 16, viewBox: this.iconData?.viewBox || `0 0 ${this.size || 16} ${this.size || 16}` }, this.renderSVGContent(this.iconData?.children)));
1686
+ return (h("svg", { key: '0518b0d454e3f3f171413a8b7f03ea89f6f48c0b', xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", height: this.size || 16, width: this.size || 16, viewBox: this.iconData?.viewBox || `0 0 ${this.size || 16} ${this.size || 16}` }, this.renderSVGContent(this.iconData?.children)));
1673
1687
  }
1674
1688
  static get assetsDirs() { return ["assets/icons"]; }
1675
1689
  static get watchers() { return {
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, c as getElement, h, H as Host } from './index-BqH-zsXr.js';
2
- import { c as classnames } from './utils-CdBk0DdF.js';
1
+ import { r as registerInstance, c as getElement, h, H as Host } from './index-C-Chwj1b.js';
2
+ import { c as classnames } from './utils-B3alHV04.js';
3
3
 
4
4
  const leBoxDefaultCss = () => `:host{display:block;box-sizing:border-box}:host([hidden]){display:none}.box{width:100%;height:100%;box-sizing:border-box}.content{width:100%;height:100%;box-sizing:border-box;background:var(--le-box-bg, transparent);border-radius:var(--le-box-border-radius, 0);padding:var(--le-box-padding, 0)}:host(.display-flex) .content{min-height:100%}`;
5
5
 
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, c as getElement, h } from './index-BqH-zsXr.js';
2
- import { c as classnames } from './utils-CdBk0DdF.js';
1
+ import { r as registerInstance, c as getElement, h } from './index-C-Chwj1b.js';
2
+ import { c as classnames } from './utils-B3alHV04.js';
3
3
 
4
4
  const leCardDefaultCss = () => `:host{display:block;--le-card-bg:var(--le-color-surface);--le-card-border-radius:var(--le-radius-lg);--le-card-shadow:var(--le-shadow-md);--le-card-shadow-elevated:var(--le-shadow-lg);--le-card-shadow-hover:var(--le-shadow-xl);--le-card-padding:var(--le-space-md);--le-card-border-color:var(--le-color-border);--le-card-transition:var(--le-transition-normal)}.card{background:var(--le-card-bg);border-radius:var(--le-card-border-radius);overflow:hidden;color:var(--le-color-text);box-shadow:var(--le-card-shadow)}:host>le-component.variant-outlined .card{border:1px solid var(--le-card-border-color);box-shadow:none}:host>le-component.variant-elevated .card{box-shadow:var(--le-card-shadow-elevated)}:host>le-component.interactive .card{cursor:pointer;transition:transform var(--le-card-transition), box-shadow var(--le-card-transition)}:host>le-component.interactive .card:hover{transform:translateY(-2px);box-shadow:var(--le-card-shadow-hover)}:host>le-component.interactive .card:focus-visible{outline:2px solid var(--le-color-border-focus);outline-offset:2px}.card-header{padding:var(--le-card-padding);padding-bottom:0}.card-header:empty{display:none}.card-content{padding:var(--le-card-padding)}.card-footer{padding:var(--le-card-padding);padding-top:0}.card-footer:empty{display:none}`;
5
5
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, d as createEvent, c as getElement, h } from './index-BqH-zsXr.js';
1
+ import { r as registerInstance, d as createEvent, c as getElement, h } from './index-C-Chwj1b.js';
2
2
 
3
3
  const leComboboxCss = () => `:host{display:inline-block;min-width:200px;--le-combobox-border-color:var(--le-color-primary, #3b82f6)}:host([disabled]){opacity:0.5;pointer-events:none}:host([full-width]){width:100%}.combobox-trigger{display:flex;align-items:center;width:100%;background:var(--le-combobox-bg, var(--le-color-surface, #fff));border:1px solid color-mix(in srgb, var(--le-combobox-border-color) 33%, transparent);border-radius:var(--le-combobox-border-radius, 0.375rem);transition:border-color 0.15s ease, box-shadow 0.15s ease}.combobox-trigger:hover:not(.is-disabled),:host(:focus-within) .combobox-trigger:not(.is-disabled){border-color:var(--le-combobox-border-color)}.combobox-trigger:focus-within{outline:2px solid var(--le-color-focus);outline-offset:2px}.combobox-trigger.is-open{border-color:var(--le-color-primary, #3b82f6)}.combobox-input{flex:1;border:none;outline:none}.combobox-input::part(container){border:none}.combobox-input::part(container):focus-within{outline:none !important}.combobox-input::placeholder{color:color-mix(in srgb, var(--le-color-text-secondary) 66%, transparent)}.combobox-trigger.is-disabled{cursor:not-allowed;background:var(--le-color-surface-disabled, #f9fafb)}.combobox-input:disabled{cursor:not-allowed}.combobox-clear{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;margin-right:0.25rem;color:var(--le-color-primary, #3b82f6);background:transparent;border:none;border-radius:0.25rem;cursor:pointer;opacity:0.6;transition:opacity 0.15s ease, background-color 0.15s ease}.combobox-clear:hover{opacity:1;background:var(--le-color-surface-hover, #f3f4f6)}.combobox-clear svg{width:0.875rem;height:0.875rem}.combobox-arrow{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:100%;color:var(--le-color-primary, #3b82f6);transition:transform 0.2s ease}.combobox-arrow svg{width:1rem;height:1rem}.combobox-trigger.is-open .combobox-arrow{transform:rotate(180deg)}:host([size='small']) .combobox-trigger{--le-combobox-height:2rem}:host([size='small']) .combobox-input{--le-combobox-padding-x:0.5rem;--le-combobox-font-size:0.75rem}:host([size='large']) .combobox-trigger{--le-combobox-height:3rem}:host([size='large']) .combobox-input{--le-combobox-padding-x:1rem;--le-combobox-font-size:1rem}`;
4
4
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, H as Host } from './index-BqH-zsXr.js';
1
+ import { r as registerInstance, h, H as Host } from './index-C-Chwj1b.js';
2
2
 
3
3
  const LeHeaderPlaceholder = class {
4
4
  constructor(hostRef) {
@@ -1,5 +1,5 @@
1
- import { p as promiseResolve, g as globalScripts, b as bootstrapLazy } from './index-BqH-zsXr.js';
2
- export { s as setNonce } from './index-BqH-zsXr.js';
1
+ import { p as promiseResolve, g as globalScripts, b as bootstrapLazy } from './index-C-Chwj1b.js';
2
+ export { s as setNonce } from './index-C-Chwj1b.js';
3
3
 
4
4
  /*
5
5
  Stencil Client Patch Browser v4.39.0 | MIT Licensed | https://stenciljs.com
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, d as createEvent, c as getElement, h } from './index-BqH-zsXr.js';
1
+ import { r as registerInstance, d as createEvent, c as getElement, h } from './index-C-Chwj1b.js';
2
2
 
3
3
  const leMultiselectCss = () => `:host{display:inline-block;min-width:250px;--le-multiselect-min-height:0;--le-multiselect-padding:var(--le-spacing-1) var(--le-spacing-1) var(--le-spacing-1) var(--le-spacing-2);--le-multiselect-border-color:var(--le-color-primary, #3b82f6)}:host([disabled]){opacity:0.5;pointer-events:none}.multiselect-trigger{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;width:100%;min-height:var(--le-multiselect-min-height);padding:var(--le-multiselect-padding);line-height:var(--le-line-height-tight);background:var(--le-multiselect-bg, var(--le-color-surface, #fff));border:1px solid color-mix(in srgb, var(--le-multiselect-border-color) 33%, transparent);border-radius:var(--le-multiselect-border-radius, 0.375rem);cursor:pointer;transition:border-color 0.15s ease, box-shadow 0.15s ease}.multiselect-trigger:hover:not(.is-disabled),:host(:focus-within) .multiselect-trigger:not(.is-disabled){border-color:var(--le-multiselect-border-color)}:host(:focus-within) .multiselect-trigger{outline:2px solid var(--le-color-focus);outline-offset:2px}:host([full-width]){width:100%}.multiselect-trigger.is-open{border-color:var(--le-color-primary, #3b82f6)}.multiselect-trigger.is-disabled{cursor:not-allowed;background:var(--le-color-surface-disabled, #f9fafb)}.multiselect-placeholder{color:color-mix(in srgb, var(--le-color-text-secondary) 66%, transparent)}.multiselect-tags{display:flex;flex-wrap:wrap;gap:0.25rem;flex:1;min-width:0}.multiselect-actions{display:flex;align-items:center;gap:0.25rem;flex-shrink:0}.multiselect-clear{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;background:transparent;color:var(--le-color-primary, #3b82f6);border:none;border-radius:0.25rem;cursor:pointer;opacity:0.6;transition:opacity 0.15s ease, background-color 0.15s ease}.multiselect-clear:hover{opacity:1;background:var(--le-color-surface-hover, #f3f4f6)}.multiselect-clear svg{width:0.875rem;height:0.875rem}.multiselect-arrow{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1rem;color:var(--le-color-primary, #3b82f6);transition:transform 0.2s ease}.multiselect-arrow svg{width:1rem;height:1rem}.multiselect-trigger.is-open .multiselect-arrow{transform:rotate(180deg)}.search-input::part(container):focus-within{outline:none !important}.search-input{--le-input-radius:var(--le-radius-md)}.multiselect-status{display:block;margin-top:0.25rem;font-size:0.75rem;color:var(--le-color-text-muted, #6b7280)}:host([size='small']) .multiselect-trigger{--le-multiselect-min-height:2rem;--le-multiselect-padding:0.25rem 0.375rem;--le-multiselect-font-size:0.75rem}:host([size='large']) .multiselect-trigger{--le-multiselect-min-height:3rem;--le-multiselect-padding:0.5rem 0.625rem;--le-multiselect-font-size:1rem}`;
4
4
 
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, d as createEvent, c as getElement, h } from './index-BqH-zsXr.js';
2
- import { c as classnames } from './utils-CdBk0DdF.js';
1
+ import { r as registerInstance, d as createEvent, c as getElement, h } from './index-C-Chwj1b.js';
2
+ import { c as classnames } from './utils-B3alHV04.js';
3
3
 
4
4
  const leNumberInputCss = () => `:host{display:block;--le-input-bg:var(--le-color-surface, #ffffff);--le-input-color:var(--le-color-text-primary, #333333);--le-input-border:var(--le-border-width, 2px) solid var(--le-color-border-input, #007bff);--le-input-radius:var(--le-radius-sm, 4px);--le-input-padding:2px 6px;--le-input-height:1.5rem;--le-input-label-color:var(--le-color-text-primary, #333333);--le-input-desc-color:var(--le-color-text-secondary, #666666);--le-input-placeholder-color:#999999;--le-input-border-error:2px solid var(--le-color-danger, #dc3545);--le-input-error-color:var(--le-color-danger, #dc3545)}.le-input-wrapper{display:flex;flex-direction:column;gap:2px}.le-input-label{display:block;font-size:0.9em;font-weight:500;color:var(--le-input-label-color);margin-bottom:2px}.le-input-container{position:relative;display:flex;align-items:center;background:var(--le-input-bg);border:var(--le-input-border);border-radius:var(--le-input-radius);transition:border-color 0.2s}.le-input-container:focus-within{outline:2px solid var(--le-color-focus);outline-offset:2px}.le-input-container.has-error{border:var(--le-input-border-error)}:host([disabled]) .le-input-container{opacity:0.6;background-color:rgba(0,0,0,0.05);cursor:not-allowed}input{flex:1;width:100%;height:calc(var(--le-input-height) - 2px);padding:var(--le-input-padding);border:none;background:transparent;color:var(--le-input-color);font-family:inherit;font-size:inherit;outline:none;text-align:right;-moz-appearance:textfield;}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input::placeholder{color:var(--le-input-placeholder-color)}.icon-start,.icon-end{display:flex;align-items:center;justify-content:center;padding:0 8px;color:var(--le-input-desc-color)}.le-input-controls{display:flex;flex-direction:column;border-left:1px solid var(--le-color-border, #cccccc);height:100%}.le-input-control-btn{--le-button-border-radius:0;--le-button-padding-x:0;--le-button-padding-y:0;--le-button-small-font-size:9.5px;--le-button-small-padding:0 0.2rem;--le-button-icon-aspect-ratio:2;display:flex;align-items:center;justify-content:center;height:50%;cursor:pointer;background:none;border:none;color:var(--le-input-desc-color);font-size:10px;line-height:1}.le-input-control-btn:hover{background-color:rgba(0,0,0,0.05);color:var(--le-color-primary, #007bff)}.le-input-control-btn:active{background-color:rgba(0,0,0,0.1)}.le-input-description{font-size:0.85em;color:var(--le-input-desc-color);margin-top:2px}.le-input-error{font-size:0.85em;color:var(--le-input-error-color);margin-top:2px}`;
5
5
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as getElement, h } from './index-BqH-zsXr.js';
1
+ import { r as registerInstance, c as getElement, h } from './index-C-Chwj1b.js';
2
2
 
3
3
  const leRoundProgressCss = () => `.round-progress--container{position:relative}.round-progress{position:absolute;top:0;left:0;right:0;bottom:0;display:block}.round-progress--progress{filter:drop-shadow(var(--progress-shadow))}.round-progress--circle{fill:none;stroke:var(--progress-color, #999);stroke-width:var(--progress-width, 4);stroke-linecap:var(--progress-linecap, round);animation:progress--circle 0.5s ease-out forwards;transition:stroke-dasharray 0.5s ease-out}@keyframes progress--circle{0%{stroke-dasharray:0 1000}}.round-progress--path{fill:none;stroke-linecap:round}`;
4
4
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, d as createEvent, c as getElement, h, H as Host } from './index-BqH-zsXr.js';
1
+ import { r as registerInstance, d as createEvent, c as getElement, h, H as Host } from './index-C-Chwj1b.js';
2
2
 
3
3
  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}`;
4
4
 
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, c as getElement, h } from './index-BqH-zsXr.js';
2
- import { c as classnames } from './utils-CdBk0DdF.js';
1
+ import { r as registerInstance, c as getElement, h } from './index-C-Chwj1b.js';
2
+ import { c as classnames } from './utils-B3alHV04.js';
3
3
 
4
4
  const leStackDefaultCss = () => `:host{display:block}:host([hidden]){display:none}.stack{gap:var(--le-stack-gap, var(--le-space-md))}:host(.full-width){width:100%}:host(.full-height){height:100%}:host(.direction-horizontal) .stack{min-height:0}:host(.direction-vertical) .stack{min-width:0}`;
5
5
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, d as createEvent, c as getElement, h, H as Host } from './index-BqH-zsXr.js';
1
+ import { r as registerInstance, d as createEvent, c as getElement, h, H as Host } from './index-C-Chwj1b.js';
2
2
 
3
3
  const leTabBarCss = () => `:host{display:block;--le-tab-bar-background:var(--le-color-surface);--le-tab-bar-border-color:var(--le-color-border);--le-tab-bar-gap:var(--le-spacing-2);--le-tab-bar-padding-y:var(--le-spacing-2);--le-tab-bar-padding-x:var(--le-spacing-1);background:var(--le-tab-bar-background);padding:var(--le-tab-bar-padding-y) var(--le-tab-bar-padding-x)}:host([full-width]){width:100%}:host(.bordered.position-top){border-bottom:1px solid var(--le-tab-bar-border-color)}:host(.bordered.position-bottom){border-top:1px solid var(--le-tab-bar-border-color)}.tablist{display:flex;flex-direction:row;align-items:flex-end;justify-content:space-around;gap:var(--le-tab-bar-gap, var(--le-spacing-1));width:100%}.tab{display:inline-flex;align-items:flex-start;justify-content:space-around;gap:var(--le-spacing-2);position:relative;background:transparent;border:none;cursor:pointer}.tab-disabled{opacity:0.5;cursor:not-allowed}.tab-icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;font-size:1.1em}.tab-icon img{width:100%;height:100%;object-fit:contain}.tab-description{font-size:var(--le-font-size-xs);font-weight:var(--le-font-weight-normal);color:var(--le-text-tertiary);margin-left:var(--le-spacing-1)}`;
4
4
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as getElement, h } from './index-BqH-zsXr.js';
1
+ import { r as registerInstance, c as getElement, h } from './index-C-Chwj1b.js';
2
2
 
3
3
  const leTabPanelCss = () => `:host{display:contents;--le-tab-panel-radius:var(--le-radius-md);--le-tab-panel-padding:var(--le-spacing-4)}.tab-panel{margin-top:4px;display:none;border-radius:var(--le-tab-panel-radius);padding:var(--le-tab-panel-padding)}.tab-panel.active{display:block}.tab-panel:focus-visible{outline:2px solid var(--le-color-focus);outline-offset:2px}.tab-panel.lazy-hidden{display:none}`;
4
4
 
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, d as createEvent, c as getElement, h, F as Fragment, H as Host } from './index-BqH-zsXr.js';
2
- import { c as classnames } from './utils-CdBk0DdF.js';
1
+ import { r as registerInstance, d as createEvent, c as getElement, h, F as Fragment, H as Host } from './index-C-Chwj1b.js';
2
+ import { c as classnames } from './utils-B3alHV04.js';
3
3
 
4
4
  const leTabCss = () => `:host{display:inline-block;--le-tab-border-radius:var(--le-radius-md);--le-tab-padding-x:var(--le-spacing-4);--le-tab-padding-y:var(--le-spacing-2);--le-tab-padding:var(--le-tab-padding-y) var(--le-tab-padding-x);--le-tab-small-padding:0.25rem;--le-tab-font-size:var(--le-font-size-md);--le-tab-font-weight:var(--le-font-weight-medium);--le-tab-transition:var(--le-transition-fast);--le-transition-easing:ease-in-out;--le-tab-icon-aspect-ratio:1;--le-tab-icon-only-aspect-ratio:2.5;--le-tab-color:var(--le-color-text-primary);--le-selected-tab-color:var(--le-color-primary);--le-selected-icon-only-tab-background:color-mix(in srgb, var(--_tab-bg) 10%, transparent);--_tab-bg:var(--le-color-primary);--_tab-bg-hover:var(--le-color-primary-dark);--_tab-bg-system:var(--le-color-black);--_tab-color:var(--le-tab-color);--_tab-border-color:var(--le-color-primary)}:host([full-width]){display:block;width:100%}.le-tab-container{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--le-spacing-3);width:100%;padding:var(--le-tab-padding);color:var(--_tab-color);font-family:var(--le-font-family-base);font-size:var(--le-tab-font-size);font-weight:var(--le-tab-font-weight);line-height:var(--le-line-height-tight);text-decoration:none;cursor:pointer;transition:background-color var(--le-tab-transition) var(--le-transition-easing),
5
5
  border-color var(--le-tab-transition) var(--le-transition-easing),
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, d as createEvent, c as getElement, h } from './index-BqH-zsXr.js';
2
- import { c as classnames } from './utils-CdBk0DdF.js';
1
+ import { r as registerInstance, d as createEvent, c as getElement, h } from './index-C-Chwj1b.js';
2
+ import { c as classnames } from './utils-B3alHV04.js';
3
3
 
4
4
  const leTabsCss = () => `:host{display:block;--le-tabs-gap:var(--le-spacing-1);--le-tabs-border-color:var(--le-border-color);--le-tabs-padding-y:var(--le-spacing-2);--le-tabs-padding-x:var(--le-spacing-4);--le-tabs-enclosed-bg:var(--le-color-background-secondary)}.le-tabs{display:flex;flex-direction:column}.le-tabs.orientation-vertical{flex-direction:row}.tablist{display:flex;position:relative;border-radius:var(--le-radius-md);gap:var(--le-tabs-gap)}.tablist.wrap-tabs{flex-wrap:wrap}.tablist.overflow-auto{overflow:auto}.tablist.overflow-hidden{overflow:hidden}.tablist.overflow-visible{overflow:visible}.tablist.overflow-scroll{overflow:scroll}.tablist:focus{outline:2px solid var(--le-color-focus);outline-offset:2px}.orientation-horizontal .tablist{flex-direction:row;border-bottom:1px solid var(--le-tabs-border-color)}.orientation-vertical .tablist{flex-direction:column;border-right:1px solid var(--le-tabs-border-color);min-width:150px}.full-width .tablist{width:100%}.full-width.orientation-horizontal .tab{flex:1}.variant-underlined .tablist{padding-inline:4px}.variant-pills .tablist{border-radius:calc(1.12rem)}.variant-enclosed .tablist{border:none;gap:0;background-color:var(--le-tabs-enclosed-bg);border-radius:calc(var(--le-radius-md) + var(--le-spacing-1));padding:var(--le-spacing-1)}.tab-icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;font-size:1.1em}.tab-icon img{width:100%;height:100%;object-fit:contain}.panels{flex:1;min-height:0}.panel{padding:var(--le-tabs-panel-padding, var(--le-spacing-4))}.panel[hidden]{display:none}.orientation-vertical .panels{padding-left:var(--le-spacing-4)}.position-end .panels{order:1}.position-end .tablist{order:2}`;
5
5
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, d as createEvent, h } from './index-BqH-zsXr.js';
1
+ import { r as registerInstance, d as createEvent, h } from './index-C-Chwj1b.js';
2
2
 
3
3
  const leTagCss = () => `:host{display:inline-flex;--le-tag-font-size:var(--le-font-size-sm);--le-tag-font-weight:var(--le-font-weight-medium);--le-tag-color:var(--le-color-text);--le-tag-bg:var(--le-color-surface-alt);--le-tag-dismiss-size:1.75em}:host([disabled]){opacity:0.5;pointer-events:none}.tag{display:inline-flex;align-items:center;gap:var(--le-tag-gap, 0.375rem);padding:var(--le-tag-padding-y, 0.25rem) var(--le-tag-padding-x, 0.625rem);font-size:var(--le-tag-font-size);font-weight:var(--le-tag-font-weight);line-height:1.4;color:var(--le-tag-color, var(--le-color-text, #1f2937));background:var(--le-tag-bg, var(--le-color-surface-alt, #f3f4f6));border:1px solid var(--le-tag-border-color, transparent);border-radius:var(--le-tag-border-radius, 9999px);white-space:nowrap;user-select:none}:host([size='small']) .tag{--le-tag-font-size:0.75rem;--le-tag-padding-x:0.5rem;--le-tag-padding-y:0.125rem;--le-tag-gap:0.25rem;--le-tag-dismiss-size:1.25em}:host([size='large']) .tag{--le-tag-font-size:1rem;--le-tag-padding-x:0.875rem;--le-tag-padding-y:0.375rem;--le-tag-gap:0.5rem;--le-tag-dismiss-size:2em}:host([variant='primary']) .tag{--le-tag-bg:var(--le-color-primary, #dbeafe);--le-tag-color:var(--le-color-primary-contrast, #1e40af)}:host([variant='success']) .tag{--le-tag-bg:var(--le-color-success, #dcfce7);--le-tag-color:var(--le-color-success-contrast, #166534)}:host([variant='warning']) .tag{--le-tag-bg:var(--le-color-warning-light, #fef3c7);--le-tag-color:var(--le-color-warning-contrast, #92400e)}:host([variant='danger']) .tag{--le-tag-bg:var(--le-color-danger, #fee2e2);--le-tag-color:var(--le-color-danger-contrast, #991b1b)}.tag-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.tag-icon img{width:1em;height:1em;object-fit:contain}.tag-label{display:inline-block}.tag-dismiss{display:inline-flex;align-items:center;justify-content:center;width:var(--le-tag-dismiss-size);height:var(--le-tag-dismiss-size);padding:0;margin-block:calc(var(--le-tag-dismiss-size) * -1);margin-right:calc(var(--le-tag-dismiss-size) / 3 * -1);border:none;background:transparent;color:currentColor;opacity:0.6;cursor:pointer;border-radius:50%;transition:opacity 0.15s ease, background-color 0.15s ease}.tag-dismiss:hover{opacity:1;background:rgba(0, 0, 0, 0.1)}.tag-dismiss:focus-visible{outline:2px solid var(--le-color-primary, #3b82f6);outline-offset:1px}.tag-dismiss svg{width:0.75em;height:0.75em}.tag-dismiss:disabled{cursor:not-allowed}`;
4
4
 
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, c as getElement, h, H as Host } from './index-BqH-zsXr.js';
2
- import { o as observeModeChanges } from './utils-CdBk0DdF.js';
1
+ import { r as registerInstance, c as getElement, h, H as Host } from './index-C-Chwj1b.js';
2
+ import { o as observeModeChanges } from './utils-B3alHV04.js';
3
3
 
4
4
  const leTextDefaultCss = () => `:host{display:block}:host([hidden]){display:none}.le-text{margin:0;color:var(--le-text-color, var(--le-color-text));font-family:var(--le-font-family);line-height:var(--le-text-line-height, 1.5)}.variant-p{font-size:var(--le-font-size-base, 1rem);font-weight:var(--le-font-weight-normal, 400);color:var(--le-color-text)}.variant-h1{font-size:var(--le-font-size-4xl, 2.5rem);font-weight:var(--le-font-weight-bold, 700);line-height:1.2;color:var(--le-color-text);letter-spacing:-0.02em}.variant-h2{font-size:var(--le-font-size-3xl, 2rem);font-weight:var(--le-font-weight-bold, 700);line-height:1.25;color:var(--le-color-text);letter-spacing:-0.01em}.variant-h3{font-size:var(--le-font-size-2xl, 1.5rem);font-weight:var(--le-font-weight-semibold, 600);line-height:1.3;color:var(--le-color-text)}.variant-h4{font-size:var(--le-font-size-xl, 1.25rem);font-weight:var(--le-font-weight-semibold, 600);line-height:1.35;color:var(--le-color-text)}.variant-h5{font-size:var(--le-font-size-lg, 1.125rem);font-weight:var(--le-font-weight-medium, 500);line-height:1.4;color:var(--le-color-text)}.variant-h6{font-size:var(--le-font-size-base, 1rem);font-weight:var(--le-font-weight-medium, 500);line-height:1.45;color:var(--le-color-text);text-transform:uppercase;letter-spacing:0.05em}.variant-code{font-family:var(--le-font-family-mono, 'SF Mono', 'Fira Code', 'Consolas', monospace);font-size:var(--le-font-size-sm, 0.875rem);background:var(--le-color-surface-alt, #f5f5f5);padding:var(--le-space-md);border-radius:var(--le-radius-md);overflow-x:auto;white-space:pre-wrap;color:var(--le-color-text)}.variant-quote{font-size:var(--le-font-size-lg, 1.125rem);font-style:italic;color:var(--le-color-text-secondary);border-left:4px solid var(--le-color-primary);padding-left:var(--le-space-lg);margin-left:0;margin-right:0}.variant-label{font-size:var(--le-font-size-sm, 0.875rem);font-weight:var(--le-font-weight-medium, 500);color:var(--le-color-text-secondary);text-transform:uppercase;letter-spacing:0.05em}.variant-small{font-size:var(--le-font-size-sm, 0.875rem);color:var(--le-color-text-secondary)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.truncate.max-lines-2,.truncate.max-lines-3,.truncate.max-lines-4,.truncate.max-lines-5{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical}.truncate.max-lines-2{-webkit-line-clamp:2;line-clamp:2}.truncate.max-lines-3{-webkit-line-clamp:3;line-clamp:3}.truncate.max-lines-4{-webkit-line-clamp:4;line-clamp:4}.truncate.max-lines-5{-webkit-line-clamp:5;line-clamp:5}:host([align="center"]) .le-text{text-align:center}:host([align="right"]) .le-text{text-align:right}:host([align="justify"]) .le-text{text-align:justify}.le-text a{color:var(--le-color-primary);text-decoration:underline}.le-text a:hover{color:var(--le-color-primary-dark)}.le-text strong,.le-text b{font-weight:var(--le-font-weight-bold, 700)}.le-text em,.le-text i{font-style:italic}.le-text u{text-decoration:underline}.le-text s,.le-text strike{text-decoration:line-through}`;
5
5
 
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as getElement, h } from './index-BqH-zsXr.js';
1
+ import { r as registerInstance, c as getElement, h } from './index-C-Chwj1b.js';
2
2
 
3
3
  const leTurntableCss = () => `:host{display:block;cursor:grab}div.turntable{width:100%;height:100%;padding:1px}`;
4
4
 
@@ -1,5 +1,5 @@
1
- import { g as globalScripts, b as bootstrapLazy } from './index-BqH-zsXr.js';
2
- export { s as setNonce } from './index-BqH-zsXr.js';
1
+ import { g as globalScripts, b as bootstrapLazy } from './index-C-Chwj1b.js';
2
+ export { s as setNonce } from './index-C-Chwj1b.js';
3
3
 
4
4
  const defineCustomElements = async (win, options) => {
5
5
  if (typeof window === 'undefined') return undefined;
@@ -1,4 +1,4 @@
1
- import { a as getMode } from './index-BqH-zsXr.js';
1
+ import { a as getMode } from './index-C-Chwj1b.js';
2
2
 
3
3
  /**
4
4
  * Utility functions for le-kit components
@@ -141,6 +141,6 @@ function classnames(...classes) {
141
141
  }
142
142
 
143
143
  export { classnames as c, generateId as g, observeModeChanges as o, parseCommaSeparated as p, slotHasContent as s };
144
- //# sourceMappingURL=utils-CdBk0DdF.js.map
144
+ //# sourceMappingURL=utils-B3alHV04.js.map
145
145
 
146
- //# sourceMappingURL=utils-CdBk0DdF.js.map
146
+ //# sourceMappingURL=utils-B3alHV04.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils-CdBk0DdF.js","sources":["src/utils/utils.ts"],"sourcesContent":["/**\n * Utility functions for le-kit components\n */\n\nimport { getMode } from '../global/app';\n\n/**\n * Generates a unique ID for component instances\n */\nexport function generateId(prefix: string = 'le'): string {\n return `${prefix}-${Math.random().toString(36).substring(2, 9)}`;\n}\n\n/**\n * Parses a comma-separated string into an array\n */\nexport function parseCommaSeparated(value: string | undefined): string[] {\n if (!value) return [];\n return value\n .split(',')\n .map(s => s.trim())\n .filter(Boolean);\n}\n\n/**\n * Checks if a slot has content\n */\nexport function slotHasContent(el: HTMLElement, slotName: string = ''): boolean {\n const selector = slotName ? `[slot=\"${slotName}\"]` : ':not([slot])';\n return el.querySelector(selector) !== null;\n}\n\n/**\n * Sets up a MutationObserver to track mode changes on ancestor elements.\n * Returns a cleanup function to disconnect the observer.\n * \n * If the element or any ancestor has an explicit `mode` attribute, that creates\n * a \"mode boundary\" - the mode is determined from that point, not from further up.\n * This allows components like le-popover to force default mode for their children.\n * \n * @param el - The component's host element\n * @param callback - Function to call when mode changes, receives the new mode\n * @returns Cleanup function to disconnect the observer\n * \n * @example\n * ```tsx\n * export class MyComponent {\n * @Element() el: HTMLElement;\n * @State() adminMode: boolean = false;\n * private disconnectModeObserver?: () => void;\n * \n * connectedCallback() {\n * this.disconnectModeObserver = observeModeChanges(this.el, (mode) => {\n * this.adminMode = mode === 'admin';\n * });\n * }\n * \n * disconnectedCallback() {\n * this.disconnectModeObserver?.();\n * }\n * }\n * ```\n */\nexport function observeModeChanges(\n el: HTMLElement,\n callback: (mode: string) => void\n): () => void {\n // Call immediately with current mode\n callback(getMode(el));\n\n // Set up observer for mode attribute changes\n const observer = new MutationObserver(() => {\n callback(getMode(el));\n });\n\n // Observe the element itself (for mode boundary changes)\n observer.observe(el, {\n attributes: true,\n attributeFilter: ['mode'],\n });\n\n // Observe document root\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['mode'],\n });\n\n // Traverse up, crossing shadow boundaries, and observe each element\n let current: Node | null = el;\n while (current) {\n if (current instanceof Element && current.parentElement) {\n current = current.parentElement;\n observer.observe(current, {\n attributes: true,\n attributeFilter: ['mode'],\n });\n // If this element has an explicit mode, it's a boundary\n if ((current as Element).hasAttribute('mode')) {\n break;\n }\n } else {\n // Check if we're in a shadow root\n const root = current.getRootNode();\n if (root instanceof ShadowRoot) {\n // Cross the shadow boundary and observe the host\n current = root.host;\n observer.observe(current, {\n attributes: true,\n attributeFilter: ['mode'],\n });\n // If the host has an explicit mode, it's a boundary\n if ((current as Element).hasAttribute('mode')) {\n break;\n }\n } else {\n break;\n }\n }\n }\n\n // Return cleanup function\n return () => observer.disconnect();\n}\n\n/**\n * Combines multiple class names into a single string, filtering out falsy values.\n * \n * @param classes - arguments of class names, undefined, arrays, objects with boolean values and nested combinations of these\n * @returns Combined class names string\n */\nexport function classnames(...classes: any[]): string {\n const result: string[] = [];\n\n classes.forEach(cls => {\n if (!cls) return;\n\n if (typeof cls === 'string') {\n result.push(cls);\n } else if (Array.isArray(cls)) {\n result.push(classnames(...cls));\n } else if (typeof cls === 'object') {\n Object.entries(cls).forEach(([key, value]) => {\n if (value) {\n result.push(key);\n }\n });\n }\n });\n\n return result.join(' ');\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils-B3alHV04.js","sources":["src/utils/utils.ts"],"sourcesContent":["/**\n * Utility functions for le-kit components\n */\n\nimport { getMode } from '../global/app';\n\n/**\n * Generates a unique ID for component instances\n */\nexport function generateId(prefix: string = 'le'): string {\n return `${prefix}-${Math.random().toString(36).substring(2, 9)}`;\n}\n\n/**\n * Parses a comma-separated string into an array\n */\nexport function parseCommaSeparated(value: string | undefined): string[] {\n if (!value) return [];\n return value\n .split(',')\n .map(s => s.trim())\n .filter(Boolean);\n}\n\n/**\n * Checks if a slot has content\n */\nexport function slotHasContent(el: HTMLElement, slotName: string = ''): boolean {\n const selector = slotName ? `[slot=\"${slotName}\"]` : ':not([slot])';\n return el.querySelector(selector) !== null;\n}\n\n/**\n * Sets up a MutationObserver to track mode changes on ancestor elements.\n * Returns a cleanup function to disconnect the observer.\n * \n * If the element or any ancestor has an explicit `mode` attribute, that creates\n * a \"mode boundary\" - the mode is determined from that point, not from further up.\n * This allows components like le-popover to force default mode for their children.\n * \n * @param el - The component's host element\n * @param callback - Function to call when mode changes, receives the new mode\n * @returns Cleanup function to disconnect the observer\n * \n * @example\n * ```tsx\n * export class MyComponent {\n * @Element() el: HTMLElement;\n * @State() adminMode: boolean = false;\n * private disconnectModeObserver?: () => void;\n * \n * connectedCallback() {\n * this.disconnectModeObserver = observeModeChanges(this.el, (mode) => {\n * this.adminMode = mode === 'admin';\n * });\n * }\n * \n * disconnectedCallback() {\n * this.disconnectModeObserver?.();\n * }\n * }\n * ```\n */\nexport function observeModeChanges(\n el: HTMLElement,\n callback: (mode: string) => void\n): () => void {\n // Call immediately with current mode\n callback(getMode(el));\n\n // Set up observer for mode attribute changes\n const observer = new MutationObserver(() => {\n callback(getMode(el));\n });\n\n // Observe the element itself (for mode boundary changes)\n observer.observe(el, {\n attributes: true,\n attributeFilter: ['mode'],\n });\n\n // Observe document root\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['mode'],\n });\n\n // Traverse up, crossing shadow boundaries, and observe each element\n let current: Node | null = el;\n while (current) {\n if (current instanceof Element && current.parentElement) {\n current = current.parentElement;\n observer.observe(current, {\n attributes: true,\n attributeFilter: ['mode'],\n });\n // If this element has an explicit mode, it's a boundary\n if ((current as Element).hasAttribute('mode')) {\n break;\n }\n } else {\n // Check if we're in a shadow root\n const root = current.getRootNode();\n if (root instanceof ShadowRoot) {\n // Cross the shadow boundary and observe the host\n current = root.host;\n observer.observe(current, {\n attributes: true,\n attributeFilter: ['mode'],\n });\n // If the host has an explicit mode, it's a boundary\n if ((current as Element).hasAttribute('mode')) {\n break;\n }\n } else {\n break;\n }\n }\n }\n\n // Return cleanup function\n return () => observer.disconnect();\n}\n\n/**\n * Combines multiple class names into a single string, filtering out falsy values.\n * \n * @param classes - arguments of class names, undefined, arrays, objects with boolean values and nested combinations of these\n * @returns Combined class names string\n */\nexport function classnames(...classes: any[]): string {\n const result: string[] = [];\n\n classes.forEach(cls => {\n if (!cls) return;\n\n if (typeof cls === 'string') {\n result.push(cls);\n } else if (Array.isArray(cls)) {\n result.push(classnames(...cls));\n } else if (typeof cls === 'object') {\n Object.entries(cls).forEach(([key, value]) => {\n if (value) {\n result.push(key);\n }\n });\n }\n });\n\n return result.join(' ');\n}\n"],"names":[],"mappings":"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"}