@ongov/ontario-design-system-component-library 6.0.0-alpha.5 → 6.0.0-alpha.8

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 (506) hide show
  1. package/components/index.d.ts +43 -0
  2. package/components/index.js +2169 -0
  3. package/components/index.js.map +1 -0
  4. package/components/ontario-accordion.d.ts +11 -0
  5. package/components/ontario-accordion.js +378 -0
  6. package/components/ontario-accordion.js.map +1 -0
  7. package/components/ontario-aside.d.ts +11 -0
  8. package/components/ontario-aside.js +171 -0
  9. package/components/ontario-aside.js.map +1 -0
  10. package/components/ontario-back-to-top.d.ts +11 -0
  11. package/components/ontario-back-to-top.js +119 -0
  12. package/components/ontario-back-to-top.js.map +1 -0
  13. package/components/ontario-badge.d.ts +11 -0
  14. package/components/ontario-badge.js +9 -0
  15. package/components/ontario-badge.js.map +1 -0
  16. package/components/ontario-blockquote.d.ts +11 -0
  17. package/components/ontario-blockquote.js +145 -0
  18. package/components/ontario-blockquote.js.map +1 -0
  19. package/components/ontario-button.d.ts +11 -0
  20. package/components/ontario-button.js +237 -0
  21. package/components/ontario-button.js.map +1 -0
  22. package/components/ontario-callout.d.ts +11 -0
  23. package/components/ontario-callout.js +170 -0
  24. package/components/ontario-callout.js.map +1 -0
  25. package/components/ontario-card-collection.d.ts +11 -0
  26. package/components/ontario-card-collection.js +111 -0
  27. package/components/ontario-card-collection.js.map +1 -0
  28. package/components/ontario-card.d.ts +11 -0
  29. package/components/ontario-card.js +389 -0
  30. package/components/ontario-card.js.map +1 -0
  31. package/components/ontario-checkboxes.d.ts +11 -0
  32. package/components/ontario-checkboxes.js +428 -0
  33. package/components/ontario-checkboxes.js.map +1 -0
  34. package/components/ontario-critical-alert.d.ts +11 -0
  35. package/components/ontario-critical-alert.js +128 -0
  36. package/components/ontario-critical-alert.js.map +1 -0
  37. package/components/ontario-date-input.d.ts +11 -0
  38. package/components/ontario-date-input.js +623 -0
  39. package/components/ontario-date-input.js.map +1 -0
  40. package/components/ontario-dropdown-list.d.ts +11 -0
  41. package/components/ontario-dropdown-list.js +449 -0
  42. package/components/ontario-dropdown-list.js.map +1 -0
  43. package/components/ontario-fieldset.d.ts +11 -0
  44. package/components/ontario-fieldset.js +167 -0
  45. package/components/ontario-fieldset.js.map +1 -0
  46. package/components/ontario-footer.d.ts +11 -0
  47. package/components/ontario-footer.js +455 -0
  48. package/components/ontario-footer.js.map +1 -0
  49. package/components/ontario-form-container.d.ts +11 -0
  50. package/components/ontario-form-container.js +74 -0
  51. package/components/ontario-form-container.js.map +1 -0
  52. package/components/ontario-header-overflow-menu.d.ts +11 -0
  53. package/components/ontario-header-overflow-menu.js +9 -0
  54. package/components/ontario-header-overflow-menu.js.map +1 -0
  55. package/components/ontario-header.d.ts +11 -0
  56. package/components/ontario-header.js +900 -0
  57. package/components/ontario-header.js.map +1 -0
  58. package/components/ontario-hint-expander.d.ts +11 -0
  59. package/components/ontario-hint-expander.js +9 -0
  60. package/components/ontario-hint-expander.js.map +1 -0
  61. package/components/ontario-hint-text.d.ts +11 -0
  62. package/components/ontario-hint-text.js +9 -0
  63. package/components/ontario-hint-text.js.map +1 -0
  64. package/components/ontario-icon-accessibility.d.ts +11 -0
  65. package/components/ontario-icon-accessibility.js +170 -0
  66. package/components/ontario-icon-accessibility.js.map +1 -0
  67. package/components/ontario-icon-account.d.ts +11 -0
  68. package/components/ontario-icon-account.js +170 -0
  69. package/components/ontario-icon-account.js.map +1 -0
  70. package/components/ontario-icon-add-alt.d.ts +11 -0
  71. package/components/ontario-icon-add-alt.js +171 -0
  72. package/components/ontario-icon-add-alt.js.map +1 -0
  73. package/components/ontario-icon-add.d.ts +11 -0
  74. package/components/ontario-icon-add.js +171 -0
  75. package/components/ontario-icon-add.js.map +1 -0
  76. package/components/ontario-icon-alert-error.d.ts +11 -0
  77. package/components/ontario-icon-alert-error.js +9 -0
  78. package/components/ontario-icon-alert-error.js.map +1 -0
  79. package/components/ontario-icon-alert-information.d.ts +11 -0
  80. package/components/ontario-icon-alert-information.js +9 -0
  81. package/components/ontario-icon-alert-information.js.map +1 -0
  82. package/components/ontario-icon-alert-success.d.ts +11 -0
  83. package/components/ontario-icon-alert-success.js +9 -0
  84. package/components/ontario-icon-alert-success.js.map +1 -0
  85. package/components/ontario-icon-alert-warning.d.ts +11 -0
  86. package/components/ontario-icon-alert-warning.js +9 -0
  87. package/components/ontario-icon-alert-warning.js.map +1 -0
  88. package/components/ontario-icon-arrow-up.d.ts +11 -0
  89. package/components/ontario-icon-arrow-up.js +171 -0
  90. package/components/ontario-icon-arrow-up.js.map +1 -0
  91. package/components/ontario-icon-attach.d.ts +11 -0
  92. package/components/ontario-icon-attach.js +172 -0
  93. package/components/ontario-icon-attach.js.map +1 -0
  94. package/components/ontario-icon-bookmark-off.d.ts +11 -0
  95. package/components/ontario-icon-bookmark-off.js +170 -0
  96. package/components/ontario-icon-bookmark-off.js.map +1 -0
  97. package/components/ontario-icon-bookmark-on.d.ts +11 -0
  98. package/components/ontario-icon-bookmark-on.js +170 -0
  99. package/components/ontario-icon-bookmark-on.js.map +1 -0
  100. package/components/ontario-icon-calendar.d.ts +11 -0
  101. package/components/ontario-icon-calendar.js +170 -0
  102. package/components/ontario-icon-calendar.js.map +1 -0
  103. package/components/ontario-icon-camera.d.ts +11 -0
  104. package/components/ontario-icon-camera.js +170 -0
  105. package/components/ontario-icon-camera.js.map +1 -0
  106. package/components/ontario-icon-chevron-down.d.ts +11 -0
  107. package/components/ontario-icon-chevron-down.js +9 -0
  108. package/components/ontario-icon-chevron-down.js.map +1 -0
  109. package/components/ontario-icon-chevron-left.d.ts +11 -0
  110. package/components/ontario-icon-chevron-left.js +9 -0
  111. package/components/ontario-icon-chevron-left.js.map +1 -0
  112. package/components/ontario-icon-chevron-right.d.ts +11 -0
  113. package/components/ontario-icon-chevron-right.js +171 -0
  114. package/components/ontario-icon-chevron-right.js.map +1 -0
  115. package/components/ontario-icon-chevron-up.d.ts +11 -0
  116. package/components/ontario-icon-chevron-up.js +9 -0
  117. package/components/ontario-icon-chevron-up.js.map +1 -0
  118. package/components/ontario-icon-clock.d.ts +11 -0
  119. package/components/ontario-icon-clock.js +170 -0
  120. package/components/ontario-icon-clock.js.map +1 -0
  121. package/components/ontario-icon-close-header.d.ts +11 -0
  122. package/components/ontario-icon-close-header.js +171 -0
  123. package/components/ontario-icon-close-header.js.map +1 -0
  124. package/components/ontario-icon-close.d.ts +11 -0
  125. package/components/ontario-icon-close.js +171 -0
  126. package/components/ontario-icon-close.js.map +1 -0
  127. package/components/ontario-icon-cloud.d.ts +11 -0
  128. package/components/ontario-icon-cloud.js +170 -0
  129. package/components/ontario-icon-cloud.js.map +1 -0
  130. package/components/ontario-icon-collapse.d.ts +11 -0
  131. package/components/ontario-icon-collapse.js +168 -0
  132. package/components/ontario-icon-collapse.js.map +1 -0
  133. package/components/ontario-icon-credit-card.d.ts +11 -0
  134. package/components/ontario-icon-credit-card.js +171 -0
  135. package/components/ontario-icon-credit-card.js.map +1 -0
  136. package/components/ontario-icon-critical-alert-warning.d.ts +11 -0
  137. package/components/ontario-icon-critical-alert-warning.js +188 -0
  138. package/components/ontario-icon-critical-alert-warning.js.map +1 -0
  139. package/components/ontario-icon-delete.d.ts +11 -0
  140. package/components/ontario-icon-delete.js +170 -0
  141. package/components/ontario-icon-delete.js.map +1 -0
  142. package/components/ontario-icon-document.d.ts +11 -0
  143. package/components/ontario-icon-document.js +170 -0
  144. package/components/ontario-icon-document.js.map +1 -0
  145. package/components/ontario-icon-download.d.ts +11 -0
  146. package/components/ontario-icon-download.js +170 -0
  147. package/components/ontario-icon-download.js.map +1 -0
  148. package/components/ontario-icon-dropdown-arrow.d.ts +11 -0
  149. package/components/ontario-icon-dropdown-arrow.js +142 -0
  150. package/components/ontario-icon-dropdown-arrow.js.map +1 -0
  151. package/components/ontario-icon-edit.d.ts +11 -0
  152. package/components/ontario-icon-edit.js +170 -0
  153. package/components/ontario-icon-edit.js.map +1 -0
  154. package/components/ontario-icon-email.d.ts +11 -0
  155. package/components/ontario-icon-email.js +171 -0
  156. package/components/ontario-icon-email.js.map +1 -0
  157. package/components/ontario-icon-expand.d.ts +11 -0
  158. package/components/ontario-icon-expand.js +168 -0
  159. package/components/ontario-icon-expand.js.map +1 -0
  160. package/components/ontario-icon-export.d.ts +11 -0
  161. package/components/ontario-icon-export.js +170 -0
  162. package/components/ontario-icon-export.js.map +1 -0
  163. package/components/ontario-icon-facebook-alt.d.ts +11 -0
  164. package/components/ontario-icon-facebook-alt.js +170 -0
  165. package/components/ontario-icon-facebook-alt.js.map +1 -0
  166. package/components/ontario-icon-facebook.d.ts +11 -0
  167. package/components/ontario-icon-facebook.js +170 -0
  168. package/components/ontario-icon-facebook.js.map +1 -0
  169. package/components/ontario-icon-favourite-off.d.ts +11 -0
  170. package/components/ontario-icon-favourite-off.js +170 -0
  171. package/components/ontario-icon-favourite-off.js.map +1 -0
  172. package/components/ontario-icon-favourite-on.d.ts +11 -0
  173. package/components/ontario-icon-favourite-on.js +170 -0
  174. package/components/ontario-icon-favourite-on.js.map +1 -0
  175. package/components/ontario-icon-filter.d.ts +11 -0
  176. package/components/ontario-icon-filter.js +170 -0
  177. package/components/ontario-icon-filter.js.map +1 -0
  178. package/components/ontario-icon-flickr.d.ts +11 -0
  179. package/components/ontario-icon-flickr.js +170 -0
  180. package/components/ontario-icon-flickr.js.map +1 -0
  181. package/components/ontario-icon-grid.d.ts +11 -0
  182. package/components/ontario-icon-grid.js +170 -0
  183. package/components/ontario-icon-grid.js.map +1 -0
  184. package/components/ontario-icon-help.d.ts +11 -0
  185. package/components/ontario-icon-help.js +171 -0
  186. package/components/ontario-icon-help.js.map +1 -0
  187. package/components/ontario-icon-instagram.d.ts +11 -0
  188. package/components/ontario-icon-instagram.js +170 -0
  189. package/components/ontario-icon-instagram.js.map +1 -0
  190. package/components/ontario-icon-interac-en-alt.d.ts +11 -0
  191. package/components/ontario-icon-interac-en-alt.js +203 -0
  192. package/components/ontario-icon-interac-en-alt.js.map +1 -0
  193. package/components/ontario-icon-interac-en.d.ts +11 -0
  194. package/components/ontario-icon-interac-en.js +202 -0
  195. package/components/ontario-icon-interac-en.js.map +1 -0
  196. package/components/ontario-icon-interac-fr-alt.d.ts +11 -0
  197. package/components/ontario-icon-interac-fr-alt.js +203 -0
  198. package/components/ontario-icon-interac-fr-alt.js.map +1 -0
  199. package/components/ontario-icon-interac-fr.d.ts +11 -0
  200. package/components/ontario-icon-interac-fr.js +183 -0
  201. package/components/ontario-icon-interac-fr.js.map +1 -0
  202. package/components/ontario-icon-linkedin-alt.d.ts +11 -0
  203. package/components/ontario-icon-linkedin-alt.js +170 -0
  204. package/components/ontario-icon-linkedin-alt.js.map +1 -0
  205. package/components/ontario-icon-linkedin.d.ts +11 -0
  206. package/components/ontario-icon-linkedin.js +170 -0
  207. package/components/ontario-icon-linkedin.js.map +1 -0
  208. package/components/ontario-icon-list.d.ts +11 -0
  209. package/components/ontario-icon-list.js +170 -0
  210. package/components/ontario-icon-list.js.map +1 -0
  211. package/components/ontario-icon-live-chat.d.ts +11 -0
  212. package/components/ontario-icon-live-chat.js +170 -0
  213. package/components/ontario-icon-live-chat.js.map +1 -0
  214. package/components/ontario-icon-location-off.d.ts +11 -0
  215. package/components/ontario-icon-location-off.js +170 -0
  216. package/components/ontario-icon-location-off.js.map +1 -0
  217. package/components/ontario-icon-location-on.d.ts +11 -0
  218. package/components/ontario-icon-location-on.js +170 -0
  219. package/components/ontario-icon-location-on.js.map +1 -0
  220. package/components/ontario-icon-lock-off.d.ts +11 -0
  221. package/components/ontario-icon-lock-off.js +170 -0
  222. package/components/ontario-icon-lock-off.js.map +1 -0
  223. package/components/ontario-icon-lock-on.d.ts +11 -0
  224. package/components/ontario-icon-lock-on.js +170 -0
  225. package/components/ontario-icon-lock-on.js.map +1 -0
  226. package/components/ontario-icon-map.d.ts +11 -0
  227. package/components/ontario-icon-map.js +170 -0
  228. package/components/ontario-icon-map.js.map +1 -0
  229. package/components/ontario-icon-mastercard-alt.d.ts +11 -0
  230. package/components/ontario-icon-mastercard-alt.js +161 -0
  231. package/components/ontario-icon-mastercard-alt.js.map +1 -0
  232. package/components/ontario-icon-mastercard.d.ts +11 -0
  233. package/components/ontario-icon-mastercard.js +173 -0
  234. package/components/ontario-icon-mastercard.js.map +1 -0
  235. package/components/ontario-icon-media-fast-forward.d.ts +11 -0
  236. package/components/ontario-icon-media-fast-forward.js +167 -0
  237. package/components/ontario-icon-media-fast-forward.js.map +1 -0
  238. package/components/ontario-icon-media-fast-rewind.d.ts +11 -0
  239. package/components/ontario-icon-media-fast-rewind.js +170 -0
  240. package/components/ontario-icon-media-fast-rewind.js.map +1 -0
  241. package/components/ontario-icon-media-pause.d.ts +11 -0
  242. package/components/ontario-icon-media-pause.js +167 -0
  243. package/components/ontario-icon-media-pause.js.map +1 -0
  244. package/components/ontario-icon-media-play.d.ts +11 -0
  245. package/components/ontario-icon-media-play.js +167 -0
  246. package/components/ontario-icon-media-play.js.map +1 -0
  247. package/components/ontario-icon-media-stop.d.ts +11 -0
  248. package/components/ontario-icon-media-stop.js +167 -0
  249. package/components/ontario-icon-media-stop.js.map +1 -0
  250. package/components/ontario-icon-menu-header.d.ts +11 -0
  251. package/components/ontario-icon-menu-header.js +171 -0
  252. package/components/ontario-icon-menu-header.js.map +1 -0
  253. package/components/ontario-icon-menu.d.ts +11 -0
  254. package/components/ontario-icon-menu.js +171 -0
  255. package/components/ontario-icon-menu.js.map +1 -0
  256. package/components/ontario-icon-microphone-off.d.ts +11 -0
  257. package/components/ontario-icon-microphone-off.js +170 -0
  258. package/components/ontario-icon-microphone-off.js.map +1 -0
  259. package/components/ontario-icon-microphone-on.d.ts +11 -0
  260. package/components/ontario-icon-microphone-on.js +170 -0
  261. package/components/ontario-icon-microphone-on.js.map +1 -0
  262. package/components/ontario-icon-more-vertical.d.ts +11 -0
  263. package/components/ontario-icon-more-vertical.js +170 -0
  264. package/components/ontario-icon-more-vertical.js.map +1 -0
  265. package/components/ontario-icon-new-window.d.ts +11 -0
  266. package/components/ontario-icon-new-window.js +171 -0
  267. package/components/ontario-icon-new-window.js.map +1 -0
  268. package/components/ontario-icon-next.d.ts +11 -0
  269. package/components/ontario-icon-next.js +170 -0
  270. package/components/ontario-icon-next.js.map +1 -0
  271. package/components/ontario-icon-notification.d.ts +11 -0
  272. package/components/ontario-icon-notification.js +170 -0
  273. package/components/ontario-icon-notification.js.map +1 -0
  274. package/components/ontario-icon-password-hide.d.ts +11 -0
  275. package/components/ontario-icon-password-hide.js +170 -0
  276. package/components/ontario-icon-password-hide.js.map +1 -0
  277. package/components/ontario-icon-password-show.d.ts +11 -0
  278. package/components/ontario-icon-password-show.js +170 -0
  279. package/components/ontario-icon-password-show.js.map +1 -0
  280. package/components/ontario-icon-phone.d.ts +11 -0
  281. package/components/ontario-icon-phone.js +171 -0
  282. package/components/ontario-icon-phone.js.map +1 -0
  283. package/components/ontario-icon-photo.d.ts +11 -0
  284. package/components/ontario-icon-photo.js +170 -0
  285. package/components/ontario-icon-photo.js.map +1 -0
  286. package/components/ontario-icon-pin-location-off.d.ts +11 -0
  287. package/components/ontario-icon-pin-location-off.js +170 -0
  288. package/components/ontario-icon-pin-location-off.js.map +1 -0
  289. package/components/ontario-icon-pin-location-on.d.ts +11 -0
  290. package/components/ontario-icon-pin-location-on.js +170 -0
  291. package/components/ontario-icon-pin-location-on.js.map +1 -0
  292. package/components/ontario-icon-previous.d.ts +11 -0
  293. package/components/ontario-icon-previous.js +170 -0
  294. package/components/ontario-icon-previous.js.map +1 -0
  295. package/components/ontario-icon-print.d.ts +11 -0
  296. package/components/ontario-icon-print.js +170 -0
  297. package/components/ontario-icon-print.js.map +1 -0
  298. package/components/ontario-icon-remove-alt.d.ts +11 -0
  299. package/components/ontario-icon-remove-alt.js +171 -0
  300. package/components/ontario-icon-remove-alt.js.map +1 -0
  301. package/components/ontario-icon-remove.d.ts +11 -0
  302. package/components/ontario-icon-remove.js +171 -0
  303. package/components/ontario-icon-remove.js.map +1 -0
  304. package/components/ontario-icon-replay.d.ts +11 -0
  305. package/components/ontario-icon-replay.js +170 -0
  306. package/components/ontario-icon-replay.js.map +1 -0
  307. package/components/ontario-icon-rss-feed.d.ts +11 -0
  308. package/components/ontario-icon-rss-feed.js +170 -0
  309. package/components/ontario-icon-rss-feed.js.map +1 -0
  310. package/components/ontario-icon-save.d.ts +11 -0
  311. package/components/ontario-icon-save.js +170 -0
  312. package/components/ontario-icon-save.js.map +1 -0
  313. package/components/ontario-icon-search-white.d.ts +11 -0
  314. package/components/ontario-icon-search-white.js +173 -0
  315. package/components/ontario-icon-search-white.js.map +1 -0
  316. package/components/ontario-icon-search.d.ts +11 -0
  317. package/components/ontario-icon-search.js +171 -0
  318. package/components/ontario-icon-search.js.map +1 -0
  319. package/components/ontario-icon-sentiment-1.d.ts +11 -0
  320. package/components/ontario-icon-sentiment-1.js +170 -0
  321. package/components/ontario-icon-sentiment-1.js.map +1 -0
  322. package/components/ontario-icon-sentiment-2.d.ts +11 -0
  323. package/components/ontario-icon-sentiment-2.js +170 -0
  324. package/components/ontario-icon-sentiment-2.js.map +1 -0
  325. package/components/ontario-icon-sentiment-3.d.ts +11 -0
  326. package/components/ontario-icon-sentiment-3.js +170 -0
  327. package/components/ontario-icon-sentiment-3.js.map +1 -0
  328. package/components/ontario-icon-sentiment-4.d.ts +11 -0
  329. package/components/ontario-icon-sentiment-4.js +170 -0
  330. package/components/ontario-icon-sentiment-4.js.map +1 -0
  331. package/components/ontario-icon-sentiment-5.d.ts +11 -0
  332. package/components/ontario-icon-sentiment-5.js +170 -0
  333. package/components/ontario-icon-sentiment-5.js.map +1 -0
  334. package/components/ontario-icon-settings.d.ts +11 -0
  335. package/components/ontario-icon-settings.js +170 -0
  336. package/components/ontario-icon-settings.js.map +1 -0
  337. package/components/ontario-icon-share.d.ts +11 -0
  338. package/components/ontario-icon-share.js +170 -0
  339. package/components/ontario-icon-share.js.map +1 -0
  340. package/components/ontario-icon-sort-alphabetical-ascending.d.ts +11 -0
  341. package/components/ontario-icon-sort-alphabetical-ascending.js +170 -0
  342. package/components/ontario-icon-sort-alphabetical-ascending.js.map +1 -0
  343. package/components/ontario-icon-sort-alphabetical-descending.d.ts +11 -0
  344. package/components/ontario-icon-sort-alphabetical-descending.js +170 -0
  345. package/components/ontario-icon-sort-alphabetical-descending.js.map +1 -0
  346. package/components/ontario-icon-sort-ascending.d.ts +11 -0
  347. package/components/ontario-icon-sort-ascending.js +170 -0
  348. package/components/ontario-icon-sort-ascending.js.map +1 -0
  349. package/components/ontario-icon-sort-descending.d.ts +11 -0
  350. package/components/ontario-icon-sort-descending.js +170 -0
  351. package/components/ontario-icon-sort-descending.js.map +1 -0
  352. package/components/ontario-icon-sort-variant.d.ts +11 -0
  353. package/components/ontario-icon-sort-variant.js +167 -0
  354. package/components/ontario-icon-sort-variant.js.map +1 -0
  355. package/components/ontario-icon-sort.d.ts +11 -0
  356. package/components/ontario-icon-sort.js +170 -0
  357. package/components/ontario-icon-sort.js.map +1 -0
  358. package/components/ontario-icon-tag.d.ts +11 -0
  359. package/components/ontario-icon-tag.js +170 -0
  360. package/components/ontario-icon-tag.js.map +1 -0
  361. package/components/ontario-icon-text-message.d.ts +11 -0
  362. package/components/ontario-icon-text-message.js +170 -0
  363. package/components/ontario-icon-text-message.js.map +1 -0
  364. package/components/ontario-icon-timer.d.ts +11 -0
  365. package/components/ontario-icon-timer.js +170 -0
  366. package/components/ontario-icon-timer.js.map +1 -0
  367. package/components/ontario-icon-transport-bicycle.d.ts +11 -0
  368. package/components/ontario-icon-transport-bicycle.js +170 -0
  369. package/components/ontario-icon-transport-bicycle.js.map +1 -0
  370. package/components/ontario-icon-transport-bus.d.ts +11 -0
  371. package/components/ontario-icon-transport-bus.js +170 -0
  372. package/components/ontario-icon-transport-bus.js.map +1 -0
  373. package/components/ontario-icon-transport-car.d.ts +11 -0
  374. package/components/ontario-icon-transport-car.js +170 -0
  375. package/components/ontario-icon-transport-car.js.map +1 -0
  376. package/components/ontario-icon-transport-walk.d.ts +11 -0
  377. package/components/ontario-icon-transport-walk.js +170 -0
  378. package/components/ontario-icon-transport-walk.js.map +1 -0
  379. package/components/ontario-icon-tty.d.ts +11 -0
  380. package/components/ontario-icon-tty.js +171 -0
  381. package/components/ontario-icon-tty.js.map +1 -0
  382. package/components/ontario-icon-twitter-alt.d.ts +11 -0
  383. package/components/ontario-icon-twitter-alt.js +170 -0
  384. package/components/ontario-icon-twitter-alt.js.map +1 -0
  385. package/components/ontario-icon-twitter.d.ts +11 -0
  386. package/components/ontario-icon-twitter.js +170 -0
  387. package/components/ontario-icon-twitter.js.map +1 -0
  388. package/components/ontario-icon-upload.d.ts +11 -0
  389. package/components/ontario-icon-upload.js +170 -0
  390. package/components/ontario-icon-upload.js.map +1 -0
  391. package/components/ontario-icon-video.d.ts +11 -0
  392. package/components/ontario-icon-video.js +170 -0
  393. package/components/ontario-icon-video.js.map +1 -0
  394. package/components/ontario-icon-visa.d.ts +11 -0
  395. package/components/ontario-icon-visa.js +148 -0
  396. package/components/ontario-icon-visa.js.map +1 -0
  397. package/components/ontario-icon-vote-dislike.d.ts +11 -0
  398. package/components/ontario-icon-vote-dislike.js +170 -0
  399. package/components/ontario-icon-vote-dislike.js.map +1 -0
  400. package/components/ontario-icon-vote-like.d.ts +11 -0
  401. package/components/ontario-icon-vote-like.js +170 -0
  402. package/components/ontario-icon-vote-like.js.map +1 -0
  403. package/components/ontario-icon-vpn-key.d.ts +11 -0
  404. package/components/ontario-icon-vpn-key.js +170 -0
  405. package/components/ontario-icon-vpn-key.js.map +1 -0
  406. package/components/ontario-icon-wheelchair.d.ts +11 -0
  407. package/components/ontario-icon-wheelchair.js +170 -0
  408. package/components/ontario-icon-wheelchair.js.map +1 -0
  409. package/components/ontario-icon-wifi.d.ts +11 -0
  410. package/components/ontario-icon-wifi.js +170 -0
  411. package/components/ontario-icon-wifi.js.map +1 -0
  412. package/components/ontario-icon-youtube.d.ts +11 -0
  413. package/components/ontario-icon-youtube.js +170 -0
  414. package/components/ontario-icon-youtube.js.map +1 -0
  415. package/components/ontario-input.d.ts +11 -0
  416. package/components/ontario-input.js +419 -0
  417. package/components/ontario-input.js.map +1 -0
  418. package/components/ontario-language-toggle.d.ts +11 -0
  419. package/components/ontario-language-toggle.js +9 -0
  420. package/components/ontario-language-toggle.js.map +1 -0
  421. package/components/ontario-loading-indicator.d.ts +11 -0
  422. package/components/ontario-loading-indicator.js +181 -0
  423. package/components/ontario-loading-indicator.js.map +1 -0
  424. package/components/ontario-page-alert.d.ts +11 -0
  425. package/components/ontario-page-alert.js +172 -0
  426. package/components/ontario-page-alert.js.map +1 -0
  427. package/components/ontario-radio-buttons.d.ts +11 -0
  428. package/components/ontario-radio-buttons.js +430 -0
  429. package/components/ontario-radio-buttons.js.map +1 -0
  430. package/components/ontario-search-box.d.ts +11 -0
  431. package/components/ontario-search-box.js +283 -0
  432. package/components/ontario-search-box.js.map +1 -0
  433. package/components/ontario-step-indicator.d.ts +11 -0
  434. package/components/ontario-step-indicator.js +172 -0
  435. package/components/ontario-step-indicator.js.map +1 -0
  436. package/components/ontario-table.d.ts +11 -0
  437. package/components/ontario-table.js +392 -0
  438. package/components/ontario-table.js.map +1 -0
  439. package/components/ontario-task-list.d.ts +11 -0
  440. package/components/ontario-task-list.js +211 -0
  441. package/components/ontario-task-list.js.map +1 -0
  442. package/components/ontario-task.d.ts +11 -0
  443. package/components/ontario-task.js +327 -0
  444. package/components/ontario-task.js.map +1 -0
  445. package/components/ontario-textarea.d.ts +11 -0
  446. package/components/ontario-textarea.js +327 -0
  447. package/components/ontario-textarea.js.map +1 -0
  448. package/components/p-6uqsTY-M.js +171 -0
  449. package/components/p-6uqsTY-M.js.map +1 -0
  450. package/components/p-A8xwC5QP.js +24 -0
  451. package/components/p-A8xwC5QP.js.map +1 -0
  452. package/components/p-BBhl-3u7.js +169 -0
  453. package/components/p-BBhl-3u7.js.map +1 -0
  454. package/components/p-BF0_OXTe.js +64 -0
  455. package/components/p-BF0_OXTe.js.map +1 -0
  456. package/components/p-BHTls9cv.js +286 -0
  457. package/components/p-BHTls9cv.js.map +1 -0
  458. package/components/p-BOcd5PoR.js +330 -0
  459. package/components/p-BOcd5PoR.js.map +1 -0
  460. package/components/p-BxXM4eur.js +29 -0
  461. package/components/p-BxXM4eur.js.map +1 -0
  462. package/components/p-C-t5TNzY.js +10 -0
  463. package/components/p-C-t5TNzY.js.map +1 -0
  464. package/components/p-C0Xvjp7G.js +282 -0
  465. package/components/p-C0Xvjp7G.js.map +1 -0
  466. package/components/p-C73HZQcq.js +89 -0
  467. package/components/p-C73HZQcq.js.map +1 -0
  468. package/components/p-CI209psv.js +271 -0
  469. package/components/p-CI209psv.js.map +1 -0
  470. package/components/p-CIdZS10A.js +20 -0
  471. package/components/p-CIdZS10A.js.map +1 -0
  472. package/components/p-CNDrx73J.js +145 -0
  473. package/components/p-CNDrx73J.js.map +1 -0
  474. package/components/p-CNqFEifG.js +34 -0
  475. package/components/p-CNqFEifG.js.map +1 -0
  476. package/components/p-CRMogYVY.js +168 -0
  477. package/components/p-CRMogYVY.js.map +1 -0
  478. package/components/p-CXTm9jmr.js +141 -0
  479. package/components/p-CXTm9jmr.js.map +1 -0
  480. package/components/p-CXfntdg5.js +7 -0
  481. package/components/p-CXfntdg5.js.map +1 -0
  482. package/components/p-C__FBxsY.js +145 -0
  483. package/components/p-C__FBxsY.js.map +1 -0
  484. package/components/p-Cdm-Ot0O.js +95 -0
  485. package/components/p-Cdm-Ot0O.js.map +1 -0
  486. package/components/p-CeFeBwzQ.js +331 -0
  487. package/components/p-CeFeBwzQ.js.map +1 -0
  488. package/components/p-DGFFJaKo.js +168 -0
  489. package/components/p-DGFFJaKo.js.map +1 -0
  490. package/components/p-DIe1tcOp.js +197 -0
  491. package/components/p-DIe1tcOp.js.map +1 -0
  492. package/components/p-DJOzeqZ-.js +168 -0
  493. package/components/p-DJOzeqZ-.js.map +1 -0
  494. package/components/p-DMH_JI3w.js +6 -0
  495. package/components/p-DMH_JI3w.js.map +1 -0
  496. package/components/p-DgMhpSmi.js +324 -0
  497. package/components/p-DgMhpSmi.js.map +1 -0
  498. package/components/p-TS9NoIOc.js +11 -0
  499. package/components/p-TS9NoIOc.js.map +1 -0
  500. package/components/p-V_1wpeJe.js +17 -0
  501. package/components/p-V_1wpeJe.js.map +1 -0
  502. package/components/p-dXtLd1df.js +63 -0
  503. package/components/p-dXtLd1df.js.map +1 -0
  504. package/components/p-vdzS-daB.js +145 -0
  505. package/components/p-vdzS-daB.js.map +1 -0
  506. package/package.json +11 -9
@@ -0,0 +1,169 @@
1
+ import { p as proxyCustomElement, H, h } from './index.js';
2
+ import { a as validatePropExists } from './p-CNqFEifG.js';
3
+ import { C as ConsoleMessageClass } from './p-Cdm-Ot0O.js';
4
+ import { v as v4 } from './p-BF0_OXTe.js';
5
+
6
+ const ontarioHintTextCss =
7
+ '.ontario-hint{color:rgb(76.5, 76.5, 76.5);display:inline-block;margin:0 0 1rem 0;width:100%;max-width:48rem}.ontario-hint p{margin-bottom:1rem}.ontario-hint p:first-of-type{margin-top:0}.ontario-hint p:last-of-type{margin-bottom:0}.ontario-hint a[x-apple-data-detectors]{color:inherit;cursor:none;text-decoration:none}';
8
+
9
+ const OntarioHintText = /*@__PURE__*/ proxyCustomElement(
10
+ class OntarioHintText extends H {
11
+ constructor() {
12
+ super();
13
+ this.__registerHost();
14
+ this.__attachShadow();
15
+ /**
16
+ * The content type of the hint.
17
+ * If no prop is passed, it will default to a string.
18
+ * If the hint requires multiple lines or HTML, the `hintContentType` prop should be set to `html`.
19
+ */
20
+ this.hintContentType = 'string';
21
+ }
22
+ /**
23
+ * @part hint-text - The container for the hint text content. This part can be used to apply custom styles to the hint text.
24
+ */
25
+ /**
26
+ * Watch for changes to the `hintContentType` prop for validation purposes.
27
+ * If none is provided, or the wrong type is provided, it will default to `string`.
28
+ */
29
+ checkHintContentType() {
30
+ if (this.hintContentType !== 'string' && this.hintContentType !== 'html') {
31
+ const message = new ConsoleMessageClass();
32
+ message
33
+ .addDesignSystemTag()
34
+ .addMonospaceText(' hintContentType ')
35
+ .addRegularText('for')
36
+ .addMonospaceText(' <ontario-hint-text> ')
37
+ .addRegularText('was not one of the permitted types. A default type of `string` will be applied.')
38
+ .printMessage();
39
+ return (this.hintContentType = 'string');
40
+ }
41
+ return this.hintContentType;
42
+ }
43
+ /*
44
+ * Watch for changes in the `hint` prop for validation purposes.
45
+ * If no `hint` prop is provided, the `hint` will be set to the host element textContent (if it exists).
46
+ */
47
+ updateHintContent() {
48
+ var _a, _b;
49
+ this.hintState =
50
+ (_b = (_a = this.hint) !== null && _a !== void 0 ? _a : this.host.textContent) !== null && _b !== void 0
51
+ ? _b
52
+ : '';
53
+ this.validateHintContent(this.hintState);
54
+ }
55
+ /*
56
+ * Validate the `hint` and make sure the `hint` has a value.
57
+ * Log a warning if user doesn't input a value for the `hint` or element content.
58
+ */
59
+ validateHintContent(newValue) {
60
+ // If element content is not provided, check whether prop exists
61
+ if (!this.host.textContent) {
62
+ if (validatePropExists(newValue)) {
63
+ const message = new ConsoleMessageClass();
64
+ message
65
+ .addDesignSystemTag()
66
+ .addMonospaceText(' hint ')
67
+ .addRegularText('for')
68
+ .addMonospaceText(' <ontario-hint-text> ')
69
+ .addRegularText('was not provided')
70
+ .printMessage();
71
+ }
72
+ }
73
+ }
74
+ getId() {
75
+ var _a;
76
+ return (_a = this.elementId) !== null && _a !== void 0 ? _a : '';
77
+ }
78
+ /**
79
+ * This method returns the ontario-hint-text id. It is used to make sure the hint text and `aria-describedby` value of other form components match when the internal hint text props are used.
80
+ *
81
+ * @returns {Promise<string | undefined>} The ID of the hint text element, or undefined if no ID is set.
82
+ */
83
+ async getHintTextId() {
84
+ return this.elementId;
85
+ }
86
+ /**
87
+ * Set `hint` using internal component logic
88
+ */
89
+ componentWillLoad() {
90
+ var _a;
91
+ this.updateHintContent();
92
+ this.checkHintContentType();
93
+ this.elementId = (_a = this.elementId) !== null && _a !== void 0 ? _a : v4();
94
+ }
95
+ /**
96
+ * This helper is used to help load translations for any slots + text content passed in by the user.
97
+ */
98
+ componentDidLoad() {
99
+ const observer = new MutationObserver((mutations) => {
100
+ mutations.forEach((mutation) => {
101
+ if (mutation.type === 'attributes') {
102
+ this.updateHintContent();
103
+ }
104
+ });
105
+ });
106
+ const options = { attributes: true };
107
+ observer.observe(this.host, options);
108
+ }
109
+ render() {
110
+ if (this.hintContentType === 'html') {
111
+ return h(
112
+ 'div',
113
+ { id: this.getId(), class: 'ontario-hint', innerHTML: this.hintState },
114
+ !this.hintState && h('slot', null),
115
+ );
116
+ }
117
+ return h('p', { part: 'hint-text', id: this.getId(), class: 'ontario-hint' }, this.hintState || h('slot', null));
118
+ }
119
+ get host() {
120
+ return this;
121
+ }
122
+ static get watchers() {
123
+ return {
124
+ hintContentType: ['checkHintContentType'],
125
+ hint: ['updateHintContent'],
126
+ };
127
+ }
128
+ static get style() {
129
+ return ontarioHintTextCss;
130
+ }
131
+ },
132
+ [
133
+ 257,
134
+ 'ontario-hint-text',
135
+ {
136
+ hintContentType: [1025, 'hint-content-type'],
137
+ hint: [1],
138
+ elementId: [1025, 'element-id'],
139
+ hintState: [32],
140
+ getHintTextId: [64],
141
+ },
142
+ undefined,
143
+ {
144
+ hintContentType: ['checkHintContentType'],
145
+ hint: ['updateHintContent'],
146
+ },
147
+ ],
148
+ );
149
+ function defineCustomElement() {
150
+ if (typeof customElements === 'undefined') {
151
+ return;
152
+ }
153
+ const components = ['ontario-hint-text'];
154
+ components.forEach((tagName) => {
155
+ switch (tagName) {
156
+ case 'ontario-hint-text':
157
+ if (!customElements.get(tagName)) {
158
+ customElements.define(tagName, OntarioHintText);
159
+ }
160
+ break;
161
+ }
162
+ });
163
+ }
164
+ defineCustomElement();
165
+
166
+ export { OntarioHintText as O, defineCustomElement as d };
167
+ //# sourceMappingURL=p-BBhl-3u7.js.map
168
+
169
+ //# sourceMappingURL=p-BBhl-3u7.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-BBhl-3u7.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","uuid"],"sources":["src/components/ontario-hint-text/ontario-hint-text.scss?tag=ontario-hint-text&encapsulation=shadow","src/components/ontario-hint-text/ontario-hint-text.tsx"],"sourcesContent":["@use 'pkg:@ongov/ontario-design-system-global-styles/dist/styles/scss/1-variables/global.variables' as globalVariables;\n@use 'pkg:@ongov/ontario-design-system-global-styles/dist/styles/scss/1-variables/spacing.variables' as spacing;\n@use 'pkg:@ongov/ontario-design-system-global-styles/dist/styles/scss/1-variables/colours.variables' as colours;\n\n.ontario-hint {\n\tcolor: colours.$ontario-greyscale-70;\n\tdisplay: inline-block;\n\tmargin: spacing.$spacing-0 spacing.$spacing-0 spacing.$spacing-4 spacing.$spacing-0;\n\twidth: globalVariables.$full-width;\n\tmax-width: globalVariables.$standard-width;\n\n\tp {\n\t\tmargin-bottom: spacing.$spacing-4;\n\n\t\t&:first-of-type {\n\t\t\tmargin-top: spacing.$spacing-0;\n\t\t}\n\n\t\t&:last-of-type {\n\t\t\tmargin-bottom: spacing.$spacing-0;\n\t\t}\n\t}\n\n\t// Fractal component style coverage ↓\n\t// This is a fix to prevent auto-detection of phone numbers in Firefox & Safari on iPhone devices\n\ta[x-apple-data-detectors] {\n\t\tcolor: inherit;\n\t\tcursor: none;\n\t\ttext-decoration: none;\n\t}\n}\n","import { Component, Prop, Element, h, Watch, State, Method } from '@stencil/core';\nimport { v4 as uuid } from 'uuid';\n\nimport { Hint, HintContentType } from '../../utils/common/common.interface';\n\nimport { validatePropExists } from '../../utils/validation/validation-functions';\nimport { ConsoleMessageClass } from '../../utils/console-message/console-message';\n\n/**\n * Use hint text to help users understand how to complete fields in a form.\n *\n * @part hint-text - The container for the hint text content. This part can be used to apply custom styles to the hint text.\n */\n@Component({\n\ttag: 'ontario-hint-text',\n\tstyleUrl: 'ontario-hint-text.scss',\n\tshadow: true,\n})\nexport class OntarioHintText implements Hint {\n\t@Element() host: HTMLElement;\n\n\t/**\n\t * The content type of the hint.\n\t * If no prop is passed, it will default to a string.\n\t * If the hint requires multiple lines or HTML, the `hintContentType` prop should be set to `html`.\n\t */\n\t@Prop({ mutable: true }) hintContentType?: HintContentType = 'string';\n\n\t/**\n\t * Text to display as the hint text statement.\n\t *\n\t * Setting the hint can be done using the host element textContent or through setting this property. This property will take precedence.\n\t *\n\t * @example\n\t * <ontario-hint-text hint=\"Override Hint Text\">Hint Text</ontario-button>\n\t *\n\t * The resulting hint text will display `\"Override Hint Text\"`.\n\t */\n\t@Prop() hint: string;\n\n\t/*\n\t * Used to establish a relationship between the hint text content and elements using aria-describedby. This is optional - if no ID is provided, one will be generated.\n\t */\n\t@Prop({ mutable: true }) elementId?: string;\n\n\t@State() hintState: string;\n\n\t/**\n\t * @part hint-text - The container for the hint text content. This part can be used to apply custom styles to the hint text.\n\t */\n\n\t/**\n\t * Watch for changes to the `hintContentType` prop for validation purposes.\n\t * If none is provided, or the wrong type is provided, it will default to `string`.\n\t */\n\t@Watch('hintContentType')\n\tprivate checkHintContentType() {\n\t\tif (this.hintContentType !== 'string' && this.hintContentType !== 'html') {\n\t\t\tconst message = new ConsoleMessageClass();\n\t\t\tmessage\n\t\t\t\t.addDesignSystemTag()\n\t\t\t\t.addMonospaceText(' hintContentType ')\n\t\t\t\t.addRegularText('for')\n\t\t\t\t.addMonospaceText(' <ontario-hint-text> ')\n\t\t\t\t.addRegularText('was not one of the permitted types. A default type of `string` will be applied.')\n\t\t\t\t.printMessage();\n\n\t\t\treturn (this.hintContentType = 'string');\n\t\t}\n\n\t\treturn this.hintContentType;\n\t}\n\n\t/*\n\t * Watch for changes in the `hint` prop for validation purposes.\n\t * If no `hint` prop is provided, the `hint` will be set to the host element textContent (if it exists).\n\t */\n\t@Watch('hint')\n\tprivate updateHintContent() {\n\t\tthis.hintState = this.hint ?? this.host.textContent ?? '';\n\t\tthis.validateHintContent(this.hintState);\n\t}\n\n\t/*\n\t * Validate the `hint` and make sure the `hint` has a value.\n\t * Log a warning if user doesn't input a value for the `hint` or element content.\n\t */\n\tvalidateHintContent(newValue: string) {\n\t\t// If element content is not provided, check whether prop exists\n\t\tif (!this.host.textContent) {\n\t\t\tif (validatePropExists(newValue)) {\n\t\t\t\tconst message = new ConsoleMessageClass();\n\t\t\t\tmessage\n\t\t\t\t\t.addDesignSystemTag()\n\t\t\t\t\t.addMonospaceText(' hint ')\n\t\t\t\t\t.addRegularText('for')\n\t\t\t\t\t.addMonospaceText(' <ontario-hint-text> ')\n\t\t\t\t\t.addRegularText('was not provided')\n\t\t\t\t\t.printMessage();\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic getId(): string {\n\t\treturn this.elementId ?? '';\n\t}\n\n\t/**\n\t * This method returns the ontario-hint-text id. It is used to make sure the hint text and `aria-describedby` value of other form components match when the internal hint text props are used.\n\t *\n\t * @returns {Promise<string | undefined>} The ID of the hint text element, or undefined if no ID is set.\n\t */\n\t@Method()\n\tasync getHintTextId(): Promise<string | undefined> {\n\t\treturn this.elementId;\n\t}\n\n\t/**\n\t * Set `hint` using internal component logic\n\t */\n\tcomponentWillLoad() {\n\t\tthis.updateHintContent();\n\t\tthis.checkHintContentType();\n\t\tthis.elementId = this.elementId ?? uuid();\n\t}\n\n\t/**\n\t * This helper is used to help load translations for any slots + text content passed in by the user.\n\t */\n\tcomponentDidLoad() {\n\t\tconst observer = new MutationObserver((mutations) => {\n\t\t\tmutations.forEach((mutation) => {\n\t\t\t\tif (mutation.type === 'attributes') {\n\t\t\t\t\tthis.updateHintContent();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tconst options = { attributes: true };\n\t\tobserver.observe(this.host, options);\n\t}\n\n\trender() {\n\t\tif (this.hintContentType === 'html') {\n\t\t\treturn (\n\t\t\t\t<div id={this.getId()} class=\"ontario-hint\" innerHTML={this.hintState}>\n\t\t\t\t\t{!this.hintState && <slot />}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<p part=\"hint-text\" id={this.getId()} class=\"ontario-hint\">\n\t\t\t\t{this.hintState || <slot />}\n\t\t\t</p>\n\t\t);\n\t}\n}\n"],"version":3}
@@ -0,0 +1,64 @@
1
+ const byteToHex = [];
2
+ for (let i = 0; i < 256; ++i) {
3
+ byteToHex.push((i + 0x100).toString(16).slice(1));
4
+ }
5
+ function unsafeStringify(arr, offset = 0) {
6
+ return (
7
+ byteToHex[arr[offset + 0]] +
8
+ byteToHex[arr[offset + 1]] +
9
+ byteToHex[arr[offset + 2]] +
10
+ byteToHex[arr[offset + 3]] +
11
+ '-' +
12
+ byteToHex[arr[offset + 4]] +
13
+ byteToHex[arr[offset + 5]] +
14
+ '-' +
15
+ byteToHex[arr[offset + 6]] +
16
+ byteToHex[arr[offset + 7]] +
17
+ '-' +
18
+ byteToHex[arr[offset + 8]] +
19
+ byteToHex[arr[offset + 9]] +
20
+ '-' +
21
+ byteToHex[arr[offset + 10]] +
22
+ byteToHex[arr[offset + 11]] +
23
+ byteToHex[arr[offset + 12]] +
24
+ byteToHex[arr[offset + 13]] +
25
+ byteToHex[arr[offset + 14]] +
26
+ byteToHex[arr[offset + 15]]
27
+ ).toLowerCase();
28
+ }
29
+
30
+ let getRandomValues;
31
+ const rnds8 = new Uint8Array(16);
32
+ function rng() {
33
+ if (!getRandomValues) {
34
+ if (typeof crypto === 'undefined' || !crypto.getRandomValues) {
35
+ throw new Error(
36
+ 'crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported',
37
+ );
38
+ }
39
+ getRandomValues = crypto.getRandomValues.bind(crypto);
40
+ }
41
+ return getRandomValues(rnds8);
42
+ }
43
+
44
+ const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
45
+ var native = { randomUUID };
46
+
47
+ function v4(options, buf, offset) {
48
+ if (native.randomUUID && true && !options) {
49
+ return native.randomUUID();
50
+ }
51
+ options = options || {};
52
+ const rnds = options.random ?? options.rng?.() ?? rng();
53
+ if (rnds.length < 16) {
54
+ throw new Error('Random bytes length must be >= 16');
55
+ }
56
+ rnds[6] = (rnds[6] & 0x0f) | 0x40;
57
+ rnds[8] = (rnds[8] & 0x3f) | 0x80;
58
+ return unsafeStringify(rnds);
59
+ }
60
+
61
+ export { v4 as v };
62
+ //# sourceMappingURL=p-BF0_OXTe.js.map
63
+
64
+ //# sourceMappingURL=p-BF0_OXTe.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-BF0_OXTe.js","mappings":"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","names":[],"sources":["../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/esm-browser/stringify.js","../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/esm-browser/rng.js","../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/esm-browser/native.js","../../node_modules/.pnpm/uuid@11.0.5/node_modules/uuid/dist/esm-browser/v4.js"],"sourcesContent":["import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n"],"version":3}
@@ -0,0 +1,286 @@
1
+ import { p as proxyCustomElement, H, c as createEvent, h, F as Fragment } from './index.js';
2
+ import { a as isClientSideRendering } from './p-TS9NoIOc.js';
3
+ import { C as ConsoleMessageClass } from './p-Cdm-Ot0O.js';
4
+ import { g as getRootHTMLElement, p as printArray } from './p-DIe1tcOp.js';
5
+ import { v as validateValueAgainstArray } from './p-CNqFEifG.js';
6
+ import { t as translations } from './p-DgMhpSmi.js';
7
+
8
+ const supportedLanguages = ['en', 'fr'];
9
+
10
+ const ontarioLanguageToggleCss =
11
+ '.ontario-language-toggler:focus{box-shadow:0 0 0 4px #009ADB;outline:4px solid transparent;transition:box-shadow 0.1s ease-in-out}.ontario-hide{display:none !important}.ontario-invisible{visibility:hidden !important}@media screen and (max-width: 39.99875em){.ontario-hide-for-small-only{display:none !important}}@media screen and (max-width: 0em), screen and (min-width: 40em){.ontario-show-for-small-only{display:none !important}}@media print, screen and (min-width: 40em){.ontario-hide-for-medium{display:none !important}}@media screen and (max-width: 39.99875em){.ontario-show-for-medium{display:none !important}}@media screen and (min-width: 40em) and (max-width: 72.99875em){.ontario-hide-for-medium-only{display:none !important}}@media screen and (max-width: 39.99875em), screen and (min-width: 73em){.ontario-show-for-medium-only{display:none !important}}@media print, screen and (min-width: 73em){.ontario-hide-for-large{display:none !important}}@media screen and (max-width: 72.99875em){.ontario-show-for-large{display:none !important}}@media screen and (min-width: 73em) and (max-width: 95.99875em){.ontario-hide-for-large-only{display:none !important}}@media screen and (max-width: 72.99875em), screen and (min-width: 96em){.ontario-show-for-large-only{display:none !important}}.ontario-show-for-sr,.ontario-show-on-focus{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0, 0, 0, 0)}.ontario-show-on-focus:active,.ontario-show-on-focus:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto}.ontario-show-for-landscape,.ontario-hide-for-portrait{display:block !important}@media screen and (orientation: landscape){.ontario-show-for-landscape,.ontario-hide-for-portrait{display:block !important}}@media screen and (orientation: portrait){.ontario-show-for-landscape,.ontario-hide-for-portrait{display:none !important}}.ontario-hide-for-landscape,.ontario-show-for-portrait{display:none !important}@media screen and (orientation: landscape){.ontario-hide-for-landscape,.ontario-show-for-portrait{display:none !important}}@media screen and (orientation: portrait){.ontario-hide-for-landscape,.ontario-show-for-portrait{display:block !important}}.ontario-language-toggler{background-color:rgb(25.5, 25.5, 25.5);border:none;border-radius:4px;box-sizing:border-box;box-shadow:none;color:#FFFFFF;cursor:pointer;display:flex;align-items:center;font-size:1.125rem;font-weight:600;font-family:"Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;height:48px;line-height:1.5555555556;text-align:center;text-decoration:none}.ontario-language-toggler:hover{color:#FFFFFF;background-color:rgb(76.5, 76.5, 76.5);color:#FFFFFF}.ontario-language-toggler:active{background-color:#666666;color:#FFFFFF}.ontario-language-toggler:focus{background-color:rgb(76.5, 76.5, 76.5);color:#FFFFFF}.ontario-language-toggler:visited{color:#FFFFFF}.ontario-language-toggler abbr[title]{text-decoration:none}.ontario-language-toggler--default{padding:0.75rem}.ontario-language-toggler--small{font-size:1rem;line-height:1.375rem;height:auto;outline:none;padding:0.5rem 0.75rem}';
12
+
13
+ const OntarioLanguageToggle = /*@__PURE__*/ proxyCustomElement(
14
+ class OntarioLanguageToggle extends H {
15
+ constructor() {
16
+ super();
17
+ this.__registerHost();
18
+ this.__attachShadow();
19
+ this.setAppLanguage = createEvent(this, 'setAppLanguage');
20
+ this.headerLanguageToggled = createEvent(this, 'headerLanguageToggled');
21
+ /**
22
+ * The size of the language toggle button.
23
+ *
24
+ * If no prop is passed, it will be set to the `default` size.
25
+ */
26
+ this.size = 'default';
27
+ this.translations = translations;
28
+ /**
29
+ * Internal state used to render the text on the language toggle UI.
30
+ */
31
+ this.oppositeLanguageLabel = undefined;
32
+ /*
33
+ * Updates the <html> lang attribute based on component languageState.
34
+ */
35
+ this.updateHTMLLang = () => {
36
+ const htmlElement = getRootHTMLElement();
37
+ if (htmlElement) {
38
+ htmlElement.setAttribute('lang', this.languageState);
39
+ }
40
+ };
41
+ }
42
+ /**
43
+ * Updates the language and languageState props when changes to the language prop are detected.
44
+ */
45
+ updateLanguage() {
46
+ if (this.language) {
47
+ if (!validateValueAgainstArray(this.language, supportedLanguages)) {
48
+ this.showLanguageWarning(this.language);
49
+ this.language = this.translations.siteLanguage.abbreviation.en;
50
+ }
51
+ this.languageState = this.language;
52
+ }
53
+ this.setAppLanguageHandler();
54
+ }
55
+ /**
56
+ * This function sets the languageState (if not already set).
57
+ *
58
+ * It also emits the setAppLanguage() event, updates the component language label, and
59
+ * updates the <html> tag lang attribute with the languageState value.
60
+ *
61
+ * It gets called by the connectedCallback() component lifecycle hook, and by the
62
+ * updateLanguage() method, which is fired on the watch for the language prop.
63
+ */
64
+ setAppLanguageHandler() {
65
+ var _a;
66
+ const defaultLang = this.translations.siteLanguage.abbreviation.en;
67
+ // If internal language state isn't already set, determine the best language source
68
+ if (!this.languageState) {
69
+ if (this.language) {
70
+ // Use explicitly passed prop value if available
71
+ this.languageState = this.language;
72
+ } else if (typeof window !== 'undefined') {
73
+ // On the client, try to derive from <html lang=""> if no prop was passed
74
+ const rootLang = (_a = getRootHTMLElement()) === null || _a === void 0 ? void 0 : _a.lang;
75
+ if (validateValueAgainstArray(rootLang, supportedLanguages)) {
76
+ this.languageState = rootLang;
77
+ } else {
78
+ // Log a warning if <html lang=""> is invalid, and fallback
79
+ if (rootLang) this.showLanguageWarning(rootLang, 'document');
80
+ this.languageState = defaultLang;
81
+ }
82
+ } else {
83
+ // Fallback for SSR: use default language when document is not accessible
84
+ this.languageState = defaultLang;
85
+ }
86
+ }
87
+ // Emit the language value to notify other components or app logic
88
+ this.setAppLanguage.emit(this.languageState);
89
+ // Update label shown in the UI for toggling languages (e.g., "Français" if current is "en")
90
+ this.oppositeLanguageLabel = {
91
+ fullWord: this.getOppositeLanguageFullWord(),
92
+ abbreviation: this.getOppositeLanguageAbbrievation(),
93
+ };
94
+ // Update <html lang=""> to match selected language (helps with screen readers & SEO)
95
+ this.updateHTMLLang();
96
+ }
97
+ /**
98
+ * An event that emits to other components that the language toggle button has been toggled.
99
+ *
100
+ * @param {Language} oldLanguage - The language prior to the language toggle being pressed.
101
+ * @param {globalThis.Event} event - event that triggered the function (e.g. onclick).
102
+ */
103
+ handleHeaderLanguageToggled(oldLanguage, event) {
104
+ this.languageState =
105
+ oldLanguage === this.translations.siteLanguage.abbreviation.en
106
+ ? this.translations.siteLanguage.abbreviation.fr
107
+ : this.translations.siteLanguage.abbreviation.en;
108
+ this.headerLanguageToggled.emit({ oldLanguage: oldLanguage, newLanguage: this.languageState });
109
+ this.updateHTMLLang();
110
+ if (this.customLanguageToggle && event) {
111
+ this.customLanguageToggle(event);
112
+ }
113
+ }
114
+ /**
115
+ * Prints a warning message to the console about using an incorrect language for the component.
116
+ *
117
+ * @param {string} lang - The incorrect language that was received.
118
+ * @param {string} type - prop/document | Where the incorrect language is coming from.
119
+ */
120
+ showLanguageWarning(lang, type = 'prop') {
121
+ const propOrDocumentMessage =
122
+ type === 'prop' ? `The language prop value of ${lang} ` : `The HTML document lang attribute value of ${lang} `;
123
+ const message = new ConsoleMessageClass();
124
+ message
125
+ .addDesignSystemTag()
126
+ .addRegularText(propOrDocumentMessage)
127
+ .addRegularText('is not a valid language value for the ')
128
+ .addMonospaceText(' <ontario-language-toggle> ')
129
+ .addRegularText(`component. Valid language values are ${printArray([...supportedLanguages])}. `)
130
+ .addRegularText(
131
+ `A default language value of ${this.translations.siteLanguage.abbreviation.en} will be applied.`,
132
+ )
133
+ .printMessage();
134
+ }
135
+ /**
136
+ * Returns abbreviated text for the opposite language.
137
+ *
138
+ * @returns {Language}
139
+ */
140
+ getOppositeLanguageAbbrievation() {
141
+ return this.languageState === this.translations.siteLanguage.abbreviation.en
142
+ ? this.translations.siteLanguage.abbreviation.fr
143
+ : this.translations.siteLanguage.abbreviation.en;
144
+ }
145
+ /**
146
+ * Returns full word text for the opposite language.
147
+ *
148
+ * @returns {string}
149
+ */
150
+ getOppositeLanguageFullWord() {
151
+ return this.languageState === this.translations.siteLanguage.abbreviation.en
152
+ ? this.translations.siteLanguage.fullWord.fr
153
+ : this.translations.siteLanguage.fullWord.en;
154
+ }
155
+ /**
156
+ * Component life cycle hook.
157
+ *
158
+ * https://stenciljs.com/docs/component-lifecycle#connectedcallback
159
+ */
160
+ connectedCallback() {
161
+ this.setAppLanguageHandler();
162
+ }
163
+ /**
164
+ * Component life cycle hook.
165
+ *
166
+ * https://stenciljs.com/docs/component-lifecycle#componentdidload
167
+ */
168
+ componentDidLoad() {
169
+ /**
170
+ * Creates a MutationObserver (a type of watch) on the <html> tag lang attribute.
171
+ *
172
+ * When changes occur, the oppositeLanguageLabel state variable regenerates.
173
+ *
174
+ * This is to act as a form of callback and create a subtle delay between page content
175
+ * updating and the language toggle label updating.
176
+ */
177
+ const observer = new MutationObserver((mutations) => {
178
+ mutations.forEach((mutation) => {
179
+ switch (mutation.type) {
180
+ case 'attributes':
181
+ switch (mutation.attributeName) {
182
+ case 'lang':
183
+ this.oppositeLanguageLabel = {
184
+ fullWord: this.getOppositeLanguageFullWord(),
185
+ abbreviation: this.getOppositeLanguageAbbrievation(),
186
+ };
187
+ break;
188
+ }
189
+ break;
190
+ }
191
+ });
192
+ });
193
+ // Only create/trigger the MutationObserver if the <html> element exists.
194
+ if (isClientSideRendering() && getRootHTMLElement()) {
195
+ const options = { attributes: true };
196
+ observer.observe(getRootHTMLElement(), options);
197
+ }
198
+ }
199
+ render() {
200
+ var _a, _b, _c, _d, _e, _f, _g;
201
+ return h(
202
+ 'a',
203
+ {
204
+ 'key': '34da7ec668c3f5df4e9985df380059fb9aa6eb45',
205
+ 'aria-label':
206
+ this.translations.languageToggle.ariaLabel[
207
+ `${(_a = this.oppositeLanguageLabel) === null || _a === void 0 ? void 0 : _a.abbreviation}`
208
+ ],
209
+ 'class':
210
+ this.size === 'default'
211
+ ? 'ontario-language-toggler ontario-language-toggler--default'
212
+ : 'ontario-language-toggler ontario-language-toggler--small',
213
+ 'href': this.url ? this.url : '#',
214
+ 'hreflang': (_b = this.oppositeLanguageLabel) === null || _b === void 0 ? void 0 : _b.abbreviation,
215
+ 'lang': (_c = this.oppositeLanguageLabel) === null || _c === void 0 ? void 0 : _c.abbreviation,
216
+ 'onClick': (e) => this.handleHeaderLanguageToggled(this.languageState, e),
217
+ },
218
+ this.size === 'small'
219
+ ? h('span', null, (_d = this.oppositeLanguageLabel) === null || _d === void 0 ? void 0 : _d.fullWord)
220
+ : h(
221
+ Fragment,
222
+ null,
223
+ h(
224
+ 'abbr',
225
+ {
226
+ title: (_e = this.oppositeLanguageLabel) === null || _e === void 0 ? void 0 : _e.fullWord,
227
+ class: 'ontario-show-for-small-only',
228
+ },
229
+ (_f = this.oppositeLanguageLabel) === null || _f === void 0 ? void 0 : _f.abbreviation.toUpperCase(),
230
+ ),
231
+ h(
232
+ 'span',
233
+ { class: 'ontario-show-for-medium' },
234
+ (_g = this.oppositeLanguageLabel) === null || _g === void 0 ? void 0 : _g.fullWord,
235
+ ),
236
+ ),
237
+ );
238
+ }
239
+ static get watchers() {
240
+ return {
241
+ language: ['updateLanguage'],
242
+ };
243
+ }
244
+ static get style() {
245
+ return ontarioLanguageToggleCss;
246
+ }
247
+ },
248
+ [
249
+ 257,
250
+ 'ontario-language-toggle',
251
+ {
252
+ language: [1025],
253
+ size: [1],
254
+ url: [1025],
255
+ customLanguageToggle: [16, 'custom-language-toggle'],
256
+ translations: [32],
257
+ languageState: [32],
258
+ oppositeLanguageLabel: [32],
259
+ },
260
+ undefined,
261
+ {
262
+ language: ['updateLanguage'],
263
+ },
264
+ ],
265
+ );
266
+ function defineCustomElement() {
267
+ if (typeof customElements === 'undefined') {
268
+ return;
269
+ }
270
+ const components = ['ontario-language-toggle'];
271
+ components.forEach((tagName) => {
272
+ switch (tagName) {
273
+ case 'ontario-language-toggle':
274
+ if (!customElements.get(tagName)) {
275
+ customElements.define(tagName, OntarioLanguageToggle);
276
+ }
277
+ break;
278
+ }
279
+ });
280
+ }
281
+ defineCustomElement();
282
+
283
+ export { OntarioLanguageToggle as O, defineCustomElement as d };
284
+ //# sourceMappingURL=p-BHTls9cv.js.map
285
+
286
+ //# sourceMappingURL=p-BHTls9cv.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-BHTls9cv.js","mappings":";;;;;;;AAAO,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAU;;ACAvD,MAAM,wBAAwB,GAAG,4hGAA4hG;;MCgBhjG,qBAAqB,iBAAAA,kBAAA,CAAA,MAAA,qBAAA,SAAAC,CAAA,CAAA;AALlC,IAAA,WAAA,GAAA;;;;;;AAeC;;;;AAIG;AACK,QAAA,IAAI,CAAA,IAAA,GAAyB,SAAS;AAgBrC,QAAA,IAAY,CAAA,YAAA,GAAQ,YAAY;AAOzC;;AAEG;AACc,QAAA,IAAqB,CAAA,qBAAA,GAA6D,SAAS;AA4I5G;;AAEG;AACK,QAAA,IAAc,CAAA,cAAA,GAAG,MAAK;AAC7B,YAAA,MAAM,WAAW,GAAG,kBAAkB,EAAE;YAExC,IAAI,WAAW,EAAE;gBAChB,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC;;AAEtD,SAAC;AA4ED;AA/NA;;AAEG;IAEH,cAAc,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE;AAClE,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,EAAc;;AAE3E,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ;;QAEnC,IAAI,CAAC,qBAAqB,EAAE;;AAiB7B;;;;;;;;AAQG;IACK,qBAAqB,GAAA;;QAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;;AAGlE,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACxB,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;;AAElB,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ;;AAC5B,iBAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;;gBAEzC,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,kBAAkB,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,IAAI;AAC3C,gBAAA,IAAI,yBAAyB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE;AAC5D,oBAAA,IAAI,CAAC,aAAa,GAAG,QAAoB;;qBACnC;;AAEN,oBAAA,IAAI,QAAQ;AAAE,wBAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC;AAC5D,oBAAA,IAAI,CAAC,aAAa,GAAG,WAAW;;;iBAE3B;;AAEN,gBAAA,IAAI,CAAC,aAAa,GAAG,WAAW;;;;QAKlC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;;QAG5C,IAAI,CAAC,qBAAqB,GAAG;AAC5B,YAAA,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE;AAC5C,YAAA,YAAY,EAAE,IAAI,CAAC,+BAA+B,EAAE;SACpD;;QAGD,IAAI,CAAC,cAAc,EAAE;;AAGtB;;;;;AAKG;IACK,2BAA2B,CAAC,WAAqB,EAAE,KAAwB,EAAA;AAClF,QAAA,IAAI,CAAC,aAAa;YACjB,WAAW,KAAK,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC;kBACzD,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC;kBAC5C,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;AAElD,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;QAE9F,IAAI,CAAC,cAAc,EAAE;AAErB,QAAA,IAAI,IAAI,CAAC,oBAAoB,IAAI,KAAK,EAAE;AACvC,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;;;AAIlC;;;;;AAKG;AACK,IAAA,mBAAmB,CAAC,IAAY,EAAE,IAAA,GAA4B,MAAM,EAAA;AAC3E,QAAA,MAAM,qBAAqB,GAC1B,IAAI,KAAK,MAAM,GAAG,CAA8B,2BAAA,EAAA,IAAI,GAAG,GAAG,CAA6C,0CAAA,EAAA,IAAI,GAAG;AAC/G,QAAA,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAE;QACzC;AACE,aAAA,kBAAkB;aAClB,cAAc,CAAC,qBAAqB;aACpC,cAAc,CAAC,wCAAwC;aACvD,gBAAgB,CAAC,6BAA6B;aAC9C,cAAc,CAAC,CAAwC,qCAAA,EAAA,UAAU,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAA,EAAA,CAAI;AAC9F,aAAA,cAAc,CAAC,CAAA,4BAAA,EAA+B,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAA,iBAAA,CAAmB;AAC/G,aAAA,YAAY,EAAE;;AAGjB;;;;AAIG;IACK,+BAA+B,GAAA;AACtC,QAAA,OAAO,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC;cACvE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC;cAC5C,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;;AAGlD;;;;AAIG;IACK,2BAA2B,GAAA;AAClC,QAAA,OAAO,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC;cACvE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC;cACxC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;;AAc9C;;;;AAIG;IACH,iBAAiB,GAAA;QAChB,IAAI,CAAC,qBAAqB,EAAE;;AAG7B;;;;AAIG;IACH,gBAAgB,GAAA;AACf;;;;;;;AAOG;QACH,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAAS,KAAI;AACnD,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AAC9B,gBAAA,QAAQ,QAAQ,CAAC,IAAI;AACpB,oBAAA,KAAK,YAAY;AAChB,wBAAA,QAAQ,QAAQ,CAAC,aAAa;AAC7B,4BAAA,KAAK,MAAM;gCACV,IAAI,CAAC,qBAAqB,GAAG;AAC5B,oCAAA,QAAQ,EAAE,IAAI,CAAC,2BAA2B,EAAE;AAC5C,oCAAA,YAAY,EAAE,IAAI,CAAC,+BAA+B,EAAE;iCACpD;gCACD;;wBAEF;;AAEH,aAAC,CAAC;AACH,SAAC,CAAC;;AAGF,QAAA,IAAI,qBAAqB,EAAE,IAAI,kBAAkB,EAAE,EAAE;AACpD,YAAA,MAAM,OAAO,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE;YACpC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,OAAO,CAAC;;;IAIjD,MAAM,GAAA;;QACL,QACC,CACa,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,YAAA,EAAA,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA,EAAG,CAAA,EAAA,GAAA,IAAI,CAAC,qBAAqB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,YAAY,CAAA,CAAE,CAAC,EACrG,KAAK,EACJ,IAAI,CAAC,IAAI,KAAK;AACb,kBAAE;AACF,kBAAE,0DAA0D,EAE9D,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAC/B,QAAQ,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,qBAAqB,0CAAE,YAAY,EAClD,IAAI,EAAE,MAAA,IAAI,CAAC,qBAAqB,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,YAAY,EAC9C,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,EAEtE,EAAA,IAAI,CAAC,IAAI,KAAK,OAAO,IACrB,CAAO,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,GAAA,IAAI,CAAC,qBAAqB,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,QAAQ,CAAQ,KAEnD,EAAC,QAAQ,EAAA,IAAA,EACR,CAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,qBAAqB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,QAAQ,EAAE,KAAK,EAAC,6BAA6B,EACpF,EAAA,CAAA,EAAA,GAAA,IAAI,CAAC,qBAAqB,0CAAE,YAAY,CAAC,WAAW,EAAE,CACjD,EACP,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,yBAAyB,EAAA,EAAE,MAAA,IAAI,CAAC,qBAAqB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,QAAQ,CAAQ,CACzE,CACX,CACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/utils/common/language-types.ts","src/components/ontario-language-toggle/ontario-language-toggle.scss?tag=ontario-language-toggle&encapsulation=shadow","src/components/ontario-language-toggle/ontario-language-toggle.tsx"],"sourcesContent":["export const supportedLanguages = ['en', 'fr'] as const;\nexport type Language = (typeof supportedLanguages)[number];\n","@use 'sass:math';\n@use 'pkg:@ongov/ontario-design-system-global-styles/dist/styles/scss/1-variables/spacing.variables' as spacing;\n@use 'pkg:@ongov/ontario-design-system-global-styles/dist/styles/scss/1-variables/global.variables' as globalVariables;\n@use 'pkg:@ongov/ontario-design-system-global-styles/dist/styles/scss/1-variables/colours.variables' as colours;\n@use 'pkg:@ongov/ontario-design-system-global-styles/dist/styles/scss/1-variables/fonts.variables' as fonts;\n@use 'pkg:@ongov/ontario-design-system-global-styles/dist/styles/scss/1-variables/font-weights.variables' as fontWeights;\n@use 'pkg:@ongov/ontario-design-system-global-styles/dist/styles/scss/2-tools/functions/global.functions' as\n\tglobalFunctions;\n@use 'pkg:@ongov/ontario-design-system-global-styles/dist/styles/scss/2-tools/placeholder/focus.placeholders' as\n\tfocusPlaceholders;\n\n@forward 'pkg:@ongov/ontario-design-system-global-styles/dist/styles/scss/7-overrides/_visibility.overrides.scss';\n\n.ontario-language-toggler {\n\tbackground-color: colours.$ontario-colour-black;\n\tborder: none;\n\tborder-radius: globalVariables.$global-radius;\n\tbox-sizing: border-box;\n\tbox-shadow: none;\n\tcolor: colours.$ontario-colour-white;\n\tcursor: pointer;\n\tdisplay: flex;\n\talign-items: center;\n\tfont-size: 1.125rem;\n\tfont-weight: fontWeights.$ontario-font-weights-semi-bold;\n\tfont-family: fonts.$ontario-font-open-sans;\n\theight: globalVariables.$standard-input-height;\n\tline-height: math.div(14, 9);\n\ttext-align: center;\n\ttext-decoration: none;\n\n\t&:hover {\n\t\tcolor: colours.$ontario-colour-white;\n\t\tbackground-color: colours.$ontario-greyscale-70;\n\t\tcolor: colours.$ontario-colour-white;\n\t}\n\n\t&:active {\n\t\tbackground-color: colours.$ontario-greyscale-60;\n\t\tcolor: colours.$ontario-colour-white;\n\t}\n\n\t&:focus {\n\t\tbackground-color: colours.$ontario-greyscale-70;\n\t\tcolor: colours.$ontario-colour-white;\n\t\t@extend %ontario-focus;\n\t}\n\n\t&:visited {\n\t\tcolor: colours.$ontario-colour-white;\n\t}\n\n\tabbr[title] {\n\t\ttext-decoration: none;\n\t}\n}\n\n.ontario-language-toggler--default {\n\tpadding: spacing.$spacing-3;\n}\n\n.ontario-language-toggler--small {\n\tfont-size: globalFunctions.px-to-rem(16);\n\tline-height: globalFunctions.px-to-rem(22);\n\theight: auto;\n\toutline: none;\n\tpadding: spacing.$spacing-2 spacing.$spacing-3;\n}\n","import { Component, Prop, State, Event, EventEmitter, Watch, h, Fragment } from '@stencil/core';\n\nimport { supportedLanguages, Language } from '../../utils/common/language-types';\nimport { isClientSideRendering } from '../../utils/common/environment';\nimport { ConsoleMessageClass } from '../../utils/console-message/console-message';\nimport { HeaderLanguageToggleEventDetails } from '../../utils/events/common-events.interface';\nimport { printArray, getRootHTMLElement } from '../../utils/helper/utils';\nimport { validateValueAgainstArray } from '../../utils/validation/validation-functions';\n\nimport { default as translations } from '../../translations/global.i18n.json';\n\n@Component({\n\ttag: 'ontario-language-toggle',\n\tstyleUrl: 'ontario-language-toggle.scss',\n\tshadow: true,\n})\nexport class OntarioLanguageToggle {\n\t/**\n\t * The language of the component.\n\t *\n\t * In most cases, the language toggle should be the source of truth for determining the site language.\n\t *\n\t * Only pass a language value here if necessary.\n\t */\n\t@Prop({ mutable: true }) language?: Language;\n\n\t/**\n\t * The size of the language toggle button.\n\t *\n\t * If no prop is passed, it will be set to the `default` size.\n\t */\n\t@Prop() size?: 'default' | 'small' = 'default';\n\n\t/**\n\t * The URL to change to when the language toggle button is clicked.\n\t *\n\t * This is optional.\n\t */\n\t@Prop({ mutable: true }) url?: string;\n\n\t/**\n\t * A custom function to pass to the language toggle button.\n\t *\n\t * This is optional.\n\t */\n\t@Prop() customLanguageToggle?: (event: globalThis.Event) => void;\n\n\t@State() translations: any = translations;\n\n\t/**\n\t * Internal state used as the source of truth for component language.\n\t */\n\t@State() private languageState: Language;\n\n\t/**\n\t * Internal state used to render the text on the language toggle UI.\n\t */\n\t@State() private oppositeLanguageLabel: { fullWord: string; abbreviation: Language } | undefined = undefined;\n\n\t/**\n\t * Updates the language and languageState props when changes to the language prop are detected.\n\t */\n\t@Watch('language')\n\tupdateLanguage() {\n\t\tif (this.language) {\n\t\t\tif (!validateValueAgainstArray(this.language, supportedLanguages)) {\n\t\t\t\tthis.showLanguageWarning(this.language);\n\t\t\t\tthis.language = this.translations.siteLanguage.abbreviation.en as Language;\n\t\t\t}\n\t\t\tthis.languageState = this.language;\n\t\t}\n\t\tthis.setAppLanguageHandler();\n\t}\n\n\t/**\n\t * Event that fires during the setAppLanguageHandler() method.\n\t *\n\t * The event contains the current language (after language logic has already occurred).\n\t */\n\t@Event() setAppLanguage: EventEmitter<Language>;\n\n\t/**\n\t * Event that fires when the language toggle is pressed/clicked.\n\t *\n\t * The event contains the oldLanguage along with the newLanguage.\n\t */\n\t@Event() headerLanguageToggled: EventEmitter<HeaderLanguageToggleEventDetails>;\n\n\t/**\n\t * This function sets the languageState (if not already set).\n\t *\n\t * It also emits the setAppLanguage() event, updates the component language label, and\n\t * updates the <html> tag lang attribute with the languageState value.\n\t *\n\t * It gets called by the connectedCallback() component lifecycle hook, and by the\n\t * updateLanguage() method, which is fired on the watch for the language prop.\n\t */\n\tprivate setAppLanguageHandler() {\n\t\tconst defaultLang = this.translations.siteLanguage.abbreviation.en;\n\n\t\t// If internal language state isn't already set, determine the best language source\n\t\tif (!this.languageState) {\n\t\t\tif (this.language) {\n\t\t\t\t// Use explicitly passed prop value if available\n\t\t\t\tthis.languageState = this.language;\n\t\t\t} else if (typeof window !== 'undefined') {\n\t\t\t\t// On the client, try to derive from <html lang=\"\"> if no prop was passed\n\t\t\t\tconst rootLang = getRootHTMLElement()?.lang;\n\t\t\t\tif (validateValueAgainstArray(rootLang, supportedLanguages)) {\n\t\t\t\t\tthis.languageState = rootLang as Language;\n\t\t\t\t} else {\n\t\t\t\t\t// Log a warning if <html lang=\"\"> is invalid, and fallback\n\t\t\t\t\tif (rootLang) this.showLanguageWarning(rootLang, 'document');\n\t\t\t\t\tthis.languageState = defaultLang;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Fallback for SSR: use default language when document is not accessible\n\t\t\t\tthis.languageState = defaultLang;\n\t\t\t}\n\t\t}\n\n\t\t// Emit the language value to notify other components or app logic\n\t\tthis.setAppLanguage.emit(this.languageState);\n\n\t\t// Update label shown in the UI for toggling languages (e.g., \"Français\" if current is \"en\")\n\t\tthis.oppositeLanguageLabel = {\n\t\t\tfullWord: this.getOppositeLanguageFullWord(),\n\t\t\tabbreviation: this.getOppositeLanguageAbbrievation(),\n\t\t};\n\n\t\t// Update <html lang=\"\"> to match selected language (helps with screen readers & SEO)\n\t\tthis.updateHTMLLang();\n\t}\n\n\t/**\n\t * An event that emits to other components that the language toggle button has been toggled.\n\t *\n\t * @param {Language} oldLanguage - The language prior to the language toggle being pressed.\n\t * @param {globalThis.Event} event - event that triggered the function (e.g. onclick).\n\t */\n\tprivate handleHeaderLanguageToggled(oldLanguage: Language, event?: globalThis.Event) {\n\t\tthis.languageState =\n\t\t\toldLanguage === this.translations.siteLanguage.abbreviation.en\n\t\t\t\t? this.translations.siteLanguage.abbreviation.fr\n\t\t\t\t: this.translations.siteLanguage.abbreviation.en;\n\n\t\tthis.headerLanguageToggled.emit({ oldLanguage: oldLanguage, newLanguage: this.languageState });\n\n\t\tthis.updateHTMLLang();\n\n\t\tif (this.customLanguageToggle && event) {\n\t\t\tthis.customLanguageToggle(event);\n\t\t}\n\t}\n\n\t/**\n\t * Prints a warning message to the console about using an incorrect language for the component.\n\t *\n\t * @param {string} lang - The incorrect language that was received.\n\t * @param {string} type - prop/document | Where the incorrect language is coming from.\n\t */\n\tprivate showLanguageWarning(lang: string, type: 'prop' | 'document' = 'prop') {\n\t\tconst propOrDocumentMessage =\n\t\t\ttype === 'prop' ? `The language prop value of ${lang} ` : `The HTML document lang attribute value of ${lang} `;\n\t\tconst message = new ConsoleMessageClass();\n\t\tmessage\n\t\t\t.addDesignSystemTag()\n\t\t\t.addRegularText(propOrDocumentMessage)\n\t\t\t.addRegularText('is not a valid language value for the ')\n\t\t\t.addMonospaceText(' <ontario-language-toggle> ')\n\t\t\t.addRegularText(`component. Valid language values are ${printArray([...supportedLanguages])}. `)\n\t\t\t.addRegularText(`A default language value of ${this.translations.siteLanguage.abbreviation.en} will be applied.`)\n\t\t\t.printMessage();\n\t}\n\n\t/**\n\t * Returns abbreviated text for the opposite language.\n\t *\n\t * @returns {Language}\n\t */\n\tprivate getOppositeLanguageAbbrievation(): Language {\n\t\treturn this.languageState === this.translations.siteLanguage.abbreviation.en\n\t\t\t? this.translations.siteLanguage.abbreviation.fr\n\t\t\t: this.translations.siteLanguage.abbreviation.en;\n\t}\n\n\t/**\n\t * Returns full word text for the opposite language.\n\t *\n\t * @returns {string}\n\t */\n\tprivate getOppositeLanguageFullWord(): string {\n\t\treturn this.languageState === this.translations.siteLanguage.abbreviation.en\n\t\t\t? this.translations.siteLanguage.fullWord.fr\n\t\t\t: this.translations.siteLanguage.fullWord.en;\n\t}\n\n\t/*\n\t * Updates the <html> lang attribute based on component languageState.\n\t */\n\tprivate updateHTMLLang = () => {\n\t\tconst htmlElement = getRootHTMLElement();\n\n\t\tif (htmlElement) {\n\t\t\thtmlElement.setAttribute('lang', this.languageState);\n\t\t}\n\t};\n\n\t/**\n\t * Component life cycle hook.\n\t *\n\t * https://stenciljs.com/docs/component-lifecycle#connectedcallback\n\t */\n\tconnectedCallback() {\n\t\tthis.setAppLanguageHandler();\n\t}\n\n\t/**\n\t * Component life cycle hook.\n\t *\n\t * https://stenciljs.com/docs/component-lifecycle#componentdidload\n\t */\n\tcomponentDidLoad() {\n\t\t/**\n\t\t * Creates a MutationObserver (a type of watch) on the <html> tag lang attribute.\n\t\t *\n\t\t * When changes occur, the oppositeLanguageLabel state variable regenerates.\n\t\t *\n\t\t * This is to act as a form of callback and create a subtle delay between page content\n\t\t * updating and the language toggle label updating.\n\t\t */\n\t\tconst observer = new MutationObserver((mutations) => {\n\t\t\tmutations.forEach((mutation) => {\n\t\t\t\tswitch (mutation.type) {\n\t\t\t\t\tcase 'attributes':\n\t\t\t\t\t\tswitch (mutation.attributeName) {\n\t\t\t\t\t\t\tcase 'lang':\n\t\t\t\t\t\t\t\tthis.oppositeLanguageLabel = {\n\t\t\t\t\t\t\t\t\tfullWord: this.getOppositeLanguageFullWord(),\n\t\t\t\t\t\t\t\t\tabbreviation: this.getOppositeLanguageAbbrievation(),\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\t// Only create/trigger the MutationObserver if the <html> element exists.\n\t\tif (isClientSideRendering() && getRootHTMLElement()) {\n\t\t\tconst options = { attributes: true };\n\t\t\tobserver.observe(getRootHTMLElement(), options);\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<a\n\t\t\t\taria-label={this.translations.languageToggle.ariaLabel[`${this.oppositeLanguageLabel?.abbreviation}`]}\n\t\t\t\tclass={\n\t\t\t\t\tthis.size === 'default'\n\t\t\t\t\t\t? 'ontario-language-toggler ontario-language-toggler--default'\n\t\t\t\t\t\t: 'ontario-language-toggler ontario-language-toggler--small'\n\t\t\t\t}\n\t\t\t\thref={this.url ? this.url : '#'}\n\t\t\t\threflang={this.oppositeLanguageLabel?.abbreviation}\n\t\t\t\tlang={this.oppositeLanguageLabel?.abbreviation}\n\t\t\t\tonClick={(e) => this.handleHeaderLanguageToggled(this.languageState, e)}\n\t\t\t>\n\t\t\t\t{this.size === 'small' ? (\n\t\t\t\t\t<span>{this.oppositeLanguageLabel?.fullWord}</span>\n\t\t\t\t) : (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t<abbr title={this.oppositeLanguageLabel?.fullWord} class=\"ontario-show-for-small-only\">\n\t\t\t\t\t\t\t{this.oppositeLanguageLabel?.abbreviation.toUpperCase()}\n\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t<span class=\"ontario-show-for-medium\">{this.oppositeLanguageLabel?.fullWord}</span>\n\t\t\t\t\t</Fragment>\n\t\t\t\t)}\n\t\t\t</a>\n\t\t);\n\t}\n}\n"],"version":3}