@brightspot/ui 1.0.1-wc.4 → 1.2.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 (131) hide show
  1. package/README.md +7 -90
  2. package/dist/LucideDynamicLoader.d.ts +1 -0
  3. package/dist/LucideDynamicLoader.d.ts.map +1 -1
  4. package/dist/LucideDynamicLoader.js +2 -0
  5. package/dist/LucideDynamicLoader.js.map +1 -1
  6. package/dist/LucideDynamicLoader.ts +3 -0
  7. package/dist/components/avatar/Avatar.d.ts +82 -0
  8. package/dist/components/avatar/Avatar.d.ts.map +1 -0
  9. package/dist/components/avatar/Avatar.js +162 -0
  10. package/dist/components/avatar/Avatar.js.map +1 -0
  11. package/dist/components/avatar/AvatarGroup.d.ts +70 -0
  12. package/dist/components/avatar/AvatarGroup.d.ts.map +1 -0
  13. package/dist/components/avatar/AvatarGroup.js +145 -0
  14. package/dist/components/avatar/AvatarGroup.js.map +1 -0
  15. package/dist/components/badge/Badge.d.ts +75 -0
  16. package/dist/components/badge/Badge.d.ts.map +1 -0
  17. package/dist/components/badge/Badge.js +118 -0
  18. package/dist/components/badge/Badge.js.map +1 -0
  19. package/dist/components/circular-progress/CircularProgress.d.ts +57 -0
  20. package/dist/components/circular-progress/CircularProgress.d.ts.map +1 -0
  21. package/dist/components/circular-progress/CircularProgress.js +173 -0
  22. package/dist/components/circular-progress/CircularProgress.js.map +1 -0
  23. package/dist/components/icon/Icon.d.ts +90 -0
  24. package/dist/components/icon/Icon.d.ts.map +1 -0
  25. package/dist/components/icon/Icon.js +172 -0
  26. package/dist/components/icon/Icon.js.map +1 -0
  27. package/dist/components/linear-progress/LinearProgress.d.ts +40 -0
  28. package/dist/components/linear-progress/LinearProgress.d.ts.map +1 -0
  29. package/dist/components/linear-progress/LinearProgress.js +95 -0
  30. package/dist/components/linear-progress/LinearProgress.js.map +1 -0
  31. package/dist/custom-elements.json +772 -0
  32. package/dist/global.d.ts +4 -0
  33. package/dist/storybook/assets/Avatar.stories-BlxrclP0.js +209 -0
  34. package/dist/storybook/assets/AvatarGroup.stories-E3VUvBae.js +211 -0
  35. package/dist/storybook/assets/Badge.stories-f4YvPz0W.js +121 -0
  36. package/dist/storybook/assets/Button.stories-N66xrq4q.js +63 -0
  37. package/dist/storybook/assets/CircularProgress.stories-zWyELtfc.js +451 -0
  38. package/dist/storybook/assets/{Color-64QXVMR3-BV_8WWIP.js → Color-64QXVMR3-B3Y5c9dl.js} +1 -1
  39. package/dist/storybook/assets/{Colors.stories-CcpJ2Txp.js → Colors.stories-nEoNeHhf.js} +1 -1
  40. package/dist/storybook/assets/Events.stories-BP3ensxX.js +108 -0
  41. package/dist/storybook/assets/Heading.stories-DGqWaBpi.js +3 -0
  42. package/dist/storybook/assets/Icon.stories-BWWjh4NZ.js +245 -0
  43. package/dist/storybook/assets/LinearProgress.stories-DMVolkoE.js +397 -0
  44. package/dist/storybook/assets/ReadyMixin.stories-DavcxbQ0.js +55 -0
  45. package/dist/storybook/assets/ScrollShadow.stories-BmwSRNje.js +17 -0
  46. package/dist/storybook/assets/Throttle.stories-DBj-9rhV.js +303 -0
  47. package/dist/storybook/assets/{WithTooltip-SK46ZJ2J-DyavE1Bj.js → WithTooltip-SK46ZJ2J-DW4NXFWt.js} +5 -5
  48. package/dist/storybook/assets/formatter-OMEEQ6HG-BBn014aZ.js +1 -0
  49. package/dist/storybook/assets/iframe-CxsKJSj-.css +1 -0
  50. package/dist/storybook/assets/{iframe-mIh0R_Av.js → iframe-Z4F0Cgki.js} +87 -100
  51. package/dist/storybook/assets/{index-C8IjQgz6.js → index-BUj5S-B7.js} +1 -1
  52. package/dist/storybook/assets/{syntaxhighlighter-CAVLW7PM-36bUIV4n.js → syntaxhighlighter-CAVLW7PM-CsQveU1N.js} +1 -1
  53. package/dist/storybook/iframe.html +2 -2
  54. package/dist/storybook/index.json +1 -1
  55. package/dist/storybook/project.json +1 -1
  56. package/dist/tailwind-plugin-avatar.d.ts +2 -0
  57. package/dist/tailwind-plugin-avatar.d.ts.map +1 -0
  58. package/dist/tailwind-plugin-avatar.js +130 -0
  59. package/dist/tailwind-plugin-avatar.js.map +1 -0
  60. package/dist/tailwind-plugin-avatar.ts +181 -0
  61. package/dist/tailwind-plugin-badge.js +24 -9
  62. package/dist/tailwind-plugin-badge.js.map +1 -1
  63. package/dist/tailwind-plugin-badge.ts +30 -11
  64. package/dist/tailwind-plugin-button.js +14 -15
  65. package/dist/tailwind-plugin-button.js.map +1 -1
  66. package/dist/tailwind-plugin-button.ts +14 -17
  67. package/dist/tailwind-plugin-contrast.d.ts +2 -0
  68. package/dist/tailwind-plugin-contrast.d.ts.map +1 -0
  69. package/dist/tailwind-plugin-contrast.js +17 -0
  70. package/dist/tailwind-plugin-contrast.js.map +1 -0
  71. package/dist/tailwind-plugin-contrast.ts +18 -0
  72. package/dist/tailwind-plugin-icon.js +17 -10
  73. package/dist/tailwind-plugin-icon.js.map +1 -1
  74. package/dist/tailwind-plugin-icon.ts +17 -10
  75. package/dist/tailwind-plugin-ring-contrast.d.ts +2 -0
  76. package/dist/tailwind-plugin-ring-contrast.d.ts.map +1 -0
  77. package/dist/tailwind-plugin-ring-contrast.js +76 -0
  78. package/dist/tailwind-plugin-ring-contrast.js.map +1 -0
  79. package/dist/tailwind-plugin-ring-contrast.ts +90 -0
  80. package/dist/tailwind.config.d.ts +21 -0
  81. package/dist/tailwind.config.d.ts.map +1 -1
  82. package/dist/tailwind.config.js +27 -2
  83. package/dist/tailwind.config.js.map +1 -1
  84. package/dist/tailwind.config.ts +27 -2
  85. package/dist/{utils → util}/EventEmitterMixin.d.ts +23 -17
  86. package/dist/util/EventEmitterMixin.d.ts.map +1 -0
  87. package/dist/{utils → util}/EventEmitterMixin.js +7 -7
  88. package/dist/util/EventEmitterMixin.js.map +1 -0
  89. package/dist/util/ProgressMixin.d.ts +52 -0
  90. package/dist/util/ProgressMixin.d.ts.map +1 -0
  91. package/dist/util/ProgressMixin.js +190 -0
  92. package/dist/util/ProgressMixin.js.map +1 -0
  93. package/dist/util/ReadyMixin.d.ts +31 -0
  94. package/dist/util/ReadyMixin.d.ts.map +1 -0
  95. package/dist/util/ReadyMixin.js +42 -0
  96. package/dist/util/ReadyMixin.js.map +1 -0
  97. package/dist/util/aria.d.ts +3 -0
  98. package/dist/util/aria.d.ts.map +1 -0
  99. package/dist/util/aria.js +44 -0
  100. package/dist/util/aria.js.map +1 -0
  101. package/dist/util/svg.d.ts +9 -0
  102. package/dist/util/svg.d.ts.map +1 -1
  103. package/dist/util/svg.js +22 -0
  104. package/dist/util/svg.js.map +1 -1
  105. package/dist/util/throttle.d.ts +4 -0
  106. package/dist/util/throttle.d.ts.map +1 -0
  107. package/dist/util/throttle.js +30 -0
  108. package/dist/util/throttle.js.map +1 -0
  109. package/package.json +7 -6
  110. package/custom-elements.json +0 -214
  111. package/dist/components/widget/Widget.css +0 -118
  112. package/dist/components/widget/Widget.d.ts +0 -90
  113. package/dist/components/widget/Widget.d.ts.map +0 -1
  114. package/dist/components/widget/Widget.js +0 -196
  115. package/dist/components/widget/Widget.js.map +0 -1
  116. package/dist/components/widget/WidgetUtils.d.ts +0 -14
  117. package/dist/components/widget/WidgetUtils.d.ts.map +0 -1
  118. package/dist/components/widget/WidgetUtils.js +0 -42
  119. package/dist/components/widget/WidgetUtils.js.map +0 -1
  120. package/dist/storybook/assets/Badge.stories-cKvztBhm.js +0 -43
  121. package/dist/storybook/assets/Button.stories-BH3fEuOH.js +0 -63
  122. package/dist/storybook/assets/Heading.stories-cqZamo-6.js +0 -3
  123. package/dist/storybook/assets/Icon.stories-uPhO3RBG.js +0 -28543
  124. package/dist/storybook/assets/Loader.stories-D7Bl-LN9.js +0 -3
  125. package/dist/storybook/assets/ScrollShadow.stories-CWKYDYLk.js +0 -17
  126. package/dist/storybook/assets/Widget-CRTwFkFc.css +0 -1
  127. package/dist/storybook/assets/Widget.stories-CcjywoYR.js +0 -300
  128. package/dist/storybook/assets/formatter-OMEEQ6HG-DBJ97XaR.js +0 -1
  129. package/dist/storybook/assets/iframe-BdHEYpHD.css +0 -1
  130. package/dist/utils/EventEmitterMixin.d.ts.map +0 -1
  131. package/dist/utils/EventEmitterMixin.js.map +0 -1
@@ -0,0 +1,75 @@
1
+ import { LitElement } from 'lit';
2
+ export interface BadgeProps {
3
+ variant?: 'info' | 'primary' | 'error' | 'success' | 'warning';
4
+ dot?: boolean;
5
+ size?: 'sm' | 'md' | 'lg';
6
+ }
7
+ declare const Badge_base: (new (...args: any[]) => import("../../util/EventEmitterMixin.js").EventEmitterMixinInterface) & (new (...args: any[]) => import("../../util/ReadyMixin.js").ReadyMixinInterface) & typeof LitElement;
8
+ /**
9
+ * A badge component for highlighting important information.
10
+ *
11
+ * Badges help highlight notifications, status, or new messages.
12
+ * Primarily used for communicating secondary or additional information.
13
+ *
14
+ * @element btu-badge
15
+ *
16
+ * @fires {CustomEvent} btu-badge-ready - Fired after first render and initialization
17
+ *
18
+ * @cssprop --badge-color-foreground - Text color (overrides theme color)
19
+ * @cssprop --badge-color-background - Background color (overrides theme color)
20
+ * @cssprop --badge-radius-size - Border radius size (overrides shape default, default: 999px)
21
+ * @cssprop --badge-px - Horizontal padding (overrides size default)
22
+ * @cssprop --badge-py - Vertical padding (overrides size default)
23
+ * @cssprop --badge-dot-size - Size of the dot affordance (default: 6px)
24
+ *
25
+ * @example
26
+ * ```html
27
+ * <!-- Badge with dot -->
28
+ * <btu-badge variant="info" size="sm" dot>New</btu-badge>
29
+ *
30
+ * <!-- Badge with icon -->
31
+ * <btu-badge variant="success" size="md">
32
+ * <btu-icon symbol="check"></btu-icon>
33
+ * Success
34
+ * </btu-badge>
35
+ * ```
36
+ */
37
+ export default class Badge extends Badge_base {
38
+ /**
39
+ * Style of the badge.
40
+ * - 'info': Informational (default)
41
+ * - 'primary': Primary action or emphasis
42
+ * - 'error': Error or danger state
43
+ * - 'success': Success or completion state
44
+ * - 'warning': Warning or caution state
45
+ * @attr
46
+ */
47
+ variant: 'info' | 'primary' | 'error' | 'success' | 'warning';
48
+ /**
49
+ * Should a dot be displayed before the label?
50
+ * @attr
51
+ */
52
+ dot: boolean;
53
+ /**
54
+ * Size variant.
55
+ * - 'sm': Small (default)
56
+ * - 'md': Medium
57
+ * - 'lg': Large
58
+ * @attr
59
+ */
60
+ size: string;
61
+ /** @internal */
62
+ private initialClasses;
63
+ connectedCallback(): void;
64
+ createRenderRoot(): this;
65
+ willUpdate(): void;
66
+ firstUpdated(): void;
67
+ render(): import("lit-html").TemplateResult<1>;
68
+ }
69
+ declare global {
70
+ interface HTMLElementTagNameMap {
71
+ 'btu-badge': Badge;
72
+ }
73
+ }
74
+ export {};
75
+ //# sourceMappingURL=Badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../src/components/badge/Badge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAA;AAKtC,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAA;IAC9D,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;CAC1B;;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,UAAyC;IAC1E;;;;;;;;OAQG;IAEH,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAS;IAEtE;;;OAGG;IAEH,GAAG,UAAQ;IAEX;;;;;;OAMG;IAEH,IAAI,SAAO;IAEX,gBAAgB;IAChB,OAAO,CAAC,cAAc,CAAe;IAErC,iBAAiB,IAAI,IAAI;IAQzB,gBAAgB;IAIhB,UAAU,IAAI,IAAI;IAqBlB,YAAY,IAAI,IAAI;IAIpB,MAAM;CAGP;AAQD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,KAAK,CAAA;KACnB;CACF"}
@@ -0,0 +1,118 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement, html } from 'lit';
8
+ import { property } from 'lit/decorators.js';
9
+ import { EventEmitterMixin } from '../../util/EventEmitterMixin.js';
10
+ import { ReadyMixin } from '../../util/ReadyMixin.js';
11
+ /**
12
+ * A badge component for highlighting important information.
13
+ *
14
+ * Badges help highlight notifications, status, or new messages.
15
+ * Primarily used for communicating secondary or additional information.
16
+ *
17
+ * @element btu-badge
18
+ *
19
+ * @fires {CustomEvent} btu-badge-ready - Fired after first render and initialization
20
+ *
21
+ * @cssprop --badge-color-foreground - Text color (overrides theme color)
22
+ * @cssprop --badge-color-background - Background color (overrides theme color)
23
+ * @cssprop --badge-radius-size - Border radius size (overrides shape default, default: 999px)
24
+ * @cssprop --badge-px - Horizontal padding (overrides size default)
25
+ * @cssprop --badge-py - Vertical padding (overrides size default)
26
+ * @cssprop --badge-dot-size - Size of the dot affordance (default: 6px)
27
+ *
28
+ * @example
29
+ * ```html
30
+ * <!-- Badge with dot -->
31
+ * <btu-badge variant="info" size="sm" dot>New</btu-badge>
32
+ *
33
+ * <!-- Badge with icon -->
34
+ * <btu-badge variant="success" size="md">
35
+ * <btu-icon symbol="check"></btu-icon>
36
+ * Success
37
+ * </btu-badge>
38
+ * ```
39
+ */
40
+ export default class Badge extends EventEmitterMixin(ReadyMixin(LitElement)) {
41
+ constructor() {
42
+ super(...arguments);
43
+ /**
44
+ * Style of the badge.
45
+ * - 'info': Informational (default)
46
+ * - 'primary': Primary action or emphasis
47
+ * - 'error': Error or danger state
48
+ * - 'success': Success or completion state
49
+ * - 'warning': Warning or caution state
50
+ * @attr
51
+ */
52
+ this.variant = 'info';
53
+ /**
54
+ * Should a dot be displayed before the label?
55
+ * @attr
56
+ */
57
+ this.dot = false;
58
+ /**
59
+ * Size variant.
60
+ * - 'sm': Small (default)
61
+ * - 'md': Medium
62
+ * - 'lg': Large
63
+ * @attr
64
+ */
65
+ this.size = 'sm';
66
+ /** @internal */
67
+ this.initialClasses = [];
68
+ }
69
+ connectedCallback() {
70
+ super.connectedCallback();
71
+ // Capture initial classes from backend HTML
72
+ if (this.className) {
73
+ this.initialClasses = this.className.split(' ').filter(c => c.trim());
74
+ }
75
+ }
76
+ createRenderRoot() {
77
+ return this;
78
+ }
79
+ willUpdate() {
80
+ // Map variant to theme color (info → gray)
81
+ const colorMap = {
82
+ info: 'gray',
83
+ primary: 'primary',
84
+ error: 'error',
85
+ success: 'success',
86
+ warning: 'warning',
87
+ };
88
+ const classes = [
89
+ ...this.initialClasses,
90
+ 'btu-badge',
91
+ `btu-badge-${this.size}`,
92
+ `btu-badge-${colorMap[this.variant]}`,
93
+ this.dot ? 'btu-badge-dot' : '',
94
+ ];
95
+ this.className = classes.filter(Boolean).join(' ');
96
+ }
97
+ firstUpdated() {
98
+ this.emit('btu-badge-ready');
99
+ }
100
+ render() {
101
+ return html ``;
102
+ }
103
+ }
104
+ __decorate([
105
+ property({ type: String })
106
+ ], Badge.prototype, "variant", void 0);
107
+ __decorate([
108
+ property({ type: Boolean })
109
+ ], Badge.prototype, "dot", void 0);
110
+ __decorate([
111
+ property({ type: String })
112
+ ], Badge.prototype, "size", void 0);
113
+ // Register custom element with guard to prevent double registration
114
+ // (common with yarn link, HMR, or webpack bundle duplication)
115
+ if (!customElements.get('btu-badge')) {
116
+ customElements.define('btu-badge', Badge);
117
+ }
118
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../../src/components/badge/Badge.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAQrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAA5E;;QACE;;;;;;;;WAQG;QAEH,YAAO,GAAyD,MAAM,CAAA;QAEtE;;;WAGG;QAEH,QAAG,GAAG,KAAK,CAAA;QAEX;;;;;;WAMG;QAEH,SAAI,GAAG,IAAI,CAAA;QAEX,gBAAgB;QACR,mBAAc,GAAa,EAAE,CAAA;IA0CvC,CAAC;IAxCC,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAA;QACzB,4CAA4C;QAC5C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QACvE,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAED,UAAU;QACR,2CAA2C;QAC3C,MAAM,QAAQ,GAAmD;YAC/D,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,SAAS;SACnB,CAAA;QAED,MAAM,OAAO,GAAG;YACd,GAAG,IAAI,CAAC,cAAc;YACtB,WAAW;YACX,aAAa,IAAI,CAAC,IAAI,EAAE;YACxB,aAAa,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACrC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;SAChC,CAAA;QAED,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACpD,CAAC;IAED,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA,EAAE,CAAA;IACf,CAAC;CACF;AA9DC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sCAC2C;AAOtE;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kCACjB;AAUX;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mCAChB;AA+Cb,oEAAoE;AACpE,8DAA8D;AAC9D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;IACrC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;AAC3C,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { LitElement } from 'lit';
2
+ declare const CircularProgress_base: (new (...args: any[]) => import("../../util/ProgressMixin.js").ProgressMixinInterface) & (new (...args: any[]) => import("../../util/EventEmitterMixin.js").EventEmitterMixinInterface) & (new (...args: any[]) => import("../../util/ReadyMixin.js").ReadyMixinInterface) & typeof LitElement;
3
+ /**
4
+ * A circular progress indicator for showing loading states or progress.
5
+ *
6
+ * @element btu-circular-progress
7
+ *
8
+ * @fires {CustomEvent} btu-progress-ready - Fired after first render and initialization
9
+ * @fires {CustomEvent} btu-progress-complete - Fired when determinate progress reaches 100
10
+ *
11
+ * @cssprop --progress-color - Custom progress indicator color (overrides theme color)
12
+ * @cssprop --track-color - Track/background color (overrides default gray-100)
13
+ * @cssprop --progress-size - Custom size in pixels (overrides size preset)
14
+ *
15
+ * @example
16
+ * ```html
17
+ * <!-- Indeterminate spinner (default) -->
18
+ * <btu-circular-progress color="primary" size="md"></btu-circular-progress>
19
+ *
20
+ * <!-- Determinate progress -->
21
+ * <btu-circular-progress indeterminate="false" progress="75" color="success"></btu-circular-progress>
22
+ * ```
23
+ */
24
+ export default class CircularProgress extends CircularProgress_base {
25
+ /**
26
+ * Whether the progress indicator is indeterminate (animated spinner).
27
+ * When false, shows determinate progress based on the progress value.
28
+ * @attr
29
+ */
30
+ indeterminate: boolean;
31
+ /**
32
+ * Size variant.
33
+ * - 'sm': Small (16px) - default
34
+ * - 'md': Medium (32px)
35
+ * - 'lg': Large (48px)
36
+ * @attr
37
+ */
38
+ size: 'sm' | 'md' | 'lg';
39
+ /** @internal */
40
+ private _initialClasses;
41
+ /** @internal */
42
+ private _styleObserver?;
43
+ connectedCallback(): void;
44
+ createRenderRoot(): this;
45
+ willUpdate(): void;
46
+ firstUpdated(changedProperties: Map<PropertyKey, unknown>): void;
47
+ disconnectedCallback(): void;
48
+ updated(changedProperties: Map<PropertyKey, unknown>): void;
49
+ render(): import("lit-html").TemplateResult<1>;
50
+ }
51
+ declare global {
52
+ interface HTMLElementTagNameMap {
53
+ 'btu-circular-progress': CircularProgress;
54
+ }
55
+ }
56
+ export {};
57
+ //# sourceMappingURL=CircularProgress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CircularProgress.d.ts","sourceRoot":"","sources":["../../../src/components/circular-progress/CircularProgress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAA;;AAMpD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,qBAAwD;IACpG;;;;OAIG;IAEH,aAAa,UAAO;IAEpB;;;;;;OAMG;IAEH,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAO;IAE/B,gBAAgB;IAChB,OAAO,CAAC,eAAe,CAAe;IAEtC,gBAAgB;IAChB,OAAO,CAAC,cAAc,CAAC,CAAkB;IAEzC,iBAAiB,IAAI,IAAI;IAsBzB,gBAAgB;IAIhB,UAAU,IAAI,IAAI;IAMlB,YAAY,CAAC,iBAAiB,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,IAAI;IAShE,oBAAoB,IAAI,IAAI;IAM5B,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,IAAI;IAc3D,MAAM;CA+DP;AAOD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,uBAAuB,EAAE,gBAAgB,CAAA;KAC1C;CACF"}
@@ -0,0 +1,173 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement, css, html, nothing } from 'lit';
8
+ import { property } from 'lit/decorators.js';
9
+ import { EventEmitterMixin } from '../../util/EventEmitterMixin.js';
10
+ import { ProgressMixin } from '../../util/ProgressMixin.js';
11
+ import { ReadyMixin } from '../../util/ReadyMixin.js';
12
+ /**
13
+ * A circular progress indicator for showing loading states or progress.
14
+ *
15
+ * @element btu-circular-progress
16
+ *
17
+ * @fires {CustomEvent} btu-progress-ready - Fired after first render and initialization
18
+ * @fires {CustomEvent} btu-progress-complete - Fired when determinate progress reaches 100
19
+ *
20
+ * @cssprop --progress-color - Custom progress indicator color (overrides theme color)
21
+ * @cssprop --track-color - Track/background color (overrides default gray-100)
22
+ * @cssprop --progress-size - Custom size in pixels (overrides size preset)
23
+ *
24
+ * @example
25
+ * ```html
26
+ * <!-- Indeterminate spinner (default) -->
27
+ * <btu-circular-progress color="primary" size="md"></btu-circular-progress>
28
+ *
29
+ * <!-- Determinate progress -->
30
+ * <btu-circular-progress indeterminate="false" progress="75" color="success"></btu-circular-progress>
31
+ * ```
32
+ */
33
+ export default class CircularProgress extends ProgressMixin(EventEmitterMixin(ReadyMixin(LitElement))) {
34
+ constructor() {
35
+ super(...arguments);
36
+ /**
37
+ * Whether the progress indicator is indeterminate (animated spinner).
38
+ * When false, shows determinate progress based on the progress value.
39
+ * @attr
40
+ */
41
+ this.indeterminate = true;
42
+ /**
43
+ * Size variant.
44
+ * - 'sm': Small (16px) - default
45
+ * - 'md': Medium (32px)
46
+ * - 'lg': Large (48px)
47
+ * @attr
48
+ */
49
+ this.size = 'sm';
50
+ /** @internal */
51
+ this._initialClasses = [];
52
+ }
53
+ connectedCallback() {
54
+ super.connectedCallback();
55
+ // Capture initial classes from backend HTML
56
+ if (this.className) {
57
+ this._initialClasses = this.className.split(' ').filter(c => c.trim());
58
+ }
59
+ // Observe style attribute changes to detect --progress-size updates
60
+ this._styleObserver = new MutationObserver(mutations => {
61
+ mutations.forEach(mutation => {
62
+ if (mutation.type === 'attributes' && mutation.attributeName === 'style') {
63
+ this.requestUpdate();
64
+ }
65
+ });
66
+ });
67
+ this._styleObserver.observe(this, {
68
+ attributes: true,
69
+ attributeFilter: ['style'],
70
+ });
71
+ }
72
+ createRenderRoot() {
73
+ return this;
74
+ }
75
+ willUpdate() {
76
+ const classes = [...this._initialClasses, 'inline-flex', 'flex-col', 'items-center'];
77
+ this.className = classes.join(' ');
78
+ }
79
+ firstUpdated(changedProperties) {
80
+ super.firstUpdated(changedProperties);
81
+ // Only setup initial animation for determinate mode
82
+ if (!this.indeterminate) {
83
+ this._setupInitialAnimation();
84
+ }
85
+ }
86
+ disconnectedCallback() {
87
+ super.disconnectedCallback();
88
+ this._styleObserver?.disconnect();
89
+ this._cleanupInitialAnimation();
90
+ }
91
+ updated(changedProperties) {
92
+ super.updated(changedProperties);
93
+ // Setup animation if switching to determinate mode
94
+ if (changedProperties.has('indeterminate') && !this.indeterminate) {
95
+ this._setupInitialAnimation();
96
+ }
97
+ // Only track completion in determinate mode
98
+ if (!this.indeterminate) {
99
+ this._trackCompletion();
100
+ }
101
+ }
102
+ render() {
103
+ // Determine size: check --progress-size CSS property, fallback to size preset
104
+ const sizeMap = { sm: 16, md: 32, lg: 48 };
105
+ const customSize = getComputedStyle(this).getPropertyValue('--progress-size').trim();
106
+ const parsed = parseFloat(customSize);
107
+ const size = customSize && !isNaN(parsed) && parsed > 0 ? parsed : (sizeMap[this.size] ?? sizeMap.sm);
108
+ const thickness = this.thickness ?? 2; // default thickness is 2
109
+ const color = this._getProgressColorValue();
110
+ const radius = (size - thickness) / 2;
111
+ const circumference = 2 * Math.PI * radius;
112
+ const center = size / 2;
113
+ const progressValue = this._getAnimatedProgress();
114
+ const strokeDashoffset = this.indeterminate ? 0 : circumference - (progressValue / 100) * circumference;
115
+ return html `
116
+ <span
117
+ class="block"
118
+ role="progressbar"
119
+ aria-label="${this.ariaLabel || nothing}"
120
+ aria-labelledby="${this.ariaLabelledBy || nothing}"
121
+ aria-valuenow="${this.indeterminate ? nothing : progressValue}"
122
+ aria-valuemin="${this.indeterminate ? nothing : '0'}"
123
+ aria-valuemax="${this.indeterminate ? nothing : '100'}"
124
+ aria-valuetext="${this.indeterminate
125
+ ? nothing
126
+ : this.ariaValueText || this.label || `${progressValue} percent`}"
127
+ >
128
+ <svg
129
+ class="${this.indeterminate ? 'animate-circular-progress-rotate' : ''} block"
130
+ width="${size}"
131
+ height="${size}"
132
+ viewBox="0 0 ${size} ${size}"
133
+ aria-hidden="true"
134
+ >
135
+ <circle
136
+ cx="${center}"
137
+ cy="${center}"
138
+ r="${radius}"
139
+ fill="none"
140
+ stroke="var(--track-color, oklch(var(--btu-theme-gray-100)))"
141
+ stroke-width="${thickness}"
142
+ />
143
+ <circle
144
+ class="${this.indeterminate
145
+ ? 'animate-circular-progress-dash'
146
+ : '-rotate-90'} origin-center transition-all duration-300 ease-in-out"
147
+ cx="${center}"
148
+ cy="${center}"
149
+ r="${radius}"
150
+ fill="none"
151
+ stroke="${color}"
152
+ stroke-width="${thickness}"
153
+ stroke-dasharray="${this.indeterminate ? '1, 200' : circumference}"
154
+ stroke-dashoffset="${this.indeterminate ? '0' : strokeDashoffset}"
155
+ stroke-linecap="round"
156
+ />
157
+ </svg>
158
+ </span>
159
+ ${this.label ? html `<span class="mt-2 text-center text-xs font-medium text-gray-700">${this.label}</span>` : ''}
160
+ `;
161
+ }
162
+ }
163
+ __decorate([
164
+ property({ type: Boolean })
165
+ ], CircularProgress.prototype, "indeterminate", void 0);
166
+ __decorate([
167
+ property({ type: String })
168
+ ], CircularProgress.prototype, "size", void 0);
169
+ // Register custom element with guard to prevent double registration
170
+ if (!customElements.get('btu-circular-progress')) {
171
+ customElements.define('btu-circular-progress', CircularProgress);
172
+ }
173
+ //# sourceMappingURL=CircularProgress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CircularProgress.js","sourceRoot":"","sources":["../../../src/components/circular-progress/CircularProgress.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ import { LitElement } from 'lit';
2
+ export interface IconProps {
3
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
4
+ symbol?: string;
5
+ gradient?: 'ai' | 'error' | 'gray' | 'primary' | 'purple' | 'rose' | 'success' | 'teal' | 'warning';
6
+ }
7
+ declare const Icon_base: (new (...args: any[]) => import("../../util/EventEmitterMixin.js").EventEmitterMixinInterface) & (new (...args: any[]) => import("../../util/ReadyMixin.js").ReadyMixinInterface) & typeof LitElement;
8
+ /**
9
+ * An icon component for displaying Lucide icons.
10
+ *
11
+ * Icons inherit parent text color by default or can use gradient fills.
12
+ * All icons are from the Lucide icon library (https://lucide.dev/icons/).
13
+ * Supports both direct SVG rendering and mask-based gradient fills.
14
+ *
15
+ * @element btu-icon
16
+ *
17
+ * @fires {CustomEvent} btu-icon-ready - Fired after first render and initialization
18
+ *
19
+ * @cssprop --Icon-size - Icon size (overrides size default)
20
+ * @cssprop --Icon-fill - Icon fill color for filled icons (e.g., "currentColor")
21
+ * @cssprop --Icon-svg - SVG data URI for mask-based rendering
22
+ *
23
+ * @example
24
+ * ```html
25
+ * <!-- Icon inheriting parent text color -->
26
+ * <btu-icon symbol="heart" size="md"></btu-icon>
27
+ *
28
+ * <!-- Gradient icon -->
29
+ * <btu-icon symbol="star" size="lg" gradient="primary"></btu-icon>
30
+ *
31
+ * <!-- Custom size via CSS -->
32
+ * <btu-icon symbol="check" style="--Icon-size: 3rem"></btu-icon>
33
+ *
34
+ * <!-- Filled icon via CSS (advanced usage) -->
35
+ * <btu-icon symbol="heart" style="--Icon-fill: currentColor"></btu-icon>
36
+ * ```
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * // Programmatic usage
41
+ * const icon = document.createElement('btu-icon')
42
+ * icon.symbol = 'smile'
43
+ * icon.size = 'lg'
44
+ * icon.addEventListener('btu-icon-ready', () => console.log('Icon loaded'))
45
+ * ```
46
+ */
47
+ export default class Icon extends Icon_base {
48
+ static get tagName(): string;
49
+ /**
50
+ * Size of the icon.
51
+ * - 'xs': Extra small (0.75rem)
52
+ * - 'sm': Small (1rem)
53
+ * - 'md': Medium (1.25rem, default)
54
+ * - 'lg': Large (1.5rem)
55
+ * - 'xl': Extra large (1.75rem)
56
+ * @attr
57
+ */
58
+ size: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
59
+ /**
60
+ * Lucide icon name to display.
61
+ * See https://lucide.dev/icons/ for available icons.
62
+ * @attr
63
+ */
64
+ symbol: string;
65
+ /**
66
+ * Theme color to use for gradient fill.
67
+ * When set, icon displays with gradient. When undefined, icon inherits parent text color.
68
+ * @attr
69
+ */
70
+ gradient?: 'ai' | 'error' | 'gray' | 'primary' | 'purple' | 'rose' | 'success' | 'teal' | 'warning';
71
+ /** @internal */
72
+ private initialClasses;
73
+ connectedCallback(): void;
74
+ createRenderRoot(): this;
75
+ willUpdate(): void;
76
+ firstUpdated(): void;
77
+ /**
78
+ * Escape HTML special characters to prevent XSS attacks in comments.
79
+ * @internal
80
+ */
81
+ private escapeHtml;
82
+ render(): import("lit-html").TemplateResult<1>;
83
+ }
84
+ declare global {
85
+ interface HTMLElementTagNameMap {
86
+ 'btu-icon': Icon;
87
+ }
88
+ }
89
+ export {};
90
+ //# sourceMappingURL=Icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../src/components/icon/Icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAA;AAWtC,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACvC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAA;CACpG;;AASD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,SAAyC;IACzE,MAAM,KAAK,OAAO,WAEjB;IAED;;;;;;;;OAQG;IAEH,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAO;IAE7C;;;;OAIG;IAEH,MAAM,EAAE,MAAM,CAAkB;IAEhC;;;;OAIG;IAEH,QAAQ,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAA;IAEnG,gBAAgB;IAChB,OAAO,CAAC,cAAc,CAAe;IAErC,iBAAiB,IAAI,IAAI;IAQzB,gBAAgB;IAIhB,UAAU,IAAI,IAAI;IAclB,YAAY,IAAI,IAAI;IAIpB;;;OAGG;IACH,OAAO,CAAC,UAAU;IASlB,MAAM;CA+CP;AAQD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,IAAI,CAAA;KACjB;CACF"}