@iamproperty/components 3.4.6 → 3.4.7

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 (149) hide show
  1. package/assets/css/components/accordion.css.map +1 -1
  2. package/assets/css/components/applied-filters.css +1 -0
  3. package/assets/css/components/applied-filters.css.map +1 -0
  4. package/assets/css/components/card.css +1 -1
  5. package/assets/css/components/card.css.map +1 -1
  6. package/assets/css/components/charts.css +1 -1
  7. package/assets/css/components/charts.css.map +1 -1
  8. package/assets/css/components/container.css +1 -1
  9. package/assets/css/components/container.css.map +1 -1
  10. package/assets/css/components/dialog.css +1 -0
  11. package/assets/css/components/dialog.css.map +1 -0
  12. package/assets/css/components/forms.css +1 -1
  13. package/assets/css/components/forms.css.map +1 -1
  14. package/assets/css/components/lists.css +1 -1
  15. package/assets/css/components/lists.css.map +1 -1
  16. package/assets/css/components/nav.css +1 -1
  17. package/assets/css/components/nav.css.map +1 -1
  18. package/assets/css/components/pagination.css +1 -0
  19. package/assets/css/components/pagination.css.map +1 -0
  20. package/assets/css/components/table.css +1 -0
  21. package/assets/css/components/table.css.map +1 -0
  22. package/assets/css/core.min.css +1 -1
  23. package/assets/css/core.min.css.map +1 -1
  24. package/assets/css/style.min.css +1 -1
  25. package/assets/css/style.min.css.map +1 -1
  26. package/assets/js/bundle.js +18 -11
  27. package/assets/js/components/accordion/accordion.component.js +6 -0
  28. package/assets/js/components/accordion/accordion.component.min.js +3 -3
  29. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  30. package/assets/js/components/applied-filters/applied-filters.component.js +26 -0
  31. package/assets/js/components/card/card.component.js +91 -0
  32. package/assets/js/components/card/card.component.min.js +21 -0
  33. package/assets/js/components/card/card.component.min.js.map +1 -0
  34. package/assets/js/components/filterlist/filterlist.component.js +49 -0
  35. package/assets/js/components/filterlist/filterlist.component.min.js +23 -0
  36. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -0
  37. package/assets/js/components/header/header.component.js +6 -0
  38. package/assets/js/components/header/header.component.min.js +2 -2
  39. package/assets/js/components/header/header.component.min.js.map +1 -1
  40. package/assets/js/components/pagination/pagination.component.js +34 -0
  41. package/assets/js/components/table/table.component.js +104 -0
  42. package/assets/js/components/table/table.component.min.js +24 -0
  43. package/assets/js/components/table/table.component.min.js.map +1 -0
  44. package/assets/js/components/tabs/tabs.component.js +6 -0
  45. package/assets/js/components/tabs/tabs.component.min.js +17 -0
  46. package/assets/js/components/tabs/tabs.component.min.js.map +1 -0
  47. package/assets/js/dynamic.js +7 -18
  48. package/assets/js/dynamic.min.js +2 -53
  49. package/assets/js/dynamic.min.js.map +1 -1
  50. package/assets/js/flat-components.js +27 -9
  51. package/assets/js/modules/applied-filters.js +100 -0
  52. package/assets/js/modules/data-layer.js +45 -0
  53. package/assets/js/modules/filterlist.js +32 -0
  54. package/assets/js/modules/helpers.js +77 -49
  55. package/assets/js/modules/pagination.js +33 -0
  56. package/assets/js/modules/table.js +507 -420
  57. package/assets/js/modules/tabs.js +6 -0
  58. package/assets/js/modules/youtubevideo.js +53 -61
  59. package/assets/js/scripts.bundle.js +77 -62
  60. package/assets/js/scripts.bundle.js.map +1 -1
  61. package/assets/js/scripts.bundle.min.js +2 -2
  62. package/assets/js/scripts.bundle.min.js.map +1 -1
  63. package/assets/js/tests/filterlist.spec.js +22 -0
  64. package/assets/js/tests/pagination.spec.js +15 -0
  65. package/assets/js/tests/table.spec.js +147 -0
  66. package/assets/sass/_components.scss +1 -2
  67. package/assets/sass/_corefiles.scss +5 -4
  68. package/assets/sass/_functions/utilities.scss +16 -0
  69. package/assets/sass/_functions/variables.scss +32 -18
  70. package/assets/sass/_tests/colours.spec.scss +1 -1
  71. package/assets/sass/components/applied-filters.scss +65 -0
  72. package/assets/sass/components/card.scss +177 -233
  73. package/assets/sass/components/charts.scss +4 -0
  74. package/assets/sass/components/container.scss +7 -2
  75. package/assets/sass/components/dialog.scss +202 -0
  76. package/assets/sass/components/forms.scss +37 -5
  77. package/assets/sass/components/lists.scss +15 -0
  78. package/assets/sass/components/nav.scss +5 -1
  79. package/assets/sass/components/pagination.scss +140 -0
  80. package/assets/sass/components/table.scss +419 -0
  81. package/assets/sass/foundations/icons.scss +1 -1
  82. package/assets/sass/{components → foundations}/links.scss +26 -0
  83. package/assets/sass/foundations/reboot.scss +19 -13
  84. package/assets/svg/illustrations/table.svg +165 -0
  85. package/assets/ts/bundle.ts +23 -12
  86. package/assets/ts/components/accordion/accordion.component.ts +7 -0
  87. package/assets/ts/components/applied-filters/README.md +5 -0
  88. package/assets/ts/components/applied-filters/applied-filters.component.ts +33 -0
  89. package/assets/ts/components/card/README.md +22 -0
  90. package/assets/ts/components/card/card.component.ts +117 -0
  91. package/assets/ts/components/filterlist/README.md +17 -0
  92. package/assets/ts/components/filterlist/filterlist.component.ts +60 -0
  93. package/assets/ts/components/header/header.component.ts +8 -0
  94. package/assets/ts/components/pagination/README.md +11 -0
  95. package/assets/ts/components/pagination/pagination.component.ts +45 -0
  96. package/assets/ts/components/table/README.md +23 -0
  97. package/assets/ts/components/table/table.component.ts +128 -0
  98. package/assets/ts/components/tabs/tabs.component.ts +7 -0
  99. package/assets/ts/dynamic.ts +12 -19
  100. package/assets/ts/flat-components.ts +37 -9
  101. package/assets/ts/modules/applied-filters.ts +146 -0
  102. package/assets/ts/modules/data-layer.ts +58 -0
  103. package/assets/ts/modules/filterlist.ts +46 -0
  104. package/assets/ts/modules/helpers.ts +90 -60
  105. package/assets/ts/modules/pagination.ts +44 -0
  106. package/assets/ts/modules/table.ts +598 -433
  107. package/assets/ts/modules/tabs.ts +8 -1
  108. package/assets/ts/modules/youtubevideo.ts +58 -63
  109. package/assets/ts/tests/filterlist.spec.ts +29 -0
  110. package/assets/ts/tests/pagination.spec.ts +21 -0
  111. package/assets/ts/tests/table.spec.ts +191 -0
  112. package/dist/components.es.js +1264 -1296
  113. package/dist/components.umd.js +70 -65
  114. package/dist/style.css +1 -1
  115. package/package.json +7 -5
  116. package/src/components/AppliedFilters/AppliedFilters.vue +20 -0
  117. package/src/components/AppliedFilters/README.md +5 -0
  118. package/src/components/Card/Card.vue +11 -112
  119. package/src/components/Card/README.md +16 -18
  120. package/src/components/Carousel/Carousel.vue +49 -10
  121. package/src/components/Chart/Chart.vue +46 -4
  122. package/src/components/Filterlist/Filterlist.vue +20 -0
  123. package/src/components/Filterlist/README.md +17 -0
  124. package/src/components/Pagination/Pagination.vue +30 -0
  125. package/src/components/Pagination/README.md +11 -0
  126. package/src/components/Table/README.md +29 -44
  127. package/src/components/Table/Table.spec.js +5 -37
  128. package/src/components/Table/Table.vue +16 -91
  129. package/src/foundations/YoutubeVideo/YoutubeVideo.vue +1 -1
  130. package/src/index.js +3 -2
  131. package/assets/css/components/cardDeck.css +0 -1
  132. package/assets/css/components/cardDeck.css.map +0 -1
  133. package/assets/css/components/links.css +0 -1
  134. package/assets/css/components/links.css.map +0 -1
  135. package/assets/css/components/modal.css +0 -1
  136. package/assets/css/components/modal.css.map +0 -1
  137. package/assets/css/components/tables.css +0 -1
  138. package/assets/css/components/tables.css.map +0 -1
  139. package/assets/js/modules/modal.js +0 -69
  140. package/assets/sass/components/cardDeck.scss +0 -108
  141. package/assets/sass/components/modal.scss +0 -136
  142. package/assets/sass/components/tables.scss +0 -291
  143. package/assets/ts/modules/modal.ts +0 -91
  144. package/src/components/CardDeck/CardDeck.spec.js +0 -99
  145. package/src/components/CardDeck/CardDeck.vue +0 -77
  146. package/src/components/CardDeck/README.md +0 -25
  147. package/src/components/Modal/Modal.spec.js +0 -22
  148. package/src/components/Modal/Modal.vue +0 -43
  149. package/src/components/Modal/README.md +0 -20
@@ -1,296 +1,240 @@
1
1
  @use "../_func.scss" as *;
2
2
 
3
- @import "../../../node_modules/bootstrap/scss/_card.scss";
4
-
5
- // #region Defaul Card
6
- // Reset the link
7
- a.card {
8
-
9
- cursor: pointer;
10
-
11
- &:before {
12
- display: none;
13
- }
14
- }
15
-
16
- .card:not(.card--simple) {
17
-
18
- @include reset-colours();
19
- }
3
+ // #region Default card
20
4
  .card {
5
+ --top-padding: 2rem;
6
+ --right-padding: #{rem(16+16+24)};
7
+ --bottom-padding: 2rem;
8
+ --left-padding: 1rem;
9
+ --icon-right: 1rem;
21
10
 
22
- --spread: #{rem(12)};
23
- box-shadow: 0 2px var(--spread) 0 rgba(154,154,154,0.25);
11
+ position: relative;
12
+ box-shadow: 2px 6px 12px rgba(0,0,0,0.2);
13
+ border-radius: rem(8);
14
+ font-weight: bold;
15
+ font-size: rem(18);
16
+ line-height: rem(24);
17
+ color: var(--colour-primary);
24
18
  min-height: 100%;
19
+ width: 100%;
20
+ text-align: left;
21
+ display: block;
25
22
  overflow: hidden;
26
- max-width: rem(925);
23
+ z-index: 0;
24
+ background: #ffffff;
27
25
 
28
- .card-title {
29
- margin-bottom: 0;
30
- padding-bottom: 0;
26
+ &.border-0 {
27
+ box-shadow: none;
28
+ --left-padding: 0rem;
29
+ outline-offset: 1px!important;
31
30
  }
32
31
 
33
- &:hover,
34
- &:focus {
35
- --spread: #{rem(6)};
36
-
37
- .card-body *:not(.badge) {
38
- color: var(--colour-hover)!important;
39
- }
32
+ &__body {
33
+
34
+ position: relative;
35
+ padding: var(--top-padding) var(--right-padding) var(--bottom-padding) var(--left-padding);
36
+ z-index: -1;
40
37
  }
41
38
 
42
- &:active {
43
- --spread: #{rem(3)};
39
+ &:before,
40
+ &:after {
41
+ content: "";
42
+ position: absolute;
43
+ right: var(--icon-right);
44
+ bottom: var(--bottom-padding);
45
+ height: rem(24);
46
+ width: rem(24);
47
+ background: var(--colour-warning);
48
+ border-radius: 50%;
44
49
  }
45
- }
46
50
 
47
- .card-header__wrapper {
48
- padding-bottom: 0;
49
- padding-top: 55%;
50
- position: relative;
51
- overflow: hidden;
52
- background: rgba(0,0,0,0.1);
51
+ &:after {
52
+ background: var(--colour-primary);
53
+ mask-image: var(--icon-arrow);
54
+ mask-size: 50%;
55
+ mask-repeat: no-repeat;
56
+ mask-position: 50% 50%;
57
+ -webkit-mask-image: var(--icon-arrow);
58
+ -webkit-mask-size: 50%;
59
+ -webkit-mask-repeat: no-repeat;
60
+ -webkit-mask-position: 50% 50%;
61
+ z-index: 2;
62
+ }
53
63
 
54
- > * {
64
+ &:is(:hover,:focus,.hover) {
65
+ --icon-right: 0.5rem;
66
+ outline: 2px solid var(--colour-primary);
67
+ outline-offset: -2px;
55
68
 
56
- position: absolute;
57
- top: 0;
58
- left: 0;
59
- width: 100%;
60
- height: 100%;
69
+ &:before {
70
+ background: var(--colour-primary);
71
+ }
72
+ &:after {
73
+ background: #ffffff;
74
+ }
61
75
  }
62
76
 
63
- .card-image {
64
- position: absolute;
65
- top: 0;
66
- left: 0;
67
- width: 101%;
68
- height: 101%;
69
- object-fit: cover;
70
- }
71
-
72
- .card-header {
73
- display: flex;
74
- flex-wrap: nowrap;
75
- flex-direction: column;
76
- align-items: flex-start;
77
- justify-content: space-between;
77
+ &:is(:active, .active){
78
+ --icon-right: 0.5rem;
79
+ outline: none;
80
+
81
+ &:before {
82
+ background: var(--colour-warning);
83
+ }
84
+ &:after {
85
+ background: var(--colour-primary);
86
+ }
78
87
  }
79
88
 
80
- .card-logo {
81
- position: absolute;
82
- top: 0;
83
- right: 0;
84
- left: auto;
85
- height: 3.5rem;
86
- width: 8rem;
87
- object-fit: contain;
88
- object-position: right;
89
+ &:is(:active){
90
+ background: #FCFCFC;
89
91
  }
90
- }
91
-
92
- .card-banner {
93
- padding: 0.5rem;
94
-
95
- &__tag {
96
-
97
- position: absolute;
98
- top: 0;
99
- left: 0;
100
- background-color: var(--colour-secondary);
101
- font-size: rem(14);
92
+
93
+ span {
94
+ display: block;
102
95
  font-weight: bold;
103
- aspect-ratio: 1;
104
- padding: 0.75rem;
105
- border-radius: 50%;
106
- transform: translate(-0.25rem,-1.25rem) rotate(-25deg);
107
- box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15)!important;
108
-
96
+ padding-top: rem(24);
97
+ font-size: rem(16);
109
98
  }
110
- }
111
99
 
112
- .card-body {
100
+ &:has(.card__illustration) .card__body {
113
101
 
114
- color: var(--colour-body);
102
+ align-items: center;
103
+ display: flex;
115
104
 
116
- *:last-child {
117
- padding-bottom: 0;
118
- margin-bottom: 0;
105
+ .card__illustration {
106
+ height: rem(64);
107
+ width: rem(64);
108
+ margin-right: rem(24);
109
+ margin-top: rem(-20);
110
+ margin-bottom: rem(-20);
111
+ position: relative;
112
+
113
+ img {
114
+ position: absolute;
115
+ top: 0;
116
+ left: 0;
117
+ width: 100%;
118
+ height: 100%;
119
+ object-fit: contain;
120
+ }
121
+ }
119
122
  }
120
123
  }
121
124
 
122
- .card-footer {
123
- padding-top: 0;
124
- }
125
-
126
- // Add a default margin bottom
127
- .row:not([class*="g-"]) .card {
128
125
 
129
- margin-bottom: 1rem;
126
+ ::slotted(i){
127
+
128
+ font-size: rem(18)!important;
129
+ height: rem(18)!important;
130
+ margin: 0 0 0.5rem 0!important;
131
+ font-weight: 400!important;
132
+ display: block!important;
130
133
  }
131
- // #endregion
132
-
133
- // #region Simple card variant
134
- .card--simple {
135
134
 
136
- box-shadow: none;
137
- min-height: 0;
138
- background: none;
135
+ ::slotted(span){
139
136
 
140
- .card-header__wrapper {
141
-
142
- @include border-radius($card-border-radius);
143
- margin-bottom: 1rem;
144
- }
145
-
146
- .card-body {
147
- padding-top: 0;
148
- }
149
- .card-body,
150
- .card-footer {
151
- padding-left: 0;
152
- padding-right: 0;
153
- }
137
+ display: block;
138
+ font-weight: normal;
139
+ padding-top: rem(24);
140
+ font-size: rem(16);
154
141
  }
155
142
  // #endregion
156
143
 
157
- // #region Quick link card
158
- .card--quick{
159
-
160
- .card-header,
161
- .card-footer,
162
- .card-body > *:not(.card-title) {
163
- display: none;
164
- }
144
+ //#region Filter card
145
+ .card--filter {
146
+ --top-padding: #{rem(24)};
147
+ --right-padding: 1rem;
148
+ --bottom-padding: #{rem(24)};
149
+ --left-padding: 1rem;
165
150
 
166
- .card-title {
167
- margin-bottom: 0;
168
- padding-bottom: 0;
169
- padding-left: 2em;
170
- position: relative;
151
+ border-left: rem(12) solid var(--colour,var(--colour-primary));
171
152
 
172
- &:before,
173
- &:after {
174
-
175
- content: "";
176
- position: absolute;
177
- left: 0;
178
- top: 0;
179
- width: 1.2em;
180
- height: 1.2em;
181
- }
182
- &:before {
183
-
184
- left: 0.05em;
185
- background: currentColor;
186
- mask-image: escape-svg($accordion-button-icon);
187
- mask-size: 50%;
188
- mask-repeat: no-repeat;
189
- mask-position: 50% 50%;
190
-
191
- -webkit-mask-image: escape-svg($accordion-button-icon);
192
- -webkit-mask-size: 50%;
193
- -webkit-mask-repeat: no-repeat;
194
- -webkit-mask-position: 50% 50%;
195
- }
196
-
197
- &:after {
198
- border: 2px solid currentColor;
199
- border-radius: 50%;
200
- }
153
+ &:has(.card__total) .card__body{
201
154
 
155
+ align-items: center;
156
+ display: flex;
202
157
  }
203
- }
204
- // #endregion
205
-
206
- // #region Small cards
207
- .card--small {
208
158
 
209
- display: flex;
210
- flex-direction: row;
211
- align-items: center;
212
- padding-inline: 0.5rem;
213
-
214
- .card-header__wrapper,
215
- .card-body > *:not(.card-title) {
159
+ &:before,
160
+ &:after {
216
161
  display: none;
217
162
  }
218
163
 
219
- .card-body,
220
- .card-footer {
221
- padding: 0.5rem;
222
- }
223
-
224
- .card-title {
225
- margin: 0;
164
+ &:is(:hover,:focus,.hover) {
165
+ outline: none;
166
+ background: #EEEEEE;
167
+
168
+ .card__body {
169
+ background: #EEEEEE;
170
+ }
226
171
  }
227
172
 
228
- .btn {
229
- margin-right: 0;
230
- white-space: nowrap;
173
+ &:is(:active, .active){
174
+ outline: 2px solid var(--colour,var(--colour-primary));
175
+ outline-offset: -2px;
231
176
 
232
- &:not(.btn--link) {
233
- padding: 0.5em 1em
177
+ .card__body {
178
+ background: #ffffff;
234
179
  }
235
180
  }
236
181
 
237
- &:not([target="_blank"]) .btn-primary:not(.btn--link):after {
238
-
239
- content: "";
240
- height: 1em;
241
- width: 1em;
242
- margin-left: 0.5em;
243
- margin-right: -0.5em;
244
- display: inline-block;
245
- vertical-align: baseline;
246
- margin-bottom: -0.15em;
247
-
248
- mask-image: var(--icon-arrow);
249
- mask-size: 100% 100%;
250
- mask-repeat: no-repeat;
251
- mask-position: 0 0;
252
-
253
- -webkit-mask-image: var(--icon-arrow);
254
- -webkit-mask-size: 100% 100%;
255
- -webkit-mask-repeat: no-repeat;
256
- -webkit-mask-position: 0 0;
257
- background-color: currentColor;
182
+ &.card--has-icon {
183
+ --bottom-padding: #{rem(16)};
184
+ border: none;
258
185
  }
259
186
 
187
+ .icon {
188
+ font-size: rem(18)!important;
189
+ height: rem(18)!important;
190
+ margin: 0 0 0.5rem 0!important;
191
+ font-weight: 400!important;
192
+ display: block!important;
193
+ }
260
194
 
261
- @include media-breakpoint-up(md) {
195
+ .card__total {
196
+ font-size: rem(48);
197
+ line-height: rem(48);
198
+ padding-right: rem(16);
199
+ }
200
+ }
201
+ // #endregion
262
202
 
263
- flex-wrap: wrap;
264
- .card-footer {
265
- min-width: 100%;
266
- text-align: right;
203
+ // #region card with an image
204
+ .card:has(.card__head) {
205
+ .card__head {
206
+ padding-bottom: 0;
207
+ padding-top: 55%;
208
+ position: relative;
209
+ overflow: hidden;
210
+ background: rgba(0,0,0,0.1);
211
+ z-index: -1;
212
+
213
+ > img {
214
+ position: absolute;
215
+ top: 0;
216
+ left: 0;
217
+ width: 101%;
218
+ height: 101%;
219
+ object-fit: cover;
267
220
  }
268
221
  }
269
222
  }
223
+ // #endregion
270
224
 
271
- .card--danger,
272
- .card--warning,
273
- .card--success {
274
- position: relative;
275
- padding-left: 1.5rem;
225
+ //#region card with a footer
226
+ .card:has(.card__footer){
276
227
 
277
228
  &:after {
229
+ display: none;
230
+ }
278
231
 
279
- content: "";
280
- height: 100%;
281
- width: 1rem;
282
- background: var(--colour-danger);
232
+ .card__footer {
233
+ position: relative;
234
+ background: #ffffff;
235
+ padding: var(--top-padding) var(--right-padding) var(--bottom-padding) var(--left-padding);
236
+ z-index: -1;
283
237
  display: block;
284
- position: absolute;
285
- top: 0;
286
- left: 0;
287
238
  }
288
239
  }
289
-
290
- .card--warning:after {
291
- background: var(--colour-warning);
292
- }
293
- .card--success:after {
294
- background: var(--colour-success);
295
- }
296
- // #endregion
240
+ //#endregion
@@ -264,6 +264,8 @@ $chart-colors: map-merge((
264
264
  text-overflow: ellipsis;
265
265
  font-size: var(--label-size);
266
266
  display: none;
267
+ border: none;
268
+ min-width: auto;
267
269
 
268
270
  @include media-breakpoint-up(md) {
269
271
  display: block;
@@ -282,10 +284,12 @@ $chart-colors: map-merge((
282
284
  height: var(--percent, 0%);
283
285
  bottom: var(--bottom,0%);
284
286
  width: 50%;
287
+ min-width: 0;
285
288
  max-width: 10rem;
286
289
  position: relative;
287
290
  background: green;
288
291
  padding: 0;
292
+ border: none;
289
293
 
290
294
  &[data-label]:before {
291
295
  display: none;
@@ -61,8 +61,13 @@
61
61
 
62
62
  // #region Circles
63
63
  .container {
64
- position: relative;
65
- z-index: 1;
64
+
65
+
66
+ &:has(.circle){
67
+
68
+ position: relative;
69
+ z-index: 1;
70
+ }
66
71
 
67
72
  > .circle {
68
73
 
@@ -0,0 +1,202 @@
1
+ @use "sass:math";
2
+ @use "../_func" as *;
3
+
4
+ // non-js fallback
5
+ body:not(.js-enabled) dialog:not([open]):target {
6
+ display: block;
7
+ }
8
+
9
+ // #region Default styling of both modals and popovers
10
+ dialog[open] {
11
+
12
+ --dialog-padding: #{rem(24)};
13
+
14
+ width: fit-content;
15
+ height: fit-content;
16
+ border: none;
17
+ overscroll-behavior: contain;
18
+ background: white;
19
+ box-shadow: 0px 2px 9px rgba(0, 0, 0, 0.11);
20
+ border-radius: rem(28);
21
+ padding: var(--dialog-padding);
22
+
23
+ // Close button
24
+ > form:first-child {
25
+
26
+ position: static;
27
+ }
28
+
29
+ > form:first-child button,
30
+ > button:first-child {
31
+ position: absolute;
32
+ top: var(--dialog-padding);
33
+ right: var(--dialog-padding);
34
+ z-index: var(--index-floating);
35
+
36
+ text-indent: 300%;
37
+ overflow: hidden;
38
+ border: none;
39
+ height: rem(20);
40
+ width: rem(20);
41
+ background: transparent;
42
+
43
+ &:after {
44
+ content: "";
45
+ top: 0;
46
+ left: 0;
47
+ position: absolute;
48
+ display: block;
49
+ height: rem(20);
50
+ width: rem(20);
51
+ z-index: var(--index-focus);
52
+ background: currentColor;
53
+ mask-image: var(--icon-close);
54
+ mask-size: 100%;
55
+ mask-repeat: no-repeat;
56
+ mask-position: 50% 50%;
57
+ -webkit-mask-image: var(--icon-close);
58
+ -webkit-mask-size: 100%;
59
+ -webkit-mask-repeat: no-repeat;
60
+ -webkit-mask-position: 50% 50%;
61
+ }
62
+
63
+ & + * {
64
+ padding-right: rem(36);
65
+ }
66
+ }
67
+
68
+ > *:last-child {
69
+ margin-bottom: 0;
70
+ }
71
+ > :is(p):last-child {
72
+ padding-bottom: 0;
73
+ }
74
+ }
75
+ // #endregion
76
+
77
+ // #region modal styling
78
+ *:not(.dialog__wrapper) > dialog[open] {
79
+
80
+ min-width: 100%;
81
+ max-width: 80vw;
82
+ max-height: 85vh;
83
+ margin-top: 12vh;
84
+
85
+ @include media-breakpoint-up(sm) {
86
+
87
+ --dialog-padding: #{rem(56)};
88
+
89
+ min-width: 80vw;
90
+ max-height: 80vh;
91
+ margin-top: auto;
92
+ border-radius: rem(34);
93
+ }
94
+
95
+ @include media-breakpoint-up(md) {
96
+
97
+ min-width: rem(1112);
98
+ width: rem(1112);
99
+ max-width: rem(1112);
100
+ }
101
+
102
+ &:has(.youtube-embed){
103
+ padding: 0!important;
104
+ }
105
+ }
106
+
107
+
108
+
109
+ dialog::backdrop {
110
+ background: rgba(0, 0, 0, 0.3);
111
+ }
112
+ // #endregion
113
+
114
+ // #region popover styling
115
+ .dialog__wrapper {
116
+
117
+ position: relative;
118
+ display: inline-block;
119
+
120
+ > .btn:first-child {
121
+ &:after {
122
+ content: "";
123
+
124
+ display: inline-block;
125
+ margin-left: 0.5em;
126
+ margin-bottom: -0.15em;
127
+ height: 1em;
128
+ width: 1em;
129
+ z-index: var(--index-focus);
130
+ background: currentColor;
131
+ mask-image: var(--icon-arrow);
132
+ mask-size: 100%;
133
+ mask-repeat: no-repeat;
134
+ mask-position: 50% 50%;
135
+ -webkit-mask-image: var(--icon-arrow);
136
+ -webkit-mask-size: 100%;
137
+ -webkit-mask-repeat: no-repeat;
138
+ -webkit-mask-position: 50% 50%;
139
+
140
+ transform: rotate(90deg);
141
+ }
142
+ }
143
+
144
+ &:has(dialog[open]) > .btn:first-child:after {
145
+
146
+ transform: rotate(270deg);
147
+ }
148
+
149
+ > dialog[open] {
150
+
151
+ left: 0;
152
+ top: 100%;
153
+ z-index: var(--index-floating);
154
+ min-width: rem(320);
155
+ border-radius: rem(16);
156
+ max-width: rem(600);
157
+ }
158
+
159
+ &.dialog__wrapper--right > dialog[open]{
160
+
161
+ right: 0;
162
+ left: auto;
163
+ }
164
+
165
+ @include media-breakpoint-up(sm) {
166
+
167
+ &.dialog__wrapper--sm-left > dialog[open]{
168
+
169
+ left: 0;
170
+ right: auto;
171
+ }
172
+ &.dialog__wrapper--sm-right > dialog[open]{
173
+
174
+ right: 0;
175
+ left: auto;
176
+ }
177
+ }
178
+
179
+ @include media-breakpoint-up(md) {
180
+
181
+ &.dialog__wrapper--md-left > dialog[open]{
182
+
183
+ left: 0;
184
+ right: auto;
185
+ }
186
+ &.dialog__wrapper--md-right > dialog[open]{
187
+
188
+ right: 0;
189
+ left: auto;
190
+ }
191
+ }
192
+ }
193
+
194
+ // Show hide the indidual or multiple label
195
+ .dialog__wrapper:has(input:checked) .empty,
196
+ .dialog__wrapper:not(:has(input:checked)) .individual,
197
+ .dialog__wrapper:has(input:checked ~ input:checked) .individual,
198
+ .dialog__wrapper:not(:has(input:checked ~ input:checked)) .multiple {
199
+
200
+ display: none;
201
+ }
202
+ // #endregion