@baloise/ds-core 19.1.0 → 19.2.0-nightly.20250623

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 (268) hide show
  1. package/components/all.d.ts +2 -0
  2. package/components/all.js +3 -0
  3. package/components/bal-app.js +1 -93
  4. package/components/bal-app2.js +95 -0
  5. package/components/bal-carousel-item.js +23 -2
  6. package/components/bal-doc-app.d.ts +11 -0
  7. package/components/bal-doc-app.js +262 -0
  8. package/components/bal-icon2.js +1 -1350
  9. package/components/bal-input.js +20 -2
  10. package/components/bal-list-item-accordion-body2.js +6 -4
  11. package/components/bal-list-item-accordion-head2.js +10 -5
  12. package/components/bal-list-item2.js +4 -2
  13. package/components/bal-nav-menu-flyout2.js +10 -3
  14. package/components/bal-nav-meta-bar2.js +4 -2
  15. package/components/bal-nav.js +155 -33
  16. package/components/bal-popup2.js +5 -10
  17. package/components/bal-radio-group.js +1 -0
  18. package/components/bal-steps.js +1 -1
  19. package/components/bal-tab-item.js +4 -2
  20. package/components/bal-tabs2.js +4 -1
  21. package/components/focus-visible.js +1 -2
  22. package/components/index.js +7 -314
  23. package/components/initialize.js +312 -0
  24. package/components/overlays.js +2 -2
  25. package/components/purify.js +1353 -0
  26. package/components/tokens.esm.js +1 -1
  27. package/dist/baloise-design-system/baloise-design-system.esm.js +1 -1
  28. package/dist/baloise-design-system/baloise-design-system.js +1 -1
  29. package/dist/baloise-design-system/index.esm.js +1 -1
  30. package/dist/baloise-design-system/{p-42b2e62411.system.entry.js → p-00dc0f84cc.system.entry.js} +1 -1
  31. package/dist/baloise-design-system/{p-14c507db.system.js → p-01493e9f.system.js} +1 -1
  32. package/dist/baloise-design-system/{p-68d7e929.system.js → p-02d76532.system.js} +1 -1
  33. package/dist/baloise-design-system/p-0c381481f3.system.entry.js +1 -0
  34. package/dist/baloise-design-system/p-12ec7e6d69.system.entry.js +1 -0
  35. package/dist/baloise-design-system/{p-df9bc850dc.system.entry.js → p-12f7a6a381.system.entry.js} +1 -1
  36. package/dist/baloise-design-system/p-16395ece.system.js +1 -0
  37. package/dist/baloise-design-system/{p-1e0a2263fb.entry.js → p-191cb463ef.entry.js} +1 -1
  38. package/dist/baloise-design-system/p-1e142b10.system.js +1 -0
  39. package/dist/baloise-design-system/p-24fe64c5.js +1 -0
  40. package/dist/baloise-design-system/p-294f38c2.js +1 -0
  41. package/dist/baloise-design-system/{p-290dfd0212.system.entry.js → p-31baba8382.system.entry.js} +1 -1
  42. package/dist/baloise-design-system/{p-8a9fb4619a.entry.js → p-32db85222c.entry.js} +1 -1
  43. package/dist/baloise-design-system/p-343cc097d4.entry.js +1 -0
  44. package/dist/baloise-design-system/p-3913c6ae.js +1 -1
  45. package/dist/baloise-design-system/{p-47eaccc384.system.entry.js → p-42238a1e1a.system.entry.js} +1 -1
  46. package/dist/baloise-design-system/p-42e66219.system.js +1 -0
  47. package/dist/baloise-design-system/p-47f0669a.js +1 -0
  48. package/dist/baloise-design-system/{p-7467605b28.entry.js → p-4b3b969747.entry.js} +1 -1
  49. package/dist/baloise-design-system/p-55591d77a6.entry.js +1 -0
  50. package/dist/baloise-design-system/p-56376785c2.entry.js +1 -0
  51. package/dist/baloise-design-system/{p-ac25ede4f4.entry.js → p-5638fe223b.entry.js} +1 -1
  52. package/dist/baloise-design-system/p-58e51d6a.js +1 -0
  53. package/dist/baloise-design-system/{p-63297f8b3b.system.entry.js → p-5b20afcac4.system.entry.js} +1 -1
  54. package/dist/baloise-design-system/p-5d80cd4f25.system.entry.js +1 -0
  55. package/dist/baloise-design-system/{p-b96e5a6c.js → p-5dc505fc.js} +1 -1
  56. package/dist/baloise-design-system/{p-390b2af6a5.system.entry.js → p-6149950bb1.system.entry.js} +1 -1
  57. package/dist/baloise-design-system/p-659ecadc.system.js +1 -1
  58. package/dist/baloise-design-system/p-65d4a9afab.entry.js +1 -0
  59. package/dist/baloise-design-system/{p-83d19315e3.entry.js → p-6700e35d71.entry.js} +1 -1
  60. package/dist/baloise-design-system/{p-363a7f7760.entry.js → p-673d489362.entry.js} +1 -1
  61. package/dist/baloise-design-system/{p-022af4f2.js → p-6b284c70.js} +1 -1
  62. package/dist/baloise-design-system/p-6bb4e22ace.system.entry.js +1 -0
  63. package/dist/baloise-design-system/{p-16ebe71517.entry.js → p-72a1dc6052.entry.js} +1 -1
  64. package/dist/baloise-design-system/p-7625d0abde.system.entry.js +1 -0
  65. package/dist/baloise-design-system/{p-702abad387.entry.js → p-7db52d587f.entry.js} +1 -1
  66. package/dist/baloise-design-system/{p-456114b8.system.js → p-83512f21.system.js} +1 -1
  67. package/dist/baloise-design-system/{p-8bd42bba68.entry.js → p-84a5fe83b0.entry.js} +1 -1
  68. package/dist/baloise-design-system/{p-24336e0fca.system.entry.js → p-8ebf048b7b.system.entry.js} +1 -1
  69. package/dist/baloise-design-system/p-96301206d3.system.entry.js +1 -0
  70. package/dist/baloise-design-system/{p-32bf71aa6c.entry.js → p-9b355b09ba.entry.js} +1 -1
  71. package/dist/baloise-design-system/{p-b9a4f3580b.entry.js → p-9c3f458e6c.entry.js} +1 -1
  72. package/dist/baloise-design-system/{p-99c12a1d83.system.entry.js → p-9df176a81a.system.entry.js} +1 -1
  73. package/dist/baloise-design-system/{p-e43b61e151.system.entry.js → p-a19a336dda.system.entry.js} +1 -1
  74. package/dist/baloise-design-system/p-a35a951800.entry.js +1 -0
  75. package/dist/baloise-design-system/p-a397da94.system.js +1 -0
  76. package/dist/baloise-design-system/p-a86c09c64f.system.entry.js +1 -0
  77. package/dist/baloise-design-system/{p-13ea819488.entry.js → p-ac238676b6.entry.js} +1 -1
  78. package/dist/baloise-design-system/{p-e453a2de.system.js → p-ad89304c.system.js} +1 -1
  79. package/dist/baloise-design-system/p-ade92c8b.js +2 -0
  80. package/dist/baloise-design-system/p-b3a9499f8e.entry.js +1 -0
  81. package/dist/baloise-design-system/p-b94e6946fc.entry.js +1 -0
  82. package/dist/baloise-design-system/{p-2367556371.system.entry.js → p-b9b086adc8.system.entry.js} +1 -1
  83. package/dist/baloise-design-system/{p-c89750c825.system.entry.js → p-ba30929ac8.system.entry.js} +1 -1
  84. package/dist/baloise-design-system/p-d0cee779.system.js +2 -0
  85. package/dist/baloise-design-system/{p-9d3935fbbc.entry.js → p-d18794e22b.entry.js} +1 -1
  86. package/dist/baloise-design-system/p-d4e5093b.js +1 -0
  87. package/dist/baloise-design-system/{p-35fde87c2a.system.entry.js → p-dfd6d34303.system.entry.js} +1 -1
  88. package/dist/baloise-design-system/p-e2c982954d.entry.js +1 -0
  89. package/dist/baloise-design-system/{p-39c2321045.system.entry.js → p-e3fb1f185f.system.entry.js} +1 -1
  90. package/dist/baloise-design-system/{p-490383ab.system.js → p-eaec547b.system.js} +1 -1
  91. package/dist/baloise-design-system/{p-131fd635ef.entry.js → p-f0506e5102.entry.js} +1 -1
  92. package/dist/baloise-design-system/{p-c5ac7b5d30.system.entry.js → p-f2784fb721.system.entry.js} +1 -1
  93. package/dist/baloise-design-system/p-f3c6e132ea.system.entry.js +1 -0
  94. package/dist/cjs/app-globals-f63c33e7.js +7 -0
  95. package/dist/cjs/bal-app.cjs.entry.js +1 -1
  96. package/dist/cjs/bal-carousel_2.cjs.entry.js +23 -5
  97. package/dist/cjs/bal-checkbox_2.cjs.entry.js +1 -1
  98. package/dist/cjs/bal-date.cjs.entry.js +1 -1
  99. package/dist/cjs/bal-doc-app.cjs.entry.js +233 -0
  100. package/dist/cjs/bal-dropdown.cjs.entry.js +1 -1
  101. package/dist/cjs/bal-hint_5.cjs.entry.js +3 -3
  102. package/dist/cjs/bal-icon.cjs.entry.js +2 -1351
  103. package/dist/cjs/bal-input.cjs.entry.js +20 -2
  104. package/dist/cjs/bal-list_8.cjs.entry.js +21 -12
  105. package/dist/cjs/bal-logo.cjs.entry.js +3 -3
  106. package/dist/cjs/bal-modal_3.cjs.entry.js +1 -1
  107. package/dist/cjs/bal-nav_8.cjs.entry.js +167 -38
  108. package/dist/cjs/bal-navbar_5.cjs.entry.js +3 -3
  109. package/dist/cjs/bal-pagination.cjs.entry.js +3 -3
  110. package/dist/cjs/bal-popup.cjs.entry.js +5 -10
  111. package/dist/cjs/bal-progress-bar.cjs.entry.js +4 -4
  112. package/dist/cjs/bal-radio_2.cjs.entry.js +2 -1
  113. package/dist/cjs/bal-segment_2.cjs.entry.js +5 -5
  114. package/dist/cjs/bal-shape.cjs.entry.js +1 -1
  115. package/dist/cjs/bal-steps.cjs.entry.js +4 -4
  116. package/dist/cjs/bal-tab-item_2.cjs.entry.js +11 -6
  117. package/dist/cjs/baloise-design-system.cjs.js +3 -2
  118. package/dist/cjs/{breakpoints.decorator-5086ec90.js → breakpoints.decorator-266b25a2.js} +1 -1
  119. package/dist/cjs/{breakpoints.subject-a1180187.js → breakpoints.subject-03f75770.js} +1 -1
  120. package/dist/cjs/{focus-visible-264bd9b8.js → focus-visible-a434c91f.js} +0 -2
  121. package/dist/cjs/{app-globals-0d8db19e.js → global-2a76769b.js} +2 -4
  122. package/dist/cjs/index.cjs.js +3 -3
  123. package/dist/cjs/initialize-2e8978a4.js +1 -1
  124. package/dist/cjs/loader.cjs.js +3 -2
  125. package/dist/cjs/{overlays-47b231bc.js → overlays-94ebb271.js} +2 -2
  126. package/dist/cjs/purify-b01229e2.js +1355 -0
  127. package/dist/cjs/{tokens.esm-263be70d.js → tokens.esm-c3cc508d.js} +1 -1
  128. package/dist/cjs/{window-resize.decorator-9a06680f.js → window-resize.decorator-9494cf0b.js} +1 -1
  129. package/dist/collection/collection-manifest.json +2 -1
  130. package/dist/collection/components/bal-carousel/bal-carousel-item/bal-carousel-item.js +44 -3
  131. package/dist/collection/components/bal-input/bal-input-util.js +1 -0
  132. package/dist/collection/components/bal-input/bal-input.js +22 -5
  133. package/dist/collection/components/bal-list/bal-list-item/bal-list-item.js +4 -2
  134. package/dist/collection/components/bal-list/bal-list-item-accordion-body/bal-list-item-accordion-body.js +7 -5
  135. package/dist/collection/components/bal-list/bal-list-item-accordion-head/bal-list-item-accordion-head.js +13 -8
  136. package/dist/collection/components/bal-nav/bal-nav-focus.util.js +87 -0
  137. package/dist/collection/components/bal-nav/bal-nav-menu-flyout/bal-nav-menu-flyout.js +40 -2
  138. package/dist/collection/components/bal-nav/bal-nav-meta-bar/bal-nav-meta-bar.css +1 -1
  139. package/dist/collection/components/bal-nav/bal-nav-meta-bar/bal-nav-meta-bar.js +22 -1
  140. package/dist/collection/components/bal-nav/bal-nav.css +1 -1
  141. package/dist/collection/components/bal-nav/bal-nav.js +43 -8
  142. package/dist/collection/components/bal-nav/models/bal-nav-menu-link-item.js +6 -5
  143. package/dist/collection/components/bal-popup/bal-popup.js +8 -13
  144. package/dist/collection/components/bal-radio/bal-radio-group/bal-radio-group.js +1 -0
  145. package/dist/collection/components/bal-steps/bal-steps.css +1 -1
  146. package/dist/collection/components/bal-tabs/bal-tab-item/bal-tab-item.js +23 -2
  147. package/dist/collection/components/bal-tabs/components/tab-button.js +6 -3
  148. package/dist/collection/components/docs/bal-doc-app/bal-doc-app.css +1 -0
  149. package/dist/collection/components/docs/bal-doc-app/bal-doc-app.js +247 -0
  150. package/dist/collection/utils/constants/version.constant.js +1 -1
  151. package/dist/collection/utils/overlays/focus-trap.js +2 -2
  152. package/dist/esm/app-globals-1ecf000f.js +5 -0
  153. package/dist/esm/bal-app.entry.js +1 -1
  154. package/dist/esm/bal-carousel_2.entry.js +23 -5
  155. package/dist/esm/bal-checkbox_2.entry.js +1 -1
  156. package/dist/esm/bal-date.entry.js +1 -1
  157. package/dist/esm/bal-doc-app.entry.js +229 -0
  158. package/dist/esm/bal-dropdown.entry.js +1 -1
  159. package/dist/esm/bal-hint_5.entry.js +3 -3
  160. package/dist/esm/bal-icon.entry.js +1 -1350
  161. package/dist/esm/bal-input.entry.js +20 -2
  162. package/dist/esm/bal-list_8.entry.js +22 -13
  163. package/dist/esm/bal-logo.entry.js +3 -3
  164. package/dist/esm/bal-modal_3.entry.js +1 -1
  165. package/dist/esm/bal-nav_8.entry.js +168 -39
  166. package/dist/esm/bal-navbar_5.entry.js +3 -3
  167. package/dist/esm/bal-pagination.entry.js +3 -3
  168. package/dist/esm/bal-popup.entry.js +5 -10
  169. package/dist/esm/bal-progress-bar.entry.js +4 -4
  170. package/dist/esm/bal-radio_2.entry.js +2 -1
  171. package/dist/esm/bal-segment_2.entry.js +5 -5
  172. package/dist/esm/bal-shape.entry.js +1 -1
  173. package/dist/esm/bal-steps.entry.js +4 -4
  174. package/dist/esm/bal-tab-item_2.entry.js +11 -6
  175. package/dist/esm/baloise-design-system.js +3 -2
  176. package/dist/esm/{breakpoints.decorator-3666716a.js → breakpoints.decorator-ecda98cb.js} +1 -1
  177. package/dist/esm/{breakpoints.subject-1aa7be9a.js → breakpoints.subject-2897cae5.js} +1 -1
  178. package/dist/esm/{focus-visible-f0cdd043.js → focus-visible-c1d6b5b8.js} +1 -2
  179. package/dist/esm/{app-globals-5dd5fe6b.js → global-6e86728b.js} +2 -4
  180. package/dist/esm/index.js +4 -4
  181. package/dist/esm/initialize-be160cc4.js +1 -1
  182. package/dist/esm/loader.js +3 -2
  183. package/dist/esm/{overlays-4cc504b6.js → overlays-3f81f45d.js} +2 -2
  184. package/dist/esm/purify-8cb49f16.js +1353 -0
  185. package/dist/esm/{tokens.esm-a3abda33.js → tokens.esm-17500c90.js} +1 -1
  186. package/dist/esm/{window-resize.decorator-ef52bf33.js → window-resize.decorator-b914e5b9.js} +1 -1
  187. package/dist/esm-es5/app-globals-1ecf000f.js +1 -0
  188. package/dist/esm-es5/bal-app.entry.js +1 -1
  189. package/dist/esm-es5/bal-carousel_2.entry.js +1 -1
  190. package/dist/esm-es5/bal-checkbox_2.entry.js +1 -1
  191. package/dist/esm-es5/bal-date.entry.js +1 -1
  192. package/dist/esm-es5/bal-doc-app.entry.js +1 -0
  193. package/dist/esm-es5/bal-dropdown.entry.js +1 -1
  194. package/dist/esm-es5/bal-hint_5.entry.js +1 -1
  195. package/dist/esm-es5/bal-icon.entry.js +1 -2
  196. package/dist/esm-es5/bal-input.entry.js +1 -1
  197. package/dist/esm-es5/bal-list_8.entry.js +1 -1
  198. package/dist/esm-es5/bal-logo.entry.js +1 -1
  199. package/dist/esm-es5/bal-modal_3.entry.js +1 -1
  200. package/dist/esm-es5/bal-nav_8.entry.js +1 -1
  201. package/dist/esm-es5/bal-navbar_5.entry.js +1 -1
  202. package/dist/esm-es5/bal-pagination.entry.js +1 -1
  203. package/dist/esm-es5/bal-popup.entry.js +1 -1
  204. package/dist/esm-es5/bal-progress-bar.entry.js +1 -1
  205. package/dist/esm-es5/bal-radio_2.entry.js +1 -1
  206. package/dist/esm-es5/bal-segment_2.entry.js +1 -1
  207. package/dist/esm-es5/bal-shape.entry.js +1 -1
  208. package/dist/esm-es5/bal-steps.entry.js +1 -1
  209. package/dist/esm-es5/bal-tab-item_2.entry.js +1 -1
  210. package/dist/esm-es5/baloise-design-system.js +1 -1
  211. package/dist/esm-es5/breakpoints.decorator-ecda98cb.js +1 -0
  212. package/dist/esm-es5/{breakpoints.subject-1aa7be9a.js → breakpoints.subject-2897cae5.js} +1 -1
  213. package/dist/esm-es5/focus-visible-c1d6b5b8.js +1 -0
  214. package/dist/esm-es5/global-6e86728b.js +1 -0
  215. package/dist/esm-es5/index.js +1 -1
  216. package/dist/esm-es5/initialize-be160cc4.js +1 -1
  217. package/dist/esm-es5/loader.js +1 -1
  218. package/dist/esm-es5/overlays-3f81f45d.js +1 -0
  219. package/dist/esm-es5/purify-8cb49f16.js +2 -0
  220. package/dist/esm-es5/{window-resize.decorator-ef52bf33.js → window-resize.decorator-b914e5b9.js} +1 -1
  221. package/dist/html.html-data.json +12 -1
  222. package/dist/types/components/bal-carousel/bal-carousel-item/bal-carousel-item.d.ts +8 -0
  223. package/dist/types/components/bal-input/bal-input-util.d.ts +1 -0
  224. package/dist/types/components/bal-input/bal-input.d.ts +1 -0
  225. package/dist/types/components/bal-input/bal-input.interfaces.d.ts +1 -1
  226. package/dist/types/components/bal-list/bal-list-item-accordion-body/bal-list-item-accordion-body.d.ts +1 -1
  227. package/dist/types/components/bal-list/bal-list-item-accordion-head/bal-list-item-accordion-head.d.ts +3 -2
  228. package/dist/types/components/bal-nav/bal-nav-focus.util.d.ts +33 -0
  229. package/dist/types/components/bal-nav/bal-nav-menu-flyout/bal-nav-menu-flyout.d.ts +6 -1
  230. package/dist/types/components/bal-nav/bal-nav-meta-bar/bal-nav-meta-bar.d.ts +4 -0
  231. package/dist/types/components/bal-nav/bal-nav.interfaces.d.ts +7 -1
  232. package/dist/types/components/bal-nav/models/bal-nav-menu-link-item.d.ts +1 -0
  233. package/dist/types/components/bal-popup/bal-popup.d.ts +1 -1
  234. package/dist/types/components/bal-tabs/bal-tab-item/bal-tab-item.d.ts +5 -0
  235. package/dist/types/components/bal-tabs/bal-tab.type.d.ts +1 -0
  236. package/dist/types/components/bal-tabs/bal-tabs.interfaces.d.ts +2 -0
  237. package/dist/types/components/docs/bal-doc-app/bal-doc-app.d.ts +21 -0
  238. package/dist/types/components.d.ts +79 -2
  239. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/icons/src/index.d.ts +82 -0
  240. package/package.json +6 -6
  241. package/dist/baloise-design-system/p-002d7bb9.js +0 -1
  242. package/dist/baloise-design-system/p-0f8973edc6.entry.js +0 -1
  243. package/dist/baloise-design-system/p-130b37bc.js +0 -1
  244. package/dist/baloise-design-system/p-1693fa7649.system.entry.js +0 -1
  245. package/dist/baloise-design-system/p-2fffe828ac.system.entry.js +0 -1
  246. package/dist/baloise-design-system/p-345aa92d.system.js +0 -1
  247. package/dist/baloise-design-system/p-53b2b718c5.entry.js +0 -1
  248. package/dist/baloise-design-system/p-58b1d6fa96.system.entry.js +0 -1
  249. package/dist/baloise-design-system/p-64916e34a4.entry.js +0 -1
  250. package/dist/baloise-design-system/p-967bdfab.js +0 -1
  251. package/dist/baloise-design-system/p-98cf514345.system.entry.js +0 -1
  252. package/dist/baloise-design-system/p-aa16fc7aa2.system.entry.js +0 -2
  253. package/dist/baloise-design-system/p-b52ad8d5.system.js +0 -1
  254. package/dist/baloise-design-system/p-c2f253d9fd.entry.js +0 -2
  255. package/dist/baloise-design-system/p-c917a3bc.system.js +0 -1
  256. package/dist/baloise-design-system/p-ca119357.js +0 -1
  257. package/dist/baloise-design-system/p-d09026edb1.system.entry.js +0 -1
  258. package/dist/baloise-design-system/p-dd2a76bd7c.system.entry.js +0 -1
  259. package/dist/baloise-design-system/p-f04cab5af1.entry.js +0 -1
  260. package/dist/baloise-design-system/p-f2cc4e63d4.entry.js +0 -1
  261. package/dist/baloise-design-system/p-f6b1d87619.entry.js +0 -1
  262. package/dist/esm-es5/app-globals-5dd5fe6b.js +0 -1
  263. package/dist/esm-es5/breakpoints.decorator-3666716a.js +0 -1
  264. package/dist/esm-es5/focus-visible-f0cdd043.js +0 -1
  265. package/dist/esm-es5/overlays-4cc504b6.js +0 -1
  266. /package/dist/baloise-design-system/{p-bccc3d48.system.js → p-d3480bd3.system.js} +0 -0
  267. /package/dist/baloise-design-system/{p-928bbc47.js → p-f9808768.js} +0 -0
  268. /package/dist/esm-es5/{tokens.esm-a3abda33.js → tokens.esm-17500c90.js} +0 -0
@@ -131,6 +131,7 @@ function formatBeIBAN(value) {
131
131
  }
132
132
  }
133
133
  const MAX_LENGTH_CONTRACT_NUMBER = 10;
134
+ const MAX_LENGTH_BASIC_CONTRACT_NUMBER = 9;
134
135
  const MAX_LENGTH_OFFER_NUMBER = 9;
135
136
  const MAX_LENGTH_CLAIM_NUMBER = 11;
136
137
  const MAX_LENGTH_BE_ENTERPRISE_NUMBER = 10;
@@ -171,11 +172,26 @@ const Input = /*@__PURE__*/ proxyCustomElement(class Input extends HTMLElement {
171
172
  switch (this.mask) {
172
173
  case 'contract-number': {
173
174
  inputValue = input.value.replace(/\D/g, '');
175
+ // Removing the leading zero if presented
176
+ if (inputValue.charAt(0) === '0') {
177
+ inputValue = inputValue.substring(1);
178
+ }
174
179
  if (inputValue.length > MAX_LENGTH_CONTRACT_NUMBER) {
175
180
  inputValue = inputValue.substring(0, MAX_LENGTH_CONTRACT_NUMBER);
176
181
  }
177
182
  return inputValue;
178
183
  }
184
+ case 'basic-contract-number': {
185
+ inputValue = input.value.replace(/\D/g, '');
186
+ // Removing the leading zero if presented
187
+ if (inputValue.charAt(0) === '0') {
188
+ inputValue = inputValue.substring(1);
189
+ }
190
+ if (inputValue.length > MAX_LENGTH_BASIC_CONTRACT_NUMBER) {
191
+ inputValue = inputValue.substring(0, MAX_LENGTH_BASIC_CONTRACT_NUMBER);
192
+ }
193
+ return inputValue;
194
+ }
179
195
  case 'offer-number': {
180
196
  inputValue = input.value.replace(/\D/g, '');
181
197
  if (inputValue.length > MAX_LENGTH_OFFER_NUMBER) {
@@ -239,7 +255,8 @@ const Input = /*@__PURE__*/ proxyCustomElement(class Input extends HTMLElement {
239
255
  if (input) {
240
256
  if (input.value) {
241
257
  switch (this.mask) {
242
- case 'contract-number': {
258
+ case 'contract-number':
259
+ case 'basic-contract-number': {
243
260
  input.value = formatPolicy(this.inputValue);
244
261
  if (cursorPositionStart < this.inputValue.length) {
245
262
  input.setSelectionRange(cursorPositionStart, cursorPositionEnd);
@@ -419,6 +436,7 @@ const Input = /*@__PURE__*/ proxyCustomElement(class Input extends HTMLElement {
419
436
  if (this.mask !== undefined) {
420
437
  switch (this.mask) {
421
438
  case 'contract-number':
439
+ case 'basic-contract-number':
422
440
  value = formatPolicy(value);
423
441
  break;
424
442
  case 'claim-number':
@@ -441,7 +459,7 @@ const Input = /*@__PURE__*/ proxyCustomElement(class Input extends HTMLElement {
441
459
  }
442
460
  const block = BEM.block('input');
443
461
  const id = this.ariaForm.controlId || this.inputId;
444
- return (h(Host, { key: '448720fe0adbd7130be3148121f04bf456fe755b', onClick: this.handleClick, "aria-disabled": ariaBooleanToString(this.disabled), class: Object.assign({}, block.class()) }, h("input", Object.assign({ key: 'e3b94bfae57e7aaf10f04ebf7f316a6309e306b6', class: {
462
+ return (h(Host, { key: 'c247683cd5ac331743d71c8872a59ccfacbcae83', onClick: this.handleClick, "aria-disabled": ariaBooleanToString(this.disabled), class: Object.assign({}, block.class()) }, h("input", Object.assign({ key: '992f567fd137664f50f73443fdc283ed7622297d', class: {
445
463
  'input': true,
446
464
  'is-disabled': this.disabled || this.readonly,
447
465
  'is-danger': this.invalid,
@@ -72,7 +72,9 @@ const ListItemAccordionBody = /*@__PURE__*/ proxyCustomElement(class ListItemAcc
72
72
  * @internal
73
73
  */
74
74
  async setAria(aria) {
75
- this.ariaState = Object.assign({}, aria);
75
+ if (aria.labelledby && aria.labelledby !== this.ariaState.labelledby) {
76
+ this.ariaState.labelledby = aria.labelledby;
77
+ }
76
78
  }
77
79
  /**
78
80
  * PRIVATE METHODS
@@ -89,15 +91,15 @@ const ListItemAccordionBody = /*@__PURE__*/ proxyCustomElement(class ListItemAcc
89
91
  * ------------------------------------------------------
90
92
  */
91
93
  render() {
92
- return (h(Host, { key: '9f844655eaa797b1df2a9c1a51aa5959c1e1f82e', id: this.internalId, role: 'region', "aria-labelledby": this.ariaState.labelledby, class: {
94
+ return (h(Host, { key: 'c09f940346dd1c179888f6e521febf25872e94cb', id: this.internalId, role: 'region', "aria-labelledby": this.ariaState.labelledby, class: {
93
95
  'bal-list__item': true,
94
96
  'bal-list__item__accordion-body': true,
95
97
  'bal-list__item__accordion-body--grouped': this.accordionGroup !== undefined && this.accordionGroup !== '',
96
- } }, h("div", { key: 'c174c610fe9832eb84d32b31a97327da9ac393e3', class: {
98
+ } }, h("div", { key: '07253229c2cec50a110f5ae37d526122928a7d48', class: {
97
99
  'bal-list__item__accordion-body__content': true,
98
100
  [`bal-list__item__accordion-body__content--${this.contentAlignment}`]: this.contentAlignment !== undefined,
99
101
  [`bal-list__item__accordion-body__content--space-${this.contentSpace}`]: this.contentSpace !== undefined,
100
- }, ref: contentElWrapper => (this.contentElWrapper = contentElWrapper) }, h("slot", { key: '1c6cb9f879550e70ada7563d7d1758bdfd485e04' }))));
102
+ }, ref: contentElWrapper => (this.contentElWrapper = contentElWrapper) }, h("slot", { key: 'ff5f45b667f6e0448ee3b4b0d3306f1d4ab25b65' }))));
101
103
  }
102
104
  get el() { return this; }
103
105
  }, [4, "bal-list-item-accordion-body", {
@@ -1,8 +1,8 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { _ as __decorate, a as __metadata } from './tslib.es6.js';
3
- import { L as Logger } from './log.js';
4
- import { s as stopEventBubbling } from './form-input.js';
5
3
  import { a as ariaBooleanToString } from './aria.js';
4
+ import { s as stopEventBubbling } from './form-input.js';
5
+ import { L as Logger } from './log.js';
6
6
  import { d as defineCustomElement$2 } from './bal-icon2.js';
7
7
  import { d as defineCustomElement$1 } from './bal-list-item-icon2.js';
8
8
  import { a as isSpaceKey, i as isEnterKey } from './keyboard.helpers.js';
@@ -90,6 +90,9 @@ const ListItemAccordionHead = /*@__PURE__*/ proxyCustomElement(class ListItemAcc
90
90
  * LIFECYCLE
91
91
  * ------------------------------------------------------
92
92
  */
93
+ connectedCallback() {
94
+ this.accordionOpenHandler(this.accordionOpen, false);
95
+ }
93
96
  componentDidRender() {
94
97
  this.setLabelledby();
95
98
  }
@@ -111,7 +114,9 @@ const ListItemAccordionHead = /*@__PURE__*/ proxyCustomElement(class ListItemAcc
111
114
  * @internal
112
115
  */
113
116
  async setAria(aria) {
114
- this.ariaState = Object.assign({}, aria);
117
+ if (aria.controlId && aria.controlId !== this.ariaState.controlId) {
118
+ this.ariaState.controlId = aria.controlId;
119
+ }
115
120
  }
116
121
  /**
117
122
  * PRIVATE METHODS
@@ -128,11 +133,11 @@ const ListItemAccordionHead = /*@__PURE__*/ proxyCustomElement(class ListItemAcc
128
133
  * ------------------------------------------------------
129
134
  */
130
135
  render() {
131
- return (h(Host, { key: 'a6d11324257afc12e220df8f370d440834d44118', class: {
136
+ return (h(Host, { key: 'fadfc7f646948cbf15bd825188e4eb539058b1ca', class: {
132
137
  'bal-list__item': true,
133
138
  'bal-list__item__accordion-head': true,
134
139
  'bal-list__item__accordion-head--open': this.accordionOpen,
135
- }, id: this.internalId, role: "button", tabindex: "0", "aria-expanded": ariaBooleanToString(this.accordionOpen), "aria-controls": this.ariaState.controlId, onClick: this.onClick, onKeyDown: this.onKeyDown }, h("slot", { key: '02735dbc43eb2a47becc83c1ddd2d7edfdfdc384' }), h("bal-list-item-icon", { key: 'f96747135e9f91523806cd6e08e34b9e98b1f4b7', right: true }, h("bal-icon", { key: '4f2a64815d96a4b0beae4a1a2b406d615e1c348f', class: "bal-list__item__accordion-head__icon", name: this.icon, size: "small", turn: this.accordionOpen, title: this.accordionOpen
140
+ }, id: this.internalId, role: "button", tabindex: "0", "aria-expanded": ariaBooleanToString(this.accordionOpen), "aria-controls": this.ariaState.controlId, onClick: this.onClick, onKeyDown: this.onKeyDown }, h("slot", { key: '4f8c16d3af44dcb8e14a4619b64e6f57c3c79128' }), h("bal-list-item-icon", { key: '6eb7ef4c6275c22ec4c65f424c04a0f62cdd88b8', right: true }, h("bal-icon", { key: '60cf159ca10b62349fab812aa649d7819ae980bb', class: "bal-list__item__accordion-head__icon", name: this.icon, size: "small", turn: this.accordionOpen, title: this.accordionOpen
136
141
  ? i18nBalListItemAccordionHead[this.language].close
137
142
  : i18nBalListItemAccordionHead[this.language].open }))));
138
143
  }
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { _ as __decorate, a as __metadata } from './tslib.es6.js';
3
3
  import { B as BEM } from './bem.js';
4
- import { n as raf, t as transitionEndAsync } from './helpers.js';
4
+ import { n as raf, t as transitionEndAsync, p as rIC } from './helpers.js';
5
5
  import { L as Logger } from './log.js';
6
6
  import { L as ListenToConfig } from './config.decorator.js';
7
7
 
@@ -183,7 +183,9 @@ const ListItem = /*@__PURE__*/ proxyCustomElement(class ListItem extends HTMLEle
183
183
  }
184
184
  componentDidLoad() {
185
185
  if (this.accordion) {
186
- this.addEventListenerAccordionChange();
186
+ rIC(() => {
187
+ this.addEventListenerAccordionChange();
188
+ });
187
189
  }
188
190
  }
189
191
  disconnectedCallback() {
@@ -1,6 +1,7 @@
1
- import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { _ as __decorate, a as __metadata } from './tslib.es6.js';
3
3
  import { B as BEM } from './bem.js';
4
+ import { j as isDescendant } from './helpers.js';
4
5
  import { L as Logger } from './log.js';
5
6
  import { B as BalScrollHandler } from './scroll.js';
6
7
  import { L as ListenToResize } from './resize.decorator.js';
@@ -12,6 +13,7 @@ const NavMenuFlyout = /*@__PURE__*/ proxyCustomElement(class NavMenuFlyout exten
12
13
  constructor() {
13
14
  super();
14
15
  this.__registerHost();
16
+ this.balFocusOut = createEvent(this, "balFocusOut", 7);
15
17
  this.bodyScrollHandler = new BalScrollHandler();
16
18
  this.isHidden = false;
17
19
  this.navId = `bal-nav-x${NavMenuFlyOutIds++}`;
@@ -33,6 +35,11 @@ const NavMenuFlyout = /*@__PURE__*/ proxyCustomElement(class NavMenuFlyout exten
33
35
  * LISTENERS
34
36
  * ------------------------------------------------------
35
37
  */
38
+ onFocusLeave(event) {
39
+ if (this.el && event.relatedTarget && !isDescendant(this.el, event.relatedTarget)) {
40
+ this.balFocusOut.emit(event);
41
+ }
42
+ }
36
43
  resizeListener() {
37
44
  if (this.isFlyoutScrollable()) {
38
45
  this.bodyScrollHandler.disable();
@@ -56,14 +63,14 @@ const NavMenuFlyout = /*@__PURE__*/ proxyCustomElement(class NavMenuFlyout exten
56
63
  render() {
57
64
  const block = BEM.block('nav-menu-flyout');
58
65
  const line = block.element('line');
59
- return (h(Host, { key: '9d0c52ef158adb1dcdddff70f32c0b4846696577', id: `${this.navId}-menu-flyout`, class: Object.assign({}, block.class()) }, h("div", { key: '3405126297ac245862a006b2fd83f147e615d001', class: Object.assign({}, line.class()) }), h("div", { key: '2a8707468c3e6886dd91e6cf792de8e0e0f97aa9', class: Object.assign({}, block.element('container').class()) }, h("slot", { key: '7c98fd49abc6e6f3ff3e2dffd49f4ec69df72788' }))));
66
+ return (h(Host, { key: '24fa77703681dee08738a210a21b693eb5c53679', id: `${this.navId}-menu-flyout`, class: Object.assign({}, block.class()) }, h("div", { key: '12eb7c5a6d4b3b8d230f8cfbc6477e4cc47b5897', class: Object.assign({}, line.class()) }), h("div", { key: '07fe48098735ef75bce7116eabedfceb8c2903e5', class: Object.assign({}, block.element('container').class()) }, h("slot", { key: '00a8a2f20e211f8610830bd89a53e7b57bafede2' }))));
60
67
  }
61
68
  get el() { return this; }
62
69
  static get style() { return BalNavMenuFlyoutStyle0; }
63
70
  }, [4, "bal-nav-menu-flyout", {
64
71
  "navId": [1, "nav-id"],
65
72
  "isHidden": [32]
66
- }]);
73
+ }, [[0, "focusout", "onFocusLeave"]]]);
67
74
  __decorate([
68
75
  Logger('bal-nav-menu-flyout'),
69
76
  __metadata("design:type", Function),
@@ -4,7 +4,7 @@ import { B as BEM } from './bem.js';
4
4
  import { L as Logger } from './log.js';
5
5
  import { b as balBrowser } from './browser.js';
6
6
 
7
- const balNavMetaBarCss = ":root{--bal-nav-meta-bar-variant-primary-background:var(--bal-color-primary);--bal-nav-meta-bar-variant-primary-shadow:none;--bal-nav-meta-bar-variant-white-background:var(--bal-color-white);--bal-nav-meta-bar-variant-white-shadow:0 5px 15px rgba(0,0,0,.1);--bal-nav-meta-bar-variant-grey-background:var(--bal-color-grey-2);--bal-nav-meta-bar-variant-grey-shadow:none}.bal-nav-meta-bar{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%;z-index:var(--bal-z-index-navigation)}.bal-nav-meta-bar__container{-ms-flex-positive:1;flex-grow:1;margin:0 auto;position:relative;width:auto;width:100% !important;padding-left:var(--bal-container-space);padding-right:var(--bal-container-space)}.bal-nav-meta-bar__container--fluid{max-width:var(--bal-container-size-fluid) !important}.bal-nav-meta-bar__container--detail-page{max-width:var(--bal-container-size-detail-page) !important}.bal-nav-meta-bar__container--compact{max-width:var(--bal-container-size-compact) !important}.bal-nav-meta-bar__container--blog-page{max-width:var(--bal-container-size-blog-page) !important}@media screen and (min-width: 769px),print{.bal-nav-meta-bar__container{padding-left:var(--bal-container-space-tablet);padding-right:var(--bal-container-space-tablet)}}@media screen and (min-width: 1024px){.bal-nav-meta-bar__container{padding-left:var(--bal-container-space-desktop);padding-right:var(--bal-container-space-desktop);max-width:var(--bal-container-size-normal)}}.bal-nav-meta-bar--size-normal{padding-top:.5rem;padding-bottom:.5rem;height:4rem;max-height:4rem}.bal-nav-meta-bar--size-small{min-height:3rem}.bal-nav-meta-bar--position-fixed-top{position:fixed;top:0;left:0;width:100%}.bal-nav-meta-bar--position-fixed-bottom{position:fixed;bottom:0;left:0;width:100%}.bal-nav-meta-bar--variant-primary{background:var(--bal-nav-meta-bar-variant-primary-background);-webkit-box-shadow:var(--bal-nav-meta-bar-variant-primary-shadow);box-shadow:var(--bal-nav-meta-bar-variant-primary-shadow)}.bal-nav-meta-bar--variant-grey{background:var(--bal-nav-meta-bar-variant-grey-background);-webkit-box-shadow:var(--bal-nav-meta-bar-variant-grey-shadow);box-shadow:var(--bal-nav-meta-bar-variant-grey-shadow)}.bal-nav-meta-bar--variant-white{background:var(--bal-nav-meta-bar-variant-white-background);-webkit-box-shadow:var(--bal-nav-meta-bar-variant-white-shadow);box-shadow:var(--bal-nav-meta-bar-variant-white-shadow)}@media screen and (max-width: 768px){.bal-nav-meta-bar--hidden-mobile{display:hidden !important;visibility:hidden !important}}@media screen and (max-width: 768px){.bal-nav-meta-bar--hidden-tablet{display:hidden !important;visibility:hidden !important}}@media screen and (min-width: 769px)and (max-width: 1023px){.bal-nav-meta-bar--hidden-tablet{display:hidden !important;visibility:hidden !important}}.bal-nav-meta-bar .button-label{word-break:keep-all !important}.bal-nav-meta-bar-transform{will-change:transition;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out, -webkit-transform .3s ease-in-out;position:fixed;display:block;width:100%;top:0;z-index:var(--bal-z-index-navigation)}.bal-nav-meta-bar-transform-small{-webkit-transform:translateY(-3rem);transform:translateY(-3rem)}.bal-nav-meta-bar-transform-normal{-webkit-transform:translateY(-5rem);transform:translateY(-5rem)}";
7
+ const balNavMetaBarCss = ":root{--bal-nav-meta-bar-variant-primary-background:var(--bal-color-primary);--bal-nav-meta-bar-variant-primary-shadow:none;--bal-nav-meta-bar-variant-white-background:var(--bal-color-white);--bal-nav-meta-bar-variant-white-shadow:0 5px 15px rgba(0,0,0,.1);--bal-nav-meta-bar-variant-grey-background:var(--bal-color-grey-2);--bal-nav-meta-bar-variant-grey-shadow:none}.bal-nav-meta-bar{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%;z-index:var(--bal-z-index-navigation)}.bal-nav-meta-bar__container{-ms-flex-positive:1;flex-grow:1;margin:0 auto;position:relative;width:auto;width:100% !important;padding-left:var(--bal-container-space);padding-right:var(--bal-container-space)}.bal-nav-meta-bar__container--fluid{max-width:var(--bal-container-size-fluid) !important}.bal-nav-meta-bar__container--detail-page{max-width:var(--bal-container-size-detail-page) !important}.bal-nav-meta-bar__container--compact{max-width:var(--bal-container-size-compact) !important}.bal-nav-meta-bar__container--blog-page{max-width:var(--bal-container-size-blog-page) !important}@media screen and (min-width: 769px),print{.bal-nav-meta-bar__container{padding-left:var(--bal-container-space-tablet);padding-right:var(--bal-container-space-tablet)}}@media screen and (min-width: 1024px){.bal-nav-meta-bar__container{padding-left:var(--bal-container-space-desktop);padding-right:var(--bal-container-space-desktop);max-width:var(--bal-container-size-normal)}}.bal-nav-meta-bar--size-normal{padding-top:.5rem;padding-bottom:.5rem;height:4rem;max-height:4rem}.bal-nav-meta-bar--size-small{min-height:3rem}.bal-nav-meta-bar--position-fixed-top{position:fixed;top:0;left:0;width:100%}.bal-nav-meta-bar--position-fixed-bottom{position:fixed;bottom:0;left:0;width:100%}.bal-nav-meta-bar--variant-primary{background:var(--bal-nav-meta-bar-variant-primary-background);-webkit-box-shadow:var(--bal-nav-meta-bar-variant-primary-shadow);box-shadow:var(--bal-nav-meta-bar-variant-primary-shadow)}.bal-nav-meta-bar--variant-grey{background:var(--bal-nav-meta-bar-variant-grey-background);-webkit-box-shadow:var(--bal-nav-meta-bar-variant-grey-shadow);box-shadow:var(--bal-nav-meta-bar-variant-grey-shadow)}.bal-nav-meta-bar--variant-white{background:var(--bal-nav-meta-bar-variant-white-background);-webkit-box-shadow:var(--bal-nav-meta-bar-variant-white-shadow);box-shadow:var(--bal-nav-meta-bar-variant-white-shadow)}@media screen and (max-width: 768px){.bal-nav-meta-bar--hidden-mobile{display:hidden !important;visibility:hidden !important}}@media screen and (max-width: 768px){.bal-nav-meta-bar--hidden-tablet{display:hidden !important;visibility:hidden !important}}@media screen and (min-width: 769px)and (max-width: 1023px){.bal-nav-meta-bar--hidden-tablet{display:hidden !important;visibility:hidden !important}}@media screen and (max-width: 768px){.bal-nav>.bal-nav-meta-bar--stay-on-top{z-index:calc(var(--bal-z-index-popup) + 1) !important}}.bal-nav-meta-bar .button-label{word-break:keep-all !important}.bal-nav-meta-bar-transform{will-change:transition;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out, -webkit-transform .3s ease-in-out;position:fixed;display:block;width:100%;top:0;z-index:var(--bal-z-index-navigation)}.bal-nav-meta-bar-transform-small{-webkit-transform:translateY(-3rem);transform:translateY(-3rem)}.bal-nav-meta-bar-transform-normal{-webkit-transform:translateY(-5rem);transform:translateY(-5rem)}";
8
8
  const BalNavMetaBarStyle0 = balNavMetaBarCss;
9
9
 
10
10
  const NavMetaBar = /*@__PURE__*/ proxyCustomElement(class NavMetaBar extends HTMLElement {
@@ -14,6 +14,7 @@ const NavMetaBar = /*@__PURE__*/ proxyCustomElement(class NavMetaBar extends HTM
14
14
  this.navMetaBarId = `bal-nav-meta-bar-${NavMetaBarIds++}`;
15
15
  this.previousY = 0;
16
16
  this.isHidden = false;
17
+ this.stayOnTopOfBackdrop = false;
17
18
  this.variant = 'primary';
18
19
  this.size = 'normal';
19
20
  this.invisible = 'none';
@@ -63,11 +64,12 @@ const NavMetaBar = /*@__PURE__*/ proxyCustomElement(class NavMetaBar extends HTM
63
64
  */
64
65
  render() {
65
66
  const block = BEM.block('nav-meta-bar');
66
- return (h(Host, { key: 'c7aa3ccfe8e8b41e12c2e625eac9d23aba77ded3', id: this.navMetaBarId, class: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, block.class()), block.modifier(`variant-${this.variant}`).class()), block.modifier(`size-${this.size}`).class()), block.modifier(`position-${this.position}`).class(this.position !== 'none')), block.modifier(`hidden-mobile`).class(this.invisible === 'mobile')), block.modifier(`hidden-tablet`).class(this.invisible === 'tablet')) }, h("div", { key: '0ad94b6ef1580bb8ae907d0ebe53721c32cee0f8', class: Object.assign({}, block.element('container').class()) }, h("slot", { key: '9cebb426b75f0d2cd743aa9e0efc26d1c584768c' }))));
67
+ return (h(Host, { key: '3c91c07a7d1b760ae2843b24003d4cebc2ec57d8', id: this.navMetaBarId, class: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, block.class()), block.modifier(`variant-${this.variant}`).class()), block.modifier(`size-${this.size}`).class()), block.modifier(`position-${this.position}`).class(this.position !== 'none')), block.modifier(`hidden-mobile`).class(this.invisible === 'mobile')), block.modifier(`hidden-tablet`).class(this.invisible === 'tablet')), block.modifier(`stay-on-top`).class(this.stayOnTopOfBackdrop)) }, h("div", { key: '02333a87470f62b461875ceeae5a1b32381f4700', class: Object.assign({}, block.element('container').class()) }, h("slot", { key: '4d41ede2b111ee158255fbbc04b580695c8b1597' }))));
67
68
  }
68
69
  get el() { return this; }
69
70
  static get style() { return BalNavMetaBarStyle0; }
70
71
  }, [4, "bal-nav-meta-bar", {
72
+ "stayOnTopOfBackdrop": [4, "stay-on-top-of-backdrop"],
71
73
  "variant": [1],
72
74
  "size": [1],
73
75
  "invisible": [1],
@@ -2,9 +2,11 @@ import { h, proxyCustomElement, HTMLElement, createEvent, Host } from '@stencil/
2
2
  import { _ as __decorate, a as __metadata } from './tslib.es6.js';
3
3
  import { B as BEM } from './bem.js';
4
4
  import { b as balBrowser } from './browser.js';
5
- import { w as waitForComponent, d as waitAfterIdleCallback } from './helpers.js';
5
+ import { s as stopEventBubbling } from './form-input.js';
6
+ import { p as rIC, j as isDescendant, w as waitForComponent, d as waitAfterIdleCallback } from './helpers.js';
6
7
  import { L as Logger } from './log.js';
7
8
  import { B as BalScrollHandler } from './scroll.js';
9
+ import { b as isTabKey } from './keyboard.helpers.js';
8
10
  import { d as defineCustomElement$t } from './bal-badge2.js';
9
11
  import { d as defineCustomElement$s } from './bal-button2.js';
10
12
  import { d as defineCustomElement$r } from './bal-checkbox2.js';
@@ -39,6 +41,93 @@ import { L as ListenToMutation } from './mutation.decorator.js';
39
41
  import { L as ListenToBreakpoints } from './breakpoints.decorator.js';
40
42
  import { L as ListenToConfig } from './config.decorator.js';
41
43
 
44
+ /**
45
+ * Gathers information about the tabs in the navigation.
46
+ * This information are shared for the tab key down handling and the flyout focus out handling.
47
+ */
48
+ const gatherTabInformation = (detail) => {
49
+ var _a;
50
+ const links = (_a = detail.linkItems.find(item => item.value === detail.activeMetaLinkValue)) === null || _a === void 0 ? void 0 : _a.mainLinkItems;
51
+ // the selected tab in the main navigation
52
+ const indexOfActiveTab = links === null || links === void 0 ? void 0 : links.findIndex(link => link.value === detail.activeMenuLinkValue);
53
+ const indexOfNextTab = indexOfActiveTab + 1;
54
+ const indexOfPreviousTab = indexOfActiveTab - 1;
55
+ return {
56
+ tabs: links || [],
57
+ indexOfActiveTab,
58
+ indexOfNextTab,
59
+ indexOfPreviousTab,
60
+ };
61
+ };
62
+ const handleTabKeyDown = ({ tabs, indexOfNextTab, indexOfActiveTab }, detail) => {
63
+ // the current focused tab in the main navigation
64
+ const indexOfFocusedTab = tabs === null || tabs === void 0 ? void 0 : tabs.findIndex(link => link.value === detail.item.value);
65
+ // if last tab is focused and would leave the tab navigation, close the flyout
66
+ if (!detail.isBackwards && indexOfFocusedTab === tabs.length - 1) {
67
+ detail.stopEventBubbling();
68
+ detail.closeFlyout();
69
+ rIC(() => {
70
+ focusNextElement(document.activeElement, detail.el);
71
+ });
72
+ return;
73
+ }
74
+ // only change focus to the first link in the flyout when navigating from active tab to next tab
75
+ if (!detail.isBackwards && indexOfFocusedTab === indexOfActiveTab) {
76
+ const flyout = detail.el.querySelector(`#${detail.navId}-menu-flyout`);
77
+ if (flyout) {
78
+ const firstLink = flyout.querySelector('a, button, [tabindex="0"]');
79
+ if (firstLink) {
80
+ detail.stopEventBubbling();
81
+ firstLink.focus({ preventScroll: true });
82
+ }
83
+ }
84
+ }
85
+ // only change focus to the last link in the flyout when navigating back from
86
+ // next tab (from the active tab) to active tab (has flyout open)
87
+ if (detail.isBackwards && indexOfFocusedTab === indexOfNextTab) {
88
+ const flyout = detail.el.querySelector(`#${detail.navId}-menu-flyout`);
89
+ if (flyout) {
90
+ const flyoutLinks = flyout.querySelectorAll('a, button, [tabindex="0"]');
91
+ const lastLink = flyoutLinks[flyoutLinks.length - 1];
92
+ if (lastLink) {
93
+ detail.stopEventBubbling();
94
+ lastLink.focus({ preventScroll: true });
95
+ }
96
+ }
97
+ }
98
+ };
99
+ const handleFlyoutFocusOut = (info, detail) => {
100
+ const targetItem = detail.isBackwards ? info.tabs[info.indexOfActiveTab] : info.tabs[info.indexOfNextTab];
101
+ if (targetItem) {
102
+ const tab = detail.el.querySelector(`button[data-value="${targetItem.value}"], a[data-value="${targetItem.value}"]`);
103
+ if (tab) {
104
+ tab.focus({ preventScroll: true });
105
+ }
106
+ }
107
+ };
108
+ /**
109
+ * Focuses the next focusable element after the current element outside of the bal-nav element.
110
+ */
111
+ const focusNextElement = (current, balNavEl) => {
112
+ const focusableSelectors = [
113
+ 'a[href]',
114
+ 'button:not([disabled])',
115
+ 'input:not([disabled]):not([type="hidden"])',
116
+ 'select:not([disabled])',
117
+ 'textarea:not([disabled])',
118
+ '[tabindex]:not([tabindex="-1"])',
119
+ ];
120
+ const focusableElements = Array.from(document.querySelectorAll(focusableSelectors.join(',')))
121
+ // visible elements only
122
+ .filter(el => el.offsetParent !== null)
123
+ // exclude elements inside the bal-nav
124
+ .filter(el => !isDescendant(balNavEl, el));
125
+ const index = focusableElements.indexOf(current);
126
+ const next = focusableElements[index + 1];
127
+ if (next)
128
+ next.focus();
129
+ };
130
+
42
131
  const i18nNavBars = {
43
132
  de: {
44
133
  mainNavigation: 'Hauptnavigation',
@@ -246,6 +335,28 @@ class NavMetaButton extends NavLinkItem {
246
335
  }
247
336
  let NavMetaButtonIDs = 0;
248
337
 
338
+ const AccordionButton = ({ id, label, level, open, link, href, rel, target, onClick, }) => {
339
+ const block = BEM.block('nav');
340
+ return link ? (h("a", { id: id, class: Object.assign({}, block.element(`mobile-${level}-item`).class()), href: href, rel: rel, target: target, onClick: ev => onClick(ev) },
341
+ h("span", null, label))) : (h("button", { id: id, class: Object.assign({}, block.element(`mobile-${level}-item`).class()), onClick: ev => onClick(ev) },
342
+ h("span", null, label),
343
+ h("bal-icon", { name: "nav-go-down", size: "small", turn: open })));
344
+ };
345
+
346
+ const OverviewLink = ({ item, isMenu, onClick, isVisible }) => {
347
+ const block = BEM.block('nav');
348
+ if (!item) {
349
+ return '';
350
+ }
351
+ return (h("a", { class: Object.assign(Object.assign(Object.assign({}, block.element('mobile-overview-link').class()), block.element('mobile-overview-link').modifier('menu').class(!!isMenu)), block
352
+ .element('mobile-overview-link')
353
+ .modifier('invisible')
354
+ .class(isVisible === false)), href: item.href, rel: item.rel, target: item.target, onClick: ev => onClick(ev) },
355
+ item.label,
356
+ " ",
357
+ item.label ? '➞' : ''));
358
+ };
359
+
249
360
  class NavSectionLinkItem extends NavLinkItem {
250
361
  constructor(item, observer) {
251
362
  super(item, observer);
@@ -304,28 +415,6 @@ class NavServiceLinkItem extends NavLinkItem {
304
415
  }
305
416
  let NavServiceLinkItemIDs = 0;
306
417
 
307
- const AccordionButton = ({ id, label, level, open, link, href, rel, target, onClick, }) => {
308
- const block = BEM.block('nav');
309
- return link ? (h("a", { id: id, class: Object.assign({}, block.element(`mobile-${level}-item`).class()), href: href, rel: rel, target: target, onClick: ev => onClick(ev) },
310
- h("span", null, label))) : (h("button", { id: id, class: Object.assign({}, block.element(`mobile-${level}-item`).class()), onClick: ev => onClick(ev) },
311
- h("span", null, label),
312
- h("bal-icon", { name: "nav-go-down", size: "small", turn: open })));
313
- };
314
-
315
- const OverviewLink = ({ item, isMenu, onClick, isVisible }) => {
316
- const block = BEM.block('nav');
317
- if (!item) {
318
- return '';
319
- }
320
- return (h("a", { class: Object.assign(Object.assign(Object.assign({}, block.element('mobile-overview-link').class()), block.element('mobile-overview-link').modifier('menu').class(!!isMenu)), block
321
- .element('mobile-overview-link')
322
- .modifier('invisible')
323
- .class(isVisible === false)), href: item.href, rel: item.rel, target: item.target, onClick: ev => onClick(ev) },
324
- item.label,
325
- " ",
326
- item.label ? '➞' : ''));
327
- };
328
-
329
418
  class NavMenuLinkItem extends NavLinkItem {
330
419
  constructor(item, observer) {
331
420
  super(item, observer);
@@ -360,9 +449,9 @@ class NavMenuLinkItem extends NavLinkItem {
360
449
  render(context) {
361
450
  const hasChildren = this.sectionLinkItems.length > 0 || this.serviceLinkItems.length > 0;
362
451
  if (!hasChildren && this.isLink) {
363
- return (h("bal-tab-item", { aria: { controls: context.flyoutId }, label: this.label, value: this.value, href: this.href, rel: this.rel, target: this.target, "no-panel": true }));
452
+ return (h("bal-tab-item", { aria: { controls: context.flyoutId }, label: this.label, value: this.value, href: this.href, rel: this.rel, target: this.target, onBalKeyDown: ev => isTabKey(ev.detail) && (context === null || context === void 0 ? void 0 : context.onTabPress(ev.detail)), "no-panel": true }));
364
453
  }
365
- return (h("bal-tab-item", { aria: { controls: context.flyoutId }, label: this.label, value: this.value, "no-panel": true, onBalNavigate: ev => {
454
+ return (h("bal-tab-item", { aria: { controls: context.flyoutId }, label: this.label, value: this.value, "no-panel": true, onBalKeyDown: ev => isTabKey(ev.detail) && (context === null || context === void 0 ? void 0 : context.onTabPress(ev.detail)), onBalNavigate: ev => {
366
455
  context === null || context === void 0 ? void 0 : context.onClick();
367
456
  if (this.onClick) {
368
457
  this.onClick(ev.detail);
@@ -410,7 +499,7 @@ class NavMetaLinkItem extends NavLinkItem {
410
499
  }
411
500
  let NavMetaLinkItemIDs = 0;
412
501
 
413
- const balNavCss = "@media (hover: hover)and (pointer: fine){.bal-nav__logo:focus-visible{-webkit-box-shadow:var(--bal-focus-shadow) !important;box-shadow:var(--bal-focus-shadow) !important}}:root{--bal-nav-background:var(--bal-color-primary);--bal-nav-service-background-grey:var(--bal-color-grey);--bal-nav-service-background-purple:var(--bal-color-purple);--bal-nav-service-background-red:var(--bal-color-red);--bal-nav-service-background-yellow:var(--bal-color-yellow);--bal-nav-service-background-green:var(--bal-color-green)}.bal-nav{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block;width:100%}.bal-nav__flyout{background:var(--bal-color-white);scroll-padding-top:1rem;padding-top:1rem;padding-bottom:1rem;height:calc(var(--bal-app-height, 100%) - 4rem - 4rem);overflow-y:auto}@media screen and (min-width: 1024px){.bal-nav__flyout{display:none;visibility:hidden}}.bal-nav__flyout__container{-ms-flex-positive:1;flex-grow:1;margin:0 auto;position:relative;width:auto;width:100% !important;padding-left:var(--bal-container-space);padding-right:var(--bal-container-space)}.bal-nav__flyout__container--fluid{max-width:var(--bal-container-size-fluid) !important}.bal-nav__flyout__container--detail-page{max-width:var(--bal-container-size-detail-page) !important}.bal-nav__flyout__container--compact{max-width:var(--bal-container-size-compact) !important}.bal-nav__flyout__container--blog-page{max-width:var(--bal-container-size-blog-page) !important}@media screen and (min-width: 769px),print{.bal-nav__flyout__container{padding-left:var(--bal-container-space-tablet);padding-right:var(--bal-container-space-tablet)}}@media screen and (min-width: 1024px){.bal-nav__flyout__container{padding-left:var(--bal-container-space-desktop);padding-right:var(--bal-container-space-desktop);max-width:var(--bal-container-size-normal)}}.bal-nav__flyout:not(.bal-nav__flyout--visible){position:absolute !important;height:1px !important;width:1px !important;padding:0 !important;overflow:hidden !important;border:none !important;white-space:nowrap !important;clip:rect(1px 1px 1px 1px) !important;clip:rect(1px, 1px, 1px, 1px) !important}.bal-nav .bal-nav-meta-bar,.bal-nav .bal-nav-menu-bar{z-index:auto !important}.bal-list__item__accordion-head:after{background:rgba(0,0,0,0) !important}.bal-nav-meta-bar-transform-touch{z-index:var(--bal-z-index-popup);position:relative}.bal-nav__mobile-meta-item{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;text-align:start;width:100%;min-height:3rem;border:none;padding:0;margin:0;gap:var(--bal-space-normal);background:rgba(0,0,0,0);font-family:var(--bal-font-family-title);font-weight:var(--bal-font-weight-bold);font-size:var(--bal-size-x-large);line-height:var(--bal-line-heigh-x-large);cursor:pointer}.bal-nav__mobile-menu-item{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;text-align:start;width:100%;min-height:3rem;border:none;margin:0;padding:0 0 0 1rem;gap:var(--bal-space-normal);background:rgba(0,0,0,0);font-family:var(--bal-font-family-title);font-weight:var(--bal-font-weight-bold);font-size:var(--bal-size-large);line-height:var(--bal-line-heigh-large);cursor:pointer}.bal-nav__mobile-section-item,.bal-nav__mobile-service-item>a{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;text-align:start;width:100%;min-height:2rem;border:none;margin:0;padding:0 2rem 0 2rem;gap:var(--bal-space-normal);background:rgba(0,0,0,0);font-family:var(--bal-font-family-title);font-weight:var(--bal-font-weight-bold);font-size:var(--bal-size-normal);line-height:var(--bal-line-heigh-normal)}.bal-nav__mobile-links{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;text-align:start;width:100%;min-height:2rem;border:none;margin:0;padding:0 2rem 0 2rem;gap:var(--bal-space-normal);background:rgba(0,0,0,0);font-family:var(--bal-font-family-text);font-size:var(--bal-size-normal);line-height:var(--bal-line-heigh-normal)}.bal-nav__mobile-meta-list,.bal-nav__mobile-meta-list>li,.bal-nav__mobile-menu-list,.bal-nav__mobile-menu-list>li,.bal-nav__mobile-section-list,.bal-nav__mobile-service-list,.bal-nav__mobile-section-list>li,.bal-nav__mobile-service-list>li,.bal-nav__mobile-links-list{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.bal-nav__mobile-meta-list,.bal-nav__mobile-meta-list>li{gap:var(--bal-space-normal)}.bal-nav__mobile-menu-list{gap:var(--bal-space-normal)}.bal-nav__mobile-menu-list>li{gap:var(--bal-space-normal)}.bal-nav__mobile-section-list,.bal-nav__mobile-service-list{gap:var(--bal-space-x-large)}.bal-nav__mobile-section-list>li,.bal-nav__mobile-service-list>li{gap:var(--bal-space-xx-small)}.bal-nav__mobile-links-list{gap:var(--bal-space-xx-small)}.bal-nav__mobile-section-list{padding-top:1rem}.bal-nav__mobile-service-list>li{border-radius:var(--bal-radius-normal);padding-top:1rem;padding-bottom:1rem}.bal-nav__mobile-section-list--invisible,.bal-nav__mobile-service-list--invisible{position:absolute !important;height:1px !important;width:1px !important;padding:0 !important;overflow:hidden !important;border:none !important;white-space:nowrap !important;clip:rect(1px 1px 1px 1px) !important;clip:rect(1px, 1px, 1px, 1px) !important}.bal-nav__mobile-overview-link{font-family:var(--bal-font-family-text);font-weight:var(--bal-font-weight-bold);font-size:var(--bal-size-x-small);line-height:var(--bal-line-height-x-small)}.bal-nav__mobile-overview-link--invisible{position:absolute !important;height:1px !important;width:1px !important;padding:0 !important;overflow:hidden !important;border:none !important;white-space:nowrap !important;clip:rect(1px 1px 1px 1px) !important;clip:rect(1px, 1px, 1px, 1px) !important}.bal-nav__mobile-overview-link--menu{padding:0 0 0 1rem}.bal-nav__line{background-color:var(--bal-color-border-grey-light);height:var(--bal-border-width-normal);border:none;display:block;border-radius:var(--bal-list-item-radius);width:100%;margin:0;padding:0}.bal-nav__mobile-links--clickable,.bal-nav__mobile-section-item--clickable,.bal-nav__mobile-service-item--clickable>a{cursor:pointer}.bal-nav__mobile-links--selected,.bal-nav__mobile-section-item--selected,.bal-nav__mobile-service-item--selected>a{text-decoration:underline}.bal-nav__mobile-service-item--color-grey{background:var(--bal-nav-service-background-grey)}.bal-nav__mobile-service-item--color-purple{background:var(--bal-nav-service-background-purple)}.bal-nav__mobile-service-item--color-red{background:var(--bal-nav-service-background-red)}.bal-nav__mobile-service-item--color-yellow{background:var(--bal-nav-service-background-yellow)}.bal-nav__mobile-service-item--color-green{background:var(--bal-nav-service-background-green)}";
502
+ const balNavCss = "@media (hover: hover)and (pointer: fine){.bal-nav__logo:focus-visible{-webkit-box-shadow:var(--bal-focus-shadow) !important;box-shadow:var(--bal-focus-shadow) !important}}:root{--bal-nav-background:var(--bal-color-primary);--bal-nav-service-background-grey:var(--bal-color-grey);--bal-nav-service-background-purple:var(--bal-color-purple);--bal-nav-service-background-red:var(--bal-color-red);--bal-nav-service-background-yellow:var(--bal-color-yellow);--bal-nav-service-background-green:var(--bal-color-green)}.bal-nav{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block;width:100%}.bal-nav__flyout{background:var(--bal-color-white);scroll-padding-top:1rem;padding-top:1rem;padding-bottom:1rem;height:calc(var(--bal-app-height, 100%) - 4rem - 4rem);overflow-y:auto}@media screen and (min-width: 1024px){.bal-nav__flyout{display:none;visibility:hidden}}.bal-nav__flyout__container{-ms-flex-positive:1;flex-grow:1;margin:0 auto;position:relative;width:auto;width:100% !important;padding-left:var(--bal-container-space);padding-right:var(--bal-container-space)}.bal-nav__flyout__container--fluid{max-width:var(--bal-container-size-fluid) !important}.bal-nav__flyout__container--detail-page{max-width:var(--bal-container-size-detail-page) !important}.bal-nav__flyout__container--compact{max-width:var(--bal-container-size-compact) !important}.bal-nav__flyout__container--blog-page{max-width:var(--bal-container-size-blog-page) !important}@media screen and (min-width: 769px),print{.bal-nav__flyout__container{padding-left:var(--bal-container-space-tablet);padding-right:var(--bal-container-space-tablet)}}@media screen and (min-width: 1024px){.bal-nav__flyout__container{padding-left:var(--bal-container-space-desktop);padding-right:var(--bal-container-space-desktop);max-width:var(--bal-container-size-normal)}}.bal-nav__flyout:not(.bal-nav__flyout--visible){position:absolute !important;height:1px !important;width:1px !important;padding:0 !important;overflow:hidden !important;border:none !important;white-space:nowrap !important;clip:rect(1px 1px 1px 1px) !important;clip:rect(1px, 1px, 1px, 1px) !important}.bal-nav .bal-nav-meta-bar:not(.bal-nav-meta-bar--stay-on-top),.bal-nav .bal-nav-menu-bar{z-index:auto !important}.bal-list__item__accordion-head:after{background:rgba(0,0,0,0) !important}.bal-nav-meta-bar-transform-touch{z-index:var(--bal-z-index-popup);position:relative}.bal-nav__mobile-meta-item{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;text-align:start;width:100%;min-height:3rem;border:none;padding:0;margin:0;gap:var(--bal-space-normal);background:rgba(0,0,0,0);font-family:var(--bal-font-family-title);font-weight:var(--bal-font-weight-bold);font-size:var(--bal-size-x-large);line-height:var(--bal-line-heigh-x-large);cursor:pointer}.bal-nav__mobile-menu-item{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;text-align:start;width:100%;min-height:3rem;border:none;margin:0;padding:0 0 0 1rem;gap:var(--bal-space-normal);background:rgba(0,0,0,0);font-family:var(--bal-font-family-title);font-weight:var(--bal-font-weight-bold);font-size:var(--bal-size-large);line-height:var(--bal-line-heigh-large);cursor:pointer}.bal-nav__mobile-section-item,.bal-nav__mobile-service-item>a{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;text-align:start;width:100%;min-height:2rem;border:none;margin:0;padding:0 2rem 0 2rem;gap:var(--bal-space-normal);background:rgba(0,0,0,0);font-family:var(--bal-font-family-title);font-weight:var(--bal-font-weight-bold);font-size:var(--bal-size-normal);line-height:var(--bal-line-heigh-normal)}.bal-nav__mobile-links{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;text-align:start;width:100%;min-height:2rem;border:none;margin:0;padding:0 2rem 0 2rem;gap:var(--bal-space-normal);background:rgba(0,0,0,0);font-family:var(--bal-font-family-text);font-size:var(--bal-size-normal);line-height:var(--bal-line-heigh-normal)}.bal-nav__mobile-meta-list,.bal-nav__mobile-meta-list>li,.bal-nav__mobile-menu-list,.bal-nav__mobile-menu-list>li,.bal-nav__mobile-section-list,.bal-nav__mobile-service-list,.bal-nav__mobile-section-list>li,.bal-nav__mobile-service-list>li,.bal-nav__mobile-links-list{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.bal-nav__mobile-meta-list,.bal-nav__mobile-meta-list>li{gap:var(--bal-space-normal)}.bal-nav__mobile-menu-list{gap:var(--bal-space-normal)}.bal-nav__mobile-menu-list>li{gap:var(--bal-space-normal)}.bal-nav__mobile-section-list,.bal-nav__mobile-service-list{gap:var(--bal-space-x-large)}.bal-nav__mobile-section-list>li,.bal-nav__mobile-service-list>li{gap:var(--bal-space-xx-small)}.bal-nav__mobile-links-list{gap:var(--bal-space-xx-small)}.bal-nav__mobile-section-list{padding-top:1rem}.bal-nav__mobile-service-list>li{border-radius:var(--bal-radius-normal);padding-top:1rem;padding-bottom:1rem}.bal-nav__mobile-section-list--invisible,.bal-nav__mobile-service-list--invisible{position:absolute !important;height:1px !important;width:1px !important;padding:0 !important;overflow:hidden !important;border:none !important;white-space:nowrap !important;clip:rect(1px 1px 1px 1px) !important;clip:rect(1px, 1px, 1px, 1px) !important}.bal-nav__mobile-overview-link{font-family:var(--bal-font-family-text);font-weight:var(--bal-font-weight-bold);font-size:var(--bal-size-x-small);line-height:var(--bal-line-height-x-small)}.bal-nav__mobile-overview-link--invisible{position:absolute !important;height:1px !important;width:1px !important;padding:0 !important;overflow:hidden !important;border:none !important;white-space:nowrap !important;clip:rect(1px 1px 1px 1px) !important;clip:rect(1px, 1px, 1px, 1px) !important}.bal-nav__mobile-overview-link--menu{padding:0 0 0 1rem}.bal-nav__line{background-color:var(--bal-color-border-grey-light);height:var(--bal-border-width-normal);border:none;display:block;border-radius:var(--bal-list-item-radius);width:100%;margin:0;padding:0}.bal-nav__mobile-links--clickable,.bal-nav__mobile-section-item--clickable,.bal-nav__mobile-service-item--clickable>a{cursor:pointer}.bal-nav__mobile-links--selected,.bal-nav__mobile-section-item--selected,.bal-nav__mobile-service-item--selected>a{text-decoration:underline}.bal-nav__mobile-service-item--color-grey{background:var(--bal-nav-service-background-grey)}.bal-nav__mobile-service-item--color-purple{background:var(--bal-nav-service-background-purple)}.bal-nav__mobile-service-item--color-red{background:var(--bal-nav-service-background-red)}.bal-nav__mobile-service-item--color-yellow{background:var(--bal-nav-service-background-yellow)}.bal-nav__mobile-service-item--color-green{background:var(--bal-nav-service-background-green)}";
414
503
  const BalNavStyle0 = balNavCss;
415
504
 
416
505
  const Nav = /*@__PURE__*/ proxyCustomElement(class Nav extends HTMLElement {
@@ -682,20 +771,53 @@ const Nav = /*@__PURE__*/ proxyCustomElement(class Nav extends HTMLElement {
682
771
  const block = BEM.block('nav');
683
772
  const flyoutBlock = block.element('flyout');
684
773
  this.hasRenderedWithFlyoutActive = this.isFlyoutActive;
685
- return (h(Host, { key: 'c384e25a9962ec11739b7594114d2ad19fd07937', id: this.navId, class: Object.assign({}, block.class()) }, h("div", { key: '06cf6bb549c278c98b41ef3d176ac58dfe95bacc', class: {
774
+ return (h(Host, { key: '6731ced264e30666493c9b66469f8656e3a632ee', id: this.navId, class: Object.assign({}, block.class()) }, h("div", { key: 'b8b36c81b079f727699a2d037c4f687084791cfa', class: {
686
775
  'bal-nav-meta-bar-transform': true,
687
776
  'bal-nav-meta-bar-transform-touch': this.isTouch,
688
- } }, this.isDesktop ? (h("bal-nav-meta-bar", { variant: "primary", size: "small", position: "sticky-top", ref: metaBarEl => (this.metaBarEl = metaBarEl) }, h("bal-stack", { space: "auto" }, this.linkItems.length > 1 ? (h("bal-tabs", { spaceless: true, inverted: true, context: "meta", value: this.activeMetaLinkValue, "aria-label": i18nNavBars[this.language].mainNavigation, onBalChange: ev => this.onMetaBarTabChange(ev) }, this.linkItems.map(item => item.render({
777
+ } }, this.isDesktop ? (h("bal-nav-meta-bar", { variant: "primary", size: "small", position: "sticky-top", ref: metaBarEl => (this.metaBarEl = metaBarEl) }, h("bal-stack", { space: "auto" }, this.linkItems.length > 1 ? (h("bal-tabs", { inverted: true, context: "meta", value: this.activeMetaLinkValue, "aria-label": i18nNavBars[this.language].mainNavigation, onBalChange: ev => this.onMetaBarTabChange(ev) }, this.linkItems.map(item => item.render({
689
778
  flyoutId: `${this.navId}-menu-flyout`,
690
- })))) : (h("span", null)), h("bal-stack", { id: "bal-nav__meta-buttons", space: "x-small", "fit-content": true }, this.metaButtons.map(button => button.renderAtMetaBar()))))) : (''), this.isDesktop ? (h("bal-nav-menu-bar", { position: "fixed-top", ref: menuBarEl => (this.menuBarEl = menuBarEl) }, h("bal-stack", { space: "auto", "space-row": "none", "use-wrap": true }, this.renderLogo(), h("bal-tabs", { context: "navigation", accordion: true, spaceless: true, value: this.activeMenuLinkValue, "aria-label": i18nNavBars[this.language].navigation }, (_a = this.linkItems
691
- .find(item => item.value === this.activeMetaLinkValue)) === null || _a === void 0 ? void 0 : _a.mainLinkItems.map(item => item.render({
779
+ })))) : (h("span", null)), h("bal-stack", { id: "bal-nav__meta-buttons", space: "x-small", "fit-content": true }, this.metaButtons.map(button => button.renderAtMetaBar()))))) : (''), this.isDesktop ? (h("bal-nav-menu-bar", { position: "fixed-top", ref: menuBarEl => (this.menuBarEl = menuBarEl) }, h("bal-stack", { space: "auto", "space-row": "none", "use-wrap": true }, this.renderLogo(), h("bal-tabs", { context: "navigation", accordion: true, value: this.activeMenuLinkValue, "aria-label": i18nNavBars[this.language].navigation }, (_a = this.linkItems
780
+ .find(item => item.value === this.activeMetaLinkValue)) === null || _a === void 0 ? void 0 : _a.mainLinkItems.map((item, index) => item.render({
692
781
  flyoutId: `${this.navId}-menu-flyout`,
693
782
  onClick: () => this.onMenuBarTabChange(item.value),
694
- })))), this.isFlyoutActive ? (h("bal-nav-menu-flyout", { navId: this.navId, "aria-label": i18nNavBars[this.language].subNavigation }, h("bal-nav-link", { role: "listitem", variant: "overview", href: (_c = (_b = this.activeMenuLinkItem) === null || _b === void 0 ? void 0 : _b.overviewLink) === null || _c === void 0 ? void 0 : _c.href, target: (_e = (_d = this.activeMenuLinkItem) === null || _d === void 0 ? void 0 : _d.overviewLink) === null || _e === void 0 ? void 0 : _e.target, onClick: () => { var _a; return this.linkItemClickListener((_a = this.activeMenuLinkItem) === null || _a === void 0 ? void 0 : _a.overviewLink); } }, (_g = (_f = this.activeMenuLinkItem) === null || _f === void 0 ? void 0 : _f.overviewLink) === null || _g === void 0 ? void 0 :
695
- _g.label, ' ', ((_j = (_h = this.activeMenuLinkItem) === null || _h === void 0 ? void 0 : _h.overviewLink) === null || _j === void 0 ? void 0 : _j.label) ? '➞' : ''), this.renderGridLinks(this.activeMenuLinkItem))) : (''))) : (''), h("div", { key: '7b17b61ea275f90fb5016d8ec0d26dece26caa4f' }, h("slot", { key: '8ae80d7fdacd29e171f136bfe3ace823290ff068' }))), this.isTouch ? (h("bal-nav-meta-bar", { variant: "white", size: "normal" }, h("bal-stack", { space: "auto" }, this.renderLogo(), h("bal-stack", { space: "x-small", "fit-content": true }, this.metaButtons.map(button => button.renderAtTouchTopMetaBar()), h("bal-button", { square: true, color: this.isFlyoutActive ? 'primary' : 'light', icon: this.isFlyoutActive ? 'close' : 'menu-bars', "aria-label": this.isFlyoutActive ? i18nNavBars[this.language].close : i18nNavBars[this.language].open, onClick: ev => this.onTouchToggleFlyout(ev) }))))) : (''), this.isTouch ? (h("div", { class: Object.assign(Object.assign({}, flyoutBlock.class()), flyoutBlock.modifier('visible').class(this.isFlyoutActive)) }, h("nav", { class: Object.assign({}, flyoutBlock.element('container').class()) }, h("ul", { class: Object.assign({}, block.element('mobile-meta-list').class()) }, this.linkItems.map(item => item.renderTouch({
783
+ onTabPress: (ev) => {
784
+ if (this.isFlyoutActive) {
785
+ const isBackwards = ev.shiftKey;
786
+ const info = gatherTabInformation({
787
+ activeMetaLinkValue: this.activeMetaLinkValue,
788
+ activeMenuLinkValue: this.activeMenuLinkValue,
789
+ linkItems: this.linkItems,
790
+ });
791
+ handleTabKeyDown(info, {
792
+ el: this.el,
793
+ navId: this.navId,
794
+ isFlyoutActive: this.isFlyoutActive,
795
+ isBackwards,
796
+ item,
797
+ stopEventBubbling: () => stopEventBubbling(ev),
798
+ closeFlyout: () => this.closeFlyout(),
799
+ });
800
+ }
801
+ },
802
+ })))), this.isFlyoutActive ? (h("bal-nav-menu-flyout", { navId: this.navId, "aria-label": i18nNavBars[this.language].subNavigation, onBalFocusOut: (ev) => {
803
+ if (this.isFlyoutActive) {
804
+ stopEventBubbling(ev);
805
+ const info = gatherTabInformation({
806
+ activeMetaLinkValue: this.activeMetaLinkValue,
807
+ activeMenuLinkValue: this.activeMenuLinkValue,
808
+ linkItems: this.linkItems,
809
+ });
810
+ const isBackwards = isDescendant(this.el, ev.detail.relatedTarget);
811
+ handleFlyoutFocusOut(info, {
812
+ el: this.el,
813
+ isBackwards,
814
+ });
815
+ }
816
+ } }, h("bal-nav-link", { role: "listitem", variant: "overview", href: (_c = (_b = this.activeMenuLinkItem) === null || _b === void 0 ? void 0 : _b.overviewLink) === null || _c === void 0 ? void 0 : _c.href, target: (_e = (_d = this.activeMenuLinkItem) === null || _d === void 0 ? void 0 : _d.overviewLink) === null || _e === void 0 ? void 0 : _e.target, onClick: () => { var _a; return this.linkItemClickListener((_a = this.activeMenuLinkItem) === null || _a === void 0 ? void 0 : _a.overviewLink); } }, (_g = (_f = this.activeMenuLinkItem) === null || _f === void 0 ? void 0 : _f.overviewLink) === null || _g === void 0 ? void 0 :
817
+ _g.label, ' ', ((_j = (_h = this.activeMenuLinkItem) === null || _h === void 0 ? void 0 : _h.overviewLink) === null || _j === void 0 ? void 0 : _j.label) ? '➞' : ''), this.renderGridLinks(this.activeMenuLinkItem))) : (''))) : (''), h("div", { key: '66321dcac9fb856d8bba914283fc1fe0d4626d35' }, h("slot", { key: '1d89fec71d39cc81c491f2422312a733e103f016' }))), this.isTouch ? (h("bal-nav-meta-bar", { variant: "white", size: "normal" }, h("bal-stack", { space: "auto" }, this.renderLogo(), h("bal-stack", { space: "x-small", "fit-content": true }, this.metaButtons.map(button => button.renderAtTouchTopMetaBar()), h("bal-button", { square: true, color: this.isFlyoutActive ? 'primary' : 'light', icon: this.isFlyoutActive ? 'close' : 'menu-bars', "aria-label": this.isFlyoutActive ? i18nNavBars[this.language].close : i18nNavBars[this.language].open, onClick: ev => this.onTouchToggleFlyout(ev) }))))) : (''), this.isTouch ? (h("div", { class: Object.assign(Object.assign({}, flyoutBlock.class()), flyoutBlock.modifier('visible').class(this.isFlyoutActive)) }, h("nav", { class: Object.assign({}, flyoutBlock.element('container').class()) }, h("ul", { class: Object.assign({}, block.element('mobile-meta-list').class()) }, this.linkItems.map(item => item.renderTouch({
696
818
  activeMetaLinkValue: this.activeMetaLinkValue,
697
819
  activeMenuLinkValue: this.activeMenuLinkValue,
698
- })))))) : (''), this.isTouch && this.isFlyoutActive ? (h("bal-nav-meta-bar", { variant: "grey", size: "normal" }, h("bal-stack", { space: "x-small", align: "center" }, this.metaButtons.map(button => button.renderAtTouchBottomMetaBar())))) : ('')));
820
+ })))))) : (''), this.isTouch && this.isFlyoutActive ? (h("bal-nav-meta-bar", { stayOnTopOfBackdrop: true, variant: "grey", size: "normal" }, h("bal-stack", { space: "x-small", align: "center" }, this.metaButtons.map(button => button.renderAtTouchBottomMetaBar())))) : ('')));
699
821
  }
700
822
  renderGridLinks(linkItem) {
701
823
  var _a, _b;
@@ -5,7 +5,6 @@ import { b as balBrowser } from './browser.js';
5
5
  import { s as stopEventBubbling } from './form-input.js';
6
6
  import { k as debounce } from './helpers.js';
7
7
  import { L as Logger } from './log.js';
8
- import { f as focusableQueryString } from './focus-visible.js';
9
8
  import { d as defineCustomElement$4 } from './bal-close2.js';
10
9
  import { d as defineCustomElement$3 } from './bal-heading2.js';
11
10
  import { d as defineCustomElement$2 } from './bal-icon2.js';
@@ -513,7 +512,7 @@ const Popup = /*@__PURE__*/ proxyCustomElement(class Popup extends HTMLElement {
513
512
  const result = await this.getVariantRenderer().dismiss(this);
514
513
  this.lastVariantRenderer = undefined;
515
514
  if (this.lastFocus && this.lastFocus.focus) {
516
- (_a = this.lastFocus) === null || _a === void 0 ? void 0 : _a.focus();
515
+ (_a = this.lastFocus) === null || _a === void 0 ? void 0 : _a.focus({ preventScroll: true });
517
516
  }
518
517
  return result;
519
518
  }
@@ -588,13 +587,9 @@ const Popup = /*@__PURE__*/ proxyCustomElement(class Popup extends HTMLElement {
588
587
  }
589
588
  }
590
589
  focusFirstDescendant() {
591
- const { el } = this;
592
- const firstInput = el.querySelector(focusableQueryString);
593
- if (firstInput) {
594
- firstInput.focus();
595
- }
596
- else {
597
- el.focus();
590
+ const contentEl = this.contentEl;
591
+ if (contentEl) {
592
+ contentEl.focus({ preventScroll: true });
598
593
  }
599
594
  }
600
595
  /**
@@ -609,7 +604,7 @@ const Popup = /*@__PURE__*/ proxyCustomElement(class Popup extends HTMLElement {
609
604
  const innerBlock = block.element('inner');
610
605
  const innerHeadBlock = innerBlock.element('head');
611
606
  const innerContentBlock = innerBlock.element('content');
612
- return (h(Host, { key: '42bff759d5df91ba386b0fef2c115534177b035f', class: Object.assign({}, block.class()), role: "dialog", "aria-hidden": `${this.presented !== true}`, "aria-modal": `${this.presented === true}`, "aria-presented": `${this.presented === true}`, "aria-labelledby": `${this.popupId}-heading` }, h("div", { key: 'c66537aede2f557a3ae4e368226f14251177e27a', class: Object.assign({}, backdropBlock.class()), ref: backdropEl => (this.backdropEl = backdropEl) }), h("div", { key: 'e93bf6f131e859126f4861deac80c761bae28d66', class: Object.assign(Object.assign({}, containerBlock.class()), containerBlock.modifier(`variant-${this.activeVariant}`).class()), ref: containerEl => (this.containerEl = containerEl), style: { minWidth: this.minContainerWidth } }, h("div", { key: 'fcffcfe49ec94f2e7843fdb11428efd2cf6124c5', class: Object.assign({}, arrowBlock.class()), ref: arrowEl => (this.arrowEl = arrowEl) }), h("bal-stack", { key: '182834344790fb5cb8018a3841b0be36f67132b0', layout: "vertical", px: this.activeVariant === 'popover' ? 'medium' : 'none', py: "medium", class: Object.assign({}, innerBlock.class()) }, this.label ? (h("bal-stack", { space: "auto", class: Object.assign({}, innerHeadBlock.class()) }, h("bal-heading", { "data-test": "bal-popup-label", level: "span", "visual-level": "large", id: `${this.popupId}-heading` }, this.label), this.activeClosable ? (h("bal-close", { "data-test": "bal-popup-close", tabindex: -1, onClick: () => this.onCloseClick() })) : (''))) : (''), h("div", { key: '1dca8c0e7d328b04cb73168ddb43ca111f4090f2', class: Object.assign({}, innerContentBlock.class()), ref: contentEl => (this.contentEl = contentEl), "data-test": "bal-popup-content" }, h("slot", { key: '1675cc733ec0eea4b56e28981a51570528947082' }))))));
607
+ return (h(Host, { key: '4ad1ef7a26405280b668dc964e36e45b12523830', class: Object.assign({}, block.class()), role: "dialog", "aria-hidden": `${this.presented !== true}`, "aria-modal": `${this.presented === true}`, "aria-presented": `${this.presented === true}`, "aria-labelledby": `${this.popupId}-heading` }, h("div", { key: 'd9c7aa58b64ba58bdd73195b4c988698ddac0141', class: Object.assign({}, backdropBlock.class()), ref: backdropEl => (this.backdropEl = backdropEl) }), h("div", { key: 'e1aa90db041a2960e23aae4b4d49c89ebfaa777b', class: Object.assign(Object.assign({}, containerBlock.class()), containerBlock.modifier(`variant-${this.activeVariant}`).class()), ref: containerEl => (this.containerEl = containerEl), style: { minWidth: this.minContainerWidth } }, h("div", { key: 'b2bccd97aad258a0a3246293a8250be6207f0368', class: Object.assign({}, arrowBlock.class()), ref: arrowEl => (this.arrowEl = arrowEl) }), h("bal-stack", { key: 'f44ec75a2d463fd81f46c0c1d2175907747c4346', layout: "vertical", px: this.activeVariant === 'popover' ? 'medium' : 'none', py: "medium", class: Object.assign({}, innerBlock.class()) }, this.label ? (h("bal-stack", { space: "auto", class: Object.assign({}, innerHeadBlock.class()) }, h("bal-heading", { "data-test": "bal-popup-label", level: "span", "visual-level": "large", id: `${this.popupId}-heading` }, this.label), this.activeClosable ? (h("bal-close", { "data-test": "bal-popup-close", tabindex: -1, onClick: () => this.onCloseClick() })) : (''))) : (''), h("div", { key: 'bebd41411dcc4960ee1e0ab9e08a6494ede835bd', class: Object.assign({}, innerContentBlock.class()), ref: contentEl => (this.contentEl = contentEl), "data-test": "bal-popup-content", tabindex: "-1" }, h("slot", { key: '3f06f9d1303b4a785c358954fe79744f4daa019c' }))))));
613
608
  }
614
609
  get el() { return this; }
615
610
  static get watchers() { return {
@@ -224,6 +224,7 @@ const RadioGroup = /*@__PURE__*/ proxyCustomElement(class RadioGroup extends HTM
224
224
  // space bar on top of a selected radio
225
225
  if (['Space'].includes(ev.code)) {
226
226
  this.value = this.allowEmptySelection && this.value !== undefined ? undefined : current.value;
227
+ this.balChange.emit(this.value);
227
228
  // Prevent browsers from jumping
228
229
  // to the bottom of the screen
229
230
  ev.preventDefault();