@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
@@ -25,7 +25,7 @@ export class BsButtonSkeleton {
25
25
  /** Sizing scale, matching the `bs-button` size it stands in for. */
26
26
  size = 'md';
27
27
  render() {
28
- return h("span", { key: '92978f22d97f10af0260603de5137bfa34bbc717', part: "container", class: `bs-button-skeleton bs-button-skeleton--${this.size}`, role: "status", "aria-label": "Loading" });
28
+ return h("span", { key: '4a08242dee8f135807ce7f73433db4ca83d16711', part: "container", class: `bs-button-skeleton bs-button-skeleton--${this.size}`, role: "status", "aria-label": "Loading" });
29
29
  }
30
30
  static get is() { return "bs-button-skeleton"; }
31
31
  static get encapsulation() { return "shadow"; }
@@ -59,7 +59,7 @@ export class BsCard {
59
59
  "references": {
60
60
  "BsCardSurface": {
61
61
  "location": "local",
62
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-card/bs-card.tsx",
62
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-card/bs-card.tsx",
63
63
  "id": "src/components/bs-card/bs-card.tsx::BsCardSurface"
64
64
  }
65
65
  }
@@ -123,7 +123,7 @@ export class BsChatbotFeedback {
123
123
  }
124
124
  render() {
125
125
  const stars = [1, 2, 3, 4, 5];
126
- return (h("div", { key: 'd006bb1ca76efdcf06bae35e3525003a68386421', class: "bs-chatbot-feedback", role: "region", "aria-label": this.computedHeading() }, h("button", { key: 'c288a911fe59b201dc7a9f888c6cd4e85c6e28a0', type: "button", part: "close", class: "bs-chatbot-feedback__close", "aria-label": "Close", onClick: this.onCloseClick }, h(CloseIcon, { key: '2b989f0ff28ddc59b3b1821e6c3288bf30dac4b6' })), h("div", { key: '84b2274b2cb5da5040d2762173305c49ae4ef66e', class: "bs-chatbot-feedback__top" }, h("div", { key: '692b5724537886c9597a3889a1342343d7809d21', class: "bs-chatbot-feedback__text" }, h("p", { key: 'bd4f0e67a9c9b47660d3b0974434ca6eae6a0abf', part: "heading", class: "bs-chatbot-feedback__heading" }, this.computedHeading()), h("p", { key: '5e305ef80903253dfc3ae2e57f65ad35f7ebb56d', part: "subtitle", class: "bs-chatbot-feedback__subtitle" }, this.computedSubtitle())), h("div", { key: '9cf3adc518948acf2cc1b51f61ba2ced66e5c9c6', class: "bs-chatbot-feedback__stars", role: "radiogroup", "aria-label": "Rating" }, stars.map(value => (h("button", { type: "button", part: "star", class: "bs-chatbot-feedback__star", role: "radio", "aria-checked": (this.rating >= value).toString(), "aria-label": `${value} star${value > 1 ? 's' : ''}`, disabled: this.submitted, onClick: () => this.onStarClick(value) }, h(StarIcon, { filled: this.rating >= value }))))), !this.submitted && (h("div", { key: '9de7ba54587ea9cef1c0167ca54ea47a800b199f', class: "bs-chatbot-feedback__field" }, h("label", { key: '2ade2e0ccacce7ecf13a28f584cddab5891a0d05', part: "label", class: "bs-chatbot-feedback__label", htmlFor: "bs-chatbot-feedback-comment" }, "Tell us what you think"), h("textarea", { key: '765dfe11db1978017aa66f03029bd43161853920', part: "textarea", id: "bs-chatbot-feedback-comment", class: "bs-chatbot-feedback__textarea", placeholder: "e.g.The response was helpful ....", value: this.comment, onInput: this.onCommentInput }))), this.submitted && this.comment && (h("p", { key: '30428029a4bede383a160646e77669ce781aa309', part: "comment", class: "bs-chatbot-feedback__comment" }, this.comment))), h("div", { key: 'ac853cce4db151b43e22bb671e14b4bb43f4b86e', class: "bs-chatbot-feedback__actions" }, !this.submitted && (h("button", { key: '0ac1bcae1b176e04500d7c1a9893a2156e118ef7', type: "button", part: "submit", class: "bs-chatbot-feedback__submit", disabled: this.rating === 0, onClick: this.onSubmitClick }, h(SendIcon, { key: 'ab682fd1f41b2edf85f48517713d50d1e2e8c2d9' }), "Submit feedback")), h("button", { key: '349a69e6510793552b439f1091e1bedbba64c87a', type: "button", part: "new-chat", class: `bs-chatbot-feedback__new-chat ${this.submitted ? 'bs-chatbot-feedback__new-chat--primary' : 'bs-chatbot-feedback__new-chat--outlined'}`, onClick: this.onNewChatClick }, h(EditIcon, { key: '9c0e9890952b3d7e89c95c53a5b173867acce1e4' }), "Start new chat"))));
126
+ return (h("div", { key: '70fa15615edf82f3072ce2b70f40acc26581d357', class: "bs-chatbot-feedback", role: "region", "aria-label": this.computedHeading() }, h("button", { key: 'a12a1bc4a979a341f196d1bb5c7b339b71921adb', type: "button", part: "close", class: "bs-chatbot-feedback__close", "aria-label": "Close", onClick: this.onCloseClick }, h(CloseIcon, { key: 'c43b62f1171655ceb70cc9381f48ca70ac713b42' })), h("div", { key: '478edae3eaed5bc24509dee4a5de1330609418b8', class: "bs-chatbot-feedback__top" }, h("div", { key: '5e2e27ec77d323275928d02eda1233ada161767e', class: "bs-chatbot-feedback__text" }, h("p", { key: 'b8a797d6b7ea99698d4a50d77df2c2f39b197fb5', part: "heading", class: "bs-chatbot-feedback__heading" }, this.computedHeading()), h("p", { key: '47245dbc477cad19404a44ea105a628bcfd26986', part: "subtitle", class: "bs-chatbot-feedback__subtitle" }, this.computedSubtitle())), h("div", { key: 'ff977860ca700ec52902c2fdccce2d61d026bb17', class: "bs-chatbot-feedback__stars", role: "radiogroup", "aria-label": "Rating" }, stars.map(value => (h("button", { type: "button", part: "star", class: "bs-chatbot-feedback__star", role: "radio", "aria-checked": (this.rating >= value).toString(), "aria-label": `${value} star${value > 1 ? 's' : ''}`, disabled: this.submitted, onClick: () => this.onStarClick(value) }, h(StarIcon, { filled: this.rating >= value }))))), !this.submitted && (h("div", { key: 'ee1259121b2adb9d697fb44413ae98ba45ffd2fe', class: "bs-chatbot-feedback__field" }, h("label", { key: '6092b767faf76ea377a2b98752b1e544664d6d15', part: "label", class: "bs-chatbot-feedback__label", htmlFor: "bs-chatbot-feedback-comment" }, "Tell us what you think"), h("textarea", { key: '384a13781db62cf3f62b6ad06b4d6b329b320c1f', part: "textarea", id: "bs-chatbot-feedback-comment", class: "bs-chatbot-feedback__textarea", placeholder: "e.g.The response was helpful ....", value: this.comment, onInput: this.onCommentInput }))), this.submitted && this.comment && (h("p", { key: '15fddc08668bc3a74bad663f38e7217e6bc81abc', part: "comment", class: "bs-chatbot-feedback__comment" }, this.comment))), h("div", { key: 'bbedf1924f505e3ddfef44064087a22b7cf6a7fd', class: "bs-chatbot-feedback__actions" }, !this.submitted && (h("button", { key: '47a55de319cded45e550ca405c5e37f4394d51f5', type: "button", part: "submit", class: "bs-chatbot-feedback__submit", disabled: this.rating === 0, onClick: this.onSubmitClick }, h(SendIcon, { key: 'd4bc9834d37ab6988b8f28e2f4fce6e1a138c970' }), "Submit feedback")), h("button", { key: '5d33d5686b28229ebc5154287bee88410fdd7ede', type: "button", part: "new-chat", class: `bs-chatbot-feedback__new-chat ${this.submitted ? 'bs-chatbot-feedback__new-chat--primary' : 'bs-chatbot-feedback__new-chat--outlined'}`, onClick: this.onNewChatClick }, h(EditIcon, { key: '8aae8a6cf36c352384879bbd791c71cea7b6adf6' }), "Start new chat"))));
127
127
  }
128
128
  static get is() { return "bs-chatbot-feedback"; }
129
129
  static get encapsulation() { return "shadow"; }
@@ -74,7 +74,7 @@ export class BsChatbotHeader {
74
74
  this.bsClose.emit();
75
75
  };
76
76
  render() {
77
- return (h("div", { key: '19defcf3ef6bab001fc70969fe6ae7e43e620772', class: "bs-chatbot-header", role: "banner", "aria-label": this.heading }, h("div", { key: '455979628f49722589abe9a472dd0d43e27c1d57', part: "logo", class: "bs-chatbot-header__logo", role: "img", "aria-label": this.heading, innerHTML: GENIE_LOGO_SVG }), h("div", { key: '123327fd2ac302f1e0c97becfe2b4026db0a463c', class: "bs-chatbot-header__actions" }, h("span", { key: '4dec5a38d3586c98a3827e744132b35155c754cb', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: '6d205052018910e3b0b188f1250a3e06b3134d3d', type: "button", part: "new-chat", class: "bs-chatbot-header__button", "aria-label": "New chat", onClick: this.onNewChatClick }, h("slot", { key: '7f02991d13abc79cb779037e61493e277a5f8af1', name: "new-chat-icon" }, h(NewChatIcon, { key: '95caf87255a959b0569536f5ba8574680a2157c8' }))), h("bs-tooltip", { key: '80bee6f77434b05a469819474fe21824f67f8398', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, "New chat")), h("span", { key: 'b1f92ec3d067d6087bc23407022645915d91bda5', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: '89343546b8a911e69c11ce1658c387c77175bb2f', type: "button", part: "history", class: "bs-chatbot-header__button", "aria-label": "History", onClick: this.onHistoryClick }, h("slot", { key: '8be5b498d86d3b8eb02443c2b5f4ace29d7dd242', name: "history-icon" }, h(HistoryIcon, { key: '3b06808d71e2ee7ef148eb5b5f37831a74a3cdbd' }))), h("bs-tooltip", { key: '3ae97c6ac032e00cf8dc1b885cd09fe9dc522eda', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, "History")), h("span", { key: 'b863e64938643b958e9cdf2b821401da24b22237', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: 'b13aeced1938d418dfc78325087dd2e6769b6373', type: "button", part: "expand", class: "bs-chatbot-header__button", "aria-label": this.expanded ? 'Collapse' : 'Expand', "aria-pressed": this.expanded ? 'true' : 'false', onClick: this.onExpandClick }, h("slot", { key: '7ee525ea7bb0a95996071bf20d3f87fbf25bd4d2', name: "expand-icon" }, h(ExpandIcon, { key: 'dbe3535acdacfdcb76fd2c336359c62126c9bdd8' }))), h("bs-tooltip", { key: '0f0896b3b71e16a590f91324f13f0bd8a606a001', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, this.expanded ? 'Collapse' : 'Expand')), h("span", { key: '0238181d5fbfe40a8581412004476ebfa3d0beb6', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: 'd29269294c457586f2f5dae90ef28de747bab7d9', type: "button", part: "close", class: "bs-chatbot-header__button", "aria-label": "Close", onClick: this.onCloseClick }, h("slot", { key: 'dbc9fdc1cbef4ae59ba3d41e59488b91de549a37', name: "close-icon" }, h(CloseIcon, { key: '0c2b8d8efaa5baf448e3de948feff76c71cc03ef' }))), h("bs-tooltip", { key: '2fc96a3ae618c3e0214a7dd3f329e8b676e9b6b9', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, "Close")))));
77
+ return (h("div", { key: '7e7f71caf75675cce3f178bc4fa9e0a3d53aa812', class: "bs-chatbot-header", role: "banner", "aria-label": this.heading }, h("div", { key: '0ea7c7057d12cfb1ad1824266cbd4d973d3fce38', part: "logo", class: "bs-chatbot-header__logo", role: "img", "aria-label": this.heading, innerHTML: GENIE_LOGO_SVG }), h("div", { key: '6ba043cbd01052d028bcd45ef69d35f3b7e666e4', class: "bs-chatbot-header__actions" }, h("span", { key: '08cb7c189fb35039de90fa230058e8a445661f99', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: 'e2b1ac039f0ae5e50cadd61c423653442f5ad728', type: "button", part: "new-chat", class: "bs-chatbot-header__button", "aria-label": "New chat", onClick: this.onNewChatClick }, h("slot", { key: 'e7e4830b66fcf8d0c2dd85534e040e92f104b3eb', name: "new-chat-icon" }, h(NewChatIcon, { key: '238d9446d2f77c35a3e990e753bbb7cafc96e037' }))), h("bs-tooltip", { key: 'af242e0e02fb8d03aaa4e3e39827b4213bffdfc1', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, "New chat")), h("span", { key: '939bbe2882807f0d3fc45d3e3e0dbf28771d8312', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: '858d8efa957530d463688e7fbfa610ab034a9337', type: "button", part: "history", class: "bs-chatbot-header__button", "aria-label": "History", onClick: this.onHistoryClick }, h("slot", { key: '6f62828c4aec75607922f4351dd32c44c0698bbf', name: "history-icon" }, h(HistoryIcon, { key: '03c85067f778f7a6ddd601e18c71def40d6a64e7' }))), h("bs-tooltip", { key: 'd06e0655156bb6b2ddd1ac825541d4380111c204', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, "History")), h("span", { key: '42e78539d529cea0a19f6f5b1457d1a48bd62f19', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: 'fa0796a28a0a7a6f72ec48e44acd9d257e897529', type: "button", part: "expand", class: "bs-chatbot-header__button", "aria-label": this.expanded ? 'Collapse' : 'Expand', "aria-pressed": this.expanded ? 'true' : 'false', onClick: this.onExpandClick }, h("slot", { key: '369cff5533e420992608351dff1943daff352c25', name: "expand-icon" }, h(ExpandIcon, { key: '2aedcdbfd7a372454b39f4b17e7468f3e2b3cf0c' }))), h("bs-tooltip", { key: '53c2311bd5e8af8a20138eaa6a6dd3a562444a8d', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, this.expanded ? 'Collapse' : 'Expand')), h("span", { key: 'd10e2419f9fcb9fc73cc4fe00a17ef5496d904dc', class: "bs-chatbot-header__tooltip-wrapper" }, h("button", { key: 'c441d3a39bca00357f673ae6814fab78143e1c6b', type: "button", part: "close", class: "bs-chatbot-header__button", "aria-label": "Close", onClick: this.onCloseClick }, h("slot", { key: '3b9f99bb50fc55ddcc57ccaf4a173ae57de4b48c', name: "close-icon" }, h(CloseIcon, { key: 'dbac72f3e57dc18afe79669227cad5f09f69da3f' }))), h("bs-tooltip", { key: 'eab5277e0aabccad8f0d831c679e7b9fad1e5740', class: "bs-chatbot-header__tooltip", placement: "top", "aria-hidden": "true" }, "Close")))));
78
78
  }
79
79
  static get is() { return "bs-chatbot-header"; }
80
80
  static get encapsulation() { return "shadow"; }
@@ -105,7 +105,7 @@ export class BsChatbotResponseAction {
105
105
  };
106
106
  render() {
107
107
  const hasSources = !!this.sourcesCount && this.sourcesCount > 0;
108
- return (h("div", { key: '24c68fc03ccb44936dd1d432496960b8dfcee7b5', class: "bs-chatbot-response-action" }, h("button", { key: 'f11c68b55809d7883985216509f8c0212a82e238', type: "button", part: "like", class: "bs-chatbot-response-action__button", "aria-label": "Like", onClick: this.onLikeClick }, h("slot", { key: 'dd0f1a8551fb5ee988e2b4a00f1229b4f4243e5c', name: "like-icon" }, h(ThumbsUpIcon, { key: 'e5f2b60558c6bb19d57bc19166659f9861d8a168' }))), h("button", { key: '77faba07ee823f265dd96c928719d998775a90c6', type: "button", part: "dislike", class: "bs-chatbot-response-action__button", "aria-label": "Dislike", onClick: this.onDislikeClick }, h("slot", { key: 'a2c1a4bec00e0e4955003f5bb0c6e05d0ae90b7d', name: "dislike-icon" }, h(ThumbsDownIcon, { key: 'ec84d052150d71a60378d6b706116360db2694e0' }))), h("button", { key: '43791f3aa3f21ee44641da14bf62f1e3d83f97c5', type: "button", part: "copy", class: "bs-chatbot-response-action__button", "aria-label": "Copy", onClick: this.onCopyClick }, h("slot", { key: 'b8ee7f9dbed2b5d4014ef4f2d5d5e2737baf67f6', name: "copy-icon" }, h(CopyIcon, { key: 'd91f9da3cf09a0d760dbf28b3d05d65cd4be0149' }))), h("button", { key: 'fcbbae5cec2ebbb40792afd234459278121fd760', type: "button", part: "regenerate", class: "bs-chatbot-response-action__button", "aria-label": "Regenerate", onClick: this.onRegenerateClick }, h("slot", { key: '13897ba124350a7e793059d22abaed93be7ae40a', name: "regenerate-icon" }, h(RegenerateIcon, { key: 'c13ed7f8452cc16e2cbbb865c16bef71714a42c0' }))), h("div", { key: 'f3d82e7dd0b338fb0095a6b6c54578b20c89fc72', class: "bs-chatbot-response-action__menu-wrapper" }, h("button", { key: 'a42f4457e72ee4585e7f85262597537f7002b46c', type: "button", part: "menu", class: "bs-chatbot-response-action__button", "aria-label": "More options", "aria-haspopup": "menu", "aria-expanded": this.menuOpen ? 'true' : 'false', onClick: this.onMenuClick }, h("slot", { key: '559e8cecfc7a726e1a5bc43211eaee7464087590', name: "menu-icon" }, h(MenuIcon, { key: 'cb768ecba1be7f49dcea247128af0efc5170463d' }))), this.menuOpen && (h("div", { key: 'd98ad7f49789c6ed72c4fea4548ebfa2761346b4', class: "bs-chatbot-response-action__menu-popup" }, h("slot", { key: 'c2c05b8440def40997971b1b464b31ce2f032da4', name: "menu" })))), hasSources && (h("button", { key: '5b813a1f660fb42d0304bc0dda29399f893cd0fd', type: "button", part: "sources", class: "bs-chatbot-response-action__sources", onClick: this.onSourcesClick }, h("slot", { key: 'cee378ade6c52f1ae285320c59e4ddc1c66f924a', name: "sources-icon" }, h(SourcesIcon, { key: 'f18aa44186faa2ab584c129eede0cff65201db85' })), h("span", { key: '89639777df4d3bc6a1c8418887fadb0774ab324e', class: "bs-chatbot-response-action__sources-label" }, this.sourcesCount, " ", this.sourcesCount === 1 ? 'source' : 'sources')))));
108
+ return (h("div", { key: 'a5a577b57036f3507bd382142d59aa5cfb5d1a10', class: "bs-chatbot-response-action" }, h("button", { key: 'd5d7682b13210606a9d73b04666fb5286241a71b', type: "button", part: "like", class: "bs-chatbot-response-action__button", "aria-label": "Like", onClick: this.onLikeClick }, h("slot", { key: '57d73923eaf8ed0ca1f014378316edf17510c466', name: "like-icon" }, h(ThumbsUpIcon, { key: 'e2ecc2cefe28cf928456958a65dfdbe58498a5ed' }))), h("button", { key: '0be83348e74004b96ed3d70747cf80aff49c55b5', type: "button", part: "dislike", class: "bs-chatbot-response-action__button", "aria-label": "Dislike", onClick: this.onDislikeClick }, h("slot", { key: 'a2534fbac754be7c70e2a701409d0a4e3de6f4f3', name: "dislike-icon" }, h(ThumbsDownIcon, { key: 'fd1d3fb6cba214c58ac3aef3c586c9acda898b42' }))), h("button", { key: 'f22e29329216f08ac7239d70be7e2404e5c6cf74', type: "button", part: "copy", class: "bs-chatbot-response-action__button", "aria-label": "Copy", onClick: this.onCopyClick }, h("slot", { key: '5b09286141378e540dad9f1c46cb8955ba6c45a2', name: "copy-icon" }, h(CopyIcon, { key: '89530dbef867c50eb6a89d44e9c1e9f0d0054710' }))), h("button", { key: '8c3795a99e154af1d9c549b33e308ce023ede273', type: "button", part: "regenerate", class: "bs-chatbot-response-action__button", "aria-label": "Regenerate", onClick: this.onRegenerateClick }, h("slot", { key: '44380d96f15e7e34306c671f73445c599b555c2d', name: "regenerate-icon" }, h(RegenerateIcon, { key: '2889133104c33c9534b65ccac3bef2d5e9e62215' }))), h("div", { key: 'a8ca7cae6645d86de3c8cec97327592dc64f84c5', class: "bs-chatbot-response-action__menu-wrapper" }, h("button", { key: '635e247f931a9b850b517a0278f94dec6af06024', type: "button", part: "menu", class: "bs-chatbot-response-action__button", "aria-label": "More options", "aria-haspopup": "menu", "aria-expanded": this.menuOpen ? 'true' : 'false', onClick: this.onMenuClick }, h("slot", { key: 'f6fd17940a559fad1f3fe345932990c25dbbd175', name: "menu-icon" }, h(MenuIcon, { key: '42a1c62cfa3335cb3ff18f786d623fb24b85e22e' }))), this.menuOpen && (h("div", { key: 'dbae73386c940b6634e0b6965e29cebcb22894d4', class: "bs-chatbot-response-action__menu-popup" }, h("slot", { key: '80510a0aaf42bb82c62733f6a1fb0a170cbaafc1', name: "menu" })))), hasSources && (h("button", { key: 'dd97c3a10903a43af26fbc410b70c2d3537978ac', type: "button", part: "sources", class: "bs-chatbot-response-action__sources", onClick: this.onSourcesClick }, h("slot", { key: '6714d2472df74279948428cc21cf1f52b9be30e7', name: "sources-icon" }, h(SourcesIcon, { key: '0b1f75683249b1adf41e0876285ba60bc4798b00' })), h("span", { key: '6d6bcee3ea127b0d184263bad68df17a56f08d5f', class: "bs-chatbot-response-action__sources-label" }, this.sourcesCount, " ", this.sourcesCount === 1 ? 'source' : 'sources')))));
109
109
  }
110
110
  static get is() { return "bs-chatbot-response-action"; }
111
111
  static get encapsulation() { return "shadow"; }
@@ -57,7 +57,7 @@ export class BsChatbotSourcesDrawer {
57
57
  };
58
58
  render() {
59
59
  const displayCount = this.count ?? this.slottedCount;
60
- return (h("div", { key: 'd457067b704c7df5a763ec8ada13f02595e9a450', class: "bs-chatbot-sources-drawer", role: "region", "aria-label": this.heading }, h("div", { key: '7bed0625e25444d49cb2bc2d85bda4b08f242672', class: "bs-chatbot-sources-drawer__header" }, h("div", { key: 'b55ce1be49393360840caa2ed824ae2d3eafab59', class: "bs-chatbot-sources-drawer__title-group" }, h("h2", { key: 'fe97457121b810e09792581e07864c366e5d9121', part: "heading", class: "bs-chatbot-sources-drawer__heading" }, this.heading), displayCount > 0 && (h("span", { key: '41a116982438e62d6d6a870f4eaf8f68d8ff758b', part: "count", class: "bs-chatbot-sources-drawer__count" }, displayCount))), h("button", { key: '5026bcd60e49776abff2305793c9d0424fce8cbb', type: "button", part: "collapse", class: "bs-chatbot-sources-drawer__collapse", "aria-label": "Collapse sources", onClick: this.onCollapseClick }, h("slot", { key: 'f9ca644ea20b7d9b440d766ae93e1ee01a5b451b', name: "collapse-icon" }, h(CaretRightIcon, { key: 'ffa427ee1e25cac7e197c5fb1c44edefb45d328e' })))), h("div", { key: '67b518bd9c1da897d44f607d08200ad0ffca067e', part: "list", class: "bs-chatbot-sources-drawer__list" }, h("slot", { key: '34f904ce8cc9f0924d0c2012fff054faab4cb306', onSlotchange: this.onSlotchange }))));
60
+ return (h("div", { key: 'ab5e52fcb47131dc7892d8ee7f7ed8a4f08b6d09', class: "bs-chatbot-sources-drawer", role: "region", "aria-label": this.heading }, h("div", { key: '8796c29ea6b2526172db45138a0e0ce2a5c42a9a', class: "bs-chatbot-sources-drawer__header" }, h("div", { key: '68c88eda8a6177381f0876a8793df56ac0184f97', class: "bs-chatbot-sources-drawer__title-group" }, h("h2", { key: 'c45cf3bbc19e1b823dc3fb5a4d8054adaaad9cd8', part: "heading", class: "bs-chatbot-sources-drawer__heading" }, this.heading), displayCount > 0 && (h("span", { key: '233322ff5aeec5cd0c83ba8b19dff4d69d3a815f', part: "count", class: "bs-chatbot-sources-drawer__count" }, displayCount))), h("button", { key: '430d248b87ce7f6ec4dfe215e9f5b59f00cfa6f5', type: "button", part: "collapse", class: "bs-chatbot-sources-drawer__collapse", "aria-label": "Collapse sources", onClick: this.onCollapseClick }, h("slot", { key: '653546edda2ca9c971fa81b49073792392f5401b', name: "collapse-icon" }, h(CaretRightIcon, { key: '8b43f2c17ef1604e38ed28bf418493a06671fa3f' })))), h("div", { key: '200db381a1beff3bc3ac3e3851a398c26049a144', part: "list", class: "bs-chatbot-sources-drawer__list" }, h("slot", { key: 'e8f1c5085c069fc007881ae7be228cc3bec50516', onSlotchange: this.onSlotchange }))));
61
61
  }
62
62
  static get is() { return "bs-chatbot-sources-drawer"; }
63
63
  static get encapsulation() { return "shadow"; }
@@ -45,7 +45,7 @@ export class BsChatbotSuggestionButton {
45
45
  this.bsSelect.emit();
46
46
  };
47
47
  render() {
48
- return (h("button", { key: '7e2678988fe2cb407e75e275e51ff11d816dd25a', type: "button", part: "button", class: "bs-chatbot-suggestion-button", disabled: this.disabled, onClick: this.onClick }, h("slot", { key: 'fba2c8b032a6952df37c644129875d44d884603b' })));
48
+ return (h("button", { key: '480879357259eb51958f342800e1a367beea634d', type: "button", part: "button", class: "bs-chatbot-suggestion-button", disabled: this.disabled, onClick: this.onClick }, h("slot", { key: '79c5164455cf06cbb2d4334f27a883c31757878b' })));
49
49
  }
50
50
  static get is() { return "bs-chatbot-suggestion-button"; }
51
51
  static get encapsulation() { return "shadow"; }
@@ -33,7 +33,7 @@ export class BsCheckboxSkeleton {
33
33
  * (unusual) default `bs-checkbox` itself uses. */
34
34
  size = 'lg';
35
35
  render() {
36
- return (h("span", { key: '37e97e41981813fcb9afed02c2f9b8dada09c71a', part: "container", class: "bs-checkbox-skeleton", role: "status", "aria-label": "Loading" }, h("span", { key: '65de48f7ab1695fb5f1aa5c3d95948024ca05f3a', part: "box", class: `bs-checkbox-skeleton__box bs-checkbox-skeleton__box--${this.size}` }), h("span", { key: '72dbe80d166c54bc7bd39d05f790b89a29f31887', part: "label", class: "bs-checkbox-skeleton__label" })));
36
+ return (h("span", { key: '4f03edea0ccdd12a7956d8ea66489aa5ea2049eb', part: "container", class: "bs-checkbox-skeleton", role: "status", "aria-label": "Loading" }, h("span", { key: '35acfd9f5b5f6094d833a339771d02fb7dadecb4', part: "box", class: `bs-checkbox-skeleton__box bs-checkbox-skeleton__box--${this.size}` }), h("span", { key: '6fe0a18b4d34898a8f516c0fb01710c08b30a208', part: "label", class: "bs-checkbox-skeleton__label" })));
37
37
  }
38
38
  static get is() { return "bs-checkbox-skeleton"; }
39
39
  static get encapsulation() { return "shadow"; }
@@ -118,7 +118,7 @@ export class BsCheckbox {
118
118
  "references": {
119
119
  "BsCheckboxSize": {
120
120
  "location": "local",
121
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-checkbox/bs-checkbox.tsx",
121
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-checkbox/bs-checkbox.tsx",
122
122
  "id": "src/components/bs-checkbox/bs-checkbox.tsx::BsCheckboxSize"
123
123
  }
124
124
  }
@@ -92,7 +92,7 @@ export class BsChipFilter {
92
92
  "references": {
93
93
  "BsChipFilterSize": {
94
94
  "location": "local",
95
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-chip/bs-chip-filter/bs-chip-filter.tsx",
95
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-chip/bs-chip-filter/bs-chip-filter.tsx",
96
96
  "id": "src/components/bs-chip/bs-chip-filter/bs-chip-filter.tsx::BsChipFilterSize"
97
97
  }
98
98
  }
@@ -69,7 +69,7 @@ export class BsChipInformative {
69
69
  "references": {
70
70
  "BsChipInformativeColor": {
71
71
  "location": "local",
72
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-chip/bs-chip-informative/bs-chip-informative.tsx",
72
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-chip/bs-chip-informative/bs-chip-informative.tsx",
73
73
  "id": "src/components/bs-chip/bs-chip-informative/bs-chip-informative.tsx::BsChipInformativeColor"
74
74
  }
75
75
  }
@@ -95,7 +95,7 @@ export class BsChipInformative {
95
95
  "references": {
96
96
  "BsChipInformativeSize": {
97
97
  "location": "local",
98
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-chip/bs-chip-informative/bs-chip-informative.tsx",
98
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-chip/bs-chip-informative/bs-chip-informative.tsx",
99
99
  "id": "src/components/bs-chip/bs-chip-informative/bs-chip-informative.tsx::BsChipInformativeSize"
100
100
  }
101
101
  }
@@ -103,7 +103,7 @@ export class BsChipInput {
103
103
  "references": {
104
104
  "BsChipInputSize": {
105
105
  "location": "local",
106
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-chip/bs-chip-input/bs-chip-input.tsx",
106
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-chip/bs-chip-input/bs-chip-input.tsx",
107
107
  "id": "src/components/bs-chip/bs-chip-input/bs-chip-input.tsx::BsChipInputSize"
108
108
  }
109
109
  }
@@ -209,7 +209,7 @@ export class BsComposer {
209
209
  "references": {
210
210
  "BsComposerVariant": {
211
211
  "location": "local",
212
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-composer/bs-composer.tsx",
212
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-composer/bs-composer.tsx",
213
213
  "id": "src/components/bs-composer/bs-composer.tsx::BsComposerVariant"
214
214
  }
215
215
  }
@@ -274,7 +274,7 @@ export class BsComposer {
274
274
  "references": {
275
275
  "BsComposerState": {
276
276
  "location": "local",
277
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-composer/bs-composer.tsx",
277
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-composer/bs-composer.tsx",
278
278
  "id": "src/components/bs-composer/bs-composer.tsx::BsComposerState"
279
279
  }
280
280
  }
@@ -131,7 +131,7 @@ export class BsComposerStatusBanner {
131
131
  "references": {
132
132
  "BsComposerStatusBannerType": {
133
133
  "location": "local",
134
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-composer-status-banner/bs-composer-status-banner.tsx",
134
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-composer-status-banner/bs-composer-status-banner.tsx",
135
135
  "id": "src/components/bs-composer-status-banner/bs-composer-status-banner.tsx::BsComposerStatusBannerType"
136
136
  }
137
137
  }
@@ -90,7 +90,7 @@ export class BsDataTable {
90
90
  "references": {
91
91
  "BsDataTableColumn": {
92
92
  "location": "local",
93
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-data-table/bs-data-table.tsx",
93
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-data-table/bs-data-table.tsx",
94
94
  "id": "src/components/bs-data-table/bs-data-table.tsx::BsDataTableColumn"
95
95
  }
96
96
  }
@@ -114,7 +114,7 @@ export class BsDataTable {
114
114
  "references": {
115
115
  "BsDataTableRow": {
116
116
  "location": "local",
117
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-data-table/bs-data-table.tsx",
117
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-data-table/bs-data-table.tsx",
118
118
  "id": "src/components/bs-data-table/bs-data-table.tsx::BsDataTableRow"
119
119
  }
120
120
  }
@@ -197,12 +197,12 @@ export class BsDataTable {
197
197
  "references": {
198
198
  "BsDataTableRow": {
199
199
  "location": "local",
200
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-data-table/bs-data-table.tsx",
200
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-data-table/bs-data-table.tsx",
201
201
  "id": "src/components/bs-data-table/bs-data-table.tsx::BsDataTableRow"
202
202
  },
203
203
  "BsDataTableColumn": {
204
204
  "location": "local",
205
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-data-table/bs-data-table.tsx",
205
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-data-table/bs-data-table.tsx",
206
206
  "id": "src/components/bs-data-table/bs-data-table.tsx::BsDataTableColumn"
207
207
  }
208
208
  }
@@ -198,7 +198,7 @@ export class BsDialog {
198
198
  "references": {
199
199
  "BsDialogSize": {
200
200
  "location": "local",
201
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-dialog/bs-dialog.tsx",
201
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-dialog/bs-dialog.tsx",
202
202
  "id": "src/components/bs-dialog/bs-dialog.tsx::BsDialogSize"
203
203
  }
204
204
  }
@@ -341,10 +341,10 @@ export class BsInput {
341
341
  return (h("div", { part: "field", class: `bs-input__field bs-input__field--pin ${errorClass} ${disabledClass}` }, Array.from({ length: this.length }).map((_, i) => (h("input", { id: i === 0 ? 'control' : undefined, ref: el => (this.pinInputs[i] = el), part: "control", class: "bs-input__pin-cell", type: "text", inputMode: "numeric", maxLength: 1, value: this.value[i] ?? '', disabled: this.disabled, "aria-required": this.required ? 'true' : undefined, onInput: this.onPinInput(i), onKeyDown: this.onPinKeydown(i) })))));
342
342
  }
343
343
  render() {
344
- return (h("div", { key: '10554d997d7c52834c033e68f1b0b30e823844d6', class: `bs-input ${this.error ? 'bs-input--error' : ''}` }, this.label && (
344
+ return (h("div", { key: '29c5fb5ff9425d70dd8455a191c84812fdc44956', class: `bs-input ${this.error ? 'bs-input--error' : ''}` }, this.label && (
345
345
  // "control" is a fixed id, not a generated one -- safe because Shadow DOM scopes ids
346
346
  // to this instance's own shadow root, so it can never collide with another bs-input.
347
- h("label", { key: 'd5819ef4b34973a510dc7582e32baae4a6da4119', part: "label", class: "bs-input__label", htmlFor: "control" }, this.label, this.required && (h("span", { key: '6c066e8c528133288be0f050f8e7ca5527561cba', part: "required", class: "bs-input__required", "aria-hidden": "true" }, "*")))), this.type === 'pin' ? this.renderPinField() : this.type === 'initials' ? this.renderInitialsField() : this.renderField(), this.error ? (h("span", { id: "description-or-error", part: "error", class: "bs-input__error" }, h("svg", { part: "error-icon", class: "bs-input__error-icon", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true" }, h("circle", { cx: "8", cy: "8", r: "6.5", stroke: "currentColor", "stroke-width": "1.2" }), h("path", { d: "M8 5V8.5", stroke: "currentColor", "stroke-width": "1.2", "stroke-linecap": "round" }), h("circle", { cx: "8", cy: "11", r: "0.75", fill: "currentColor" })), this.error)) : this.description ? (h("span", { id: "description-or-error", part: "description", class: "bs-input__description" }, this.description)) : null));
347
+ h("label", { key: '8da819da9b93e2aec33461677e62dc82021d7a02', part: "label", class: "bs-input__label", htmlFor: "control" }, this.label, this.required && (h("span", { key: '0abd96f57861eb8a8c41cf7181e11f3b44e195e5', part: "required", class: "bs-input__required", "aria-hidden": "true" }, "*")))), this.type === 'pin' ? this.renderPinField() : this.type === 'initials' ? this.renderInitialsField() : this.renderField(), this.error ? (h("span", { id: "description-or-error", part: "error", class: "bs-input__error" }, h("svg", { part: "error-icon", class: "bs-input__error-icon", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true" }, h("circle", { cx: "8", cy: "8", r: "6.5", stroke: "currentColor", "stroke-width": "1.2" }), h("path", { d: "M8 5V8.5", stroke: "currentColor", "stroke-width": "1.2", "stroke-linecap": "round" }), h("circle", { cx: "8", cy: "11", r: "0.75", fill: "currentColor" })), this.error)) : this.description ? (h("span", { id: "description-or-error", part: "description", class: "bs-input__description" }, this.description)) : null));
348
348
  }
349
349
  static get is() { return "bs-input"; }
350
350
  static get encapsulation() { return "shadow"; }
@@ -105,7 +105,7 @@ export class BsLogo {
105
105
  "references": {
106
106
  "BsLogoVariant": {
107
107
  "location": "local",
108
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-logo/bs-logo.tsx",
108
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-logo/bs-logo.tsx",
109
109
  "id": "src/components/bs-logo/bs-logo.tsx::BsLogoVariant"
110
110
  }
111
111
  }
@@ -131,7 +131,7 @@ export class BsLogo {
131
131
  "references": {
132
132
  "BsLogoBackground": {
133
133
  "location": "local",
134
- "path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-logo/bs-logo.tsx",
134
+ "path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-logo/bs-logo.tsx",
135
135
  "id": "src/components/bs-logo/bs-logo.tsx::BsLogoBackground"
136
136
  }
137
137
  }
@@ -22,7 +22,7 @@ import { h } from "@stencil/core";
22
22
  */
23
23
  export class BsMenu {
24
24
  render() {
25
- return (h("div", { key: '23a5c16e982c711bfa9f8e914869601be45812b9', part: "list", class: "bs-menu", role: "menu" }, h("slot", { key: 'a7d9116f56d91721231b3f94e727626c6c221aa8' })));
25
+ return (h("div", { key: 'dd742f65c43d51805fff4b77412e12d8d8704e3f', part: "list", class: "bs-menu", role: "menu" }, h("slot", { key: '395c901d030847b07a0936a16bef43ce4c3931cd' })));
26
26
  }
27
27
  static get is() { return "bs-menu"; }
28
28
  static get encapsulation() { return "shadow"; }
@@ -47,7 +47,7 @@ export class BsMenuItem {
47
47
  this.bsSelect.emit();
48
48
  };
49
49
  render() {
50
- return (h("button", { key: 'f328aa848cc8ae0c908640a23834f3fd8d8ffea7', type: "button", part: "item", role: "menuitem", class: `bs-menu-item ${this.disabled ? 'bs-menu-item--disabled' : ''}`, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : undefined, onClick: this.onClick }, h("span", { key: '75a23a3ee9a9896e2607222b18155651d6ada39f', part: "icon", class: `bs-menu-item__icon ${this.hasIcon ? 'bs-menu-item__icon--has-content' : ''}` }, h("slot", { key: '08d468b52d6913d89f2443e8597a44bfacc4f2ea', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: '148053d9ff48297dfa276ddbf46f57c13675a5c4', part: "label", class: "bs-menu-item__label" }, h("slot", { key: '05d417308229673796e014788f25de2b4c2d4eaf' }))));
50
+ return (h("button", { key: '537a4ef632ef8acf72b0cf7747ade28ba307e1ef', type: "button", part: "item", role: "menuitem", class: `bs-menu-item ${this.disabled ? 'bs-menu-item--disabled' : ''}`, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : undefined, onClick: this.onClick }, h("span", { key: '67bb25d41e2066f9e9d2fd106ebb24b3eecdce63', part: "icon", class: `bs-menu-item__icon ${this.hasIcon ? 'bs-menu-item__icon--has-content' : ''}` }, h("slot", { key: 'df844ec5fefff0e64624681f5fddc245fc18d426', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: 'b657fb13e0a437ecc7300816cbffb91f7668c665', part: "label", class: "bs-menu-item__label" }, h("slot", { key: '273220d5e7c90aae4d677c634f534897c8b980c6' }))));
51
51
  }
52
52
  static get is() { return "bs-menu-item"; }
53
53
  static get encapsulation() { return "shadow"; }
@@ -87,7 +87,7 @@ export class BsPagination {
87
87
  }
88
88
  render() {
89
89
  const pageList = this.getPageList();
90
- return (h("nav", { key: '1a60cd70c34f8d1f8f2d3a8aa62f99d4d38ab462', "aria-label": "Pagination" }, h("ul", { key: '42381f91ef2ebff6c4cc1a9c4ffb28a993931c43', part: "list", class: "bs-pagination__list" }, h("li", { key: '655ad21a3198ea47f85d6dbfa09df9fb05d09e4f', part: "item", class: "bs-pagination__item" }, h("button", { key: '8342d94ae7f7164445a09356acee9ce4d0cb6d1b', part: "prev", type: "button", class: "bs-pagination__control", "aria-label": this.previousLabel, disabled: this.currentPage <= 1, onClick: () => this.goToPage(this.currentPage - 1) }, h(ChevronLeftIcon, { key: '8f7b7a32551781a04c5525dedbeeae586453bb7f' }))), pageList.map((item, index) => item === 'ellipsis' ? (h("li", { part: "item", class: "bs-pagination__item", key: `ellipsis-${index}` }, h("span", { part: "ellipsis", class: "bs-pagination__ellipsis", "aria-hidden": "true" }, h(EllipsisIcon, null)))) : (h("li", { part: "item", class: "bs-pagination__item", key: item }, h("button", { part: item === this.currentPage ? 'page current' : 'page', type: "button", class: `bs-pagination__control bs-pagination__page ${item === this.currentPage ? 'bs-pagination__page--current' : ''}`, "aria-label": `Go to page ${item}`, "aria-current": item === this.currentPage ? 'page' : undefined, onClick: () => this.goToPage(item) }, item)))), h("li", { key: '0a7d4a39c332130e865a16d7f3751db44ea777bb', part: "item", class: "bs-pagination__item" }, h("button", { key: 'e3b5276ca79d150bd8fe89f86973a9fb3458c481', part: "next", type: "button", class: "bs-pagination__control", "aria-label": this.nextLabel, disabled: this.currentPage >= this.safeTotalPages, onClick: () => this.goToPage(this.currentPage + 1) }, h(ChevronRightIcon, { key: 'fe89db6f4c5bbd4fdaa3ee499b448c8603a7f132' }))))));
90
+ return (h("nav", { key: '1cd9579d68bedee2d0e6e04a96a9ac3230ce21b9', "aria-label": "Pagination" }, h("ul", { key: 'c279f92f1f08f17724a59ddd9a9ff6086307deb1', part: "list", class: "bs-pagination__list" }, h("li", { key: 'cec04dcf7f6e1f6be5774b3a68aacf7f2ec27224', part: "item", class: "bs-pagination__item" }, h("button", { key: 'ed917eaac4275e19de2f9bc2e2cfde4ce03fb93e', part: "prev", type: "button", class: "bs-pagination__control", "aria-label": this.previousLabel, disabled: this.currentPage <= 1, onClick: () => this.goToPage(this.currentPage - 1) }, h(ChevronLeftIcon, { key: 'd0448255baeaceb830aa1b4eefc0d065c5730b2e' }))), pageList.map((item, index) => item === 'ellipsis' ? (h("li", { part: "item", class: "bs-pagination__item", key: `ellipsis-${index}` }, h("span", { part: "ellipsis", class: "bs-pagination__ellipsis", "aria-hidden": "true" }, h(EllipsisIcon, null)))) : (h("li", { part: "item", class: "bs-pagination__item", key: item }, h("button", { part: item === this.currentPage ? 'page current' : 'page', type: "button", class: `bs-pagination__control bs-pagination__page ${item === this.currentPage ? 'bs-pagination__page--current' : ''}`, "aria-label": `Go to page ${item}`, "aria-current": item === this.currentPage ? 'page' : undefined, onClick: () => this.goToPage(item) }, item)))), h("li", { key: 'b0acab6503ad12774d3e1fdc9db75a5403439b49', part: "item", class: "bs-pagination__item" }, h("button", { key: 'e8f1fafeb042983b5d2eedbfd9a145337cb91989', part: "next", type: "button", class: "bs-pagination__control", "aria-label": this.nextLabel, disabled: this.currentPage >= this.safeTotalPages, onClick: () => this.goToPage(this.currentPage + 1) }, h(ChevronRightIcon, { key: '4ee1e79e9f3fd68344e871bb376b6027eb50808e' }))))));
91
91
  }
92
92
  static get is() { return "bs-pagination"; }
93
93
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1,96 @@
1
+ import { render, h, describe, it, expect } from "@stencil/vitest";
2
+ // Same math as the component's own private `circumference`/`dashOffset` getters, for computing an
3
+ // expected stroke-dashoffset independently of the implementation.
4
+ const expectedDashOffset = (diameter, strokeWidth, value) => {
5
+ const radius = (diameter - strokeWidth) / 2;
6
+ const circumference = 2 * Math.PI * radius;
7
+ const clamped = Math.min(100, Math.max(0, value));
8
+ return circumference * (1 - clamped / 100);
9
+ };
10
+ describe('bs-progress', () => {
11
+ describe('size/type combinations', () => {
12
+ ['small', 'medium', 'large'].forEach(size => {
13
+ it(`renders size="${size}" type="determinate"`, async () => {
14
+ const { root } = await render(h("bs-progress", { size: size, type: "determinate", value: 40 }));
15
+ expect(root.shadowRoot.querySelector('.bs-progress__ring')).not.toBeNull();
16
+ expect(root.shadowRoot.querySelector('[part="track"]')).not.toBeNull();
17
+ expect(root.shadowRoot.querySelector('[part="arc"]')).not.toBeNull();
18
+ });
19
+ it(`renders size="${size}" type="indeterminate"`, async () => {
20
+ const { root } = await render(h("bs-progress", { size: size, type: "indeterminate" }));
21
+ expect(root.shadowRoot.querySelector('.bs-progress__spinner')).not.toBeNull();
22
+ expect(root.shadowRoot.querySelector('[part="arc"]')).not.toBeNull();
23
+ });
24
+ });
25
+ });
26
+ describe('arc sweep', () => {
27
+ [0, 50, 100].forEach(value => {
28
+ it(`computes stroke-dashoffset for value=${value} at default size/stroke-width`, async () => {
29
+ const { root } = await render(h("bs-progress", { value: value }));
30
+ const arc = root.shadowRoot.querySelector('[part="arc"]');
31
+ const expected = expectedDashOffset(44, 4, value);
32
+ expect(Number(arc.getAttribute('stroke-dashoffset'))).toBeCloseTo(expected, 5);
33
+ });
34
+ });
35
+ it('produces a smaller (non-zero) dashoffset for a larger value', async () => {
36
+ const { root: rootLow } = await render(h("bs-progress", { value: 10 }));
37
+ const { root: rootHigh } = await render(h("bs-progress", { value: 90 }));
38
+ const lowOffset = Number(rootLow.shadowRoot.querySelector('[part="arc"]').getAttribute('stroke-dashoffset'));
39
+ const highOffset = Number(rootHigh.shadowRoot.querySelector('[part="arc"]').getAttribute('stroke-dashoffset'));
40
+ expect(highOffset).toBeLessThan(lowOffset);
41
+ });
42
+ });
43
+ describe('value clamping', () => {
44
+ it('clamps a value above 100 down to 100', async () => {
45
+ const { root } = await render(h("bs-progress", { value: 150 }));
46
+ const label = root.shadowRoot.querySelector('[part="label"]');
47
+ expect(label.textContent).toBe('100%');
48
+ const arc = root.shadowRoot.querySelector('[part="arc"]');
49
+ expect(Number(arc.getAttribute('stroke-dashoffset'))).toBeCloseTo(0, 5);
50
+ });
51
+ it('clamps a negative value up to 0', async () => {
52
+ const { root } = await render(h("bs-progress", { value: -10 }));
53
+ const label = root.shadowRoot.querySelector('[part="label"]');
54
+ expect(label.textContent).toBe('0%');
55
+ const arc = root.shadowRoot.querySelector('[part="arc"]');
56
+ const expected = expectedDashOffset(44, 4, 0);
57
+ expect(Number(arc.getAttribute('stroke-dashoffset'))).toBeCloseTo(expected, 5);
58
+ });
59
+ });
60
+ describe('label', () => {
61
+ it('renders "${value}%" when determinate and showLabel is true (default)', async () => {
62
+ const { root } = await render(h("bs-progress", { value: 42 }));
63
+ const label = root.shadowRoot.querySelector('[part="label"]');
64
+ expect(label).not.toBeNull();
65
+ expect(label.textContent).toBe('42%');
66
+ });
67
+ it('omits the label when showLabel is false', async () => {
68
+ const { root } = await render(h("bs-progress", { value: 42, showLabel: false }));
69
+ expect(root.shadowRoot.querySelector('[part="label"]')).toBeNull();
70
+ });
71
+ it('omits the label when type is indeterminate, even with showLabel true', async () => {
72
+ const { root } = await render(h("bs-progress", { type: "indeterminate", showLabel: true }));
73
+ expect(root.shadowRoot.querySelector('[part="label"]')).toBeNull();
74
+ });
75
+ });
76
+ describe('aria attributes', () => {
77
+ it('sets aria-valuemin/max/now for determinate', async () => {
78
+ const { root } = await render(h("bs-progress", { type: "determinate", value: 65 }));
79
+ const box = root.shadowRoot.querySelector('.bs-progress__box');
80
+ expect(box).toEqualAttribute('role', 'progressbar');
81
+ expect(box).toEqualAttribute('aria-valuemin', '0');
82
+ expect(box).toEqualAttribute('aria-valuemax', '100');
83
+ expect(box).toEqualAttribute('aria-valuenow', '65');
84
+ expect(box.hasAttribute('aria-busy')).toBe(false);
85
+ });
86
+ it('omits aria-valuenow and sets aria-busy for indeterminate', async () => {
87
+ const { root } = await render(h("bs-progress", { type: "indeterminate" }));
88
+ const box = root.shadowRoot.querySelector('.bs-progress__box');
89
+ expect(box).toEqualAttribute('role', 'progressbar');
90
+ expect(box.hasAttribute('aria-valuenow')).toBe(false);
91
+ expect(box.hasAttribute('aria-valuemin')).toBe(false);
92
+ expect(box.hasAttribute('aria-valuemax')).toBe(false);
93
+ expect(box).toEqualAttribute('aria-busy', 'true');
94
+ });
95
+ });
96
+ });
@@ -0,0 +1,119 @@
1
+ /**
2
+ * @prop --bs-progress-gap: Gap between the ring and the label. Aliased to --bs-spacing-100.
3
+ * @prop --bs-progress-track: Track circle color (background ring). Aliased to --bs-neutral-200.
4
+ * @prop --bs-progress-arc: Arc/spinner circle color. Aliased to --bs-color-primary-default (the
5
+ * same brand-blue accent bs-button's primary variant uses).
6
+ * @prop --bs-progress-label-color: Percentage label text color. Aliased to --bs-color-primary-default.
7
+ * @prop --bs-progress-label-font-size-sm: Label font size, size="small"/"medium". Aliased to --bs-fontsize-caption-md.
8
+ * @prop --bs-progress-label-line-height-sm: Label line height, size="small"/"medium". Aliased to --bs-line-height-caption-md.
9
+ * @prop --bs-progress-label-font-size-lg: Label font size, size="large". Aliased to --bs-fontsize-body-md.
10
+ * @prop --bs-progress-label-line-height-lg: Label line height, size="large". Aliased to --bs-line-height-body-md.
11
+ * @prop --bs-progress-label-font-weight: Label font weight. Aliased to --bs-font-weight-medium.
12
+ * @prop --bs-progress-spin-duration: Indeterminate spin duration. Aliased to --bs-duration-slower
13
+ * if defined by brandsync-tokens, otherwise a plain 1.4s fallback.
14
+ */
15
+ :host {
16
+ display: inline-flex;
17
+
18
+ --bs-progress-gap: var(--bs-spacing-100);
19
+ --bs-progress-track: var(--bs-neutral-200);
20
+ --bs-progress-arc: var(--bs-color-primary-default);
21
+ --bs-progress-label-color: var(--bs-color-primary-default);
22
+ --bs-progress-label-font-size-sm: var(--bs-fontsize-caption-md);
23
+ --bs-progress-label-line-height-sm: var(--bs-line-height-caption-md);
24
+ --bs-progress-label-font-size-lg: var(--bs-fontsize-body-md);
25
+ --bs-progress-label-line-height-lg: var(--bs-line-height-body-md);
26
+ --bs-progress-label-font-weight: var(--bs-font-weight-medium);
27
+ --bs-progress-spin-duration: 1.4s;
28
+ }
29
+
30
+ .bs-progress {
31
+ display: inline-flex;
32
+ flex-direction: column;
33
+ align-items: center;
34
+ gap: var(--bs-progress-gap);
35
+ font-family: inherit;
36
+ }
37
+
38
+ .bs-progress__box {
39
+ position: relative;
40
+ display: inline-flex;
41
+ }
42
+
43
+ .bs-progress__ring {
44
+ /* SVG rings are drawn starting at 3 o'clock by default -- rotate -90deg so the determinate
45
+ sweep starts at 12 o'clock, matching the Figma spec. */
46
+ transform: rotate(-90deg);
47
+ overflow: visible;
48
+ }
49
+
50
+ .bs-progress__track {
51
+ stroke: var(--bs-progress-track);
52
+ }
53
+
54
+ .bs-progress__arc {
55
+ stroke: var(--bs-progress-arc);
56
+ transition: stroke-dashoffset 0.3s ease;
57
+ }
58
+
59
+ /* Indeterminate: Figma's ring is a fading "comet tail" (transparent -> solid color) sweeping
60
+ around with a visible gap, not a flat-colored partial arc -- SVG has no angular/conic gradient
61
+ primitive, so this uses a CSS conic-gradient (color varies by angle) for the fade, masked down
62
+ from a solid disc to a ring of exactly `strokeWidth` via a radial-gradient mask, then rotated
63
+ continuously. `--bs-progress-spinner-stroke-width`/`--bs-progress-spinner-sweep` are set
64
+ per-instance inline (they depend on the `strokeWidth` prop). */
65
+ .bs-progress__spinner {
66
+ width: 100%;
67
+ height: 100%;
68
+ border-radius: 50%;
69
+ background: conic-gradient(from 0deg, transparent 0deg, var(--bs-progress-arc) var(--bs-progress-spinner-sweep), transparent var(--bs-progress-spinner-sweep));
70
+ -webkit-mask: radial-gradient(
71
+ farthest-side,
72
+ transparent calc(100% - var(--bs-progress-spinner-stroke-width) - 1px),
73
+ #000 calc(100% - var(--bs-progress-spinner-stroke-width))
74
+ );
75
+ mask: radial-gradient(
76
+ farthest-side,
77
+ transparent calc(100% - var(--bs-progress-spinner-stroke-width) - 1px),
78
+ #000 calc(100% - var(--bs-progress-spinner-stroke-width))
79
+ );
80
+ animation: bs-progress-spin var(--bs-progress-spin-duration) linear infinite;
81
+ }
82
+
83
+ @keyframes bs-progress-spin {
84
+ from {
85
+ transform: rotate(0deg);
86
+ }
87
+ to {
88
+ transform: rotate(360deg);
89
+ }
90
+ }
91
+
92
+ /* Reduced motion: freezing the spin entirely would remove the only visual signal that work is
93
+ still in progress (there's no label for indeterminate to fall back on), so this slows the
94
+ rotation to a slow, low-frequency pulse instead of stopping it -- still obviously "in progress"
95
+ without being motion-sickness-inducing. Same intent as bs-snackbar's spinner, applied as a
96
+ duration change rather than `animation: none` since indeterminate has no static fallback state
97
+ to freeze on. */
98
+ @media (prefers-reduced-motion: reduce) {
99
+ .bs-progress__spinner {
100
+ animation-duration: calc(var(--bs-progress-spin-duration) * 4);
101
+ }
102
+ }
103
+
104
+ .bs-progress__label {
105
+ color: var(--bs-progress-label-color);
106
+ font-weight: var(--bs-progress-label-font-weight);
107
+ text-align: center;
108
+ }
109
+
110
+ .bs-progress__label--small,
111
+ .bs-progress__label--medium {
112
+ font-size: var(--bs-progress-label-font-size-sm);
113
+ line-height: calc(var(--bs-progress-label-line-height-sm) * 1px);
114
+ }
115
+
116
+ .bs-progress__label--large {
117
+ font-size: var(--bs-progress-label-font-size-lg);
118
+ line-height: calc(var(--bs-progress-label-line-height-lg) * 1px);
119
+ }