@iamproperty/components 7.7.1--beta4 → 7.7.1--beta6

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 (712) hide show
  1. package/README.md +4 -4
  2. package/assets/bootstrap/README.md +247 -247
  3. package/assets/bootstrap/dist/css/bootstrap-grid.css +4124 -0
  4. package/assets/bootstrap/dist/css/bootstrap-grid.css.map +1 -0
  5. package/assets/bootstrap/dist/css/bootstrap-grid.min.css +7 -0
  6. package/assets/bootstrap/dist/css/bootstrap-grid.min.css.map +1 -0
  7. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.css +4123 -0
  8. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.css.map +1 -0
  9. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.min.css +7 -0
  10. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map +1 -0
  11. package/assets/bootstrap/dist/css/bootstrap-reboot.css +488 -0
  12. package/assets/bootstrap/dist/css/bootstrap-reboot.css.map +1 -0
  13. package/assets/bootstrap/dist/css/bootstrap-reboot.min.css +7 -0
  14. package/assets/bootstrap/dist/css/bootstrap-reboot.min.css.map +1 -0
  15. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.css +485 -0
  16. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.css.map +1 -0
  17. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.min.css +7 -0
  18. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map +1 -0
  19. package/assets/bootstrap/dist/css/bootstrap-utilities.css +4197 -0
  20. package/assets/bootstrap/dist/css/bootstrap-utilities.css.map +1 -0
  21. package/assets/bootstrap/dist/css/bootstrap-utilities.min.css +7 -0
  22. package/assets/bootstrap/dist/css/bootstrap-utilities.min.css.map +1 -0
  23. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.css +4188 -0
  24. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.css.map +1 -0
  25. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.min.css +7 -0
  26. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map +1 -0
  27. package/assets/bootstrap/dist/css/bootstrap.css +10907 -0
  28. package/assets/bootstrap/dist/css/bootstrap.css.map +1 -0
  29. package/assets/bootstrap/dist/css/bootstrap.min.css +7 -0
  30. package/assets/bootstrap/dist/css/bootstrap.min.css.map +1 -0
  31. package/assets/bootstrap/dist/css/bootstrap.rtl.css +10867 -0
  32. package/assets/bootstrap/dist/css/bootstrap.rtl.css.map +1 -0
  33. package/assets/bootstrap/dist/css/bootstrap.rtl.min.css +7 -0
  34. package/assets/bootstrap/dist/css/bootstrap.rtl.min.css.map +1 -0
  35. package/assets/bootstrap/dist/js/bootstrap.bundle.js +7066 -0
  36. package/assets/bootstrap/dist/js/bootstrap.bundle.js.map +1 -0
  37. package/assets/bootstrap/dist/js/bootstrap.bundle.min.js +7 -0
  38. package/assets/bootstrap/dist/js/bootstrap.bundle.min.js.map +1 -0
  39. package/assets/bootstrap/dist/js/bootstrap.esm.js +5204 -0
  40. package/assets/bootstrap/dist/js/bootstrap.esm.js.map +1 -0
  41. package/assets/bootstrap/dist/js/bootstrap.esm.min.js +7 -0
  42. package/assets/bootstrap/dist/js/bootstrap.esm.min.js.map +1 -0
  43. package/assets/bootstrap/dist/js/bootstrap.js +5251 -0
  44. package/assets/bootstrap/dist/js/bootstrap.js.map +1 -0
  45. package/assets/bootstrap/dist/js/bootstrap.min.js +7 -0
  46. package/assets/bootstrap/dist/js/bootstrap.min.js.map +1 -0
  47. package/assets/bootstrap/js/dist/alert.js +100 -0
  48. package/assets/bootstrap/js/dist/alert.js.map +1 -0
  49. package/assets/bootstrap/js/dist/base-component.js +100 -0
  50. package/assets/bootstrap/js/dist/base-component.js.map +1 -0
  51. package/assets/bootstrap/js/dist/button.js +82 -0
  52. package/assets/bootstrap/js/dist/button.js.map +1 -0
  53. package/assets/bootstrap/js/dist/carousel.js +471 -0
  54. package/assets/bootstrap/js/dist/carousel.js.map +1 -0
  55. package/assets/bootstrap/js/dist/collapse.js +311 -0
  56. package/assets/bootstrap/js/dist/collapse.js.map +1 -0
  57. package/assets/bootstrap/js/dist/dom/data.js +67 -0
  58. package/assets/bootstrap/js/dist/dom/data.js.map +1 -0
  59. package/assets/bootstrap/js/dist/dom/event-handler.js +284 -0
  60. package/assets/bootstrap/js/dist/dom/event-handler.js.map +1 -0
  61. package/assets/bootstrap/js/dist/dom/manipulator.js +85 -0
  62. package/assets/bootstrap/js/dist/dom/manipulator.js.map +1 -0
  63. package/assets/bootstrap/js/dist/dom/selector-engine.js +86 -0
  64. package/assets/bootstrap/js/dist/dom/selector-engine.js.map +1 -0
  65. package/assets/bootstrap/js/dist/dropdown.js +471 -0
  66. package/assets/bootstrap/js/dist/dropdown.js.map +1 -0
  67. package/assets/bootstrap/js/dist/modal.js +397 -0
  68. package/assets/bootstrap/js/dist/modal.js.map +1 -0
  69. package/assets/bootstrap/js/dist/offcanvas.js +298 -0
  70. package/assets/bootstrap/js/dist/offcanvas.js.map +1 -0
  71. package/assets/bootstrap/js/dist/popover.js +102 -0
  72. package/assets/bootstrap/js/dist/popover.js.map +1 -0
  73. package/assets/bootstrap/js/dist/scrollspy.js +308 -0
  74. package/assets/bootstrap/js/dist/scrollspy.js.map +1 -0
  75. package/assets/bootstrap/js/dist/tab.js +334 -0
  76. package/assets/bootstrap/js/dist/tab.js.map +1 -0
  77. package/assets/bootstrap/js/dist/toast.js +237 -0
  78. package/assets/bootstrap/js/dist/toast.js.map +1 -0
  79. package/assets/bootstrap/js/dist/tooltip.js +663 -0
  80. package/assets/bootstrap/js/dist/tooltip.js.map +1 -0
  81. package/assets/bootstrap/js/dist/util/backdrop.js +166 -0
  82. package/assets/bootstrap/js/dist/util/backdrop.js.map +1 -0
  83. package/assets/bootstrap/js/dist/util/component-functions.js +47 -0
  84. package/assets/bootstrap/js/dist/util/component-functions.js.map +1 -0
  85. package/assets/bootstrap/js/dist/util/config.js +80 -0
  86. package/assets/bootstrap/js/dist/util/config.js.map +1 -0
  87. package/assets/bootstrap/js/dist/util/focustrap.js +130 -0
  88. package/assets/bootstrap/js/dist/util/focustrap.js.map +1 -0
  89. package/assets/bootstrap/js/dist/util/index.js +351 -0
  90. package/assets/bootstrap/js/dist/util/index.js.map +1 -0
  91. package/assets/bootstrap/js/dist/util/sanitizer.js +123 -0
  92. package/assets/bootstrap/js/dist/util/sanitizer.js.map +1 -0
  93. package/assets/bootstrap/js/dist/util/scrollbar.js +139 -0
  94. package/assets/bootstrap/js/dist/util/scrollbar.js.map +1 -0
  95. package/assets/bootstrap/js/dist/util/swipe.js +156 -0
  96. package/assets/bootstrap/js/dist/util/swipe.js.map +1 -0
  97. package/assets/bootstrap/js/dist/util/template-factory.js +178 -0
  98. package/assets/bootstrap/js/dist/util/template-factory.js.map +1 -0
  99. package/assets/bootstrap/js/index.esm.js +19 -19
  100. package/assets/bootstrap/js/index.umd.js +34 -34
  101. package/assets/bootstrap/js/src/alert.js +87 -87
  102. package/assets/bootstrap/js/src/base-component.js +85 -85
  103. package/assets/bootstrap/js/src/button.js +72 -72
  104. package/assets/bootstrap/js/src/carousel.js +475 -475
  105. package/assets/bootstrap/js/src/collapse.js +302 -302
  106. package/assets/bootstrap/js/src/dom/data.js +55 -55
  107. package/assets/bootstrap/js/src/dom/event-handler.js +320 -320
  108. package/assets/bootstrap/js/src/dom/manipulator.js +71 -71
  109. package/assets/bootstrap/js/src/dom/selector-engine.js +83 -83
  110. package/assets/bootstrap/js/src/dropdown.js +445 -445
  111. package/assets/bootstrap/js/src/modal.js +373 -373
  112. package/assets/bootstrap/js/src/offcanvas.js +283 -283
  113. package/assets/bootstrap/js/src/popover.js +97 -97
  114. package/assets/bootstrap/js/src/scrollspy.js +290 -290
  115. package/assets/bootstrap/js/src/tab.js +307 -307
  116. package/assets/bootstrap/js/src/toast.js +220 -220
  117. package/assets/bootstrap/js/src/tooltip.js +651 -651
  118. package/assets/bootstrap/js/src/util/backdrop.js +149 -149
  119. package/assets/bootstrap/js/src/util/component-functions.js +34 -34
  120. package/assets/bootstrap/js/src/util/config.js +66 -66
  121. package/assets/bootstrap/js/src/util/focustrap.js +115 -115
  122. package/assets/bootstrap/js/src/util/index.js +336 -336
  123. package/assets/bootstrap/js/src/util/sanitizer.js +118 -118
  124. package/assets/bootstrap/js/src/util/scrollbar.js +114 -114
  125. package/assets/bootstrap/js/src/util/swipe.js +146 -146
  126. package/assets/bootstrap/js/src/util/template-factory.js +160 -160
  127. package/assets/bootstrap/package.json +180 -180
  128. package/assets/bootstrap/scss/_accordion.scss +146 -146
  129. package/assets/bootstrap/scss/_button-group.scss +142 -142
  130. package/assets/bootstrap/scss/_buttons.scss +186 -186
  131. package/assets/bootstrap/scss/_carousel.scss +229 -229
  132. package/assets/bootstrap/scss/_dropdown.scss +248 -248
  133. package/assets/bootstrap/scss/_functions.scss +302 -302
  134. package/assets/bootstrap/scss/_list-group.scss +191 -191
  135. package/assets/bootstrap/scss/_modal.scss +237 -237
  136. package/assets/bootstrap/scss/_nav.scss +172 -172
  137. package/assets/bootstrap/scss/_navbar.scss +276 -276
  138. package/assets/bootstrap/scss/_offcanvas.scss +143 -143
  139. package/assets/bootstrap/scss/_pagination.scss +109 -109
  140. package/assets/bootstrap/scss/_popover.scss +196 -196
  141. package/assets/bootstrap/scss/_toasts.scss +70 -70
  142. package/assets/bootstrap/scss/_variables-dark.scss +87 -87
  143. package/assets/bootstrap/scss/_variables.scss +1633 -1633
  144. package/assets/bootstrap/scss/bootstrap-utilities.scss +15 -15
  145. package/assets/bootstrap/scss/forms/_floating-labels.scss +74 -74
  146. package/assets/bootstrap/scss/forms/_input-group.scss +129 -129
  147. package/assets/bootstrap/scss/helpers/_focus-ring.scss +5 -5
  148. package/assets/bootstrap/scss/helpers/_icon-link.scss +25 -25
  149. package/assets/bootstrap/scss/mixins/_banner.scss +9 -9
  150. package/assets/bootstrap/scss/mixins/_color-mode.scss +21 -21
  151. package/assets/bootstrap/scss/mixins/_forms.scss +152 -152
  152. package/assets/bootstrap/scss/mixins/_table-variants.scss +24 -24
  153. package/assets/bootstrap/scss/mixins/_utilities.scss +97 -97
  154. package/assets/css/components/actionbar.component.css +1 -1
  155. package/assets/css/components/actionbar.component.css.map +1 -1
  156. package/assets/css/components/address-lookup.component.css +1 -1
  157. package/assets/css/components/address-lookup.component.css.map +1 -1
  158. package/assets/css/components/applied-filters.css +1 -1
  159. package/assets/css/components/applied-filters.css.map +1 -1
  160. package/assets/css/components/barchart.component.css +1 -1
  161. package/assets/css/components/barchart.component.css.map +1 -1
  162. package/assets/css/components/calendar.component.css +1 -1
  163. package/assets/css/components/calendar.component.css.map +1 -1
  164. package/assets/css/components/card.component.css +1 -1
  165. package/assets/css/components/card.component.css.map +1 -1
  166. package/assets/css/components/card.module.css +1 -1
  167. package/assets/css/components/card.module.css.map +1 -1
  168. package/assets/css/components/carousel.component.css +1 -1
  169. package/assets/css/components/carousel.component.css.map +1 -1
  170. package/assets/css/components/charts.css +1 -1
  171. package/assets/css/components/charts.css.map +1 -1
  172. package/assets/css/components/collapsible-side.css +1 -1
  173. package/assets/css/components/collapsible-side.css.map +1 -1
  174. package/assets/css/components/config.component.css +1 -1
  175. package/assets/css/components/config.component.css.map +1 -1
  176. package/assets/css/components/content.component.css +1 -1
  177. package/assets/css/components/content.component.css.map +1 -1
  178. package/assets/css/components/doughnutchart.component.css +1 -1
  179. package/assets/css/components/doughnutchart.component.css.map +1 -1
  180. package/assets/css/components/fileupload.css +1 -1
  181. package/assets/css/components/fileupload.css.map +1 -1
  182. package/assets/css/components/filter-card.component.css +1 -1
  183. package/assets/css/components/filter-card.component.css.map +1 -1
  184. package/assets/css/components/header.css +1 -1
  185. package/assets/css/components/header.css.map +1 -1
  186. package/assets/css/components/inline-edit.css +1 -1
  187. package/assets/css/components/inline-edit.css.map +1 -1
  188. package/assets/css/components/input.component.css.map +1 -1
  189. package/assets/css/components/modal.component.css +1 -1
  190. package/assets/css/components/modal.component.css.map +1 -1
  191. package/assets/css/components/multi-step-modal.component.css +1 -1
  192. package/assets/css/components/multi-step-modal.component.css.map +1 -1
  193. package/assets/css/components/multiselect.css +1 -1
  194. package/assets/css/components/multiselect.css.map +1 -1
  195. package/assets/css/components/nav.component.css +1 -1
  196. package/assets/css/components/nav.component.css.map +1 -1
  197. package/assets/css/components/pagination.css +1 -1
  198. package/assets/css/components/pagination.css.map +1 -1
  199. package/assets/css/components/record-card.component.css +1 -1
  200. package/assets/css/components/record-card.component.css.map +1 -1
  201. package/assets/css/components/slider.css +1 -1
  202. package/assets/css/components/slider.css.map +1 -1
  203. package/assets/css/components/split-button.component.css +1 -1
  204. package/assets/css/components/split-button.component.css.map +1 -1
  205. package/assets/css/components/tabs.component.css +1 -1
  206. package/assets/css/components/tabs.component.css.map +1 -1
  207. package/assets/css/components/tabs.config.css +1 -1
  208. package/assets/css/components/tabs.config.css.map +1 -1
  209. package/assets/css/components/tag.component.css +1 -1
  210. package/assets/css/components/tag.component.css.map +1 -1
  211. package/assets/css/components/video-card.component.css +1 -1
  212. package/assets/css/components/video-card.component.css.map +1 -1
  213. package/assets/css/components/video-modal.component.css +1 -1
  214. package/assets/css/components/video-modal.component.css.map +1 -1
  215. package/assets/css/components/video.component.css +1 -0
  216. package/assets/css/components/video.component.css.map +1 -0
  217. package/assets/css/core.min.css +1 -1
  218. package/assets/css/core.min.css.map +1 -1
  219. package/assets/css/elements/badge-tag.css +1 -1
  220. package/assets/css/elements/badge-tag.css.map +1 -1
  221. package/assets/css/elements/buttons--action.css +1 -1
  222. package/assets/css/elements/buttons--action.css.map +1 -1
  223. package/assets/css/elements/buttons--global.css +1 -1
  224. package/assets/css/elements/buttons--global.css.map +1 -1
  225. package/assets/css/elements/buttons--secondary.css +1 -1
  226. package/assets/css/elements/buttons--secondary.css.map +1 -1
  227. package/assets/css/elements/buttons--special.css +1 -1
  228. package/assets/css/elements/buttons--special.css.map +1 -1
  229. package/assets/css/elements/buttons--tertiary.css +1 -1
  230. package/assets/css/elements/buttons--tertiary.css.map +1 -1
  231. package/assets/css/elements/buttons.css +1 -1
  232. package/assets/css/elements/buttons.css.map +1 -1
  233. package/assets/css/elements/container.css +1 -1
  234. package/assets/css/elements/container.css.map +1 -1
  235. package/assets/css/elements/details.css +1 -1
  236. package/assets/css/elements/details.css.map +1 -1
  237. package/assets/css/elements/dialog.css.map +1 -1
  238. package/assets/css/elements/dropdown.css +1 -1
  239. package/assets/css/elements/dropdown.css.map +1 -1
  240. package/assets/css/elements/feature.css +1 -1
  241. package/assets/css/elements/feature.css.map +1 -1
  242. package/assets/css/elements/forms.css +1 -1
  243. package/assets/css/elements/forms.css.map +1 -1
  244. package/assets/css/elements/label.css +1 -1
  245. package/assets/css/elements/label.css.map +1 -1
  246. package/assets/css/elements/links--collapsible-side.css +1 -0
  247. package/assets/css/elements/links--collapsible-side.css.map +1 -0
  248. package/assets/css/elements/links--global.css +1 -0
  249. package/assets/css/elements/links--global.css.map +1 -0
  250. package/assets/css/elements/links--video.css +1 -0
  251. package/assets/css/elements/links--video.css.map +1 -0
  252. package/assets/css/elements/links.css +1 -1
  253. package/assets/css/elements/links.css.map +1 -1
  254. package/assets/css/elements/modal.css.map +1 -1
  255. package/assets/css/elements/progress.css.map +1 -1
  256. package/assets/css/elements/textarea.css +1 -1
  257. package/assets/css/elements/textarea.css.map +1 -1
  258. package/assets/css/elements/toggle-button.css +1 -1
  259. package/assets/css/elements/toggle-button.css.map +1 -1
  260. package/assets/css/elements/tooltips.css +1 -1
  261. package/assets/css/elements/tooltips.css.map +1 -1
  262. package/assets/css/style.min.css +1 -1
  263. package/assets/css/style.min.css.map +1 -1
  264. package/assets/favicons/README.md +20 -20
  265. package/assets/favicons/browserconfig.xml +9 -9
  266. package/assets/favicons/manifest.json +31 -31
  267. package/assets/favicons/safari-pinned-tab.svg +35 -35
  268. package/assets/favicons/site.webmanifest +20 -20
  269. package/assets/js/components/accordion/accordion.component.js +15 -15
  270. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  271. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  272. package/assets/js/components/actionbar/actionbar.component.js +68 -68
  273. package/assets/js/components/actionbar/actionbar.component.min.js +2 -2
  274. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  275. package/assets/js/components/address-lookup/address-lookup.component.js +60 -60
  276. package/assets/js/components/address-lookup/address-lookup.component.min.js +4 -4
  277. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  278. package/assets/js/components/advanced-select/advanced-select.component.js +20 -20
  279. package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
  280. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
  281. package/assets/js/components/applied-filters/applied-filters.component.js +7 -7
  282. package/assets/js/components/applied-filters/applied-filters.component.min.js +2 -2
  283. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  284. package/assets/js/components/barchart/barchart.component.js +2 -2
  285. package/assets/js/components/barchart/barchart.component.min.js +3 -3
  286. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  287. package/assets/js/components/bento-grid/bento-grid.component.js +9 -9
  288. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  289. package/assets/js/components/bento-grid/bento-grid.component.min.js.map +1 -1
  290. package/assets/js/components/calendar/calendar.component.js +2 -2
  291. package/assets/js/components/calendar/calendar.component.min.js +2 -2
  292. package/assets/js/components/calendar/calendar.component.min.js.map +1 -1
  293. package/assets/js/components/card/card.component.js +3 -3
  294. package/assets/js/components/card/card.component.min.js +2 -2
  295. package/assets/js/components/card/card.component.min.js.map +1 -1
  296. package/assets/js/components/carousel/carousel.component.js +2 -2
  297. package/assets/js/components/carousel/carousel.component.min.js +4 -4
  298. package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
  299. package/assets/js/components/chart/chart.component.js +1 -1
  300. package/assets/js/components/collapsible-side/collapsible-side.component.js +20 -20
  301. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +4 -4
  302. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  303. package/assets/js/components/config/config.component.js +54 -54
  304. package/assets/js/components/config/config.component.min.js +2 -2
  305. package/assets/js/components/config/config.component.min.js.map +1 -1
  306. package/assets/js/components/content/content.component.js +9 -9
  307. package/assets/js/components/content/content.component.min.js +4 -4
  308. package/assets/js/components/content/content.component.min.js.map +1 -1
  309. package/assets/js/components/darkmode/darkmode.component.js +4 -4
  310. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  311. package/assets/js/components/darkmode/darkmode.component.min.js.map +1 -1
  312. package/assets/js/components/doughnutchart/doughnutchart.component.js +2 -2
  313. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +2 -2
  314. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
  315. package/assets/js/components/fileupload/fileupload.component.js +17 -17
  316. package/assets/js/components/fileupload/fileupload.component.min.js +2 -2
  317. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  318. package/assets/js/components/filter-card/filter-card.component.js +9 -9
  319. package/assets/js/components/filter-card/filter-card.component.min.js +5 -5
  320. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  321. package/assets/js/components/filterlist/filterlist.component.js +1 -1
  322. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  323. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -1
  324. package/assets/js/components/form/form.component.js +5 -5
  325. package/assets/js/components/form/form.component.min.js +1 -1
  326. package/assets/js/components/form/form.component.min.js.map +1 -1
  327. package/assets/js/components/header/header.component.js +53 -53
  328. package/assets/js/components/header/header.component.min.js +2 -2
  329. package/assets/js/components/header/header.component.min.js.map +1 -1
  330. package/assets/js/components/inline-edit/inline-edit.component.js +16 -16
  331. package/assets/js/components/inline-edit/inline-edit.component.min.js +4 -4
  332. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  333. package/assets/js/components/input/input.component.js +11 -11
  334. package/assets/js/components/input/input.component.min.js +1 -1
  335. package/assets/js/components/input/input.component.min.js.map +1 -1
  336. package/assets/js/components/input-range/input-range.component.js +9 -9
  337. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  338. package/assets/js/components/input-range/input-range.component.min.js.map +1 -1
  339. package/assets/js/components/marketing/marketing.component.js +10 -10
  340. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  341. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  342. package/assets/js/components/menu/menu.component.js +6 -6
  343. package/assets/js/components/menu/menu.component.min.js +1 -1
  344. package/assets/js/components/menu/menu.component.min.js.map +1 -1
  345. package/assets/js/components/milestone/milestone.component.js +2 -2
  346. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  347. package/assets/js/components/milestone/milestone.component.min.js.map +1 -1
  348. package/assets/js/components/milestone-group/milestone-group.component.js +2 -2
  349. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  350. package/assets/js/components/milestone-group/milestone-group.component.min.js.map +1 -1
  351. package/assets/js/components/modal/modal.component.js +25 -25
  352. package/assets/js/components/modal/modal.component.min.js +4 -4
  353. package/assets/js/components/modal/modal.component.min.js.map +1 -1
  354. package/assets/js/components/multi-step/multi-step.component.js +1 -1
  355. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  356. package/assets/js/components/multi-step/multi-step.component.min.js.map +1 -1
  357. package/assets/js/components/multi-step-modal/multi-step-modal.component.js +12 -12
  358. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +4 -4
  359. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js.map +1 -1
  360. package/assets/js/components/multiselect/multiselect.component.js +21 -21
  361. package/assets/js/components/multiselect/multiselect.component.min.js +4 -4
  362. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  363. package/assets/js/components/nav/nav.component.js +45 -45
  364. package/assets/js/components/nav/nav.component.min.js +2 -2
  365. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  366. package/assets/js/components/notification/notification.component.js +14 -14
  367. package/assets/js/components/notification/notification.component.min.js +1 -1
  368. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  369. package/assets/js/components/pagination/pagination.component.js +39 -39
  370. package/assets/js/components/pagination/pagination.component.min.js +3 -3
  371. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  372. package/assets/js/components/password/password.component.js +11 -11
  373. package/assets/js/components/password/password.component.min.js +1 -1
  374. package/assets/js/components/password/password.component.min.js.map +1 -1
  375. package/assets/js/components/popover/popover.component.js +8 -8
  376. package/assets/js/components/popover/popover.component.min.js +1 -1
  377. package/assets/js/components/popover/popover.component.min.js.map +1 -1
  378. package/assets/js/components/rank/rank.component.js +360 -360
  379. package/assets/js/components/rank/rank.component.min.js +1 -1
  380. package/assets/js/components/rank/rank.component.min.js.map +1 -1
  381. package/assets/js/components/rankings/rankings.component.js +18 -18
  382. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  383. package/assets/js/components/rankings/rankings.component.min.js.map +1 -1
  384. package/assets/js/components/rating/rating.component.js +10 -10
  385. package/assets/js/components/rating/rating.component.min.js +1 -1
  386. package/assets/js/components/rating/rating.component.min.js.map +1 -1
  387. package/assets/js/components/record-card/record-card.component.js +2 -2
  388. package/assets/js/components/record-card/record-card.component.min.js +2 -2
  389. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  390. package/assets/js/components/search/search.component.js +19 -19
  391. package/assets/js/components/search/search.component.min.js +1 -1
  392. package/assets/js/components/search/search.component.min.js.map +1 -1
  393. package/assets/js/components/slider/slider.component.js +12 -12
  394. package/assets/js/components/slider/slider.component.min.js +2 -2
  395. package/assets/js/components/slider/slider.component.min.js.map +1 -1
  396. package/assets/js/components/split-button/split-button.component.js +19 -19
  397. package/assets/js/components/split-button/split-button.component.min.js +3 -3
  398. package/assets/js/components/split-button/split-button.component.min.js.map +1 -1
  399. package/assets/js/components/std-address-lookup/std-address-lookup.component.js +114 -114
  400. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +4 -4
  401. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
  402. package/assets/js/components/table/table.component.js +17 -17
  403. package/assets/js/components/table/table.component.min.js +1 -1
  404. package/assets/js/components/table/table.component.min.js.map +1 -1
  405. package/assets/js/components/table-ajax/table-ajax.component.js +17 -17
  406. package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
  407. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  408. package/assets/js/components/table-basic/table-basic.component.js +16 -16
  409. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  410. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  411. package/assets/js/components/table-no-submit/table-no-submit.component.js +17 -17
  412. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
  413. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  414. package/assets/js/components/table-submit/table-submit.component.js +17 -17
  415. package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
  416. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  417. package/assets/js/components/tabs/tabs.component.js +31 -18
  418. package/assets/js/components/tabs/tabs.component.min.js +4 -4
  419. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  420. package/assets/js/components/tag/tag.component.js +14 -14
  421. package/assets/js/components/tag/tag.component.min.js +4 -4
  422. package/assets/js/components/tag/tag.component.min.js.map +1 -1
  423. package/assets/js/components/tooltip/tooltip.component.js +9 -9
  424. package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
  425. package/assets/js/components/tooltip/tooltip.component.min.js.map +1 -1
  426. package/assets/js/components/video/video.component.js +67 -0
  427. package/assets/js/components/video/video.component.min.js +21 -0
  428. package/assets/js/components/video/video.component.min.js.map +1 -0
  429. package/assets/js/components/video-card/video-card.component.js +53 -70
  430. package/assets/js/components/video-card/video-card.component.min.js +15 -7
  431. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  432. package/assets/js/components/video-modal/video-modal.component.js +24 -58
  433. package/assets/js/components/video-modal/video-modal.component.min.js +12 -6
  434. package/assets/js/components/video-modal/video-modal.component.min.js.map +1 -1
  435. package/assets/js/components/word-count/word-count.component.js +1 -1
  436. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  437. package/assets/js/components/word-count/word-count.component.min.js.map +1 -1
  438. package/assets/js/modules/card.module.js +14 -14
  439. package/assets/js/modules/chart.js +1 -1
  440. package/assets/js/modules/chart.module.js +5 -5
  441. package/assets/js/modules/helper.test.js +2 -2
  442. package/assets/js/modules/integration-tests.js +3 -3
  443. package/assets/js/modules/modal.js +4 -2
  444. package/assets/js/modules/table.js +3 -3
  445. package/assets/js/modules/tabs.js +1 -1
  446. package/assets/js/modules/videos.js +42 -0
  447. package/assets/js/scripts.bundle.js +1 -1
  448. package/assets/js/scripts.bundle.js.map +1 -1
  449. package/assets/js/scripts.bundle.min.js +1 -1
  450. package/assets/js/scripts.bundle.min.js.map +1 -1
  451. package/assets/js/scripts.js +4 -4
  452. package/assets/sass/_bs_grid.scss +41 -41
  453. package/assets/sass/_bs_utilities.scss +51 -51
  454. package/assets/sass/_components.scss +162 -162
  455. package/assets/sass/_corefiles.scss +31 -31
  456. package/assets/sass/_elements.scss +30 -30
  457. package/assets/sass/_fonts.scss +28 -28
  458. package/assets/sass/_func.scss +2 -2
  459. package/assets/sass/_functions/bs_functions.scss +487 -487
  460. package/assets/sass/_functions/bs_mixins.scss +2103 -2103
  461. package/assets/sass/_functions/bs_utilities.scss +922 -922
  462. package/assets/sass/_functions/bs_variables.scss +1701 -1703
  463. package/assets/sass/_functions/functions.scss +48 -48
  464. package/assets/sass/_functions/mixins.scss +1 -1
  465. package/assets/sass/_grid.scss +320 -320
  466. package/assets/sass/_print.scss +64 -64
  467. package/assets/sass/_utilities.scss +35 -35
  468. package/assets/sass/components/actionbar.component.scss +421 -421
  469. package/assets/sass/components/actionbar.global.scss +115 -115
  470. package/assets/sass/components/address-lookup.component.scss +161 -161
  471. package/assets/sass/components/address-lookup.preload.scss +90 -90
  472. package/assets/sass/components/applied-filters.scss +19 -19
  473. package/assets/sass/components/barchart.component.scss +347 -347
  474. package/assets/sass/components/bento-grid.component.scss +109 -109
  475. package/assets/sass/components/bento-grid.global.scss +248 -248
  476. package/assets/sass/components/calendar.component.scss +1272 -1272
  477. package/assets/sass/components/calendar.config.scss +423 -423
  478. package/assets/sass/components/card.component.scss +187 -182
  479. package/assets/sass/components/card.module.scss +154 -151
  480. package/assets/sass/components/carousel.component.scss +631 -631
  481. package/assets/sass/components/carousel.config.scss +84 -84
  482. package/assets/sass/components/charts.config.scss +86 -86
  483. package/assets/sass/components/charts.module.scss +588 -588
  484. package/assets/sass/components/charts.scss +1298 -1298
  485. package/assets/sass/components/collapsible-side.scss +307 -307
  486. package/assets/sass/components/config.component.scss +235 -235
  487. package/assets/sass/components/content.component.scss +18 -18
  488. package/assets/sass/components/darkmode.component.scss +20 -20
  489. package/assets/sass/components/doughnutchart.component.scss +206 -206
  490. package/assets/sass/components/fileupload.scss +162 -162
  491. package/assets/sass/components/filter-card.component.scss +99 -99
  492. package/assets/sass/components/header.scss +251 -256
  493. package/assets/sass/components/inline-edit.preload.scss +203 -203
  494. package/assets/sass/components/inline-edit.scss +40 -40
  495. package/assets/sass/components/input-range.component.scss +46 -46
  496. package/assets/sass/components/input.component.scss +101 -101
  497. package/assets/sass/components/marketing.component.scss +65 -65
  498. package/assets/sass/components/menu.component.scss +161 -190
  499. package/assets/sass/components/menu.global.scss +82 -82
  500. package/assets/sass/components/milestone.scss +216 -216
  501. package/assets/sass/components/modal.component.scss +252 -252
  502. package/assets/sass/components/multi-step-modal.component.scss +255 -255
  503. package/assets/sass/components/multi-step-modal.global.scss +92 -92
  504. package/assets/sass/components/multi-step.component.scss +144 -144
  505. package/assets/sass/components/multiselect.preload.scss +8 -8
  506. package/assets/sass/components/multiselect.scss +238 -238
  507. package/assets/sass/components/nav.component.scss +718 -718
  508. package/assets/sass/components/nav.docs.scss +55 -55
  509. package/assets/sass/components/nav.global.scss +870 -870
  510. package/assets/sass/components/nav.preload.scss +54 -54
  511. package/assets/sass/components/notification.scss +218 -218
  512. package/assets/sass/components/pagination.scss +237 -237
  513. package/assets/sass/components/password.component.scss +56 -56
  514. package/assets/sass/components/popover.component.scss +28 -28
  515. package/assets/sass/components/property-searchbar.scss +139 -139
  516. package/assets/sass/components/rank.component.scss +275 -275
  517. package/assets/sass/components/rankings.component.scss +70 -70
  518. package/assets/sass/components/rankings.global.scss +140 -140
  519. package/assets/sass/components/rating.component.css +211 -211
  520. package/assets/sass/components/record-card.component.scss +191 -191
  521. package/assets/sass/components/slider.scss +127 -127
  522. package/assets/sass/components/snapshot.scss +65 -65
  523. package/assets/sass/components/split-button.component.scss +83 -83
  524. package/assets/sass/components/stepper.scss +157 -157
  525. package/assets/sass/components/table-basic.component.scss +136 -136
  526. package/assets/sass/components/table-basic.global.scss +676 -676
  527. package/assets/sass/components/table.component.scss +51 -51
  528. package/assets/sass/components/table.global.scss +398 -398
  529. package/assets/sass/components/tabs.component.scss +34 -9
  530. package/assets/sass/components/tabs.config.scss +258 -254
  531. package/assets/sass/components/tag.component.scss +59 -59
  532. package/assets/sass/components/tag.preload.scss +20 -20
  533. package/assets/sass/components/testimonial.scss +125 -125
  534. package/assets/sass/components/timeline.scss +92 -92
  535. package/assets/sass/components/tooltip.component.scss +148 -148
  536. package/assets/sass/components/video-card.component.scss +49 -75
  537. package/assets/sass/components/video-modal.component.scss +26 -24
  538. package/assets/sass/components/video.component.scss +75 -0
  539. package/assets/sass/components/word-count.component.scss +26 -26
  540. package/assets/sass/core.scss +4 -4
  541. package/assets/sass/elements/admin-panel.css +310 -310
  542. package/assets/sass/elements/badge-tag.css +101 -101
  543. package/assets/sass/elements/brand.css +80 -80
  544. package/assets/sass/elements/button__group.css +135 -135
  545. package/assets/sass/elements/buttons--action.css +71 -54
  546. package/assets/sass/elements/buttons--compact.css +168 -168
  547. package/assets/sass/elements/{buttons--global.scss → buttons--global.css} +239 -246
  548. package/assets/sass/elements/{buttons--secondary.scss → buttons--secondary.css} +18 -24
  549. package/assets/sass/elements/{buttons--special.scss → buttons--special.css} +164 -171
  550. package/assets/sass/elements/{buttons--tertiary.scss → buttons--tertiary.css} +51 -57
  551. package/assets/sass/elements/buttons.scss +9 -14
  552. package/assets/sass/elements/code.css +45 -45
  553. package/assets/sass/elements/container.scss +118 -155
  554. package/assets/sass/elements/{details.scss → details.css} +224 -227
  555. package/assets/sass/elements/dialog.scss +75 -86
  556. package/assets/sass/elements/{dropdown.scss → dropdown.css} +85 -87
  557. package/assets/sass/elements/{feature.scss → feature.css} +174 -180
  558. package/assets/sass/elements/forms.scss +1337 -1338
  559. package/assets/sass/elements/highlight.css +76 -76
  560. package/assets/sass/elements/hr.css +41 -41
  561. package/assets/sass/elements/icons.css +48 -48
  562. package/assets/sass/elements/input.scss +212 -212
  563. package/assets/sass/elements/{label.scss → label.css} +20 -20
  564. package/assets/sass/elements/links--collapsible-side.scss +130 -0
  565. package/assets/sass/elements/links--global.scss +155 -0
  566. package/assets/sass/elements/links--video.scss +73 -0
  567. package/assets/sass/elements/links.scss +5 -348
  568. package/assets/sass/elements/lists--breadcrumbs.scss +26 -26
  569. package/assets/sass/elements/lists--steps.css +171 -171
  570. package/assets/sass/elements/lists--tick-list.scss +112 -112
  571. package/assets/sass/elements/lists.scss +99 -99
  572. package/assets/sass/elements/media.css +20 -20
  573. package/assets/sass/elements/modal.scss +411 -415
  574. package/assets/sass/elements/popover.scss +259 -259
  575. package/assets/sass/elements/prefix.scss +139 -139
  576. package/assets/sass/elements/progress.scss +208 -214
  577. package/assets/sass/elements/table.element.scss +144 -144
  578. package/assets/sass/elements/{textarea.scss → textarea.css} +84 -96
  579. package/assets/sass/elements/{toggle-button.scss → toggle-button.css} +49 -55
  580. package/assets/sass/elements/tooltips.scss +152 -151
  581. package/assets/sass/elements/type.css +166 -166
  582. package/assets/sass/email.scss +68 -68
  583. package/assets/sass/error.scss +31 -33
  584. package/assets/sass/foundations/animations.scss +2 -2
  585. package/assets/sass/foundations/colours.scss +104 -104
  586. package/assets/sass/foundations/reboot.scss +166 -166
  587. package/assets/sass/foundations/root.scss +269 -269
  588. package/assets/sass/main.scss +7 -7
  589. package/assets/sass/templates/auth.scss +106 -106
  590. package/assets/sass/templates/form.scss +95 -95
  591. package/assets/sass/utilities/{align.scss → align.css} +24 -24
  592. package/assets/sass/utilities/{border.scss → border.css} +65 -68
  593. package/assets/sass/utilities/{clearfix.scss → clearfix.css} +8 -8
  594. package/assets/sass/utilities/colours.scss +43 -43
  595. package/assets/sass/utilities/{columns.scss → columns.css} +61 -61
  596. package/assets/sass/utilities/display.scss +89 -89
  597. package/assets/sass/utilities/{fixed.scss → fixed.css} +16 -16
  598. package/assets/sass/utilities/flex.scss +291 -291
  599. package/assets/sass/utilities/{font-awesome-iso-fallbacks.scss → font-awesome-iso-fallbacks.css} +43 -43
  600. package/assets/sass/utilities/gap.css +26 -0
  601. package/assets/sass/utilities/{gradients.scss → gradients.css} +39 -39
  602. package/assets/sass/utilities/{js-display.scss → js-display.css} +12 -12
  603. package/assets/sass/utilities/{line-clamp.scss → line-clamp.css} +24 -24
  604. package/assets/sass/utilities/margins.scss +74 -74
  605. package/assets/sass/utilities/max-height.scss +93 -93
  606. package/assets/sass/utilities/{opacity.scss → opacity.css} +20 -20
  607. package/assets/sass/utilities/order.css +104 -0
  608. package/assets/sass/utilities/{overflow.scss → overflow.css} +16 -16
  609. package/assets/sass/utilities/paddings.scss +33 -33
  610. package/assets/sass/utilities/{pointer-events.scss → pointer-events.css} +8 -8
  611. package/assets/sass/utilities/position.css +68 -0
  612. package/assets/sass/utilities/{ratio.scss → ratio.css} +33 -33
  613. package/assets/sass/utilities/{rounded.scss → rounded.css} +56 -56
  614. package/assets/sass/utilities/{shadow.scss → shadow.css} +7 -7
  615. package/assets/sass/utilities/{sizes.scss → sizes.css} +92 -92
  616. package/assets/sass/utilities/{sticky.scss → sticky.css} +38 -38
  617. package/assets/sass/utilities/{text-truncate.scss → text-truncate.css} +6 -6
  618. package/assets/sass/utilities/{text.scss → text.css} +190 -190
  619. package/assets/sass/utilities/{visible.scss → visible.css} +8 -8
  620. package/assets/sass/utilities/{visually-hidden.scss → visually-hidden.css} +13 -13
  621. package/assets/sass/utilities/wider-colours.scss +8 -8
  622. package/assets/svg/illustrations/table.svg +165 -165
  623. package/assets/svg/logo.svg +56 -56
  624. package/assets/ts/components/accordion/accordion.component.ts +77 -77
  625. package/assets/ts/components/actionbar/actionbar.component.ts +567 -567
  626. package/assets/ts/components/address-lookup/address-lookup.component.ts +672 -672
  627. package/assets/ts/components/advanced-select/advanced-select.component.ts +116 -116
  628. package/assets/ts/components/applied-filters/applied-filters.component.ts +37 -37
  629. package/assets/ts/components/bento-grid/bento-grid.component.ts +88 -88
  630. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +165 -165
  631. package/assets/ts/components/config/config.component.ts +699 -699
  632. package/assets/ts/components/content/content.component.ts +78 -78
  633. package/assets/ts/components/darkmode/darkmode.component.ts +108 -108
  634. package/assets/ts/components/fileupload/fileupload.component.ts +74 -74
  635. package/assets/ts/components/filter-card/filter-card.component.ts +106 -106
  636. package/assets/ts/components/form/form.component.ts +102 -102
  637. package/assets/ts/components/header/header.component.ts +97 -97
  638. package/assets/ts/components/inline-edit/inline-edit.component.ts +212 -212
  639. package/assets/ts/components/input/input.component.ts +278 -278
  640. package/assets/ts/components/input-range/input-range.component.ts +78 -78
  641. package/assets/ts/components/marketing/marketing.component.ts +44 -44
  642. package/assets/ts/components/menu/menu.component.ts +212 -212
  643. package/assets/ts/components/modal/modal.component.ts +184 -184
  644. package/assets/ts/components/multi-step-modal/multi-step-modal.component.ts +304 -304
  645. package/assets/ts/components/multiselect/multiselect.component.ts +349 -349
  646. package/assets/ts/components/nav/nav.component.ts +369 -369
  647. package/assets/ts/components/notification/notification.component.ts +172 -172
  648. package/assets/ts/components/pagination/pagination.component.ts +213 -213
  649. package/assets/ts/components/password/password.component.ts +118 -118
  650. package/assets/ts/components/popover/popover.component.ts +50 -50
  651. package/assets/ts/components/rank/rank.component.ts +394 -394
  652. package/assets/ts/components/rankings/rankings.component.ts +79 -79
  653. package/assets/ts/components/rating/rating.component.ts +86 -86
  654. package/assets/ts/components/search/search.component.ts +244 -244
  655. package/assets/ts/components/slider/slider.component.ts +170 -170
  656. package/assets/ts/components/split-button/split-button.component.ts +63 -63
  657. package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +1919 -1919
  658. package/assets/ts/components/table/table.component.ts +94 -94
  659. package/assets/ts/components/table-ajax/table-ajax.component.ts +70 -70
  660. package/assets/ts/components/table-basic/table-basic.component.ts +56 -56
  661. package/assets/ts/components/table-no-submit/table-no-submit.component.ts +130 -130
  662. package/assets/ts/components/table-submit/table-submit.component.ts +71 -71
  663. package/assets/ts/components/tabs/tabs.component.ts +70 -51
  664. package/assets/ts/components/tag/tag.component.ts +104 -104
  665. package/assets/ts/components/tooltip/tooltip.component.ts +98 -98
  666. package/assets/ts/components/video/video.component.ts +74 -0
  667. package/assets/ts/components/video-card/video-card.component.ts +129 -150
  668. package/assets/ts/components/video-modal/video-modal.component.ts +88 -137
  669. package/assets/ts/modules/advanced-select.ts +186 -186
  670. package/assets/ts/modules/applied-filters.ts +238 -238
  671. package/assets/ts/modules/card.module.ts +46 -46
  672. package/assets/ts/modules/chart.module.ts +594 -594
  673. package/assets/ts/modules/data-layer.md +71 -71
  674. package/assets/ts/modules/dialogs.ts +259 -259
  675. package/assets/ts/modules/dropdown.ts +216 -216
  676. package/assets/ts/modules/helper.test.ts +143 -143
  677. package/assets/ts/modules/helpers.ts +212 -212
  678. package/assets/ts/modules/integration-tests.ts +525 -525
  679. package/assets/ts/modules/modal.ts +45 -43
  680. package/assets/ts/modules/password.ts +82 -82
  681. package/assets/ts/modules/table.ts +1500 -1500
  682. package/assets/ts/modules/test.ts +22 -22
  683. package/assets/ts/modules/videos.ts +233 -176
  684. package/assets/ts/scripts.ts +111 -111
  685. package/dist/components.es.js +25 -25
  686. package/dist/components.umd.js +143 -113
  687. package/package.json +115 -116
  688. package/src/components/AdvancedSelect/AdvancedSelect.vue +28 -28
  689. package/src/components/Config/Config.vue +23 -23
  690. package/src/components/DarkMode/DarkMode.vue +19 -19
  691. package/src/components/Filterlist/Filterlist.vue +23 -23
  692. package/src/components/Form/Form.vue +22 -22
  693. package/src/components/Header/Header.vue +36 -36
  694. package/src/components/Input/Input.vue +22 -22
  695. package/src/components/InputRange/InputRange.vue +22 -22
  696. package/src/components/Modal/Modal.vue +22 -22
  697. package/src/components/MultiStepModal/MultiStepModal.vue +23 -23
  698. package/src/components/NoteFeed/NoteFeed.vue +82 -82
  699. package/src/components/Password/Password.vue +23 -23
  700. package/src/components/Popover/Popover.vue +22 -22
  701. package/src/components/PropertySearchbar/PropertySearchbar.vue +235 -235
  702. package/src/components/PropertySearchbar/README.md +25 -25
  703. package/src/components/Rating/Rating.vue +22 -22
  704. package/src/components/STDAddressLookup/STDAddressLookup.vue +22 -22
  705. package/src/components/Snapshot/Snapshot.vue +30 -30
  706. package/src/components/Tag/Tag.vue +22 -22
  707. package/src/components/Tooltip/Tooltip.vue +22 -22
  708. package/src/components/Video/Video.vue +22 -0
  709. package/src/components/VideoModal/VideoModal.vue +22 -22
  710. package/assets/sass/utilities/gap.scss +0 -8
  711. package/assets/sass/utilities/order.scss +0 -43
  712. package/assets/sass/utilities/position.scss +0 -52
@@ -1,1298 +1,1298 @@
1
- @use 'sass:map';
2
-
3
- @use '../_func' as *;
4
-
5
- $chart-colour-1: #1ebee6 !default;
6
- $chart-colour-2: #ffd2d2 !default;
7
- $chart-colour-3: #b4e6a5 !default;
8
- $chart-colour-4: #ffa500 !default;
9
- $chart-colour-5: #46003c !default;
10
- $chart-colour-6: #b4e6a5 !default;
11
- $chart-colour-7: #1ebee6 !default;
12
- $chart-colour-8: #ffd2d2 !default;
13
- $chart-colour-9: #9d9d9d !default;
14
- $chart-colour-10: #66838a !default;
15
-
16
- $chart-colors: ();
17
- $chart-colors: map.merge(
18
- (
19
- 1: $chart-colour-1,
20
- 2: $chart-colour-2,
21
- 3: $chart-colour-3,
22
- 4: $chart-colour-4,
23
- 5: $chart-colour-5,
24
- 6: $chart-colour-6,
25
- 7: $chart-colour-7,
26
- 8: $chart-colour-8,
27
- 9: $chart-colour-9,
28
- 10: $chart-colour-10,
29
- ),
30
- $chart-colors
31
- );
32
-
33
- $chart-height: 56.25% !default;
34
- $chart-height-lg: 42.86% !default;
35
-
36
- // Selectors
37
- $default-chart: 'input[type="radio"]:not([value="none"]):not([value="pie"]):checked ~ .chart__wrapper';
38
- $bar-chart: 'input[type=radio]:is([value="bar"],[value="comparison"]):not([value=none]):not([value=pie]):checked~.chart__wrapper';
39
-
40
- //$comparison-chart: 'input[type=radio][value="comparison"]:not([value=none]):not([value=pie]):checked~.chart__wrapper';
41
- //$comparison-chart-key: 'input[type=radio][value="comparison"]:not([value=none]):not([value=pie]):checked~.chart__key';
42
-
43
- $responsive-chart: 'input[type=radio][value="responsive"]:not([value=none]):not([value=pie]):checked~.chart__wrapper';
44
- $scatter-line-chart: 'input[type="radio"]:not([value="pie"]):is([value="line"],[value="scatter"],[value="bubble"],[value="radar"],[value="proportional"],[value="combo"]):checked ~ .chart__wrapper';
45
-
46
- $line-chart: 'input[type="radio"]:not([value="pie"])[value="line"]:checked ~ .chart__wrapper';
47
- //$bubble-chart: 'input[type="radio"]:not([value="none"]):not([value="pie"])[value="bubble"]:checked ~ .chart__wrapper';
48
- //$radar-chart: 'input[type="radio"]:not([value="none"]):not([value="pie"])[value="radar"]:checked ~ .chart__wrapper';
49
- //$proportional-chart: 'input[type="radio"]:not([value="none"]):not([value="pie"])[value="proportional"]:checked ~ .chart__wrapper';
50
- //$proportional-chart-key: 'input[type="radio"]:not([value="none"]):not([value="pie"])[value="proportional"]:checked ~ .chart__key';
51
- $pie-chart: 'input[type="radio"]:not([value="none"]):is([value="pie"],[value="polar"]):checked ~ .chart__wrapper';
52
- //$polar-chart: 'input[type="radio"]:not([value="none"])[value="polar"]:checked ~ .chart__wrapper';
53
- //$tree-chart: 'input[type="radio"]:not([value="none"])[value="treemap"]:checked ~ .chart__wrapper';
54
- //$tree-chart-key: 'input[type="radio"]:not([value="none"])[value="treemap"]:checked ~ .chart__key';
55
- //$dumbbell-chart: 'input[type="radio"]:not([value="none"])[value="dumbbell"]:checked ~ .chart__wrapper';
56
- //$waffle-chart: 'input[type="radio"]:not([value="none"])[value="waffle"]:checked ~ .chart__wrapper';
57
-
58
- // #region Basic setup - including: container setup, css vars
59
-
60
- ::slotted(table) {
61
- display: none !important;
62
- }
63
-
64
- .chart__outer {
65
- container-type: inline-size;
66
-
67
- // CSS vars that can be overwritten by declaring them without the -set on the end of the variable i.e. --chart-colour-1: red; would overwrite --chart-colour-1-set
68
- --body-colour-set: var(--body-colour, white);
69
- --text-colour-set: var(--text-colour, black);
70
- --chart-height-set: var(--chart-height, #{$chart-height});
71
- --chart-height-lg-set: var(--chart-height-lg, #{$chart-height-lg});
72
- --chart-height-resp: var(--chart-height-set);
73
- // Non-configurable css vars
74
- --index-below: -1;
75
- --index-base: 0;
76
- --index-focus: 2;
77
- --index-above: 10;
78
- --index-floating: 100;
79
- --index-menu: 200;
80
- --index-overlay: 1000;
81
- --key-label-width: 100%;
82
- --label-size: 0.75rem;
83
- --pie-size: calc(50% - 1.4rem);
84
- --line-thickness: 1px;
85
- --yaxis-width: auto;
86
- --yaxis-point-display: block;
87
- --yaxis-last-point-transform: translate(0, -50%);
88
- --bar-gap: min(10%, 0.75rem);
89
-
90
- margin-bottom: 2rem;
91
- display: flex;
92
- flex-direction: column;
93
-
94
- @each $index, $value in $chart-colors {
95
- --chart-colour-#{$index}-set: var(--chart-colour-#{$index}, #{$value});
96
- }
97
-
98
- tbody {
99
- --chart-direction: 360deg;
100
- --chart-day-bg-pos: 100% calc(var(--single-day) * 7);
101
- }
102
-
103
- &:has(.chart__options) {
104
- position: relative;
105
- padding-top: 1.5rem;
106
- }
107
-
108
- > * {
109
- display: block;
110
- order: 2;
111
- }
112
-
113
- > figcaption {
114
- display: contents;
115
-
116
- p:not(.chart__strapline, .chart__title) {
117
- margin-bottom: 0.25rem;
118
- font-size: var(--label-size);
119
- }
120
-
121
- > * {
122
- order: 3;
123
- }
124
-
125
- > :is(.chart__title, .chart__strapline) {
126
- order: 1;
127
- }
128
- }
129
-
130
- @container (max-width: 36em) {
131
- :has(tr:nth-child(5) td:nth-child(4)),
132
- :has(tr:nth-child(10)) {
133
- --yaxis-width: 0;
134
- --yaxis-point-display: none;
135
- --yaxis-last-point-transform: translate(0, -100%);
136
- --bar-gap: 0;
137
- }
138
- }
139
- @container (max-width: 62em) {
140
- :has(tr:nth-child(10)) {
141
- --bar-gap: 0;
142
- }
143
- }
144
- @container (min-width: 36em) {
145
- .chart__wrapper {
146
- --chart-height-resp: var(--chart-height-lg-set);
147
- --pie-size: calc(33.333% - 1.4rem);
148
- --line-thickness: 0.8px;
149
- --yaxis-width: auto;
150
- --yaxis-point-display: block;
151
- --yaxis-last-point-transform: translate(0, -50%);
152
- }
153
- }
154
-
155
- @container (min-width: 62em) {
156
- .chart__wrapper {
157
- --label-size: 0.875rem; /* 14/16 */
158
- --pie-size: calc(25% - 1.5rem);
159
- --line-thickness: 0.5px;
160
- }
161
- }
162
- }
163
- // #endregion
164
-
165
- // #region figure caption elements
166
- .chart__title {
167
- font-size: 2rem;
168
- font-weight: 700;
169
- margin-bottom: 0.25rem;
170
- }
171
-
172
- .chart__strapline {
173
- margin-bottom: 1rem;
174
- }
175
-
176
- .chart__source {
177
- border-top: 1px solid black;
178
- position: relative;
179
- padding-top: 0.25rem;
180
- }
181
- // #endregion
182
-
183
- // #region Apply chart colours
184
- @for $i from 1 to 10 {
185
- .chart__key .key:nth-child(10n - #{10 - $i}),
186
- .chart__outer table tbody tr td:not(:first-child):nth-child(10n - #{10 - ($i+1)}) {
187
- --chart-colour: var(#{'--chart-colour-' + $i + '-set'});
188
- }
189
-
190
- input:is([value='line'], [value='radar'], [value='combo'], [value='proportional']):checked
191
- ~ .chart__wrapper
192
- .line:nth-child(10n - #{10 - $i}) {
193
- color: var(#{'--chart-colour-' + $i + '-set'});
194
- stroke: currentColor;
195
- fill: currentColor;
196
- z-index: #{10 - $i};
197
- }
198
- input:is([value='pie'], [value='polar']):checked ~ .chart__wrapper .pie path:nth-child(10n - #{10 - $i}) {
199
- fill: var(#{'--chart-colour-' + $i + '-set'});
200
- }
201
- }
202
-
203
- .chart__key .key:nth-child(10n),
204
- input[type='radio']:not([value='none']):not([value='pie']):checked
205
- ~ .chart__outer
206
- table
207
- tbody
208
- tr
209
- td:not(:first-child):nth-child(10n + 1) {
210
- --chart-colour: var(#{'--chart-colour-10-set'});
211
- }
212
- // #endregion
213
-
214
- // #region Chart type switcher
215
- .chart__outer > [type='radio'] {
216
- opacity: 0;
217
- position: absolute;
218
- pointer-events: none;
219
- }
220
-
221
- .chart__options {
222
- &:has(span:first-child:last-child) {
223
- display: none;
224
- }
225
-
226
- position: absolute;
227
- display: block;
228
- width: fit-content;
229
- z-index: var(--index-above);
230
- top: 0;
231
- right: 0;
232
- background-color: var(--body-colour-set);
233
-
234
- > span:first-child {
235
- text-align: right;
236
- display: block;
237
- height: 1.5rem;
238
-
239
- &:before {
240
- content: '';
241
- height: 1rem;
242
- width: 1rem;
243
- background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3e%3cpath d='M31 19.3v-6.5l-3.9-.5c-.1-.4-.3-.9-.5-1.5l2.4-3-4.7-4.7-3.1 2.4c-.4-.2-.9-.4-1.5-.6L19.2 1h-6.5l-.5 3.9c-.6.2-1.1.4-1.5.6l-3-2.4L3 7.7l2.4 3c-.2.5-.4 1.1-.5 1.5l-3.9.5v6.5l3.9.5c.2.5.3 1 .6 1.5l-2.4 3 4.7 4.7 3-2.3c.4.2 1 .5 1.5.6l.5 3.8h6.5l.5-3.8c.5-.2 1.1-.4 1.5-.6l3 2.3 4.7-4.7-2.4-3 .6-1.5 3.8-.4zm-2.1-1.9-3.4.5c-.3 1.5-.8 2.7-1.6 3.6l2.1 2.6-1.9 2-2.6-2c-1 .7-2.5 1.3-3.7 1.5l-.5 3.3h-2.6l-.5-3.3c-1.2-.2-2.7-.8-3.7-1.5l-2.6 2-1.9-2 2.1-2.6c-.8-.9-1.2-2.1-1.6-3.6l-3.4-.5v-2.7l3.5-.5c.2-1.1.6-2.3 1.4-3.7L6 7.9l1.9-2L10.6 8c.8-.7 1.7-1.1 3.6-1.6l.5-3.4h2.6l.5 3.4c1.9.5 2.8.9 3.6 1.6l2.7-2L26 8l-2 2.5c.8 1.4 1.2 2.6 1.4 3.7l3.5.5v2.7zM16 20.8c-2.7 0-4.7-2-4.7-4.8 0-2.7 2-4.7 4.7-4.7s4.7 2 4.7 4.7-2 4.8-4.7 4.8zm0 2.2c3.9 0 6.9-3 6.9-7 0-3.9-3-6.9-6.9-6.9s-6.9 3-6.9 6.9c0 4 3 7 6.9 7z'%3e%3c/path%3e%3c/svg%3e");
244
- background-size: 100% 100%;
245
- display: inline-block;
246
-
247
- vertical-align: bottom;
248
- margin-bottom: 0.1875rem; /* 3 */
249
- margin-right: 0.375rem; /* 6 */
250
- }
251
- }
252
-
253
- > *:not(:first-child) {
254
- display: none;
255
- }
256
-
257
- label {
258
- cursor: pointer;
259
-
260
- &:hover {
261
- background: var(--label-bg, rgb(220, 220, 220));
262
- }
263
- }
264
-
265
- &:hover {
266
- outline: 3px solid black;
267
-
268
- box-shadow: 0 0 0 calc(0.125rem + 0.125rem) #ffffff;
269
- outline-offset: calc(0.125rem + 0.125rem);
270
-
271
- > * {
272
- display: block;
273
- }
274
- }
275
-
276
- .chart__options__title {
277
- margin-top: 1rem;
278
- font-weight: bold;
279
- }
280
- }
281
-
282
- .chart > [type='radio']:focus ~ .chart__switcher {
283
- label {
284
- display: block;
285
- }
286
- }
287
- // #endregion
288
-
289
- // #region Chart key
290
- .chart__outer > input[type='checkbox'] {
291
- opacity: 0;
292
- position: absolute;
293
- pointer-events: none;
294
- }
295
-
296
- .chart__key {
297
- padding: 0 0 0 0;
298
- margin-bottom: 1.5rem;
299
- //background: var(--colour-key-bg, rgb(220, 220, 220));
300
- display: flex;
301
- overflow: auto;
302
- scroll-snap-type: x mandatory;
303
- scroll-padding: 0.75rem;
304
- justify-content: flex-end;
305
- gap: 0.5rem;
306
-
307
- .key {
308
- font-size: 1rem !important;
309
- margin: 0;
310
-
311
- &:before {
312
- content: '';
313
- height: 0.8em;
314
- width: 0.8em;
315
- margin-right: 0.3em;
316
- background-color: var(--chart-colour);
317
- display: inline-block;
318
- border-radius: 50%;
319
- }
320
-
321
- /*
322
- display: inline-block;
323
- padding: 0.5rem;
324
- margin-right: 0.75rem;
325
- margin-bottom: 0.75rem;
326
- background: white;
327
- white-space: nowrap;
328
- cursor: pointer;
329
- scroll-snap-align: start;
330
-
331
- &:hover,
332
- &:focus-within {
333
- outline: 3px solid var(--chart-colour);
334
- }
335
- */
336
-
337
- &[data-label='Min'],
338
- &[data-label='Max'] {
339
- display: none;
340
- }
341
-
342
- .chart__total {
343
- display: none;
344
- }
345
- }
346
- }
347
- // #endregion
348
-
349
- // #region Hide data sets
350
- .chart__outer > input[type='checkbox']:not(:checked) ~ .chart__key .key {
351
- opacity: 0.25;
352
- }
353
-
354
- .chart__outer > input[type='checkbox']:not(:checked) ~ .chart__wrapper table tbody tr td:not(:first-child) {
355
- display: none;
356
- }
357
-
358
- .chart__outer > input[type='checkbox']:not(:checked) ~ .chart__wrapper :is(.chart__lines, .radar) .line {
359
- display: none !important;
360
- }
361
-
362
- @for $i from 1 to 10 {
363
- .chart__outer > input[type='checkbox']:nth-of-type(#{$i}):focus ~ .chart__key .key:nth-of-type(#{$i}) {
364
- //outline: 3px solid var(--chart-colour);
365
- }
366
-
367
- .chart__outer > input[type='checkbox']:nth-of-type(#{$i}):not(:checked) ~ .chart__key .key:nth-of-type(#{$i}) {
368
- opacity: 1;
369
- }
370
-
371
- .chart__outer
372
- > input[type='checkbox']:nth-of-type(#{$i}):not(:checked)
373
- ~ .chart__wrapper
374
- table
375
- tbody
376
- tr
377
- td:not(:first-child):nth-child(#{$i + 1}) {
378
- display: block;
379
- }
380
-
381
- input:nth-of-type(#{$i}):not(:checked) ~ .chart__wrapper :is(.chart__lines, .radar) .line:nth-child(#{$i}) {
382
- display: block !important;
383
- }
384
- }
385
- // #endregion
386
-
387
- // #region Second table
388
- .chart:has(.chart__outer) > table {
389
- order: 10;
390
- display: none;
391
- }
392
- // #endregion Second table
393
-
394
- // #region Default column chart (Also applies to line chart)
395
- .chart__wrapper {
396
- display: block;
397
- display: flex;
398
- flex-direction: row;
399
- position: relative;
400
- margin-bottom: 1rem;
401
-
402
- .chart__yaxis {
403
- display: flex;
404
- flex-direction: column-reverse;
405
- width: var(--yaxis-width);
406
-
407
- .axis__point {
408
- bottom: var(--percent);
409
- position: relative;
410
- height: 0;
411
- white-space: nowrap;
412
-
413
- &:not(:last-child) {
414
- display: var(--yaxis-point-display);
415
- }
416
-
417
- span {
418
- display: block;
419
- transform: translate(0, -50%);
420
- padding-right: 0.25rem;
421
- text-align: right;
422
- font-size: var(--label-size);
423
- }
424
-
425
- &:last-child span {
426
- transform: var(--yaxis-last-point-transform);
427
- }
428
- }
429
- }
430
-
431
- .chart__xaxis {
432
- margin-bottom: 1rem;
433
- display: flex;
434
- flex-direction: column-reverse;
435
- width: 100%;
436
- position: absolute;
437
- left: 0;
438
- bottom: -1rem;
439
-
440
- .axis__point {
441
- left: var(--percent);
442
- width: 1px;
443
- position: absolute;
444
- height: 0;
445
- white-space: nowrap;
446
-
447
- span {
448
- display: block;
449
- transform: translate(-50%, 0%);
450
- text-align: center;
451
- font-size: var(--label-size);
452
- position: absolute;
453
- left: 50%;
454
- }
455
- }
456
- }
457
-
458
- .chart__guidelines {
459
- position: absolute;
460
- top: 0;
461
- left: 0;
462
- width: 100%;
463
- height: 100%;
464
- display: flex;
465
- flex-direction: column-reverse;
466
- pointer-events: none;
467
-
468
- .guideline {
469
- bottom: var(--percent);
470
- position: absolute;
471
- right: 0;
472
- width: 100%;
473
- height: 0px;
474
- margin-bottom: -1px;
475
- border-bottom: 1px dashed #eeeeee;
476
- pointer-events: none;
477
- z-index: var(--index-below);
478
- //overflow: hidden;
479
-
480
- &:not(.guideline--target) span {
481
- display: none;
482
- }
483
- }
484
-
485
- .guideline--target {
486
- border-bottom: 1px dashed #000000;
487
- z-index: var(--index-above);
488
- text-shadow: 1px solid white;
489
- overflow: visible;
490
-
491
- span {
492
- position: absolute;
493
- bottom: 0;
494
- font-size: var(--label-size);
495
- text-shadow: 1px 1px 2px rgba(255, 255, 255, 1);
496
- background: rgba(255, 255, 255, 0.6);
497
- }
498
- }
499
- [data-value='0'] {
500
- border-bottom: 1px solid var(--colour-primary);
501
-
502
- &:not(:first-child) {
503
- border-bottom: 1px dashed var(--colour-primary);
504
- }
505
- }
506
- }
507
-
508
- .chart {
509
- position: relative;
510
- flex-grow: 1;
511
- }
512
-
513
- table {
514
- display: block;
515
- width: 100% !important;
516
- padding-top: var(--chart-height-resp); // 16:9 ratio
517
- position: relative;
518
- margin-bottom: 0;
519
- overflow: visible;
520
-
521
- thead {
522
- display: none;
523
- }
524
-
525
- tbody {
526
- display: flex;
527
- position: absolute;
528
- width: 100%;
529
- height: 100%;
530
- top: 0;
531
- left: 0;
532
- flex-direction: row;
533
- border: none;
534
- }
535
-
536
- tbody tr {
537
- display: flex;
538
- flex-direction: row;
539
- justify-content: center;
540
- align-items: flex-end;
541
- border: none;
542
- width: 100%;
543
- height: 100%;
544
- position: relative;
545
- padding: 0 2px;
546
- gap: var(--bar-gap);
547
-
548
- td {
549
- font-weight: inherit;
550
- }
551
-
552
- td:first-child {
553
- position: absolute;
554
- top: 100%;
555
- left: 50%;
556
- transform: translate(-50%, 0);
557
- width: fit-content;
558
- padding: 0;
559
- white-space: nowrap;
560
- max-width: 6rem;
561
- overflow: hidden;
562
- text-overflow: ellipsis;
563
- font-size: var(--label-size);
564
- //display: none;
565
- text-align: center;
566
-
567
- @container (min-width: 62em) {
568
- display: block;
569
- left: 50% !important;
570
- transform: translate(-50%, 0) !important;
571
- }
572
- }
573
-
574
- td[data-label='Min'],
575
- td[data-label='Max'] {
576
- display: none;
577
- }
578
-
579
- &:first-child td:first-child,
580
- &:last-child td:first-child {
581
- display: block;
582
- }
583
-
584
- td:not(:first-child) {
585
- height: 100%;
586
- height: var(--percent, 0%);
587
- bottom: var(--bottom, 0%);
588
- width: 100%;
589
- max-width: 1.5rem;
590
- position: relative;
591
- background: green;
592
- padding: 0;
593
- background: var(--chart-colour);
594
- border-top-right-radius: 4px;
595
- border-top-left-radius: 4px;
596
-
597
- &:has(span:empty),
598
- &:empty {
599
- display: none;
600
- }
601
-
602
- &[data-label]:before {
603
- display: none;
604
- }
605
-
606
- span {
607
- position: absolute;
608
- bottom: 100%;
609
- left: 50%;
610
- font-size: var(--label-size);
611
- line-height: 1.2;
612
- transform: translate(-50%, 0);
613
- background: var(--chart-colour);
614
- opacity: 0;
615
- pointer-events: none;
616
- padding: 0.5rem;
617
- border-radius: 0.5rem;
618
- margin-bottom: 0.25rem;
619
- color: var(--colour-primary-theme);
620
- white-space: pre;
621
- text-align: center;
622
-
623
- &::before {
624
- content: attr(data-label) '\A' attr(data-group) '\A';
625
- }
626
-
627
- &[data-second]:after {
628
- content: '\A' attr(data-second-label) ': ' attr(data-second);
629
- }
630
- }
631
-
632
- &:hover span {
633
- opacity: 1;
634
- z-index: var(--index-above);
635
- }
636
- }
637
-
638
- @container (min-width: 36em) {
639
- &:first-child td:not(:first-child) span,
640
- &:last-child td:not(:first-child) span {
641
- left: 50%;
642
- transform: translate(-50%, 0);
643
- text-align: center;
644
- }
645
- }
646
-
647
- td:first-child {
648
- &[data-label]:before {
649
- display: none;
650
- }
651
- }
652
- }
653
-
654
- // change the look of chart when crowded
655
- @container (max-width: 36em) {
656
- tbody:has(tr:nth-child(5) td:nth-child(4)) tr,
657
- tbody:has(tr:nth-child(10)) tr {
658
- td:first-child {
659
- display: none;
660
- }
661
-
662
- &:first-child td:first-child {
663
- left: 0%;
664
- transform: translate(0, 0);
665
- display: block;
666
- text-align: left;
667
- }
668
- &:last-child td:first-child {
669
- left: 100%;
670
- transform: translate(-100%, 0);
671
- display: block;
672
- text-align: right;
673
- }
674
-
675
- &:first-child td:not(:first-child) span {
676
- left: -20%;
677
- transform: translate(0%, 0);
678
- text-align: left;
679
- }
680
-
681
- &:last-child td:not(:first-child) span {
682
- left: 120%;
683
- transform: translate(-100%, 0);
684
- text-align: right;
685
- }
686
- }
687
- }
688
- // Hide labels when it gets crowded
689
- @container (min-width: 62em) {
690
- tbody:has(tr:nth-child(25)) {
691
- tr td:first-child {
692
- display: none !important;
693
- }
694
-
695
- tr:is(:first-child, :nth-child(5n)) td:first-child {
696
- display: block !important;
697
- }
698
- }
699
-
700
- tbody:has(tr:nth-child(50)) {
701
- tr:is(:first-child, :nth-child(5n)) td:first-child,
702
- tr td:first-child {
703
- display: none !important;
704
- }
705
-
706
- tr:is(:first-child, :nth-child(10n)) td:first-child {
707
- display: block !important;
708
- }
709
- }
710
-
711
- tbody:has(tr:nth-child(100)) {
712
- tr:is(:first-child, :nth-child(10n)) td:first-child,
713
- tr td:first-child {
714
- display: none !important;
715
- }
716
-
717
- tr:is(:first-child, :nth-child(20n)) td:first-child {
718
- display: block !important;
719
- }
720
- }
721
- }
722
-
723
- // Hide items when theres too many too display
724
- tbody:has(tr:nth-child(1001)) {
725
- tr {
726
- display: none;
727
- }
728
-
729
- tr:nth-last-child(-n + 1001) ~ tr {
730
- display: flex;
731
- }
732
- }
733
- }
734
-
735
- .line,
736
- .pie {
737
- display: none;
738
- }
739
- }
740
- // #endregion
741
-
742
- // #region Bar chart
743
- @mixin barchart($selector) {
744
- #{$selector} {
745
- tbody {
746
- --chart-direction: 90deg;
747
- --chart-day-bg-pos: calc(var(--single-day) * 7) 100%;
748
- --bar-gap: 0;
749
- }
750
-
751
- .chart__guidelines {
752
- position: absolute;
753
-
754
- .guideline {
755
- bottom: auto;
756
- left: var(--percent);
757
- height: 100%;
758
- border-left: 1px dashed #eee;
759
- width: 0;
760
-
761
- span {
762
- display: block;
763
- font-size: var(--label-size);
764
- position: absolute;
765
- top: 100%;
766
- transform: translate(-50%, 0.2em);
767
- }
768
- }
769
- }
770
-
771
- .chart__yaxis {
772
- display: none;
773
- }
774
-
775
- table {
776
- padding-top: 0;
777
- }
778
-
779
- table tbody {
780
- flex-direction: column;
781
- position: relative;
782
- }
783
-
784
- table tbody tr {
785
- flex-direction: column;
786
- align-items: flex-start;
787
- margin-bottom: 0.5rem;
788
- padding: 0;
789
-
790
- td {
791
- height: 3rem;
792
- bottom: 0;
793
- left: var(--bottom, 0%);
794
- width: var(--comparison, var(--percent));
795
- max-width: 100%;
796
- border-top-left-radius: 0;
797
- border-bottom-right-radius: 4px;
798
- }
799
-
800
- td:first-child {
801
- position: static;
802
- transform: none;
803
- display: block !important;
804
- max-height: 1.5rem;
805
- }
806
- }
807
-
808
- &[data-longest-label] {
809
- &:before {
810
- display: block;
811
- content: attr(data-longest-label);
812
- font-size: var(--label-size);
813
- padding-right: 0.5em;
814
- opacity: 0;
815
- pointer-events: none;
816
- white-space: nowrap;
817
- }
818
- }
819
-
820
- &[data-longest-label] table tbody tr {
821
- td:first-child {
822
- position: absolute;
823
- transform: translate(-100%, -50%) !important;
824
- display: block !important;
825
- max-height: 1.5rem;
826
- z-index: var(--index-above);
827
- top: 50%;
828
- left: 0 !important;
829
- padding-right: 0.5em;
830
- }
831
- }
832
- }
833
- }
834
-
835
- @include barchart('.chart__outer ' + $bar-chart);
836
-
837
- @container (max-width: 36em) {
838
- @include barchart('.chart__outer ' + $responsive-chart);
839
- }
840
- // #endregion
841
-
842
- // #region stacked
843
- input[type='radio']:not([value='pie'])[value='stacked']:checked ~ .chart__wrapper {
844
- table tbody tr {
845
- --bar-gap: 0;
846
- flex-direction: column-reverse;
847
- justify-content: flex-start;
848
- align-items: center;
849
-
850
- td {
851
- border-radius: 0 !important;
852
- }
853
- }
854
- }
855
- // #endregion
856
-
857
- // #region Scatter and line chart
858
- #{'.chart__outer ' + $scatter-line-chart} {
859
- table tbody {
860
- justify-content: space-between;
861
-
862
- tr {
863
- td:not(.chart__bar):first-child {
864
- left: 50% !important;
865
- width: 4rem;
866
- }
867
- }
868
- }
869
- }
870
-
871
- #{'.chart__outer ' + $scatter-line-chart} {
872
- table tbody {
873
- tr:not(:has(.chart__bar)) {
874
- width: 2px;
875
- margin-left: -1px;
876
- margin-right: -1px;
877
- padding: 0;
878
- }
879
-
880
- tr {
881
- td:not(.chart__bar):not(:first-child) {
882
- position: absolute;
883
- left: 50%;
884
- bottom: calc(var(--axis));
885
- height: 6px;
886
- width: 6px;
887
- margin-bottom: -3px;
888
- margin-left: -3px;
889
- border-radius: 3px;
890
-
891
- &:hover {
892
- opacity: 1;
893
- }
894
- }
895
-
896
- &:before {
897
- content: '';
898
- border-left: 1px dashed #eeeeee;
899
- height: 100%;
900
- width: 0;
901
- position: absolute;
902
- top: 0;
903
- left: 50%;
904
- height: 100%;
905
- margin-left: -1px;
906
- z-index: var(--index-below);
907
- opacity: 0;
908
- }
909
-
910
- &:hover {
911
- &:before {
912
- opacity: 1;
913
- }
914
- }
915
-
916
- &:is([data-event], [data-event-right]) {
917
- &:before {
918
- opacity: 1;
919
- border-left: 1px dashed #000000;
920
- }
921
- &:after {
922
- content: attr(data-event);
923
- position: absolute;
924
- top: 0;
925
- left: 50%;
926
- width: max-content;
927
- z-index: var(--index-below);
928
- font-size: var(--label-size);
929
- background: rgba(255, 255, 255, 0.5);
930
- }
931
- }
932
- &[data-event] {
933
- &:after {
934
- transform: translate(-50%, -0.5em);
935
- }
936
- }
937
- &[data-event-right] {
938
- &:after {
939
- transform: translate(-101%, -0.5em);
940
- }
941
- }
942
- &[data-event-left] {
943
- &:after {
944
- transform: translate(1%, -0.5em);
945
- }
946
- }
947
- }
948
- }
949
-
950
- .pie {
951
- display: none;
952
- }
953
- }
954
-
955
- #{':host([data-increment][data-start][data-end]) .chart__outer ' + $scatter-line-chart} {
956
- table tbody tr {
957
- position: absolute;
958
- left: var(--position);
959
-
960
- td:first-child {
961
- display: none;
962
- }
963
- }
964
-
965
- .slope {
966
- pointer-events: none;
967
- }
968
- .slope svg {
969
- color: black;
970
- stroke: currentColor;
971
- display: block;
972
- position: absolute;
973
- top: 0;
974
- left: 0;
975
- stroke-width: var(--line-thickness);
976
- width: 100%;
977
- height: calc(100% - 1rem);
978
- pointer-events: none;
979
- z-index: var(--index-above);
980
- }
981
- }
982
- // #endregion
983
-
984
- // #region Line chart
985
- #{'.chart__outer ' + $line-chart} {
986
- .chart__lines ~ table tbody {
987
- tr {
988
- td:not(.chart__bar):not(:first-child):not(:hover) {
989
- opacity: 0;
990
- }
991
- }
992
- }
993
-
994
- .line {
995
- display: block;
996
- position: absolute;
997
- top: 0;
998
- left: 0;
999
- stroke-width: var(--line-thickness);
1000
- width: 100%;
1001
- height: 100%;
1002
- pointer-events: none;
1003
- z-index: var(--index-above);
1004
- }
1005
- }
1006
- // #endregion
1007
-
1008
- // #region Pie chart
1009
- #{'.chart__outer ' + $pie-chart} {
1010
- margin-bottom: 2rem;
1011
-
1012
- .chart__yaxis,
1013
- .line {
1014
- display: none;
1015
- }
1016
- table {
1017
- display: none;
1018
- }
1019
-
1020
- .pies {
1021
- display: flex;
1022
- flex-direction: row;
1023
- flex-wrap: wrap;
1024
- gap: 2rem;
1025
- }
1026
-
1027
- .pie {
1028
- position: relative;
1029
- width: 100%;
1030
- aspect-ratio: 1 / 1;
1031
- min-width: 12.5rem; /* 200 */
1032
- flex: 1 1 auto;
1033
- display: inline-block;
1034
- max-width: var(--pie-size);
1035
-
1036
- &:first-child {
1037
- margin-left: 0;
1038
- }
1039
- &:last-child {
1040
- margin-right: 0;
1041
- }
1042
- }
1043
-
1044
- .pie svg {
1045
- width: 100%;
1046
- height: 100%;
1047
-
1048
- path:hover {
1049
- transform: scale(1.05);
1050
- }
1051
- }
1052
-
1053
- .pie > div {
1054
- position: absolute;
1055
- top: 50%;
1056
- left: 50%;
1057
- transform: translate(-50%, -50%);
1058
- pointer-events: none;
1059
- background: var(--body-colour-set);
1060
- border-radius: 50%;
1061
- z-index: var(--index-focus);
1062
- padding: 1rem;
1063
- aspect-ratio: 1/1;
1064
- display: flex;
1065
- justify-content: center;
1066
- align-items: center;
1067
- height: 67%;
1068
-
1069
- span {
1070
- text-align: center;
1071
- display: block;
1072
- }
1073
- }
1074
-
1075
- .pie:has(path:hover) > div {
1076
- display: none;
1077
- }
1078
-
1079
- .pie foreignObject {
1080
- background: var(--body-colour-set);
1081
- border-radius: 50%;
1082
- z-index: var(--index-focus);
1083
- pointer-events: none;
1084
- display: none;
1085
- padding: 1rem;
1086
-
1087
- div {
1088
- display: flex;
1089
- justify-content: center;
1090
- align-items: center;
1091
- height: 100%;
1092
- }
1093
- span {
1094
- text-align: center;
1095
- display: block;
1096
- }
1097
- }
1098
-
1099
- .pie {
1100
- path:nth-child(1):hover ~ foreignObject:nth-of-type(1),
1101
- path:nth-child(2):hover ~ foreignObject:nth-of-type(2),
1102
- path:nth-child(3):hover ~ foreignObject:nth-of-type(3),
1103
- path:nth-child(4):hover ~ foreignObject:nth-of-type(4),
1104
- path:nth-child(5):hover ~ foreignObject:nth-of-type(5),
1105
- path:nth-child(6):hover ~ foreignObject:nth-of-type(6),
1106
- path:nth-child(7):hover ~ foreignObject:nth-of-type(7),
1107
- path:nth-child(8):hover ~ foreignObject:nth-of-type(8),
1108
- path:nth-child(9):hover ~ foreignObject:nth-of-type(9) {
1109
- display: block;
1110
- }
1111
- }
1112
- }
1113
- // #endregion
1114
-
1115
- // #region Modifiers
1116
-
1117
- // #region Display data modifier class
1118
- :host(.chart--display-data) {
1119
- table tbody tr {
1120
- td:not(:first-child) {
1121
- span {
1122
- &:before {
1123
- display: none;
1124
- }
1125
- opacity: 1 !important;
1126
- z-index: var(--index-above);
1127
- top: 0%;
1128
- transform: translate(-50%, 0%) !important;
1129
- display: block !important;
1130
- height: fit-content;
1131
-
1132
- margin: 0;
1133
- }
1134
- }
1135
- }
1136
-
1137
- #{$bar-chart} table tbody tr td:not(:first-child) {
1138
- span {
1139
- top: 50%;
1140
- right: 0;
1141
- left: 0;
1142
- transform: translate(0%, -50%) !important;
1143
- text-align: right;
1144
- width: calc(100% - 0.4rem);
1145
- min-width: fit-content;
1146
- padding: 0 0.1rem;
1147
- border-radius: 0;
1148
- }
1149
- }
1150
-
1151
- #{$scatter-line-chart} table tbody tr td:not(:first-child) {
1152
- span {
1153
- bottom: 0.25rem;
1154
- top: auto;
1155
- }
1156
- }
1157
-
1158
- #{$line-chart} .chart__lines ~ table tbody tr td:not(:first-child):not(:hover) {
1159
- opacity: 1;
1160
- }
1161
- }
1162
- // #endregion
1163
-
1164
- // #region show chart totals
1165
- :host(.chart--show-totals) {
1166
- .chart__key {
1167
- .key {
1168
- .chart__total {
1169
- display: flex;
1170
- font-size: var(--label-size);
1171
- font-weight: bold;
1172
- line-height: 1;
1173
- padding-left: 1.5em;
1174
- }
1175
-
1176
- .chart__total__number {
1177
- margin-right: 1rem;
1178
- }
1179
- .chart__total__percent {
1180
- margin-left: auto;
1181
- }
1182
- }
1183
- }
1184
- }
1185
- // #endregion
1186
-
1187
- // #endregion
1188
-
1189
- // #region aniamtion
1190
-
1191
- #{'.chart--animate.animating.inview'} {
1192
- --animation-left: 2s;
1193
-
1194
- table tbody tr td:not(:first-child) {
1195
- transition:
1196
- height 2s ease-out,
1197
- width 2s ease-out,
1198
- bottom 2s ease-out,
1199
- left var(--animation-left) ease-out;
1200
- transition-delay: calc(var(--row-index) * 0.1s);
1201
- }
1202
- }
1203
-
1204
- #{'.chart--animate:not(.inview)'} {
1205
- table tbody tr td:not(:first-child) {
1206
- --bottom: var(--min-bottom, 0%) !important;
1207
- --percent: 0% !important;
1208
- --axis: 0% !important;
1209
- --comparison: 0% !important;
1210
- }
1211
- }
1212
-
1213
- /*
1214
- #{'.chart--animate.animating.inview '+comparison-chart} {
1215
-
1216
- --animation-left: 0s;
1217
- }
1218
-
1219
- #{'.chart--animate:not(.inview) '+comparison-chart} {
1220
-
1221
- table tbody tr td:not(:first-child) {
1222
-
1223
- --comparison: 50%!important;
1224
- }
1225
- }
1226
- */
1227
-
1228
- // #region Animate bar and column chart
1229
- #{'.chart--animate.animating ' + $default-chart} {
1230
- table tbody tr td:not(:first-child) {
1231
- overflow: hidden;
1232
- }
1233
- }
1234
- // #endregion
1235
-
1236
- // #region scatter and line charts
1237
-
1238
- #{'.chart--animate:not(.inview) ' + $scatter-line-chart} {
1239
- table tbody tr td:not(:first-child) {
1240
- --percent: 0% !important;
1241
- }
1242
- }
1243
-
1244
- #{'.chart--animate.animating ' + $scatter-line-chart} {
1245
- .slope path {
1246
- transition: 2s ease-out;
1247
- }
1248
- }
1249
-
1250
- #{'.chart--animate:not(.inview) ' + $scatter-line-chart} {
1251
- .slope path {
1252
- d: var(--path);
1253
- }
1254
- }
1255
-
1256
- // Line chart
1257
- #{'.chart--animate.animating '+$line-chart}
1258
- //#{'.chart--animate '+proportional-chart},
1259
- //#{'.chart--animate '+combo-chart}
1260
- {
1261
- .line path {
1262
- transition: 2s ease-out;
1263
- }
1264
- }
1265
-
1266
- #{'.chart--animate:not(.inview) '+$line-chart}
1267
- //#{'.chart--animate:not(.inview) '+proportional-chart},
1268
- //#{'.chart--animate:not(.inview) '+combo-chart}
1269
- {
1270
- .line path {
1271
- d: var(--path);
1272
- }
1273
- }
1274
- // #endregion
1275
-
1276
- // #region pie charts
1277
- #{'.chart--animate ' + $pie-chart} {
1278
- .pie path {
1279
- transition: calc(2s * var(--second-fraction, 1)) ease-out;
1280
- transition-delay: calc((var(--row-index) * var(--path-index)) * 0.1s);
1281
- }
1282
- }
1283
-
1284
- #{'.chart--animate:not(.inview) ' + $pie-chart} {
1285
- .pie path {
1286
- transform: scale(60%) !important;
1287
- }
1288
- }
1289
- /*#{'.chart--animate:not(.inview) '+polar-chart}
1290
- {
1291
- .pie path {
1292
- transform: scale(40%) !important;
1293
- }
1294
- }
1295
- */
1296
- // #endregion
1297
-
1298
- // #endregion
1
+ @use 'sass:map';
2
+
3
+ @use '../_func' as *;
4
+
5
+ $chart-colour-1: #1ebee6 !default;
6
+ $chart-colour-2: #ffd2d2 !default;
7
+ $chart-colour-3: #b4e6a5 !default;
8
+ $chart-colour-4: #ffa500 !default;
9
+ $chart-colour-5: #46003c !default;
10
+ $chart-colour-6: #b4e6a5 !default;
11
+ $chart-colour-7: #1ebee6 !default;
12
+ $chart-colour-8: #ffd2d2 !default;
13
+ $chart-colour-9: #9d9d9d !default;
14
+ $chart-colour-10: #66838a !default;
15
+
16
+ $chart-colors: ();
17
+ $chart-colors: map.merge(
18
+ (
19
+ 1: $chart-colour-1,
20
+ 2: $chart-colour-2,
21
+ 3: $chart-colour-3,
22
+ 4: $chart-colour-4,
23
+ 5: $chart-colour-5,
24
+ 6: $chart-colour-6,
25
+ 7: $chart-colour-7,
26
+ 8: $chart-colour-8,
27
+ 9: $chart-colour-9,
28
+ 10: $chart-colour-10,
29
+ ),
30
+ $chart-colors
31
+ );
32
+
33
+ $chart-height: 56.25% !default;
34
+ $chart-height-lg: 42.86% !default;
35
+
36
+ /* Selectors */
37
+ $default-chart: 'input[type="radio"]:not([value="none"]):not([value="pie"]):checked ~ .chart__wrapper';
38
+ $bar-chart: 'input[type=radio]:is([value="bar"],[value="comparison"]):not([value=none]):not([value=pie]):checked~.chart__wrapper';
39
+
40
+ /* $comparison-chart: 'input[type=radio][value="comparison"]:not([value=none]):not([value=pie]):checked~.chart__wrapper'; */
41
+ /* $comparison-chart-key: 'input[type=radio][value="comparison"]:not([value=none]):not([value=pie]):checked~.chart__key'; */
42
+
43
+ $responsive-chart: 'input[type=radio][value="responsive"]:not([value=none]):not([value=pie]):checked~.chart__wrapper';
44
+ $scatter-line-chart: 'input[type="radio"]:not([value="pie"]):is([value="line"],[value="scatter"],[value="bubble"],[value="radar"],[value="proportional"],[value="combo"]):checked ~ .chart__wrapper';
45
+
46
+ $line-chart: 'input[type="radio"]:not([value="pie"])[value="line"]:checked ~ .chart__wrapper';
47
+ /* $bubble-chart: 'input[type="radio"]:not([value="none"]):not([value="pie"])[value="bubble"]:checked ~ .chart__wrapper'; */
48
+ /* $radar-chart: 'input[type="radio"]:not([value="none"]):not([value="pie"])[value="radar"]:checked ~ .chart__wrapper'; */
49
+ /* $proportional-chart: 'input[type="radio"]:not([value="none"]):not([value="pie"])[value="proportional"]:checked ~ .chart__wrapper'; */
50
+ /* $proportional-chart-key: 'input[type="radio"]:not([value="none"]):not([value="pie"])[value="proportional"]:checked ~ .chart__key'; */
51
+ $pie-chart: 'input[type="radio"]:not([value="none"]):is([value="pie"],[value="polar"]):checked ~ .chart__wrapper';
52
+ /* $polar-chart: 'input[type="radio"]:not([value="none"])[value="polar"]:checked ~ .chart__wrapper'; */
53
+ /* $tree-chart: 'input[type="radio"]:not([value="none"])[value="treemap"]:checked ~ .chart__wrapper'; */
54
+ /* $tree-chart-key: 'input[type="radio"]:not([value="none"])[value="treemap"]:checked ~ .chart__key'; */
55
+ /* $dumbbell-chart: 'input[type="radio"]:not([value="none"])[value="dumbbell"]:checked ~ .chart__wrapper'; */
56
+ /* $waffle-chart: 'input[type="radio"]:not([value="none"])[value="waffle"]:checked ~ .chart__wrapper'; */
57
+
58
+ /* #region Basic setup - including: container setup, css vars */
59
+
60
+ ::slotted(table) {
61
+ display: none !important;
62
+ }
63
+
64
+ .chart__outer {
65
+ container-type: inline-size;
66
+
67
+ /* CSS vars that can be overwritten by declaring them without the -set on the end of the variable i.e. --chart-colour-1: red; would overwrite --chart-colour-1-set */
68
+ --body-colour-set: var(--body-colour, white);
69
+ --text-colour-set: var(--text-colour, black);
70
+ --chart-height-set: var(--chart-height, #{$chart-height});
71
+ --chart-height-lg-set: var(--chart-height-lg, #{$chart-height-lg});
72
+ --chart-height-resp: var(--chart-height-set);
73
+ /* Non-configurable css vars */
74
+ --index-below: -1;
75
+ --index-base: 0;
76
+ --index-focus: 2;
77
+ --index-above: 10;
78
+ --index-floating: 100;
79
+ --index-menu: 200;
80
+ --index-overlay: 1000;
81
+ --key-label-width: 100%;
82
+ --label-size: 0.75rem;
83
+ --pie-size: calc(50% - 1.4rem);
84
+ --line-thickness: 1px;
85
+ --yaxis-width: auto;
86
+ --yaxis-point-display: block;
87
+ --yaxis-last-point-transform: translate(0, -50%);
88
+ --bar-gap: min(10%, 0.75rem);
89
+
90
+ margin-bottom: 2rem;
91
+ display: flex;
92
+ flex-direction: column;
93
+
94
+ @each $index, $value in $chart-colors {
95
+ --chart-colour-#{$index}-set: var(--chart-colour-#{$index}, #{$value});
96
+ }
97
+
98
+ tbody {
99
+ --chart-direction: 360deg;
100
+ --chart-day-bg-pos: 100% calc(var(--single-day) * 7);
101
+ }
102
+
103
+ &:has(.chart__options) {
104
+ position: relative;
105
+ padding-top: 1.5rem;
106
+ }
107
+
108
+ > * {
109
+ display: block;
110
+ order: 2;
111
+ }
112
+
113
+ > figcaption {
114
+ display: contents;
115
+
116
+ p:not(.chart__strapline, .chart__title) {
117
+ margin-bottom: 0.25rem;
118
+ font-size: var(--label-size);
119
+ }
120
+
121
+ > * {
122
+ order: 3;
123
+ }
124
+
125
+ > :is(.chart__title, .chart__strapline) {
126
+ order: 1;
127
+ }
128
+ }
129
+
130
+ @container (max-width: 36em) {
131
+ :has(tr:nth-child(5) td:nth-child(4)),
132
+ :has(tr:nth-child(10)) {
133
+ --yaxis-width: 0;
134
+ --yaxis-point-display: none;
135
+ --yaxis-last-point-transform: translate(0, -100%);
136
+ --bar-gap: 0;
137
+ }
138
+ }
139
+ @container (max-width: 62em) {
140
+ :has(tr:nth-child(10)) {
141
+ --bar-gap: 0;
142
+ }
143
+ }
144
+ @container (min-width: 36em) {
145
+ .chart__wrapper {
146
+ --chart-height-resp: var(--chart-height-lg-set);
147
+ --pie-size: calc(33.333% - 1.4rem);
148
+ --line-thickness: 0.8px;
149
+ --yaxis-width: auto;
150
+ --yaxis-point-display: block;
151
+ --yaxis-last-point-transform: translate(0, -50%);
152
+ }
153
+ }
154
+
155
+ @container (min-width: 62em) {
156
+ .chart__wrapper {
157
+ --label-size: 0.875rem; /* 14/16 */
158
+ --pie-size: calc(25% - 1.5rem);
159
+ --line-thickness: 0.5px;
160
+ }
161
+ }
162
+ }
163
+ /* #endregion */
164
+
165
+ /* #region figure caption elements */
166
+ .chart__title {
167
+ font-size: 2rem;
168
+ font-weight: 700;
169
+ margin-bottom: 0.25rem;
170
+ }
171
+
172
+ .chart__strapline {
173
+ margin-bottom: 1rem;
174
+ }
175
+
176
+ .chart__source {
177
+ border-top: 1px solid black;
178
+ position: relative;
179
+ padding-top: 0.25rem;
180
+ }
181
+ /* #endregion */
182
+
183
+ /* #region Apply chart colours */
184
+ @for $i from 1 to 10 {
185
+ .chart__key .key:nth-child(10n - #{10 - $i}),
186
+ .chart__outer table tbody tr td:not(:first-child):nth-child(10n - #{10 - ($i+1)}) {
187
+ --chart-colour: var(#{'--chart-colour-' + $i + '-set'});
188
+ }
189
+
190
+ input:is([value='line'], [value='radar'], [value='combo'], [value='proportional']):checked
191
+ ~ .chart__wrapper
192
+ .line:nth-child(10n - #{10 - $i}) {
193
+ color: var(#{'--chart-colour-' + $i + '-set'});
194
+ stroke: currentColor;
195
+ fill: currentColor;
196
+ z-index: #{10 - $i};
197
+ }
198
+ input:is([value='pie'], [value='polar']):checked ~ .chart__wrapper .pie path:nth-child(10n - #{10 - $i}) {
199
+ fill: var(#{'--chart-colour-' + $i + '-set'});
200
+ }
201
+ }
202
+
203
+ .chart__key .key:nth-child(10n),
204
+ input[type='radio']:not([value='none']):not([value='pie']):checked
205
+ ~ .chart__outer
206
+ table
207
+ tbody
208
+ tr
209
+ td:not(:first-child):nth-child(10n + 1) {
210
+ --chart-colour: var(#{'--chart-colour-10-set'});
211
+ }
212
+ /* #endregion */
213
+
214
+ /* #region Chart type switcher */
215
+ .chart__outer > [type='radio'] {
216
+ opacity: 0;
217
+ position: absolute;
218
+ pointer-events: none;
219
+ }
220
+
221
+ .chart__options {
222
+ &:has(span:first-child:last-child) {
223
+ display: none;
224
+ }
225
+
226
+ position: absolute;
227
+ display: block;
228
+ width: fit-content;
229
+ z-index: var(--index-above);
230
+ top: 0;
231
+ right: 0;
232
+ background-color: var(--body-colour-set);
233
+
234
+ > span:first-child {
235
+ text-align: right;
236
+ display: block;
237
+ height: 1.5rem;
238
+
239
+ &:before {
240
+ content: '';
241
+ height: 1rem;
242
+ width: 1rem;
243
+ background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3e%3cpath d='M31 19.3v-6.5l-3.9-.5c-.1-.4-.3-.9-.5-1.5l2.4-3-4.7-4.7-3.1 2.4c-.4-.2-.9-.4-1.5-.6L19.2 1h-6.5l-.5 3.9c-.6.2-1.1.4-1.5.6l-3-2.4L3 7.7l2.4 3c-.2.5-.4 1.1-.5 1.5l-3.9.5v6.5l3.9.5c.2.5.3 1 .6 1.5l-2.4 3 4.7 4.7 3-2.3c.4.2 1 .5 1.5.6l.5 3.8h6.5l.5-3.8c.5-.2 1.1-.4 1.5-.6l3 2.3 4.7-4.7-2.4-3 .6-1.5 3.8-.4zm-2.1-1.9-3.4.5c-.3 1.5-.8 2.7-1.6 3.6l2.1 2.6-1.9 2-2.6-2c-1 .7-2.5 1.3-3.7 1.5l-.5 3.3h-2.6l-.5-3.3c-1.2-.2-2.7-.8-3.7-1.5l-2.6 2-1.9-2 2.1-2.6c-.8-.9-1.2-2.1-1.6-3.6l-3.4-.5v-2.7l3.5-.5c.2-1.1.6-2.3 1.4-3.7L6 7.9l1.9-2L10.6 8c.8-.7 1.7-1.1 3.6-1.6l.5-3.4h2.6l.5 3.4c1.9.5 2.8.9 3.6 1.6l2.7-2L26 8l-2 2.5c.8 1.4 1.2 2.6 1.4 3.7l3.5.5v2.7zM16 20.8c-2.7 0-4.7-2-4.7-4.8 0-2.7 2-4.7 4.7-4.7s4.7 2 4.7 4.7-2 4.8-4.7 4.8zm0 2.2c3.9 0 6.9-3 6.9-7 0-3.9-3-6.9-6.9-6.9s-6.9 3-6.9 6.9c0 4 3 7 6.9 7z'%3e%3c/path%3e%3c/svg%3e");
244
+ background-size: 100% 100%;
245
+ display: inline-block;
246
+
247
+ vertical-align: bottom;
248
+ margin-bottom: 0.1875rem; /* 3 */
249
+ margin-right: 0.375rem; /* 6 */
250
+ }
251
+ }
252
+
253
+ > *:not(:first-child) {
254
+ display: none;
255
+ }
256
+
257
+ label {
258
+ cursor: pointer;
259
+
260
+ &:hover {
261
+ background: var(--label-bg, rgb(220, 220, 220));
262
+ }
263
+ }
264
+
265
+ &:hover {
266
+ outline: 3px solid black;
267
+
268
+ box-shadow: 0 0 0 calc(0.125rem + 0.125rem) #ffffff;
269
+ outline-offset: calc(0.125rem + 0.125rem);
270
+
271
+ > * {
272
+ display: block;
273
+ }
274
+ }
275
+
276
+ .chart__options__title {
277
+ margin-top: 1rem;
278
+ font-weight: bold;
279
+ }
280
+ }
281
+
282
+ .chart > [type='radio']:focus ~ .chart__switcher {
283
+ label {
284
+ display: block;
285
+ }
286
+ }
287
+ /* #endregion */
288
+
289
+ /* #region Chart key */
290
+ .chart__outer > input[type='checkbox'] {
291
+ opacity: 0;
292
+ position: absolute;
293
+ pointer-events: none;
294
+ }
295
+
296
+ .chart__key {
297
+ padding: 0 0 0 0;
298
+ margin-bottom: 1.5rem;
299
+ /* background: var(--colour-key-bg, rgb(220, 220, 220)); */
300
+ display: flex;
301
+ overflow: auto;
302
+ scroll-snap-type: x mandatory;
303
+ scroll-padding: 0.75rem;
304
+ justify-content: flex-end;
305
+ gap: 0.5rem;
306
+
307
+ .key {
308
+ font-size: 1rem !important;
309
+ margin: 0;
310
+
311
+ &:before {
312
+ content: '';
313
+ height: 0.8em;
314
+ width: 0.8em;
315
+ margin-right: 0.3em;
316
+ background-color: var(--chart-colour);
317
+ display: inline-block;
318
+ border-radius: 50%;
319
+ }
320
+
321
+ /*
322
+ display: inline-block;
323
+ padding: 0.5rem;
324
+ margin-right: 0.75rem;
325
+ margin-bottom: 0.75rem;
326
+ background: white;
327
+ white-space: nowrap;
328
+ cursor: pointer;
329
+ scroll-snap-align: start;
330
+
331
+ &:hover,
332
+ &:focus-within {
333
+ outline: 3px solid var(--chart-colour);
334
+ }
335
+ */
336
+
337
+ &[data-label='Min'],
338
+ &[data-label='Max'] {
339
+ display: none;
340
+ }
341
+
342
+ .chart__total {
343
+ display: none;
344
+ }
345
+ }
346
+ }
347
+ /* #endregion */
348
+
349
+ /* #region Hide data sets */
350
+ .chart__outer > input[type='checkbox']:not(:checked) ~ .chart__key .key {
351
+ opacity: 0.25;
352
+ }
353
+
354
+ .chart__outer > input[type='checkbox']:not(:checked) ~ .chart__wrapper table tbody tr td:not(:first-child) {
355
+ display: none;
356
+ }
357
+
358
+ .chart__outer > input[type='checkbox']:not(:checked) ~ .chart__wrapper :is(.chart__lines, .radar) .line {
359
+ display: none !important;
360
+ }
361
+
362
+ @for $i from 1 to 10 {
363
+ .chart__outer > input[type='checkbox']:nth-of-type(#{$i}):focus ~ .chart__key .key:nth-of-type(#{$i}) {
364
+ /* outline: 3px solid var(--chart-colour); */
365
+ }
366
+
367
+ .chart__outer > input[type='checkbox']:nth-of-type(#{$i}):not(:checked) ~ .chart__key .key:nth-of-type(#{$i}) {
368
+ opacity: 1;
369
+ }
370
+
371
+ .chart__outer
372
+ > input[type='checkbox']:nth-of-type(#{$i}):not(:checked)
373
+ ~ .chart__wrapper
374
+ table
375
+ tbody
376
+ tr
377
+ td:not(:first-child):nth-child(#{$i + 1}) {
378
+ display: block;
379
+ }
380
+
381
+ input:nth-of-type(#{$i}):not(:checked) ~ .chart__wrapper :is(.chart__lines, .radar) .line:nth-child(#{$i}) {
382
+ display: block !important;
383
+ }
384
+ }
385
+ /* #endregion */
386
+
387
+ /* #region Second table */
388
+ .chart:has(.chart__outer) > table {
389
+ order: 10;
390
+ display: none;
391
+ }
392
+ /* #endregion */ Second table
393
+
394
+ /* #region Default column chart (Also applies to line chart) */
395
+ .chart__wrapper {
396
+ display: block;
397
+ display: flex;
398
+ flex-direction: row;
399
+ position: relative;
400
+ margin-bottom: 1rem;
401
+
402
+ .chart__yaxis {
403
+ display: flex;
404
+ flex-direction: column-reverse;
405
+ width: var(--yaxis-width);
406
+
407
+ .axis__point {
408
+ bottom: var(--percent);
409
+ position: relative;
410
+ height: 0;
411
+ white-space: nowrap;
412
+
413
+ &:not(:last-child) {
414
+ display: var(--yaxis-point-display);
415
+ }
416
+
417
+ span {
418
+ display: block;
419
+ transform: translate(0, -50%);
420
+ padding-right: 0.25rem;
421
+ text-align: right;
422
+ font-size: var(--label-size);
423
+ }
424
+
425
+ &:last-child span {
426
+ transform: var(--yaxis-last-point-transform);
427
+ }
428
+ }
429
+ }
430
+
431
+ .chart__xaxis {
432
+ margin-bottom: 1rem;
433
+ display: flex;
434
+ flex-direction: column-reverse;
435
+ width: 100%;
436
+ position: absolute;
437
+ left: 0;
438
+ bottom: -1rem;
439
+
440
+ .axis__point {
441
+ left: var(--percent);
442
+ width: 1px;
443
+ position: absolute;
444
+ height: 0;
445
+ white-space: nowrap;
446
+
447
+ span {
448
+ display: block;
449
+ transform: translate(-50%, 0%);
450
+ text-align: center;
451
+ font-size: var(--label-size);
452
+ position: absolute;
453
+ left: 50%;
454
+ }
455
+ }
456
+ }
457
+
458
+ .chart__guidelines {
459
+ position: absolute;
460
+ top: 0;
461
+ left: 0;
462
+ width: 100%;
463
+ height: 100%;
464
+ display: flex;
465
+ flex-direction: column-reverse;
466
+ pointer-events: none;
467
+
468
+ .guideline {
469
+ bottom: var(--percent);
470
+ position: absolute;
471
+ right: 0;
472
+ width: 100%;
473
+ height: 0px;
474
+ margin-bottom: -1px;
475
+ border-bottom: 1px dashed #eeeeee;
476
+ pointer-events: none;
477
+ z-index: var(--index-below);
478
+ /* overflow: hidden; */
479
+
480
+ &:not(.guideline--target) span {
481
+ display: none;
482
+ }
483
+ }
484
+
485
+ .guideline--target {
486
+ border-bottom: 1px dashed #000000;
487
+ z-index: var(--index-above);
488
+ text-shadow: 1px solid white;
489
+ overflow: visible;
490
+
491
+ span {
492
+ position: absolute;
493
+ bottom: 0;
494
+ font-size: var(--label-size);
495
+ text-shadow: 1px 1px 2px rgba(255, 255, 255, 1);
496
+ background: rgba(255, 255, 255, 0.6);
497
+ }
498
+ }
499
+ [data-value='0'] {
500
+ border-bottom: 1px solid var(--colour-primary);
501
+
502
+ &:not(:first-child) {
503
+ border-bottom: 1px dashed var(--colour-primary);
504
+ }
505
+ }
506
+ }
507
+
508
+ .chart {
509
+ position: relative;
510
+ flex-grow: 1;
511
+ }
512
+
513
+ table {
514
+ display: block;
515
+ width: 100% !important;
516
+ padding-top: var(--chart-height-resp); /* 16:9 ratio */
517
+ position: relative;
518
+ margin-bottom: 0;
519
+ overflow: visible;
520
+
521
+ thead {
522
+ display: none;
523
+ }
524
+
525
+ tbody {
526
+ display: flex;
527
+ position: absolute;
528
+ width: 100%;
529
+ height: 100%;
530
+ top: 0;
531
+ left: 0;
532
+ flex-direction: row;
533
+ border: none;
534
+ }
535
+
536
+ tbody tr {
537
+ display: flex;
538
+ flex-direction: row;
539
+ justify-content: center;
540
+ align-items: flex-end;
541
+ border: none;
542
+ width: 100%;
543
+ height: 100%;
544
+ position: relative;
545
+ padding: 0 2px;
546
+ gap: var(--bar-gap);
547
+
548
+ td {
549
+ font-weight: inherit;
550
+ }
551
+
552
+ td:first-child {
553
+ position: absolute;
554
+ top: 100%;
555
+ left: 50%;
556
+ transform: translate(-50%, 0);
557
+ width: fit-content;
558
+ padding: 0;
559
+ white-space: nowrap;
560
+ max-width: 6rem;
561
+ overflow: hidden;
562
+ text-overflow: ellipsis;
563
+ font-size: var(--label-size);
564
+ /* display: none; */
565
+ text-align: center;
566
+
567
+ @container (min-width: 62em) {
568
+ display: block;
569
+ left: 50% !important;
570
+ transform: translate(-50%, 0) !important;
571
+ }
572
+ }
573
+
574
+ td[data-label='Min'],
575
+ td[data-label='Max'] {
576
+ display: none;
577
+ }
578
+
579
+ &:first-child td:first-child,
580
+ &:last-child td:first-child {
581
+ display: block;
582
+ }
583
+
584
+ td:not(:first-child) {
585
+ height: 100%;
586
+ height: var(--percent, 0%);
587
+ bottom: var(--bottom, 0%);
588
+ width: 100%;
589
+ max-width: 1.5rem;
590
+ position: relative;
591
+ background: green;
592
+ padding: 0;
593
+ background: var(--chart-colour);
594
+ border-top-right-radius: 4px;
595
+ border-top-left-radius: 4px;
596
+
597
+ &:has(span:empty),
598
+ &:empty {
599
+ display: none;
600
+ }
601
+
602
+ &[data-label]:before {
603
+ display: none;
604
+ }
605
+
606
+ span {
607
+ position: absolute;
608
+ bottom: 100%;
609
+ left: 50%;
610
+ font-size: var(--label-size);
611
+ line-height: 1.2;
612
+ transform: translate(-50%, 0);
613
+ background: var(--chart-colour);
614
+ opacity: 0;
615
+ pointer-events: none;
616
+ padding: 0.5rem;
617
+ border-radius: 0.5rem;
618
+ margin-bottom: 0.25rem;
619
+ color: var(--colour-primary-theme);
620
+ white-space: pre;
621
+ text-align: center;
622
+
623
+ &::before {
624
+ content: attr(data-label) '\A' attr(data-group) '\A';
625
+ }
626
+
627
+ &[data-second]:after {
628
+ content: '\A' attr(data-second-label) ': ' attr(data-second);
629
+ }
630
+ }
631
+
632
+ &:hover span {
633
+ opacity: 1;
634
+ z-index: var(--index-above);
635
+ }
636
+ }
637
+
638
+ @container (min-width: 36em) {
639
+ &:first-child td:not(:first-child) span,
640
+ &:last-child td:not(:first-child) span {
641
+ left: 50%;
642
+ transform: translate(-50%, 0);
643
+ text-align: center;
644
+ }
645
+ }
646
+
647
+ td:first-child {
648
+ &[data-label]:before {
649
+ display: none;
650
+ }
651
+ }
652
+ }
653
+
654
+ /* change the look of chart when crowded */
655
+ @container (max-width: 36em) {
656
+ tbody:has(tr:nth-child(5) td:nth-child(4)) tr,
657
+ tbody:has(tr:nth-child(10)) tr {
658
+ td:first-child {
659
+ display: none;
660
+ }
661
+
662
+ &:first-child td:first-child {
663
+ left: 0%;
664
+ transform: translate(0, 0);
665
+ display: block;
666
+ text-align: left;
667
+ }
668
+ &:last-child td:first-child {
669
+ left: 100%;
670
+ transform: translate(-100%, 0);
671
+ display: block;
672
+ text-align: right;
673
+ }
674
+
675
+ &:first-child td:not(:first-child) span {
676
+ left: -20%;
677
+ transform: translate(0%, 0);
678
+ text-align: left;
679
+ }
680
+
681
+ &:last-child td:not(:first-child) span {
682
+ left: 120%;
683
+ transform: translate(-100%, 0);
684
+ text-align: right;
685
+ }
686
+ }
687
+ }
688
+ /* Hide labels when it gets crowded */
689
+ @container (min-width: 62em) {
690
+ tbody:has(tr:nth-child(25)) {
691
+ tr td:first-child {
692
+ display: none !important;
693
+ }
694
+
695
+ tr:is(:first-child, :nth-child(5n)) td:first-child {
696
+ display: block !important;
697
+ }
698
+ }
699
+
700
+ tbody:has(tr:nth-child(50)) {
701
+ tr:is(:first-child, :nth-child(5n)) td:first-child,
702
+ tr td:first-child {
703
+ display: none !important;
704
+ }
705
+
706
+ tr:is(:first-child, :nth-child(10n)) td:first-child {
707
+ display: block !important;
708
+ }
709
+ }
710
+
711
+ tbody:has(tr:nth-child(100)) {
712
+ tr:is(:first-child, :nth-child(10n)) td:first-child,
713
+ tr td:first-child {
714
+ display: none !important;
715
+ }
716
+
717
+ tr:is(:first-child, :nth-child(20n)) td:first-child {
718
+ display: block !important;
719
+ }
720
+ }
721
+ }
722
+
723
+ /* Hide items when theres too many too display */
724
+ tbody:has(tr:nth-child(1001)) {
725
+ tr {
726
+ display: none;
727
+ }
728
+
729
+ tr:nth-last-child(-n + 1001) ~ tr {
730
+ display: flex;
731
+ }
732
+ }
733
+ }
734
+
735
+ .line,
736
+ .pie {
737
+ display: none;
738
+ }
739
+ }
740
+ /* #endregion */
741
+
742
+ /* #region Bar chart */
743
+ @mixin barchart($selector) {
744
+ #{$selector} {
745
+ tbody {
746
+ --chart-direction: 90deg;
747
+ --chart-day-bg-pos: calc(var(--single-day) * 7) 100%;
748
+ --bar-gap: 0;
749
+ }
750
+
751
+ .chart__guidelines {
752
+ position: absolute;
753
+
754
+ .guideline {
755
+ bottom: auto;
756
+ left: var(--percent);
757
+ height: 100%;
758
+ border-left: 1px dashed #eee;
759
+ width: 0;
760
+
761
+ span {
762
+ display: block;
763
+ font-size: var(--label-size);
764
+ position: absolute;
765
+ top: 100%;
766
+ transform: translate(-50%, 0.2em);
767
+ }
768
+ }
769
+ }
770
+
771
+ .chart__yaxis {
772
+ display: none;
773
+ }
774
+
775
+ table {
776
+ padding-top: 0;
777
+ }
778
+
779
+ table tbody {
780
+ flex-direction: column;
781
+ position: relative;
782
+ }
783
+
784
+ table tbody tr {
785
+ flex-direction: column;
786
+ align-items: flex-start;
787
+ margin-bottom: 0.5rem;
788
+ padding: 0;
789
+
790
+ td {
791
+ height: 3rem;
792
+ bottom: 0;
793
+ left: var(--bottom, 0%);
794
+ width: var(--comparison, var(--percent));
795
+ max-width: 100%;
796
+ border-top-left-radius: 0;
797
+ border-bottom-right-radius: 4px;
798
+ }
799
+
800
+ td:first-child {
801
+ position: static;
802
+ transform: none;
803
+ display: block !important;
804
+ max-height: 1.5rem;
805
+ }
806
+ }
807
+
808
+ &[data-longest-label] {
809
+ &:before {
810
+ display: block;
811
+ content: attr(data-longest-label);
812
+ font-size: var(--label-size);
813
+ padding-right: 0.5em;
814
+ opacity: 0;
815
+ pointer-events: none;
816
+ white-space: nowrap;
817
+ }
818
+ }
819
+
820
+ &[data-longest-label] table tbody tr {
821
+ td:first-child {
822
+ position: absolute;
823
+ transform: translate(-100%, -50%) !important;
824
+ display: block !important;
825
+ max-height: 1.5rem;
826
+ z-index: var(--index-above);
827
+ top: 50%;
828
+ left: 0 !important;
829
+ padding-right: 0.5em;
830
+ }
831
+ }
832
+ }
833
+ }
834
+
835
+ @include barchart('.chart__outer ' + $bar-chart);
836
+
837
+ @container (max-width: 36em) {
838
+ @include barchart('.chart__outer ' + $responsive-chart);
839
+ }
840
+ /* #endregion */
841
+
842
+ /* #region stacked */
843
+ input[type='radio']:not([value='pie'])[value='stacked']:checked ~ .chart__wrapper {
844
+ table tbody tr {
845
+ --bar-gap: 0;
846
+ flex-direction: column-reverse;
847
+ justify-content: flex-start;
848
+ align-items: center;
849
+
850
+ td {
851
+ border-radius: 0 !important;
852
+ }
853
+ }
854
+ }
855
+ /* #endregion */
856
+
857
+ /* #region Scatter and line chart */
858
+ #{'.chart__outer ' + $scatter-line-chart} {
859
+ table tbody {
860
+ justify-content: space-between;
861
+
862
+ tr {
863
+ td:not(.chart__bar):first-child {
864
+ left: 50% !important;
865
+ width: 4rem;
866
+ }
867
+ }
868
+ }
869
+ }
870
+
871
+ #{'.chart__outer ' + $scatter-line-chart} {
872
+ table tbody {
873
+ tr:not(:has(.chart__bar)) {
874
+ width: 2px;
875
+ margin-left: -1px;
876
+ margin-right: -1px;
877
+ padding: 0;
878
+ }
879
+
880
+ tr {
881
+ td:not(.chart__bar):not(:first-child) {
882
+ position: absolute;
883
+ left: 50%;
884
+ bottom: calc(var(--axis));
885
+ height: 6px;
886
+ width: 6px;
887
+ margin-bottom: -3px;
888
+ margin-left: -3px;
889
+ border-radius: 3px;
890
+
891
+ &:hover {
892
+ opacity: 1;
893
+ }
894
+ }
895
+
896
+ &:before {
897
+ content: '';
898
+ border-left: 1px dashed #eeeeee;
899
+ height: 100%;
900
+ width: 0;
901
+ position: absolute;
902
+ top: 0;
903
+ left: 50%;
904
+ height: 100%;
905
+ margin-left: -1px;
906
+ z-index: var(--index-below);
907
+ opacity: 0;
908
+ }
909
+
910
+ &:hover {
911
+ &:before {
912
+ opacity: 1;
913
+ }
914
+ }
915
+
916
+ &:is([data-event], [data-event-right]) {
917
+ &:before {
918
+ opacity: 1;
919
+ border-left: 1px dashed #000000;
920
+ }
921
+ &:after {
922
+ content: attr(data-event);
923
+ position: absolute;
924
+ top: 0;
925
+ left: 50%;
926
+ width: max-content;
927
+ z-index: var(--index-below);
928
+ font-size: var(--label-size);
929
+ background: rgba(255, 255, 255, 0.5);
930
+ }
931
+ }
932
+ &[data-event] {
933
+ &:after {
934
+ transform: translate(-50%, -0.5em);
935
+ }
936
+ }
937
+ &[data-event-right] {
938
+ &:after {
939
+ transform: translate(-101%, -0.5em);
940
+ }
941
+ }
942
+ &[data-event-left] {
943
+ &:after {
944
+ transform: translate(1%, -0.5em);
945
+ }
946
+ }
947
+ }
948
+ }
949
+
950
+ .pie {
951
+ display: none;
952
+ }
953
+ }
954
+
955
+ #{':host([data-increment][data-start][data-end]) .chart__outer ' + $scatter-line-chart} {
956
+ table tbody tr {
957
+ position: absolute;
958
+ left: var(--position);
959
+
960
+ td:first-child {
961
+ display: none;
962
+ }
963
+ }
964
+
965
+ .slope {
966
+ pointer-events: none;
967
+ }
968
+ .slope svg {
969
+ color: black;
970
+ stroke: currentColor;
971
+ display: block;
972
+ position: absolute;
973
+ top: 0;
974
+ left: 0;
975
+ stroke-width: var(--line-thickness);
976
+ width: 100%;
977
+ height: calc(100% - 1rem);
978
+ pointer-events: none;
979
+ z-index: var(--index-above);
980
+ }
981
+ }
982
+ /* #endregion */
983
+
984
+ /* #region Line chart */
985
+ #{'.chart__outer ' + $line-chart} {
986
+ .chart__lines ~ table tbody {
987
+ tr {
988
+ td:not(.chart__bar):not(:first-child):not(:hover) {
989
+ opacity: 0;
990
+ }
991
+ }
992
+ }
993
+
994
+ .line {
995
+ display: block;
996
+ position: absolute;
997
+ top: 0;
998
+ left: 0;
999
+ stroke-width: var(--line-thickness);
1000
+ width: 100%;
1001
+ height: 100%;
1002
+ pointer-events: none;
1003
+ z-index: var(--index-above);
1004
+ }
1005
+ }
1006
+ /* #endregion */
1007
+
1008
+ /* #region Pie chart */
1009
+ #{'.chart__outer ' + $pie-chart} {
1010
+ margin-bottom: 2rem;
1011
+
1012
+ .chart__yaxis,
1013
+ .line {
1014
+ display: none;
1015
+ }
1016
+ table {
1017
+ display: none;
1018
+ }
1019
+
1020
+ .pies {
1021
+ display: flex;
1022
+ flex-direction: row;
1023
+ flex-wrap: wrap;
1024
+ gap: 2rem;
1025
+ }
1026
+
1027
+ .pie {
1028
+ position: relative;
1029
+ width: 100%;
1030
+ aspect-ratio: 1 / 1;
1031
+ min-width: 12.5rem; /* 200 */
1032
+ flex: 1 1 auto;
1033
+ display: inline-block;
1034
+ max-width: var(--pie-size);
1035
+
1036
+ &:first-child {
1037
+ margin-left: 0;
1038
+ }
1039
+ &:last-child {
1040
+ margin-right: 0;
1041
+ }
1042
+ }
1043
+
1044
+ .pie svg {
1045
+ width: 100%;
1046
+ height: 100%;
1047
+
1048
+ path:hover {
1049
+ transform: scale(1.05);
1050
+ }
1051
+ }
1052
+
1053
+ .pie > div {
1054
+ position: absolute;
1055
+ top: 50%;
1056
+ left: 50%;
1057
+ transform: translate(-50%, -50%);
1058
+ pointer-events: none;
1059
+ background: var(--body-colour-set);
1060
+ border-radius: 50%;
1061
+ z-index: var(--index-focus);
1062
+ padding: 1rem;
1063
+ aspect-ratio: 1/1;
1064
+ display: flex;
1065
+ justify-content: center;
1066
+ align-items: center;
1067
+ height: 67%;
1068
+
1069
+ span {
1070
+ text-align: center;
1071
+ display: block;
1072
+ }
1073
+ }
1074
+
1075
+ .pie:has(path:hover) > div {
1076
+ display: none;
1077
+ }
1078
+
1079
+ .pie foreignObject {
1080
+ background: var(--body-colour-set);
1081
+ border-radius: 50%;
1082
+ z-index: var(--index-focus);
1083
+ pointer-events: none;
1084
+ display: none;
1085
+ padding: 1rem;
1086
+
1087
+ div {
1088
+ display: flex;
1089
+ justify-content: center;
1090
+ align-items: center;
1091
+ height: 100%;
1092
+ }
1093
+ span {
1094
+ text-align: center;
1095
+ display: block;
1096
+ }
1097
+ }
1098
+
1099
+ .pie {
1100
+ path:nth-child(1):hover ~ foreignObject:nth-of-type(1),
1101
+ path:nth-child(2):hover ~ foreignObject:nth-of-type(2),
1102
+ path:nth-child(3):hover ~ foreignObject:nth-of-type(3),
1103
+ path:nth-child(4):hover ~ foreignObject:nth-of-type(4),
1104
+ path:nth-child(5):hover ~ foreignObject:nth-of-type(5),
1105
+ path:nth-child(6):hover ~ foreignObject:nth-of-type(6),
1106
+ path:nth-child(7):hover ~ foreignObject:nth-of-type(7),
1107
+ path:nth-child(8):hover ~ foreignObject:nth-of-type(8),
1108
+ path:nth-child(9):hover ~ foreignObject:nth-of-type(9) {
1109
+ display: block;
1110
+ }
1111
+ }
1112
+ }
1113
+ /* #endregion */
1114
+
1115
+ /* #region Modifiers */
1116
+
1117
+ /* #region Display data modifier class */
1118
+ :host(.chart--display-data) {
1119
+ table tbody tr {
1120
+ td:not(:first-child) {
1121
+ span {
1122
+ &:before {
1123
+ display: none;
1124
+ }
1125
+ opacity: 1 !important;
1126
+ z-index: var(--index-above);
1127
+ top: 0%;
1128
+ transform: translate(-50%, 0%) !important;
1129
+ display: block !important;
1130
+ height: fit-content;
1131
+
1132
+ margin: 0;
1133
+ }
1134
+ }
1135
+ }
1136
+
1137
+ #{$bar-chart} table tbody tr td:not(:first-child) {
1138
+ span {
1139
+ top: 50%;
1140
+ right: 0;
1141
+ left: 0;
1142
+ transform: translate(0%, -50%) !important;
1143
+ text-align: right;
1144
+ width: calc(100% - 0.4rem);
1145
+ min-width: fit-content;
1146
+ padding: 0 0.1rem;
1147
+ border-radius: 0;
1148
+ }
1149
+ }
1150
+
1151
+ #{$scatter-line-chart} table tbody tr td:not(:first-child) {
1152
+ span {
1153
+ bottom: 0.25rem;
1154
+ top: auto;
1155
+ }
1156
+ }
1157
+
1158
+ #{$line-chart} .chart__lines ~ table tbody tr td:not(:first-child):not(:hover) {
1159
+ opacity: 1;
1160
+ }
1161
+ }
1162
+ /* #endregion */
1163
+
1164
+ /* #region show chart totals */
1165
+ :host(.chart--show-totals) {
1166
+ .chart__key {
1167
+ .key {
1168
+ .chart__total {
1169
+ display: flex;
1170
+ font-size: var(--label-size);
1171
+ font-weight: bold;
1172
+ line-height: 1;
1173
+ padding-left: 1.5em;
1174
+ }
1175
+
1176
+ .chart__total__number {
1177
+ margin-right: 1rem;
1178
+ }
1179
+ .chart__total__percent {
1180
+ margin-left: auto;
1181
+ }
1182
+ }
1183
+ }
1184
+ }
1185
+ /* #endregion */
1186
+
1187
+ /* #endregion */
1188
+
1189
+ /* #region aniamtion */
1190
+
1191
+ #{'.chart--animate.animating.inview'} {
1192
+ --animation-left: 2s;
1193
+
1194
+ table tbody tr td:not(:first-child) {
1195
+ transition:
1196
+ height 2s ease-out,
1197
+ width 2s ease-out,
1198
+ bottom 2s ease-out,
1199
+ left var(--animation-left) ease-out;
1200
+ transition-delay: calc(var(--row-index) * 0.1s);
1201
+ }
1202
+ }
1203
+
1204
+ #{'.chart--animate:not(.inview)'} {
1205
+ table tbody tr td:not(:first-child) {
1206
+ --bottom: var(--min-bottom, 0%) !important;
1207
+ --percent: 0% !important;
1208
+ --axis: 0% !important;
1209
+ --comparison: 0% !important;
1210
+ }
1211
+ }
1212
+
1213
+ /*
1214
+ #{'.chart--animate.animating.inview '+comparison-chart} {
1215
+
1216
+ --animation-left: 0s;
1217
+ }
1218
+
1219
+ #{'.chart--animate:not(.inview) '+comparison-chart} {
1220
+
1221
+ table tbody tr td:not(:first-child) {
1222
+
1223
+ --comparison: 50%!important;
1224
+ }
1225
+ }
1226
+ */
1227
+
1228
+ /* #region Animate bar and column chart */
1229
+ #{'.chart--animate.animating ' + $default-chart} {
1230
+ table tbody tr td:not(:first-child) {
1231
+ overflow: hidden;
1232
+ }
1233
+ }
1234
+ /* #endregion */
1235
+
1236
+ /* #region scatter and line charts */
1237
+
1238
+ #{'.chart--animate:not(.inview) ' + $scatter-line-chart} {
1239
+ table tbody tr td:not(:first-child) {
1240
+ --percent: 0% !important;
1241
+ }
1242
+ }
1243
+
1244
+ #{'.chart--animate.animating ' + $scatter-line-chart} {
1245
+ .slope path {
1246
+ transition: 2s ease-out;
1247
+ }
1248
+ }
1249
+
1250
+ #{'.chart--animate:not(.inview) ' + $scatter-line-chart} {
1251
+ .slope path {
1252
+ d: var(--path);
1253
+ }
1254
+ }
1255
+
1256
+ /* Line chart */
1257
+ #{'.chart--animate.animating '+$line-chart}
1258
+ /* #{'.chart--animate '+proportional-chart}, */
1259
+ /* #{'.chart--animate '+combo-chart} */
1260
+ {
1261
+ .line path {
1262
+ transition: 2s ease-out;
1263
+ }
1264
+ }
1265
+
1266
+ #{'.chart--animate:not(.inview) '+$line-chart}
1267
+ /* #{'.chart--animate:not(.inview) '+proportional-chart}, */
1268
+ /* #{'.chart--animate:not(.inview) '+combo-chart} */
1269
+ {
1270
+ .line path {
1271
+ d: var(--path);
1272
+ }
1273
+ }
1274
+ /* #endregion */
1275
+
1276
+ /* #region pie charts */
1277
+ #{'.chart--animate ' + $pie-chart} {
1278
+ .pie path {
1279
+ transition: calc(2s * var(--second-fraction, 1)) ease-out;
1280
+ transition-delay: calc((var(--row-index) * var(--path-index)) * 0.1s);
1281
+ }
1282
+ }
1283
+
1284
+ #{'.chart--animate:not(.inview) ' + $pie-chart} {
1285
+ .pie path {
1286
+ transform: scale(60%) !important;
1287
+ }
1288
+ }
1289
+ /*#{'.chart--animate:not(.inview) '+polar-chart}
1290
+ {
1291
+ .pie path {
1292
+ transform: scale(40%) !important;
1293
+ }
1294
+ }
1295
+ */
1296
+ /* #endregion */
1297
+
1298
+ /* #endregion */