@brandsync/wc 1.10.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 (432) hide show
  1. package/custom-elements.json +8335 -4132
  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-dbcbe682.entry.js → p-09bc1923.entry.js} +1 -1
  8. package/dist/brandsync-wc/{p-1f7208cb.entry.js → p-09cbf05b.entry.js} +1 -1
  9. package/dist/brandsync-wc/{p-c99b6a66.entry.js → p-0b2d3b7e.entry.js} +1 -1
  10. package/dist/brandsync-wc/p-0b7c77c1.entry.js +1 -0
  11. package/dist/brandsync-wc/p-0ee4126c.entry.js +1 -0
  12. package/dist/brandsync-wc/{p-5f3cd501.entry.js → p-0f8cd2e8.entry.js} +1 -1
  13. package/dist/brandsync-wc/{p-1c0db4d6.entry.js → p-1261f0b0.entry.js} +1 -1
  14. package/dist/brandsync-wc/{p-b2074a32.entry.js → p-1978e63c.entry.js} +1 -1
  15. package/dist/brandsync-wc/p-1aab6d07.entry.js +1 -0
  16. package/dist/brandsync-wc/{p-96ed9386.entry.js → p-20030f4d.entry.js} +1 -1
  17. package/dist/brandsync-wc/p-2177042f.entry.js +1 -0
  18. package/dist/brandsync-wc/{p-a8e2a829.entry.js → p-2368a92e.entry.js} +1 -1
  19. package/dist/brandsync-wc/{p-2e958566.entry.js → p-247e36ad.entry.js} +1 -1
  20. package/dist/brandsync-wc/p-2497d128.entry.js +1 -0
  21. package/dist/brandsync-wc/{p-701ebf4a.entry.js → p-282ddbee.entry.js} +1 -1
  22. package/dist/brandsync-wc/{p-763876f5.entry.js → p-2f4e08e1.entry.js} +1 -1
  23. package/dist/brandsync-wc/{p-c3f72584.entry.js → p-34e5feaf.entry.js} +1 -1
  24. package/dist/brandsync-wc/{p-ea4e20ef.entry.js → p-39a26c64.entry.js} +1 -1
  25. package/dist/brandsync-wc/p-3a1af63a.entry.js +1 -0
  26. package/dist/brandsync-wc/{p-9f6fe37d.entry.js → p-3f09296a.entry.js} +1 -1
  27. package/dist/brandsync-wc/p-416322bd.entry.js +1 -0
  28. package/dist/brandsync-wc/{p-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-daab6b22.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-08c99a60.entry.js → p-617bd13a.entry.js} +1 -1
  34. package/dist/brandsync-wc/p-68fcd4a4.entry.js +1 -0
  35. package/dist/brandsync-wc/{p-9e88f19c.entry.js → p-69c0a85d.entry.js} +1 -1
  36. package/dist/brandsync-wc/{p-d3f44cb7.entry.js → p-6a696161.entry.js} +1 -1
  37. package/dist/brandsync-wc/{p-32cd69f1.entry.js → p-6c6cdf77.entry.js} +1 -1
  38. package/dist/brandsync-wc/{p-041776c0.entry.js → p-6e735e37.entry.js} +1 -1
  39. package/dist/brandsync-wc/{p-fc58c663.entry.js → p-73f214ed.entry.js} +1 -1
  40. package/dist/brandsync-wc/{p-be2c1740.entry.js → p-7796b93f.entry.js} +1 -1
  41. package/dist/brandsync-wc/p-78a69a59.entry.js +1 -0
  42. package/dist/brandsync-wc/{p-f370b8fa.entry.js → p-78f4fcf0.entry.js} +1 -1
  43. package/dist/brandsync-wc/p-7f954939.entry.js +1 -0
  44. package/dist/brandsync-wc/{p-835a8dc7.entry.js → p-81605b82.entry.js} +1 -1
  45. package/dist/brandsync-wc/{p-a71d2811.entry.js → p-823ab3b2.entry.js} +1 -1
  46. package/dist/brandsync-wc/{p-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-18c3c22c.entry.js → p-a9169157.entry.js} +1 -1
  49. package/dist/brandsync-wc/{p-f89de457.entry.js → p-afb07368.entry.js} +1 -1
  50. package/dist/brandsync-wc/{p-301b2455.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-d42b1c2b.entry.js → p-c0a92750.entry.js} +1 -1
  55. package/dist/brandsync-wc/{p-8eba7f90.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-e8a5b8eb.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-af2bf957.entry.js → p-e5daa6ca.entry.js} +1 -1
  61. package/dist/brandsync-wc/{p-0132a2d1.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-fd254972.entry.js → p-f7d15fbe.entry.js} +1 -1
  64. package/dist/brandsync-wc/{p-50a251a4.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 +13 -9
  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_2.cjs.entry.js → bs-input_3.cjs.entry.js} +40 -5
  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 +4 -4
  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 +9 -0
  131. package/dist/collection/components/bs-a11y.cmp.test.js +22 -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 +9 -0
  156. package/dist/collection/components/bs-datepicker/bs-datepicker.css +21 -11
  157. package/dist/collection/components/bs-datepicker/bs-datepicker.js +13 -7
  158. package/dist/collection/components/bs-datepicker/bs-datepicker.stories.js +3 -2
  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 +2 -2
  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.css +15 -11
  207. package/dist/collection/components/bs-timepicker/bs-timepicker.js +4 -2
  208. package/dist/collection/components/bs-toast/bs-toast.js +1 -1
  209. package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
  210. package/dist/collection/components/bs-whats-new/bs-whats-new.cmp.test.js +200 -0
  211. package/dist/collection/components/bs-whats-new/bs-whats-new.css +315 -0
  212. package/dist/collection/components/bs-whats-new/bs-whats-new.js +790 -0
  213. package/dist/collection/components/bs-whats-new/bs-whats-new.stories.js +105 -0
  214. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.cmp.test.js +79 -0
  215. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.css +131 -0
  216. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.js +295 -0
  217. package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.stories.js +67 -0
  218. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +2 -2
  219. package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
  220. package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +1 -1
  221. package/dist/components/bs-accordion.js +1 -1
  222. package/dist/components/bs-ai-disclaimer.js +1 -1
  223. package/dist/components/bs-ai-greeting.js +1 -1
  224. package/dist/components/bs-ai-thinking.js +1 -1
  225. package/dist/components/bs-attachment-list.js +1 -1
  226. package/dist/components/bs-attachment.js +1 -1
  227. package/dist/components/bs-avatar.js +1 -1
  228. package/dist/components/bs-badge.js +1 -1
  229. package/dist/components/bs-breadcrumb-overflow.js +1 -1
  230. package/dist/components/bs-breadcrumb.js +1 -1
  231. package/dist/components/bs-breadcrumbs.js +1 -1
  232. package/dist/components/bs-button-skeleton.js +1 -1
  233. package/dist/components/bs-button.js +1 -1
  234. package/dist/components/bs-card.js +1 -1
  235. package/dist/components/bs-carousel.js +1 -1
  236. package/dist/components/bs-chatbot-feedback.js +1 -1
  237. package/dist/components/bs-chatbot-header.js +1 -1
  238. package/dist/components/bs-chatbot-response-action.js +1 -1
  239. package/dist/components/bs-chatbot-sources-drawer.js +1 -1
  240. package/dist/components/bs-chatbot-suggestion-button.js +1 -1
  241. package/dist/components/bs-checkbox-skeleton.js +1 -1
  242. package/dist/components/bs-checkbox.js +1 -1
  243. package/dist/components/bs-chip-filter.js +1 -1
  244. package/dist/components/bs-chip-informative.js +1 -1
  245. package/dist/components/bs-chip-input.js +1 -1
  246. package/dist/components/bs-composer-status-banner.js +1 -1
  247. package/dist/components/bs-composer.js +1 -1
  248. package/dist/components/bs-cookie-consent.d.ts +11 -0
  249. package/dist/components/bs-cookie-consent.js +1 -0
  250. package/dist/components/bs-data-table.js +1 -1
  251. package/dist/components/bs-datepicker.js +1 -1
  252. package/dist/components/bs-dialog.js +1 -1
  253. package/dist/components/bs-error-page.d.ts +11 -0
  254. package/dist/components/bs-error-page.js +1 -0
  255. package/dist/components/bs-file-upload-item.js +1 -1
  256. package/dist/components/bs-file-upload.js +1 -1
  257. package/dist/components/bs-icon-button.js +1 -1
  258. package/dist/components/bs-icon-tile.d.ts +11 -0
  259. package/dist/components/bs-icon-tile.js +1 -0
  260. package/dist/components/bs-inline-tab.js +1 -1
  261. package/dist/components/bs-input.js +1 -1
  262. package/dist/components/bs-logo.js +1 -1
  263. package/dist/components/bs-menu-item.js +1 -1
  264. package/dist/components/bs-menu.js +1 -1
  265. package/dist/components/bs-navigation-drawer-item.js +1 -1
  266. package/dist/components/bs-navigation-drawer.js +1 -1
  267. package/dist/components/bs-navigation-header.js +1 -1
  268. package/dist/components/bs-onboarding-checklist.d.ts +11 -0
  269. package/dist/components/bs-onboarding-checklist.js +1 -0
  270. package/dist/components/bs-pagination.js +1 -1
  271. package/dist/components/bs-product-tour.d.ts +11 -0
  272. package/dist/components/bs-product-tour.js +1 -0
  273. package/dist/components/bs-progress-linear.js +1 -1
  274. package/dist/components/bs-progress.js +1 -1
  275. package/dist/components/bs-qr-code.d.ts +11 -0
  276. package/dist/components/bs-qr-code.js +1 -0
  277. package/dist/components/bs-radio.js +1 -1
  278. package/dist/components/bs-session-timeout.d.ts +11 -0
  279. package/dist/components/bs-session-timeout.js +1 -0
  280. package/dist/components/bs-slider.js +1 -1
  281. package/dist/components/bs-snackbar.js +1 -1
  282. package/dist/components/bs-source-link.js +1 -1
  283. package/dist/components/bs-stepper-step.js +1 -1
  284. package/dist/components/bs-stepper.js +1 -1
  285. package/dist/components/bs-switch.js +1 -1
  286. package/dist/components/bs-tab.js +1 -1
  287. package/dist/components/bs-tabs.js +1 -1
  288. package/dist/components/bs-timepicker.js +1 -1
  289. package/dist/components/bs-toast.js +1 -1
  290. package/dist/components/bs-tooltip.js +1 -1
  291. package/dist/components/bs-whats-new-entry.d.ts +11 -0
  292. package/dist/components/bs-whats-new-entry.js +1 -0
  293. package/dist/components/bs-whats-new.d.ts +11 -0
  294. package/dist/components/bs-whats-new.js +1 -0
  295. package/dist/components/index.js +1 -1
  296. package/dist/components/{p-R2MlkUzD.js → p-BEEoVNRu.js} +1 -1
  297. package/dist/components/{p-DkIVyFOP.js → p-BZ3M4lOU.js} +1 -1
  298. package/dist/components/{p-Ba860ej1.js → p-B_I4UEMp.js} +1 -1
  299. package/dist/components/{p-ZK8p5zax.js → p-Be9L4_Fe.js} +1 -1
  300. package/dist/components/p-Be_Pmccm.js +1 -0
  301. package/dist/components/{p-CPvqZNO8.js → p-Bl_tVzeq.js} +1 -1
  302. package/dist/components/p-C8yT2Ucq.js +1 -0
  303. package/dist/components/p-CA31vqjL.js +1 -0
  304. package/dist/components/p-CUfs0ROR.js +1 -0
  305. package/dist/components/{p-JYlmcxBn.js → p-CVrEuVFo.js} +1 -1
  306. package/dist/components/{p-B7Icv1ho.js → p-C_j_jDM6.js} +1 -1
  307. package/dist/components/p-CbimDNGY.js +1 -0
  308. package/dist/components/p-CeUK3n7D.js +1 -0
  309. package/dist/components/p-CncySD_-.js +1 -0
  310. package/dist/components/p-DE8K7fg0.js +1 -0
  311. package/dist/components/p-Dr0Qk9Zc.js +1 -0
  312. package/dist/components/p-DuLL7Ouw.js +1 -0
  313. package/dist/components/p-YsHQLXET.js +1 -0
  314. package/dist/components/p-qmS2CBqi.js +1 -0
  315. package/dist/components/{p-BYR_ZC8v.js → p-zTHlbyH6.js} +1 -1
  316. package/dist/esm/brandsync-wc.js +3 -3
  317. package/dist/esm/bs-accordion.entry.js +1 -1
  318. package/dist/esm/bs-ai-disclaimer.entry.js +2 -2
  319. package/dist/esm/bs-ai-greeting.entry.js +2 -2
  320. package/dist/esm/bs-ai-thinking.entry.js +2 -2
  321. package/dist/esm/bs-attachment-list.entry.js +2 -2
  322. package/dist/esm/bs-attachment.entry.js +1 -1
  323. package/dist/esm/bs-avatar.entry.js +1 -1
  324. package/dist/esm/bs-badge.entry.js +1 -1
  325. package/dist/esm/bs-breadcrumb-overflow.entry.js +1 -1
  326. package/dist/esm/bs-breadcrumb.entry.js +1 -1
  327. package/dist/esm/bs-breadcrumbs.entry.js +2 -2
  328. package/dist/esm/bs-button-skeleton.entry.js +2 -2
  329. package/dist/esm/bs-button.entry.js +3 -3
  330. package/dist/esm/bs-card.entry.js +3 -3
  331. package/dist/esm/bs-carousel.entry.js +1 -1
  332. package/dist/esm/bs-chatbot-feedback.entry.js +2 -2
  333. package/dist/esm/bs-chatbot-header.entry.js +2 -2
  334. package/dist/esm/bs-chatbot-response-action.entry.js +2 -2
  335. package/dist/esm/bs-chatbot-sources-drawer.entry.js +2 -2
  336. package/dist/esm/bs-chatbot-suggestion-button.entry.js +2 -2
  337. package/dist/esm/bs-checkbox-skeleton.entry.js +2 -2
  338. package/dist/esm/bs-checkbox.entry.js +1 -1
  339. package/dist/esm/bs-chip-filter.entry.js +1 -1
  340. package/dist/esm/bs-chip-informative.entry.js +1 -1
  341. package/dist/esm/bs-chip-input.entry.js +1 -1
  342. package/dist/esm/bs-composer-status-banner.entry.js +1 -1
  343. package/dist/esm/bs-composer.entry.js +1 -1
  344. package/dist/esm/bs-cookie-consent.entry.js +184 -0
  345. package/dist/esm/bs-data-table.entry.js +1 -1
  346. package/dist/esm/bs-datepicker.entry.js +13 -9
  347. package/dist/esm/bs-dialog.entry.js +1 -1
  348. package/dist/esm/bs-error-page.entry.js +101 -0
  349. package/dist/esm/bs-file-upload-item.entry.js +2 -2
  350. package/dist/esm/bs-file-upload.entry.js +2 -2
  351. package/dist/esm/bs-icon-button.entry.js +2 -2
  352. package/dist/esm/bs-icon-tile.entry.js +50 -0
  353. package/dist/esm/bs-inline-tab.entry.js +2 -2
  354. package/dist/esm/{bs-input_2.entry.js → bs-input_3.entry.js} +40 -6
  355. package/dist/esm/bs-logo.entry.js +1 -1
  356. package/dist/esm/bs-navigation-drawer-item.entry.js +2 -2
  357. package/dist/esm/bs-navigation-drawer.entry.js +3 -3
  358. package/dist/esm/bs-navigation-header.entry.js +2 -2
  359. package/dist/esm/bs-onboarding-checklist.entry.js +159 -0
  360. package/dist/esm/bs-pagination.entry.js +2 -2
  361. package/dist/esm/bs-product-tour.entry.js +76 -0
  362. package/dist/esm/bs-progress-linear.entry.js +4 -4
  363. package/dist/esm/bs-progress.entry.js +3 -3
  364. package/dist/esm/bs-qr-code.entry.js +146 -0
  365. package/dist/esm/bs-radio.entry.js +2 -2
  366. package/dist/esm/bs-session-timeout.entry.js +213 -0
  367. package/dist/esm/bs-slider.entry.js +2 -2
  368. package/dist/esm/bs-snackbar.entry.js +9 -3
  369. package/dist/esm/bs-source-link.entry.js +3 -3
  370. package/dist/esm/bs-stepper-step.entry.js +2 -2
  371. package/dist/esm/bs-stepper.entry.js +2 -2
  372. package/dist/esm/bs-switch.entry.js +2 -2
  373. package/dist/esm/bs-tab_3.entry.js +251 -0
  374. package/dist/esm/bs-timepicker.entry.js +4 -4
  375. package/dist/esm/bs-toast.entry.js +2 -2
  376. package/dist/esm/bs-tooltip.entry.js +2 -2
  377. package/dist/esm/bs-whats-new.entry.js +142 -0
  378. package/dist/esm/{index-AgoOSYvW.js → index-DqQRXQMx.js} +15 -3
  379. package/dist/esm/loader.js +3 -3
  380. package/dist/types/components/bs-button/bs-button/bs-button.d.ts +3 -0
  381. package/dist/types/components/bs-cookie-consent/bs-cookie-consent.cmp.test.d.ts +1 -0
  382. package/dist/types/components/bs-cookie-consent/bs-cookie-consent.d.ts +136 -0
  383. package/dist/types/components/bs-cookie-consent/bs-cookie-consent.stories.d.ts +16 -0
  384. package/dist/types/components/bs-datepicker/bs-datepicker.d.ts +2 -0
  385. package/dist/types/components/bs-error-page/bs-error-page.cmp.test.d.ts +1 -0
  386. package/dist/types/components/bs-error-page/bs-error-page.d.ts +60 -0
  387. package/dist/types/components/bs-error-page/bs-error-page.stories.d.ts +22 -0
  388. package/dist/types/components/bs-icon-tile/bs-icon-tile.cmp.test.d.ts +1 -0
  389. package/dist/types/components/bs-icon-tile/bs-icon-tile.d.ts +40 -0
  390. package/dist/types/components/bs-icon-tile/bs-icon-tile.stories.d.ts +13 -0
  391. package/dist/types/components/bs-onboarding-checklist/bs-onboarding-checklist.cmp.test.d.ts +1 -0
  392. package/dist/types/components/bs-onboarding-checklist/bs-onboarding-checklist.d.ts +140 -0
  393. package/dist/types/components/bs-onboarding-checklist/bs-onboarding-checklist.stories.d.ts +18 -0
  394. package/dist/types/components/bs-product-tour/bs-product-tour.cmp.test.d.ts +1 -0
  395. package/dist/types/components/bs-product-tour/bs-product-tour.d.ts +78 -0
  396. package/dist/types/components/bs-product-tour/bs-product-tour.stories.d.ts +19 -0
  397. package/dist/types/components/bs-qr-code/bs-qr-code.cmp.test.d.ts +1 -0
  398. package/dist/types/components/bs-qr-code/bs-qr-code.d.ts +124 -0
  399. package/dist/types/components/bs-qr-code/bs-qr-code.stories.d.ts +28 -0
  400. package/dist/types/components/bs-session-timeout/bs-session-timeout.cmp.test.d.ts +1 -0
  401. package/dist/types/components/bs-session-timeout/bs-session-timeout.d.ts +141 -0
  402. package/dist/types/components/bs-session-timeout/bs-session-timeout.stories.d.ts +19 -0
  403. package/dist/types/components/bs-snackbar/bs-snackbar.d.ts +7 -0
  404. package/dist/types/components/bs-timepicker/bs-timepicker.d.ts +2 -0
  405. package/dist/types/components/bs-whats-new/bs-whats-new.cmp.test.d.ts +1 -0
  406. package/dist/types/components/bs-whats-new/bs-whats-new.d.ts +147 -0
  407. package/dist/types/components/bs-whats-new/bs-whats-new.stories.d.ts +14 -0
  408. package/dist/types/components/bs-whats-new-entry/bs-whats-new-entry.cmp.test.d.ts +1 -0
  409. package/dist/types/components/bs-whats-new-entry/bs-whats-new-entry.d.ts +53 -0
  410. package/dist/types/components/bs-whats-new-entry/bs-whats-new-entry.stories.d.ts +18 -0
  411. package/dist/types/components.d.ts +2636 -96
  412. package/package.json +1 -1
  413. package/dist/brandsync-wc/p-1c3a43c7.entry.js +0 -1
  414. package/dist/brandsync-wc/p-1c427ffb.entry.js +0 -1
  415. package/dist/brandsync-wc/p-4f2c4929.entry.js +0 -1
  416. package/dist/brandsync-wc/p-76e1c295.entry.js +0 -1
  417. package/dist/brandsync-wc/p-790db8b3.entry.js +0 -1
  418. package/dist/brandsync-wc/p-796a1860.entry.js +0 -1
  419. package/dist/brandsync-wc/p-806a5347.entry.js +0 -1
  420. package/dist/brandsync-wc/p-addfa0a0.entry.js +0 -1
  421. package/dist/brandsync-wc/p-c9a72416.entry.js +0 -1
  422. package/dist/brandsync-wc/p-f006d962.entry.js +0 -1
  423. package/dist/brandsync-wc/p-f074f94e.entry.js +0 -1
  424. package/dist/cjs/bs-menu.cjs.entry.js +0 -39
  425. package/dist/cjs/bs-tab.cjs.entry.js +0 -88
  426. package/dist/cjs/bs-tabs.cjs.entry.js +0 -133
  427. package/dist/components/p-BTvme8CE.js +0 -1
  428. package/dist/components/p-CpUHnsq9.js +0 -1
  429. package/dist/components/p-jDO25SfF.js +0 -1
  430. package/dist/esm/bs-menu.entry.js +0 -37
  431. package/dist/esm/bs-tab.entry.js +0 -86
  432. 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
+ };