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

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