@telesign/boreal-web-components 0.1.0-alpha.5 → 0.1.0-alpha.6

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 (475) hide show
  1. package/components-build/bds-avatar.js +1 -1
  2. package/components-build/bds-breadcrumb-item.d.ts +11 -0
  3. package/components-build/bds-breadcrumb-item.js +1 -0
  4. package/components-build/bds-breadcrumb.d.ts +11 -0
  5. package/components-build/bds-breadcrumb.js +1 -0
  6. package/components-build/bds-button-group.js +1 -1
  7. package/components-build/bds-button.js +1 -1
  8. package/components-build/bds-checkbox-button.d.ts +11 -0
  9. package/components-build/bds-checkbox-button.js +1 -0
  10. package/components-build/bds-checkbox-card.js +1 -1
  11. package/components-build/bds-checkbox-group.d.ts +11 -0
  12. package/components-build/bds-checkbox-group.js +1 -0
  13. package/components-build/bds-checkbox.js +1 -1
  14. package/components-build/bds-dialog.js +1 -1
  15. package/components-build/bds-divider.js +1 -1
  16. package/components-build/bds-flag.js +1 -1
  17. package/components-build/bds-grid-item.js +1 -1
  18. package/components-build/bds-grid.js +1 -1
  19. package/components-build/bds-list-menu-item.js +1 -1
  20. package/components-build/bds-list-menu.js +1 -1
  21. package/components-build/bds-popover.js +1 -1
  22. package/components-build/bds-radio-button.js +1 -1
  23. package/components-build/bds-radio-card.js +1 -1
  24. package/components-build/bds-radio-group.js +1 -1
  25. package/components-build/bds-radio.js +1 -1
  26. package/components-build/bds-select.d.ts +11 -0
  27. package/components-build/bds-select.js +1 -0
  28. package/components-build/bds-slider.d.ts +11 -0
  29. package/components-build/bds-slider.js +1 -0
  30. package/components-build/bds-tag.js +1 -1
  31. package/components-build/bds-text-field.js +1 -1
  32. package/components-build/bds-toggle.js +1 -1
  33. package/components-build/bds-tooltip.js +1 -1
  34. package/components-build/bds-typography.js +1 -1
  35. package/components-build/p-B6e9eIHB.js +1 -0
  36. package/components-build/p-CJBdGD_4.js +1 -0
  37. package/components-build/p-DcR7mHFE.js +1 -0
  38. package/components-build/p-DdOPD9wW.js +1 -0
  39. package/components-build/{p-BSlaf0ff.js → p-DoNZM78n.js} +1 -1
  40. package/components-build/p-DrkDx75U.js +1 -0
  41. package/components-build/p-DuBzr05c.js +1 -0
  42. package/components-build/p-PmjPRW8X.js +1 -0
  43. package/components-build/p-cgdh1LO-.js +1 -0
  44. package/components-build/p-yLNcMg2E.js +1 -0
  45. package/custom-elements.json +2723 -841
  46. package/dist/boreal-web-components/boreal-web-components.esm.js +1 -1
  47. package/dist/boreal-web-components/css/boreal.css +60 -0
  48. package/dist/boreal-web-components/css/theme-connect.css +15 -0
  49. package/dist/boreal-web-components/css/theme-engage.css +15 -0
  50. package/dist/boreal-web-components/css/theme-protect.css +15 -0
  51. package/dist/boreal-web-components/css/theme-proximus.css +15 -0
  52. package/dist/boreal-web-components/{p-7bb88855.entry.js → p-02e53626.entry.js} +1 -1
  53. package/dist/boreal-web-components/p-0357450d.system.entry.js +1 -0
  54. package/dist/boreal-web-components/{p-efe159aa.entry.js → p-1250ba53.entry.js} +1 -1
  55. package/dist/boreal-web-components/p-1911b978.entry.js +1 -0
  56. package/dist/boreal-web-components/p-1mOd23lT.system.js +1 -0
  57. package/dist/boreal-web-components/{p-48ebbfbe.system.entry.js → p-25823f7d.system.entry.js} +1 -1
  58. package/dist/boreal-web-components/p-2db71382.system.entry.js +1 -0
  59. package/dist/boreal-web-components/p-367e40f9.entry.js +1 -0
  60. package/dist/boreal-web-components/p-3946d587.entry.js +1 -0
  61. package/dist/boreal-web-components/{p-4dc01078.system.entry.js → p-44b6fe6c.system.entry.js} +1 -1
  62. package/dist/boreal-web-components/{p-024d90b0.system.entry.js → p-48712a63.system.entry.js} +1 -1
  63. package/dist/boreal-web-components/{p-2adf2cd5.entry.js → p-49ea207a.entry.js} +1 -1
  64. package/dist/boreal-web-components/{p-7aff4c78.entry.js → p-4b028406.entry.js} +1 -1
  65. package/dist/boreal-web-components/p-4b615de8.system.entry.js +1 -0
  66. package/dist/boreal-web-components/{p-e0a41cab.system.entry.js → p-4f431941.system.entry.js} +1 -1
  67. package/dist/boreal-web-components/p-524421f7.system.entry.js +1 -0
  68. package/dist/boreal-web-components/p-530c8c7f.entry.js +1 -0
  69. package/dist/boreal-web-components/p-55aeff0c.system.entry.js +1 -0
  70. package/dist/boreal-web-components/p-5c8650b3.system.entry.js +1 -0
  71. package/dist/boreal-web-components/p-5e590291.system.entry.js +1 -0
  72. package/dist/boreal-web-components/p-5ee0841f.entry.js +1 -0
  73. package/dist/boreal-web-components/{p-93066db4.system.entry.js → p-65923619.system.entry.js} +1 -1
  74. package/dist/boreal-web-components/p-66ec16d9.entry.js +1 -0
  75. package/dist/boreal-web-components/{p-e55f2a8b.entry.js → p-714bf70d.entry.js} +1 -1
  76. package/dist/boreal-web-components/p-7626338e.system.entry.js +1 -0
  77. package/dist/boreal-web-components/p-7G4h4DI7.js +1 -0
  78. package/dist/boreal-web-components/p-800fc096.system.entry.js +1 -0
  79. package/dist/boreal-web-components/p-824485ad.entry.js +1 -0
  80. package/dist/boreal-web-components/p-8dfe3a9f.entry.js +1 -0
  81. package/dist/boreal-web-components/p-90022071.entry.js +1 -0
  82. package/dist/boreal-web-components/{p-7ebc67c9.entry.js → p-9d02057d.entry.js} +1 -1
  83. package/dist/boreal-web-components/{p-wREMI3WA.js → p-CcENtewr.js} +1 -1
  84. package/dist/boreal-web-components/p-Dk9dfU9-.system.js +1 -0
  85. package/dist/boreal-web-components/p-K7DvMlRo.system.js +1 -0
  86. package/dist/boreal-web-components/{p-DYlZcFrB.system.js → p-UEj9YHof.system.js} +1 -1
  87. package/dist/boreal-web-components/{p-147d6652.system.entry.js → p-b54fe67f.system.entry.js} +1 -1
  88. package/dist/boreal-web-components/p-bbcd3a30.system.entry.js +1 -0
  89. package/dist/boreal-web-components/p-bea25d3d.system.entry.js +1 -0
  90. package/dist/boreal-web-components/p-bed506d3.entry.js +1 -0
  91. package/dist/boreal-web-components/p-bfd62034.system.entry.js +1 -0
  92. package/dist/boreal-web-components/p-c07d6b82.system.entry.js +1 -0
  93. package/dist/boreal-web-components/{p-7d3a8f61.entry.js → p-cc5c359f.entry.js} +1 -1
  94. package/dist/boreal-web-components/p-cgdh1LO-.js +1 -0
  95. package/dist/boreal-web-components/p-d2b6ae79.entry.js +1 -0
  96. package/dist/boreal-web-components/p-e21b8416.entry.js +1 -0
  97. package/dist/boreal-web-components/p-e4364a44.system.entry.js +1 -0
  98. package/dist/boreal-web-components/p-e51407b2.system.entry.js +1 -0
  99. package/dist/boreal-web-components/p-e8cde179.system.entry.js +1 -0
  100. package/dist/boreal-web-components/p-eecc3028.system.entry.js +1 -0
  101. package/dist/boreal-web-components/p-f3bd824d.system.entry.js +1 -0
  102. package/dist/boreal-web-components/p-f6eabb16.entry.js +1 -0
  103. package/dist/boreal-web-components/p-f7acf6e5.system.entry.js +1 -0
  104. package/dist/boreal-web-components/{p-6629be14.entry.js → p-f9560509.entry.js} +1 -1
  105. package/dist/boreal-web-components/p-fa128cad.system.entry.js +1 -0
  106. package/dist/boreal-web-components/p-fab1a01d.entry.js +1 -0
  107. package/dist/boreal-web-components/p-fb9ba833.entry.js +1 -0
  108. package/dist/boreal-web-components/p-fbe0c9f2.entry.js +1 -0
  109. package/dist/boreal-web-components/p-fbe88555.entry.js +1 -0
  110. package/dist/boreal-web-components/p-fc1fa966.system.entry.js +1 -0
  111. package/dist/boreal-web-components/p-fc4ffa0e.entry.js +1 -0
  112. package/dist/boreal-web-components/p-fef13445.entry.js +1 -0
  113. package/dist/boreal-web-components/p-qGhMe8Hk.js +1 -0
  114. package/dist/boreal-web-components/p-vzZJGcYF.system.js +1 -1
  115. package/dist/boreal-web-components/scss/maps/_theme-connect.scss +16 -1
  116. package/dist/boreal-web-components/scss/maps/_theme-engage.scss +16 -1
  117. package/dist/boreal-web-components/scss/maps/_theme-protect.scss +16 -1
  118. package/dist/boreal-web-components/scss/maps/_theme-proximus.scss +16 -1
  119. package/dist/boreal-web-components/scss/variables/_theme-connect.scss +16 -1
  120. package/dist/boreal-web-components/scss/variables/_theme-engage.scss +16 -1
  121. package/dist/boreal-web-components/scss/variables/_theme-protect.scss +16 -1
  122. package/dist/boreal-web-components/scss/variables/_theme-proximus.scss +16 -1
  123. package/dist/cjs/KeyboardController-B_g3peyB.js +1067 -0
  124. package/dist/cjs/Keys-DXn16dlA.js +34 -0
  125. package/dist/cjs/bds-avatar.cjs.entry.js +1 -1
  126. package/dist/cjs/bds-breadcrumb-item.cjs.entry.js +106 -0
  127. package/dist/cjs/bds-breadcrumb.cjs.entry.js +127 -0
  128. package/dist/cjs/bds-button-group.cjs.entry.js +23 -2
  129. package/dist/cjs/bds-button.cjs.entry.js +33 -6
  130. package/dist/cjs/bds-checkbox-button.cjs.entry.js +119 -0
  131. package/dist/cjs/bds-checkbox-card.cjs.entry.js +37 -23
  132. package/dist/cjs/bds-checkbox-group.cjs.entry.js +292 -0
  133. package/dist/cjs/bds-checkbox.cjs.entry.js +62 -31
  134. package/dist/cjs/bds-dialog.cjs.entry.js +3 -3
  135. package/dist/cjs/bds-divider.cjs.entry.js +1 -1
  136. package/dist/cjs/bds-flag.cjs.entry.js +1 -1
  137. package/dist/cjs/bds-grid-item.cjs.entry.js +1 -1
  138. package/dist/cjs/bds-grid.cjs.entry.js +1 -1
  139. package/dist/cjs/bds-list-menu-item.cjs.entry.js +19 -8
  140. package/dist/cjs/bds-list-menu.cjs.entry.js +42 -7
  141. package/dist/cjs/bds-popover.cjs.entry.js +13 -5
  142. package/dist/cjs/bds-radio-button.cjs.entry.js +2 -2
  143. package/dist/cjs/bds-radio-card.cjs.entry.js +2 -2
  144. package/dist/cjs/bds-radio-group.cjs.entry.js +14 -8
  145. package/dist/cjs/bds-radio.cjs.entry.js +2 -2
  146. package/dist/cjs/bds-select.cjs.entry.js +394 -0
  147. package/dist/cjs/bds-slider.cjs.entry.js +655 -0
  148. package/dist/cjs/bds-tag.cjs.entry.js +1 -1
  149. package/dist/cjs/bds-text-field.cjs.entry.js +8 -3
  150. package/dist/cjs/bds-toggle.cjs.entry.js +1 -1
  151. package/dist/cjs/bds-tooltip_2.cjs.entry.js +7 -5
  152. package/dist/cjs/boreal-web-components.cjs.js +1 -1
  153. package/dist/cjs/checkbox-form-association-DTEpHXUD.js +43 -0
  154. package/dist/cjs/{getOffset-k4ezB-eT.js → getOffset-CsDHFjPW.js} +1 -1
  155. package/dist/cjs/loader.cjs.js +1 -1
  156. package/dist/collection/collection-manifest.json +16 -10
  157. package/dist/collection/components/actions/bds-button/bds-button.css +36 -36
  158. package/dist/collection/components/actions/bds-button/bds-button.js +29 -5
  159. package/dist/collection/components/actions/bds-button-group/bds-button-group.css +1 -1
  160. package/dist/collection/components/actions/bds-button-group/bds-button-group.js +21 -2
  161. package/dist/collection/components/actions/bds-list-menu/bds-list-menu/bds-list-menu.js +136 -3
  162. package/dist/collection/components/actions/bds-list-menu/bds-list-menu-item/bds-list-menu-item.css +5 -2
  163. package/dist/collection/components/actions/bds-list-menu/bds-list-menu-item/bds-list-menu-item.js +20 -7
  164. package/dist/collection/components/actions/bds-toggle/bds-toggle.css +3 -3
  165. package/dist/collection/components/feedback/bds-tag/bds-tag.css +6 -6
  166. package/dist/collection/components/forms/bds-checkbox/bds-checkbox/bds-checkbox.css +132 -0
  167. package/dist/collection/components/forms/bds-checkbox/{bds-checkbox.js → bds-checkbox/bds-checkbox.js} +135 -38
  168. package/dist/collection/components/forms/bds-checkbox/bds-checkbox-button/bds-checkbox-button.css +113 -0
  169. package/dist/collection/components/forms/bds-checkbox/bds-checkbox-button/bds-checkbox-button.js +382 -0
  170. package/dist/collection/components/forms/{bds-checkbox-card → bds-checkbox/bds-checkbox-card}/bds-checkbox-card.css +15 -3
  171. package/dist/collection/components/forms/{bds-checkbox-card → bds-checkbox/bds-checkbox-card}/bds-checkbox-card.js +97 -51
  172. package/dist/collection/components/forms/bds-checkbox/bds-checkbox-group/bds-checkbox-group.css +55 -0
  173. package/dist/collection/components/forms/bds-checkbox/bds-checkbox-group/bds-checkbox-group.js +648 -0
  174. package/dist/collection/components/forms/bds-checkbox/bds-checkbox-group/types/enum.js +5 -0
  175. package/dist/collection/components/forms/bds-checkbox/bds-checkbox-group/types/index.js +3 -0
  176. package/dist/collection/components/forms/bds-checkbox/utils/checkbox-form-association.js +39 -0
  177. package/dist/collection/components/forms/bds-checkbox/utils/index.js +1 -0
  178. package/dist/collection/components/forms/bds-flag/bds-flag.js +1 -1
  179. package/dist/collection/components/forms/bds-radio/{bds-radio.css → bds-radio/bds-radio.css} +3 -3
  180. package/dist/collection/components/forms/bds-radio/{bds-radio.js → bds-radio/bds-radio.js} +2 -2
  181. package/dist/collection/components/forms/{bds-radio-button → bds-radio/bds-radio-button}/bds-radio-button.css +12 -8
  182. package/dist/collection/components/forms/{bds-radio-button → bds-radio/bds-radio-button}/bds-radio-button.js +2 -2
  183. package/dist/collection/components/forms/{bds-radio-card → bds-radio/bds-radio-card}/bds-radio-card.css +2 -2
  184. package/dist/collection/components/forms/{bds-radio-card → bds-radio/bds-radio-card}/bds-radio-card.js +9 -9
  185. package/dist/collection/components/forms/{bds-radio-group → bds-radio/bds-radio-group}/bds-radio-group.js +51 -23
  186. package/dist/collection/components/forms/bds-select/bds-select.css +23 -0
  187. package/dist/collection/components/forms/bds-select/bds-select.js +431 -0
  188. package/dist/collection/components/forms/bds-slider/bds-slider.css +213 -0
  189. package/dist/collection/components/forms/bds-slider/bds-slider.js +847 -0
  190. package/dist/collection/components/forms/bds-slider/helpers/SliderDOMController.js +61 -0
  191. package/dist/collection/components/forms/bds-slider/helpers/SliderService.js +93 -0
  192. package/dist/collection/components/forms/bds-slider/helpers/index.js +3 -0
  193. package/dist/collection/components/forms/bds-slider/helpers/parseValues.js +43 -0
  194. package/dist/collection/components/forms/bds-slider/types/ISlider.js +1 -0
  195. package/dist/collection/components/forms/bds-slider/types/ISliderOptions.js +1 -0
  196. package/dist/collection/components/forms/bds-slider/types/enum.js +16 -0
  197. package/dist/collection/components/forms/bds-slider/types/index.js +5 -0
  198. package/dist/collection/components/forms/bds-slider/types/types.js +1 -0
  199. package/dist/collection/components/forms/bds-text-field/bds-text-field.css +10 -3
  200. package/dist/collection/components/forms/bds-text-field/bds-text-field.js +47 -2
  201. package/dist/collection/components/helpers/bds-divider/bds-divider.js +1 -1
  202. package/dist/collection/components/images-icons/bds-avatar/bds-avatar.js +1 -1
  203. package/dist/collection/components/layouts/bds-grid/{grid → bds-grid}/bds-grid.js +3 -3
  204. package/dist/collection/components/layouts/bds-grid/bds-grid/types/IGrid.js +1 -0
  205. package/dist/collection/components/layouts/bds-grid/bds-grid/types/types.js +1 -0
  206. package/dist/collection/components/layouts/bds-grid/{grid-item → bds-grid-item}/bds-grid-item.js +9 -9
  207. package/dist/collection/components/layouts/bds-grid/bds-grid-item/types/IGridItem.js +1 -0
  208. package/dist/collection/components/layouts/bds-grid/bds-grid-item/types/types.js +1 -0
  209. package/dist/collection/components/navigation/bds-breadcrumb/bds-breadcrumb.css +21 -0
  210. package/dist/collection/components/navigation/bds-breadcrumb/bds-breadcrumb.js +292 -0
  211. package/dist/collection/components/navigation/bds-breadcrumb/types/IBreadcrumb.js +1 -0
  212. package/dist/collection/components/navigation/bds-breadcrumb-item/bds-breadcrumb-item.css +64 -0
  213. package/dist/collection/components/navigation/bds-breadcrumb-item/bds-breadcrumb-item.js +369 -0
  214. package/dist/collection/components/navigation/bds-breadcrumb-item/types/IBreadcrumbItem.js +1 -0
  215. package/dist/collection/components/overlays/bds-dialog/bds-dialog.css +1 -1
  216. package/dist/collection/components/overlays/bds-dialog/bds-dialog.js +2 -2
  217. package/dist/collection/components/overlays/bds-popover/bds-popover.js +49 -3
  218. package/dist/collection/components/overlays/bds-tooltip/bds-tooltip.js +1 -1
  219. package/dist/collection/components/titles-text/bds-typography/bds-typography.js +30 -47
  220. package/dist/collection/components/titles-text/bds-typography/utils/bds-typography-utils.js +1 -1
  221. package/dist/collection/css/boreal.css +60 -0
  222. package/dist/collection/css/theme-connect.css +15 -0
  223. package/dist/collection/css/theme-engage.css +15 -0
  224. package/dist/collection/css/theme-protect.css +15 -0
  225. package/dist/collection/css/theme-proximus.css +15 -0
  226. package/dist/collection/mixins/menu-behavior.mixin.js +1 -1
  227. package/dist/collection/scss/maps/_theme-connect.scss +16 -1
  228. package/dist/collection/scss/maps/_theme-engage.scss +16 -1
  229. package/dist/collection/scss/maps/_theme-protect.scss +16 -1
  230. package/dist/collection/scss/maps/_theme-proximus.scss +16 -1
  231. package/dist/collection/scss/variables/_theme-connect.scss +16 -1
  232. package/dist/collection/scss/variables/_theme-engage.scss +16 -1
  233. package/dist/collection/scss/variables/_theme-protect.scss +16 -1
  234. package/dist/collection/scss/variables/_theme-proximus.scss +16 -1
  235. package/dist/collection/types/index.js +0 -1
  236. package/dist/collection/utils/a11y/index.js +4 -0
  237. package/dist/collection/utils/a11y/keyboard/KeyboardController.js +566 -0
  238. package/dist/collection/utils/a11y/keyboard/_constants.js +30 -0
  239. package/dist/collection/utils/a11y/keyboard/focus/aria-activedescendant.js +41 -0
  240. package/dist/collection/utils/a11y/keyboard/focus/resolve.js +48 -0
  241. package/dist/collection/utils/a11y/keyboard/focus/roving-tabindex.js +55 -0
  242. package/dist/collection/utils/a11y/keyboard/navigation/grid-navigation.js +194 -0
  243. package/dist/collection/utils/a11y/keyboard/navigation/linear-navigation.js +137 -0
  244. package/dist/collection/utils/a11y/keyboard/types/IKeyboardController.js +1 -0
  245. package/dist/collection/utils/a11y/keyboard/types/index.js +2 -0
  246. package/dist/collection/utils/a11y/keyboard/types/types.js +1 -0
  247. package/dist/collection/utils/constants/common/Keys.js +25 -6
  248. package/dist/collection/utils/dom/elements.js +63 -0
  249. package/dist/css/boreal.css +60 -0
  250. package/dist/css/theme-connect.css +15 -0
  251. package/dist/css/theme-engage.css +15 -0
  252. package/dist/css/theme-protect.css +15 -0
  253. package/dist/css/theme-proximus.css +15 -0
  254. package/dist/esm/KeyboardController-DcnXb5F5.js +1064 -0
  255. package/dist/esm/Keys-7G4h4DI7.js +31 -0
  256. package/dist/esm/bds-avatar.entry.js +1 -1
  257. package/dist/esm/bds-breadcrumb-item.entry.js +104 -0
  258. package/dist/esm/bds-breadcrumb.entry.js +125 -0
  259. package/dist/esm/bds-button-group.entry.js +23 -2
  260. package/dist/esm/bds-button.entry.js +33 -6
  261. package/dist/esm/bds-checkbox-button.entry.js +117 -0
  262. package/dist/esm/bds-checkbox-card.entry.js +37 -23
  263. package/dist/esm/bds-checkbox-group.entry.js +290 -0
  264. package/dist/esm/bds-checkbox.entry.js +62 -31
  265. package/dist/esm/bds-dialog.entry.js +3 -3
  266. package/dist/esm/bds-divider.entry.js +1 -1
  267. package/dist/esm/bds-flag.entry.js +1 -1
  268. package/dist/esm/bds-grid-item.entry.js +1 -1
  269. package/dist/esm/bds-grid.entry.js +1 -1
  270. package/dist/esm/bds-list-menu-item.entry.js +19 -8
  271. package/dist/esm/bds-list-menu.entry.js +38 -3
  272. package/dist/esm/bds-popover.entry.js +13 -5
  273. package/dist/esm/bds-radio-button.entry.js +2 -2
  274. package/dist/esm/bds-radio-card.entry.js +2 -2
  275. package/dist/esm/bds-radio-group.entry.js +14 -8
  276. package/dist/esm/bds-radio.entry.js +2 -2
  277. package/dist/esm/bds-select.entry.js +392 -0
  278. package/dist/esm/bds-slider.entry.js +653 -0
  279. package/dist/esm/bds-tag.entry.js +1 -1
  280. package/dist/esm/bds-text-field.entry.js +8 -3
  281. package/dist/esm/bds-toggle.entry.js +1 -1
  282. package/dist/esm/bds-tooltip_2.entry.js +7 -5
  283. package/dist/esm/boreal-web-components.js +1 -1
  284. package/dist/esm/checkbox-form-association-cgdh1LO-.js +41 -0
  285. package/dist/esm/{getOffset-BYS3c13B.js → getOffset-DCLpJBcp.js} +1 -1
  286. package/dist/esm/loader.js +1 -1
  287. package/dist/esm-es5/KeyboardController-DcnXb5F5.js +1 -0
  288. package/dist/esm-es5/Keys-7G4h4DI7.js +1 -0
  289. package/dist/esm-es5/bds-avatar.entry.js +1 -1
  290. package/dist/esm-es5/bds-breadcrumb-item.entry.js +1 -0
  291. package/dist/esm-es5/bds-breadcrumb.entry.js +1 -0
  292. package/dist/esm-es5/bds-button-group.entry.js +1 -1
  293. package/dist/esm-es5/bds-button.entry.js +1 -1
  294. package/dist/esm-es5/bds-checkbox-button.entry.js +1 -0
  295. package/dist/esm-es5/bds-checkbox-card.entry.js +1 -1
  296. package/dist/esm-es5/bds-checkbox-group.entry.js +1 -0
  297. package/dist/esm-es5/bds-checkbox.entry.js +1 -1
  298. package/dist/esm-es5/bds-dialog.entry.js +1 -1
  299. package/dist/esm-es5/bds-divider.entry.js +1 -1
  300. package/dist/esm-es5/bds-flag.entry.js +1 -1
  301. package/dist/esm-es5/bds-grid-item.entry.js +1 -1
  302. package/dist/esm-es5/bds-grid.entry.js +1 -1
  303. package/dist/esm-es5/bds-list-menu-item.entry.js +1 -1
  304. package/dist/esm-es5/bds-list-menu.entry.js +1 -1
  305. package/dist/esm-es5/bds-popover.entry.js +1 -1
  306. package/dist/esm-es5/bds-radio-button.entry.js +1 -1
  307. package/dist/esm-es5/bds-radio-card.entry.js +1 -1
  308. package/dist/esm-es5/bds-radio-group.entry.js +1 -1
  309. package/dist/esm-es5/bds-radio.entry.js +1 -1
  310. package/dist/esm-es5/bds-select.entry.js +1 -0
  311. package/dist/esm-es5/bds-slider.entry.js +1 -0
  312. package/dist/esm-es5/bds-tag.entry.js +1 -1
  313. package/dist/esm-es5/bds-text-field.entry.js +1 -1
  314. package/dist/esm-es5/bds-toggle.entry.js +1 -1
  315. package/dist/esm-es5/bds-tooltip_2.entry.js +1 -1
  316. package/dist/esm-es5/boreal-web-components.js +1 -1
  317. package/dist/esm-es5/checkbox-form-association-cgdh1LO-.js +1 -0
  318. package/dist/esm-es5/{getOffset-BYS3c13B.js → getOffset-DCLpJBcp.js} +1 -1
  319. package/dist/esm-es5/loader.js +1 -1
  320. package/dist/scss/maps/_theme-connect.scss +16 -1
  321. package/dist/scss/maps/_theme-engage.scss +16 -1
  322. package/dist/scss/maps/_theme-protect.scss +16 -1
  323. package/dist/scss/maps/_theme-proximus.scss +16 -1
  324. package/dist/scss/variables/_theme-connect.scss +16 -1
  325. package/dist/scss/variables/_theme-engage.scss +16 -1
  326. package/dist/scss/variables/_theme-protect.scss +16 -1
  327. package/dist/scss/variables/_theme-proximus.scss +16 -1
  328. package/dist/types/components/actions/bds-button/bds-button.d.ts +4 -0
  329. package/dist/types/components/actions/bds-button-group/bds-button-group.d.ts +4 -0
  330. package/dist/types/components/actions/bds-list-menu/bds-list-menu/bds-list-menu.d.ts +13 -0
  331. package/dist/types/components/actions/bds-list-menu/bds-list-menu/types/IListMenu.d.ts +3 -0
  332. package/dist/types/components/actions/bds-list-menu/bds-list-menu-item/bds-list-menu-item.d.ts +4 -1
  333. package/dist/types/components/actions/bds-list-menu/bds-list-menu-item/types/IListMenuItem.d.ts +1 -0
  334. package/dist/types/components/actions/bds-toggle/types/IToggle.d.ts +1 -1
  335. package/dist/types/components/forms/bds-checkbox/{bds-checkbox.d.ts → bds-checkbox/bds-checkbox.d.ts} +23 -10
  336. package/dist/types/components/forms/bds-checkbox/bds-checkbox-button/bds-checkbox-button.d.ts +68 -0
  337. package/dist/types/components/forms/bds-checkbox/bds-checkbox-button/types/ICheckboxButton.d.ts +15 -0
  338. package/dist/types/components/forms/{bds-checkbox-card → bds-checkbox/bds-checkbox-card}/bds-checkbox-card.d.ts +15 -22
  339. package/dist/types/components/forms/bds-checkbox/bds-checkbox-card/types/ICheckboxCard.d.ts +9 -0
  340. package/dist/types/components/forms/bds-checkbox/bds-checkbox-group/bds-checkbox-group.d.ts +86 -0
  341. package/dist/types/components/forms/bds-checkbox/bds-checkbox-group/types/ICheckboxGroup.d.ts +27 -0
  342. package/dist/types/components/forms/bds-checkbox/bds-checkbox-group/types/enum.d.ts +6 -0
  343. package/dist/types/components/forms/bds-checkbox/bds-checkbox-group/types/index.d.ts +4 -0
  344. package/dist/types/components/forms/bds-checkbox/bds-checkbox-group/types/types.d.ts +4 -0
  345. package/dist/types/components/forms/bds-checkbox/types/ICheckbox.d.ts +7 -22
  346. package/dist/types/components/forms/bds-checkbox/utils/checkbox-form-association.d.ts +10 -0
  347. package/dist/types/components/forms/bds-checkbox/utils/index.d.ts +2 -0
  348. package/dist/types/components/forms/bds-radio/{bds-radio.d.ts → bds-radio/bds-radio.d.ts} +1 -1
  349. package/dist/types/components/forms/{bds-radio-button → bds-radio/bds-radio-button}/bds-radio-button.d.ts +1 -1
  350. package/dist/types/components/forms/{bds-radio-button → bds-radio/bds-radio-button}/types/IRadioButton.d.ts +1 -0
  351. package/dist/types/components/forms/{bds-radio-card → bds-radio/bds-radio-card}/bds-radio-card.d.ts +1 -1
  352. package/dist/types/components/forms/{bds-radio-group → bds-radio/bds-radio-group}/bds-radio-group.d.ts +13 -10
  353. package/dist/types/components/forms/bds-radio/bds-radio-group/types/IRadioGroup.d.ts +20 -0
  354. package/dist/types/components/forms/bds-select/bds-select.d.ts +98 -0
  355. package/dist/types/components/forms/bds-select/types/ISelect.d.ts +6 -0
  356. package/dist/types/components/forms/bds-slider/bds-slider.d.ts +176 -0
  357. package/dist/types/components/forms/bds-slider/helpers/SliderDOMController.d.ts +38 -0
  358. package/dist/types/components/forms/bds-slider/helpers/SliderService.d.ts +44 -0
  359. package/dist/types/components/forms/bds-slider/helpers/index.d.ts +4 -0
  360. package/dist/types/components/forms/bds-slider/helpers/parseValues.d.ts +18 -0
  361. package/dist/types/components/forms/bds-slider/types/ChangeDetail.d.ts +9 -0
  362. package/dist/types/components/forms/bds-slider/types/ISlider.d.ts +17 -0
  363. package/dist/types/components/forms/bds-slider/types/ISliderOptions.d.ts +31 -0
  364. package/dist/types/components/forms/bds-slider/types/enum.d.ts +17 -0
  365. package/dist/types/components/forms/bds-slider/types/index.d.ts +6 -0
  366. package/dist/types/components/forms/bds-slider/types/types.d.ts +5 -0
  367. package/dist/types/components/forms/bds-text-field/bds-text-field.d.ts +4 -0
  368. package/dist/types/components/navigation/bds-breadcrumb/bds-breadcrumb.d.ts +57 -0
  369. package/dist/types/components/navigation/bds-breadcrumb/types/IBreadcrumb.d.ts +17 -0
  370. package/dist/types/components/navigation/bds-breadcrumb-item/bds-breadcrumb-item.d.ts +83 -0
  371. package/dist/types/components/navigation/bds-breadcrumb-item/types/IBreadcrumbItem.d.ts +20 -0
  372. package/dist/types/components/overlays/bds-popover/bds-popover.d.ts +4 -0
  373. package/dist/types/components/titles-text/bds-typography/bds-typography.d.ts +2 -46
  374. package/dist/types/components/titles-text/bds-typography/types/ITypography.d.ts +1 -0
  375. package/dist/types/components.d.ts +1136 -277
  376. package/dist/types/types/form.d.ts +24 -0
  377. package/dist/types/types/index.d.ts +0 -1
  378. package/dist/types/utils/a11y/index.d.ts +4 -0
  379. package/dist/types/utils/a11y/keyboard/KeyboardController.d.ts +321 -0
  380. package/dist/types/utils/a11y/keyboard/_constants.d.ts +28 -0
  381. package/dist/types/utils/a11y/keyboard/focus/aria-activedescendant.d.ts +17 -0
  382. package/dist/types/utils/a11y/keyboard/focus/resolve.d.ts +23 -0
  383. package/dist/types/utils/a11y/keyboard/focus/roving-tabindex.d.ts +20 -0
  384. package/dist/types/utils/a11y/keyboard/navigation/grid-navigation.d.ts +9 -0
  385. package/dist/types/utils/a11y/keyboard/navigation/linear-navigation.d.ts +13 -0
  386. package/dist/types/utils/a11y/keyboard/types/IKeyboardController.d.ts +125 -0
  387. package/dist/types/utils/a11y/keyboard/types/index.d.ts +3 -0
  388. package/dist/types/utils/a11y/keyboard/types/types.d.ts +6 -0
  389. package/dist/types/utils/constants/common/Keys.d.ts +23 -6
  390. package/dist/types/utils/dom/elements.d.ts +41 -0
  391. package/package.json +1 -1
  392. package/components-build/p-Cbibqaz0.js +0 -1
  393. package/components-build/p-ClR-wgiT.js +0 -1
  394. package/components-build/p-N_tqtRV2.js +0 -1
  395. package/components-build/p-bAMuJ4Jx.js +0 -1
  396. package/components-build/p-c2z3tneT.js +0 -1
  397. package/components-build/p-dz9-Q2N8.js +0 -1
  398. package/components-build/p-iq2UuV7c.js +0 -1
  399. package/dist/boreal-web-components/p-06DrzEMB.system.js +0 -1
  400. package/dist/boreal-web-components/p-11e4c0ec.system.entry.js +0 -1
  401. package/dist/boreal-web-components/p-148d510f.entry.js +0 -1
  402. package/dist/boreal-web-components/p-277f142e.system.entry.js +0 -1
  403. package/dist/boreal-web-components/p-2be4aa3a.system.entry.js +0 -1
  404. package/dist/boreal-web-components/p-340896b2.entry.js +0 -1
  405. package/dist/boreal-web-components/p-3d4ce8eb.system.entry.js +0 -1
  406. package/dist/boreal-web-components/p-44a8fde5.entry.js +0 -1
  407. package/dist/boreal-web-components/p-5681b294.system.entry.js +0 -1
  408. package/dist/boreal-web-components/p-5ed75075.entry.js +0 -1
  409. package/dist/boreal-web-components/p-635f676b.system.entry.js +0 -1
  410. package/dist/boreal-web-components/p-68b83680.system.entry.js +0 -1
  411. package/dist/boreal-web-components/p-6a60d134.system.entry.js +0 -1
  412. package/dist/boreal-web-components/p-7e672cce.entry.js +0 -1
  413. package/dist/boreal-web-components/p-81401e2a.system.entry.js +0 -1
  414. package/dist/boreal-web-components/p-8289e506.entry.js +0 -1
  415. package/dist/boreal-web-components/p-82d15372.entry.js +0 -1
  416. package/dist/boreal-web-components/p-851c06f2.entry.js +0 -1
  417. package/dist/boreal-web-components/p-8a3716ec.entry.js +0 -1
  418. package/dist/boreal-web-components/p-8f4f8af0.system.entry.js +0 -1
  419. package/dist/boreal-web-components/p-DlYG-OVB.js +0 -1
  420. package/dist/boreal-web-components/p-DpnBDSUm.system.js +0 -1
  421. package/dist/boreal-web-components/p-a73659ac.system.entry.js +0 -1
  422. package/dist/boreal-web-components/p-b2ad9535.system.entry.js +0 -1
  423. package/dist/boreal-web-components/p-d4c30d2b.entry.js +0 -1
  424. package/dist/boreal-web-components/p-db0c10b9.system.entry.js +0 -1
  425. package/dist/boreal-web-components/p-dca16a3d.entry.js +0 -1
  426. package/dist/boreal-web-components/p-de846c43.system.entry.js +0 -1
  427. package/dist/boreal-web-components/p-df087e23.system.entry.js +0 -1
  428. package/dist/boreal-web-components/p-dfb4854e.entry.js +0 -1
  429. package/dist/boreal-web-components/p-dz9-Q2N8.js +0 -1
  430. package/dist/boreal-web-components/p-e09b4d14.system.entry.js +0 -1
  431. package/dist/boreal-web-components/p-e7af1e1a.entry.js +0 -1
  432. package/dist/boreal-web-components/p-f792aa74.entry.js +0 -1
  433. package/dist/cjs/Keys-rKl2za5q.js +0 -18
  434. package/dist/cjs/menu-BxKaEajh.js +0 -8
  435. package/dist/collection/components/forms/bds-checkbox/bds-checkbox.css +0 -91
  436. package/dist/esm/Keys-DlYG-OVB.js +0 -16
  437. package/dist/esm/menu-dz9-Q2N8.js +0 -6
  438. package/dist/esm-es5/Keys-DlYG-OVB.js +0 -1
  439. package/dist/esm-es5/menu-dz9-Q2N8.js +0 -1
  440. package/dist/types/components/forms/bds-checkbox-card/types/ICheckboxCard.d.ts +0 -8
  441. package/dist/types/components/forms/bds-radio-group/types/IRadioGroup.d.ts +0 -19
  442. package/dist/types/types/IFormProps.d.ts +0 -25
  443. /package/dist/collection/components/forms/{bds-checkbox-card/types/ICheckboxCard.js → bds-checkbox/bds-checkbox-button/types/ICheckboxButton.js} +0 -0
  444. /package/dist/collection/components/forms/{bds-radio-button/types/IRadioButton.js → bds-checkbox/bds-checkbox-card/types/ICheckboxCard.js} +0 -0
  445. /package/dist/collection/components/forms/{bds-radio-card/types/IRadioCard.js → bds-checkbox/bds-checkbox-group/types/ICheckboxGroup.js} +0 -0
  446. /package/dist/collection/components/forms/{bds-radio-group → bds-checkbox/bds-checkbox-group}/types/types.js +0 -0
  447. /package/dist/collection/components/{layouts/bds-grid/grid/types/IGrid.js → forms/bds-radio/bds-radio/types/IRadio.js} +0 -0
  448. /package/dist/collection/components/forms/{bds-radio-group/types/IRadioGroup.js → bds-radio/bds-radio-button/types/IRadioButton.js} +0 -0
  449. /package/dist/collection/components/forms/bds-radio/{types/IRadio.js → bds-radio-card/types/IRadioCard.js} +0 -0
  450. /package/dist/collection/components/forms/{bds-radio-group → bds-radio/bds-radio-group}/bds-radio-group.css +0 -0
  451. /package/dist/collection/components/{layouts/bds-grid/grid-item/types/IGridItem.js → forms/bds-radio/bds-radio-group/types/IRadioGroup.js} +0 -0
  452. /package/dist/collection/components/forms/{bds-radio-group → bds-radio/bds-radio-group}/types/enum.js +0 -0
  453. /package/dist/collection/components/{layouts/bds-grid/grid-item → forms/bds-radio/bds-radio-group}/types/types.js +0 -0
  454. /package/dist/collection/components/{layouts/bds-grid/grid/types/types.js → forms/bds-select/types/ISelect.js} +0 -0
  455. /package/dist/collection/{types/IFormProps.js → components/forms/bds-slider/types/ChangeDetail.js} +0 -0
  456. /package/dist/collection/components/layouts/bds-grid/{grid → bds-grid}/bds-grid.css +0 -0
  457. /package/dist/collection/components/layouts/bds-grid/{grid → bds-grid}/types/enum.js +0 -0
  458. /package/dist/collection/components/layouts/bds-grid/{grid → bds-grid}/types/index.js +0 -0
  459. /package/dist/collection/components/layouts/bds-grid/{grid-item → bds-grid-item}/bds-grid-item.css +0 -0
  460. /package/dist/collection/components/layouts/bds-grid/{grid-item → bds-grid-item}/types/enum.js +0 -0
  461. /package/dist/collection/components/layouts/bds-grid/{grid-item → bds-grid-item}/types/index.js +0 -0
  462. /package/dist/types/components/forms/bds-radio/{types → bds-radio/types}/IRadio.d.ts +0 -0
  463. /package/dist/types/components/forms/{bds-radio-card → bds-radio/bds-radio-card}/types/IRadioCard.d.ts +0 -0
  464. /package/dist/types/components/forms/{bds-radio-group → bds-radio/bds-radio-group}/types/enum.d.ts +0 -0
  465. /package/dist/types/components/forms/{bds-radio-group → bds-radio/bds-radio-group}/types/types.d.ts +0 -0
  466. /package/dist/types/components/layouts/bds-grid/{grid → bds-grid}/bds-grid.d.ts +0 -0
  467. /package/dist/types/components/layouts/bds-grid/{grid → bds-grid}/types/IGrid.d.ts +0 -0
  468. /package/dist/types/components/layouts/bds-grid/{grid → bds-grid}/types/enum.d.ts +0 -0
  469. /package/dist/types/components/layouts/bds-grid/{grid → bds-grid}/types/index.d.ts +0 -0
  470. /package/dist/types/components/layouts/bds-grid/{grid → bds-grid}/types/types.d.ts +0 -0
  471. /package/dist/types/components/layouts/bds-grid/{grid-item → bds-grid-item}/bds-grid-item.d.ts +0 -0
  472. /package/dist/types/components/layouts/bds-grid/{grid-item → bds-grid-item}/types/IGridItem.d.ts +0 -0
  473. /package/dist/types/components/layouts/bds-grid/{grid-item → bds-grid-item}/types/enum.d.ts +0 -0
  474. /package/dist/types/components/layouts/bds-grid/{grid-item → bds-grid-item}/types/index.d.ts +0 -0
  475. /package/dist/types/components/layouts/bds-grid/{grid-item → bds-grid-item}/types/types.d.ts +0 -0
@@ -0,0 +1,119 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-CwYIVC9N.js');
4
+ var formAssociated_mixin = require('./form-associated.mixin-BCR6bj29.js');
5
+ var checkboxFormAssociation = require('./checkbox-form-association-DTEpHXUD.js');
6
+
7
+ const bdsCheckboxButtonCss = () => `@charset "UTF-8";.bds-checkbox-button{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;gap:var(--boreal-spacing-2xs);padding:var(--boreal-spacing-2xs) var(--boreal-spacing-s);border:1px solid transparent;border-radius:var(--boreal-radius-s);background-color:var(--boreal-ui-default-base);color:var(--boreal-text-default);cursor:pointer;outline:none;-webkit-transition:background-color 0.3s ease, border-color 0.3s ease, -webkit-box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, -webkit-box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, -webkit-box-shadow 0.3s ease}.bds-checkbox-button input[type=checkbox],.bds-checkbox-button input[type=radio]{position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none}.bds-checkbox-button [slot=icon]{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}.bds-checkbox-button:hover:not(.bds-checkbox-button--disabled):not(.bds-checkbox-button--checked):not(.bds-checkbox-button--error){background-color:var(--boreal-ui-default-lighter);-webkit-box-shadow:var(--boreal-depth-box-shadow-xs);box-shadow:var(--boreal-depth-box-shadow-xs)}.bds-checkbox-button:focus-visible,.bds-checkbox-button:focus{z-index:1;background-color:var(--boreal-ui-default-lighter);-webkit-box-shadow:var(--boreal-depth-box-shadow-focus);box-shadow:var(--boreal-depth-box-shadow-focus);outline:none}.bds-checkbox-button:active:not(.bds-checkbox-button--disabled):not(.bds-checkbox-button--checked):not(.bds-checkbox-button--error){z-index:1;background-color:var(--boreal-ui-default-lighter);-webkit-box-shadow:var(--boreal-depth-box-shadow-active);box-shadow:var(--boreal-depth-box-shadow-active)}.bds-checkbox-button--checked{background-color:var(--boreal-ui-inverse);border-color:var(--boreal-stroke-primary-base);color:var(--boreal-text-primary-base)}.bds-checkbox-button--checked:hover,.bds-checkbox-button--checked:focus-visible,.bds-checkbox-button--checked:focus,.bds-checkbox-button--checked:active{background-color:var(--boreal-ui-primary-lighter)}.bds-checkbox-button--error{background-color:var(--boreal-ui-inverse);color:var(--boreal-text-danger-base)}.bds-checkbox-button--error:hover,.bds-checkbox-button--error:focus-visible,.bds-checkbox-button--error:focus,.bds-checkbox-button--error:active{background-color:var(--boreal-ui-danger-lighter)}.bds-checkbox-button--error.bds-checkbox-button--checked{border-color:var(--boreal-stroke-danger-base)}.bds-checkbox-button--disabled{cursor:not-allowed;pointer-events:none;background-color:var(--boreal-ui-inverse);color:var(--boreal-text-disabled)}.bds-checkbox-button--disabled.bds-checkbox-button--checked{border-color:var(--boreal-stroke-primary-light);color:var(--boreal-text-primary-light)}.bds-checkbox-button__label{font-family:var(--boreal-typography-font-family-primary);font-size:var(--boreal-typography-font-size-sm);font-weight:var(--boreal-typography-font-weight-semibold);line-height:var(--boreal-typography-line-height-sm)}.bds-checkbox-button__info{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}.bds-checkbox-button__icon{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.bds-checkbox-button__icon:empty{display:none}.bds-checkbox-button__info-icon{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-size:var(--boreal-typography-font-size-sm);line-height:1;color:var(--boreal-icon-default-ink)}`;
8
+
9
+ const BdsCheckboxButton = class extends index.Mixin(formAssociated_mixin.formAssociatedMixin) {
10
+ constructor(hostRef) {
11
+ super();
12
+ index.registerInstance(this, hostRef);
13
+ this.valueChange = index.createEvent(this, "valueChange");
14
+ this.bdsChange = index.createEvent(this, "bdsChange");
15
+ if (hostRef.$hostElement$["s-ei"]) {
16
+ this.internals = hostRef.$hostElement$["s-ei"];
17
+ }
18
+ else {
19
+ this.internals = hostRef.$hostElement$.attachInternals();
20
+ hostRef.$hostElement$["s-ei"] = this.internals;
21
+ }
22
+ this.isDisabled = false;
23
+ this.isInvalid = false;
24
+ /** Name of the form control, submitted as a key in the form data. */
25
+ this.name = '';
26
+ /** Disables the button, preventing interaction. Propagated by `bds-checkbox-group` when the group is disabled. */
27
+ this.disabled = false;
28
+ /** Marks this button as required for form submission. Has no effect when used inside `bds-checkbox-group`. */
29
+ this.required = false;
30
+ /** Toggle state of this button. Flips on every interaction when not disabled. */
31
+ this.checked = false;
32
+ /** Shows error styling on the button. */
33
+ this.error = false;
34
+ /** Value associated with this button; submitted with form data when checked. */
35
+ this.value = 'on';
36
+ /** Label text displayed inside the button. Falls back to the default slot when empty. */
37
+ this.label = '';
38
+ /** Tooltip text shown on an info icon next to the label. */
39
+ this.info = '';
40
+ this.formCheckbox = checkboxFormAssociation.useFormCheckbox(this, this.value);
41
+ this.handleClick = () => this.toggle();
42
+ this.handleKeyDown = (event) => {
43
+ if (event.key === ' ') {
44
+ event.preventDefault();
45
+ this.toggle();
46
+ }
47
+ };
48
+ }
49
+ componentWillLoad() {
50
+ this.isDisabled = this.disabled;
51
+ }
52
+ componentDidLoad() {
53
+ this.formCheckbox.syncFormValue();
54
+ }
55
+ onCheckedChange() {
56
+ this.formCheckbox.syncFormValue();
57
+ }
58
+ onDisabledChange(next) {
59
+ this.isDisabled = next;
60
+ }
61
+ formAssociatedCallback() {
62
+ this.formCheckbox.formAssociatedCallback();
63
+ }
64
+ formResetCallback() {
65
+ this.formCheckbox.formResetCallback();
66
+ }
67
+ formStateRestoreCallback(state) {
68
+ this.formCheckbox.formStateRestoreCallback(state);
69
+ }
70
+ formDisabledCallback(disabled) {
71
+ this.formCheckbox.formDisabledCallback(disabled);
72
+ }
73
+ handleInvalid(event) {
74
+ event.preventDefault();
75
+ this.isInvalid = true;
76
+ }
77
+ /** Returns whether this button satisfies its validation constraints. */
78
+ async checkValidity() {
79
+ return this.internals.checkValidity();
80
+ }
81
+ /** Reports validity to the user, showing native validation UI if invalid. */
82
+ async reportValidity() {
83
+ return this.internals.reportValidity();
84
+ }
85
+ toggle() {
86
+ if (this.isDisabled)
87
+ return;
88
+ this.checked = !this.checked;
89
+ this.bdsChange.emit({ checked: this.checked, value: this.value });
90
+ this.valueChange.emit(this.checked);
91
+ }
92
+ get isError() {
93
+ return (this.error && !this.isDisabled) || this.isInvalid;
94
+ }
95
+ get classMap() {
96
+ return {
97
+ 'bds-checkbox-button': true,
98
+ 'bds-checkbox-button--checked': this.checked,
99
+ 'bds-checkbox-button--error': this.isError,
100
+ 'bds-checkbox-button--disabled': this.isDisabled,
101
+ };
102
+ }
103
+ render() {
104
+ return (index.h(index.Host, { key: '39d1432637929a38909bb0d3a768619d27af09c1', class: this.classMap, role: "checkbox", "aria-checked": `${this.checked}`, "aria-disabled": this.isDisabled ? 'true' : null, "aria-required": this.required ? 'true' : null, "aria-invalid": this.isError ? 'true' : null, tabIndex: this.isDisabled ? -1 : 0, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, index.h("input", { key: 'fdd48deeb69445ecdde9cb2ce3556a3f07286602', type: "checkbox", value: this.value, checked: this.checked, disabled: this.disabled, "aria-hidden": "true", tabIndex: -1, onFocus: () => this.el.focus() }), index.h("span", { key: '96783bbf11a64262b8ebe88487cd2cc16f4d4263', class: "bds-checkbox-button__icon" }, index.h("slot", { key: 'de45f31aa9a6774f33a36c6238380014be066d50', name: "icon" })), index.h("span", { key: '9f94a920639d50a6949bf5272bc6fe6057701bee', class: "bds-checkbox-button__label" }, this.label || index.h("slot", { key: '8fb82d43c376371110a24a0310a15a7911f42964' })), this.info && (index.h("span", { key: '9f128d14a257bae34ab64be3e1b76b1ccfce295b', class: "bds-checkbox-button__info" }, index.h("span", { key: 'b3baa9bf7172810a8d5971d9e58939de24861da8', class: "bds-checkbox-button__info-icon bds-icon-info-circle", "aria-hidden": "true" }), index.h("bds-tooltip", { key: 'bea872bace0b177316103002f7a3d17ac65fb951' }, this.info)))));
105
+ }
106
+ static get formAssociated() { return true; }
107
+ get el() { return index.getElement(this); }
108
+ static get watchers() { return {
109
+ "checked": [{
110
+ "onCheckedChange": 0
111
+ }],
112
+ "disabled": [{
113
+ "onDisabledChange": 0
114
+ }]
115
+ }; }
116
+ };
117
+ BdsCheckboxButton.style = bdsCheckboxButtonCss();
118
+
119
+ exports.bds_checkbox_button = BdsCheckboxButton;
@@ -2,9 +2,9 @@
2
2
 
3
3
  var index = require('./index-CwYIVC9N.js');
4
4
  var formAssociated_mixin = require('./form-associated.mixin-BCR6bj29.js');
5
- var internals = require('./internals-D8x7GMfR.js');
5
+ var checkboxFormAssociation = require('./checkbox-form-association-DTEpHXUD.js');
6
6
 
7
- const bdsCheckboxCardCss = () => `@charset "UTF-8";.bds-checkbox-card{position:relative;cursor:pointer;font-family:var(--boreal-typography-font-family-primary);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:start;align-items:flex-start;gap:var(--boreal-spacing-xs);padding:var(--boreal-spacing-xs) var(--boreal-spacing-s) var(--boreal-spacing-s);border-radius:var(--boreal-radius-xs);border:var(--boreal-spacing-4xs) solid var(--boreal-stroke-default-light);background-color:var(--boreal-ui-inverse);-webkit-transition:background-color 0.3s ease, border-color 0.3s ease, -webkit-box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, -webkit-box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, -webkit-box-shadow 0.3s ease}.bds-checkbox-card:hover{background-color:var(--boreal-ui-default-lighter);-webkit-box-shadow:0 1px 2px 0 rgba(19, 19, 22, 0.15);box-shadow:0 1px 2px 0 rgba(19, 19, 22, 0.15)}.bds-checkbox-card:focus-within,.bds-checkbox-card:focus{background-color:var(--boreal-ui-default-lighter);-webkit-box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus);box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus)}.bds-checkbox-card:focus-visible{outline:none}.bds-checkbox-card:active bds-checkbox:not(.bds-checkbox--checked) .bds-checkbox__box,.bds-checkbox-card:hover bds-checkbox:not(.bds-checkbox--checked) .bds-checkbox__box,.bds-checkbox-card:focus-within bds-checkbox:not(.bds-checkbox--checked) .bds-checkbox__box,.bds-checkbox-card:focus bds-checkbox:not(.bds-checkbox--checked) .bds-checkbox__box,.bds-checkbox-card:focus-visible bds-checkbox:not(.bds-checkbox--checked) .bds-checkbox__box{background:var(--boreal-ui-inverse)}.bds-checkbox-card__icon{display:-ms-flexbox;display:flex;margin-top:var(--boreal-spacing-3xs);height:var(--boreal-layout-m);-ms-flex-align:center;align-items:center;margin-bottom:var(--boreal-spacing-2xs)}.bds-checkbox-card .bds-checkbox-card__checkbox{pointer-events:none;-ms-flex-negative:0;flex-shrink:0;margin-top:calc(var(--boreal-spacing-2xs) - var(--boreal-spacing-4xs))}.bds-checkbox-card .bds-checkbox-card__checkbox .bds-checkbox__label{display:none}.bds-checkbox-card__content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.bds-checkbox-card__header{display:-ms-inline-flexbox;display:inline-flex;gap:var(--boreal-spacing-3xs);color:var(--boreal-text-default);line-height:var(--boreal-typography-line-height-md)}.bds-checkbox-card__title{font-weight:var(--boreal-typography-font-weight-semibold);font-size:var(--boreal-typography-font-size-md)}.bds-checkbox-card__description{color:var(--boreal-text-default-light);font-size:var(--boreal-typography-font-size-xs);line-height:var(--boreal-typography-line-height-xs)}.bds-checkbox-card--checked{border-color:var(--boreal-stroke-primary-base)}.bds-checkbox-card--checked:hover,.bds-checkbox-card--checked:focus,.bds-checkbox-card--checked:focus-within,.bds-checkbox-card--checked:active{background-color:var(--boreal-ui-primary-lighter)}.bds-checkbox-card--checked .bds-checkbox-card__header,.bds-checkbox-card--checked .bds-checkbox-card__description{color:var(--boreal-text-primary-base)}.bds-checkbox-card--indeterminate{border-color:var(--boreal-stroke-default-light)}.bds-checkbox-card--indeterminate .bds-checkbox-card__header{color:var(--boreal-text-default)}.bds-checkbox-card--indeterminate .bds-checkbox-card__description{color:var(--boreal-text-default-light)}.bds-checkbox-card--disabled{pointer-events:none}.bds-checkbox-card--disabled .bds-checkbox-card__header,.bds-checkbox-card--disabled .bds-checkbox-card__description{color:var(--boreal-text-disabled)}.bds-checkbox-card--disabled.bds-checkbox-card--checked:not(.bds-checkbox-card--error){border-color:var(--boreal-stroke-primary-light)}.bds-checkbox-card--disabled.bds-checkbox-card--checked:not(.bds-checkbox-card--error) .bds-checkbox-card__header,.bds-checkbox-card--disabled.bds-checkbox-card--checked:not(.bds-checkbox-card--error) .bds-checkbox-card__description{color:var(--boreal-text-primary-light)}.bds-checkbox-card--disabled.bds-checkbox-card--error{border-color:var(--boreal-stroke-danger-light)}.bds-checkbox-card--disabled.bds-checkbox-card--error .bds-checkbox-card__header,.bds-checkbox-card--disabled.bds-checkbox-card--error .bds-checkbox-card__description{color:var(--boreal-text-danger-light)}.bds-checkbox-card--error{border-color:var(--boreal-stroke-danger-base)}.bds-checkbox-card--error:hover,.bds-checkbox-card--error:focus,.bds-checkbox-card--error:focus-within,.bds-checkbox-card--error:active{background-color:var(--boreal-ui-danger-lighter)}.bds-checkbox-card--error .bds-checkbox-card__header,.bds-checkbox-card--error .bds-checkbox-card__description{color:var(--boreal-text-danger-base)}`;
7
+ const bdsCheckboxCardCss = () => `@charset "UTF-8";.bds-checkbox-card{position:relative;cursor:pointer;font-family:var(--boreal-typography-font-family-primary);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:start;align-items:flex-start;gap:var(--boreal-spacing-xs);padding:var(--boreal-spacing-xs) var(--boreal-spacing-s) var(--boreal-spacing-s);border-radius:var(--boreal-radius-xs);border:var(--boreal-spacing-4xs) solid var(--boreal-stroke-default-light);background-color:var(--boreal-ui-inverse);-webkit-transition:background-color 0.3s ease, border-color 0.3s ease, -webkit-box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, -webkit-box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, -webkit-box-shadow 0.3s ease}.bds-checkbox-card:hover{background-color:var(--boreal-ui-default-lighter);-webkit-box-shadow:var(--boreal-depth-box-shadow-xs);box-shadow:var(--boreal-depth-box-shadow-xs)}.bds-checkbox-card:focus-within,.bds-checkbox-card:focus{background-color:var(--boreal-ui-default-lighter);-webkit-box-shadow:var(--boreal-depth-box-shadow-focus);box-shadow:var(--boreal-depth-box-shadow-focus)}.bds-checkbox-card:focus-visible{outline:none}.bds-checkbox-card:active bds-checkbox:not(.bds-checkbox--checked) .bds-checkbox__box,.bds-checkbox-card:hover bds-checkbox:not(.bds-checkbox--checked) .bds-checkbox__box,.bds-checkbox-card:focus-within bds-checkbox:not(.bds-checkbox--checked) .bds-checkbox__box,.bds-checkbox-card:focus bds-checkbox:not(.bds-checkbox--checked) .bds-checkbox__box,.bds-checkbox-card:focus-visible bds-checkbox:not(.bds-checkbox--checked) .bds-checkbox__box{background:var(--boreal-ui-inverse)}.bds-checkbox-card__icon{display:-ms-flexbox;display:flex;margin-top:var(--boreal-spacing-3xs);height:var(--boreal-layout-m);-ms-flex-align:center;align-items:center;margin-bottom:var(--boreal-spacing-2xs)}.bds-checkbox-card .bds-checkbox-card__checkbox{pointer-events:none;-ms-flex-negative:0;flex-shrink:0;margin-top:var(--boreal-spacing-2xs);gap:0}.bds-checkbox-card .bds-checkbox-card__checkbox .bds-checkbox__label{display:none}.bds-checkbox-card__content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.bds-checkbox-card__header{display:-ms-inline-flexbox;display:inline-flex;gap:var(--boreal-spacing-3xs);color:var(--boreal-text-default);line-height:var(--boreal-typography-line-height-md)}.bds-checkbox-card__title{font-weight:var(--boreal-typography-font-weight-semibold);font-size:var(--boreal-typography-font-size-md)}.bds-checkbox-card__description{color:var(--boreal-text-default-light);font-size:var(--boreal-typography-font-size-xs);line-height:var(--boreal-typography-line-height-xs)}.bds-checkbox-card__icon:empty{display:none}.bds-checkbox-card--checked{border-color:var(--boreal-stroke-primary-base)}.bds-checkbox-card--checked:hover,.bds-checkbox-card--checked:focus,.bds-checkbox-card--checked:focus-within,.bds-checkbox-card--checked:active{background-color:var(--boreal-ui-primary-lighter)}.bds-checkbox-card--checked .bds-checkbox-card__header,.bds-checkbox-card--checked .bds-checkbox-card__description{color:var(--boreal-text-primary-base)}.bds-checkbox-card--checked:disabled .bds-checkbox__box{border-color:var(--boreal-stroke-primary-light);background:var(--boreal-ui-primary-light)}.bds-checkbox-card--indeterminate{border-color:var(--boreal-stroke-default-light)}.bds-checkbox-card--indeterminate .bds-checkbox-card__header{color:var(--boreal-text-default)}.bds-checkbox-card--indeterminate .bds-checkbox-card__description{color:var(--boreal-text-default-light)}.bds-checkbox-card--disabled{pointer-events:none}.bds-checkbox-card--disabled .bds-checkbox-card__header,.bds-checkbox-card--disabled .bds-checkbox-card__description{color:var(--boreal-text-disabled)}.bds-checkbox-card--disabled.bds-checkbox-card--checked:not(.bds-checkbox-card--error){border-color:var(--boreal-stroke-primary-light)}.bds-checkbox-card--disabled.bds-checkbox-card--checked:not(.bds-checkbox-card--error) .bds-checkbox-card__header,.bds-checkbox-card--disabled.bds-checkbox-card--checked:not(.bds-checkbox-card--error) .bds-checkbox-card__description{color:var(--boreal-text-primary-light)}.bds-checkbox-card--disabled.bds-checkbox-card--error{border-color:var(--boreal-stroke-danger-light)}.bds-checkbox-card--disabled.bds-checkbox-card--error .bds-checkbox-card__header,.bds-checkbox-card--disabled.bds-checkbox-card--error .bds-checkbox-card__description{color:var(--boreal-text-danger-light)}.bds-checkbox-card--disabled .bds-checkbox__box{border-color:var(--boreal-stroke-default-light);background:var(--boreal-ui-disabled)}.bds-checkbox-card--error{border-color:var(--boreal-stroke-danger-base)}.bds-checkbox-card--error:hover,.bds-checkbox-card--error:focus,.bds-checkbox-card--error:focus-within,.bds-checkbox-card--error:active{background-color:var(--boreal-ui-danger-lighter)}.bds-checkbox-card--error .bds-checkbox-card__header,.bds-checkbox-card--error .bds-checkbox-card__description{color:var(--boreal-text-danger-base)}`;
8
8
 
9
9
  const BdsCheckboxCard = class extends index.Mixin(formAssociated_mixin.formAssociatedMixin) {
10
10
  constructor(hostRef) {
@@ -20,8 +20,8 @@ const BdsCheckboxCard = class extends index.Mixin(formAssociated_mixin.formAssoc
20
20
  hostRef.$hostElement$["s-ei"] = this.internals;
21
21
  }
22
22
  this.isDisabled = false;
23
+ this.isInvalid = false;
23
24
  this.isIndeterminate = false;
24
- this.isChecked = false;
25
25
  /** Disables the control. */
26
26
  this.disabled = false;
27
27
  /** Marks the control as required for form submission. */
@@ -39,6 +39,7 @@ const BdsCheckboxCard = class extends index.Mixin(formAssociated_mixin.formAssoc
39
39
  this.indeterminate = false;
40
40
  /** Whether the checkbox card is in an error state. */
41
41
  this.error = false;
42
+ this.formCheckbox = checkboxFormAssociation.useFormCheckbox(this, this.value);
42
43
  this.handleClick = () => this.toggle();
43
44
  this.handleKeyDown = (e) => {
44
45
  if (e.key === ' ') {
@@ -50,7 +51,9 @@ const BdsCheckboxCard = class extends index.Mixin(formAssociated_mixin.formAssoc
50
51
  componentWillLoad() {
51
52
  this.isDisabled = this.disabled;
52
53
  this.isIndeterminate = this.indeterminate;
53
- this.isChecked = this.checked;
54
+ }
55
+ componentDidLoad() {
56
+ this.formCheckbox.syncFormValue();
54
57
  }
55
58
  onDisabledChange(next) {
56
59
  this.isDisabled = next;
@@ -59,48 +62,59 @@ const BdsCheckboxCard = class extends index.Mixin(formAssociated_mixin.formAssoc
59
62
  this.isIndeterminate = next;
60
63
  }
61
64
  onCheckedChange(next) {
62
- this.isChecked = next;
65
+ this.checked = next !== false;
66
+ this.formCheckbox.syncFormValue();
67
+ }
68
+ /** Reports the group's validity state to the user, showing native validation UI if invalid. */
69
+ async checkValidity() {
70
+ return this.internals.checkValidity();
71
+ }
72
+ /** Reports the group's validity state to the user, showing native validation UI if invalid. */
73
+ async reportValidity() {
74
+ return this.internals.reportValidity();
75
+ }
76
+ handleInvalid(_event) {
77
+ this.isInvalid = true;
63
78
  }
64
79
  toggle() {
65
80
  if (this.isDisabled)
66
81
  return;
67
- this.isIndeterminate = false;
68
- this.isChecked = !this.isChecked;
69
- this.bdsChange.emit({ checked: this.isChecked, value: this.value });
70
- this.valueChange.emit(this.isChecked);
82
+ if (this.isIndeterminate)
83
+ this.isIndeterminate = false;
84
+ this.checked = !this.checked;
85
+ this.bdsChange.emit({ checked: this.checked, value: this.value });
86
+ this.valueChange.emit(this.checked);
71
87
  }
72
88
  get hostClasses() {
73
89
  return {
74
90
  'bds-checkbox-card': true,
75
- 'bds-checkbox-card--checked': this.isChecked,
91
+ 'bds-checkbox-card--checked': this.checked,
76
92
  'bds-checkbox-card--indeterminate': this.isIndeterminate,
77
93
  'bds-checkbox-card--disabled': this.isDisabled,
78
- 'bds-checkbox-card--error': this.error,
94
+ 'bds-checkbox-card--error': this.isError,
79
95
  };
80
96
  }
81
97
  // ---------------------------------------------------------------------------
82
98
  // Form-associated callbacks (IFormControl)
83
99
  // ---------------------------------------------------------------------------
84
- syncFormValue() {
85
- internals.setFormValue(this.internals, this.isChecked ? this.value : null);
86
- }
87
100
  formAssociatedCallback() {
88
- this.syncFormValue();
101
+ this.formCheckbox.formAssociatedCallback();
89
102
  }
90
103
  formResetCallback() {
91
- this.isChecked = false;
92
- this.isIndeterminate = false;
93
- internals.setFormValue(this.internals, null);
104
+ this.formCheckbox.formResetCallback();
94
105
  }
95
- formStateRestoreCallback(state, _mode) {
96
- this.isChecked = state === this.value;
97
- this.syncFormValue();
106
+ formStateRestoreCallback(state) {
107
+ this.formCheckbox.formStateRestoreCallback(state);
98
108
  }
99
109
  formDisabledCallback(disabled) {
100
- this.isDisabled = disabled;
110
+ this.formCheckbox.formDisabledCallback(disabled);
111
+ }
112
+ get isError() {
113
+ const error = this.error && !this.disabled;
114
+ return error || this.isInvalid;
101
115
  }
102
116
  render() {
103
- return (index.h(index.Host, { key: '9277e649285e38b491fe55bd8bc4eabf7b0725f8', class: this.hostClasses, role: "checkbox", "aria-checked": this.isIndeterminate ? 'mixed' : `${this.isChecked}`, "aria-disabled": this.isDisabled ? 'true' : 'false', "aria-invalid": this.error ? 'true' : 'false', "aria-label": this.label || this.name || undefined, tabIndex: this.isDisabled ? -1 : 0, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, index.h("bds-checkbox", { key: 'e87685111aae53e368f37fde53994590bbdc0a69', class: "bds-checkbox-card__checkbox", name: this.name, value: this.value, checked: this.isChecked, indeterminate: this.isIndeterminate, disabled: this.isDisabled, error: this.error, tabIndex: -1, "aria-hidden": "true" }), index.h("div", { key: 'ca93933dddfbdbbf6ae96a9f0b2f7ec1b4014a3a', class: "bds-checkbox-card__card" }, index.h("div", { key: '952ca899553bc57a7f6b01cd65607d084c7869a9', class: "bds-checkbox-card__content" }, index.h("div", { key: 'bf913fdb5d5fab9e81b387113c7198514fdbe8de', class: "bds-checkbox-card__header" }, index.h("div", { key: 'd885e0eabf9ea9d425160ce88a4d76212b400a1d', class: "bds-checkbox-card__icon" }, index.h("slot", { key: '9c658f9823aa449e4e9138b2b86e937cc9ce3e1c', name: "icon" })), index.h("div", { key: 'e7c410ff15cb7bd62c2eba56683cf1b9b24c970a', class: "bds-checkbox-card__title" }, this.label || index.h("slot", { key: '59cce6d6bd050711af8a55a44252747a593b0a29' }))), index.h("div", { key: '1a574fde1998ebd5f2940c27dbc5e275ce7bb933', class: "bds-checkbox-card__description" }, index.h("slot", { key: 'ed53c06534344f9dfec0f0ffba067c16596d24d7', name: "description" }))))));
117
+ return (index.h(index.Host, { key: 'cb39b373d8bbbbe137a74a001f91c73b444d0c8e', class: this.hostClasses, role: "checkbox", "aria-checked": this.isIndeterminate ? 'mixed' : `${this.checked}`, "aria-disabled": this.isDisabled ? 'true' : null, "aria-required": this.required ? 'true' : null, "aria-invalid": this.isError ? 'true' : null, "aria-label": this.label || this.name || undefined, tabIndex: this.isDisabled ? -1 : 0, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, index.h("bds-checkbox", { key: '3375dc0b18a424f5f140143626b2bcdc73c298b0', name: this.name, class: "bds-checkbox-card__checkbox", ref: () => this.checkboxElement, value: this.value, checked: this.checked, indeterminate: this.isIndeterminate, disabled: this.isDisabled, error: this.isError, tabIndex: -1, "aria-hidden": "true", onBdsChange: e => e.preventDefault() }), index.h("div", { key: 'beba4396fb8c0830ffdb05b62482f0ff63aab0d7', class: "bds-checkbox-card__card" }, index.h("div", { key: 'f369995cc0dbeecfd7670d271ff041240a6dcb65', class: "bds-checkbox-card__content" }, index.h("div", { key: '12848e5aef69157ca5d144a2815e7b64a654cbe6', class: "bds-checkbox-card__header" }, index.h("div", { key: '18c72637c1dfb0037b7d2e7fc8cb5004bdeafb0b', class: "bds-checkbox-card__icon" }, index.h("slot", { key: '7e2979ea18f5c29ecdf629851378aa9efb9e39f6', name: "icon" })), index.h("div", { key: '0aedaf532433d3deb899f6f6fd6826589850fd71', class: "bds-checkbox-card__title" }, this.label || index.h("slot", { key: '43a0a9b10edc6f4ee73b5995912889728648d5d6' }))), index.h("div", { key: '8c89db4ab52395c75f8a1a826ace5aa0f0dbae10', class: "bds-checkbox-card__description" }, index.h("slot", { key: '174e70254d531fa80d8d19b419587837a4a676ea', name: "description" }))))));
104
118
  }
105
119
  static get formAssociated() { return true; }
106
120
  get el() { return index.getElement(this); }
@@ -0,0 +1,292 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-CwYIVC9N.js');
4
+ var formAssociated_mixin = require('./form-associated.mixin-BCR6bj29.js');
5
+ var Keys = require('./Keys-DXn16dlA.js');
6
+ var orientation = require('./orientation-DQAIleEJ.js');
7
+ var BaseAttributes = require('./BaseAttributes-DBBhKt7O.js');
8
+ var validateProps = require('./validateProps-CJe9X5x8.js');
9
+
10
+ const CHECKBOX_GROUP_TYPES = {
11
+ CHECKBOX: 'checkbox',
12
+ CHECKBOX_BUTTON: 'checkboxbutton',
13
+ CHECKBOX_CARD: 'checkboxcard',
14
+ };
15
+
16
+ const bdsCheckboxGroupCss = () => `@charset "UTF-8";.bds-checkbox-group{--bds-divider-gap:var(--boreal-spacing-3xs);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--boreal-spacing-2xs)}.bds-checkbox-group__options{display:grid;grid-template-columns:1fr;gap:var(--boreal-spacing-xs)}.bds-checkbox-group[orientation=horizontal] .bds-checkbox-group__options{grid-template-columns:repeat(var(--layout-count, 1), auto);-ms-flex-pack:start;justify-content:start}.bds-checkbox-group[type=checkboxbutton] .bds-checkbox-group__options{display:-ms-inline-flexbox;display:inline-flex;gap:0;padding:var(--boreal-spacing-3xs);border:1px solid var(--boreal-stroke-default-light);background-color:var(--boreal-ui-inverse);border-radius:var(--boreal-radius-xs);overflow:hidden}.bds-checkbox-group[type=checkboxbutton][orientation=vertical] .bds-checkbox-group__options{-ms-flex-direction:column;flex-direction:column}.bds-checkbox-group[type=checkboxbutton].bds-checkbox-group--error .bds-checkbox-group__options{border-color:var(--boreal-stroke-danger-base)}.bds-checkbox-group[type=checkboxbutton].bds-checkbox-group--error bds-checkbox-button.bds-checkbox-button--error{color:var(--boreal-stroke-danger-base)}.bds-checkbox-group[type=checkboxbutton].bds-checkbox-group--error bds-divider[data-injected]{--bds-divider-color:var(--boreal-stroke-danger-base)}`;
17
+
18
+ const LEAF_TAG = ['BDS-CHECKBOX', 'BDS-CHECKBOX-BUTTON', 'BDS-CHECKBOX-CARD'];
19
+ const BdsCheckboxGroup = class extends index.Mixin(formAssociated_mixin.formAssociatedMixin) {
20
+ constructor(hostRef) {
21
+ super();
22
+ index.registerInstance(this, hostRef);
23
+ this.bdsChange = index.createEvent(this, "bdsChange");
24
+ this.valueChange = index.createEvent(this, "valueChange");
25
+ if (hostRef.$hostElement$["s-ei"]) {
26
+ this.internals = hostRef.$hostElement$["s-ei"];
27
+ }
28
+ else {
29
+ this.internals = hostRef.$hostElement$.attachInternals();
30
+ hostRef.$hostElement$["s-ei"] = this.internals;
31
+ }
32
+ this._id = BaseAttributes.createId('bds-checkbox-group');
33
+ /** Internal mirror of the `disabled` prop, kept in sync via `@Watch` and `formDisabledCallback`. */
34
+ this.isDisabled = false;
35
+ /** Set to true when native form validation fires the `invalid` event; cleared on reset or when value becomes valid. */
36
+ this.isInvalid = false;
37
+ /** Disables all child checkboxes and prevents selection. Also mirrored to isDisabled @State for form-level disable support. */
38
+ this.disabled = false;
39
+ /** Shows error styling on the group helper text. Propagated to all child checkboxes. */
40
+ this.error = false;
41
+ /** Error message rendered below the checkbox options when error is true. Replaces helperText. */
42
+ this.errorMessage = '';
43
+ /** Helper text rendered below the checkbox options. Shown in default state; replaced by errorMessage in error state. */
44
+ this.helperText = '';
45
+ /** Tooltip text shown on the group label info icon. */
46
+ this.info = '';
47
+ /** Group label rendered above the checkbox options. */
48
+ this.label = '';
49
+ /** Layout direction of the checkbox options. */
50
+ this.orientation = 'horizontal';
51
+ /** Marks the group as required for form submission. Triggers validity error when no checkboxes are selected. */
52
+ this.required = false;
53
+ /** Identifies this group variant. 'checkbox' renders bds-checkbox children; 'checkboxbutton' renders bds-checkbox-button segmented control; 'checkboxcard' renders bds-checkbox-card element. */
54
+ this.type = 'checkbox';
55
+ /** Currently selected checkbox values. Synced to children on change. */
56
+ this.value = [];
57
+ /** Hides the divider between checkbox buttons when type is 'checkboxbutton'. */
58
+ this.joined = false;
59
+ this.handleKeyDown = (event) => {
60
+ const target = event.target;
61
+ if (!LEAF_TAG.includes(target.tagName))
62
+ return;
63
+ switch (event.key) {
64
+ case Keys.KEYBOARD.ArrowDown:
65
+ case Keys.KEYBOARD.ArrowRight:
66
+ this.navigateTo(target, true);
67
+ event.preventDefault();
68
+ break;
69
+ case Keys.KEYBOARD.ArrowUp:
70
+ case Keys.KEYBOARD.ArrowLeft:
71
+ this.navigateTo(target, false);
72
+ event.preventDefault();
73
+ break;
74
+ }
75
+ };
76
+ }
77
+ onJoinedChange() {
78
+ this.insertDividers();
79
+ }
80
+ checkPropValues() {
81
+ validateProps.validatePropValue(Object.values(orientation.ORIENTATIONS), orientation.ORIENTATIONS.VERTICAL, this.el, 'orientation');
82
+ validateProps.validatePropValue(Object.values(CHECKBOX_GROUP_TYPES), CHECKBOX_GROUP_TYPES.CHECKBOX, this.el, 'type');
83
+ this.insertDividers();
84
+ }
85
+ onDisabledChange(next) {
86
+ this.isDisabled = next;
87
+ this.propagatePropertyToCheckboxes('disabled', next);
88
+ }
89
+ onErrorChange(val) {
90
+ this.propagatePropertyToCheckboxes('error', val);
91
+ }
92
+ onValuesChange(vals) {
93
+ this.syncCheckboxStates(vals);
94
+ }
95
+ componentWillLoad() {
96
+ this.checkPropValues();
97
+ this.isDisabled = this.disabled;
98
+ if (this.value.length !== 0)
99
+ return;
100
+ const selector = LEAF_TAG.map(tag => `${tag}[checked]`).join(',');
101
+ const el = this.el;
102
+ const checkedElements = Array.from(el.querySelectorAll(selector));
103
+ if (checkedElements.length > 0)
104
+ this.value = checkedElements.map((el) => el.getAttribute('value') ?? '').filter(v => v !== '');
105
+ }
106
+ componentDidLoad() {
107
+ this.onValuesChange(this.value);
108
+ this.onErrorChange(this.isError);
109
+ this.syncFormValue();
110
+ this.updateLayoutCount();
111
+ }
112
+ formAssociatedCallback() {
113
+ this.syncFormValue();
114
+ }
115
+ formResetCallback() {
116
+ this.value = [];
117
+ this.isInvalid = false;
118
+ this.checkboxElements.forEach((checkbox) => {
119
+ checkbox.checked = false;
120
+ checkbox.error = this.isError;
121
+ });
122
+ this.internals.setFormValue(null);
123
+ this.updateFormValidity();
124
+ }
125
+ formStateRestoreCallback(state, _mode) {
126
+ const vals = Array.isArray(state) ? state : [];
127
+ this.value = vals.filter(v => typeof v === 'string');
128
+ this.updateFormValue();
129
+ }
130
+ formDisabledCallback(disabled) {
131
+ this.isDisabled = disabled;
132
+ this.propagatePropertyToCheckboxes('disabled', disabled);
133
+ }
134
+ handleCheckboxChange(event) {
135
+ const target = event.target;
136
+ if (!LEAF_TAG.includes(target.tagName))
137
+ return;
138
+ event.stopPropagation();
139
+ const checkbox = target;
140
+ const value = checkbox.value;
141
+ this.updateCheckboxSelection(value, checkbox.checked);
142
+ this.syncFormValue();
143
+ this.bdsChange.emit({ value: this.value });
144
+ this.valueChange.emit(this.value);
145
+ }
146
+ handleInvalid(event) {
147
+ this.isInvalid = true;
148
+ if (this.errorMessage !== '')
149
+ event.preventDefault();
150
+ }
151
+ handleValueChange(event) {
152
+ const target = event.target;
153
+ if (!LEAF_TAG.includes(target.tagName))
154
+ return;
155
+ event.stopPropagation();
156
+ }
157
+ /** Returns whether the group's current value satisfies the browser's built-in constraint validation. */
158
+ async checkValidity() {
159
+ return this.internals.checkValidity();
160
+ }
161
+ /** Reports the group's validity state to the user, showing native validation UI if invalid. */
162
+ async reportValidity() {
163
+ return this.internals.reportValidity();
164
+ }
165
+ insertDividers() {
166
+ this.el.querySelectorAll('bds-divider[data-injected]').forEach(d => d.remove());
167
+ if (this.type !== CHECKBOX_GROUP_TYPES.CHECKBOX_BUTTON || this.joined)
168
+ return;
169
+ const dividerOrientation = this.orientation === orientation.ORIENTATIONS.HORIZONTAL ? orientation.ORIENTATIONS.VERTICAL : orientation.ORIENTATIONS.HORIZONTAL;
170
+ const buttons = this.checkboxElements.filter((el) => el.tagName === 'BDS-CHECKBOX-BUTTON');
171
+ buttons.forEach((btn, i) => {
172
+ if (i === 0)
173
+ return;
174
+ const divider = document.createElement('bds-divider');
175
+ divider.setAttribute('orientation', dividerOrientation);
176
+ divider.setAttribute('data-injected', '');
177
+ btn.parentNode?.insertBefore(divider, btn);
178
+ });
179
+ }
180
+ navigateTo(current, forward) {
181
+ const elements = this.checkboxElements.filter(el => !el.disabled);
182
+ if (elements.length === 0)
183
+ return;
184
+ const idx = elements.indexOf(current);
185
+ const newIndex = (elements.length + idx + (forward ? 1 : -1)) % elements.length;
186
+ const next = elements[newIndex];
187
+ next.focus();
188
+ }
189
+ updateCheckboxSelection(value, isChecked) {
190
+ if (!isChecked) {
191
+ this.value = this.value.filter(v => v !== value);
192
+ return;
193
+ }
194
+ if (!this.value.includes(value))
195
+ this.value = [...this.value, value];
196
+ }
197
+ syncCheckboxStates(vals) {
198
+ this.checkboxElements.forEach((el) => {
199
+ const isChecked = vals.includes(el.value);
200
+ el.checked = isChecked;
201
+ });
202
+ }
203
+ get checkboxElements() {
204
+ const selector = LEAF_TAG.map(tag => tag).join(',');
205
+ const el = this.el;
206
+ return Array.from(el.querySelectorAll(selector));
207
+ }
208
+ propagatePropertyToCheckboxes(property, value) {
209
+ this.checkboxElements.forEach(el => {
210
+ el[property] = value;
211
+ });
212
+ }
213
+ updateFormValue() {
214
+ if (this.value.length === 0)
215
+ this.internals.setFormValue(null);
216
+ else {
217
+ const formData = new FormData();
218
+ this.value.forEach(val => {
219
+ formData.append(this.name, val);
220
+ });
221
+ this.internals.setFormValue(formData);
222
+ }
223
+ }
224
+ syncFormValue() {
225
+ this.updateFormValue();
226
+ this.updateFormValidity();
227
+ }
228
+ updateFormValidity() {
229
+ if (this.required && this.value.length === 0) {
230
+ const anchor = this.checkboxElements.find(el => !el.disabled);
231
+ this.internals.setValidity({ valueMissing: true }, this.errorMessage !== '' ? this.errorMessage : 'Please select at least one option.', anchor);
232
+ }
233
+ else {
234
+ this.internals.setValidity({});
235
+ if (!this.isInvalid)
236
+ return;
237
+ this.isInvalid = false;
238
+ if (!this.error)
239
+ this.propagatePropertyToCheckboxes('error', false);
240
+ }
241
+ }
242
+ updateLayoutCount() {
243
+ const count = this.checkboxElements.length;
244
+ const el = this.el;
245
+ el.style.setProperty('--layout-count', `${count}`);
246
+ }
247
+ get isError() {
248
+ return this.error && !this.isDisabled;
249
+ }
250
+ get classMap() {
251
+ const showError = this.isError || this.isInvalid;
252
+ return {
253
+ 'bds-checkbox-group': true,
254
+ 'bds-checkbox-group--disabled': this.isDisabled,
255
+ 'bds-checkbox-group--error': showError,
256
+ 'bds-checkbox-group--required': this.required,
257
+ };
258
+ }
259
+ render() {
260
+ const labelId = `${this._id}-label`;
261
+ const helperId = `${this._id}-helper`;
262
+ const showError = this.isError || this.isInvalid;
263
+ const typographyState = this.isDisabled ? 'disabled' : showError ? 'error' : 'default';
264
+ const helperContent = showError && this.errorMessage !== '' ? this.errorMessage : this.helperText;
265
+ return (index.h(index.Host, { key: 'ae68b7136eae0493eb3191caa71bfd31c87bd5dd', class: this.classMap, role: "group", "aria-labelledby": this.label !== '' ? labelId : undefined, "aria-describedby": helperContent !== '' ? helperId : undefined, "aria-invalid": showError ? 'true' : undefined, "aria-required": this.required ? 'true' : undefined, onKeyDown: this.handleKeyDown }, this.label && (index.h("bds-typography", { key: '779561b620c5a18f7018fabaeaa8759de1c5a2e6', id: labelId, variant: "label", state: typographyState, required: this.required, tooltipText: this.info !== '' ? this.info : undefined }, this.label)), index.h("div", { key: '6a0edf16a86b9628dd52390da861c51089107b85', class: "bds-checkbox-group__options" }, index.h("slot", { key: 'd702a5bdfbf2b0984c6c799a2abadb5c7fb904d0', onSlotchange: () => this.updateLayoutCount() })), helperContent && (index.h("bds-typography", { key: '357a3fbf88e2b70696512806840a390e468b1c62', id: helperId, variant: "helper", state: typographyState }, helperContent))));
266
+ }
267
+ static get formAssociated() { return true; }
268
+ get el() { return index.getElement(this); }
269
+ static get watchers() { return {
270
+ "joined": [{
271
+ "onJoinedChange": 0
272
+ }],
273
+ "orientation": [{
274
+ "checkPropValues": 0
275
+ }],
276
+ "disabled": [{
277
+ "onDisabledChange": 0
278
+ }],
279
+ "error": [{
280
+ "onErrorChange": 0
281
+ }],
282
+ "isInvalid": [{
283
+ "onErrorChange": 0
284
+ }],
285
+ "value": [{
286
+ "onValuesChange": 0
287
+ }]
288
+ }; }
289
+ };
290
+ BdsCheckboxGroup.style = bdsCheckboxGroupCss();
291
+
292
+ exports.bds_checkbox_group = BdsCheckboxGroup;