@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
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, a as getElement, h } from './index-AgoOSYvW.js';
1
+ import { r as registerInstance, c as createEvent, a as getElement, h } from './index-DqQRXQMx.js';
2
2
 
3
3
  const bsSwitchCss = () => `:host{display:inline-block;--bs-switch-radius:var(--bs-border-radius-full);--bs-switch-padding:var(--bs-spacing-25);--bs-switch-gap:var(--bs-spacing-100);--bs-switch-track-width-md:36px;--bs-switch-track-height-md:20px;--bs-switch-track-width-lg:48px;--bs-switch-track-height-lg:28px;--bs-switch-knob-size-md:16px;--bs-switch-knob-size-lg:24px;--bs-switch-border-width:1px;--bs-switch-track-bg:var(--bs-switch-track-bg-default);--bs-switch-track-bg-checked:var(--bs-switch-track-bg-checked-default);--bs-switch-track-bg-checked-focus:var(--bs-switch-track-bg-checked-focused);--bs-switch-track-border:var(--bs-switch-track-border-default);--bs-switch-focus-ring-color:var(--bs-switch-track-border-focus);--bs-switch-knob-bg:var(--bs-switch-thumb-bg-default);--bs-switch-knob-bg-hover:var(--bs-switch-thumb-bg-hover);--bs-switch-knob-bg-checked:var(--bs-switch-thumb-bg-checked);--bs-switch-knob-bg-disabled:var(--bs-switch-thumb-bg-disabled);--bs-switch-label-color:var(--bs-text-default);--bs-switch-label-color-disabled:var(--bs-text-on-disabled)}.bs-switch{position:relative;display:inline-flex;align-items:center;gap:var(--bs-switch-gap);font-family:inherit;cursor:pointer}.bs-switch--disabled{cursor:not-allowed}.bs-switch__input{position:absolute;top:0;inset-inline-start:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer}.bs-switch__input:disabled{cursor:not-allowed}.bs-switch__track{box-sizing:border-box;position:relative;display:flex;align-items:center;justify-content:flex-start;flex-shrink:0;padding:var(--bs-switch-padding);border:var(--bs-switch-border-width) solid var(--bs-switch-track-border);border-radius:var(--bs-switch-radius);background:var(--bs-switch-track-bg);transition:background-color 0.15s ease, border-color 0.15s ease}.bs-switch__track--md{width:var(--bs-switch-track-width-md);height:var(--bs-switch-track-height-md)}.bs-switch__track--lg{width:var(--bs-switch-track-width-lg);height:var(--bs-switch-track-height-lg)}.bs-switch__track--checked{justify-content:flex-end;background:var(--bs-switch-track-bg-checked)}.bs-switch__knob{box-sizing:border-box;border-radius:var(--bs-border-radius-full);background:var(--bs-switch-knob-bg);transition:background-color 0.15s ease}.bs-switch__knob--md{width:var(--bs-switch-knob-size-md);height:var(--bs-switch-knob-size-md)}.bs-switch__knob--lg{width:var(--bs-switch-knob-size-lg);height:var(--bs-switch-knob-size-lg)}.bs-switch__track--checked .bs-switch__knob{background:var(--bs-switch-knob-bg-checked)}.bs-switch__input:hover:not(:disabled)~.bs-switch__track{background:var(--bs-switch-track-bg-hover);border-color:var(--bs-switch-track-border-hover)}.bs-switch__input:hover:not(:disabled)~.bs-switch__track .bs-switch__knob{background:var(--bs-switch-knob-bg-hover)}.bs-switch__input:hover:not(:disabled)~.bs-switch__track--checked{background:var(--bs-switch-track-bg-checked-hover)}.bs-switch__input:focus-visible~.bs-switch__track{border-color:var(--bs-switch-track-border-hover);outline:2px solid var(--bs-switch-focus-ring-color);outline-offset:2px}.bs-switch__input:focus-visible~.bs-switch__track--checked{background:var(--bs-switch-track-bg-checked-focus)}.bs-switch__track--disabled{background:var(--bs-switch-track-bg-disabled);border-color:var(--bs-switch-track-border)}.bs-switch__track--disabled.bs-switch__track--checked{background:var(--bs-switch-track-bg-disabled)}.bs-switch__knob--disabled{background:var(--bs-switch-knob-bg-disabled)}.bs-switch__label{font-size:var(--bs-font-size-md);color:var(--bs-switch-label-color)}.bs-switch--disabled .bs-switch__label{color:var(--bs-switch-label-color-disabled)}@media (forced-colors: active){.bs-switch__track{border:2px solid ButtonText;forced-color-adjust:none;background:Canvas}.bs-switch__track--checked{background:Highlight;border-color:Highlight}.bs-switch__knob{background:ButtonText}.bs-switch__track--checked .bs-switch__knob{background:HighlightText}.bs-switch__track--disabled{border-color:GrayText}}`;
4
4
 
@@ -70,7 +70,7 @@ const BsSwitch = class {
70
70
  const knobClasses = ['bs-switch__knob', `bs-switch__knob--${this.size}`, this.disabled ? 'bs-switch__knob--disabled' : '']
71
71
  .filter(Boolean)
72
72
  .join(' ');
73
- return (h("label", { key: '29aaef97a7a237cddfdfffb7cdb693c8934a9d4f', class: `bs-switch ${this.disabled ? 'bs-switch--disabled' : ''}` }, h("input", { key: '03a1e41e0b66f823a95b76c85a19c8ca6c418763', class: "bs-switch__input", type: "checkbox", role: "switch", checked: this.checked, disabled: this.disabled, "aria-checked": String(this.checked), "aria-label": this.ariaLabel, onChange: this.onChange }), h("span", { key: '4dc7254d5855d91221048aa2fbddcb0532c4f572', part: "track", class: trackClasses }, h("span", { key: '11dbb2724c94e6a58413d36b8d673015ad44a5e3', part: "knob", class: knobClasses })), h("span", { key: '9954a8d69131ca00bcd177d1d7cfe7ca83bc32a1', part: "label", class: "bs-switch__label" }, h("slot", { key: '98058212aed27b2d6b589eb769fddd5fe3156510' }))));
73
+ return (h("label", { key: '3c1ef40b924c852077b0e82e6f177c3ef029d578', class: `bs-switch ${this.disabled ? 'bs-switch--disabled' : ''}` }, h("input", { key: '05b9d74d9264d85efad043d3fed9582294245e14', class: "bs-switch__input", type: "checkbox", role: "switch", checked: this.checked, disabled: this.disabled, "aria-checked": String(this.checked), "aria-label": this.ariaLabel, onChange: this.onChange }), h("span", { key: '1df589ae299b9d78841b66964803be1431a902f0', part: "track", class: trackClasses }, h("span", { key: '56f65a6b2c672c13b566eeb94bed37985dd225e1', part: "knob", class: knobClasses })), h("span", { key: '293393bcd0c93a6b67fee20761f2fec6ae350d1f', part: "label", class: "bs-switch__label" }, h("slot", { key: 'a4a89ba0581cb44382b9f81564adb6dd1e3809bc' }))));
74
74
  }
75
75
  static get delegatesFocus() { return true; }
76
76
  static get formAssociated() { return true; }
@@ -0,0 +1,251 @@
1
+ import { r as registerInstance, c as createEvent, a as getElement, h } from './index-DqQRXQMx.js';
2
+
3
+ const bsTabCss = () => `:host{display:inline-block;--bs-tab-radius:var(--bs-border-radius-100);--bs-tab-padding-y:var(--bs-spacing-150);--bs-tab-padding-x:var(--bs-spacing-200);--bs-tab-gap:var(--bs-spacing-75);--bs-tab-gap-vertical:var(--bs-spacing-50);--bs-tab-color-default:var(--bs-text-muted);--bs-tab-icon-color-default:var(--bs-icon-muted);--bs-tab-color-hover:var(--bs-text-default);--bs-tab-icon-color-hover:var(--bs-icon-default);--bs-tab-indicator-hover:var(--bs-border-neutral-hover);--bs-tab-color-selected:var(--bs-color-primary-default);--bs-tab-color-selected-hover:var(--bs-color-primary-hover);--bs-tab-color-selected-pressed:var(--bs-color-primary-pressed);--bs-tab-indicator-selected:var(--bs-color-primary-default);--bs-tab-indicator-selected-hover:var(--bs-color-primary-hover);--bs-tab-indicator-selected-pressed:var(--bs-color-primary-pressed);--bs-tab-focus-ring-color:var(--bs-border-neutral-focus);--bs-tab-color-disabled:var(--bs-text-on-disabled);--bs-tab-icon-color-disabled:var(--bs-icon-disabled);--bs-tab-font-size:var(--bs-font-size-md);--bs-tab-line-height:var(--bs-line-height-body-md)}.bs-tab{box-sizing:border-box;position:relative;display:flex;flex-direction:row;align-items:center;justify-content:center;border:none;cursor:pointer;background:transparent;color:var(--bs-tab-color-default);font-family:inherit;border-radius:var(--bs-tab-radius);padding:var(--bs-tab-padding-y) var(--bs-tab-padding-x);gap:var(--bs-tab-gap);transition:color var(--bs-duration-fast) var(--bs-easing-standard), background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-tab--vertical{flex-direction:column;gap:var(--bs-tab-gap-vertical)}.bs-tab:focus-visible{outline:2px solid var(--bs-tab-focus-ring-color);outline-offset:2px}.bs-tab:not(.bs-tab--selected):not(.bs-tab--disabled):hover,.bs-tab:not(.bs-tab--selected):not(.bs-tab--disabled):focus-visible,.bs-tab:not(.bs-tab--selected):not(.bs-tab--disabled):active{color:var(--bs-tab-color-hover)}.bs-tab:not(.bs-tab--selected):not(.bs-tab--disabled):hover .bs-tab__icon,.bs-tab:not(.bs-tab--selected):not(.bs-tab--disabled):focus-visible .bs-tab__icon,.bs-tab:not(.bs-tab--selected):not(.bs-tab--disabled):active .bs-tab__icon{color:var(--bs-tab-icon-color-hover)}.bs-tab:not(.bs-tab--selected):not(.bs-tab--disabled):hover .bs-tab__indicator,.bs-tab:not(.bs-tab--selected):not(.bs-tab--disabled):focus-visible .bs-tab__indicator,.bs-tab:not(.bs-tab--selected):not(.bs-tab--disabled):active .bs-tab__indicator{background:var(--bs-tab-indicator-hover)}.bs-tab--selected{color:var(--bs-tab-color-selected)}.bs-tab--selected .bs-tab__icon--has-content{color:var(--bs-tab-color-selected)}.bs-tab--selected .bs-tab__indicator{background:var(--bs-tab-indicator-selected)}.bs-tab--selected:not(.bs-tab--disabled):hover,.bs-tab--selected:not(.bs-tab--disabled):focus-visible{color:var(--bs-tab-color-selected-hover)}.bs-tab--selected:not(.bs-tab--disabled):hover .bs-tab__icon--has-content,.bs-tab--selected:not(.bs-tab--disabled):focus-visible .bs-tab__icon--has-content{color:var(--bs-tab-color-selected-hover)}.bs-tab--selected:not(.bs-tab--disabled):hover .bs-tab__indicator,.bs-tab--selected:not(.bs-tab--disabled):focus-visible .bs-tab__indicator{background:var(--bs-tab-indicator-selected-hover)}.bs-tab--selected:not(.bs-tab--disabled):active{color:var(--bs-tab-color-selected-pressed)}.bs-tab--selected:not(.bs-tab--disabled):active .bs-tab__icon--has-content{color:var(--bs-tab-color-selected-pressed)}.bs-tab--selected:not(.bs-tab--disabled):active .bs-tab__indicator{background:var(--bs-tab-indicator-selected-pressed)}.bs-tab--disabled{color:var(--bs-tab-color-disabled);cursor:not-allowed}.bs-tab--disabled .bs-tab__icon--has-content{color:var(--bs-tab-icon-color-disabled)}.bs-tab--disabled .bs-tab__indicator{background:transparent}.bs-tab__icon{display:none;width:24px;height:24px;flex-shrink:0;color:var(--bs-tab-icon-color-default)}.bs-tab__icon--has-content{display:inline-flex;align-items:center;justify-content:center}.bs-tab__icon ::slotted(svg){width:24px;height:24px}.bs-tab__label{display:none;font-size:var(--bs-tab-font-size);line-height:calc(var(--bs-tab-line-height) * 1px);white-space:nowrap}.bs-tab__label--has-content{display:inline-block}.bs-tab__badge{display:none}.bs-tab__badge--has-content{display:inline-flex;align-items:center}.bs-tab__indicator{position:absolute;inset-inline-start:var(--bs-tab-padding-x);inset-inline-end:var(--bs-tab-padding-x);bottom:0;height:2px;background:transparent;border-radius:var(--bs-border-radius-50, 2px)}`;
4
+
5
+ const BsTab = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.bsSelect = createEvent(this, "bsSelect");
9
+ }
10
+ get el() { return getElement(this); }
11
+ /** Whether this tab is the currently active one. NOT mutable and NOT self-toggling -- see the
12
+ * "Known gap" note in the class JSDoc. Still reflected as an attribute so consumers/CSS can
13
+ * target `bs-tab[selected]`. */
14
+ selected = false;
15
+ /** Disables the tab: sets the native `disabled` attribute, suppresses hover/focus styling, and
16
+ * prevents clicking from emitting `bsSelect`. */
17
+ disabled = false;
18
+ /** Where the icon sits relative to the label, when both `icon` and the default slot are
19
+ * populated. Ignored for icon-only/text-only layouts. */
20
+ iconPosition = 'start';
21
+ /** Accessible name for the tab. Required for icon-only usage (no visible label text via the
22
+ * default slot) so screen readers still announce what the tab does -- without it, an icon-only
23
+ * tab has no discernible name at all (axe-core flags this as a critical `button-name`
24
+ * violation). Stencil reflects this camelCase prop to the `aria-label` HTML attribute
25
+ * automatically, same as `bs-button`'s identical prop. */
26
+ ariaLabel = null;
27
+ /** Identifies this tab within a parent `bs-tabs`: the group's `value` is the selected tab's
28
+ * `value`, and `bsChange` reports it. Optional -- a tab without one is identified by its
29
+ * zero-based position in the group (`"0"`, `"1"`...). */
30
+ value;
31
+ /** Set by a parent `bs-tabs` to implement roving tabindex (only one tab in the group is in the
32
+ * Tab order; arrow keys move between them). Left `undefined` for a standalone tab, which stays
33
+ * a normal tab stop. */
34
+ tabbable;
35
+ /** Tracks whether the `icon` slot has assigned content. */
36
+ hasIcon = false;
37
+ /** Tracks whether the default (label) slot has assigned content. */
38
+ hasLabel = false;
39
+ /** Tracks whether the `badge` slot has assigned content. */
40
+ hasBadge = false;
41
+ /** Fires when the tab is clicked. Does not toggle `selected` itself -- see the class JSDoc. */
42
+ bsSelect;
43
+ /**
44
+ * Computes the initial `hasIcon`/`hasLabel`/`hasBadge` state directly from the host's light DOM
45
+ * children, before first render -- same reasoning as `bs-button.componentWillLoad` (a slot with
46
+ * zero assigned nodes from the start never fires `slotchange`).
47
+ */
48
+ componentWillLoad() {
49
+ this.hasIcon = this.hasSlottedContent('icon');
50
+ this.hasLabel = this.hasSlottedContent(null);
51
+ this.hasBadge = this.hasSlottedContent('badge');
52
+ }
53
+ hasSlottedContent(slotName) {
54
+ return Array.from(this.el.childNodes).some(node => {
55
+ if (node.nodeType === Node.ELEMENT_NODE) {
56
+ return node.getAttribute('slot') === slotName;
57
+ }
58
+ // Only elements can carry a `slot` attribute -- any other node type (text, comments) can
59
+ // only ever be assigned to the default slot.
60
+ return slotName === null;
61
+ });
62
+ }
63
+ onIconSlotchange = (ev) => {
64
+ this.hasIcon = ev.target.assignedNodes().length > 0;
65
+ };
66
+ onLabelSlotchange = (ev) => {
67
+ this.hasLabel = ev.target.assignedNodes().length > 0;
68
+ };
69
+ onBadgeSlotchange = (ev) => {
70
+ this.hasBadge = ev.target.assignedNodes().length > 0;
71
+ };
72
+ onClick = () => {
73
+ if (this.disabled)
74
+ return;
75
+ this.bsSelect.emit();
76
+ };
77
+ render() {
78
+ const iconOnly = this.hasIcon && !this.hasLabel;
79
+ const vertical = this.hasIcon && this.hasLabel && this.iconPosition === 'top';
80
+ const showBadge = this.hasBadge && !iconOnly && !vertical;
81
+ return (h("button", { key: '6cb94a173877a8e339585dd41bfca7cdb5152277', type: "button", part: "tab", role: "tab", class: `bs-tab ${this.selected ? 'bs-tab--selected' : ''} ${this.disabled ? 'bs-tab--disabled' : ''} ${iconOnly ? 'bs-tab--icon-only' : ''} ${vertical ? 'bs-tab--vertical' : ''}`, disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, "aria-label": this.ariaLabel, tabIndex: this.tabbable === undefined ? undefined : this.tabbable ? 0 : -1, onClick: this.onClick }, h("span", { key: '87fc3d0b1e958295bb3ff41c3a4f6a76803c4b31', part: "icon", class: `bs-tab__icon ${this.hasIcon ? 'bs-tab__icon--has-content' : ''}` }, h("slot", { key: '5fb74ca62c8f60b50d7f53cd5b77b02cfb547365', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: '4774748fa4d8d5f441914aaca0cc8729c3d85857', part: "label", class: `bs-tab__label ${this.hasLabel ? 'bs-tab__label--has-content' : ''}` }, h("slot", { key: '87d793b4e8088f51ff64dd388f3769aebd5c507d', onSlotchange: this.onLabelSlotchange })), h("span", { key: 'ddfc8532be46adab986a6f4a6b0e46d2c8fcc8f4', part: "badge", class: `bs-tab__badge ${showBadge ? 'bs-tab__badge--has-content' : ''}` }, h("slot", { key: '729a03df8dbca1814725d06ceb23d1d1c694cc63', name: "badge", onSlotchange: this.onBadgeSlotchange })), h("span", { key: 'd873545b4148383e3df42fe1ff76aab027d4a0f8', part: "indicator", class: "bs-tab__indicator" })));
82
+ }
83
+ };
84
+ BsTab.style = bsTabCss();
85
+
86
+ const bsTabsCss = () => `:host{display:inline-block;--bs-tabs-tab-gap:var(--bs-spacing-100);--bs-tabs-inline-tab-bg:var(--bs-color-neutral-container);--bs-tabs-inline-tab-padding-x:var(--bs-spacing-50);--bs-tabs-inline-tab-radius:var(--bs-border-radius-full);--bs-tabs-inline-tab-gap:var(--bs-spacing-50)}.bs-tabs{display:inline-flex;align-items:center}.bs-tabs--vertical{display:flex;flex-direction:column;align-items:flex-start}.bs-tabs--bs-tab{gap:var(--bs-tabs-tab-gap)}.bs-tabs--bs-inline-tab{background:var(--bs-tabs-inline-tab-bg);padding:0 var(--bs-tabs-inline-tab-padding-x);border-radius:var(--bs-tabs-inline-tab-radius);gap:var(--bs-tabs-inline-tab-gap)}`;
87
+
88
+ const BsTabs = class {
89
+ constructor(hostRef) {
90
+ registerInstance(this, hostRef);
91
+ this.bsChange = createEvent(this, "bsChange");
92
+ }
93
+ get el() { return getElement(this); }
94
+ /** Which tab-button family this group wraps. Governs the wrapper's own visual treatment (gap-only
95
+ * for `bs-tab`, a filled pill bar for `bs-inline-tab`). Not reflected as an attribute -- nothing
96
+ * external needs to target it via CSS attribute selector, it only drives internal class names. */
97
+ type = 'bs-tab';
98
+ /** Layout direction of the tab bar itself. Sets `aria-orientation` on the internal wrapper and
99
+ * switches `flex-direction`. */
100
+ orientation = 'horizontal';
101
+ /** The selected tab's `value`. Mutable and reflected: it follows the user's selection, and
102
+ * setting it from outside (attribute or property) selects the matching tab -- without emitting
103
+ * `bsChange`, which only fires for user-driven changes. A tab's value is its own `value` prop,
104
+ * or, for a tab without one, its zero-based position in the group as a string (`"0"`, `"1"`...).
105
+ * If unset, it is read from whichever tab is already `selected` once the group loads. */
106
+ value;
107
+ /** Fires when the user selects a different tab (click, or arrow/Home/End), with the new
108
+ * `value`. Does not fire when `value` is set programmatically. `bsSelect` on the individual tab
109
+ * still fires as before. */
110
+ bsChange;
111
+ /**
112
+ * Catches `bsSelect` bubbling up from any slotted `<bs-tab>`/`<bs-inline-tab>` (Stencil's
113
+ * `@Event()` defaults to `bubbles: true, composed: true`, and `@Listen` without a target listens
114
+ * on the host itself), and sets `selected` on the clicked child / `false` on its siblings.
115
+ * Disabled children never emit `bsSelect` in the first place (each's own `onClick` guards
116
+ * `if (this.disabled) return;`), so no special-casing is needed here.
117
+ */
118
+ onTabSelect(ev) {
119
+ const tabs = this.tabs();
120
+ tabs.forEach(tab => {
121
+ tab.selected = tab === ev.target;
122
+ });
123
+ this.syncRovingTabindex();
124
+ const index = tabs.findIndex(tab => tab === ev.target);
125
+ if (index === -1)
126
+ return;
127
+ const value = this.tabValue(tabs[index], index);
128
+ if (value !== this.value) {
129
+ this.value = value;
130
+ this.bsChange.emit({ value });
131
+ }
132
+ }
133
+ componentDidLoad() {
134
+ if (this.value !== undefined) {
135
+ this.applyValue();
136
+ }
137
+ else {
138
+ // Uncontrolled: report whichever tab the consumer already marked `selected`.
139
+ const tabs = this.tabs();
140
+ const index = tabs.findIndex(t => t.selected);
141
+ if (index !== -1)
142
+ this.value = this.tabValue(tabs[index], index);
143
+ }
144
+ this.syncRovingTabindex();
145
+ }
146
+ tabValue(tab, index) {
147
+ return tab.value ?? String(index);
148
+ }
149
+ /** Selects the tab whose value matches `this.value` (and deselects the rest). */
150
+ applyValue() {
151
+ this.tabs().forEach((tab, i) => {
152
+ tab.selected = this.tabValue(tab, i) === this.value;
153
+ });
154
+ this.syncRovingTabindex();
155
+ }
156
+ onValueChange() {
157
+ this.applyValue();
158
+ }
159
+ syncRovingTabindex() {
160
+ const tabs = this.tabs();
161
+ const anySelected = tabs.some(t => t.selected);
162
+ const firstEnabled = tabs.find(t => !t.disabled);
163
+ tabs.forEach(t => {
164
+ t.tabbable = anySelected ? t.selected : t === firstEnabled;
165
+ });
166
+ }
167
+ tabs() {
168
+ return Array.from(this.el.querySelectorAll(':scope > bs-tab, :scope > bs-inline-tab'));
169
+ }
170
+ /** WAI-ARIA tabs pattern (automatic activation): arrows move focus *and* selection to the
171
+ * previous/next enabled tab (wrapping), Home/End jump to the first/last. Arrow axis follows
172
+ * `orientation`; in RTL the horizontal arrows are mirrored. */
173
+ onKeyDown(ev) {
174
+ const vertical = this.orientation === 'vertical';
175
+ const rtl = getComputedStyle(this.el).direction === 'rtl';
176
+ const prevKey = vertical ? 'ArrowUp' : rtl ? 'ArrowRight' : 'ArrowLeft';
177
+ const nextKey = vertical ? 'ArrowDown' : rtl ? 'ArrowLeft' : 'ArrowRight';
178
+ if (![prevKey, nextKey, 'Home', 'End'].includes(ev.key))
179
+ return;
180
+ const enabled = this.tabs().filter(t => !t.disabled);
181
+ const current = enabled.findIndex(t => t === ev.target || t.contains(ev.target));
182
+ if (current === -1 || enabled.length === 0)
183
+ return;
184
+ ev.preventDefault();
185
+ let nextIdx = current;
186
+ if (ev.key === nextKey)
187
+ nextIdx = (current + 1) % enabled.length;
188
+ else if (ev.key === prevKey)
189
+ nextIdx = (current - 1 + enabled.length) % enabled.length;
190
+ else if (ev.key === 'Home')
191
+ nextIdx = 0;
192
+ else
193
+ nextIdx = enabled.length - 1;
194
+ const target = enabled[nextIdx];
195
+ const button = target.shadowRoot?.querySelector('button');
196
+ button?.focus();
197
+ button?.click();
198
+ }
199
+ render() {
200
+ const vertical = this.orientation === 'vertical';
201
+ return (h("div", { key: 'e7f42dc2b8504a99f03c35fa3617155ac430def0', part: "tablist", role: "tablist", "aria-orientation": this.orientation, class: `bs-tabs bs-tabs--${this.type} ${vertical ? 'bs-tabs--vertical' : ''}` }, h("slot", { key: 'a9a96d3fca150110a8490b42d516db9609677903', onSlotchange: () => this.syncRovingTabindex() })));
202
+ }
203
+ static get watchers() { return {
204
+ "value": [{
205
+ "onValueChange": 0
206
+ }],
207
+ "orientation": [{
208
+ "syncRovingTabindex": 0
209
+ }]
210
+ }; }
211
+ };
212
+ BsTabs.style = bsTabsCss();
213
+
214
+ const bsWhatsNewEntryCss = () => `:host{display:block;--bs-whats-new-entry-gap:var(--bs-spacing-100);--bs-whats-new-entry-color:var(--bs-text-default);--bs-whats-new-entry-color-secondary:var(--bs-text-secondary);--bs-whats-new-entry-unread:var(--bs-color-primary-default);--bs-whats-new-entry-image-bg:var(--bs-color-primary-container);--bs-whats-new-entry-image-height:140px;--bs-whats-new-entry-image-radius:var(--bs-border-radius-100);--bs-whats-new-entry-divider:var(--bs-border-default)}.bs-whats-new-entry{display:flex;flex-direction:column;gap:var(--bs-whats-new-entry-gap);color:var(--bs-whats-new-entry-color)}.bs-whats-new-entry p,.bs-whats-new-entry h1,.bs-whats-new-entry h2,.bs-whats-new-entry h3,.bs-whats-new-entry h4,.bs-whats-new-entry h5,.bs-whats-new-entry h6{margin:0}.bs-whats-new-entry__meta{display:flex;align-items:center;gap:var(--bs-spacing-100)}.bs-whats-new-entry__date{color:var(--bs-whats-new-entry-color-secondary);font-size:var(--bs-font-size-xs);line-height:16px;white-space:nowrap}.bs-whats-new-entry__unread{flex:none;width:8px;height:8px;border-radius:50%;background:var(--bs-whats-new-entry-unread)}.bs-whats-new-entry__sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.bs-whats-new-entry__image{display:none;height:var(--bs-whats-new-entry-image-height);border-radius:var(--bs-whats-new-entry-image-radius);background:var(--bs-whats-new-entry-image-bg);overflow:hidden}.bs-whats-new-entry__image--visible{display:block}::slotted([slot='image']){display:block;width:100%;height:100%;object-fit:cover}.bs-whats-new-entry__content{display:flex;flex-direction:column;gap:var(--bs-spacing-100);align-items:flex-start}.bs-whats-new-entry__heading{align-self:stretch;font-size:var(--bs-font-size-md);font-weight:var(--bs-font-weight-bold);line-height:20px}.bs-whats-new-entry__description{align-self:stretch;color:var(--bs-whats-new-entry-color-secondary);font-size:var(--bs-font-size-sm);line-height:20px}.bs-whats-new-entry__action{--bs-button-subtle-color:var(--bs-text-action);--bs-button-height-sm:var(--bs-spacing-400);--bs-button-padding-x-label-side:var(--bs-spacing-150);--bs-button-padding-x-icon-side:var(--bs-spacing-100)}.bs-whats-new-entry__action svg{width:20px;height:20px}.bs-whats-new-entry__divider{height:8px;background:linear-gradient(var(--bs-whats-new-entry-divider), var(--bs-whats-new-entry-divider)) center / 100% 1px no-repeat}`;
215
+
216
+ const BsWhatsNewEntry = class {
217
+ constructor(hostRef) {
218
+ registerInstance(this, hostRef);
219
+ this.bsAction = createEvent(this, "bsAction");
220
+ }
221
+ /** The tag text, e.g. "New feature". No tag when empty. */
222
+ tag;
223
+ /** Colour of the tag: `info` (default), `success`, `warning`, `error` or `neutral`. */
224
+ tagColor = 'info';
225
+ /** The date as text, already formatted for the reader (e.g. "24.09.2026"). */
226
+ date;
227
+ /** Shows a dot after the date for an update the user hasn't seen. */
228
+ unread = false;
229
+ /** Title. */
230
+ heading;
231
+ /** HTML heading level for the title, 1-6. */
232
+ headingLevel = 3;
233
+ /** Short description under the title. */
234
+ description;
235
+ /** Label of the action link (e.g. "Try it"). No action when empty. */
236
+ actionLabel;
237
+ /** Draws a rule under the entry, to separate it from the next one. */
238
+ divider = false;
239
+ /** Visually hidden text for the unread dot. */
240
+ unreadLabel = 'Unread';
241
+ /** Fires when the action link is pressed. */
242
+ bsAction;
243
+ hasImage = false;
244
+ render() {
245
+ const level = Math.min(6, Math.max(1, Math.trunc(Number(this.headingLevel)) || 3));
246
+ return (h("div", { key: 'f3b59b9886ee7dc0cff3ce37ef361081d268c301', class: "bs-whats-new-entry" }, (this.tag || this.date || this.unread) && (h("div", { key: '849ff3110f9b5e8862d2e8743c69e37a3913ba3f', part: "meta", class: "bs-whats-new-entry__meta" }, this.tag && (h("bs-chip-informative", { key: '1e3ab58124be4aac1785ac5094f607eebba06ada', part: "tag", size: "sm", color: this.tagColor }, this.tag)), this.date && (h("span", { key: '351f70bd49e94fd4848e34d2b134dda0a76aa3ce', part: "date", class: "bs-whats-new-entry__date" }, this.date)), this.unread && (h("span", { key: '9e5341acb5e4b5628ad9c567ca30d87f03c7c511', part: "unread", class: "bs-whats-new-entry__unread" }, h("span", { key: 'cca65aff39503436f75f7e1a6eada38975985b63', class: "bs-whats-new-entry__sr-only" }, this.unreadLabel))))), h("div", { key: '9c4e28e9687456fbe4b40fdba7e22dc162ea26c7', part: "image", class: { 'bs-whats-new-entry__image': true, 'bs-whats-new-entry__image--visible': this.hasImage } }, h("slot", { key: '4e698f6b9cd3bc68c4723877a6c257c2cdafb5a4', name: "image", onSlotchange: (ev) => (this.hasImage = ev.target.assignedNodes().length > 0) })), h("div", { key: '60e73438ed675a12159986ae8352b1c5b2735fb1', class: "bs-whats-new-entry__content" }, this.heading && h(`h${level}`, { part: 'heading', class: { 'bs-whats-new-entry__heading': true } }, this.heading), this.description && (h("p", { key: 'ddf69ede4112a2da4554b0ed4dae5664f739c055', part: "description", class: "bs-whats-new-entry__description" }, this.description)), this.actionLabel && (h("bs-button", { key: 'a6465a5bfab7ee0ccf8e26eb6221e566ad483b2e', part: "action", class: "bs-whats-new-entry__action", variant: "subtle", size: "sm", onClick: () => this.bsAction.emit() }, this.actionLabel, h("svg", { key: 'd45596c561a1366f54beaf3c5ba62084581742fe', slot: "end-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("path", { key: 'a87b5824ff0fe97c7c025096e432948864e1d19b', d: "M5 12H19" }), h("path", { key: '96659132bb0262ed354a33c2c33d48dde199a95b', d: "M13 6L19 12L13 18" }))))), this.divider && h("div", { key: '25381aa31681ccdb1e18fe74a019bd57e1fa8a62', part: "divider", class: "bs-whats-new-entry__divider" })));
247
+ }
248
+ };
249
+ BsWhatsNewEntry.style = bsWhatsNewEntryCss();
250
+
251
+ export { BsTab as bs_tab, BsTabs as bs_tabs, BsWhatsNewEntry as bs_whats_new_entry };
@@ -1,6 +1,6 @@
1
- import { r as registerInstance, c as createEvent, a as getElement, h } from './index-AgoOSYvW.js';
1
+ import { r as registerInstance, c as createEvent, a as getElement, h } from './index-DqQRXQMx.js';
2
2
 
3
- const bsTimepickerCss = () => `:host{display:inline-block;--bs-timepicker-width:294px;--bs-timepicker-bg:var(--bs-surface-raised);--bs-timepicker-radius:var(--bs-border-radius-100);--bs-timepicker-padding-y:var(--bs-spacing-200);--bs-timepicker-padding-x:var(--bs-spacing-200);--bs-timepicker-gap:var(--bs-spacing-200);--bs-timepicker-shadow:var(--bs-shadow-md);--bs-timepicker-title-size:var(--bs-font-size-2xl);--bs-timepicker-title-line-height:var(--bs-line-height-heading-h6);--bs-timepicker-color:var(--bs-text-default);--bs-timepicker-color-secondary:var(--bs-text-secondary);--bs-timepicker-divider:var(--bs-border-neutral-container);--bs-timepicker-cell-size:var(--bs-spacing-550);--bs-timepicker-cell-radius:var(--bs-border-radius-100);--bs-timepicker-value-radius:var(--bs-border-radius-50);--bs-timepicker-hover:var(--bs-surface-hover);--bs-timepicker-pressed:var(--bs-surface-pressed);--bs-timepicker-focus-ring-color:var(--bs-border-neutral-container-focused)}.bs-timepicker{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--bs-timepicker-gap);width:var(--bs-timepicker-width);max-width:100%;padding:var(--bs-timepicker-padding-y) 0;border-radius:var(--bs-timepicker-radius);background:var(--bs-timepicker-bg);box-shadow:var(--bs-timepicker-shadow);color:var(--bs-timepicker-color);font-family:inherit;font-size:var(--bs-font-size-md)}.bs-timepicker__header{display:flex;align-items:center;gap:var(--bs-spacing-100);padding:0 var(--bs-timepicker-padding-x)}.bs-timepicker__title{flex:1 1 0;min-width:0;font-size:var(--bs-timepicker-title-size);font-weight:var(--bs-font-weight-bold);line-height:calc(var(--bs-timepicker-title-line-height) * 1px)}.bs-timepicker__format{display:flex;align-items:center;gap:var(--bs-spacing-50);color:var(--bs-timepicker-color-secondary);line-height:calc(var(--bs-line-height-body-md) * 1px)}.bs-timepicker__divider{height:1px;background:var(--bs-timepicker-divider)}.bs-timepicker__selector{display:flex;align-items:center;justify-content:center;gap:var(--bs-spacing-200);padding:0 var(--bs-timepicker-padding-x)}.bs-timepicker__spinner{display:flex;flex-direction:column;align-items:center;gap:var(--bs-spacing-100);width:var(--bs-timepicker-cell-size)}.bs-timepicker__step,.bs-timepicker__value{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--bs-timepicker-cell-size);height:var(--bs-timepicker-cell-size);padding:0;border:none;background:transparent;font-family:inherit}.bs-timepicker__step{border-radius:var(--bs-timepicker-cell-radius);color:var(--bs-timepicker-color-secondary);cursor:pointer}.bs-timepicker__step svg{width:24px;height:24px}.bs-timepicker__value{border-radius:var(--bs-timepicker-value-radius);color:var(--bs-timepicker-color);font-size:var(--bs-timepicker-title-size);font-weight:var(--bs-font-weight-bold);line-height:calc(var(--bs-timepicker-title-line-height) * 1px);font-variant-numeric:tabular-nums;cursor:pointer;user-select:none}.bs-timepicker__step:hover,.bs-timepicker__value:hover{background:var(--bs-timepicker-hover)}.bs-timepicker__step:active,.bs-timepicker__value:active{background:var(--bs-timepicker-pressed)}.bs-timepicker__step:focus-visible,.bs-timepicker__value:focus-visible{outline:2px solid var(--bs-timepicker-focus-ring-color);outline-offset:0}.bs-timepicker__separator{display:flex;align-items:center;color:var(--bs-timepicker-color)}.bs-timepicker__separator svg{width:4px;height:32px}.bs-timepicker__period::part(label){position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.bs-timepicker__period{width:112px}.bs-timepicker__period::part(control){caret-color:transparent;cursor:pointer;text-overflow:clip}.bs-timepicker__footer{display:flex;align-items:flex-start;justify-content:flex-end;gap:var(--bs-spacing-100);padding:0 var(--bs-timepicker-padding-x)}`;
3
+ const bsTimepickerCss = () => `:host{display:inline-block;--bs-timepicker-width:294px;--bs-timepicker-bg:var(--bs-paper-bg-raised);--bs-timepicker-radius:var(--bs-border-radius-100);--bs-timepicker-padding-y:var(--bs-spacing-200);--bs-timepicker-padding-x:var(--bs-spacing-200);--bs-timepicker-gap:var(--bs-spacing-200);--bs-timepicker-shadow:var(--bs-shadow-md);--bs-timepicker-title-size:var(--bs-font-size-2xl);--bs-timepicker-title-line-height:var(--bs-line-height-heading-h6);--bs-timepicker-color:var(--bs-text-default);--bs-timepicker-color-secondary:var(--bs-text-secondary);--bs-timepicker-divider:var(--bs-border-neutral-container);--bs-timepicker-cell-size:var(--bs-spacing-550);--bs-timepicker-cell-radius:var(--bs-border-radius-100);--bs-timepicker-value-radius:var(--bs-border-radius-50);--bs-timepicker-hover:var(--bs-surface-hover);--bs-timepicker-pressed:var(--bs-surface-pressed);--bs-timepicker-focus-ring-color:var(--bs-border-neutral-container-focused)}.bs-timepicker{width:var(--bs-timepicker-width);max-width:100%;color:var(--bs-timepicker-color);font-size:var(--bs-font-size-md);--bs-card-bg:var(--bs-timepicker-bg);--bs-card-radius:var(--bs-timepicker-radius);--bs-card-padding:var(--bs-timepicker-padding-y) 0;--bs-card-shadow:var(--bs-timepicker-shadow);--bs-card-overflow:visible}.bs-timepicker__body{display:flex;flex-direction:column;gap:var(--bs-timepicker-gap)}.bs-timepicker__header{display:flex;align-items:center;gap:var(--bs-spacing-100);padding:0 var(--bs-timepicker-padding-x)}.bs-timepicker__title{flex:1 1 0;min-width:0;font-size:var(--bs-timepicker-title-size);font-weight:var(--bs-font-weight-bold);line-height:calc(var(--bs-timepicker-title-line-height) * 1px)}.bs-timepicker__format{display:flex;align-items:center;gap:var(--bs-spacing-50);color:var(--bs-timepicker-color-secondary);line-height:calc(var(--bs-line-height-body-md) * 1px)}.bs-timepicker__divider{height:1px;background:var(--bs-timepicker-divider)}.bs-timepicker__selector{display:flex;align-items:center;justify-content:center;gap:var(--bs-spacing-200);padding:0 var(--bs-timepicker-padding-x)}.bs-timepicker__spinner{display:flex;flex-direction:column;align-items:center;gap:var(--bs-spacing-100);width:var(--bs-timepicker-cell-size)}.bs-timepicker__step,.bs-timepicker__value{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--bs-timepicker-cell-size);height:var(--bs-timepicker-cell-size);padding:0;border:none;background:transparent;font-family:inherit}.bs-timepicker__step{border-radius:var(--bs-timepicker-cell-radius);color:var(--bs-timepicker-color-secondary);cursor:pointer}.bs-timepicker__step svg{width:24px;height:24px}.bs-timepicker__value{border-radius:var(--bs-timepicker-value-radius);color:var(--bs-timepicker-color);font-size:var(--bs-timepicker-title-size);font-weight:var(--bs-font-weight-bold);line-height:calc(var(--bs-timepicker-title-line-height) * 1px);font-variant-numeric:tabular-nums;cursor:pointer;user-select:none}.bs-timepicker__step:hover,.bs-timepicker__value:hover{background:var(--bs-timepicker-hover)}.bs-timepicker__step:active,.bs-timepicker__value:active{background:var(--bs-timepicker-pressed)}.bs-timepicker__step:focus-visible,.bs-timepicker__value:focus-visible{outline:2px solid var(--bs-timepicker-focus-ring-color);outline-offset:0}.bs-timepicker__separator{display:flex;align-items:center;color:var(--bs-timepicker-color)}.bs-timepicker__separator svg{width:4px;height:32px}.bs-timepicker__period::part(label){position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.bs-timepicker__period{width:112px}.bs-timepicker__period::part(control){caret-color:transparent;cursor:pointer;text-overflow:clip}.bs-timepicker__footer{display:flex;align-items:flex-start;justify-content:flex-end;gap:var(--bs-spacing-100);padding:0 var(--bs-timepicker-padding-x)}`;
4
4
 
5
5
  const BsTimepicker = class {
6
6
  constructor(hostRef) {
@@ -172,14 +172,14 @@ const BsTimepicker = class {
172
172
  return (h("div", { part: "spinner", class: "bs-timepicker__spinner" }, h("button", { part: "step", type: "button", class: "bs-timepicker__step", "aria-label": stepLabel('Increase'), tabindex: -1, onClick: () => this.stepBy(col, 1) }, h("svg", { viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true" }, h("path", { d: "M18 15L12 9L6 15", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }))), h("div", { part: "value", class: "bs-timepicker__value", role: "spinbutton", tabindex: 0, "aria-label": label, "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": n, "aria-valuetext": pad(n), onKeyDown: this.onKeyDown(col), onBlur: () => (this.typed = '') }, pad(n)), h("button", { part: "step", type: "button", class: "bs-timepicker__step", "aria-label": stepLabel('Decrease'), tabindex: -1, onClick: () => this.stepBy(col, -1) }, h("svg", { viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true" }, h("path", { d: "M6 9L12 15L18 9", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })))));
173
173
  }
174
174
  render() {
175
- return (h("div", { key: 'a2e5fe098763d32468ffc0bdd3c2df153385dfd7', part: "container", class: "bs-timepicker" }, h("div", { key: 'd7a3bcdb9585480d2f58b27d8499f6ef9c8d21e0', part: "header", class: "bs-timepicker__header" }, h("div", { key: '6183e6243df377936ddc2d5a92238720efc7a671', part: "title", class: "bs-timepicker__title" }, this.heading), h("label", { key: '4e95425e9f67d6575ef9572a9c385b9a5c887359', class: "bs-timepicker__format" }, h("span", { key: '29771986229fd68af07078e3528a12d75f4a5794' }, this.formatLabel), h("bs-switch", { key: '946ea660ff659d71ca2c3e024bff8eb05afdcfe8', part: "format-toggle", size: "md", ariaLabel: this.formatLabel, checked: !this.is12h, onBsChange: (ev) => (this.format = ev.detail ? '24h' : '12h') }))), h("div", { key: 'e6367ea101ae0981224129bc6c70c7bf5d2b6db9', class: "bs-timepicker__divider" }), h("div", { key: '20ab9cfd9702dae8bf097de642e61439489f6fb5', part: "selector", class: "bs-timepicker__selector" }, this.renderColumn('hour', this.hourLabel), h("div", { key: '5780f3fb2eb6f5b2e6d29ed4cd1585190051e3fd', part: "separator", class: "bs-timepicker__separator", "aria-hidden": "true" }, h("svg", { key: 'd35956df0f6f18f1472cc720f4ab876bbc41e515', viewBox: "0 0 4 32", fill: "currentColor" }, h("circle", { key: '4e6083df833bc3bf6390c80d7911219e61a51d37', cx: "2", cy: "10", r: "2" }), h("circle", { key: 'e3dea9bb879e7b4b09b9d37a0becbfd54f803169', cx: "2", cy: "22", r: "2" }))), this.renderColumn('minute', this.minuteLabel), this.is12h && (h("bs-input", { key: 'a9fb9ef6ff16d5c3f4aa4e067e3795a7ddc7d1e7', part: "period", class: "bs-timepicker__period", type: "dropdown", label: this.periodLabel, value: this.isPm ? 'PM' : 'AM', options: [
175
+ return (h("bs-card", { key: 'e0545d99e052005bcad5509f81505f628adb5dc4', part: "container", class: "bs-timepicker", surface: "raised" }, h("div", { key: '664c7184dcefe5c63f03afad3953787cbc3064cc', class: "bs-timepicker__body" }, h("div", { key: '602d4f0ca6975b22daa7c7a37a6d53a259c39768', part: "header", class: "bs-timepicker__header" }, h("div", { key: '1650464c84e066f14f6343f18f779e35932535c3', part: "title", class: "bs-timepicker__title" }, this.heading), h("label", { key: 'debc6155ccf39b90f281d49240203d642fb5039d', class: "bs-timepicker__format" }, h("span", { key: '147a6d85b4f0922b5c7d96ebef88b3c70d1fbe05' }, this.formatLabel), h("bs-switch", { key: 'ddb0be1751ce8246acbfd6c187e66fb6bc878cd5', part: "format-toggle", size: "md", ariaLabel: this.formatLabel, checked: !this.is12h, onBsChange: (ev) => (this.format = ev.detail ? '24h' : '12h') }))), h("div", { key: '35f13bd74133f2c1109df96aafdc456178e4a32f', class: "bs-timepicker__divider" }), h("div", { key: '9c979a8d3300a8f5dba7d8df784dc8ef691a40a6', part: "selector", class: "bs-timepicker__selector" }, this.renderColumn('hour', this.hourLabel), h("div", { key: '5b4af0371fd816067b92854da2b35e5a7de8e4ea', part: "separator", class: "bs-timepicker__separator", "aria-hidden": "true" }, h("svg", { key: 'a70450b5068add559c48e795ce6aca204b30d02d', viewBox: "0 0 4 32", fill: "currentColor" }, h("circle", { key: '26a760f4d4712eca3df48b97bde276ce241511d5', cx: "2", cy: "10", r: "2" }), h("circle", { key: '3c6eb56e2736353dc5e5bc4a1d6ef64242f6a367', cx: "2", cy: "22", r: "2" }))), this.renderColumn('minute', this.minuteLabel), this.is12h && (h("bs-input", { key: '948e724c331008bbd00fd84c516d02e919e622e1', part: "period", class: "bs-timepicker__period", type: "dropdown", label: this.periodLabel, value: this.isPm ? 'PM' : 'AM', options: [
176
176
  { label: 'AM', value: 'AM' },
177
177
  { label: 'PM', value: 'PM' },
178
178
  ], onBsChange: (ev) => {
179
179
  const pm = ev.detail === 'PM';
180
180
  if (pm !== this.isPm)
181
181
  this.hour = (this.hour + 12) % 24;
182
- } }))), h("div", { key: 'e4256dede407bec46c5da8e967001472ccd0f49b', class: "bs-timepicker__divider" }), h("div", { key: '9be6cade11a25c92c77f4313827f49ee8d89dfb4', part: "footer", class: "bs-timepicker__footer" }, h("bs-button", { key: '6ded59a284b389b5e4a259b1a238296ec83d6c27', part: "cancel", variant: "subtle", onClick: this.cancel }, this.cancelLabel), h("bs-button", { key: 'e1f566c9c34b3371783206910d91a9d49f8cdc41', part: "confirm", variant: "primary", onClick: this.confirm }, this.confirmLabel))));
182
+ } }))), h("div", { key: '08b57e8c0b895e272d98386fe5b2ac2e55a87de0', class: "bs-timepicker__divider" }), h("div", { key: '5b1af1da10c4333ef6b826eaafd75fa12ef2e785', part: "footer", class: "bs-timepicker__footer" }, h("bs-button", { key: 'ad24615dbe6ae46e00ca558f71cee030504573a5', part: "cancel", variant: "subtle", onClick: this.cancel }, this.cancelLabel), h("bs-button", { key: 'f76cd192e1e7e0bb524080cf54a655c5b4508a3c', part: "confirm", variant: "primary", onClick: this.confirm }, this.confirmLabel)))));
183
183
  }
184
184
  static get formAssociated() { return true; }
185
185
  static get watchers() { return {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-AgoOSYvW.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-DqQRXQMx.js';
2
2
 
3
3
  const bsToastCss = () => `:host{display:inline-flex;--bs-toast-radius:var(--bs-border-radius-100);--bs-toast-shadow:var(--bs-shadow-md);--bs-toast-content-padding-y:var(--bs-spacing-200);--bs-toast-content-padding-x:var(--bs-spacing-200);--bs-toast-content-gap:var(--bs-spacing-150);--bs-toast-font-size:var(--bs-font-size-md);--bs-toast-line-height:var(--bs-line-height-body-md);--bs-toast-actions-padding-y:var(--bs-spacing-50);--bs-toast-actions-padding-x:var(--bs-spacing-100);--bs-toast-close-radius:var(--bs-border-radius-100);--bs-toast-surface-info:var(--bs-color-info-container);--bs-toast-text-info:var(--bs-text-info);--bs-toast-surface-warning:var(--bs-color-warning-container);--bs-toast-text-warning:var(--bs-text-warning);--bs-toast-surface-success:var(--bs-color-success-container);--bs-toast-text-success:var(--bs-text-success);--bs-toast-surface-error:var(--bs-color-error-container);--bs-toast-text-error:var(--bs-text-error)}.bs-toast{display:flex;align-items:center;border-radius:var(--bs-toast-radius);box-shadow:var(--bs-toast-shadow);font-family:inherit}.bs-toast--info{background:var(--bs-toast-surface-info);color:var(--bs-toast-text-info)}.bs-toast--warning{background:var(--bs-toast-surface-warning);color:var(--bs-toast-text-warning)}.bs-toast--success{background:var(--bs-toast-surface-success);color:var(--bs-toast-text-success)}.bs-toast--error{background:var(--bs-toast-surface-error);color:var(--bs-toast-text-error)}.bs-toast__content{display:flex;align-items:center;gap:var(--bs-toast-content-gap);flex:1 1 auto;min-width:0;padding:var(--bs-toast-content-padding-y) 0 var(--bs-toast-content-padding-y) var(--bs-toast-content-padding-x)}.bs-toast__icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;color:inherit}.bs-toast__icon svg{width:24px;height:24px}.bs-toast__message{flex:1 1 auto;min-width:0;font-size:var(--bs-toast-font-size);line-height:calc(var(--bs-toast-line-height) * 1px)}.bs-toast__actions{display:flex;align-items:center;align-self:stretch;flex-shrink:0;padding:var(--bs-toast-actions-padding-y) var(--bs-toast-actions-padding-x) var(--bs-toast-actions-padding-y) 0}.bs-toast__close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;padding:0;border:none;background:transparent;border-radius:var(--bs-toast-close-radius);color:inherit;cursor:pointer}.bs-toast__close svg{width:24px;height:24px}.bs-toast__close:hover{background:color-mix(in srgb, currentColor 12%, transparent)}.bs-toast__close:active{background:color-mix(in srgb, currentColor 24%, transparent)}.bs-toast__close:focus-visible{outline:2px solid currentColor;outline-offset:2px}`;
4
4
 
@@ -17,7 +17,7 @@ const BsToast = class {
17
17
  this.bsDismiss.emit();
18
18
  };
19
19
  render() {
20
- return (h("div", { key: 'e8da15f45d0491a0eb8568a8fc31e2b802cf30c3', part: "container", class: `bs-toast bs-toast--${this.state}`, role: "status", "aria-live": this.state === 'error' ? 'assertive' : 'polite' }, h("div", { key: '703099dfc85c56997a2cf6e5e86bd559d1a9d971', class: "bs-toast__content" }, h("span", { key: 'dacb887b5e7bdae27100399a80f9c2cc7a9970d6', part: "icon", class: "bs-toast__icon", "aria-hidden": "true" }, h(StateIcon, { key: '5d71c6abf0c68673c20de54162557a224cffd66b', state: this.state })), h("span", { key: '6587834edfbdf0188a8780ee0c5b93a572956da4', part: "message", class: "bs-toast__message" }, h("slot", { key: '559c2a397c140532185da397a7cab18f484fad19' }))), h("div", { key: '87f868f1b541432798de1f511f92091434c41e0f', class: "bs-toast__actions" }, h("button", { key: '6267c6dcc3114af0d9fecd250097416f80f661b1', part: "close", type: "button", class: "bs-toast__close", "aria-label": "Dismiss", onClick: this.onDismiss }, h(CloseIcon, { key: '8b6a5b9e2ce36d5cbbec7801df81fd125c7d0f27' })))));
20
+ return (h("div", { key: 'fcf10204b781318554bd1d1b65b3b003759f47ca', part: "container", class: `bs-toast bs-toast--${this.state}`, role: "status", "aria-live": this.state === 'error' ? 'assertive' : 'polite' }, h("div", { key: '77a9fc881d530b43aa93cd71ab00d79a402ac5df', class: "bs-toast__content" }, h("span", { key: '18b4ffee843c2f9f235477e729a7a5bca1044595', part: "icon", class: "bs-toast__icon", "aria-hidden": "true" }, h(StateIcon, { key: '62a78820785f12ccfa503d7690ae99d2b3b47aa2', state: this.state })), h("span", { key: 'b17882e4d5f4afe5bcfa5704b515c145df94799b', part: "message", class: "bs-toast__message" }, h("slot", { key: '678d2256cc21e6e07b099d417837b5891e7d6021' }))), h("div", { key: 'aba935f0a62a599b9eacfed9d13598f70a941283', class: "bs-toast__actions" }, h("button", { key: 'a9ee43cf75eca8e737d5e59507408de7f8bffaf1', part: "close", type: "button", class: "bs-toast__close", "aria-label": "Dismiss", onClick: this.onDismiss }, h(CloseIcon, { key: '4e4c5a25e6b25da2362385f1be5c4b86f02bbeb0' })))));
21
21
  }
22
22
  };
23
23
  const StateIcon = ({ state }) => {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h } from './index-AgoOSYvW.js';
1
+ import { r as registerInstance, h } from './index-DqQRXQMx.js';
2
2
 
3
3
  const bsTooltipCss = () => `:host{display:inline-block;--bs-tooltip-bg:var(--bs-surface-inverse);--bs-tooltip-color:var(--bs-text-inverse);--bs-tooltip-radius:var(--bs-border-radius-50);--bs-tooltip-padding-x:var(--bs-spacing-200);--bs-tooltip-padding-y:var(--bs-spacing-100);--bs-tooltip-max-width:200px;--bs-tooltip-shadow:-1px 4px 8px rgba(0, 0, 0, 0.08);--bs-tooltip-font-size:var(--bs-font-size-sm);--bs-tooltip-line-height:var(--bs-line-height-body-sm)}.bs-tooltip{position:relative;display:inline-block}.bs-tooltip__bubble{box-sizing:border-box;max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);background:var(--bs-tooltip-bg);color:var(--bs-tooltip-color);border-radius:var(--bs-tooltip-radius);box-shadow:var(--bs-tooltip-shadow);font-family:inherit;font-size:var(--bs-tooltip-font-size);line-height:calc(var(--bs-tooltip-line-height) * 1px)}.bs-tooltip__arrow{position:absolute;top:-6px;left:50%;transform:translateX(-50%);width:8px;height:8px;background:var(--bs-tooltip-bg);clip-path:polygon(50% 0, 0% 100%, 100% 100%)}`;
4
4
 
@@ -14,7 +14,7 @@ const BsTooltip = class {
14
14
  */
15
15
  placement = 'top';
16
16
  render() {
17
- return (h("div", { key: '6fdabb24080aa3e58a1054aa63f43878da2d0787', class: "bs-tooltip" }, h("span", { key: 'ec139068fd7714642215b47ffbd91318062cbb84', part: "arrow", class: "bs-tooltip__arrow" }), h("div", { key: 'c1e18985eeb5263b6faf9c14c1f6c93cfe6c1062', part: "bubble", class: "bs-tooltip__bubble" }, h("slot", { key: 'f521333b359cb1b30457753ee28379a064aeeae2' }))));
17
+ return (h("div", { key: '8fdc149cce564aa5531956eda52b81bedd9db1bb', class: "bs-tooltip" }, h("span", { key: '34234ea02b510a5a728bb97d259cfbd2c8f7f7b2', part: "arrow", class: "bs-tooltip__arrow" }), h("div", { key: '04d825a91dc6753a90b7daaf370e575c9ddee6d1', part: "bubble", class: "bs-tooltip__bubble" }, h("slot", { key: '81b8681507245e597177d169c1925dfb65aaeeab' }))));
18
18
  }
19
19
  };
20
20
  BsTooltip.style = bsTooltipCss();
@@ -0,0 +1,142 @@
1
+ import { r as registerInstance, c as createEvent, h } from './index-DqQRXQMx.js';
2
+
3
+ const bsWhatsNewCss = () => `:host{display:block;max-width:100%;--bs-whats-new-width:400px;--bs-whats-new-padding:var(--bs-spacing-200);--bs-whats-new-color:var(--bs-text-default);--bs-whats-new-color-secondary:var(--bs-text-secondary);--bs-whats-new-border:var(--bs-border-default);--bs-whats-new-hero-bg:var(--bs-color-primary-container);--bs-whats-new-hero-height:220px;--bs-whats-new-link:var(--bs-text-link);--bs-whats-new-link-underline:var(--bs-border-info);width:var(--bs-whats-new-width)}:host([type='announcement']){--bs-whats-new-width:560px}:host([type='teaser']){--bs-whats-new-width:300px;--bs-whats-new-padding:var(--bs-spacing-150)}.bs-wn--feed{--bs-card-radius:0;--bs-card-padding:var(--bs-whats-new-padding);--bs-card-shadow:0 2px 2px var(--bs-elevation-medium), inset 1px 0 0 var(--bs-whats-new-border)}.bs-wn--announcement{position:relative;--bs-card-radius:var(--bs-border-radius-200);--bs-card-padding:0;--bs-card-shadow:0 2px 4px var(--bs-elevation-medium)}.bs-wn--teaser{--bs-card-radius:var(--bs-border-radius-100);--bs-card-padding:var(--bs-whats-new-padding);--bs-card-shadow:0 4px 4px var(--bs-elevation-high)}.bs-wn{color:var(--bs-whats-new-color)}.bs-wn p,.bs-wn ul,.bs-wn h1,.bs-wn h2,.bs-wn h3,.bs-wn h4,.bs-wn h5,.bs-wn h6{margin:0}.bs-wn__heading{font-size:var(--bs-font-size-2xl);font-weight:var(--bs-font-weight-bold);line-height:32px}.bs-wn__heading--lg{align-self:stretch}.bs-wn__heading--sm{font-size:var(--bs-font-size-sm);font-weight:var(--bs-font-weight-semibold);line-height:20px}.bs-wn__spacer{flex:1 1 0}.bs-wn__text-button{--bs-button-subtle-color:var(--bs-text-action);--bs-button-height-sm:var(--bs-spacing-400);--bs-button-padding-x-sm:var(--bs-spacing-150)}.bs-wn__text-button--md{--bs-button-height-md:var(--bs-spacing-550)}.bs-wn__close{flex:none}.bs-wn__close svg{width:20px;height:20px}.bs-wn__close--compact{--bs-icon-button-size-md:24px}.bs-wn__feed{display:flex;flex-direction:column;gap:var(--bs-spacing-100)}.bs-wn__head{display:flex;align-items:center;gap:var(--bs-spacing-100)}.bs-wn__filters{overflow-x:auto;scrollbar-width:none}.bs-wn__filters::-webkit-scrollbar{display:none}.bs-wn__entries{display:flex;flex-direction:column;padding-top:var(--bs-spacing-200);padding-bottom:var(--bs-spacing-100)}.bs-wn__empty{padding:var(--bs-spacing-300) 0;color:var(--bs-whats-new-color-secondary);font-size:var(--bs-font-size-sm);line-height:20px;text-align:center}.bs-wn__footer{display:flex;align-items:center;padding-top:var(--bs-spacing-150)}.bs-wn__link{display:inline-flex;align-items:center;gap:var(--bs-spacing-25);color:var(--bs-whats-new-link);font-size:var(--bs-font-size-xs);line-height:16px;text-decoration:none}.bs-wn__link-text{border-bottom:1px solid var(--bs-whats-new-link-underline)}.bs-wn__link svg{width:16px;height:16px}.bs-wn__link:focus-visible{outline:2px solid var(--bs-border-neutral-focus);outline-offset:2px}.bs-wn__announcement{display:flex;flex-direction:column}.bs-wn--announcement .bs-wn__close{position:absolute;z-index:1;top:var(--bs-spacing-50);inset-inline-end:var(--bs-spacing-50)}.bs-wn__hero{display:none;height:var(--bs-whats-new-hero-height);background:var(--bs-whats-new-hero-bg);overflow:hidden}.bs-wn__hero--visible{display:block}.bs-wn__hero img,::slotted([slot='hero']){display:block;width:100%;height:100%;object-fit:cover}.bs-wn__body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--bs-spacing-150);padding:var(--bs-whats-new-padding)}.bs-wn__points{display:flex;flex-direction:column;gap:var(--bs-spacing-150);align-self:stretch;padding:0;list-style:none;font-size:var(--bs-font-size-sm);line-height:20px}.bs-wn__points li{display:flex;align-items:center;gap:var(--bs-spacing-150)}.bs-wn__check{flex:none;width:18px;height:18px;color:var(--bs-icon-action)}.bs-wn__announcement-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--bs-spacing-100);align-self:stretch;padding-top:var(--bs-spacing-100)}.bs-wn__step{color:var(--bs-whats-new-color-secondary);font-size:var(--bs-font-size-xs);line-height:16px;white-space:nowrap}.bs-wn__actions{display:flex;align-items:center;gap:var(--bs-spacing-100);margin-inline-start:auto}.bs-wn__actions bs-button{--bs-button-height-md:var(--bs-spacing-550)}.bs-wn__teaser{display:flex;flex-direction:column;align-items:flex-start;gap:var(--bs-spacing-75)}.bs-wn__teaser-row{display:flex;align-items:center;gap:var(--bs-spacing-100);align-self:stretch}.bs-wn__date{color:var(--bs-whats-new-color-secondary);font-size:var(--bs-font-size-xs);line-height:16px;white-space:nowrap}.bs-wn__description{color:var(--bs-whats-new-color-secondary);font-size:var(--bs-font-size-sm);line-height:20px}.bs-wn__link-button{--bs-button-padding-x-label-side:var(--bs-spacing-150);--bs-button-padding-x-icon-side:var(--bs-spacing-100);margin-inline-start:calc(var(--bs-spacing-150) * -1)}.bs-wn__link-button svg{width:20px;height:20px}`;
4
+
5
+ const BsWhatsNew = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.bsMarkAllRead = createEvent(this, "bsMarkAllRead");
9
+ this.bsEntryAction = createEvent(this, "bsEntryAction");
10
+ this.bsFilterChange = createEvent(this, "bsFilterChange");
11
+ this.bsClose = createEvent(this, "bsClose");
12
+ this.bsPrimary = createEvent(this, "bsPrimary");
13
+ this.bsSecondary = createEvent(this, "bsSecondary");
14
+ this.bsOpen = createEvent(this, "bsOpen");
15
+ }
16
+ /** Which form: `feed`, `announcement` or `teaser`. */
17
+ type = 'feed';
18
+ /** Heading. Defaults to "What's new" for `feed`; set it for the other forms. */
19
+ heading;
20
+ /** HTML heading level, 1-6. */
21
+ headingLevel = 2;
22
+ /** Shows a close button. */
23
+ closable = false;
24
+ /** Accessible name of the close button. */
25
+ closeLabel = 'Close';
26
+ // --- feed --------------------------------------------------------------------------------
27
+ /** The updates in the feed: `[{ id, category?, tag?, tagColor?, date?, unread?, heading, description?,
28
+ * actionLabel?, image? }]`. Must be set as a JS property, not an HTML attribute -- see CONVENTIONS.md's
29
+ * non-string props rule. */
30
+ entries = [];
31
+ /** The filter tabs: `[{ value, label }]`. `value: "all"` shows every entry; any other value shows the
32
+ * entries whose `category` matches. Defaults to All, New Features, Improvements and Fixes
33
+ * (categories `features`, `improvements`, `fixes`). Set `[]` for no tabs. */
34
+ filters = [
35
+ { value: 'all', label: 'All' },
36
+ { value: 'features', label: 'New Features' },
37
+ { value: 'improvements', label: 'Improvements' },
38
+ { value: 'fixes', label: 'Fixes' },
39
+ ];
40
+ /** The selected filter's `value`. Mutable: choosing a tab updates it. */
41
+ filter = 'all';
42
+ /** Label of the "Mark all as read" button, shown while any entry is `unread`. */
43
+ markAllReadLabel = 'Mark all as read';
44
+ /** Text of the release notes link. */
45
+ releaseNotesLabel = 'See all release notes';
46
+ /** URL of the full release notes. The link is only shown when this is set. */
47
+ releaseNotesUrl;
48
+ /** Text shown when the selected filter has no entries. */
49
+ emptyLabel = 'Nothing new here yet.';
50
+ // --- announcement ------------------------------------------------------------------------
51
+ /** Tag text (`announcement`, `teaser`), e.g. "New feature". */
52
+ tag;
53
+ /** Colour of the tag. */
54
+ tagColor = 'info';
55
+ /** URL of the hero image (`announcement`). Or slot your own into `hero`. */
56
+ image;
57
+ /** The bullet points (`announcement`). Must be set as a JS property -- see CONVENTIONS.md. */
58
+ points = [];
59
+ /** Current step, 1-based (`announcement`). Used with `total`. */
60
+ step = 1;
61
+ /** Number of announcements in the sequence (`announcement`). The step label is hidden when 0. */
62
+ total = 0;
63
+ /** Template of the step label; `{step}` and `{total}` are replaced. */
64
+ stepLabel = '{step} of {total}';
65
+ /** Label of the secondary button (`announcement`). Empty hides it. */
66
+ secondaryLabel = 'Remind me later';
67
+ /** Label of the primary button (`announcement`). Empty hides it. */
68
+ primaryLabel = 'Next';
69
+ // --- teaser ------------------------------------------------------------------------------
70
+ /** The date as text (`teaser`). */
71
+ date;
72
+ /** The line under the heading (`teaser`). */
73
+ description;
74
+ /** Label of the link (`teaser`). */
75
+ actionLabel = 'Open What’s new';
76
+ // --- events ------------------------------------------------------------------------------
77
+ /** Fires when "Mark all as read" is pressed (`feed`). Update the entries' `unread` yourself. */
78
+ bsMarkAllRead;
79
+ /** Fires when an entry's action link is pressed (`feed`): `{ id }`. */
80
+ bsEntryAction;
81
+ /** Fires when the user picks a filter tab (`feed`): `{ value }`. */
82
+ bsFilterChange;
83
+ /** Fires when the close button is pressed. */
84
+ bsClose;
85
+ /** Fires when the primary button (`announcement`) is pressed. */
86
+ bsPrimary;
87
+ /** Fires when the secondary button (`announcement`) is pressed. */
88
+ bsSecondary;
89
+ /** Fires when the teaser's link is pressed (`teaser`) -- open the feed. */
90
+ bsOpen;
91
+ /** True while something is assigned to the `hero` slot, so the hero area only exists then. */
92
+ hasHeroSlot = false;
93
+ // --- pieces ------------------------------------------------------------------------------
94
+ heading_(text, cls = '') {
95
+ const level = Math.min(6, Math.max(1, Math.trunc(Number(this.headingLevel)) || 2));
96
+ return h(`h${level}`, { part: 'heading', id: 'heading', class: { 'bs-wn__heading': true, [cls]: !!cls } }, text);
97
+ }
98
+ renderClose(compact = false) {
99
+ if (!this.closable)
100
+ return null;
101
+ return (h("bs-icon-button", { part: "close", class: { 'bs-wn__close': true, 'bs-wn__close--compact': compact }, variant: "subtle", size: "md", ariaLabel: this.closeLabel, onClick: () => this.bsClose.emit() }, h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.8", "stroke-linecap": "round", "aria-hidden": "true" }, h("path", { d: "M6 6L18 18M18 6L6 18" }))));
102
+ }
103
+ renderTag() {
104
+ if (!this.tag)
105
+ return null;
106
+ return (h("bs-chip-informative", { part: "tag", size: "sm", color: this.tagColor }, this.tag));
107
+ }
108
+ renderFeed() {
109
+ const all = this.entries ?? [];
110
+ const visible = this.filter === 'all' ? all : all.filter(e => e.category === this.filter);
111
+ const anyUnread = all.some(e => e.unread);
112
+ const filters = this.filters ?? [];
113
+ return (h("bs-card", { part: "container", class: "bs-wn bs-wn--feed", surface: "base", role: "region", "aria-labelledby": "heading" }, h("div", { class: "bs-wn__feed" }, h("div", { class: "bs-wn__head" }, this.heading_(this.heading ?? 'What’s new'), h("span", { class: "bs-wn__spacer" }), anyUnread && (h("bs-button", { part: "mark-all-read", class: "bs-wn__text-button", variant: "subtle", size: "sm", onClick: () => this.bsMarkAllRead.emit() }, this.markAllReadLabel)), this.renderClose()), filters.length > 0 && (h("div", { part: "filters", class: "bs-wn__filters" }, h("bs-tabs", { value: this.filter, onBsChange: (ev) => this.onFilter(ev.detail.value) }, filters.map(f => (h("bs-tab", { key: f.value, value: f.value, selected: f.value === this.filter }, f.label)))))), visible.length === 0 ? (h("p", { class: "bs-wn__empty" }, this.emptyLabel)) : (h("div", { part: "entries", class: "bs-wn__entries" }, visible.map((e, i) => (h("bs-whats-new-entry", { key: e.id, part: "entry", tag: e.tag, tagColor: e.tagColor, date: e.date, unread: !!e.unread, heading: e.heading, headingLevel: Math.min(6, (Number(this.headingLevel) || 2) + 1), description: e.description, actionLabel: e.actionLabel, divider: i < visible.length - 1 || !!this.releaseNotesUrl, onBsAction: () => this.bsEntryAction.emit({ id: e.id }) }, e.image && h("img", { slot: "image", src: e.image, alt: "" })))))), this.releaseNotesUrl && (h("div", { class: "bs-wn__footer" }, h("a", { part: "release-notes", class: "bs-wn__link", href: this.releaseNotesUrl }, h("span", { class: "bs-wn__link-text" }, this.releaseNotesLabel), h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("path", { d: "M7 17L17 7" }), h("path", { d: "M8 7H17V16" }))))))));
114
+ }
115
+ onFilter(value) {
116
+ if (value === this.filter)
117
+ return;
118
+ this.filter = value;
119
+ this.bsFilterChange.emit({ value });
120
+ }
121
+ renderAnnouncement() {
122
+ const step = this.total > 0 ? this.stepLabel.replace('{step}', String(this.step)).replace('{total}', String(this.total)) : '';
123
+ const points = this.points ?? [];
124
+ return (h("bs-card", { part: "container", class: "bs-wn bs-wn--announcement", surface: "base", role: "region", "aria-labelledby": "heading" }, h("div", { class: "bs-wn__announcement" }, this.renderClose(), h("div", { part: "hero", class: { 'bs-wn__hero': true, 'bs-wn__hero--visible': !!this.image || this.hasHeroSlot } }, this.image && h("img", { src: this.image, alt: "" }), h("slot", { name: "hero", onSlotchange: (ev) => (this.hasHeroSlot = ev.target.assignedNodes().length > 0) })), h("div", { class: "bs-wn__body" }, this.renderTag(), this.heading_(this.heading ?? '', 'bs-wn__heading--lg'), points.length > 0 && (h("ul", { part: "points", class: "bs-wn__points" }, points.map(p => (h("li", null, h("svg", { class: "bs-wn__check", viewBox: "0 0 18 18", fill: "none", stroke: "currentColor", "stroke-width": "1.8", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("path", { d: "M3.5 9.5L7 13L14.5 5" })), h("span", null, p)))))), h("div", { class: "bs-wn__announcement-footer" }, h("span", { part: "step", class: "bs-wn__step" }, step), h("div", { class: "bs-wn__actions" }, this.secondaryLabel && (h("bs-button", { part: "secondary", class: "bs-wn__text-button bs-wn__text-button--md", variant: "subtle", onClick: () => this.bsSecondary.emit() }, this.secondaryLabel)), this.primaryLabel && (h("bs-button", { part: "primary", variant: "primary", onClick: () => this.bsPrimary.emit() }, this.primaryLabel))))))));
125
+ }
126
+ renderTeaser() {
127
+ return (h("bs-card", { part: "container", class: "bs-wn bs-wn--teaser", surface: "base", role: "region", "aria-labelledby": "heading" }, h("div", { class: "bs-wn__teaser" }, h("div", { class: "bs-wn__teaser-row" }, this.renderTag(), this.date && (h("span", { part: "date", class: "bs-wn__date" }, this.date)), h("span", { class: "bs-wn__spacer" }), this.renderClose(true)), this.heading_(this.heading ?? '', 'bs-wn__heading--sm'), this.description && (h("p", { part: "description", class: "bs-wn__description" }, this.description)), this.actionLabel && (h("bs-button", { part: "action", class: "bs-wn__text-button bs-wn__link-button", variant: "subtle", size: "sm", onClick: () => this.bsOpen.emit() }, this.actionLabel, h("svg", { slot: "end-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("path", { d: "M5 12H19" }), h("path", { d: "M13 6L19 12L13 18" })))))));
128
+ }
129
+ render() {
130
+ switch (this.type) {
131
+ case 'announcement':
132
+ return this.renderAnnouncement();
133
+ case 'teaser':
134
+ return this.renderTeaser();
135
+ default:
136
+ return this.renderFeed();
137
+ }
138
+ }
139
+ };
140
+ BsWhatsNew.style = bsWhatsNewCss();
141
+
142
+ export { BsWhatsNew as bs_whats_new };