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
@@ -0,0 +1,13 @@
1
+ {
2
+ "viewBox": "0 0 16 16",
3
+ "children": [
4
+ {
5
+ "tag": "path",
6
+ "d": "M4 6l4 4 4-4",
7
+ "fill": "none",
8
+ "stroke": "currentColor",
9
+ "stroke-width": "2",
10
+ "childen": []
11
+ }
12
+ ]
13
+ }
@@ -0,0 +1,3 @@
1
+ <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M4 6l4 4 4-4" fill="none" stroke="currentColor" stroke-width="2" />
3
+ </svg>
@@ -1 +1 @@
1
- {"file":"index.js","mappings":";;;;;AACO,MAAM,aAAa,GAAGA,cAAe;;","names":["appGlobalScript"],"sources":["@stencil/core/internal/app-globals"],"sourcesContent":["import appGlobalScript from '/Users/leechy/Projects/le-kit/src/global/app.ts';\nexport const globalScripts = appGlobalScript;\nexport const globalStyles = \":root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--le-spacing-0:0;--le-spacing-1:0.25rem;--le-spacing-2:0.5rem;--le-spacing-3:0.75rem;--le-spacing-4:1rem;--le-spacing-5:1.25rem;--le-spacing-6:1.5rem;--le-spacing-8:2rem;--le-spacing-10:2.5rem;--le-spacing-12:3rem;--le-spacing-16:4rem;--le-font-family-base:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--le-font-family-mono:'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;--le-font-size-xs:0.75rem;--le-font-size-sm:0.875rem;--le-font-size-md:1rem;--le-font-size-lg:1.125rem;--le-font-size-xl:1.25rem;--le-font-size-2xl:1.5rem;--le-font-size-3xl:1.875rem;--le-font-size-4xl:2.25rem;--le-font-weight-normal:400;--le-font-weight-medium:500;--le-font-weight-semibold:600;--le-font-weight-bold:700;--le-line-height-tight:1.25;--le-line-height-normal:1.5;--le-line-height-relaxed:1.75;--le-radius-none:0;--le-radius-xs:0.066rem;--le-radius-sm:0.125rem;--le-radius-md:0.25rem;--le-radius-lg:0.5rem;--le-radius-xl:0.75rem;--le-radius-2xl:1rem;--le-radius-full:9999px;--le-transition-fast:150ms ease;--le-transition-normal:250ms ease;--le-transition-slow:400ms ease;--le-transition-bounce:400ms cubic-bezier(0.68, -0.55, 0.265, 1.55);--le-z-dropdown:1000;--le-z-sticky:1020;--le-z-fixed:1030;--le-z-modal-backdrop:1040;--le-z-modal:1050;--le-z-popover:1060;--le-z-tooltip:1070}:root,[theme=\\\"default\\\"]{--le-color-primary:#0088ff;--le-color-primary-light:#4da6ff;--le-color-primary-dark:#0066cc;--le-color-primary-contrast:#ffffff;--le-color-secondary:#6c757d;--le-color-secondary-light:#868e96;--le-color-secondary-dark:#545b62;--le-color-secondary-contrast:#ffffff;--le-color-success:#28a745;--le-color-success-light:#48c764;--le-color-success-dark:#1e7e34;--le-color-success-contrast:#ffffff;--le-color-warning:#ffc107;--le-color-warning-light:#ffcd39;--le-color-warning-dark:#d39e00;--le-color-warning-contrast:#212529;--le-color-danger:#dc3545;--le-color-danger-light:#e4606d;--le-color-danger-dark:#bd2130;--le-color-danger-contrast:#ffffff;--le-color-info:#17a2b8;--le-color-info-light:#3ab0c3;--le-color-info-dark:#117a8b;--le-color-info-contrast:#ffffff;--le-color-white:#ffffff;--le-color-black:#000000;--le-color-gray-50:#fafafa;--le-color-gray-100:#f5f5f5;--le-color-gray-200:#eeeeee;--le-color-gray-300:#e0e0e0;--le-color-gray-400:#bdbdbd;--le-color-gray-500:#9e9e9e;--le-color-gray-600:#757575;--le-color-gray-700:#616161;--le-color-gray-800:#424242;--le-color-gray-900:#212121;--le-color-background:#ffffff;--le-color-background-secondary:#f5f5f5;--le-color-background-tertiary:#eeeeee;--le-color-surface:#ffffff;--le-color-surface-elevated:#ffffff;--le-color-surface-alt:#e9ebed;--le-color-text-primary:#212121;--le-color-text-secondary:#757575;--le-color-text-disabled:#9e9e9e;--le-color-text-inverse:#ffffff;--le-color-border:#e0e0e0;--le-color-border-hover:#9dd1ff;--le-color-border-light:#eeeeee;--le-color-border-dark:#bdbdbd;--le-border-width:2px;--le-color-border-input:#c4d6e6;--le-color-focus:rgba(0, 136, 255, 0.15);--le-radius-none:0;--le-radius-sm:0.125rem;--le-radius-md:0.25rem;--le-radius-lg:0.5rem;--le-radius-xl:0.75rem;--le-radius-2xl:1rem;--le-radius-full:9999px;--le-color-shadow:color-mix(in srgb, var(--le-color-primary) 80%, transparent);--le-shadow-none:none;--le-shadow-sm:0 1px 2px rgba(0, 0, 0, 0.05);--le-shadow-md:0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);--le-shadow-lg:0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06);--le-shadow-xl:0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05);--le-shadow-2xl:0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)}[theme=\\\"dark\\\"]{--le-color-primary:#4da6ff;--le-color-primary-light:#80c1ff;--le-color-primary-dark:#0088ff;--le-color-primary-contrast:#000000;--le-color-secondary:#868e96;--le-color-secondary-light:#adb5bd;--le-color-secondary-dark:#6c757d;--le-color-secondary-contrast:#000000;--le-color-success:#48c764;--le-color-success-light:#6dd587;--le-color-success-dark:#28a745;--le-color-success-contrast:#000000;--le-color-warning:#ffcd39;--le-color-warning-light:#ffda6a;--le-color-warning-dark:#ffc107;--le-color-warning-contrast:#000000;--le-color-danger:#e4606d;--le-color-danger-light:#ea868f;--le-color-danger-dark:#dc3545;--le-color-danger-contrast:#000000;--le-color-info:#3ab0c3;--le-color-info-light:#6dc4d3;--le-color-info-dark:#17a2b8;--le-color-info-contrast:#000000;--le-color-white:#ffffff;--le-color-black:#000000;--le-color-gray-50:#212121;--le-color-gray-100:#424242;--le-color-gray-200:#616161;--le-color-gray-300:#757575;--le-color-gray-400:#9e9e9e;--le-color-gray-500:#bdbdbd;--le-color-gray-600:#e0e0e0;--le-color-gray-700:#eeeeee;--le-color-gray-800:#f5f5f5;--le-color-gray-900:#fafafa;--le-color-background:#121212;--le-color-background-secondary:#1e1e1e;--le-color-background-tertiary:#2d2d2d;--le-color-surface:#1e1e1e;--le-color-surface-elevated:#2d2d2d;--le-color-surface-alt:#334155;--le-color-text-primary:#ffffff;--le-color-text-secondary:#b3b3b3;--le-color-text-disabled:#666666;--le-color-text-inverse:#121212;--le-color-border:#333333;--le-color-border-hover:#205e9b;--le-color-border-light:#2d2d2d;--le-color-border-dark:#444444;--le-border-width:2px;--le-color-border-input:#515c6b;--le-color-focus:rgba(77, 166, 255, 0.15);--le-radius-none:0;--le-radius-sm:0.125rem;--le-radius-md:0.25rem;--le-radius-lg:0.5rem;--le-radius-xl:0.75rem;--le-radius-2xl:1rem;--le-radius-full:9999px;--le-color-shadow:color-mix(in srgb, var(--le-color-primary) 90%, transparent);--le-shadow-none:none;--le-shadow-sm:0 1px 2px rgba(0, 0, 0, 0.3);--le-shadow-md:0 1px 3px rgba(0, 0, 0, 0.4), 0 1px 2px rgba(0, 0, 0, 0.3);--le-shadow-lg:0 4px 6px rgba(0, 0, 0, 0.4), 0 2px 4px rgba(0, 0, 0, 0.3);--le-shadow-xl:0 10px 15px rgba(0, 0, 0, 0.4), 0 4px 6px rgba(0, 0, 0, 0.3);--le-shadow-2xl:0 20px 25px rgba(0, 0, 0, 0.4), 0 10px 10px rgba(0, 0, 0, 0.3)}[theme=\\\"gradient\\\"]{--le-color-primary:#8b5cf6;--le-color-primary-light:#a78bfa;--le-color-primary-dark:#7c3aed;--le-color-primary-contrast:#ffffff;--le-color-secondary:#ec4899;--le-color-secondary-light:#f472b6;--le-color-secondary-dark:#db2777;--le-color-secondary-contrast:#ffffff;--le-color-success:#10b981;--le-color-success-light:#34d399;--le-color-success-dark:#059669;--le-color-success-contrast:#ffffff;--le-color-warning:#f59e0b;--le-color-warning-light:#fbbf24;--le-color-warning-dark:#d97706;--le-color-warning-contrast:#000000;--le-color-danger:#ef4444;--le-color-danger-light:#f87171;--le-color-danger-dark:#dc2626;--le-color-danger-contrast:#ffffff;--le-color-info:#06b6d4;--le-color-info-light:#22d3ee;--le-color-info-dark:#0891b2;--le-color-info-contrast:#ffffff;--le-color-white:#ffffff;--le-color-black:#000000;--le-color-gray-50:#faf5ff;--le-color-gray-100:#f3e8ff;--le-color-gray-200:#e9d5ff;--le-color-gray-300:#d8b4fe;--le-color-gray-400:#c084fc;--le-color-gray-500:#a855f7;--le-color-gray-600:#9333ea;--le-color-gray-700:#7e22ce;--le-color-gray-800:#6b21a8;--le-color-gray-900:#581c87;--le-color-background:linear-gradient(135deg, #667eea 0%, #764ba2 100%);--le-color-background-secondary:rgba(255, 255, 255, 0.1);--le-color-background-tertiary:rgba(255, 255, 255, 0.05);--le-color-surface:rgba(255, 255, 255, 0.95);--le-color-surface-elevated:#ffffff;--le-color-surface-alt:#e5def5;--le-color-text-primary:#1f2937;--le-color-text-secondary:#6b7280;--le-color-text-disabled:#9ca3af;--le-color-text-inverse:#ffffff;--le-color-border:rgba(139, 92, 246, 0.3);--le-color-border-hover:rgba(172, 140, 246, 0.4);--le-color-border-light:rgba(139, 92, 246, 0.1);--le-color-border-dark:rgba(139, 92, 246, 0.5);--le-border-width:2px;--le-color-border-input:#eccddd;--le-color-focus:rgba(139, 92, 246, 0.15);--le-radius-none:0;--le-radius-sm:0.25rem;--le-radius-md:0.5rem;--le-radius-lg:1rem;--le-radius-xl:1.5rem;--le-radius-2xl:2rem;--le-radius-full:9999px;--le-color-shadow:color-mix(in srgb, var(--le-color-primary) 80%, transparent);--le-shadow-none:none;--le-shadow-sm:0 1px 2px rgba(139, 92, 246, 0.1);--le-shadow-md:0 4px 6px rgba(139, 92, 246, 0.15), 0 2px 4px rgba(139, 92, 246, 0.1);--le-shadow-lg:0 10px 20px rgba(139, 92, 246, 0.2), 0 4px 8px rgba(139, 92, 246, 0.1);--le-shadow-xl:0 20px 40px rgba(139, 92, 246, 0.25), 0 8px 16px rgba(139, 92, 246, 0.15);--le-shadow-2xl:0 30px 60px rgba(139, 92, 246, 0.3), 0 15px 30px rgba(139, 92, 246, 0.2)}[theme=\\\"minimal\\\"]{--le-color-primary:#111827;--le-color-primary-light:#374151;--le-color-primary-dark:#030712;--le-color-primary-contrast:#ffffff;--le-color-secondary:#6b7280;--le-color-secondary-light:#9ca3af;--le-color-secondary-dark:#4b5563;--le-color-secondary-contrast:#ffffff;--le-color-success:#059669;--le-color-success-light:#10b981;--le-color-success-dark:#047857;--le-color-success-contrast:#ffffff;--le-color-warning:#d97706;--le-color-warning-light:#f59e0b;--le-color-warning-dark:#b45309;--le-color-warning-contrast:#ffffff;--le-color-danger:#dc2626;--le-color-danger-light:#ef4444;--le-color-danger-dark:#b91c1c;--le-color-danger-contrast:#ffffff;--le-color-info:#0284c7;--le-color-info-light:#0ea5e9;--le-color-info-dark:#0369a1;--le-color-info-contrast:#ffffff;--le-color-white:#ffffff;--le-color-black:#000000;--le-color-gray-50:#f9fafb;--le-color-gray-100:#f3f4f6;--le-color-gray-200:#e5e7eb;--le-color-gray-300:#d1d5db;--le-color-gray-400:#9ca3af;--le-color-gray-500:#6b7280;--le-color-gray-600:#4b5563;--le-color-gray-700:#374151;--le-color-gray-800:#1f2937;--le-color-gray-900:#111827;--le-color-background:#ffffff;--le-color-background-secondary:#fafafa;--le-color-background-tertiary:#f5f5f5;--le-color-surface:#ffffff;--le-color-surface-elevated:#ffffff;--le-color-surface-alt:#f3f4f6;--le-color-text-primary:#111827;--le-color-text-secondary:#6b7280;--le-color-text-disabled:#9ca3af;--le-color-text-inverse:#ffffff;--le-color-border:#e5e7eb;--le-color-border-hover:#a7aaae;--le-color-border-light:#f3f4f6;--le-color-border-dark:#d1d5db;--le-border-width:1px;--le-color-border-input:#c8cfdd;--le-color-focus:rgba(17, 24, 39, 0.15);--le-radius-none:0;--le-radius-sm:0;--le-radius-md:2px;--le-radius-lg:4px;--le-radius-xl:6px;--le-radius-2xl:8px;--le-radius-full:9999px;--le-color-shadow:color-mix(in srgb, var(--le-color-primary) 80%, transparent);--le-shadow-none:none;--le-shadow-sm:none;--le-shadow-md:0 1px 2px rgba(0, 0, 0, 0.05);--le-shadow-lg:0 1px 3px rgba(0, 0, 0, 0.08);--le-shadow-xl:0 2px 4px rgba(0, 0, 0, 0.1);--le-shadow-2xl:0 4px 8px rgba(0, 0, 0, 0.1)}[theme=\\\"warm\\\"]{--le-color-primary:#ea580c;--le-color-primary-light:#fb923c;--le-color-primary-dark:#c2410c;--le-color-primary-contrast:#ffffff;--le-color-secondary:#b45309;--le-color-secondary-light:#d97706;--le-color-secondary-dark:#92400e;--le-color-secondary-contrast:#ffffff;--le-color-success:#16a34a;--le-color-success-light:#22c55e;--le-color-success-dark:#15803d;--le-color-success-contrast:#ffffff;--le-color-warning:#ca8a04;--le-color-warning-light:#eab308;--le-color-warning-dark:#a16207;--le-color-warning-contrast:#000000;--le-color-danger:#dc2626;--le-color-danger-light:#ef4444;--le-color-danger-dark:#b91c1c;--le-color-danger-contrast:#ffffff;--le-color-info:#0891b2;--le-color-info-light:#06b6d4;--le-color-info-dark:#0e7490;--le-color-info-contrast:#ffffff;--le-color-white:#ffffff;--le-color-black:#000000;--le-color-gray-50:#fffbeb;--le-color-gray-100:#fef3c7;--le-color-gray-200:#fde68a;--le-color-gray-300:#fcd34d;--le-color-gray-400:#fbbf24;--le-color-gray-500:#f59e0b;--le-color-gray-600:#d97706;--le-color-gray-700:#b45309;--le-color-gray-800:#92400e;--le-color-gray-900:#78350f;--le-color-background:#fffbeb;--le-color-background-secondary:#fef3c7;--le-color-background-tertiary:#fde68a;--le-color-surface:#ffffff;--le-color-surface-elevated:#ffffff;--le-color-surface-alt:#ffebba;--le-color-text-primary:#78350f;--le-color-text-secondary:#92400e;--le-color-text-disabled:#d97706;--le-color-text-inverse:#ffffff;--le-color-border:#fcd34d;--le-color-border-hover:#ee8349;--le-color-border-light:#fde68a;--le-color-border-dark:#fbbf24;--le-border-width:2px;--le-color-border-input:#e7d4c4;--le-color-focus:rgba(234, 88, 12, 0.15);--le-radius-none:0;--le-radius-sm:0.125rem;--le-radius-md:0.375rem;--le-radius-lg:0.625rem;--le-radius-xl:0.875rem;--le-radius-2xl:1.125rem;--le-radius-full:9999px;--le-color-shadow:color-mix(in srgb, var(--le-color-primary) 80%, transparent);--le-shadow-none:none;--le-shadow-sm:0 1px 2px rgba(234, 88, 12, 0.05);--le-shadow-md:0 4px 6px rgba(234, 88, 12, 0.1), 0 2px 4px rgba(234, 88, 12, 0.06);--le-shadow-lg:0 10px 15px rgba(234, 88, 12, 0.15), 0 4px 6px rgba(234, 88, 12, 0.08);--le-shadow-xl:0 20px 25px rgba(234, 88, 12, 0.15), 0 10px 10px rgba(234, 88, 12, 0.1);--le-shadow-2xl:0 25px 50px rgba(234, 88, 12, 0.2), 0 12px 24px rgba(234, 88, 12, 0.12)}:root{--le-space-xs:4px;--le-space-sm:8px;--le-space-md:16px;--le-space-lg:24px;--le-space-xl:32px;--le-space-2xl:48px;--le-space-3xl:64px;--le-font-family:system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--le-font-family-mono:'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, monospace;--le-font-size-2xs:0.625rem;--le-font-size-xs:0.75rem;--le-font-size-sm:0.875rem;--le-font-size-md:1rem;--le-font-size-lg:1.125rem;--le-font-size-xl:1.25rem;--le-font-size-2xl:1.5rem;--le-font-size-3xl:2rem;--le-font-size-4xl:2.5rem;--le-font-weight-normal:400;--le-font-weight-medium:500;--le-font-weight-semibold:600;--le-font-weight-bold:700;--le-line-height-tight:1.25;--le-line-height-normal:1.5;--le-line-height-relaxed:1.75;--le-transition-fast:150ms ease;--le-transition-normal:250ms ease;--le-transition-slow:400ms ease;--le-transition-bounce:400ms cubic-bezier(0.68, -0.55, 0.265, 1.55);--le-z-dropdown:1000;--le-z-sticky:1020;--le-z-fixed:1030;--le-z-modal-backdrop:1040;--le-z-modal:1050;--le-z-popover:1060;--le-z-tooltip:1070}.header-is-shrunk .hidden-on-shrink{display:none}\";\n"],"version":3}
1
+ {"file":"index.js","mappings":";;;;;AACO,MAAM,aAAa,GAAGA,cAAe;;","names":["appGlobalScript"],"sources":["@stencil/core/internal/app-globals"],"sourcesContent":["import appGlobalScript from '/home/runner/work/le-kit/le-kit/src/global/app.ts';\nexport const globalScripts = appGlobalScript;\nexport const globalStyles = \":root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--le-spacing-0:0;--le-spacing-1:0.25rem;--le-spacing-2:0.5rem;--le-spacing-3:0.75rem;--le-spacing-4:1rem;--le-spacing-5:1.25rem;--le-spacing-6:1.5rem;--le-spacing-8:2rem;--le-spacing-10:2.5rem;--le-spacing-12:3rem;--le-spacing-16:4rem;--le-font-family-base:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--le-font-family-mono:'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;--le-font-size-xs:0.75rem;--le-font-size-sm:0.875rem;--le-font-size-md:1rem;--le-font-size-lg:1.125rem;--le-font-size-xl:1.25rem;--le-font-size-2xl:1.5rem;--le-font-size-3xl:1.875rem;--le-font-size-4xl:2.25rem;--le-font-weight-normal:400;--le-font-weight-medium:500;--le-font-weight-semibold:600;--le-font-weight-bold:700;--le-line-height-tight:1.25;--le-line-height-normal:1.5;--le-line-height-relaxed:1.75;--le-radius-none:0;--le-radius-xs:0.066rem;--le-radius-sm:0.125rem;--le-radius-md:0.25rem;--le-radius-lg:0.5rem;--le-radius-xl:0.75rem;--le-radius-2xl:1rem;--le-radius-full:9999px;--le-transition-fast:150ms ease;--le-transition-normal:250ms ease;--le-transition-slow:400ms ease;--le-transition-bounce:400ms cubic-bezier(0.68, -0.55, 0.265, 1.55);--le-z-dropdown:1000;--le-z-sticky:1020;--le-z-fixed:1030;--le-z-modal-backdrop:1040;--le-z-modal:1050;--le-z-popover:1060;--le-z-tooltip:1070}:root,[theme=\\\"default\\\"]{--le-color-primary:#0088ff;--le-color-primary-light:#4da6ff;--le-color-primary-dark:#0066cc;--le-color-primary-contrast:#ffffff;--le-color-secondary:#6c757d;--le-color-secondary-light:#868e96;--le-color-secondary-dark:#545b62;--le-color-secondary-contrast:#ffffff;--le-color-success:#28a745;--le-color-success-light:#48c764;--le-color-success-dark:#1e7e34;--le-color-success-contrast:#ffffff;--le-color-warning:#ffc107;--le-color-warning-light:#ffcd39;--le-color-warning-dark:#d39e00;--le-color-warning-contrast:#212529;--le-color-danger:#dc3545;--le-color-danger-light:#e4606d;--le-color-danger-dark:#bd2130;--le-color-danger-contrast:#ffffff;--le-color-info:#17a2b8;--le-color-info-light:#3ab0c3;--le-color-info-dark:#117a8b;--le-color-info-contrast:#ffffff;--le-color-white:#ffffff;--le-color-black:#000000;--le-color-gray-50:#fafafa;--le-color-gray-100:#f5f5f5;--le-color-gray-200:#eeeeee;--le-color-gray-300:#e0e0e0;--le-color-gray-400:#bdbdbd;--le-color-gray-500:#9e9e9e;--le-color-gray-600:#757575;--le-color-gray-700:#616161;--le-color-gray-800:#424242;--le-color-gray-900:#212121;--le-color-background:#ffffff;--le-color-background-secondary:#f5f5f5;--le-color-background-tertiary:#eeeeee;--le-color-surface:#ffffff;--le-color-surface-elevated:#ffffff;--le-color-surface-alt:#e9ebed;--le-color-text-primary:#212121;--le-color-text-secondary:#757575;--le-color-text-disabled:#9e9e9e;--le-color-text-inverse:#ffffff;--le-color-border:#e0e0e0;--le-color-border-hover:#9dd1ff;--le-color-border-light:#eeeeee;--le-color-border-dark:#bdbdbd;--le-border-width:2px;--le-color-border-input:#c4d6e6;--le-color-focus:rgba(0, 136, 255, 0.15);--le-radius-none:0;--le-radius-sm:0.125rem;--le-radius-md:0.25rem;--le-radius-lg:0.5rem;--le-radius-xl:0.75rem;--le-radius-2xl:1rem;--le-radius-full:9999px;--le-color-shadow:color-mix(in srgb, var(--le-color-primary) 80%, transparent);--le-shadow-none:none;--le-shadow-sm:0 1px 2px rgba(0, 0, 0, 0.05);--le-shadow-md:0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);--le-shadow-lg:0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06);--le-shadow-xl:0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05);--le-shadow-2xl:0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)}[theme=\\\"dark\\\"]{--le-color-primary:#4da6ff;--le-color-primary-light:#80c1ff;--le-color-primary-dark:#0088ff;--le-color-primary-contrast:#000000;--le-color-secondary:#868e96;--le-color-secondary-light:#adb5bd;--le-color-secondary-dark:#6c757d;--le-color-secondary-contrast:#000000;--le-color-success:#48c764;--le-color-success-light:#6dd587;--le-color-success-dark:#28a745;--le-color-success-contrast:#000000;--le-color-warning:#ffcd39;--le-color-warning-light:#ffda6a;--le-color-warning-dark:#ffc107;--le-color-warning-contrast:#000000;--le-color-danger:#e4606d;--le-color-danger-light:#ea868f;--le-color-danger-dark:#dc3545;--le-color-danger-contrast:#000000;--le-color-info:#3ab0c3;--le-color-info-light:#6dc4d3;--le-color-info-dark:#17a2b8;--le-color-info-contrast:#000000;--le-color-white:#ffffff;--le-color-black:#000000;--le-color-gray-50:#212121;--le-color-gray-100:#424242;--le-color-gray-200:#616161;--le-color-gray-300:#757575;--le-color-gray-400:#9e9e9e;--le-color-gray-500:#bdbdbd;--le-color-gray-600:#e0e0e0;--le-color-gray-700:#eeeeee;--le-color-gray-800:#f5f5f5;--le-color-gray-900:#fafafa;--le-color-background:#121212;--le-color-background-secondary:#1e1e1e;--le-color-background-tertiary:#2d2d2d;--le-color-surface:#1e1e1e;--le-color-surface-elevated:#2d2d2d;--le-color-surface-alt:#334155;--le-color-text-primary:#ffffff;--le-color-text-secondary:#b3b3b3;--le-color-text-disabled:#666666;--le-color-text-inverse:#121212;--le-color-border:#333333;--le-color-border-hover:#205e9b;--le-color-border-light:#2d2d2d;--le-color-border-dark:#444444;--le-border-width:2px;--le-color-border-input:#515c6b;--le-color-focus:rgba(77, 166, 255, 0.15);--le-radius-none:0;--le-radius-sm:0.125rem;--le-radius-md:0.25rem;--le-radius-lg:0.5rem;--le-radius-xl:0.75rem;--le-radius-2xl:1rem;--le-radius-full:9999px;--le-color-shadow:color-mix(in srgb, var(--le-color-primary) 90%, transparent);--le-shadow-none:none;--le-shadow-sm:0 1px 2px rgba(0, 0, 0, 0.3);--le-shadow-md:0 1px 3px rgba(0, 0, 0, 0.4), 0 1px 2px rgba(0, 0, 0, 0.3);--le-shadow-lg:0 4px 6px rgba(0, 0, 0, 0.4), 0 2px 4px rgba(0, 0, 0, 0.3);--le-shadow-xl:0 10px 15px rgba(0, 0, 0, 0.4), 0 4px 6px rgba(0, 0, 0, 0.3);--le-shadow-2xl:0 20px 25px rgba(0, 0, 0, 0.4), 0 10px 10px rgba(0, 0, 0, 0.3)}[theme=\\\"gradient\\\"]{--le-color-primary:#8b5cf6;--le-color-primary-light:#a78bfa;--le-color-primary-dark:#7c3aed;--le-color-primary-contrast:#ffffff;--le-color-secondary:#ec4899;--le-color-secondary-light:#f472b6;--le-color-secondary-dark:#db2777;--le-color-secondary-contrast:#ffffff;--le-color-success:#10b981;--le-color-success-light:#34d399;--le-color-success-dark:#059669;--le-color-success-contrast:#ffffff;--le-color-warning:#f59e0b;--le-color-warning-light:#fbbf24;--le-color-warning-dark:#d97706;--le-color-warning-contrast:#000000;--le-color-danger:#ef4444;--le-color-danger-light:#f87171;--le-color-danger-dark:#dc2626;--le-color-danger-contrast:#ffffff;--le-color-info:#06b6d4;--le-color-info-light:#22d3ee;--le-color-info-dark:#0891b2;--le-color-info-contrast:#ffffff;--le-color-white:#ffffff;--le-color-black:#000000;--le-color-gray-50:#faf5ff;--le-color-gray-100:#f3e8ff;--le-color-gray-200:#e9d5ff;--le-color-gray-300:#d8b4fe;--le-color-gray-400:#c084fc;--le-color-gray-500:#a855f7;--le-color-gray-600:#9333ea;--le-color-gray-700:#7e22ce;--le-color-gray-800:#6b21a8;--le-color-gray-900:#581c87;--le-color-background:linear-gradient(135deg, #667eea 0%, #764ba2 100%);--le-color-background-secondary:rgba(255, 255, 255, 0.1);--le-color-background-tertiary:rgba(255, 255, 255, 0.05);--le-color-surface:rgba(255, 255, 255, 0.95);--le-color-surface-elevated:#ffffff;--le-color-surface-alt:#e5def5;--le-color-text-primary:#1f2937;--le-color-text-secondary:#6b7280;--le-color-text-disabled:#9ca3af;--le-color-text-inverse:#ffffff;--le-color-border:rgba(139, 92, 246, 0.3);--le-color-border-hover:rgba(172, 140, 246, 0.4);--le-color-border-light:rgba(139, 92, 246, 0.1);--le-color-border-dark:rgba(139, 92, 246, 0.5);--le-border-width:2px;--le-color-border-input:#eccddd;--le-color-focus:rgba(139, 92, 246, 0.15);--le-radius-none:0;--le-radius-sm:0.25rem;--le-radius-md:0.5rem;--le-radius-lg:1rem;--le-radius-xl:1.5rem;--le-radius-2xl:2rem;--le-radius-full:9999px;--le-color-shadow:color-mix(in srgb, var(--le-color-primary) 80%, transparent);--le-shadow-none:none;--le-shadow-sm:0 1px 2px rgba(139, 92, 246, 0.1);--le-shadow-md:0 4px 6px rgba(139, 92, 246, 0.15), 0 2px 4px rgba(139, 92, 246, 0.1);--le-shadow-lg:0 10px 20px rgba(139, 92, 246, 0.2), 0 4px 8px rgba(139, 92, 246, 0.1);--le-shadow-xl:0 20px 40px rgba(139, 92, 246, 0.25), 0 8px 16px rgba(139, 92, 246, 0.15);--le-shadow-2xl:0 30px 60px rgba(139, 92, 246, 0.3), 0 15px 30px rgba(139, 92, 246, 0.2)}[theme=\\\"minimal\\\"]{--le-color-primary:#111827;--le-color-primary-light:#374151;--le-color-primary-dark:#030712;--le-color-primary-contrast:#ffffff;--le-color-secondary:#6b7280;--le-color-secondary-light:#9ca3af;--le-color-secondary-dark:#4b5563;--le-color-secondary-contrast:#ffffff;--le-color-success:#059669;--le-color-success-light:#10b981;--le-color-success-dark:#047857;--le-color-success-contrast:#ffffff;--le-color-warning:#d97706;--le-color-warning-light:#f59e0b;--le-color-warning-dark:#b45309;--le-color-warning-contrast:#ffffff;--le-color-danger:#dc2626;--le-color-danger-light:#ef4444;--le-color-danger-dark:#b91c1c;--le-color-danger-contrast:#ffffff;--le-color-info:#0284c7;--le-color-info-light:#0ea5e9;--le-color-info-dark:#0369a1;--le-color-info-contrast:#ffffff;--le-color-white:#ffffff;--le-color-black:#000000;--le-color-gray-50:#f9fafb;--le-color-gray-100:#f3f4f6;--le-color-gray-200:#e5e7eb;--le-color-gray-300:#d1d5db;--le-color-gray-400:#9ca3af;--le-color-gray-500:#6b7280;--le-color-gray-600:#4b5563;--le-color-gray-700:#374151;--le-color-gray-800:#1f2937;--le-color-gray-900:#111827;--le-color-background:#ffffff;--le-color-background-secondary:#fafafa;--le-color-background-tertiary:#f5f5f5;--le-color-surface:#ffffff;--le-color-surface-elevated:#ffffff;--le-color-surface-alt:#f3f4f6;--le-color-text-primary:#111827;--le-color-text-secondary:#6b7280;--le-color-text-disabled:#9ca3af;--le-color-text-inverse:#ffffff;--le-color-border:#e5e7eb;--le-color-border-hover:#a7aaae;--le-color-border-light:#f3f4f6;--le-color-border-dark:#d1d5db;--le-border-width:1px;--le-color-border-input:#c8cfdd;--le-color-focus:rgba(17, 24, 39, 0.15);--le-radius-none:0;--le-radius-sm:0;--le-radius-md:2px;--le-radius-lg:4px;--le-radius-xl:6px;--le-radius-2xl:8px;--le-radius-full:9999px;--le-color-shadow:color-mix(in srgb, var(--le-color-primary) 80%, transparent);--le-shadow-none:none;--le-shadow-sm:none;--le-shadow-md:0 1px 2px rgba(0, 0, 0, 0.05);--le-shadow-lg:0 1px 3px rgba(0, 0, 0, 0.08);--le-shadow-xl:0 2px 4px rgba(0, 0, 0, 0.1);--le-shadow-2xl:0 4px 8px rgba(0, 0, 0, 0.1)}[theme=\\\"warm\\\"]{--le-color-primary:#ea580c;--le-color-primary-light:#fb923c;--le-color-primary-dark:#c2410c;--le-color-primary-contrast:#ffffff;--le-color-secondary:#b45309;--le-color-secondary-light:#d97706;--le-color-secondary-dark:#92400e;--le-color-secondary-contrast:#ffffff;--le-color-success:#16a34a;--le-color-success-light:#22c55e;--le-color-success-dark:#15803d;--le-color-success-contrast:#ffffff;--le-color-warning:#ca8a04;--le-color-warning-light:#eab308;--le-color-warning-dark:#a16207;--le-color-warning-contrast:#000000;--le-color-danger:#dc2626;--le-color-danger-light:#ef4444;--le-color-danger-dark:#b91c1c;--le-color-danger-contrast:#ffffff;--le-color-info:#0891b2;--le-color-info-light:#06b6d4;--le-color-info-dark:#0e7490;--le-color-info-contrast:#ffffff;--le-color-white:#ffffff;--le-color-black:#000000;--le-color-gray-50:#fffbeb;--le-color-gray-100:#fef3c7;--le-color-gray-200:#fde68a;--le-color-gray-300:#fcd34d;--le-color-gray-400:#fbbf24;--le-color-gray-500:#f59e0b;--le-color-gray-600:#d97706;--le-color-gray-700:#b45309;--le-color-gray-800:#92400e;--le-color-gray-900:#78350f;--le-color-background:#fffbeb;--le-color-background-secondary:#fef3c7;--le-color-background-tertiary:#fde68a;--le-color-surface:#ffffff;--le-color-surface-elevated:#ffffff;--le-color-surface-alt:#ffebba;--le-color-text-primary:#78350f;--le-color-text-secondary:#92400e;--le-color-text-disabled:#d97706;--le-color-text-inverse:#ffffff;--le-color-border:#fcd34d;--le-color-border-hover:#ee8349;--le-color-border-light:#fde68a;--le-color-border-dark:#fbbf24;--le-border-width:2px;--le-color-border-input:#e7d4c4;--le-color-focus:rgba(234, 88, 12, 0.15);--le-radius-none:0;--le-radius-sm:0.125rem;--le-radius-md:0.375rem;--le-radius-lg:0.625rem;--le-radius-xl:0.875rem;--le-radius-2xl:1.125rem;--le-radius-full:9999px;--le-color-shadow:color-mix(in srgb, var(--le-color-primary) 80%, transparent);--le-shadow-none:none;--le-shadow-sm:0 1px 2px rgba(234, 88, 12, 0.05);--le-shadow-md:0 4px 6px rgba(234, 88, 12, 0.1), 0 2px 4px rgba(234, 88, 12, 0.06);--le-shadow-lg:0 10px 15px rgba(234, 88, 12, 0.15), 0 4px 6px rgba(234, 88, 12, 0.08);--le-shadow-xl:0 20px 25px rgba(234, 88, 12, 0.15), 0 10px 10px rgba(234, 88, 12, 0.1);--le-shadow-2xl:0 25px 50px rgba(234, 88, 12, 0.2), 0 12px 24px rgba(234, 88, 12, 0.12)}:root{--le-space-xs:4px;--le-space-sm:8px;--le-space-md:16px;--le-space-lg:24px;--le-space-xl:32px;--le-space-2xl:48px;--le-space-3xl:64px;--le-font-family:system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--le-font-family-mono:'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, monospace;--le-font-size-2xs:0.625rem;--le-font-size-xs:0.75rem;--le-font-size-sm:0.875rem;--le-font-size-md:1rem;--le-font-size-lg:1.125rem;--le-font-size-xl:1.25rem;--le-font-size-2xl:1.5rem;--le-font-size-3xl:2rem;--le-font-size-4xl:2.5rem;--le-font-weight-normal:400;--le-font-weight-medium:500;--le-font-weight-semibold:600;--le-font-weight-bold:700;--le-line-height-tight:1.25;--le-line-height-normal:1.5;--le-line-height-relaxed:1.75;--le-transition-fast:150ms ease;--le-transition-normal:250ms ease;--le-transition-slow:400ms ease;--le-transition-bounce:400ms cubic-bezier(0.68, -0.55, 0.265, 1.55);--le-z-dropdown:1000;--le-z-sticky:1020;--le-z-fixed:1030;--le-z-modal-backdrop:1040;--le-z-modal:1050;--le-z-popover:1060;--le-z-tooltip:1070}.header-is-shrunk .hidden-on-shrink{display:none}\";\n"],"version":3}
@@ -99,11 +99,11 @@ const LeStringInput = /*@__PURE__*/ proxyCustomElement(class LeStringInput exten
99
99
  ev.stopPropagation();
100
100
  };
101
101
  render() {
102
- return (h("le-component", { key: 'db58477a8aad248ec99e39e2949df2fd7470d1d8', component: "le-string-input", hostClass: classnames({ disabled: this.disabled }) }, h("div", { key: '213727813a87a8b11b48c4f3007b6f0575a75369', class: "le-input-wrapper" }, this.label && (h("label", { key: '981efc4b5ea8bb9459642c6b95bb377f199aa184', class: "le-input-label", htmlFor: this.name }, this.label)), h("div", { key: 'b66b4e42ee3830c28443ccc01916b430386dcfac', class: "le-input-container", part: "container" }, this.iconStart && h("span", { key: 'e4d2eb3fb5e3acddc8eeccc2c9368b96ae7da10b', class: "icon-start" }, this.iconStart), h("input", { key: 'adb72263beb77ae7ae036e90213b98e68044cced', ref: el => {
102
+ return (h("le-component", { key: 'c28242025bd09955e03d3aa7e5f7d1fd0693817f', component: "le-string-input", hostClass: classnames({ disabled: this.disabled }) }, h("div", { key: 'e995b83c1668d4818c634f39acb16683baef844c', class: "le-input-wrapper" }, this.label && (h("label", { key: 'cb0a17558b2a07bf211bdb5ecd7d4e8aec9554cc', class: "le-input-label", htmlFor: this.name }, this.label)), h("div", { key: 'c50a27c4e0732c05b37d6ff6ea77e74f05e942d6', class: "le-input-container", part: "container" }, this.iconStart && h("span", { key: 'f9e01713742664671938e66498a407fd0d408b5f', class: "icon-start" }, this.iconStart), h("input", { key: '2357145ebdb43bc6eb52450508f707699253da91', ref: el => {
103
103
  if (this.inputRef) {
104
104
  this.inputRef(el);
105
105
  }
106
- }, id: this.name, type: this.type, name: this.name, value: this.value, placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInput, onChange: this.handleChange, onClick: this.handleClick }), this.iconEnd && h("span", { key: '49aaa72cd3512ffd5efc543921ef6c4fadc62e61', class: "icon-end" }, this.iconEnd)), !this.hideDescription && (h("div", { key: '5d19624840df8a25ee1e975680b279271015c2b9', class: "le-input-description" }, h("le-slot", { key: '32bd340c8ad780d684470d8bb62bb561c29ddfc0', name: "description", type: "text", tag: "p", label: "Description" }, h("slot", { key: '72fd752c60411b60b6a3f7394d48db2c45e2126b', name: "description" })))))));
106
+ }, id: this.name, type: this.type, name: this.name, value: this.value, placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInput, onChange: this.handleChange, onClick: this.handleClick }), this.iconEnd && h("span", { key: '22ea7682c0e74910905d08fceeab2b4d0270af60', class: "icon-end" }, this.iconEnd)), !this.hideDescription && (h("div", { key: 'e281b9cc97935296dda68bf52fa3318997a6c39d', class: "le-input-description" }, h("le-slot", { key: '438f02f1a197968f9d5aa751214a680fc17eb2ba', name: "description", type: "text", tag: "p", label: "Description" }, h("slot", { key: '3e52eb43aede04916d0004449fc03c4987d62715', name: "description" })))))));
107
107
  }
108
108
  static get style() { return leStringInputCss(); }
109
109
  }, [769, "le-string-input", {
@@ -514,7 +514,7 @@ const LeSlot = /*@__PURE__*/ proxyCustomElement(class LeSlot extends HTMLElement
514
514
  render() {
515
515
  const displayLabel = this.label || this.name;
516
516
  // Always render the same structure, CSS handles visibility via .admin-mode class
517
- return (h(Host, { key: '2ec5bf87657767e9f173e3a54f6574314d1b9a5c', class: {
517
+ return (h(Host, { key: '0b2b3edf3690ed9769438ef019111638e5de0276', class: {
518
518
  'admin-mode': this.adminMode,
519
519
  'invalid-html': !this.isValidHtml,
520
520
  }, role: this.adminMode ? 'region' : undefined, "aria-label": this.adminMode ? `Slot: ${displayLabel}` : undefined, "data-slot-name": this.name, "data-slot-type": this.type, "data-allowed": this.allowedComponents, "data-multiple": this.multiple, "data-required": this.required }, this.adminMode ? (h("div", { class: "le-slot-container" }, h("div", { class: classnames('le-slot-header', {
@@ -801,13 +801,13 @@ const LeSelect = /*@__PURE__*/ proxyCustomElement(class LeSelect extends HTMLEle
801
801
  }
802
802
  render() {
803
803
  const hasValue = this.selectedOption !== undefined;
804
- return (h("le-component", { key: 'a0ca432db47f107068c4e042879e3d4dd414d06e', component: "le-select" }, h("le-dropdown-base", { key: '66f09301db0dcfada04db5e1ab29816e8f8d3b4d', ref: el => (this.dropdownEl = el), options: this.parsedOptions, value: this.value, disabled: this.disabled, filterFn: this.searchable ? this.filterOption : undefined, filterQuery: this.searchQuery, onLeOptionSelect: this.handleOptionSelect, onLeDropdownOpen: this.handleDropdownOpen, onLeDropdownClose: this.handleDropdownClose, fullWidth: this.fullWidth }, h("le-button", { key: '7fd27c00d95a170074790ffdc717642d8461a2c6', variant: this.variant && this.variant !== 'default' ? this.variant : 'outlined', slot: "trigger", align: "space-between", class: {
804
+ return (h("le-component", { key: '6f2eebab3f0afcef9d1801812ad0cc4cfb4456b6', component: "le-select" }, h("le-dropdown-base", { key: 'eb34e28681f84fbd5a75d415facd9f1f79012010', ref: el => (this.dropdownEl = el), options: this.parsedOptions, value: this.value, disabled: this.disabled, filterFn: this.searchable ? this.filterOption : undefined, filterQuery: this.searchQuery, onLeOptionSelect: this.handleOptionSelect, onLeDropdownOpen: this.handleDropdownOpen, onLeDropdownClose: this.handleDropdownClose, fullWidth: this.fullWidth }, h("le-button", { key: 'e8507bfd78aa3267fb2513810599361cd223f8eb', variant: this.variant && this.variant !== 'default' ? this.variant : 'outlined', slot: "trigger", align: "space-between", class: {
805
805
  'select-trigger': true,
806
806
  'has-value': hasValue,
807
807
  'is-open': this.open,
808
808
  }, mode: "default", size: this.size, disabled: this.disabled, "aria-haspopup": "listbox", "aria-expanded": this.open ? 'true' : 'false', onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown, fullWidth: this.fullWidth, iconStart: hasValue && this.selectedOption?.iconStart
809
809
  ? this.renderIcon(this.selectedOption.iconStart)
810
- : null, iconEnd: h("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "2" }, h("path", { d: "M4 6l4 4 4-4" })) }, h("span", { key: '6fca1cffb7daf5884b39d229d34062b3cdba9e08', class: "trigger-label" }, hasValue ? this.selectedOption.label : this.placeholder)), this.searchable && this.open && (h("div", { key: 'c81b509a8c60ce714ad690afa4a4f216e5202179', class: "multiselect-search", slot: "header" }, h("le-string-input", { key: 'ff765da2ab677ece47247c9814d0ca1c33c8e755', mode: "default", inputRef: el => (this.inputEl = el), class: "search-input", placeholder: "Search...", value: this.searchQuery, onInput: this.handleSearchInput })))), this.name && h("input", { key: '7ed21492c742b5c48fe9eb42d9a3ac8cbfc42262', type: "hidden", name: this.name, value: this.value?.toString() ?? '' })));
810
+ : null, iconEnd: h("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "2" }, h("path", { d: "M4 6l4 4 4-4" })) }, h("span", { key: 'afd07c274a9b340ed16d89844495fdf588e7ebfe', class: "trigger-label" }, hasValue ? this.selectedOption.label : this.placeholder)), this.searchable && this.open && (h("div", { key: 'baeaf8eb5ad2083d3860d9e02991d32144e23038', class: "multiselect-search", slot: "header" }, h("le-string-input", { key: '4d3a7d002fb4476db71f2e37ce44dc62cc89f2fc', mode: "default", inputRef: el => (this.inputEl = el), class: "search-input", placeholder: "Search...", value: this.searchQuery, onInput: this.handleSearchInput })))), this.name && h("input", { key: '37e3432981fda47a0bbf09bcb56851bd5dab4ca4', type: "hidden", name: this.name, value: this.value?.toString() ?? '' })));
811
811
  }
812
812
  static get watchers() { return {
813
813
  "value": ["handleValueChange"],
@@ -1,140 +1,4 @@
1
- import { proxyCustomElement, HTMLElement, h, Host, transformTag } from '@stencil/core/internal/client';
2
- import { d as defineCustomElement$2, a as defineCustomElement$3, b as defineCustomElement$4, c as defineCustomElement$5, e as defineCustomElement$8, f as defineCustomElement$9, g as defineCustomElement$a } from './le-button2.js';
3
- import { d as defineCustomElement$7 } from './le-dropdown-base2.js';
4
- import { d as defineCustomElement$6 } from './le-popover2.js';
5
-
6
- const leCollapseCss = () => `:host{--le-collapse-duration:var(--le-transition-normal);display:grid;grid-template-rows:1fr;opacity:1;transition:grid-template-rows var(--le-collapse-duration),
7
- opacity var(--le-collapse-duration)}:host([data-open="false"]),:host([open="false"]){grid-template-rows:0fr;opacity:0}:host([no-fading][data-open="false"]),:host([no-fading][open="false"]){opacity:1}.region{display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}:host([scroll-down]) .region{justify-content:flex-start}`;
8
-
9
- const LeCollapse$1 = /*@__PURE__*/ proxyCustomElement(class LeCollapse extends HTMLElement {
10
- constructor(registerHost) {
11
- super();
12
- if (registerHost !== false) {
13
- this.__registerHost();
14
- }
15
- this.__attachShadow();
16
- }
17
- get el() { return this; }
18
- /** Whether the content should be shown. */
19
- open = true;
20
- /** Whether the content should scroll down from the top when open. */
21
- scrollDown = false;
22
- /** Stop fading the content when collapsing/expanding. */
23
- noFading = false;
24
- /** If true, collapse/expand based on the nearest header shrink event. */
25
- collapseOnHeaderShrink = false;
26
- /**
27
- * Handles `leHeaderShrinkChange` events from the `le-header`.
28
- * In case multiple headers are present, only the nearest one in the DOM tree is used.
29
- */
30
- handleHeaderShrink(ev) {
31
- const e = ev;
32
- this.headerShrunk = !!e.detail?.shrunk;
33
- }
34
- headerShrunk = false;
35
- componentWillLoad() {
36
- // Stencil boolean props default to `false` when the attribute is missing.
37
- // For this component, the desired default is open=true.
38
- if (!this.el.hasAttribute('open')) {
39
- this.open = true;
40
- }
41
- }
42
- componentDidLoad() {
43
- this.applyOpenState();
44
- }
45
- onOpenChange() {
46
- this.applyOpenState();
47
- }
48
- onDrivenStateChange() {
49
- this.applyOpenState();
50
- }
51
- shouldBeOpen() {
52
- if (!this.open)
53
- return false;
54
- if (this.collapseOnHeaderShrink && this.headerShrunk)
55
- return false;
56
- return true;
57
- }
58
- applyOpenState() {
59
- const nextOpen = this.shouldBeOpen();
60
- this.el.toggleAttribute('data-open', nextOpen);
61
- }
62
- render() {
63
- return (h(Host, { key: '92c1136afc95e8180376138f12ebc8728cb315f8', "data-open": this.shouldBeOpen() ? 'true' : 'false' }, h("le-component", { key: '6adcd21ed09859542312574e59d2a9fe9ff86ab0', component: "le-collapse" }, h("div", { key: '496239294c483cac2873a3966fcd841450c631bf', class: "region", part: "region" }, h("slot", { key: 'e29e789534a390b2c9434b19ee6cad166805c138' })))));
64
- }
65
- static get watchers() { return {
66
- "open": ["onOpenChange"],
67
- "headerShrunk": ["onDrivenStateChange"]
68
- }; }
69
- static get style() { return leCollapseCss(); }
70
- }, [769, "le-collapse", {
71
- "open": [1540],
72
- "scrollDown": [516, "scroll-down"],
73
- "noFading": [516, "no-fading"],
74
- "collapseOnHeaderShrink": [516, "collapse-on-header-shrink"],
75
- "headerShrunk": [32]
76
- }, [[8, "leHeaderShrinkChange", "handleHeaderShrink"]], {
77
- "open": ["onOpenChange"],
78
- "headerShrunk": ["onDrivenStateChange"]
79
- }]);
80
- function defineCustomElement$1() {
81
- if (typeof customElements === "undefined") {
82
- return;
83
- }
84
- const components = ["le-collapse", "le-button", "le-checkbox", "le-component", "le-dropdown-base", "le-popover", "le-popup", "le-select", "le-slot", "le-string-input"];
85
- components.forEach(tagName => { switch (tagName) {
86
- case "le-collapse":
87
- if (!customElements.get(transformTag(tagName))) {
88
- customElements.define(transformTag(tagName), LeCollapse$1);
89
- }
90
- break;
91
- case "le-button":
92
- if (!customElements.get(transformTag(tagName))) {
93
- defineCustomElement$a();
94
- }
95
- break;
96
- case "le-checkbox":
97
- if (!customElements.get(transformTag(tagName))) {
98
- defineCustomElement$9();
99
- }
100
- break;
101
- case "le-component":
102
- if (!customElements.get(transformTag(tagName))) {
103
- defineCustomElement$8();
104
- }
105
- break;
106
- case "le-dropdown-base":
107
- if (!customElements.get(transformTag(tagName))) {
108
- defineCustomElement$7();
109
- }
110
- break;
111
- case "le-popover":
112
- if (!customElements.get(transformTag(tagName))) {
113
- defineCustomElement$6();
114
- }
115
- break;
116
- case "le-popup":
117
- if (!customElements.get(transformTag(tagName))) {
118
- defineCustomElement$5();
119
- }
120
- break;
121
- case "le-select":
122
- if (!customElements.get(transformTag(tagName))) {
123
- defineCustomElement$4();
124
- }
125
- break;
126
- case "le-slot":
127
- if (!customElements.get(transformTag(tagName))) {
128
- defineCustomElement$3();
129
- }
130
- break;
131
- case "le-string-input":
132
- if (!customElements.get(transformTag(tagName))) {
133
- defineCustomElement$2();
134
- }
135
- break;
136
- } });
137
- }
1
+ import { L as LeCollapse$1, d as defineCustomElement$1 } from './le-collapse2.js';
138
2
 
139
3
  const LeCollapse = LeCollapse$1;
140
4
  const defineCustomElement = defineCustomElement$1;
@@ -1 +1 @@
1
- {"file":"le-collapse.js","mappings":";;;;;AAAA,MAAM,aAAa,GAAG,MAAM,CAAC;AAC7B,uVAAuV,CAAC;;MCwB3UA,YAAU,iBAAAC,kBAAA,CAAA,MAAA,UAAA,SAAA,WAAA,CAAA;;;;;;;;;;IAImB,IAAI,GAAY,IAAI;;IAGT,UAAU,GAAY,KAAK;;IAG7B,QAAQ,GAAY,KAAK;;IAGT,sBAAsB,GACrF,KAAK;AAEP;;;AAGG;AAEH,IAAA,kBAAkB,CAAC,EAAS,EAAA;QAC1B,MAAM,CAAC,GAAG,EAAsC;QAChD,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM;;IAGvB,YAAY,GAAY,KAAK;IAE9C,iBAAiB,GAAA;;;QAGf,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;;IAIpB,gBAAgB,GAAA;QACd,IAAI,CAAC,cAAc,EAAE;;IAIb,YAAY,GAAA;QACpB,IAAI,CAAC,cAAc,EAAE;;IAIb,mBAAmB,GAAA;QAC3B,IAAI,CAAC,cAAc,EAAE;;IAGf,YAAY,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,KAAK;AAC5B,QAAA,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,KAAK;AAClE,QAAA,OAAO,IAAI;;IAGL,cAAc,GAAA;AACpB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE;QACpC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC;;IAGhD,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,WAAA,EAAY,IAAI,CAAC,YAAY,EAAE,GAAG,MAAM,GAAG,OAAO,EAAA,EACrD,CAAc,CAAA,cAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,SAAS,EAAC,aAAa,EAAA,EACnC,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAA,EAC/B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,CACO,CACV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["LeCollapse","__stencil_proxyCustomElement"],"sources":["src/components/le-collapse/le-collapse.css?tag=le-collapse&encapsulation=shadow","src/components/le-collapse/le-collapse.tsx"],"sourcesContent":[":host {\n --le-collapse-duration: var(--le-transition-normal);\n\n display: grid;\n grid-template-rows: 1fr;\n opacity: 1;\n transition:\n grid-template-rows var(--le-collapse-duration),\n opacity var(--le-collapse-duration);\n}\n\n:host([data-open=\"false\"]),\n:host([open=\"false\"]) {\n grid-template-rows: 0fr;\n opacity: 0;\n}\n:host([no-fading][data-open=\"false\"]),\n:host([no-fading][open=\"false\"]) {\n opacity: 1;\n}\n\n.region {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n overflow: hidden;\n}\n\n:host([scroll-down]) .region {\n justify-content: flex-start;\n}\n","import { Component, Element, h, Host, Listen, Prop, State, Watch } from '@stencil/core';\n\nexport type LeCollapseAnimation = 'fade' | 'collapse' | 'fade-collapse';\n\n/**\n * Animated show/hide wrapper.\n *\n * Supports height collapse (auto->0) and/or fading.\n * Can optionally listen to the nearest `le-header` shrink events.\n *\n * @slot - Content to animate\n *\n * @cssprop --le-collapse-duration - Transition duration\n *\n * @csspart region - Collapsible region\n * @csspart content - Inner content\n *\n * @cmsEditable true\n * @cmsCategory Layout\n */\n@Component({\n tag: 'le-collapse',\n styleUrl: 'le-collapse.css',\n shadow: true,\n})\nexport class LeCollapse {\n @Element() el: HTMLElement;\n\n /** Whether the content should be shown. */\n @Prop({ mutable: true, reflect: true }) open: boolean = true;\n\n /** Whether the content should scroll down from the top when open. */\n @Prop({ attribute: 'scroll-down', reflect: true }) scrollDown: boolean = false;\n\n /** Stop fading the content when collapsing/expanding. */\n @Prop({ attribute: 'no-fading', reflect: true }) noFading: boolean = false;\n\n /** If true, collapse/expand based on the nearest header shrink event. */\n @Prop({ attribute: 'collapse-on-header-shrink', reflect: true }) collapseOnHeaderShrink: boolean =\n false;\n\n /**\n * Handles `leHeaderShrinkChange` events from the `le-header`.\n * In case multiple headers are present, only the nearest one in the DOM tree is used.\n */\n @Listen('leHeaderShrinkChange', { target: 'window' })\n handleHeaderShrink(ev: Event) {\n const e = ev as CustomEvent<{ shrunk: boolean }>;\n this.headerShrunk = !!e.detail?.shrunk;\n }\n\n @State() private headerShrunk: boolean = false;\n\n componentWillLoad() {\n // Stencil boolean props default to `false` when the attribute is missing.\n // For this component, the desired default is open=true.\n if (!this.el.hasAttribute('open')) {\n this.open = true;\n }\n }\n\n componentDidLoad() {\n this.applyOpenState();\n }\n\n @Watch('open')\n protected onOpenChange() {\n this.applyOpenState();\n }\n\n @Watch('headerShrunk')\n protected onDrivenStateChange() {\n this.applyOpenState();\n }\n\n private shouldBeOpen() {\n if (!this.open) return false;\n if (this.collapseOnHeaderShrink && this.headerShrunk) return false;\n return true;\n }\n\n private applyOpenState() {\n const nextOpen = this.shouldBeOpen();\n this.el.toggleAttribute('data-open', nextOpen);\n }\n\n render() {\n return (\n <Host data-open={this.shouldBeOpen() ? 'true' : 'false'}>\n <le-component component=\"le-collapse\">\n <div class=\"region\" part=\"region\">\n <slot></slot>\n </div>\n </le-component>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"le-collapse.js","mappings":";;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
@@ -0,0 +1,138 @@
1
+ import { proxyCustomElement, HTMLElement, h, Host, transformTag } from '@stencil/core/internal/client';
2
+ import { d as defineCustomElement$1, a as defineCustomElement$2, b as defineCustomElement$3, c as defineCustomElement$4, e as defineCustomElement$7, f as defineCustomElement$8, g as defineCustomElement$9 } from './le-button2.js';
3
+ import { d as defineCustomElement$6 } from './le-dropdown-base2.js';
4
+ import { d as defineCustomElement$5 } from './le-popover2.js';
5
+
6
+ const leCollapseCss = () => `:host{--le-collapse-duration:var(--le-transition-normal);display:grid;grid-template-rows:1fr;opacity:1;transition:grid-template-rows var(--le-collapse-duration),
7
+ opacity var(--le-collapse-duration)}:host([data-open="false"]),:host([closed]){grid-template-rows:0fr;opacity:0}:host([no-fading][data-open="false"]),:host([no-fading][closed]){opacity:1}.region{display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}.region.scroll-down{justify-content:flex-start}`;
8
+
9
+ const LeCollapse = /*@__PURE__*/ proxyCustomElement(class LeCollapse extends HTMLElement {
10
+ constructor(registerHost) {
11
+ super();
12
+ if (registerHost !== false) {
13
+ this.__registerHost();
14
+ }
15
+ this.__attachShadow();
16
+ }
17
+ get el() { return this; }
18
+ /**
19
+ * Since Stencil boolean props default to `false` when the attribute is missing.
20
+ * instead of `open` defaulting to `true`, using a `closed` prop.
21
+ */
22
+ closed = false;
23
+ /** Whether the content should scroll down from the top when open. */
24
+ scrollDown = false;
25
+ /** Stop fading the content when collapsing/expanding. */
26
+ noFading = false;
27
+ /** If true, collapse/expand based on the nearest header shrink event. */
28
+ collapseOnHeaderShrink = false;
29
+ /**
30
+ * Handles `leHeaderShrinkChange` events from the `le-header`.
31
+ * In case multiple headers are present, only the nearest one in the DOM tree is used.
32
+ */
33
+ handleHeaderShrink(ev) {
34
+ const e = ev;
35
+ this.headerShrunk = !!e.detail?.shrunk;
36
+ }
37
+ headerShrunk = false;
38
+ componentDidLoad() {
39
+ this.applyOpenState();
40
+ }
41
+ onOpenChange() {
42
+ this.applyOpenState();
43
+ }
44
+ onDrivenStateChange() {
45
+ this.applyOpenState();
46
+ }
47
+ shouldBeOpen() {
48
+ if (this.closed)
49
+ return false;
50
+ if (this.collapseOnHeaderShrink && this.headerShrunk)
51
+ return false;
52
+ return true;
53
+ }
54
+ applyOpenState() {
55
+ const nextOpen = this.shouldBeOpen();
56
+ this.el.toggleAttribute('data-open', nextOpen);
57
+ }
58
+ render() {
59
+ return (h(Host, { key: '946501d440fa391cfea13283072c387fd1e98b65', "data-open": this.shouldBeOpen() ? 'true' : 'false' }, h("le-component", { key: 'fb5c7e9f9e15dc3ef440f9703977ee7f09ffe676', component: "le-collapse" }, h("div", { key: '83ec865adb8a11cc9de7a6a173b85245414360e8', class: { 'region': true, 'scroll-down': this.scrollDown }, part: "region" }, h("slot", { key: '6b402e2beac8bde188da48719f47e5f9fc12581d' })))));
60
+ }
61
+ static get watchers() { return {
62
+ "open": ["onOpenChange"],
63
+ "headerShrunk": ["onDrivenStateChange"]
64
+ }; }
65
+ static get style() { return leCollapseCss(); }
66
+ }, [769, "le-collapse", {
67
+ "closed": [1540],
68
+ "scrollDown": [516, "scroll-down"],
69
+ "noFading": [516, "no-fading"],
70
+ "collapseOnHeaderShrink": [516, "collapse-on-header-shrink"],
71
+ "headerShrunk": [32]
72
+ }, [[8, "leHeaderShrinkChange", "handleHeaderShrink"]], {
73
+ "open": ["onOpenChange"],
74
+ "headerShrunk": ["onDrivenStateChange"]
75
+ }]);
76
+ function defineCustomElement() {
77
+ if (typeof customElements === "undefined") {
78
+ return;
79
+ }
80
+ const components = ["le-collapse", "le-button", "le-checkbox", "le-component", "le-dropdown-base", "le-popover", "le-popup", "le-select", "le-slot", "le-string-input"];
81
+ components.forEach(tagName => { switch (tagName) {
82
+ case "le-collapse":
83
+ if (!customElements.get(transformTag(tagName))) {
84
+ customElements.define(transformTag(tagName), LeCollapse);
85
+ }
86
+ break;
87
+ case "le-button":
88
+ if (!customElements.get(transformTag(tagName))) {
89
+ defineCustomElement$9();
90
+ }
91
+ break;
92
+ case "le-checkbox":
93
+ if (!customElements.get(transformTag(tagName))) {
94
+ defineCustomElement$8();
95
+ }
96
+ break;
97
+ case "le-component":
98
+ if (!customElements.get(transformTag(tagName))) {
99
+ defineCustomElement$7();
100
+ }
101
+ break;
102
+ case "le-dropdown-base":
103
+ if (!customElements.get(transformTag(tagName))) {
104
+ defineCustomElement$6();
105
+ }
106
+ break;
107
+ case "le-popover":
108
+ if (!customElements.get(transformTag(tagName))) {
109
+ defineCustomElement$5();
110
+ }
111
+ break;
112
+ case "le-popup":
113
+ if (!customElements.get(transformTag(tagName))) {
114
+ defineCustomElement$4();
115
+ }
116
+ break;
117
+ case "le-select":
118
+ if (!customElements.get(transformTag(tagName))) {
119
+ defineCustomElement$3();
120
+ }
121
+ break;
122
+ case "le-slot":
123
+ if (!customElements.get(transformTag(tagName))) {
124
+ defineCustomElement$2();
125
+ }
126
+ break;
127
+ case "le-string-input":
128
+ if (!customElements.get(transformTag(tagName))) {
129
+ defineCustomElement$1();
130
+ }
131
+ break;
132
+ } });
133
+ }
134
+
135
+ export { LeCollapse as L, defineCustomElement as d };
136
+ //# sourceMappingURL=le-collapse2.js.map
137
+
138
+ //# sourceMappingURL=le-collapse2.js.map
@@ -0,0 +1 @@
1
+ {"file":"le-collapse2.js","mappings":";;;;;AAAA,MAAM,aAAa,GAAG,MAAM,CAAC;AAC7B,kUAAkU,CAAC;;MCwBtT,UAAU,iBAAAA,kBAAA,CAAA,MAAA,UAAA,SAAA,WAAA,CAAA;;;;;;;;;AAGrB;;;AAGG;IACqC,MAAM,GAAY,KAAK;;IAGZ,UAAU,GAAY,KAAK;;IAG7B,QAAQ,GAAY,KAAK;;IAGT,sBAAsB,GACrF,KAAK;AAEP;;;AAGG;AAEH,IAAA,kBAAkB,CAAC,EAAS,EAAA;QAC1B,MAAM,CAAC,GAAG,EAAsC;QAChD,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM;;IAGvB,YAAY,GAAY,KAAK;IAE9C,gBAAgB,GAAA;QACd,IAAI,CAAC,cAAc,EAAE;;IAIb,YAAY,GAAA;QACpB,IAAI,CAAC,cAAc,EAAE;;IAIb,mBAAmB,GAAA;QAC3B,IAAI,CAAC,cAAc,EAAE;;IAGf,YAAY,GAAA;QAClB,IAAI,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,KAAK;AAC7B,QAAA,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,KAAK;AAClE,QAAA,OAAO,IAAI;;IAGL,cAAc,GAAA;AACpB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE;QACpC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC;;IAGhD,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,WAAA,EAAY,IAAI,CAAC,YAAY,EAAE,GAAG,MAAM,GAAG,OAAO,EAAA,EACrD,CAAc,CAAA,cAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,SAAS,EAAC,aAAa,EAAA,EACnC,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAC,QAAQ,EAAA,EAC3E,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,CACO,CACV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement"],"sources":["src/components/le-collapse/le-collapse.css?tag=le-collapse&encapsulation=shadow","src/components/le-collapse/le-collapse.tsx"],"sourcesContent":[":host {\n --le-collapse-duration: var(--le-transition-normal);\n\n display: grid;\n grid-template-rows: 1fr;\n opacity: 1;\n transition:\n grid-template-rows var(--le-collapse-duration),\n opacity var(--le-collapse-duration);\n}\n\n:host([data-open=\"false\"]),\n:host([closed]) {\n grid-template-rows: 0fr;\n opacity: 0;\n}\n:host([no-fading][data-open=\"false\"]),\n:host([no-fading][closed]) {\n opacity: 1;\n}\n\n.region {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n overflow: hidden;\n}\n\n.region.scroll-down {\n justify-content: flex-start;\n}\n","import { Component, Element, h, Host, Listen, Prop, State, Watch } from '@stencil/core';\n\nexport type LeCollapseAnimation = 'fade' | 'collapse' | 'fade-collapse';\n\n/**\n * Animated show/hide wrapper.\n *\n * Supports height collapse (auto->0) and/or fading.\n * Can optionally listen to the nearest `le-header` shrink events.\n *\n * @slot - Content to animate\n *\n * @cssprop --le-collapse-duration - Transition duration\n *\n * @csspart region - Collapsible region\n * @csspart content - Inner content\n *\n * @cmsEditable true\n * @cmsCategory Layout\n */\n@Component({\n tag: 'le-collapse',\n styleUrl: 'le-collapse.css',\n shadow: true,\n})\nexport class LeCollapse {\n @Element() el: HTMLElement;\n\n /**\n * Since Stencil boolean props default to `false` when the attribute is missing.\n * instead of `open` defaulting to `true`, using a `closed` prop.\n */\n @Prop({ mutable: true, reflect: true }) closed: boolean = false;\n\n /** Whether the content should scroll down from the top when open. */\n @Prop({ attribute: 'scroll-down', reflect: true }) scrollDown: boolean = false;\n\n /** Stop fading the content when collapsing/expanding. */\n @Prop({ attribute: 'no-fading', reflect: true }) noFading: boolean = false;\n\n /** If true, collapse/expand based on the nearest header shrink event. */\n @Prop({ attribute: 'collapse-on-header-shrink', reflect: true }) collapseOnHeaderShrink: boolean =\n false;\n\n /**\n * Handles `leHeaderShrinkChange` events from the `le-header`.\n * In case multiple headers are present, only the nearest one in the DOM tree is used.\n */\n @Listen('leHeaderShrinkChange', { target: 'window' })\n handleHeaderShrink(ev: Event) {\n const e = ev as CustomEvent<{ shrunk: boolean }>;\n this.headerShrunk = !!e.detail?.shrunk;\n }\n\n @State() private headerShrunk: boolean = false;\n\n componentDidLoad() {\n this.applyOpenState();\n }\n\n @Watch('open')\n protected onOpenChange() {\n this.applyOpenState();\n }\n\n @Watch('headerShrunk')\n protected onDrivenStateChange() {\n this.applyOpenState();\n }\n\n private shouldBeOpen() {\n if (this.closed) return false;\n if (this.collapseOnHeaderShrink && this.headerShrunk) return false;\n return true;\n }\n\n private applyOpenState() {\n const nextOpen = this.shouldBeOpen();\n this.el.toggleAttribute('data-open', nextOpen);\n }\n\n render() {\n return (\n <Host data-open={this.shouldBeOpen() ? 'true' : 'false'}>\n <le-component component=\"le-collapse\">\n <div class={{ 'region': true, 'scroll-down': this.scrollDown }} part=\"region\">\n <slot></slot>\n </div>\n </le-component>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface LeIcon extends Components.LeIcon, HTMLElement {}
4
+ export const LeIcon: {
5
+ prototype: LeIcon;
6
+ new (): LeIcon;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,9 @@
1
+ import { L as LeIcon$1, d as defineCustomElement$1 } from './le-icon2.js';
2
+
3
+ const LeIcon = LeIcon$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { LeIcon, defineCustomElement };
7
+ //# sourceMappingURL=le-icon.js.map
8
+
9
+ //# sourceMappingURL=le-icon.js.map
@@ -0,0 +1 @@
1
+ {"file":"le-icon.js","mappings":";;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
@@ -0,0 +1,133 @@
1
+ import { proxyCustomElement, HTMLElement, Build, h, transformTag, getAssetPath } from '@stencil/core/internal/client';
2
+
3
+ const leIconCss = () => `:host{display:inline-block;width:var(--le-icon-size, var(--le-size-4));height:var(--le-icon-size, var(--le-size-4));color:var(--le-icon-color, var(--le-color-text-primary))}:host svg{display:block;fill:currentColor}`;
4
+
5
+ const iconCache = {};
6
+ const requestCache = {};
7
+ async function fetchIcon({ name }) {
8
+ if (iconCache[name]) {
9
+ return iconCache[name];
10
+ }
11
+ if (!requestCache[name]) {
12
+ requestCache[name] = fetch(getAssetPath(`./assets/icons/${name}.json`))
13
+ .then(resp => resp.json())
14
+ .catch(() => {
15
+ console.error(`"${name}" is not a valid name`);
16
+ return '';
17
+ });
18
+ }
19
+ const path = await requestCache[name];
20
+ iconCache[name] = path;
21
+ return path;
22
+ }
23
+ const LeIcon = /*@__PURE__*/ proxyCustomElement(class LeIcon extends HTMLElement {
24
+ constructor(registerHost) {
25
+ super();
26
+ if (registerHost !== false) {
27
+ this.__registerHost();
28
+ }
29
+ this.__attachShadow();
30
+ }
31
+ get el() { return this; }
32
+ /**
33
+ * Name of the icon to display. Corresponds to a JSON file in the assets folder.
34
+ * For example, "search" will load the "search.json" file.
35
+ */
36
+ name = null;
37
+ /**
38
+ * Size of the icon in pixels. Default is 16.
39
+ */
40
+ size = 16;
41
+ iconData = null;
42
+ visible = false;
43
+ async loadIconData() {
44
+ const { name, visible } = this;
45
+ if (!Build.isBrowser || !name || !visible) {
46
+ return;
47
+ }
48
+ this.iconData = await fetchIcon({ name });
49
+ }
50
+ intersectionObserver;
51
+ connectedCallback() {
52
+ this.waitUntilVisible(() => {
53
+ this.visible = true;
54
+ this.loadIconData();
55
+ });
56
+ }
57
+ disconnectedCallback() {
58
+ if (this.intersectionObserver) {
59
+ this.intersectionObserver.disconnect();
60
+ this.intersectionObserver = null;
61
+ }
62
+ }
63
+ async componentWillLoad() {
64
+ this.loadIconData();
65
+ }
66
+ waitUntilVisible(callback) {
67
+ if (!Build.isBrowser ||
68
+ typeof window === 'undefined' ||
69
+ !window.IntersectionObserver) {
70
+ callback();
71
+ return;
72
+ }
73
+ this.intersectionObserver = new IntersectionObserver(entries => {
74
+ entries.forEach(entry => {
75
+ if (entry.isIntersecting) {
76
+ this.intersectionObserver.disconnect();
77
+ this.intersectionObserver = null;
78
+ callback();
79
+ }
80
+ });
81
+ }, { rootMargin: '50px' });
82
+ this.intersectionObserver.observe(this.el);
83
+ }
84
+ /**
85
+ * Renders the SVG content out of a JSON data in a format:
86
+ * { "viewBox": "...", children: [{ "tag": "g", ""children": [ ... ], ...attrs }, ...] }
87
+ *
88
+ * @returns JSX.Element | null
89
+ */
90
+ renderSVGContent(children) {
91
+ if (!children || children.length === 0) {
92
+ return null;
93
+ }
94
+ const createElement = node => {
95
+ const { tag, children, ...attrs } = node;
96
+ return h(tag, attrs, children ? children.map(createElement) : null);
97
+ };
98
+ const svgElements = children.map(createElement);
99
+ return svgElements;
100
+ }
101
+ render() {
102
+ return (h("svg", { key: 'bf1ded84a38f5d8fdb1723476f4709dc58f71def', xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", height: this.size, width: this.size, viewBox: this.iconData?.viewBox || `0 0 ${this.size} ${this.size}` }, this.renderSVGContent(this.iconData?.children)));
103
+ }
104
+ static get watchers() { return {
105
+ "name": ["loadIconData"]
106
+ }; }
107
+ static get style() { return leIconCss(); }
108
+ }, [769, "le-icon", {
109
+ "name": [1],
110
+ "size": [2],
111
+ "iconData": [32],
112
+ "visible": [32]
113
+ }, undefined, {
114
+ "name": ["loadIconData"]
115
+ }]);
116
+ function defineCustomElement() {
117
+ if (typeof customElements === "undefined") {
118
+ return;
119
+ }
120
+ const components = ["le-icon"];
121
+ components.forEach(tagName => { switch (tagName) {
122
+ case "le-icon":
123
+ if (!customElements.get(transformTag(tagName))) {
124
+ customElements.define(transformTag(tagName), LeIcon);
125
+ }
126
+ break;
127
+ } });
128
+ }
129
+
130
+ export { LeIcon as L, defineCustomElement as d };
131
+ //# sourceMappingURL=le-icon2.js.map
132
+
133
+ //# sourceMappingURL=le-icon2.js.map
@@ -0,0 +1 @@
1
+ {"file":"le-icon2.js","mappings":";;AAAA,MAAM,SAAS,GAAG,MAAM,CAAC,uNAAuN,CAAC;;ACMjP,MAAM,SAAS,GAAG,EAAE;AACpB,MAAM,YAAY,GAAG,EAAE;AAEvB,eAAe,SAAS,CAAC,EAAE,IAAI,EAAE,EAAA;AAC/B,IAAA,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;AACnB,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC;;AAExB,IAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AACvB,QAAA,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAkB,eAAA,EAAA,IAAI,CAAO,KAAA,CAAA,CAAC;aACnE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;aACxB,KAAK,CAAC,MAAK;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAA,qBAAA,CAAuB,CAAC;AAC9C,YAAA,OAAO,EAAE;AACX,SAAC,CAAC;;AAGN,IAAA,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC;AACrC,IAAA,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI;AAEtB,IAAA,OAAO,IAAI;AACb;MAOa,MAAM,iBAAAA,kBAAA,CAAA,MAAA,MAAA,SAAA,WAAA,CAAA;;;;;;;;;AAGjB;;;AAGG;IACK,IAAI,GAAW,IAAI;AAE3B;;AAEG;IACK,IAAI,GAAW,EAAE;IAER,QAAQ,GAAQ,IAAI;IAEpB,OAAO,GAAG,KAAK;AAET,IAAA,MAAM,YAAY,GAAA;AACvC,QAAA,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;QAE9B,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;YACzC;;QAGF,IAAI,CAAC,QAAQ,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;;AAGnC,IAAA,oBAAoB;IAE5B,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAK;AACzB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;YACnB,IAAI,CAAC,YAAY,EAAE;AACrB,SAAC,CAAC;;IAGJ,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE;AACtC,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;;;AAIpC,IAAA,MAAM,iBAAiB,GAAA;QACrB,IAAI,CAAC,YAAY,EAAE;;AAGb,IAAA,gBAAgB,CAAC,QAAoB,EAAA;QAC3C,IACE,CAAC,KAAK,CAAC,SAAS;YAChB,OAAO,MAAM,KAAK,WAAW;AAC7B,YAAA,CAAE,MAAc,CAAC,oBAAoB,EACrC;AACA,YAAA,QAAQ,EAAE;YACV;;QAGF,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAClD,OAAO,IAAG;AACR,YAAA,OAAO,CAAC,OAAO,CAAC,KAAK,IAAG;AACtB,gBAAA,IAAI,KAAK,CAAC,cAAc,EAAE;AACxB,oBAAA,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE;AACtC,oBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;AAChC,oBAAA,QAAQ,EAAE;;AAEd,aAAC,CAAC;AACJ,SAAC,EACD,EAAE,UAAU,EAAE,MAAM,EAAE,CACvB;QAED,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;;AAG5C;;;;;AAKG;AACK,IAAA,gBAAgB,CAAC,QAAgB,EAAA;QACvC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACtC,YAAA,OAAO,IAAI;;AAGb,QAAA,MAAM,aAAa,GAAG,IAAI,IAAG;YAC3B,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI;YACxC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;AACrE,SAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;AAC/C,QAAA,OAAO,WAAW;;IAGpB,MAAM,GAAA;AACJ,QAAA,QACE,CACE,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,4BAA4B,EAClC,IAAI,EAAC,cAAc,EACnB,MAAM,EAAE,IAAI,CAAC,IAAI,EACjB,KAAK,EAAE,IAAI,CAAC,IAAI,EAChB,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAO,IAAA,EAAA,IAAI,CAAC,IAAI,CAAI,CAAA,EAAA,IAAI,CAAC,IAAI,CAAE,CAAA,EAAA,EAEjE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement"],"sources":["src/components/le-icon/le-icon.css?tag=le-icon&encapsulation=shadow","src/components/le-icon/le-icon.tsx"],"sourcesContent":[":host {\n display: inline-block;\n\n width: var(--le-icon-size, var(--le-size-4));\n height: var(--le-icon-size, var(--le-size-4));\n\n color: var(--le-icon-color, var(--le-color-text-primary));\n}\n\n:host svg {\n display: block;\n fill: currentColor;\n}\n","/**\n * Based on the script from Paul Andreson's article:\n * https://paulcpederson.com/articles/stencil-icons/\n */\nimport { Build, Component, Element, getAssetPath, h, Prop, State, Watch } from '@stencil/core';\n\nconst iconCache = {};\nconst requestCache = {};\n\nasync function fetchIcon({ name }): Promise<string> {\n if (iconCache[name]) {\n return iconCache[name];\n }\n if (!requestCache[name]) {\n requestCache[name] = fetch(getAssetPath(`./assets/icons/${name}.json`))\n .then(resp => resp.json())\n .catch(() => {\n console.error(`\"${name}\" is not a valid name`);\n return '';\n });\n }\n\n const path = await requestCache[name];\n iconCache[name] = path;\n\n return path;\n}\n\n@Component({\n tag: 'le-icon',\n styleUrl: 'le-icon.css',\n shadow: true,\n})\nexport class LeIcon {\n @Element() el: HTMLElement;\n\n /**\n * Name of the icon to display. Corresponds to a JSON file in the assets folder.\n * For example, \"search\" will load the \"search.json\" file.\n */\n @Prop() name: string = null;\n\n /**\n * Size of the icon in pixels. Default is 16.\n */\n @Prop() size: number = 16;\n\n @State() private iconData: any = null;\n\n @State() private visible = false;\n\n @Watch('name') private async loadIconData(): Promise<void> {\n const { name, visible } = this;\n\n if (!Build.isBrowser || !name || !visible) {\n return;\n }\n\n this.iconData = await fetchIcon({ name });\n }\n\n private intersectionObserver: IntersectionObserver;\n\n connectedCallback(): void {\n this.waitUntilVisible(() => {\n this.visible = true;\n this.loadIconData();\n });\n }\n\n disconnectedCallback(): void {\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect();\n this.intersectionObserver = null;\n }\n }\n\n async componentWillLoad(): Promise<void> {\n this.loadIconData();\n }\n\n private waitUntilVisible(callback: () => void): void {\n if (\n !Build.isBrowser ||\n typeof window === 'undefined' ||\n !(window as any).IntersectionObserver\n ) {\n callback();\n return;\n }\n\n this.intersectionObserver = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n this.intersectionObserver.disconnect();\n this.intersectionObserver = null;\n callback();\n }\n });\n },\n { rootMargin: '50px' },\n );\n\n this.intersectionObserver.observe(this.el);\n }\n\n /**\n * Renders the SVG content out of a JSON data in a format:\n * { \"viewBox\": \"...\", children: [{ \"tag\": \"g\", \"\"children\": [ ... ], ...attrs }, ...] }\n *\n * @returns JSX.Element | null\n */\n private renderSVGContent(children?: any[]) {\n if (!children || children.length === 0) {\n return null;\n }\n\n const createElement = node => {\n const { tag, children, ...attrs } = node;\n return h(tag, attrs, children ? children.map(createElement) : null);\n };\n\n const svgElements = children.map(createElement);\n return svgElements;\n }\n\n render() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n height={this.size}\n width={this.size}\n viewBox={this.iconData?.viewBox || `0 0 ${this.size} ${this.size}`}\n >\n {this.renderSVGContent(this.iconData?.children)}\n </svg>\n );\n }\n}\n"],"version":3}