@iamproperty/components 2.9.0 → 3.1.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 (89) hide show
  1. package/README.md +9 -130
  2. package/assets/css/core.min.css +1 -1
  3. package/assets/css/core.min.css.map +1 -1
  4. package/assets/css/style.min.css +1 -1
  5. package/assets/css/style.min.css.map +1 -1
  6. package/assets/favicons/manifest.json +32 -0
  7. package/assets/js/main.js +57 -0
  8. package/assets/js/modules/chart.js +18 -17
  9. package/assets/js/modules/file-upload.js +48 -0
  10. package/assets/js/modules/form.js +27 -18
  11. package/assets/js/modules/nav.js +9 -8
  12. package/assets/js/modules/orderablelist.js +122 -0
  13. package/assets/js/modules/table.js +24 -24
  14. package/assets/js/scripts.bundle.js +63 -52
  15. package/assets/js/scripts.bundle.js.map +1 -1
  16. package/assets/js/scripts.bundle.min.js +2 -2
  17. package/assets/js/scripts.bundle.min.js.map +1 -1
  18. package/assets/sass/_functions/utilities.scss +3 -110
  19. package/assets/sass/_functions/variables.scss +3 -2
  20. package/assets/sass/_tests/colours.spec.scss +45 -0
  21. package/assets/sass/_tests/func.spec.scss +233 -0
  22. package/assets/sass/_tests/mixins.spec.scss +194 -0
  23. package/assets/sass/_tests/sass.spec.js +9 -0
  24. package/assets/sass/_tests/typography.spec.scss +36 -0
  25. package/assets/sass/components/alert.scss +1 -1
  26. package/assets/sass/components/cardDeck.scss +1 -1
  27. package/assets/sass/components/carousel.scss +5 -5
  28. package/assets/sass/components/charts.scss +1 -1
  29. package/assets/sass/components/nav.scss +47 -2
  30. package/assets/sass/components/stepper.scss +3 -3
  31. package/assets/sass/elements/buttons.scss +46 -4
  32. package/assets/sass/elements/card.scss +112 -0
  33. package/assets/sass/elements/container.scss +13 -2
  34. package/assets/sass/elements/forms.scss +68 -0
  35. package/assets/sass/elements/links.scss +2 -1
  36. package/assets/sass/elements/lists.scss +48 -1
  37. package/assets/sass/elements/panel.scss +3 -3
  38. package/assets/sass/elements/tables.scss +1 -1
  39. package/assets/sass/elements/tooltips.scss +1 -1
  40. package/assets/sass/foundations/icons.scss +8 -0
  41. package/assets/sass/foundations/root.scss +23 -4
  42. package/assets/ts/main.js +57 -0
  43. package/assets/ts/main.js.map +1 -0
  44. package/assets/ts/main.ts +10 -10
  45. package/assets/ts/modules/accordion.js +33 -0
  46. package/assets/ts/modules/accordion.js.map +1 -0
  47. package/dist/components.es.js +2518 -0
  48. package/dist/components.umd.js +56 -3784
  49. package/dist/style.css +1 -0
  50. package/package.json +87 -87
  51. package/src/components/Accordion/Accordion.screenshot.vue +57 -0
  52. package/src/components/Accordion/Accordion.spec.js +63 -0
  53. package/src/components/Accordion/Accordion.vue +1 -1
  54. package/src/components/Accordion/AccordionItem.vue +1 -1
  55. package/src/components/Accordion/__screenshots__/win32/laptop/Accordion.png +0 -0
  56. package/src/components/Accordion/__screenshots__/win32/mobile/Accordion.png +0 -0
  57. package/src/components/Accordion/__screenshots__/win32/tablet/Accordion.png +0 -0
  58. package/src/components/Alert/Alert.spec.js +49 -0
  59. package/src/components/Alert/Alert.vue +3 -3
  60. package/src/components/Banner/Banner.spec.js +28 -0
  61. package/src/components/CardDeck/CardDeck.spec.js +99 -0
  62. package/src/components/CardDeck/CardDeck.vue +1 -1
  63. package/src/components/Carousel/Carousel.spec.js +45 -0
  64. package/src/components/Chart/Chart.spec.js +201 -0
  65. package/src/components/Chart/Chart.vue +3 -3
  66. package/src/components/Header/Header.spec.js +33 -0
  67. package/src/components/Modal/Modal.spec.js +22 -0
  68. package/src/components/Nav/Nav.spec.js +35 -0
  69. package/src/components/Nav/Nav.vue +5 -2
  70. package/src/components/Stepper/Stepper.spec.js +99 -0
  71. package/src/components/Tabs/Tab.vue +6 -0
  72. package/src/components/Tabs/Tabs.vue +15 -13
  73. package/src/components/Testimonial/Testimonial.spec.js +57 -0
  74. package/src/components/Timeline/Timeline.spec.js +17 -0
  75. package/src/elements/Card/Card.vue +11 -2
  76. package/src/elements/Input/Input.vue +14 -10
  77. package/src/elements/Table/Table.spec.js +90 -0
  78. package/src/elements/Table/Table.vue +8 -5
  79. package/src/foundations/Icon/Icon.spec.js +24 -0
  80. package/src/foundations/Logo/Logo.spec.js +56 -0
  81. package/src/vue-shim.d.ts +6 -0
  82. package/dist/components.common.js +0 -3773
  83. package/dist/components.common.js.map +0 -1
  84. package/dist/components.css +0 -2
  85. package/dist/components.css.map +0 -1
  86. package/dist/components.umd.js.map +0 -1
  87. package/dist/components.umd.min.js +0 -2
  88. package/dist/components.umd.min.js.map +0 -1
  89. package/dist/demo.html +0 -1
@@ -11,11 +11,11 @@
11
11
 
12
12
  .carousel__inner {
13
13
 
14
- --bs-gutter-x: #{$grid-gutter-width};
14
+ --gutter-x: #{$grid-gutter-width};
15
15
  overflow: auto;
16
16
  scroll-snap-type: x mandatory;
17
- margin-right: calc(var(--bs-gutter-x) * -.5);
18
- margin-left: calc(var(--bs-gutter-x) * -.5);
17
+ margin-right: calc(var(--gutter-x) * -.5);
18
+ margin-left: calc(var(--gutter-x) * -.5);
19
19
 
20
20
  > .row {
21
21
  flex-wrap: nowrap;
@@ -25,7 +25,7 @@
25
25
  padding-top: rem(36);
26
26
  padding-bottom: rem(24);
27
27
  scroll-snap-align: start;
28
- scroll-padding: calc(var(--bs-gutter-x) * -1);
28
+ scroll-padding: calc(var(--gutter-x) * -1);
29
29
  }
30
30
  }
31
31
  }
@@ -53,7 +53,7 @@ body.js-enabled .carousel__inner::-webkit-scrollbar {
53
53
 
54
54
  // #region carousel controls/pips
55
55
  .carousel:not(.hide-controls) {
56
- padding-bottom: 4.5rem;
56
+ padding-bottom: 4.5rem!important;
57
57
  }
58
58
 
59
59
  .carousel.hide-controls .carousel__controls {
@@ -514,7 +514,7 @@ $chart-colors: map-merge((
514
514
  }
515
515
 
516
516
  .pie foreignObject {
517
- background: var(--bs-body-bg);
517
+ background: var(--body-bg);
518
518
  border-radius: 50%;
519
519
  z-index: var(--index-focus);
520
520
  pointer-events: none;
@@ -5,6 +5,7 @@
5
5
 
6
6
  background: var(--colour-primary);
7
7
  color: white;
8
+
8
9
  @if $compatible != "true" {
9
10
 
10
11
  @include invert-colours();
@@ -160,7 +161,7 @@
160
161
  font-size: rem(18);
161
162
  text-indent: 0;
162
163
  overflow: visible;
163
- color: var(--colour-primary);
164
+ color: var(--colour-body);
164
165
  height: rem(48);
165
166
  line-height: rem(48);
166
167
  display: block;
@@ -399,7 +400,7 @@ nav + main > *:first-child {
399
400
  position: absolute;
400
401
  top: 0;
401
402
  left: 100%;
402
- background: white;
403
+ background: var(--body-bg);
403
404
  z-index: 2;
404
405
  width: 100%;
405
406
  overscroll-behavior: contain;
@@ -690,6 +691,8 @@ nav + main > *:first-child {
690
691
 
691
692
  @include reset-colours();
692
693
 
694
+ --colour-admin: var(--colour-admin-theme);
695
+
693
696
  li {
694
697
 
695
698
  padding-inline: rem(24);
@@ -913,4 +916,46 @@ nav + main > *:first-child {
913
916
  }
914
917
  }
915
918
  }
919
+ // #endregion
920
+
921
+ // #region
922
+
923
+ .nav--just-account {
924
+
925
+ .nav__menu,
926
+ .nav__account-btn {
927
+ display: none!important;
928
+ }
929
+
930
+ @include media-breakpoint-up(md) {
931
+
932
+ .nav__menu,
933
+ .nav__account-btn {
934
+ display: block!important;
935
+ }
936
+ }
937
+
938
+ #showMenu:checked ~ .nav__menu--account {
939
+ height: 100vh;
940
+ overflow: visible;
941
+ overflow-x: auto;
942
+ left: 0;
943
+ pointer-events: none;
944
+ background: transparent;
945
+
946
+ @include media-breakpoint-up(sm) {
947
+
948
+ width: rem(375);
949
+ left: calc(100% - #{rem(375)});
950
+ }
951
+
952
+ > .container:first-child {
953
+ opacity: 0;
954
+ }
955
+ > .container:not(:first-child) {
956
+ pointer-events: all;
957
+ }
958
+ }
959
+ }
960
+
916
961
  // #endregion
@@ -5,7 +5,7 @@
5
5
  display: flex;
6
6
  flex-wrap: wrap;
7
7
  margin-bottom: 2rem;
8
- border: 1px solid var(--bs-body-bg);
8
+ border: 1px solid var(--body-bg);
9
9
  overflow: hidden;
10
10
 
11
11
  @include media-breakpoint-up(md) {
@@ -17,7 +17,7 @@
17
17
  ol {
18
18
  margin: 0;
19
19
  z-index: 1;
20
- background: var(--bs-body-bg);
20
+ background: var(--body-bg);
21
21
  counter-reset: section;
22
22
  width: 100%;
23
23
  overflow: auto;
@@ -40,7 +40,7 @@
40
40
  li {
41
41
  width: 100%;
42
42
  max-width: 100%;
43
- background: var(--bs-body-bg);
43
+ background: var(--body-bg);
44
44
  padding: 1px;
45
45
 
46
46
  @include media-breakpoint-up(sm) {
@@ -19,7 +19,7 @@
19
19
  border-radius: rem(20);
20
20
  margin-bottom: rem(24);
21
21
  margin-right: rem(16);
22
- transition: background-color .5s, color .5s;
22
+ transition: all .5s, color .5s;
23
23
  height: auto;
24
24
 
25
25
  a:hover &,
@@ -79,6 +79,11 @@
79
79
  &.btn-tag.btn-primary {
80
80
  --btn-bg: var(--colour-warning);
81
81
  }
82
+
83
+ &.btn-admin:not(:hover):not(:focus) {
84
+ background: var(--colour-admin);
85
+ border-color: var(--colour-admin)!important;
86
+ }
82
87
  }
83
88
 
84
89
  input:checked + .btn:not(:hover):not(:focus),
@@ -96,9 +101,9 @@ details[open] > summary.btn:first-child {
96
101
 
97
102
  input:checked + .btn-tertiary:not(:hover):not(:focus):not(:active),
98
103
  input:checked + .btn-tag:not(.btn-primary):not(.btn-secondary):not(:hover):not(:focus):not(:active) {
99
- background: var(--btn-tertiary-bg);
100
- border-color: var(--btn-hover-text);
101
- color: var(--btn-tertiary-hover-text);
104
+ background: var(--colour-selected);
105
+ border-color: var(--colour-selected)!important;
106
+ color: var(--colour-primary);
102
107
  }
103
108
 
104
109
 
@@ -205,6 +210,43 @@ input:checked + .btn-tag:not(.btn-primary):not(.btn-secondary):not(:hover):not(:
205
210
  width: 100%;
206
211
  }
207
212
  }
213
+
214
+ .btn-group--admin {
215
+
216
+ position: relative;
217
+
218
+ &:before {
219
+ content: "";
220
+ width: calc(100% - 2px);
221
+ height: rem(48);
222
+ background-color: var(--colour-admin)!important;
223
+ position: absolute;
224
+ top: 0;
225
+ left: 0;
226
+ z-index: 0;
227
+ border-radius: 0.5rem!important;
228
+ }
229
+
230
+ > .btn:not(:hover):not(:focus) {
231
+ border-radius: 0.5rem!important;
232
+ background: var(--colour-admin);
233
+
234
+ border-color: var(--colour-admin)!important;
235
+ }
236
+
237
+ > .btn:is(:hover, :focus) {
238
+ border-radius: 0.5rem!important;
239
+ background: var(--colour-selected);
240
+
241
+ border-color: var(--colour-admin)!important;
242
+ color: var(--colour-primary);
243
+ }
244
+
245
+ > input:checked + .btn-tertiary:not(:hover):not(:focus):not(:active) {
246
+ border-color: var(--colour-admin)!important;
247
+
248
+ }
249
+ }
208
250
  // #endregion
209
251
 
210
252
  @import "../../../node_modules/bootstrap/scss/_button-group.scss";
@@ -84,6 +84,26 @@ a.card {
84
84
  }
85
85
  }
86
86
 
87
+ .card-banner {
88
+ padding: 0.5rem;
89
+
90
+ &__tag {
91
+
92
+ position: absolute;
93
+ top: 0;
94
+ left: 0;
95
+ background-color: var(--colour-secondary);
96
+ font-size: rem(14);
97
+ font-weight: bold;
98
+ aspect-ratio: 1;
99
+ padding: 0.75rem;
100
+ border-radius: 50%;
101
+ transform: translate(-0.25rem,-1.25rem) rotate(-25deg);
102
+ box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15)!important;
103
+
104
+ }
105
+ }
106
+
87
107
  .card-body {
88
108
 
89
109
  color: var(--colour-body);
@@ -175,3 +195,95 @@ a.card {
175
195
  }
176
196
  }
177
197
  // #endregion
198
+
199
+ // #region Small cards
200
+ .card--small {
201
+
202
+ display: flex;
203
+ flex-direction: row;
204
+ align-items: center;
205
+ padding-inline: 0.5rem;
206
+
207
+ .card-header__wrapper,
208
+ .card-body > *:not(.card-title) {
209
+ display: none;
210
+ }
211
+
212
+ .card-body,
213
+ .card-footer {
214
+ padding: 0.5rem;
215
+ }
216
+
217
+ .card-title {
218
+ margin: 0;
219
+ }
220
+
221
+ .btn {
222
+ margin-right: 0;
223
+ white-space: nowrap;
224
+
225
+ &:not(.btn--link) {
226
+ padding: 0.5em 1em
227
+ }
228
+ }
229
+
230
+ &:not([target="_blank"]) .btn-primary:not(.btn--link):after {
231
+
232
+ content: "";
233
+ height: 1em;
234
+ width: 1em;
235
+ margin-left: 0.5em;
236
+ margin-right: -0.5em;
237
+ display: inline-block;
238
+ vertical-align: baseline;
239
+ margin-bottom: -0.15em;
240
+
241
+ mask-image: var(--icon-arrow);
242
+ mask-size: 100% 100%;
243
+ mask-repeat: no-repeat;
244
+ mask-position: 0 0;
245
+
246
+ -webkit-mask-image: var(--icon-arrow);
247
+ -webkit-mask-size: 100% 100%;
248
+ -webkit-mask-repeat: no-repeat;
249
+ -webkit-mask-position: 0 0;
250
+ background-color: currentColor;
251
+ }
252
+
253
+
254
+ @include media-breakpoint-up(md) {
255
+
256
+ flex-wrap: wrap;
257
+ .card-footer {
258
+ min-width: 100%;
259
+ text-align: right;
260
+ }
261
+ }
262
+ }
263
+
264
+ .card--danger,
265
+ .card--warning,
266
+ .card--success {
267
+ position: relative;
268
+ padding-left: 1.5rem;
269
+
270
+ &:after {
271
+
272
+ content: "";
273
+ height: 100%;
274
+ width: 1rem;
275
+ background: var(--colour-danger);
276
+ display: block;
277
+ position: absolute;
278
+ top: 0;
279
+ left: 0;
280
+ }
281
+ }
282
+
283
+ .card--warning:after {
284
+ background: var(--colour-warning);
285
+ }
286
+ .card--success:after {
287
+ background: var(--colour-success);
288
+ }
289
+ // #endregion
@@ -15,12 +15,11 @@
15
15
  max-width: rem(1440);
16
16
  }
17
17
 
18
- .container {
18
+ .container:not(.container-xs-breakout) {
19
19
  padding-left: 0;
20
20
  padding-right: 0;
21
21
  padding-bottom: 0;
22
22
  padding-top: 0;
23
- content-visiblity: unset!important; /* We only want to delay the painting of top level containers */
24
23
  }
25
24
 
26
25
  &[class*="bg-"] {
@@ -45,6 +44,18 @@
45
44
  clear: both;
46
45
  content: "";
47
46
  }
47
+
48
+ &.container-xs-breakout {
49
+ margin-left: -1.25rem;
50
+ margin-right: -1.25rem;
51
+ width: calc(100% + 2.5rem);
52
+
53
+ @include media-breakpoint-up(sm) {
54
+ margin-left: auto;
55
+ margin-right: auto;
56
+ width: 100%;
57
+ }
58
+ }
48
59
  }
49
60
  // #endregion
50
61
 
@@ -192,3 +192,71 @@ select[multiple]::-webkit-scrollbar-thumb {
192
192
  }
193
193
 
194
194
  // #endregion
195
+
196
+
197
+ // #region large upload field
198
+
199
+ .form-control__wrapper.form-control--lrg-file {
200
+ aspect-ratio: 4/2;
201
+ border: 1px dashed var(--colour-selected);
202
+ position: relative;
203
+
204
+ .icon {
205
+ position: absolute;
206
+ top: 50%;
207
+ left:50%;
208
+ transform: translate(-50%,calc(-50% - 1rem));
209
+ color: var(--colour-muted);
210
+ font-size: 5rem;
211
+ height: 1em;
212
+ width: 1em;
213
+ pointer-events: none;
214
+ }
215
+
216
+ > label {
217
+
218
+ position: absolute;
219
+ top: calc(50% + 2rem);
220
+ left:50%;
221
+ transform: translate(-50%,-50%);
222
+ width: 100%;
223
+ text-align: center;
224
+ }
225
+
226
+ > input {
227
+ position: absolute;
228
+ top: 0;
229
+ left: 0;
230
+ height: 100%;
231
+ width: 100%;
232
+ opacity: 0;
233
+ }
234
+
235
+ .file-uploaded & {
236
+ border: 3px solid var(--colour-success);
237
+ border-radius: 50%;
238
+ aspect-ratio: 1;
239
+ margin-inline: auto;
240
+ max-width: 10rem;
241
+
242
+ > label {
243
+ content: "File uploaded";
244
+ }
245
+ }
246
+ }
247
+
248
+ .file-upload__add {
249
+ display: none;
250
+
251
+ .file-uploaded & {
252
+ display: block;
253
+ margin-inline: auto;
254
+ color: var(--colour-muted);
255
+ font-size: rem(14);
256
+ text-align: center;
257
+ margin-top: -1rem;
258
+ margin-bottom: 1rem;
259
+ cursor: pointer;
260
+ }
261
+ }
262
+ // #endrgion
@@ -43,7 +43,8 @@ a,
43
43
  @include var (color, --colour-active);
44
44
  }
45
45
 
46
- &[target="_blank"]:after {
46
+ &[target="_blank"]:not(.card):after,
47
+ &.card[target="_blank"] .btn:after {
47
48
 
48
49
  content: "";
49
50
  height: 1em;
@@ -50,7 +50,7 @@
50
50
 
51
51
  &.tick--incomplete:before {
52
52
 
53
- background: currentColor;
53
+ background: var(--colour-admin);
54
54
  mask-image: none;
55
55
  -webkit-mask-image: none;
56
56
  border-radius: 50%;
@@ -110,4 +110,51 @@
110
110
  text-transform: uppercase;
111
111
  }
112
112
  }
113
+ }
114
+
115
+ .orderable-list {
116
+
117
+ margin-left: 3.5rem;
118
+ counter-reset: countItem;
119
+ padding-left: 0;
120
+
121
+ li {
122
+ position: relative;
123
+ list-style: none;
124
+ --spread: 0.75rem;
125
+ box-shadow: 0 2px var(--spread) 0 rgba(154, 154, 154, 0.25);
126
+ padding: 1rem;
127
+ margin-bottom: 1rem;
128
+ border-radius: 0.5rem;
129
+ cursor: grab;
130
+ }
131
+
132
+ li:before {
133
+ content: "";
134
+ --gradient-direction: 180deg;
135
+ background-color: var(--colour-info);
136
+ background-image: linear-gradient(var(--gradient-direction), var(--colour-secondary) 0, transparent 100%) !important;
137
+ height: 100%;
138
+ width: 2.5rem;
139
+ display: inline-block;
140
+ position: absolute;
141
+ top: 0;
142
+ right: calc(100% + 1rem);
143
+ border-radius: 0.5rem;
144
+ }
145
+
146
+ li:after {
147
+ counter-increment: countItem; /* Increment the value of section counter by 1 */
148
+ content: counter(countItem);
149
+ height: 2rem;
150
+ width: 2.5rem;
151
+ line-height: 2rem;
152
+ font-size: rem(20);
153
+ font-weight: bold;
154
+ display: inline-block;
155
+ position: absolute;
156
+ top: calc(50% - 1rem);
157
+ right: calc(100% + 1rem);
158
+ text-align: center;
159
+ }
113
160
  }
@@ -3,7 +3,7 @@
3
3
  .admin-panel {
4
4
  --panel-gutter: 1rem;
5
5
  --panel-tab-colour: #fafafa;
6
- background: var(--bs-body-bg);
6
+ background: var(--body-bg);
7
7
 
8
8
  &.bg-secondary{
9
9
 
@@ -113,7 +113,7 @@
113
113
  margin-right: calc(var(--panel-gutter) * -1);
114
114
  display: flex;
115
115
  flex-direction: column;
116
- background-color: var(--bs-body-bg);
116
+ background-color: var(--body-bg);
117
117
  border-bottom: 2px solid var(--colour-border-light);
118
118
  margin-bottom: var(--panel-gutter);
119
119
 
@@ -155,7 +155,7 @@
155
155
  .current {
156
156
 
157
157
  --is-current: 1;
158
- --panel-tab-colour: var(--bs-body-bg);;
158
+ --panel-tab-colour: var(--body-bg);;
159
159
  --panel-tab-border: var(--colour-secondary);
160
160
  pointer-events: none;
161
161
  }
@@ -99,7 +99,7 @@ table.border-0 {
99
99
 
100
100
  // #region Tables are only stacked on mobile
101
101
  @media screen and (max-width: 36em) {
102
- .table__wrapper:not(.table-fullwidth) {
102
+ .table__wrapper:not(.table-fullwidth):not(.client-table) {
103
103
 
104
104
  overflow: hidden;
105
105
 
@@ -25,7 +25,7 @@
25
25
  left: 50%;
26
26
  min-width: max(120%, #{rem(100)});
27
27
  transform: translate(-50%,0);
28
- background: var(--bs-body-bg);
28
+ background: var(--body-bg);
29
29
  color: inherit;
30
30
  padding: 0.5em;
31
31
  border-radius: 3px;
@@ -26,6 +26,14 @@
26
26
  & + .icon {
27
27
  margin-inline-start: 1rem;
28
28
  }
29
+
30
+ &[class*="fs-"] {
31
+ width: 1.5em;
32
+ height: 1.5em;
33
+ vertical-align: text-top;
34
+ margin-top: -0.15em;
35
+ margin-inline: 0.25em;
36
+ }
29
37
  }
30
38
 
31
39
  @include inline-text(){
@@ -18,10 +18,10 @@
18
18
  }
19
19
 
20
20
  // Extra vars needed
21
- --bs-body-bg: white;
21
+ --body-bg: white;
22
22
  --colour-underline: var(--colour-primary);
23
23
  --colour-heading: var(--colour-primary);
24
- --alpha: var(--bs-bg-opacity,1);
24
+ --alpha: var(--bg-opacity,1);
25
25
  --#{$variable-prefix}gradient: #{$gradient};
26
26
  --content-max-width: #{$content-max-width};
27
27
  --colour-brand: var(--colour-primary);
@@ -37,7 +37,7 @@
37
37
  // Dark mode; functional colours get updated
38
38
  @media screen and (prefers-color-scheme: dark) {
39
39
  :root {
40
- --bs-body-bg: var(--colour-primary);
40
+ --body-bg: var(--colour-primary);
41
41
  --colour-admin: var(--colour-primary);
42
42
  @include invert-colours();
43
43
  }
@@ -77,7 +77,7 @@
77
77
 
78
78
  // Slight colour adjustments on the light background to match brand guidelines
79
79
  .bg-light[class*="bg-"]:not(.bg-primary):not(.bg-dark):not(.bg-danger):not(.prevent-invert) {
80
- --bs-body-bg: var(--colour-light);
80
+ --body-bg: var(--colour-light);
81
81
  --colour-heading: var(--colour-dark);
82
82
  color: var(--colour-dark);
83
83
  }
@@ -104,4 +104,23 @@
104
104
 
105
105
  --colour-underline: white;
106
106
  }
107
+ }
108
+
109
+
110
+
111
+ @include media-breakpoint-up(md) {
112
+
113
+ .invert-colours-md {
114
+
115
+ @if $compatible != "true" {
116
+
117
+ @include invert-colours();
118
+ }
119
+ color: white;
120
+ --colour-underline: white;
121
+ }
122
+
123
+ [class*="bg-"].bg-md-transparent {
124
+ background: transparent!important;
125
+ }
107
126
  }
@@ -0,0 +1,57 @@
1
+ // Modules
2
+ import * as helpers from '../js/modules/helpers';
3
+ import nav from '../js/modules/nav';
4
+ import table from '../js/modules/table';
5
+ import accordion from './modules/accordion';
6
+ import testimonial from '../js/modules/testimonial';
7
+ import carousel from '../js/modules/carousel';
8
+ import form from '../js/modules/form';
9
+ import youtubeVideo from '../js/modules/youtubevideo';
10
+ import modal from '../js/modules/modal';
11
+ // Attach classes to dom elements
12
+ document.addEventListener("DOMContentLoaded", function () {
13
+ helpers.addBodyClasses(document.body);
14
+ helpers.addGlobalEvents(document.body);
15
+ helpers.checkElements(document.body);
16
+ console.log('test.js');
17
+ // ANav
18
+ Array.from(document.querySelectorAll('.nav')).forEach((arrayElement, index) => {
19
+ nav(arrayElement);
20
+ });
21
+ // Advanced tables
22
+ Array.from(document.querySelectorAll('.table__wrapper')).forEach((arrayElement, index) => {
23
+ table(arrayElement);
24
+ });
25
+ // Accordions
26
+ Array.from(document.querySelectorAll('.accordion')).forEach((arrayElement, index) => {
27
+ accordion(arrayElement);
28
+ });
29
+ // Testimonial
30
+ Array.from(document.querySelectorAll('.testimonial')).forEach((arrayElement, index) => {
31
+ testimonial(arrayElement);
32
+ });
33
+ // Carousel
34
+ Array.from(document.querySelectorAll('.carousel')).forEach((arrayElement, index) => {
35
+ carousel(arrayElement);
36
+ });
37
+ // Form
38
+ Array.from(document.querySelectorAll('form')).forEach((arrayElement, index) => {
39
+ form(arrayElement);
40
+ });
41
+ // Modal
42
+ Array.from(document.querySelectorAll('.modal')).forEach((arrayElement, index) => {
43
+ modal(arrayElement);
44
+ });
45
+ // YouTube videos
46
+ Array.from(document.querySelectorAll('.youtube-embed')).forEach((arrayElement, index) => {
47
+ new youtubeVideo(arrayElement);
48
+ });
49
+ window.addEventListener('hashchange', function () {
50
+ const hash = location.hash.replace('#', '');
51
+ const label = document.querySelector(`label[for="${hash}"]`);
52
+ if (label instanceof HTMLElement) {
53
+ label.click();
54
+ }
55
+ }, false);
56
+ });
57
+ //# sourceMappingURL=main.js.map