@baloise/ds-core 16.4.0 → 16.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/components/all.d.ts +4 -0
  2. package/components/all.js +6 -0
  3. package/components/bal-checkbox-group.js +8 -2
  4. package/components/bal-checkbox2.js +10 -3
  5. package/components/bal-content.js +1 -69
  6. package/{dist/esm/bal-content.entry.js → components/bal-content2.js} +31 -12
  7. package/components/bal-icon2.js +1 -1
  8. package/components/bal-label2.js +3 -2
  9. package/components/bal-progress-bar.js +23 -10
  10. package/components/bal-radio2.js +1 -1
  11. package/components/bal-segment-item.d.ts +11 -0
  12. package/components/bal-segment-item.js +203 -0
  13. package/components/bal-segment.d.ts +11 -0
  14. package/components/bal-segment.js +337 -0
  15. package/components/bal-stack2.js +1 -1
  16. package/components/breakpoints.subject.js +3 -3
  17. package/components/index.esm.js +25 -1
  18. package/components/index.js +1 -1
  19. package/components/tokens.esm.js +1 -1
  20. package/components/window-resize.decorator.js +46 -0
  21. package/dist/baloise-design-system/baloise-design-system.esm.js +1 -1
  22. package/dist/baloise-design-system/index.esm.js +1 -1
  23. package/dist/baloise-design-system/{p-e60c936359.system.entry.js → p-0530e008e9.system.entry.js} +1 -1
  24. package/dist/baloise-design-system/p-09ea5913.js +1 -0
  25. package/dist/baloise-design-system/p-0fb6cbda.system.js +1 -0
  26. package/dist/baloise-design-system/p-1509eaa7.system.js +1 -1
  27. package/dist/baloise-design-system/{p-b487614e8b.entry.js → p-190b5cd469.entry.js} +1 -1
  28. package/dist/baloise-design-system/{p-e18ec1401d.system.entry.js → p-23b7426d09.system.entry.js} +1 -1
  29. package/dist/baloise-design-system/p-265f9d51c9.system.entry.js +1 -0
  30. package/dist/baloise-design-system/{p-51c0348938.entry.js → p-2905abdfb8.entry.js} +1 -1
  31. package/dist/baloise-design-system/p-29ba4f9afe.system.entry.js +1 -0
  32. package/dist/baloise-design-system/{p-b069b55a8d.entry.js → p-2cd1f1dedb.entry.js} +1 -1
  33. package/dist/baloise-design-system/{p-f6599f64b7.entry.js → p-2db4ff4c5b.entry.js} +1 -1
  34. package/dist/baloise-design-system/{p-0295f5df96.entry.js → p-305cffd8aa.entry.js} +1 -1
  35. package/dist/baloise-design-system/{p-39bc49bc3d.entry.js → p-33028eda8b.entry.js} +1 -1
  36. package/dist/baloise-design-system/{p-c0f4b35c8c.system.entry.js → p-370575b8cb.system.entry.js} +1 -1
  37. package/dist/baloise-design-system/{p-95c6192efb.system.entry.js → p-372474e989.system.entry.js} +1 -1
  38. package/dist/baloise-design-system/{p-6d9afce4c2.entry.js → p-3801afd625.entry.js} +1 -1
  39. package/dist/baloise-design-system/p-380aabd5bc.entry.js +1 -0
  40. package/dist/baloise-design-system/{p-330b875d9d.system.entry.js → p-3818fa189f.system.entry.js} +1 -1
  41. package/dist/baloise-design-system/{p-68eead378f.entry.js → p-39bf8adcde.entry.js} +1 -1
  42. package/dist/baloise-design-system/p-3befc6f9.system.js +1 -0
  43. package/dist/baloise-design-system/{p-167594de04.entry.js → p-3c25811c44.entry.js} +1 -1
  44. package/dist/baloise-design-system/p-3eb68d7e.js +1 -0
  45. package/dist/baloise-design-system/{p-8754258843.entry.js → p-407ffd9c55.entry.js} +1 -1
  46. package/dist/baloise-design-system/p-445d2e1c70.system.entry.js +1 -0
  47. package/dist/baloise-design-system/{p-4afba8511a.system.entry.js → p-47a8ad4d7a.system.entry.js} +1 -1
  48. package/dist/baloise-design-system/{p-83ff83d0.system.js → p-4809d5c4.system.js} +1 -1
  49. package/dist/baloise-design-system/{p-19542d9bfc.system.entry.js → p-487816db33.system.entry.js} +1 -1
  50. package/dist/baloise-design-system/{p-976ed5bcf1.entry.js → p-488c4a8ce1.entry.js} +1 -1
  51. package/dist/baloise-design-system/{p-aee4ebe860.system.entry.js → p-4fe64c3ec6.system.entry.js} +1 -1
  52. package/dist/baloise-design-system/p-53e98a0f71.entry.js +1 -0
  53. package/dist/baloise-design-system/{p-cef24f8c62.entry.js → p-547aae9610.entry.js} +1 -1
  54. package/dist/baloise-design-system/p-54f81c32.js +1 -1
  55. package/dist/baloise-design-system/{p-6f4a362824.system.entry.js → p-5db0544e97.system.entry.js} +1 -1
  56. package/dist/baloise-design-system/{p-67e6932c19.entry.js → p-5fae3f5478.entry.js} +1 -1
  57. package/dist/baloise-design-system/{p-22b041a511.entry.js → p-6c2bf02eb3.entry.js} +1 -1
  58. package/dist/baloise-design-system/{p-a7c3119418.system.entry.js → p-6e3a79cce0.system.entry.js} +1 -1
  59. package/dist/baloise-design-system/p-71588db3.system.js +1 -0
  60. package/dist/baloise-design-system/{p-b779742f50.entry.js → p-77350b27fc.entry.js} +1 -1
  61. package/dist/baloise-design-system/{p-b33c021c08.entry.js → p-7c586fb89f.entry.js} +1 -1
  62. package/dist/baloise-design-system/{p-ba14aa7026.system.entry.js → p-8080a1192c.system.entry.js} +1 -1
  63. package/dist/baloise-design-system/{p-685405e0.system.js → p-88eb14fd.system.js} +1 -1
  64. package/dist/baloise-design-system/p-8de1a12660.entry.js +1 -0
  65. package/dist/baloise-design-system/{p-8870e1f3e0.system.entry.js → p-8e17b76e7c.system.entry.js} +1 -1
  66. package/dist/baloise-design-system/{p-b97d9336a7.system.entry.js → p-9bb8778cdc.system.entry.js} +1 -1
  67. package/dist/baloise-design-system/{p-8b6aca042a.system.entry.js → p-9f54cac588.system.entry.js} +1 -1
  68. package/dist/baloise-design-system/p-a507ff25cb.system.entry.js +1 -0
  69. package/dist/baloise-design-system/{p-ad00d94e7f.entry.js → p-a5ee486a2b.entry.js} +1 -1
  70. package/dist/baloise-design-system/p-a78d1ca569.system.entry.js +1 -0
  71. package/dist/baloise-design-system/p-b0c22ff9d1.entry.js +1 -0
  72. package/dist/baloise-design-system/{p-982fa892e8.system.entry.js → p-b8251b8f68.system.entry.js} +1 -1
  73. package/dist/baloise-design-system/p-b87c29c80b.entry.js +1 -0
  74. package/dist/baloise-design-system/p-bcca1ed3.system.js +1 -1
  75. package/dist/baloise-design-system/{p-098f268743.entry.js → p-bee13e834e.entry.js} +1 -1
  76. package/dist/baloise-design-system/p-c1c17f8edc.system.entry.js +1 -0
  77. package/dist/baloise-design-system/{p-3f1c49d0.js → p-caec1f9e.js} +1 -1
  78. package/dist/baloise-design-system/{p-45e0c0783b.entry.js → p-cafe624e35.entry.js} +1 -1
  79. package/dist/baloise-design-system/{p-2f4c6257f4.entry.js → p-cda868a6a5.entry.js} +1 -1
  80. package/dist/baloise-design-system/p-ced37553e2.entry.js +1 -0
  81. package/dist/baloise-design-system/{p-a52564d27f.system.entry.js → p-d059465399.system.entry.js} +1 -1
  82. package/dist/baloise-design-system/{p-44d845a857.system.entry.js → p-d3fabdb142.system.entry.js} +1 -1
  83. package/dist/baloise-design-system/{p-b397abec9a.system.entry.js → p-d7d6937d59.system.entry.js} +1 -1
  84. package/dist/baloise-design-system/{p-c92eb37957.system.entry.js → p-df40272425.system.entry.js} +1 -1
  85. package/dist/baloise-design-system/{p-e9c3c1c4cc.entry.js → p-e0384bfc0c.entry.js} +1 -1
  86. package/dist/baloise-design-system/{p-b0f4388e4c.system.entry.js → p-e137e273b7.system.entry.js} +1 -1
  87. package/dist/baloise-design-system/{p-55faac1d.system.js → p-e187b9de.system.js} +1 -1
  88. package/dist/baloise-design-system/{p-86b8ffa1ab.system.entry.js → p-e1ccb7023c.system.entry.js} +1 -1
  89. package/dist/baloise-design-system/p-e75ccb92.js +1 -0
  90. package/dist/baloise-design-system/{p-9e167705ca.entry.js → p-ecab0d67d5.entry.js} +1 -1
  91. package/dist/baloise-design-system/p-ef916aafa5.entry.js +1 -0
  92. package/dist/baloise-design-system/{p-544a0af68d.system.entry.js → p-f03e63bd1e.system.entry.js} +1 -1
  93. package/dist/baloise-design-system/{p-94efe2aa.js → p-f5940253.js} +1 -1
  94. package/dist/baloise-design-system/{p-3e8b5dec38.system.entry.js → p-f62d0ccdd1.system.entry.js} +1 -1
  95. package/dist/baloise-design-system/{p-e066dc532d.entry.js → p-f819d47031.entry.js} +1 -1
  96. package/dist/baloise-design-system/{p-d66c8f0da9.system.entry.js → p-fb0af77320.system.entry.js} +1 -1
  97. package/dist/cjs/bal-accordion_4.cjs.entry.js +1 -1
  98. package/dist/cjs/bal-carousel_2.cjs.entry.js +3 -3
  99. package/dist/cjs/bal-checkbox_2.cjs.entry.js +4 -3
  100. package/dist/cjs/{bal-label.cjs.entry.js → bal-content_2.cjs.entry.js} +48 -2
  101. package/dist/cjs/bal-date-calendar_2.cjs.entry.js +2 -2
  102. package/dist/cjs/bal-date.cjs.entry.js +2 -2
  103. package/dist/cjs/bal-datepicker.cjs.entry.js +4 -4
  104. package/dist/cjs/bal-dropdown.cjs.entry.js +1 -1
  105. package/dist/cjs/bal-file-upload.cjs.entry.js +1 -1
  106. package/dist/cjs/bal-footer.cjs.entry.js +1 -1
  107. package/dist/cjs/bal-hint_3.cjs.entry.js +3 -3
  108. package/dist/cjs/bal-icon.cjs.entry.js +1 -1
  109. package/dist/cjs/bal-input-stepper.cjs.entry.js +1 -1
  110. package/dist/cjs/bal-list_8.cjs.entry.js +4 -4
  111. package/dist/cjs/bal-logo.cjs.entry.js +3 -3
  112. package/dist/cjs/bal-nav_8.cjs.entry.js +3 -3
  113. package/dist/cjs/bal-navbar_5.cjs.entry.js +3 -3
  114. package/dist/cjs/bal-number-input.cjs.entry.js +1 -1
  115. package/dist/cjs/bal-pagination.cjs.entry.js +3 -3
  116. package/dist/cjs/bal-popover_2.cjs.entry.js +3 -3
  117. package/dist/cjs/bal-popup.cjs.entry.js +1 -1
  118. package/dist/cjs/bal-progress-bar.cjs.entry.js +27 -15
  119. package/dist/cjs/bal-radio_2.cjs.entry.js +2 -2
  120. package/dist/cjs/bal-segment-item.cjs.entry.js +156 -0
  121. package/dist/cjs/bal-segment.cjs.entry.js +319 -0
  122. package/dist/cjs/bal-select_2.cjs.entry.js +1 -1
  123. package/dist/cjs/bal-shape.cjs.entry.js +1 -1
  124. package/dist/cjs/bal-stack.cjs.entry.js +1 -1
  125. package/dist/cjs/bal-steps.cjs.entry.js +4 -4
  126. package/dist/cjs/bal-tab-item_2.cjs.entry.js +4 -4
  127. package/dist/cjs/baloise-design-system.cjs.js +1 -1
  128. package/dist/cjs/{breakpoints.decorator-e278a735.js → breakpoints.decorator-a4a5bd7a.js} +1 -1
  129. package/dist/cjs/{breakpoints.subject-0802767f.js → breakpoints.subject-fbf85930.js} +4 -4
  130. package/dist/cjs/{date-3e33b208.js → date-20be7524.js} +1 -1
  131. package/dist/cjs/index.cjs.js +4 -4
  132. package/dist/cjs/{index.esm-4587dbf0.js → index.esm-54a3d84e.js} +28 -0
  133. package/dist/cjs/initialize-2a19d091.js +1 -1
  134. package/dist/cjs/loader.cjs.js +1 -1
  135. package/dist/cjs/{tokens.esm-be397f27.js → tokens.esm-aa4bb7f7.js} +1 -1
  136. package/dist/cjs/window-resize.decorator-c7a521b0.js +48 -0
  137. package/dist/collection/collection-manifest.json +2 -0
  138. package/dist/collection/components/bal-checkbox/bal-checkbox.js +2 -1
  139. package/dist/collection/components/bal-checkbox/radio-checkbox.css +1 -1
  140. package/dist/collection/components/bal-content/bal-content.css +1 -1
  141. package/dist/collection/components/bal-content/bal-content.js +1 -1
  142. package/dist/collection/components/bal-icon/bal-icon.css +1 -1
  143. package/dist/collection/components/bal-label/bal-label.js +20 -2
  144. package/dist/collection/components/bal-progress-bar/bal-progress-bar.js +23 -10
  145. package/dist/collection/components/bal-segment/bal-segment-item/bal-segment-item.css +1 -0
  146. package/dist/collection/components/bal-segment/bal-segment-item/bal-segment-item.js +332 -0
  147. package/dist/collection/components/bal-segment/bal-segment.css +1 -0
  148. package/dist/collection/components/bal-segment/bal-segment.interfaces.js +4 -0
  149. package/dist/collection/components/bal-segment/bal-segment.js +537 -0
  150. package/dist/collection/components/bal-segment/bal-segment.types.js +1 -0
  151. package/dist/collection/components/bal-stack/bal-stack.css +1 -1
  152. package/dist/collection/utils/constants/version.constant.js +1 -1
  153. package/dist/collection/utils/resize/index.js +4 -1
  154. package/dist/collection/utils/resize/window-resize.decorator.js +20 -0
  155. package/dist/collection/utils/resize/window-resize.interfaces.js +1 -0
  156. package/dist/collection/utils/resize/window-resize.listener.js +3 -3
  157. package/dist/collection/utils/resize/window-resize.subject.js +23 -0
  158. package/dist/esm/bal-accordion_4.entry.js +1 -1
  159. package/dist/esm/bal-carousel_2.entry.js +3 -3
  160. package/dist/esm/bal-checkbox_2.entry.js +4 -3
  161. package/dist/esm/{bal-label.entry.js → bal-content_2.entry.js} +48 -3
  162. package/dist/esm/bal-date-calendar_2.entry.js +2 -2
  163. package/dist/esm/bal-date.entry.js +2 -2
  164. package/dist/esm/bal-datepicker.entry.js +4 -4
  165. package/dist/esm/bal-dropdown.entry.js +1 -1
  166. package/dist/esm/bal-file-upload.entry.js +1 -1
  167. package/dist/esm/bal-footer.entry.js +1 -1
  168. package/dist/esm/bal-hint_3.entry.js +3 -3
  169. package/dist/esm/bal-icon.entry.js +1 -1
  170. package/dist/esm/bal-input-stepper.entry.js +1 -1
  171. package/dist/esm/bal-list_8.entry.js +4 -4
  172. package/dist/esm/bal-logo.entry.js +3 -3
  173. package/dist/esm/bal-nav_8.entry.js +3 -3
  174. package/dist/esm/bal-navbar_5.entry.js +3 -3
  175. package/dist/esm/bal-number-input.entry.js +1 -1
  176. package/dist/esm/bal-pagination.entry.js +3 -3
  177. package/dist/esm/bal-popover_2.entry.js +3 -3
  178. package/dist/esm/bal-popup.entry.js +1 -1
  179. package/dist/esm/bal-progress-bar.entry.js +27 -15
  180. package/dist/esm/bal-radio_2.entry.js +2 -2
  181. package/dist/esm/bal-segment-item.entry.js +152 -0
  182. package/dist/esm/bal-segment.entry.js +315 -0
  183. package/dist/esm/bal-select_2.entry.js +1 -1
  184. package/dist/esm/bal-shape.entry.js +1 -1
  185. package/dist/esm/bal-stack.entry.js +1 -1
  186. package/dist/esm/bal-steps.entry.js +4 -4
  187. package/dist/esm/bal-tab-item_2.entry.js +4 -4
  188. package/dist/esm/baloise-design-system.js +1 -1
  189. package/dist/esm/{breakpoints.decorator-d0f1affe.js → breakpoints.decorator-f2ac9963.js} +1 -1
  190. package/dist/esm/{breakpoints.subject-f57eda2c.js → breakpoints.subject-3605e395.js} +4 -4
  191. package/dist/esm/{date-38a0b208.js → date-aba2d404.js} +1 -1
  192. package/dist/esm/{index.esm-83b1f9c4.js → index.esm-76abd8e3.js} +25 -1
  193. package/dist/esm/index.js +5 -5
  194. package/dist/esm/initialize-e216cfe4.js +1 -1
  195. package/dist/esm/loader.js +1 -1
  196. package/dist/esm/{tokens.esm-70c16b84.js → tokens.esm-337782ae.js} +1 -1
  197. package/dist/esm/window-resize.decorator-d5198831.js +46 -0
  198. package/dist/esm-es5/bal-accordion_4.entry.js +1 -1
  199. package/dist/esm-es5/bal-carousel_2.entry.js +1 -1
  200. package/dist/esm-es5/bal-checkbox_2.entry.js +1 -1
  201. package/dist/esm-es5/bal-content_2.entry.js +1 -0
  202. package/dist/esm-es5/bal-date-calendar_2.entry.js +1 -1
  203. package/dist/esm-es5/bal-date.entry.js +1 -1
  204. package/dist/esm-es5/bal-datepicker.entry.js +1 -1
  205. package/dist/esm-es5/bal-dropdown.entry.js +1 -1
  206. package/dist/esm-es5/bal-file-upload.entry.js +1 -1
  207. package/dist/esm-es5/bal-footer.entry.js +1 -1
  208. package/dist/esm-es5/bal-hint_3.entry.js +1 -1
  209. package/dist/esm-es5/bal-icon.entry.js +1 -1
  210. package/dist/esm-es5/bal-input-stepper.entry.js +1 -1
  211. package/dist/esm-es5/bal-list_8.entry.js +1 -1
  212. package/dist/esm-es5/bal-logo.entry.js +1 -1
  213. package/dist/esm-es5/bal-nav_8.entry.js +1 -1
  214. package/dist/esm-es5/bal-navbar_5.entry.js +1 -1
  215. package/dist/esm-es5/bal-number-input.entry.js +1 -1
  216. package/dist/esm-es5/bal-pagination.entry.js +1 -1
  217. package/dist/esm-es5/bal-popover_2.entry.js +1 -1
  218. package/dist/esm-es5/bal-popup.entry.js +1 -1
  219. package/dist/esm-es5/bal-progress-bar.entry.js +1 -1
  220. package/dist/esm-es5/bal-radio_2.entry.js +1 -1
  221. package/dist/esm-es5/bal-segment-item.entry.js +1 -0
  222. package/dist/esm-es5/bal-segment.entry.js +1 -0
  223. package/dist/esm-es5/bal-select_2.entry.js +1 -1
  224. package/dist/esm-es5/bal-shape.entry.js +1 -1
  225. package/dist/esm-es5/bal-stack.entry.js +1 -1
  226. package/dist/esm-es5/bal-steps.entry.js +1 -1
  227. package/dist/esm-es5/bal-tab-item_2.entry.js +1 -1
  228. package/dist/esm-es5/baloise-design-system.js +1 -1
  229. package/dist/esm-es5/{breakpoints.decorator-d0f1affe.js → breakpoints.decorator-f2ac9963.js} +1 -1
  230. package/dist/esm-es5/breakpoints.subject-3605e395.js +1 -0
  231. package/dist/esm-es5/{date-38a0b208.js → date-aba2d404.js} +1 -1
  232. package/dist/esm-es5/{index.esm-83b1f9c4.js → index.esm-76abd8e3.js} +1 -1
  233. package/dist/esm-es5/index.js +1 -1
  234. package/dist/esm-es5/initialize-e216cfe4.js +1 -1
  235. package/dist/esm-es5/loader.js +1 -1
  236. package/dist/esm-es5/window-resize.decorator-d5198831.js +1 -0
  237. package/dist/html.html-data.json +80 -0
  238. package/dist/types/components/bal-content/bal-content.interfaces.d.ts +1 -1
  239. package/dist/types/components/bal-icon/bal-icon.interfaces.d.ts +1 -1
  240. package/dist/types/components/bal-label/bal-label.d.ts +4 -1
  241. package/dist/types/components/bal-progress-bar/bal-progress-bar.d.ts +3 -1
  242. package/dist/types/components/bal-segment/bal-segment-item/bal-segment-item.d.ts +62 -0
  243. package/dist/types/components/bal-segment/bal-segment.d.ts +111 -0
  244. package/dist/types/components/bal-segment/bal-segment.interfaces.d.ts +20 -0
  245. package/dist/types/components/bal-segment/bal-segment.types.d.ts +1 -0
  246. package/dist/types/components.d.ts +164 -0
  247. package/dist/types/interfaces.d.ts +1 -0
  248. package/dist/types/utils/resize/index.d.ts +4 -1
  249. package/dist/types/utils/resize/window-resize.decorator.d.ts +3 -0
  250. package/dist/types/utils/resize/window-resize.interfaces.d.ts +5 -0
  251. package/dist/types/utils/resize/window-resize.listener.d.ts +1 -1
  252. package/dist/types/utils/resize/window-resize.subject.d.ts +9 -0
  253. package/package.json +8 -8
  254. package/dist/baloise-design-system/p-0d69371467.entry.js +0 -1
  255. package/dist/baloise-design-system/p-126c79c9e9.system.entry.js +0 -1
  256. package/dist/baloise-design-system/p-2d8bd11634.entry.js +0 -1
  257. package/dist/baloise-design-system/p-77ccb1f4.system.js +0 -1
  258. package/dist/baloise-design-system/p-88493e9537.system.entry.js +0 -1
  259. package/dist/baloise-design-system/p-886bedebf9.entry.js +0 -1
  260. package/dist/baloise-design-system/p-8a87b9a8.system.js +0 -1
  261. package/dist/baloise-design-system/p-c69783ee18.entry.js +0 -1
  262. package/dist/baloise-design-system/p-d585a3ad56.system.entry.js +0 -1
  263. package/dist/baloise-design-system/p-e71a27141c.entry.js +0 -1
  264. package/dist/baloise-design-system/p-e851f284.js +0 -1
  265. package/dist/baloise-design-system/p-e93d9571f5.system.entry.js +0 -1
  266. package/dist/baloise-design-system/p-ecd39e3bec.entry.js +0 -1
  267. package/dist/baloise-design-system/p-f076d1ed4f.system.entry.js +0 -1
  268. package/dist/baloise-design-system/p-f7091a61.js +0 -1
  269. package/dist/cjs/bal-content.cjs.entry.js +0 -56
  270. package/dist/esm-es5/bal-content.entry.js +0 -1
  271. package/dist/esm-es5/bal-label.entry.js +0 -1
  272. package/dist/esm-es5/breakpoints.subject-f57eda2c.js +0 -1
  273. /package/dist/baloise-design-system/{p-83486137.system.js → p-36074466.system.js} +0 -0
  274. /package/dist/baloise-design-system/{p-ec4875a2.js → p-e1994e2c.js} +0 -0
  275. /package/dist/esm-es5/{tokens.esm-70c16b84.js → tokens.esm-337782ae.js} +0 -0
@@ -0,0 +1,332 @@
1
+ import { h, Host, } from "@stencil/core";
2
+ import { BEM } from "../../../utils/bem";
3
+ import { inheritAttributes } from "../../../utils/attributes";
4
+ import { addEventListener, raf, removeEventListener } from "../../../utils/helpers";
5
+ let ids = 0;
6
+ export class SegmentItem {
7
+ constructor() {
8
+ this.segmentEl = null;
9
+ this.inheritedAttributes = {};
10
+ this.id = ids++;
11
+ this.updateVertical = (ev) => {
12
+ this.isVertical = ev.detail;
13
+ };
14
+ this.updateState = () => {
15
+ const { segmentEl } = this;
16
+ if (segmentEl) {
17
+ if (segmentEl.value === '' || segmentEl.value === undefined || segmentEl.value === null) {
18
+ const items = this.items;
19
+ if (items.length > 0) {
20
+ const first = items[0];
21
+ this.isFocusable = first === this.el;
22
+ }
23
+ }
24
+ else {
25
+ this.checked = segmentEl.value === this.value;
26
+ this.isFocusable = segmentEl.value === this.value;
27
+ }
28
+ if (segmentEl.disabled) {
29
+ this.disabled = true;
30
+ }
31
+ }
32
+ };
33
+ this.onSlottedItemsChange = () => {
34
+ /**
35
+ * When the slotted segment buttons change we need to
36
+ * ensure that the new segment buttons are checked if
37
+ * the value matches the segment button value.
38
+ */
39
+ this.checkSlotContent();
40
+ };
41
+ this.hasSlotContent = false;
42
+ this.isFocusable = false;
43
+ this.isVertical = false;
44
+ this.disabled = false;
45
+ this.invalid = false;
46
+ this.focused = false;
47
+ this.checked = false;
48
+ this.label = '';
49
+ this.value = 'bal-si-' + this.id;
50
+ }
51
+ valueChanged() {
52
+ this.updateState();
53
+ }
54
+ connectedCallback() {
55
+ const segmentEl = (this.segmentEl = this.el.closest('bal-segment'));
56
+ if (segmentEl) {
57
+ this.updateState();
58
+ addEventListener(segmentEl, 'balSelect', this.updateState);
59
+ addEventListener(segmentEl, 'balVertical', this.updateVertical);
60
+ }
61
+ }
62
+ disconnectedCallback() {
63
+ const segmentEl = this.segmentEl;
64
+ if (segmentEl) {
65
+ removeEventListener(segmentEl, 'balSelect', this.updateState);
66
+ removeEventListener(segmentEl, 'balVertical', this.updateVertical);
67
+ this.segmentEl = null;
68
+ }
69
+ }
70
+ componentWillLoad() {
71
+ this.inheritedAttributes = Object.assign({}, inheritAttributes(this.el, ['aria-label']));
72
+ }
73
+ componentDidLoad() {
74
+ raf(() => this.checkSlotContent());
75
+ }
76
+ /**
77
+ * @internal
78
+ * Focuses the native <button> element
79
+ * inside of ion-segment-button.
80
+ */
81
+ async setFocus() {
82
+ const { nativeEl } = this;
83
+ if (nativeEl !== undefined) {
84
+ nativeEl.focus();
85
+ }
86
+ }
87
+ get items() {
88
+ return this.allItems.filter(item => !item.disabled);
89
+ }
90
+ get allItems() {
91
+ const { segmentEl } = this;
92
+ if (segmentEl) {
93
+ return Array.from(segmentEl.querySelectorAll('bal-segment-item'));
94
+ }
95
+ return [];
96
+ }
97
+ isFirst() {
98
+ const { segmentEl } = this;
99
+ let items = this.items;
100
+ if (segmentEl && segmentEl.disabled) {
101
+ items = this.allItems;
102
+ }
103
+ if (items.length > 0) {
104
+ const first = items[0];
105
+ return first === this.el;
106
+ }
107
+ return false;
108
+ }
109
+ isLast() {
110
+ const { segmentEl } = this;
111
+ let items = this.items;
112
+ if (segmentEl && segmentEl.disabled) {
113
+ items = this.allItems;
114
+ }
115
+ if (items.length > 0) {
116
+ const last = items[items.length - 1];
117
+ return last === this.el;
118
+ }
119
+ return false;
120
+ }
121
+ checkSlotContent() {
122
+ const slot = this.el.querySelector('[part="slot"]');
123
+ const children = slot ? slot.innerHTML.trim() : '';
124
+ this.hasSlotContent = children.length > 0;
125
+ }
126
+ render() {
127
+ const { checked, focused, segmentEl, label, isFocusable } = this;
128
+ const block = BEM.block('segment-item');
129
+ const buttonBem = block.element('button');
130
+ const indicatorBem = block.element('indicator');
131
+ const invalid = this.invalid || (segmentEl && segmentEl.invalid);
132
+ const disabled = this.disabled || (segmentEl && segmentEl.disabled);
133
+ const vertical = this.isVertical;
134
+ 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)) })));
135
+ }
136
+ static get is() { return "bal-segment-item"; }
137
+ static get originalStyleUrls() {
138
+ return {
139
+ "$": ["bal-segment-item.sass"]
140
+ };
141
+ }
142
+ static get styleUrls() {
143
+ return {
144
+ "$": ["bal-segment-item.css"]
145
+ };
146
+ }
147
+ static get properties() {
148
+ return {
149
+ "disabled": {
150
+ "type": "boolean",
151
+ "mutable": true,
152
+ "complexType": {
153
+ "original": "boolean",
154
+ "resolved": "boolean",
155
+ "references": {}
156
+ },
157
+ "required": false,
158
+ "optional": false,
159
+ "docs": {
160
+ "tags": [],
161
+ "text": "If `true`, the user cannot interact with the segment button."
162
+ },
163
+ "attribute": "disabled",
164
+ "reflect": false,
165
+ "defaultValue": "false"
166
+ },
167
+ "invalid": {
168
+ "type": "boolean",
169
+ "mutable": true,
170
+ "complexType": {
171
+ "original": "boolean",
172
+ "resolved": "boolean",
173
+ "references": {}
174
+ },
175
+ "required": false,
176
+ "optional": false,
177
+ "docs": {
178
+ "tags": [],
179
+ "text": "If `true`, the segment is shown in red."
180
+ },
181
+ "attribute": "invalid",
182
+ "reflect": false,
183
+ "defaultValue": "false"
184
+ },
185
+ "focused": {
186
+ "type": "boolean",
187
+ "mutable": true,
188
+ "complexType": {
189
+ "original": "boolean",
190
+ "resolved": "boolean",
191
+ "references": {}
192
+ },
193
+ "required": false,
194
+ "optional": false,
195
+ "docs": {
196
+ "tags": [{
197
+ "name": "internal",
198
+ "text": "Sets focus state for key navigation"
199
+ }],
200
+ "text": ""
201
+ },
202
+ "attribute": "focused",
203
+ "reflect": false,
204
+ "defaultValue": "false"
205
+ },
206
+ "checked": {
207
+ "type": "boolean",
208
+ "mutable": true,
209
+ "complexType": {
210
+ "original": "boolean",
211
+ "resolved": "boolean",
212
+ "references": {}
213
+ },
214
+ "required": false,
215
+ "optional": false,
216
+ "docs": {
217
+ "tags": [{
218
+ "name": "internal",
219
+ "text": "Sets checked state for key navigation"
220
+ }],
221
+ "text": ""
222
+ },
223
+ "attribute": "checked",
224
+ "reflect": false,
225
+ "defaultValue": "false"
226
+ },
227
+ "label": {
228
+ "type": "string",
229
+ "mutable": false,
230
+ "complexType": {
231
+ "original": "string",
232
+ "resolved": "string",
233
+ "references": {}
234
+ },
235
+ "required": false,
236
+ "optional": false,
237
+ "docs": {
238
+ "tags": [],
239
+ "text": "Label of the segment control"
240
+ },
241
+ "attribute": "label",
242
+ "reflect": false,
243
+ "defaultValue": "''"
244
+ },
245
+ "value": {
246
+ "type": "any",
247
+ "mutable": false,
248
+ "complexType": {
249
+ "original": "SegmentValue",
250
+ "resolved": "number | string",
251
+ "references": {
252
+ "SegmentValue": {
253
+ "location": "import",
254
+ "path": "../bal-segment.types",
255
+ "id": "src/components/bal-segment/bal-segment.types.ts::SegmentValue"
256
+ }
257
+ }
258
+ },
259
+ "required": false,
260
+ "optional": false,
261
+ "docs": {
262
+ "tags": [],
263
+ "text": "The value of the segment button."
264
+ },
265
+ "attribute": "value",
266
+ "reflect": false,
267
+ "defaultValue": "'bal-si-' + this.id"
268
+ }
269
+ };
270
+ }
271
+ static get states() {
272
+ return {
273
+ "hasSlotContent": {},
274
+ "isFocusable": {},
275
+ "isVertical": {}
276
+ };
277
+ }
278
+ static get events() {
279
+ return [{
280
+ "method": "balBlur",
281
+ "name": "balBlur",
282
+ "bubbles": true,
283
+ "cancelable": true,
284
+ "composed": true,
285
+ "docs": {
286
+ "tags": [],
287
+ "text": "Emitted when the component was touched"
288
+ },
289
+ "complexType": {
290
+ "original": "BalEvents.BalSegmentBlurDetail",
291
+ "resolved": "FocusEvent",
292
+ "references": {
293
+ "BalEvents": {
294
+ "location": "global",
295
+ "id": "global::BalEvents"
296
+ }
297
+ }
298
+ }
299
+ }];
300
+ }
301
+ static get methods() {
302
+ return {
303
+ "setFocus": {
304
+ "complexType": {
305
+ "signature": "() => Promise<void>",
306
+ "parameters": [],
307
+ "references": {
308
+ "Promise": {
309
+ "location": "global",
310
+ "id": "global::Promise"
311
+ }
312
+ },
313
+ "return": "Promise<void>"
314
+ },
315
+ "docs": {
316
+ "text": "",
317
+ "tags": [{
318
+ "name": "internal",
319
+ "text": "Focuses the native <button> element\ninside of ion-segment-button."
320
+ }]
321
+ }
322
+ }
323
+ };
324
+ }
325
+ static get elementRef() { return "el"; }
326
+ static get watchers() {
327
+ return [{
328
+ "propName": "value",
329
+ "methodName": "valueChanged"
330
+ }];
331
+ }
332
+ }
@@ -0,0 +1 @@
1
+ :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{display:flex;background:var(--bal-segment-background);border-radius:var(--bal-radius-normal);gap:.125rem;gap:.125rem;padding:.25rem;width:fit-content}.bal-segment--invalid{background:var(--bal-segment-background-invalid)}.bal-segment--vertical{flex-direction:column;width:100%}.bal-segment--vertical .bal-segment-item__button{width:100%;flex:1}.bal-segment--vertical.bal-segment--scrollable{overflow:auto;max-height:240px}.bal-segment--expanded{width:100%;min-width:100%;justify-content:flex-start;align-items:center}.bal-segment--expanded .bal-segment-item,.bal-segment--expanded .bal-segment-item>button{flex:1;width:100%}.bal-segment--expanded .bal-segment-item .bal-content,.bal-segment--expanded .bal-segment-item>button .bal-content{justify-content:center;align-items:center}
@@ -0,0 +1,4 @@
1
+ /* eslint-disable no-unused-vars */
2
+ /* eslint-disable @typescript-eslint/no-unused-vars */
3
+ // eslint-disable-next-line @typescript-eslint/triple-slash-reference
4
+ /// <reference path="../../interfaces.d.ts" />