@telesign/boreal-web-components 0.1.0-alpha.3 → 0.1.0-alpha.4

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 (446) hide show
  1. package/components-build/bds-avatar.d.ts +11 -0
  2. package/components-build/bds-avatar.js +1 -0
  3. package/components-build/bds-badge.d.ts +11 -0
  4. package/components-build/bds-badge.js +1 -0
  5. package/components-build/bds-banner.js +1 -1
  6. package/components-build/bds-button.js +1 -1
  7. package/components-build/bds-checkbox.js +1 -1
  8. package/components-build/bds-dialog.js +1 -1
  9. package/components-build/bds-divider.d.ts +11 -0
  10. package/components-build/bds-divider.js +1 -0
  11. package/components-build/bds-flag.js +1 -1
  12. package/components-build/bds-grid-item.d.ts +11 -0
  13. package/components-build/bds-grid-item.js +1 -0
  14. package/components-build/bds-grid.d.ts +11 -0
  15. package/components-build/bds-grid.js +1 -0
  16. package/components-build/bds-list-menu-item.d.ts +11 -0
  17. package/components-build/bds-list-menu-item.js +1 -0
  18. package/components-build/bds-list-menu.d.ts +11 -0
  19. package/components-build/bds-list-menu.js +1 -0
  20. package/components-build/bds-popover.js +1 -1
  21. package/components-build/bds-spinner.js +1 -1
  22. package/components-build/bds-status.d.ts +11 -0
  23. package/components-build/bds-status.js +1 -0
  24. package/components-build/bds-tag.d.ts +11 -0
  25. package/components-build/bds-tag.js +1 -0
  26. package/components-build/bds-text-field.js +1 -1
  27. package/components-build/bds-toggle.d.ts +11 -0
  28. package/components-build/bds-toggle.js +1 -0
  29. package/components-build/bds-tooltip.js +1 -1
  30. package/components-build/bds-typography.js +1 -1
  31. package/components-build/index.js +1 -1
  32. package/components-build/p-B8n1ru5i.js +1 -0
  33. package/components-build/p-Bfazyxqi.js +1 -0
  34. package/components-build/p-CGdxFth9.js +1 -0
  35. package/components-build/p-CrAt6pGl.js +1 -0
  36. package/components-build/p-DCwT43Kz.js +1 -0
  37. package/components-build/p-DIY3CDNL.js +1 -0
  38. package/components-build/p-DhSchGPI.js +1 -0
  39. package/components-build/p-kGnB15Lz.js +1 -0
  40. package/custom-elements.json +2588 -540
  41. package/dist/boreal-web-components/boreal-web-components.esm.js +1 -1
  42. package/dist/boreal-web-components/boreal-web-components.js +1 -1
  43. package/dist/boreal-web-components/css/boreal.css +1066 -1074
  44. package/dist/boreal-web-components/css/global.css +403 -407
  45. package/dist/boreal-web-components/css/theme-connect.css +163 -164
  46. package/dist/boreal-web-components/css/theme-engage.css +163 -164
  47. package/dist/boreal-web-components/css/theme-protect.css +163 -164
  48. package/dist/boreal-web-components/css/theme-proximus.css +164 -165
  49. package/dist/boreal-web-components/p-0028481c.entry.js +1 -0
  50. package/dist/boreal-web-components/p-127a4134.entry.js +1 -0
  51. package/dist/boreal-web-components/p-1466de58.system.entry.js +1 -0
  52. package/dist/boreal-web-components/p-1d1bb9d2.entry.js +1 -0
  53. package/dist/boreal-web-components/p-2158a7cd.entry.js +1 -0
  54. package/dist/boreal-web-components/{p-8c57e06a.entry.js → p-251b3002.entry.js} +1 -1
  55. package/dist/boreal-web-components/p-251d35df.system.entry.js +1 -0
  56. package/dist/boreal-web-components/{p-fc2cb919.entry.js → p-2b8bd1dd.entry.js} +1 -1
  57. package/dist/boreal-web-components/p-32c23246.system.entry.js +1 -0
  58. package/dist/boreal-web-components/p-3fbcc233.entry.js +1 -0
  59. package/dist/boreal-web-components/p-401f1aee.system.entry.js +1 -0
  60. package/dist/boreal-web-components/p-41b48701.system.entry.js +1 -0
  61. package/dist/boreal-web-components/p-41cac1b8.system.entry.js +1 -0
  62. package/dist/boreal-web-components/p-44ceff4e.system.entry.js +1 -0
  63. package/dist/boreal-web-components/{p-efe57901.system.entry.js → p-52600375.system.entry.js} +1 -1
  64. package/dist/boreal-web-components/p-627b19a5.system.entry.js +1 -0
  65. package/dist/boreal-web-components/p-649737e5.entry.js +1 -0
  66. package/dist/boreal-web-components/p-64cb5825.entry.js +1 -0
  67. package/dist/boreal-web-components/p-66360e63.entry.js +1 -0
  68. package/dist/boreal-web-components/p-695d0830.entry.js +1 -0
  69. package/dist/boreal-web-components/p-6a99f4c6.system.entry.js +1 -0
  70. package/dist/boreal-web-components/p-731b88cc.entry.js +1 -0
  71. package/dist/boreal-web-components/{p-22378341.system.entry.js → p-74c13bed.system.entry.js} +1 -1
  72. package/dist/boreal-web-components/p-7a4efddd.system.entry.js +1 -0
  73. package/dist/boreal-web-components/p-7db870b7.entry.js +1 -0
  74. package/dist/boreal-web-components/p-7f7ac40f.entry.js +1 -0
  75. package/dist/boreal-web-components/p-80822731.system.entry.js +1 -0
  76. package/dist/boreal-web-components/p-82d49661.entry.js +1 -0
  77. package/dist/boreal-web-components/p-83ca193e.entry.js +1 -0
  78. package/dist/boreal-web-components/p-871c9a9f.system.entry.js +1 -0
  79. package/dist/boreal-web-components/p-BQ_zoZa2.js +1 -0
  80. package/dist/boreal-web-components/p-Bfazyxqi.js +1 -0
  81. package/dist/boreal-web-components/{p-D4EFsvs1.js → p-BqJlOB6b.js} +2 -2
  82. package/dist/boreal-web-components/p-BsZkk4oK.system.js +1 -0
  83. package/dist/boreal-web-components/p-CXz1RLGi.system.js +1 -0
  84. package/dist/boreal-web-components/p-CtknSula.system.js +1 -0
  85. package/dist/boreal-web-components/p-CvK2d92c.js +1 -0
  86. package/dist/boreal-web-components/p-CzYQb3pP.js +1 -0
  87. package/dist/boreal-web-components/p-DCKg5Cg_.system.js +2 -0
  88. package/dist/boreal-web-components/p-DZcx75cy.system.js +1 -0
  89. package/dist/boreal-web-components/p-DhSchGPI.js +1 -0
  90. package/dist/boreal-web-components/{p-BkDQsB4R.system.js → p-Dme-NuTD.system.js} +1 -1
  91. package/dist/boreal-web-components/p-RhSdMyWk.system.js +1 -0
  92. package/dist/boreal-web-components/{p-5fa53a80.system.entry.js → p-ab5ffa15.system.entry.js} +1 -1
  93. package/dist/boreal-web-components/p-b12d4788.system.entry.js +1 -0
  94. package/dist/boreal-web-components/p-ba2b625a.system.entry.js +1 -0
  95. package/dist/boreal-web-components/p-bf2ef10b.entry.js +1 -0
  96. package/dist/boreal-web-components/{p-6de2b44c.system.entry.js → p-c7aee9f4.system.entry.js} +1 -1
  97. package/dist/boreal-web-components/p-e0bf8a6e.entry.js +1 -0
  98. package/dist/boreal-web-components/p-edca16b6.system.entry.js +1 -0
  99. package/dist/boreal-web-components/p-fc24d963.entry.js +1 -0
  100. package/dist/boreal-web-components/p-kGnB15Lz.js +1 -0
  101. package/dist/boreal-web-components/p-vzZJGcYF.system.js +1 -0
  102. package/dist/boreal-web-components/scss/maps/_primitives.scss +404 -408
  103. package/dist/boreal-web-components/scss/maps/_theme-connect.scss +164 -165
  104. package/dist/boreal-web-components/scss/maps/_theme-engage.scss +164 -165
  105. package/dist/boreal-web-components/scss/maps/_theme-protect.scss +164 -165
  106. package/dist/boreal-web-components/scss/maps/_theme-proximus.scss +165 -166
  107. package/dist/boreal-web-components/scss/variables/_primitives.scss +404 -408
  108. package/dist/boreal-web-components/scss/variables/_theme-connect.scss +164 -165
  109. package/dist/boreal-web-components/scss/variables/_theme-engage.scss +164 -165
  110. package/dist/boreal-web-components/scss/variables/_theme-protect.scss +164 -165
  111. package/dist/boreal-web-components/scss/variables/_theme-proximus.scss +165 -166
  112. package/dist/cjs/BaseAttributes-DBBhKt7O.js +14 -0
  113. package/dist/cjs/Keys-DbIXSJF2.js +22 -0
  114. package/dist/cjs/bds-avatar.cjs.entry.js +89 -0
  115. package/dist/cjs/bds-badge.cjs.entry.js +50 -0
  116. package/dist/cjs/bds-banner.cjs.entry.js +12 -5
  117. package/dist/cjs/bds-button.cjs.entry.js +5 -5
  118. package/dist/cjs/bds-checkbox.cjs.entry.js +6 -6
  119. package/dist/cjs/bds-dialog.cjs.entry.js +7 -6
  120. package/dist/cjs/bds-divider.cjs.entry.js +46 -0
  121. package/dist/cjs/bds-flag.cjs.entry.js +3 -3
  122. package/dist/cjs/bds-grid-item.cjs.entry.js +93 -0
  123. package/dist/cjs/bds-grid.cjs.entry.js +37 -0
  124. package/dist/cjs/bds-list-menu-item.cjs.entry.js +468 -0
  125. package/dist/cjs/bds-list-menu.cjs.entry.js +130 -0
  126. package/dist/cjs/bds-popover.cjs.entry.js +17 -8
  127. package/dist/cjs/bds-spinner.cjs.entry.js +4 -4
  128. package/dist/cjs/bds-status.cjs.entry.js +59 -0
  129. package/dist/cjs/bds-tag.cjs.entry.js +140 -0
  130. package/dist/cjs/bds-text-field.cjs.entry.js +12 -22
  131. package/dist/cjs/bds-toggle.cjs.entry.js +186 -0
  132. package/dist/cjs/bds-tooltip_2.cjs.entry.js +320 -0
  133. package/dist/cjs/boreal-web-components.cjs.js +2 -2
  134. package/dist/cjs/{anchored.mixin-CnIwkaUi.js → getOffset-m4hBgyVP.js} +42 -26
  135. package/dist/cjs/{index-BcSjvXJk.js → index-CwYIVC9N.js} +64 -0
  136. package/dist/cjs/loader.cjs.js +2 -2
  137. package/dist/cjs/{states-iIYiazaM.js → states-BweP5Vpu.js} +8 -0
  138. package/dist/cjs/validateProps-CJe9X5x8.js +42 -0
  139. package/dist/collection/collection-manifest.json +10 -0
  140. package/dist/collection/components/actions/bds-button/bds-button.js +2 -2
  141. package/dist/collection/components/actions/bds-list-menu/bds-list-menu/bds-list-menu.css +25 -0
  142. package/dist/collection/components/actions/bds-list-menu/bds-list-menu/bds-list-menu.js +301 -0
  143. package/dist/collection/components/actions/bds-list-menu/bds-list-menu-item/bds-list-menu-item.css +71 -0
  144. package/dist/collection/components/actions/bds-list-menu/bds-list-menu-item/bds-list-menu-item.js +437 -0
  145. package/dist/collection/components/actions/bds-list-menu/bds-list-menu-item/types/IListMenuItem.js +1 -0
  146. package/dist/collection/components/actions/bds-list-menu/bds-list-menu-item/types/enum.js +4 -0
  147. package/dist/collection/components/actions/bds-list-menu/bds-list-menu-item/types/types.js +1 -0
  148. package/dist/collection/components/actions/bds-toggle/bds-toggle.css +120 -0
  149. package/dist/collection/components/actions/bds-toggle/bds-toggle.js +544 -0
  150. package/dist/collection/components/actions/bds-toggle/types/IEventChange.js +1 -0
  151. package/dist/collection/components/actions/bds-toggle/types/IToggle.js +1 -0
  152. package/dist/collection/components/actions/bds-toggle/types/enum.js +4 -0
  153. package/dist/collection/components/actions/bds-toggle/types/index.js +4 -0
  154. package/dist/collection/components/actions/bds-toggle/types/types.js +1 -0
  155. package/dist/collection/components/feedback/bds-badge/bds-badge.css +76 -0
  156. package/dist/collection/components/feedback/bds-badge/bds-badge.js +120 -0
  157. package/dist/collection/components/feedback/bds-badge/types/IBadge.js +1 -0
  158. package/dist/collection/components/feedback/bds-badge/types/enum.js +5 -0
  159. package/dist/collection/components/feedback/bds-banner/bds-banner.css +1 -2
  160. package/dist/collection/components/feedback/bds-banner/bds-banner.js +30 -6
  161. package/dist/collection/components/feedback/bds-spinner/bds-spinner.css +7 -8
  162. package/dist/collection/components/feedback/bds-spinner/bds-spinner.js +1 -1
  163. package/dist/collection/components/feedback/bds-status/bds-status.css +101 -0
  164. package/dist/collection/components/feedback/bds-status/bds-status.js +122 -0
  165. package/dist/collection/components/feedback/bds-status/types/IStatus.js +1 -0
  166. package/dist/collection/components/feedback/bds-status/types/enum.js +5 -0
  167. package/dist/collection/components/feedback/bds-status/types/types.js +1 -0
  168. package/dist/collection/components/feedback/bds-tag/bds-tag.css +202 -0
  169. package/dist/collection/components/feedback/bds-tag/bds-tag.js +375 -0
  170. package/dist/collection/components/feedback/bds-tag/types/ITag.js +1 -0
  171. package/dist/collection/components/feedback/bds-tag/types/enum.js +10 -0
  172. package/dist/collection/components/feedback/bds-tag/types/index.js +3 -0
  173. package/dist/collection/components/feedback/bds-tag/types/types.js +1 -0
  174. package/dist/collection/components/forms/bds-checkbox/bds-checkbox.js +1 -1
  175. package/dist/collection/components/forms/bds-flag/bds-flag.js +1 -1
  176. package/dist/collection/components/forms/bds-text-field/bds-text-field.js +1 -1
  177. package/dist/collection/components/helpers/bds-divider.css +36 -0
  178. package/dist/collection/components/helpers/bds-divider.js +88 -0
  179. package/dist/collection/components/helpers/types/IDivider.js +1 -0
  180. package/dist/collection/components/helpers/types/enum.js +4 -0
  181. package/dist/collection/components/helpers/types/types.js +1 -0
  182. package/dist/collection/components/images-icons/bds-avatar/bds-avatar.css +52 -0
  183. package/dist/collection/components/images-icons/bds-avatar/bds-avatar.js +219 -0
  184. package/dist/collection/components/images-icons/bds-avatar/types/IAvatar.js +1 -0
  185. package/dist/collection/components/images-icons/bds-avatar/types/enum.js +5 -0
  186. package/dist/collection/components/images-icons/bds-avatar/types/index.js +3 -0
  187. package/dist/collection/components/images-icons/bds-avatar/types/types.js +1 -0
  188. package/dist/collection/components/layouts/bds-grid/grid/bds-grid.css +57 -0
  189. package/dist/collection/components/layouts/bds-grid/grid/bds-grid.js +100 -0
  190. package/dist/collection/components/layouts/bds-grid/grid/types/IGrid.js +1 -0
  191. package/dist/collection/components/layouts/bds-grid/grid/types/enum.js +4 -0
  192. package/dist/collection/components/layouts/bds-grid/grid/types/index.js +3 -0
  193. package/dist/collection/components/layouts/bds-grid/grid/types/types.js +1 -0
  194. package/dist/collection/components/layouts/bds-grid/grid-item/bds-grid-item.css +70 -0
  195. package/dist/collection/components/layouts/bds-grid/grid-item/bds-grid-item.js +306 -0
  196. package/dist/collection/components/layouts/bds-grid/grid-item/types/IGridItem.js +1 -0
  197. package/dist/collection/components/layouts/bds-grid/grid-item/types/enum.js +10 -0
  198. package/dist/collection/components/layouts/bds-grid/grid-item/types/index.js +3 -0
  199. package/dist/collection/components/layouts/bds-grid/grid-item/types/types.js +1 -0
  200. package/dist/collection/components/overlays/bds-dialog/bds-dialog.js +4 -3
  201. package/dist/collection/components/overlays/bds-popover/bds-popover.css +16 -2
  202. package/dist/collection/components/overlays/bds-popover/bds-popover.js +12 -4
  203. package/dist/collection/components/overlays/bds-popover/constants/Offset.js +1 -0
  204. package/dist/collection/components/overlays/bds-tooltip/bds-tooltip.css +2 -13
  205. package/dist/collection/components/overlays/bds-tooltip/bds-tooltip.js +4 -2
  206. package/dist/collection/components/overlays/bds-tooltip/constants/Offset.js +1 -0
  207. package/dist/collection/components/titles-text/bds-typography/bds-typography.css +4 -0
  208. package/dist/collection/components/titles-text/bds-typography/bds-typography.js +20 -19
  209. package/dist/collection/components/titles-text/bds-typography/utils/bds-typography-utils.js +2 -2
  210. package/dist/collection/css/boreal.css +1066 -1074
  211. package/dist/collection/css/global.css +403 -407
  212. package/dist/collection/css/theme-connect.css +163 -164
  213. package/dist/collection/css/theme-engage.css +163 -164
  214. package/dist/collection/css/theme-protect.css +163 -164
  215. package/dist/collection/css/theme-proximus.css +164 -165
  216. package/dist/collection/mixins/anchored.mixin.js +14 -1
  217. package/dist/collection/mixins/index.js +2 -0
  218. package/dist/collection/mixins/links.mixin.js +153 -0
  219. package/dist/collection/mixins/menu-behavior.mixin.js +113 -0
  220. package/dist/collection/scss/maps/_primitives.scss +404 -408
  221. package/dist/collection/scss/maps/_theme-connect.scss +164 -165
  222. package/dist/collection/scss/maps/_theme-engage.scss +164 -165
  223. package/dist/collection/scss/maps/_theme-protect.scss +164 -165
  224. package/dist/collection/scss/maps/_theme-proximus.scss +165 -166
  225. package/dist/collection/scss/variables/_primitives.scss +404 -408
  226. package/dist/collection/scss/variables/_theme-connect.scss +164 -165
  227. package/dist/collection/scss/variables/_theme-engage.scss +164 -165
  228. package/dist/collection/scss/variables/_theme-protect.scss +164 -165
  229. package/dist/collection/scss/variables/_theme-proximus.scss +165 -166
  230. package/dist/collection/services/floating/positioning.service.js +1 -1
  231. package/dist/collection/types/IFormProps.js +1 -0
  232. package/dist/collection/types/index.js +3 -0
  233. package/dist/collection/types/links.js +1 -0
  234. package/dist/collection/types/menu.js +8 -0
  235. package/dist/collection/types/position.js +6 -2
  236. package/dist/collection/utils/constants/common/Keys.js +12 -0
  237. package/dist/collection/utils/helpers/overlays/getOffset.js +13 -0
  238. package/dist/collection/utils/helpers/validateProps.js +21 -0
  239. package/dist/collection/utils/index.js +2 -1
  240. package/dist/collection/utils/menu/index.js +1 -0
  241. package/dist/collection/utils/menu/menu-item.utils.js +81 -0
  242. package/dist/collection/utils/{__test__ → testing}/index.js +0 -2
  243. package/dist/collection/utils/testing/mocks/console.js +30 -0
  244. package/dist/collection/utils/testing/mocks/index.js +4 -0
  245. package/dist/css/boreal.css +1066 -1074
  246. package/dist/css/global.css +403 -407
  247. package/dist/css/theme-connect.css +163 -164
  248. package/dist/css/theme-engage.css +163 -164
  249. package/dist/css/theme-protect.css +163 -164
  250. package/dist/css/theme-proximus.css +164 -165
  251. package/dist/esm/BaseAttributes-DhSchGPI.js +12 -0
  252. package/dist/esm/Keys-CzYQb3pP.js +20 -0
  253. package/dist/esm/bds-avatar.entry.js +87 -0
  254. package/dist/esm/bds-badge.entry.js +48 -0
  255. package/dist/esm/bds-banner.entry.js +12 -5
  256. package/dist/esm/bds-button.entry.js +5 -5
  257. package/dist/esm/bds-checkbox.entry.js +3 -3
  258. package/dist/esm/bds-dialog.entry.js +7 -6
  259. package/dist/esm/bds-divider.entry.js +44 -0
  260. package/dist/esm/bds-flag.entry.js +3 -3
  261. package/dist/esm/bds-grid-item.entry.js +91 -0
  262. package/dist/esm/bds-grid.entry.js +35 -0
  263. package/dist/esm/bds-list-menu-item.entry.js +466 -0
  264. package/dist/esm/bds-list-menu.entry.js +128 -0
  265. package/dist/esm/bds-popover.entry.js +16 -7
  266. package/dist/esm/bds-spinner.entry.js +4 -4
  267. package/dist/esm/bds-status.entry.js +57 -0
  268. package/dist/esm/bds-tag.entry.js +138 -0
  269. package/dist/esm/bds-text-field.entry.js +5 -15
  270. package/dist/esm/bds-toggle.entry.js +184 -0
  271. package/dist/esm/bds-tooltip_2.entry.js +317 -0
  272. package/dist/esm/boreal-web-components.js +3 -3
  273. package/dist/esm/{anchored.mixin-Y3MkGc2X.js → getOffset-DKPjeBHi.js} +40 -25
  274. package/dist/esm/{index-D4EFsvs1.js → index-BqJlOB6b.js} +64 -0
  275. package/dist/esm/loader.js +3 -3
  276. package/dist/esm/{states-BhTPNsBb.js → states-Bfazyxqi.js} +8 -1
  277. package/dist/esm/validateProps-kGnB15Lz.js +39 -0
  278. package/dist/esm-es5/BaseAttributes-DhSchGPI.js +1 -0
  279. package/dist/esm-es5/Keys-CzYQb3pP.js +1 -0
  280. package/dist/esm-es5/bds-avatar.entry.js +1 -0
  281. package/dist/esm-es5/bds-badge.entry.js +1 -0
  282. package/dist/esm-es5/bds-banner.entry.js +1 -1
  283. package/dist/esm-es5/bds-button.entry.js +1 -1
  284. package/dist/esm-es5/bds-checkbox.entry.js +1 -1
  285. package/dist/esm-es5/bds-dialog.entry.js +1 -1
  286. package/dist/esm-es5/bds-divider.entry.js +1 -0
  287. package/dist/esm-es5/bds-flag.entry.js +1 -1
  288. package/dist/esm-es5/bds-grid-item.entry.js +1 -0
  289. package/dist/esm-es5/bds-grid.entry.js +1 -0
  290. package/dist/esm-es5/bds-list-menu-item.entry.js +1 -0
  291. package/dist/esm-es5/bds-list-menu.entry.js +1 -0
  292. package/dist/esm-es5/bds-popover.entry.js +1 -1
  293. package/dist/esm-es5/bds-spinner.entry.js +1 -1
  294. package/dist/esm-es5/bds-status.entry.js +1 -0
  295. package/dist/esm-es5/bds-tag.entry.js +1 -0
  296. package/dist/esm-es5/bds-text-field.entry.js +1 -1
  297. package/dist/esm-es5/bds-toggle.entry.js +1 -0
  298. package/dist/esm-es5/bds-tooltip_2.entry.js +1 -0
  299. package/dist/esm-es5/boreal-web-components.js +1 -1
  300. package/dist/esm-es5/form-associated.mixin-CvK2d92c.js +1 -0
  301. package/dist/esm-es5/getOffset-DKPjeBHi.js +1 -0
  302. package/dist/esm-es5/index-BqJlOB6b.js +2 -0
  303. package/dist/esm-es5/loader.js +1 -1
  304. package/dist/esm-es5/states-Bfazyxqi.js +1 -0
  305. package/dist/esm-es5/validateProps-kGnB15Lz.js +1 -0
  306. package/dist/scss/maps/_primitives.scss +404 -408
  307. package/dist/scss/maps/_theme-connect.scss +164 -165
  308. package/dist/scss/maps/_theme-engage.scss +164 -165
  309. package/dist/scss/maps/_theme-protect.scss +164 -165
  310. package/dist/scss/maps/_theme-proximus.scss +165 -166
  311. package/dist/scss/variables/_primitives.scss +404 -408
  312. package/dist/scss/variables/_theme-connect.scss +164 -165
  313. package/dist/scss/variables/_theme-engage.scss +164 -165
  314. package/dist/scss/variables/_theme-protect.scss +164 -165
  315. package/dist/scss/variables/_theme-proximus.scss +165 -166
  316. package/dist/types/components/actions/bds-list-menu/bds-list-menu/bds-list-menu.d.ts +70 -0
  317. package/dist/types/components/actions/bds-list-menu/bds-list-menu-item/bds-list-menu-item.d.ts +116 -0
  318. package/dist/types/components/actions/bds-list-menu/bds-list-menu-item/types/IListMenuItem.d.ts +12 -0
  319. package/dist/types/components/actions/bds-list-menu/bds-list-menu-item/types/enum.d.ts +5 -0
  320. package/dist/types/components/actions/bds-list-menu/bds-list-menu-item/types/types.d.ts +3 -0
  321. package/dist/types/components/actions/bds-toggle/bds-toggle.d.ts +91 -0
  322. package/dist/types/components/actions/bds-toggle/types/IEventChange.d.ts +5 -0
  323. package/dist/types/components/actions/bds-toggle/types/IToggle.d.ts +12 -0
  324. package/dist/types/components/actions/bds-toggle/types/enum.d.ts +5 -0
  325. package/dist/types/components/actions/bds-toggle/types/index.d.ts +5 -0
  326. package/dist/types/components/actions/bds-toggle/types/types.d.ts +3 -0
  327. package/dist/types/components/feedback/bds-badge/bds-badge.d.ts +31 -0
  328. package/dist/types/components/feedback/bds-badge/types/IBadge.d.ts +6 -0
  329. package/dist/types/components/feedback/bds-badge/types/enum.d.ts +9 -0
  330. package/dist/types/components/feedback/bds-banner/bds-banner.d.ts +8 -4
  331. package/dist/types/components/feedback/bds-status/bds-status.d.ts +26 -0
  332. package/dist/types/components/feedback/bds-status/types/IStatus.d.ts +7 -0
  333. package/dist/types/components/feedback/bds-status/types/enum.d.ts +6 -0
  334. package/dist/types/components/feedback/bds-status/types/types.d.ts +3 -0
  335. package/dist/types/components/feedback/bds-tag/bds-tag.d.ts +71 -0
  336. package/dist/types/components/feedback/bds-tag/types/ITag.d.ts +13 -0
  337. package/dist/types/components/feedback/bds-tag/types/enum.d.ts +11 -0
  338. package/dist/types/components/feedback/bds-tag/types/index.d.ts +4 -0
  339. package/dist/types/components/feedback/bds-tag/types/types.d.ts +8 -0
  340. package/dist/types/components/forms/bds-flag/bds-flag.d.ts +3 -4
  341. package/dist/types/components/helpers/bds-divider.d.ts +26 -0
  342. package/dist/types/components/helpers/types/IDivider.d.ts +5 -0
  343. package/dist/types/components/helpers/types/enum.d.ts +5 -0
  344. package/dist/types/components/helpers/types/types.d.ts +3 -0
  345. package/dist/types/components/images-icons/bds-avatar/bds-avatar.d.ts +51 -0
  346. package/dist/types/components/images-icons/bds-avatar/types/IAvatar.d.ts +9 -0
  347. package/dist/types/components/images-icons/bds-avatar/types/enum.d.ts +6 -0
  348. package/dist/types/components/images-icons/bds-avatar/types/index.d.ts +4 -0
  349. package/dist/types/components/images-icons/bds-avatar/types/types.d.ts +3 -0
  350. package/dist/types/components/layouts/bds-grid/grid/bds-grid.d.ts +19 -0
  351. package/dist/types/components/layouts/bds-grid/grid/types/IGrid.d.ts +6 -0
  352. package/dist/types/components/layouts/bds-grid/grid/types/enum.d.ts +5 -0
  353. package/dist/types/components/layouts/bds-grid/grid/types/index.d.ts +4 -0
  354. package/dist/types/components/layouts/bds-grid/grid/types/types.d.ts +3 -0
  355. package/dist/types/components/layouts/bds-grid/grid-item/bds-grid-item.d.ts +31 -0
  356. package/dist/types/components/layouts/bds-grid/grid-item/types/IGridItem.d.ts +12 -0
  357. package/dist/types/components/layouts/bds-grid/grid-item/types/enum.d.ts +11 -0
  358. package/dist/types/components/layouts/bds-grid/grid-item/types/index.d.ts +4 -0
  359. package/dist/types/components/layouts/bds-grid/grid-item/types/types.d.ts +3 -0
  360. package/dist/types/components/overlays/bds-dialog/bds-dialog.d.ts +2 -2
  361. package/dist/types/components/overlays/bds-popover/bds-popover.d.ts +1 -0
  362. package/dist/types/components/overlays/bds-popover/constants/Offset.d.ts +2 -0
  363. package/dist/types/components/overlays/bds-tooltip/bds-tooltip.d.ts +1 -0
  364. package/dist/types/components/overlays/bds-tooltip/constants/Offset.d.ts +2 -0
  365. package/dist/types/components/titles-text/bds-typography/bds-typography.d.ts +9 -9
  366. package/dist/types/components/titles-text/bds-typography/types/ITypography.d.ts +2 -2
  367. package/dist/types/components/titles-text/bds-typography/utils/bds-typography-utils.d.ts +1 -1
  368. package/dist/types/components.d.ts +1268 -54
  369. package/dist/types/mixins/anchored.mixin.d.ts +5 -0
  370. package/dist/types/mixins/index.d.ts +2 -0
  371. package/dist/types/mixins/links.mixin.d.ts +85 -0
  372. package/dist/types/mixins/menu-behavior.mixin.d.ts +91 -0
  373. package/dist/types/types/IFormProps.d.ts +25 -0
  374. package/dist/types/types/index.d.ts +3 -0
  375. package/dist/types/types/links.d.ts +14 -0
  376. package/dist/types/types/menu.d.ts +16 -0
  377. package/dist/types/types/position.d.ts +6 -2
  378. package/dist/types/utils/constants/common/Keys.d.ts +7 -6
  379. package/dist/types/utils/helpers/overlays/getOffset.d.ts +9 -0
  380. package/dist/types/utils/helpers/validateProps.d.ts +11 -0
  381. package/dist/types/utils/index.d.ts +2 -1
  382. package/dist/types/utils/menu/index.d.ts +2 -0
  383. package/dist/types/utils/menu/menu-item.utils.d.ts +50 -0
  384. package/dist/types/utils/{__test__ → testing}/index.d.ts +0 -2
  385. package/dist/types/utils/{__test__/backdrop-mock.d.ts → testing/mocks/backdrop.d.ts} +1 -1
  386. package/dist/types/utils/testing/mocks/console.d.ts +17 -0
  387. package/dist/types/utils/{__test__/mocks/ElementInternals.d.ts → testing/mocks/elementInternals.d.ts} +1 -1
  388. package/dist/types/utils/testing/mocks/index.d.ts +5 -0
  389. package/dist/types/utils/{__test__/popover-mock.d.ts → testing/mocks/popover.d.ts} +1 -1
  390. package/package.json +1 -1
  391. package/components-build/p-B6R9EVXK.js +0 -1
  392. package/components-build/p-BSpJ_e9f.js +0 -1
  393. package/components-build/p-BYEAJCas.js +0 -1
  394. package/components-build/p-BhTPNsBb.js +0 -1
  395. package/components-build/p-CYojP4vI.js +0 -1
  396. package/components-build/p-D5omSME4.js +0 -1
  397. package/components-build/p-vfAIdwy0.js +0 -1
  398. package/dist/boreal-web-components/p-07a933df.entry.js +0 -1
  399. package/dist/boreal-web-components/p-1bb2b33f.entry.js +0 -1
  400. package/dist/boreal-web-components/p-1fccea3f.system.entry.js +0 -1
  401. package/dist/boreal-web-components/p-20af732b.system.entry.js +0 -1
  402. package/dist/boreal-web-components/p-39c26e58.entry.js +0 -1
  403. package/dist/boreal-web-components/p-6210d025.entry.js +0 -1
  404. package/dist/boreal-web-components/p-91b9e94e.entry.js +0 -1
  405. package/dist/boreal-web-components/p-9e06910d.system.entry.js +0 -1
  406. package/dist/boreal-web-components/p-BIJhHSAt.system.js +0 -1
  407. package/dist/boreal-web-components/p-BKRyWlfr.js +0 -1
  408. package/dist/boreal-web-components/p-BhTPNsBb.js +0 -1
  409. package/dist/boreal-web-components/p-DoDeP7KR.system.js +0 -1
  410. package/dist/boreal-web-components/p-Dtp4O0H2.system.js +0 -1
  411. package/dist/boreal-web-components/p-Dy7QKP9e.js +0 -1
  412. package/dist/boreal-web-components/p-GjKJvOVG.system.js +0 -2
  413. package/dist/boreal-web-components/p-ac64d4a5.system.entry.js +0 -1
  414. package/dist/boreal-web-components/p-b61fe06c.entry.js +0 -1
  415. package/dist/boreal-web-components/p-cdc87437.entry.js +0 -1
  416. package/dist/boreal-web-components/p-d8ec8557.system.entry.js +0 -1
  417. package/dist/boreal-web-components/p-ea889727.entry.js +0 -1
  418. package/dist/boreal-web-components/p-fa327346.system.entry.js +0 -1
  419. package/dist/boreal-web-components/p-sDZFaZMN.system.js +0 -1
  420. package/dist/boreal-web-components/p-vfAIdwy0.js +0 -1
  421. package/dist/cjs/bds-tooltip.cjs.entry.js +0 -152
  422. package/dist/cjs/bds-typography.cjs.entry.js +0 -168
  423. package/dist/cjs/validateProps-BNOBk1Xs.js +0 -20
  424. package/dist/collection/utils/__test__/mocks/index.js +0 -1
  425. package/dist/esm/bds-tooltip.entry.js +0 -150
  426. package/dist/esm/bds-typography.entry.js +0 -166
  427. package/dist/esm/validateProps-vfAIdwy0.js +0 -18
  428. package/dist/esm-es5/anchored.mixin-Y3MkGc2X.js +0 -1
  429. package/dist/esm-es5/bds-tooltip.entry.js +0 -1
  430. package/dist/esm-es5/bds-typography.entry.js +0 -1
  431. package/dist/esm-es5/index-D4EFsvs1.js +0 -2
  432. package/dist/esm-es5/internals-Dy7QKP9e.js +0 -1
  433. package/dist/esm-es5/states-BhTPNsBb.js +0 -1
  434. package/dist/esm-es5/validateProps-vfAIdwy0.js +0 -1
  435. package/dist/types/utils/__test__/mocks/index.d.ts +0 -2
  436. package/dist/cjs/{internals-X77qKxsK.js → form-associated.mixin-DXwvF_vW.js} +30 -30
  437. package/dist/collection/utils/{__test__ → testing}/constants.js +0 -0
  438. package/dist/collection/utils/{__test__ → testing}/fixtures.js +0 -0
  439. package/dist/collection/utils/{__test__ → testing}/helpers.js +0 -0
  440. package/dist/collection/utils/{__test__/backdrop-mock.js → testing/mocks/backdrop.js} +0 -0
  441. package/dist/collection/utils/{__test__/mocks/ElementInternals.js → testing/mocks/elementInternals.js} +0 -0
  442. package/dist/collection/utils/{__test__/popover-mock.js → testing/mocks/popover.js} +0 -0
  443. package/dist/esm/{internals-Dy7QKP9e.js → form-associated.mixin-CvK2d92c.js} +30 -30
  444. /package/dist/types/utils/{__test__ → testing}/constants.d.ts +0 -0
  445. /package/dist/types/utils/{__test__ → testing}/fixtures.d.ts +0 -0
  446. /package/dist/types/utils/{__test__ → testing}/helpers.d.ts +0 -0
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, h, a as Host, g as getElement } from './index-D4EFsvs1.js';
2
- import { v as validatePropValue } from './validateProps-vfAIdwy0.js';
1
+ import { r as registerInstance, h, a as Host, g as getElement } from './index-BqJlOB6b.js';
2
+ import { v as validatePropValue } from './validateProps-kGnB15Lz.js';
3
3
 
4
4
  const SPINNER_SIZES = {
5
5
  SMALL: 'sm',
@@ -7,7 +7,7 @@ const SPINNER_SIZES = {
7
7
  LARGE: 'lg',
8
8
  };
9
9
 
10
- const bdsSpinnerCss = () => `@charset "UTF-8";:host{display:block}.bds-spinner{display:inline-block;position:relative;width:1em;height:1em}.bds-spinner::before,.bds-spinner::after{content:"";position:absolute;border-color:transparent transparent var(--boreal-primary-base) transparent;border-radius:50%;border-width:3px;border-style:solid;top:0;left:0;width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.bds-spinner::before{opacity:0.2;border-style:dashed;-webkit-animation:spin 0.8s linear infinite;animation:spin 0.8s linear infinite}.bds-spinner::after{-webkit-animation:draw-arc 0.8s linear infinite;animation:draw-arc 0.8s linear infinite}.bds-spinner--small{width:var(--boreal-layout-m);height:var(--boreal-layout-m)}.bds-spinner--medium{width:var(--boreal-layout-ml);height:var(--boreal-layout-ml)}.bds-spinner--large{width:var(--boreal-layout-xl);height:var(--boreal-layout-xl)}.bds-spinner__sr-only{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip:rect(0, 0, 0, 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes draw-arc{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}60%{-webkit-transform:rotate(330deg);transform:rotate(330deg)}65%{-webkit-transform:rotate(335deg);transform:rotate(335deg)}90%{-webkit-transform:rotate(350deg);transform:rotate(350deg)}95%{-webkit-transform:rotate(355deg);transform:rotate(355deg)}98%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes draw-arc{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}60%{-webkit-transform:rotate(330deg);transform:rotate(330deg)}65%{-webkit-transform:rotate(335deg);transform:rotate(335deg)}90%{-webkit-transform:rotate(350deg);transform:rotate(350deg)}95%{-webkit-transform:rotate(355deg);transform:rotate(355deg)}98%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}`;
10
+ const bdsSpinnerCss = () => `@charset "UTF-8";bds-spinner{display:inline-block;position:relative;width:1em;height:1em}bds-spinner::before,bds-spinner::after{content:"";position:absolute;border-color:transparent transparent var(--boreal-primary-base) transparent;border-radius:50%;border-width:3px;border-style:solid;top:0;left:0;width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box}bds-spinner::before{opacity:0.2;border-style:dashed;-webkit-animation:spin 0.8s linear infinite;animation:spin 0.8s linear infinite}bds-spinner::after{-webkit-animation:draw-arc 0.8s linear infinite;animation:draw-arc 0.8s linear infinite}.bds-spinner--small{width:var(--boreal-layout-m);height:var(--boreal-layout-m)}.bds-spinner--medium{width:var(--boreal-layout-ml);height:var(--boreal-layout-ml)}.bds-spinner--large{width:var(--boreal-layout-xl);height:var(--boreal-layout-xl)}.bds-spinner__sr-only{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip:rect(0, 0, 0, 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes draw-arc{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}60%{-webkit-transform:rotate(330deg);transform:rotate(330deg)}65%{-webkit-transform:rotate(335deg);transform:rotate(335deg)}90%{-webkit-transform:rotate(350deg);transform:rotate(350deg)}95%{-webkit-transform:rotate(355deg);transform:rotate(355deg)}98%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes draw-arc{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}60%{-webkit-transform:rotate(330deg);transform:rotate(330deg)}65%{-webkit-transform:rotate(335deg);transform:rotate(335deg)}90%{-webkit-transform:rotate(350deg);transform:rotate(350deg)}95%{-webkit-transform:rotate(355deg);transform:rotate(355deg)}98%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}`;
11
11
 
12
12
  const BdsSpinner = class {
13
13
  constructor(hostRef) {
@@ -38,7 +38,7 @@ const BdsSpinner = class {
38
38
  };
39
39
  }
40
40
  render() {
41
- return (h(Host, { key: 'b38497732140f7e9dd155199c49f8365f00b004b', class: this.getClassMap, role: "status", "aria-label": this.label, "aria-live": "polite", "aria-busy": "true" }, h("span", { key: '47befa4469a3cf297493c54bcb8acc5bca76fbd3', class: "bds-spinner__sr-only" }, this.label)));
41
+ return (h(Host, { key: 'd114eb6445b81a4e7beafd0ff08b8aaf6e1a96e7', class: this.getClassMap, role: "status", "aria-label": this.label, "aria-live": "polite", "aria-busy": "true" }, h("span", { key: 'fa45675b2e258eca9c44a9374a65f26c781343d5', class: "bds-spinner__sr-only" }, this.label)));
42
42
  }
43
43
  get el() { return getElement(this); }
44
44
  static get watchers() { return {
@@ -0,0 +1,57 @@
1
+ import { r as registerInstance, h, a as Host, g as getElement } from './index-BqJlOB6b.js';
2
+ import { P as PROCESS_STATUS } from './states-Bfazyxqi.js';
3
+ import { v as validatePropValue } from './validateProps-kGnB15Lz.js';
4
+
5
+ const INDICATOR_TYPES = {
6
+ NONE: 'none',
7
+ DOT: 'dot',
8
+ ICON: 'icon',
9
+ };
10
+
11
+ const bdsStatusCss = () => `@charset "UTF-8";.bds-status{color:var(--boreal-text-default-ink);text-align:center;font-family:var(--boreal-typography-font-family-primary);font-size:var(--boreal-typography-font-size-xs);font-style:normal;font-weight:var(--boreal-typography-font-weight-semibold);line-height:var(--boreal-typography-line-height-xs);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;gap:var(--boreal-spacing-3xs);padding:var(--boreal-spacing-3xs) var(--boreal-spacing-xs);min-height:var(--boreal-spacing-ml);border-radius:var(--boreal-radius-xs)}.bds-status>[slot=icon]{display:none}.bds-status--icon>[slot=icon]{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:var(--boreal-layout-s);height:var(--boreal-layout-s)}.bds-status__dot{background-color:var(--boreal-icon-default-light);width:var(--boreal-spacing-xs);height:var(--boreal-spacing-xs);border-radius:var(--boreal-radius-full)}.bds-status--neutral{color:var(--boreal-text-default-ink);background-color:var(--boreal-ui-default-lighter)}.bds-status--neutral>.bds-status__dot{background-color:var(--boreal-icon-default-lighter)}.bds-status--neutral>[slot=icon]{color:var(--boreal-icon-default-lighter)}.bds-status--neutral>.bds-status__dot{background-color:var(--boreal-icon-default-light)}.bds-status--pending{color:var(--boreal-text-warning-dark);background-color:var(--boreal-ui-warning-lighter)}.bds-status--pending>.bds-status__dot{background-color:var(--boreal-icon-warning-base)}.bds-status--pending>[slot=icon]{color:var(--boreal-icon-warning-base)}.bds-status--in-progress{color:var(--boreal-text-information-dark);background-color:var(--boreal-ui-info-lighter)}.bds-status--in-progress>.bds-status__dot{background-color:var(--boreal-icon-info-base)}.bds-status--in-progress>[slot=icon]{color:var(--boreal-icon-info-base)}.bds-status--complete{color:var(--boreal-text-success-dark);background-color:var(--boreal-ui-success-lighter)}.bds-status--complete>.bds-status__dot{background-color:var(--boreal-icon-success-base)}.bds-status--complete>[slot=icon]{color:var(--boreal-icon-success-base)}.bds-status--cancel{color:var(--boreal-text-danger-dark);background-color:var(--boreal-ui-danger-lighter)}.bds-status--cancel>.bds-status__dot{background-color:var(--boreal-icon-danger-base)}.bds-status--cancel>[slot=icon]{color:var(--boreal-icon-danger-base)}`;
12
+
13
+ const BdsStatus = class {
14
+ constructor(hostRef) {
15
+ registerInstance(this, hostRef);
16
+ /** state is a string attribute. Controls the visual state variant of the status badge.
17
+ * Determines the background, accent, and text colors applied to the element.
18
+ * An invalid value falls back to `"neutral"` and a warning is set on the host element. */
19
+ this.state = PROCESS_STATUS.NEUTRAL;
20
+ /** indicator is a string attribute. Controls the type of indicator rendered before the slotted label.
21
+ * An invalid value falls back to `"none"` and a warning is set on the host element. */
22
+ this.indicator = INDICATOR_TYPES.NONE;
23
+ }
24
+ /** Validates the `state` prop against the set of allowed values.
25
+ * Falls back to `"neutral"` when an invalid value is detected. */
26
+ checkPropValues() {
27
+ validatePropValue(Object.values(PROCESS_STATUS), PROCESS_STATUS.NEUTRAL, this.el, 'state');
28
+ validatePropValue(Object.values(INDICATOR_TYPES), INDICATOR_TYPES.NONE, this.el, 'indicator');
29
+ }
30
+ /** Before component rendered */
31
+ componentWillLoad() {
32
+ this.checkPropValues();
33
+ }
34
+ /* Method to get the class map based on the status prop */
35
+ get classMap() {
36
+ return {
37
+ 'bds-status': true,
38
+ [`bds-status--${this.state}`]: true,
39
+ [`bds-status--${this.indicator}`]: true,
40
+ };
41
+ }
42
+ render() {
43
+ return (h(Host, { key: '36cf2dfe777002b02d126d38cb9ed2bce3f828a6', class: this.classMap, role: "status" }, this.indicator === INDICATOR_TYPES.DOT ? h("div", { class: "bds-status__dot", "aria-hidden": "true" }) : '', h("slot", { key: '99ab1fa89dc28f3ffca617508b5c577abf874d7a', name: "icon" }), h("slot", { key: '8ff726d294fc524950ac0255c71f4ba65b3c9b96' })));
44
+ }
45
+ get el() { return getElement(this); }
46
+ static get watchers() { return {
47
+ "state": [{
48
+ "checkPropValues": 0
49
+ }],
50
+ "indicator": [{
51
+ "checkPropValues": 0
52
+ }]
53
+ }; }
54
+ };
55
+ BdsStatus.style = bdsStatusCss();
56
+
57
+ export { BdsStatus as bds_status };
@@ -0,0 +1,138 @@
1
+ import { r as registerInstance, c as createEvent, h, F as Fragment, a as Host, g as getElement } from './index-BqJlOB6b.js';
2
+ import { c as createId } from './BaseAttributes-DhSchGPI.js';
3
+ import { v as validatePropValue } from './validateProps-kGnB15Lz.js';
4
+
5
+ const TAG_COLORS = {
6
+ GRAY: 'gray',
7
+ CYAN: 'cyan',
8
+ TEAL: 'teal',
9
+ LIME: 'lime',
10
+ ORANGE: 'orange',
11
+ COBALT: 'cobalt',
12
+ ROSE: 'rose',
13
+ PURPLE: 'purple',
14
+ };
15
+
16
+ const bdsTagCss = () => `@charset "UTF-8";.bds-tag{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;vertical-align:middle;gap:var(--boreal-spacing-3xs);padding:var(--boreal-spacing-3xs) var(--boreal-spacing-3xs) var(--boreal-spacing-3xs) var(--boreal-spacing-2xs);border-radius:var(--boreal-radius-m);cursor:default;max-width:100%;min-width:0;font-family:var(--boreal-typography-font-family-primary);font-size:var(--boreal-typography-font-size-xs);font-weight:var(--boreal-typography-font-weight-semibold);line-height:var(--boreal-typography-line-height-xs)}.bds-tag:hover:not(.bds-tag--selected):not(.bds-tag--disabled){-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-tag:focus:not(.bds-tag--selected){outline:none;-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-tag--selected{outline:none;-webkit-box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus), 0 1px 2px 0 rgba(19, 19, 22, 0.15) inset;box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus), 0 1px 2px 0 rgba(19, 19, 22, 0.15) inset}.bds-tag__icon{font-size:var(--boreal-typography-font-size-md);max-height:var(--boreal-spacing-m)}.bds-tag__icon:empty{display:none}.bds-tag__text{margin-right:var(--boreal-spacing-2xs);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bds-tag__close-button{display:-ms-flexbox;display:flex;padding:var(--boreal-spacing-3xs);width:var(--boreal-spacing-s);height:var(--boreal-spacing-s);-webkit-box-sizing:content-box;box-sizing:content-box;border-radius:var(--boreal-radius-full);border:0px solid transparent;background-color:transparent;opacity:0.5;cursor:pointer}.bds-tag__close-button:hover{-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);background-color:var(--boreal-ui-inverse);opacity:0.5}.bds-tag__close-button:focus{background-color:var(--boreal-ui-inverse);opacity:0.5;outline:none;-webkit-box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus), 0 1px 2px 0 rgba(19, 19, 22, 0.15) inset;box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus), 0 1px 2px 0 rgba(19, 19, 22, 0.15) inset}.bds-tag__close-button:active{background-color:var(--boreal-ui-inverse);opacity:0.5;-webkit-box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus), 0 1px 2px 0 rgba(19, 19, 22, 0.15) inset, 0 1px 2px 0 rgba(19, 19, 22, 0.15) inset;box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus), 0 1px 2px 0 rgba(19, 19, 22, 0.15) inset, 0 1px 2px 0 rgba(19, 19, 22, 0.15) inset}.bds-tag--disabled{cursor:not-allowed}.bds-tag--disabled .bds-tag__close-button{pointer-events:none}.bds-tag--gray{background-color:var(--boreal-extended-onyx-light);color:var(--boreal-extended-onyx-dark)}.bds-tag--gray .bds-tag__close-button{color:var(--boreal-extended-onyx-dark)}.bds-tag--gray.bds-tag--disabled{color:var(--boreal-extended-onyx-base);background-color:var(--boreal-extended-onyx-lighter)}.bds-tag--gray.bds-tag--disabled .bds-tag__close-button{color:var(--boreal-extended-onyx-base)}.bds-tag--purple{background-color:var(--boreal-extended-purple-light);color:var(--boreal-extended-purple-dark)}.bds-tag--purple .bds-tag__close-button{color:var(--boreal-extended-purple-dark)}.bds-tag--purple.bds-tag--disabled{color:var(--boreal-extended-purple-light);background-color:var(--boreal-extended-purple-lighter)}.bds-tag--purple.bds-tag--disabled .bds-tag__close-button{color:var(--boreal-extended-purple-light)}.bds-tag--rose{background-color:var(--boreal-extended-rose-light);color:var(--boreal-extended-rose-dark)}.bds-tag--rose .bds-tag__close-button{color:var(--boreal-extended-rose-dark)}.bds-tag--rose.bds-tag--disabled{color:var(--boreal-extended-rose-light);background-color:var(--boreal-extended-rose-lighter)}.bds-tag--rose.bds-tag--disabled .bds-tag__close-button{color:var(--boreal-extended-rose-light)}.bds-tag--lime{background-color:var(--boreal-extended-lime-light);color:var(--boreal-extended-lime-dark)}.bds-tag--lime .bds-tag__close-button{color:var(--boreal-extended-lime-dark)}.bds-tag--lime.bds-tag--disabled{color:var(--boreal-extended-lime-light);background-color:var(--boreal-extended-lime-lighter)}.bds-tag--lime.bds-tag--disabled .bds-tag__close-button{color:var(--boreal-extended-lime-light)}.bds-tag--cobalt{background-color:var(--boreal-extended-cobalt-light);color:var(--boreal-extended-cobalt-dark)}.bds-tag--cobalt .bds-tag__close-button{color:var(--boreal-extended-cobalt-dark)}.bds-tag--cobalt.bds-tag--disabled{color:var(--boreal-extended-cobalt-light);background-color:var(--boreal-extended-cobalt-lighter)}.bds-tag--cobalt.bds-tag--disabled .bds-tag__close-button{color:var(--boreal-extended-cobalt-light)}.bds-tag--orange{background-color:var(--boreal-extended-orange-light);color:var(--boreal-extended-orange-dark)}.bds-tag--orange .bds-tag__close-button{color:var(--boreal-extended-orange-dark)}.bds-tag--orange.bds-tag--disabled{color:var(--boreal-extended-orange-light);background-color:var(--boreal-extended-orange-lighter)}.bds-tag--orange.bds-tag--disabled .bds-tag__close-button{color:var(--boreal-extended-orange-light)}.bds-tag--teal{background-color:var(--boreal-extended-teal-light);color:var(--boreal-extended-teal-dark)}.bds-tag--teal .bds-tag__close-button{color:var(--boreal-extended-teal-dark)}.bds-tag--teal.bds-tag--disabled{color:var(--boreal-extended-teal-light);background-color:var(--boreal-extended-teal-lighter)}.bds-tag--teal.bds-tag--disabled .bds-tag__close-button{color:var(--boreal-extended-teal-light)}.bds-tag--cyan{background-color:var(--boreal-extended-cyan-light);color:var(--boreal-extended-cyan-dark)}.bds-tag--cyan .bds-tag__close-button{color:var(--boreal-extended-cyan-dark)}.bds-tag--cyan.bds-tag--disabled{color:var(--boreal-extended-cyan-light);background-color:var(--boreal-extended-cyan-lighter)}.bds-tag--cyan.bds-tag--disabled .bds-tag__close-button{color:var(--boreal-extended-cyan-light)}`;
17
+
18
+ const BdsTag = class {
19
+ constructor(hostRef) {
20
+ registerInstance(this, hostRef);
21
+ this.bdsClose = createEvent(this, "bdsClose");
22
+ this.bdsSelect = createEvent(this, "bdsSelect");
23
+ this._id = createId('bds-tag');
24
+ this.internalSelected = false;
25
+ /**
26
+ * Whether the tag is selectable or not.
27
+ * @default false
28
+ */
29
+ this.multiselect = false;
30
+ /**
31
+ * Whether the tag is selected or not.
32
+ * @default false
33
+ */
34
+ this.selected = false;
35
+ /**
36
+ * Aria label for the close button when visible.
37
+ */
38
+ this.closeButtonLabel = 'Close tag';
39
+ /**
40
+ * Visual color variant: 'gray', 'cyan', 'cobalt', 'teal', 'lime', 'orange', 'rose', or 'purple'.
41
+ * @default "gray"
42
+ */
43
+ this.color = TAG_COLORS.GRAY;
44
+ /**
45
+ * Hides the close button that allows users to dismiss the tag.
46
+ * @default false
47
+ */
48
+ this.readonly = false;
49
+ /**
50
+ * Disables interaction with the tag. Reduces opacity and prevents interactions.
51
+ * @default false
52
+ */
53
+ this.disabled = false;
54
+ this.handleClose = (e) => {
55
+ if (this.disabled)
56
+ return;
57
+ if (e !== undefined) {
58
+ e.preventDefault();
59
+ e.stopPropagation();
60
+ }
61
+ this.bdsClose.emit({ id: this._id, selected: this.internalSelected, el: this.el });
62
+ };
63
+ this.handleKeyDown = (e) => {
64
+ if (this.disabled)
65
+ return;
66
+ const selectionKeys = [' ', 'Enter'];
67
+ const closeKeys = ['Delete', 'Backspace'];
68
+ if (!this.readonly && closeKeys.includes(e.key)) {
69
+ this.handleClose(e);
70
+ return;
71
+ }
72
+ if (selectionKeys.includes(e.key) && e.target === this.el) {
73
+ e.preventDefault();
74
+ this.handleSelection();
75
+ }
76
+ };
77
+ this.handleSelection = () => {
78
+ if (this.disabled)
79
+ return;
80
+ if (this.multiselect) {
81
+ this.internalSelected = !this.internalSelected;
82
+ this.bdsSelect.emit({ id: this._id, selected: this.internalSelected, el: this.el });
83
+ }
84
+ };
85
+ }
86
+ componentWillLoad() {
87
+ this.syncSelectedFromProp(this.selected);
88
+ this.checkPropValues();
89
+ this.validateMultiselectRole();
90
+ }
91
+ checkPropValues() {
92
+ validatePropValue(Object.values(TAG_COLORS), TAG_COLORS.GRAY, this.el, 'color');
93
+ }
94
+ syncSelectedFromProp(newValue) {
95
+ this.internalSelected = newValue;
96
+ }
97
+ validateMultiselectRole() {
98
+ if (!this.multiselect)
99
+ return;
100
+ const VALID_TAG_PARENTS = '[role="listbox"], [role="group"], bds-tag-group';
101
+ const el = this.el;
102
+ if (el.closest(VALID_TAG_PARENTS) === null) {
103
+ console.warn('[BorealDS Tag] Missing required ARIA parent. Expected role="listbox", role="group", or <bds-tag-group> when multiselect=true.');
104
+ }
105
+ }
106
+ getClasses() {
107
+ return {
108
+ 'bds-tag': true,
109
+ [`bds-tag--${this.color}`]: true,
110
+ 'bds-tag--disabled': this.disabled,
111
+ 'bds-tag--selected': this.internalSelected,
112
+ };
113
+ }
114
+ renderTag() {
115
+ return (h(Fragment, null, h("span", { "aria-hidden": "true", class: "bds-tag__icon" }, h("slot", { name: "icon" })), h("span", { class: "bds-tag__text" }, h("slot", null))));
116
+ }
117
+ renderCloseIcon() {
118
+ return (h("button", { class: "bds-tag__close-button", "aria-label": this.closeButtonLabel, onClick: e => this.handleClose(e), disabled: this.disabled, type: "button" }, h("em", { class: "bds-icon-close", "aria-hidden": "true" })));
119
+ }
120
+ render() {
121
+ const classes = this.getClasses();
122
+ const hasCloseButton = !this.readonly;
123
+ const isSelectable = this.multiselect;
124
+ return (h(Host, { key: '0864f3764aef3354e5b2c7494a5c9c2cb261582f', class: classes, role: isSelectable ? 'option' : undefined, tabIndex: isSelectable && !this.disabled ? 0 : -1, "aria-disabled": this.disabled ? 'true' : undefined, "aria-selected": isSelectable ? `${this.internalSelected}` : undefined, onKeyDown: !this.disabled ? (e) => this.handleKeyDown(e) : undefined, onClick: !this.disabled ? this.handleSelection : undefined, id: this._id }, this.renderTag(), hasCloseButton && this.renderCloseIcon()));
125
+ }
126
+ get el() { return getElement(this); }
127
+ static get watchers() { return {
128
+ "color": [{
129
+ "checkPropValues": 0
130
+ }],
131
+ "selected": [{
132
+ "syncSelectedFromProp": 0
133
+ }]
134
+ }; }
135
+ };
136
+ BdsTag.style = bdsTagCss();
137
+
138
+ export { BdsTag as bds_tag };
@@ -1,6 +1,7 @@
1
- import { M as Mixin, r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-D4EFsvs1.js';
2
- import { f as formAssociatedMixin, s as setFormValue, r as runValidators } from './internals-Dy7QKP9e.js';
3
- import { v as validatePropValue } from './validateProps-vfAIdwy0.js';
1
+ import { M as Mixin, r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-BqJlOB6b.js';
2
+ import { f as formAssociatedMixin, s as setFormValue, r as runValidators } from './form-associated.mixin-CvK2d92c.js';
3
+ import { c as createId } from './BaseAttributes-DhSchGPI.js';
4
+ import { v as validatePropValue } from './validateProps-kGnB15Lz.js';
4
5
 
5
6
  /**
6
7
  * Centralized list of `aria-label` values used by interactive elements.
@@ -24,17 +25,6 @@ const ICONS = {
24
25
  SightOff: 'bds-icon-sight-off',
25
26
  };
26
27
 
27
- /**
28
- * Generates a stable random ID for internal ARIA linkage.
29
- * Used by components to wire labels, descriptions, and controls
30
- * without exposing the ID as a public prop.
31
- *
32
- * @param prefix - Component-specific prefix for readability in DevTools.
33
- */
34
- function createId(prefix = 'bds') {
35
- return `${prefix}-${Math.random().toString(36).substr(2, 9)}`;
36
- }
37
-
38
28
  const TEXT_FIELD_TYPES = {
39
29
  TEXT: 'text',
40
30
  PASSWORD: 'password',
@@ -341,7 +331,7 @@ const BdsTextField = class extends Mixin(formAssociatedMixin) {
341
331
  : this.helperText;
342
332
  const showFooter = helperContent !== '' || (this.counter && this.charCount > 0);
343
333
  const typographyState = this.isDisabled ? 'disabled' : effectiveError ? 'error' : 'default';
344
- return (h(Host, { key: '8fcf734b92dfa2ad75a32bef27efea78bd61dd63', class: this.classMap, style: this.hostStyle, tabIndex: -1, onFocus: () => !this.readOnly && this.el.querySelector('input')?.focus() }, this.label !== '' && (h("bds-typography", { key: 'd50b6407278dd93b52fbbdbbc5e999a1185d4649', id: labelId, variant: "label", htmlFor: this._id, isRequired: this.required, tooltipText: this.info !== '' ? this.info : undefined, state: typographyState }, this.label)), h("div", { key: '89dc5c7830197786e7dc67b87f64a0b63c8a8c84', class: "bds-text-field__container" }, (this.icon !== '' || this.sublabel !== '') && (h("span", { key: 'a4139e0ce3b3d37bb33d55b5811e439974ed9d53', class: "bds-text-field__sublabel" }, this.icon !== '' && h("em", { key: '5fc8f5a49b348fe07c63242243274946e21aa782', class: this.icon }), this.sublabel)), h("slot", { key: 'a8f62dba555a26aba3b1105402f0afca1378c83a', name: "prefix" }), h("input", { key: 'ba2161c8d56c42847c7006d1742a2b60613f4628', id: this._id, class: "bds-text-field__control", "aria-labelledby": this.label !== '' ? labelId : undefined, "aria-describedby": showFooter && helperContent !== '' ? helperId : undefined, "aria-invalid": this.error || this.validationError ? 'true' : undefined, "aria-required": this.required ? 'true' : undefined, type: this.type === TEXT_FIELD_TYPES.PASSWORD && this.showPassword ? TEXT_FIELD_TYPES.TEXT : this.type, value: this.value, disabled: this.isDisabled, readOnly: this.readOnly, tabIndex: this.readOnly ? -1 : undefined, placeholder: this.placeholder, autocomplete: this.autocomplete, pattern: this.pattern !== '' ? this.pattern : undefined, minLength: this.minLength !== 0 ? this.minLength : undefined, maxLength: this.effectiveMaxLength, onMouseDown: (e) => this.handleMouseDown(e), onInput: (e) => this.handleInput(e), onChange: (e) => this.handleChange(e), onFocus: (e) => this.handleFocus(e), onBlur: (e) => this.handleBlur(e) }), (showClear || this.type === TEXT_FIELD_TYPES.PASSWORD) && (h("div", { key: 'c9ae74b2be87e2759d60ad69c9c91b95bc199163', class: "bds-text-field__actions" }, showClear && (h("button", { key: 'd94534386505f9c54aabe892aec58d81b6a0ea94', class: "bds-text-field__action bds-text-field__action--clear", type: "button", "aria-label": ARIA_LABELS.Clear, onClick: () => this.handleClear() }, h("em", { key: '7899ffad5be71b731ae8ead1d5601e3fc6b5f6a5', class: this.iconClear }))), this.type === TEXT_FIELD_TYPES.PASSWORD && (h("button", { key: '612aff7de193d9f61b955e686484c13baca3ff57', class: "bds-text-field__action bds-text-field__action--password", type: "button", "aria-label": this.showPassword ? ARIA_LABELS.HidePassword : ARIA_LABELS.ShowPassword, onClick: () => this.handleShowPassword() }, h("em", { key: 'e886085b840a351a7455a1adb685996835e47118', class: this.showPasswordIcon })))))), showFooter && (h("div", { key: '9b47bbaff802d0c4125e45c87f1e7366418dfdcc', class: "bds-text-field__footer" }, helperContent !== '' && (h("bds-typography", { key: '64265da85a16152af33b3f94c05e4d8562dc26df', id: helperId, variant: "helper", state: typographyState }, helperContent)), this.counter && this.charCount > 0 && (h("span", { key: '2a264545ba46b8d6908adabe729a1256334535ef', class: "bds-text-field__char-count" }, this.currentCharCount, "/", this.charCount))))));
334
+ return (h(Host, { key: '96b7e057fa7f25e8f7d13b7de0fd17f12de602bb', class: this.classMap, style: this.hostStyle, tabIndex: -1, onFocus: () => !this.readOnly && this.el.querySelector('input')?.focus() }, this.label !== '' && (h("bds-typography", { key: 'e827b43ea347037ff2d404229aaefdd258d2ad22', id: labelId, variant: "label", htmlFor: this._id, required: this.required, tooltipText: this.info !== '' ? this.info : undefined, state: typographyState }, this.label)), h("div", { key: 'f579762db25f65031917874dbb4c2347b5d9f027', class: "bds-text-field__container" }, (this.icon !== '' || this.sublabel !== '') && (h("span", { key: '191d2ccec9baf8b739163eea112dce9a1073f4bd', class: "bds-text-field__sublabel" }, this.icon !== '' && h("em", { key: '1cc1b1b7ece610b2a18ba872c4b7035d2239731b', class: this.icon }), this.sublabel)), h("slot", { key: 'ba7b08573b6ae35c10649125991a2bbed15f31f3', name: "prefix" }), h("input", { key: '6391338c4f636382cf19f888dc810baaf6820c80', id: this._id, class: "bds-text-field__control", "aria-labelledby": this.label !== '' ? labelId : undefined, "aria-describedby": showFooter && helperContent !== '' ? helperId : undefined, "aria-invalid": this.error || this.validationError ? 'true' : undefined, "aria-required": this.required ? 'true' : undefined, type: this.type === TEXT_FIELD_TYPES.PASSWORD && this.showPassword ? TEXT_FIELD_TYPES.TEXT : this.type, value: this.value, disabled: this.isDisabled, readOnly: this.readOnly, tabIndex: this.readOnly ? -1 : undefined, placeholder: this.placeholder, autocomplete: this.autocomplete, pattern: this.pattern !== '' ? this.pattern : undefined, minLength: this.minLength !== 0 ? this.minLength : undefined, maxLength: this.effectiveMaxLength, onMouseDown: (e) => this.handleMouseDown(e), onInput: (e) => this.handleInput(e), onChange: (e) => this.handleChange(e), onFocus: (e) => this.handleFocus(e), onBlur: (e) => this.handleBlur(e) }), (showClear || this.type === TEXT_FIELD_TYPES.PASSWORD) && (h("div", { key: 'e5dc4cab3d536ef09eaeae96ca68a7d4b4e15d92', class: "bds-text-field__actions" }, showClear && (h("button", { key: 'b18d06de000c3ea465be221dcbb77ab49bb3949f', class: "bds-text-field__action bds-text-field__action--clear", type: "button", "aria-label": ARIA_LABELS.Clear, onClick: () => this.handleClear() }, h("em", { key: '0aa5d75c5214b7832a2a2e80a1cd2c42af5bea9a', class: this.iconClear }))), this.type === TEXT_FIELD_TYPES.PASSWORD && (h("button", { key: 'fd97135cca8d32178461bf7109c9b6a7eec543e9', class: "bds-text-field__action bds-text-field__action--password", type: "button", "aria-label": this.showPassword ? ARIA_LABELS.HidePassword : ARIA_LABELS.ShowPassword, onClick: () => this.handleShowPassword() }, h("em", { key: '0de72e7756ad62bbe4fb5f925526071720f358db', class: this.showPasswordIcon })))))), showFooter && (h("div", { key: '9d1c0e8920511650ab6711f2f813c01491d52414', class: "bds-text-field__footer" }, helperContent !== '' && (h("bds-typography", { key: 'f27235a7a38f34b9a9f7bae762c3c6be12acd8b0', id: helperId, variant: "helper", state: typographyState }, helperContent)), this.counter && this.charCount > 0 && (h("span", { key: '3aa43ea8bd6a35963f0983ec8814e0ce19ee71ce', class: "bds-text-field__char-count" }, this.currentCharCount, "/", this.charCount))))));
345
335
  }
346
336
  static get formAssociated() { return true; }
347
337
  get el() { return getElement(this); }
@@ -0,0 +1,184 @@
1
+ import { M as Mixin, r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-BqJlOB6b.js';
2
+ import { f as formAssociatedMixin, s as setFormValue } from './form-associated.mixin-CvK2d92c.js';
3
+ import { a as inheritAriaAttributes } from './attributes-CaHOghy5.js';
4
+ import { c as createId } from './BaseAttributes-DhSchGPI.js';
5
+
6
+ const TOGGLE_PLACEMENT = {
7
+ LEFT: 'left',
8
+ RIGHT: 'right',
9
+ };
10
+
11
+ const bdsToggleCss = () => `@charset "UTF-8";.bds-toggle{font-family:var(--boreal-typography-font-family-primary);display:inline-block}.bds-toggle__container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:var(--boreal-spacing-2xs);outline:none;width:-webkit-max-content;width:-moz-max-content;width:max-content}.bds-toggle__container:focus{outline:none}.bds-toggle__container--inverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.bds-toggle:active,.bds-toggle:focus-visible{outline:none}.bds-toggle:active .bds-toggle__input:not([disabled])+.bds-toggle__slider,.bds-toggle:focus-visible .bds-toggle__input:not([disabled])+.bds-toggle__slider{-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-toggle .bds-toggle__input:active:not([disabled])+.bds-toggle__slider,.bds-toggle .bds-toggle__input:focus-visible:not([disabled])+.bds-toggle__slider{-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-toggle:hover:not(:active):not([checked]):not([disabled]) .bds-toggle__slider,.bds-toggle:hover:not(:active):focus-within:not([checked]) .bds-toggle__slider{-webkit-box-shadow:0 1px 2px 0 var(--boreal-stroke-default-light);box-shadow:0 1px 2px 0 var(--boreal-stroke-default-light)}.bds-toggle__switch{position:relative;display:inline-block;width:var(--boreal-spacing-3xl);height:var(--boreal-spacing-l)}.bds-toggle__input{opacity:0;width:0;height:0}.bds-toggle__input:not(:checked)+.bds-toggle__slider{border:1px solid var(--boreal-stroke-default-light)}.bds-toggle__input:checked+.bds-toggle__slider{background-color:var(--boreal-ui-primary-base)}.bds-toggle__input:checked+.bds-toggle__slider::before{-webkit-transform:translateX(var(--boreal-spacing-l));-ms-transform:translateX(var(--boreal-spacing-l));transform:translateX(var(--boreal-spacing-l))}.bds-toggle__input:disabled+.bds-toggle__slider{background-color:var(--boreal-ui-disabled);cursor:default}.bds-toggle__input:disabled+.bds-toggle__slider::before{background-color:var(--boreal-icon-default-light)}.bds-toggle__input:disabled:checked+.bds-toggle__slider{background-color:var(--boreal-ui-primary-light)}.bds-toggle__input:disabled:checked+.bds-toggle__slider::before{background-color:var(--boreal-icon-inverse)}.bds-toggle__slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--boreal-ui-base-light);-webkit-transition:all 0.4s, border-color 0s;transition:all 0.4s, border-color 0s}.bds-toggle__slider::before{position:absolute;content:"";height:var(--boreal-typography-font-size-md);width:var(--boreal-typography-font-size-md);left:var(--boreal-spacing-2xs);background-color:var(--boreal-text-inverse);bottom:0;top:0;margin:auto;-webkit-transition:0.3s;transition:0.3s}.bds-toggle__slider--round{border-radius:var(--boreal-radius-m)}.bds-toggle__slider--round::before{border-radius:var(--boreal-radius-full)}.bds-toggle__label{font-size:var(--boreal-typography-font-size-sm);color:var(--boreal-text-default)}.bds-toggle__helper-text{display:-ms-flexbox;display:flex;position:relative;color:var(--boreal-text-default-light);font-size:var(--boreal-typography-font-size-xs);margin-top:var(--boreal-spacing-2xs)}`;
12
+
13
+ const BdsToggle = class extends Mixin(formAssociatedMixin) {
14
+ constructor(hostRef) {
15
+ super();
16
+ registerInstance(this, hostRef);
17
+ this.valueChange = createEvent(this, "valueChange");
18
+ this.bdsChange = createEvent(this, "bdsChange");
19
+ if (hostRef.$hostElement$["s-ei"]) {
20
+ this.internals = hostRef.$hostElement$["s-ei"];
21
+ }
22
+ else {
23
+ this.internals = hostRef.$hostElement$.attachInternals();
24
+ hostRef.$hostElement$["s-ei"] = this.internals;
25
+ }
26
+ this.inheritedAttributes = {};
27
+ /** Disables the control. Defaults to `false`. */
28
+ this.disabled = false;
29
+ /** Marks the control as required for form submission. Defaults to `false`. */
30
+ this.required = false;
31
+ /** Tooltip content attached to the label. Rendered via `bds-typography` `tooltipText` prop. */
32
+ this.info = '';
33
+ /** When `true`, applies the error visual state. */
34
+ this.error = false;
35
+ /** Message shown below the input when `error` is `true`. Replaces `helperText`. */
36
+ this.errorMessage = '';
37
+ // ---------------------------------------------------------------------------
38
+ // Props
39
+ // ---------------------------------------------------------------------------
40
+ /** Whether the toggle is on. Defaults to `false`. */
41
+ this.checked = false;
42
+ /**
43
+ * Position of the label relative to the switch.
44
+ * Accepts `TOGGLE_PLACEMENT` values. Defaults to `TOGGLE_PLACEMENT.LEFT`.
45
+ */
46
+ this.placement = TOGGLE_PLACEMENT.LEFT;
47
+ /** Label displayed next to the toggle. Defaults to `""`. */
48
+ this.label = '';
49
+ /** Help text displayed below the toggle. Defaults to `""`. */
50
+ this.helperText = '';
51
+ /**
52
+ * Value submitted with the form data when checked.
53
+ * Behaves like the `value` attribute of a native `<input type="checkbox">`. Defaults to `"on"`.
54
+ */
55
+ this.value = 'on';
56
+ this._id = createId('bds-toggle');
57
+ // ---------------------------------------------------------------------------
58
+ // State
59
+ // ---------------------------------------------------------------------------
60
+ /** Internal mirror of the `disabled` prop, kept in sync via `@Watch` and `formDisabledCallback`. */
61
+ this.isDisabled = false;
62
+ /** `true` when the last triggered validation run returned invalid. Drives the error visual state. */
63
+ this.validationError = false;
64
+ /** Error message from the last failed validator. Shown in the footer when `validationError` is `true`. */
65
+ this.validationMessage = '';
66
+ /** Local mirror of the `checked` prop, kept in sync via `@Watch` and `formStateRestoreCallback`. */
67
+ this.isChecked = false;
68
+ this.handleClick = () => this.toggle();
69
+ this.handleKeyDown = (e) => {
70
+ if (e.key === ' ' || e.key === 'Enter') {
71
+ e.preventDefault();
72
+ this.toggle();
73
+ }
74
+ };
75
+ this.handleInvalid = (e) => {
76
+ e.preventDefault();
77
+ this.validate();
78
+ };
79
+ }
80
+ // ---------------------------------------------------------------------------
81
+ // Lifecycle
82
+ // ---------------------------------------------------------------------------
83
+ componentWillLoad() {
84
+ this.isChecked = this.checked || false;
85
+ this.isDisabled = this.disabled || false;
86
+ this.inheritedAttributes = { ...inheritAriaAttributes(this.el) };
87
+ this.syncFormValue();
88
+ }
89
+ // ---------------------------------------------------------------------------
90
+ // Watchers
91
+ // ---------------------------------------------------------------------------
92
+ onCheckedChange(newValue) {
93
+ this.isChecked = newValue;
94
+ this.syncFormValue();
95
+ }
96
+ onDisabledChange(next) {
97
+ this.isDisabled = next;
98
+ }
99
+ // ---------------------------------------------------------------------------
100
+ // Form-associated callbacks
101
+ // ---------------------------------------------------------------------------
102
+ formAssociatedCallback() {
103
+ this.syncFormValue();
104
+ }
105
+ formDisabledCallback(disabled) {
106
+ this.isDisabled = disabled;
107
+ }
108
+ formResetCallback() {
109
+ this.isChecked = false;
110
+ this.internals.setValidity({});
111
+ setFormValue(this.internals, null);
112
+ }
113
+ formStateRestoreCallback(state, _mode) {
114
+ this.isChecked = state === this.value;
115
+ this.internals.setValidity({});
116
+ this.syncFormValue();
117
+ }
118
+ // ---------------------------------------------------------------------------
119
+ // Private helpers
120
+ // ---------------------------------------------------------------------------
121
+ syncFormValue() {
122
+ setFormValue(this.internals, this.isChecked ? this.value : null);
123
+ }
124
+ validate() {
125
+ if (!this.isDisabled && this.required && !this.isChecked) {
126
+ const input = this.el.querySelector('input');
127
+ this.validationError = true;
128
+ this.validationMessage = 'This field is required';
129
+ this.internals.setValidity({ valueMissing: true }, this.validationMessage, input ?? this.el);
130
+ }
131
+ else {
132
+ this.validationError = false;
133
+ this.validationMessage = '';
134
+ this.internals.setValidity({});
135
+ }
136
+ }
137
+ toggle() {
138
+ if (this.isDisabled)
139
+ return;
140
+ this.isChecked = !this.isChecked;
141
+ this.syncFormValue();
142
+ this.validate();
143
+ this.valueChange.emit(this.isChecked);
144
+ this.bdsChange.emit({ checked: this.isChecked, value: this.value });
145
+ }
146
+ get containerClasses() {
147
+ return {
148
+ [`bds-toggle__container`]: true,
149
+ [`bds-toggle__container--inverse`]: this.placement === TOGGLE_PLACEMENT.RIGHT,
150
+ [`bds-toggle__container--checked`]: this.isChecked,
151
+ [`bds-toggle__container--disabled`]: this.isDisabled,
152
+ };
153
+ }
154
+ get canShowLabel() {
155
+ return this.label !== undefined && this.label.trim() !== '' && this.label !== undefined && this.label !== null;
156
+ }
157
+ // ---------------------------------------------------------------------------
158
+ // Render
159
+ // ---------------------------------------------------------------------------
160
+ render() {
161
+ const blockClass = 'bds-toggle';
162
+ const effectiveError = this.error || this.validationError;
163
+ const typographyState = this.isDisabled ? 'disabled' : effectiveError ? 'error' : 'default';
164
+ const helperContent = this.error && this.errorMessage !== ''
165
+ ? this.errorMessage
166
+ : this.validationError && this.validationMessage !== ''
167
+ ? this.validationMessage
168
+ : this.helperText;
169
+ return (h(Host, { key: '8aa5ec26708ce8eb834020353e2e01e882cefad6', ...this.inheritedAttributes, onClick: this.handleClick, onKeyDown: this.handleKeyDown, class: blockClass }, h("div", { key: 'a62ae102ba2167be5e03758c5bfc6197e8f3b73c', part: "container", class: this.containerClasses }, this.canShowLabel && (h("bds-typography", { key: 'c6129d113b083f9db5bad181f5a8cf1ae161b593', variant: "label", class: `${blockClass}__label`, htmlFor: this._id, required: this.required, tooltipText: this.info }, this.label)), h("label", { key: '570a0637d106b24823d39945e1b7a68a4cec4f36', class: `${blockClass}__switch`, htmlFor: this._id, onClick: e => e.preventDefault() }, h("input", { key: '197a94215e42e7a8a9d5a5652ad1163b501799ab', class: `${blockClass}__input`, "aria-invalid": this.error || this.validationError ? 'true' : undefined, "aria-label": this.label || null, id: this._id, type: "checkbox", name: this.name, required: this.required, disabled: this.isDisabled, checked: this.isChecked, onInvalid: this.handleInvalid }), h("span", { key: '09ac81f91f9dc92c4e4cac593db4be4697243ce0', class: `${blockClass}__slider ${blockClass}__slider--round` }))), helperContent !== '' && (h("bds-typography", { key: '4a35755ec9e280dfedb839826683f1272c76223d', class: `${blockClass}__helper-text`, variant: "helper", state: typographyState, onClick: e => e.stopPropagation() }, helperContent))));
170
+ }
171
+ static get formAssociated() { return true; }
172
+ get el() { return getElement(this); }
173
+ static get watchers() { return {
174
+ "checked": [{
175
+ "onCheckedChange": 0
176
+ }],
177
+ "disabled": [{
178
+ "onDisabledChange": 0
179
+ }]
180
+ }; }
181
+ };
182
+ BdsToggle.style = bdsToggleCss();
183
+
184
+ export { BdsToggle as bds_toggle };