@iamproperty/components 4.1.0-beta → 4.1.0-beta-2

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 (40) hide show
  1. package/assets/css/components/actionbar.css +1 -1
  2. package/assets/css/components/actionbar.css.map +1 -1
  3. package/assets/css/components/card-global.css +1 -1
  4. package/assets/css/components/card-global.css.map +1 -1
  5. package/assets/css/components/dialog.css +1 -1
  6. package/assets/css/components/dialog.css.map +1 -1
  7. package/assets/css/components/forms.css +1 -1
  8. package/assets/css/components/forms.css.map +1 -1
  9. package/assets/css/core.min.css +1 -1
  10. package/assets/css/core.min.css.map +1 -1
  11. package/assets/css/style.min.css +1 -1
  12. package/assets/css/style.min.css.map +1 -1
  13. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  14. package/assets/js/components/actionbar/actionbar.component.min.js +4 -4
  15. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  16. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  17. package/assets/js/components/card/card.component.min.js +1 -1
  18. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  19. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  20. package/assets/js/components/header/header.component.min.js +1 -1
  21. package/assets/js/components/nav/nav.component.min.js +1 -1
  22. package/assets/js/components/notification/notification.component.min.js +1 -1
  23. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  24. package/assets/js/components/table/table.component.min.js +1 -1
  25. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  26. package/assets/js/dynamic.min.js +4 -4
  27. package/assets/js/dynamic.min.js.map +1 -1
  28. package/assets/js/modules/dialogs.js +5 -1
  29. package/assets/js/scripts.bundle.js +2 -2
  30. package/assets/js/scripts.bundle.js.map +1 -1
  31. package/assets/js/scripts.bundle.min.js +2 -2
  32. package/assets/js/scripts.bundle.min.js.map +1 -1
  33. package/assets/sass/components/actionbar.scss +7 -1
  34. package/assets/sass/components/card-global.scss +7 -0
  35. package/assets/sass/components/dialog.scss +44 -30
  36. package/assets/sass/components/forms.scss +99 -89
  37. package/assets/ts/modules/dialogs.ts +6 -1
  38. package/dist/components.es.js +407 -405
  39. package/dist/components.umd.js +52 -52
  40. package/package.json +1 -1
@@ -60,7 +60,10 @@
60
60
  justify-content: flex-end;
61
61
  align-items: center;
62
62
  height: rem(68);
63
- position: absolute;
63
+
64
+ @supports selector(:has(*)) {
65
+ position: absolute;
66
+ }
64
67
  inset: 0;
65
68
 
66
69
  @include container-up(sm) {
@@ -83,7 +86,10 @@
83
86
  }
84
87
 
85
88
  display: flex;
89
+
90
+ @supports selector(:has(*)) {
86
91
  opacity: 0;
92
+ }
87
93
  pointer-events: none;
88
94
  }
89
95
 
@@ -26,6 +26,12 @@ iam-card.card--flag {
26
26
  iam-card {
27
27
 
28
28
 
29
+ @supports not selector(:has(*)) {
30
+
31
+ margin-bottom: 2rem;
32
+ display: block;
33
+ }
34
+
29
35
  > div:has([type="checkbox"]) {
30
36
  display: contents;
31
37
 
@@ -43,6 +49,7 @@ iam-card {
43
49
  }
44
50
  }
45
51
 
52
+
46
53
  [data-select-container]:has([type="checkbox"]:checked) iam-card {
47
54
 
48
55
  > div:has([type="checkbox"]) {
@@ -279,10 +279,11 @@ dialog::backdrop {
279
279
  top: calc(var(--dialog-padding) * 4);
280
280
  }
281
281
 
282
+ @supports selector(:has(*)) {
282
283
  fieldset:not(.active) {
283
284
  display: none;
284
285
  }
285
-
286
+ }
286
287
  &:not(:has(fieldset.active)) fieldset:first-of-type{
287
288
  display: flex;
288
289
  flex-direction: column;
@@ -440,36 +441,49 @@ dialog::backdrop {
440
441
  margin-top: auto;
441
442
  text-align: right;
442
443
  }
443
- > form {
444
- display: contents
445
- }
446
- fieldset {
447
- display: flex;
448
- flex-direction: column;
449
- flex-grow: 1;
450
- position: relative;
451
-
452
- overflow: auto;
453
- margin-bottom: calc(var(--dialog-padding) * -1);
454
- padding-bottom: var(--dialog-padding);
455
-
456
-
457
- padding-right: calc(var(--dialog-padding) - 10px);
458
- margin-right: calc((var(--dialog-padding) * -1) + 10px);
444
+
445
+
446
+ @supports not selector(:has(*)) {
447
+ > form {
448
+ overflow: auto;
459
449
 
460
- &::before {
461
- content: "";
462
- top: 100%;
463
- bottom: 0;
464
- left: 0;
465
- right: 0;
466
- height: var(--dialog-padding);
467
- min-height: var(--dialog-padding);
468
- position: sticky;
469
- display: block;
470
- background: linear-gradient(180deg, transparent 0%, var(--colour-canvas-2) 100%);
471
- z-index: 2;
472
- margin-bottom: calc(var(--dialog-padding) * -1);;
450
+ button:not([type="submit"]){
451
+ display: none;
452
+ }
453
+ }
454
+ }
455
+ @supports selector(:has(*)) {
456
+ > form {
457
+ display: contents
458
+ }
459
+ fieldset {
460
+ display: flex;
461
+ flex-direction: column;
462
+ flex-grow: 1;
463
+ position: relative;
464
+
465
+ overflow: auto;
466
+ margin-bottom: calc(var(--dialog-padding) * -1);
467
+ padding-bottom: var(--dialog-padding);
468
+
469
+
470
+ padding-right: calc(var(--dialog-padding) - 10px);
471
+ margin-right: calc((var(--dialog-padding) * -1) + 10px);
472
+
473
+ &::before {
474
+ content: "";
475
+ top: 100%;
476
+ bottom: 0;
477
+ left: 0;
478
+ right: 0;
479
+ height: var(--dialog-padding);
480
+ min-height: var(--dialog-padding);
481
+ position: sticky;
482
+ display: block;
483
+ background: linear-gradient(180deg, transparent 0%, var(--colour-canvas-2) 100%);
484
+ z-index: 2;
485
+ margin-bottom: calc(var(--dialog-padding) * -1);;
486
+ }
473
487
  }
474
488
  }
475
489
  }
@@ -16,7 +16,7 @@ label {
16
16
  // #endregion
17
17
 
18
18
  // #region input field
19
- :is(input,textarea,output,select) {
19
+ :is(input:not([type="checkbox"]):not([type="radio"]),textarea,output,select) {
20
20
  display: block;
21
21
  width: 100%;
22
22
  max-width: $content-max-width;
@@ -192,111 +192,117 @@ div:has(> label:first-child):has(> input):has(> :is(.form-control-inline,.input-
192
192
 
193
193
  // #region prefix
194
194
  :is(.prefix, .suffix) {
195
- display: inline-block;
196
- width: auto;
197
- padding: var(--input-padding-block, #{rem(12)}) var(--input-padding-block, #{rem(16)});
198
- font-size: var(--input-fs, #{rem(16)});
199
- line-height: var(--input-lh, #{rem(20)});
200
- color: var(--colour-body);
201
- background-color: var(--colour-primary-theme);
202
- border: 2px solid var(--colour-primary);
203
- color: var(--colour-white);
204
- margin-bottom: 1rem;
205
- border-end-start-radius: rem(8);
206
- border-start-start-radius: rem(8);
207
- min-width: calc(#{rem(20 + 12 + 12)} + 4px);
208
- overflow: hidden;
209
- white-space: nowrap;
210
- text-align: center;
211
- text-overflow: ellipsis;
212
- position: relative;
213
-
214
- min-height: calc(var(--input-padding-block, #{rem(12)}) + var(--input-padding-block, #{rem(12)}) + var(--input-lh, #{rem(20)}) + 4px);
215
- max-height: calc(var(--input-padding-block, #{rem(12)}) + var(--input-padding-block, #{rem(12)}) + var(--input-lh, #{rem(20)}) + 4px);
216
-
195
+ display: none;
196
+ }
197
+ @supports selector(:has(*)) {
217
198
 
218
- &:after {
199
+ :is(.prefix, .suffix) {
219
200
  display: inline-block;
220
- max-width: rem(20);
221
- }
201
+ width: auto;
202
+ padding: var(--input-padding-block, #{rem(12)}) var(--input-padding-block, #{rem(16)});
203
+ font-size: var(--input-fs, #{rem(16)});
204
+ line-height: var(--input-lh, #{rem(20)});
205
+ color: var(--colour-body);
206
+ background-color: var(--colour-primary-theme);
207
+ border: 2px solid var(--colour-primary);
208
+ color: var(--colour-white);
209
+ margin-bottom: 1rem;
210
+ border-end-start-radius: rem(8);
211
+ border-start-start-radius: rem(8);
212
+ min-width: calc(#{rem(20 + 12 + 12)} + 4px);
213
+ overflow: hidden;
214
+ white-space: nowrap;
215
+ text-align: center;
216
+ text-overflow: ellipsis;
217
+ position: relative;
218
+
219
+ min-height: calc(var(--input-padding-block, #{rem(12)}) + var(--input-padding-block, #{rem(12)}) + var(--input-lh, #{rem(20)}) + 4px);
220
+ max-height: calc(var(--input-padding-block, #{rem(12)}) + var(--input-padding-block, #{rem(12)}) + var(--input-lh, #{rem(20)}) + 4px);
222
221
 
223
- &[class*="fa-"] {
224
- width: calc(#{rem(20 + 12 + 12)} + 4px);
225
- padding-inline: 0;
226
- }
227
222
 
228
- select {
229
- position: absolute;
230
- inset: 0;
231
- opacity: 0;
232
- cursor: pointer;
233
- }
223
+ &:after {
224
+ display: inline-block;
225
+ max-width: rem(20);
226
+ }
234
227
 
235
- span {
236
- display: none;
237
- }
228
+ &[class*="fa-"] {
229
+ width: calc(#{rem(20 + 12 + 12)} + 4px);
230
+ padding-inline: 0;
231
+ }
238
232
 
239
- select:has(option:nth-child(1):checked) ~ span:nth-of-type(1),
240
- select:has(option:nth-child(2):checked) ~ span:nth-of-type(2),
241
- select:has(option:nth-child(3):checked) ~ span:nth-of-type(3),
242
- select:has(option:nth-child(4):checked) ~ span:nth-of-type(4),
243
- select:has(option:nth-child(5):checked) ~ span:nth-of-type(5),
244
- select:has(option:nth-child(6):checked) ~ span:nth-of-type(6),
245
- select:has(option:nth-child(7):checked) ~ span:nth-of-type(7),
246
- select:has(option:nth-child(8):checked) ~ span:nth-of-type(8),
247
- select:has(option:nth-child(9):checked) ~ span:nth-of-type(9),
248
- select:has(option:nth-child(10):checked) ~ span:nth-of-type(10) {
233
+ select {
234
+ position: absolute;
235
+ inset: 0;
236
+ opacity: 0;
237
+ cursor: pointer;
238
+ }
249
239
 
250
- display: block;
251
- }
240
+ span {
241
+ display: none;
242
+ }
252
243
 
253
- select ~ span:after {
254
- content: " \f078";
255
- font-family: "Font Awesome 6 Pro";
256
- font-size: 0.8em;
257
- display: inline-block;
258
- padding-left: 1em;
259
- }
244
+ select:has(option:nth-child(1):checked) ~ span:nth-of-type(1),
245
+ select:has(option:nth-child(2):checked) ~ span:nth-of-type(2),
246
+ select:has(option:nth-child(3):checked) ~ span:nth-of-type(3),
247
+ select:has(option:nth-child(4):checked) ~ span:nth-of-type(4),
248
+ select:has(option:nth-child(5):checked) ~ span:nth-of-type(5),
249
+ select:has(option:nth-child(6):checked) ~ span:nth-of-type(6),
250
+ select:has(option:nth-child(7):checked) ~ span:nth-of-type(7),
251
+ select:has(option:nth-child(8):checked) ~ span:nth-of-type(8),
252
+ select:has(option:nth-child(9):checked) ~ span:nth-of-type(9),
253
+ select:has(option:nth-child(10):checked) ~ span:nth-of-type(10) {
254
+
255
+ display: block;
256
+ }
260
257
 
261
- select:focus-visible ~ span:after {
262
- content: "\f077";
258
+ select ~ span:after {
259
+ content: " \f078";
260
+ font-family: "Font Awesome 6 Pro";
261
+ font-size: 0.8em;
262
+ display: inline-block;
263
+ padding-left: 1em;
264
+ }
265
+
266
+ select:focus-visible ~ span:after {
267
+ content: "\f077";
268
+ }
263
269
  }
264
- }
265
270
 
266
- .prefix {
267
-
268
- border-right: none;
269
- }
271
+ .prefix {
272
+
273
+ border-right: none;
274
+ }
270
275
 
271
- .suffix {
272
-
273
- border-left: none;
274
- border-end-start-radius: 0;
275
- border-start-start-radius: 0;
276
- border-start-end-radius: rem(8)!important;
277
- border-end-end-radius: rem(8)!important;
278
- order: 2;
279
- }
276
+ .suffix {
277
+
278
+ border-left: none;
279
+ border-end-start-radius: 0;
280
+ border-start-start-radius: 0;
281
+ border-start-end-radius: rem(8)!important;
282
+ border-end-end-radius: rem(8)!important;
283
+ order: 2;
284
+ }
280
285
 
281
- .prefix span {
282
- display: none;
286
+ .prefix span {
287
+ display: none;
283
288
 
284
- small {
285
- font-size: 0.8em;
289
+ small {
290
+ font-size: 0.8em;
291
+ }
286
292
  }
287
- }
288
293
 
289
- .prefix ~ :is(input,textarea,output) {
290
-
291
- border-end-start-radius: 0;
292
- border-start-start-radius: 0;
293
- }
294
+ .prefix ~ :is(input,textarea,output) {
295
+
296
+ border-end-start-radius: 0;
297
+ border-start-start-radius: 0;
298
+ }
294
299
 
295
- .suffix ~ :is(input,textarea,output) {
296
- order: 1;
297
-
298
- border-start-end-radius: 0;
299
- border-end-end-radius: 0;
300
+ .suffix ~ :is(input,textarea,output) {
301
+ order: 1;
302
+
303
+ border-start-end-radius: 0;
304
+ border-end-end-radius: 0;
305
+ }
300
306
  }
301
307
  // #endregion
302
308
 
@@ -379,6 +385,8 @@ $icon-tick: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' view
379
385
  // #endregion
380
386
 
381
387
  // #region radio/checkbox field
388
+ @supports selector(:has(*)) {
389
+
382
390
  input:is([type="radio"],[type="checkbox"]) {
383
391
  position: absolute;
384
392
  top: 0;
@@ -629,6 +637,8 @@ input[type="checkbox"][disabled]:checked + label {
629
637
  border-color: #E0E0E0!important;
630
638
  }
631
639
  }
640
+
641
+ }
632
642
  // #endregion
633
643
 
634
644
  // #region Conditional reveal
@@ -394,7 +394,12 @@ export const createMultiFormDialog = (dialog) => {
394
394
 
395
395
 
396
396
  dialog.addEventListener('click', (event) => {
397
- if (event && event.target instanceof HTMLElement && event.target.closest('button[data-title]')){
397
+ if (event && event.target instanceof HTMLElement && event.target.closest('button[type="submit"]')){
398
+
399
+ const form = event.target.closest('form');
400
+ form.classList.add('was-validated');
401
+ }
402
+ else if (event && event.target instanceof HTMLElement && event.target.closest('button[data-title]')){
398
403
 
399
404
  const button = event.target.closest('button[data-title]');
400
405
  validateFieldset(button);