@brandsync/wc 1.10.0 → 1.12.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 (443) hide show
  1. package/CHANGELOG.md +155 -0
  2. package/custom-elements.json +8333 -4134
  3. package/dist/brandsync-wc/brandsync-wc.css +33 -0
  4. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  5. package/dist/brandsync-wc/{p-9f8852a0.entry.js → p-00a0d489.entry.js} +1 -1
  6. package/dist/brandsync-wc/{p-360452c2.entry.js → p-09435f41.entry.js} +1 -1
  7. package/dist/brandsync-wc/{p-dbcbe682.entry.js → p-09bc1923.entry.js} +1 -1
  8. package/dist/brandsync-wc/{p-1f7208cb.entry.js → p-09cbf05b.entry.js} +1 -1
  9. package/dist/brandsync-wc/{p-c99b6a66.entry.js → p-0b2d3b7e.entry.js} +1 -1
  10. package/dist/brandsync-wc/p-0b7c77c1.entry.js +1 -0
  11. package/dist/brandsync-wc/p-0ee4126c.entry.js +1 -0
  12. package/dist/brandsync-wc/{p-5f3cd501.entry.js → p-0f8cd2e8.entry.js} +1 -1
  13. package/dist/brandsync-wc/{p-1c0db4d6.entry.js → p-1261f0b0.entry.js} +1 -1
  14. package/dist/brandsync-wc/{p-b2074a32.entry.js → p-1978e63c.entry.js} +1 -1
  15. package/dist/brandsync-wc/p-1aab6d07.entry.js +1 -0
  16. package/dist/brandsync-wc/{p-96ed9386.entry.js → p-20030f4d.entry.js} +1 -1
  17. package/dist/brandsync-wc/p-2177042f.entry.js +1 -0
  18. package/dist/brandsync-wc/{p-a8e2a829.entry.js → p-2368a92e.entry.js} +1 -1
  19. package/dist/brandsync-wc/{p-2e958566.entry.js → p-247e36ad.entry.js} +1 -1
  20. package/dist/brandsync-wc/p-2497d128.entry.js +1 -0
  21. package/dist/brandsync-wc/{p-701ebf4a.entry.js → p-282ddbee.entry.js} +1 -1
  22. package/dist/brandsync-wc/{p-763876f5.entry.js → p-2f4e08e1.entry.js} +1 -1
  23. package/dist/brandsync-wc/{p-c3f72584.entry.js → p-34e5feaf.entry.js} +1 -1
  24. package/dist/brandsync-wc/{p-ea4e20ef.entry.js → p-39a26c64.entry.js} +1 -1
  25. package/dist/brandsync-wc/p-3a1af63a.entry.js +1 -0
  26. package/dist/brandsync-wc/{p-9f6fe37d.entry.js → p-3f09296a.entry.js} +1 -1
  27. package/dist/brandsync-wc/p-416322bd.entry.js +1 -0
  28. package/dist/brandsync-wc/{p-f89de457.entry.js → p-452f9c1c.entry.js} +1 -1
  29. package/dist/brandsync-wc/{p-bbcc47b0.entry.js → p-491b51e6.entry.js} +1 -1
  30. package/dist/brandsync-wc/p-52cb2358.entry.js +1 -0
  31. package/dist/brandsync-wc/{p-daab6b22.entry.js → p-56c37e0a.entry.js} +1 -1
  32. package/dist/brandsync-wc/p-5ba90a13.entry.js +1 -0
  33. package/dist/brandsync-wc/{p-08c99a60.entry.js → p-617bd13a.entry.js} +1 -1
  34. package/dist/brandsync-wc/p-68fcd4a4.entry.js +1 -0
  35. package/dist/brandsync-wc/{p-9e88f19c.entry.js → p-69c0a85d.entry.js} +1 -1
  36. package/dist/brandsync-wc/{p-d3f44cb7.entry.js → p-6a696161.entry.js} +1 -1
  37. package/dist/brandsync-wc/{p-32cd69f1.entry.js → p-6c6cdf77.entry.js} +1 -1
  38. package/dist/brandsync-wc/{p-041776c0.entry.js → p-6e735e37.entry.js} +1 -1
  39. package/dist/brandsync-wc/{p-fc58c663.entry.js → p-73f214ed.entry.js} +1 -1
  40. package/dist/brandsync-wc/{p-be2c1740.entry.js → p-7796b93f.entry.js} +1 -1
  41. package/dist/brandsync-wc/p-78a69a59.entry.js +1 -0
  42. package/dist/brandsync-wc/{p-f370b8fa.entry.js → p-78f4fcf0.entry.js} +1 -1
  43. package/dist/brandsync-wc/p-7f954939.entry.js +1 -0
  44. package/dist/brandsync-wc/{p-835a8dc7.entry.js → p-81605b82.entry.js} +1 -1
  45. package/dist/brandsync-wc/{p-a71d2811.entry.js → p-823ab3b2.entry.js} +1 -1
  46. package/dist/brandsync-wc/{p-2181378f.entry.js → p-83c90489.entry.js} +1 -1
  47. package/dist/brandsync-wc/p-89099a39.entry.js +1 -0
  48. package/dist/brandsync-wc/{p-a92eec48.entry.js → p-89fabf27.entry.js} +1 -1
  49. package/dist/brandsync-wc/{p-AgoOSYvW.js → p-DqQRXQMx.js} +2 -2
  50. package/dist/brandsync-wc/{p-18c3c22c.entry.js → p-a9169157.entry.js} +1 -1
  51. package/dist/brandsync-wc/{p-301b2455.entry.js → p-b84366a7.entry.js} +1 -1
  52. package/dist/brandsync-wc/{p-a5feaad4.entry.js → p-b8d2ce91.entry.js} +1 -1
  53. package/dist/brandsync-wc/p-b9a4042e.entry.js +1 -0
  54. package/dist/brandsync-wc/{p-275072dd.entry.js → p-b9ccd9d1.entry.js} +1 -1
  55. package/dist/brandsync-wc/{p-61c1a2a3.entry.js → p-be3dd446.entry.js} +1 -1
  56. package/dist/brandsync-wc/{p-8eba7f90.entry.js → p-d754ee13.entry.js} +1 -1
  57. package/dist/brandsync-wc/{p-e9b43754.entry.js → p-d75f3f87.entry.js} +1 -1
  58. package/dist/brandsync-wc/{p-e8a5b8eb.entry.js → p-d8b29a53.entry.js} +1 -1
  59. package/dist/brandsync-wc/p-de110ad0.entry.js +1 -0
  60. package/dist/brandsync-wc/p-e2556b4e.entry.js +1 -0
  61. package/dist/brandsync-wc/{p-af2bf957.entry.js → p-e5daa6ca.entry.js} +1 -1
  62. package/dist/brandsync-wc/{p-0132a2d1.entry.js → p-f15d9524.entry.js} +1 -1
  63. package/dist/brandsync-wc/p-f5180578.entry.js +1 -0
  64. package/dist/brandsync-wc/{p-fd254972.entry.js → p-f7d15fbe.entry.js} +1 -1
  65. package/dist/brandsync-wc/{p-50a251a4.entry.js → p-fc069773.entry.js} +1 -1
  66. package/dist/brandsync-wc/p-fcee0dc4.entry.js +1 -0
  67. package/dist/cjs/brandsync-wc.cjs.js +2 -2
  68. package/dist/cjs/bs-accordion.cjs.entry.js +1 -1
  69. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +2 -2
  70. package/dist/cjs/bs-ai-greeting.cjs.entry.js +2 -2
  71. package/dist/cjs/bs-ai-thinking.cjs.entry.js +2 -2
  72. package/dist/cjs/bs-attachment-list.cjs.entry.js +2 -2
  73. package/dist/cjs/bs-attachment.cjs.entry.js +1 -1
  74. package/dist/cjs/bs-avatar.cjs.entry.js +1 -1
  75. package/dist/cjs/bs-badge.cjs.entry.js +1 -1
  76. package/dist/cjs/bs-breadcrumb-overflow.cjs.entry.js +1 -1
  77. package/dist/cjs/bs-breadcrumb.cjs.entry.js +6 -3
  78. package/dist/cjs/bs-breadcrumbs.cjs.entry.js +2 -2
  79. package/dist/cjs/bs-button-skeleton.cjs.entry.js +2 -2
  80. package/dist/cjs/bs-button.cjs.entry.js +3 -3
  81. package/dist/cjs/bs-card.cjs.entry.js +3 -3
  82. package/dist/cjs/bs-carousel.cjs.entry.js +1 -1
  83. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +2 -2
  84. package/dist/cjs/bs-chatbot-header.cjs.entry.js +3 -3
  85. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +2 -2
  86. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +2 -2
  87. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +2 -2
  88. package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +2 -2
  89. package/dist/cjs/bs-checkbox.cjs.entry.js +1 -1
  90. package/dist/cjs/bs-chip-filter.cjs.entry.js +1 -1
  91. package/dist/cjs/bs-chip-informative.cjs.entry.js +1 -1
  92. package/dist/cjs/bs-chip-input.cjs.entry.js +1 -1
  93. package/dist/cjs/bs-composer-status-banner.cjs.entry.js +1 -1
  94. package/dist/cjs/bs-composer.cjs.entry.js +2 -2
  95. package/dist/cjs/bs-cookie-consent.cjs.entry.js +186 -0
  96. package/dist/cjs/bs-data-table.cjs.entry.js +1 -1
  97. package/dist/cjs/bs-datepicker.cjs.entry.js +13 -9
  98. package/dist/cjs/bs-dialog.cjs.entry.js +1 -1
  99. package/dist/cjs/bs-error-page.cjs.entry.js +103 -0
  100. package/dist/cjs/bs-file-upload-item.cjs.entry.js +2 -2
  101. package/dist/cjs/bs-file-upload.cjs.entry.js +2 -2
  102. package/dist/cjs/bs-icon-button.cjs.entry.js +2 -2
  103. package/dist/cjs/bs-icon-tile.cjs.entry.js +52 -0
  104. package/dist/cjs/bs-inline-tab.cjs.entry.js +2 -2
  105. package/dist/cjs/{bs-input_2.cjs.entry.js → bs-input_3.cjs.entry.js} +42 -6
  106. package/dist/cjs/bs-logo.cjs.entry.js +1 -1
  107. package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +2 -2
  108. package/dist/cjs/bs-navigation-drawer.cjs.entry.js +3 -3
  109. package/dist/cjs/bs-navigation-header.cjs.entry.js +2 -2
  110. package/dist/cjs/bs-onboarding-checklist.cjs.entry.js +161 -0
  111. package/dist/cjs/bs-pagination.cjs.entry.js +2 -2
  112. package/dist/cjs/bs-product-tour.cjs.entry.js +78 -0
  113. package/dist/cjs/bs-progress-linear.cjs.entry.js +4 -4
  114. package/dist/cjs/bs-progress.cjs.entry.js +3 -3
  115. package/dist/cjs/bs-qr-code.cjs.entry.js +148 -0
  116. package/dist/cjs/bs-radio.cjs.entry.js +2 -2
  117. package/dist/cjs/bs-session-timeout.cjs.entry.js +215 -0
  118. package/dist/cjs/bs-slider.cjs.entry.js +2 -2
  119. package/dist/cjs/bs-snackbar.cjs.entry.js +9 -3
  120. package/dist/cjs/bs-source-link.cjs.entry.js +3 -3
  121. package/dist/cjs/bs-stepper-step.cjs.entry.js +2 -2
  122. package/dist/cjs/bs-stepper.cjs.entry.js +2 -2
  123. package/dist/cjs/bs-switch.cjs.entry.js +2 -2
  124. package/dist/cjs/bs-tab_3.cjs.entry.js +255 -0
  125. package/dist/cjs/bs-timepicker.cjs.entry.js +4 -4
  126. package/dist/cjs/bs-toast.cjs.entry.js +2 -2
  127. package/dist/cjs/bs-tooltip.cjs.entry.js +2 -2
  128. package/dist/cjs/bs-whats-new.cjs.entry.js +144 -0
  129. package/dist/cjs/{index-kk9YXF2S.js → index-tFJjflK5.js} +15 -3
  130. package/dist/cjs/loader.cjs.js +2 -2
  131. package/dist/collection/collection-manifest.json +9 -0
  132. package/dist/collection/components/bs-a11y.cmp.test.js +22 -0
  133. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
  134. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
  135. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
  136. package/dist/collection/components/bs-attachment/bs-attachment.stories.js +4 -3
  137. package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
  138. package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.js +6 -3
  139. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
  140. package/dist/collection/components/bs-button/bs-button/bs-button.cmp.test.js +28 -0
  141. package/dist/collection/components/bs-button/bs-button/bs-button.css +8 -2
  142. package/dist/collection/components/bs-button/bs-button/bs-button.js +4 -1
  143. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +1 -1
  144. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
  145. package/dist/collection/components/bs-card/bs-card.cmp.test.js +48 -0
  146. package/dist/collection/components/bs-card/bs-card.css +37 -16
  147. package/dist/collection/components/bs-card/bs-card.js +2 -2
  148. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
  149. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.cmp.test.js +2 -2
  150. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.css +1 -1
  151. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
  152. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
  153. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
  154. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
  155. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
  156. package/dist/collection/components/bs-composer/bs-composer.css +4 -2
  157. package/dist/collection/components/bs-cookie-consent/bs-cookie-consent.cmp.test.js +217 -0
  158. package/dist/collection/components/bs-cookie-consent/bs-cookie-consent.css +350 -0
  159. package/dist/collection/components/bs-cookie-consent/bs-cookie-consent.js +668 -0
  160. package/dist/collection/components/bs-cookie-consent/bs-cookie-consent.stories.js +103 -0
  161. package/dist/collection/components/bs-datepicker/bs-datepicker.cmp.test.js +9 -0
  162. package/dist/collection/components/bs-datepicker/bs-datepicker.css +21 -11
  163. package/dist/collection/components/bs-datepicker/bs-datepicker.js +13 -7
  164. package/dist/collection/components/bs-datepicker/bs-datepicker.stories.js +3 -2
  165. package/dist/collection/components/bs-error-page/bs-error-page.cmp.test.js +99 -0
  166. package/dist/collection/components/bs-error-page/bs-error-page.css +105 -0
  167. package/dist/collection/components/bs-error-page/bs-error-page.js +328 -0
  168. package/dist/collection/components/bs-error-page/bs-error-page.stories.js +57 -0
  169. package/dist/collection/components/bs-file-upload/bs-file-upload.js +1 -1
  170. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.js +1 -1
  171. package/dist/collection/components/bs-icon-tile/bs-icon-tile.cmp.test.js +175 -0
  172. package/dist/collection/components/bs-icon-tile/bs-icon-tile.css +112 -0
  173. package/dist/collection/components/bs-icon-tile/bs-icon-tile.js +158 -0
  174. package/dist/collection/components/bs-icon-tile/bs-icon-tile.stories.js +45 -0
  175. package/dist/collection/components/bs-input/bs-input.cmp.test.js +16 -2
  176. package/dist/collection/components/bs-input/bs-input.css +15 -23
  177. package/dist/collection/components/bs-input/bs-input.js +8 -4
  178. package/dist/collection/components/bs-menu/bs-menu.js +1 -1
  179. package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
  180. package/dist/collection/components/bs-onboarding-checklist/bs-onboarding-checklist.cmp.test.js +280 -0
  181. package/dist/collection/components/bs-onboarding-checklist/bs-onboarding-checklist.css +488 -0
  182. package/dist/collection/components/bs-onboarding-checklist/bs-onboarding-checklist.js +674 -0
  183. package/dist/collection/components/bs-onboarding-checklist/bs-onboarding-checklist.stories.js +92 -0
  184. package/dist/collection/components/bs-pagination/bs-pagination.js +1 -1
  185. package/dist/collection/components/bs-product-tour/bs-product-tour.cmp.test.js +116 -0
  186. package/dist/collection/components/bs-product-tour/bs-product-tour.css +265 -0
  187. package/dist/collection/components/bs-product-tour/bs-product-tour.js +391 -0
  188. package/dist/collection/components/bs-product-tour/bs-product-tour.stories.js +68 -0
  189. package/dist/collection/components/bs-progress/bs-progress.js +2 -2
  190. package/dist/collection/components/bs-progress-linear/bs-progress-linear.css +1 -1
  191. package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +2 -2
  192. package/dist/collection/components/bs-qr-code/bs-qr-code.cmp.test.js +152 -0
  193. package/dist/collection/components/bs-qr-code/bs-qr-code.css +307 -0
  194. package/dist/collection/components/bs-qr-code/bs-qr-code.js +767 -0
  195. package/dist/collection/components/bs-qr-code/bs-qr-code.stories.js +99 -0
  196. package/dist/collection/components/bs-radio/bs-radio.js +1 -1
  197. package/dist/collection/components/bs-session-timeout/bs-session-timeout.cmp.test.js +202 -0
  198. package/dist/collection/components/bs-session-timeout/bs-session-timeout.css +239 -0
  199. package/dist/collection/components/bs-session-timeout/bs-session-timeout.js +772 -0
  200. package/dist/collection/components/bs-session-timeout/bs-session-timeout.stories.js +88 -0
  201. package/dist/collection/components/bs-slider/bs-slider.js +1 -1
  202. package/dist/collection/components/bs-snackbar/bs-snackbar.cmp.test.js +20 -0
  203. package/dist/collection/components/bs-snackbar/bs-snackbar.css +6 -4
  204. package/dist/collection/components/bs-snackbar/bs-snackbar.js +53 -1
  205. package/dist/collection/components/bs-source-link/bs-source-link.js +2 -2
  206. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +1 -1
  207. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +1 -1
  208. package/dist/collection/components/bs-switch/bs-switch.js +1 -1
  209. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +1 -1
  210. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +1 -1
  211. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +1 -1
  212. package/dist/collection/components/bs-timepicker/bs-timepicker.css +15 -11
  213. package/dist/collection/components/bs-timepicker/bs-timepicker.js +4 -2
  214. package/dist/collection/components/bs-toast/bs-toast.js +1 -1
  215. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  216. package/dist/collection/components/bs-whats-new/bs-whats-new.cmp.test.js +200 -0
  217. package/dist/collection/components/bs-whats-new/bs-whats-new.css +315 -0
  218. package/dist/collection/components/bs-whats-new/bs-whats-new.js +790 -0
  219. package/dist/collection/components/bs-whats-new/bs-whats-new.stories.js +105 -0
  220. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.cmp.test.js +79 -0
  221. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.css +131 -0
  222. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.js +295 -0
  223. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.stories.js +67 -0
  224. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +2 -2
  225. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
  226. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +1 -1
  227. package/dist/components/bs-accordion.js +1 -1
  228. package/dist/components/bs-ai-disclaimer.js +1 -1
  229. package/dist/components/bs-ai-greeting.js +1 -1
  230. package/dist/components/bs-ai-thinking.js +1 -1
  231. package/dist/components/bs-attachment-list.js +1 -1
  232. package/dist/components/bs-attachment.js +1 -1
  233. package/dist/components/bs-avatar.js +1 -1
  234. package/dist/components/bs-badge.js +1 -1
  235. package/dist/components/bs-breadcrumb-overflow.js +1 -1
  236. package/dist/components/bs-breadcrumb.js +1 -1
  237. package/dist/components/bs-breadcrumbs.js +1 -1
  238. package/dist/components/bs-button-skeleton.js +1 -1
  239. package/dist/components/bs-button.js +1 -1
  240. package/dist/components/bs-card.js +1 -1
  241. package/dist/components/bs-carousel.js +1 -1
  242. package/dist/components/bs-chatbot-feedback.js +1 -1
  243. package/dist/components/bs-chatbot-header.js +1 -1
  244. package/dist/components/bs-chatbot-response-action.js +1 -1
  245. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  246. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  247. package/dist/components/bs-checkbox-skeleton.js +1 -1
  248. package/dist/components/bs-checkbox.js +1 -1
  249. package/dist/components/bs-chip-filter.js +1 -1
  250. package/dist/components/bs-chip-informative.js +1 -1
  251. package/dist/components/bs-chip-input.js +1 -1
  252. package/dist/components/bs-composer-status-banner.js +1 -1
  253. package/dist/components/bs-composer.js +1 -1
  254. package/dist/components/bs-cookie-consent.d.ts +11 -0
  255. package/dist/components/bs-cookie-consent.js +1 -0
  256. package/dist/components/bs-data-table.js +1 -1
  257. package/dist/components/bs-datepicker.js +1 -1
  258. package/dist/components/bs-dialog.js +1 -1
  259. package/dist/components/bs-error-page.d.ts +11 -0
  260. package/dist/components/bs-error-page.js +1 -0
  261. package/dist/components/bs-file-upload-item.js +1 -1
  262. package/dist/components/bs-file-upload.js +1 -1
  263. package/dist/components/bs-icon-button.js +1 -1
  264. package/dist/components/bs-icon-tile.d.ts +11 -0
  265. package/dist/components/bs-icon-tile.js +1 -0
  266. package/dist/components/bs-inline-tab.js +1 -1
  267. package/dist/components/bs-input.js +1 -1
  268. package/dist/components/bs-logo.js +1 -1
  269. package/dist/components/bs-menu-item.js +1 -1
  270. package/dist/components/bs-menu.js +1 -1
  271. package/dist/components/bs-navigation-drawer-item.js +1 -1
  272. package/dist/components/bs-navigation-drawer.js +1 -1
  273. package/dist/components/bs-navigation-header.js +1 -1
  274. package/dist/components/bs-onboarding-checklist.d.ts +11 -0
  275. package/dist/components/bs-onboarding-checklist.js +1 -0
  276. package/dist/components/bs-pagination.js +1 -1
  277. package/dist/components/bs-product-tour.d.ts +11 -0
  278. package/dist/components/bs-product-tour.js +1 -0
  279. package/dist/components/bs-progress-linear.js +1 -1
  280. package/dist/components/bs-progress.js +1 -1
  281. package/dist/components/bs-qr-code.d.ts +11 -0
  282. package/dist/components/bs-qr-code.js +1 -0
  283. package/dist/components/bs-radio.js +1 -1
  284. package/dist/components/bs-session-timeout.d.ts +11 -0
  285. package/dist/components/bs-session-timeout.js +1 -0
  286. package/dist/components/bs-slider.js +1 -1
  287. package/dist/components/bs-snackbar.js +1 -1
  288. package/dist/components/bs-source-link.js +1 -1
  289. package/dist/components/bs-stepper-step.js +1 -1
  290. package/dist/components/bs-stepper.js +1 -1
  291. package/dist/components/bs-switch.js +1 -1
  292. package/dist/components/bs-tab.js +1 -1
  293. package/dist/components/bs-tabs.js +1 -1
  294. package/dist/components/bs-timepicker.js +1 -1
  295. package/dist/components/bs-toast.js +1 -1
  296. package/dist/components/bs-tooltip.js +1 -1
  297. package/dist/components/bs-whats-new-entry.d.ts +11 -0
  298. package/dist/components/bs-whats-new-entry.js +1 -0
  299. package/dist/components/bs-whats-new.d.ts +11 -0
  300. package/dist/components/bs-whats-new.js +1 -0
  301. package/dist/components/index.js +1 -1
  302. package/dist/components/{p-R2MlkUzD.js → p-BEEoVNRu.js} +1 -1
  303. package/dist/components/p-BUskqBR6.js +1 -0
  304. package/dist/components/{p-DkIVyFOP.js → p-BZ3M4lOU.js} +1 -1
  305. package/dist/components/{p-ZK8p5zax.js → p-Be9L4_Fe.js} +1 -1
  306. package/dist/components/p-Be_Pmccm.js +1 -0
  307. package/dist/components/{p-CPvqZNO8.js → p-Bl_tVzeq.js} +1 -1
  308. package/dist/components/p-C8yT2Ucq.js +1 -0
  309. package/dist/components/p-CA31vqjL.js +1 -0
  310. package/dist/components/p-CUfs0ROR.js +1 -0
  311. package/dist/components/{p-JYlmcxBn.js → p-CVrEuVFo.js} +1 -1
  312. package/dist/components/{p-B7Icv1ho.js → p-C_j_jDM6.js} +1 -1
  313. package/dist/components/p-CbimDNGY.js +1 -0
  314. package/dist/components/p-CeUK3n7D.js +1 -0
  315. package/dist/components/p-CncySD_-.js +1 -0
  316. package/dist/components/p-DE8K7fg0.js +1 -0
  317. package/dist/components/p-Dr0Qk9Zc.js +1 -0
  318. package/dist/components/p-DuLL7Ouw.js +1 -0
  319. package/dist/components/p-YsHQLXET.js +1 -0
  320. package/dist/components/p-qmS2CBqi.js +1 -0
  321. package/dist/components/{p-BYR_ZC8v.js → p-zTHlbyH6.js} +1 -1
  322. package/dist/esm/brandsync-wc.js +3 -3
  323. package/dist/esm/bs-accordion.entry.js +1 -1
  324. package/dist/esm/bs-ai-disclaimer.entry.js +2 -2
  325. package/dist/esm/bs-ai-greeting.entry.js +2 -2
  326. package/dist/esm/bs-ai-thinking.entry.js +2 -2
  327. package/dist/esm/bs-attachment-list.entry.js +2 -2
  328. package/dist/esm/bs-attachment.entry.js +1 -1
  329. package/dist/esm/bs-avatar.entry.js +1 -1
  330. package/dist/esm/bs-badge.entry.js +1 -1
  331. package/dist/esm/bs-breadcrumb-overflow.entry.js +1 -1
  332. package/dist/esm/bs-breadcrumb.entry.js +6 -3
  333. package/dist/esm/bs-breadcrumbs.entry.js +2 -2
  334. package/dist/esm/bs-button-skeleton.entry.js +2 -2
  335. package/dist/esm/bs-button.entry.js +3 -3
  336. package/dist/esm/bs-card.entry.js +3 -3
  337. package/dist/esm/bs-carousel.entry.js +1 -1
  338. package/dist/esm/bs-chatbot-feedback.entry.js +2 -2
  339. package/dist/esm/bs-chatbot-header.entry.js +3 -3
  340. package/dist/esm/bs-chatbot-response-action.entry.js +2 -2
  341. package/dist/esm/bs-chatbot-sources-drawer.entry.js +2 -2
  342. package/dist/esm/bs-chatbot-suggestion-button.entry.js +2 -2
  343. package/dist/esm/bs-checkbox-skeleton.entry.js +2 -2
  344. package/dist/esm/bs-checkbox.entry.js +1 -1
  345. package/dist/esm/bs-chip-filter.entry.js +1 -1
  346. package/dist/esm/bs-chip-informative.entry.js +1 -1
  347. package/dist/esm/bs-chip-input.entry.js +1 -1
  348. package/dist/esm/bs-composer-status-banner.entry.js +1 -1
  349. package/dist/esm/bs-composer.entry.js +2 -2
  350. package/dist/esm/bs-cookie-consent.entry.js +184 -0
  351. package/dist/esm/bs-data-table.entry.js +1 -1
  352. package/dist/esm/bs-datepicker.entry.js +13 -9
  353. package/dist/esm/bs-dialog.entry.js +1 -1
  354. package/dist/esm/bs-error-page.entry.js +101 -0
  355. package/dist/esm/bs-file-upload-item.entry.js +2 -2
  356. package/dist/esm/bs-file-upload.entry.js +2 -2
  357. package/dist/esm/bs-icon-button.entry.js +2 -2
  358. package/dist/esm/bs-icon-tile.entry.js +50 -0
  359. package/dist/esm/bs-inline-tab.entry.js +2 -2
  360. package/dist/esm/{bs-input_2.entry.js → bs-input_3.entry.js} +42 -7
  361. package/dist/esm/bs-logo.entry.js +1 -1
  362. package/dist/esm/bs-navigation-drawer-item.entry.js +2 -2
  363. package/dist/esm/bs-navigation-drawer.entry.js +3 -3
  364. package/dist/esm/bs-navigation-header.entry.js +2 -2
  365. package/dist/esm/bs-onboarding-checklist.entry.js +159 -0
  366. package/dist/esm/bs-pagination.entry.js +2 -2
  367. package/dist/esm/bs-product-tour.entry.js +76 -0
  368. package/dist/esm/bs-progress-linear.entry.js +4 -4
  369. package/dist/esm/bs-progress.entry.js +3 -3
  370. package/dist/esm/bs-qr-code.entry.js +146 -0
  371. package/dist/esm/bs-radio.entry.js +2 -2
  372. package/dist/esm/bs-session-timeout.entry.js +213 -0
  373. package/dist/esm/bs-slider.entry.js +2 -2
  374. package/dist/esm/bs-snackbar.entry.js +9 -3
  375. package/dist/esm/bs-source-link.entry.js +3 -3
  376. package/dist/esm/bs-stepper-step.entry.js +2 -2
  377. package/dist/esm/bs-stepper.entry.js +2 -2
  378. package/dist/esm/bs-switch.entry.js +2 -2
  379. package/dist/esm/bs-tab_3.entry.js +251 -0
  380. package/dist/esm/bs-timepicker.entry.js +4 -4
  381. package/dist/esm/bs-toast.entry.js +2 -2
  382. package/dist/esm/bs-tooltip.entry.js +2 -2
  383. package/dist/esm/bs-whats-new.entry.js +142 -0
  384. package/dist/esm/{index-AgoOSYvW.js → index-DqQRXQMx.js} +15 -3
  385. package/dist/esm/loader.js +3 -3
  386. package/dist/types/components/bs-attachment/bs-attachment.stories.d.ts +1 -1
  387. package/dist/types/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.d.ts +4 -1
  388. package/dist/types/components/bs-button/bs-button/bs-button.d.ts +3 -0
  389. package/dist/types/components/bs-cookie-consent/bs-cookie-consent.cmp.test.d.ts +1 -0
  390. package/dist/types/components/bs-cookie-consent/bs-cookie-consent.d.ts +136 -0
  391. package/dist/types/components/bs-cookie-consent/bs-cookie-consent.stories.d.ts +16 -0
  392. package/dist/types/components/bs-datepicker/bs-datepicker.d.ts +2 -0
  393. package/dist/types/components/bs-error-page/bs-error-page.cmp.test.d.ts +1 -0
  394. package/dist/types/components/bs-error-page/bs-error-page.d.ts +60 -0
  395. package/dist/types/components/bs-error-page/bs-error-page.stories.d.ts +22 -0
  396. package/dist/types/components/bs-icon-tile/bs-icon-tile.cmp.test.d.ts +1 -0
  397. package/dist/types/components/bs-icon-tile/bs-icon-tile.d.ts +40 -0
  398. package/dist/types/components/bs-icon-tile/bs-icon-tile.stories.d.ts +13 -0
  399. package/dist/types/components/bs-input/bs-input.d.ts +4 -1
  400. package/dist/types/components/bs-onboarding-checklist/bs-onboarding-checklist.cmp.test.d.ts +1 -0
  401. package/dist/types/components/bs-onboarding-checklist/bs-onboarding-checklist.d.ts +140 -0
  402. package/dist/types/components/bs-onboarding-checklist/bs-onboarding-checklist.stories.d.ts +18 -0
  403. package/dist/types/components/bs-product-tour/bs-product-tour.cmp.test.d.ts +1 -0
  404. package/dist/types/components/bs-product-tour/bs-product-tour.d.ts +78 -0
  405. package/dist/types/components/bs-product-tour/bs-product-tour.stories.d.ts +19 -0
  406. package/dist/types/components/bs-qr-code/bs-qr-code.cmp.test.d.ts +1 -0
  407. package/dist/types/components/bs-qr-code/bs-qr-code.d.ts +124 -0
  408. package/dist/types/components/bs-qr-code/bs-qr-code.stories.d.ts +28 -0
  409. package/dist/types/components/bs-session-timeout/bs-session-timeout.cmp.test.d.ts +1 -0
  410. package/dist/types/components/bs-session-timeout/bs-session-timeout.d.ts +141 -0
  411. package/dist/types/components/bs-session-timeout/bs-session-timeout.stories.d.ts +19 -0
  412. package/dist/types/components/bs-snackbar/bs-snackbar.d.ts +7 -0
  413. package/dist/types/components/bs-timepicker/bs-timepicker.d.ts +2 -0
  414. package/dist/types/components/bs-whats-new/bs-whats-new.cmp.test.d.ts +1 -0
  415. package/dist/types/components/bs-whats-new/bs-whats-new.d.ts +147 -0
  416. package/dist/types/components/bs-whats-new/bs-whats-new.stories.d.ts +14 -0
  417. package/dist/types/components/bs-whats-new-entry/bs-whats-new-entry.cmp.test.d.ts +1 -0
  418. package/dist/types/components/bs-whats-new-entry/bs-whats-new-entry.d.ts +53 -0
  419. package/dist/types/components/bs-whats-new-entry/bs-whats-new-entry.stories.d.ts +18 -0
  420. package/dist/types/components.d.ts +2642 -98
  421. package/package.json +3 -2
  422. package/dist/brandsync-wc/p-1c3a43c7.entry.js +0 -1
  423. package/dist/brandsync-wc/p-1c427ffb.entry.js +0 -1
  424. package/dist/brandsync-wc/p-4f2c4929.entry.js +0 -1
  425. package/dist/brandsync-wc/p-76e1c295.entry.js +0 -1
  426. package/dist/brandsync-wc/p-790db8b3.entry.js +0 -1
  427. package/dist/brandsync-wc/p-796a1860.entry.js +0 -1
  428. package/dist/brandsync-wc/p-806a5347.entry.js +0 -1
  429. package/dist/brandsync-wc/p-addfa0a0.entry.js +0 -1
  430. package/dist/brandsync-wc/p-c9a72416.entry.js +0 -1
  431. package/dist/brandsync-wc/p-d42b1c2b.entry.js +0 -1
  432. package/dist/brandsync-wc/p-f006d962.entry.js +0 -1
  433. package/dist/brandsync-wc/p-f074f94e.entry.js +0 -1
  434. package/dist/cjs/bs-menu.cjs.entry.js +0 -39
  435. package/dist/cjs/bs-tab.cjs.entry.js +0 -88
  436. package/dist/cjs/bs-tabs.cjs.entry.js +0 -133
  437. package/dist/components/p-BTvme8CE.js +0 -1
  438. package/dist/components/p-Ba860ej1.js +0 -1
  439. package/dist/components/p-CpUHnsq9.js +0 -1
  440. package/dist/components/p-jDO25SfF.js +0 -1
  441. package/dist/esm/bs-menu.entry.js +0 -37
  442. package/dist/esm/bs-tab.entry.js +0 -86
  443. package/dist/esm/bs-tabs.entry.js +0 -131
@@ -0,0 +1,112 @@
1
+ /**
2
+ * @prop --bs-icon-tile-size: Width/height of the tile. Set per `size` on the host: 24px / 32px / 48px (Figma).
3
+ * @prop --bs-icon-tile-radius: Corner radius. Set per `size`: 4px (--bs-border-radius-50) / 5.33px / 8px (--bs-border-radius-100).
4
+ * @prop --bs-icon-tile-icon-size: Width/height of the icon. Set per `size`: 12px / 16px / 24px.
5
+ * @prop --bs-icon-tile-bg: Background. Set per `intent`. Success, warning, error and information read mode-aware --bs-icon-tile-<intent>-bg properties from base.css (light and dark values from the Figma); default and brand use the neutral / primary container tokens, which already switch with the theme.
6
+ * @prop --bs-icon-tile-text-color: Colour of the text slotted into the `text` slot. Aliased to --bs-text-default.
7
+ * @prop --bs-icon-tile-text-gap: Gap between the square and the `text` slot. Aliased to --bs-spacing-100.
8
+ * @prop --bs-icon-tile-color: Icon colour. Set per `intent`: --bs-icon-tile-<intent>-color from base.css for success, warning, error and information; --bs-icon-default for default and --bs-icon-action for brand.
9
+ */
10
+ :host {
11
+ display: inline-flex;
12
+ align-items: center;
13
+ gap: var(--bs-icon-tile-text-gap);
14
+ vertical-align: middle;
15
+
16
+ /* size: sm (default) */
17
+ --bs-icon-tile-size: 24px;
18
+ --bs-icon-tile-radius: var(--bs-border-radius-50);
19
+ --bs-icon-tile-icon-size: 12px;
20
+ --bs-icon-tile-text-color: var(--bs-text-default);
21
+ --bs-icon-tile-text-gap: var(--bs-spacing-100);
22
+
23
+ /* intent: default */
24
+ --bs-icon-tile-bg: var(--bs-color-neutral-container);
25
+ --bs-icon-tile-color: var(--bs-icon-default);
26
+ }
27
+
28
+ :host([size='md']) {
29
+ --bs-icon-tile-size: 32px;
30
+ /* Figma: 5.333px -- two thirds of the large radius, which has no token of its own. */
31
+ --bs-icon-tile-radius: calc(var(--bs-border-radius-100) * 2 / 3);
32
+ --bs-icon-tile-icon-size: 16px;
33
+ }
34
+
35
+ :host([size='lg']) {
36
+ --bs-icon-tile-size: 48px;
37
+ --bs-icon-tile-radius: var(--bs-border-radius-100);
38
+ --bs-icon-tile-icon-size: 24px;
39
+ }
40
+
41
+ :host([intent='success']) {
42
+ --bs-icon-tile-bg: var(--bs-icon-tile-success-bg, var(--bs-success-50));
43
+ --bs-icon-tile-color: var(--bs-icon-tile-success-color, var(--bs-icon-success));
44
+ }
45
+
46
+ :host([intent='warning']) {
47
+ --bs-icon-tile-bg: var(--bs-icon-tile-warning-bg, var(--bs-color-warning-container));
48
+ --bs-icon-tile-color: var(--bs-icon-tile-warning-color, var(--bs-icon-warning));
49
+ }
50
+
51
+ :host([intent='error']) {
52
+ --bs-icon-tile-bg: var(--bs-icon-tile-error-bg, var(--bs-color-error-container));
53
+ --bs-icon-tile-color: var(--bs-icon-tile-error-color, var(--bs-icon-error));
54
+ }
55
+
56
+ :host([intent='brand']) {
57
+ --bs-icon-tile-bg: var(--bs-color-primary-container);
58
+ --bs-icon-tile-color: var(--bs-icon-action);
59
+ }
60
+
61
+ :host([intent='information']) {
62
+ --bs-icon-tile-bg: var(--bs-icon-tile-information-bg, var(--bs-information-50));
63
+ --bs-icon-tile-color: var(--bs-icon-tile-information-color, var(--bs-icon-info));
64
+ }
65
+
66
+ .bs-icon-tile {
67
+ box-sizing: border-box;
68
+ display: flex;
69
+ align-items: center;
70
+ justify-content: center;
71
+ flex: none;
72
+ width: var(--bs-icon-tile-size);
73
+ height: var(--bs-icon-tile-size);
74
+ border-radius: var(--bs-icon-tile-radius);
75
+ background: var(--bs-icon-tile-bg);
76
+ color: var(--bs-icon-tile-color);
77
+ overflow: hidden;
78
+ }
79
+
80
+ .bs-icon-tile__icon {
81
+ display: flex;
82
+ align-items: center;
83
+ justify-content: center;
84
+ width: var(--bs-icon-tile-icon-size);
85
+ height: var(--bs-icon-tile-icon-size);
86
+ }
87
+
88
+ .bs-icon-tile__icon svg,
89
+ ::slotted(svg),
90
+ ::slotted(img) {
91
+ width: var(--bs-icon-tile-icon-size);
92
+ height: var(--bs-icon-tile-icon-size);
93
+ }
94
+
95
+ /* The text beside the square. Hidden (no box, so no gap) until something is slotted, so a tile with no text
96
+ is still exactly its square. */
97
+ .bs-icon-tile__text {
98
+ display: none;
99
+ color: var(--bs-icon-tile-text-color);
100
+ font-size: var(--bs-font-size-md);
101
+ line-height: 24px;
102
+ }
103
+
104
+ .bs-icon-tile__text--visible {
105
+ display: block;
106
+ }
107
+
108
+ :host([size='sm']) .bs-icon-tile__text {
109
+ font-size: var(--bs-font-size-sm);
110
+ line-height: 20px;
111
+ }
112
+
@@ -0,0 +1,158 @@
1
+ import { h } from "@stencil/core";
2
+ /**
3
+ * A small rounded square holding an icon, tinted by intent -- the visual marker next to a status,
4
+ * a list item or a feature. Matches the Figma "Icon tile" component (3 sizes x 6 intents).
5
+ *
6
+ * Each intent shows a default glyph (house, check, warning, cross, grid, info); put your own icon in
7
+ * the default slot to replace it. A slotted icon is sized to the tile (12/16/24px) and coloured
8
+ * with the intent's icon colour, as long as it draws with `currentColor`.
9
+ *
10
+ * The tile is decorative by default (hidden from assistive tech). Don't rely on the colour or glyph
11
+ * alone to convey status: slot text into `text` (it sits beside the square, in
12
+ * `--bs-icon-tile-text-color`), or set `label` to give the tile its own accessible name.
13
+ *
14
+ * ## When to use
15
+ * - Marking a row, card or message with a status or category icon.
16
+ *
17
+ * ## When not to use
18
+ * - As a button -- it isn't interactive. Use `bs-icon-button`.
19
+ *
20
+ * @slot - Optional icon replacing the intent's default glyph.
21
+ * @slot text - Optional text shown beside the square (e.g. "Payment received"), in `--bs-icon-tile-text-color`.
22
+ * @part container - The tinted square.
23
+ * @part icon - The wrapper around the glyph (default or slotted).
24
+ * @part text - The wrapper around the `text` slot (only shown when something is slotted).
25
+ */
26
+ export class BsIconTile {
27
+ /** Tile size: `sm` 24px, `md` 32px, `lg` 48px. */
28
+ size = 'sm';
29
+ /** Colour and default glyph. `brand` uses the brand colours; `information` the info palette. */
30
+ intent = 'default';
31
+ /** Accessible name. When set, the tile is exposed as an image with this name; when empty it is
32
+ * decorative and hidden from assistive tech. */
33
+ label;
34
+ /** True while the default slot holds a real element or non-blank text (a custom icon), not just whitespace. */
35
+ hasCustomIcon = false;
36
+ /** True while something is assigned to the `text` slot, so the text wrapper (and its gap) only exists then. */
37
+ hasText = false;
38
+ render() {
39
+ const labelled = !!this.label;
40
+ return [
41
+ h("div", { key: 'f23caf72680e3224fc8618cbebceac30590d36ce', part: "container", class: "bs-icon-tile", role: labelled ? 'img' : undefined, "aria-label": labelled ? this.label : undefined, "aria-hidden": labelled ? undefined : 'true' }, h("span", { key: '944d594e4492b30544f935b217691ec7e53f398d', part: "icon", class: "bs-icon-tile__icon" }, h("slot", { key: 'cd62ccaf12a2ff398d506b865665eae42b2e43ff', onSlotchange: (ev) => (this.hasCustomIcon = hasContent(ev.target)) }), !this.hasCustomIcon && (GLYPHS[this.intent] ?? GLYPHS.default))),
42
+ h("span", { key: 'f33a9fa50a2db0aee33fd8346681a5f56f22f685', part: "text", class: { 'bs-icon-tile__text': true, 'bs-icon-tile__text--visible': this.hasText } }, h("slot", { key: 'cb79316ee18a13c4f8d0dcb1d2271a22a6e71471', name: "text", onSlotchange: (ev) => (this.hasText = ev.target.assignedNodes().length > 0) })),
43
+ ];
44
+ }
45
+ static get is() { return "bs-icon-tile"; }
46
+ static get encapsulation() { return "shadow"; }
47
+ static get originalStyleUrls() {
48
+ return {
49
+ "$": ["bs-icon-tile.css"]
50
+ };
51
+ }
52
+ static get styleUrls() {
53
+ return {
54
+ "$": ["bs-icon-tile.css"]
55
+ };
56
+ }
57
+ static get properties() {
58
+ return {
59
+ "size": {
60
+ "type": "string",
61
+ "mutable": false,
62
+ "complexType": {
63
+ "original": "BsIconTileSize",
64
+ "resolved": "\"lg\" | \"md\" | \"sm\"",
65
+ "references": {
66
+ "BsIconTileSize": {
67
+ "location": "local",
68
+ "path": "/home/runner/work/eg-brandsync-storybook/eg-brandsync-storybook/packages/wc/src/components/bs-icon-tile/bs-icon-tile.tsx",
69
+ "id": "src/components/bs-icon-tile/bs-icon-tile.tsx::BsIconTileSize"
70
+ }
71
+ }
72
+ },
73
+ "required": false,
74
+ "optional": false,
75
+ "docs": {
76
+ "tags": [],
77
+ "text": "Tile size: `sm` 24px, `md` 32px, `lg` 48px."
78
+ },
79
+ "getter": false,
80
+ "setter": false,
81
+ "reflect": true,
82
+ "attribute": "size",
83
+ "defaultValue": "'sm'"
84
+ },
85
+ "intent": {
86
+ "type": "string",
87
+ "mutable": false,
88
+ "complexType": {
89
+ "original": "BsIconTileIntent",
90
+ "resolved": "\"brand\" | \"default\" | \"error\" | \"information\" | \"success\" | \"warning\"",
91
+ "references": {
92
+ "BsIconTileIntent": {
93
+ "location": "local",
94
+ "path": "/home/runner/work/eg-brandsync-storybook/eg-brandsync-storybook/packages/wc/src/components/bs-icon-tile/bs-icon-tile.tsx",
95
+ "id": "src/components/bs-icon-tile/bs-icon-tile.tsx::BsIconTileIntent"
96
+ }
97
+ }
98
+ },
99
+ "required": false,
100
+ "optional": false,
101
+ "docs": {
102
+ "tags": [],
103
+ "text": "Colour and default glyph. `brand` uses the brand colours; `information` the info palette."
104
+ },
105
+ "getter": false,
106
+ "setter": false,
107
+ "reflect": true,
108
+ "attribute": "intent",
109
+ "defaultValue": "'default'"
110
+ },
111
+ "label": {
112
+ "type": "string",
113
+ "mutable": false,
114
+ "complexType": {
115
+ "original": "string",
116
+ "resolved": "string",
117
+ "references": {}
118
+ },
119
+ "required": false,
120
+ "optional": true,
121
+ "docs": {
122
+ "tags": [],
123
+ "text": "Accessible name. When set, the tile is exposed as an image with this name; when empty it is\ndecorative and hidden from assistive tech."
124
+ },
125
+ "getter": false,
126
+ "setter": false,
127
+ "reflect": false,
128
+ "attribute": "label"
129
+ }
130
+ };
131
+ }
132
+ static get states() {
133
+ return {
134
+ "hasCustomIcon": {},
135
+ "hasText": {}
136
+ };
137
+ }
138
+ }
139
+ function hasContent(slot) {
140
+ return slot.assignedNodes().some(n => n.nodeType === Node.ELEMENT_NODE || (n.nodeType === Node.TEXT_NODE && !!n.textContent?.trim()));
141
+ }
142
+ const svgProps = {
143
+ viewBox: '0 0 24 24',
144
+ fill: 'none',
145
+ stroke: 'currentColor',
146
+ 'stroke-width': '2',
147
+ 'stroke-linecap': 'round',
148
+ 'stroke-linejoin': 'round',
149
+ 'aria-hidden': 'true',
150
+ };
151
+ const GLYPHS = {
152
+ default: (h("svg", { ...svgProps }, h("path", { d: "M4 10.5L12 3.5L20 10.5V19.5H4V10.5Z" }))),
153
+ success: (h("svg", { ...svgProps }, h("circle", { cx: "12", cy: "12", r: "9" }), h("path", { d: "M8 12.5L10.8 15.3L16 9.5" }))),
154
+ warning: (h("svg", { ...svgProps }, h("circle", { cx: "12", cy: "12", r: "9" }), h("path", { d: "M12 7.5V12.5" }), h("path", { d: "M12 16.2V16.3" }))),
155
+ error: (h("svg", { ...svgProps }, h("path", { d: "M5 5L19 19" }), h("path", { d: "M19 5L5 19" }))),
156
+ brand: (h("svg", { ...svgProps }, h("rect", { x: "4", y: "4", width: "6.5", height: "6.5", rx: "0.5" }), h("rect", { x: "13.5", y: "4", width: "6.5", height: "6.5", rx: "0.5" }), h("rect", { x: "4", y: "13.5", width: "6.5", height: "6.5", rx: "0.5" }), h("rect", { x: "13.5", y: "13.5", width: "6.5", height: "6.5", rx: "0.5" }))),
157
+ information: (h("svg", { ...svgProps }, h("circle", { cx: "12", cy: "12", r: "9" }), h("path", { d: "M12 11V16.5" }), h("path", { d: "M12 7.7V7.8" }))),
158
+ };
@@ -0,0 +1,45 @@
1
+ import { html } from "lit";
2
+ import { ifDefined } from "lit/directives/if-defined.js";
3
+ import { componentDescription, propDescription } from "../../stories-utils";
4
+ const INTENTS = ['default', 'success', 'warning', 'error', 'brand', 'information'];
5
+ const SIZES = ['sm', 'md', 'lg'];
6
+ const meta = {
7
+ title: 'Components/bs-icon-tile',
8
+ parameters: { docs: { description: { component: componentDescription('bs-icon-tile') } } },
9
+ render: args => html `<bs-icon-tile size=${args.size} intent=${args.intent} label=${ifDefined(args.label || undefined)}></bs-icon-tile>`,
10
+ argTypes: {
11
+ size: { control: 'inline-radio', options: SIZES, description: propDescription('bs-icon-tile', 'size') },
12
+ intent: { control: 'select', options: INTENTS, description: propDescription('bs-icon-tile', 'intent') },
13
+ label: { control: 'text', description: propDescription('bs-icon-tile', 'label') },
14
+ },
15
+ args: { size: 'sm', intent: 'default', label: '' },
16
+ };
17
+ export default meta;
18
+ export const Default = {};
19
+ // The Figma frame: 3 sizes (rows) x 6 intents (columns).
20
+ export const AllSizesAndIntents = {
21
+ name: 'All sizes and intents',
22
+ render: () => html `
23
+ <div style="display: grid; grid-template-columns: repeat(6, auto); gap: 24px; align-items: center; justify-items: center;">
24
+ ${SIZES.flatMap(size => INTENTS.map(intent => html `<bs-icon-tile size=${size} intent=${intent}></bs-icon-tile>`))}
25
+ </div>
26
+ `,
27
+ };
28
+ export const CustomIcon = {
29
+ name: 'Custom icon',
30
+ render: () => html `
31
+ <bs-icon-tile size="lg" intent="brand">
32
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
33
+ <path d="M12 3L14.5 9L21 9.5L16 14L17.5 21L12 17.5L6.5 21L8 14L3 9.5L9.5 9L12 3Z" />
34
+ </svg>
35
+ </bs-icon-tile>
36
+ `,
37
+ };
38
+ export const WithText = {
39
+ name: 'With text (status)',
40
+ render: () => html `
41
+ <bs-icon-tile size="md" intent="success">
42
+ <span slot="text">Payment received</span>
43
+ </bs-icon-tile>
44
+ `,
45
+ };
@@ -310,7 +310,7 @@ describe('bs-input', () => {
310
310
  describe('type="chip"', () => {
311
311
  it('renders a chip per entry with a remove button', async () => {
312
312
  const { root } = await render(h("bs-input", { type: "chip", chips: ['red', 'blue'] }));
313
- const chips = root.shadowRoot.querySelectorAll('.bs-input__chip');
313
+ const chips = root.shadowRoot.querySelectorAll('bs-chip-informative');
314
314
  expect(chips.length).toBe(2);
315
315
  expect(chips[0]).toHaveTextContent('red');
316
316
  });
@@ -326,7 +326,7 @@ describe('bs-input', () => {
326
326
  it('emits bsChipRemove when a chip remove button is clicked', async () => {
327
327
  const { root, spyOnEvent } = await render(h("bs-input", { type: "chip", chips: ['red'] }));
328
328
  const bsChipRemoveSpy = spyOnEvent('bsChipRemove');
329
- const removeBtn = root.shadowRoot.querySelector('.bs-input__chip-remove');
329
+ const removeBtn = root.shadowRoot.querySelector('bs-icon-button.bs-input__chip-remove');
330
330
  removeBtn.click();
331
331
  expect(bsChipRemoveSpy).toHaveReceivedEventDetail('red');
332
332
  });
@@ -414,4 +414,18 @@ describe('bs-input', () => {
414
414
  expect(field).toHaveClass('bs-input__field--error');
415
415
  });
416
416
  });
417
+ describe('label custom properties', () => {
418
+ it('keeps the 14px medium label by default', async () => {
419
+ const { root } = await render(h("bs-input", { label: "Name" }));
420
+ const label = getComputedStyle(root.shadowRoot.querySelector('.bs-input__label'));
421
+ expect(label.fontSize).toBe('14px');
422
+ expect(label.fontWeight).toBe('500');
423
+ });
424
+ it('can restyle the label through --bs-input-label-font-size/-weight', async () => {
425
+ const { root } = await render(h("bs-input", { label: "Name", style: { '--bs-input-label-font-size': '16px', '--bs-input-label-font-weight': '600' } }));
426
+ const label = getComputedStyle(root.shadowRoot.querySelector('.bs-input__label'));
427
+ expect(label.fontSize).toBe('16px');
428
+ expect(label.fontWeight).toBe('600');
429
+ });
430
+ });
417
431
  });
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @prop --bs-input-radius: Corner radius of the field. Aliased to --bs-border-radius-100.
3
- * @prop --bs-input-height: Height of the field. Aliased to --bs-spacing-600.
3
+ * @prop --bs-input-height: Height of the field. Aliased to --bs-spacing-550 (44px, per Figma).
4
4
  * @prop --bs-input-padding-x: Horizontal padding inside the field. Aliased to --bs-spacing-150.
5
5
  * @prop --bs-input-padding-y: Vertical padding inside the field. Aliased to --bs-spacing-100.
6
6
  * @prop --bs-input-gap: Gap between the icon(s) and the native input. Aliased to --bs-spacing-200.
@@ -19,10 +19,11 @@
19
19
  * @prop --bs-input-field-text: Input text color. Aliased to --bs-input-text.
20
20
  * @prop --bs-input-field-placeholder: Placeholder text color. Aliased to --bs-input-placeholder.
21
21
  * @prop --bs-input-label-color: Label text color. Aliased to --bs-input-label.
22
+ * @prop --bs-input-label-font-size: Label font size. Aliased to --bs-font-size-sm.
23
+ * @prop --bs-input-label-font-weight: Label font weight. Aliased to --bs-font-weight-medium.
24
+ * @prop --bs-input-label-line-height: Label line height. `normal` by default (the label sizes to its font).
22
25
  * @prop --bs-input-description-color: Description text color. Aliased to --bs-input-description.
23
26
  * @prop --bs-input-error-color: Error message text color. Aliased to --bs-input-error.
24
- * @prop --bs-input-chip-bg: Chip pill background for type="chip". Aliased to --bs-input-bg-disabled.
25
- * @prop --bs-input-chip-text: Chip pill text color for type="chip". Aliased to --bs-input-text.
26
27
  * @prop --bs-input-initials-title-width: Width of the title box for type="initials" (e.g.
27
28
  * "Mrs."/"Mr."/"Dr."). A literal 80px, not aliased to a spacing token -- Figma specs this
28
29
  * sub-field as a fixed, compact width regardless of option content (node 10306:101047), not
@@ -36,7 +37,7 @@
36
37
  display: block;
37
38
 
38
39
  --bs-input-radius: var(--bs-border-radius-100);
39
- --bs-input-height: var(--bs-spacing-600);
40
+ --bs-input-height: var(--bs-spacing-550);
40
41
  --bs-input-padding-x: var(--bs-spacing-150);
41
42
  --bs-input-padding-y: var(--bs-spacing-100);
42
43
  --bs-input-gap: var(--bs-spacing-200);
@@ -53,6 +54,9 @@
53
54
  --bs-input-field-text: var(--bs-input-text);
54
55
  --bs-input-field-placeholder: var(--bs-input-placeholder);
55
56
  --bs-input-label-color: var(--bs-input-label);
57
+ --bs-input-label-font-size: var(--bs-font-size-sm);
58
+ --bs-input-label-font-weight: var(--bs-font-weight-medium);
59
+ --bs-input-label-line-height: normal;
56
60
  --bs-input-description-color: var(--bs-input-description);
57
61
  --bs-input-error-color: var(--bs-input-error);
58
62
 
@@ -62,9 +66,6 @@
62
66
  --bs-input-icon-color-error: var(--bs-input-icon-error);
63
67
  --bs-input-icon-color-disabled: var(--bs-input-icon-disabled);
64
68
 
65
- --bs-input-chip-bg: var(--bs-input-bg-disabled);
66
- --bs-input-chip-text: var(--bs-input-text);
67
-
68
69
  --bs-input-initials-title-width: 80px;
69
70
  --bs-input-initials-gap: var(--bs-spacing-50);
70
71
  }
@@ -77,8 +78,9 @@
77
78
  }
78
79
 
79
80
  .bs-input__label {
80
- font-size: var(--bs-font-size-sm);
81
- font-weight: var(--bs-font-weight-medium);
81
+ font-size: var(--bs-input-label-font-size);
82
+ font-weight: var(--bs-input-label-font-weight);
83
+ line-height: var(--bs-input-label-line-height);
82
84
  color: var(--bs-input-label-color);
83
85
  }
84
86
 
@@ -316,23 +318,13 @@
316
318
  }
317
319
 
318
320
  .bs-input__chip {
319
- display: inline-flex;
320
- align-items: center;
321
- gap: 4px;
322
- background: var(--bs-input-chip-bg);
323
- color: var(--bs-input-chip-text);
324
- border-radius: var(--bs-input-radius);
325
- padding: 2px 6px;
326
- font-size: var(--bs-font-size-sm);
321
+ --bs-chip-informative-padding-x-plain-side: var(--bs-spacing-150);
327
322
  }
328
323
 
329
324
  .bs-input__chip-remove {
330
- border: none;
331
- background: transparent;
332
- color: inherit;
333
- cursor: pointer;
334
- padding: 0;
335
- line-height: 1;
325
+ --bs-icon-button-size-xs: 20px;
326
+ --bs-icon-button-icon-size-xs: 12px;
327
+ margin-inline-end: calc(var(--bs-spacing-50) * -1);
336
328
  }
337
329
 
338
330
  .bs-input__chip-input {
@@ -5,6 +5,8 @@ import { h } from "@stencil/core";
5
5
  * select, textarea, chip input, initials, country, and pin) via the `type` prop, since they all
6
6
  * share the same label/description/error/icon-slot chrome.
7
7
  *
8
+ * Built from: `bs-menu`/`bs-menu-item` (`type="dropdown"`) and `bs-chip-informative` + `bs-icon-button` (`type="chip"`).
9
+ *
8
10
  * ## When to use
9
11
  * - Collecting a single line of free-text, email, password, or numeric input.
10
12
  * - Any of the other supported `type`s (search, date, dropdown, select, textarea, chip, initials,
@@ -39,7 +41,8 @@ import { h } from "@stencil/core";
39
41
  * @part control - The native control element (`<input>`, `<select>`, or `<textarea>` depending on
40
42
  * `type`). Composite types (`initials`, `country`) render this part on more than one element.
41
43
  * @part end-icon - The trailing icon wrapper element.
42
- * @part chip - A single chip pill, when `type="chip"`.
44
+ * @part chip - A single chip pill (a `bs-chip-informative`), when `type="chip"`.
45
+ * @part chip-remove - A chip's remove button (a `bs-icon-button`), when `type="chip"`.
43
46
  * @part description - The helper text element (hidden when `error` is set).
44
47
  * @part error - The error message element.
45
48
  * @part error-icon - The warning icon shown before the error message.
@@ -326,7 +329,7 @@ export class BsInput {
326
329
  return (h("textarea", { id: "control", part: "control", class: "bs-input__control bs-input__control--textarea", rows: this.rows, value: this.value, placeholder: this.placeholder, disabled: this.disabled, "aria-describedby": this.error || this.description ? 'description-or-error' : undefined, "aria-invalid": this.error ? 'true' : undefined, "aria-required": this.required ? 'true' : undefined, onInput: this.onInput, onChange: this.onChange }));
327
330
  }
328
331
  renderChipControl() {
329
- return (h("div", { class: "bs-input__chips" }, this.chips.map(chip => (h("span", { part: "chip", class: "bs-input__chip" }, chip, h("button", { type: "button", class: "bs-input__chip-remove", "aria-label": `Remove ${chip}`, onClick: this.onChipRemove(chip) }, "\u00D7")))), h("input", { id: "control", part: "control", class: "bs-input__control bs-input__chip-input", type: "text", value: this.chipDraft, placeholder: this.placeholder, disabled: this.disabled, "aria-required": this.required ? 'true' : undefined, onInput: this.onChipDraftInput, onKeyDown: this.onChipDraftKeydown })));
332
+ return (h("div", { class: "bs-input__chips" }, this.chips.map(chip => (h("bs-chip-informative", { part: "chip", class: "bs-input__chip", size: "sm", disabled: this.disabled }, chip, h("bs-icon-button", { part: "chip-remove", class: "bs-input__chip-remove", variant: "subtle", size: "md", ariaLabel: `Remove ${chip}`, disabled: this.disabled, onClick: this.onChipRemove(chip) }, h(ChipRemoveIcon, null))))), h("input", { id: "control", part: "control", class: "bs-input__control bs-input__chip-input", type: "text", value: this.chipDraft, placeholder: this.placeholder, disabled: this.disabled, "aria-required": this.required ? 'true' : undefined, onInput: this.onChipDraftInput, onKeyDown: this.onChipDraftKeydown })));
330
333
  }
331
334
  // type="initials" renders two genuinely separate bordered boxes side by side (each with its own
332
335
  // border/radius/background, a small gap between them), not one shared field wrapper -- Figma
@@ -386,10 +389,10 @@ export class BsInput {
386
389
  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) })))));
387
390
  }
388
391
  render() {
389
- return (h("div", { key: '70497bf30b0a244e1df36075d0db77cec5345d6c', class: `bs-input ${this.error ? 'bs-input--error' : ''}` }, this.label && (
392
+ return (h("div", { key: '6921873fb72be6f26a2389697f6b2f816d8011a9', class: `bs-input ${this.error ? 'bs-input--error' : ''}` }, this.label && (
390
393
  // "control" is a fixed id, not a generated one -- safe because Shadow DOM scopes ids
391
394
  // to this instance's own shadow root, so it can never collide with another bs-input.
392
- h("label", { key: '527e0d146170d9d11a004d452fa2cb363c5cc7d2', part: "label", class: "bs-input__label", htmlFor: "control" }, this.label, this.required && (h("span", { key: '9dd54a626ec80c774d6deacc3c9dcf02d1fef8a9', 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));
395
+ h("label", { key: '64ec1ba4a6c8c87db6b45dfd38731adbdfd5d6a8', part: "label", class: "bs-input__label", htmlFor: "control" }, this.label, this.required && (h("span", { key: '5176edfc672132f1c6aaec978002851ff27179a0', 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));
393
396
  }
394
397
  static get is() { return "bs-input"; }
395
398
  static get encapsulation() { return "shadow"; }
@@ -963,3 +966,4 @@ export class BsInput {
963
966
  }
964
967
  static get attachInternalsMemberName() { return "internals"; }
965
968
  }
969
+ const ChipRemoveIcon = () => (h("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { d: "M18.75 5.25L5.25 18.75", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { d: "M18.75 18.75L5.25 5.25", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })));
@@ -44,7 +44,7 @@ export class BsMenu {
44
44
  items[next].shadowRoot?.querySelector('button')?.focus();
45
45
  }
46
46
  render() {
47
- return (h("div", { key: '24e54ac14b17bc1e45bcd5d7d0fda3250350672a', part: "list", class: "bs-menu", role: "menu" }, h("slot", { key: '57e28eafbb83da6bb14dfe588793edd33b2b5316' })));
47
+ return (h("div", { key: 'ba99d3c35c0c7ab4427155ac13e89c434068ef49', part: "list", class: "bs-menu", role: "menu" }, h("slot", { key: '817f29507503adcaad013a8035d35bc1f35ffdef' })));
48
48
  }
49
49
  static get is() { return "bs-menu"; }
50
50
  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: '5aabea2ec3ad0181e3ff53b3f22873563da69ccd', 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: '7e180921d99d4f430d72d8dbfeda0ca00881b74a', part: "icon", class: `bs-menu-item__icon ${this.hasIcon ? 'bs-menu-item__icon--has-content' : ''}` }, h("slot", { key: '9d6d15f2d51c271de699b0101f781d8c0f3ab7e9', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: '88645fe2991eb91a145e33a4f5e5e59a9ade3248', part: "label", class: "bs-menu-item__label" }, h("slot", { key: 'd3cc0ffcf0f354ffa9c48cbc88a99ec99d4f2db4' }))));
50
+ return (h("button", { key: '419a5d4d35f47ea9cf72b02407a45a7d5645fc4b', 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: '733f8e5f702496bbb2788cc4db84a9c7c128f1be', part: "icon", class: `bs-menu-item__icon ${this.hasIcon ? 'bs-menu-item__icon--has-content' : ''}` }, h("slot", { key: '566ca7b7f011090efa131c6bf0fb74515db11fee', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: 'c717ab8efef92c338581953c60f617057f9eaadc', part: "label", class: "bs-menu-item__label" }, h("slot", { key: 'c0006ae3c36798eabfb2e001faade51ec4cc10c9' }))));
51
51
  }
52
52
  static get is() { return "bs-menu-item"; }
53
53
  static get encapsulation() { return "shadow"; }