@iamproperty/components 3.7.9 → 3.9.0-beta-1

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 (88) hide show
  1. package/assets/css/components/accordion.css.map +1 -1
  2. package/assets/css/components/actionbar-global.css +1 -0
  3. package/assets/css/components/actionbar-global.css.map +1 -0
  4. package/assets/css/components/actionbar.css +1 -0
  5. package/assets/css/components/actionbar.css.map +1 -0
  6. package/assets/css/components/dialog.css +1 -1
  7. package/assets/css/components/dialog.css.map +1 -1
  8. package/assets/css/components/fileupload.css.map +1 -1
  9. package/assets/css/components/forms.css +1 -1
  10. package/assets/css/components/forms.css.map +1 -1
  11. package/assets/css/components/header.css +1 -1
  12. package/assets/css/components/header.css.map +1 -1
  13. package/assets/css/components/lists.css.map +1 -1
  14. package/assets/css/components/nav-global.css +1 -0
  15. package/assets/css/components/nav-global.css.map +1 -0
  16. package/assets/css/components/nav.css +1 -1
  17. package/assets/css/components/nav.css.map +1 -1
  18. package/assets/css/components/nav.docs.css +1 -0
  19. package/assets/css/components/nav.docs.css.map +1 -0
  20. package/assets/css/components/nav.old.css +1 -0
  21. package/assets/css/components/nav.old.css.map +1 -0
  22. package/assets/css/components/pagination.css.map +1 -1
  23. package/assets/css/components/property-searchbar.css +1 -1
  24. package/assets/css/components/property-searchbar.css.map +1 -1
  25. package/assets/css/components/table.css +1 -1
  26. package/assets/css/components/table.css.map +1 -1
  27. package/assets/css/core.min.css +1 -1
  28. package/assets/css/core.min.css.map +1 -1
  29. package/assets/css/style.min.css +1 -1
  30. package/assets/css/style.min.css.map +1 -1
  31. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  32. package/assets/js/components/actionbar/actionbar.component.js +305 -0
  33. package/assets/js/components/actionbar/actionbar.component.min.js +53 -0
  34. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -0
  35. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  36. package/assets/js/components/card/card.component.min.js +1 -1
  37. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  38. package/assets/js/components/header/header.component.min.js +2 -2
  39. package/assets/js/components/nav/nav.component.js +294 -0
  40. package/assets/js/components/nav/nav.component.min.js +51 -0
  41. package/assets/js/components/nav/nav.component.min.js.map +1 -0
  42. package/assets/js/components/notification/notification.component.min.js +1 -1
  43. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  44. package/assets/js/components/table/table.component.js +33 -0
  45. package/assets/js/components/table/table.component.min.js +11 -10
  46. package/assets/js/components/table/table.component.min.js.map +1 -1
  47. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  48. package/assets/js/dynamic.min.js +3 -3
  49. package/assets/js/dynamic.min.js.map +1 -1
  50. package/assets/js/modules/dialogs.js +18 -5
  51. package/assets/js/modules/table.js +22 -4
  52. package/assets/js/scripts.bundle.js +15 -14
  53. package/assets/js/scripts.bundle.js.map +1 -1
  54. package/assets/js/scripts.bundle.min.js +2 -2
  55. package/assets/js/scripts.bundle.min.js.map +1 -1
  56. package/assets/sass/_corefiles.scss +2 -0
  57. package/assets/sass/_functions/mixins.scss +25 -0
  58. package/assets/sass/_functions/variables.scss +5 -3
  59. package/assets/sass/components/actionbar-global.scss +89 -0
  60. package/assets/sass/components/actionbar.scss +254 -0
  61. package/assets/sass/components/dialog.scss +99 -1
  62. package/assets/sass/components/forms.scss +96 -21
  63. package/assets/sass/components/nav-global.scss +619 -0
  64. package/assets/sass/components/nav.docs.scss +54 -0
  65. package/assets/sass/components/nav.old.scss +965 -0
  66. package/assets/sass/components/nav.scss +450 -782
  67. package/assets/sass/components/table.scss +9 -1
  68. package/assets/sass/foundations/buttons.scss +87 -14
  69. package/assets/sass/foundations/links.scss +1 -1
  70. package/assets/sass/foundations/reboot.scss +5 -3
  71. package/assets/ts/components/actionbar/README.md +55 -0
  72. package/assets/ts/components/actionbar/actionbar.component.ts +396 -0
  73. package/assets/ts/components/nav/README.md +68 -0
  74. package/assets/ts/components/nav/nav.component.ts +370 -0
  75. package/assets/ts/components/table/table.component.ts +65 -0
  76. package/assets/ts/modules/dialogs.ts +24 -6
  77. package/assets/ts/modules/table.ts +29 -7
  78. package/dist/components.es.js +1013 -1258
  79. package/dist/components.umd.js +97 -47
  80. package/dist/style.css +1 -1
  81. package/package.json +1 -1
  82. package/src/components/Actionbar/Actionbar.vue +20 -0
  83. package/src/components/Actionbar/README.md +40 -0
  84. package/src/components/Nav/Nav.vue +20 -195
  85. package/src/components/Nav/README.md +43 -13
  86. package/src/components/Nav-old/Nav.vue +213 -0
  87. package/src/components/Nav-old/README.md +23 -0
  88. package/src/components/Nav/Nav.spec.js +0 -35
@@ -0,0 +1,619 @@
1
+ @use 'sass:math';
2
+ @use "../_func" as *;
3
+
4
+ body:has(iam-nav.open:not(.nav--sticky):not(.nav--xs-sticky)) {
5
+ max-height: 100vh;
6
+ overflow: hidden;
7
+ }
8
+
9
+ // #region Create the correct padding top of the page
10
+ nav:has(iam-nav) {
11
+
12
+ min-height: #{rem(96)};
13
+ display: block;
14
+
15
+ iam-nav {
16
+ position: absolute;
17
+ top: 0;
18
+ left: 0;
19
+ width: 100%;
20
+ z-index: var(--index-menu);
21
+ }
22
+ }
23
+
24
+ @include media-breakpoint-up(md) {
25
+ nav:has(iam-nav a[slot="secondary"]){
26
+
27
+ min-height: #{rem(96 + 40)};
28
+ }
29
+ }
30
+
31
+ nav:has(iam-nav.nav--sticky) {
32
+
33
+ iam-nav {
34
+ position: fixed;
35
+ }
36
+ }
37
+
38
+ @media screen and (max-width: 36em) {
39
+
40
+ body:has(iam-nav.open:not(.nav--xs-sticky)) {
41
+ max-height: 100vh;
42
+ overflow: hidden;
43
+ }
44
+
45
+ nav:has(iam-nav.nav--xs-sticky) {
46
+
47
+ iam-nav {
48
+ position: fixed;
49
+ }
50
+ }
51
+ }
52
+
53
+ @include media-breakpoint-up(sm) {
54
+ body:has(iam-nav.open:not(.nav--sticky)) {
55
+ max-height: 100vh;
56
+ overflow: hidden;
57
+ }
58
+ }
59
+ // #endregion
60
+
61
+ // #region before component is loaded
62
+ iam-nav:not(:defined) {
63
+
64
+ > *:not([slot="logo"]) {
65
+ display: none;
66
+ }
67
+
68
+ &:not(:target) > *:not(.brand) {
69
+ display: none;
70
+ }
71
+ }
72
+ // #endregion
73
+
74
+ // #region General styles
75
+ iam-nav {
76
+
77
+ --nav-height: #{rem(96)};
78
+
79
+ &:has(a[slot="secondary"]){
80
+
81
+ --nav-height: #{rem(96 + 40)};
82
+ }
83
+
84
+ overscroll-behavior: contain!important;
85
+ background-color: var(--colour-canvas);
86
+ display: block;
87
+ margin-left: auto;
88
+ margin-right: auto;
89
+ padding: var(--container-padding);
90
+ padding-top: rem(24);
91
+ padding-bottom: rem(24);
92
+ width: 100%;
93
+ max-width: rem(1280);
94
+
95
+ .brand {
96
+ font-size: rem(48);
97
+ height: rem(48);
98
+ padding: 0;
99
+ text-decoration: none;
100
+ }
101
+
102
+ a:not([slot="logo"]):not(:has(iam-card)) {
103
+
104
+ text-decoration: none;
105
+
106
+ &:where(:hover,:focus,.selected) {
107
+ text-decoration: underline;
108
+ text-underline-offset: 0.3em;
109
+ text-decoration-thickness: 2px;
110
+ text-decoration-color: var(--colour-underline);
111
+ }
112
+ &:active {
113
+ text-decoration-color: #A2D393!important;
114
+ }
115
+ &.selected {
116
+
117
+ text-decoration-color: var(--colour-info)!important;
118
+ }
119
+ }
120
+ }
121
+
122
+
123
+ iam-nav details {
124
+
125
+ > summary {
126
+
127
+ text-decoration: none;
128
+
129
+ &:where(:hover,:focus,.selected) {
130
+ text-decoration: underline;
131
+ text-underline-offset: 0.3em;
132
+ text-decoration-thickness: 2px;
133
+ text-decoration-color: var(--colour-underline);
134
+ }
135
+ &:active {
136
+ text-decoration-color: #A2D393!important;
137
+ }
138
+ }
139
+
140
+ &[open] > summary {
141
+
142
+ text-decoration: underline;
143
+ text-underline-offset: 0.3em;
144
+ text-decoration-thickness: 2px;
145
+ text-decoration-color: var(--colour-info);
146
+ }
147
+ }
148
+
149
+ // #endregion
150
+
151
+ // #region mobile and tablet mega menu
152
+ @media screen and (max-width: 62em) {
153
+ iam-nav details {
154
+
155
+ background-color: var(--colour-canvas);
156
+
157
+ @media screen and (prefers-color-scheme: light) {
158
+ background-color: #EEEEEE;
159
+ }
160
+
161
+ margin-left: -1.5rem;
162
+ margin-right: -1.5rem;
163
+ padding-inline: 1.5rem;
164
+ width: auto;
165
+ position: relative;
166
+
167
+ summary {
168
+
169
+ background-color: var(--colour-white);
170
+
171
+
172
+ @media screen and (prefers-color-scheme: dark) {
173
+
174
+ background-color: var(--colour-canvas-2);
175
+ }
176
+ display:block;
177
+ border: none;
178
+ color: var(--colour-link);
179
+ margin: 0;
180
+
181
+ margin-left: -1.5rem;
182
+ margin-right: -1.5rem;
183
+ padding: 1.5rem 4rem 1.5rem 1.5rem;
184
+ font-size: 1rem;
185
+ line-height: 1.5rem;
186
+ min-height: 1.5rem;
187
+ position: relative;
188
+ font-weight: normal;
189
+
190
+ &:after {
191
+ content: "\f055";
192
+ display: block;
193
+ font-size: rem(24);
194
+ font-weight: 300;
195
+ position: absolute;
196
+ top: 1.5rem;
197
+ right: 1.5rem;
198
+ font-family: "Font Awesome 6 Pro";
199
+ line-height: 1em;
200
+ }
201
+ }
202
+
203
+ &[open] > summary:after {
204
+ content: "\f056";
205
+ font-weight: bold;
206
+ }
207
+
208
+ a {
209
+ text-decoration: none;
210
+ display:block;
211
+ border: none;
212
+ color: var(--colour-link);
213
+ margin: 0;
214
+ margin-left: 3rem;
215
+ padding: 1.5rem 0 1.5rem 0;
216
+ font-size: 1rem;
217
+ line-height: 1.5rem;
218
+ min-height: 1.5rem;
219
+ position: relative;
220
+ font-weight: normal;
221
+
222
+ &:after {
223
+ background: var(--colour-border)!important;
224
+ top: calc(100% - 2px)!important;
225
+ width: 100%!important;
226
+ }
227
+ }
228
+
229
+ // Hide cards
230
+ a:has(iam-card){
231
+ display: none!important;
232
+ }
233
+
234
+ details a:last-child:after {
235
+ display: none;
236
+ }
237
+
238
+ &:after {
239
+ content: "";
240
+ position: absolute;
241
+ top: calc(100% - 2px);
242
+ left: 1.5rem;
243
+ height: 2px;
244
+ width: calc(100% - 3rem);
245
+ display: block;
246
+ height: 2px;
247
+ background-color: var(--colour-border) !important;
248
+ }
249
+
250
+ // Sub details
251
+ details {
252
+
253
+ &:after {
254
+ display: none;
255
+ }
256
+
257
+ summary {
258
+ padding: 0 1.5rem rem(24) 3.5rem;
259
+ position: relative;
260
+ }
261
+
262
+ summary:after {
263
+ left: 1.5rem;
264
+ font-size: rem(16);
265
+ top: rem(3);
266
+ transform: none;
267
+ font-weight: 400;
268
+ }
269
+ }
270
+
271
+ details[open] + details:before{
272
+
273
+ content: "";
274
+ display: block;
275
+ background: var(--colour-canvas-2);
276
+ padding-top: 1.5rem;
277
+ margin-left: -1.5rem;
278
+ margin-right: -1.5rem;
279
+ }
280
+ }
281
+ }
282
+ // #endregion
283
+
284
+ // #region tablet mega menu tweaks
285
+ @media screen and (max-width: 62em) and (min-width: 36em) {
286
+
287
+ iam-nav details {
288
+ padding-right: rem(40);
289
+ margin-right: rem(-40);
290
+
291
+ &:after {
292
+
293
+ width: calc(100% - 4rem);
294
+ }
295
+
296
+ summary {
297
+
298
+ padding-right: 5rem;
299
+ margin-right: rem(-40);
300
+
301
+ &:after {
302
+
303
+ right: 2.5rem;
304
+ }
305
+ }
306
+ }
307
+
308
+ iam-nav details details[open] + details:before {
309
+
310
+ padding-right: rem(40);
311
+ margin-right: rem(-40);
312
+ }
313
+ }
314
+ // #endregion
315
+
316
+ // #region Desktop mega menu
317
+ @include media-breakpoint-up(md) {
318
+ iam-nav details {
319
+
320
+ width: auto;
321
+
322
+ > summary {
323
+
324
+ display:block;
325
+ border: none;
326
+ color: var(--colour-link);
327
+ margin: 0;
328
+ font-size: 1rem;
329
+ line-height: rem(96);
330
+ min-height: rem(96);
331
+ margin-block: -1.5rem;
332
+ position: relative;
333
+ font-weight: normal;
334
+ white-space: nowrap;
335
+ padding-right: rem(24);
336
+
337
+ &:after {
338
+ content: "\f078";
339
+ display: block;
340
+ font-size: rem(16);
341
+ font-weight: 300;
342
+ position: absolute;
343
+ top: 50%;
344
+ transform: translate(0,-50%);
345
+ right: 0;
346
+ font-family: "Font Awesome 6 Pro";
347
+ line-height: 1em;
348
+ }
349
+ }
350
+
351
+ &:not(:first-child) > summary{
352
+
353
+ margin-left: 1.5rem;
354
+ }
355
+
356
+ div {
357
+ display: none;
358
+ }
359
+
360
+ &[open] > div {
361
+ position: absolute;
362
+ display: block;
363
+ top: 100%;
364
+ left: 0;
365
+ width: 100%;
366
+ padding-inline: calc(50% - #{rem(556)});
367
+ box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.11);
368
+
369
+
370
+ @media screen and (prefers-color-scheme: light) {
371
+ background: var(--colour-white);
372
+ @include reset-colours();
373
+ }
374
+ @media screen and (prefers-color-scheme: dark) {
375
+
376
+ @include invert-colours();
377
+ }
378
+ }
379
+
380
+ &[open] > div:has(details) {
381
+
382
+
383
+ background: var(--colour-canvas-2);
384
+
385
+ @media screen and (prefers-color-scheme: light) {
386
+ background: #EEEEEE;
387
+ }
388
+ a {
389
+ display: inline-block;
390
+ margin-right: 2rem;
391
+
392
+ &:first-child {
393
+ margin-right: 0;
394
+ }
395
+ }
396
+
397
+ a:has(iam-card) {
398
+ display: none;
399
+ }
400
+ details {
401
+ display: inline-block;
402
+
403
+ summary {
404
+ display: inline-block;
405
+ margin-left: 0!important;
406
+ margin-right: 2rem;
407
+ }
408
+
409
+ &:first-child summary{
410
+ margin-left: 0;
411
+ }
412
+ }
413
+ }
414
+
415
+ &[open] > div:not(:has(details)) {
416
+ background: var(--colour-canvas);
417
+
418
+ @media screen and (prefers-color-scheme: light) {
419
+ background: var(--colour-white);
420
+ --colour-canvas-2: white;
421
+ }
422
+
423
+ padding-top: rem(40 + 88);
424
+ padding-bottom: rem(64);
425
+ columns: 3;
426
+ column-gap: rem(110);
427
+
428
+ > a {
429
+ margin-right: 0!important;
430
+ display: block;
431
+ max-height: 6rem;
432
+
433
+ &.double-height {
434
+ min-height: 6rem;
435
+ }
436
+ }
437
+
438
+ a:has(iam-card){
439
+ display: inline-block;
440
+ }
441
+
442
+ &:before {
443
+ content: attr(data-title);
444
+ display: block;
445
+ position: absolute;
446
+ top: 0;
447
+ left: 0;
448
+ width: 100%;
449
+ color: var(--colour-white);
450
+ padding-inline: calc(50% - #{rem(556)});
451
+ font-size: rem(32);
452
+ font-weight: bold;
453
+ line-height: rem(88);
454
+
455
+ --gradient-direction: 90deg;
456
+ background-color: var(--colour-info-theme);
457
+ background-image: linear-gradient(var(--gradient-direction), var(--colour-primary-theme) 0, transparent 100%) !important;
458
+ }
459
+
460
+ &:has(iam-card){
461
+
462
+ column-gap: rem(16);
463
+
464
+ a:not(:has(iam-card)) {
465
+ margin-right: rem(94)!important;
466
+ }
467
+
468
+ a:has(iam-card){
469
+
470
+ &:after {
471
+ display: none;
472
+ }
473
+ }
474
+ a:not(:has(iam-card)) + a:has(iam-card) {
475
+
476
+ break-before: column;
477
+ }
478
+ }
479
+ }
480
+
481
+ a:not([slot="logo"]):not(:has(iam-card)) {
482
+
483
+ font-size: 1rem;
484
+ line-height: rem(24);
485
+ padding-block: 1.5rem;
486
+ position: relative;
487
+ font-weight: normal;
488
+ display: block;
489
+ margin: 0;
490
+
491
+ &:where(:hover,:focus,.selected) {
492
+ text-decoration: underline;
493
+ text-underline-offset: 0.3em;
494
+ text-decoration-thickness: 2px;
495
+ text-decoration-color: var(--colour-underline);
496
+ }
497
+ &:active {
498
+ text-decoration-color: #A2D393!important;
499
+ }
500
+ &.selected {
501
+ text-decoration-color: var(--colour-info);
502
+ }
503
+
504
+ &:after {
505
+ content: "";
506
+ display: block;
507
+ height: 2px;
508
+ width: 100%!important;
509
+ top: calc(100% - 2px);
510
+ background-color: var(--colour-border)!important;
511
+ }
512
+ }
513
+
514
+ > details > summary {
515
+
516
+ padding-right: 0;
517
+ background: transparent;
518
+
519
+ &:after {
520
+ display: none;
521
+ }
522
+ }
523
+
524
+ details:not(:first-child) > summary {
525
+
526
+ margin-left: rem(32);
527
+ }
528
+ }
529
+ }
530
+ // #endregion
531
+
532
+ // #region Search
533
+ @include media-breakpoint-up(md) {
534
+ iam-nav {
535
+
536
+ &.search-open {
537
+
538
+ > *:not([slot="logo"]):not([slot="secondary"]) {
539
+ display: none!important;
540
+ }
541
+ }
542
+ }
543
+ }
544
+ // #endregion
545
+
546
+ // #region Dual navbar in desktop
547
+ @include media-breakpoint-up(md) {
548
+ iam-nav {
549
+ .brand:has(~ [slot="dual"]) {
550
+ margin-right: rem(24);
551
+ }
552
+
553
+ *:not([slot="dual"]):has(+ [slot="dual"]) {
554
+ margin-right: auto;
555
+ }
556
+ }
557
+ }
558
+ // #endregion
559
+
560
+ // #region navbar additional menus
561
+
562
+ iam-nav .nav--menu {
563
+
564
+ outline: none!important;
565
+
566
+ &::-webkit-scrollbar {
567
+ width: 6px;
568
+ }
569
+
570
+ &::-webkit-scrollbar-track {
571
+ border: 0!important;
572
+ }
573
+
574
+ &::-webkit-scrollbar-thumb {
575
+ border: 0!important;
576
+ }
577
+
578
+ hr {
579
+
580
+ width: 100% !important;
581
+ border-top: 2px solid var(--colour-border) !important;
582
+ }
583
+ a {
584
+
585
+ display: block !important;
586
+ line-height: 1.25rem !important;
587
+ padding: 1.5rem 0 !important;
588
+ margin: 0 0 rem(36) 0!important;
589
+ flex-shrink: 0;
590
+ font-size: 1rem !important;
591
+ font-weight: normal !important;
592
+
593
+ &:has( + a ) {
594
+ margin-bottom: 0!important;
595
+ }
596
+
597
+
598
+ &:after {
599
+
600
+ content: "";
601
+ display: block;
602
+ height: 2px;
603
+ width: 100% !important;
604
+ background-color: var(--colour-border) !important;
605
+ top: calc(100% - 2px) !important;
606
+ }
607
+ }
608
+
609
+ > button {
610
+ min-width: 100%;
611
+ text-align: center;
612
+ }
613
+
614
+ &.closed * {
615
+ display: none!important;
616
+ }
617
+ }
618
+
619
+ // #endregion
@@ -0,0 +1,54 @@
1
+ @use "../_func" as *;
2
+
3
+ @media screen and (max-width: 62em) {
4
+ :host {
5
+
6
+ pointer-events: none;
7
+ z-index: 99;
8
+ position: relative;
9
+ margin-bottom: 38rem;
10
+
11
+ }
12
+
13
+ .btn-menu {
14
+
15
+
16
+ width: rem(24)!important;
17
+ text-indent: -300px!important;
18
+ padding-right: 0!important;
19
+
20
+
21
+ i {
22
+ display: none;
23
+ }
24
+
25
+ i + i {
26
+ display: inline;
27
+ }
28
+ }
29
+
30
+ .menu__outer {
31
+ display: contents;
32
+ }
33
+ .menu {
34
+ //position: relative;
35
+ position: absolute;
36
+ --scrollbar-width: 17px;
37
+ top: rem(96);
38
+ left: auto;
39
+ right: 0;
40
+ -webkit-box-shadow: 0 6px 12px 0px rgba(0,0,0,0.2);
41
+ box-shadow: 0 6px 12px 0px rgba(0,0,0,0.2);
42
+ //height: auto;
43
+ width: 100%;
44
+ max-width: calc(23.4375rem - var(--scrollbar-width));
45
+ transition: none;
46
+ }
47
+ }
48
+
49
+ @include media-breakpoint-up(md) {
50
+ :host {
51
+
52
+ position: relative;
53
+ }
54
+ }