@iamproperty/components 1.0.13 → 2.2.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 (205) hide show
  1. package/README.md +120 -12
  2. package/assets/.DS_Store +0 -0
  3. package/assets/favicons/android-chrome-192x192.png +0 -0
  4. package/assets/favicons/android-chrome-512x512.png +0 -0
  5. package/assets/favicons/apple-touch-icon.png +0 -0
  6. package/assets/favicons/favicon-16x16.png +0 -0
  7. package/assets/favicons/favicon-32x32.png +0 -0
  8. package/assets/favicons/favicon.ico +0 -0
  9. package/assets/fonts/qanelas-medium-webfont.woff +0 -0
  10. package/assets/fonts/qanelas-medium-webfont.woff2 +0 -0
  11. package/assets/fonts/qanelassoft-extrabold-webfont.woff +0 -0
  12. package/assets/fonts/qanelassoft-extrabold-webfont.woff2 +0 -0
  13. package/assets/img/.DS_Store +0 -0
  14. package/{src/assets → assets}/img/logo.png +0 -0
  15. package/assets/js/main.js +62 -0
  16. package/assets/js/modules/accordion.js +36 -0
  17. package/assets/js/modules/carousel.js +102 -0
  18. package/assets/js/modules/drawer.js +16 -0
  19. package/assets/js/modules/form.js +49 -0
  20. package/assets/js/modules/helpers.js +93 -0
  21. package/assets/js/modules/modal.js +72 -0
  22. package/assets/js/modules/nav.js +27 -0
  23. package/assets/js/modules/table.js +573 -0
  24. package/assets/js/modules/testimonial.js +83 -0
  25. package/assets/sass/.DS_Store +0 -0
  26. package/assets/sass/_components.scss +35 -0
  27. package/assets/sass/_corefiles.scss +58 -0
  28. package/assets/sass/_func.scss +9 -0
  29. package/assets/sass/_functions/functions.scss +95 -0
  30. package/assets/sass/_functions/mixins.scss +109 -0
  31. package/assets/sass/_functions/utilities.scss +238 -0
  32. package/assets/sass/_functions/variables.scss +411 -0
  33. package/assets/sass/components/accordion.scss +195 -0
  34. package/assets/sass/components/card.scss +168 -0
  35. package/assets/sass/components/cardDeck.scss +107 -0
  36. package/assets/sass/components/carousel.scss +265 -0
  37. package/assets/sass/components/charts.scss +562 -0
  38. package/assets/sass/components/drawer.scss +45 -0
  39. package/assets/sass/components/header.scss +57 -0
  40. package/assets/sass/components/modal.scss +133 -0
  41. package/assets/sass/components/nav.scss +619 -0
  42. package/assets/sass/components/property-searchbar.scss +138 -0
  43. package/assets/sass/components/snapshot.scss +69 -0
  44. package/assets/sass/components/tabs.scss +46 -0
  45. package/assets/sass/components/testimonial.scss +131 -0
  46. package/assets/sass/components/timeline.scss +93 -0
  47. package/assets/sass/core.scss +4 -0
  48. package/assets/sass/elements/buttons.scss +263 -0
  49. package/assets/sass/elements/container.scss +222 -0
  50. package/assets/sass/elements/forms.scss +128 -0
  51. package/assets/sass/elements/links.scss +95 -0
  52. package/assets/sass/elements/lists.scss +26 -0
  53. package/assets/sass/elements/media.scss +3 -0
  54. package/assets/sass/elements/tables.scss +247 -0
  55. package/assets/sass/elements/tooltips.scss +71 -0
  56. package/assets/sass/elements/type.scss +114 -0
  57. package/assets/sass/foundations/brand.scss +74 -0
  58. package/assets/sass/foundations/circles.scss +63 -0
  59. package/assets/sass/foundations/fonts.scss +17 -0
  60. package/assets/sass/foundations/icons.scss +46 -0
  61. package/assets/sass/foundations/reboot.scss +120 -0
  62. package/assets/sass/foundations/root.scss +45 -0
  63. package/assets/sass/main.scss +5 -0
  64. package/assets/svg/.DS_Store +0 -0
  65. package/assets/svg/flat/.DS_Store +0 -0
  66. package/assets/svg/flat/agreed.svg +1 -0
  67. package/assets/svg/flat/alert.svg +1 -0
  68. package/assets/svg/flat/asset-37.svg +1 -0
  69. package/assets/svg/flat/asset-73.svg +1 -0
  70. package/assets/svg/flat/asset-82.svg +1 -0
  71. package/assets/svg/flat/award.svg +1 -0
  72. package/assets/svg/flat/bath.svg +1 -0
  73. package/assets/svg/flat/bed.svg +1 -0
  74. package/assets/svg/flat/calculate.svg +1 -0
  75. package/assets/svg/flat/calendar.svg +1 -0
  76. package/assets/svg/flat/celebrate.svg +1 -0
  77. package/assets/svg/flat/chat-house.svg +1 -0
  78. package/assets/svg/flat/chat.svg +1 -0
  79. package/assets/svg/flat/circle.svg +1 -0
  80. package/assets/svg/flat/clean.svg +1 -0
  81. package/assets/svg/flat/clock.svg +1 -0
  82. package/assets/svg/flat/computer.svg +1 -0
  83. package/assets/svg/flat/down.svg +1 -0
  84. package/assets/svg/flat/edit.svg +1 -0
  85. package/assets/svg/flat/email.svg +1 -0
  86. package/assets/svg/flat/event.svg +1 -0
  87. package/assets/svg/flat/family.svg +1 -0
  88. package/assets/svg/flat/file.svg +1 -0
  89. package/assets/svg/flat/find.svg +1 -0
  90. package/assets/svg/flat/fireworks.svg +1 -0
  91. package/assets/svg/flat/fist-left.svg +1 -0
  92. package/assets/svg/flat/fist.svg +1 -0
  93. package/assets/svg/flat/folder.svg +1 -0
  94. package/assets/svg/flat/footprints.svg +1 -0
  95. package/assets/svg/flat/hand.svg +1 -0
  96. package/assets/svg/flat/hands.svg +1 -0
  97. package/assets/svg/flat/house-2.svg +1 -0
  98. package/assets/svg/flat/house.svg +1 -0
  99. package/assets/svg/flat/idea.svg +1 -0
  100. package/assets/svg/flat/judge-house.svg +1 -0
  101. package/assets/svg/flat/judge.svg +1 -0
  102. package/assets/svg/flat/keys-house.svg +1 -0
  103. package/assets/svg/flat/lock.svg +1 -0
  104. package/assets/svg/flat/mobile.svg +1 -0
  105. package/assets/svg/flat/money.svg +1 -0
  106. package/assets/svg/flat/monument.svg +1 -0
  107. package/assets/svg/flat/online-judgement.svg +1 -0
  108. package/assets/svg/flat/paint.svg +1 -0
  109. package/assets/svg/flat/person-2.svg +1 -0
  110. package/assets/svg/flat/person.svg +1 -0
  111. package/assets/svg/flat/phone.svg +1 -0
  112. package/assets/svg/flat/pin.svg +1 -0
  113. package/assets/svg/flat/pound.svg +1 -0
  114. package/assets/svg/flat/present.svg +1 -0
  115. package/assets/svg/flat/qualification.svg +1 -0
  116. package/assets/svg/flat/rocket.svg +1 -0
  117. package/assets/svg/flat/sale.svg +1 -0
  118. package/assets/svg/flat/save.svg +1 -0
  119. package/assets/svg/flat/scale.svg +1 -0
  120. package/assets/svg/flat/send.svg +1 -0
  121. package/assets/svg/flat/share.svg +1 -0
  122. package/assets/svg/flat/sofa.svg +1 -0
  123. package/assets/svg/flat/sold.svg +1 -0
  124. package/assets/svg/flat/star.svg +1 -0
  125. package/assets/svg/flat/stopwatch.svg +1 -0
  126. package/assets/svg/flat/task.svg +1 -0
  127. package/assets/svg/flat/telescope.svg +1 -0
  128. package/assets/svg/flat/thumb.svg +1 -0
  129. package/assets/svg/flat/time.svg +1 -0
  130. package/assets/svg/flat/up.svg +1 -0
  131. package/assets/svg/flat/valuation.svg +1 -0
  132. package/assets/svg/flat/value-house.svg +1 -0
  133. package/assets/svg/flat/warning.svg +1 -0
  134. package/assets/svg/flat/water.svg +1 -0
  135. package/assets/svg/icons.svg +51 -0
  136. package/assets/svg/illustrations/commuter1.svg +1 -0
  137. package/assets/svg/illustrations/commuter2.svg +1 -0
  138. package/assets/svg/illustrations/commuter3.svg +1 -0
  139. package/assets/svg/logo.svg +43 -0
  140. package/dist/components.common.js +8218 -390
  141. package/dist/components.common.js.map +1 -1
  142. package/dist/components.css +2 -1
  143. package/dist/components.css.map +1 -0
  144. package/dist/components.umd.js +8218 -390
  145. package/dist/components.umd.js.map +1 -1
  146. package/dist/components.umd.min.js +1 -1
  147. package/dist/components.umd.min.js.map +1 -1
  148. package/package.json +88 -57
  149. package/src/.DS_Store +0 -0
  150. package/src/components/Accordion/Accordion.vue +24 -0
  151. package/src/components/Accordion/AccordionItem.vue +43 -0
  152. package/src/components/Accordion/README.md +34 -0
  153. package/src/components/Banner/Banner.vue +38 -0
  154. package/src/components/Banner/README.md +24 -0
  155. package/src/components/Card/Card.vue +115 -0
  156. package/src/components/Card/README.md +24 -0
  157. package/src/components/CardDeck/CardDeck.vue +78 -0
  158. package/src/components/CardDeck/README.md +25 -0
  159. package/src/components/Carousel/Carousel.vue +86 -0
  160. package/src/components/Carousel/README.md +20 -0
  161. package/src/components/Chart/Chart.vue +246 -0
  162. package/src/components/Chart/README.md +18 -0
  163. package/src/components/Drawer/Drawer.vue +54 -0
  164. package/src/components/Drawer/README.md +23 -0
  165. package/src/components/Header/Header.vue +39 -0
  166. package/src/components/Header/README.md +28 -0
  167. package/src/components/Modal/Modal.vue +44 -0
  168. package/src/components/Modal/README.md +20 -0
  169. package/src/components/Nav/Nav.vue +129 -0
  170. package/src/components/Nav/README.md +23 -0
  171. package/src/components/PropertySearchbar/PropertySearchbar.vue +206 -0
  172. package/src/components/PropertySearchbar/README.md +26 -0
  173. package/src/components/Snapshot/README.md +21 -0
  174. package/src/components/Snapshot/Snapshot.vue +33 -0
  175. package/src/components/Tabs/README.md +27 -0
  176. package/src/components/Tabs/Tab.vue +17 -0
  177. package/src/components/Tabs/Tabs.vue +55 -0
  178. package/src/components/Testimonial/README.md +26 -0
  179. package/src/components/Testimonial/Testimonial.vue +61 -0
  180. package/src/components/Timeline/README.md +18 -0
  181. package/src/components/Timeline/Timeline.vue +25 -0
  182. package/src/elements/Input/Input.vue +236 -0
  183. package/src/elements/Input/README.md +18 -0
  184. package/src/elements/Table/README.md +55 -0
  185. package/src/elements/Table/Table.vue +112 -0
  186. package/src/foundations/Icon/Icon.vue +21 -0
  187. package/src/foundations/Icon/README.md +11 -0
  188. package/src/foundations/Logo/Logo.vue +39 -0
  189. package/src/foundations/Logo/README.md +20 -0
  190. package/src/helpers/strings.js +12 -0
  191. package/src/index.js +21 -6
  192. package/src/assets/css/default.css +0 -99
  193. package/src/assets/logo.png +0 -0
  194. package/src/assets/scss/_variables.scss +0 -13
  195. package/src/components/KeyFacts/KeyFact.vue +0 -45
  196. package/src/components/KeyFacts/KeyFactGroup.vue +0 -44
  197. package/src/components/KeyFacts/README.md +0 -23
  198. package/src/components/KeyInformation/KeyInformation.vue +0 -23
  199. package/src/components/KeyInformation/README.md +0 -32
  200. package/src/components/PropertyTaskIntro/PropertyTaskIntro.vue +0 -74
  201. package/src/components/PropertyTaskIntro/README.md +0 -27
  202. package/src/components/TaskTitle/README.md +0 -24
  203. package/src/components/TaskTitle/TaskTitle.vue +0 -68
  204. package/src/components/VendorTable/README.md +0 -63
  205. package/src/components/VendorTable/VendorTable.vue +0 -49
@@ -0,0 +1,411 @@
1
+ // Declare global vars variable
2
+ $vars: ();
3
+ $varsMD: ();
4
+
5
+ // #region Grid Breakpoints, layouts
6
+ $grid-breakpoints: (
7
+ xs: 0,
8
+ sm: 36em, /* 576 */
9
+ md: 62em /* 992 */
10
+ );
11
+
12
+ @each $bp, $value in $grid-breakpoints {
13
+
14
+ $vars: map-merge((
15
+ --breakpoint-#{$bp}: #{$value}
16
+ ), $vars);
17
+ }
18
+
19
+ $device-xs-width: 375;
20
+ $device-sm-width: 768;
21
+ $device-md-width: 1440;
22
+
23
+ $container-max-widths: (
24
+ sm: 0,
25
+ md: 80em
26
+ );
27
+
28
+ $grid-columns: 12;
29
+ $grid-gutter-width: 1rem; // 15px
30
+
31
+ $container-padding-x: 20;
32
+ $container-padding-x-md: 60;
33
+ $container-padding: var(--container-padding-top) rem($container-padding-x) var(--container-padding-bottom) rem($container-padding-x);
34
+ $container-padding-md: var(--container-padding-top) rem($container-padding-x-md) var(--container-padding-bottom) rem($container-padding-x-md);
35
+
36
+ $vars: map-merge((
37
+ "--container-padding-top": 0,
38
+ "--container-padding-bottom": #{rem(16)},
39
+ "--container-padding-x": #{rem($container-padding-x)},
40
+ "--container-padding-x-md": #{rem($container-padding-x-md)},
41
+ "--container-padding": $container-padding,
42
+ "--container-padding-md": $container-padding-md
43
+ ), $vars);
44
+
45
+ $varsMD: map-merge((
46
+ "--container-padding": var(--container-padding-md),
47
+ "--container-padding-x": var(--container-padding-x-md)
48
+ ), $varsMD);
49
+ // #endregion
50
+
51
+ // #region Colours
52
+ // Default Bootstrap Theme vars
53
+ $primary: #00313c;
54
+ $secondary: #b4e6a5;
55
+ $success: #b4e6a5;
56
+ $info: #1ebee6;
57
+ $warning: #ffa500;
58
+ $danger: #dc3545;
59
+ $light: #ffd2d2;
60
+ $dark: #46003c;
61
+
62
+
63
+ // Functional/state variables
64
+ $colour-body: #6f6f6f;
65
+ $colour-muted: #9d9d9d;
66
+ $colour-border: #6f6f6f;
67
+ $colour-link: $primary;
68
+ $colour-focus: #000000;
69
+ $colour-hover: #000000;
70
+ $colour-active: $success;
71
+ $colour-selected: $success;
72
+
73
+ $theme-colors: ();
74
+ $theme-colors: map-merge((
75
+ "primary": $primary,
76
+ "secondary": $secondary,
77
+ "success": $success,
78
+ "info": $info,
79
+ "warning": $warning,
80
+ "danger": $danger,
81
+ "light": $light,
82
+ "dark": $dark
83
+ ), $theme-colors);
84
+
85
+
86
+ $theme-colors-rgb: map-loop($theme-colors, to-rgb, "$value");
87
+
88
+ @each $color, $value in $theme-colors-rgb {
89
+
90
+ $vars: map-merge((
91
+ --colour-#{$color}-rgb: #{$value}
92
+ ), $vars);
93
+ }
94
+ @each $color, $value in $theme-colors-rgb {
95
+
96
+ $vars: map-merge((
97
+ --colour-#{$color}: rgba(var(--colour-#{$color}-rgb),var(--alpha,1))
98
+ ), $vars);
99
+ }
100
+
101
+ @each $color, $value in $theme-colors-rgb {
102
+
103
+ $vars: map-merge((
104
+ --colour-#{$color}-theme: rgba(var(--colour-#{$color}-rgb),var(--alpha,1))
105
+ ), $vars);
106
+ }
107
+
108
+ // RGB Theme colours
109
+ @function show-css-var($identifier) {
110
+ @return rgba(var(--colour-#{$identifier}-rgb),var(--bs-bg-opacity,1));
111
+ }
112
+ @function show-css-var-text($identifier) {
113
+ @return rgba(var(--colour-#{$identifier}-rgb),var(--bs-text-opacity,1));
114
+ }
115
+ $utilities-bg-colors: map-loop($utilities-colors, show-css-var, "$key");
116
+ $utilities-text-colors: map-loop($utilities-colors, show-css-var-text, "$key");
117
+
118
+
119
+
120
+ // Colours that we want setting but not used for Bootstraps mixins, i.e. .text-primary, .bg-muted
121
+ $non-theme-colors: ();
122
+ $non-theme-colors: map-merge((
123
+ "muted": $colour-muted,
124
+ "border": $colour-border,
125
+ "link": $colour-link,
126
+ "focus": $colour-focus,
127
+ "hover": $colour-hover,
128
+ "active": $colour-active,
129
+ "selected": $colour-selected
130
+ ), $non-theme-colors);
131
+
132
+ @each $color, $value in $non-theme-colors {
133
+
134
+ $vars: map-merge((
135
+ --colour-#{$color}-theme: #{$value},
136
+ --colour-#{$color}: #{'var(--colour-'+$color+'-theme)'}
137
+ ), $vars);
138
+ }
139
+
140
+ $vars: map-merge((
141
+ "--colour-body-rgb": to-rgb($colour-body),
142
+ "--colour-white-rgb": to-rgb(#ffffff),
143
+ "--colour-black-rgb": to-rgb(#000000),
144
+ "--colour-body": rgba(var(--colour-body-rgb),var(--alpha,1)),
145
+ "--colour-white": rgba(var(--colour-white-rgb),var(--alpha,1)),
146
+ "--colour-black": rgba(var(--colour-black-rgb),var(--alpha,1))
147
+ ), $vars);
148
+
149
+ $gradient: linear-gradient(180deg, var(--colour-secondary) 0, var(--colour-info) 100%);
150
+
151
+ // #endregion
152
+
153
+
154
+
155
+ // #region fonts
156
+
157
+ $font-body: 'qanelasmedium', arial, sans-serif;
158
+ $font-heading: 'qanelas_softextrabold', arial, sans-serif;
159
+
160
+ $fonts: ();
161
+ $fonts: map-merge((
162
+ "heading": $font-heading,
163
+ "body": $font-body
164
+ ), $fonts);
165
+
166
+
167
+ @each $font, $value in $fonts {
168
+
169
+ $vars: map-merge((
170
+ --font-#{$font}: #{$value}
171
+ ), $vars);
172
+ }
173
+
174
+ // #endregion
175
+
176
+ // #region Type
177
+
178
+ $type-scale-1: #{rem(100)};
179
+ $type-scale-2: #{rem(60)};
180
+ $type-scale-3: #{rem(40)};
181
+ $type-scale-4: #{rem(32)};
182
+ $type-scale-5: #{rem(28)};
183
+ $type-scale-6: #{rem(16)};
184
+ $type-scale-7: #{rem(14)};
185
+
186
+
187
+ $h1-font-size: var(--fs-1);
188
+ $h2-font-size: var(--fs-2);
189
+ $h3-font-size: var(--fs-3);
190
+ $h4-font-size: var(--fs-4);
191
+ $h5-font-size: var(--fs-5);
192
+ $h6-font-size: var(--fs-6);
193
+
194
+ $font-sizes: (
195
+ 'display': $type-scale-3,
196
+ 1: $type-scale-3,
197
+ 2: $type-scale-4,
198
+ 3: $type-scale-5,
199
+ 4: $type-scale-6,
200
+ 5: $type-scale-6,
201
+ 6: $type-scale-6,
202
+ 'badge': $badge-font-size,
203
+ 'small': $type-scale-7,
204
+ 'strapline': $type-scale-6
205
+ );
206
+
207
+ @each $size, $value in $font-sizes {
208
+
209
+ $vars: map-merge((
210
+ --fs-#{$size}: #{$value}
211
+ ), $vars);
212
+ }
213
+
214
+ $headings-margin-bottom: clamp(1rem,0.5em,0.5em);
215
+ $headings-font-style: normal;
216
+ $headings-line-height: clamp(1em,2.5rem,clamp(1.5em,1rem,1.2em));
217
+ $display-line-height: $headings-line-height;
218
+
219
+ @if $compatible == 'true' {
220
+ $headings-font-family: $font-heading;
221
+ $headings-font-weight: 700;
222
+ $headings-color: $primary;
223
+ }
224
+ @else {
225
+ $headings-font-family: var(--font-heading);
226
+ $headings-font-weight: var(--heading-weight);
227
+ $headings-color: var(--colour-primary);
228
+ }
229
+
230
+ $font-md-sizes: (
231
+ 'display': $type-scale-1,
232
+ 1: $type-scale-2,
233
+ 2: $type-scale-3,
234
+ 3: $type-scale-4,
235
+ 4: $type-scale-5,
236
+ 'strapline': $type-scale-5
237
+ );
238
+
239
+ @each $size, $value in $font-md-sizes {
240
+
241
+ $varsMD: map-merge((
242
+ --fs-#{$size}: #{$value}
243
+ ), $varsMD);
244
+ }
245
+
246
+ $vars: map-merge((
247
+ --heading-weight: 700
248
+ ), $vars);
249
+
250
+ $content-max-width: rem(820);
251
+ $paragraph-margin-bottom: 2rem;
252
+
253
+ // #endregion
254
+
255
+ // #region Buttons
256
+ $btn-border-radius: 1rem;
257
+ $btn-border-radius-sm: 1rem;
258
+ $btn-border-radius-lg: 1rem;
259
+
260
+ $btn-padding-y: 0.5rem;
261
+ $btn-padding-x: 1.5rem;
262
+ $btn-padding-y-sm: $btn-padding-y;
263
+ $btn-padding-x-sm: $btn-padding-x;
264
+ $btn-padding-y-md: $btn-padding-y;
265
+ $btn-padding-x-md: $btn-padding-x;
266
+
267
+ // #endregion
268
+
269
+ // #region Forms
270
+ // label
271
+ $form-label-font-size: $h5-font-size;
272
+ $form-label-font-weight: bold;
273
+ $form-label-color: var(--colour-heading);
274
+ $form-label-margin-bottom: 0.25rem;
275
+ // input field
276
+ $input-font-size: 1rem;
277
+ $input-font-weight: normal;
278
+ $input-line-height: 1.5;
279
+ $input-padding-y: 0.75em;
280
+ $input-padding-x: 1em;
281
+ $input-border-radius: rem(10);
282
+ $input-border-color: var(--colour-border);
283
+
284
+ // sm
285
+ $input-height-sm: null;
286
+ $input-font-size-sm: #{rem(14)};
287
+ $input-border-radius-sm: null; // Inherit default value
288
+ $input-padding-y-sm: null;
289
+ $input-padding-x-sm: null;
290
+
291
+ // lg
292
+ $input-height-lg: null;
293
+ $input-font-size-lg: #{rem(24)};
294
+ $input-border-radius-lg: false; // Inherit default value
295
+ $input-padding-y-lg: null;
296
+ $input-padding-x-lg: null;
297
+
298
+ // Input group
299
+ $input-group-addon-bg: white;
300
+ $input-group-addon-border-color: var(--colour-border);
301
+
302
+
303
+
304
+ // Select
305
+ $form-select-padding-y: $input-padding-y;
306
+ //$form-select-indicator-padding
307
+ $form-select-padding-x: #{$input-padding-x};
308
+ $form-select-border-color: var(--colour-border);
309
+ $form-select-border-radius: $input-border-radius;
310
+
311
+ // Checkbox
312
+ $form-check-input-width: 1.5rem;
313
+ $form-check-min-height: #{rem(28)};
314
+ $form-check-padding-start: 2rem;
315
+ $form-check-margin-bottom: #{rem(16)};
316
+
317
+ $form-check-input-border: 1px solid var(--colour-border);
318
+
319
+ $form-check-input-checked-color: $primary;
320
+ $form-check-input-checked-bg-color: var(--colour-success);
321
+ $form-check-input-checked-border-color: var(--colour-border);
322
+ $form-check-input-checked-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-checked-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 10l3 3l6-6'/></svg>");
323
+
324
+ $form-check-input-indeterminate-color: $primary;
325
+ $form-check-input-indeterminate-bg-color: var(--colour-success);
326
+ $form-check-input-indeterminate-border-color: var(--colour-success);
327
+ $form-check-input-indeterminate-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-indeterminate-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 10h8'/></svg>");
328
+
329
+ $form-switch-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$colour-border}'/></svg>");
330
+ $form-switch-focus-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$colour-focus}'/></svg>");
331
+ $form-switch-checked-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$primary}'/></svg>");
332
+
333
+ $form-check-radio-checked-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='2' fill='#{$primary}'/></svg>");
334
+
335
+
336
+ // #endregion
337
+
338
+ // #region Cards
339
+ $card-border-width: 0;
340
+ $card-border-radius: rem(10);
341
+ $card-spacer-y: 1.5rem;
342
+ $card-spacer-x: 1.25rem;
343
+
344
+
345
+ $card-cap-padding-y: 1.5rem;
346
+ $card-cap-padding-x: 1.25rem;
347
+
348
+
349
+
350
+ $card-cap-bg: transparent;
351
+ // #endregion card-variables
352
+
353
+ // #region Icons
354
+ $icon-blank: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='M17 13v6c0 0.276-0.111 0.525-0.293 0.707s-0.431 0.293-0.707 0.293h-11c-0.276 0-0.525-0.111-0.707-0.293s-0.293-0.431-0.293-0.707v-11c0-0.276 0.111-0.525 0.293-0.707s0.431-0.293 0.707-0.293h6c0.552 0 1-0.448 1-1s-0.448-1-1-1h-6c-0.828 0-1.58 0.337-2.121 0.879s-0.879 1.293-0.879 2.121v11c0 0.828 0.337 1.58 0.879 2.121s1.293 0.879 2.121 0.879h11c0.828 0 1.58-0.337 2.121-0.879s0.879-1.293 0.879-2.121v-6c0-0.552-0.448-1-1-1s-1 0.448-1 1zM10.707 14.707l9.293-9.293v3.586c0 0.552 0.448 1 1 1s1-0.448 1-1v-6c0-0.136-0.027-0.265-0.076-0.383s-0.121-0.228-0.216-0.323c-0.001-0.001-0.001-0.001-0.002-0.002-0.092-0.092-0.202-0.166-0.323-0.216-0.118-0.049-0.247-0.076-0.383-0.076h-6c-0.552 0-1 0.448-1 1s0.448 1 1 1h3.586l-9.293 9.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0z' stroke-width='2px'></path></svg>");
355
+ $icon-sort: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath opacity='.3' d='M51 1l25 23 24 22H1l25-22zm0 100l25-23 24-22H1l25 22z'/%3E%3C/svg%3E");
356
+ $icon-arrow: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'><path d='M6.5,2l9,9-9,9' style='fill:none;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px'/></svg>");
357
+
358
+ $vars: map-merge((
359
+ --icon-blank: #{escape-svg($icon-blank)},
360
+ --icon-sort: #{$icon-sort},
361
+ --icon-arrow: #{escape-svg($icon-arrow)},
362
+ ), $vars);
363
+ // #endregion
364
+
365
+ // #region pagination
366
+ // Default
367
+ $pagination-color: var(--colour-primary);
368
+ $pagination-disabled-color: var(--colour-muted);
369
+ $pagination-bg: transparent;
370
+ $pagination-border-width: 1px;
371
+ $pagination-border-color: var(--colour-border);
372
+
373
+ // Hover and focus
374
+ $pagination-hover-color: var(--colour-primary);
375
+ $pagination-hover-bg: var(--colour-muted);
376
+ $pagination-hover-border-color: var(--colour-border);
377
+ $pagination-focus-color: var(--colour-primary);
378
+ $pagination-focus-bg: var(--colour-muted);
379
+
380
+ // Active
381
+ $pagination-active-color: white;
382
+ $pagination-active-bg: var(--colour-primary);
383
+ $pagination-active-border-color: var(--colour-primary);
384
+
385
+ // Disabled
386
+ $pagination-disabled-bg: $pagination-bg;
387
+ $pagination-disabled-border-color: $pagination-border-color;
388
+ // #endregion
389
+
390
+ // #region Accordion
391
+ $accordion-button-padding-y: var(--accordion-y-padding);
392
+ $accordion-button-padding-x: var(--accordion-indent);
393
+ $accordion-button-color: var(--colour-primary);
394
+ $accordion-button-bg: transparent;
395
+
396
+ $accordion-icon-color: $primary;
397
+ $accordion-icon-active-color: $primary;
398
+
399
+ $accordion-button-icon: var(--icon-arrow);
400
+
401
+ $accordion-button-active-color: var(--colour-primary);
402
+ $accordion-button-active-bg: transparent;
403
+
404
+ $accordion-border-color: var(--colour-border);
405
+ $accordion-border-width: 1px;
406
+ $accordion-bg: transparent;
407
+
408
+ $accordion-body-padding-y: 1rem;
409
+ $accordion-body-padding-x: var(--accordion-indent);
410
+
411
+ // #endregion
@@ -0,0 +1,195 @@
1
+ // Accordion
2
+ .accordion {
3
+ --accordion-indent: 0.75rem;
4
+ --accordion-right-padding: 3rem;
5
+ --accordion-y-padding: 1rem;
6
+ --accordion-icon-size: #{rem(30)};
7
+ --accordion-icon-top: #{rem(12)};
8
+
9
+ @include media-breakpoint-up(md) {
10
+ //--accordion-indent: 1rem;
11
+ --accordion-right-padding: 6rem;
12
+ --accordion-y-padding: 2rem;
13
+ --accordion-icon-size: #{rem(48)};
14
+ --accordion-icon-top: #{rem(20)};
15
+ }
16
+ }
17
+
18
+ .accordion-button {
19
+
20
+ padding: $accordion-button-padding-y var(--accordion-right-padding) $accordion-button-padding-y $accordion-button-padding-x;
21
+ color: $accordion-button-color;
22
+ text-align: left; // Reset button style
23
+ background-color: $accordion-button-bg;
24
+ overflow-anchor: none;
25
+ @include transition($accordion-transition);
26
+
27
+ --marker-bg: var(--colour-secondary);
28
+ cursor: pointer;
29
+ position: relative;
30
+
31
+ .badge {
32
+ vertical-align: bottom;
33
+ margin-left: 0.5em;
34
+ margin-right: 0.5em;
35
+ margin-bottom: 0.1em;
36
+ }
37
+
38
+
39
+ &:before,
40
+ &:after {
41
+
42
+ content: "";
43
+ position: absolute;
44
+ right: var(--accordion-indent);
45
+ top: var(--accordion-icon-top);
46
+ margin-top: var(--accordion-icon-size-half);
47
+ width: var(--accordion-icon-size);
48
+ height: var(--accordion-icon-size);
49
+ }
50
+
51
+ &:before {
52
+ text-indent: 100%;
53
+ white-space: nowrap;
54
+ overflow: hidden;
55
+ background: var(--marker-bg);
56
+ border-radius: 100%;
57
+ }
58
+
59
+ // Accordion icon
60
+ &::after {
61
+ background: currentColor;
62
+ mask-image: escape-svg($accordion-button-icon);
63
+ mask-size: 50%;
64
+ mask-repeat: no-repeat;
65
+ mask-position: 50% 50%;
66
+
67
+ -webkit-mask-image: escape-svg($accordion-button-icon);
68
+ -webkit-mask-size: 50%;
69
+ -webkit-mask-repeat: no-repeat;
70
+ -webkit-mask-position: 50% 50%;
71
+
72
+ @include transition($accordion-icon-transition);
73
+ transform: rotate(90deg);
74
+ }
75
+
76
+ &:hover,
77
+ &:focus {
78
+
79
+ --marker-bg: var(--colour-warning);
80
+ color: var(--colour-hover);
81
+ }
82
+
83
+ &:hover {
84
+ z-index: 2;
85
+ }
86
+
87
+ &:focus {
88
+ z-index: 3;
89
+ border-color: $accordion-button-focus-border-color;
90
+ outline: 0;
91
+ box-shadow: $accordion-button-focus-box-shadow;
92
+ }
93
+
94
+ [open] > summary > & {
95
+ color: $accordion-button-active-color;
96
+ background-color: $accordion-button-active-bg;
97
+
98
+ &::after {
99
+
100
+ transform: rotate(-90deg);
101
+ }
102
+ }
103
+ }
104
+
105
+ // #region Coloured summary
106
+ summary[class*="bg-"] {
107
+
108
+ .accordion-button {
109
+
110
+ border-bottom: 1px solid var(--colour-border);
111
+ margin-bottom: -1px;
112
+
113
+ &:before {
114
+ background: none!important;
115
+ }
116
+ }
117
+
118
+ &:hover .accordion-button {
119
+ opacity: 0.8;
120
+ }
121
+
122
+ & + .accordion-body {
123
+
124
+ padding-top: 2rem;
125
+ }
126
+ }
127
+ // #endregion
128
+
129
+
130
+
131
+ .accordion-header {
132
+ margin-bottom: 0;
133
+ }
134
+
135
+ .accordion-item {
136
+ background-color: $accordion-bg;
137
+ border-bottom: $accordion-border-width solid $accordion-border-color;
138
+ margin-bottom: 2rem;
139
+
140
+ &:first-of-type {
141
+ border-top: $accordion-border-width solid $accordion-border-color;
142
+ }
143
+
144
+ & + .accordion-item {
145
+ margin-top: -2rem;
146
+ }
147
+ }
148
+
149
+ .accordion-body {
150
+ text-align: left;
151
+ padding: 0 $accordion-body-padding-x;
152
+ }
153
+
154
+ // #region Straight edge
155
+ .accordion--straight {
156
+ > details > summary:not([class*="bg-"]) > .accordion-button,
157
+ > details > .accordion-body {
158
+ padding-left: 0!important;
159
+ }
160
+
161
+ > details > .accordion-body {
162
+ padding-right: 0!important;
163
+ }
164
+ }
165
+ // #endregion
166
+
167
+ // #region Child accordion
168
+ .accordion .accordion {
169
+
170
+ &:first-child {
171
+
172
+ padding-top: 1rem;
173
+ }
174
+
175
+ &:last-child {
176
+
177
+ padding-bottom: 2rem;
178
+ }
179
+
180
+ .accordion-button {
181
+ padding: 1rem 3rem 1rem var(--accordion-indent);
182
+
183
+ &:before,
184
+ &:after {
185
+ top: 0.75rem;
186
+ height: 2rem;
187
+ width: 2rem;
188
+ right: 0.5rem;
189
+ }
190
+ &:before {
191
+ background-color: var(--colour-light);
192
+ }
193
+ }
194
+ }
195
+ // #endregion