@brandsync/wc 1.9.0 → 1.11.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 (440) hide show
  1. package/custom-elements.json +8864 -3754
  2. package/dist/brandsync-wc/brandsync-wc.css +33 -0
  3. package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
  4. package/dist/brandsync-wc/{p-9f8852a0.entry.js → p-00a0d489.entry.js} +1 -1
  5. package/dist/brandsync-wc/{p-a5feaad4.entry.js → p-061ddc46.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-107b1c5d.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-7c94e6ae.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-0e39b9cc.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-6bf2f116.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-6fd7dd6a.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-33e44094.entry.js → p-2368a92e.entry.js} +1 -1
  19. package/dist/brandsync-wc/{p-29027559.entry.js → p-247e36ad.entry.js} +1 -1
  20. package/dist/brandsync-wc/{p-ae978c9a.entry.js → p-2497d128.entry.js} +1 -1
  21. package/dist/brandsync-wc/{p-fc240aa0.entry.js → p-282ddbee.entry.js} +1 -1
  22. package/dist/brandsync-wc/{p-0eed6813.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-062cfa34.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-bbcc47b0.entry.js → p-491b51e6.entry.js} +1 -1
  29. package/dist/brandsync-wc/p-52cb2358.entry.js +1 -0
  30. package/dist/brandsync-wc/{p-3ec74d35.entry.js → p-56c37e0a.entry.js} +1 -1
  31. package/dist/brandsync-wc/p-5ba90a13.entry.js +1 -0
  32. package/dist/brandsync-wc/{p-2181378f.entry.js → p-5f27f04d.entry.js} +1 -1
  33. package/dist/brandsync-wc/{p-a09e157f.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-cfcf3f0a.entry.js → p-69c0a85d.entry.js} +1 -1
  36. package/dist/brandsync-wc/{p-9f65f998.entry.js → p-6a696161.entry.js} +1 -1
  37. package/dist/brandsync-wc/{p-8ee0153b.entry.js → p-6c6cdf77.entry.js} +1 -1
  38. package/dist/brandsync-wc/{p-051d3064.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-27bbed83.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-de7c946d.entry.js → p-823ab3b2.entry.js} +1 -1
  46. package/dist/brandsync-wc/{p-a92eec48.entry.js → p-89fabf27.entry.js} +1 -1
  47. package/dist/brandsync-wc/{p-AgoOSYvW.js → p-DqQRXQMx.js} +2 -2
  48. package/dist/brandsync-wc/{p-70f64b25.entry.js → p-a9169157.entry.js} +1 -1
  49. package/dist/brandsync-wc/{p-05c7de28.entry.js → p-afb07368.entry.js} +1 -1
  50. package/dist/brandsync-wc/{p-235ae012.entry.js → p-b84366a7.entry.js} +1 -1
  51. package/dist/brandsync-wc/p-b9a4042e.entry.js +1 -0
  52. package/dist/brandsync-wc/{p-275072dd.entry.js → p-b9ccd9d1.entry.js} +1 -1
  53. package/dist/brandsync-wc/{p-61c1a2a3.entry.js → p-be3dd446.entry.js} +1 -1
  54. package/dist/brandsync-wc/p-c0a92750.entry.js +1 -0
  55. package/dist/brandsync-wc/{p-6331de9c.entry.js → p-d754ee13.entry.js} +1 -1
  56. package/dist/brandsync-wc/{p-e9b43754.entry.js → p-d75f3f87.entry.js} +1 -1
  57. package/dist/brandsync-wc/{p-3176d1d3.entry.js → p-d8b29a53.entry.js} +1 -1
  58. package/dist/brandsync-wc/p-de110ad0.entry.js +1 -0
  59. package/dist/brandsync-wc/p-e2556b4e.entry.js +1 -0
  60. package/dist/brandsync-wc/{p-4574a707.entry.js → p-e5daa6ca.entry.js} +1 -1
  61. package/dist/brandsync-wc/{p-c4de155c.entry.js → p-f15d9524.entry.js} +1 -1
  62. package/dist/brandsync-wc/p-f5180578.entry.js +1 -0
  63. package/dist/brandsync-wc/{p-114d2fd8.entry.js → p-f7d15fbe.entry.js} +1 -1
  64. package/dist/brandsync-wc/{p-a0d5a620.entry.js → p-fc069773.entry.js} +1 -1
  65. package/dist/brandsync-wc/p-fcee0dc4.entry.js +1 -0
  66. package/dist/cjs/brandsync-wc.cjs.js +2 -2
  67. package/dist/cjs/bs-accordion.cjs.entry.js +1 -1
  68. package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +2 -2
  69. package/dist/cjs/bs-ai-greeting.cjs.entry.js +2 -2
  70. package/dist/cjs/bs-ai-thinking.cjs.entry.js +2 -2
  71. package/dist/cjs/bs-attachment-list.cjs.entry.js +2 -2
  72. package/dist/cjs/bs-attachment.cjs.entry.js +1 -1
  73. package/dist/cjs/bs-avatar.cjs.entry.js +1 -1
  74. package/dist/cjs/bs-badge.cjs.entry.js +1 -1
  75. package/dist/cjs/bs-breadcrumb-overflow.cjs.entry.js +1 -1
  76. package/dist/cjs/bs-breadcrumb.cjs.entry.js +1 -1
  77. package/dist/cjs/bs-breadcrumbs.cjs.entry.js +2 -2
  78. package/dist/cjs/bs-button-skeleton.cjs.entry.js +2 -2
  79. package/dist/cjs/bs-button.cjs.entry.js +3 -3
  80. package/dist/cjs/bs-card.cjs.entry.js +3 -3
  81. package/dist/cjs/bs-carousel.cjs.entry.js +1 -1
  82. package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +2 -2
  83. package/dist/cjs/bs-chatbot-header.cjs.entry.js +2 -2
  84. package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +2 -2
  85. package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +2 -2
  86. package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +2 -2
  87. package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +2 -2
  88. package/dist/cjs/bs-checkbox.cjs.entry.js +1 -1
  89. package/dist/cjs/bs-chip-filter.cjs.entry.js +1 -1
  90. package/dist/cjs/bs-chip-informative.cjs.entry.js +1 -1
  91. package/dist/cjs/bs-chip-input.cjs.entry.js +1 -1
  92. package/dist/cjs/bs-composer-status-banner.cjs.entry.js +1 -1
  93. package/dist/cjs/bs-composer.cjs.entry.js +1 -1
  94. package/dist/cjs/bs-cookie-consent.cjs.entry.js +186 -0
  95. package/dist/cjs/bs-data-table.cjs.entry.js +1 -1
  96. package/dist/cjs/bs-datepicker.cjs.entry.js +414 -0
  97. package/dist/cjs/bs-dialog.cjs.entry.js +1 -1
  98. package/dist/cjs/bs-error-page.cjs.entry.js +103 -0
  99. package/dist/cjs/bs-file-upload-item.cjs.entry.js +2 -2
  100. package/dist/cjs/bs-file-upload.cjs.entry.js +2 -2
  101. package/dist/cjs/bs-icon-button.cjs.entry.js +2 -2
  102. package/dist/cjs/bs-icon-tile.cjs.entry.js +52 -0
  103. package/dist/cjs/bs-inline-tab.cjs.entry.js +2 -2
  104. package/dist/cjs/{bs-input.cjs.entry.js → bs-input_3.cjs.entry.js} +74 -6
  105. package/dist/cjs/bs-logo.cjs.entry.js +1 -1
  106. package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +2 -2
  107. package/dist/cjs/bs-navigation-drawer.cjs.entry.js +3 -3
  108. package/dist/cjs/bs-navigation-header.cjs.entry.js +2 -2
  109. package/dist/cjs/bs-onboarding-checklist.cjs.entry.js +161 -0
  110. package/dist/cjs/bs-pagination.cjs.entry.js +2 -2
  111. package/dist/cjs/bs-product-tour.cjs.entry.js +78 -0
  112. package/dist/cjs/bs-progress-linear.cjs.entry.js +4 -4
  113. package/dist/cjs/bs-progress.cjs.entry.js +3 -3
  114. package/dist/cjs/bs-qr-code.cjs.entry.js +148 -0
  115. package/dist/cjs/bs-radio.cjs.entry.js +2 -2
  116. package/dist/cjs/bs-session-timeout.cjs.entry.js +215 -0
  117. package/dist/cjs/bs-slider.cjs.entry.js +2 -2
  118. package/dist/cjs/bs-snackbar.cjs.entry.js +9 -3
  119. package/dist/cjs/bs-source-link.cjs.entry.js +3 -3
  120. package/dist/cjs/bs-stepper-step.cjs.entry.js +2 -2
  121. package/dist/cjs/bs-stepper.cjs.entry.js +2 -2
  122. package/dist/cjs/bs-switch.cjs.entry.js +2 -2
  123. package/dist/cjs/bs-tab_3.cjs.entry.js +255 -0
  124. package/dist/cjs/bs-timepicker.cjs.entry.js +209 -0
  125. package/dist/cjs/bs-toast.cjs.entry.js +2 -2
  126. package/dist/cjs/bs-tooltip.cjs.entry.js +2 -2
  127. package/dist/cjs/bs-whats-new.cjs.entry.js +144 -0
  128. package/dist/cjs/{index-kk9YXF2S.js → index-tFJjflK5.js} +15 -3
  129. package/dist/cjs/loader.cjs.js +2 -2
  130. package/dist/collection/collection-manifest.json +11 -0
  131. package/dist/collection/components/bs-a11y.cmp.test.js +26 -0
  132. package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
  133. package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
  134. package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
  135. package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
  136. package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
  137. package/dist/collection/components/bs-button/bs-button/bs-button.cmp.test.js +28 -0
  138. package/dist/collection/components/bs-button/bs-button/bs-button.css +8 -2
  139. package/dist/collection/components/bs-button/bs-button/bs-button.js +4 -1
  140. package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +1 -1
  141. package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
  142. package/dist/collection/components/bs-card/bs-card.cmp.test.js +48 -0
  143. package/dist/collection/components/bs-card/bs-card.css +37 -16
  144. package/dist/collection/components/bs-card/bs-card.js +2 -2
  145. package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
  146. package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
  147. package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
  148. package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
  149. package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
  150. package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
  151. package/dist/collection/components/bs-cookie-consent/bs-cookie-consent.cmp.test.js +217 -0
  152. package/dist/collection/components/bs-cookie-consent/bs-cookie-consent.css +350 -0
  153. package/dist/collection/components/bs-cookie-consent/bs-cookie-consent.js +668 -0
  154. package/dist/collection/components/bs-cookie-consent/bs-cookie-consent.stories.js +103 -0
  155. package/dist/collection/components/bs-datepicker/bs-datepicker.cmp.test.js +191 -0
  156. package/dist/collection/components/bs-datepicker/bs-datepicker.css +325 -0
  157. package/dist/collection/components/bs-datepicker/bs-datepicker.js +788 -0
  158. package/dist/collection/components/bs-datepicker/bs-datepicker.stories.js +64 -0
  159. package/dist/collection/components/bs-error-page/bs-error-page.cmp.test.js +99 -0
  160. package/dist/collection/components/bs-error-page/bs-error-page.css +105 -0
  161. package/dist/collection/components/bs-error-page/bs-error-page.js +328 -0
  162. package/dist/collection/components/bs-error-page/bs-error-page.stories.js +57 -0
  163. package/dist/collection/components/bs-file-upload/bs-file-upload.js +1 -1
  164. package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.js +1 -1
  165. package/dist/collection/components/bs-icon-tile/bs-icon-tile.cmp.test.js +175 -0
  166. package/dist/collection/components/bs-icon-tile/bs-icon-tile.css +112 -0
  167. package/dist/collection/components/bs-icon-tile/bs-icon-tile.js +158 -0
  168. package/dist/collection/components/bs-icon-tile/bs-icon-tile.stories.js +45 -0
  169. package/dist/collection/components/bs-input/bs-input.cmp.test.js +14 -0
  170. package/dist/collection/components/bs-input/bs-input.css +9 -2
  171. package/dist/collection/components/bs-input/bs-input.js +7 -4
  172. package/dist/collection/components/bs-menu/bs-menu.js +1 -1
  173. package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
  174. package/dist/collection/components/bs-onboarding-checklist/bs-onboarding-checklist.cmp.test.js +280 -0
  175. package/dist/collection/components/bs-onboarding-checklist/bs-onboarding-checklist.css +488 -0
  176. package/dist/collection/components/bs-onboarding-checklist/bs-onboarding-checklist.js +674 -0
  177. package/dist/collection/components/bs-onboarding-checklist/bs-onboarding-checklist.stories.js +92 -0
  178. package/dist/collection/components/bs-pagination/bs-pagination.js +1 -1
  179. package/dist/collection/components/bs-product-tour/bs-product-tour.cmp.test.js +116 -0
  180. package/dist/collection/components/bs-product-tour/bs-product-tour.css +265 -0
  181. package/dist/collection/components/bs-product-tour/bs-product-tour.js +391 -0
  182. package/dist/collection/components/bs-product-tour/bs-product-tour.stories.js +68 -0
  183. package/dist/collection/components/bs-progress/bs-progress.js +2 -2
  184. package/dist/collection/components/bs-progress-linear/bs-progress-linear.css +1 -1
  185. package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +2 -2
  186. package/dist/collection/components/bs-qr-code/bs-qr-code.cmp.test.js +152 -0
  187. package/dist/collection/components/bs-qr-code/bs-qr-code.css +307 -0
  188. package/dist/collection/components/bs-qr-code/bs-qr-code.js +767 -0
  189. package/dist/collection/components/bs-qr-code/bs-qr-code.stories.js +99 -0
  190. package/dist/collection/components/bs-radio/bs-radio.js +1 -1
  191. package/dist/collection/components/bs-session-timeout/bs-session-timeout.cmp.test.js +202 -0
  192. package/dist/collection/components/bs-session-timeout/bs-session-timeout.css +239 -0
  193. package/dist/collection/components/bs-session-timeout/bs-session-timeout.js +772 -0
  194. package/dist/collection/components/bs-session-timeout/bs-session-timeout.stories.js +88 -0
  195. package/dist/collection/components/bs-slider/bs-slider.js +1 -1
  196. package/dist/collection/components/bs-snackbar/bs-snackbar.cmp.test.js +20 -0
  197. package/dist/collection/components/bs-snackbar/bs-snackbar.css +6 -4
  198. package/dist/collection/components/bs-snackbar/bs-snackbar.js +53 -1
  199. package/dist/collection/components/bs-source-link/bs-source-link.js +2 -2
  200. package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +1 -1
  201. package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +1 -1
  202. package/dist/collection/components/bs-switch/bs-switch.js +1 -1
  203. package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +1 -1
  204. package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +1 -1
  205. package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +1 -1
  206. package/dist/collection/components/bs-timepicker/bs-timepicker.cmp.test.js +141 -0
  207. package/dist/collection/components/bs-timepicker/bs-timepicker.css +204 -0
  208. package/dist/collection/components/bs-timepicker/bs-timepicker.js +511 -0
  209. package/dist/collection/components/bs-timepicker/bs-timepicker.stories.js +44 -0
  210. package/dist/collection/components/bs-toast/bs-toast.js +1 -1
  211. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  212. package/dist/collection/components/bs-whats-new/bs-whats-new.cmp.test.js +200 -0
  213. package/dist/collection/components/bs-whats-new/bs-whats-new.css +315 -0
  214. package/dist/collection/components/bs-whats-new/bs-whats-new.js +790 -0
  215. package/dist/collection/components/bs-whats-new/bs-whats-new.stories.js +105 -0
  216. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.cmp.test.js +79 -0
  217. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.css +131 -0
  218. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.js +295 -0
  219. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.stories.js +67 -0
  220. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +2 -2
  221. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
  222. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +1 -1
  223. package/dist/components/bs-accordion.js +1 -1
  224. package/dist/components/bs-ai-disclaimer.js +1 -1
  225. package/dist/components/bs-ai-greeting.js +1 -1
  226. package/dist/components/bs-ai-thinking.js +1 -1
  227. package/dist/components/bs-attachment-list.js +1 -1
  228. package/dist/components/bs-attachment.js +1 -1
  229. package/dist/components/bs-avatar.js +1 -1
  230. package/dist/components/bs-badge.js +1 -1
  231. package/dist/components/bs-breadcrumb-overflow.js +1 -1
  232. package/dist/components/bs-breadcrumb.js +1 -1
  233. package/dist/components/bs-breadcrumbs.js +1 -1
  234. package/dist/components/bs-button-skeleton.js +1 -1
  235. package/dist/components/bs-button.js +1 -1
  236. package/dist/components/bs-card.js +1 -1
  237. package/dist/components/bs-carousel.js +1 -1
  238. package/dist/components/bs-chatbot-feedback.js +1 -1
  239. package/dist/components/bs-chatbot-header.js +1 -1
  240. package/dist/components/bs-chatbot-response-action.js +1 -1
  241. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  242. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  243. package/dist/components/bs-checkbox-skeleton.js +1 -1
  244. package/dist/components/bs-checkbox.js +1 -1
  245. package/dist/components/bs-chip-filter.js +1 -1
  246. package/dist/components/bs-chip-informative.js +1 -1
  247. package/dist/components/bs-chip-input.js +1 -1
  248. package/dist/components/bs-composer-status-banner.js +1 -1
  249. package/dist/components/bs-composer.js +1 -1
  250. package/dist/components/bs-cookie-consent.d.ts +11 -0
  251. package/dist/components/bs-cookie-consent.js +1 -0
  252. package/dist/components/bs-data-table.js +1 -1
  253. package/dist/components/bs-datepicker.d.ts +11 -0
  254. package/dist/components/bs-datepicker.js +1 -0
  255. package/dist/components/bs-dialog.js +1 -1
  256. package/dist/components/bs-error-page.d.ts +11 -0
  257. package/dist/components/bs-error-page.js +1 -0
  258. package/dist/components/bs-file-upload-item.js +1 -1
  259. package/dist/components/bs-file-upload.js +1 -1
  260. package/dist/components/bs-icon-button.js +1 -1
  261. package/dist/components/bs-icon-tile.d.ts +11 -0
  262. package/dist/components/bs-icon-tile.js +1 -0
  263. package/dist/components/bs-inline-tab.js +1 -1
  264. package/dist/components/bs-input.js +1 -1
  265. package/dist/components/bs-logo.js +1 -1
  266. package/dist/components/bs-menu-item.js +1 -1
  267. package/dist/components/bs-menu.js +1 -1
  268. package/dist/components/bs-navigation-drawer-item.js +1 -1
  269. package/dist/components/bs-navigation-drawer.js +1 -1
  270. package/dist/components/bs-navigation-header.js +1 -1
  271. package/dist/components/bs-onboarding-checklist.d.ts +11 -0
  272. package/dist/components/bs-onboarding-checklist.js +1 -0
  273. package/dist/components/bs-pagination.js +1 -1
  274. package/dist/components/bs-product-tour.d.ts +11 -0
  275. package/dist/components/bs-product-tour.js +1 -0
  276. package/dist/components/bs-progress-linear.js +1 -1
  277. package/dist/components/bs-progress.js +1 -1
  278. package/dist/components/bs-qr-code.d.ts +11 -0
  279. package/dist/components/bs-qr-code.js +1 -0
  280. package/dist/components/bs-radio.js +1 -1
  281. package/dist/components/bs-session-timeout.d.ts +11 -0
  282. package/dist/components/bs-session-timeout.js +1 -0
  283. package/dist/components/bs-slider.js +1 -1
  284. package/dist/components/bs-snackbar.js +1 -1
  285. package/dist/components/bs-source-link.js +1 -1
  286. package/dist/components/bs-stepper-step.js +1 -1
  287. package/dist/components/bs-stepper.js +1 -1
  288. package/dist/components/bs-switch.js +1 -1
  289. package/dist/components/bs-tab.js +1 -1
  290. package/dist/components/bs-tabs.js +1 -1
  291. package/dist/components/bs-timepicker.d.ts +11 -0
  292. package/dist/components/bs-timepicker.js +1 -0
  293. package/dist/components/bs-toast.js +1 -1
  294. package/dist/components/bs-tooltip.js +1 -1
  295. package/dist/components/bs-whats-new-entry.d.ts +11 -0
  296. package/dist/components/bs-whats-new-entry.js +1 -0
  297. package/dist/components/bs-whats-new.d.ts +11 -0
  298. package/dist/components/bs-whats-new.js +1 -0
  299. package/dist/components/index.js +1 -1
  300. package/dist/components/{p-R2MlkUzD.js → p-BEEoVNRu.js} +1 -1
  301. package/dist/components/{p-EtXc94lJ.js → p-BZ3M4lOU.js} +1 -1
  302. package/dist/components/p-B_I4UEMp.js +1 -0
  303. package/dist/components/{p-BfEyD6Ku.js → p-Be9L4_Fe.js} +1 -1
  304. package/dist/components/p-Be_Pmccm.js +1 -0
  305. package/dist/components/p-Bl_tVzeq.js +1 -0
  306. package/dist/components/p-C8yT2Ucq.js +1 -0
  307. package/dist/components/p-CA31vqjL.js +1 -0
  308. package/dist/components/p-CUfs0ROR.js +1 -0
  309. package/dist/components/{p-JYlmcxBn.js → p-CVrEuVFo.js} +1 -1
  310. package/dist/components/{p-BA3c9Rom.js → p-C_j_jDM6.js} +1 -1
  311. package/dist/components/p-CbimDNGY.js +1 -0
  312. package/dist/components/{p-Buly0d5G.js → p-CeUK3n7D.js} +1 -1
  313. package/dist/components/p-CncySD_-.js +1 -0
  314. package/dist/components/p-DE8K7fg0.js +1 -0
  315. package/dist/components/p-Dr0Qk9Zc.js +1 -0
  316. package/dist/components/p-DuLL7Ouw.js +1 -0
  317. package/dist/components/p-YsHQLXET.js +1 -0
  318. package/dist/components/p-qmS2CBqi.js +1 -0
  319. package/dist/components/{p-BoeorHNv.js → p-zTHlbyH6.js} +1 -1
  320. package/dist/esm/brandsync-wc.js +3 -3
  321. package/dist/esm/bs-accordion.entry.js +1 -1
  322. package/dist/esm/bs-ai-disclaimer.entry.js +2 -2
  323. package/dist/esm/bs-ai-greeting.entry.js +2 -2
  324. package/dist/esm/bs-ai-thinking.entry.js +2 -2
  325. package/dist/esm/bs-attachment-list.entry.js +2 -2
  326. package/dist/esm/bs-attachment.entry.js +1 -1
  327. package/dist/esm/bs-avatar.entry.js +1 -1
  328. package/dist/esm/bs-badge.entry.js +1 -1
  329. package/dist/esm/bs-breadcrumb-overflow.entry.js +1 -1
  330. package/dist/esm/bs-breadcrumb.entry.js +1 -1
  331. package/dist/esm/bs-breadcrumbs.entry.js +2 -2
  332. package/dist/esm/bs-button-skeleton.entry.js +2 -2
  333. package/dist/esm/bs-button.entry.js +3 -3
  334. package/dist/esm/bs-card.entry.js +3 -3
  335. package/dist/esm/bs-carousel.entry.js +1 -1
  336. package/dist/esm/bs-chatbot-feedback.entry.js +2 -2
  337. package/dist/esm/bs-chatbot-header.entry.js +2 -2
  338. package/dist/esm/bs-chatbot-response-action.entry.js +2 -2
  339. package/dist/esm/bs-chatbot-sources-drawer.entry.js +2 -2
  340. package/dist/esm/bs-chatbot-suggestion-button.entry.js +2 -2
  341. package/dist/esm/bs-checkbox-skeleton.entry.js +2 -2
  342. package/dist/esm/bs-checkbox.entry.js +1 -1
  343. package/dist/esm/bs-chip-filter.entry.js +1 -1
  344. package/dist/esm/bs-chip-informative.entry.js +1 -1
  345. package/dist/esm/bs-chip-input.entry.js +1 -1
  346. package/dist/esm/bs-composer-status-banner.entry.js +1 -1
  347. package/dist/esm/bs-composer.entry.js +1 -1
  348. package/dist/esm/bs-cookie-consent.entry.js +184 -0
  349. package/dist/esm/bs-data-table.entry.js +1 -1
  350. package/dist/esm/bs-datepicker.entry.js +412 -0
  351. package/dist/esm/bs-dialog.entry.js +1 -1
  352. package/dist/esm/bs-error-page.entry.js +101 -0
  353. package/dist/esm/bs-file-upload-item.entry.js +2 -2
  354. package/dist/esm/bs-file-upload.entry.js +2 -2
  355. package/dist/esm/bs-icon-button.entry.js +2 -2
  356. package/dist/esm/bs-icon-tile.entry.js +50 -0
  357. package/dist/esm/bs-inline-tab.entry.js +2 -2
  358. package/dist/esm/{bs-input.entry.js → bs-input_3.entry.js} +73 -7
  359. package/dist/esm/bs-logo.entry.js +1 -1
  360. package/dist/esm/bs-navigation-drawer-item.entry.js +2 -2
  361. package/dist/esm/bs-navigation-drawer.entry.js +3 -3
  362. package/dist/esm/bs-navigation-header.entry.js +2 -2
  363. package/dist/esm/bs-onboarding-checklist.entry.js +159 -0
  364. package/dist/esm/bs-pagination.entry.js +2 -2
  365. package/dist/esm/bs-product-tour.entry.js +76 -0
  366. package/dist/esm/bs-progress-linear.entry.js +4 -4
  367. package/dist/esm/bs-progress.entry.js +3 -3
  368. package/dist/esm/bs-qr-code.entry.js +146 -0
  369. package/dist/esm/bs-radio.entry.js +2 -2
  370. package/dist/esm/bs-session-timeout.entry.js +213 -0
  371. package/dist/esm/bs-slider.entry.js +2 -2
  372. package/dist/esm/bs-snackbar.entry.js +9 -3
  373. package/dist/esm/bs-source-link.entry.js +3 -3
  374. package/dist/esm/bs-stepper-step.entry.js +2 -2
  375. package/dist/esm/bs-stepper.entry.js +2 -2
  376. package/dist/esm/bs-switch.entry.js +2 -2
  377. package/dist/esm/bs-tab_3.entry.js +251 -0
  378. package/dist/esm/bs-timepicker.entry.js +207 -0
  379. package/dist/esm/bs-toast.entry.js +2 -2
  380. package/dist/esm/bs-tooltip.entry.js +2 -2
  381. package/dist/esm/bs-whats-new.entry.js +142 -0
  382. package/dist/esm/{index-AgoOSYvW.js → index-DqQRXQMx.js} +15 -3
  383. package/dist/esm/loader.js +3 -3
  384. package/dist/types/components/bs-button/bs-button/bs-button.d.ts +3 -0
  385. package/dist/types/components/bs-cookie-consent/bs-cookie-consent.cmp.test.d.ts +1 -0
  386. package/dist/types/components/bs-cookie-consent/bs-cookie-consent.d.ts +136 -0
  387. package/dist/types/components/bs-cookie-consent/bs-cookie-consent.stories.d.ts +16 -0
  388. package/dist/types/components/bs-datepicker/bs-datepicker.cmp.test.d.ts +1 -0
  389. package/dist/types/components/bs-datepicker/bs-datepicker.d.ts +138 -0
  390. package/dist/types/components/bs-datepicker/bs-datepicker.stories.d.ts +20 -0
  391. package/dist/types/components/bs-error-page/bs-error-page.cmp.test.d.ts +1 -0
  392. package/dist/types/components/bs-error-page/bs-error-page.d.ts +60 -0
  393. package/dist/types/components/bs-error-page/bs-error-page.stories.d.ts +22 -0
  394. package/dist/types/components/bs-icon-tile/bs-icon-tile.cmp.test.d.ts +1 -0
  395. package/dist/types/components/bs-icon-tile/bs-icon-tile.d.ts +40 -0
  396. package/dist/types/components/bs-icon-tile/bs-icon-tile.stories.d.ts +13 -0
  397. package/dist/types/components/bs-onboarding-checklist/bs-onboarding-checklist.cmp.test.d.ts +1 -0
  398. package/dist/types/components/bs-onboarding-checklist/bs-onboarding-checklist.d.ts +140 -0
  399. package/dist/types/components/bs-onboarding-checklist/bs-onboarding-checklist.stories.d.ts +18 -0
  400. package/dist/types/components/bs-product-tour/bs-product-tour.cmp.test.d.ts +1 -0
  401. package/dist/types/components/bs-product-tour/bs-product-tour.d.ts +78 -0
  402. package/dist/types/components/bs-product-tour/bs-product-tour.stories.d.ts +19 -0
  403. package/dist/types/components/bs-qr-code/bs-qr-code.cmp.test.d.ts +1 -0
  404. package/dist/types/components/bs-qr-code/bs-qr-code.d.ts +124 -0
  405. package/dist/types/components/bs-qr-code/bs-qr-code.stories.d.ts +28 -0
  406. package/dist/types/components/bs-session-timeout/bs-session-timeout.cmp.test.d.ts +1 -0
  407. package/dist/types/components/bs-session-timeout/bs-session-timeout.d.ts +141 -0
  408. package/dist/types/components/bs-session-timeout/bs-session-timeout.stories.d.ts +19 -0
  409. package/dist/types/components/bs-snackbar/bs-snackbar.d.ts +7 -0
  410. package/dist/types/components/bs-timepicker/bs-timepicker.cmp.test.d.ts +1 -0
  411. package/dist/types/components/bs-timepicker/bs-timepicker.d.ts +103 -0
  412. package/dist/types/components/bs-timepicker/bs-timepicker.stories.d.ts +14 -0
  413. package/dist/types/components/bs-whats-new/bs-whats-new.cmp.test.d.ts +1 -0
  414. package/dist/types/components/bs-whats-new/bs-whats-new.d.ts +147 -0
  415. package/dist/types/components/bs-whats-new/bs-whats-new.stories.d.ts +14 -0
  416. package/dist/types/components/bs-whats-new-entry/bs-whats-new-entry.cmp.test.d.ts +1 -0
  417. package/dist/types/components/bs-whats-new-entry/bs-whats-new-entry.d.ts +53 -0
  418. package/dist/types/components/bs-whats-new-entry/bs-whats-new-entry.stories.d.ts +18 -0
  419. package/dist/types/components.d.ts +3072 -17
  420. package/package.json +1 -1
  421. package/dist/brandsync-wc/p-2891d40b.entry.js +0 -1
  422. package/dist/brandsync-wc/p-36bf37d9.entry.js +0 -1
  423. package/dist/brandsync-wc/p-3b64e3cd.entry.js +0 -1
  424. package/dist/brandsync-wc/p-4e5dcaff.entry.js +0 -1
  425. package/dist/brandsync-wc/p-7b00dd36.entry.js +0 -1
  426. package/dist/brandsync-wc/p-c10d2529.entry.js +0 -1
  427. package/dist/brandsync-wc/p-f006d962.entry.js +0 -1
  428. package/dist/brandsync-wc/p-f074f94e.entry.js +0 -1
  429. package/dist/brandsync-wc/p-f7d47c17.entry.js +0 -1
  430. package/dist/brandsync-wc/p-fddc7bd1.entry.js +0 -1
  431. package/dist/cjs/bs-menu-item.cjs.entry.js +0 -34
  432. package/dist/cjs/bs-menu.cjs.entry.js +0 -39
  433. package/dist/cjs/bs-tab.cjs.entry.js +0 -88
  434. package/dist/cjs/bs-tabs.cjs.entry.js +0 -133
  435. package/dist/components/p-CpUHnsq9.js +0 -1
  436. package/dist/components/p-wei0Ija2.js +0 -1
  437. package/dist/esm/bs-menu-item.entry.js +0 -32
  438. package/dist/esm/bs-menu.entry.js +0 -37
  439. package/dist/esm/bs-tab.entry.js +0 -86
  440. package/dist/esm/bs-tabs.entry.js +0 -131
@@ -0,0 +1,207 @@
1
+ import { r as registerInstance, c as createEvent, a as getElement, h } from './index-DqQRXQMx.js';
2
+
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
+
5
+ const BsTimepicker = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.bsChange = createEvent(this, "bsChange");
9
+ this.bsCancel = createEvent(this, "bsCancel");
10
+ if (hostRef.$hostElement$["s-ei"]) {
11
+ this.internals = hostRef.$hostElement$["s-ei"];
12
+ }
13
+ else {
14
+ this.internals = hostRef.$hostElement$.attachInternals();
15
+ hostRef.$hostElement$["s-ei"] = this.internals;
16
+ }
17
+ }
18
+ get el() { return getElement(this); }
19
+ internals;
20
+ initialValue = '';
21
+ typed = '';
22
+ /** The `name` the confirmed value is submitted under in a surrounding `<form>`. */
23
+ name;
24
+ /** The confirmed time, 24-hour `HH:mm`. Empty means no time chosen yet (the picker opens on
25
+ * 00:00). Mutable so Confirm updates it directly; `bsChange` still fires. */
26
+ value = '';
27
+ /** Display format: `12h` (with an AM/PM dropdown) or `24h`. The user can switch it with the
28
+ * 24h switch. Does not change `value`, which is always 24-hour. */
29
+ format = '12h';
30
+ /** Step, in minutes, of the minute spinner's carets and arrow keys. Typing is not constrained. */
31
+ minuteStep = 1;
32
+ /** Heading text. */
33
+ heading = 'Select Time';
34
+ /** Label of the 24h switch. */
35
+ formatLabel = '24h';
36
+ /** Label of the Confirm button. */
37
+ confirmLabel = 'Confirm';
38
+ /** Label of the Cancel button. */
39
+ cancelLabel = 'Cancel';
40
+ /** Accessible name of the hour spinner. */
41
+ hourLabel = 'Hour';
42
+ /** Accessible name of the minute spinner. */
43
+ minuteLabel = 'Minute';
44
+ /** Accessible name of the AM/PM dropdown. */
45
+ periodLabel = 'AM/PM';
46
+ /** Fires when the user presses Confirm: `{ value }` as 24-hour `HH:mm`. Not fired when `value` is
47
+ * set programmatically. */
48
+ bsChange;
49
+ /** Fires when the user presses Cancel. The draft is reset to `value`. */
50
+ bsCancel;
51
+ /** Draft hour, 0-23. */
52
+ hour = 0;
53
+ /** Draft minute, 0-59. */
54
+ minute = 0;
55
+ componentWillLoad() {
56
+ this.initialValue = this.value;
57
+ this.resetDraft();
58
+ this.syncFormValue();
59
+ }
60
+ onValueChange() {
61
+ this.resetDraft();
62
+ this.syncFormValue();
63
+ }
64
+ onNameChange() {
65
+ this.syncFormValue();
66
+ }
67
+ /** Called by the browser when the surrounding `<form>` is reset. */
68
+ formResetCallback() {
69
+ this.value = this.initialValue;
70
+ }
71
+ resetDraft() {
72
+ const t = parseTime(this.value);
73
+ this.hour = t ? t.hour : 0;
74
+ this.minute = t ? t.minute : 0;
75
+ }
76
+ syncFormValue() {
77
+ if (!this.internals?.setFormValue)
78
+ return;
79
+ this.internals.setFormValue(this.value ?? '');
80
+ }
81
+ get step() {
82
+ const n = Math.trunc(Number(this.minuteStep));
83
+ return Number.isFinite(n) && n >= 1 && n <= 59 ? n : 1;
84
+ }
85
+ get is12h() {
86
+ return this.format !== '24h';
87
+ }
88
+ get isPm() {
89
+ return this.hour >= 12;
90
+ }
91
+ // --- stepping ----------------------------------------------------------------------------
92
+ /** The number shown in a column. In 12h mode the hour reads 1-12. */
93
+ shown(col) {
94
+ if (col === 'minute')
95
+ return this.minute;
96
+ return this.is12h ? this.hour % 12 || 12 : this.hour;
97
+ }
98
+ bounds(col) {
99
+ if (col === 'minute')
100
+ return [0, 59];
101
+ return this.is12h ? [1, 12] : [0, 23];
102
+ }
103
+ setShown(col, n) {
104
+ if (col === 'minute') {
105
+ this.minute = n;
106
+ }
107
+ else {
108
+ // 12h keeps the current AM/PM; 12 AM is hour 0 and 12 PM is hour 12.
109
+ this.hour = this.is12h ? (n % 12) + (this.isPm ? 12 : 0) : n;
110
+ }
111
+ }
112
+ stepBy(col, dir) {
113
+ const [min, max] = this.bounds(col);
114
+ const size = max - min + 1;
115
+ const by = col === 'minute' ? this.step : 1;
116
+ let next = this.shown(col) + dir * by;
117
+ if (col === 'minute') {
118
+ // Snap onto the step grid when leaving an off-grid value (e.g. typed 07 with step 15).
119
+ const cur = this.shown(col);
120
+ next = dir === 1 ? Math.floor(cur / by) * by + by : Math.ceil(cur / by) * by - by;
121
+ }
122
+ this.setShown(col, ((((next - min) % size) + size) % size) + min);
123
+ }
124
+ onKeyDown = (col) => (ev) => {
125
+ const [min, max] = this.bounds(col);
126
+ if (ev.key === 'ArrowUp')
127
+ this.stepBy(col, 1);
128
+ else if (ev.key === 'ArrowDown')
129
+ this.stepBy(col, -1);
130
+ else if (ev.key === 'Home')
131
+ this.setShown(col, min);
132
+ else if (ev.key === 'End')
133
+ this.setShown(col, max);
134
+ else if (/^\d$/.test(ev.key)) {
135
+ // Two digits make a value; a lone digit that can't start a valid two-digit value commits
136
+ // immediately.
137
+ const candidate = Number((this.typed + ev.key).slice(-2));
138
+ this.typed = (this.typed + ev.key).slice(-2);
139
+ if (candidate >= min && candidate <= max)
140
+ this.setShown(col, candidate);
141
+ else {
142
+ this.typed = ev.key;
143
+ const single = Number(ev.key);
144
+ if (single >= min && single <= max)
145
+ this.setShown(col, single);
146
+ }
147
+ if (this.typed.length === 2)
148
+ this.typed = '';
149
+ ev.preventDefault();
150
+ return;
151
+ }
152
+ else
153
+ return;
154
+ this.typed = '';
155
+ ev.preventDefault();
156
+ };
157
+ // --- actions -----------------------------------------------------------------------------
158
+ confirm = () => {
159
+ const value = `${pad(this.hour)}:${pad(this.minute)}`;
160
+ this.value = value;
161
+ this.bsChange.emit({ value });
162
+ };
163
+ cancel = () => {
164
+ this.resetDraft();
165
+ this.bsCancel.emit();
166
+ };
167
+ // --- rendering ---------------------------------------------------------------------------
168
+ renderColumn(col, label) {
169
+ const [min, max] = this.bounds(col);
170
+ const n = this.shown(col);
171
+ const stepLabel = (dir) => `${dir} ${label.toLowerCase()}`;
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
+ }
174
+ render() {
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
+ { label: 'AM', value: 'AM' },
177
+ { label: 'PM', value: 'PM' },
178
+ ], onBsChange: (ev) => {
179
+ const pm = ev.detail === 'PM';
180
+ if (pm !== this.isPm)
181
+ this.hour = (this.hour + 12) % 24;
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
+ }
184
+ static get formAssociated() { return true; }
185
+ static get watchers() { return {
186
+ "value": [{
187
+ "onValueChange": 0
188
+ }],
189
+ "name": [{
190
+ "onNameChange": 0
191
+ }]
192
+ }; }
193
+ };
194
+ function pad(n) {
195
+ return String(n).padStart(2, '0');
196
+ }
197
+ function parseTime(s) {
198
+ const m = /^(\d{1,2}):(\d{2})$/.exec((s ?? '').trim());
199
+ if (!m)
200
+ return undefined;
201
+ const hour = Number(m[1]);
202
+ const minute = Number(m[2]);
203
+ return hour <= 23 && minute <= 59 ? { hour, minute } : undefined;
204
+ }
205
+ BsTimepicker.style = bsTimepickerCss();
206
+
207
+ export { BsTimepicker as bs_timepicker };
@@ -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: '238f177a44aa2bd735432fe8f3fd1d761065d023', part: "container", class: `bs-toast bs-toast--${this.state}`, role: "status", "aria-live": this.state === 'error' ? 'assertive' : 'polite' }, h("div", { key: '717e222c7b271db0ff5aa57db8ce0efa15bfaf50', class: "bs-toast__content" }, h("span", { key: '316106f6efbcc8abe6bb155e77ec21343b93287c', part: "icon", class: "bs-toast__icon", "aria-hidden": "true" }, h(StateIcon, { key: '5973febbe8d7be889fd14cac847c417a22acb111', state: this.state })), h("span", { key: '1d16db1ba5c010ac5af237b4b399e0dda6f6df59', part: "message", class: "bs-toast__message" }, h("slot", { key: '40e97271fec790a850491be58ae87e54b4765a6a' }))), h("div", { key: '16744b9b6ad79d13aec16afa6593ab0de1ec5ee2', class: "bs-toast__actions" }, h("button", { key: '87adace9953b2dca831543132f3fe5590bc4c52f', part: "close", type: "button", class: "bs-toast__close", "aria-label": "Dismiss", onClick: this.onDismiss }, h(CloseIcon, { key: 'dcf5ffe7a5553ec2792d801c7f62ed367d1454ef' })))));
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: 'b7c2ee57db3a4e36cdd106d78f0f8d54c45a04c6', class: "bs-tooltip" }, h("span", { key: '22b738a760e9967233052ce4540c77da4ac9563e', part: "arrow", class: "bs-tooltip__arrow" }), h("div", { key: '69a8b07711478e699be4c8151d9f7dfd2e4e0bf4', part: "bubble", class: "bs-tooltip__bubble" }, h("slot", { key: 'b32c75a06582b8e8f99b973889450e9100b75323' }))));
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 };