@iamproperty/components 7.6.1 → 7.6.3--beta1

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 (348) hide show
  1. package/assets/css/components/actionbar.component.css +1 -1
  2. package/assets/css/components/actionbar.component.css.map +1 -1
  3. package/assets/css/components/actionbar.global.css +1 -1
  4. package/assets/css/components/actionbar.global.css.map +1 -1
  5. package/assets/css/components/address-lookup.component.css +1 -1
  6. package/assets/css/components/address-lookup.component.css.map +1 -1
  7. package/assets/css/components/applied-filters.css +1 -1
  8. package/assets/css/components/applied-filters.css.map +1 -1
  9. package/assets/css/components/barchart.component.css +1 -1
  10. package/assets/css/components/barchart.component.css.map +1 -1
  11. package/assets/css/components/calendar.component.css +1 -1
  12. package/assets/css/components/calendar.component.css.map +1 -1
  13. package/assets/css/components/calendar.config.css +1 -1
  14. package/assets/css/components/calendar.config.css.map +1 -1
  15. package/assets/css/components/card.component.css +1 -1
  16. package/assets/css/components/card.component.css.map +1 -1
  17. package/assets/css/components/carousel.component.css +1 -1
  18. package/assets/css/components/carousel.component.css.map +1 -1
  19. package/assets/css/components/carousel.config.css.map +1 -1
  20. package/assets/css/components/charts.config.css +1 -1
  21. package/assets/css/components/charts.config.css.map +1 -1
  22. package/assets/css/components/charts.css +1 -1
  23. package/assets/css/components/charts.css.map +1 -1
  24. package/assets/css/components/charts.module.css +1 -1
  25. package/assets/css/components/charts.module.css.map +1 -1
  26. package/assets/css/components/collapsible-side.css +1 -1
  27. package/assets/css/components/collapsible-side.css.map +1 -1
  28. package/assets/css/components/content.component.css +1 -1
  29. package/assets/css/components/content.component.css.map +1 -1
  30. package/assets/css/components/darkmode.component.css +1 -1
  31. package/assets/css/components/darkmode.component.css.map +1 -1
  32. package/assets/css/components/doughnutchart.component.css +1 -1
  33. package/assets/css/components/doughnutchart.component.css.map +1 -1
  34. package/assets/css/components/fileupload.css +1 -1
  35. package/assets/css/components/fileupload.css.map +1 -1
  36. package/assets/css/components/header.css +1 -1
  37. package/assets/css/components/header.css.map +1 -1
  38. package/assets/css/components/inline-edit.css +1 -1
  39. package/assets/css/components/inline-edit.css.map +1 -1
  40. package/assets/css/components/inline-edit.preload.css.map +1 -1
  41. package/assets/css/components/input-range.component.css.map +1 -1
  42. package/assets/css/components/input.component.css +1 -1
  43. package/assets/css/components/input.component.css.map +1 -1
  44. package/assets/css/components/marketing.component.css +1 -1
  45. package/assets/css/components/marketing.component.css.map +1 -1
  46. package/assets/css/components/menu.global.css.map +1 -1
  47. package/assets/css/components/modal.component.css +1 -1
  48. package/assets/css/components/modal.component.css.map +1 -1
  49. package/assets/css/components/multi-step-modal.component.css +1 -1
  50. package/assets/css/components/multi-step-modal.component.css.map +1 -1
  51. package/assets/css/components/multi-step-modal.global.css.map +1 -1
  52. package/assets/css/components/multi-step.component.css.map +1 -1
  53. package/assets/css/components/multiselect.css +1 -1
  54. package/assets/css/components/multiselect.css.map +1 -1
  55. package/assets/css/components/multiselect.preload.css +1 -1
  56. package/assets/css/components/multiselect.preload.css.map +1 -1
  57. package/assets/css/components/nav.component.css +1 -1
  58. package/assets/css/components/nav.component.css.map +1 -1
  59. package/assets/css/components/nav.docs.css.map +1 -1
  60. package/assets/css/components/nav.global.css.map +1 -1
  61. package/assets/css/components/nav.preload.css.map +1 -1
  62. package/assets/css/components/notification.css +1 -1
  63. package/assets/css/components/notification.css.map +1 -1
  64. package/assets/css/components/pagination.css +1 -1
  65. package/assets/css/components/pagination.css.map +1 -1
  66. package/assets/css/components/password.component.css +1 -1
  67. package/assets/css/components/password.component.css.map +1 -1
  68. package/assets/css/components/popover.component.css +1 -1
  69. package/assets/css/components/popover.component.css.map +1 -1
  70. package/assets/css/components/property-searchbar.css +1 -1
  71. package/assets/css/components/property-searchbar.css.map +1 -1
  72. package/assets/css/components/rank.component.css +1 -1
  73. package/assets/css/components/rank.component.css.map +1 -1
  74. package/assets/css/components/rankings.component.css +1 -1
  75. package/assets/css/components/rankings.component.css.map +1 -1
  76. package/assets/css/components/rankings.global.css +1 -1
  77. package/assets/css/components/rankings.global.css.map +1 -1
  78. package/assets/css/components/slider.css +1 -1
  79. package/assets/css/components/slider.css.map +1 -1
  80. package/assets/css/components/snapshot.css.map +1 -1
  81. package/assets/css/components/split-button.component.css +1 -1
  82. package/assets/css/components/split-button.component.css.map +1 -1
  83. package/assets/css/components/stepper.css.map +1 -1
  84. package/assets/css/components/table-basic.component.css +1 -1
  85. package/assets/css/components/table-basic.component.css.map +1 -1
  86. package/assets/css/components/table-basic.global.css +1 -1
  87. package/assets/css/components/table-basic.global.css.map +1 -1
  88. package/assets/css/components/table.component.css +1 -1
  89. package/assets/css/components/table.component.css.map +1 -1
  90. package/assets/css/components/table.global.css +1 -1
  91. package/assets/css/components/table.global.css.map +1 -1
  92. package/assets/css/components/tabs.component.css +1 -1
  93. package/assets/css/components/tabs.component.css.map +1 -1
  94. package/assets/css/components/tabs.config.css +1 -1
  95. package/assets/css/components/tabs.config.css.map +1 -1
  96. package/assets/css/components/testimonial.css.map +1 -1
  97. package/assets/css/components/timeline.css +1 -1
  98. package/assets/css/components/timeline.css.map +1 -1
  99. package/assets/css/components/tooltip.component.css.map +1 -1
  100. package/assets/css/core.min.css +1 -1
  101. package/assets/css/core.min.css.map +1 -1
  102. package/assets/css/style.min.css +1 -1
  103. package/assets/css/style.min.css.map +1 -1
  104. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  105. package/assets/js/components/actionbar/actionbar.component.js +1 -1
  106. package/assets/js/components/actionbar/actionbar.component.min.js +7 -7
  107. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  108. package/assets/js/components/address-lookup/address-lookup.component.js +18 -2
  109. package/assets/js/components/address-lookup/address-lookup.component.min.js +5 -5
  110. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  111. package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
  112. package/assets/js/components/applied-filters/applied-filters.component.min.js +2 -2
  113. package/assets/js/components/barchart/barchart.component.min.js +6 -6
  114. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  115. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  116. package/assets/js/components/calendar/calendar.component.min.js +5 -5
  117. package/assets/js/components/card/card.component.min.js +5 -5
  118. package/assets/js/components/card/card.component.min.js.map +1 -1
  119. package/assets/js/components/carousel/carousel.component.min.js +3 -3
  120. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +2 -2
  121. package/assets/js/components/content/content.component.min.js +4 -4
  122. package/assets/js/components/darkmode/darkmode.component.min.js +4 -4
  123. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +7 -7
  124. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
  125. package/assets/js/components/fileupload/fileupload.component.min.js +4 -4
  126. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  127. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  128. package/assets/js/components/header/header.component.min.js +4 -4
  129. package/assets/js/components/inline-edit/inline-edit.component.min.js +3 -3
  130. package/assets/js/components/input/input.component.min.js +2 -2
  131. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  132. package/assets/js/components/marketing/marketing.component.min.js +2 -2
  133. package/assets/js/components/menu/menu.component.min.js +1 -1
  134. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  135. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  136. package/assets/js/components/modal/modal.component.min.js +3 -3
  137. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  138. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +3 -3
  139. package/assets/js/components/multiselect/multiselect.component.min.js +4 -4
  140. package/assets/js/components/nav/nav.component.min.js +2 -2
  141. package/assets/js/components/notification/notification.component.min.js +2 -2
  142. package/assets/js/components/pagination/pagination.component.min.js +5 -5
  143. package/assets/js/components/password/password.component.min.js +5 -5
  144. package/assets/js/components/popover/popover.component.min.js +2 -2
  145. package/assets/js/components/rank/rank.component.min.js +1 -1
  146. package/assets/js/components/rankings/rankings.component.min.js +7 -7
  147. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  148. package/assets/js/components/search/search.component.min.js +1 -1
  149. package/assets/js/components/slider/slider.component.min.js +2 -2
  150. package/assets/js/components/split-button/split-button.component.min.js +2 -2
  151. package/assets/js/components/std-address-lookup/std-address-lookup.component.js +1 -1
  152. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +7 -7
  153. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
  154. package/assets/js/components/table/table.component.min.js +6 -6
  155. package/assets/js/components/table-ajax/table-ajax.component.min.js +6 -6
  156. package/assets/js/components/table-basic/table-basic.component.min.js +3 -3
  157. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +6 -6
  158. package/assets/js/components/table-submit/table-submit.component.min.js +6 -6
  159. package/assets/js/components/tabs/tabs.component.min.js +3 -3
  160. package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
  161. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  162. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  163. package/assets/js/modules/chart.module.js +1 -1
  164. package/assets/js/scripts.bundle.js +1 -1
  165. package/assets/js/scripts.bundle.min.js +1 -1
  166. package/assets/sass/_bs_grid.scss +6 -4
  167. package/assets/sass/_bs_utilities.scss +51 -0
  168. package/assets/sass/_components.scss +16 -53
  169. package/assets/sass/_corefiles.scss +10 -40
  170. package/assets/sass/_elements.scss +25 -118
  171. package/assets/sass/_fonts.scss +3 -3
  172. package/assets/sass/_func.scss +0 -8
  173. package/assets/sass/_functions/bs_functions.scss +487 -0
  174. package/assets/sass/_functions/bs_mixins.scss +2103 -0
  175. package/assets/sass/_functions/bs_utilities.scss +1 -1
  176. package/assets/sass/_functions/{variables_old.scss → bs_variables.scss} +11 -9
  177. package/assets/sass/_functions/functions.scss +9 -449
  178. package/assets/sass/_functions/mixins.scss +1 -643
  179. package/assets/sass/_functions/utility-mixins.scss +1 -1523
  180. package/assets/sass/_functions/variables.scss +1 -729
  181. package/assets/sass/_grid.scss +51 -39
  182. package/assets/sass/_utilities.scss +28 -50
  183. package/assets/sass/components/actionbar.component.scss +33 -33
  184. package/assets/sass/components/actionbar.global.scss +6 -6
  185. package/assets/sass/components/address-lookup.component.scss +4 -9
  186. package/assets/sass/components/address-lookup.preload.scss +3 -3
  187. package/assets/sass/components/barchart.component.scss +14 -14
  188. package/assets/sass/components/calendar.component.scss +20 -20
  189. package/assets/sass/components/calendar.config.scss +19 -19
  190. package/assets/sass/components/card.component.scss +8 -10
  191. package/assets/sass/components/card.module.scss +9 -9
  192. package/assets/sass/components/carousel.component.scss +15 -15
  193. package/assets/sass/components/carousel.config.scss +5 -5
  194. package/assets/sass/components/charts.config.scss +6 -6
  195. package/assets/sass/components/charts.module.scss +16 -69
  196. package/assets/sass/components/charts.scss +8 -8
  197. package/assets/sass/components/collapsible-side.scss +42 -42
  198. package/assets/sass/components/darkmode.component.scss +2 -4
  199. package/assets/sass/components/doughnutchart.component.scss +4 -4
  200. package/assets/sass/components/fileupload.scss +23 -24
  201. package/assets/sass/components/filter-card.component.scss +9 -9
  202. package/assets/sass/components/header.scss +4 -4
  203. package/assets/sass/components/inline-edit.preload.scss +5 -5
  204. package/assets/sass/components/inline-edit.scss +1 -1
  205. package/assets/sass/components/input-range.component.scss +2 -2
  206. package/assets/sass/components/input.component.scss +2 -3
  207. package/assets/sass/components/marketing.component.scss +1 -1
  208. package/assets/sass/components/menu.component.scss +6 -6
  209. package/assets/sass/components/menu.global.scss +6 -6
  210. package/assets/sass/components/modal.component.scss +9 -9
  211. package/assets/sass/components/multi-step-modal.component.scss +14 -14
  212. package/assets/sass/components/multi-step-modal.global.scss +2 -2
  213. package/assets/sass/components/multi-step.component.scss +10 -10
  214. package/assets/sass/components/multiselect.preload.scss +5 -5
  215. package/assets/sass/components/multiselect.scss +11 -16
  216. package/assets/sass/components/nav.component.scss +55 -55
  217. package/assets/sass/components/nav.docs.scss +2 -2
  218. package/assets/sass/components/nav.global.scss +30 -30
  219. package/assets/sass/components/nav.preload.scss +8 -8
  220. package/assets/sass/components/notification.scss +14 -16
  221. package/assets/sass/components/pagination.scss +15 -15
  222. package/assets/sass/components/password.component.scss +6 -10
  223. package/assets/sass/components/popover.component.scss +5 -5
  224. package/assets/sass/components/property-searchbar.scss +9 -9
  225. package/assets/sass/components/rank.component.scss +3 -3
  226. package/assets/sass/components/rankings.component.scss +2 -2
  227. package/assets/sass/components/rankings.global.scss +7 -7
  228. package/assets/sass/components/record-card.component.scss +4 -4
  229. package/assets/sass/components/slider.scss +3 -3
  230. package/assets/sass/components/snapshot.scss +2 -2
  231. package/assets/sass/components/stepper.scss +7 -7
  232. package/assets/sass/components/table-basic.component.scss +4 -4
  233. package/assets/sass/components/table-basic.global.scss +11 -11
  234. package/assets/sass/components/table.component.scss +1 -1
  235. package/assets/sass/components/table.global.scss +7 -14
  236. package/assets/sass/components/tabs.config.scss +10 -10
  237. package/assets/sass/components/testimonial.scss +7 -7
  238. package/assets/sass/components/timeline.scss +2 -2
  239. package/assets/sass/components/tooltip.component.scss +3 -3
  240. package/assets/sass/core.scss +1 -13
  241. package/assets/sass/elements/admin-panel.scss +47 -31
  242. package/assets/sass/elements/badge-tag.scss +9 -9
  243. package/assets/sass/elements/brand.css +80 -0
  244. package/assets/sass/elements/buttons--action.scss +7 -26
  245. package/assets/sass/elements/buttons--compact.scss +12 -12
  246. package/assets/sass/elements/buttons--global.scss +29 -98
  247. package/assets/sass/elements/buttons--secondary.scss +4 -4
  248. package/assets/sass/elements/buttons--special.scss +131 -5
  249. package/assets/sass/elements/buttons--tertiary.scss +7 -7
  250. package/assets/sass/elements/buttons.scss +9 -33
  251. package/assets/sass/elements/code.css +46 -0
  252. package/assets/sass/elements/container.scss +14 -63
  253. package/assets/sass/elements/details.scss +35 -35
  254. package/assets/sass/elements/dialog.scss +7 -7
  255. package/assets/sass/elements/feature.scss +4 -4
  256. package/assets/sass/elements/forms.scss +121 -89
  257. package/assets/sass/elements/{hr.scss → hr.css} +1 -10
  258. package/assets/sass/elements/icons.css +48 -0
  259. package/assets/sass/elements/input.scss +58 -8
  260. package/assets/sass/elements/links.scss +27 -26
  261. package/assets/sass/elements/lists--breadcrumbs.scss +26 -0
  262. package/assets/sass/elements/lists--steps.css +171 -0
  263. package/assets/sass/elements/lists--tick-list.scss +81 -0
  264. package/assets/sass/elements/lists.scss +19 -310
  265. package/assets/sass/elements/media.css +20 -0
  266. package/assets/sass/elements/modal.scss +23 -23
  267. package/assets/sass/elements/popover.scss +13 -13
  268. package/assets/sass/elements/prefix.scss +9 -9
  269. package/assets/sass/elements/progress.scss +24 -24
  270. package/assets/sass/elements/table.element.scss +19 -19
  271. package/assets/sass/elements/toggle-button.scss +4 -4
  272. package/assets/sass/elements/tooltips.scss +41 -49
  273. package/assets/sass/elements/type.css +158 -0
  274. package/assets/sass/email.scss +7 -6
  275. package/assets/sass/error.scss +7 -14
  276. package/assets/sass/foundations/colours.scss +91 -0
  277. package/assets/sass/foundations/reboot.scss +16 -64
  278. package/assets/sass/foundations/root.scss +150 -138
  279. package/assets/sass/main.scss +3 -13
  280. package/assets/sass/templates/auth.scss +14 -14
  281. package/assets/sass/templates/form.scss +10 -12
  282. package/assets/sass/utilities/align.scss +25 -0
  283. package/assets/sass/utilities/border.scss +81 -0
  284. package/assets/sass/utilities/clearfix.scss +9 -0
  285. package/assets/sass/utilities/colours.scss +43 -0
  286. package/assets/sass/utilities/display.scss +90 -0
  287. package/assets/sass/utilities/fixed.scss +17 -0
  288. package/assets/sass/utilities/flex.scss +150 -0
  289. package/assets/sass/utilities/gap.scss +8 -0
  290. package/assets/sass/utilities/gradients.scss +40 -0
  291. package/assets/sass/utilities/js-display.scss +13 -0
  292. package/assets/sass/utilities/line-clamp.scss +25 -0
  293. package/assets/sass/utilities/margins.scss +75 -0
  294. package/assets/sass/utilities/max-height.scss +94 -0
  295. package/assets/sass/utilities/opacity.scss +21 -0
  296. package/assets/sass/utilities/order.scss +43 -0
  297. package/assets/sass/utilities/overflow.scss +17 -0
  298. package/assets/sass/utilities/paddings.scss +34 -0
  299. package/assets/sass/utilities/pointer-events.scss +9 -0
  300. package/assets/sass/utilities/position.scss +90 -0
  301. package/assets/sass/utilities/ratio.scss +33 -0
  302. package/assets/sass/utilities/rounded.scss +57 -0
  303. package/assets/sass/utilities/sizes.scss +89 -0
  304. package/assets/sass/utilities/sticky.scss +39 -0
  305. package/assets/sass/utilities/text-truncate.scss +7 -0
  306. package/assets/sass/utilities/text.scss +122 -0
  307. package/assets/sass/utilities/visible.scss +9 -0
  308. package/assets/sass/utilities/visually-hidden.scss +14 -0
  309. package/assets/sass/utilities/wider-colours.scss +10 -0
  310. package/assets/ts/components/actionbar/actionbar.component.ts +1 -1
  311. package/assets/ts/components/address-lookup/address-lookup.component.ts +24 -3
  312. package/assets/ts/components/darkmode/darkmode.component.ts +2 -2
  313. package/assets/ts/components/input/input.component.ts +3 -3
  314. package/assets/ts/components/modal/modal.component.ts +2 -2
  315. package/assets/ts/components/multi-step-modal/multi-step-modal.component.ts +2 -2
  316. package/assets/ts/components/multiselect/multiselect.component.ts +1 -1
  317. package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +2 -3
  318. package/assets/ts/modules/advanced-select.ts +1 -1
  319. package/assets/ts/modules/applied-filters.ts +2 -2
  320. package/assets/ts/modules/chart.module.ts +1 -1
  321. package/dist/components.es.js +28 -28
  322. package/dist/components.umd.js +178 -178
  323. package/package.json +7 -7
  324. package/src/components/Snapshot/Snapshot.vue +1 -1
  325. package/assets/css/mobile-core.min.css +0 -1
  326. package/assets/css/mobile-core.min.css.map +0 -1
  327. package/assets/css/mobile.min.css +0 -1
  328. package/assets/css/mobile.min.css.map +0 -1
  329. package/assets/sass/_example.scss +0 -61
  330. package/assets/sass/_tests/colours.spec.js +0 -9
  331. package/assets/sass/_tests/colours.spec.scss +0 -32
  332. package/assets/sass/_tests/func.spec.js +0 -9
  333. package/assets/sass/_tests/func.spec.scss +0 -196
  334. package/assets/sass/_tests/mixins.spec.js +0 -9
  335. package/assets/sass/_tests/mixins.spec.scss +0 -113
  336. package/assets/sass/_tests/typography.spec.js +0 -9
  337. package/assets/sass/_tests/typography.spec.scss +0 -35
  338. package/assets/sass/_utility-mixins.scss +0 -38
  339. package/assets/sass/elements/brand.scss +0 -83
  340. package/assets/sass/elements/icons.scss +0 -36
  341. package/assets/sass/elements/media.scss +0 -26
  342. package/assets/sass/elements/type.scss +0 -174
  343. package/assets/sass/helpers/dynamic.scss +0 -15
  344. package/assets/sass/helpers/line-clamp.scss +0 -0
  345. package/assets/sass/helpers/max-height.scss +0 -86
  346. package/assets/sass/helpers/wider-colours.scss +0 -8
  347. package/assets/sass/mobile-core.scss +0 -14
  348. package/assets/sass/mobile.scss +0 -16
@@ -0,0 +1,487 @@
1
+ @use 'sass:math';
2
+ @use 'sass:map';
3
+ @use 'sass:color';
4
+ @use 'sass:list';
5
+ @use 'sass:meta';
6
+ @use 'sass:string';
7
+
8
+ $escaped-characters: (('<', '%3c'), ('>', '%3e'), ('#', '%23'), ('(', '%28'), (')', '%29')) !default;
9
+
10
+ // #region from Bootstrap
11
+ // Utility color.mix(ins and functions for evaluating source code across our variables, maps, and color.mix(ins.
12
+
13
+ // Ascending
14
+ // Used to evaluate Sass maps like our grid breakpoints.
15
+ @mixin assert-ascending($map, $map-name) {
16
+ $prev-key: null;
17
+ $prev-num: null;
18
+ @each $key, $num in $map {
19
+ @if $prev-num == null or math.unit($num) == '%' or math.unit($prev-num) == '%' {
20
+ // Do nothing
21
+ } @else if not math.compatible($prev-num, $num) {
22
+ @warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose math.unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
23
+ } @else if $prev-num >= $num {
24
+ @warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";
25
+ }
26
+ $prev-key: $key;
27
+ $prev-num: $num;
28
+ }
29
+ }
30
+
31
+ // Starts at zero
32
+ // Used to ensure the min-width of the lowest breakpoint starts at 0.
33
+ @mixin assert-starts-at-zero($map, $map-name: '$grid-breakpoints') {
34
+ @if list.length($map) > 0 {
35
+ $values: map.values($map);
36
+ $first-value: list.nth($values, 1);
37
+ @if $first-value != 0 {
38
+ @warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.";
39
+ }
40
+ }
41
+ }
42
+
43
+ // Colors
44
+ @function to-rgb($value) {
45
+ @return color.channel($value, 'red', rgb), color.channel($value, 'green', rgb), color.channel($value, 'blue', rgb);
46
+ }
47
+
48
+ // stylelint-disable scss/dollar-variable-pattern
49
+ @function rgba-css-var($identifier, $target) {
50
+ @if $identifier == 'body' and $target == 'bg' {
51
+ @return rgba(var(--#{$identifier}-bg-rgb), var(--#{$target}-opacity));
52
+ }
53
+ @if $identifier == 'body' and $target == 'text' {
54
+ @return rgba(var(--#{$identifier}-color-rgb), var(--#{$target}-opacity));
55
+ } @else {
56
+ @return rgba(var(--#{$identifier}-rgb), var(--#{$target}-opacity));
57
+ }
58
+ }
59
+
60
+ @function map-loop($map, $func, $args...) {
61
+ $_map: ();
62
+
63
+ @each $key, $value in $map {
64
+ // allow to pass the $key and $value of the map as an function argument
65
+ $_args: ();
66
+ @each $arg in $args {
67
+ $_args: list.append($_args, if($arg == '$key', $key, if($arg == '$value', $value, $arg)));
68
+ }
69
+
70
+ $_map: map.merge(
71
+ $_map,
72
+ (
73
+ $key: meta.call(meta.get-function($func), $_args...),
74
+ )
75
+ );
76
+ }
77
+
78
+ @return $_map;
79
+ }
80
+
81
+ @function show-css-var($identifier) {
82
+ @return var(--colour-#{$identifier});
83
+ }
84
+ @function show-css-var-text($identifier) {
85
+ @return var(--colour-#{$identifier});
86
+ }
87
+
88
+ // stylelint-enable scss/dollar-variable-pattern
89
+
90
+ @function varify($list) {
91
+ $result: null;
92
+ @each $entry in $list {
93
+ $result: list.append($result, var(--#{$entry}), space);
94
+ }
95
+ @return $result;
96
+ }
97
+
98
+ // Internal Bootstrap function to turn maps into its negative variant.
99
+ // It prefixes the keys with `n` and makes the value negative.
100
+ @function negativify-map($map) {
101
+ $result: ();
102
+ @each $key, $value in $map {
103
+ @if $key != 0 {
104
+ $result: map.merge($result, ('n' + $key: (-$value)));
105
+ }
106
+ }
107
+ @return $result;
108
+ }
109
+
110
+ // Get multiple keys from a sass map
111
+ @function map-get-multiple($map, $values) {
112
+ $result: ();
113
+ @each $key, $value in $map {
114
+ @if (index($values, $key) != null) {
115
+ $result: map.merge(
116
+ $result,
117
+ (
118
+ $key: $value,
119
+ )
120
+ );
121
+ }
122
+ }
123
+ @return $result;
124
+ }
125
+
126
+ // Merge multiple maps
127
+ @function map-merge-multiple($maps...) {
128
+ $merged-maps: ();
129
+
130
+ @each $map in $maps {
131
+ $merged-maps: map.merge($merged-maps, $map);
132
+ }
133
+ @return $merged-maps;
134
+ }
135
+
136
+ // Replace `$search` with `$replace` in `$string`
137
+ // Used on our SVG icon backgrounds for custom forms.
138
+ //
139
+ // @author Hugo Giraudel
140
+ // @param {String} $string - Initial string
141
+ // @param {String} $search - Substring to replace
142
+ // @param {String} $replace ('') - New value
143
+ // @return {String} - Updated string
144
+ @function str-replace($string, $search, $replace: '') {
145
+ $index: string.index($string, $search);
146
+
147
+ @if $index {
148
+ @return string.slice($string, 1, $index - 1) + $replace +
149
+ str-replace(string.slice($string, $index + string.length($search)), $search, $replace);
150
+ }
151
+
152
+ @return $string;
153
+ }
154
+
155
+ // See https://codepen.io/kevinweber/pen/dXWoRw
156
+ //
157
+ // Requires the use of quotes around data URIs.
158
+
159
+ @function escape-svg($string) {
160
+ $escaped-characters: (('<', '%3c'), ('>', '%3e'), ('#', '%23'), ('(', '%28'), (')', '%29'));
161
+ @if string.index($string, 'data:image/svg+xml') {
162
+ @each $char, $encoded in $escaped-characters {
163
+ // Do not escape the url brackets
164
+ @if string.index($string, 'url(') == 1 {
165
+ $string: url('#{str-replace(string.slice($string, 6, -3), $char, $encoded)}');
166
+ } @else {
167
+ $string: str-replace($string, $char, $encoded);
168
+ }
169
+ }
170
+ }
171
+
172
+ @return $string;
173
+ }
174
+
175
+ // Color contrast
176
+ // See https://github.com/twbs/bootstrap/pull/30168
177
+
178
+ // A list of pre-calculated numbers of Pow(divide((divide($value, 255) + .055), 1.055), 2.4). (from 0 to 255)
179
+ // stylelint-disable-next-line scss/dollar-variable-default, scss/dollar-variable-pattern
180
+ $_luminance-list: 0.0008 0.001 0.0011 0.0013 0.0015 0.0017 0.002 0.0022 0.0025 0.0027 0.003 0.0033 0.0037 0.004 0.0044
181
+ 0.0048 0.0052 0.0056 0.006 0.0065 0.007 0.0075 0.008 0.0086 0.0091 0.0097 0.0103 0.011 0.0116 0.0123 0.013 0.0137
182
+ 0.0144 0.0152 0.016 0.0168 0.0176 0.0185 0.0194 0.0203 0.0212 0.0222 0.0232 0.0242 0.0252 0.0262 0.0273 0.0284 0.0296
183
+ 0.0307 0.0319 0.0331 0.0343 0.0356 0.0369 0.0382 0.0395 0.0409 0.0423 0.0437 0.0452 0.0467 0.0482 0.0497 0.0513 0.0529
184
+ 0.0545 0.0561 0.0578 0.0595 0.0612 0.063 0.0648 0.0666 0.0685 0.0704 0.0723 0.0742 0.0762 0.0782 0.0802 0.0823 0.0844
185
+ 0.0865 0.0887 0.0908 0.0931 0.0953 0.0976 0.0999 0.1022 0.1046 0.107 0.1095 0.1119 0.1144 0.117 0.1195 0.1221 0.1248
186
+ 0.1274 0.1301 0.1329 0.1356 0.1384 0.1413 0.1441 0.147 0.15 0.1529 0.1559 0.159 0.162 0.1651 0.1683 0.1714 0.1746
187
+ 0.1779 0.1812 0.1845 0.1878 0.1912 0.1946 0.1981 0.2016 0.2051 0.2086 0.2122 0.2159 0.2195 0.2232 0.227 0.2307 0.2346
188
+ 0.2384 0.2423 0.2462 0.2502 0.2542 0.2582 0.2623 0.2664 0.2705 0.2747 0.2789 0.2831 0.2874 0.2918 0.2961 0.3005 0.305
189
+ 0.3095 0.314 0.3185 0.3231 0.3278 0.3325 0.3372 0.3419 0.3467 0.3515 0.3564 0.3613 0.3663 0.3712 0.3763 0.3813 0.3864
190
+ 0.3916 0.3968 0.402 0.4072 0.4125 0.4179 0.4233 0.4287 0.4342 0.4397 0.4452 0.4508 0.4564 0.4621 0.4678 0.4735 0.4793
191
+ 0.4851 0.491 0.4969 0.5029 0.5089 0.5149 0.521 0.5271 0.5333 0.5395 0.5457 0.552 0.5583 0.5647 0.5711 0.5776 0.5841
192
+ 0.5906 0.5972 0.6038 0.6105 0.6172 0.624 0.6308 0.6376 0.6445 0.6514 0.6584 0.6654 0.6724 0.6795 0.6867 0.6939 0.7011
193
+ 0.7084 0.7157 0.7231 0.7305 0.7379 0.7454 0.7529 0.7605 0.7682 0.7758 0.7835 0.7913 0.7991 0.807 0.8148 0.8228 0.8308
194
+ 0.8388 0.8469 0.855 0.8632 0.8714 0.8796 0.8879 0.8963 0.9047 0.9131 0.9216 0.9301 0.9387 0.9473 0.956 0.9647 0.9734
195
+ 0.9823 0.9911 1;
196
+
197
+ @function color-contrast(
198
+ $background,
199
+ $color-contrast-dark: $color-contrast-dark,
200
+ $color-contrast-light: $color-contrast-light,
201
+ $min-contrast-ratio: $min-contrast-ratio
202
+ ) {
203
+ $foregrounds: $color-contrast-light, $color-contrast-dark, #fff, #000;
204
+ $max-ratio: 0;
205
+ $max-ratio-color: null;
206
+
207
+ @each $color in $foregrounds {
208
+ $contrast-ratio: contrast-ratio($background, $color);
209
+ @if $contrast-ratio > $min-contrast-ratio {
210
+ @return $color;
211
+ } @else if $contrast-ratio > $max-ratio {
212
+ $max-ratio: $contrast-ratio;
213
+ $max-ratio-color: $color;
214
+ }
215
+ }
216
+
217
+ @warn "Found no color leading to #{$min-contrast-ratio}:1 contrast ratio against #{$background}...";
218
+
219
+ @return $max-ratio-color;
220
+ }
221
+
222
+ @function contrast-ratio($background, $foreground: $color-contrast-light) {
223
+ $l1: luminance($background);
224
+ $l2: luminance(opaque($background, $foreground));
225
+
226
+ @return if($l1 > $l2, divide($l1 + 0.05, $l2 + 0.05), divide($l2 + 0.05, $l1 + 0.05));
227
+ }
228
+
229
+ // Return WCAG2.1 relative luminance
230
+ // See https://www.w3.org/TR/WCAG/#dfn-relative-luminance
231
+ // See https://www.w3.org/TR/WCAG/#dfn-contrast-ratio
232
+ @function luminance($color) {
233
+ $rgb: (
234
+ 'r': red($color),
235
+ 'g': green($color),
236
+ 'b': blue($color),
237
+ );
238
+
239
+ @each $name, $value in $rgb {
240
+ $value: if(divide($value, 255) < 0.03928, divide(divide($value, 255), 12.92), nth($_luminance-list, $value + 1));
241
+ $rgb: map.merge(
242
+ $rgb,
243
+ (
244
+ $name: $value,
245
+ )
246
+ );
247
+ }
248
+
249
+ @return (map-get($rgb, 'r') * 0.2126) + (map-get($rgb, 'g') * 0.7152) + (map-get($rgb, 'b') * 0.0722);
250
+ }
251
+
252
+ // Return opaque color
253
+ // opaque(#fff, rgba(0, 0, 0, .5)) => #808080
254
+ @function opaque($background, $foreground) {
255
+ @return color.mix(rgba($foreground, 1), $background, opacity($foreground) * 100);
256
+ }
257
+
258
+ // scss-docs-start color-functions
259
+ // Tint a color: color.mix( a color with white
260
+ @function tint-color($color, $weight) {
261
+ @return color.mix(white, $color, $weight);
262
+ }
263
+
264
+ // Shade a color: color.mix( a color with black
265
+ @function shade-color($color, $weight) {
266
+ @return color.mix(black, $color, $weight);
267
+ }
268
+
269
+ // Shade the color if the weight is positive, else tint it
270
+ @function shift-color($color, $weight) {
271
+ @return if($weight > 0, shade-color($color, $weight), tint-color($color, -$weight));
272
+ }
273
+ // scss-docs-end color-functions
274
+
275
+ // Return valid calc
276
+ @function add($value1, $value2, $return-calc: true) {
277
+ @if $value1 == null {
278
+ @return $value2;
279
+ }
280
+
281
+ @if $value2 == null {
282
+ @return $value1;
283
+ }
284
+
285
+ @if meta.type-of($value1) == number and meta.type-of($value2) == number and math.compatible($value1, $value2) {
286
+ @return $value1 + $value2;
287
+ }
288
+
289
+ @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + string.unquote(' + ') + $value2);
290
+ }
291
+
292
+ @function subtract($value1, $value2, $return-calc: true) {
293
+ @if $value1 == null and $value2 == null {
294
+ @return null;
295
+ }
296
+
297
+ @if $value1 == null {
298
+ @return -$value2;
299
+ }
300
+
301
+ @if $value2 == null {
302
+ @return $value1;
303
+ }
304
+
305
+ @if meta.type-of($value1) == number and meta.type-of($value2) == number and math.compatible($value1, $value2) {
306
+ @return $value1 - $value2;
307
+ }
308
+
309
+ @if meta.type-of($value2) != number {
310
+ $value2: string.unquote('(') + $value2 + string.unquote(')');
311
+ }
312
+
313
+ @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + string.unquote(' - ') + $value2);
314
+ }
315
+
316
+ @function divide($dividend, $divisor, $precision: 10) {
317
+ $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
318
+ $dividend: abs($dividend);
319
+ $divisor: abs($divisor);
320
+ @if $dividend == 0 {
321
+ @return 0;
322
+ }
323
+ @if $divisor == 0 {
324
+ @error "Cannot divide by 0";
325
+ }
326
+ $remainder: $dividend;
327
+ $result: 0;
328
+ $factor: 10;
329
+ @while ($remainder > 0 and $precision >= 0) {
330
+ $quotient: 0;
331
+ @while ($remainder >= $divisor) {
332
+ $remainder: $remainder - $divisor;
333
+ $quotient: $quotient + 1;
334
+ }
335
+ $result: $result * 10 + $quotient;
336
+ $factor: $factor * 0.1;
337
+ $remainder: $remainder * 10;
338
+ $precision: $precision - 1;
339
+ @if ($precision < 0 and $remainder >= $divisor * 5) {
340
+ $result: $result + 1;
341
+ }
342
+ }
343
+ $result: $result * $factor * $sign;
344
+ $dividend-unit: math.unit($dividend);
345
+ $divisor-unit: math.unit($divisor);
346
+ $unit-map: (
347
+ 'px': 1px,
348
+ 'rem': 1rem,
349
+ 'em': 1em,
350
+ '%': 1%,
351
+ );
352
+ @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
353
+ $result: $result * map-get($unit-map, $dividend-unit);
354
+ }
355
+ @return $result;
356
+ }
357
+ // #endregion
358
+
359
+
360
+
361
+ @function Pow($x, $n) {
362
+ $ret: 1;
363
+
364
+ @if $n >= 0 {
365
+ @for $i from 1 through $n {
366
+ $ret: $ret * $x;
367
+ }
368
+ } @else {
369
+ @for $i from $n to 0 {
370
+ $ret: math.div($ret, $x);
371
+ }
372
+ }
373
+
374
+ @return $ret;
375
+ }
376
+
377
+ @function to-fixed($float, $digits: 2) {
378
+ $sass-precision: 5;
379
+
380
+ @if $digits > $sass-precision {
381
+ @warn "Sass sets default precision to #{$sass-precision} digits, and there is no way to change that for now."
382
+ + "The returned number will have #{$sass-precision} digits, even if you asked for `#{$digits}`."
383
+ + "See https://github.com/sass/sass/issues/1122 for further informations.";
384
+ }
385
+
386
+ $Pow: Pow(10, $digits);
387
+ @return math.div(round($float * $Pow), $Pow);
388
+ }
389
+
390
+ // converts pixels to em (context sets the current size of the font)
391
+ @function em($pixels, $context: 16) {
392
+ @return #{math.div($pixels, $context)}em;
393
+ }
394
+
395
+ @function rem($pixels) {
396
+ @return #{math.div($pixels, 16)}rem;
397
+ }
398
+
399
+ @function vw($pixels, $context: 16) {
400
+ $size: math.div(16, $pixels) * 100;
401
+ @return #{to-fixed($size, 5)}vw;
402
+ }
403
+
404
+ @function strip-px($number) {
405
+ @if meta.type-of($number) == 'number' and not math.unitless($number) {
406
+ @return math.div($number, ($number * 0 + 1));
407
+ }
408
+
409
+ @return $number;
410
+ }
411
+
412
+ // prevent colours being changed via sass functions
413
+ @function darken($colour, $percent) {
414
+ @return $colour;
415
+ }
416
+
417
+ @function lighten($colour, $percent) {
418
+ @return $colour;
419
+ }
420
+
421
+ @function saturate($colour, $percent) {
422
+ @return $colour;
423
+ }
424
+ @function desaturate($colour, $percent) {
425
+ @return $colour;
426
+ }
427
+
428
+ @function adjust-hue($colour, $percent) {
429
+ @return $colour;
430
+ }
431
+
432
+ @function tint($colour, $percentage) {
433
+ @return color.mix(white, $colour, $percentage);
434
+ }
435
+ @function shade($colour, $percent) {
436
+ @return $colour;
437
+ }
438
+
439
+ @function breakpoint-max($name, $breakpoints: $grid-breakpoints) {
440
+ $next: breakpoint-next($name, $breakpoints);
441
+ @return if($next, breakpoint-min($next, $breakpoints), null);
442
+ }
443
+
444
+ // Trims the start/left of the string:
445
+ @function str-trimStart($str) {
446
+ @if (string.slice($str, 1, 1) == ' ') {
447
+ @return str-trimStart(string.slice($str, 2));
448
+ } @else {
449
+ @return $str;
450
+ }
451
+ }
452
+
453
+ // Trims the end/right of the string:
454
+ @function str-trimEnd($str) {
455
+ @if (string.slice($str, string.length($str), -1) == ' ') {
456
+ @return str-trimEnd(string.slice($str, 1, -2));
457
+ } @else {
458
+ @return $str;
459
+ }
460
+ }
461
+
462
+ // Trims both the start and end of the string:
463
+ @function str-trim($str) {
464
+ @return str-trimStart(str-trimEnd($str));
465
+ }
466
+
467
+ @function str-split($string, $separator) {
468
+ // empty array/list
469
+ $split-arr: ();
470
+ // first index of separator in string
471
+ $index: string.index($string, $separator);
472
+ // loop through string
473
+ @while $index != null {
474
+ // get the substring from the first character to the separator
475
+ $item: string.slice($string, 1, $index - 1);
476
+ // push item to array
477
+ $split-arr: list.append($split-arr, str-trim($item));
478
+ // remove item and separator from string
479
+ $string: string.slice($string, $index + 1);
480
+ // find new index of separator
481
+ $index: string.index($string, $separator);
482
+ }
483
+ // add the remaining string to list (the last item)
484
+ $split-arr: list.append($split-arr, str-trim($string));
485
+
486
+ @return $split-arr;
487
+ }