@brightspot/ui 1.0.1-4 → 1.0.1-pr18.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 (95) hide show
  1. package/README.md +4 -33
  2. package/custom-elements.json +187 -0
  3. package/dist/LucideDynamicLoader.d.ts +5 -0
  4. package/dist/LucideDynamicLoader.d.ts.map +1 -0
  5. package/dist/LucideDynamicLoader.js +4 -3
  6. package/dist/LucideDynamicLoader.js.map +1 -0
  7. package/dist/LucideDynamicLoader.ts +3 -3
  8. package/dist/components/badge/Badge.d.ts +83 -0
  9. package/dist/components/badge/Badge.d.ts.map +1 -0
  10. package/dist/components/badge/Badge.js +121 -0
  11. package/dist/components/badge/Badge.js.map +1 -0
  12. package/dist/global.d.ts +14 -0
  13. package/dist/storybook/assets/Badge.stories-DEsdluIh.js +121 -0
  14. package/dist/storybook/assets/{Button.stories-Cr7Qwtjy.js → Button.stories-gjqwP9Dd.js} +1 -1
  15. package/dist/storybook/assets/Color-64QXVMR3-zvVywvcs.js +1 -0
  16. package/dist/storybook/assets/{Colors.stories-DTkJ49c0.js → Colors.stories-BSHTes66.js} +2 -2
  17. package/dist/storybook/assets/{Heading.stories-DAeD9lW6.js → Heading.stories-CuxV5Ha4.js} +1 -1
  18. package/dist/storybook/assets/{Icon.stories-cnRmIS9M.js → Icon.stories-ECH3sQLo.js} +1592 -9552
  19. package/dist/storybook/assets/Loader.stories-C_Nt0MWZ.js +3 -0
  20. package/dist/storybook/assets/{ScrollShadow.stories-DPlCRYP5.js → ScrollShadow.stories-AVqXbAPK.js} +1 -1
  21. package/dist/storybook/assets/WithTooltip-SK46ZJ2J-CfHHW7CI.js +825 -0
  22. package/dist/storybook/assets/formatter-OMEEQ6HG-f5NO_AKZ.js +1 -0
  23. package/dist/storybook/assets/iframe-ubZg9Abb.css +1 -0
  24. package/dist/storybook/assets/iframe-zcxd989B.js +1087 -0
  25. package/dist/storybook/assets/index-DCmyvMEs.js +1 -0
  26. package/dist/storybook/assets/syntaxhighlighter-CAVLW7PM-MI_0amTU.js +6 -0
  27. package/dist/storybook/iframe.html +4 -4
  28. package/dist/storybook/index.html +2 -13
  29. package/dist/storybook/index.json +1 -1
  30. package/dist/storybook/project.json +1 -1
  31. package/dist/storybook/sb-addons/docs-1/manager-bundle.js +1 -149
  32. package/dist/storybook/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +158 -323
  33. package/dist/storybook/sb-manager/globals-runtime.js +79814 -65954
  34. package/dist/storybook/sb-manager/globals.js +7 -16
  35. package/dist/storybook/sb-manager/runtime.js +15451 -9508
  36. package/dist/storybook/vite-inject-mocker-entry.js +1 -17
  37. package/dist/tailwind-plugin-badge.d.ts +2 -0
  38. package/dist/tailwind-plugin-badge.d.ts.map +1 -0
  39. package/dist/tailwind-plugin-badge.js +28 -12
  40. package/dist/tailwind-plugin-badge.js.map +1 -0
  41. package/dist/tailwind-plugin-badge.ts +34 -15
  42. package/dist/tailwind-plugin-button.d.ts +2 -0
  43. package/dist/tailwind-plugin-button.d.ts.map +1 -0
  44. package/dist/tailwind-plugin-button.js +2 -5
  45. package/dist/tailwind-plugin-button.js.map +1 -0
  46. package/dist/tailwind-plugin-button.ts +8 -21
  47. package/dist/tailwind-plugin-heading.d.ts +2 -0
  48. package/dist/tailwind-plugin-heading.d.ts.map +1 -0
  49. package/dist/tailwind-plugin-heading.js +1 -0
  50. package/dist/tailwind-plugin-heading.js.map +1 -0
  51. package/dist/tailwind-plugin-icon.d.ts +2 -0
  52. package/dist/tailwind-plugin-icon.d.ts.map +1 -0
  53. package/dist/tailwind-plugin-icon.js +8 -7
  54. package/dist/tailwind-plugin-icon.js.map +1 -0
  55. package/dist/tailwind-plugin-icon.ts +16 -25
  56. package/dist/tailwind-plugin-loader.d.ts +2 -0
  57. package/dist/tailwind-plugin-loader.d.ts.map +1 -0
  58. package/dist/tailwind-plugin-loader.js +1 -0
  59. package/dist/tailwind-plugin-loader.js.map +1 -0
  60. package/dist/tailwind-plugin-scroll-shadow.d.ts +2 -0
  61. package/dist/tailwind-plugin-scroll-shadow.d.ts.map +1 -0
  62. package/dist/tailwind-plugin-scroll-shadow.js +16 -1
  63. package/dist/tailwind-plugin-scroll-shadow.js.map +1 -0
  64. package/dist/tailwind-plugin-scroll-shadow.ts +33 -22
  65. package/dist/tailwind-plugin-theme.d.ts +2 -0
  66. package/dist/tailwind-plugin-theme.d.ts.map +1 -0
  67. package/dist/tailwind-plugin-theme.js +2 -3
  68. package/dist/tailwind-plugin-theme.js.map +1 -0
  69. package/dist/tailwind-plugin-theme.ts +4 -15
  70. package/dist/tailwind.config.d.ts +693 -0
  71. package/dist/tailwind.config.d.ts.map +1 -0
  72. package/dist/tailwind.config.js +2 -4
  73. package/dist/tailwind.config.js.map +1 -0
  74. package/dist/tailwind.config.ts +2 -6
  75. package/dist/util/string.d.ts +3 -0
  76. package/dist/util/string.d.ts.map +1 -0
  77. package/dist/util/string.js +2 -1
  78. package/dist/util/string.js.map +1 -0
  79. package/dist/util/svg.d.ts +3 -0
  80. package/dist/util/svg.d.ts.map +1 -0
  81. package/dist/util/svg.js +1 -0
  82. package/dist/util/svg.js.map +1 -0
  83. package/dist/utils/EventEmitterMixin.d.ts +63 -0
  84. package/dist/utils/EventEmitterMixin.d.ts.map +1 -0
  85. package/dist/utils/EventEmitterMixin.js +74 -0
  86. package/dist/utils/EventEmitterMixin.js.map +1 -0
  87. package/package.json +47 -18
  88. package/dist/storybook/assets/Badge.stories-BTUP8EEA.js +0 -47
  89. package/dist/storybook/assets/Color-AVL7NMMY-FwGGzq-S.js +0 -1
  90. package/dist/storybook/assets/DocsRenderer-PQXLIZUC-czZuJbjz.js +0 -1286
  91. package/dist/storybook/assets/Loader.stories-i7TFXki_.js +0 -7
  92. package/dist/storybook/assets/iframe-CgQYHqh5.css +0 -1
  93. package/dist/storybook/assets/iframe-KLSeZXhG.js +0 -1059
  94. package/dist/storybook/assets/index-Du6pvkZG.js +0 -1
  95. package/dist/storybook/sb-manager/globals-module-info.js +0 -797
package/README.md CHANGED
@@ -168,11 +168,15 @@ For local development and testing, use `yarn link` to create a symlink between t
168
168
  This registers the package globally on your system for linking.
169
169
 
170
170
  2. **In your consuming project directory:**
171
+
171
172
  ```sh
172
173
  yarn link @brightspot/ui
173
174
  ```
175
+
174
176
  This creates a symlink from your project's node_modules to the brightspot-ui package.
175
177
 
178
+ > **_Note_** Be sure this is done in the directory where the `package.json` file resides for the CMS UI. Currently that is at `/cms/tool-ui`. You will need to validate your changes via your locally running Brightspot Tool UI Webpack server. It will not work directly over Docker's Tomcat.
179
+
176
180
  #### Working with the linked package
177
181
 
178
182
  - From within _**this**_ module, run `yarn build` to ensure the `dist` folder is updated with your changes.
@@ -245,39 +249,6 @@ docs: update installation instructions
245
249
  chore(deps): upgrade tailwindcss to 3.4.0
246
250
  ```
247
251
 
248
- ### Publishing
249
-
250
- #### Prerelease (Testing)
251
-
252
- For testing changes before a full release, create a prerelease version:
253
-
254
- ```sh
255
- yarn version --prerelease
256
- npm publish --tag beta
257
- ```
258
-
259
- This automatically increments the version with a prerelease identifier (e.g., `1.2.3-0`) and publishes it under the `beta` tag. Users can install prereleases with:
260
-
261
- ```sh
262
- yarn add @brightspot/ui@beta
263
- ```
264
-
265
- #### Full Release
266
-
267
- For a production release:
268
-
269
- ```sh
270
- yarn version --patch # for bug fixes
271
- # or
272
- yarn version --minor # for new features
273
- # or
274
- yarn version --major # for breaking changes
275
-
276
- npm publish
277
- ```
278
-
279
- The `yarn version` command automatically updates the version number in package.json and creates a git commit and tag. Choose the appropriate version bump based on the type of changes you're releasing.
280
-
281
252
  <p align="right">(<a href="#readme-top">back to top</a>)</p>
282
253
 
283
254
  ## Frequently Asked Questions
@@ -0,0 +1,187 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "readme": "",
4
+ "modules": [
5
+ {
6
+ "kind": "javascript-module",
7
+ "path": "src/components/badge/Badge.ts",
8
+ "declarations": [
9
+ {
10
+ "kind": "class",
11
+ "description": "A badge component for highlighting important information.\n\nBadges help highlight notifications, status, or new messages.\nPrimarily used for communicating secondary or additional information.",
12
+ "name": "Badge",
13
+ "cssProperties": [
14
+ {
15
+ "description": "Text color (overrides theme color)",
16
+ "name": "--badge-color-foreground"
17
+ },
18
+ {
19
+ "description": "Background color (overrides theme color)",
20
+ "name": "--badge-color-background"
21
+ },
22
+ {
23
+ "description": "Border radius size (overrides shape default, default: 999px)",
24
+ "name": "--badge-radius-size"
25
+ },
26
+ {
27
+ "description": "Horizontal padding (overrides size default)",
28
+ "name": "--badge-pad-x"
29
+ },
30
+ {
31
+ "description": "Vertical padding (overrides size default)",
32
+ "name": "--badge-pad-y"
33
+ },
34
+ {
35
+ "description": "Size of the dot affordance (default: 6px)",
36
+ "name": "--badge-dot-size"
37
+ }
38
+ ],
39
+ "members": [
40
+ {
41
+ "kind": "field",
42
+ "name": "variant",
43
+ "type": {
44
+ "text": "'info' | 'primary' | 'error' | 'success' | 'warning'"
45
+ },
46
+ "default": "'info'",
47
+ "description": "Style of the badge.\n- 'info': Informational (default)\n- 'primary': Primary action or emphasis\n- 'error': Error or danger state\n- 'success': Success or completion state\n- 'warning': Warning or caution state",
48
+ "attribute": "variant"
49
+ },
50
+ {
51
+ "kind": "field",
52
+ "name": "dot",
53
+ "type": {
54
+ "text": "boolean"
55
+ },
56
+ "default": "false",
57
+ "description": "Should a dot be displayed before the label?",
58
+ "attribute": "dot"
59
+ },
60
+ {
61
+ "kind": "field",
62
+ "name": "size",
63
+ "type": {
64
+ "text": "string"
65
+ },
66
+ "default": "'sm'",
67
+ "description": "Size variant.\n- 'sm': Small (default)\n- 'md': Medium\n- 'lg': Large",
68
+ "attribute": "size"
69
+ },
70
+ {
71
+ "kind": "field",
72
+ "name": "shape",
73
+ "type": {
74
+ "text": "'pill' | 'rect'"
75
+ },
76
+ "default": "'pill'",
77
+ "description": "The shape of the badge.\n- 'pill': Pill shape (default)\n- 'rect': Rectangle shape",
78
+ "attribute": "shape"
79
+ }
80
+ ],
81
+ "events": [
82
+ {
83
+ "type": {
84
+ "text": "CustomEvent"
85
+ },
86
+ "description": "Inherited from EventEmitterMixin, fired when element connects to DOM",
87
+ "name": "btu-brightspot-element-connected"
88
+ },
89
+ {
90
+ "type": {
91
+ "text": "CustomEvent"
92
+ },
93
+ "description": "Inherited from EventEmitterMixin, fired when element disconnects from DOM",
94
+ "name": "btu-brightspot-element-disconnected"
95
+ },
96
+ {
97
+ "type": {
98
+ "text": "CustomEvent<{error: Error}>"
99
+ },
100
+ "description": "Inherited from EventEmitterMixin, fired on connection error",
101
+ "name": "btu-brightspot-element-error"
102
+ },
103
+ {
104
+ "type": {
105
+ "text": "CustomEvent"
106
+ },
107
+ "description": "Fired after first render and initialization",
108
+ "name": "btu-badge-ready"
109
+ }
110
+ ],
111
+ "attributes": [
112
+ {
113
+ "name": "variant",
114
+ "type": {
115
+ "text": "'info' | 'primary' | 'error' | 'success' | 'warning'"
116
+ },
117
+ "default": "'info'",
118
+ "description": "Style of the badge.\n- 'info': Informational (default)\n- 'primary': Primary action or emphasis\n- 'error': Error or danger state\n- 'success': Success or completion state\n- 'warning': Warning or caution state",
119
+ "fieldName": "variant",
120
+ "attribute": "variant"
121
+ },
122
+ {
123
+ "name": "dot",
124
+ "type": {
125
+ "text": "boolean"
126
+ },
127
+ "default": "false",
128
+ "description": "Should a dot be displayed before the label?",
129
+ "fieldName": "dot",
130
+ "attribute": "dot"
131
+ },
132
+ {
133
+ "name": "size",
134
+ "type": {
135
+ "text": "string"
136
+ },
137
+ "default": "'sm'",
138
+ "description": "Size variant.\n- 'sm': Small (default)\n- 'md': Medium\n- 'lg': Large",
139
+ "fieldName": "size",
140
+ "attribute": "size"
141
+ },
142
+ {
143
+ "name": "shape",
144
+ "type": {
145
+ "text": "'pill' | 'rect'"
146
+ },
147
+ "default": "'pill'",
148
+ "description": "The shape of the badge.\n- 'pill': Pill shape (default)\n- 'rect': Rectangle shape",
149
+ "fieldName": "shape",
150
+ "attribute": "shape"
151
+ }
152
+ ],
153
+ "mixins": [
154
+ {
155
+ "name": "EventEmitterMixin",
156
+ "module": "/src/utils/EventEmitterMixin.js"
157
+ }
158
+ ],
159
+ "superclass": {
160
+ "name": "LitElement",
161
+ "package": "lit"
162
+ },
163
+ "tagName": "btu-badge",
164
+ "customElement": true
165
+ }
166
+ ],
167
+ "exports": [
168
+ {
169
+ "kind": "js",
170
+ "name": "default",
171
+ "declaration": {
172
+ "name": "Badge",
173
+ "module": "src/components/badge/Badge.ts"
174
+ }
175
+ },
176
+ {
177
+ "kind": "custom-element-definition",
178
+ "name": "btu-badge",
179
+ "declaration": {
180
+ "name": "Badge",
181
+ "module": "src/components/badge/Badge.ts"
182
+ }
183
+ }
184
+ ]
185
+ }
186
+ ]
187
+ }
@@ -0,0 +1,5 @@
1
+ export declare function getIcon(iconName: string): {
2
+ compat: string;
3
+ iconSvg: string;
4
+ } | undefined;
5
+ //# sourceMappingURL=LucideDynamicLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LucideDynamicLoader.d.ts","sourceRoot":"","sources":["../src/LucideDynamicLoader.ts"],"names":[],"mappings":"AAKA,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM;;;cAiBvC"}
@@ -1,7 +1,7 @@
1
1
  import * as LucideIcons from 'lucide-static';
2
- import icons from 'lucide-static/font/info.json';
3
- import { kebabToPascal } from '../src/util/string';
4
- import { addNameSpaceXML, encodeSVG } from '../src/util/svg';
2
+ import icons from 'lucide-static/font/info.json' with { type: 'json' };
3
+ import { kebabToPascal } from './util/string.js';
4
+ import { addNameSpaceXML, encodeSVG } from './util/svg.js';
5
5
  export function getIcon(iconName) {
6
6
  try {
7
7
  const kebabName = iconName.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
@@ -19,3 +19,4 @@ export function getIcon(iconName) {
19
19
  console.error('Error loading Lucide icon ${iconName}:', e);
20
20
  }
21
21
  }
22
+ //# sourceMappingURL=LucideDynamicLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LucideDynamicLoader.js","sourceRoot":"","sources":["../src/LucideDynamicLoader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,MAAM,8BAA8B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE1D,MAAM,UAAU,OAAO,CAAC,QAAgB;IACtC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;QAC5E,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;QAE3C,IAAI,WAAW,CAAC,UAAsC,CAAC,EAAE,CAAC;YACxD,MAAM,GAAG,GAAG,WAAW,CAAC,UAAsC,CAAW,CAAA;YACzE,MAAM,UAAU,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAA;YAElD,OAAO;gBACL,MAAM,EAAE,KAAK,CAAC,SAA+B,CAAC,EAAE,WAAW,IAAI,EAAE;gBACjE,OAAO,EAAE,UAAU;aACpB,CAAA;QACH,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,CAAC,CAAC,CAAA;IAC5D,CAAC;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import * as LucideIcons from 'lucide-static'
2
- import icons from 'lucide-static/font/info.json'
3
- import { kebabToPascal } from '../src/util/string'
4
- import { addNameSpaceXML, encodeSVG } from '../src/util/svg'
2
+ import icons from 'lucide-static/font/info.json' with { type: 'json' }
3
+ import { kebabToPascal } from './util/string.js'
4
+ import { addNameSpaceXML, encodeSVG } from './util/svg.js'
5
5
 
6
6
  export function getIcon(iconName: string) {
7
7
  try {
@@ -0,0 +1,83 @@
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
+ shape?: 'pill' | 'rect';
7
+ }
8
+ declare const Badge_base: (new (...args: any[]) => import("../../utils/EventEmitterMixin.js").EventEmitterMixinInterface) & typeof LitElement;
9
+ /**
10
+ * A badge component for highlighting important information.
11
+ *
12
+ * Badges help highlight notifications, status, or new messages.
13
+ * Primarily used for communicating secondary or additional information.
14
+ *
15
+ * @element btu-badge
16
+ *
17
+ * @fires {CustomEvent} btu-brightspot-element-connected - Inherited from EventEmitterMixin, fired when element connects to DOM
18
+ * @fires {CustomEvent} btu-brightspot-element-disconnected - Inherited from EventEmitterMixin, fired when element disconnects from DOM
19
+ * @fires {CustomEvent<{error: Error}>} btu-brightspot-element-error - Inherited from EventEmitterMixin, fired on connection error
20
+ * @fires {CustomEvent} btu-badge-ready - Fired after first render and initialization
21
+ *
22
+ * @cssprop --badge-color-foreground - Text color (overrides theme color)
23
+ * @cssprop --badge-color-background - Background color (overrides theme color)
24
+ * @cssprop --badge-radius-size - Border radius size (overrides shape default, default: 999px)
25
+ * @cssprop --badge-pad-x - Horizontal padding (overrides size default)
26
+ * @cssprop --badge-pad-y - Vertical padding (overrides size default)
27
+ * @cssprop --badge-dot-size - Size of the dot affordance (default: 6px)
28
+ *
29
+ * @example
30
+ * ```html
31
+ * <!-- Badge with dot -->
32
+ * <btu-badge variant="info" size="sm" dot>New</btu-badge>
33
+ *
34
+ * <!-- Badge with icon -->
35
+ * <btu-badge variant="success" size="md">
36
+ * <btu-icon symbol="check"></btu-icon>
37
+ * Success
38
+ * </btu-badge>
39
+ * ```
40
+ */
41
+ export default class Badge extends Badge_base {
42
+ /**
43
+ * Style of the badge.
44
+ * - 'info': Informational (default)
45
+ * - 'primary': Primary action or emphasis
46
+ * - 'error': Error or danger state
47
+ * - 'success': Success or completion state
48
+ * - 'warning': Warning or caution state
49
+ * @attr
50
+ */
51
+ variant: 'info' | 'primary' | 'error' | 'success' | 'warning';
52
+ /**
53
+ * Should a dot be displayed before the label?
54
+ * @attr
55
+ */
56
+ dot: boolean;
57
+ /**
58
+ * Size variant.
59
+ * - 'sm': Small (default)
60
+ * - 'md': Medium
61
+ * - 'lg': Large
62
+ * @attr
63
+ */
64
+ size: string;
65
+ /**
66
+ * The shape of the badge.
67
+ * - 'pill': Pill shape (default)
68
+ * - 'rect': Rectangle shape
69
+ * @attr
70
+ */
71
+ shape: 'pill' | 'rect';
72
+ createRenderRoot(): this;
73
+ willUpdate(): void;
74
+ firstUpdated(): void;
75
+ render(): import("lit-html").TemplateResult<1>;
76
+ }
77
+ declare global {
78
+ interface HTMLElementTagNameMap {
79
+ 'btu-badge': Badge;
80
+ }
81
+ }
82
+ export {};
83
+ //# 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;AAItC,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;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACxB;;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,UAA6B;IAC9D;;;;;;;;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;;;;;OAKG;IAEH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAS;IAE/B,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,121 @@
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 '../../utils/EventEmitterMixin.js';
10
+ /**
11
+ * A badge component for highlighting important information.
12
+ *
13
+ * Badges help highlight notifications, status, or new messages.
14
+ * Primarily used for communicating secondary or additional information.
15
+ *
16
+ * @element btu-badge
17
+ *
18
+ * @fires {CustomEvent} btu-brightspot-element-connected - Inherited from EventEmitterMixin, fired when element connects to DOM
19
+ * @fires {CustomEvent} btu-brightspot-element-disconnected - Inherited from EventEmitterMixin, fired when element disconnects from DOM
20
+ * @fires {CustomEvent<{error: Error}>} btu-brightspot-element-error - Inherited from EventEmitterMixin, fired on connection error
21
+ * @fires {CustomEvent} btu-badge-ready - Fired after first render and initialization
22
+ *
23
+ * @cssprop --badge-color-foreground - Text color (overrides theme color)
24
+ * @cssprop --badge-color-background - Background color (overrides theme color)
25
+ * @cssprop --badge-radius-size - Border radius size (overrides shape default, default: 999px)
26
+ * @cssprop --badge-pad-x - Horizontal padding (overrides size default)
27
+ * @cssprop --badge-pad-y - Vertical padding (overrides size default)
28
+ * @cssprop --badge-dot-size - Size of the dot affordance (default: 6px)
29
+ *
30
+ * @example
31
+ * ```html
32
+ * <!-- Badge with dot -->
33
+ * <btu-badge variant="info" size="sm" dot>New</btu-badge>
34
+ *
35
+ * <!-- Badge with icon -->
36
+ * <btu-badge variant="success" size="md">
37
+ * <btu-icon symbol="check"></btu-icon>
38
+ * Success
39
+ * </btu-badge>
40
+ * ```
41
+ */
42
+ export default class Badge extends EventEmitterMixin(LitElement) {
43
+ constructor() {
44
+ super(...arguments);
45
+ /**
46
+ * Style of the badge.
47
+ * - 'info': Informational (default)
48
+ * - 'primary': Primary action or emphasis
49
+ * - 'error': Error or danger state
50
+ * - 'success': Success or completion state
51
+ * - 'warning': Warning or caution state
52
+ * @attr
53
+ */
54
+ this.variant = 'info';
55
+ /**
56
+ * Should a dot be displayed before the label?
57
+ * @attr
58
+ */
59
+ this.dot = false;
60
+ /**
61
+ * Size variant.
62
+ * - 'sm': Small (default)
63
+ * - 'md': Medium
64
+ * - 'lg': Large
65
+ * @attr
66
+ */
67
+ this.size = 'sm';
68
+ /**
69
+ * The shape of the badge.
70
+ * - 'pill': Pill shape (default)
71
+ * - 'rect': Rectangle shape
72
+ * @attr
73
+ */
74
+ this.shape = 'pill';
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
+ 'btu-badge',
90
+ `btu-badge-${this.size}`,
91
+ `btu-badge-${colorMap[this.variant]}`,
92
+ this.shape === 'rect' ? '[--badge-radius-size:0px]' : '',
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
+ __decorate([
114
+ property({ type: String })
115
+ ], Badge.prototype, "shape", void 0);
116
+ // Register custom element with guard to prevent double registration
117
+ // (common with yarn link, HMR, or webpack bundle duplication)
118
+ if (!customElements.get('btu-badge')) {
119
+ customElements.define('btu-badge', Badge);
120
+ }
121
+ //# 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,kCAAkC,CAAA;AASpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,iBAAiB,CAAC,UAAU,CAAC;IAAhE;;QACE;;;;;;;;WAQG;QAEH,YAAO,GAAyD,MAAM,CAAA;QAEtE;;;WAGG;QAEH,QAAG,GAAG,KAAK,CAAA;QAEX;;;;;;WAMG;QAEH,SAAI,GAAG,IAAI,CAAA;QAEX;;;;;WAKG;QAEH,UAAK,GAAoB,MAAM,CAAA;IAkCjC,CAAC;IAhCC,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,WAAW;YACX,aAAa,IAAI,CAAC,IAAI,EAAE;YACxB,aAAa,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE;YACxD,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;AA5DC;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;AASX;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oCACI;AAoCjC,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,14 @@
1
+ declare global {
2
+ interface Window {
3
+ BRIGHTSPOT?: {
4
+ ui?: {
5
+ tooltips?: {
6
+ collapse?: string
7
+ expand?: string
8
+ }
9
+ }
10
+ }
11
+ }
12
+ }
13
+
14
+ export {}
@@ -0,0 +1,121 @@
1
+ import{g as m,x as o}from"./iframe-zcxd989B.js";import"./preload-helper-PPVm8Dsz.js";const{events:g,args:u,argTypes:i}=m("btu-badge"),I=["info","primary","error","success","warning"],h={title:"Components/Badge",component:"btu-badge",tags:["autodocs"],parameters:{docs:{subtitle:"A component for highlighting important information",description:{component:`
2
+ <h3>When to use:</h3>
3
+ <ul>
4
+ <li>To call attention to something</li>
5
+ <li>For presenting status</li>
6
+ <li>For anything longer than a very short number</li>
7
+ </ul>
8
+
9
+ <h3>When not to use:</h3>
10
+ <ul>
11
+ <li>For very short numbers. Instead use a notification</li>
12
+ <li>For circled notifications</li>
13
+ </ul>
14
+ `}},actions:{handles:g},controls:{expanded:!0}},args:{...u,variant:"success",dot:!1,size:"sm",shape:"pill",customForegroundColor:"",customBackgroundColor:"",customRadiusSize:"",customPadX:"",customPadY:"",customDotSize:""},argTypes:{...i,"--badge-color-foreground":{table:{disable:!0}},"--badge-color-background":{table:{disable:!0}},"--badge-radius-size":{table:{disable:!0}},"--badge-pad-x":{table:{disable:!0}},"--badge-pad-y":{table:{disable:!0}},"--badge-dot-size":{table:{disable:!0}},variant:{...i.variant,control:{type:"select"},options:I},dot:{...i.dot,control:{type:"boolean"}},size:{...i.size,control:{type:"select"},options:["sm","md","lg"]},shape:{...i.shape,control:{type:"select"},options:["pill","rect"]},customBackgroundColor:{name:"--badge-color-background",control:{type:"color"},description:"Custom background color - overrides the theme color",table:{category:"CSS Properties"}},customForegroundColor:{name:"--badge-color-foreground",control:{type:"color"},description:"Custom foreground (text) color - overrides the theme color",table:{category:"CSS Properties"}},customRadiusSize:{name:"--badge-radius-size",control:{type:"text"},description:"Custom border radius size - overrides the shape default (default: 999px)",table:{category:"CSS Properties"}},customPadX:{name:"--badge-pad-x",control:{type:"text"},description:"Horizontal padding - overrides the size default",table:{category:"CSS Properties"}},customPadY:{name:"--badge-pad-y",control:{type:"text"},description:"Vertical padding - overrides the size default",table:{category:"CSS Properties"}},customDotSize:{name:"--badge-dot-size",control:{type:"text"},description:"Size of the dot affordance (default: 6px)",table:{category:"CSS Properties"}}},render:e=>{const a=[];e.customBackgroundColor&&a.push(`--badge-color-background: ${e.customBackgroundColor}`),e.customForegroundColor&&a.push(`--badge-color-foreground: ${e.customForegroundColor}`),e.customRadiusSize&&a.push(`--badge-radius-size: ${e.customRadiusSize}`),e.customPadX&&a.push(`--badge-pad-x: ${e.customPadX}`),e.customPadY&&a.push(`--badge-pad-y: ${e.customPadY}`),e.customDotSize&&a.push(`--badge-dot-size: ${e.customDotSize}`);const l=a.length>0?a.join("; "):"";return o`<btu-badge
15
+ variant="${e.variant}"
16
+ ?dot="${e.dot}"
17
+ size="${e.size}"
18
+ shape="${e.shape}"
19
+ style="${l}"
20
+ >Badge</btu-badge
21
+ >`}},t={args:{}},r={args:{variant:"primary",size:"lg",customBackgroundColor:"#dce34d",customForegroundColor:"#a04b4b"},parameters:{docs:{description:{story:"Badge supports custom colors using the CSS custom properties that override theme colors `--badge-color-background` and `--badge-color-foreground`."}}}},s={args:{variant:"success",size:"lg"},render:e=>o`<a href="#" class="hover:text-primary inline-flex items-center gap-2 hover:underline">
22
+ Hover over me to see the
23
+ <btu-badge variant="${e.variant}" size="${e.size}">Linked Badge</btu-badge>
24
+ in action.
25
+ </a>`,parameters:{docs:{description:{story:"Badges inside anchor elements automatically handle underlines properly. The underline uses the badge background color instead of the default link color, ensuring proper visual hierarchy when badges are used within linked elements."}}}},n={render:()=>o`<div class="flex items-center gap-4">
26
+ <btu-badge variant="primary" size="md" shape="pill">Pill</btu-badge>
27
+ <btu-badge variant="success" size="md" shape="rect">Rectangle</btu-badge>
28
+ </div>`,parameters:{docs:{description:{story:"Badges support two shape variants: pill (default with rounded ends) and rect (rectangle with square corners). A circle shape can be accomplished by using pill and setting equal width and height via custom CSS properties, but you should probably be using a notification component instead."}}}},c={args:{variant:"warning",size:"md",dot:!1},render:e=>o`<btu-badge variant="${e.variant}" size="${e.size}">
29
+ <div aria-label="warning icon" class="before:btu-icon before:btu-icon-md before:btu-icon-triangle-alert"></div>
30
+ Warning
31
+ </btu-badge>`,parameters:{docs:{description:{story:"Badges can have other children besides text. Place an icon element inside the badge along with your label text. The icon will automatically be placed to fit within the badge layout. Icons should always be placed before the label text."}}}},d={args:{variant:"primary",size:"md",dot:!1},render:e=>o`<btu-badge variant="${e.variant}" size="${e.size}">
32
+ <div
33
+ class="-ms-[--badge-pad-x] aspect-square w-[20px] bg-cover bg-center bg-no-repeat [clipPath:circle(50%_at_center)]"
34
+ style="background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjM1IDY1MCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KPGRlZnM+DQo8ZyBpZD0idW5pb24iPg0KPHVzZSB5PSItLjIxNiIgeGxpbms6aHJlZj0iI3g0Ii8+DQo8dXNlIHhsaW5rOmhyZWY9IiN4NCIvPg0KPHVzZSB5PSIuMjE2IiB4bGluazpocmVmPSIjczYiLz4NCjwvZz4NCjxnIGlkPSJ4NCI+DQo8dXNlIHhsaW5rOmhyZWY9IiNzNiIvPg0KPHVzZSB5PSIuMDU0IiB4bGluazpocmVmPSIjczUiLz4NCjx1c2UgeT0iLjEwOCIgeGxpbms6aHJlZj0iI3M2Ii8+DQo8dXNlIHk9Ii4xNjIiIHhsaW5rOmhyZWY9IiNzNSIvPg0KPC9nPg0KPGcgaWQ9InM1Ij4NCjx1c2UgeD0iLS4yNTIiIHhsaW5rOmhyZWY9IiNzdGFyIi8+DQo8dXNlIHg9Ii0uMTI2IiB4bGluazpocmVmPSIjc3RhciIvPg0KPHVzZSB4bGluazpocmVmPSIjc3RhciIvPg0KPHVzZSB4PSIuMTI2IiB4bGluazpocmVmPSIjc3RhciIvPg0KPHVzZSB4PSIuMjUyIiB4bGluazpocmVmPSIjc3RhciIvPg0KPC9nPg0KPGcgaWQ9InM2Ij4NCjx1c2UgeD0iLS4wNjMiIHhsaW5rOmhyZWY9IiNzNSIvPg0KPHVzZSB4PSIuMzE1IiB4bGluazpocmVmPSIjc3RhciIvPg0KPC9nPg0KPGcgaWQ9InN0YXIiPg0KPHVzZSB4bGluazpocmVmPSIjcHQiIHRyYW5zZm9ybT0ibWF0cml4KC0uODA5MDIgLS41ODc3OSAuNTg3NzkgLS44MDkwMiAwIDApIi8+DQo8dXNlIHhsaW5rOmhyZWY9IiNwdCIgdHJhbnNmb3JtPSJtYXRyaXgoLjMwOTAyIC0uOTUxMDYgLjk1MTA2IC4zMDkwMiAwIDApIi8+DQo8dXNlIHhsaW5rOmhyZWY9IiNwdCIvPg0KPHVzZSB4bGluazpocmVmPSIjcHQiIHRyYW5zZm9ybT0icm90YXRlKDcyKSIvPg0KPHVzZSB4bGluazpocmVmPSIjcHQiIHRyYW5zZm9ybT0icm90YXRlKDE0NCkiLz4NCjwvZz4NCjxwYXRoIGZpbGw9IiNmZmYiIGlkPSJwdCIgZD0iTS0uMTYyNSwwIDAtLjUgLjE2MjUsMHoiIHRyYW5zZm9ybT0ic2NhbGUoLjA2MTYpIi8+DQo8cGF0aCBmaWxsPSIjYmYwYTMwIiBpZD0ic3RyaXBlIiBkPSJtMCwwaDEyMzV2NTBoLTEyMzV6Ii8+DQo8L2RlZnM+DQo8cGF0aCBmaWxsPSIjZmZmIiBkPSJtMCwwaDEyMzV2NjUwaC0xMjM1eiIvPg0KPHVzZSB4bGluazpocmVmPSIjc3RyaXBlIi8+DQo8dXNlIHk9IjEwMCIgeGxpbms6aHJlZj0iI3N0cmlwZSIvPg0KPHVzZSB5PSIyMDAiIHhsaW5rOmhyZWY9IiNzdHJpcGUiLz4NCjx1c2UgeT0iMzAwIiB4bGluazpocmVmPSIjc3RyaXBlIi8+DQo8dXNlIHk9IjQwMCIgeGxpbms6aHJlZj0iI3N0cmlwZSIvPg0KPHVzZSB5PSI1MDAiIHhsaW5rOmhyZWY9IiNzdHJpcGUiLz4NCjx1c2UgeT0iNjAwIiB4bGluazpocmVmPSIjc3RyaXBlIi8+DQo8cGF0aCBmaWxsPSIjMDAyODY4IiBkPSJtMCwwaDQ5NHYzNTBoLTQ5NHoiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3VuaW9uIiB0cmFuc2Zvcm09Im1hdHJpeCg2NTAgMCAwIDY1MCAyNDcgMTc1KSIvPg0KPC9zdmc+DQo=')"
35
+ aria-label="Flag"
36
+ ></div>
37
+ United States
38
+ </btu-badge>`,parameters:{docs:{description:{story:"Badges can include images like avatars or flags. This example shows a flag icon rendered as a background image on a div element alongside label text."}}}};t.parameters={...t.parameters,docs:{...t.parameters?.docs,source:{originalSource:`{
39
+ args: {}
40
+ }`,...t.parameters?.docs?.source}}};r.parameters={...r.parameters,docs:{...r.parameters?.docs,source:{originalSource:`{
41
+ args: {
42
+ variant: 'primary',
43
+ size: 'lg',
44
+ customBackgroundColor: '#dce34d',
45
+ customForegroundColor: '#a04b4b'
46
+ },
47
+ parameters: {
48
+ docs: {
49
+ description: {
50
+ story: \`Badge supports custom colors using the CSS custom properties that override theme colors \\\`--badge-color-background\\\` and \\\`--badge-color-foreground\\\`.\`
51
+ }
52
+ }
53
+ }
54
+ }`,...r.parameters?.docs?.source}}};s.parameters={...s.parameters,docs:{...s.parameters?.docs,source:{originalSource:`{
55
+ args: {
56
+ variant: 'success',
57
+ size: 'lg'
58
+ },
59
+ render: args => html\`<a href="#" class="hover:text-primary inline-flex items-center gap-2 hover:underline">
60
+ Hover over me to see the
61
+ <btu-badge variant="\${args.variant}" size="\${args.size}">Linked Badge</btu-badge>
62
+ in action.
63
+ </a>\`,
64
+ parameters: {
65
+ docs: {
66
+ description: {
67
+ story: \`Badges inside anchor elements automatically handle underlines properly. The underline uses the badge background color instead of the default link color, ensuring proper visual hierarchy when badges are used within linked elements.\`
68
+ }
69
+ }
70
+ }
71
+ }`,...s.parameters?.docs?.source}}};n.parameters={...n.parameters,docs:{...n.parameters?.docs,source:{originalSource:`{
72
+ render: () => html\`<div class="flex items-center gap-4">
73
+ <btu-badge variant="primary" size="md" shape="pill">Pill</btu-badge>
74
+ <btu-badge variant="success" size="md" shape="rect">Rectangle</btu-badge>
75
+ </div>\`,
76
+ parameters: {
77
+ docs: {
78
+ description: {
79
+ story: \`Badges support two shape variants: pill (default with rounded ends) and rect (rectangle with square corners). A circle shape can be accomplished by using pill and setting equal width and height via custom CSS properties, but you should probably be using a notification component instead.\`
80
+ }
81
+ }
82
+ }
83
+ }`,...n.parameters?.docs?.source}}};c.parameters={...c.parameters,docs:{...c.parameters?.docs,source:{originalSource:`{
84
+ args: {
85
+ variant: 'warning',
86
+ size: 'md',
87
+ dot: false
88
+ },
89
+ render: args => html\`<btu-badge variant="\${args.variant}" size="\${args.size}">
90
+ <div aria-label="warning icon" class="before:btu-icon before:btu-icon-md before:btu-icon-triangle-alert"></div>
91
+ Warning
92
+ </btu-badge>\`,
93
+ parameters: {
94
+ docs: {
95
+ description: {
96
+ story: \`Badges can have other children besides text. Place an icon element inside the badge along with your label text. The icon will automatically be placed to fit within the badge layout. Icons should always be placed before the label text.\`
97
+ }
98
+ }
99
+ }
100
+ }`,...c.parameters?.docs?.source}}};d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`{
101
+ args: {
102
+ variant: 'primary',
103
+ size: 'md',
104
+ dot: false
105
+ },
106
+ render: args => html\`<btu-badge variant="\${args.variant}" size="\${args.size}">
107
+ <div
108
+ class="-ms-[--badge-pad-x] aspect-square w-[20px] bg-cover bg-center bg-no-repeat [clipPath:circle(50%_at_center)]"
109
+ style="background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjM1IDY1MCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KPGRlZnM+DQo8ZyBpZD0idW5pb24iPg0KPHVzZSB5PSItLjIxNiIgeGxpbms6aHJlZj0iI3g0Ii8+DQo8dXNlIHhsaW5rOmhyZWY9IiN4NCIvPg0KPHVzZSB5PSIuMjE2IiB4bGluazpocmVmPSIjczYiLz4NCjwvZz4NCjxnIGlkPSJ4NCI+DQo8dXNlIHhsaW5rOmhyZWY9IiNzNiIvPg0KPHVzZSB5PSIuMDU0IiB4bGluazpocmVmPSIjczUiLz4NCjx1c2UgeT0iLjEwOCIgeGxpbms6aHJlZj0iI3M2Ii8+DQo8dXNlIHk9Ii4xNjIiIHhsaW5rOmhyZWY9IiNzNSIvPg0KPC9nPg0KPGcgaWQ9InM1Ij4NCjx1c2UgeD0iLS4yNTIiIHhsaW5rOmhyZWY9IiNzdGFyIi8+DQo8dXNlIHg9Ii0uMTI2IiB4bGluazpocmVmPSIjc3RhciIvPg0KPHVzZSB4bGluazpocmVmPSIjc3RhciIvPg0KPHVzZSB4PSIuMTI2IiB4bGluazpocmVmPSIjc3RhciIvPg0KPHVzZSB4PSIuMjUyIiB4bGluazpocmVmPSIjc3RhciIvPg0KPC9nPg0KPGcgaWQ9InM2Ij4NCjx1c2UgeD0iLS4wNjMiIHhsaW5rOmhyZWY9IiNzNSIvPg0KPHVzZSB4PSIuMzE1IiB4bGluazpocmVmPSIjc3RhciIvPg0KPC9nPg0KPGcgaWQ9InN0YXIiPg0KPHVzZSB4bGluazpocmVmPSIjcHQiIHRyYW5zZm9ybT0ibWF0cml4KC0uODA5MDIgLS41ODc3OSAuNTg3NzkgLS44MDkwMiAwIDApIi8+DQo8dXNlIHhsaW5rOmhyZWY9IiNwdCIgdHJhbnNmb3JtPSJtYXRyaXgoLjMwOTAyIC0uOTUxMDYgLjk1MTA2IC4zMDkwMiAwIDApIi8+DQo8dXNlIHhsaW5rOmhyZWY9IiNwdCIvPg0KPHVzZSB4bGluazpocmVmPSIjcHQiIHRyYW5zZm9ybT0icm90YXRlKDcyKSIvPg0KPHVzZSB4bGluazpocmVmPSIjcHQiIHRyYW5zZm9ybT0icm90YXRlKDE0NCkiLz4NCjwvZz4NCjxwYXRoIGZpbGw9IiNmZmYiIGlkPSJwdCIgZD0iTS0uMTYyNSwwIDAtLjUgLjE2MjUsMHoiIHRyYW5zZm9ybT0ic2NhbGUoLjA2MTYpIi8+DQo8cGF0aCBmaWxsPSIjYmYwYTMwIiBpZD0ic3RyaXBlIiBkPSJtMCwwaDEyMzV2NTBoLTEyMzV6Ii8+DQo8L2RlZnM+DQo8cGF0aCBmaWxsPSIjZmZmIiBkPSJtMCwwaDEyMzV2NjUwaC0xMjM1eiIvPg0KPHVzZSB4bGluazpocmVmPSIjc3RyaXBlIi8+DQo8dXNlIHk9IjEwMCIgeGxpbms6aHJlZj0iI3N0cmlwZSIvPg0KPHVzZSB5PSIyMDAiIHhsaW5rOmhyZWY9IiNzdHJpcGUiLz4NCjx1c2UgeT0iMzAwIiB4bGluazpocmVmPSIjc3RyaXBlIi8+DQo8dXNlIHk9IjQwMCIgeGxpbms6aHJlZj0iI3N0cmlwZSIvPg0KPHVzZSB5PSI1MDAiIHhsaW5rOmhyZWY9IiNzdHJpcGUiLz4NCjx1c2UgeT0iNjAwIiB4bGluazpocmVmPSIjc3RyaXBlIi8+DQo8cGF0aCBmaWxsPSIjMDAyODY4IiBkPSJtMCwwaDQ5NHYzNTBoLTQ5NHoiLz4NCjx1c2UgeGxpbms6aHJlZj0iI3VuaW9uIiB0cmFuc2Zvcm09Im1hdHJpeCg2NTAgMCAwIDY1MCAyNDcgMTc1KSIvPg0KPC9zdmc+DQo=')"
110
+ aria-label="Flag"
111
+ ></div>
112
+ United States
113
+ </btu-badge>\`,
114
+ parameters: {
115
+ docs: {
116
+ description: {
117
+ story: \`Badges can include images like avatars or flags. This example shows a flag icon rendered as a background image on a div element alongside label text.\`
118
+ }
119
+ }
120
+ }
121
+ }`,...d.parameters?.docs?.source}}};const z=["Default","CustomColors","InsideAnchor","DifferentShapes","WithIcon","WithImage"];export{r as CustomColors,t as Default,n as DifferentShapes,s as InsideAnchor,c as WithIcon,d as WithImage,z as __namedExportsOrder,h as default};
@@ -1,4 +1,4 @@
1
- import{x as v}from"./iframe-KLSeZXhG.js";import"./preload-helper-PPVm8Dsz.js";const I=({color:r="primary",pressed:a,fill:i,contained:c,outlined:l,size:d="sm",label:u,icon:b,hideText:p,disabled:m})=>{const g=i?"":"btu-button-fill-none",y=c?"":"btu-button-container-none",h=l?"btu-button-outline":"",f=p?"btu-button-text-hidden":"",x=b?["before:btu-icon","before:btu-icon-smile"]:[];return v`
1
+ import{x as v}from"./iframe-zcxd989B.js";import"./preload-helper-PPVm8Dsz.js";const I=({color:r="primary",pressed:a,fill:i,contained:c,outlined:l,size:d="sm",label:u,icon:b,hideText:p,disabled:m})=>{const g=i?"":"btu-button-fill-none",y=c?"":"btu-button-container-none",h=l?"btu-button-outline":"",f=p?"btu-button-text-hidden":"",x=b?["before:btu-icon","before:btu-icon-smile"]:[];return v`
2
2
  <button
3
3
  type="button"
4
4
  class=${["btu-button",`btu-button-${r}`,`btu-button-${d}`,g,y,h,f,...x].join(" ")}