@iamproperty/components 7.2.2--beta3 → 7.4.0

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