@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,772 @@
1
+ import { h } from "@stencil/core";
2
+ /**
3
+ * The three moments around an expiring session, as one card. Matches the Figma "Session timeout"
4
+ * component's three types:
5
+ *
6
+ * - `warning` -- "You'll be signed out soon": a live countdown with a draining bar, an optional
7
+ * "your work is saved" note, and Sign out now / Stay signed in.
8
+ * - `signed-out` -- "You've been signed out": who was signed in, with Sign in again and Use a different
9
+ * account.
10
+ * - `confirm-identity` -- "Confirm it's you": a fresh password check before a sensitive action, with
11
+ * passkey / BankID alternatives and Cancel.
12
+ *
13
+ * The component never signs anyone in or out. It shows the state and emits `bsPrimary`, `bsSecondary`,
14
+ * `bsAlternative`, `bsCancel` and `bsExpire`; your app talks to the identity provider.
15
+ *
16
+ * **Built from:** `bs-card` (the surface), `bs-icon-tile` (the icon), `bs-button` (the actions),
17
+ * `bs-progress-linear` (the countdown bar), `bs-avatar` (the signed-in account), `bs-input` (the
18
+ * password field).
19
+ *
20
+ * ## When to use
21
+ * - Warning someone, before it happens, that an inactivity timeout is about to end their session.
22
+ * - Telling someone their session ended, and letting them pick up where they left off.
23
+ * - Asking for a fresh credential before a sensitive action.
24
+ *
25
+ * ## When not to use
26
+ * - A first-time sign-in page -- this assumes there was a session.
27
+ * - Anything that is not about the session or the user's identity -- use `bs-dialog`.
28
+ *
29
+ * ## Accessibility
30
+ * The card is a labelled region. The countdown is a `timer` and is *not* announced every second; a polite
31
+ * live region announces the time left at 60, 30 and 10 seconds instead. Wrap the card in your own modal
32
+ * (`bs-dialog`) if the warning must trap focus.
33
+ *
34
+ * @slot icon - Replaces the default glyph in the icon tile. Draw it with `currentColor`.
35
+ * @part container - The card.
36
+ * @part art - The icon tile.
37
+ * @part heading - The heading.
38
+ * @part description - The paragraph under it.
39
+ * @part countdown - The countdown box (`warning`).
40
+ * @part time - The big `m:ss` time (`warning`).
41
+ * @part saved - The "work is saved" note (`warning`).
42
+ * @part account - The signed-in account summary (`signed-out`).
43
+ * @part password - The password field (`confirm-identity`).
44
+ * @part divider - The "or" divider (`confirm-identity`).
45
+ * @part alternatives - The alternative sign-in buttons (`confirm-identity`).
46
+ * @part actions - The action buttons.
47
+ * @part primary - The primary button.
48
+ * @part secondary - The secondary button.
49
+ * @part cancel - The Cancel button (`confirm-identity`).
50
+ */
51
+ export class BsSessionTimeout {
52
+ el;
53
+ /** Which moment: `warning`, `signed-out` or `confirm-identity`. */
54
+ type = 'warning';
55
+ /** Heading. Defaults per `type`. */
56
+ heading;
57
+ /** HTML heading level, 1-6. */
58
+ headingLevel = 2;
59
+ /** Paragraph under the heading. Defaults per `type`. */
60
+ description;
61
+ /** Hides the icon tile. */
62
+ hideIcon = false;
63
+ /** Label of the primary button. Defaults per `type` ("Stay signed in", "Sign in again", "Confirm"). */
64
+ primaryLabel;
65
+ /** Label of the secondary button. Defaults per `type` ("Sign out now", "Use a different account"); none for
66
+ * `confirm-identity`. Set to an empty string to hide it. */
67
+ secondaryLabel;
68
+ // --- warning -------------------------------------------------------------------------------
69
+ /** Seconds left before the session ends (`warning`). Mutable: with `countdown` the component
70
+ * decrements it itself; otherwise drive it from your own timer. */
71
+ secondsLeft = 0;
72
+ /** Length of the warning window in seconds, for the bar: it shows `secondsLeft / totalSeconds`.
73
+ * Defaults to the `secondsLeft` it first had. */
74
+ totalSeconds = 0;
75
+ /** Count `secondsLeft` down once a second (`warning`), firing `bsExpire` at zero. */
76
+ countdown = false;
77
+ /** Text next to the time while a minute or more is left. */
78
+ timeLeftLabel = 'minutes left';
79
+ /** Text next to the time under a minute. */
80
+ secondsLeftLabel = 'seconds left';
81
+ /** Note under the countdown, e.g. "Your draft of INV-2041 is saved automatically." Hidden when empty. */
82
+ savedMessage;
83
+ // --- signed-out ----------------------------------------------------------------------------
84
+ /** Name of the account that was signed in (`signed-out`). */
85
+ accountName;
86
+ /** Email of the account that was signed in (`signed-out`). */
87
+ accountEmail;
88
+ /** Initials in the avatar (`signed-out`). Derived from `accountName` when not set. */
89
+ accountInitials;
90
+ // --- confirm-identity ----------------------------------------------------------------------
91
+ /** Label of the password field. */
92
+ passwordLabel = 'Password';
93
+ /** Error shown under the password field, e.g. after a wrong password. */
94
+ passwordError;
95
+ /** Label of the divider between the password and the alternatives. */
96
+ dividerLabel = 'or';
97
+ /** Other ways to confirm, shown as outlined buttons under the divider: `[{ id, label, icon? }]`.
98
+ * Defaults to a passkey and a BankID button. Must be set as a JS property, not an HTML attribute --
99
+ * see CONVENTIONS.md's non-string props rule. Set `[]` to hide them. */
100
+ alternatives = [
101
+ { id: 'passkey', label: 'Use passkey', icon: 'fingerprint' },
102
+ { id: 'bankid', label: 'Use BankID', icon: 'key' },
103
+ ];
104
+ /** Label of the Cancel button (`confirm-identity`). Set to an empty string to hide it. */
105
+ cancelLabel = 'Cancel';
106
+ /** Fires when the primary button is pressed. For `confirm-identity` the detail is
107
+ * `{ password }`; otherwise it is empty. */
108
+ bsPrimary;
109
+ /** Fires when the secondary button is pressed. */
110
+ bsSecondary;
111
+ /** Fires when an alternative method is pressed (`confirm-identity`): `{ id }`. */
112
+ bsAlternative;
113
+ /** Fires when Cancel is pressed (`confirm-identity`). */
114
+ bsCancel;
115
+ /** Fires once when `countdown` reaches zero. */
116
+ bsExpire;
117
+ password = '';
118
+ announcement = '';
119
+ initialTotal = 0;
120
+ timer;
121
+ componentWillLoad() {
122
+ this.initialTotal = this.secondsLeft;
123
+ }
124
+ componentDidLoad() {
125
+ this.syncTimer();
126
+ }
127
+ disconnectedCallback() {
128
+ this.stopTimer();
129
+ }
130
+ connectedCallback() {
131
+ // Re-attached to the DOM after disconnectedCallback stopped the timer.
132
+ if (this.timer === undefined && this.el.isConnected)
133
+ this.syncTimer();
134
+ }
135
+ onTimerInputsChange() {
136
+ this.syncTimer();
137
+ }
138
+ stopTimer() {
139
+ if (this.timer !== undefined)
140
+ clearInterval(this.timer);
141
+ this.timer = undefined;
142
+ }
143
+ syncTimer() {
144
+ this.stopTimer();
145
+ if (!this.countdown || this.type !== 'warning' || this.secondsLeft <= 0)
146
+ return;
147
+ this.timer = setInterval(() => this.tick(), 1000);
148
+ }
149
+ tick() {
150
+ if (this.secondsLeft <= 0)
151
+ return;
152
+ this.secondsLeft = this.secondsLeft - 1;
153
+ // Announce sparingly: every second would drown a screen reader.
154
+ if ([60, 30, 10].includes(this.secondsLeft)) {
155
+ this.announcement = `${formatTime(this.secondsLeft)} ${this.secondsLeft >= 60 ? this.timeLeftLabel : this.secondsLeftLabel}`;
156
+ }
157
+ if (this.secondsLeft <= 0) {
158
+ this.stopTimer();
159
+ this.bsExpire.emit();
160
+ }
161
+ }
162
+ get defaults() {
163
+ return DEFAULTS[this.type] ?? DEFAULTS.warning;
164
+ }
165
+ // --- rendering ---------------------------------------------------------------------------
166
+ renderHeading(heading, description) {
167
+ const level = Math.min(6, Math.max(1, Math.trunc(Number(this.headingLevel)) || 2));
168
+ return (h("div", { class: "bs-session-timeout__heading-group" }, h(`h${level}`, { part: 'heading', id: 'heading', class: { 'bs-session-timeout__heading': true } }, heading), description && (h("p", { part: "description", class: "bs-session-timeout__description" }, description))));
169
+ }
170
+ renderWarning() {
171
+ const total = this.totalSeconds > 0 ? this.totalSeconds : this.initialTotal || this.secondsLeft;
172
+ const percent = total > 0 ? Math.max(0, Math.min(100, (this.secondsLeft / total) * 100)) : 0;
173
+ const unit = this.secondsLeft >= 60 ? this.timeLeftLabel : this.secondsLeftLabel;
174
+ return (h("div", { part: "countdown", class: "bs-session-timeout__countdown" }, h("div", { class: "bs-session-timeout__time-row" }, h("span", { part: "time", class: "bs-session-timeout__time", role: "timer" }, formatTime(this.secondsLeft)), h("span", { class: "bs-session-timeout__unit" }, unit)), h("bs-progress-linear", { type: "determinate", size: "large", value: percent, showLabel: false, ariaLabel: `${formatTime(this.secondsLeft)} ${unit}` })));
175
+ }
176
+ renderAccount() {
177
+ const name = this.accountName ?? '';
178
+ const initials = this.accountInitials ?? name.split(/\s+/).filter(Boolean).slice(0, 2).map(w => w[0].toUpperCase()).join('');
179
+ if (!name && !this.accountEmail)
180
+ return null;
181
+ return (h("div", { part: "account", class: "bs-session-timeout__account" }, h("bs-avatar", { type: "initials", size: "lg", initials: initials, ariaLabel: name || this.accountEmail }), h("div", { class: "bs-session-timeout__account-text" }, name && h("span", { class: "bs-session-timeout__account-name" }, name), this.accountEmail && h("span", { class: "bs-session-timeout__account-email" }, this.accountEmail))));
182
+ }
183
+ renderConfirm() {
184
+ const alternatives = this.alternatives ?? [];
185
+ return [
186
+ h("bs-input", { part: "password", class: "bs-session-timeout__password", type: "password", label: this.passwordLabel, value: this.password, error: this.passwordError, onBsInput: (ev) => (this.password = ev.detail), onBsChange: (ev) => (this.password = ev.detail) }),
187
+ h("bs-button", { part: "primary", class: "bs-session-timeout__block-button", variant: "primary", onClick: () => this.bsPrimary.emit({ password: this.password }) }, this.primaryLabel ?? this.defaults.primary),
188
+ alternatives.length > 0 && (h("div", { part: "divider", class: "bs-session-timeout__divider", role: "separator" }, h("span", { class: "bs-session-timeout__rule" }), h("span", { class: "bs-session-timeout__divider-label" }, this.dividerLabel), h("span", { class: "bs-session-timeout__rule" }))),
189
+ alternatives.length > 0 && (h("div", { part: "alternatives", class: "bs-session-timeout__alternatives" }, alternatives.map(a => (h("bs-button", { key: a.id, variant: "outlined", onClick: () => this.bsAlternative.emit({ id: a.id }) }, a.icon === 'key' ? h(KeyIcon, { slot: "icon" }) : h(FingerprintIcon, { slot: "icon" }), a.label))))),
190
+ this.cancelLabel && (h("bs-button", { part: "cancel", class: "bs-session-timeout__block-button bs-session-timeout__text-button", variant: "subtle", size: "lg", onClick: () => this.bsCancel.emit() }, this.cancelLabel)),
191
+ ];
192
+ }
193
+ render() {
194
+ const d = this.defaults;
195
+ const heading = this.heading ?? d.heading;
196
+ const description = this.description ?? d.description;
197
+ const primary = this.primaryLabel ?? d.primary;
198
+ const secondary = this.secondaryLabel ?? d.secondary;
199
+ return (h("bs-card", { key: '45a056eabc2f536128ee6adbc6104d76793301f4', part: "container", class: "bs-session-timeout", surface: "base", role: "region", "aria-labelledby": "heading" }, h("div", { key: '035795cb4b5b0252212270236f048e3216d5d401', class: "bs-session-timeout__body" }, !this.hideIcon && (h("bs-icon-tile", { key: '857db99f58d07483d3c7dadd95e5951a645d0c59', part: "art", intent: d.intent, size: "lg" }, h("slot", { key: '41504daf4751677d9b1df0d211e719d8f441f5b2', name: "icon" }, d.glyph()))), this.renderHeading(heading, description), this.type === 'warning' && this.renderWarning(), this.type === 'warning' && this.savedMessage && (h("p", { key: '8ba10b3921db4b3cedbeb3d45bddfb89425bbdbb', part: "saved", class: "bs-session-timeout__saved" }, h(InfoIcon, { key: '44ea938fca553c67ae23628833471ceb98e63b06' }), h("span", { key: '672ebc96828437ffbc67711082fd7018611153b7' }, this.savedMessage))), this.type === 'signed-out' && this.renderAccount(), this.type === 'confirm-identity' && this.renderConfirm(), this.type === 'warning' && (primary || secondary) && (h("div", { key: '94221156fe30010bd0fbe4fb0146c95feceab50f', part: "actions", class: "bs-session-timeout__actions" }, secondary && (h("bs-button", { key: '09b14d30bc185a4644902e52100f0493da6109a0', part: "secondary", variant: "outlined", onClick: () => this.bsSecondary.emit() }, secondary)), primary && (h("bs-button", { key: 'be381ed4be453efd306b28da3e1f4b7f0740c024', part: "primary", variant: "primary", onClick: () => this.bsPrimary.emit() }, primary)))), this.type === 'signed-out' && (primary || secondary) && (h("div", { key: '6b3b3622809165f70d83c68db409e2373ea1008e', part: "actions", class: "bs-session-timeout__actions bs-session-timeout__actions--stacked" }, primary && (h("bs-button", { key: 'f03d85c00ce0c18e14e26d2b4332ddb987b93f9e', part: "primary", class: "bs-session-timeout__block-button", variant: "primary", onClick: () => this.bsPrimary.emit() }, primary)), secondary && (h("bs-button", { key: 'a9bf95d13955110f7f36561b9acc3c89a5862de5', part: "secondary", class: "bs-session-timeout__text-button", variant: "subtle", size: "lg", onClick: () => this.bsSecondary.emit() }, secondary)))), h("div", { key: '69ada1eed62f93587b2c2f45aa1d3ea933ba682f', class: "bs-session-timeout__sr-only", role: "status", "aria-live": "polite" }, this.announcement))));
200
+ }
201
+ static get is() { return "bs-session-timeout"; }
202
+ static get encapsulation() { return "shadow"; }
203
+ static get originalStyleUrls() {
204
+ return {
205
+ "$": ["bs-session-timeout.css"]
206
+ };
207
+ }
208
+ static get styleUrls() {
209
+ return {
210
+ "$": ["bs-session-timeout.css"]
211
+ };
212
+ }
213
+ static get properties() {
214
+ return {
215
+ "type": {
216
+ "type": "string",
217
+ "mutable": false,
218
+ "complexType": {
219
+ "original": "BsSessionTimeoutType",
220
+ "resolved": "\"confirm-identity\" | \"signed-out\" | \"warning\"",
221
+ "references": {
222
+ "BsSessionTimeoutType": {
223
+ "location": "local",
224
+ "path": "/home/runner/work/eg-brandsync-storybook/eg-brandsync-storybook/packages/wc/src/components/bs-session-timeout/bs-session-timeout.tsx",
225
+ "id": "src/components/bs-session-timeout/bs-session-timeout.tsx::BsSessionTimeoutType"
226
+ }
227
+ }
228
+ },
229
+ "required": false,
230
+ "optional": false,
231
+ "docs": {
232
+ "tags": [],
233
+ "text": "Which moment: `warning`, `signed-out` or `confirm-identity`."
234
+ },
235
+ "getter": false,
236
+ "setter": false,
237
+ "reflect": true,
238
+ "attribute": "type",
239
+ "defaultValue": "'warning'"
240
+ },
241
+ "heading": {
242
+ "type": "string",
243
+ "mutable": false,
244
+ "complexType": {
245
+ "original": "string",
246
+ "resolved": "string",
247
+ "references": {}
248
+ },
249
+ "required": false,
250
+ "optional": true,
251
+ "docs": {
252
+ "tags": [],
253
+ "text": "Heading. Defaults per `type`."
254
+ },
255
+ "getter": false,
256
+ "setter": false,
257
+ "reflect": false,
258
+ "attribute": "heading"
259
+ },
260
+ "headingLevel": {
261
+ "type": "number",
262
+ "mutable": false,
263
+ "complexType": {
264
+ "original": "number",
265
+ "resolved": "number",
266
+ "references": {}
267
+ },
268
+ "required": false,
269
+ "optional": false,
270
+ "docs": {
271
+ "tags": [],
272
+ "text": "HTML heading level, 1-6."
273
+ },
274
+ "getter": false,
275
+ "setter": false,
276
+ "reflect": false,
277
+ "attribute": "heading-level",
278
+ "defaultValue": "2"
279
+ },
280
+ "description": {
281
+ "type": "string",
282
+ "mutable": false,
283
+ "complexType": {
284
+ "original": "string",
285
+ "resolved": "string",
286
+ "references": {}
287
+ },
288
+ "required": false,
289
+ "optional": true,
290
+ "docs": {
291
+ "tags": [],
292
+ "text": "Paragraph under the heading. Defaults per `type`."
293
+ },
294
+ "getter": false,
295
+ "setter": false,
296
+ "reflect": false,
297
+ "attribute": "description"
298
+ },
299
+ "hideIcon": {
300
+ "type": "boolean",
301
+ "mutable": false,
302
+ "complexType": {
303
+ "original": "boolean",
304
+ "resolved": "boolean",
305
+ "references": {}
306
+ },
307
+ "required": false,
308
+ "optional": false,
309
+ "docs": {
310
+ "tags": [],
311
+ "text": "Hides the icon tile."
312
+ },
313
+ "getter": false,
314
+ "setter": false,
315
+ "reflect": false,
316
+ "attribute": "hide-icon",
317
+ "defaultValue": "false"
318
+ },
319
+ "primaryLabel": {
320
+ "type": "string",
321
+ "mutable": false,
322
+ "complexType": {
323
+ "original": "string",
324
+ "resolved": "string",
325
+ "references": {}
326
+ },
327
+ "required": false,
328
+ "optional": true,
329
+ "docs": {
330
+ "tags": [],
331
+ "text": "Label of the primary button. Defaults per `type` (\"Stay signed in\", \"Sign in again\", \"Confirm\")."
332
+ },
333
+ "getter": false,
334
+ "setter": false,
335
+ "reflect": false,
336
+ "attribute": "primary-label"
337
+ },
338
+ "secondaryLabel": {
339
+ "type": "string",
340
+ "mutable": false,
341
+ "complexType": {
342
+ "original": "string",
343
+ "resolved": "string",
344
+ "references": {}
345
+ },
346
+ "required": false,
347
+ "optional": true,
348
+ "docs": {
349
+ "tags": [],
350
+ "text": "Label of the secondary button. Defaults per `type` (\"Sign out now\", \"Use a different account\"); none for\n`confirm-identity`. Set to an empty string to hide it."
351
+ },
352
+ "getter": false,
353
+ "setter": false,
354
+ "reflect": false,
355
+ "attribute": "secondary-label"
356
+ },
357
+ "secondsLeft": {
358
+ "type": "number",
359
+ "mutable": true,
360
+ "complexType": {
361
+ "original": "number",
362
+ "resolved": "number",
363
+ "references": {}
364
+ },
365
+ "required": false,
366
+ "optional": false,
367
+ "docs": {
368
+ "tags": [],
369
+ "text": "Seconds left before the session ends (`warning`). Mutable: with `countdown` the component\ndecrements it itself; otherwise drive it from your own timer."
370
+ },
371
+ "getter": false,
372
+ "setter": false,
373
+ "reflect": false,
374
+ "attribute": "seconds-left",
375
+ "defaultValue": "0"
376
+ },
377
+ "totalSeconds": {
378
+ "type": "number",
379
+ "mutable": false,
380
+ "complexType": {
381
+ "original": "number",
382
+ "resolved": "number",
383
+ "references": {}
384
+ },
385
+ "required": false,
386
+ "optional": false,
387
+ "docs": {
388
+ "tags": [],
389
+ "text": "Length of the warning window in seconds, for the bar: it shows `secondsLeft / totalSeconds`.\nDefaults to the `secondsLeft` it first had."
390
+ },
391
+ "getter": false,
392
+ "setter": false,
393
+ "reflect": false,
394
+ "attribute": "total-seconds",
395
+ "defaultValue": "0"
396
+ },
397
+ "countdown": {
398
+ "type": "boolean",
399
+ "mutable": false,
400
+ "complexType": {
401
+ "original": "boolean",
402
+ "resolved": "boolean",
403
+ "references": {}
404
+ },
405
+ "required": false,
406
+ "optional": false,
407
+ "docs": {
408
+ "tags": [],
409
+ "text": "Count `secondsLeft` down once a second (`warning`), firing `bsExpire` at zero."
410
+ },
411
+ "getter": false,
412
+ "setter": false,
413
+ "reflect": false,
414
+ "attribute": "countdown",
415
+ "defaultValue": "false"
416
+ },
417
+ "timeLeftLabel": {
418
+ "type": "string",
419
+ "mutable": false,
420
+ "complexType": {
421
+ "original": "string",
422
+ "resolved": "string",
423
+ "references": {}
424
+ },
425
+ "required": false,
426
+ "optional": false,
427
+ "docs": {
428
+ "tags": [],
429
+ "text": "Text next to the time while a minute or more is left."
430
+ },
431
+ "getter": false,
432
+ "setter": false,
433
+ "reflect": false,
434
+ "attribute": "time-left-label",
435
+ "defaultValue": "'minutes left'"
436
+ },
437
+ "secondsLeftLabel": {
438
+ "type": "string",
439
+ "mutable": false,
440
+ "complexType": {
441
+ "original": "string",
442
+ "resolved": "string",
443
+ "references": {}
444
+ },
445
+ "required": false,
446
+ "optional": false,
447
+ "docs": {
448
+ "tags": [],
449
+ "text": "Text next to the time under a minute."
450
+ },
451
+ "getter": false,
452
+ "setter": false,
453
+ "reflect": false,
454
+ "attribute": "seconds-left-label",
455
+ "defaultValue": "'seconds left'"
456
+ },
457
+ "savedMessage": {
458
+ "type": "string",
459
+ "mutable": false,
460
+ "complexType": {
461
+ "original": "string",
462
+ "resolved": "string",
463
+ "references": {}
464
+ },
465
+ "required": false,
466
+ "optional": true,
467
+ "docs": {
468
+ "tags": [],
469
+ "text": "Note under the countdown, e.g. \"Your draft of INV-2041 is saved automatically.\" Hidden when empty."
470
+ },
471
+ "getter": false,
472
+ "setter": false,
473
+ "reflect": false,
474
+ "attribute": "saved-message"
475
+ },
476
+ "accountName": {
477
+ "type": "string",
478
+ "mutable": false,
479
+ "complexType": {
480
+ "original": "string",
481
+ "resolved": "string",
482
+ "references": {}
483
+ },
484
+ "required": false,
485
+ "optional": true,
486
+ "docs": {
487
+ "tags": [],
488
+ "text": "Name of the account that was signed in (`signed-out`)."
489
+ },
490
+ "getter": false,
491
+ "setter": false,
492
+ "reflect": false,
493
+ "attribute": "account-name"
494
+ },
495
+ "accountEmail": {
496
+ "type": "string",
497
+ "mutable": false,
498
+ "complexType": {
499
+ "original": "string",
500
+ "resolved": "string",
501
+ "references": {}
502
+ },
503
+ "required": false,
504
+ "optional": true,
505
+ "docs": {
506
+ "tags": [],
507
+ "text": "Email of the account that was signed in (`signed-out`)."
508
+ },
509
+ "getter": false,
510
+ "setter": false,
511
+ "reflect": false,
512
+ "attribute": "account-email"
513
+ },
514
+ "accountInitials": {
515
+ "type": "string",
516
+ "mutable": false,
517
+ "complexType": {
518
+ "original": "string",
519
+ "resolved": "string",
520
+ "references": {}
521
+ },
522
+ "required": false,
523
+ "optional": true,
524
+ "docs": {
525
+ "tags": [],
526
+ "text": "Initials in the avatar (`signed-out`). Derived from `accountName` when not set."
527
+ },
528
+ "getter": false,
529
+ "setter": false,
530
+ "reflect": false,
531
+ "attribute": "account-initials"
532
+ },
533
+ "passwordLabel": {
534
+ "type": "string",
535
+ "mutable": false,
536
+ "complexType": {
537
+ "original": "string",
538
+ "resolved": "string",
539
+ "references": {}
540
+ },
541
+ "required": false,
542
+ "optional": false,
543
+ "docs": {
544
+ "tags": [],
545
+ "text": "Label of the password field."
546
+ },
547
+ "getter": false,
548
+ "setter": false,
549
+ "reflect": false,
550
+ "attribute": "password-label",
551
+ "defaultValue": "'Password'"
552
+ },
553
+ "passwordError": {
554
+ "type": "string",
555
+ "mutable": false,
556
+ "complexType": {
557
+ "original": "string",
558
+ "resolved": "string",
559
+ "references": {}
560
+ },
561
+ "required": false,
562
+ "optional": true,
563
+ "docs": {
564
+ "tags": [],
565
+ "text": "Error shown under the password field, e.g. after a wrong password."
566
+ },
567
+ "getter": false,
568
+ "setter": false,
569
+ "reflect": false,
570
+ "attribute": "password-error"
571
+ },
572
+ "dividerLabel": {
573
+ "type": "string",
574
+ "mutable": false,
575
+ "complexType": {
576
+ "original": "string",
577
+ "resolved": "string",
578
+ "references": {}
579
+ },
580
+ "required": false,
581
+ "optional": false,
582
+ "docs": {
583
+ "tags": [],
584
+ "text": "Label of the divider between the password and the alternatives."
585
+ },
586
+ "getter": false,
587
+ "setter": false,
588
+ "reflect": false,
589
+ "attribute": "divider-label",
590
+ "defaultValue": "'or'"
591
+ },
592
+ "alternatives": {
593
+ "type": "unknown",
594
+ "mutable": false,
595
+ "complexType": {
596
+ "original": "BsSessionTimeoutAlternative[]",
597
+ "resolved": "BsSessionTimeoutAlternative[]",
598
+ "references": {
599
+ "BsSessionTimeoutAlternative": {
600
+ "location": "local",
601
+ "path": "/home/runner/work/eg-brandsync-storybook/eg-brandsync-storybook/packages/wc/src/components/bs-session-timeout/bs-session-timeout.tsx",
602
+ "id": "src/components/bs-session-timeout/bs-session-timeout.tsx::BsSessionTimeoutAlternative"
603
+ }
604
+ }
605
+ },
606
+ "required": false,
607
+ "optional": false,
608
+ "docs": {
609
+ "tags": [],
610
+ "text": "Other ways to confirm, shown as outlined buttons under the divider: `[{ id, label, icon? }]`.\nDefaults to a passkey and a BankID button. Must be set as a JS property, not an HTML attribute --\nsee CONVENTIONS.md's non-string props rule. Set `[]` to hide them."
611
+ },
612
+ "getter": false,
613
+ "setter": false,
614
+ "defaultValue": "[\n { id: 'passkey', label: 'Use passkey', icon: 'fingerprint' },\n { id: 'bankid', label: 'Use BankID', icon: 'key' },\n ]"
615
+ },
616
+ "cancelLabel": {
617
+ "type": "string",
618
+ "mutable": false,
619
+ "complexType": {
620
+ "original": "string",
621
+ "resolved": "string",
622
+ "references": {}
623
+ },
624
+ "required": false,
625
+ "optional": false,
626
+ "docs": {
627
+ "tags": [],
628
+ "text": "Label of the Cancel button (`confirm-identity`). Set to an empty string to hide it."
629
+ },
630
+ "getter": false,
631
+ "setter": false,
632
+ "reflect": false,
633
+ "attribute": "cancel-label",
634
+ "defaultValue": "'Cancel'"
635
+ }
636
+ };
637
+ }
638
+ static get states() {
639
+ return {
640
+ "password": {},
641
+ "announcement": {},
642
+ "initialTotal": {}
643
+ };
644
+ }
645
+ static get events() {
646
+ return [{
647
+ "method": "bsPrimary",
648
+ "name": "bsPrimary",
649
+ "bubbles": true,
650
+ "cancelable": true,
651
+ "composed": true,
652
+ "docs": {
653
+ "tags": [],
654
+ "text": "Fires when the primary button is pressed. For `confirm-identity` the detail is\n`{ password }`; otherwise it is empty."
655
+ },
656
+ "complexType": {
657
+ "original": "{ password?: string } | void",
658
+ "resolved": "void | { password?: string; }",
659
+ "references": {}
660
+ }
661
+ }, {
662
+ "method": "bsSecondary",
663
+ "name": "bsSecondary",
664
+ "bubbles": true,
665
+ "cancelable": true,
666
+ "composed": true,
667
+ "docs": {
668
+ "tags": [],
669
+ "text": "Fires when the secondary button is pressed."
670
+ },
671
+ "complexType": {
672
+ "original": "void",
673
+ "resolved": "void",
674
+ "references": {}
675
+ }
676
+ }, {
677
+ "method": "bsAlternative",
678
+ "name": "bsAlternative",
679
+ "bubbles": true,
680
+ "cancelable": true,
681
+ "composed": true,
682
+ "docs": {
683
+ "tags": [],
684
+ "text": "Fires when an alternative method is pressed (`confirm-identity`): `{ id }`."
685
+ },
686
+ "complexType": {
687
+ "original": "{ id: string }",
688
+ "resolved": "{ id: string; }",
689
+ "references": {}
690
+ }
691
+ }, {
692
+ "method": "bsCancel",
693
+ "name": "bsCancel",
694
+ "bubbles": true,
695
+ "cancelable": true,
696
+ "composed": true,
697
+ "docs": {
698
+ "tags": [],
699
+ "text": "Fires when Cancel is pressed (`confirm-identity`)."
700
+ },
701
+ "complexType": {
702
+ "original": "void",
703
+ "resolved": "void",
704
+ "references": {}
705
+ }
706
+ }, {
707
+ "method": "bsExpire",
708
+ "name": "bsExpire",
709
+ "bubbles": true,
710
+ "cancelable": true,
711
+ "composed": true,
712
+ "docs": {
713
+ "tags": [],
714
+ "text": "Fires once when `countdown` reaches zero."
715
+ },
716
+ "complexType": {
717
+ "original": "void",
718
+ "resolved": "void",
719
+ "references": {}
720
+ }
721
+ }];
722
+ }
723
+ static get elementRef() { return "el"; }
724
+ static get watchers() {
725
+ return [{
726
+ "propName": "countdown",
727
+ "methodName": "onTimerInputsChange"
728
+ }, {
729
+ "propName": "type",
730
+ "methodName": "onTimerInputsChange"
731
+ }];
732
+ }
733
+ }
734
+ function pad(n) {
735
+ return String(n).padStart(2, '0');
736
+ }
737
+ function formatTime(total) {
738
+ const s = Math.max(0, Math.trunc(Number(total)) || 0);
739
+ return `${Math.floor(s / 60)}:${pad(s % 60)}`;
740
+ }
741
+ const svg = (children) => (props) => (h("svg", { class: "bs-session-timeout__glyph", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.8", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true", ...props }, children));
742
+ const TimerIcon = svg(h("g", null, h("circle", { cx: "12", cy: "13.5", r: "7" }), h("path", { d: "M12 10V13.5L14 15" }), h("path", { d: "M9.5 3.5H14.5" })));
743
+ const LockIcon = svg(h("g", null, h("rect", { x: "5", y: "10.5", width: "14", height: "9.5", rx: "1.5" }), h("path", { d: "M8.5 10.5V8A3.5 3.5 0 0 1 15.5 8V10.5" })));
744
+ const FingerprintIcon = svg(h("g", null, h("path", { d: "M6 10A6 6 0 0 1 18 10" }), h("path", { d: "M9 20C10 18 10 16 10 13A2 2 0 0 1 14 13C14 16 13.5 18.5 12.5 20.5" }), h("path", { d: "M6 13C6 15.5 5.5 17.5 4.5 19.5" }), h("path", { d: "M18 13C18 15.5 17.5 18 16.5 20" }), h("path", { d: "M12 13C12 15 11.5 17 10.8 18.5" })));
745
+ const KeyIcon = svg(h("g", null, h("circle", { cx: "8", cy: "15", r: "4" }), h("path", { d: "M11 12L19.5 3.5" }), h("path", { d: "M16 7L19 10" })));
746
+ const InfoIcon = () => (h("svg", { class: "bs-session-timeout__saved-icon", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "1.3", "stroke-linecap": "round", "aria-hidden": "true" }, h("circle", { cx: "8", cy: "8", r: "6.2" }), h("path", { d: "M8 7.2V11" }), h("path", { d: "M8 5V5.1" })));
747
+ const DEFAULTS = {
748
+ warning: {
749
+ intent: 'warning',
750
+ heading: 'You’ll be signed out soon',
751
+ description: 'For your security, we sign you out after a period without activity.',
752
+ primary: 'Stay signed in',
753
+ secondary: 'Sign out now',
754
+ glyph: () => h(TimerIcon, null),
755
+ },
756
+ 'signed-out': {
757
+ intent: 'default',
758
+ heading: 'You’ve been signed out',
759
+ description: 'You were inactive for a while. Your work was saved and will be there when you sign in.',
760
+ primary: 'Sign in again',
761
+ secondary: 'Use a different account',
762
+ glyph: () => h(LockIcon, null),
763
+ },
764
+ 'confirm-identity': {
765
+ intent: 'default',
766
+ heading: 'Confirm it’s you',
767
+ description: 'This action needs a fresh sign-in.',
768
+ primary: 'Confirm',
769
+ secondary: '',
770
+ glyph: () => h(FingerprintIcon, null),
771
+ },
772
+ };