@baloise/ds-core 16.5.0 → 16.5.1-nightly.20240925

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 (314) hide show
  1. package/components/all.d.ts +2 -0
  2. package/components/all.js +3 -0
  3. package/components/bal-app.js +1 -85
  4. package/components/bal-app2.js +87 -0
  5. package/components/bal-doc-app.d.ts +11 -0
  6. package/components/bal-doc-app.js +260 -0
  7. package/components/bal-field.js +3 -0
  8. package/components/bal-input-date2.js +2 -3
  9. package/components/bal-input.js +1 -1
  10. package/components/bal-number-input.js +1 -1
  11. package/components/bal-segment-item.js +64 -47
  12. package/components/bal-segment.js +61 -17
  13. package/components/bal-textarea.js +1 -1
  14. package/components/bal-time-input.js +1 -1
  15. package/components/form-input.js +14 -1
  16. package/components/index.js +5 -289
  17. package/components/initialize.js +288 -0
  18. package/components/tokens.esm.js +1 -1
  19. package/dist/baloise-design-system/baloise-design-system.esm.js +1 -1
  20. package/dist/baloise-design-system/baloise-design-system.js +1 -1
  21. package/dist/baloise-design-system/index.esm.js +1 -1
  22. package/dist/baloise-design-system/{p-dd30661db2.system.entry.js → p-00014af866.system.entry.js} +1 -1
  23. package/dist/baloise-design-system/{p-fb0af77320.system.entry.js → p-0c2cce5882.system.entry.js} +1 -1
  24. package/dist/baloise-design-system/p-0e94492c.js +1 -0
  25. package/dist/baloise-design-system/{p-9bb8778cdc.system.entry.js → p-10c13a369c.system.entry.js} +1 -1
  26. package/dist/baloise-design-system/{p-3befc6f9.system.js → p-14ec0aa7.system.js} +1 -1
  27. package/dist/baloise-design-system/p-1509eaa7.system.js +1 -1
  28. package/dist/baloise-design-system/p-15c5fe4d6d.system.entry.js +1 -0
  29. package/dist/baloise-design-system/{p-cda868a6a5.entry.js → p-16b50b08e4.entry.js} +1 -1
  30. package/dist/baloise-design-system/p-19e56e1a7a.entry.js +1 -0
  31. package/dist/baloise-design-system/{p-0530e008e9.system.entry.js → p-2aa4f352d9.system.entry.js} +1 -1
  32. package/dist/baloise-design-system/{p-8080a1192c.system.entry.js → p-2e498736fc.system.entry.js} +1 -1
  33. package/dist/baloise-design-system/{p-6e3a79cce0.system.entry.js → p-2e8508812d.system.entry.js} +1 -1
  34. package/dist/baloise-design-system/{p-f798011b48.system.entry.js → p-2ea7550d1b.system.entry.js} +1 -1
  35. package/dist/baloise-design-system/{p-445d2e1c70.system.entry.js → p-2fa39e7e81.system.entry.js} +1 -1
  36. package/dist/baloise-design-system/p-360068a4.system.js +1 -0
  37. package/dist/baloise-design-system/{p-4809d5c4.system.js → p-363a853f.system.js} +1 -1
  38. package/dist/baloise-design-system/{p-e187b9de.system.js → p-368bd6ac.system.js} +1 -1
  39. package/dist/baloise-design-system/p-3d8781f2.js +1 -0
  40. package/dist/baloise-design-system/{p-88eb14fd.system.js → p-3fbdf189.system.js} +1 -1
  41. package/dist/baloise-design-system/p-44046fa2e8.entry.js +1 -0
  42. package/dist/baloise-design-system/p-449ffc7a7e.entry.js +1 -0
  43. package/dist/baloise-design-system/{p-0ab43941ba.entry.js → p-462b20f382.entry.js} +1 -1
  44. package/dist/baloise-design-system/{p-f5940253.js → p-4ae121b6.js} +1 -1
  45. package/dist/baloise-design-system/{p-5fae3f5478.entry.js → p-4d6d5948b3.entry.js} +1 -1
  46. package/dist/baloise-design-system/p-4f083c5352.entry.js +1 -0
  47. package/dist/baloise-design-system/p-4ff656dd48.entry.js +1 -0
  48. package/dist/baloise-design-system/p-54f81c32.js +1 -1
  49. package/dist/baloise-design-system/{p-7c586fb89f.entry.js → p-59bc74c896.entry.js} +1 -1
  50. package/dist/baloise-design-system/{p-e137e273b7.system.entry.js → p-5b5d1c626d.system.entry.js} +1 -1
  51. package/dist/baloise-design-system/{p-71588db3.system.js → p-5c0b0099.system.js} +1 -1
  52. package/dist/baloise-design-system/{p-d3fabdb142.system.entry.js → p-60e74d3515.system.entry.js} +1 -1
  53. package/dist/baloise-design-system/p-611719719f.system.entry.js +1 -0
  54. package/dist/baloise-design-system/p-6139ff78d7.system.entry.js +1 -0
  55. package/dist/baloise-design-system/{p-47a8ad4d7a.system.entry.js → p-619afa0ba5.system.entry.js} +1 -1
  56. package/dist/baloise-design-system/{p-4192ad4350.entry.js → p-63c685b62d.entry.js} +1 -1
  57. package/dist/baloise-design-system/{p-77350b27fc.entry.js → p-648814edf8.entry.js} +1 -1
  58. package/dist/baloise-design-system/{p-2905abdfb8.entry.js → p-663cc3242c.entry.js} +1 -1
  59. package/dist/baloise-design-system/p-6d1b6215.js +1 -0
  60. package/dist/baloise-design-system/{p-2db4ff4c5b.entry.js → p-6f18ca5500.entry.js} +1 -1
  61. package/dist/baloise-design-system/{p-305cffd8aa.entry.js → p-70c29fd28f.entry.js} +1 -1
  62. package/dist/baloise-design-system/p-7291766c.system.js +1 -0
  63. package/dist/baloise-design-system/{p-12bb6ea3e7.system.entry.js → p-760797ae02.system.entry.js} +1 -1
  64. package/dist/baloise-design-system/{p-0fb6cbda.system.js → p-78f84ec3.system.js} +1 -1
  65. package/dist/baloise-design-system/p-7957c3c0.system.js +1 -0
  66. package/dist/baloise-design-system/{p-df40272425.system.entry.js → p-7b39615b3a.system.entry.js} +1 -1
  67. package/dist/baloise-design-system/p-7cc52e4a3b.system.entry.js +1 -0
  68. package/dist/baloise-design-system/{p-8e17b76e7c.system.entry.js → p-7d2709b193.system.entry.js} +1 -1
  69. package/dist/baloise-design-system/{p-39bf8adcde.entry.js → p-7e74fbfd97.entry.js} +1 -1
  70. package/dist/baloise-design-system/{p-a7e5ee75e2.entry.js → p-82333c3ce3.entry.js} +1 -1
  71. package/dist/baloise-design-system/{p-bcb892a723.system.entry.js → p-82afff07ac.system.entry.js} +1 -1
  72. package/dist/baloise-design-system/{p-488c4a8ce1.entry.js → p-83c70a6b53.entry.js} +1 -1
  73. package/dist/baloise-design-system/{p-380aabd5bc.entry.js → p-8472cf7e9a.entry.js} +1 -1
  74. package/dist/baloise-design-system/{p-190b5cd469.entry.js → p-86fab0b8d8.entry.js} +1 -1
  75. package/dist/baloise-design-system/{p-9658f4a66f.entry.js → p-898f7862e4.entry.js} +1 -1
  76. package/dist/baloise-design-system/{p-f819d47031.entry.js → p-8f548a7f77.entry.js} +1 -1
  77. package/dist/baloise-design-system/p-8f89168b60.system.entry.js +1 -0
  78. package/dist/baloise-design-system/{p-3818fa189f.system.entry.js → p-959fc8c170.system.entry.js} +1 -1
  79. package/dist/baloise-design-system/{p-23b7426d09.system.entry.js → p-967483741b.system.entry.js} +1 -1
  80. package/dist/baloise-design-system/{p-ecab0d67d5.entry.js → p-9f5eda0e22.entry.js} +1 -1
  81. package/dist/baloise-design-system/{p-b0c22ff9d1.entry.js → p-9fea6e7133.entry.js} +1 -1
  82. package/dist/baloise-design-system/{p-e1ccb7023c.system.entry.js → p-a48ab02011.system.entry.js} +1 -1
  83. package/dist/baloise-design-system/{p-c0153f8edf.system.entry.js → p-ac6d5570d8.system.entry.js} +1 -1
  84. package/dist/baloise-design-system/{p-bee13e834e.entry.js → p-b4c5b5e53f.entry.js} +1 -1
  85. package/dist/baloise-design-system/{p-4fe64c3ec6.system.entry.js → p-b5d67473a1.system.entry.js} +1 -1
  86. package/dist/baloise-design-system/{p-853fe65e14.system.entry.js → p-b7ceb9e59e.system.entry.js} +1 -1
  87. package/dist/baloise-design-system/{p-caec1f9e.js → p-b7cef472.js} +1 -1
  88. package/dist/baloise-design-system/{p-8f77c423ad.entry.js → p-be366c8428.entry.js} +1 -1
  89. package/dist/baloise-design-system/{p-cafe624e35.entry.js → p-c00e0f64c8.entry.js} +1 -1
  90. package/dist/baloise-design-system/{p-407ffd9c55.entry.js → p-c3ca31b868.entry.js} +1 -1
  91. package/dist/baloise-design-system/{p-6c2bf02eb3.entry.js → p-c442bb2db2.entry.js} +1 -1
  92. package/dist/baloise-design-system/{p-a5ee486a2b.entry.js → p-c4e11d3813.entry.js} +1 -1
  93. package/dist/baloise-design-system/{p-420d88737c.entry.js → p-c539ee8edf.entry.js} +1 -1
  94. package/dist/baloise-design-system/{p-7c7e593e07.entry.js → p-c7338c255f.entry.js} +1 -1
  95. package/dist/baloise-design-system/{p-f03e63bd1e.system.entry.js → p-c997c763db.system.entry.js} +1 -1
  96. package/dist/baloise-design-system/{p-09ea5913.js → p-d40ef683.js} +1 -1
  97. package/dist/baloise-design-system/{p-0639833837.system.entry.js → p-d800ecde35.system.entry.js} +1 -1
  98. package/dist/baloise-design-system/{p-2cd1f1dedb.entry.js → p-daa9b20773.entry.js} +1 -1
  99. package/dist/baloise-design-system/{p-f62d0ccdd1.system.entry.js → p-db1a8f2ac5.system.entry.js} +1 -1
  100. package/dist/baloise-design-system/{p-ad9a7657.js → p-de08fd27.js} +1 -1
  101. package/dist/baloise-design-system/{p-d1b16f9cc2.entry.js → p-dec8453a4d.entry.js} +1 -1
  102. package/dist/baloise-design-system/p-e45eb6121d.system.entry.js +1 -0
  103. package/dist/baloise-design-system/{p-ef916aafa5.entry.js → p-e6162b978e.entry.js} +1 -1
  104. package/dist/baloise-design-system/{p-d059465399.system.entry.js → p-e7bcca66c5.system.entry.js} +1 -1
  105. package/dist/baloise-design-system/p-e833841822.entry.js +1 -0
  106. package/dist/baloise-design-system/p-e8ffddeb.js +1 -0
  107. package/dist/baloise-design-system/p-ef32ca0961.system.entry.js +1 -0
  108. package/dist/baloise-design-system/{p-1659bb968c.system.entry.js → p-f00b5e9fa4.system.entry.js} +1 -1
  109. package/dist/baloise-design-system/p-f22c8e0c59.entry.js +1 -0
  110. package/dist/baloise-design-system/{p-3801afd625.entry.js → p-f23227beaa.entry.js} +1 -1
  111. package/dist/baloise-design-system/{p-9f54cac588.system.entry.js → p-f4c50948c5.system.entry.js} +1 -1
  112. package/dist/baloise-design-system/{p-013b4c72.system.js → p-f959646a.system.js} +1 -1
  113. package/dist/baloise-design-system/{p-b8251b8f68.system.entry.js → p-fad86a959d.system.entry.js} +1 -1
  114. package/dist/baloise-design-system/{p-372474e989.system.entry.js → p-fdbbd30696.system.entry.js} +1 -1
  115. package/dist/baloise-design-system/{p-d7d6937d59.system.entry.js → p-fef38d0574.system.entry.js} +1 -1
  116. package/dist/cjs/app-globals-5fd73c0c.js +7 -0
  117. package/dist/cjs/bal-accordion_4.cjs.entry.js +1 -1
  118. package/dist/cjs/bal-carousel_2.cjs.entry.js +4 -4
  119. package/dist/cjs/bal-checkbox-button.cjs.entry.js +1 -1
  120. package/dist/cjs/bal-checkbox_2.cjs.entry.js +1 -1
  121. package/dist/cjs/bal-content.cjs.entry.js +56 -0
  122. package/dist/cjs/bal-date-calendar-cell.cjs.entry.js +1 -1
  123. package/dist/cjs/bal-date-calendar_2.cjs.entry.js +2 -3
  124. package/dist/cjs/bal-date.cjs.entry.js +1 -1
  125. package/dist/cjs/bal-datepicker.cjs.entry.js +4 -4
  126. package/dist/cjs/bal-doc-app.cjs.entry.js +231 -0
  127. package/dist/cjs/bal-dropdown.cjs.entry.js +1 -1
  128. package/dist/cjs/bal-field_5.cjs.entry.js +3 -0
  129. package/dist/cjs/bal-file-upload.cjs.entry.js +1 -1
  130. package/dist/cjs/bal-footer.cjs.entry.js +1 -1
  131. package/dist/cjs/{bal-popover_2.cjs.entry.js → bal-hint_5.cjs.entry.js} +172 -3
  132. package/dist/cjs/bal-input-slider.cjs.entry.js +1 -1
  133. package/dist/cjs/bal-input-stepper.cjs.entry.js +1 -1
  134. package/dist/cjs/bal-input.cjs.entry.js +1 -1
  135. package/dist/cjs/{bal-content_2.cjs.entry.js → bal-label.cjs.entry.js} +0 -46
  136. package/dist/cjs/bal-list_8.cjs.entry.js +3 -3
  137. package/dist/cjs/bal-logo.cjs.entry.js +3 -3
  138. package/dist/cjs/bal-nav_8.cjs.entry.js +3 -3
  139. package/dist/cjs/bal-navbar_5.cjs.entry.js +3 -3
  140. package/dist/cjs/bal-number-input.cjs.entry.js +1 -1
  141. package/dist/cjs/bal-option_2.cjs.entry.js +1 -1
  142. package/dist/cjs/bal-pagination.cjs.entry.js +3 -3
  143. package/dist/cjs/bal-popup.cjs.entry.js +1 -1
  144. package/dist/cjs/bal-progress-bar.cjs.entry.js +5 -5
  145. package/dist/cjs/bal-radio-button.cjs.entry.js +1 -1
  146. package/dist/cjs/bal-radio_2.cjs.entry.js +1 -1
  147. package/dist/cjs/bal-segment_2.cjs.entry.js +516 -0
  148. package/dist/cjs/bal-select_2.cjs.entry.js +1 -1
  149. package/dist/cjs/bal-shape.cjs.entry.js +1 -1
  150. package/dist/cjs/bal-steps.cjs.entry.js +4 -4
  151. package/dist/cjs/bal-tab-item_2.cjs.entry.js +4 -4
  152. package/dist/cjs/bal-textarea.cjs.entry.js +1 -1
  153. package/dist/cjs/bal-time-input.cjs.entry.js +1 -1
  154. package/dist/cjs/baloise-design-system.cjs.js +3 -2
  155. package/dist/cjs/{breakpoints.decorator-a4a5bd7a.js → breakpoints.decorator-b8f9d4dd.js} +1 -1
  156. package/dist/cjs/{breakpoints.subject-fbf85930.js → breakpoints.subject-c6237eb5.js} +1 -1
  157. package/dist/cjs/{form-input-134c5116.js → form-input-b61eb894.js} +14 -0
  158. package/dist/cjs/{app-globals-ae3a8623.js → global-2562a984.js} +2 -4
  159. package/dist/cjs/index.cjs.js +2 -2
  160. package/dist/cjs/initialize-2a19d091.js +1 -1
  161. package/dist/cjs/loader.cjs.js +3 -2
  162. package/dist/cjs/{tokens.esm-aa4bb7f7.js → tokens.esm-67b93a2c.js} +1 -1
  163. package/dist/cjs/{window-resize.decorator-c7a521b0.js → window-resize.decorator-b3aacf9e.js} +1 -1
  164. package/dist/collection/collection-manifest.json +17 -14
  165. package/dist/collection/components/bal-field/bal-field.js +3 -0
  166. package/dist/collection/components/bal-segment/bal-segment-item/bal-segment-item.js +92 -69
  167. package/dist/collection/components/bal-segment/bal-segment.js +115 -19
  168. package/dist/collection/components/docs/bal-doc-app/bal-doc-app.css +1 -0
  169. package/dist/collection/components/docs/bal-doc-app/bal-doc-app.js +229 -0
  170. package/dist/collection/utils/constants/version.constant.js +1 -1
  171. package/dist/collection/utils/form-input.js +13 -0
  172. package/dist/collection/utils/form-input.spec.js +30 -0
  173. package/dist/collection/utils/mask/context/mask-context.js +2 -2
  174. package/dist/esm/app-globals-970bab17.js +5 -0
  175. package/dist/esm/bal-accordion_4.entry.js +2 -2
  176. package/dist/esm/bal-carousel_2.entry.js +4 -4
  177. package/dist/esm/bal-checkbox-button.entry.js +1 -1
  178. package/dist/esm/bal-checkbox_2.entry.js +2 -2
  179. package/dist/esm/bal-content.entry.js +52 -0
  180. package/dist/esm/bal-date-calendar-cell.entry.js +1 -1
  181. package/dist/esm/bal-date-calendar_2.entry.js +4 -5
  182. package/dist/esm/bal-date.entry.js +3 -3
  183. package/dist/esm/bal-datepicker.entry.js +5 -5
  184. package/dist/esm/bal-doc-app.entry.js +227 -0
  185. package/dist/esm/bal-dropdown.entry.js +2 -2
  186. package/dist/esm/bal-field_5.entry.js +3 -0
  187. package/dist/esm/bal-file-upload.entry.js +2 -2
  188. package/dist/esm/bal-footer.entry.js +2 -2
  189. package/dist/esm/{bal-popover_2.entry.js → bal-hint_5.entry.js} +171 -5
  190. package/dist/esm/bal-input-slider.entry.js +1 -1
  191. package/dist/esm/bal-input-stepper.entry.js +2 -2
  192. package/dist/esm/bal-input.entry.js +1 -1
  193. package/dist/esm/{bal-content_2.entry.js → bal-label.entry.js} +1 -46
  194. package/dist/esm/bal-list_8.entry.js +4 -4
  195. package/dist/esm/bal-logo.entry.js +3 -3
  196. package/dist/esm/bal-nav_8.entry.js +3 -3
  197. package/dist/esm/bal-navbar_5.entry.js +3 -3
  198. package/dist/esm/bal-number-input.entry.js +2 -2
  199. package/dist/esm/bal-option_2.entry.js +1 -1
  200. package/dist/esm/bal-pagination.entry.js +3 -3
  201. package/dist/esm/bal-popup.entry.js +2 -2
  202. package/dist/esm/bal-progress-bar.entry.js +5 -5
  203. package/dist/esm/bal-radio-button.entry.js +1 -1
  204. package/dist/esm/bal-radio_2.entry.js +2 -2
  205. package/dist/esm/bal-segment_2.entry.js +511 -0
  206. package/dist/esm/bal-select_2.entry.js +2 -2
  207. package/dist/esm/bal-shape.entry.js +1 -1
  208. package/dist/esm/bal-steps.entry.js +5 -5
  209. package/dist/esm/bal-tab-item_2.entry.js +5 -5
  210. package/dist/esm/bal-textarea.entry.js +1 -1
  211. package/dist/esm/bal-time-input.entry.js +1 -1
  212. package/dist/esm/baloise-design-system.js +3 -2
  213. package/dist/esm/{breakpoints.decorator-f2ac9963.js → breakpoints.decorator-f3c82221.js} +1 -1
  214. package/dist/esm/{breakpoints.subject-3605e395.js → breakpoints.subject-011cd9e8.js} +1 -1
  215. package/dist/esm/{date-aba2d404.js → date-6e8f5617.js} +1 -1
  216. package/dist/esm/{form-input-28a08ec5.js → form-input-a8fdaaef.js} +14 -1
  217. package/dist/esm/{app-globals-b0dd0fc4.js → global-63f4bcec.js} +2 -4
  218. package/dist/esm/{index.esm-76abd8e3.js → index.esm-cc299511.js} +1 -1
  219. package/dist/esm/index.js +5 -5
  220. package/dist/esm/initialize-e216cfe4.js +1 -1
  221. package/dist/esm/loader.js +3 -2
  222. package/dist/esm/{tokens.esm-337782ae.js → tokens.esm-a3a35692.js} +1 -1
  223. package/dist/esm/{window-resize.decorator-d5198831.js → window-resize.decorator-481620ab.js} +1 -1
  224. package/dist/esm-es5/app-globals-970bab17.js +1 -0
  225. package/dist/esm-es5/bal-accordion_4.entry.js +1 -1
  226. package/dist/esm-es5/bal-carousel_2.entry.js +1 -1
  227. package/dist/esm-es5/bal-checkbox-button.entry.js +1 -1
  228. package/dist/esm-es5/bal-checkbox_2.entry.js +1 -1
  229. package/dist/esm-es5/bal-content.entry.js +1 -0
  230. package/dist/esm-es5/bal-date-calendar-cell.entry.js +1 -1
  231. package/dist/esm-es5/bal-date-calendar_2.entry.js +1 -1
  232. package/dist/esm-es5/bal-date.entry.js +1 -1
  233. package/dist/esm-es5/bal-datepicker.entry.js +1 -1
  234. package/dist/esm-es5/bal-doc-app.entry.js +1 -0
  235. package/dist/esm-es5/bal-dropdown.entry.js +1 -1
  236. package/dist/esm-es5/bal-field_5.entry.js +1 -1
  237. package/dist/esm-es5/bal-file-upload.entry.js +1 -1
  238. package/dist/esm-es5/bal-footer.entry.js +1 -1
  239. package/dist/esm-es5/bal-hint_5.entry.js +1 -0
  240. package/dist/esm-es5/bal-input-slider.entry.js +1 -1
  241. package/dist/esm-es5/bal-input-stepper.entry.js +1 -1
  242. package/dist/esm-es5/bal-input.entry.js +1 -1
  243. package/dist/esm-es5/bal-label.entry.js +1 -0
  244. package/dist/esm-es5/bal-list_8.entry.js +1 -1
  245. package/dist/esm-es5/bal-logo.entry.js +1 -1
  246. package/dist/esm-es5/bal-nav_8.entry.js +1 -1
  247. package/dist/esm-es5/bal-navbar_5.entry.js +1 -1
  248. package/dist/esm-es5/bal-number-input.entry.js +1 -1
  249. package/dist/esm-es5/bal-option_2.entry.js +1 -1
  250. package/dist/esm-es5/bal-pagination.entry.js +1 -1
  251. package/dist/esm-es5/bal-popup.entry.js +1 -1
  252. package/dist/esm-es5/bal-progress-bar.entry.js +1 -1
  253. package/dist/esm-es5/bal-radio-button.entry.js +1 -1
  254. package/dist/esm-es5/bal-radio_2.entry.js +1 -1
  255. package/dist/esm-es5/bal-segment_2.entry.js +1 -0
  256. package/dist/esm-es5/bal-select_2.entry.js +1 -1
  257. package/dist/esm-es5/bal-shape.entry.js +1 -1
  258. package/dist/esm-es5/bal-steps.entry.js +1 -1
  259. package/dist/esm-es5/bal-tab-item_2.entry.js +1 -1
  260. package/dist/esm-es5/bal-textarea.entry.js +1 -1
  261. package/dist/esm-es5/bal-time-input.entry.js +1 -1
  262. package/dist/esm-es5/baloise-design-system.js +1 -1
  263. package/dist/esm-es5/{breakpoints.decorator-f2ac9963.js → breakpoints.decorator-f3c82221.js} +1 -1
  264. package/dist/esm-es5/{breakpoints.subject-3605e395.js → breakpoints.subject-011cd9e8.js} +1 -1
  265. package/dist/esm-es5/{date-aba2d404.js → date-6e8f5617.js} +1 -1
  266. package/dist/esm-es5/{form-input-28a08ec5.js → form-input-a8fdaaef.js} +1 -1
  267. package/dist/esm-es5/global-63f4bcec.js +1 -0
  268. package/dist/esm-es5/{index.esm-76abd8e3.js → index.esm-cc299511.js} +1 -1
  269. package/dist/esm-es5/index.js +1 -1
  270. package/dist/esm-es5/initialize-e216cfe4.js +1 -1
  271. package/dist/esm-es5/loader.js +1 -1
  272. package/dist/esm-es5/{window-resize.decorator-d5198831.js → window-resize.decorator-481620ab.js} +1 -1
  273. package/dist/types/components/bal-segment/bal-segment-item/bal-segment-item.d.ts +17 -13
  274. package/dist/types/components/bal-segment/bal-segment.d.ts +22 -3
  275. package/dist/types/components/bal-segment/bal-segment.interfaces.d.ts +2 -0
  276. package/dist/types/components/docs/bal-doc-app/bal-doc-app.d.ts +21 -0
  277. package/dist/types/components.d.ts +44 -19
  278. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/icons/src/index.d.ts +81 -0
  279. package/dist/types/utils/form-input.d.ts +3 -0
  280. package/package.json +7 -7
  281. package/dist/baloise-design-system/p-265f9d51c9.system.entry.js +0 -1
  282. package/dist/baloise-design-system/p-370575b8cb.system.entry.js +0 -1
  283. package/dist/baloise-design-system/p-3c25811c44.entry.js +0 -1
  284. package/dist/baloise-design-system/p-3eb68d7e.js +0 -1
  285. package/dist/baloise-design-system/p-487816db33.system.entry.js +0 -1
  286. package/dist/baloise-design-system/p-53e98a0f71.entry.js +0 -1
  287. package/dist/baloise-design-system/p-547aae9610.entry.js +0 -1
  288. package/dist/baloise-design-system/p-5db0544e97.system.entry.js +0 -1
  289. package/dist/baloise-design-system/p-8de1a12660.entry.js +0 -1
  290. package/dist/baloise-design-system/p-a507ff25cb.system.entry.js +0 -1
  291. package/dist/baloise-design-system/p-b8f085f7b5.system.entry.js +0 -1
  292. package/dist/baloise-design-system/p-bcca1ed3.system.js +0 -1
  293. package/dist/baloise-design-system/p-c1c17f8edc.system.entry.js +0 -1
  294. package/dist/baloise-design-system/p-ced37553e2.entry.js +0 -1
  295. package/dist/baloise-design-system/p-d2ee9b0a.system.js +0 -1
  296. package/dist/baloise-design-system/p-d9d229a026.entry.js +0 -1
  297. package/dist/baloise-design-system/p-e0384bfc0c.entry.js +0 -1
  298. package/dist/baloise-design-system/p-e75ccb92.js +0 -1
  299. package/dist/baloise-design-system/p-e78a6409.js +0 -1
  300. package/dist/cjs/bal-hint_3.cjs.entry.js +0 -186
  301. package/dist/cjs/bal-segment-item.cjs.entry.js +0 -156
  302. package/dist/cjs/bal-segment.cjs.entry.js +0 -319
  303. package/dist/esm/bal-hint_3.entry.js +0 -180
  304. package/dist/esm/bal-segment-item.entry.js +0 -152
  305. package/dist/esm/bal-segment.entry.js +0 -315
  306. package/dist/esm-es5/app-globals-b0dd0fc4.js +0 -1
  307. package/dist/esm-es5/bal-content_2.entry.js +0 -1
  308. package/dist/esm-es5/bal-hint_3.entry.js +0 -1
  309. package/dist/esm-es5/bal-popover_2.entry.js +0 -1
  310. package/dist/esm-es5/bal-segment-item.entry.js +0 -1
  311. package/dist/esm-es5/bal-segment.entry.js +0 -1
  312. /package/dist/baloise-design-system/{p-36074466.system.js → p-270f14cb.system.js} +0 -0
  313. /package/dist/baloise-design-system/{p-e1994e2c.js → p-a980b02e.js} +0 -0
  314. /package/dist/esm-es5/{tokens.esm-337782ae.js → tokens.esm-a3a35692.js} +0 -0
@@ -29,6 +29,7 @@ const Field = /*@__PURE__*/ proxyCustomElement(class Field extends HTMLElement {
29
29
  'bal-input-slider',
30
30
  'bal-file-upload',
31
31
  'bal-dropdown',
32
+ 'bal-segment',
32
33
  ];
33
34
  this.formElements = [...this.formControlElement, 'bal-field-label', 'bal-field-message'];
34
35
  this.isDirectChild = (el) => {
@@ -118,6 +119,8 @@ const Field = /*@__PURE__*/ proxyCustomElement(class Field extends HTMLElement {
118
119
  'bal-field-control bal-dropdown',
119
120
  'bal-field-control bal-checkbox',
120
121
  'bal-field-control bal-radio',
122
+ 'bal-field-control bal-segment-item',
123
+ 'bal-field-control bal-segment',
121
124
  'bal-field-control bal-checkbox-group',
122
125
  'bal-field-control bal-radio-group',
123
126
  'bal-field-control bal-number-input',
@@ -4,7 +4,7 @@ import { B as BEM } from './bem.js';
4
4
  import { L as Logger } from './log.js';
5
5
  import { i as inheritAttributes } from './attributes.js';
6
6
  import { o as hasParent } from './helpers.js';
7
- import { i as inputSetFocus, a as inputSetBlur } from './form-input.js';
7
+ import { h as hasValueChanged, i as inputSetFocus, a as inputSetBlur } from './form-input.js';
8
8
  import { d as defaultBalAriaForm } from './form.js';
9
9
  import { d as dateSeparator } from './index.esm.js';
10
10
  import { N as NUMBER_KEYS } from './keys.constant.js';
@@ -128,8 +128,7 @@ class MaskContext {
128
128
  this._options.component.balInput.emit(this.value);
129
129
  }
130
130
  if ((eventType === 'change' || eventType === 'blur') && parsedValue !== undefined) {
131
- const valueChanged = this._options.component.value !== parsedValue;
132
- if (valueChanged) {
131
+ if (hasValueChanged(this._options.component.value, parsedValue)) {
133
132
  this._options.component.value = parsedValue;
134
133
  this._options.component.balChange.emit(parsedValue);
135
134
  }
@@ -2,7 +2,7 @@ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/
2
2
  import { _ as __decorate, a as __metadata } from './tslib.es6.js';
3
3
  import { m as debounceEvent } from './helpers.js';
4
4
  import { i as inheritAttributes } from './attributes.js';
5
- import { g as getInputTarget, b as inputHandleFocus, e as inputHandleBlur, f as inputHandleChange, s as stopEventBubbling, h as inputHandleClick, c as inputHandleHostClick, d as inputListenOnClick, j as inputHandleReset, i as inputSetFocus, a as inputSetBlur } from './form-input.js';
5
+ import { g as getInputTarget, b as inputHandleFocus, e as inputHandleBlur, f as inputHandleChange, s as stopEventBubbling, j as inputHandleClick, c as inputHandleHostClick, d as inputListenOnClick, k as inputHandleReset, i as inputSetFocus, a as inputSetBlur } from './form-input.js';
6
6
  import { l as lodash_isnil } from './index2.js';
7
7
  import { i as isCtrlOrCommandKey, A as ACTION_KEYS, N as NUMBER_KEYS } from './keys.constant.js';
8
8
  import { B as BEM } from './bem.js';
@@ -1,6 +1,6 @@
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 { h as inputHandleClick, c as inputHandleHostClick, b as inputHandleFocus, e as inputHandleBlur, f as inputHandleChange, k as getNativeInputValue, l as getUpcomingValue, s as stopEventBubbling, d as inputListenOnClick, j as inputHandleReset, i as inputSetFocus, a as inputSetBlur } from './form-input.js';
3
+ import { j as inputHandleClick, c as inputHandleHostClick, b as inputHandleFocus, e as inputHandleBlur, f as inputHandleChange, l as getNativeInputValue, m as getUpcomingValue, s as stopEventBubbling, d as inputListenOnClick, k as inputHandleReset, i as inputSetFocus, a as inputSetBlur } from './form-input.js';
4
4
  import { m as debounceEvent } from './helpers.js';
5
5
  import { i as inheritAttributes } from './attributes.js';
6
6
  import { y as getDecimalSeparator$1, z as getThousandSeparator$1, x as formatLocaleNumber$1 } from './index.esm.js';
@@ -1,7 +1,8 @@
1
- import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
1
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
2
  import { B as BEM } from './bem.js';
3
3
  import { i as inheritAttributes } from './attributes.js';
4
- import { j as addEventListener, r as removeEventListener, l as raf } from './helpers.js';
4
+ import { j as addEventListener, l as raf, r as removeEventListener } from './helpers.js';
5
+ import { d as defaultBalAriaForm } from './form.js';
5
6
  import { d as defineCustomElement$5 } from './bal-content2.js';
6
7
  import { d as defineCustomElement$4 } from './bal-icon2.js';
7
8
  import { d as defineCustomElement$3 } from './bal-label2.js';
@@ -10,15 +11,15 @@ import { d as defineCustomElement$2 } from './bal-stack2.js';
10
11
  const balSegmentItemCss = ":root{--bal-segment-background:var(--bal-color-grey-2);--bal-segment-background-invalid:var(--bal-color-danger-1);--bal-segment-item-focus-border:var(--bal-color-border-primary);--bal-segment-item-text-color:var(--bal-color-text-primary);--bal-segment-item-text-color-checked:var(--bal-color-text-primary);--bal-segment-item-text-color-checked-hovered:var(--bal-color-text-primary-hovered);--bal-segment-item-text-color-checked-pressed:var(--bal-color-text-primary-pressed);--bal-segment-item-text-color-invalid:var(--bal-color-text-danger);--bal-segment-item-text-color-invalid-hovered:var(--bal-color-text-danger-hovered);--bal-segment-item-text-color-invalid-pressed:var(--bal-color-text-danger-pressed);--bal-segment-item-text-color-disabled:var(--bal-color-text-grey);--bal-segment-item-text-color-disabled-checked:var(--bal-color-text-grey-dark);--bal-segment-item-divider-background:var(--bal-color-grey);--bal-segment-item-divider-background-invalid:var(--bal-color-danger-2);--bal-segment-item-indicator-background:var(--bal-color-purple-2);--bal-segment-item-indicator-background-invalid:var(--bal-color-danger-4);--bal-segment-item-indicator-background-disabled:var(--bal-color-grey-3)}.bal-segment-item{display:block;position:relative;height:auto;text-decoration:none;text-overflow:ellipsis;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;grid-row:1;-webkit-font-kerning:none;font-kerning:none}.bal-segment-item--disabled{cursor:default !important;pointer-events:none !important}.bal-segment-item__button{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-height:2.5rem;min-width:3rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex-positive:1;flex-grow:1;padding-top:.375rem;padding-bottom:.375rem;padding-left:20px;padding-right:20px;outline:none;border-color:rgba(0,0,0,0);border-width:var(--bal-border-width-normal);border-style:solid;border-radius:var(--bal-radius-normal);background:rgba(0,0,0,0);font-size:var(--bal-text-size-normal);font-weight:var(--bal-font-weight-bold);color:var(--bal-segment-item-text-color);overflow:hidden;position:relative;contain:content;pointer-events:none;cursor:pointer;z-index:2}.bal-segment-item__button--vertical{padding-left:.75rem;padding-right:.75rem}.bal-segment-item__button span{font-size:var(--bal-text-size-small);font-weight:var(--bal-font-weight-regular)}.bal-segment-item__button{will-change:color,padding;-webkit-transition:color 160ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 160ms cubic-bezier(0.4, 0, 0.2, 1);-webkit-transition:padding 160ms cubic-bezier(0.4, 0, 0.2, 1);transition:padding 160ms cubic-bezier(0.4, 0, 0.2, 1)}.bal-segment-item:not(.bal-segment-item--checked):not(.bal-segment-item--last):not(.bal-segment-item--before-checked)::after{content:\"\";position:absolute;background:var(--bal-segment-item-divider-background);border-radius:var(--bal-radius-normal)}.bal-segment-item:not(.bal-segment-item--vertical):not(.bal-segment-item--checked):not(.bal-segment-item--last):not(.bal-segment-item--before-checked)::after{top:2px;bottom:2px;right:-1px;width:2px}.bal-segment-item.bal-segment-item--vertical:not(.bal-segment-item--checked):not(.bal-segment-item--last):not(.bal-segment-item--before-checked)::after{left:2px;right:2px;bottom:-1px;height:2px}.bal-segment-item--invalid:not(.bal-segment-item--checked):not(.bal-segment-item--last):not(.bal-segment-item--before-checked)::after{background:var(--bal-segment-item-divider-background-invalid)}.bal-segment-item__indicator{-webkit-transform-origin:left;transform-origin:left;position:absolute;opacity:0;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none;border-radius:var(--bal-radius-normal);background:var(--bal-segment-item-indicator-background);top:0;left:0}.bal-segment-item__indicator--vertical{-webkit-transform-origin:top;transform-origin:top}.bal-segment-item__indicator--invalid{background:var(--bal-segment-item-indicator-background-invalid)}.bal-segment-item__indicator--background{min-width:100%;min-height:100%;-webkit-transform:none;transform:none;pointer-events:none}.bal-segment-item__indicator--animated{will-change:transform,opacity,top,bottom,left,right,min-width,min-heigth;-webkit-transition:min-width 100ms ease,min-height 100ms ease,top 100ms ease,left 100ms ease,bottom 100ms ease,right 100ms ease,-webkit-transform 260ms cubic-bezier(0.4, 0, 0.2, 1);transition:min-width 100ms ease,min-height 100ms ease,top 100ms ease,left 100ms ease,bottom 100ms ease,right 100ms ease,-webkit-transform 260ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 260ms cubic-bezier(0.4, 0, 0.2, 1),min-width 100ms ease,min-height 100ms ease,top 100ms ease,left 100ms ease,bottom 100ms ease,right 100ms ease;transition:transform 260ms cubic-bezier(0.4, 0, 0.2, 1),min-width 100ms ease,min-height 100ms ease,top 100ms ease,left 100ms ease,bottom 100ms ease,right 100ms ease,-webkit-transform 260ms cubic-bezier(0.4, 0, 0.2, 1)}.bal-segment-item__indicator--checked{opacity:1}.bal-segment-item:active .bal-segment-item__indicator{min-width:calc(100% - 4px);min-height:calc(100% - 4px);top:2px !important;bottom:2px !important;left:2px !important;right:2px !important}.bal-segment-item__button__icon{position:absolute !important;opacity:0;width:0 !important;-webkit-transform:translateX(0.1rem);transform:translateX(0.1rem);pointer-events:none !important;cursor:inherit;will-change:transform,opacity}.bal-segment-item__button__icon:not(.bal-segment-item__button__icon--vertical){left:10px}.bal-segment-item__button__icon--vertical{right:10px}.bal-segment-item__button__icon--animated{opacity:1;width:.875rem !important;-webkit-transform:translateX(-4px);transform:translateX(-4px);-webkit-transition:opacity 260ms cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 260ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 260ms cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 260ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 260ms cubic-bezier(0.4, 0, 0.2, 1),transform 260ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 260ms cubic-bezier(0.4, 0, 0.2, 1),transform 260ms cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform 260ms cubic-bezier(0.4, 0, 0.2, 1)}.bal-segment-item__button--checked{color:var(--bal-segment-item-text-color-checked);padding-right:40px}.bal-segment-item__button--checked:not(.bal-segment-item__button--vertical){padding-left:26px;padding-right:12px}@media (hover: hover)and (pointer: fine){.bal-segment-item:not(.bal-segment-item--disabled):hover .bal-segment-item__button:not(.bal-segment-item__button--checked){color:var(--bal-segment-item-text-color-checked-hovered)}}.bal-segment-item:not(.bal-segment-item--disabled):active .bal-segment-item__button:not(.bal-segment-item__button--checked){color:var(--bal-segment-item-text-color-checked-pressed)}.bal-segment--keyboard .bal-segment-item__button:not(.bal-segment-item__button--disabled):focus-visible,.bal-segment--keyboard .bal-segment-item__button--focused:not(.bal-segment-item__button--disabled){border-color:var(--bal-segment-item-focus-border);border-width:var(--bal-border-width-normal);border-style:solid;-webkit-transition:border 300ms ease-in-out;transition:border 300ms ease-in-out}.bal-segment-item.bal-segment-item--invalid:not(.bal-segment-item--disabled) .bal-segment-item__button:not(.bal-segment-item__button--checked){color:var(--bal-segment-item-text-color-invalid)}@media (hover: hover)and (pointer: fine){.bal-segment-item.bal-segment-item--invalid:not(.bal-segment-item--disabled):hover .bal-segment-item__button:not(.bal-segment-item__button--checked){color:var(--bal-segment-item-text-color-invalid-hovered)}}.bal-segment-item.bal-segment-item--invalid:not(.bal-segment-item--disabled):active .bal-segment-item__button:not(.bal-segment-item__button--checked){color:var(--bal-segment-item-text-color-invalid-pressed)}.bal-segment-item__button--invalid.bal-segment-item__button--checked{color:var(--bal-color-text-white)}.bal-segment-item__button--disabled{background:rgba(0,0,0,0);color:var(--bal-segment-item-text-color-disabled)}.bal-segment-item__button--disabled.bal-segment-item__button--checked{background:var(--bal-segment-item-indicator-background-disabled);color:var(--bal-segment-item-text-color-disabled-checked)}.bal-segment-item__button__slot--hidden{display:none !important}";
11
12
  const BalSegmentItemStyle0 = balSegmentItemCss;
12
13
 
13
- let ids = 0;
14
+ let SegmentItemIds = 0;
14
15
  const SegmentItem = /*@__PURE__*/ proxyCustomElement(class SegmentItem extends HTMLElement {
15
16
  constructor() {
16
17
  super();
17
18
  this.__registerHost();
18
- this.balBlur = createEvent(this, "balBlur", 7);
19
19
  this.segmentEl = null;
20
20
  this.inheritedAttributes = {};
21
- this.id = ids++;
21
+ this.internalId = SegmentItemIds++;
22
+ this.inputId = `bal-si-${this.internalId}`;
22
23
  this.updateVertical = (ev) => {
23
24
  this.isVertical = ev.detail;
24
25
  };
@@ -26,7 +27,7 @@ const SegmentItem = /*@__PURE__*/ proxyCustomElement(class SegmentItem extends H
26
27
  const { segmentEl } = this;
27
28
  if (segmentEl) {
28
29
  if (segmentEl.value === '' || segmentEl.value === undefined || segmentEl.value === null) {
29
- const items = this.items;
30
+ const items = this.allAvailableOptions;
30
31
  if (items.length > 0) {
31
32
  const first = items[0];
32
33
  this.isFocusable = first === this.el;
@@ -39,6 +40,9 @@ const SegmentItem = /*@__PURE__*/ proxyCustomElement(class SegmentItem extends H
39
40
  if (segmentEl.disabled) {
40
41
  this.disabled = true;
41
42
  }
43
+ this.isLast = segmentEl.lastElementChild === this.el;
44
+ this.isFirst = segmentEl.firstElementChild === this.el;
45
+ this.calculateEmptyValue();
42
46
  }
43
47
  };
44
48
  this.onSlottedItemsChange = () => {
@@ -52,23 +56,35 @@ const SegmentItem = /*@__PURE__*/ proxyCustomElement(class SegmentItem extends H
52
56
  this.hasSlotContent = false;
53
57
  this.isFocusable = false;
54
58
  this.isVertical = false;
59
+ this.isLast = false;
60
+ this.isFirst = false;
61
+ this.hasEmptyValue = true;
62
+ this.ariaForm = defaultBalAriaForm;
55
63
  this.disabled = false;
56
64
  this.invalid = false;
57
65
  this.focused = false;
58
66
  this.checked = false;
59
67
  this.label = '';
60
- this.value = 'bal-si-' + this.id;
68
+ this.value = 'bal-si-' + this.internalId;
61
69
  }
62
- valueChanged() {
63
- this.updateState();
70
+ valueChanged(newValue, oldValue) {
71
+ if (newValue !== oldValue) {
72
+ this.updateState();
73
+ }
64
74
  }
65
- connectedCallback() {
75
+ componentWillLoad() {
76
+ this.inheritedAttributes = Object.assign({}, inheritAttributes(this.el, ['aria-label']));
77
+ }
78
+ componentDidLoad() {
66
79
  const segmentEl = (this.segmentEl = this.el.closest('bal-segment'));
67
80
  if (segmentEl) {
68
- this.updateState();
69
81
  addEventListener(segmentEl, 'balSelect', this.updateState);
70
82
  addEventListener(segmentEl, 'balVertical', this.updateVertical);
71
83
  }
84
+ raf(() => {
85
+ this.checkSlotContent();
86
+ this.updateState();
87
+ });
72
88
  }
73
89
  disconnectedCallback() {
74
90
  const segmentEl = this.segmentEl;
@@ -78,11 +94,14 @@ const SegmentItem = /*@__PURE__*/ proxyCustomElement(class SegmentItem extends H
78
94
  this.segmentEl = null;
79
95
  }
80
96
  }
81
- componentWillLoad() {
82
- this.inheritedAttributes = Object.assign({}, inheritAttributes(this.el, ['aria-label']));
83
- }
84
- componentDidLoad() {
85
- raf(() => this.checkSlotContent());
97
+ calculateEmptyValue() {
98
+ if (this.segmentEl) {
99
+ const segments = Array.from(this.segmentEl.querySelectorAll('bal-segment-item'));
100
+ this.hasEmptyValue = !segments.some(item => item.value === this.segmentEl.value);
101
+ }
102
+ else {
103
+ this.hasEmptyValue = false;
104
+ }
86
105
  }
87
106
  /**
88
107
  * @internal
@@ -95,54 +114,47 @@ const SegmentItem = /*@__PURE__*/ proxyCustomElement(class SegmentItem extends H
95
114
  nativeEl.focus();
96
115
  }
97
116
  }
98
- get items() {
99
- return this.allItems.filter(item => !item.disabled);
117
+ /**
118
+ * @internal
119
+ */
120
+ async setAriaForm(ariaForm) {
121
+ this.ariaForm = Object.assign({}, ariaForm);
100
122
  }
101
- get allItems() {
123
+ get allAvailableOptions() {
124
+ return this.allOptions.filter(item => !item.disabled);
125
+ }
126
+ get allOptions() {
102
127
  const { segmentEl } = this;
103
128
  if (segmentEl) {
104
129
  return Array.from(segmentEl.querySelectorAll('bal-segment-item'));
105
130
  }
106
131
  return [];
107
132
  }
108
- isFirst() {
109
- const { segmentEl } = this;
110
- let items = this.items;
111
- if (segmentEl && segmentEl.disabled) {
112
- items = this.allItems;
113
- }
114
- if (items.length > 0) {
115
- const first = items[0];
116
- return first === this.el;
117
- }
118
- return false;
119
- }
120
- isLast() {
121
- const { segmentEl } = this;
122
- let items = this.items;
123
- if (segmentEl && segmentEl.disabled) {
124
- items = this.allItems;
125
- }
126
- if (items.length > 0) {
127
- const last = items[items.length - 1];
128
- return last === this.el;
129
- }
130
- return false;
131
- }
132
133
  checkSlotContent() {
133
134
  const slot = this.el.querySelector('[part="slot"]');
134
135
  const children = slot ? slot.innerHTML.trim() : '';
135
136
  this.hasSlotContent = children.length > 0;
136
137
  }
137
138
  render() {
138
- const { checked, focused, segmentEl, label, isFocusable } = this;
139
+ const { checked, focused, segmentEl, label, isFocusable, isFirst, hasEmptyValue } = this;
139
140
  const block = BEM.block('segment-item');
140
141
  const buttonBem = block.element('button');
141
142
  const indicatorBem = block.element('indicator');
142
143
  const invalid = this.invalid || (segmentEl && segmentEl.invalid);
143
144
  const disabled = this.disabled || (segmentEl && segmentEl.disabled);
144
145
  const vertical = this.isVertical;
145
- return (h(Host, { class: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, block.class()), block.modifier('vertical').class(vertical)), block.modifier('disabled').class(disabled)), block.modifier('checked').class(checked)), block.modifier('invalid').class(invalid)), block.modifier('line').class(!this.isFirst() && !checked)), block.modifier('last').class(this.isLast() && !checked)) }, h("button", Object.assign({ role: "radio", "aria-checked": checked ? 'true' : 'false', class: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, buttonBem.class()), buttonBem.modifier('checked').class(checked)), buttonBem.modifier('invalid').class(invalid)), buttonBem.modifier('disabled').class(disabled)), buttonBem.modifier('focused').class(focused)), buttonBem.modifier('vertical').class(vertical)), "aria-labelledby": `bal-si-${this.id}-label`, type: 'button', tabIndex: isFocusable ? 0 : -1, part: "native", onBlur: ev => this.balBlur.emit(ev), disabled: disabled, ref: el => (this.nativeEl = el) }, this.inheritedAttributes), h("bal-icon", { name: "check", size: "small", class: Object.assign(Object.assign(Object.assign({}, buttonBem.element('icon').class()), buttonBem.element('icon').modifier('animated').class(checked)), buttonBem.element('icon').modifier('vertical').class(vertical)), color: disabled ? 'grey-dark' : invalid ? 'white' : 'primary' }), h("bal-stack", { space: "x-small", layout: 'horizontal' }, h("bal-content", { space: "none" }, h("bal-label", { htmlId: `bal-si-${this.id}-label` }, label), h("span", { part: "slot", class: Object.assign({}, buttonBem.element('slot').modifier('hidden').class(!this.hasSlotContent)) }, ' ', h("slot", { onSlotchange: this.onSlottedItemsChange }))))), h("div", { class: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, indicatorBem.class()), indicatorBem.modifier('animated').class()), indicatorBem.modifier('background').class()), indicatorBem.modifier('disabled').class(disabled)), indicatorBem.modifier('invalid').class(invalid)), indicatorBem.modifier('checked').class(checked)), indicatorBem.modifier('vertical').class(vertical)) })));
146
+ const hasTabindex = (hasEmptyValue && isFirst) || (isFocusable && !disabled);
147
+ const id = (hasTabindex && this.ariaForm.controlId) || this.inputId;
148
+ let buttonAttributes = {};
149
+ if (hasTabindex) {
150
+ let labelId = this.ariaForm.labelId || null;
151
+ labelId = `${labelId || ''} ${id}-lbl`.trim();
152
+ buttonAttributes = {
153
+ 'aria-labelledby': labelId,
154
+ 'aria-describedby': this.ariaForm.messageId,
155
+ };
156
+ }
157
+ return (h(Host, { class: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, block.class()), block.modifier('vertical').class(vertical)), block.modifier('disabled').class(disabled)), block.modifier('checked').class(checked)), block.modifier('invalid').class(invalid)), block.modifier('last').class(this.isLast && !checked)) }, h("button", Object.assign({ id: id, role: "radio", "aria-checked": checked ? 'true' : 'false' }, buttonAttributes, { class: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, buttonBem.class()), buttonBem.modifier('checked').class(checked)), buttonBem.modifier('invalid').class(invalid)), buttonBem.modifier('disabled').class(disabled)), buttonBem.modifier('focused').class(focused)), buttonBem.modifier('vertical').class(vertical)), type: 'button', tabIndex: hasTabindex ? 0 : -1, part: "native", disabled: disabled, ref: el => (this.nativeEl = el) }, this.inheritedAttributes), h("bal-icon", { name: "check", size: "small", class: Object.assign(Object.assign(Object.assign({}, buttonBem.element('icon').class()), buttonBem.element('icon').modifier('animated').class(checked)), buttonBem.element('icon').modifier('vertical').class(vertical)), color: disabled ? 'grey-dark' : invalid ? 'white' : 'primary' }), h("bal-stack", { space: "x-small", layout: 'horizontal' }, h("bal-content", { space: "none" }, h("bal-label", { htmlId: `bal-si-${this.internalId}-label` }, label), h("span", { part: "slot", class: Object.assign({}, buttonBem.element('slot').modifier('hidden').class(!this.hasSlotContent)) }, ' ', h("slot", { onSlotchange: this.onSlottedItemsChange }))))), h("div", { class: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, indicatorBem.class()), indicatorBem.modifier('animated').class()), indicatorBem.modifier('background').class()), indicatorBem.modifier('disabled').class(disabled)), indicatorBem.modifier('invalid').class(invalid)), indicatorBem.modifier('checked').class(checked)), indicatorBem.modifier('vertical').class(vertical)) })));
146
158
  }
147
159
  get el() { return this; }
148
160
  static get watchers() { return {
@@ -155,11 +167,16 @@ const SegmentItem = /*@__PURE__*/ proxyCustomElement(class SegmentItem extends H
155
167
  "focused": [1028],
156
168
  "checked": [1028],
157
169
  "label": [1],
158
- "value": [8],
170
+ "value": [1032],
159
171
  "hasSlotContent": [32],
160
172
  "isFocusable": [32],
161
173
  "isVertical": [32],
162
- "setFocus": [64]
174
+ "isLast": [32],
175
+ "isFirst": [32],
176
+ "hasEmptyValue": [32],
177
+ "ariaForm": [32],
178
+ "setFocus": [64],
179
+ "setAriaForm": [64]
163
180
  }, undefined, {
164
181
  "value": ["valueChanged"]
165
182
  }]);
@@ -6,6 +6,8 @@ import { a as isSpaceKey, q as isArrowUpKey, A as isArrowLeftKey, o as isArrowDo
6
6
  import { s as stopEventBubbling } from './form-input.js';
7
7
  import { F as FOCUS_KEYS } from './focus-visible.js';
8
8
  import { l as raf } from './helpers.js';
9
+ import { d as defaultBalAriaForm } from './form.js';
10
+ import { L as ListenToFocus } from './focus.decorator.js';
9
11
  import { L as ListenToBreakpoints } from './breakpoints.decorator.js';
10
12
  import { L as ListenToWindowResize } from './window-resize.decorator.js';
11
13
 
@@ -16,13 +18,19 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
16
18
  constructor() {
17
19
  super();
18
20
  this.__registerHost();
21
+ this.balFocus = createEvent(this, "balFocus", 7);
19
22
  this.balBlur = createEvent(this, "balBlur", 7);
20
23
  this.balChange = createEvent(this, "balChange", 7);
21
24
  this.balSelect = createEvent(this, "balSelect", 7);
22
25
  this.balVertical = createEvent(this, "balVertical", 7);
26
+ /**
27
+ * LISTENERS
28
+ * ------------------------------------------------------
29
+ */
30
+ this.hasFocus = false;
23
31
  this.getSegmentItem = (selector) => {
24
32
  var _a, _b;
25
- const items = this.items.filter(item => !item.disabled);
33
+ const items = this.allItems.filter(item => !item.disabled);
26
34
  const currIndex = items.findIndex(item => item === document.activeElement.closest('bal-segment-item'));
27
35
  switch (selector) {
28
36
  case 'current':
@@ -87,6 +95,7 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
87
95
  this.isVertical = false;
88
96
  this.isMobile = false;
89
97
  this.maxWidth = 0;
98
+ this.ariaForm = defaultBalAriaForm;
90
99
  this.invalid = false;
91
100
  this.disabled = false;
92
101
  this.vertical = false;
@@ -97,6 +106,9 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
97
106
  createLogger(log) {
98
107
  this.log = log;
99
108
  }
109
+ disabledChanged() {
110
+ this.allItems.map(item => (item.disabled = this.disabled));
111
+ }
100
112
  valueChanged(value) {
101
113
  /**
102
114
  * `balSelect` is emitted every time the value changes (internal or external changes).
@@ -111,6 +123,7 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
111
123
  connectedCallback() {
112
124
  this.el.addEventListener('touchstart', this.onPointerDown);
113
125
  this.el.addEventListener('mousedown', this.onPointerDown);
126
+ this.disabledChanged();
114
127
  }
115
128
  disconnectedCallback() {
116
129
  this.el.removeEventListener('touchstart', this.onPointerDown);
@@ -120,10 +133,12 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
120
133
  this.setCheckedClasses();
121
134
  this.defineWidth();
122
135
  }
123
- /**
124
- * LISTENERS
125
- * ------------------------------------------------------
126
- */
136
+ focusInListener(ev) {
137
+ this.balFocus.emit(ev);
138
+ }
139
+ focusOutListener(ev) {
140
+ this.balBlur.emit(ev);
141
+ }
127
142
  breakpointListener(breakpoints) {
128
143
  this.isMobile = breakpoints.mobile;
129
144
  }
@@ -145,9 +160,8 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
145
160
  this.emitVerticalChange(true);
146
161
  }
147
162
  }
148
- listenOnBalBlur(ev) {
149
- stopEventBubbling(ev);
150
- this.balBlur.emit(ev.detail);
163
+ listenOnKeyDownOutside() {
164
+ this.keyboardMode = true;
151
165
  }
152
166
  listenOnKeyDown(ev) {
153
167
  this.keyboardMode = FOCUS_KEYS.includes(ev.key);
@@ -155,6 +169,7 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
155
169
  if (isSpaceKey(ev)) {
156
170
  stopEventBubbling(ev);
157
171
  current = this.getSegmentItem('current');
172
+ this.value = current.value;
158
173
  }
159
174
  else if (isArrowUpKey(ev) || isArrowLeftKey(ev)) {
160
175
  stopEventBubbling(ev);
@@ -184,15 +199,25 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
184
199
  current.setFocus();
185
200
  }
186
201
  }
202
+ /**
203
+ * PUBLIC METHODS
204
+ * ------------------------------------------------------
205
+ */
206
+ /**
207
+ * @internal
208
+ */
209
+ async setAriaForm(ariaForm) {
210
+ this.ariaForm = Object.assign({}, ariaForm);
211
+ }
187
212
  /**
188
213
  * GETTERS
189
214
  * ------------------------------------------------------
190
215
  */
191
- get items() {
216
+ get allItems() {
192
217
  return Array.from(this.el.querySelectorAll('bal-segment-item'));
193
218
  }
194
219
  get checked() {
195
- return this.items.find(item => item.value === this.value);
220
+ return this.allItems.find(item => item.value === this.value);
196
221
  }
197
222
  /**
198
223
  * PRIVATE METHODS
@@ -217,8 +242,11 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
217
242
  });
218
243
  }
219
244
  getIndicator(item) {
220
- const root = item.shadowRoot || item;
221
- return root.querySelector('.bal-segment-item__indicator');
245
+ if (item) {
246
+ const root = item.shadowRoot || item;
247
+ return root.querySelector('.bal-segment-item__indicator');
248
+ }
249
+ return null;
222
250
  }
223
251
  checkButton(previous, current) {
224
252
  const previousIndicator = this.getIndicator(previous);
@@ -255,7 +283,7 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
255
283
  this.setCheckedClasses();
256
284
  }
257
285
  setCheckedClasses() {
258
- const items = this.items;
286
+ const items = this.allItems;
259
287
  const index = items.findIndex(item => item.value === this.value);
260
288
  const next = index + 1;
261
289
  const previous = index - 1;
@@ -275,12 +303,13 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
275
303
  * ------------------------------------------------------
276
304
  */
277
305
  render() {
278
- const { invalid, isVertical, scrollable, keyboardMode, expanded, isMobile } = this;
306
+ const { invalid, isVertical, scrollable, keyboardMode, expanded, isMobile, disabled } = this;
279
307
  const block = BEM.block('segment');
280
- return (h(Host, { role: "radiogroup", class: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, block.class()), block.modifier('invalid').class(invalid)), block.modifier('vertical').class(isVertical)), block.modifier('scrollable').class(scrollable)), block.modifier('keyboard').class(keyboardMode)), block.modifier('expanded').class((expanded || isMobile) && !isVertical)), onClick: this.onClick }, h("slot", { onSlotchange: this.onSlottedItemsChange })));
308
+ return (h(Host, { role: "radiogroup", "aria-labelledby": this.ariaForm.labelId, "aria-describedby": this.ariaForm.messageId, class: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, block.class()), block.modifier('invalid').class(invalid)), block.modifier('vertical').class(isVertical)), block.modifier('scrollable').class(scrollable)), block.modifier('keyboard').class(keyboardMode)), block.modifier('disabled').class(disabled)), block.modifier('expanded').class((expanded || isMobile) && !isVertical)), onClick: this.onClick }, h("slot", { onSlotchange: this.onSlottedItemsChange })));
281
309
  }
282
310
  get el() { return this; }
283
311
  static get watchers() { return {
312
+ "disabled": ["disabledChanged"],
284
313
  "value": ["valueChanged"]
285
314
  }; }
286
315
  static get style() { return BalSegmentStyle0; }
@@ -295,8 +324,11 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
295
324
  "keyboardMode": [32],
296
325
  "isVertical": [32],
297
326
  "isMobile": [32],
298
- "maxWidth": [32]
299
- }, [[0, "balBlur", "listenOnBalBlur"], [0, "keydown", "listenOnKeyDown"]], {
327
+ "maxWidth": [32],
328
+ "ariaForm": [32],
329
+ "setAriaForm": [64]
330
+ }, [[4, "keydown", "listenOnKeyDownOutside"], [0, "keydown", "listenOnKeyDown"]], {
331
+ "disabled": ["disabledChanged"],
300
332
  "value": ["valueChanged"]
301
333
  }]);
302
334
  __decorate([
@@ -305,6 +337,18 @@ __decorate([
305
337
  __metadata("design:paramtypes", [Function]),
306
338
  __metadata("design:returntype", void 0)
307
339
  ], Segment.prototype, "createLogger", null);
340
+ __decorate([
341
+ ListenToFocus(),
342
+ __metadata("design:type", Function),
343
+ __metadata("design:paramtypes", [FocusEvent]),
344
+ __metadata("design:returntype", void 0)
345
+ ], Segment.prototype, "focusInListener", null);
346
+ __decorate([
347
+ ListenToFocus(),
348
+ __metadata("design:type", Function),
349
+ __metadata("design:paramtypes", [FocusEvent]),
350
+ __metadata("design:returntype", void 0)
351
+ ], Segment.prototype, "focusOutListener", null);
308
352
  __decorate([
309
353
  ListenToBreakpoints(),
310
354
  __metadata("design:type", Function),
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { g as getInputTarget, b as inputHandleFocus, e as inputHandleBlur, f as inputHandleChange, h as inputHandleClick, c as inputHandleHostClick, d as inputListenOnClick, j as inputHandleReset, i as inputSetFocus, a as inputSetBlur } from './form-input.js';
2
+ import { g as getInputTarget, b as inputHandleFocus, e as inputHandleBlur, f as inputHandleChange, j as inputHandleClick, c as inputHandleHostClick, d as inputListenOnClick, k as inputHandleReset, i as inputSetFocus, a as inputSetBlur } from './form-input.js';
3
3
  import { m as debounceEvent } from './helpers.js';
4
4
  import { i as inheritAttributes } from './attributes.js';
5
5
  import { B as BEM } from './bem.js';
@@ -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 { l as lodash_isnil } from './index2.js';
4
- import { g as getInputTarget, b as inputHandleFocus, e as inputHandleBlur, f as inputHandleChange, s as stopEventBubbling, d as inputListenOnClick, j as inputHandleReset, i as inputSetFocus, a as inputSetBlur } from './form-input.js';
4
+ import { g as getInputTarget, b as inputHandleFocus, e as inputHandleBlur, f as inputHandleChange, s as stopEventBubbling, d as inputListenOnClick, k as inputHandleReset, i as inputSetFocus, a as inputSetBlur } from './form-input.js';
5
5
  import { m as debounceEvent } from './helpers.js';
6
6
  import { i as inheritAttributes } from './attributes.js';
7
7
  import { i as isCtrlOrCommandKey, N as NUMBER_KEYS, A as ACTION_KEYS } from './keys.constant.js';
@@ -73,5 +73,18 @@ const inputHandleChange = (component) => {
73
73
  component.balChange.emit(component.value);
74
74
  }
75
75
  };
76
+ const isEmptyValue = (value) => {
77
+ return (value === '' ||
78
+ value === undefined ||
79
+ value === null ||
80
+ (Array.isArray(value) && !value.length) ||
81
+ (typeof value === 'number' && isNaN(value)));
82
+ };
83
+ const parseValue = (value) => {
84
+ return isEmptyValue(value) ? undefined : value;
85
+ };
86
+ const hasValueChanged = (oldValue, newValue) => {
87
+ return parseValue(oldValue) !== parseValue(newValue);
88
+ };
76
89
 
77
- export { inputSetBlur as a, inputHandleFocus as b, inputHandleHostClick as c, inputListenOnClick as d, inputHandleBlur as e, inputHandleChange as f, getInputTarget as g, inputHandleClick as h, inputSetFocus as i, inputHandleReset as j, getNativeInputValue as k, getUpcomingValue as l, stopEventBubbling as s };
90
+ export { inputSetBlur as a, inputHandleFocus as b, inputHandleHostClick as c, inputListenOnClick as d, inputHandleBlur as e, inputHandleChange as f, getInputTarget as g, hasValueChanged as h, inputSetFocus as i, inputHandleClick as j, inputHandleReset as k, getNativeInputValue as l, getUpcomingValue as m, stopEventBubbling as s };