@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,535 @@
1
+ import { r as registerInstance, c as createEvent, h } from './index-CeYIN8dN.js';
2
+
3
+ const lusterAccordionCss = () => `:host{display:block}.accordion{background:var(--dc-surface-container-high);border-radius:var(--dc-round-3);overflow:hidden;transition:box-shadow var(--dc-transition-base)}.accordion--expanded{box-shadow:var(--dc-shadow-sm)}.accordion__trigger{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--dc-space-4);width:100%;padding:var(--dc-space-4) var(--dc-space-5);background:none;border:none;cursor:pointer;text-align:left;transition:background var(--dc-transition-fast)}.accordion__trigger:hover{background:var(--dc-hover-tint)}.accordion__trigger-left{display:flex;flex-direction:column;gap:var(--dc-space-2);flex:1}.accordion__titles{display:flex;flex-direction:column;gap:4px}.accordion__title{font-family:var(--dc-font-display);font-size:var(--dc-title-sm);font-weight:700;color:var(--dc-on-surface)}.accordion__subtitle{font-size:var(--dc-body-sm);color:var(--dc-on-surface-variant);line-height:1.5}.accordion__chevron{color:var(--dc-on-surface-variant);display:flex;align-items:center;transition:transform var(--dc-transition-base);flex-shrink:0;margin-top:var(--dc-space-1)}.accordion__chevron--up{transform:rotate(180deg)}.accordion__content{max-height:0;overflow:hidden;transition:max-height var(--dc-transition-slow) cubic-bezier(0.4, 0, 0.2, 1)}.accordion--expanded .accordion__content{max-height:600px}.accordion__inner{padding:0 var(--dc-space-5) var(--dc-space-5);color:var(--dc-on-surface-variant);font-size:var(--dc-body-sm);line-height:1.6}`;
4
+
5
+ const DcAccordion = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.dcToggle = createEvent(this, "dcToggle");
9
+ this.heading = '';
10
+ this.subtitle = '';
11
+ this.badge = '';
12
+ this.badgeVariant = 'default';
13
+ this.expanded = false;
14
+ this.isExpanded = false;
15
+ this.handleToggle = () => {
16
+ this.isExpanded = !this.isExpanded;
17
+ this.dcToggle.emit(this.isExpanded);
18
+ };
19
+ }
20
+ componentWillLoad() {
21
+ this.isExpanded = this.expanded;
22
+ }
23
+ render() {
24
+ return (h("div", { key: '8354addfd70119cc5c50b0cadb414d341f5c4dd1', class: `accordion ${this.isExpanded ? 'accordion--expanded' : ''}` }, h("button", { key: 'bffcbfdef833e817b8e03c79fa72b5a5a4edbbb0', class: "accordion__trigger", onClick: this.handleToggle, "aria-expanded": this.isExpanded ? 'true' : 'false' }, h("div", { key: '5b6e51d9e0eabb125b50b54ebd54667432a672b3', class: "accordion__trigger-left" }, this.badge && (h("luster-badge", { key: '1894640145ac7ab6df3867b9710e475573c99b5b', variant: this.badgeVariant, size: "sm" }, this.badge)), h("div", { key: '30e6782a85ceec036d91b12c936c5c2863a4f017', class: "accordion__titles" }, h("span", { key: '7c7bf525077ba806efb13ddee674a6049af64204', class: "accordion__title" }, this.heading), this.subtitle && (h("span", { key: 'd888d5b78704713aa1c4c9cc902dbd04979503e2', class: "accordion__subtitle" }, this.subtitle)))), h("span", { key: '98601396b5fcd1d777935d400a1f01072c9d437a', class: `accordion__chevron ${this.isExpanded ? 'accordion__chevron--up' : ''}` }, h("svg", { key: '5c9c4af605307d12973f82c5166d8e3873e402c3', width: "16", height: "16", viewBox: "0 0 24 24", fill: "none" }, h("polyline", { key: 'd59e9cc24f98cdd87c317f3107b34ba9c732b3af', points: "6,9 12,15 18,9", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })))), h("div", { key: '3b7245e52cc48797637756d8ec66bcf1868adfe4', class: "accordion__content", "aria-hidden": !this.isExpanded ? 'true' : 'false' }, h("div", { key: 'ab1069f5ab0d102b16fc02ef71365c4cd4525af8', class: "accordion__inner" }, h("slot", { key: 'cfc15924e2effa62732dd221d846f44baeff0901' })))));
25
+ }
26
+ };
27
+ DcAccordion.style = lusterAccordionCss();
28
+
29
+ const lusterActivityItemCss = () => `:host{display:block}.activity-item{display:flex;align-items:flex-start;gap:var(--dc-space-3);padding:var(--dc-space-3) 0}.activity-item+.activity-item{border-top:1px solid var(--dc-divider)}.activity-item__icon{width:28px;height:28px;border-radius:var(--dc-round-full);background:var(--dc-icon-bg);display:flex;align-items:center;justify-content:center;color:var(--dc-primary);flex-shrink:0}.activity-item__content{flex:1;display:flex;flex-direction:column;gap:2px;overflow:hidden}.activity-item__title{font-size:var(--dc-body-sm);font-weight:600;color:var(--dc-on-surface);line-height:1.3}.activity-item__desc{font-size:var(--dc-label-md);color:var(--dc-on-surface-variant);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.activity-item__time{font-size:var(--dc-label-sm);color:var(--dc-on-surface-variant);margin-top:var(--dc-space-1)}.activity-item--file{align-items:center;background:var(--dc-surface-container);border-radius:var(--dc-round-3);padding:var(--dc-space-3) var(--dc-space-4);transition:background var(--dc-transition-fast)}.activity-item--file+.activity-item--file{border-top:none;margin-top:var(--dc-space-2)}.activity-item--file:hover{background:var(--dc-surface-container-high)}.activity-item__file-icon{width:36px;height:36px;border-radius:var(--dc-round-2);background:var(--dc-icon-bg);display:flex;align-items:center;justify-content:center;color:var(--dc-primary);flex-shrink:0}.activity-item__meta{display:flex;align-items:center;gap:var(--dc-space-1);font-size:var(--dc-label-sm);color:var(--dc-on-surface-variant)}.activity-item__download{background:none;border:none;cursor:pointer;color:var(--dc-on-surface-variant);display:flex;align-items:center;padding:var(--dc-space-1);border-radius:var(--dc-round-1);flex-shrink:0;opacity:0.6;transition:opacity var(--dc-transition-fast)}.activity-item__download:hover{opacity:1}`;
30
+
31
+ const DcActivityItem = class {
32
+ constructor(hostRef) {
33
+ registerInstance(this, hostRef);
34
+ this.label = '';
35
+ this.description = '';
36
+ this.time = '';
37
+ this.variant = 'activity';
38
+ this.icon = 'edit';
39
+ this.fileSize = '';
40
+ this.downloadable = false;
41
+ }
42
+ getIcon() {
43
+ switch (this.icon) {
44
+ case 'edit':
45
+ return (h("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none" }, h("path", { d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }), h("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })));
46
+ case 'sync':
47
+ return (h("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none" }, h("polyline", { points: "1 4 1 10 7 10", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { d: "M3.51 15a9 9 0 1 0 .49-8.49", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" })));
48
+ case 'user':
49
+ return (h("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none" }, h("path", { d: "M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2", stroke: "currentColor", "stroke-width": "2" }), h("circle", { cx: "12", cy: "7", r: "4", stroke: "currentColor", "stroke-width": "2" })));
50
+ case 'file':
51
+ return (h("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none" }, h("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z", stroke: "currentColor", "stroke-width": "2" }), h("polyline", { points: "14,2 14,8 20,8", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" })));
52
+ default:
53
+ return (h("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none" }, h("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", "stroke-width": "2" })));
54
+ }
55
+ }
56
+ render() {
57
+ if (this.variant === 'file') {
58
+ return (h("div", { class: "activity-item activity-item--file" }, h("div", { class: "activity-item__file-icon" }, this.getIcon()), h("div", { class: "activity-item__content" }, h("span", { class: "activity-item__title" }, this.label), h("span", { class: "activity-item__meta" }, this.fileSize && h("span", null, this.fileSize), this.time && h("span", null, "\u00B7 ", this.time))), this.downloadable && (h("button", { class: "activity-item__download", "aria-label": "Download" }, h("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none" }, h("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }), h("polyline", { points: "7,10 12,15 17,10", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("line", { x1: "12", y1: "15", x2: "12", y2: "3", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }))))));
59
+ }
60
+ return (h("div", { class: "activity-item" }, h("div", { class: "activity-item__icon" }, this.getIcon()), h("div", { class: "activity-item__content" }, h("span", { class: "activity-item__title" }, this.label), this.description && (h("span", { class: "activity-item__desc" }, this.description)), this.time && h("span", { class: "activity-item__time" }, this.time))));
61
+ }
62
+ };
63
+ DcActivityItem.style = lusterActivityItemCss();
64
+
65
+ const lusterAlertCss = () => `:host{display:block}.alert{display:flex;align-items:flex-start;gap:var(--dc-space-3);padding:var(--dc-space-3) var(--dc-space-4);border-radius:var(--dc-round-3);border-left:3px solid currentColor;animation:slideIn 0.2s ease-out}.alert--info{background:rgba(163, 166, 255, 0.08);color:var(--dc-primary)}.alert--success{background:rgba(76, 206, 172, 0.08);color:var(--dc-success)}.alert--warning{background:rgba(255, 209, 102, 0.08);color:var(--dc-warning)}.alert--error{background:rgba(255, 180, 171, 0.08);color:var(--dc-error)}.alert__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.alert__body{flex:1;display:flex;flex-direction:column;gap:2px}.alert__title{font-family:var(--dc-font-body);font-size:var(--dc-body-sm);font-weight:600;color:var(--dc-on-surface)}.alert__message{font-size:var(--dc-body-sm);color:var(--dc-on-surface-variant)}.alert__time{font-size:var(--dc-label-sm);color:var(--dc-on-surface-variant);margin-top:var(--dc-space-1)}.alert__close{background:none;border:none;cursor:pointer;color:var(--dc-on-surface-variant);display:flex;align-items:center;justify-content:center;padding:var(--dc-space-1);border-radius:var(--dc-round-1);flex-shrink:0;opacity:0.6;transition:opacity var(--dc-transition-fast)}.alert__close:hover{opacity:1}@keyframes slideIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}`;
66
+
67
+ const DcAlert = class {
68
+ constructor(hostRef) {
69
+ registerInstance(this, hostRef);
70
+ this.dcDismiss = createEvent(this, "dcDismiss");
71
+ this.heading = '';
72
+ this.message = '';
73
+ this.variant = 'info';
74
+ this.dismissible = true;
75
+ this.timestamp = '';
76
+ this.visible = true;
77
+ this.dismiss = () => {
78
+ this.visible = false;
79
+ this.dcDismiss.emit();
80
+ };
81
+ }
82
+ getIcon() {
83
+ switch (this.variant) {
84
+ case 'success':
85
+ return (h("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none" }, h("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", "stroke-width": "2" }), h("path", { d: "M8 12l3 3 5-5", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })));
86
+ case 'error':
87
+ return (h("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none" }, h("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", "stroke-width": "2" }), h("line", { x1: "15", y1: "9", x2: "9", y2: "15", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }), h("line", { x1: "9", y1: "9", x2: "15", y2: "15", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" })));
88
+ case 'warning':
89
+ return (h("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none" }, h("path", { d: "M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z", stroke: "currentColor", "stroke-width": "2" }), h("line", { x1: "12", y1: "9", x2: "12", y2: "13", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }), h("line", { x1: "12", y1: "17", x2: "12.01", y2: "17", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" })));
90
+ default:
91
+ return (h("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none" }, h("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", "stroke-width": "2" }), h("line", { x1: "12", y1: "8", x2: "12", y2: "12", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }), h("line", { x1: "12", y1: "16", x2: "12.01", y2: "16", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" })));
92
+ }
93
+ }
94
+ render() {
95
+ if (!this.visible)
96
+ return null;
97
+ return (h("div", { class: `alert alert--${this.variant}`, role: "alert" }, h("span", { class: "alert__icon" }, this.getIcon()), h("div", { class: "alert__body" }, this.heading && h("span", { class: "alert__title" }, this.heading), this.message && h("span", { class: "alert__message" }, this.message), this.timestamp && h("span", { class: "alert__time" }, this.timestamp)), this.dismissible && (h("button", { class: "alert__close", onClick: this.dismiss, "aria-label": "Dismiss" }, h("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none" }, h("line", { x1: "18", y1: "6", x2: "6", y2: "18", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }), h("line", { x1: "6", y1: "6", x2: "18", y2: "18", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }))))));
98
+ }
99
+ };
100
+ DcAlert.style = lusterAlertCss();
101
+
102
+ const lusterArticleCardCss = () => `:host{display:block}.article-card{background:var(--dc-surface-container-high);border-radius:var(--dc-round-4);overflow:hidden;display:flex;flex-direction:column;transition:background var(--dc-transition-base);cursor:pointer}.article-card:hover{background:var(--dc-surface-bright)}.article-card__image{position:relative;height:160px;overflow:hidden}.article-card__image img{width:100%;height:100%;object-fit:cover}.article-card__image-overlay{position:absolute;inset:0;background:linear-gradient(to bottom, var(--dc-image-overlay-top) 0%, var(--dc-image-overlay-bottom) 100%)}.article-card__body{padding:var(--dc-space-5);display:flex;flex-direction:column;gap:var(--dc-space-3);flex:1}.article-card__category{font-size:var(--dc-label-sm);font-weight:700;color:var(--dc-primary);letter-spacing:var(--dc-tracking-wider);text-transform:uppercase}.article-card__date{font-size:var(--dc-label-sm);color:var(--dc-on-surface-variant)}.article-card__title{font-family:var(--dc-font-display);font-size:var(--dc-title-lg);font-weight:700;color:var(--dc-on-surface);letter-spacing:var(--dc-tracking-tight);line-height:1.3;margin:0}.article-card--featured .article-card__title{font-size:var(--dc-headline-sm)}.article-card__excerpt{font-size:var(--dc-body-sm);color:var(--dc-on-surface-variant);line-height:1.6;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.article-card__byline{display:flex;align-items:center;gap:var(--dc-space-2);margin-top:auto}.article-card__author-avatar{width:24px;height:24px;border-radius:var(--dc-round-full);background:linear-gradient(135deg, var(--dc-primary), var(--dc-primary-dim));display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--dc-on-primary);flex-shrink:0}.article-card__author{display:block;font-size:var(--dc-label-md);font-weight:600;color:var(--dc-on-surface)}.article-card__author-role{display:block;font-size:var(--dc-label-sm);color:var(--dc-on-surface-variant)}.article-card__read-more{display:flex;align-items:center;gap:var(--dc-space-1);font-size:var(--dc-label-sm);color:var(--dc-primary);margin-left:auto}`;
103
+
104
+ const DcArticleCard = class {
105
+ constructor(hostRef) {
106
+ registerInstance(this, hostRef);
107
+ this.category = '';
108
+ this.heading = '';
109
+ this.excerpt = '';
110
+ this.date = '';
111
+ this.author = '';
112
+ this.authorRole = '';
113
+ this.imageUrl = '';
114
+ this.featured = false;
115
+ }
116
+ render() {
117
+ return (h("article", { key: '520f8dc527b674523094963a9fe21caa1bfe1cff', class: `article-card ${this.featured ? 'article-card--featured' : ''}` }, this.featured && this.imageUrl && (h("div", { key: '8f190538fbacc6e87be7573a5d91fce8c1f9dd53', class: "article-card__image" }, h("img", { key: '120e1b8d46076ab89333565f9b0c6b98ad6b2850', src: this.imageUrl, alt: this.heading }), h("div", { key: 'a31961b7c434a95ba063f5a0a121c5b3b4709484', class: "article-card__image-overlay" }))), h("div", { key: 'dd331d9b8896566747539b658d4e3c77eff11798', class: "article-card__body" }, this.category && (h("span", { key: '26f6c42e629c2576715d3c0b43ec61a73edbf8f1', class: "article-card__category" }, this.category)), this.date && !this.featured && (h("span", { key: '3d05f2ae1b3b102558422307b545f144ea920cd4', class: "article-card__date" }, this.date)), this.date && this.featured && (h("span", { key: '492c6989b62416e891349a7027ce9cade8be229a', class: "article-card__date" }, this.date)), h("h3", { key: 'aa7a850253dbf612ba16fa9b628a2abd25a74083', class: "article-card__title" }, this.heading), this.excerpt && (h("p", { key: '933fd34f4f424d95f94d05eacbe6b4694cc580a8', class: "article-card__excerpt" }, this.excerpt)), (this.author || this.authorRole) && (h("div", { key: 'b0a42dd52449991dab675fd2d492c6646f7f9dfc', class: "article-card__byline" }, h("div", { key: '2ea5b62143c7f4796f46faca3e6f1fa7419b6c93', class: "article-card__author-avatar" }, this.author.charAt(0)), h("div", { key: 'b1e7ff029659a237da73c7421f5742b1ce655a60' }, h("span", { key: 'e4a71f5e73610d6b5fcce237cd30a1f9eb8512ea', class: "article-card__author" }, this.author), this.authorRole && h("span", { key: '936042578927a847d0601bdfba58afafcc57cbf9', class: "article-card__author-role" }, this.authorRole)), h("span", { key: '5435de2d1ecb991c8500bbb3c7e22b3f3dc7f361', class: "article-card__read-more" }, h("svg", { key: '49186537061817a26ded5538a8b5cf185b5c5e1e', width: "14", height: "14", viewBox: "0 0 24 24", fill: "none" }, h("path", { key: '7304d21f204471e939ebeeeb51d3eb817e392262', d: "M5 12h14M12 5l7 7-7 7", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })), "More"))))));
118
+ }
119
+ };
120
+ DcArticleCard.style = lusterArticleCardCss();
121
+
122
+ const lusterBadgeCss = () => `:host{display:inline-flex}.badge{display:inline-flex;align-items:center;gap:var(--dc-space-1);border-radius:var(--dc-round-full);font-family:var(--dc-font-body);font-weight:700;letter-spacing:var(--dc-tracking-wide);text-transform:uppercase;white-space:nowrap}.badge--sm{padding:2px var(--dc-space-2);font-size:10px}.badge--md{padding:var(--dc-space-1) var(--dc-space-3);font-size:var(--dc-label-sm)}.badge__dot{width:6px;height:6px;border-radius:var(--dc-round-full);background:currentColor;flex-shrink:0}.badge--default{background:rgba(64, 72, 93, 0.4);color:var(--dc-on-surface-variant)}.badge--primary{background:rgba(163, 166, 255, 0.15);color:var(--dc-primary)}.badge--success{background:rgba(76, 206, 172, 0.15);color:var(--dc-success)}.badge--warning{background:rgba(255, 209, 102, 0.15);color:var(--dc-warning)}.badge--error{background:rgba(255, 180, 171, 0.15);color:var(--dc-error)}.badge--beta{background:rgba(182, 174, 228, 0.15);color:var(--dc-secondary)}.badge--live{background:rgba(76, 206, 172, 0.2);color:var(--dc-success);animation:pulse 2s infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.7}}`;
123
+
124
+ const DcBadge = class {
125
+ constructor(hostRef) {
126
+ registerInstance(this, hostRef);
127
+ this.variant = 'default';
128
+ this.dot = false;
129
+ this.size = 'md';
130
+ }
131
+ render() {
132
+ return (h("span", { key: '4d49db25a7cb0f0bc72b5b7da55c7bdaca4a56a6', class: `badge badge--${this.variant} badge--${this.size}` }, this.dot && h("span", { key: '592ddbcbdfaa412bec7fa021c1e0d230d6716f41', class: "badge__dot" }), h("slot", { key: '8dcb4f58ac4c236ba6a1de5e22afed861bf78a7f' })));
133
+ }
134
+ };
135
+ DcBadge.style = lusterBadgeCss();
136
+
137
+ const lusterButtonCss = () => `:host{display:inline-flex}:host([full-width]){display:flex;width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--dc-space-2);border:none;border-radius:var(--dc-round-2);font-family:var(--dc-font-body);font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;position:relative;overflow:hidden;transition:all var(--dc-transition-base);letter-spacing:0.01em}.btn--full{width:100%}.btn--sm{padding:var(--dc-space-1) var(--dc-space-3);font-size:var(--dc-label-md);height:32px}.btn--md{padding:var(--dc-space-2) var(--dc-space-5);font-size:var(--dc-body-md);height:40px}.btn--lg{padding:var(--dc-space-3) var(--dc-space-6);font-size:var(--dc-body-lg);height:48px}.btn--primary{background:linear-gradient(135deg, var(--dc-primary) 0%, var(--dc-primary-dim) 100%);color:var(--dc-on-primary);box-shadow:var(--dc-btn-primary-shadow)}.btn--primary:hover:not(:disabled){background:var(--dc-btn-primary-gradient-hover);box-shadow:var(--dc-btn-primary-shadow-hover);transform:translateY(-1px)}.btn--primary:active:not(:disabled){transform:translateY(0);box-shadow:var(--dc-btn-primary-shadow-press)}.btn--secondary{background:transparent;color:var(--dc-on-surface);border:1px solid var(--dc-border-strong)}.btn--secondary:hover:not(:disabled){background:var(--dc-hover-tint-icon);border-color:var(--dc-border-hover)}.btn--tertiary{background:transparent;color:var(--dc-primary);padding-left:var(--dc-space-2);padding-right:var(--dc-space-2)}.btn--tertiary:hover:not(:disabled){color:var(--dc-primary-fixed);background:var(--dc-hover-tint-strong)}.btn--destructive{background:transparent;color:var(--dc-error);border:1px solid var(--dc-error-border)}.btn--destructive:hover:not(:disabled){background:var(--dc-error-bg);border-color:var(--dc-error-border-hover)}.btn:disabled{opacity:0.4;cursor:not-allowed;transform:none !important;box-shadow:none !important}.btn--loading{cursor:wait}.btn__spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--dc-spinner-border);border-top-color:currentColor;border-radius:var(--dc-round-full);animation:spin 0.6s linear infinite}.btn__content{display:inline-flex;align-items:center;gap:var(--dc-space-2)}@keyframes spin{to{transform:rotate(360deg)}}`;
138
+
139
+ const DcButton = class {
140
+ constructor(hostRef) {
141
+ registerInstance(this, hostRef);
142
+ this.dcClick = createEvent(this, "dcClick");
143
+ this.variant = 'primary';
144
+ this.size = 'md';
145
+ this.disabled = false;
146
+ this.loading = false;
147
+ this.fullWidth = false;
148
+ this.type = 'button';
149
+ this.handleClick = () => {
150
+ if (!this.disabled && !this.loading) {
151
+ this.dcClick.emit();
152
+ }
153
+ };
154
+ }
155
+ render() {
156
+ return (h("button", { key: 'b1f275431288cf48cdcd77fd0ff0ce94ed6c7471', class: [
157
+ 'btn',
158
+ `btn--${this.variant}`,
159
+ `btn--${this.size}`,
160
+ this.loading ? 'btn--loading' : '',
161
+ this.fullWidth ? 'btn--full' : '',
162
+ ].filter(Boolean).join(' '), disabled: this.disabled || this.loading, type: this.type, onClick: this.handleClick }, this.loading && (h("span", { key: '024a89db11699ec8f4a2606cf550ad060cf9981a', class: "btn__spinner", "aria-hidden": "true" })), h("span", { key: '8586524c1551bdf8dc6d5c597f5fc5ecebd54054', class: "btn__content" }, h("slot", { key: '5f8ace974b28574208c5f4fc146573d0bdb100c3' }))));
163
+ }
164
+ };
165
+ DcButton.style = lusterButtonCss();
166
+
167
+ const lusterCheckboxCss = () => `:host{display:inline-flex}.checkbox{display:inline-flex;align-items:center;gap:var(--dc-space-3);cursor:pointer;user-select:none}.checkbox--disabled{opacity:0.4;cursor:not-allowed}.checkbox__box{width:18px;height:18px;border-radius:var(--dc-round-1);border:1.5px solid var(--dc-border-strong);background:var(--dc-surface-container-lowest);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--dc-transition-fast);color:var(--dc-on-primary)}.checkbox__box--checked,.checkbox__box--indeterminate{background:var(--dc-primary);border-color:var(--dc-primary)}.checkbox:hover .checkbox__box:not(.checkbox__box--checked){border-color:var(--dc-primary);background:var(--dc-hover-tint-strong)}.checkbox__label{font-family:var(--dc-font-body);font-size:var(--dc-body-md);color:var(--dc-on-surface)}`;
168
+
169
+ const DcCheckbox = class {
170
+ constructor(hostRef) {
171
+ registerInstance(this, hostRef);
172
+ this.dcChange = createEvent(this, "dcChange");
173
+ this.label = '';
174
+ this.checked = false;
175
+ this.disabled = false;
176
+ this.indeterminate = false;
177
+ this.value = '';
178
+ this.innerChecked = false;
179
+ this.handleChange = () => {
180
+ if (!this.disabled) {
181
+ this.innerChecked = !this.innerChecked;
182
+ this.dcChange.emit(this.innerChecked);
183
+ }
184
+ };
185
+ }
186
+ componentWillLoad() {
187
+ this.innerChecked = this.checked;
188
+ }
189
+ render() {
190
+ return (h("label", { key: '045e94d76f2ba6cc1ebbcbb3bfa82289fc761d31', class: `checkbox ${this.disabled ? 'checkbox--disabled' : ''}`, onClick: this.handleChange }, h("span", { key: '2ec03e604ef10657e8cdde93c9878b22525a3b35', class: `checkbox__box ${this.innerChecked ? 'checkbox__box--checked' : ''} ${this.indeterminate ? 'checkbox__box--indeterminate' : ''}` }, this.innerChecked && !this.indeterminate && (h("svg", { key: 'ab90b16c273244ca84f22ae31053f28c620480fd', width: "10", height: "8", viewBox: "0 0 10 8", fill: "none" }, h("path", { key: 'c333e014a043775ceddeebbefbac1e05441e942e', d: "M1 4L3.5 6.5L9 1", stroke: "currentColor", "stroke-width": "1.8", "stroke-linecap": "round", "stroke-linejoin": "round" }))), this.indeterminate && (h("svg", { key: '919fbd28b4d3d69a799ee92ff8bce515a855a4c1', width: "10", height: "2", viewBox: "0 0 10 2", fill: "none" }, h("line", { key: '055debe6bfd40ed0a67c62553c1219e3d30a8d52', x1: "1", y1: "1", x2: "9", y2: "1", stroke: "currentColor", "stroke-width": "1.8", "stroke-linecap": "round" })))), this.label && h("span", { key: '6e0a0ab1e3d2a61df2c97fa407761eabd927ef76', class: "checkbox__label" }, this.label)));
191
+ }
192
+ };
193
+ DcCheckbox.style = lusterCheckboxCss();
194
+
195
+ const lusterColorSwatchCss = () => `:host{display:inline-flex}.swatch{display:flex;flex-direction:column;gap:var(--dc-space-2)}.swatch__color{border-radius:var(--dc-round-3);transition:transform var(--dc-transition-fast)}.swatch__color:hover{transform:scale(1.03)}.swatch--sm .swatch__color{width:60px;height:60px}.swatch--md .swatch__color{width:80px;height:80px}.swatch--lg .swatch__color{width:100px;height:100px}.swatch__info{display:flex;flex-direction:column;gap:2px}.swatch__name{font-size:var(--dc-label-sm);font-weight:600;color:var(--dc-on-surface);white-space:nowrap}.swatch__hex{font-size:var(--dc-label-sm);color:var(--dc-on-surface-variant);font-family:monospace}`;
196
+
197
+ const DcColorSwatch = class {
198
+ constructor(hostRef) {
199
+ registerInstance(this, hostRef);
200
+ this.color = '#a3a6ff';
201
+ this.name = '';
202
+ this.hex = '';
203
+ this.size = 'md';
204
+ }
205
+ render() {
206
+ return (h("div", { key: '6ea9cb759f0d060dd393e6de23429c4b515d7139', class: `swatch swatch--${this.size}` }, h("div", { key: '8b6883cc045ed739c80b10bc416d64156a873109', class: "swatch__color", style: { backgroundColor: this.color } }), h("div", { key: '5c9b62e83b8442a29a623bd8ac1503f78bc965e5', class: "swatch__info" }, this.name && h("span", { key: '5ab7e003ed7158297661bde476f1fbc66e96ff88', class: "swatch__name" }, this.name), this.hex && h("span", { key: 'df26e2458cad5537e2cbd00765256ae2b4eae9ca', class: "swatch__hex" }, this.hex))));
207
+ }
208
+ };
209
+ DcColorSwatch.style = lusterColorSwatchCss();
210
+
211
+ const lusterFeatureQuoteCss = () => `:host{display:block}.feature-quote{margin:0;padding:var(--dc-space-6) var(--dc-space-8);border-left:4px solid var(--dc-primary);background:var(--dc-surface-container-high);border-radius:0 var(--dc-round-4) var(--dc-round-4) 0;position:relative}.feature-quote--large{padding:var(--dc-space-8) var(--dc-space-10);border-radius:var(--dc-round-4);border-left:4px solid var(--dc-primary)}.feature-quote--inline{background:transparent;padding:var(--dc-space-4) var(--dc-space-6)}.feature-quote__mark{position:absolute;top:var(--dc-space-3);left:var(--dc-space-5);font-family:var(--dc-font-display);font-size:3rem;color:var(--dc-primary);opacity:0.4;line-height:1}.feature-quote__text{font-family:var(--dc-font-display);font-size:var(--dc-headline-sm);font-weight:700;font-style:italic;color:var(--dc-primary-fixed);line-height:1.4;letter-spacing:var(--dc-tracking-tight);margin:0}.feature-quote--large .feature-quote__text{font-size:var(--dc-headline-md)}.feature-quote__attribution{margin-top:var(--dc-space-4)}.feature-quote__author-wrap{display:flex;align-items:center;gap:var(--dc-space-3)}.feature-quote__author-avatar{width:28px;height:28px;border-radius:var(--dc-round-full);background:linear-gradient(135deg, var(--dc-primary), var(--dc-primary-dim));display:flex;align-items:center;justify-content:center;font-size:var(--dc-label-sm);font-weight:700;color:var(--dc-on-primary);flex-shrink:0}.feature-quote__author{display:block;font-size:var(--dc-label-md);font-weight:600;color:var(--dc-on-surface)}.feature-quote__role{display:block;font-size:var(--dc-label-sm);color:var(--dc-on-surface-variant)}`;
212
+
213
+ const DcFeatureQuote = class {
214
+ constructor(hostRef) {
215
+ registerInstance(this, hostRef);
216
+ this.quote = '';
217
+ this.author = '';
218
+ this.role = '';
219
+ this.variant = 'default';
220
+ }
221
+ render() {
222
+ return (h("blockquote", { key: '4ed1344a05bfd89c63005ba64b8cd9a32db0f6c5', class: `feature-quote feature-quote--${this.variant}` }, h("span", { key: '47bdfd40fe685f876b64b421ff706afdc42c0541', class: "feature-quote__mark" }, "\""), h("p", { key: '1b3f0735be2544ab0332455875f12c4d3ca51865', class: "feature-quote__text" }, this.quote || h("slot", { key: 'f012c749d221d62ef919c898e181547a154e4b85' })), (this.author || this.role) && (h("footer", { key: '04740fe325d696cfa258e4e946b2385cfa5b2173', class: "feature-quote__attribution" }, this.author && (h("div", { key: '25c2a6ca4d16b965d7563a495ee8350a7ca93e4a', class: "feature-quote__author-wrap" }, h("div", { key: '9e8a34dfe0c05de5440a3d63700fec4b749264c3', class: "feature-quote__author-avatar" }, this.author.charAt(0)), h("div", { key: '113098f2c5fdbecf0d8088d265ddef76c0751776' }, h("span", { key: 'e140de5e35d6aec4fe974d55f2f3b14b4f6c33b8', class: "feature-quote__author" }, this.author), this.role && h("span", { key: 'fd6bd76a054ba0eda2deec30d596d2dc35495bd3', class: "feature-quote__role" }, this.role))))))));
223
+ }
224
+ };
225
+ DcFeatureQuote.style = lusterFeatureQuoteCss();
226
+
227
+ const lusterHeroCss = () => `:host{display:block}.hero{position:relative;min-height:320px;border-radius:var(--dc-round-4);overflow:hidden;display:flex;align-items:flex-end}.hero__bg{position:absolute;inset:0}.hero__bg-img{width:100%;height:100%;object-fit:cover;object-position:center}.hero__bg-overlay{position:absolute;inset:0;background:var(--dc-overlay-surface)}.hero__bg-gradient{position:absolute;inset:0;background:linear-gradient( to top, var(--dc-image-overlay-bottom) 0%, var(--dc-image-overlay-top) 50%, transparent 100% )}.hero--parallax .hero__bg::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 20% 30%, var(--dc-hero-glow-primary) 0%, transparent 50%), radial-gradient(ellipse at 80% 60%, var(--dc-hero-glow-dim) 0%, transparent 40%), radial-gradient(ellipse at 50% 80%, var(--dc-hero-glow-secondary) 0%, transparent 40%), var(--dc-surface-container);z-index:1}.hero__content{position:relative;z-index:2;padding:var(--dc-space-10) var(--dc-space-10) var(--dc-space-8);display:flex;flex-direction:column;gap:var(--dc-space-4);width:100%}.hero__section{font-size:var(--dc-label-sm);font-weight:700;color:var(--dc-primary);letter-spacing:var(--dc-tracking-wider);text-transform:uppercase}.hero__title{font-family:var(--dc-font-display);font-size:var(--dc-display-md);font-weight:800;color:var(--dc-on-surface);letter-spacing:var(--dc-tracking-tight);line-height:1.05;margin:0;max-width:560px}.hero__subtitle{font-size:var(--dc-body-md);color:var(--dc-on-surface-variant);max-width:480px;margin:0;line-height:1.6}.hero__actions{display:flex;gap:var(--dc-space-3);flex-wrap:wrap}.hero__layer-badge{position:absolute;top:var(--dc-space-4);right:var(--dc-space-4);z-index:2;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.hero__layer-text{font-size:var(--dc-label-sm);font-weight:600;color:var(--dc-hero-badge-text);letter-spacing:var(--dc-tracking-wide)}.hero__layer-sub{font-size:10px;color:var(--dc-hero-badge-sub);font-family:monospace}`;
228
+
229
+ const DcHero = class {
230
+ constructor(hostRef) {
231
+ registerInstance(this, hostRef);
232
+ this.heading = '';
233
+ this.subtitle = '';
234
+ this.section = '';
235
+ this.imageUrl = '';
236
+ this.parallax = false;
237
+ }
238
+ render() {
239
+ return (h("section", { key: '1cb214e7059158e7153d468b9fa840ce98f10aeb', class: `hero ${this.parallax ? 'hero--parallax' : ''}` }, h("div", { key: '4547dbead7926629a4e915ea8cf33d56679baa49', class: "hero__bg" }, this.imageUrl && (h("img", { key: 'c07cc9f3c5416a05f6034ae5d4ac0a8ada6f6f8f', class: "hero__bg-img", src: this.imageUrl, alt: "", "aria-hidden": "true" })), h("div", { key: 'e81099f7d4601beac31e59058488195ac4a0fc22', class: "hero__bg-overlay" }), h("div", { key: 'e5cc125505c0b58ad75d31417b07d298743407ec', class: "hero__bg-gradient" })), h("div", { key: '74a713512ea9aba2e79202814b21d50017169576', class: "hero__content" }, this.section && (h("span", { key: '7d05f909669493c03fabc623b6716a8bd86e2493', class: "hero__section" }, this.section)), h("h1", { key: '4fdfe3e350c16222b084490593fb231d090b490a', class: "hero__title" }, this.heading), this.subtitle && (h("p", { key: 'f30209ac7d84bfe259b0852b2779c50bc1a9f4bd', class: "hero__subtitle" }, this.subtitle)), h("div", { key: 'b2f9656bdb0a921d95b328771457ac841ed03df9', class: "hero__actions" }, h("slot", { key: '758806782726fc7e4b66b037afe554e524d05c74' }))), h("div", { key: 'b6468db237dfc6b2e859117bd1419c746a8e0032', class: "hero__layer-badge" }, h("span", { key: '2bc5f3dc8f6b16bfb3ac18c76d8cd656e48c4bfa', class: "hero__layer-text" }, "Parallax Layer 01"), h("span", { key: '87d7d56dc8964cfd479e5cfea348424158f6fa7d', class: "hero__layer-sub" }, "depth: 0.3"))));
240
+ }
241
+ };
242
+ DcHero.style = lusterHeroCss();
243
+
244
+ const lusterInputCss = () => `:host{display:block}.input-wrapper{display:flex;flex-direction:column;gap:var(--dc-space-2)}.input__label{font-family:var(--dc-font-body);font-size:var(--dc-label-md);font-weight:600;color:var(--dc-on-surface-variant);letter-spacing:var(--dc-tracking-wide);text-transform:uppercase}.input__field-box{position:relative;border-radius:var(--dc-round-2);border:1px solid var(--dc-border-faint);background:var(--dc-surface-container-lowest);transition:border-color var(--dc-transition-base), box-shadow var(--dc-transition-base);overflow:hidden}.input-wrapper--focused .input__field-box{border-color:var(--dc-primary);box-shadow:0 0 0 3px var(--dc-focus-ring)}.input-wrapper--error .input__field-box{border-color:var(--dc-error);box-shadow:0 0 0 3px var(--dc-error-focus-ring)}.input-wrapper--disabled{opacity:0.5;pointer-events:none}.input__field{display:block;width:100%;padding:var(--dc-space-2) var(--dc-space-4);background:transparent;border:none;outline:none;color:var(--dc-on-surface);font-family:var(--dc-font-body);font-size:var(--dc-body-md);height:44px}.input__field::placeholder{color:var(--dc-on-surface-variant);opacity:0.6}.input__message{display:flex;align-items:center;gap:var(--dc-space-1);font-size:var(--dc-label-sm);color:var(--dc-on-surface-variant)}.input__message--error{color:var(--dc-error)}`;
245
+
246
+ const DcInput = class {
247
+ constructor(hostRef) {
248
+ registerInstance(this, hostRef);
249
+ this.dcChange = createEvent(this, "dcChange");
250
+ this.dcInput = createEvent(this, "dcInput");
251
+ this.dcFocus = createEvent(this, "dcFocus");
252
+ this.dcBlur = createEvent(this, "dcBlur");
253
+ this.label = '';
254
+ this.placeholder = '';
255
+ this.value = '';
256
+ this.type = 'text';
257
+ this.error = false;
258
+ this.errorMessage = '';
259
+ this.helperText = '';
260
+ this.disabled = false;
261
+ this.readonly = false;
262
+ this.name = '';
263
+ this.focused = false;
264
+ this.innerValue = '';
265
+ this.handleInput = (e) => {
266
+ const target = e.target;
267
+ this.innerValue = target.value;
268
+ this.dcInput.emit(target.value);
269
+ };
270
+ this.handleChange = (e) => {
271
+ const target = e.target;
272
+ this.dcChange.emit(target.value);
273
+ };
274
+ this.handleFocus = () => {
275
+ this.focused = true;
276
+ this.dcFocus.emit();
277
+ };
278
+ this.handleBlur = () => {
279
+ this.focused = false;
280
+ this.dcBlur.emit();
281
+ };
282
+ }
283
+ componentWillLoad() {
284
+ this.innerValue = this.value;
285
+ }
286
+ render() {
287
+ const hasError = this.error;
288
+ const wrapperClass = [
289
+ 'input-wrapper',
290
+ hasError ? 'input-wrapper--error' : '',
291
+ this.focused ? 'input-wrapper--focused' : '',
292
+ this.disabled ? 'input-wrapper--disabled' : '',
293
+ ].filter(Boolean).join(' ');
294
+ return (h("div", { key: '9973fc5e101503b63bc060f0e0c5f3eba3367543', class: wrapperClass }, this.label && (h("label", { key: '0fcf79b73c6a04ecd40b2d0f1cc85f87cc5fd6ac', class: "input__label" }, this.label)), h("div", { key: '135a4b38ddcaf1a09e968cc629ee3cf59a2261af', class: "input__field-box" }, h("input", { key: '9aa11ddc2c5808ee174f5279b8d5544a3392f389', class: "input__field", type: this.type, placeholder: this.placeholder, value: this.innerValue, disabled: this.disabled, readonly: this.readonly, name: this.name, onInput: this.handleInput, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur })), hasError && this.errorMessage && (h("span", { key: 'eafa6c55b09c8b8fbcd5cd1f2350993cf7c9199f', class: "input__message input__message--error" }, h("svg", { key: '619cef649ef4e5b82df131844e336a06f3881ad1', width: "12", height: "12", viewBox: "0 0 24 24", fill: "none" }, h("circle", { key: '23c0e89e4c895e2884ff99031c0f282fa8435e96', cx: "12", cy: "12", r: "10", stroke: "currentColor", "stroke-width": "2" }), h("line", { key: '377ffaea6f80ee4806ad824fd0de312d94fd0f52', x1: "12", y1: "8", x2: "12", y2: "12", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }), h("line", { key: 'd1d67467a4f4f4a97b4da3822d536031ad63112a', x1: "12", y1: "16", x2: "12.01", y2: "16", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" })), this.errorMessage)), !hasError && this.helperText && (h("span", { key: 'ac62c67973896a90db17efd5c0029695a1a7fe79', class: "input__message" }, this.helperText))));
295
+ }
296
+ };
297
+ DcInput.style = lusterInputCss();
298
+
299
+ const lusterModalCss = () => `:host{display:block}.modal-overlay{position:fixed;inset:0;background:var(--dc-overlay-modal);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--dc-space-6);animation:fadeIn 0.2s ease-out}.modal{background:var(--dc-surface-container-highest);border-radius:var(--dc-round-5);box-shadow:var(--dc-shadow-xl);border:1px solid var(--dc-border-default);display:flex;flex-direction:column;animation:scaleIn 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);overflow:hidden;max-height:90vh}.modal--sm{width:380px}.modal--md{width:520px}.modal--lg{width:680px}.modal__header{padding:var(--dc-space-6);padding-bottom:var(--dc-space-4);position:relative;display:flex;flex-direction:column;gap:var(--dc-space-2)}.modal__title{font-family:var(--dc-font-display);font-size:var(--dc-headline-sm);font-weight:700;color:var(--dc-on-surface);letter-spacing:var(--dc-tracking-tight);margin:0;padding-right:var(--dc-space-8)}.modal__subtitle{font-size:var(--dc-body-sm);color:var(--dc-on-surface-variant);margin:0;line-height:1.5}.modal__close{position:absolute;top:var(--dc-space-5);right:var(--dc-space-5);width:32px;height:32px;background:var(--dc-close-bg);border:none;border-radius:var(--dc-round-full);color:var(--dc-on-surface-variant);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--dc-transition-fast)}.modal__close:hover{background:var(--dc-close-hover);color:var(--dc-on-surface)}.modal__body{padding:var(--dc-space-4) var(--dc-space-6);flex:1;overflow-y:auto}.modal__footer{padding:var(--dc-space-4) var(--dc-space-6) var(--dc-space-6);display:flex;justify-content:flex-end;gap:var(--dc-space-3);border-top:1px solid var(--dc-border-faint)}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes scaleIn{from{opacity:0;transform:scale(0.94) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}`;
300
+
301
+ const DcModal = class {
302
+ constructor(hostRef) {
303
+ registerInstance(this, hostRef);
304
+ this.dcClose = createEvent(this, "dcClose");
305
+ this.dcConfirm = createEvent(this, "dcConfirm");
306
+ this.open = false;
307
+ this.heading = '';
308
+ this.subtitle = '';
309
+ this.confirmLabel = 'Proceed';
310
+ this.cancelLabel = 'Cancel';
311
+ this.size = 'md';
312
+ this.visible = false;
313
+ this.handleClose = () => {
314
+ this.open = false;
315
+ this.visible = false;
316
+ this.dcClose.emit();
317
+ };
318
+ this.handleConfirm = () => {
319
+ this.dcConfirm.emit();
320
+ this.handleClose();
321
+ };
322
+ }
323
+ watchOpen(newValue) {
324
+ this.visible = newValue;
325
+ }
326
+ componentWillLoad() {
327
+ this.visible = this.open;
328
+ }
329
+ render() {
330
+ if (!this.visible)
331
+ return null;
332
+ return (h("div", { class: "modal-overlay", onClick: e => {
333
+ if (e.target.classList.contains('modal-overlay'))
334
+ this.handleClose();
335
+ } }, h("div", { class: `modal modal--${this.size}`, role: "dialog", "aria-modal": "true" }, h("div", { class: "modal__header" }, this.heading && h("h2", { class: "modal__title" }, this.heading), this.subtitle && h("p", { class: "modal__subtitle" }, this.subtitle), h("button", { class: "modal__close", onClick: this.handleClose, "aria-label": "Close" }, h("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none" }, h("line", { x1: "18", y1: "6", x2: "6", y2: "18", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }), h("line", { x1: "6", y1: "6", x2: "18", y2: "18", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" })))), h("div", { class: "modal__body" }, h("slot", null)), h("div", { class: "modal__footer" }, h("slot", { name: "footer" }, h("luster-button", { variant: "secondary", onDcClick: this.handleClose }, this.cancelLabel), h("luster-button", { variant: "primary", onDcClick: this.handleConfirm }, this.confirmLabel))))));
336
+ }
337
+ static get watchers() { return {
338
+ "open": [{
339
+ "watchOpen": 0
340
+ }]
341
+ }; }
342
+ };
343
+ DcModal.style = lusterModalCss();
344
+
345
+ const lusterNavbarCss = () => `:host{display:block;position:sticky;top:0;z-index:100}.navbar{display:flex;align-items:center;gap:var(--dc-space-6);padding:var(--dc-space-3) var(--dc-space-6);background:var(--dc-glass-nav);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--dc-border-default)}.navbar__logo{display:flex;align-items:center;gap:var(--dc-space-3);flex-shrink:0;text-decoration:none}.navbar__logo-text{display:flex;flex-direction:column;line-height:1.2}.navbar__logo-title{font-family:var(--dc-font-display);font-size:var(--dc-label-lg);font-weight:700;color:var(--dc-on-surface);white-space:nowrap}.navbar__logo-sub{font-size:var(--dc-label-sm);font-weight:600;color:var(--dc-on-surface-variant);letter-spacing:var(--dc-tracking-wider);text-transform:uppercase}.navbar__nav{display:flex;align-items:center;gap:var(--dc-space-1);flex:1}.navbar__link{font-size:var(--dc-body-md);font-weight:500;color:var(--dc-on-surface-variant);text-decoration:none;cursor:pointer;padding:var(--dc-space-1) var(--dc-space-3);border-radius:var(--dc-round-2);transition:color var(--dc-transition-fast), background var(--dc-transition-fast)}.navbar__link:hover{color:var(--dc-on-surface);background:var(--dc-hover-tint-md)}.navbar__link--active{color:var(--dc-on-surface);font-weight:600}.navbar__actions{display:flex;align-items:center;gap:var(--dc-space-2);flex-shrink:0}.navbar__search{display:flex;align-items:center;gap:var(--dc-space-2);background:var(--dc-glass-search);border:1px solid var(--dc-border-medium);border-radius:var(--dc-round-full);padding:var(--dc-space-1) var(--dc-space-3);transition:border-color var(--dc-transition-fast)}.navbar__search:focus-within{border-color:var(--dc-focus-ring-hover)}.navbar__search-icon{color:var(--dc-on-surface-variant);flex-shrink:0}.navbar__search-input{background:none;border:none;outline:none;color:var(--dc-on-surface);font-family:var(--dc-font-body);font-size:var(--dc-body-sm);width:140px}.navbar__search-input::placeholder{color:var(--dc-on-surface-variant)}.navbar__icon-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:none;border:none;border-radius:var(--dc-round-full);color:var(--dc-on-surface-variant);cursor:pointer;transition:background var(--dc-transition-fast), color var(--dc-transition-fast)}.navbar__icon-btn:hover{background:var(--dc-hover-tint-icon-md);color:var(--dc-on-surface)}.navbar__avatar{width:30px;height:30px;border-radius:var(--dc-round-full);background:linear-gradient(135deg, var(--dc-primary), var(--dc-primary-dim));display:flex;align-items:center;justify-content:center;font-family:var(--dc-font-display);font-size:10px;font-weight:700;color:var(--dc-on-primary);cursor:pointer;flex-shrink:0}`;
346
+
347
+ const DcNavbar = class {
348
+ constructor(hostRef) {
349
+ registerInstance(this, hostRef);
350
+ this.logoTitle = 'The Digital Curator';
351
+ this.logoSub = 'EDITORIAL SYSTEM';
352
+ this.activeLink = 'explorer';
353
+ }
354
+ render() {
355
+ return (h("nav", { key: 'e5dbbb0cc263cb87e559918ef5cc38fb3cfde204', class: "navbar" }, h("div", { key: 'f95606c6b5af2ae3ce1cab758f7c66b2f87f515c', class: "navbar__logo" }, h("div", { key: 'd482f382cddea590500018f3deb56bce9a3d1c14', class: "navbar__logo-icon" }, h("svg", { key: 'bc8261415478dfb00d86a6d39a0325c0cf93c95e', width: "22", height: "22", viewBox: "0 0 22 22", fill: "none" }, h("rect", { key: 'f13bf8767bbc656a51fbb2a93fb1cc47facaa35c', x: "2", y: "2", width: "8", height: "8", rx: "1.5", fill: "var(--dc-primary)", opacity: "0.9" }), h("rect", { key: 'd0424e2e33f7e13e2bf7a8058495f29bf9f6db8c', x: "12", y: "2", width: "8", height: "8", rx: "1.5", fill: "var(--dc-primary)", opacity: "0.55" }), h("rect", { key: '7c60e5ad1f221330882f26bedcdb091b4ce1d52a', x: "2", y: "12", width: "8", height: "8", rx: "1.5", fill: "var(--dc-primary)", opacity: "0.55" }), h("rect", { key: '2b513e2d6290e8879620533aa9c58ab49b1e4b32', x: "12", y: "12", width: "8", height: "8", rx: "1.5", fill: "var(--dc-primary)", opacity: "0.25" }))), h("div", { key: 'b3ca9864b28b79126c08275bca941fcf98354bc2', class: "navbar__logo-text" }, h("span", { key: 'aec2170c04b5d40cf32e5e8cfa2d860c84b002d0', class: "navbar__logo-title" }, this.logoTitle), h("span", { key: '5408c53b4aabcb10620b48d358d11ddc0f54c0b4', class: "navbar__logo-sub" }, this.logoSub))), h("div", { key: 'b0a4f7d1c7b157f87f3139bc9d97404c34108811', class: "navbar__nav" }, h("a", { key: '2db3c86508d3221e2f536121bc34be11a3f19d81', class: `navbar__link ${this.activeLink === 'explorer' ? 'navbar__link--active' : ''}` }, "Design System Explorer"), h("a", { key: '969e28208f8ed5b827c0a4bbe5ca355a3a7e04f2', class: "navbar__link" }, "Docs"), h("a", { key: 'b6acdb1baee7870c2cb58bb45aae9eb7d17a2159', class: "navbar__link" }, "Updates"), h("a", { key: 'dd590a967203a59a0f5200af95d11f0069da51a1', class: "navbar__link" }, "Community")), h("div", { key: 'c19d890b314017cdd5d4322e3b57ce5f4ae2051e', class: "navbar__actions" }, h("div", { key: '2cb9d4b178f73f85deda72a3a1838afbafae4bd0', class: "navbar__search" }, h("svg", { key: 'c2b50cfbb95a8910f18ed9a65771c4231f821640', class: "navbar__search-icon", width: "13", height: "13", viewBox: "0 0 24 24", fill: "none" }, h("circle", { key: 'b0844d54bdf2488c0f1631e2f1303b917fcbcafa', cx: "11", cy: "11", r: "8", stroke: "currentColor", "stroke-width": "2.5" }), h("path", { key: '8ae57987a06dc1adb093340e48b5507317b00159', d: "m21 21-4.35-4.35", stroke: "currentColor", "stroke-width": "2.5", "stroke-linecap": "round" })), h("input", { key: '4effb00bb7c2a3b6bd136cc579586953f7d138a4', class: "navbar__search-input", placeholder: "Search components..." })), h("button", { key: '87f4634d7546500bbfdd2a8e47654d745b1e6fe3', class: "navbar__icon-btn", "aria-label": "Notifications" }, h("svg", { key: '0cf8c5e5b4cd9856d17b377f456316ebe2293fb0', width: "17", height: "17", viewBox: "0 0 24 24", fill: "none" }, h("path", { key: '89b2fe4434e9a3021ff3c7d8782dba2956334ebb', d: "M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: '74aabe2b9558adb47eb460d995993423517c2baa', d: "M13.73 21a2 2 0 0 1-3.46 0", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }))), h("button", { key: '225948849df6c7f5b117a00a5a1ecf812c02b099', class: "navbar__icon-btn", "aria-label": "Settings" }, h("svg", { key: '841e4d3fa5a43c128a225cf242a9abe6958d4b09', width: "17", height: "17", viewBox: "0 0 24 24", fill: "none" }, h("circle", { key: 'df0e9409049654cab0aaf04a377f0ef829efa0be', cx: "12", cy: "12", r: "3", stroke: "currentColor", "stroke-width": "2" }), h("path", { key: 'f4e5f61b6706fc390c7221584dcd9e3ae6d86b9a', d: "M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z", stroke: "currentColor", "stroke-width": "2" }))), h("div", { key: '5fa98a2166329a036352f71f8f5e68e1d053460b', class: "navbar__avatar" }, "DC"))));
356
+ }
357
+ };
358
+ DcNavbar.style = lusterNavbarCss();
359
+
360
+ const lusterProfileCardCss = () => `:host{display:block}.profile-card{display:flex;flex-direction:column;align-items:center;gap:var(--dc-space-4);padding:var(--dc-space-6);background:var(--dc-surface-container-high);border-radius:var(--dc-round-4);text-align:center}.profile-card__avatar{width:80px;height:80px;border-radius:var(--dc-round-full);background:linear-gradient(135deg, var(--dc-primary-dim), var(--dc-secondary-container));display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;box-shadow:0 0 0 3px var(--dc-focus-ring)}.profile-card__avatar-img{width:100%;height:100%;object-fit:cover}.profile-card__avatar-initials{font-family:var(--dc-font-display);font-size:var(--dc-headline-sm);font-weight:800;color:var(--dc-on-primary)}.profile-card__info{display:flex;flex-direction:column;gap:var(--dc-space-1)}.profile-card__name{font-family:var(--dc-font-display);font-size:var(--dc-title-lg);font-weight:700;color:var(--dc-on-surface);margin:0;letter-spacing:var(--dc-tracking-tight)}.profile-card__role{font-size:var(--dc-body-sm);color:var(--dc-on-surface-variant)}.profile-card__stats{display:flex;gap:var(--dc-space-6);width:100%;justify-content:center;padding:var(--dc-space-3) 0;border-top:1px solid var(--dc-border-faint);border-bottom:1px solid var(--dc-border-faint)}.profile-card__stat{display:flex;flex-direction:column;align-items:center;gap:2px}.profile-card__stat-value{font-family:var(--dc-font-display);font-size:var(--dc-headline-sm);font-weight:800;color:var(--dc-on-surface)}.profile-card__stat-label{font-size:var(--dc-label-sm);color:var(--dc-on-surface-variant);text-transform:uppercase;letter-spacing:var(--dc-tracking-wide)}`;
361
+
362
+ const DcProfileCard = class {
363
+ constructor(hostRef) {
364
+ registerInstance(this, hostRef);
365
+ this.name = '';
366
+ this.role = '';
367
+ this.avatar = '';
368
+ this.stat1Value = '';
369
+ this.stat1Label = '';
370
+ this.stat2Value = '';
371
+ this.stat2Label = '';
372
+ this.ctaLabel = 'View Portfolio';
373
+ }
374
+ render() {
375
+ return (h("div", { key: '69a8fff167fee4805499b3bb754d286c2287413b', class: "profile-card" }, h("div", { key: 'd2547d0cec607d9d001b3074f69557f06d863e3d', class: "profile-card__avatar" }, this.avatar
376
+ ? h("img", { src: this.avatar, alt: this.name, class: "profile-card__avatar-img" })
377
+ : h("span", { class: "profile-card__avatar-initials" }, this.name.split(' ').map(n => n[0]).join('').slice(0, 2))), h("div", { key: '22f74d3a2982647a4fcfb807fb8ece81a59d2b9c', class: "profile-card__info" }, h("h3", { key: '06d8567c4c4be29e3653d39357fbf0235a907303', class: "profile-card__name" }, this.name), h("span", { key: '9e8500c7a3d5ee6c895d6209c067c9441dce7d2f', class: "profile-card__role" }, this.role)), (this.stat1Value || this.stat2Value) && (h("div", { key: '5dd61dcd4d290b140e50de1bf4ca3befb81d6f3a', class: "profile-card__stats" }, this.stat1Value && (h("div", { key: '2c972fdc9dd621540e7d7fc572df27bb61fef70a', class: "profile-card__stat" }, h("span", { key: '9693a5bb68e674a3c21681c8ba4b99ca12bf934c', class: "profile-card__stat-value" }, this.stat1Value), h("span", { key: 'ece29d1b9fdc7ebdc4461298bcae931f6d83e8ed', class: "profile-card__stat-label" }, this.stat1Label))), this.stat2Value && (h("div", { key: '211198eda038b08f6093289b7f97c8d5fdac6b6e', class: "profile-card__stat" }, h("span", { key: 'ce84623aeeed41e2b48f0e50a10b4b633fd5b246', class: "profile-card__stat-value" }, this.stat2Value), h("span", { key: 'dcfad2516563bdef51e37623a8fd3c474bea40a6', class: "profile-card__stat-label" }, this.stat2Label))))), h("luster-button", { key: '5de015471f6e29cc283aef60bb7097ec384b3b15', variant: "primary", "full-width": true }, this.ctaLabel)));
378
+ }
379
+ };
380
+ DcProfileCard.style = lusterProfileCardCss();
381
+
382
+ const lusterResourceTableCss = () => `:host{display:block}.resource-table{background:var(--dc-surface-container-high);border-radius:var(--dc-round-4);overflow:hidden}.resource-table__header{display:flex;align-items:center;justify-content:space-between;padding:var(--dc-space-4) var(--dc-space-6);border-bottom:1px solid var(--dc-border-faint)}.resource-table__section-label{font-family:var(--dc-font-display);font-size:var(--dc-title-sm);font-weight:700;color:var(--dc-on-surface)}.resource-table__actions{display:flex;align-items:center;gap:var(--dc-space-3)}.resource-table__filter-btn{display:flex;align-items:center;gap:var(--dc-space-2);padding:var(--dc-space-1) var(--dc-space-3);background:var(--dc-close-bg);border:1px solid var(--dc-border-medium);border-radius:var(--dc-round-2);color:var(--dc-on-surface-variant);font-family:var(--dc-font-body);font-size:var(--dc-label-md);font-weight:500;cursor:pointer;transition:all var(--dc-transition-fast)}.resource-table__filter-btn:hover{background:var(--dc-close-hover);color:var(--dc-on-surface)}.resource-table__table{width:100%;border-collapse:collapse}.resource-table__th{padding:var(--dc-space-3) var(--dc-space-6);text-align:left;font-size:var(--dc-label-sm);font-weight:700;color:var(--dc-on-surface-variant);letter-spacing:var(--dc-tracking-wide);text-transform:uppercase;background:var(--dc-surface-container)}.resource-table__row{transition:background var(--dc-transition-fast);border-bottom:1px solid var(--dc-divider)}.resource-table__row:hover{background:var(--dc-hover-tint)}.resource-table__row:last-child{border-bottom:none}.resource-table__td{padding:var(--dc-space-3) var(--dc-space-6);vertical-align:middle}.resource-table__name-cell{display:flex;align-items:center;gap:var(--dc-space-3)}.resource-table__row-icon{width:32px;height:32px;border-radius:var(--dc-round-2);background:var(--dc-icon-bg);flex-shrink:0}.resource-table__name{font-size:var(--dc-body-sm);font-weight:600;color:var(--dc-on-surface)}.resource-table__category{font-size:var(--dc-body-sm);color:var(--dc-on-surface-variant)}.score-bar{display:flex;align-items:center;gap:var(--dc-space-3)}.score-bar__track{flex:1;height:4px;background:var(--dc-close-hover);border-radius:var(--dc-round-full);overflow:hidden;min-width:80px}.score-bar__fill{height:100%;border-radius:var(--dc-round-full);transition:width var(--dc-transition-slow)}.score-bar__label{font-size:var(--dc-label-sm);color:var(--dc-on-surface-variant);min-width:24px}.resource-table__action-btn{background:none;border:none;color:var(--dc-on-surface-variant);cursor:pointer;padding:var(--dc-space-1);border-radius:var(--dc-round-2);display:flex;align-items:center;transition:all var(--dc-transition-fast)}.resource-table__action-btn:hover{background:var(--dc-hover-tint-icon-md);color:var(--dc-on-surface)}`;
383
+
384
+ const DcResourceTable = class {
385
+ constructor(hostRef) {
386
+ registerInstance(this, hostRef);
387
+ this.rows = '[]';
388
+ this.parsedRows = [];
389
+ }
390
+ componentWillLoad() {
391
+ if (typeof this.rows === 'string') {
392
+ try {
393
+ this.parsedRows = JSON.parse(this.rows);
394
+ }
395
+ catch (_a) {
396
+ this.parsedRows = [];
397
+ }
398
+ }
399
+ else {
400
+ this.parsedRows = this.rows;
401
+ }
402
+ }
403
+ getStatusVariant(status) {
404
+ if (status === 'active')
405
+ return 'success';
406
+ if (status === 'stable')
407
+ return 'primary';
408
+ if (status === 'beta')
409
+ return 'beta';
410
+ return 'error';
411
+ }
412
+ renderScoreBar(score) {
413
+ const color = score >= 80 ? 'var(--dc-primary)' : score >= 50 ? 'var(--dc-warning)' : 'var(--dc-error)';
414
+ return (h("div", { class: "score-bar" }, h("div", { class: "score-bar__track" }, h("div", { class: "score-bar__fill", style: { width: `${score}%`, background: color } })), h("span", { class: "score-bar__label" }, score)));
415
+ }
416
+ render() {
417
+ return (h("div", { key: '6bdeb9b52ef5582e7f0e8c393c9227c80f84f008', class: "resource-table" }, h("div", { key: 'e0487a74bad62fa8b102dff89a0830a5699b5ed0', class: "resource-table__header" }, h("span", { key: '569ff5a31ce8851b717d860cac1572a2276b4570', class: "resource-table__section-label" }, "Resource Registry"), h("div", { key: '1188c11c3ac56f061e7b8e429ca4124cf4eb9003', class: "resource-table__actions" }, h("button", { key: '6918269ebfdc7036de0f215af7917f6c4fd30fef', class: "resource-table__filter-btn" }, h("svg", { key: 'df3013ce155e854c73e119b4cb6460a64dc8c745', width: "14", height: "14", viewBox: "0 0 24 24", fill: "none" }, h("polygon", { key: '8c6e8e05f16f1ae2381ea5854cfbe895d649b50c', points: "22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3", stroke: "currentColor", "stroke-width": "2", "stroke-linejoin": "round" })), "Filter"), h("luster-button", { key: '8f279527c0c382383606b8adc630fd073d1a0228', variant: "primary", size: "sm" }, h("svg", { key: '9084bef4d4a7c36a65ec2ad638e8ac2306fe9e8b', width: "12", height: "12", viewBox: "0 0 24 24", fill: "none" }, h("line", { key: 'f0fe5080bf336f57543d7c2674c89133799c446e', x1: "12", y1: "5", x2: "12", y2: "19", stroke: "currentColor", "stroke-width": "2.5", "stroke-linecap": "round" }), h("line", { key: '2ba13c955df243e207f23412fd83711d739bd7c7', x1: "5", y1: "12", x2: "19", y2: "12", stroke: "currentColor", "stroke-width": "2.5", "stroke-linecap": "round" })), "New Resource"))), h("table", { key: 'babbd76b01ed435059b1aa464bfb8b18d232b055', class: "resource-table__table" }, h("thead", { key: 'c4c6c3da19b5fc1ffd6054972d5984559e91ba21' }, h("tr", { key: '99ef959a0097257388338bd19fdd5bc5c3034135' }, h("th", { key: '4620f3a90752404ed11a6b0fb5bd61b46593bdc6', class: "resource-table__th" }, "Resource Name"), h("th", { key: '56a8d39b968cb1792df91eb33a15f52e25b5f033', class: "resource-table__th" }, "Category"), h("th", { key: '2f73489d579a24238ff62bccd275869afcf5ca5e', class: "resource-table__th" }, "Status"), h("th", { key: '6bacb56a5f7243da34c64da024aee65eadf86183', class: "resource-table__th" }, "Score"), h("th", { key: '7a0d111e4a20b1d249343c3b0f7c5a1125aff7eb', class: "resource-table__th" }, "Actions"))), h("tbody", { key: '86dbffb47088aac4ca6f549e5813c3cab148419a' }, this.parsedRows.map((row, i) => (h("tr", { key: i, class: "resource-table__row" }, h("td", { class: "resource-table__td resource-table__td--name" }, h("div", { class: "resource-table__name-cell" }, h("div", { class: "resource-table__row-icon" }), h("span", { class: "resource-table__name" }, row.name))), h("td", { class: "resource-table__td" }, h("span", { class: "resource-table__category" }, row.category)), h("td", { class: "resource-table__td" }, h("luster-badge", { variant: this.getStatusVariant(row.status), dot: true }, row.status.charAt(0).toUpperCase() + row.status.slice(1))), h("td", { class: "resource-table__td" }, this.renderScoreBar(row.score)), h("td", { class: "resource-table__td" }, h("button", { class: "resource-table__action-btn", "aria-label": "More actions" }, h("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none" }, h("circle", { cx: "12", cy: "5", r: "1.5", fill: "currentColor" }), h("circle", { cx: "12", cy: "12", r: "1.5", fill: "currentColor" }), h("circle", { cx: "12", cy: "19", r: "1.5", fill: "currentColor" })))))))))));
418
+ }
419
+ };
420
+ DcResourceTable.style = lusterResourceTableCss();
421
+
422
+ const lusterSidebarCss = () => `:host{display:flex;flex-direction:column;width:196px;min-width:196px;background:var(--dc-surface-container-low);height:100%;overflow:hidden}.sidebar{display:flex;flex-direction:column;height:100%;padding:var(--dc-space-4) 0}.sidebar__nav{flex:1;display:flex;flex-direction:column;gap:2px;padding:0 var(--dc-space-3);overflow-y:auto}.sidebar__item{display:flex;align-items:center;gap:var(--dc-space-3);padding:var(--dc-space-2) var(--dc-space-3);border-radius:var(--dc-round-2);cursor:pointer;text-decoration:none;color:var(--dc-on-surface-variant);font-family:var(--dc-font-body);font-size:var(--dc-body-md);font-weight:500;transition:all var(--dc-transition-fast);line-height:1.3}.sidebar__item:hover{background:var(--dc-hover-tint-md);color:var(--dc-on-surface)}.sidebar__item--active{background:var(--dc-focus-ring);color:var(--dc-primary)}.sidebar__item--active .sidebar__icon{color:var(--dc-primary)}.sidebar__item--sm{padding:var(--dc-space-1) var(--dc-space-3);font-size:var(--dc-label-md)}.sidebar__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:inherit}.sidebar__label{line-height:1.2}.sidebar__bottom{padding:var(--dc-space-3) var(--dc-space-3) 0;display:flex;flex-direction:column;gap:var(--dc-space-2);border-top:1px solid var(--dc-border-default);margin-top:var(--dc-space-3)}.sidebar__new-btn{display:flex;align-items:center;justify-content:center;gap:var(--dc-space-2);padding:var(--dc-space-2) var(--dc-space-3);background:var(--dc-hover-tint-strong);border:1px solid var(--dc-focus-ring);border-radius:var(--dc-round-2);color:var(--dc-primary);font-family:var(--dc-font-body);font-size:var(--dc-label-md);font-weight:600;cursor:pointer;transition:all var(--dc-transition-fast);width:100%}.sidebar__new-btn:hover{background:var(--dc-hover-tint-strong);border-color:var(--dc-focus-ring-hover)}.sidebar__footer-links{display:flex;flex-direction:column;gap:2px}.sidebar__user{display:flex;align-items:center;gap:var(--dc-space-3);padding:var(--dc-space-2) 0 var(--dc-space-2) var(--dc-space-1)}.sidebar__user-avatar{width:30px;height:30px;border-radius:var(--dc-round-full);background:linear-gradient(135deg, var(--dc-primary), var(--dc-primary-dim));display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--dc-on-primary);flex-shrink:0}.sidebar__user-info{display:flex;flex-direction:column;gap:1px;overflow:hidden}.sidebar__user-name{font-size:var(--dc-label-md);font-weight:600;color:var(--dc-on-surface);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__user-role{font-size:var(--dc-label-sm);color:var(--dc-on-surface-variant)}`;
423
+
424
+ const DcSidebar = class {
425
+ constructor(hostRef) {
426
+ registerInstance(this, hostRef);
427
+ this.dcNavChange = createEvent(this, "dcNavChange");
428
+ this.active = 'foundations';
429
+ this.handleNav = (key) => {
430
+ this.dcNavChange.emit(key);
431
+ };
432
+ this.navItems = [
433
+ { key: 'foundations', label: 'Foundations' },
434
+ { key: 'buttons-inputs', label: 'Buttons & Inputs' },
435
+ { key: 'navigation', label: 'Navigation & Feedback' },
436
+ { key: 'cards', label: 'Cards & Data' },
437
+ ];
438
+ this.icons = {
439
+ foundations: (h("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none" }, h("polygon", { points: "12,3 22,21 2,21", stroke: "currentColor", "stroke-width": "2", "stroke-linejoin": "round" }))),
440
+ 'buttons-inputs': (h("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none" }, h("rect", { x: "3", y: "9", width: "18", height: "7", rx: "3.5", stroke: "currentColor", "stroke-width": "2" }))),
441
+ navigation: (h("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none" }, h("path", { d: "M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }), h("path", { d: "M13.73 21a2 2 0 0 1-3.46 0", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }))),
442
+ cards: (h("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none" }, h("rect", { x: "2", y: "4", width: "20", height: "13", rx: "2", stroke: "currentColor", "stroke-width": "2" }), h("path", { d: "M8 21h8M12 17v4", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }))),
443
+ };
444
+ }
445
+ render() {
446
+ return (h("aside", { key: '156bbdcd26532849231a17a0a25ada7e0b3ee49a', class: "sidebar" }, h("nav", { key: '0792a2cb932ef1e01be65b0e71b9b120007173ae', class: "sidebar__nav" }, this.navItems.map(item => (h("a", { key: item.key, class: `sidebar__item ${this.active === item.key ? 'sidebar__item--active' : ''}`, onClick: () => this.handleNav(item.key) }, h("span", { class: "sidebar__icon" }, this.icons[item.key]), h("span", { class: "sidebar__label" }, item.label))))), h("div", { key: '6569f9b239cc95c7af704bf6b8967912891e4669', class: "sidebar__bottom" }, h("button", { key: '5e49de90b28d51d366e30429308f5b088ea79de7', class: "sidebar__new-btn" }, h("svg", { key: 'b4adaf5f40fd916ee79cfa4ed31539cca891c3c0', width: "14", height: "14", viewBox: "0 0 24 24", fill: "none" }, h("line", { key: '2a1a1342289c742b5a19e9726d880f82d5391ae5', x1: "12", y1: "5", x2: "12", y2: "19", stroke: "currentColor", "stroke-width": "2.5", "stroke-linecap": "round" }), h("line", { key: '1c1af82ededac05213f765bf2b59dfaf842b72f3', x1: "5", y1: "12", x2: "19", y2: "12", stroke: "currentColor", "stroke-width": "2.5", "stroke-linecap": "round" })), "New Component"), h("div", { key: '415530b5a67ee42bec580664a27e5f050a124f64', class: "sidebar__footer-links" }, h("a", { key: 'f063c1d69506f587936dce24bf95ec475ab2c49a', class: "sidebar__item sidebar__item--sm" }, h("span", { key: '38aa317619f9f1a513f36e59fcfa6d0a9425472b', class: "sidebar__icon" }, h("svg", { key: 'ad5890e87a9e6ed96b2aea2267b773f2f0a22adc', width: "15", height: "15", viewBox: "0 0 24 24", fill: "none" }, h("circle", { key: 'cffb2dd618636cf8eb382f9ebdfbd3ff3f5e5474', cx: "12", cy: "12", r: "3", stroke: "currentColor", "stroke-width": "2" }), h("path", { key: 'a31d2b3c9ca5379940350f385a62520e141c4af5', d: "M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z", stroke: "currentColor", "stroke-width": "2" }))), h("span", { key: '9551440506113e8fb2e58ac849882962a2775a7a', class: "sidebar__label" }, "Settings")), h("a", { key: 'b406df93302d530917a0486b3e397339d0356092', class: "sidebar__item sidebar__item--sm" }, h("span", { key: 'd04b4f834fd2e84c08545e4cf73330c8bd6d3b79', class: "sidebar__icon" }, h("svg", { key: 'f9098ac49052cf9f959cea295b8dd9493a9d3635', width: "15", height: "15", viewBox: "0 0 24 24", fill: "none" }, h("circle", { key: 'cbb8a5bea8c9dfaa4413a435a670c87691d808ff', cx: "12", cy: "12", r: "10", stroke: "currentColor", "stroke-width": "2" }), h("path", { key: '38b50c506b9ec19bb443e555d1bae07f4819d134', d: "M12 16v-4M12 8h.01", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }))), h("span", { key: '65eb38a28de5d699eab95214ff7fd3c239d81d3e', class: "sidebar__label" }, "Support"))), h("div", { key: '13a36b659c7e9f3330c875477b051d6437822920', class: "sidebar__user" }, h("div", { key: 'cbf4b6a7ccd4bf4849c15762a967d612d67d487e', class: "sidebar__user-avatar" }, "AV"), h("div", { key: '2af195de05155ecd5ffcd9c612ec83f037316ad6', class: "sidebar__user-info" }, h("span", { key: 'a004b37c87e90aad0feae298da542966baabc871', class: "sidebar__user-name" }, "Alex Curator"), h("span", { key: '421c4155582025707eb780b30a71e1412ebabd19', class: "sidebar__user-role" }, "Lead Editor"))))));
447
+ }
448
+ };
449
+ DcSidebar.style = lusterSidebarCss();
450
+
451
+ const lusterStatCardCss = () => `:host{display:block}.stat-card{background:var(--dc-surface-container-high);border-radius:var(--dc-round-4);padding:var(--dc-space-5);display:flex;flex-direction:column;gap:var(--dc-space-4);transition:background var(--dc-transition-base), box-shadow var(--dc-transition-base);cursor:default}.stat-card:hover{background:var(--dc-surface-bright);box-shadow:var(--dc-shadow-md)}.stat-card__header{display:flex;justify-content:space-between;align-items:flex-start}.stat-card__icon-wrap{width:40px;height:40px;border-radius:var(--dc-round-3);background:var(--dc-icon-bg);display:flex;align-items:center;justify-content:center}.stat-card__icon{color:var(--dc-primary);display:flex}.stat-card__icon-placeholder{width:20px;height:20px;border-radius:var(--dc-round-1);background:var(--dc-primary-dim);opacity:0.4}.stat-card__body{flex:1;display:flex;flex-direction:column;gap:var(--dc-space-2)}.stat-card__title{font-family:var(--dc-font-display);font-size:var(--dc-title-md);font-weight:700;color:var(--dc-on-surface);margin:0}.stat-card__desc{font-size:var(--dc-body-sm);color:var(--dc-on-surface-variant);margin:0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.stat-card__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--dc-space-2)}.stat-card__meta{display:flex;align-items:center;gap:var(--dc-space-2);flex-wrap:wrap}.stat-card__users{display:flex;align-items:center;gap:var(--dc-space-1);font-size:var(--dc-label-sm);color:var(--dc-on-surface-variant)}`;
452
+
453
+ const DcStatCard = class {
454
+ constructor(hostRef) {
455
+ registerInstance(this, hostRef);
456
+ this.heading = '';
457
+ this.description = '';
458
+ this.version = '';
459
+ this.status = 'active';
460
+ this.users = '';
461
+ this.hasToggle = false;
462
+ this.toggleOn = false;
463
+ this.icon = '';
464
+ }
465
+ render() {
466
+ return (h("div", { key: '67edcd065e8dbe0bbab3293a1c2d3113966b2e92', class: "stat-card" }, h("div", { key: '34def7d2976c9aa72c80cf97f016fe0198fcb224', class: "stat-card__header" }, h("div", { key: '7dd6a1fddc56da32b1c4ab70d95a47e62b32b201', class: "stat-card__icon-wrap" }, this.icon
467
+ ? h("span", { class: "stat-card__icon", innerHTML: this.icon })
468
+ : h("div", { class: "stat-card__icon-placeholder" }))), h("div", { key: '927d66d98c96284de9d702b4722f9a248f1fd5ad', class: "stat-card__body" }, h("h4", { key: 'd3e4ec0f889cb4c7a5dbae3c91be59af454cff69', class: "stat-card__title" }, this.heading), h("p", { key: 'cf66fdc344ce596626b4431e81c8a3dd9108dab9', class: "stat-card__desc" }, this.description)), h("div", { key: '7b8b1dc652ace8c975d944b8833af5ab01c7bfed', class: "stat-card__footer" }, h("div", { key: '3154ab32f16a58f3640cfae5e4a26ad402f2a306', class: "stat-card__meta" }, this.version && h("luster-badge", { key: '3cb211b7547c2e67d737c683f2f1aaa8023bf17e', variant: "default", size: "sm" }, this.version), this.status === 'beta' && h("luster-badge", { key: '81ef69da5d4fb0c22f17f48d133e262d3189aa18', variant: "beta", size: "sm" }, "Beta"), this.users && (h("span", { key: 'eab97e42ba598fb004be8bd1b995e2575ff0a769', class: "stat-card__users" }, h("svg", { key: '0b44cb51ab317b08c3ea4dc516e046101a3825ab', width: "12", height: "12", viewBox: "0 0 24 24", fill: "none" }, h("path", { key: 'a727ca4a5b7b4d47c4f4c29f716fa43999da498a', d: "M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2", stroke: "currentColor", "stroke-width": "2" }), h("circle", { key: '486f29a519eae561aaf9489bcad926e964bfe48f', cx: "9", cy: "7", r: "4", stroke: "currentColor", "stroke-width": "2" }), h("path", { key: 'bfcacb0897e2074d5fdc79c979e81357c7b8adea', d: "M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75", stroke: "currentColor", "stroke-width": "2" })), this.users))), this.hasToggle && h("luster-toggle", { key: '30b1744edb34562a3db4ae1773fa4b8ef7a33a79', checked: this.toggleOn }))));
469
+ }
470
+ };
471
+ DcStatCard.style = lusterStatCardCss();
472
+
473
+ const lusterTabsCss = () => `:host{display:block}.tabs{display:flex;flex-direction:column;gap:var(--dc-space-4)}.tabs__list{display:flex;align-items:center;gap:var(--dc-space-1);background:var(--dc-surface-container-low);border-radius:var(--dc-round-2);padding:var(--dc-space-1);width:fit-content}.tabs__tab{padding:var(--dc-space-1) var(--dc-space-4);border:none;border-radius:var(--dc-round-1);background:transparent;color:var(--dc-on-surface-variant);font-family:var(--dc-font-body);font-size:var(--dc-body-sm);font-weight:500;cursor:pointer;transition:all var(--dc-transition-fast);white-space:nowrap}.tabs__tab:hover{color:var(--dc-on-surface);background:rgba(64, 72, 93, 0.3)}.tabs__tab--active{background:var(--dc-surface-container-high);color:var(--dc-on-surface);font-weight:600}`;
474
+
475
+ const DcTabs = class {
476
+ constructor(hostRef) {
477
+ registerInstance(this, hostRef);
478
+ this.dcTabChange = createEvent(this, "dcTabChange");
479
+ this.tabs = '';
480
+ this.active = '';
481
+ this.activeTab = '';
482
+ this.parsedTabs = [];
483
+ }
484
+ componentWillLoad() {
485
+ var _a, _b;
486
+ if (typeof this.tabs === 'string') {
487
+ try {
488
+ this.parsedTabs = JSON.parse(this.tabs);
489
+ }
490
+ catch (_c) {
491
+ this.parsedTabs = [];
492
+ }
493
+ }
494
+ else {
495
+ this.parsedTabs = this.tabs;
496
+ }
497
+ this.activeTab = this.active || ((_b = (_a = this.parsedTabs[0]) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : '');
498
+ }
499
+ selectTab(value) {
500
+ this.activeTab = value;
501
+ this.dcTabChange.emit(value);
502
+ }
503
+ render() {
504
+ return (h("div", { key: '68e5a001a3c7e9f98a9239b18a3a54c8ded0c961', class: "tabs" }, h("div", { key: '5d14c39512d3e64c8a76745480b8a5789349d488', class: "tabs__list", role: "tablist" }, this.parsedTabs.map(tab => (h("button", { key: tab.value, class: `tabs__tab ${this.activeTab === tab.value ? 'tabs__tab--active' : ''}`, role: "tab", "aria-selected": this.activeTab === tab.value ? 'true' : 'false', onClick: () => this.selectTab(tab.value) }, tab.label)))), h("slot", { key: '2412bfdc1670989f3c348b1f289572cec10bd80f' })));
505
+ }
506
+ };
507
+ DcTabs.style = lusterTabsCss();
508
+
509
+ const lusterToggleCss = () => `:host{display:inline-flex}.toggle{display:inline-flex;align-items:center;gap:var(--dc-space-3);cursor:pointer}.toggle--disabled{opacity:0.4;cursor:not-allowed}.toggle__label{font-size:var(--dc-body-md);color:var(--dc-on-surface)}.toggle__track{position:relative;width:40px;height:22px;border-radius:var(--dc-round-full);background:var(--dc-border-strong);border:none;cursor:pointer;transition:background var(--dc-transition-base);padding:0;flex-shrink:0}.toggle__track--on{background:var(--dc-primary-dim)}.toggle__thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:var(--dc-round-full);background:white;transition:transform var(--dc-transition-base);display:block}.toggle__track--on .toggle__thumb{transform:translateX(18px)}`;
510
+
511
+ const DcToggle = class {
512
+ constructor(hostRef) {
513
+ registerInstance(this, hostRef);
514
+ this.dcChange = createEvent(this, "dcChange");
515
+ this.label = '';
516
+ this.checked = false;
517
+ this.disabled = false;
518
+ this.innerChecked = false;
519
+ this.handleToggle = () => {
520
+ if (!this.disabled) {
521
+ this.innerChecked = !this.innerChecked;
522
+ this.dcChange.emit(this.innerChecked);
523
+ }
524
+ };
525
+ }
526
+ componentWillLoad() {
527
+ this.innerChecked = this.checked;
528
+ }
529
+ render() {
530
+ return (h("label", { key: '539add927a6a67d6a1461946a31299ca0e86d848', class: `toggle ${this.disabled ? 'toggle--disabled' : ''}` }, this.label && h("span", { key: '8c881782b2dfe533c03db72bc94a3abd3c83e4a7', class: "toggle__label" }, this.label), h("button", { key: '6f512fd79089b7008386fc9a546870ccd694ca87', class: `toggle__track ${this.innerChecked ? 'toggle__track--on' : ''}`, role: "switch", "aria-checked": this.innerChecked ? 'true' : 'false', disabled: this.disabled, onClick: this.handleToggle }, h("span", { key: '341416b72ffe057213e369a5ee3ef403a65f1b20', class: "toggle__thumb" }))));
531
+ }
532
+ };
533
+ DcToggle.style = lusterToggleCss();
534
+
535
+ export { DcAccordion as luster_accordion, DcActivityItem as luster_activity_item, DcAlert as luster_alert, DcArticleCard as luster_article_card, DcBadge as luster_badge, DcButton as luster_button, DcCheckbox as luster_checkbox, DcColorSwatch as luster_color_swatch, DcFeatureQuote as luster_feature_quote, DcHero as luster_hero, DcInput as luster_input, DcModal as luster_modal, DcNavbar as luster_navbar, DcProfileCard as luster_profile_card, DcResourceTable as luster_resource_table, DcSidebar as luster_sidebar, DcStatCard as luster_stat_card, DcTabs as luster_tabs, DcToggle as luster_toggle };