@brandsync/wc 1.1.0 → 1.3.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 (214) hide show
  1. package/custom-elements.json +586 -0
  2. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  3. package/dist/brandsync-wc/p-03676f8a.entry.js +1 -0
  4. package/dist/brandsync-wc/{p-0a2d690f.entry.js → p-04c26826.entry.js} +1 -1
  5. package/dist/brandsync-wc/{p-a7704457.entry.js → p-0c8050e8.entry.js} +1 -1
  6. package/dist/brandsync-wc/p-0d5cc77f.entry.js +1 -0
  7. package/dist/brandsync-wc/{p-3e61d206.entry.js → p-19c98e13.entry.js} +1 -1
  8. package/dist/brandsync-wc/{p-31b28025.entry.js → p-23758f81.entry.js} +1 -1
  9. package/dist/brandsync-wc/{p-5321186f.entry.js → p-29c360f3.entry.js} +1 -1
  10. package/dist/brandsync-wc/{p-696f885c.entry.js → p-35d98580.entry.js} +1 -1
  11. package/dist/brandsync-wc/p-39204377.entry.js +1 -0
  12. package/dist/brandsync-wc/p-5a4db480.entry.js +1 -0
  13. package/dist/brandsync-wc/{p-0cf117f4.entry.js → p-5d118af1.entry.js} +1 -1
  14. package/dist/brandsync-wc/{p-c76ca89f.entry.js → p-76d391d7.entry.js} +1 -1
  15. package/dist/brandsync-wc/{p-aa1cc2b6.entry.js → p-7de20530.entry.js} +1 -1
  16. package/dist/brandsync-wc/{p-32fe390d.entry.js → p-7ea0133f.entry.js} +1 -1
  17. package/dist/brandsync-wc/{p-778fcc55.entry.js → p-8acb623e.entry.js} +1 -1
  18. package/dist/brandsync-wc/{p-63906504.entry.js → p-8ec95da5.entry.js} +1 -1
  19. package/dist/brandsync-wc/{p-0921ca0d.entry.js → p-94266d72.entry.js} +1 -1
  20. package/dist/brandsync-wc/{p-6ef0a0ed.entry.js → p-96d1ce21.entry.js} +1 -1
  21. package/dist/brandsync-wc/{p-c7427962.entry.js → p-9ad278f4.entry.js} +1 -1
  22. package/dist/brandsync-wc/{p-ac12372f.entry.js → p-9f9c1a1d.entry.js} +1 -1
  23. package/dist/brandsync-wc/{p-579fbe4d.entry.js → p-b2704450.entry.js} +1 -1
  24. package/dist/brandsync-wc/{p-82953f42.entry.js → p-bcafba87.entry.js} +1 -1
  25. package/dist/brandsync-wc/p-bd2cc2c6.entry.js +1 -0
  26. package/dist/brandsync-wc/{p-2e7586dd.entry.js → p-be675b82.entry.js} +1 -1
  27. package/dist/brandsync-wc/{p-790fadf9.entry.js → p-bf4a5b1b.entry.js} +1 -1
  28. package/dist/brandsync-wc/{p-1abacfe8.entry.js → p-c4a16564.entry.js} +1 -1
  29. package/dist/brandsync-wc/{p-393efb5d.entry.js → p-cd703364.entry.js} +1 -1
  30. package/dist/brandsync-wc/{p-c7b9a5c7.entry.js → p-d589fa72.entry.js} +1 -1
  31. package/dist/brandsync-wc/{p-6fc78ccf.entry.js → p-d5d15d9f.entry.js} +1 -1
  32. package/dist/brandsync-wc/{p-bb2ec290.entry.js → p-e58b1dbb.entry.js} +1 -1
  33. package/dist/brandsync-wc/{p-3e8728dc.entry.js → p-eae7587e.entry.js} +1 -1
  34. package/dist/brandsync-wc/{p-cff188cb.entry.js → p-f196642a.entry.js} +1 -1
  35. package/dist/cjs/brandsync-wc.cjs.js +1 -1
  36. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +1 -1
  37. package/dist/cjs/bs-ai-greeting.cjs.entry.js +1 -1
  38. package/dist/cjs/bs-ai-thinking.cjs.entry.js +1 -1
  39. package/dist/cjs/bs-attachment-list.cjs.entry.js +1 -1
  40. package/dist/cjs/bs-breadcrumbs.cjs.entry.js +1 -1
  41. package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
  42. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +1 -1
  43. package/dist/cjs/bs-chatbot-header.cjs.entry.js +1 -1
  44. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +1 -1
  45. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +1 -1
  46. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +1 -1
  47. package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +1 -1
  48. package/dist/cjs/bs-inline-tab.cjs.entry.js +1 -1
  49. package/dist/cjs/bs-input.cjs.entry.js +2 -2
  50. package/dist/cjs/bs-menu-item.cjs.entry.js +1 -1
  51. package/dist/cjs/bs-menu.cjs.entry.js +1 -1
  52. package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +1 -1
  53. package/dist/cjs/bs-navigation-drawer.cjs.entry.js +1 -1
  54. package/dist/cjs/bs-pagination.cjs.entry.js +1 -1
  55. package/dist/cjs/bs-progress-linear.cjs.entry.js +65 -0
  56. package/dist/cjs/bs-progress.cjs.entry.js +69 -0
  57. package/dist/cjs/bs-radio.cjs.entry.js +1 -1
  58. package/dist/cjs/bs-slider.cjs.entry.js +1 -1
  59. package/dist/cjs/bs-snackbar.cjs.entry.js +1 -1
  60. package/dist/cjs/bs-source-link.cjs.entry.js +2 -2
  61. package/dist/cjs/bs-stepper-step.cjs.entry.js +1 -1
  62. package/dist/cjs/bs-stepper.cjs.entry.js +1 -1
  63. package/dist/cjs/bs-switch.cjs.entry.js +1 -1
  64. package/dist/cjs/bs-tab.cjs.entry.js +1 -1
  65. package/dist/cjs/bs-tabs.cjs.entry.js +1 -1
  66. package/dist/cjs/bs-toast.cjs.entry.js +45 -0
  67. package/dist/cjs/bs-tooltip.cjs.entry.js +1 -1
  68. package/dist/cjs/loader.cjs.js +1 -1
  69. package/dist/collection/collection-manifest.json +3 -0
  70. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
  71. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
  72. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
  73. package/dist/collection/components/bs-attachment/bs-attachment.js +1 -1
  74. package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
  75. package/dist/collection/components/bs-avatar/bs-avatar.js +2 -2
  76. package/dist/collection/components/bs-badge/bs-badge.js +1 -1
  77. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.js +1 -1
  78. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.js +1 -1
  79. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
  80. package/dist/collection/components/bs-button/bs-button/bs-button.js +2 -2
  81. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +2 -2
  82. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
  83. package/dist/collection/components/bs-card/bs-card.js +1 -1
  84. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
  85. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
  86. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
  87. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
  88. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
  89. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
  90. package/dist/collection/components/bs-checkbox/bs-checkbox.js +1 -1
  91. package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.js +1 -1
  92. package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.js +2 -2
  93. package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.js +1 -1
  94. package/dist/collection/components/bs-composer/bs-composer.js +2 -2
  95. package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +1 -1
  96. package/dist/collection/components/bs-data-table/bs-data-table.js +4 -4
  97. package/dist/collection/components/bs-dialog/bs-dialog.js +1 -1
  98. package/dist/collection/components/bs-input/bs-input.js +2 -2
  99. package/dist/collection/components/bs-logo/bs-logo.js +2 -2
  100. package/dist/collection/components/bs-menu/bs-menu.js +1 -1
  101. package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
  102. package/dist/collection/components/bs-pagination/bs-pagination.js +1 -1
  103. package/dist/collection/components/bs-progress/bs-progress.cmp.test.js +96 -0
  104. package/dist/collection/components/bs-progress/bs-progress.css +119 -0
  105. package/dist/collection/components/bs-progress/bs-progress.js +212 -0
  106. package/dist/collection/components/bs-progress/bs-progress.stories.js +72 -0
  107. package/dist/collection/components/bs-progress-linear/bs-progress-linear.cmp.test.js +92 -0
  108. package/dist/collection/components/bs-progress-linear/bs-progress-linear.css +108 -0
  109. package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +192 -0
  110. package/dist/collection/components/bs-progress-linear/bs-progress-linear.stories.js +66 -0
  111. package/dist/collection/components/bs-radio/bs-radio.js +1 -1
  112. package/dist/collection/components/bs-slider/bs-slider.js +2 -2
  113. package/dist/collection/components/bs-snackbar/bs-snackbar.js +2 -2
  114. package/dist/collection/components/bs-source-link/bs-source-link.js +2 -2
  115. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +1 -1
  116. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +3 -3
  117. package/dist/collection/components/bs-switch/bs-switch.js +2 -2
  118. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +1 -1
  119. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +2 -2
  120. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +3 -3
  121. package/dist/collection/components/bs-toast/bs-toast.cmp.test.js +59 -0
  122. package/dist/collection/components/bs-toast/bs-toast.css +151 -0
  123. package/dist/collection/components/bs-toast/bs-toast.js +108 -0
  124. package/dist/collection/components/bs-toast/bs-toast.stories.js +39 -0
  125. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  126. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +1 -1
  127. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
  128. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +1 -1
  129. package/dist/components/bs-ai-disclaimer.js +1 -1
  130. package/dist/components/bs-ai-greeting.js +1 -1
  131. package/dist/components/bs-ai-thinking.js +1 -1
  132. package/dist/components/bs-attachment-list.js +1 -1
  133. package/dist/components/bs-breadcrumb-overflow.js +1 -1
  134. package/dist/components/bs-breadcrumbs.js +1 -1
  135. package/dist/components/bs-button-skeleton.js +1 -1
  136. package/dist/components/bs-chatbot-feedback.js +1 -1
  137. package/dist/components/bs-chatbot-header.js +1 -1
  138. package/dist/components/bs-chatbot-response-action.js +1 -1
  139. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  140. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  141. package/dist/components/bs-checkbox-skeleton.js +1 -1
  142. package/dist/components/bs-inline-tab.js +1 -1
  143. package/dist/components/bs-input.js +1 -1
  144. package/dist/components/bs-menu-item.js +1 -1
  145. package/dist/components/bs-menu.js +1 -1
  146. package/dist/components/bs-navigation-drawer-item.js +1 -1
  147. package/dist/components/bs-navigation-drawer.js +1 -1
  148. package/dist/components/bs-pagination.js +1 -1
  149. package/dist/components/bs-progress-linear.d.ts +11 -0
  150. package/dist/components/bs-progress-linear.js +1 -0
  151. package/dist/components/bs-progress.d.ts +11 -0
  152. package/dist/components/bs-progress.js +1 -0
  153. package/dist/components/bs-radio.js +1 -1
  154. package/dist/components/bs-slider.js +1 -1
  155. package/dist/components/bs-snackbar.js +1 -1
  156. package/dist/components/bs-source-link.js +1 -1
  157. package/dist/components/bs-stepper-step.js +1 -1
  158. package/dist/components/bs-stepper.js +1 -1
  159. package/dist/components/bs-switch.js +1 -1
  160. package/dist/components/bs-tab.js +1 -1
  161. package/dist/components/bs-tabs.js +1 -1
  162. package/dist/components/bs-toast.d.ts +11 -0
  163. package/dist/components/bs-toast.js +1 -0
  164. package/dist/components/bs-tooltip.js +1 -1
  165. package/dist/components/{p-Bb6vh9PN.js → p-BIgPiuc-.js} +1 -1
  166. package/dist/components/{p-BFVUq5m5.js → p-BUtz3sub.js} +1 -1
  167. package/dist/components/{p-BPUNjzjH.js → p-Rn1IWs8l.js} +1 -1
  168. package/dist/esm/brandsync-wc.js +1 -1
  169. package/dist/esm/bs-ai-disclaimer.entry.js +1 -1
  170. package/dist/esm/bs-ai-greeting.entry.js +1 -1
  171. package/dist/esm/bs-ai-thinking.entry.js +1 -1
  172. package/dist/esm/bs-attachment-list.entry.js +1 -1
  173. package/dist/esm/bs-breadcrumbs.entry.js +1 -1
  174. package/dist/esm/bs-button-skeleton.entry.js +1 -1
  175. package/dist/esm/bs-chatbot-feedback.entry.js +1 -1
  176. package/dist/esm/bs-chatbot-header.entry.js +1 -1
  177. package/dist/esm/bs-chatbot-response-action.entry.js +1 -1
  178. package/dist/esm/bs-chatbot-sources-drawer.entry.js +1 -1
  179. package/dist/esm/bs-chatbot-suggestion-button.entry.js +1 -1
  180. package/dist/esm/bs-checkbox-skeleton.entry.js +1 -1
  181. package/dist/esm/bs-inline-tab.entry.js +1 -1
  182. package/dist/esm/bs-input.entry.js +2 -2
  183. package/dist/esm/bs-menu-item.entry.js +1 -1
  184. package/dist/esm/bs-menu.entry.js +1 -1
  185. package/dist/esm/bs-navigation-drawer-item.entry.js +1 -1
  186. package/dist/esm/bs-navigation-drawer.entry.js +1 -1
  187. package/dist/esm/bs-pagination.entry.js +1 -1
  188. package/dist/esm/bs-progress-linear.entry.js +63 -0
  189. package/dist/esm/bs-progress.entry.js +67 -0
  190. package/dist/esm/bs-radio.entry.js +1 -1
  191. package/dist/esm/bs-slider.entry.js +1 -1
  192. package/dist/esm/bs-snackbar.entry.js +1 -1
  193. package/dist/esm/bs-source-link.entry.js +2 -2
  194. package/dist/esm/bs-stepper-step.entry.js +1 -1
  195. package/dist/esm/bs-stepper.entry.js +1 -1
  196. package/dist/esm/bs-switch.entry.js +1 -1
  197. package/dist/esm/bs-tab.entry.js +1 -1
  198. package/dist/esm/bs-tabs.entry.js +1 -1
  199. package/dist/esm/bs-toast.entry.js +43 -0
  200. package/dist/esm/bs-tooltip.entry.js +1 -1
  201. package/dist/esm/loader.js +1 -1
  202. package/dist/types/components/bs-progress/bs-progress.cmp.test.d.ts +1 -0
  203. package/dist/types/components/bs-progress/bs-progress.d.ts +46 -0
  204. package/dist/types/components/bs-progress/bs-progress.stories.d.ts +18 -0
  205. package/dist/types/components/bs-progress-linear/bs-progress-linear.cmp.test.d.ts +1 -0
  206. package/dist/types/components/bs-progress-linear/bs-progress-linear.d.ts +50 -0
  207. package/dist/types/components/bs-progress-linear/bs-progress-linear.stories.d.ts +17 -0
  208. package/dist/types/components/bs-toast/bs-toast.cmp.test.d.ts +1 -0
  209. package/dist/types/components/bs-toast/bs-toast.d.ts +27 -0
  210. package/dist/types/components/bs-toast/bs-toast.stories.d.ts +12 -0
  211. package/dist/types/components.d.ts +320 -0
  212. package/package.json +1 -1
  213. package/dist/brandsync-wc/p-cc9f85d6.entry.js +0 -1
  214. package/dist/brandsync-wc/p-e230ed08.entry.js +0 -1
@@ -0,0 +1,192 @@
1
+ import { h } from "@stencil/core";
2
+ /**
3
+ * A linear (horizontal) progress indicator -- either a static bar showing a percentage fill
4
+ * (`type="determinate"`) or a continuously sliding bar signaling in-progress work with no known
5
+ * completion percentage (`type="indeterminate"`).
6
+ *
7
+ * ## When to use
8
+ * - Showing the progress of a task with a known, quantifiable completion percentage (`determinate`),
9
+ * e.g. a file upload.
10
+ * - Signaling that work is happening in the background with no meaningful percentage to report
11
+ * (`indeterminate`), e.g. while waiting on a network response.
12
+ *
13
+ * ## When not to use
14
+ * - For a compact, ring-shaped progress indicator -- use `bs-progress` (circular) instead.
15
+ * - For a percentage that's better expressed as plain text, without the reserved space and visual
16
+ * weight of a bar.
17
+ *
18
+ * @slot - Free-form label content rendered below the bar (e.g. "Uploading..."), gated by
19
+ * `showLabel`. Unlike `bs-progress`'s label, this is not a computed `${value}%` string -- it's
20
+ * consumer-supplied content, per the Figma spec's free-text "Label" placeholder.
21
+ * @part container - The outer wrapper (bar + optional label).
22
+ * @part track - The background track bar.
23
+ * @part fill - The colored progress/sliding fill bar.
24
+ * @part label - The label wrapper (only rendered when `showLabel` is true and slotted content exists).
25
+ */
26
+ export class BsProgressLinear {
27
+ el;
28
+ /** Whether the default slot currently has any real (non-whitespace) content -- the label
29
+ * wrapper is only rendered when `showLabel` is true AND slotted content exists, so an empty
30
+ * label never reserves visual space/line-height for nothing. Recomputed on `slotchange`. */
31
+ hasLabelContent = false;
32
+ /** `determinate` renders a static fill reflecting `value`; `indeterminate` renders a
33
+ * continuously sliding gradient bar and ignores `value`. */
34
+ type = 'determinate';
35
+ /** Bar height: `small` (4px) or `large` (8px). */
36
+ size = 'large';
37
+ /** Progress percentage, `0`-`100`. Only meaningful for `type="determinate"` -- ignored (and
38
+ * never rendered) for `type="indeterminate"`. Out-of-range values are clamped defensively. */
39
+ value = 0;
40
+ /** Shows the slotted label below the bar. When `false`, or when no content is slotted, the
41
+ * label wrapper isn't rendered at all. Defaults to `true`. */
42
+ showLabel = true;
43
+ get clampedValue() {
44
+ return Math.min(100, Math.max(0, this.value));
45
+ }
46
+ render() {
47
+ const isDeterminate = this.type === 'determinate';
48
+ const value = this.clampedValue;
49
+ return (h("div", { key: '5c8e982bad03ed994700f3021a2304f4b51b3f4a', part: "container", class: "bs-progress-linear" }, h("div", { key: 'e2327781cdfbec66cee4a09a0d518cd71f9a8fb7', part: "track", class: `bs-progress-linear__track bs-progress-linear__track--${this.size}`, role: "progressbar", "aria-valuemin": isDeterminate ? '0' : undefined, "aria-valuemax": isDeterminate ? '100' : undefined, "aria-valuenow": isDeterminate ? String(value) : undefined, "aria-busy": isDeterminate ? undefined : 'true' }, isDeterminate ? (h("div", { part: "fill", class: "bs-progress-linear__fill", style: { width: `${value}%` } })) : (
50
+ // Figma's indeterminate bar is a soft "comet" gradient segment (transparent -> blue ->
51
+ // transparent) sliding left-to-right across the track's full width in a loop -- the
52
+ // same fade concept as bs-progress's indeterminate ring's conic-gradient comet tail,
53
+ // but along a straight line via a linear-gradient + `transform: translateX(...)`
54
+ // keyframe animation instead of a rotating conic-gradient.
55
+ h("div", { part: "fill", class: "bs-progress-linear__fill bs-progress-linear__fill--indeterminate" }))), this.showLabel && this.hasLabelContent && (h("span", { key: 'adbb34071dedfe8e164f1cf208e95c7f1f241399', part: "label", class: "bs-progress-linear__label" }, h("slot", { key: '74020827d39b5d7d38feee377058c434f7e78f11' })))));
56
+ }
57
+ // The default slot's assigned content lives in the host's light DOM regardless of whether a
58
+ // <slot> is currently rendered in the shadow tree, so this can be computed directly from the
59
+ // host's childNodes -- no need to render an always-present hidden <slot> just to observe it.
60
+ componentWillLoad() {
61
+ this.updateLabelVisibility();
62
+ this.mutationObserver = new MutationObserver(() => this.updateLabelVisibility());
63
+ this.mutationObserver.observe(this.el, { childList: true, characterData: true, subtree: true });
64
+ }
65
+ disconnectedCallback() {
66
+ this.mutationObserver?.disconnect();
67
+ }
68
+ mutationObserver;
69
+ updateLabelVisibility() {
70
+ this.hasLabelContent = Array.from(this.el.childNodes).some(node => {
71
+ if (node.nodeType === Node.TEXT_NODE)
72
+ return (node.textContent ?? '').trim().length > 0;
73
+ if (node.nodeType === Node.ELEMENT_NODE)
74
+ return true;
75
+ return false;
76
+ });
77
+ }
78
+ static get is() { return "bs-progress-linear"; }
79
+ static get encapsulation() { return "shadow"; }
80
+ static get originalStyleUrls() {
81
+ return {
82
+ "$": ["bs-progress-linear.css"]
83
+ };
84
+ }
85
+ static get styleUrls() {
86
+ return {
87
+ "$": ["bs-progress-linear.css"]
88
+ };
89
+ }
90
+ static get properties() {
91
+ return {
92
+ "type": {
93
+ "type": "string",
94
+ "mutable": false,
95
+ "complexType": {
96
+ "original": "BsProgressLinearType",
97
+ "resolved": "\"determinate\" | \"indeterminate\"",
98
+ "references": {
99
+ "BsProgressLinearType": {
100
+ "location": "local",
101
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-progress-linear/bs-progress-linear.tsx",
102
+ "id": "src/components/bs-progress-linear/bs-progress-linear.tsx::BsProgressLinearType"
103
+ }
104
+ }
105
+ },
106
+ "required": false,
107
+ "optional": false,
108
+ "docs": {
109
+ "tags": [],
110
+ "text": "`determinate` renders a static fill reflecting `value`; `indeterminate` renders a\ncontinuously sliding gradient bar and ignores `value`."
111
+ },
112
+ "getter": false,
113
+ "setter": false,
114
+ "reflect": false,
115
+ "attribute": "type",
116
+ "defaultValue": "'determinate'"
117
+ },
118
+ "size": {
119
+ "type": "string",
120
+ "mutable": false,
121
+ "complexType": {
122
+ "original": "BsProgressLinearSize",
123
+ "resolved": "\"large\" | \"small\"",
124
+ "references": {
125
+ "BsProgressLinearSize": {
126
+ "location": "local",
127
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-progress-linear/bs-progress-linear.tsx",
128
+ "id": "src/components/bs-progress-linear/bs-progress-linear.tsx::BsProgressLinearSize"
129
+ }
130
+ }
131
+ },
132
+ "required": false,
133
+ "optional": false,
134
+ "docs": {
135
+ "tags": [],
136
+ "text": "Bar height: `small` (4px) or `large` (8px)."
137
+ },
138
+ "getter": false,
139
+ "setter": false,
140
+ "reflect": false,
141
+ "attribute": "size",
142
+ "defaultValue": "'large'"
143
+ },
144
+ "value": {
145
+ "type": "number",
146
+ "mutable": false,
147
+ "complexType": {
148
+ "original": "number",
149
+ "resolved": "number",
150
+ "references": {}
151
+ },
152
+ "required": false,
153
+ "optional": false,
154
+ "docs": {
155
+ "tags": [],
156
+ "text": "Progress percentage, `0`-`100`. Only meaningful for `type=\"determinate\"` -- ignored (and\nnever rendered) for `type=\"indeterminate\"`. Out-of-range values are clamped defensively."
157
+ },
158
+ "getter": false,
159
+ "setter": false,
160
+ "reflect": false,
161
+ "attribute": "value",
162
+ "defaultValue": "0"
163
+ },
164
+ "showLabel": {
165
+ "type": "boolean",
166
+ "mutable": false,
167
+ "complexType": {
168
+ "original": "boolean",
169
+ "resolved": "boolean",
170
+ "references": {}
171
+ },
172
+ "required": false,
173
+ "optional": false,
174
+ "docs": {
175
+ "tags": [],
176
+ "text": "Shows the slotted label below the bar. When `false`, or when no content is slotted, the\nlabel wrapper isn't rendered at all. Defaults to `true`."
177
+ },
178
+ "getter": false,
179
+ "setter": false,
180
+ "reflect": false,
181
+ "attribute": "show-label",
182
+ "defaultValue": "true"
183
+ }
184
+ };
185
+ }
186
+ static get states() {
187
+ return {
188
+ "hasLabelContent": {}
189
+ };
190
+ }
191
+ static get elementRef() { return "el"; }
192
+ }
@@ -0,0 +1,66 @@
1
+ import { html } from "lit";
2
+ import { componentDescription, propDescription } from "../../stories-utils";
3
+ const types = ['determinate', 'indeterminate'];
4
+ const sizes = ['small', 'large'];
5
+ const meta = {
6
+ title: 'Components/bs-progress/Linear',
7
+ parameters: { docs: { description: { component: componentDescription('bs-progress-linear') } } },
8
+ render: args => html `
9
+ <bs-progress-linear type=${args.type} size=${args.size} value=${args.value} show-label=${args.showLabel}>
10
+ ${args.label}
11
+ </bs-progress-linear>
12
+ `,
13
+ argTypes: {
14
+ type: { control: { type: 'select' }, options: types, description: propDescription('bs-progress-linear', 'type') },
15
+ size: { control: { type: 'select' }, options: sizes, description: propDescription('bs-progress-linear', 'size') },
16
+ value: { control: { type: 'range', min: 0, max: 100 }, description: propDescription('bs-progress-linear', 'value') },
17
+ showLabel: { control: 'boolean', description: propDescription('bs-progress-linear', 'show-label') },
18
+ label: { control: 'text', description: 'Slotted label content (default slot).' },
19
+ },
20
+ args: {
21
+ type: 'determinate',
22
+ size: 'large',
23
+ value: 40,
24
+ showLabel: true,
25
+ label: 'Label',
26
+ },
27
+ };
28
+ export default meta;
29
+ export const Default = {};
30
+ // One instance per size, stacked, at a fixed mid-range value.
31
+ export const Sizes = {
32
+ name: 'Sizes',
33
+ render: () => html `
34
+ <div style="display: flex; flex-direction: column; gap: 24px; width: 320px;">
35
+ ${sizes.map(size => html `<bs-progress-linear size=${size} value="40">Label</bs-progress-linear>`)}
36
+ </div>
37
+ `,
38
+ };
39
+ // A few sample values across the range, illustrating the fill from empty to full.
40
+ export const Values = {
41
+ name: 'Values',
42
+ render: () => html `
43
+ <div style="display: flex; flex-direction: column; gap: 24px; width: 320px;">
44
+ ${[0, 25, 50, 75, 100].map(value => html `<bs-progress-linear value=${value}>${value}%</bs-progress-linear>`)}
45
+ </div>
46
+ `,
47
+ };
48
+ export const WithoutLabel = {
49
+ name: 'Without label',
50
+ args: { showLabel: false },
51
+ render: args => html `
52
+ <div style="width: 320px;">
53
+ <bs-progress-linear type=${args.type} size=${args.size} value=${args.value} show-label=${args.showLabel}>
54
+ ${args.label}
55
+ </bs-progress-linear>
56
+ </div>
57
+ `,
58
+ };
59
+ export const Indeterminate = {
60
+ args: { type: 'indeterminate' },
61
+ render: args => html `
62
+ <div style="width: 320px;">
63
+ <bs-progress-linear type=${args.type} size=${args.size} show-label=${args.showLabel}> ${args.label} </bs-progress-linear>
64
+ </div>
65
+ `,
66
+ };
@@ -51,7 +51,7 @@ export class BsRadio {
51
51
  }
52
52
  };
53
53
  render() {
54
- return (h("label", { key: '349589d9d20270aedcbd67d528057b9b0c41c486', class: `bs-radio ${this.disabled ? 'bs-radio--disabled' : ''}` }, h("input", { key: '36da81bb4a82a78cd1e49ca2d27b4837e6077bd9', class: "bs-radio__input", type: "radio", name: this.name, value: this.value, checked: this.checked, disabled: this.disabled, onChange: this.onChange }), h("span", { key: '1f5e0d0a2c49875b63b70bf1618f1c374d7f5dae', class: "bs-radio__hit-area" }, h("span", { key: '63f4e1e619aa3faca1cda08ad878f23b83836d0c', class: "bs-radio__state-layer" }, h("span", { key: '5487d7782497766e8d3c1261c035214055b4ecf3', part: "circle", class: `bs-radio__circle ${this.checked ? 'bs-radio__circle--selected' : ''}` }, this.checked && h("span", { key: '6a8cd123cf6588c8e18c5841176556bf8f22b1bb', part: "dot", class: "bs-radio__dot" })))), h("span", { key: 'b21075cb92382cbdcb3d11404b5db27ac5823308', part: "label", class: "bs-radio__label" }, h("slot", { key: '8ca2bb29e32c2f0d52832b42643c0efd7cc89e9a' }))));
54
+ return (h("label", { key: '161bfbd0b2275f33cb8fbc5b3e4851ec30edbbce', class: `bs-radio ${this.disabled ? 'bs-radio--disabled' : ''}` }, h("input", { key: '264d57cbd6c4f0052d8db28fb0fb11e274448b9b', class: "bs-radio__input", type: "radio", name: this.name, value: this.value, checked: this.checked, disabled: this.disabled, onChange: this.onChange }), h("span", { key: 'c7caedd6dfad0b5808a6e1bea575c4f958d2ea0b', class: "bs-radio__hit-area" }, h("span", { key: '1192afc8c59dce5fdf5c226dd560e4885175a73c', class: "bs-radio__state-layer" }, h("span", { key: '7869c22cde3a99465500cc7cb52b281189db6f94', part: "circle", class: `bs-radio__circle ${this.checked ? 'bs-radio__circle--selected' : ''}` }, this.checked && h("span", { key: '8f9cce005680970137aa380f64792a877a28fee6', part: "dot", class: "bs-radio__dot" })))), h("span", { key: 'a1539f067d44caf5988a1a86755bf47d9738fe08', part: "label", class: "bs-radio__label" }, h("slot", { key: 'be0394e88cc984e2d558881be9305753fec90ddc' }))));
55
55
  }
56
56
  static get is() { return "bs-radio"; }
57
57
  static get encapsulation() { return "shadow"; }
@@ -199,7 +199,7 @@ export class BsSlider {
199
199
  render() {
200
200
  const isRange = this.type === 'range';
201
201
  const rootClasses = ['bs-slider', this.disabled ? 'bs-slider--disabled' : ''].filter(Boolean).join(' ');
202
- return (h("div", { key: 'e4647158959bb507711a1d9872e68f64d5f7bd34', class: rootClasses }, this.showLabel && (h("div", { key: 'eb5d67b8717cc627b63a17f85471e757d35cec85', class: "bs-slider__header" }, h("span", { key: '48f6184206774111a5beb1869857020d7008f013', id: "bs-slider-label", part: "label", class: "bs-slider__label" }, this.label), isRange ? (h("span", { class: "bs-slider__value-fields" }, this.renderPercentField(this.percent(this.effectiveValueStart), this.onStartPercentFieldChange, this.ariaLabel ?? 'Start value'), h("span", { class: "bs-slider__separator" }, "\u2013"), this.renderPercentField(this.percent(this.effectiveValueEnd), this.onEndPercentFieldChange, this.ariaLabel ? `${this.ariaLabel} end` : 'End value'))) : (this.renderPercentField(this.percent(this.value), this.onPercentFieldChange, this.ariaLabel ? `${this.ariaLabel} value` : 'Value')))), h("div", { key: '1ee4796e51f2d29b1b5bad812d81f037d1d2d29f', class: "bs-slider__row" }, this.showLabel && (h("span", { key: '4bfdfd86f9c5ae5c2f8ca08c0758be9fce483056', part: "bound", class: "bs-slider__bound" }, this.min)), isRange ? this.renderRangeThumbs() : this.renderSingleThumb(), this.showLabel && (h("span", { key: '06ee3063570c858bcdf49960b9021a301e56288e', part: "bound", class: "bs-slider__bound" }, this.max)))));
202
+ return (h("div", { key: '1cbd5e53dd0d8fb327d8584428dd21332661b5e2', class: rootClasses }, this.showLabel && (h("div", { key: '3634d341e67ebc1bfba90b86b104fa5553d67d1d', class: "bs-slider__header" }, h("span", { key: '3ebf6d66bd5c8e51fe9d9b42844cbfc1c45ae696', id: "bs-slider-label", part: "label", class: "bs-slider__label" }, this.label), isRange ? (h("span", { class: "bs-slider__value-fields" }, this.renderPercentField(this.percent(this.effectiveValueStart), this.onStartPercentFieldChange, this.ariaLabel ?? 'Start value'), h("span", { class: "bs-slider__separator" }, "\u2013"), this.renderPercentField(this.percent(this.effectiveValueEnd), this.onEndPercentFieldChange, this.ariaLabel ? `${this.ariaLabel} end` : 'End value'))) : (this.renderPercentField(this.percent(this.value), this.onPercentFieldChange, this.ariaLabel ? `${this.ariaLabel} value` : 'Value')))), h("div", { key: '874e62bf31a4fdba314c9999d15abfbf211fb5bc', class: "bs-slider__row" }, this.showLabel && (h("span", { key: 'eb26f532ddac948279faa4bc6c60d263b0538ee6', part: "bound", class: "bs-slider__bound" }, this.min)), isRange ? this.renderRangeThumbs() : this.renderSingleThumb(), this.showLabel && (h("span", { key: '01bab87bfab37495ce857bbfd16d8417aea61a61', part: "bound", class: "bs-slider__bound" }, this.max)))));
203
203
  }
204
204
  static get is() { return "bs-slider"; }
205
205
  static get encapsulation() { return "shadow"; }
@@ -225,7 +225,7 @@ export class BsSlider {
225
225
  "references": {
226
226
  "BsSliderType": {
227
227
  "location": "local",
228
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-slider/bs-slider.tsx",
228
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-slider/bs-slider.tsx",
229
229
  "id": "src/components/bs-slider/bs-slider.tsx::BsSliderType"
230
230
  }
231
231
  }
@@ -51,7 +51,7 @@ export class BsSnackbar {
51
51
  this.bsDismiss.emit();
52
52
  };
53
53
  render() {
54
- return (h("div", { key: '3dc0997bd057ef72d7322d28ad5c561fb5e24730', part: "container", class: `bs-snackbar bs-snackbar--${this.variant}`, role: "status", "aria-live": this.variant === 'error' ? 'assertive' : 'polite' }, h("div", { key: '3b77e4ac957cd73368883afbb7b47fb5cc46966b', class: "bs-snackbar__content" }, h("span", { key: '45a8c01714b0a3bec9ffcc470a83959a1d9f0539', part: "icon", class: "bs-snackbar__icon", "aria-hidden": "true" }, this.loading ? h("span", { class: "bs-snackbar__spinner" }) : h(CheckCircleIcon, null)), h("span", { key: '6738316060e8da63c45ceda8ec2a2fce0dbcbc24', part: "message", class: "bs-snackbar__message" }, h("slot", { key: 'f88fe59ad8c970a222b2349a86df8c9ccb2836ab' }))), h("div", { key: '171fa694e2faccca014bb75234958cd458b17fe7', class: "bs-snackbar__actions" }, this.actionLabel && (h("button", { key: '2f529c556bbc9b6d01fddb23b434a6e381f38529', part: "action", type: "button", class: "bs-snackbar__action", onClick: this.onAction }, this.actionLabel)), h("button", { key: '1f45a977afdd80ee603e122fe8ac36b8161d6ee3', part: "close", type: "button", class: "bs-snackbar__close", "aria-label": "Dismiss", onClick: this.onDismiss }, h(CloseIcon, { key: 'f16229c70fdbd0329e4a91fe7fbbf58e43e7870f' })))));
54
+ return (h("div", { key: '3251935ac23aa9157004eefdb6e324234eb6bfcb', part: "container", class: `bs-snackbar bs-snackbar--${this.variant}`, role: "status", "aria-live": this.variant === 'error' ? 'assertive' : 'polite' }, h("div", { key: 'c45e3cbe89cf2b956e46c71db87eb9644d3ef4df', class: "bs-snackbar__content" }, h("span", { key: '840a2ab80a6ff4691eb341157f8285f70310ec33', part: "icon", class: "bs-snackbar__icon", "aria-hidden": "true" }, this.loading ? h("span", { class: "bs-snackbar__spinner" }) : h(CheckCircleIcon, null)), h("span", { key: '6f947d2327529ae23c4de691ea509b39ce5e2490', part: "message", class: "bs-snackbar__message" }, h("slot", { key: '4cde5846deeb26cfb4fa134e789b641c9674618d' }))), h("div", { key: 'f5c1cc73c36ddfd5feef19fbcc24668c407cbd3d', class: "bs-snackbar__actions" }, this.actionLabel && (h("button", { key: 'ae7b54aee03e21f0d770b6440a5ef0138f835be8', part: "action", type: "button", class: "bs-snackbar__action", onClick: this.onAction }, this.actionLabel)), h("button", { key: 'f689a78a40fbd268760e9624ed0f02ba3ac71b07', part: "close", type: "button", class: "bs-snackbar__close", "aria-label": "Dismiss", onClick: this.onDismiss }, h(CloseIcon, { key: 'e731694f295179bb1cf85111116e2bf8f5e83cb7' })))));
55
55
  }
56
56
  static get is() { return "bs-snackbar"; }
57
57
  static get encapsulation() { return "shadow"; }
@@ -76,7 +76,7 @@ export class BsSnackbar {
76
76
  "references": {
77
77
  "BsSnackbarVariant": {
78
78
  "location": "local",
79
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-snackbar/bs-snackbar.tsx",
79
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-snackbar/bs-snackbar.tsx",
80
80
  "id": "src/components/bs-snackbar/bs-snackbar.tsx::BsSnackbarVariant"
81
81
  }
82
82
  }
@@ -51,8 +51,8 @@ export class BsSourceLink {
51
51
  };
52
52
  render() {
53
53
  const inner = [
54
- h("span", { key: 'f439433f45bc81b4c515903661311431d99637cd', class: "bs-source-link__left" }, h("span", { key: '4ede9ae3793da7453679723866a519e73ee963aa', class: "bs-source-link__filename-row" }, h("span", { key: '6b4b95fde466988248d34d27705df76acce5927a', part: "icon", class: "bs-source-link__icon" }, h("slot", { key: '24cf2dcc3d04fb2d6e543d1e8bae0e96d0df2d14', name: "icon" }, h(FileTextIcon, { key: 'f04e008075912dfac619c1a2e676346bc7d226d5' }))), h("p", { key: '16b2120d5391930dfc239cb5dd18c40de0cb7aa0', part: "filename", class: "bs-source-link__filename" }, this.fileName)), h("span", { key: 'ec10ed741f33eba57624e0840253f96851f1481a', class: "bs-source-link__meta" }, this.sourceName && (h("span", { key: '56d4a784e30ceff1568bb393d4c3b368f81a0f3e', part: "source", class: "bs-source-link__source" }, this.sourceName)), this.sourceName && this.version && h("span", { key: '95db8a3be1c61741e7d30229c642fea7d321b6b0', class: "bs-source-link__dot", "aria-hidden": "true" }), this.version && (h("span", { key: '4f8caac5193d8671811f9972654ab049f23bac49', part: "version", class: "bs-source-link__version" }, this.version)))),
55
- h("span", { key: '6009485aa7f7d802a82195c50374693f66782737', part: "arrow", class: "bs-source-link__arrow", "aria-hidden": "true" }, h(ArrowUpRightIcon, { key: '1032169a5bfb02f9fbf1d7a5d5d255f313e1da29' })),
54
+ h("span", { key: '6e0bde7df2c893933c6490a995e418a43de6454f', class: "bs-source-link__left" }, h("span", { key: '9724f21e43696b3a07daabd05a348eaee96cd082', class: "bs-source-link__filename-row" }, h("span", { key: '901c8a90c0707197d0ae5f5c053f2e197683c973', part: "icon", class: "bs-source-link__icon" }, h("slot", { key: 'ca4ecd68ec7149bfe61830b3bd75a45e7086c165', name: "icon" }, h(FileTextIcon, { key: '656b72e726370c03b271e83397666be76544eb65' }))), h("p", { key: 'c20b0bc181548a81c57364b707afba77d535d62a', part: "filename", class: "bs-source-link__filename" }, this.fileName)), h("span", { key: '3178845a3c16d2ffd5fc1942806851370d966290', class: "bs-source-link__meta" }, this.sourceName && (h("span", { key: '6967d7fa214067d5e0d14123d287c4ce6cf40496', part: "source", class: "bs-source-link__source" }, this.sourceName)), this.sourceName && this.version && h("span", { key: 'a58b3e8d2d8ef4a23c8d6155454ab5825fd737b5', class: "bs-source-link__dot", "aria-hidden": "true" }), this.version && (h("span", { key: '1701393a524375eee95905308a9b8be1b9647bc8', part: "version", class: "bs-source-link__version" }, this.version)))),
55
+ h("span", { key: 'a291c8de9d56e8b269660441930b4bf95977883f', part: "arrow", class: "bs-source-link__arrow", "aria-hidden": "true" }, h(ArrowUpRightIcon, { key: '90a1a20ee9f84e5e339fa2a11c59691f6f45759f' })),
56
56
  ];
57
57
  return this.href ? (h("a", { class: "bs-source-link", href: this.href, target: this.target, rel: "noopener noreferrer", onClick: this.onClick }, inner)) : (h("button", { type: "button", class: "bs-source-link", onClick: this.onClick }, inner));
58
58
  }
@@ -61,7 +61,7 @@ export class BsStepper {
61
61
  });
62
62
  }
63
63
  render() {
64
- return h("slot", { key: '1c5d7d0c6a9fef9c06dfd08bd529a1582fe18478', onSlotchange: this.onSlotChange });
64
+ return h("slot", { key: 'ce510c14afc31408f1a8b04a6ab6a6bc8480dd97', onSlotchange: this.onSlotChange });
65
65
  }
66
66
  static get is() { return "bs-stepper"; }
67
67
  static get encapsulation() { return "shadow"; }
@@ -57,7 +57,7 @@ export class BsStepperStep {
57
57
  }
58
58
  render() {
59
59
  const state = this.state;
60
- return (h(Host, { key: '23bdc6334a36d9b2dd28719b9b23fbc17ad8f29b', role: "listitem", class: `bs-stepper-step--${this.direction}` }, h("div", { key: '388e17882bb5215c33e0665107acbcff5c7b4c9c', class: "bs-stepper-step__top" }, h("span", { key: '6cf79ab50a94f9578e76f14ca23cdfa984ef394b', part: "icon", class: `bs-stepper-step__icon bs-stepper-step__icon--${state}` }, state === 'current' && h("span", { key: '8081181e8865a29f703c74d5a20183513bdf2b66', class: "bs-stepper-step__icon-dot" }), state === 'done' && h(CheckIcon, { key: '92755c827c9c09b1bae504daabd2067fc498b355' }), state === 'error' && h(ExclamationIcon, { key: '62ac0a0826b8f8b507fcd0a7c47bff3c39f804b4' })), h("span", { key: 'a1c15ede35ab01d876a0289552dffc37c75626d1', part: "connector", class: "bs-stepper-step__connector", "aria-hidden": "true" }, h("span", { key: '5029f8f629af1091bcb8fa2a47ebe12a7bd6628e', class: "bs-stepper-step__connector-line" }))), h("span", { key: '3835e986646f619751043ab0eeb1b5d977f22a58', part: "label", class: `bs-stepper-step__label bs-stepper-step__label--${state}` }, h("span", { key: '5da4053ea5ecf588853b5d9678737a67b7aadbe1', part: "name", class: "bs-stepper-step__name" }, this.name), this.showDescription && this.description && (h("span", { key: 'd5544b97eefe9311ac13f0cbcd4bf6d87bc24ca5', part: "description", class: "bs-stepper-step__description" }, this.description)))));
60
+ return (h(Host, { key: '0885597069b454df03e0797e6fc3ec4bba3357b1', role: "listitem", class: `bs-stepper-step--${this.direction}` }, h("div", { key: 'e5bf87615b06b2ffd35b18329a925171c45cbf4e', class: "bs-stepper-step__top" }, h("span", { key: 'e82c4b4d88769d9301a258f9f8ba10e75aac381d', part: "icon", class: `bs-stepper-step__icon bs-stepper-step__icon--${state}` }, state === 'current' && h("span", { key: '61b0982711c74851add824ccb561f26711ed1162', class: "bs-stepper-step__icon-dot" }), state === 'done' && h(CheckIcon, { key: 'f53ba1c507f79cac0ee4cde326c2a95580b95ea2' }), state === 'error' && h(ExclamationIcon, { key: '9671c46079a379711410c878cb520d915ff419b3' })), h("span", { key: 'af6ba4667e1237ff2ade9947a19ccea455aa1cb1', part: "connector", class: "bs-stepper-step__connector", "aria-hidden": "true" }, h("span", { key: '337b424d21fa9ad1c1289a314d1e4aee1d868e08', class: "bs-stepper-step__connector-line" }))), h("span", { key: '265d260e904153b4875fecd899affb5e16482e52', part: "label", class: `bs-stepper-step__label bs-stepper-step__label--${state}` }, h("span", { key: '2402a6d04e7467ea9b14b86569093226253ce934', part: "name", class: "bs-stepper-step__name" }, this.name), this.showDescription && this.description && (h("span", { key: 'ed6b927749fb9b174bf481e862fc4109ca557e1a', part: "description", class: "bs-stepper-step__description" }, this.description)))));
61
61
  }
62
62
  static get is() { return "bs-stepper-step"; }
63
63
  static get encapsulation() { return "shadow"; }
@@ -161,7 +161,7 @@ export class BsStepperStep {
161
161
  "references": {
162
162
  "BsStepperStepComputedState": {
163
163
  "location": "local",
164
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-stepper/bs-stepper-step/bs-stepper-step.tsx",
164
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-stepper/bs-stepper-step/bs-stepper-step.tsx",
165
165
  "id": "src/components/bs-stepper/bs-stepper-step/bs-stepper-step.tsx::BsStepperStepComputedState"
166
166
  }
167
167
  }
@@ -187,7 +187,7 @@ export class BsStepperStep {
187
187
  "references": {
188
188
  "BsStepperDirection": {
189
189
  "location": "local",
190
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-stepper/bs-stepper-step/bs-stepper-step.tsx",
190
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-stepper/bs-stepper-step/bs-stepper-step.tsx",
191
191
  "id": "src/components/bs-stepper/bs-stepper-step/bs-stepper-step.tsx::BsStepperDirection"
192
192
  }
193
193
  }
@@ -58,7 +58,7 @@ export class BsSwitch {
58
58
  const knobClasses = ['bs-switch__knob', `bs-switch__knob--${this.size}`, this.disabled ? 'bs-switch__knob--disabled' : '']
59
59
  .filter(Boolean)
60
60
  .join(' ');
61
- return (h("label", { key: '72a1a031e9ed8763a2b60f3c23de18973cc7409d', class: `bs-switch ${this.disabled ? 'bs-switch--disabled' : ''}` }, h("input", { key: '90427f6930abcb294526caa912331a568f6eaaeb', class: "bs-switch__input", type: "checkbox", role: "switch", checked: this.checked, disabled: this.disabled, "aria-checked": String(this.checked), "aria-label": this.ariaLabel, onChange: this.onChange }), h("span", { key: 'be4eb4528f413527e67f38201c20ca86eeef37c1', part: "track", class: trackClasses }, h("span", { key: '030a60024a77bfae2f78a40128dd62a8581f5fd1', part: "knob", class: knobClasses })), h("span", { key: '5792002eed1c0489a1456e362f0fd3c290522834', part: "label", class: "bs-switch__label" }, h("slot", { key: '9dadf202bcde1760dcda56ca84155ecdb117b746' }))));
61
+ return (h("label", { key: '8cc77a7334a032869209299197e49619d3ac6291', class: `bs-switch ${this.disabled ? 'bs-switch--disabled' : ''}` }, h("input", { key: '2d052950431ecd2ea7dfdfef8252ef2ec5bd2dc4', class: "bs-switch__input", type: "checkbox", role: "switch", checked: this.checked, disabled: this.disabled, "aria-checked": String(this.checked), "aria-label": this.ariaLabel, onChange: this.onChange }), h("span", { key: 'f3a7f7260a0f915e22eb32408495c4e114a9bcff', part: "track", class: trackClasses }, h("span", { key: '4c59c865cca27b3d7f068a2798a5901a43b1ef40', part: "knob", class: knobClasses })), h("span", { key: '807b245462b4b44f224beb892312f914625065e6', part: "label", class: "bs-switch__label" }, h("slot", { key: '056f758a35f0a9f5392561a6a47a3f8a65c9ffc7' }))));
62
62
  }
63
63
  static get is() { return "bs-switch"; }
64
64
  static get encapsulation() { return "shadow"; }
@@ -84,7 +84,7 @@ export class BsSwitch {
84
84
  "references": {
85
85
  "BsSwitchSize": {
86
86
  "location": "local",
87
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-switch/bs-switch.tsx",
87
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-switch/bs-switch.tsx",
88
88
  "id": "src/components/bs-switch/bs-switch.tsx::BsSwitchSize"
89
89
  }
90
90
  }
@@ -86,7 +86,7 @@ export class BsInlineTab {
86
86
  };
87
87
  render() {
88
88
  const iconOnly = this.hasIcon && !this.hasLabel;
89
- return (h("button", { key: '6313c5d454cd53665dee3180dcf17d37548fa5c5', type: "button", part: "tab", role: "tab", class: `bs-inline-tab ${this.selected ? 'bs-inline-tab--selected' : ''} ${this.disabled ? 'bs-inline-tab--disabled' : ''} ${iconOnly ? 'bs-inline-tab--icon-only' : ''} ${this.hasIcon ? 'bs-inline-tab--has-icon' : ''}`, disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, "aria-label": this.ariaLabel, onClick: this.onClick }, h("span", { key: '14255949e0df5e3d7c763841844964b2d507bc86', part: "icon", class: `bs-inline-tab__icon ${this.hasIcon ? 'bs-inline-tab__icon--has-content' : ''}` }, h("slot", { key: 'f81037da9dbff2c105f0eacad4acd8a7eef84cbe', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: '176c52323b9df0ca53aae20cc80dfc8d5625aa97', part: "label", class: `bs-inline-tab__label ${this.hasLabel ? 'bs-inline-tab__label--has-content' : ''}` }, h("slot", { key: 'b8db261b88931be4e822b2849bd50530d9acc196', onSlotchange: this.onLabelSlotchange }))));
89
+ return (h("button", { key: '7a3fe9444808cf379acdef7f06b0e6b07fb52ff0', type: "button", part: "tab", role: "tab", class: `bs-inline-tab ${this.selected ? 'bs-inline-tab--selected' : ''} ${this.disabled ? 'bs-inline-tab--disabled' : ''} ${iconOnly ? 'bs-inline-tab--icon-only' : ''} ${this.hasIcon ? 'bs-inline-tab--has-icon' : ''}`, disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, "aria-label": this.ariaLabel, onClick: this.onClick }, h("span", { key: '39dbd2c9f65157efaa7a94b119d90c9251a3a4b7', part: "icon", class: `bs-inline-tab__icon ${this.hasIcon ? 'bs-inline-tab__icon--has-content' : ''}` }, h("slot", { key: 'a3f8079e25a29834beb3a477e5b9c29f9d474429', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: 'edf1472b4ac667300d24b2fb8c8fea9f51705492', part: "label", class: `bs-inline-tab__label ${this.hasLabel ? 'bs-inline-tab__label--has-content' : ''}` }, h("slot", { key: 'a3500324e792e92c3f68a4144644a9a8916e1fb4', onSlotchange: this.onLabelSlotchange }))));
90
90
  }
91
91
  static get is() { return "bs-inline-tab"; }
92
92
  static get encapsulation() { return "shadow"; }
@@ -99,7 +99,7 @@ export class BsTab {
99
99
  const iconOnly = this.hasIcon && !this.hasLabel;
100
100
  const vertical = this.hasIcon && this.hasLabel && this.iconPosition === 'top';
101
101
  const showBadge = this.hasBadge && !iconOnly && !vertical;
102
- return (h("button", { key: '108e2a145203f9686056af4ef0afaccb9d2db30a', type: "button", part: "tab", role: "tab", class: `bs-tab ${this.selected ? 'bs-tab--selected' : ''} ${this.disabled ? 'bs-tab--disabled' : ''} ${iconOnly ? 'bs-tab--icon-only' : ''} ${vertical ? 'bs-tab--vertical' : ''}`, disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, "aria-label": this.ariaLabel, onClick: this.onClick }, h("span", { key: '16ac002486b78656a93cdb79ec2c496784fc97bd', part: "icon", class: `bs-tab__icon ${this.hasIcon ? 'bs-tab__icon--has-content' : ''}` }, h("slot", { key: '18eb1f6346db1658af06d4fd0fe3b9e647459abe', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: 'f97b7760370940a57d240635aa5680ffab053be8', part: "label", class: `bs-tab__label ${this.hasLabel ? 'bs-tab__label--has-content' : ''}` }, h("slot", { key: '2ba740311a892af6d6db0d84ad0f126ca35c48de', onSlotchange: this.onLabelSlotchange })), h("span", { key: 'f1090ed9db4149673c29d1e62ec62db024c50868', part: "badge", class: `bs-tab__badge ${showBadge ? 'bs-tab__badge--has-content' : ''}` }, h("slot", { key: 'a594d11d28f47d5e2665d3f1378892f8fb68c4aa', name: "badge", onSlotchange: this.onBadgeSlotchange })), h("span", { key: '1fd376b6321eeeec0e0a67000bd0c9d5166f9a40', part: "indicator", class: "bs-tab__indicator" })));
102
+ return (h("button", { key: '582c9b12915fa85e4b05114e4c1d5a15ec9253d1', type: "button", part: "tab", role: "tab", class: `bs-tab ${this.selected ? 'bs-tab--selected' : ''} ${this.disabled ? 'bs-tab--disabled' : ''} ${iconOnly ? 'bs-tab--icon-only' : ''} ${vertical ? 'bs-tab--vertical' : ''}`, disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, "aria-label": this.ariaLabel, onClick: this.onClick }, h("span", { key: 'd2e55d29b23478056bb3f24a00ec1237fa9e0a9d', part: "icon", class: `bs-tab__icon ${this.hasIcon ? 'bs-tab__icon--has-content' : ''}` }, h("slot", { key: '767704d1770a124686fa503c0ca19b651412c07f', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: '8d4f45d058cbbd5bc64a03862048faaaa1effdf3', part: "label", class: `bs-tab__label ${this.hasLabel ? 'bs-tab__label--has-content' : ''}` }, h("slot", { key: '45805bbb18a4a8a39b01e1bc81a37a2b09449d3c', onSlotchange: this.onLabelSlotchange })), h("span", { key: '27a3379b320a5ac2f2a437c8ca980989cf5ed239', part: "badge", class: `bs-tab__badge ${showBadge ? 'bs-tab__badge--has-content' : ''}` }, h("slot", { key: '2bbd98cc2c68472a9399b3c5ff67ddbeae441949', name: "badge", onSlotchange: this.onBadgeSlotchange })), h("span", { key: '3f75545064c2114483382e1ee65e23f5aad33ccd', part: "indicator", class: "bs-tab__indicator" })));
103
103
  }
104
104
  static get is() { return "bs-tab"; }
105
105
  static get encapsulation() { return "shadow"; }
@@ -164,7 +164,7 @@ export class BsTab {
164
164
  "references": {
165
165
  "BsTabIconPosition": {
166
166
  "location": "local",
167
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-tab/bs-tab/bs-tab.tsx",
167
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-tab/bs-tab/bs-tab.tsx",
168
168
  "id": "src/components/bs-tab/bs-tab/bs-tab.tsx::BsTabIconPosition"
169
169
  }
170
170
  }
@@ -50,7 +50,7 @@ export class BsTabs {
50
50
  }
51
51
  render() {
52
52
  const vertical = this.orientation === 'vertical';
53
- return (h("div", { key: '625a82decaddca7fc41585696f15a8fdd19c3127', part: "tablist", role: "tablist", "aria-orientation": this.orientation, class: `bs-tabs bs-tabs--${this.type} ${vertical ? 'bs-tabs--vertical' : ''}` }, h("slot", { key: '059943f777aaf60a2de4026bcb25f561f66a5020' })));
53
+ return (h("div", { key: 'a2e67e62af5aec684a0b79e06905e1d2dbc1d469', part: "tablist", role: "tablist", "aria-orientation": this.orientation, class: `bs-tabs bs-tabs--${this.type} ${vertical ? 'bs-tabs--vertical' : ''}` }, h("slot", { key: '6b3b19d55ff342c65ef321e6556cf56701dc18a0' })));
54
54
  }
55
55
  static get is() { return "bs-tabs"; }
56
56
  static get encapsulation() { return "shadow"; }
@@ -75,7 +75,7 @@ export class BsTabs {
75
75
  "references": {
76
76
  "BsTabsType": {
77
77
  "location": "local",
78
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-tab/bs-tabs/bs-tabs.tsx",
78
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-tab/bs-tabs/bs-tabs.tsx",
79
79
  "id": "src/components/bs-tab/bs-tabs/bs-tabs.tsx::BsTabsType"
80
80
  }
81
81
  }
@@ -101,7 +101,7 @@ export class BsTabs {
101
101
  "references": {
102
102
  "BsTabsOrientation": {
103
103
  "location": "local",
104
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-tab/bs-tabs/bs-tabs.tsx",
104
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-tab/bs-tabs/bs-tabs.tsx",
105
105
  "id": "src/components/bs-tab/bs-tabs/bs-tabs.tsx::BsTabsOrientation"
106
106
  }
107
107
  }
@@ -0,0 +1,59 @@
1
+ import { render, h, describe, it, expect } from "@stencil/vitest";
2
+ describe('bs-toast', () => {
3
+ it('defaults to the "info" state', async () => {
4
+ const { root } = await render(h("bs-toast", null, "Files uploaded successfully."));
5
+ const container = root.shadowRoot.querySelector('[part="container"]');
6
+ expect(container).toHaveClass('bs-toast--info');
7
+ });
8
+ ['info', 'success', 'warning', 'error'].forEach(state => {
9
+ it(`applies the "${state}" state class`, async () => {
10
+ const { root } = await render(h("bs-toast", { state: state }, "Message"));
11
+ const container = root.shadowRoot.querySelector('[part="container"]');
12
+ expect(container).toHaveClass(`bs-toast--${state}`);
13
+ });
14
+ });
15
+ it('renders the slotted message', async () => {
16
+ const { root } = await render(h("bs-toast", null, "Files uploaded successfully."));
17
+ expect(root).toHaveTextContent('Files uploaded successfully.');
18
+ });
19
+ describe('icon per state', () => {
20
+ it('renders an icon for the info state', async () => {
21
+ const { root } = await render(h("bs-toast", { state: "info" }, "Message"));
22
+ const icon = root.shadowRoot.querySelector('[part="icon"]');
23
+ expect(icon.querySelector('svg')).not.toBeNull();
24
+ });
25
+ it('renders a different icon markup per state', async () => {
26
+ const renders = await Promise.all(['info', 'success', 'warning', 'error'].map(async (state) => {
27
+ const { root } = await render(h("bs-toast", { state: state }, "Message"));
28
+ return root.shadowRoot.querySelector('[part="icon"]').innerHTML;
29
+ }));
30
+ expect(new Set(renders).size).toBe(renders.length);
31
+ });
32
+ });
33
+ describe('close button', () => {
34
+ it('always renders a close button with an accessible name', async () => {
35
+ const { root } = await render(h("bs-toast", null, "Message"));
36
+ const close = root.shadowRoot.querySelector('[part="close"]');
37
+ expect(close).not.toBeNull();
38
+ expect(close).toEqualAttribute('aria-label', 'Dismiss');
39
+ });
40
+ it('emits bsDismiss when the close button is clicked', async () => {
41
+ const { root, spyOnEvent } = await render(h("bs-toast", null, "Message"));
42
+ const dismissSpy = spyOnEvent('bsDismiss');
43
+ root.shadowRoot.querySelector('[part="close"]').click();
44
+ expect(dismissSpy).toHaveReceivedEventTimes(1);
45
+ });
46
+ });
47
+ describe('aria-live', () => {
48
+ it('uses aria-live="polite" for non-error states', async () => {
49
+ const { root } = await render(h("bs-toast", { state: "success" }, "Message"));
50
+ const container = root.shadowRoot.querySelector('[part="container"]');
51
+ expect(container).toEqualAttribute('aria-live', 'polite');
52
+ });
53
+ it('uses aria-live="assertive" for the error state', async () => {
54
+ const { root } = await render(h("bs-toast", { state: "error" }, "Message"));
55
+ const container = root.shadowRoot.querySelector('[part="container"]');
56
+ expect(container).toEqualAttribute('aria-live', 'assertive');
57
+ });
58
+ });
59
+ });