@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,431 @@
1
+ import { Host, h } from "@stencil/core";
2
+ import { createId, inheritAttributes, addElementListener, getCleanText, updateElementAttr, updateElementProp, removeElementListener, } from "../../../utils/index";
3
+ import { Logger } from "../../../services/logger/Logger";
4
+ /**
5
+ * Component representing a select dropdown, allowing users to choose an option from a list.
6
+ * It consists of a text field that triggers the dropdown and a list menu that contains the options.
7
+ * The component supports both single selection and searchable functionality.
8
+ *
9
+ * @slot field - The text field element that triggers the select dropdown. It should be a `bds-text-field` component.
10
+ * @slot list - The list menu element that contains the options for the select dropdown. It should be a `bds-list-menu` component.
11
+ */
12
+ export class BdsSelect {
13
+ constructor() {
14
+ this.inheritedAttributes = {};
15
+ this.hostForm = null;
16
+ /** The value of the select component. */
17
+ this.value = '';
18
+ /** Prop to define if its searchable. It allows to write and filter the options */
19
+ this.searchable = false;
20
+ /** Name to assign in form */
21
+ this.name = '';
22
+ /** The string representation of the value. */
23
+ this.valueString = '';
24
+ /** state to manage popover visibility */
25
+ this.popoverVisible = false;
26
+ /** State for id components for aria controls */
27
+ this.listId = `bds-select-list-${createId()}`;
28
+ /** Flag to suppress focus-triggered open when focus originated from a mousedown inside the component */
29
+ this._preventFocusOpen = false;
30
+ /** Listens for changes in the list menu. */
31
+ this.listenListMenu = (event) => {
32
+ event.stopPropagation();
33
+ if (this.bdsList !== null) {
34
+ const eventDetail = event.detail;
35
+ this._preventFocusOpen = true;
36
+ this.setValue(eventDetail || '');
37
+ void this.bdsPopover?.closePopover();
38
+ }
39
+ };
40
+ /** Listen clear input */
41
+ this.listenClearInput = () => {
42
+ this.setValue('');
43
+ this.valueString = '';
44
+ this.resetChildren();
45
+ };
46
+ /** Listens for changes in the text field. When is clear and input is empty, resets the child elements. */
47
+ this.listenField = (event) => {
48
+ event.stopPropagation();
49
+ const inputValue = event.target.value;
50
+ if (inputValue === '') {
51
+ this.resetChildren();
52
+ return;
53
+ }
54
+ if (!this.popoverVisible) {
55
+ void this.bdsPopover?.openPopover();
56
+ }
57
+ this.searcherElement(inputValue);
58
+ };
59
+ /** Listen blur input to reset on leave */
60
+ this.listenBlurInput = (event) => {
61
+ const relatedTarget = event.relatedTarget;
62
+ if (relatedTarget && this.el.contains(relatedTarget)) {
63
+ return;
64
+ }
65
+ this.resetValueField();
66
+ this.resetChildren();
67
+ };
68
+ /** Intercepts Tab while the popover is open and moves focus to the selected item, or first available item */
69
+ this.listenKeydown = (event) => {
70
+ const keyEvent = event;
71
+ if (keyEvent.key !== 'Tab' || !this.popoverVisible || this.searchable)
72
+ return;
73
+ event.preventDefault();
74
+ const selectedItem = this.value !== '' ? this.bdsList?.querySelector(`bds-list-menu-item[value="${this.value}"]`) : null;
75
+ const target = selectedItem ??
76
+ this.bdsList?.querySelector('bds-list-menu-item:not([disabled]):not([hidden]):not([variant="label"])');
77
+ target?.focus();
78
+ };
79
+ /** Sets the flag that suppresses focus-open when focus was caused by a mousedown inside the component */
80
+ this.listenMouseDown = () => {
81
+ this._preventFocusOpen = true;
82
+ };
83
+ /** Opens the popover when the searchable input receives focus from keyboard (Tab), not from click */
84
+ this.listenFocusInput = () => {
85
+ if (this._preventFocusOpen) {
86
+ this._preventFocusOpen = false;
87
+ return;
88
+ }
89
+ void this.bdsPopover?.openPopover();
90
+ };
91
+ /** Prevents bds-text-field's own valueChange from bubbling up — bds-select emits its own */
92
+ this.stopFieldValueChange = (event) => {
93
+ event.stopPropagation();
94
+ };
95
+ /** Resets component state when the parent form is reset */
96
+ this.listenFormReset = () => {
97
+ this.value = '';
98
+ this.valueString = '';
99
+ this.bdsList?.setSelectedValues('').catch(() => {
100
+ new Logger().warn('bds-select', 'No options available to reset the value');
101
+ });
102
+ };
103
+ }
104
+ /** Watch popover visible */
105
+ watchPopoverVisible(newValue) {
106
+ updateElementAttr(this.bdsInput, 'aria-expanded', newValue.toString());
107
+ updateElementAttr(this.el, 'aria-expanded', newValue.toString());
108
+ }
109
+ /** Watch value */
110
+ watchValue() {
111
+ this.loadValue();
112
+ }
113
+ /** Watch valueString */
114
+ watchValueString(newValue) {
115
+ updateElementAttr(this.bdsField, 'value', newValue);
116
+ }
117
+ /** Lifecycle method called before the component is loaded */
118
+ componentWillLoad() {
119
+ this.inheritedAttributes = {
120
+ ...inheritAttributes(this.el, ['role']),
121
+ };
122
+ }
123
+ /** Lifecycle method called after the component has loaded. */
124
+ componentDidLoad() {
125
+ this.hostForm = this.el.closest('form');
126
+ addElementListener(this.hostForm, 'reset', this.listenFormReset);
127
+ this.assignListeners();
128
+ this.loadDefaultProps();
129
+ this.loadValue();
130
+ }
131
+ /** Lifecycle method called when the component is disconnected from the DOM */
132
+ disconnectedCallback() {
133
+ removeElementListener(this.hostForm, 'reset', this.listenFormReset);
134
+ this.removeListeners();
135
+ }
136
+ /** Get for the list menu element in runtime */
137
+ get bdsList() {
138
+ if (this.el !== null) {
139
+ return this.el.querySelector('bds-list-menu');
140
+ }
141
+ return null;
142
+ }
143
+ /** Get for the text field element in runtime */
144
+ get bdsField() {
145
+ if (this.el !== null) {
146
+ return this.el.querySelector('bds-text-field');
147
+ }
148
+ return null;
149
+ }
150
+ /** Get for the input element inside the text field in runtime */
151
+ get bdsInput() {
152
+ if (this.bdsField !== null) {
153
+ return this.bdsField.querySelector('input');
154
+ }
155
+ return null;
156
+ }
157
+ /** Get for the popover element in runtime */
158
+ get bdsPopover() {
159
+ if (this.el !== null) {
160
+ return this.el.querySelector('bds-popover');
161
+ }
162
+ return null;
163
+ }
164
+ /** Assigns event listeners to the relevant elements. */
165
+ assignListeners() {
166
+ addElementListener(this.bdsList, 'bdsChange', this.listenListMenu);
167
+ addElementListener(this.bdsField, 'bdsClear', this.listenClearInput);
168
+ addElementListener(this.bdsField, 'bdsInput', this.listenField);
169
+ addElementListener(this.bdsField, 'valueChange', this.stopFieldValueChange);
170
+ addElementListener(this.bdsInput, 'blur', this.listenBlurInput);
171
+ addElementListener(this.bdsInput, 'keydown', this.listenKeydown);
172
+ if (this.searchable) {
173
+ addElementListener(this.bdsInput, 'focus', this.listenFocusInput);
174
+ addElementListener(this.el, 'mousedown', this.listenMouseDown);
175
+ }
176
+ this.listenPopOver();
177
+ }
178
+ /** Removes event listeners from the relevant elements. */
179
+ removeListeners() {
180
+ removeElementListener(this.bdsList, 'bdsChange', this.listenListMenu);
181
+ removeElementListener(this.bdsField, 'bdsClear', this.listenClearInput);
182
+ removeElementListener(this.bdsField, 'bdsInput', this.listenField);
183
+ removeElementListener(this.bdsField, 'valueChange', this.stopFieldValueChange);
184
+ removeElementListener(this.bdsInput, 'blur', this.listenBlurInput);
185
+ removeElementListener(this.bdsInput, 'keydown', this.listenKeydown);
186
+ removeElementListener(this.bdsInput, 'focus', this.listenFocusInput);
187
+ removeElementListener(this.el, 'mousedown', this.listenMouseDown);
188
+ }
189
+ /** Loads the default properties for the select component. */
190
+ loadDefaultProps() {
191
+ this.loadDefaultTextFieldProps();
192
+ this.loadDefaultListMenuProps();
193
+ }
194
+ /** load default props for textfield */
195
+ loadDefaultTextFieldProps() {
196
+ updateElementProp(this.bdsField, 'clearable', true);
197
+ updateElementProp(this.bdsField, 'selectable', !this.searchable);
198
+ updateElementProp(this.bdsField, 'iconRight', 'bds-icon-chevron-down');
199
+ updateElementAttr(this.bdsInput, 'role', 'combobox');
200
+ updateElementAttr(this.bdsInput, 'aria-haspopup', 'listbox');
201
+ updateElementAttr(this.bdsInput, 'aria-expanded', 'false');
202
+ updateElementAttr(this.bdsInput, 'aria-autocomplete', !this.searchable ? 'none' : 'list');
203
+ updateElementAttr(this.bdsInput, 'aria-controls', this.listId);
204
+ }
205
+ /** load default props to list menu */
206
+ loadDefaultListMenuProps() {
207
+ updateElementAttr(this.bdsList, 'menu-role', 'listbox');
208
+ updateElementAttr(this.bdsList, 'id', this.listId);
209
+ }
210
+ /** set value emitting event */
211
+ setValue(value) {
212
+ this.value = value;
213
+ this.bdsChange.emit(value);
214
+ this.valueChange.emit(value);
215
+ }
216
+ /** Listens for changes in the popover visibility and updates the state accordingly. */
217
+ listenPopOver() {
218
+ const popoverSettings = {
219
+ hideArrow: true,
220
+ onAfterShow: () => {
221
+ this.popoverVisible = true;
222
+ return true;
223
+ },
224
+ onAfterHide: () => {
225
+ this.popoverVisible = false;
226
+ this.resetValueField();
227
+ this.resetChildren();
228
+ return true;
229
+ },
230
+ };
231
+ updateElementProp(this.bdsPopover, 'floatingOptions', popoverSettings);
232
+ }
233
+ /** Resets the value field */
234
+ resetValueField() {
235
+ if (this.value === '') {
236
+ this.bdsField?.setAttribute('value', '');
237
+ }
238
+ else if (this.valueString !== '') {
239
+ this.bdsField?.setAttribute('value', this.valueString);
240
+ }
241
+ }
242
+ /** Searches for elements in the list menu based on the input text. */
243
+ searcherElement(text) {
244
+ const inputValue = text.toLowerCase();
245
+ this.bdsList?.querySelectorAll('bds-list-menu-item').forEach(option => {
246
+ const value = option.getAttribute('value') || '';
247
+ const textElement = option.querySelector('.bds-list-item__content-left__text');
248
+ const optionText = textElement !== null ? getCleanText(textElement) : '';
249
+ const isVisible = optionText.toLowerCase().includes(inputValue) || value.toLowerCase().includes(inputValue);
250
+ updateElementProp(option, 'hidden', !isVisible);
251
+ updateElementAttr(option, 'tabindex', isVisible ? '0' : '-1');
252
+ if (isVisible)
253
+ this.showParentLabel(option);
254
+ });
255
+ const visibleOptions = this.bdsList?.querySelectorAll('bds-list-menu-item:not([hidden])');
256
+ updateElementProp(this.bdsList, 'empty', visibleOptions?.length === 0);
257
+ }
258
+ /** Shows the parent label of a given item. */
259
+ showParentLabel(item) {
260
+ let previous = item.previousElementSibling;
261
+ while (previous !== null) {
262
+ if (previous.variant === 'label') {
263
+ updateElementProp(previous, 'hidden', false);
264
+ break;
265
+ }
266
+ previous = previous.previousElementSibling;
267
+ }
268
+ }
269
+ /** Resets the children elements of the list menu, making them all visible. */
270
+ resetChildren() {
271
+ this.bdsList?.querySelectorAll('bds-list-menu-item').forEach(option => {
272
+ updateElementProp(option, 'hidden', false);
273
+ });
274
+ }
275
+ /** Load value */
276
+ loadValue() {
277
+ const value = this.value;
278
+ if (value === '' || this.bdsList === null || this.bdsField === null) {
279
+ this.valueString = '';
280
+ this.bdsList?.setSelectedValues('').catch(() => {
281
+ new Logger().warn('bds-select', 'No options available to select the value');
282
+ });
283
+ return;
284
+ }
285
+ const option = this.bdsList.querySelector(`bds-list-menu-item[value="${value}"]`);
286
+ if (option === null)
287
+ return;
288
+ const optionText = option.querySelector('.bds-list-item__content-left__text');
289
+ const text = getCleanText(optionText);
290
+ this.bdsList
291
+ .setSelectedValues(value)
292
+ .then(() => {
293
+ this.valueString = text;
294
+ option.scrollIntoView({ block: 'nearest' });
295
+ })
296
+ .catch(() => {
297
+ new Logger().warn('bds-select', 'Failed to set selected value');
298
+ });
299
+ }
300
+ /** Main Render */
301
+ render() {
302
+ return (h(Host, { key: '03665a810a8bccc7613bb617624253edf36ba543', role: "none", ...this.inheritedAttributes }, h("slot", { key: 'dd6e528ceaf121f372ce82cc1682a676d6a5a64a', name: "field" }), h("input", { key: '4ff9a9348bac3c0a838950357523fd379e44d497', type: "hidden", value: this.value, name: this.name }), h("bds-popover", { key: '4f03fb1eb766c29ccaf26cf6450b8346d3681dc7', width: "full" }, h("slot", { key: '80e28f34ed9369a1a8f3f687dbbda40aa246e3fb', name: "list" }))));
303
+ }
304
+ static get is() { return "bds-select"; }
305
+ static get originalStyleUrls() {
306
+ return {
307
+ "$": ["bds-select.scss"]
308
+ };
309
+ }
310
+ static get styleUrls() {
311
+ return {
312
+ "$": ["bds-select.css"]
313
+ };
314
+ }
315
+ static get properties() {
316
+ return {
317
+ "value": {
318
+ "type": "string",
319
+ "mutable": true,
320
+ "complexType": {
321
+ "original": "string",
322
+ "resolved": "string",
323
+ "references": {}
324
+ },
325
+ "required": false,
326
+ "optional": false,
327
+ "docs": {
328
+ "tags": [],
329
+ "text": "The value of the select component."
330
+ },
331
+ "getter": false,
332
+ "setter": false,
333
+ "reflect": true,
334
+ "attribute": "value",
335
+ "defaultValue": "''"
336
+ },
337
+ "searchable": {
338
+ "type": "boolean",
339
+ "mutable": false,
340
+ "complexType": {
341
+ "original": "boolean",
342
+ "resolved": "boolean",
343
+ "references": {}
344
+ },
345
+ "required": false,
346
+ "optional": false,
347
+ "docs": {
348
+ "tags": [],
349
+ "text": "Prop to define if its searchable. It allows to write and filter the options"
350
+ },
351
+ "getter": false,
352
+ "setter": false,
353
+ "reflect": false,
354
+ "attribute": "searchable",
355
+ "defaultValue": "false"
356
+ },
357
+ "name": {
358
+ "type": "string",
359
+ "mutable": false,
360
+ "complexType": {
361
+ "original": "string",
362
+ "resolved": "string",
363
+ "references": {}
364
+ },
365
+ "required": false,
366
+ "optional": false,
367
+ "docs": {
368
+ "tags": [],
369
+ "text": "Name to assign in form"
370
+ },
371
+ "getter": false,
372
+ "setter": false,
373
+ "reflect": false,
374
+ "attribute": "name",
375
+ "defaultValue": "''"
376
+ }
377
+ };
378
+ }
379
+ static get states() {
380
+ return {
381
+ "valueString": {},
382
+ "popoverVisible": {}
383
+ };
384
+ }
385
+ static get events() {
386
+ return [{
387
+ "method": "bdsChange",
388
+ "name": "bdsChange",
389
+ "bubbles": true,
390
+ "cancelable": true,
391
+ "composed": true,
392
+ "docs": {
393
+ "tags": [],
394
+ "text": "Emitted when the selection change the value"
395
+ },
396
+ "complexType": {
397
+ "original": "string",
398
+ "resolved": "string",
399
+ "references": {}
400
+ }
401
+ }, {
402
+ "method": "valueChange",
403
+ "name": "valueChange",
404
+ "bubbles": true,
405
+ "cancelable": true,
406
+ "composed": true,
407
+ "docs": {
408
+ "tags": [],
409
+ "text": "Emit value Change for vue implementation"
410
+ },
411
+ "complexType": {
412
+ "original": "string",
413
+ "resolved": "string",
414
+ "references": {}
415
+ }
416
+ }];
417
+ }
418
+ static get elementRef() { return "el"; }
419
+ static get watchers() {
420
+ return [{
421
+ "propName": "popoverVisible",
422
+ "methodName": "watchPopoverVisible"
423
+ }, {
424
+ "propName": "value",
425
+ "methodName": "watchValue"
426
+ }, {
427
+ "propName": "valueString",
428
+ "methodName": "watchValueString"
429
+ }];
430
+ }
431
+ }
@@ -0,0 +1,213 @@
1
+ @charset "UTF-8";
2
+ /**
3
+ * Common SCSS placeholder selectors shared across form and layout components.
4
+ * This file is injected globally via `injectGlobalPaths` in `stencil.config.ts`,
5
+ * so all component stylesheets can `@extend` these placeholders without an explicit import.
6
+ *
7
+ * NOTE: Placeholders must only use raw CSS values — `$boreal-*` token variables
8
+ * are not available at this level util use style-guidelines.
9
+ */
10
+ /**
11
+ * TODO: Refactor to use styleguidelines this work as first draft
12
+ **/
13
+ /**
14
+ * This file contains mixins and functions for common interactions styles such as focus rings and transitions.
15
+ * These are used across multiple components to ensure consistency in interaction feedback.
16
+ */
17
+ .bds-slider {
18
+ display: block;
19
+ width: 100%;
20
+ --handle-size: 16px;
21
+ }
22
+ .bds-slider--range .bds-slider__input {
23
+ pointer-events: none;
24
+ }
25
+ .bds-slider--tooltip {
26
+ margin-top: var(--boreal-spacing-xl);
27
+ }
28
+ .bds-slider--tooltip.bds-slider--label {
29
+ margin-top: var(--boreal-spacing-ml);
30
+ }
31
+ .bds-slider--disabled .bds-slider__tooltip {
32
+ display: none;
33
+ }
34
+ .bds-slider--disabled .bds-slider__wrapper {
35
+ cursor: auto;
36
+ }
37
+ .bds-slider--disabled .bds-slider__connect {
38
+ background: var(--boreal-ui-primary-light);
39
+ }
40
+ .bds-slider__label {
41
+ margin-bottom: var(--boreal-spacing-3xs);
42
+ }
43
+ .bds-slider__wrapper {
44
+ position: relative;
45
+ width: 100%;
46
+ height: var(--handle-size);
47
+ overflow: visible;
48
+ cursor: pointer;
49
+ }
50
+ .bds-slider__track-base {
51
+ position: absolute;
52
+ left: 0;
53
+ right: 0;
54
+ top: 50%;
55
+ height: var(--boreal-spacing-2xs);
56
+ transform: translateY(-50%);
57
+ background: var(--boreal-base-light);
58
+ border-radius: var(--boreal-radius-full);
59
+ pointer-events: none;
60
+ z-index: 1;
61
+ }
62
+ .bds-slider__connect {
63
+ position: absolute;
64
+ top: 50%;
65
+ height: 4px;
66
+ transform: translateY(-50%);
67
+ background: var(--boreal-ui-primary-base);
68
+ border-radius: var(--boreal-radius-full);
69
+ pointer-events: none;
70
+ z-index: 2;
71
+ }
72
+ .bds-slider__input {
73
+ position: absolute;
74
+ left: 0;
75
+ top: 50%;
76
+ width: 100%;
77
+ height: var(--handle-size);
78
+ transform: translateY(-50%);
79
+ margin: 0;
80
+ padding: 0;
81
+ background: transparent;
82
+ outline: none;
83
+ appearance: none;
84
+ -webkit-appearance: none;
85
+ pointer-events: none;
86
+ z-index: 5;
87
+ }
88
+ .bds-slider__input::-webkit-slider-runnable-track {
89
+ height: var(--handle-size);
90
+ background: transparent;
91
+ border: none;
92
+ appearance: none;
93
+ -webkit-appearance: none;
94
+ }
95
+ .bds-slider__input::-webkit-slider-thumb {
96
+ width: var(--handle-size);
97
+ height: var(--handle-size);
98
+ margin-top: 0;
99
+ border-radius: var(--boreal-radius-full);
100
+ background: var(--boreal-ui-inverse);
101
+ border: var(--boreal-spacing-4xs) solid var(--boreal-stroke-default-light);
102
+ box-shadow: var(--boreal-depth-box-shadow-xs);
103
+ cursor: grab;
104
+ pointer-events: auto;
105
+ appearance: none;
106
+ -webkit-appearance: none;
107
+ }
108
+ .bds-slider__input::-moz-range-track {
109
+ height: var(--handle-size);
110
+ background: transparent;
111
+ border: none;
112
+ }
113
+ .bds-slider__input::-moz-range-thumb {
114
+ width: var(--handle-size);
115
+ height: var(--handle-size);
116
+ border-radius: var(--boreal-radius-full);
117
+ background: var(--boreal-ui-inverse);
118
+ border: var(--boreal-spacing-4xs) solid var(--boreal-stroke-default-light);
119
+ box-shadow: var(--boreal-depth-box-shadow-xs);
120
+ cursor: grab;
121
+ pointer-events: auto;
122
+ }
123
+ .bds-slider__input:focus-visible::-webkit-slider-thumb, .bds-slider__input:active::-webkit-slider-thumb {
124
+ box-shadow: var(--boreal-depth-box-shadow-active);
125
+ }
126
+ .bds-slider__input:focus-visible::-webkit-slider-thumb .bds-slider__tooltip--active, .bds-slider__input:active::-webkit-slider-thumb .bds-slider__tooltip--active {
127
+ box-shadow: var(--boreal-depth-box-shadow-xs);
128
+ }
129
+ .bds-slider__input:focus-visible::-moz-range-thumb, .bds-slider__input:active::-moz-range-thumb {
130
+ box-shadow: var(--boreal-depth-box-shadow-active);
131
+ }
132
+ .bds-slider__input:focus-visible::-moz-range-thumb .bds-slider__tooltip--active, .bds-slider__input:active::-moz-range-thumb .bds-slider__tooltip--active {
133
+ box-shadow: var(--boreal-depth-box-shadow-xs);
134
+ }
135
+ .bds-slider__input:active::-webkit-slider-thumb {
136
+ cursor: grabbing;
137
+ }
138
+ .bds-slider__input:active::-moz-range-thumb {
139
+ cursor: grabbing;
140
+ }
141
+ .bds-slider__input:disabled {
142
+ pointer-events: none;
143
+ }
144
+ .bds-slider__input:disabled.bds-slider__connect {
145
+ background: var(--boreal-ui-disabled);
146
+ }
147
+ .bds-slider__input:disabled::-webkit-slider-thumb {
148
+ background: var(--boreal-ui-disabled);
149
+ border-color: var(--boreal-base-light);
150
+ box-shadow: none;
151
+ cursor: not-allowed;
152
+ }
153
+ .bds-slider__input:disabled::-moz-range-thumb {
154
+ background: var(--boreal-ui-disabled);
155
+ border-color: var(--boreal-base-light);
156
+ box-shadow: none;
157
+ cursor: not-allowed;
158
+ }
159
+ .bds-slider__pips {
160
+ position: absolute;
161
+ left: 0;
162
+ right: 0;
163
+ top: 50%;
164
+ height: var(--boreal-spacing-2xs);
165
+ transform: translateY(-50%);
166
+ pointer-events: none;
167
+ z-index: 3;
168
+ }
169
+ .bds-slider__pip {
170
+ position: absolute;
171
+ top: 0;
172
+ width: var(--boreal-spacing-3xs);
173
+ height: 100%;
174
+ background: var(--boreal-ui-inverse);
175
+ transform: translateX(-50%);
176
+ }
177
+ .bds-slider__limits {
178
+ display: flex;
179
+ justify-content: space-between;
180
+ margin-top: var(--boreal-spacing-3xs);
181
+ }
182
+ .bds-slider__tooltip {
183
+ position: absolute;
184
+ bottom: calc(100% + 10px);
185
+ transform: translateX(-50%);
186
+ color: var(--boreal-text-default);
187
+ background: var(--boreal-ui-inverse);
188
+ border-radius: var(--boreal-radius-xs);
189
+ padding: var(--boreal-spacing-2xs) var(--boreal-spacing-2xs);
190
+ font-size: var(--boreal-typography-font-size-xs);
191
+ font-family: var(--boreal-typography-font-family-primary);
192
+ white-space: nowrap;
193
+ cursor: auto;
194
+ pointer-events: fill;
195
+ display: flex;
196
+ align-items: center;
197
+ justify-content: center;
198
+ min-width: var(--boreal-layout-ml);
199
+ height: var(--boreal-layout-ml);
200
+ }
201
+ .bds-slider__tooltip--active {
202
+ box-shadow: var(--boreal-depth-box-shadow-xs);
203
+ }
204
+ .bds-slider__tooltip--never {
205
+ opacity: 0;
206
+ }
207
+ .bds-slider__tooltip--focus {
208
+ opacity: 0;
209
+ transition: opacity 0.15s ease;
210
+ }
211
+ .bds-slider__tooltip--focus.bds-slider__tooltip--visible {
212
+ opacity: 1;
213
+ }