@luster-ui/ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/PUBLISHING.md +469 -0
  2. package/README.md +423 -0
  3. package/dist/cjs/index-Couc0LVo.js +1571 -0
  4. package/dist/cjs/index.cjs.js +2 -0
  5. package/dist/cjs/loader.cjs.js +12 -0
  6. package/dist/cjs/luster-accordion_19.cjs.entry.js +555 -0
  7. package/dist/cjs/luster-card.cjs.entry.js +25 -0
  8. package/dist/cjs/luster.cjs.js +24 -0
  9. package/dist/collection/collection-manifest.json +32 -0
  10. package/dist/collection/components/luster-accordion/luster-accordion.css +76 -0
  11. package/dist/collection/components/luster-accordion/luster-accordion.js +160 -0
  12. package/dist/collection/components/luster-accordion/luster-accordion.stories.js +88 -0
  13. package/dist/collection/components/luster-activity-item/luster-activity-item.css +102 -0
  14. package/dist/collection/components/luster-activity-item/luster-activity-item.js +188 -0
  15. package/dist/collection/components/luster-activity-item/luster-activity-item.stories.js +94 -0
  16. package/dist/collection/components/luster-alert/luster-alert.css +71 -0
  17. package/dist/collection/components/luster-alert/luster-alert.js +171 -0
  18. package/dist/collection/components/luster-alert/luster-alert.stories.js +82 -0
  19. package/dist/collection/components/luster-article-card/luster-article-card.css +120 -0
  20. package/dist/collection/components/luster-article-card/luster-article-card.js +192 -0
  21. package/dist/collection/components/luster-article-card/luster-article-card.stories.js +82 -0
  22. package/dist/collection/components/luster-badge/luster-badge.css +38 -0
  23. package/dist/collection/components/luster-badge/luster-badge.js +87 -0
  24. package/dist/collection/components/luster-badge/luster-badge.stories.js +86 -0
  25. package/dist/collection/components/luster-button/luster-button.css +121 -0
  26. package/dist/collection/components/luster-button/luster-button.js +179 -0
  27. package/dist/collection/components/luster-button/luster-button.stories.js +103 -0
  28. package/dist/collection/components/luster-card/luster-card.css +29 -0
  29. package/dist/collection/components/luster-card/luster-card.js +92 -0
  30. package/dist/collection/components/luster-card/luster-card.stories.js +67 -0
  31. package/dist/collection/components/luster-checkbox/luster-checkbox.css +42 -0
  32. package/dist/collection/components/luster-checkbox/luster-checkbox.js +162 -0
  33. package/dist/collection/components/luster-checkbox/luster-checkbox.stories.js +78 -0
  34. package/dist/collection/components/luster-color-swatch/luster-color-swatch.css +33 -0
  35. package/dist/collection/components/luster-color-swatch/luster-color-swatch.js +108 -0
  36. package/dist/collection/components/luster-color-swatch/luster-color-swatch.stories.js +58 -0
  37. package/dist/collection/components/luster-feature-quote/luster-feature-quote.css +84 -0
  38. package/dist/collection/components/luster-feature-quote/luster-feature-quote.js +108 -0
  39. package/dist/collection/components/luster-feature-quote/luster-feature-quote.stories.js +52 -0
  40. package/dist/collection/components/luster-hero/luster-hero.css +119 -0
  41. package/dist/collection/components/luster-hero/luster-hero.js +129 -0
  42. package/dist/collection/components/luster-hero/luster-hero.stories.js +72 -0
  43. package/dist/collection/components/luster-input/luster-input.css +72 -0
  44. package/dist/collection/components/luster-input/luster-input.js +332 -0
  45. package/dist/collection/components/luster-input/luster-input.stories.js +106 -0
  46. package/dist/collection/components/luster-modal/luster-modal.css +103 -0
  47. package/dist/collection/components/luster-modal/luster-modal.js +215 -0
  48. package/dist/collection/components/luster-modal/luster-modal.stories.js +78 -0
  49. package/dist/collection/components/luster-navbar/luster-navbar.css +151 -0
  50. package/dist/collection/components/luster-navbar/luster-navbar.js +87 -0
  51. package/dist/collection/components/luster-navbar/luster-navbar.stories.js +41 -0
  52. package/dist/collection/components/luster-profile-card/luster-profile-card.css +89 -0
  53. package/dist/collection/components/luster-profile-card/luster-profile-card.js +194 -0
  54. package/dist/collection/components/luster-profile-card/luster-profile-card.stories.js +56 -0
  55. package/dist/collection/components/luster-resource-table/luster-resource-table.css +141 -0
  56. package/dist/collection/components/luster-resource-table/luster-resource-table.js +78 -0
  57. package/dist/collection/components/luster-resource-table/luster-resource-table.stories.js +44 -0
  58. package/dist/collection/components/luster-sidebar/luster-sidebar.css +152 -0
  59. package/dist/collection/components/luster-sidebar/luster-sidebar.js +78 -0
  60. package/dist/collection/components/luster-sidebar/luster-sidebar.stories.js +34 -0
  61. package/dist/collection/components/luster-stat-card/luster-stat-card.css +82 -0
  62. package/dist/collection/components/luster-stat-card/luster-stat-card.js +194 -0
  63. package/dist/collection/components/luster-stat-card/luster-stat-card.stories.js +75 -0
  64. package/dist/collection/components/luster-tabs/luster-tabs.css +35 -0
  65. package/dist/collection/components/luster-tabs/luster-tabs.js +116 -0
  66. package/dist/collection/components/luster-tabs/luster-tabs.stories.js +56 -0
  67. package/dist/collection/components/luster-toggle/luster-toggle.css +48 -0
  68. package/dist/collection/components/luster-toggle/luster-toggle.js +120 -0
  69. package/dist/collection/components/luster-toggle/luster-toggle.stories.js +66 -0
  70. package/dist/components/index.d.ts +33 -0
  71. package/dist/components/index.js +1 -0
  72. package/dist/components/luster-accordion.d.ts +11 -0
  73. package/dist/components/luster-accordion.js +1 -0
  74. package/dist/components/luster-activity-item.d.ts +11 -0
  75. package/dist/components/luster-activity-item.js +1 -0
  76. package/dist/components/luster-alert.d.ts +11 -0
  77. package/dist/components/luster-alert.js +1 -0
  78. package/dist/components/luster-article-card.d.ts +11 -0
  79. package/dist/components/luster-article-card.js +1 -0
  80. package/dist/components/luster-badge.d.ts +11 -0
  81. package/dist/components/luster-badge.js +1 -0
  82. package/dist/components/luster-badge2.js +1 -0
  83. package/dist/components/luster-button.d.ts +11 -0
  84. package/dist/components/luster-button.js +1 -0
  85. package/dist/components/luster-button2.js +1 -0
  86. package/dist/components/luster-card.d.ts +11 -0
  87. package/dist/components/luster-card.js +1 -0
  88. package/dist/components/luster-checkbox.d.ts +11 -0
  89. package/dist/components/luster-checkbox.js +1 -0
  90. package/dist/components/luster-color-swatch.d.ts +11 -0
  91. package/dist/components/luster-color-swatch.js +1 -0
  92. package/dist/components/luster-feature-quote.d.ts +11 -0
  93. package/dist/components/luster-feature-quote.js +1 -0
  94. package/dist/components/luster-hero.d.ts +11 -0
  95. package/dist/components/luster-hero.js +1 -0
  96. package/dist/components/luster-input.d.ts +11 -0
  97. package/dist/components/luster-input.js +1 -0
  98. package/dist/components/luster-modal.d.ts +11 -0
  99. package/dist/components/luster-modal.js +1 -0
  100. package/dist/components/luster-navbar.d.ts +11 -0
  101. package/dist/components/luster-navbar.js +1 -0
  102. package/dist/components/luster-profile-card.d.ts +11 -0
  103. package/dist/components/luster-profile-card.js +1 -0
  104. package/dist/components/luster-resource-table.d.ts +11 -0
  105. package/dist/components/luster-resource-table.js +1 -0
  106. package/dist/components/luster-sidebar.d.ts +11 -0
  107. package/dist/components/luster-sidebar.js +1 -0
  108. package/dist/components/luster-stat-card.d.ts +11 -0
  109. package/dist/components/luster-stat-card.js +1 -0
  110. package/dist/components/luster-tabs.d.ts +11 -0
  111. package/dist/components/luster-tabs.js +1 -0
  112. package/dist/components/luster-toggle.d.ts +11 -0
  113. package/dist/components/luster-toggle.js +1 -0
  114. package/dist/components/luster-toggle2.js +1 -0
  115. package/dist/esm/index-CeYIN8dN.js +1563 -0
  116. package/dist/esm/index.js +1 -0
  117. package/dist/esm/loader.js +10 -0
  118. package/dist/esm/luster-accordion_19.entry.js +535 -0
  119. package/dist/esm/luster-card.entry.js +23 -0
  120. package/dist/esm/luster.js +20 -0
  121. package/dist/index.cjs.js +1 -0
  122. package/dist/index.js +1 -0
  123. package/dist/luster/index.esm.js +0 -0
  124. package/dist/luster/luster.css +313 -0
  125. package/dist/luster/luster.esm.js +1 -0
  126. package/dist/luster/p-3c4ce897.entry.js +1 -0
  127. package/dist/luster/p-CeYIN8dN.js +2 -0
  128. package/dist/luster/p-e368ec08.entry.js +1 -0
  129. package/dist/types/.stencil/luster-accordion/luster-accordion.d.ts +13 -0
  130. package/dist/types/.stencil/luster-accordion/luster-accordion.stories.d.ts +10 -0
  131. package/dist/types/.stencil/luster-activity-item/luster-activity-item.d.ts +11 -0
  132. package/dist/types/.stencil/luster-activity-item/luster-activity-item.stories.d.ts +9 -0
  133. package/dist/types/.stencil/luster-alert/luster-alert.d.ts +13 -0
  134. package/dist/types/.stencil/luster-alert/luster-alert.stories.d.ts +10 -0
  135. package/dist/types/.stencil/luster-article-card/luster-article-card.d.ts +11 -0
  136. package/dist/types/.stencil/luster-article-card/luster-article-card.stories.d.ts +8 -0
  137. package/dist/types/.stencil/luster-badge/luster-badge.d.ts +6 -0
  138. package/dist/types/.stencil/luster-badge/luster-badge.stories.d.ts +12 -0
  139. package/dist/types/.stencil/luster-button/luster-button.d.ts +12 -0
  140. package/dist/types/.stencil/luster-button/luster-button.stories.d.ts +13 -0
  141. package/dist/types/.stencil/luster-card/luster-card.d.ts +6 -0
  142. package/dist/types/.stencil/luster-card/luster-card.stories.d.ts +10 -0
  143. package/dist/types/.stencil/luster-checkbox/luster-checkbox.d.ts +13 -0
  144. package/dist/types/.stencil/luster-checkbox/luster-checkbox.stories.d.ts +10 -0
  145. package/dist/types/.stencil/luster-color-swatch/luster-color-swatch.d.ts +7 -0
  146. package/dist/types/.stencil/luster-color-swatch/luster-color-swatch.stories.d.ts +8 -0
  147. package/dist/types/.stencil/luster-feature-quote/luster-feature-quote.d.ts +7 -0
  148. package/dist/types/.stencil/luster-feature-quote/luster-feature-quote.stories.d.ts +8 -0
  149. package/dist/types/.stencil/luster-hero/luster-hero.d.ts +8 -0
  150. package/dist/types/.stencil/luster-hero/luster-hero.stories.d.ts +8 -0
  151. package/dist/types/.stencil/luster-input/luster-input.d.ts +25 -0
  152. package/dist/types/.stencil/luster-input/luster-input.stories.d.ts +9 -0
  153. package/dist/types/.stencil/luster-modal/luster-modal.d.ts +17 -0
  154. package/dist/types/.stencil/luster-modal/luster-modal.stories.d.ts +8 -0
  155. package/dist/types/.stencil/luster-navbar/luster-navbar.d.ts +6 -0
  156. package/dist/types/.stencil/luster-navbar/luster-navbar.stories.d.ts +6 -0
  157. package/dist/types/.stencil/luster-profile-card/luster-profile-card.d.ts +11 -0
  158. package/dist/types/.stencil/luster-profile-card/luster-profile-card.stories.d.ts +7 -0
  159. package/dist/types/.stencil/luster-resource-table/luster-resource-table.d.ts +14 -0
  160. package/dist/types/.stencil/luster-resource-table/luster-resource-table.stories.d.ts +6 -0
  161. package/dist/types/.stencil/luster-sidebar/luster-sidebar.d.ts +9 -0
  162. package/dist/types/.stencil/luster-sidebar/luster-sidebar.stories.d.ts +8 -0
  163. package/dist/types/.stencil/luster-stat-card/luster-stat-card.d.ts +11 -0
  164. package/dist/types/.stencil/luster-stat-card/luster-stat-card.stories.d.ts +8 -0
  165. package/dist/types/.stencil/luster-tabs/luster-tabs.d.ts +15 -0
  166. package/dist/types/.stencil/luster-tabs/luster-tabs.stories.d.ts +7 -0
  167. package/dist/types/.stencil/luster-toggle/luster-toggle.d.ts +11 -0
  168. package/dist/types/.stencil/luster-toggle/luster-toggle.stories.d.ts +9 -0
  169. package/dist/types/components.d.ts +1355 -0
  170. package/dist/types/stencil-public-runtime.d.ts +1860 -0
  171. package/loader/cdn.js +1 -0
  172. package/loader/index.cjs.js +1 -0
  173. package/loader/index.d.ts +24 -0
  174. package/loader/index.es2017.js +1 -0
  175. package/loader/index.js +2 -0
  176. package/package.json +73 -0
@@ -0,0 +1,23 @@
1
+ import { r as registerInstance, h } from './index-CeYIN8dN.js';
2
+
3
+ const lusterCardCss = () => `:host{display:block}.card{border-radius:var(--dc-round-4);overflow:hidden;transition:background var(--dc-transition-base), box-shadow var(--dc-transition-base)}.card--pad-none{padding:0}.card--pad-sm{padding:var(--dc-space-4)}.card--pad-md{padding:var(--dc-space-6)}.card--pad-lg{padding:var(--dc-space-8)}.card--default{background:var(--dc-surface-container-high)}.card--elevated{background:var(--dc-surface-container-highest);box-shadow:var(--dc-shadow-md)}.card--feature{background:var(--dc-surface-container-high);border:1px solid var(--dc-border-default)}.card--glass{background:var(--dc-glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--dc-border-default)}.card--hoverable{cursor:pointer}.card--hoverable:hover{background:var(--dc-surface-bright);box-shadow:var(--dc-shadow-lg)}`;
4
+
5
+ const DcCard = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.variant = 'default';
9
+ this.padding = 'md';
10
+ this.hoverable = false;
11
+ }
12
+ render() {
13
+ return (h("div", { key: 'b49300a94d3ec06822794698af4a1d8da248d319', class: [
14
+ 'card',
15
+ `card--${this.variant}`,
16
+ `card--pad-${this.padding}`,
17
+ this.hoverable ? 'card--hoverable' : '',
18
+ ].filter(Boolean).join(' ') }, h("slot", { key: '05c26e4626e0610588ab6694355f315b0adc9327' })));
19
+ }
20
+ };
21
+ DcCard.style = lusterCardCss();
22
+
23
+ export { DcCard as luster_card };
@@ -0,0 +1,20 @@
1
+ import { p as promiseResolve, g as globalScripts, b as bootstrapLazy } from './index-CeYIN8dN.js';
2
+ export { s as setNonce } from './index-CeYIN8dN.js';
3
+
4
+ /*
5
+ Stencil Client Patch Browser v4.43.3 | MIT Licensed | https://stenciljs.com
6
+ */
7
+
8
+ var patchBrowser = () => {
9
+ const importMeta = import.meta.url;
10
+ const opts = {};
11
+ if (importMeta !== "") {
12
+ opts.resourcesUrl = new URL(".", importMeta).href;
13
+ }
14
+ return promiseResolve(opts);
15
+ };
16
+
17
+ patchBrowser().then(async (options) => {
18
+ await globalScripts();
19
+ return bootstrapLazy([["luster-card",[[257,"luster-card",{"variant":[1],"padding":[1],"hoverable":[4]}]]],["luster-accordion_19",[[1,"luster-resource-table",{"rows":[1]}],[1,"luster-stat-card",{"heading":[1],"description":[1],"version":[1],"status":[1],"users":[1],"hasToggle":[4,"has-toggle"],"toggleOn":[4,"toggle-on"],"icon":[1]}],[257,"luster-accordion",{"heading":[1],"subtitle":[1],"badge":[1],"badgeVariant":[1,"badge-variant"],"expanded":[1028],"isExpanded":[32]}],[257,"luster-modal",{"open":[1028],"heading":[1],"subtitle":[1],"confirmLabel":[1,"confirm-label"],"cancelLabel":[1,"cancel-label"],"size":[1],"visible":[32]},null,{"open":[{"watchOpen":0}]}],[1,"luster-profile-card",{"name":[1],"role":[1],"avatar":[1],"stat1Value":[1,"stat-1-value"],"stat1Label":[1,"stat-1-label"],"stat2Value":[1,"stat-2-value"],"stat2Label":[1,"stat-2-label"],"ctaLabel":[1,"cta-label"]}],[1,"luster-activity-item",{"label":[1],"description":[1],"time":[1],"variant":[1],"icon":[1],"fileSize":[1,"file-size"],"downloadable":[4]}],[1,"luster-alert",{"heading":[1],"message":[1],"variant":[1],"dismissible":[4],"timestamp":[1],"visible":[32]}],[1,"luster-article-card",{"category":[1],"heading":[1],"excerpt":[1],"date":[1],"author":[1],"authorRole":[1,"author-role"],"imageUrl":[1,"image-url"],"featured":[4]}],[1,"luster-checkbox",{"label":[1],"checked":[4],"disabled":[4],"indeterminate":[4],"value":[1],"innerChecked":[32]}],[1,"luster-color-swatch",{"color":[1],"name":[1],"hex":[1],"size":[1]}],[257,"luster-feature-quote",{"quote":[1],"author":[1],"role":[1],"variant":[1]}],[257,"luster-hero",{"heading":[1],"subtitle":[1],"section":[1],"imageUrl":[1,"image-url"],"parallax":[4]}],[1,"luster-input",{"label":[1],"placeholder":[1],"value":[1],"type":[1],"error":[4],"errorMessage":[1,"error-message"],"helperText":[1,"helper-text"],"disabled":[4],"readonly":[4],"name":[1],"focused":[32],"innerValue":[32]}],[1,"luster-navbar",{"logoTitle":[1,"logo-title"],"logoSub":[1,"logo-sub"],"activeLink":[1,"active-link"]}],[1,"luster-sidebar",{"active":[1]}],[257,"luster-tabs",{"tabs":[1],"active":[1],"activeTab":[32]}],[1,"luster-toggle",{"label":[1],"checked":[4],"disabled":[4],"innerChecked":[32]}],[257,"luster-badge",{"variant":[1],"dot":[4],"size":[1]}],[257,"luster-button",{"variant":[1],"size":[1],"disabled":[4],"loading":[4],"fullWidth":[4,"full-width"],"type":[1]}]]]], options);
20
+ });
@@ -0,0 +1 @@
1
+ module.exports = require('./cjs/index.cjs.js');
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ export * from './esm/index.js';
File without changes
@@ -0,0 +1,313 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Inter:wght@300;400;500;600&display=swap');
2
+
3
+ /* ═══════════════════════════════════════════════════════════════
4
+ THEMING — Consumer override API
5
+ ───────────────────────────────────────────────────────────────
6
+ Minimal brand override (works in any project):
7
+
8
+ :root {
9
+ --dc-primary: #f97316; ← your brand color
10
+ --dc-primary-dim: #ea580c; ← darker shade (hover/gradient)
11
+ --dc-on-primary: #ffffff; ← text/icon on primary bg
12
+ }
13
+
14
+ All hover tints, focus rings, shadows, glass effects and
15
+ gradients cascade automatically via color-mix().
16
+
17
+ To switch between dark/light:
18
+ document.documentElement.setAttribute('data-theme', 'light');
19
+ document.documentElement.setAttribute('data-theme', 'dark');
20
+ Or let the browser honor prefers-color-scheme automatically.
21
+ ═══════════════════════════════════════════════════════════════ */
22
+
23
+ /* ─── DARK MODE (default) ─────────────────────────────────────── */
24
+ :root {
25
+ color-scheme: dark;
26
+
27
+ /* ── Surfaces ─────────────────────────────────────────────── */
28
+ --dc-surface: #060e20;
29
+ --dc-surface-container-lowest: #030914;
30
+ --dc-surface-container-low: #091328;
31
+ --dc-surface-container: #0d1a35;
32
+ --dc-surface-container-high: #141f38;
33
+ --dc-surface-container-highest: #192540;
34
+ --dc-surface-bright: #1e2e4a;
35
+
36
+ /* ── Primary brand (OVERRIDE THESE TO REBRAND) ───────────── */
37
+ --dc-primary: #a3a6ff;
38
+ --dc-primary-dim: #6063ee;
39
+ --dc-primary-fixed: #cfd0ff;
40
+ --dc-on-primary: #0a0040;
41
+ --dc-primary-container: #2b2dad;
42
+
43
+ /* ── On-surface ───────────────────────────────────────────── */
44
+ --dc-on-surface: #dee5ff;
45
+ --dc-on-surface-variant: #a3aac4;
46
+
47
+ /* ── Outline / border source ─────────────────────────────── */
48
+ --dc-outline: #616984;
49
+ --dc-outline-variant: #40485d;
50
+ /* Semantic alias used by all border tokens below.
51
+ Dark mode → use outline-variant (muted).
52
+ Light mode → use outline (more visible on bright surfaces). */
53
+ --dc-border-source: #40485d;
54
+
55
+ /* ── Error ────────────────────────────────────────────────── */
56
+ --dc-error: #ffb4ab;
57
+ --dc-error-container: #93000a;
58
+ --dc-on-error-container: #ffdad6;
59
+
60
+ /* ── Secondary / tertiary ─────────────────────────────────── */
61
+ --dc-secondary: #b6aee4;
62
+ --dc-secondary-container: #353065;
63
+ --dc-tertiary: #e8b4c8;
64
+
65
+ /* ── Semantic ─────────────────────────────────────────────── */
66
+ --dc-success: #4cceac;
67
+ --dc-success-container: #1a3d35;
68
+ --dc-warning: #ffd166;
69
+ --dc-warning-container: #3d3000;
70
+
71
+ /* ── Typography ───────────────────────────────────────────── */
72
+ --dc-font-display: 'Manrope', sans-serif;
73
+ --dc-font-body: 'Inter', sans-serif;
74
+
75
+ --dc-display-lg: clamp(2.5rem, 5vw, 4.5rem);
76
+ --dc-display-md: clamp(2rem, 4vw, 3rem);
77
+ --dc-display-sm: clamp(1.5rem, 3vw, 2.25rem);
78
+
79
+ --dc-headline-lg: 2rem;
80
+ --dc-headline-md: 1.75rem;
81
+ --dc-headline-sm: 1.375rem;
82
+
83
+ --dc-title-lg: 1.25rem;
84
+ --dc-title-md: 1rem;
85
+ --dc-title-sm: 0.875rem;
86
+
87
+ --dc-body-lg: 1rem;
88
+ --dc-body-md: 0.875rem;
89
+ --dc-body-sm: 0.75rem;
90
+
91
+ --dc-label-lg: 0.875rem;
92
+ --dc-label-md: 0.75rem;
93
+ --dc-label-sm: 0.6875rem;
94
+
95
+ --dc-tracking-tight: -0.02em;
96
+ --dc-tracking-normal: 0em;
97
+ --dc-tracking-wide: 0.08em;
98
+ --dc-tracking-wider: 0.12em;
99
+
100
+ /* ── Spacing (4px base) ───────────────────────────────────── */
101
+ --dc-space-1: 0.25rem;
102
+ --dc-space-2: 0.5rem;
103
+ --dc-space-3: 0.75rem;
104
+ --dc-space-4: 1rem;
105
+ --dc-space-5: 1.25rem;
106
+ --dc-space-6: 1.5rem;
107
+ --dc-space-8: 2rem;
108
+ --dc-space-10: 2.5rem;
109
+ --dc-space-12: 3rem;
110
+ --dc-space-16: 4rem;
111
+ --dc-space-20: 5rem;
112
+ --dc-space-24: 6rem;
113
+
114
+ /* ── Radius ───────────────────────────────────────────────── */
115
+ --dc-round-1: 0.25rem;
116
+ --dc-round-2: 0.5rem;
117
+ --dc-round-3: 0.75rem;
118
+ --dc-round-4: 1rem;
119
+ --dc-round-5: 1.5rem;
120
+ --dc-round-full: 9999px;
121
+
122
+ /* ── Transitions ──────────────────────────────────────────── */
123
+ --dc-transition-fast: 150ms ease;
124
+ --dc-transition-base: 250ms ease;
125
+ --dc-transition-slow: 400ms ease;
126
+
127
+ /* ════════════════════════════════════════════════════════════
128
+ DERIVED TOKENS — computed from base tokens via color-mix().
129
+ These never need to be overridden manually; they update
130
+ automatically when you change --dc-primary, --dc-error,
131
+ --dc-surface, or --dc-border-source.
132
+ ════════════════════════════════════════════════════════════ */
133
+
134
+ /* Shadows */
135
+ --dc-shadow-sm: 0 4px 24px 0 color-mix(in srgb, var(--dc-primary-dim) 8%, transparent);
136
+ --dc-shadow-md: 0 8px 40px 0 color-mix(in srgb, var(--dc-primary-dim) 12%, transparent);
137
+ --dc-shadow-lg: 0 16px 60px 0 color-mix(in srgb, var(--dc-primary-dim) 16%, transparent);
138
+ --dc-shadow-xl: 0 24px 80px 0 color-mix(in srgb, var(--dc-primary-dim) 22%, transparent);
139
+
140
+ /* Hover tints (primary-based) */
141
+ --dc-hover-tint: color-mix(in srgb, var(--dc-primary) 4%, transparent);
142
+ --dc-hover-tint-md: color-mix(in srgb, var(--dc-primary) 6%, transparent);
143
+ --dc-hover-tint-strong: color-mix(in srgb, var(--dc-primary) 8%, transparent);
144
+ --dc-icon-bg: color-mix(in srgb, var(--dc-primary) 10%, transparent);
145
+
146
+ /* Hover tints (neutral/icon buttons — border-source based) */
147
+ --dc-hover-tint-icon: color-mix(in srgb, var(--dc-border-source) 15%, transparent);
148
+ --dc-hover-tint-icon-md: color-mix(in srgb, var(--dc-border-source) 30%, transparent);
149
+
150
+ /* Borders (border-source based) */
151
+ --dc-divider: color-mix(in srgb, var(--dc-border-source) 12%, transparent);
152
+ --dc-border-faint: color-mix(in srgb, var(--dc-border-source) 20%, transparent);
153
+ --dc-border-default: color-mix(in srgb, var(--dc-border-source) 30%, transparent);
154
+ --dc-border-medium: color-mix(in srgb, var(--dc-border-source) 35%, transparent);
155
+ --dc-border-strong: color-mix(in srgb, var(--dc-border-source) 50%, transparent);
156
+ --dc-border-hover: color-mix(in srgb, var(--dc-border-source) 80%, transparent);
157
+
158
+ /* Glass / overlay (surface-based) */
159
+ --dc-glass-bg: color-mix(in srgb, var(--dc-surface-bright) 55%, transparent);
160
+ --dc-glass-nav: color-mix(in srgb, var(--dc-surface-bright) 65%, transparent);
161
+ --dc-glass-search: color-mix(in srgb, var(--dc-border-source) 18%, transparent);
162
+ --dc-overlay-surface: color-mix(in srgb, var(--dc-surface) 50%, transparent);
163
+ --dc-overlay-modal: color-mix(in srgb, var(--dc-surface) 80%, transparent);
164
+
165
+ /* Close / icon button states */
166
+ --dc-close-bg: color-mix(in srgb, var(--dc-border-source) 20%, transparent);
167
+ --dc-close-hover: color-mix(in srgb, var(--dc-border-source) 40%, transparent);
168
+
169
+ /* Focus rings */
170
+ --dc-focus-ring: color-mix(in srgb, var(--dc-primary) 12%, transparent);
171
+ --dc-focus-ring-hover: color-mix(in srgb, var(--dc-primary) 40%, transparent);
172
+ --dc-error-focus-ring: color-mix(in srgb, var(--dc-error) 10%, transparent);
173
+
174
+ /* Destructive / error states */
175
+ --dc-error-border: color-mix(in srgb, var(--dc-error) 30%, transparent);
176
+ --dc-error-border-hover: color-mix(in srgb, var(--dc-error) 60%, transparent);
177
+ --dc-error-bg: color-mix(in srgb, var(--dc-error) 10%, transparent);
178
+
179
+ /* Button primary shadows */
180
+ --dc-btn-primary-shadow: 0 4px 20px color-mix(in srgb, var(--dc-primary-dim) 35%, transparent);
181
+ --dc-btn-primary-shadow-hover: 0 6px 28px color-mix(in srgb, var(--dc-primary-dim) 50%, transparent);
182
+ --dc-btn-primary-shadow-press: 0 2px 12px color-mix(in srgb, var(--dc-primary-dim) 30%, transparent);
183
+
184
+ /* Button primary hover gradient — lighter variant of primary */
185
+ --dc-btn-primary-gradient-hover: linear-gradient(
186
+ 135deg,
187
+ color-mix(in srgb, var(--dc-primary) 80%, white) 0%,
188
+ color-mix(in srgb, var(--dc-primary-dim) 90%, white) 100%
189
+ );
190
+
191
+ /* Spinner track (semi-transparent white — works on any colored button) */
192
+ --dc-spinner-border: color-mix(in srgb, white 30%, transparent);
193
+
194
+ /* Image overlays */
195
+ --dc-image-overlay-top: color-mix(in srgb, var(--dc-surface) 10%, transparent);
196
+ --dc-image-overlay-bottom: color-mix(in srgb, var(--dc-surface) 70%, transparent);
197
+
198
+ /* Hero parallax glows */
199
+ --dc-hero-glow-primary: color-mix(in srgb, var(--dc-primary) 15%, transparent);
200
+ --dc-hero-glow-dim: color-mix(in srgb, var(--dc-primary-dim) 12%, transparent);
201
+ --dc-hero-glow-secondary: color-mix(in srgb, var(--dc-secondary) 8%, transparent);
202
+ --dc-hero-badge-text: color-mix(in srgb, var(--dc-primary) 70%, transparent);
203
+ --dc-hero-badge-sub: color-mix(in srgb, var(--dc-primary) 40%, transparent);
204
+ }
205
+
206
+ /* ─── LIGHT MODE ──────────────────────────────────────────────────
207
+ Only base tokens are overridden here.
208
+ All derived tokens (borders, hover tints, focus rings, shadows,
209
+ glass, overlays, gradients) recompute automatically via
210
+ color-mix() from the overridden base values.
211
+ ────────────────────────────────────────────────────────────────── */
212
+ @media (prefers-color-scheme: light) {
213
+ :root:not([data-theme="dark"]) {
214
+ color-scheme: light;
215
+
216
+ --dc-surface: #f5f7ff;
217
+ --dc-surface-container-lowest: #ffffff;
218
+ --dc-surface-container-low: #eef0ff;
219
+ --dc-surface-container: #e8eaff;
220
+ --dc-surface-container-high: #e0e3ff;
221
+ --dc-surface-container-highest: #d8dbff;
222
+ --dc-surface-bright: #ffffff;
223
+
224
+ --dc-primary: #4547ce;
225
+ --dc-primary-dim: #3234b0;
226
+ --dc-primary-fixed: #eaeaff;
227
+ --dc-on-primary: #ffffff;
228
+ --dc-primary-container: #eaeaff;
229
+
230
+ --dc-on-surface: #0d0f2d;
231
+ --dc-on-surface-variant: #3f4263;
232
+
233
+ --dc-outline: #6b6d8f;
234
+ --dc-outline-variant: #c4c5e0;
235
+ /* Use outline (darker) as border source on light surfaces */
236
+ --dc-border-source: #6b6d8f;
237
+
238
+ --dc-error: #ba1a1a;
239
+ --dc-error-container: #ffdad6;
240
+ --dc-on-error-container: #410002;
241
+
242
+ --dc-secondary: #5b5898;
243
+ --dc-secondary-container: #e4e0ff;
244
+ --dc-tertiary: #7c4e69;
245
+
246
+ --dc-success: #006c4c;
247
+ --dc-success-container: #94f7cb;
248
+ --dc-warning: #7c5700;
249
+ --dc-warning-container: #ffdea1;
250
+ }
251
+ }
252
+
253
+ /* Explicit light override (beats @media) */
254
+ [data-theme="light"] {
255
+ color-scheme: light;
256
+
257
+ --dc-surface: #f5f7ff;
258
+ --dc-surface-container-lowest: #ffffff;
259
+ --dc-surface-container-low: #eef0ff;
260
+ --dc-surface-container: #e8eaff;
261
+ --dc-surface-container-high: #e0e3ff;
262
+ --dc-surface-container-highest: #d8dbff;
263
+ --dc-surface-bright: #ffffff;
264
+
265
+ --dc-primary: #4547ce;
266
+ --dc-primary-dim: #3234b0;
267
+ --dc-primary-fixed: #eaeaff;
268
+ --dc-on-primary: #ffffff;
269
+ --dc-primary-container: #eaeaff;
270
+
271
+ --dc-on-surface: #0d0f2d;
272
+ --dc-on-surface-variant: #3f4263;
273
+
274
+ --dc-outline: #6b6d8f;
275
+ --dc-outline-variant: #c4c5e0;
276
+ --dc-border-source: #6b6d8f;
277
+
278
+ --dc-error: #ba1a1a;
279
+ --dc-error-container: #ffdad6;
280
+ --dc-on-error-container: #410002;
281
+
282
+ --dc-secondary: #5b5898;
283
+ --dc-secondary-container: #e4e0ff;
284
+ --dc-tertiary: #7c4e69;
285
+
286
+ --dc-success: #006c4c;
287
+ --dc-success-container: #94f7cb;
288
+ --dc-warning: #7c5700;
289
+ --dc-warning-container: #ffdea1;
290
+ }
291
+
292
+ /* Explicit dark override (beats @media) */
293
+ [data-theme="dark"] {
294
+ color-scheme: dark;
295
+ }
296
+
297
+ /* ─── BASE STYLES ─────────────────────────────────────────────── */
298
+ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
299
+
300
+ html {
301
+ font-size: 16px;
302
+ -webkit-font-smoothing: antialiased;
303
+ -moz-osx-font-smoothing: grayscale;
304
+ }
305
+
306
+ body {
307
+ background-color: var(--dc-surface);
308
+ color: var(--dc-on-surface);
309
+ font-family: var(--dc-font-body);
310
+ font-size: var(--dc-body-md);
311
+ line-height: 1.6;
312
+ transition: background-color var(--dc-transition-base), color var(--dc-transition-base);
313
+ }
@@ -0,0 +1 @@
1
+ import{p as e,g as a,b as t}from"./p-CeYIN8dN.js";export{s as setNonce}from"./p-CeYIN8dN.js";(()=>{const a=import.meta.url,t={};return""!==a&&(t.resourcesUrl=new URL(".",a).href),e(t)})().then((async e=>(await a(),t([["p-3c4ce897",[[257,"luster-card",{variant:[1],padding:[1],hoverable:[4]}]]],["p-e368ec08",[[1,"luster-resource-table",{rows:[1]}],[1,"luster-stat-card",{heading:[1],description:[1],version:[1],status:[1],users:[1],hasToggle:[4,"has-toggle"],toggleOn:[4,"toggle-on"],icon:[1]}],[257,"luster-accordion",{heading:[1],subtitle:[1],badge:[1],badgeVariant:[1,"badge-variant"],expanded:[1028],isExpanded:[32]}],[257,"luster-modal",{open:[1028],heading:[1],subtitle:[1],confirmLabel:[1,"confirm-label"],cancelLabel:[1,"cancel-label"],size:[1],visible:[32]},null,{open:[{watchOpen:0}]}],[1,"luster-profile-card",{name:[1],role:[1],avatar:[1],stat1Value:[1,"stat-1-value"],stat1Label:[1,"stat-1-label"],stat2Value:[1,"stat-2-value"],stat2Label:[1,"stat-2-label"],ctaLabel:[1,"cta-label"]}],[1,"luster-activity-item",{label:[1],description:[1],time:[1],variant:[1],icon:[1],fileSize:[1,"file-size"],downloadable:[4]}],[1,"luster-alert",{heading:[1],message:[1],variant:[1],dismissible:[4],timestamp:[1],visible:[32]}],[1,"luster-article-card",{category:[1],heading:[1],excerpt:[1],date:[1],author:[1],authorRole:[1,"author-role"],imageUrl:[1,"image-url"],featured:[4]}],[1,"luster-checkbox",{label:[1],checked:[4],disabled:[4],indeterminate:[4],value:[1],innerChecked:[32]}],[1,"luster-color-swatch",{color:[1],name:[1],hex:[1],size:[1]}],[257,"luster-feature-quote",{quote:[1],author:[1],role:[1],variant:[1]}],[257,"luster-hero",{heading:[1],subtitle:[1],section:[1],imageUrl:[1,"image-url"],parallax:[4]}],[1,"luster-input",{label:[1],placeholder:[1],value:[1],type:[1],error:[4],errorMessage:[1,"error-message"],helperText:[1,"helper-text"],disabled:[4],readonly:[4],name:[1],focused:[32],innerValue:[32]}],[1,"luster-navbar",{logoTitle:[1,"logo-title"],logoSub:[1,"logo-sub"],activeLink:[1,"active-link"]}],[1,"luster-sidebar",{active:[1]}],[257,"luster-tabs",{tabs:[1],active:[1],activeTab:[32]}],[1,"luster-toggle",{label:[1],checked:[4],disabled:[4],innerChecked:[32]}],[257,"luster-badge",{variant:[1],dot:[4],size:[1]}],[257,"luster-button",{variant:[1],size:[1],disabled:[4],loading:[4],fullWidth:[4,"full-width"],type:[1]}]]]],e))));
@@ -0,0 +1 @@
1
+ import{r as a,h as r}from"./p-CeYIN8dN.js";const d=class{constructor(r){a(this,r),this.variant="default",this.padding="md",this.hoverable=!1}render(){return r("div",{key:"b49300a94d3ec06822794698af4a1d8da248d319",class:["card",`card--${this.variant}`,`card--pad-${this.padding}`,this.hoverable?"card--hoverable":""].filter(Boolean).join(" ")},r("slot",{key:"05c26e4626e0610588ab6694355f315b0adc9327"}))}};d.style=":host{display:block}.card{border-radius:var(--dc-round-4);overflow:hidden;transition:background var(--dc-transition-base), box-shadow var(--dc-transition-base)}.card--pad-none{padding:0}.card--pad-sm{padding:var(--dc-space-4)}.card--pad-md{padding:var(--dc-space-6)}.card--pad-lg{padding:var(--dc-space-8)}.card--default{background:var(--dc-surface-container-high)}.card--elevated{background:var(--dc-surface-container-highest);box-shadow:var(--dc-shadow-md)}.card--feature{background:var(--dc-surface-container-high);border:1px solid var(--dc-border-default)}.card--glass{background:var(--dc-glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--dc-border-default)}.card--hoverable{cursor:pointer}.card--hoverable:hover{background:var(--dc-surface-bright);box-shadow:var(--dc-shadow-lg)}";export{d as luster_card}
@@ -0,0 +1,2 @@
1
+ const n=()=>{},r="@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Inter:wght@300;400;500;600&display=swap');\n\n/* ═══════════════════════════════════════════════════════════════\n THEMING — Consumer override API\n ───────────────────────────────────────────────────────────────\n Minimal brand override (works in any project):\n\n :root {\n --dc-primary: #f97316; ← your brand color\n --dc-primary-dim: #ea580c; ← darker shade (hover/gradient)\n --dc-on-primary: #ffffff; ← text/icon on primary bg\n }\n\n All hover tints, focus rings, shadows, glass effects and\n gradients cascade automatically via color-mix().\n\n To switch between dark/light:\n document.documentElement.setAttribute('data-theme', 'light');\n document.documentElement.setAttribute('data-theme', 'dark');\n Or let the browser honor prefers-color-scheme automatically.\n═══════════════════════════════════════════════════════════════ */\n\n/* ─── DARK MODE (default) ─────────────────────────────────────── */\n:root {\n color-scheme: dark;\n\n /* ── Surfaces ─────────────────────────────────────────────── */\n --dc-surface: #060e20;\n --dc-surface-container-lowest: #030914;\n --dc-surface-container-low: #091328;\n --dc-surface-container: #0d1a35;\n --dc-surface-container-high: #141f38;\n --dc-surface-container-highest: #192540;\n --dc-surface-bright: #1e2e4a;\n\n /* ── Primary brand (OVERRIDE THESE TO REBRAND) ───────────── */\n --dc-primary: #a3a6ff;\n --dc-primary-dim: #6063ee;\n --dc-primary-fixed: #cfd0ff;\n --dc-on-primary: #0a0040;\n --dc-primary-container: #2b2dad;\n\n /* ── On-surface ───────────────────────────────────────────── */\n --dc-on-surface: #dee5ff;\n --dc-on-surface-variant: #a3aac4;\n\n /* ── Outline / border source ─────────────────────────────── */\n --dc-outline: #616984;\n --dc-outline-variant: #40485d;\n /* Semantic alias used by all border tokens below.\n Dark mode → use outline-variant (muted).\n Light mode → use outline (more visible on bright surfaces). */\n --dc-border-source: #40485d;\n\n /* ── Error ────────────────────────────────────────────────── */\n --dc-error: #ffb4ab;\n --dc-error-container: #93000a;\n --dc-on-error-container: #ffdad6;\n\n /* ── Secondary / tertiary ─────────────────────────────────── */\n --dc-secondary: #b6aee4;\n --dc-secondary-container: #353065;\n --dc-tertiary: #e8b4c8;\n\n /* ── Semantic ─────────────────────────────────────────────── */\n --dc-success: #4cceac;\n --dc-success-container: #1a3d35;\n --dc-warning: #ffd166;\n --dc-warning-container: #3d3000;\n\n /* ── Typography ───────────────────────────────────────────── */\n --dc-font-display: 'Manrope', sans-serif;\n --dc-font-body: 'Inter', sans-serif;\n\n --dc-display-lg: clamp(2.5rem, 5vw, 4.5rem);\n --dc-display-md: clamp(2rem, 4vw, 3rem);\n --dc-display-sm: clamp(1.5rem, 3vw, 2.25rem);\n\n --dc-headline-lg: 2rem;\n --dc-headline-md: 1.75rem;\n --dc-headline-sm: 1.375rem;\n\n --dc-title-lg: 1.25rem;\n --dc-title-md: 1rem;\n --dc-title-sm: 0.875rem;\n\n --dc-body-lg: 1rem;\n --dc-body-md: 0.875rem;\n --dc-body-sm: 0.75rem;\n\n --dc-label-lg: 0.875rem;\n --dc-label-md: 0.75rem;\n --dc-label-sm: 0.6875rem;\n\n --dc-tracking-tight: -0.02em;\n --dc-tracking-normal: 0em;\n --dc-tracking-wide: 0.08em;\n --dc-tracking-wider: 0.12em;\n\n /* ── Spacing (4px base) ───────────────────────────────────── */\n --dc-space-1: 0.25rem;\n --dc-space-2: 0.5rem;\n --dc-space-3: 0.75rem;\n --dc-space-4: 1rem;\n --dc-space-5: 1.25rem;\n --dc-space-6: 1.5rem;\n --dc-space-8: 2rem;\n --dc-space-10: 2.5rem;\n --dc-space-12: 3rem;\n --dc-space-16: 4rem;\n --dc-space-20: 5rem;\n --dc-space-24: 6rem;\n\n /* ── Radius ───────────────────────────────────────────────── */\n --dc-round-1: 0.25rem;\n --dc-round-2: 0.5rem;\n --dc-round-3: 0.75rem;\n --dc-round-4: 1rem;\n --dc-round-5: 1.5rem;\n --dc-round-full: 9999px;\n\n /* ── Transitions ──────────────────────────────────────────── */\n --dc-transition-fast: 150ms ease;\n --dc-transition-base: 250ms ease;\n --dc-transition-slow: 400ms ease;\n\n /* ════════════════════════════════════════════════════════════\n DERIVED TOKENS — computed from base tokens via color-mix().\n These never need to be overridden manually; they update\n automatically when you change --dc-primary, --dc-error,\n --dc-surface, or --dc-border-source.\n ════════════════════════════════════════════════════════════ */\n\n /* Shadows */\n --dc-shadow-sm: 0 4px 24px 0 color-mix(in srgb, var(--dc-primary-dim) 8%, transparent);\n --dc-shadow-md: 0 8px 40px 0 color-mix(in srgb, var(--dc-primary-dim) 12%, transparent);\n --dc-shadow-lg: 0 16px 60px 0 color-mix(in srgb, var(--dc-primary-dim) 16%, transparent);\n --dc-shadow-xl: 0 24px 80px 0 color-mix(in srgb, var(--dc-primary-dim) 22%, transparent);\n\n /* Hover tints (primary-based) */\n --dc-hover-tint: color-mix(in srgb, var(--dc-primary) 4%, transparent);\n --dc-hover-tint-md: color-mix(in srgb, var(--dc-primary) 6%, transparent);\n --dc-hover-tint-strong: color-mix(in srgb, var(--dc-primary) 8%, transparent);\n --dc-icon-bg: color-mix(in srgb, var(--dc-primary) 10%, transparent);\n\n /* Hover tints (neutral/icon buttons — border-source based) */\n --dc-hover-tint-icon: color-mix(in srgb, var(--dc-border-source) 15%, transparent);\n --dc-hover-tint-icon-md: color-mix(in srgb, var(--dc-border-source) 30%, transparent);\n\n /* Borders (border-source based) */\n --dc-divider: color-mix(in srgb, var(--dc-border-source) 12%, transparent);\n --dc-border-faint: color-mix(in srgb, var(--dc-border-source) 20%, transparent);\n --dc-border-default: color-mix(in srgb, var(--dc-border-source) 30%, transparent);\n --dc-border-medium: color-mix(in srgb, var(--dc-border-source) 35%, transparent);\n --dc-border-strong: color-mix(in srgb, var(--dc-border-source) 50%, transparent);\n --dc-border-hover: color-mix(in srgb, var(--dc-border-source) 80%, transparent);\n\n /* Glass / overlay (surface-based) */\n --dc-glass-bg: color-mix(in srgb, var(--dc-surface-bright) 55%, transparent);\n --dc-glass-nav: color-mix(in srgb, var(--dc-surface-bright) 65%, transparent);\n --dc-glass-search: color-mix(in srgb, var(--dc-border-source) 18%, transparent);\n --dc-overlay-surface: color-mix(in srgb, var(--dc-surface) 50%, transparent);\n --dc-overlay-modal: color-mix(in srgb, var(--dc-surface) 80%, transparent);\n\n /* Close / icon button states */\n --dc-close-bg: color-mix(in srgb, var(--dc-border-source) 20%, transparent);\n --dc-close-hover: color-mix(in srgb, var(--dc-border-source) 40%, transparent);\n\n /* Focus rings */\n --dc-focus-ring: color-mix(in srgb, var(--dc-primary) 12%, transparent);\n --dc-focus-ring-hover: color-mix(in srgb, var(--dc-primary) 40%, transparent);\n --dc-error-focus-ring: color-mix(in srgb, var(--dc-error) 10%, transparent);\n\n /* Destructive / error states */\n --dc-error-border: color-mix(in srgb, var(--dc-error) 30%, transparent);\n --dc-error-border-hover: color-mix(in srgb, var(--dc-error) 60%, transparent);\n --dc-error-bg: color-mix(in srgb, var(--dc-error) 10%, transparent);\n\n /* Button primary shadows */\n --dc-btn-primary-shadow: 0 4px 20px color-mix(in srgb, var(--dc-primary-dim) 35%, transparent);\n --dc-btn-primary-shadow-hover: 0 6px 28px color-mix(in srgb, var(--dc-primary-dim) 50%, transparent);\n --dc-btn-primary-shadow-press: 0 2px 12px color-mix(in srgb, var(--dc-primary-dim) 30%, transparent);\n\n /* Button primary hover gradient — lighter variant of primary */\n --dc-btn-primary-gradient-hover: linear-gradient(\n 135deg,\n color-mix(in srgb, var(--dc-primary) 80%, white) 0%,\n color-mix(in srgb, var(--dc-primary-dim) 90%, white) 100%\n );\n\n /* Spinner track (semi-transparent white — works on any colored button) */\n --dc-spinner-border: color-mix(in srgb, white 30%, transparent);\n\n /* Image overlays */\n --dc-image-overlay-top: color-mix(in srgb, var(--dc-surface) 10%, transparent);\n --dc-image-overlay-bottom: color-mix(in srgb, var(--dc-surface) 70%, transparent);\n\n /* Hero parallax glows */\n --dc-hero-glow-primary: color-mix(in srgb, var(--dc-primary) 15%, transparent);\n --dc-hero-glow-dim: color-mix(in srgb, var(--dc-primary-dim) 12%, transparent);\n --dc-hero-glow-secondary: color-mix(in srgb, var(--dc-secondary) 8%, transparent);\n --dc-hero-badge-text: color-mix(in srgb, var(--dc-primary) 70%, transparent);\n --dc-hero-badge-sub: color-mix(in srgb, var(--dc-primary) 40%, transparent);\n}\n\n/* ─── LIGHT MODE ──────────────────────────────────────────────────\n Only base tokens are overridden here.\n All derived tokens (borders, hover tints, focus rings, shadows,\n glass, overlays, gradients) recompute automatically via\n color-mix() from the overridden base values.\n────────────────────────────────────────────────────────────────── */\n@media (prefers-color-scheme: light) {\n :root:not([data-theme=\"dark\"]) {\n color-scheme: light;\n\n --dc-surface: #f5f7ff;\n --dc-surface-container-lowest: #ffffff;\n --dc-surface-container-low: #eef0ff;\n --dc-surface-container: #e8eaff;\n --dc-surface-container-high: #e0e3ff;\n --dc-surface-container-highest: #d8dbff;\n --dc-surface-bright: #ffffff;\n\n --dc-primary: #4547ce;\n --dc-primary-dim: #3234b0;\n --dc-primary-fixed: #eaeaff;\n --dc-on-primary: #ffffff;\n --dc-primary-container: #eaeaff;\n\n --dc-on-surface: #0d0f2d;\n --dc-on-surface-variant: #3f4263;\n\n --dc-outline: #6b6d8f;\n --dc-outline-variant: #c4c5e0;\n /* Use outline (darker) as border source on light surfaces */\n --dc-border-source: #6b6d8f;\n\n --dc-error: #ba1a1a;\n --dc-error-container: #ffdad6;\n --dc-on-error-container: #410002;\n\n --dc-secondary: #5b5898;\n --dc-secondary-container: #e4e0ff;\n --dc-tertiary: #7c4e69;\n\n --dc-success: #006c4c;\n --dc-success-container: #94f7cb;\n --dc-warning: #7c5700;\n --dc-warning-container: #ffdea1;\n }\n}\n\n/* Explicit light override (beats @media) */\n[data-theme=\"light\"] {\n color-scheme: light;\n\n --dc-surface: #f5f7ff;\n --dc-surface-container-lowest: #ffffff;\n --dc-surface-container-low: #eef0ff;\n --dc-surface-container: #e8eaff;\n --dc-surface-container-high: #e0e3ff;\n --dc-surface-container-highest: #d8dbff;\n --dc-surface-bright: #ffffff;\n\n --dc-primary: #4547ce;\n --dc-primary-dim: #3234b0;\n --dc-primary-fixed: #eaeaff;\n --dc-on-primary: #ffffff;\n --dc-primary-container: #eaeaff;\n\n --dc-on-surface: #0d0f2d;\n --dc-on-surface-variant: #3f4263;\n\n --dc-outline: #6b6d8f;\n --dc-outline-variant: #c4c5e0;\n --dc-border-source: #6b6d8f;\n\n --dc-error: #ba1a1a;\n --dc-error-container: #ffdad6;\n --dc-on-error-container: #410002;\n\n --dc-secondary: #5b5898;\n --dc-secondary-container: #e4e0ff;\n --dc-tertiary: #7c4e69;\n\n --dc-success: #006c4c;\n --dc-success-container: #94f7cb;\n --dc-warning: #7c5700;\n --dc-warning-container: #ffdea1;\n}\n\n/* Explicit dark override (beats @media) */\n[data-theme=\"dark\"] {\n color-scheme: dark;\n}\n\n/* ─── BASE STYLES ─────────────────────────────────────────────── */\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\nhtml {\n font-size: 16px;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nbody {\n background-color: var(--dc-surface);\n color: var(--dc-on-surface);\n font-family: var(--dc-font-body);\n font-size: var(--dc-body-md);\n line-height: 1.6;\n transition: background-color var(--dc-transition-base), color var(--dc-transition-base);\n}\n";function e(n,r,e){const t="undefined"!=typeof HTMLElement?HTMLElement.prototype:null;for(;n&&n!==t;){const t=Object.getOwnPropertyDescriptor(n,r);if(t&&(!e||t.get))return t;n=Object.getPrototypeOf(n)}}var t,o=(n,r)=>{var t;Object.entries(null!=(t=r.o.t)?t:{}).map((([t,[o]])=>{if(31&o||32&o){const o=n[t],c=e(Object.getPrototypeOf(n),t,!0)||Object.getOwnPropertyDescriptor(n,t);c&&Object.defineProperty(n,t,{get(){return c.get.call(this)},set(n){c.set.call(this,n)},configurable:!0,enumerable:!0}),r.i.has(t)?n[t]=r.i.get(t):void 0!==o&&(n[t]=o)}}))},c=n=>{if(n.__stencil__getHostRef)return n.__stencil__getHostRef()},a=(n,r)=>{r&&(n.__stencil__getHostRef=()=>r,r.l=n,512&r.o.u&&o(n,r))},i=(n,r)=>r in n,s=(n,r)=>(0,console.error)(n,r),d=new Map,l=new Map,f="undefined"!=typeof window?window:{},u={u:0,m:"",jmp:n=>n(),raf:n=>requestAnimationFrame(n),ael:(n,r,e,t)=>n.addEventListener(r,e,t),rel:(n,r,e,t)=>n.removeEventListener(r,e,t),ce:(n,r)=>new CustomEvent(n,r)},m=n=>Promise.resolve(n),p=(()=>{try{return!!f.document.adoptedStyleSheets&&(new CSSStyleSheet,"function"==typeof(new CSSStyleSheet).replaceSync)}catch(n){}return!1})(),b=!!p&&(()=>!!f.document&&Object.getOwnPropertyDescriptor(f.document.adoptedStyleSheets,"length").writable)(),h=!1,g=[],v=[],y=(n,r)=>e=>{n.push(e),h||(h=!0,r&&4&u.u?$(x):u.raf(x))},w=n=>{for(let r=0;r<n.length;r++)try{n[r](performance.now())}catch(n){s(n)}n.length=0},x=()=>{w(g),w(v),(h=g.length>0)&&u.raf(x)},$=n=>m().then(n),S=y(v,!0);function k(){var n;const e=this.attachShadow({mode:"open"});if(void 0===t&&(t=null!=(n=function(n){if(!p)return;const r=new CSSStyleSheet;return r.replaceSync(n),r}(r))?n:null),t)b?e.adoptedStyleSheets.push(t):e.adoptedStyleSheets=[...e.adoptedStyleSheets,t];else if(!p){const n=document.createElement("style");n.innerHTML=r,e.prepend(n)}}function O(n){var r,e,t;return null!=(t=null==(e=null==(r=n.head)?void 0:r.querySelector('meta[name="csp-nonce"]'))?void 0:e.getAttribute("content"))?t:void 0}var j,E=new WeakMap,M=n=>"sc-"+n.p,T=n=>"object"==(n=typeof n)||"function"===n,A=(n,r,...e)=>{let t=null,o=null,c=!1,a=!1;const i=[],s=r=>{for(let e=0;e<r.length;e++)t=r[e],Array.isArray(t)?s(t):null!=t&&"boolean"!=typeof t&&((c="function"!=typeof n&&!T(t))&&(t+=""),c&&a?i[i.length-1].h+=t:i.push(c?C(null,t):t),a=c)};if(s(e),r){r.key&&(o=r.key);{const n=r.className||r.class;n&&(r.class="object"!=typeof n?n:Object.keys(n).filter((r=>n[r])).join(" "))}}const d=C(n,null);return d.v=r,i.length>0&&(d.$=i),d.S=o,d},C=(n,r)=>({u:0,k:n,h:null!=r?r:null,O:null,$:null,v:null,S:null}),D={},R=(n,r)=>null==n||T(n)?n:4&r?"false"!==n&&(""===n||!!n):1&r?n+"":n,H=(n,r)=>{const e=(n=>{var r;return null==(r=c(n))?void 0:r.$hostElement$})(n);return{emit:n=>L(e,r,{bubbles:!0,composed:!0,cancelable:!0,detail:n})}},L=(n,r,e)=>{const t=u.ce(r,e);return n.dispatchEvent(t),t},I=(n,r,e,t,o,a)=>{if(e===t)return;let s=i(n,r),d=r.toLowerCase();if("class"===r){const r=n.classList,o=P(e);let c=P(t);r.remove(...o.filter((n=>n&&!c.includes(n)))),r.add(...c.filter((n=>n&&!o.includes(n))))}else if("style"===r){for(const r in e)t&&null!=t[r]||(r.includes("-")?n.style.removeProperty(r):n.style[r]="");for(const r in t)e&&t[r]===e[r]||(r.includes("-")?n.style.setProperty(r,t[r]):n.style[r]=t[r])}else if("key"===r);else if(s||"o"!==r[0]||"n"!==r[1]){if("a"===r[0]&&r.startsWith("attr:")){const e=r.slice(5);let o;{const r=c(n);if(r&&r.o&&r.o.t){const n=r.o.t[e];n&&n[1]&&(o=n[1])}}return o||(o=e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()),void(null==t||!1===t?!1===t&&""!==n.getAttribute(o)||n.removeAttribute(o):n.setAttribute(o,!0===t?"":t))}if("p"===r[0]&&r.startsWith("prop:")){const e=r.slice(5);try{n[e]=t}catch(n){}return}{const c=T(t);if((s||c&&null!==t)&&!o)try{if(n.tagName.includes("-"))n[r]!==t&&(n[r]=t);else{const o=null==t?"":t;"list"===r?s=!1:null!=e&&n[r]===o||("function"==typeof n.__lookupSetter__(r)?n[r]=o:n.setAttribute(r,o))}}catch(n){}null==t||!1===t?!1===t&&""!==n.getAttribute(r)||n.removeAttribute(r):(!s||4&a||o)&&!c&&1===n.nodeType&&n.setAttribute(r,t=!0===t?"":t)}}else if(r="-"===r[2]?r.slice(3):i(f,d)?d.slice(2):d[2]+r.slice(3),e||t){const o=r.endsWith(z);r=r.replace(U,""),e&&u.rel(n,r,e,o),t&&u.ael(n,r,t,o)}},N=/\s/,P=n=>("object"==typeof n&&n&&"baseVal"in n&&(n=n.baseVal),n&&"string"==typeof n?n.split(N):[]),z="Capture",U=RegExp(z+"$"),B=(n,r,e)=>{const t=11===r.O.nodeType&&r.O.host?r.O.host:r.O,o=n&&n.v||{},c=r.v||{};for(const n of V(Object.keys(o)))n in c||I(t,n,o[n],void 0,e,r.u);for(const n of V(Object.keys(c)))I(t,n,o[n],c[n],e,r.u)};function V(n){return n.includes("ref")?[...n.filter((n=>"ref"!==n)),"ref"]:n}var G=!1,W=!1,F=(n,r,e)=>{const t=r.$[e];let o,c,a=0;if(null!=t.h)o=t.O=f.document.createTextNode(t.h);else{if(W||(W="svg"===t.k),!f.document)throw Error("You are trying to render a Stencil component in an environment that doesn't support the DOM.");if(o=t.O=f.document.createElementNS(W?"http://www.w3.org/2000/svg":"http://www.w3.org/1999/xhtml",t.k),W&&"foreignObject"===t.k&&(W=!1),B(null,t,W),t.$){const r="template"===t.k?o.content:o;for(a=0;a<t.$.length;++a)c=F(n,t,a),c&&r.appendChild(c)}"svg"===t.k?W=!1:"foreignObject"===o.tagName&&(W=!0)}return o["s-hn"]=j,o},q=(n,r,e,t,o,c)=>{let a,i=n;for(i.shadowRoot&&i.tagName===j&&(i=i.shadowRoot),"template"===e.k&&(i=i.content);o<=c;++o)t[o]&&(a=F(null,e,o),a&&(t[o].O=a,_(i,a,r)))},K=(n,r,e)=>{for(let t=r;t<=e;++t){const r=n[t];if(r){const n=r.O;n&&n.remove()}}},Y=(n,r,e=!1)=>n.k===r.k&&(e?(e&&!n.S&&r.S&&(n.S=r.S),!0):n.S===r.S),Z=(n,r,e=!1)=>{const t=r.O=n.O,o=n.$,c=r.$,a=r.k,i=r.h;null==i?(W="svg"===a||"foreignObject"!==a&&W,"slot"!==a||G||n.j!==r.j&&(r.O["s-sn"]=r.j||"",(n=>{u.u|=1;const r=n.closest(j.toLowerCase());if(null!=r){const e=Array.from(r.__childNodes||r.childNodes).find((n=>n["s-cr"])),t=Array.from(n.__childNodes||n.childNodes);for(const n of e?t.reverse():t)null!=n["s-sh"]&&(_(r,n,null!=e?e:null),n["s-sh"]=void 0)}u.u&=-2})(r.O.parentElement)),B(n,r,W),null!==o&&null!==c?((n,r,e,t,o=!1)=>{let c,a,i=0,s=0,d=0,l=0,f=r.length-1,u=r[0],m=r[f],p=t.length-1,b=t[0],h=t[p];const g="template"===e.k?n.content:n;for(;i<=f&&s<=p;)if(null==u)u=r[++i];else if(null==m)m=r[--f];else if(null==b)b=t[++s];else if(null==h)h=t[--p];else if(Y(u,b,o))Z(u,b,o),u=r[++i],b=t[++s];else if(Y(m,h,o))Z(m,h,o),m=r[--f],h=t[--p];else if(Y(u,h,o))Z(u,h,o),_(g,u.O,m.O.nextSibling),u=r[++i],h=t[--p];else if(Y(m,b,o))Z(m,b,o),_(g,m.O,u.O),m=r[--f],b=t[++s];else{for(d=-1,l=i;l<=f;++l)if(r[l]&&null!==r[l].S&&r[l].S===b.S){d=l;break}d>=0?(a=r[d],a.k!==b.k?c=F(r&&r[s],e,d):(Z(a,b,o),r[d]=void 0,c=a.O),b=t[++s]):(c=F(r&&r[s],e,s),b=t[++s]),c&&_(u.O.parentNode,c,u.O)}i>f?q(n,null==t[p+1]?null:t[p+1].O,e,t,s,p):s>p&&K(r,i,f)})(t,o,r,c,e):null!==c?(null!==n.h&&(t.textContent=""),q(t,null,r,c,0,c.length-1)):!e&&null!==o&&K(o,0,o.length-1),W&&"svg"===a&&(W=!1)):n.h!==i&&(t.data=i)},_=(n,r,e)=>n.__insertBefore?n.__insertBefore(r,e):null==n?void 0:n.insertBefore(r,e),J=(n,r)=>{if(r&&!n.M&&r["s-p"]){const e=r["s-p"].push(new Promise((t=>n.M=()=>{r["s-p"].splice(e-1,1),t()})))}},Q=(n,r)=>{if(n.u|=16,4&n.u)return void(n.u|=512);J(n,n.T);const e=()=>X(n,r);if(!r)return S(e);queueMicrotask((()=>{e()}))},X=(n,r)=>{const e=n.$hostElement$,t=n.l;if(!t)throw Error(`Can't render component <${e.tagName.toLowerCase()} /> with invalid Stencil runtime! Make sure this imported component is compiled with a \`externalRuntime: true\` flag. For more information, please refer to https://stenciljs.com/docs/custom-elements#externalruntime`);let o;return r?(n.A.length&&n.A.forEach((n=>n(e))),o=an(t,"componentWillLoad",void 0,e)):o=an(t,"componentWillUpdate",void 0,e),o=nn(o,(()=>an(t,"componentWillRender",void 0,e))),nn(o,(()=>en(n,t,r)))},nn=(n,r)=>rn(n)?n.then(r).catch((n=>{console.error(n),r()})):r(),rn=n=>n instanceof Promise||n&&n.then&&"function"==typeof n.then,en=async(n,r,e)=>{var t;const o=n.$hostElement$,c=o["s-rc"];e&&(n=>{const r=n.o,e=n.$hostElement$,t=r.u,o=((n,r)=>{var e,t,o;const c=M(r),a=l.get(c);if(!f.document)return c;if(n=11===n.nodeType?n:f.document,a)if("string"==typeof a){let o,i=E.get(n=n.head||n);if(i||E.set(n,i=new Set),!i.has(c)){o=f.document.createElement("style"),o.textContent=a;const s=null!=(e=u.C)?e:O(f.document);if(null!=s&&o.setAttribute("nonce",s),!(1&r.u))if("HEAD"===n.nodeName){const r=n.querySelectorAll("link[rel=preconnect]"),e=r.length>0?r[r.length-1].nextSibling:n.querySelector("style");n.insertBefore(o,(null==e?void 0:e.parentNode)===n?e:null)}else if("host"in n)if(p){const r=new(null!=(t=n.defaultView)?t:n.ownerDocument.defaultView).CSSStyleSheet;r.replaceSync(a),b?n.adoptedStyleSheets.unshift(r):n.adoptedStyleSheets=[r,...n.adoptedStyleSheets]}else{const r=n.querySelector("style");r?r.textContent=a+r.textContent:n.prepend(o)}else n.append(o);1&r.u&&n.insertBefore(o,null),4&r.u&&(o.textContent+="slot-fb{display:contents}slot-fb[hidden]{display:none}"),i&&i.add(c)}}else{let r=E.get(n);if(r||E.set(n,r=new Set),!r.has(c)){const e=null!=(o=n.defaultView)?o:n.ownerDocument.defaultView;let t;if(a.constructor===e.CSSStyleSheet)t=a;else{t=new e.CSSStyleSheet;for(let n=0;n<a.cssRules.length;n++)t.insertRule(a.cssRules[n].cssText,n)}b?n.adoptedStyleSheets.push(t):n.adoptedStyleSheets=[...n.adoptedStyleSheets,t],r.add(c)}}return c})(e.shadowRoot?e.shadowRoot:e.getRootNode(),r);10&t&&(e["s-sc"]=o,e.classList.add(o+"-h"))})(n);tn(n,r,o,e),c&&(c.map((n=>n())),o["s-rc"]=void 0);{const r=null!=(t=o["s-p"])?t:[],e=()=>on(n);0===r.length?e():(Promise.all(r).then(e).catch(e),n.u|=4,r.length=0)}},tn=(n,r,e,t)=>{try{r=r.render(),n.u&=-17,n.u|=2,((n,r,e=!1)=>{const t=n.$hostElement$,o=n.o,c=n.D||C(null,null),a=(n=>n&&n.k===D)(r)?r:A(null,null,r);if(j=t.tagName,e&&a.v)for(const n of Object.keys(a.v))t.hasAttribute(n)&&!["key","ref","style","class"].includes(n)&&(a.v[n]=t[n]);a.k=null,a.u|=4,n.D=a,a.O=c.O=t.shadowRoot||t,G=!(!(1&o.u)||128&o.u),Z(c,a,e)})(n,r,t)}catch(r){s(r,n.$hostElement$)}return null},on=n=>{const r=n.$hostElement$,e=n.l,t=n.T;an(e,"componentDidRender",void 0,r),64&n.u?an(e,"componentDidUpdate",void 0,r):(n.u|=64,sn(r),an(e,"componentDidLoad",void 0,r),n.R(r),t||cn()),n.M&&(n.M(),n.M=void 0),512&n.u&&$((()=>Q(n,!1))),n.u&=-517},cn=()=>{$((()=>L(f,"appload",{detail:{namespace:"luster"}})))},an=(n,r,e,t)=>{if(n&&n[r])try{return n[r](e)}catch(n){s(n,t)}},sn=n=>n.classList.add("hydrated"),dn=(n,r,e,t)=>{const o=c(n);if(!o)return;if(!o)throw Error(`Couldn't find host element for "${t.p}" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/stenciljs/core/issues/5457).`);const a=o.$hostElement$,i=o.i.get(r),d=o.u,l=o.l;if(e=R(e,t.t[r][0]),!(8&d&&void 0!==i||e===i||Number.isNaN(i)&&Number.isNaN(e))){if(o.i.set(r,e),t.H){const n=t.H[r];n&&n.map((n=>{try{const[[t,c]]=Object.entries(n);(128&d||1&c)&&(l?l[t](e,i,r):o.A.push((()=>{o.l[t](e,i,r)})))}catch(n){s(n,a)}}))}if(2&d){if(l.componentShouldUpdate&&!1===l.componentShouldUpdate(e,i,r)&&!(16&d))return;16&d||Q(o,!1)}}},ln=(n,r,t)=>{var o,a;const i=n.prototype;{n.watchers&&!r.H&&(r.H=n.watchers),n.deserializers&&!r.L&&(r.L=n.deserializers),n.serializers&&!r.I&&(r.I=n.serializers);const s=Object.entries(null!=(o=r.t)?o:{});if(s.map((([n,[o]])=>{if(31&o||2&t&&32&o){const{get:a,set:s}=e(i,n)||{};a&&(r.t[n][0]|=2048),s&&(r.t[n][0]|=4096),(1&t||!a)&&Object.defineProperty(i,n,{get(){{if(!(2048&r.t[n][0]))return((n,r)=>c(this).i.get(r))(0,n);const e=c(this),t=e?e.l:i;if(!t)return;return t[n]}},configurable:!0,enumerable:!0}),Object.defineProperty(i,n,{set(e){const a=c(this);if(a){if(s)return void 0===(32&o?this[n]:a.$hostElement$[n])&&a.i.get(n)&&(e=a.i.get(n)),s.call(this,R(e,o)),void dn(this,n,e=32&o?this[n]:a.$hostElement$[n],r);{if(!(1&t&&4096&r.t[n][0]))return dn(this,n,e,r),void(1&t&&!a.l&&a.A.push((()=>{4096&r.t[n][0]&&a.l[n]!==a.i.get(n)&&(a.l[n]=e)})));const c=()=>{const t=a.l[n];!a.i.get(n)&&t&&a.i.set(n,t),a.l[n]=R(e,o),dn(this,n,a.l[n],r)};a.l?c():a.A.push((()=>{c()}))}}}})}})),1&t){const e=new Map;i.attributeChangedCallback=function(n,t,o){u.jmp((()=>{var a;const d=e.get(n),l=c(this);if(this.hasOwnProperty(d)&&(o=this[d],delete this[d]),i.hasOwnProperty(d)&&"number"==typeof this[d]&&this[d]==o)return;if(null==d){const e=null==l?void 0:l.u;if(l&&e&&!(8&e)&&o!==t){const c=l.l,i=null==(a=r.H)?void 0:a[n];null==i||i.forEach((r=>{const[[a,i]]=Object.entries(r);null!=c[a]&&(128&e||1&i)&&c[a].call(c,o,t,n)}))}return}const f=s.find((([n])=>n===d));f&&4&f[1][0]&&(o=null!==o&&"false"!==o);const u=Object.getOwnPropertyDescriptor(i,d);o==this[d]||u.get&&!u.set||(this[d]=o)}))},n.observedAttributes=Array.from(new Set([...Object.keys(null!=(a=r.H)?a:{}),...s.filter((([n,r])=>31&r[0])).map((([n,r])=>{const t=r[1]||n;return e.set(t,n),t}))]))}}return n},fn=(n,r)=>{an(n,"connectedCallback",void 0,r)},un=(n,r)=>{an(n,"disconnectedCallback",void 0,r||n)},mn=(n,r={})=>{var e;if(!f.document)return void console.warn("Stencil: No document found. Skipping bootstrapping lazy components.");const t=[],o=r.exclude||[],a=f.customElements,i=f.document.head,m=i.querySelector("meta[charset]"),b=f.document.createElement("style"),h=[];let g,v=!0;if(Object.assign(u,r),u.m=new URL(r.resourcesUrl||"./",f.document.baseURI).href,n.map((n=>{n[1].map((r=>{var e,i,f;const m={u:r[0],p:r[1],t:r[2],N:r[3]};m.t=r[2],m.H=null!=(e=r[4])?e:{},m.I=null!=(i=r[5])?i:{},m.L=null!=(f=r[6])?f:{};const b=m.p,y=class extends HTMLElement{"s-p";"s-rc";hasRegisteredEventListeners=!1;constructor(n){if(super(n),((n,r)=>{const e={u:0,$hostElement$:n,o:r,i:new Map,P:new Map};e.U=new Promise((n=>e.R=n)),n["s-p"]=[],n["s-rc"]=[],e.A=[];const t=e;n.__stencil__getHostRef=()=>t})(n=this,m),1&m.u)if(n.shadowRoot){if("open"!==n.shadowRoot.mode)throw Error(`Unable to re-use existing shadow root for ${m.p}! Mode is set to ${n.shadowRoot.mode} but Stencil only supports open shadow roots.`)}else k.call(n,m)}connectedCallback(){c(this)&&(this.hasRegisteredEventListeners||(this.hasRegisteredEventListeners=!0),g&&(clearTimeout(g),g=null),v?h.push(this):u.jmp((()=>(n=>{if(!(1&u.u)){const r=c(n);if(!r)return;const e=r.o,t=()=>{};if(1&r.u)(null==r?void 0:r.l)?fn(r.l,n):(null==r?void 0:r.U)&&r.U.then((()=>fn(r.l,n)));else{r.u|=1;{let e=n;for(;e=e.parentNode||e.host;)if(e["s-p"]){J(r,r.T=e);break}}e.t&&Object.entries(e.t).map((([r,[e]])=>{if(31&e&&Object.prototype.hasOwnProperty.call(n,r)){const e=n[r];delete n[r],n[r]=e}})),(async(n,r,e)=>{let t;try{if(!(32&r.u)){if(r.u|=32,e.B){const o=((n,r)=>{const e=n.p.replace(/-/g,"_"),t=n.B;if(!t)return;const o=d.get(t);return o?o[e]:import(`./${t}.entry.js`).then((n=>(d.set(t,n),n[e])),(n=>{s(n,r.$hostElement$)}))
2
+ /*!__STENCIL_STATIC_IMPORT_SWITCH__*/})(e,r);if(o&&"then"in o){const n=()=>{};t=await o,n()}else t=o;if(!t)throw Error(`Constructor for "${e.p}#${r.V}" was not found`);t.isProxied||(e.H=t.watchers,e.I=t.serializers,e.L=t.deserializers,ln(t,e,2),t.isProxied=!0);const c=()=>{};r.u|=8;try{new t(r)}catch(r){s(r,n)}r.u&=-9,r.u|=128,c(),fn(r.l,n)}else t=n.constructor,customElements.whenDefined(n.localName).then((()=>r.u|=128));if(t&&t.style){let n;"string"==typeof t.style&&(n=t.style);const r=M(e);if(!l.has(r)){const t=()=>{};((n,r,e)=>{let t=l.get(n);p&&e?(t=t||new CSSStyleSheet,"string"==typeof t?t=r:t.replaceSync(r)):t=r,l.set(n,t)})(r,n,!!(1&e.u)),t()}}}const o=r.T,c=()=>Q(r,!0);o&&o["s-rc"]?o["s-rc"].push(c):c()}catch(e){s(e,n),r.M&&(r.M(),r.M=void 0),r.R&&r.R(n)}})(n,r,e)}t()}})(this))))}disconnectedCallback(){u.jmp((()=>(async n=>{if(!(1&u.u)){const r=c(n);(null==r?void 0:r.l)?un(r.l,n):(null==r?void 0:r.U)&&r.U.then((()=>un(r.l,n)))}E.has(n)&&E.delete(n),n.shadowRoot&&E.has(n.shadowRoot)&&E.delete(n.shadowRoot)})(this))),u.raf((()=>{var n;const r=c(this);if(!r)return;const e=h.findIndex((n=>n===this));e>-1&&h.splice(e,1),(null==(n=null==r?void 0:r.D)?void 0:n.O)instanceof Node&&!r.D.O.isConnected&&delete r.D.O}))}componentOnReady(){var n;return null==(n=c(this))?void 0:n.U}};m.B=n[0],o.includes(b)||a.get(b)||(t.push(b),a.define(b,ln(y,m,1)))}))})),t.length>0&&(b.textContent+=t.sort()+"{visibility:hidden}.hydrated{visibility:inherit}",b.innerHTML.length)){b.setAttribute("data-styles","");const n=null!=(e=u.C)?e:O(f.document);null!=n&&b.setAttribute("nonce",n),i.insertBefore(b,m?m.nextSibling:i.firstChild)}v=!1,h.length?h.map((n=>n.connectedCallback())):u.jmp((()=>g=setTimeout(cn,30)))},pn=n=>u.C=n;export{mn as b,H as c,n as g,A as h,m as p,a as r,pn as s}