@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
@@ -20,10 +20,12 @@
20
20
  @use "components/admin-panel.scss";
21
21
  @use "components/dialog.scss";
22
22
 
23
+ @use "components/nav-global.scss";
23
24
  @use "components/pagination.scss";
24
25
  @use "components/accordion.scss";
25
26
 
26
27
  @use "components/card-global.scss";
28
+ @use "components/actionbar-global.scss";
27
29
 
28
30
  // Bootstrap elements
29
31
  @import "../bootstrap/scss/_transitions.scss";
@@ -18,6 +18,31 @@
18
18
  }
19
19
  }
20
20
 
21
+ @mixin container-up($name) {
22
+
23
+ @if $name == 'sm' {
24
+
25
+ @container (width > 23.4375em) {
26
+ @content;
27
+ }
28
+ }
29
+ @else if $name == 'md' {
30
+
31
+ @container (width > 48em) {
32
+ @content;
33
+ }
34
+ }
35
+ @else if $name =='xs' {
36
+ @content;
37
+ }
38
+ @else {
39
+ @if $mobileOnly != "true" {
40
+ @content;
41
+ }
42
+ }
43
+ }
44
+
45
+
21
46
  // Example: @include prefix(transition, transform 1.5s, webkit ms o);
22
47
  @mixin prefix($property, $value, $prefixes: (webkit ms o))
23
48
  {
@@ -160,7 +160,7 @@ $non-theme-colors: map-merge((
160
160
  "body": $body-color,
161
161
  "border": $colour-border,
162
162
  "link": var(--colour-primary-theme),
163
- "brand": var(--colour-primary),
163
+ "brand": var(--colour-primary-theme),
164
164
  "underline": var(--colour-secondary),
165
165
  "heading": var(--colour-primary),
166
166
  "focus": var(--colour-primary-theme),
@@ -178,7 +178,8 @@ $non-theme-colors: map-merge((
178
178
  "btn-secondary-bg": transparent,
179
179
  "btn-secondary-bg-hover": var(--colour-primary-theme),
180
180
  "btn-secondary-hover": var(--colour-inverted),
181
- "canvas-2": var(--colour-canvas)
181
+ "canvas-2": var(--colour-canvas),
182
+ "btn-action-hover-bg": var(--colour-light)
182
183
  ), $non-theme-colors);
183
184
 
184
185
  @each $color, $value in $non-theme-colors {
@@ -219,7 +220,8 @@ $dark-mode-functional-colors: (
219
220
  "btn-secondary-border": var(--colour-white),
220
221
  "btn-secondary-bg": transparent,
221
222
  "btn-secondary-bg-hover": var(--colour-white),
222
- "btn-secondary-hover": var(--colour-primary-theme)
223
+ "btn-secondary-hover": var(--colour-primary-theme),
224
+ "btn-action-hover-bg": var(--colour-canvas-2)
223
225
  );
224
226
 
225
227
 
@@ -0,0 +1,89 @@
1
+ @use "../_func.scss" as *;
2
+
3
+ // #region Default view
4
+ iam-actionbar {
5
+
6
+ background-color: #FCFCFC;
7
+ display: block;
8
+ border-top-left-radius: rem(10);
9
+ border-top-right-radius: rem(10);
10
+ }
11
+ // #endregion
12
+
13
+ // #region As part of the iam-table component
14
+ iam-table iam-actionbar {
15
+
16
+ margin-left: 1.5rem;
17
+ margin-right: 1.5rem;
18
+ }
19
+
20
+ @container (width < 23.4375em) {
21
+
22
+ iam-table iam-actionbar {
23
+
24
+ display: block;
25
+ position: sticky;
26
+ left: 0;
27
+ top: calc(var(--nav-height) + #{rem(24)});
28
+ border: none;
29
+ background: var(--colour-canvas-2);
30
+
31
+ box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.11);
32
+ border-radius: 0.5rem;
33
+ margin-bottom: rem(24);
34
+
35
+ z-index: var(--index-menu);
36
+ }
37
+
38
+ }
39
+
40
+ @include media-breakpoint-up(sm) {
41
+
42
+ iam-table iam-actionbar {
43
+
44
+ margin-left: -2rem;
45
+ margin-right: -2rem;
46
+ margin-top: -2rem;
47
+ margin-bottom: 1rem;
48
+ }
49
+ }
50
+ // #endregion
51
+
52
+ // #region Switchview
53
+ iam-actionbar ~ :is([data-view="square"],[data-view="list"],[data-view="small"]) {
54
+ display: none;
55
+ }
56
+
57
+ iam-actionbar[data-view="square"] ~ [data-view="square"] {
58
+ display: block;
59
+ }
60
+ iam-actionbar[data-view="list"] ~ [data-view="list"] {
61
+ display: block;
62
+ }
63
+ iam-actionbar[data-view="small"] ~ [data-view="small"] {
64
+ display: block;
65
+ }
66
+ // #endregion
67
+
68
+ // #region Child elements
69
+ .actionbar__text {
70
+
71
+ font-size: rem(18);
72
+ line-height: rem(40);
73
+ color: var(--colour-heading);
74
+ display: inline-block;
75
+ }
76
+
77
+ // Dialog wrapper
78
+ .dialog__wrapper[slot="selected-overflow"] > button,
79
+ .dialog__wrapper[slot="overflow"] > button {
80
+
81
+ background: none;
82
+ border: none;
83
+ }
84
+ .dialog__wrapper[slot="selected-overflow"] dialog[open],
85
+ .dialog__wrapper[slot="overflow"] dialog[open] {
86
+
87
+ display: contents;
88
+ }
89
+ // #endregion
@@ -0,0 +1,254 @@
1
+ @use "../_func.scss" as *;
2
+
3
+ .actionbar__wrapper {
4
+ position: relative;
5
+ z-index: 10;
6
+ height: rem(68);
7
+ container-type: inline-size;
8
+ }
9
+
10
+ // #region View states (Default, search, selected)
11
+ .views,
12
+ .selectall {
13
+ position: absolute!important;
14
+ top: 50%;
15
+ left: rem(24);
16
+
17
+ @include media-breakpoint-up(sm) {
18
+ left: rem(32);
19
+ }
20
+
21
+ transform: translate(0,-50%);
22
+ z-index: 10;
23
+
24
+ .btn-action:not(:last-child){
25
+ margin-right: rem(4)!important;
26
+ }
27
+ }
28
+
29
+ .selectall {
30
+
31
+ width: rem(40);
32
+ overflow: hidden;
33
+
34
+ label {
35
+ height: rem(40);
36
+ }
37
+
38
+ @include media-breakpoint-up(sm) {
39
+
40
+ width: auto;
41
+ overflow: visible;
42
+ }
43
+ }
44
+
45
+ .actionbar [data-search] {
46
+ display: none;
47
+ }
48
+
49
+ :host([data-search]) .actionbar [data-search] {
50
+ display: block;
51
+ margin-left: rem(16)!important;
52
+ }
53
+
54
+ :is(.actionbar,.actionbar--selected,.actionbar--search){
55
+
56
+ border-top-left-radius: rem(10);
57
+ border-top-right-radius: rem(10);
58
+ padding: 0 rem(24);
59
+ flex-wrap: nowrap;
60
+ justify-content: flex-end;
61
+ align-items: center;
62
+ height: rem(68);
63
+ position: absolute;
64
+ inset: 0;
65
+
66
+ @include container-up(sm) {
67
+ padding: 0 rem(32);
68
+ }
69
+ }
70
+
71
+ .actionbar {
72
+
73
+ display: flex;
74
+ }
75
+
76
+ .actionbar--selected {
77
+
78
+ background-color: #E6EAEC;
79
+ display: flex;
80
+ opacity: 0;
81
+ pointer-events: none;
82
+ }
83
+
84
+ .actionbar--search {
85
+
86
+ background-color: #E6EAEC;
87
+ display: flex;
88
+ z-index: 2;
89
+ position: relative;
90
+ opacity: 0;
91
+ pointer-events: none;
92
+ }
93
+
94
+ // Show selected bar
95
+ .selectall:has(input:checked) ~ .actionbar,
96
+ .selectall:has(input:indeterminate) ~ .actionbar {
97
+
98
+ opacity: 0;
99
+ pointer-events: none;
100
+ }
101
+ .selectall:has(input:checked) ~ .actionbar--selected,
102
+ .selectall:has(input:indeterminate) ~ .actionbar--selected {
103
+
104
+ opacity: 1;
105
+ pointer-events: all;
106
+ }
107
+
108
+ // Show search bar
109
+ .actionbar--search.show {
110
+
111
+ opacity: 1;
112
+ pointer-events: all;
113
+ }
114
+
115
+ .actionbar__wrapper:has(.actionbar--search.show) > *:not(.actionbar--search.show) {
116
+ opacity: 0;
117
+ pointer-events: none;
118
+ }
119
+ // #endregion
120
+
121
+ // #region Slotted elements
122
+ ::slotted(*:not([slot="overflow"])){
123
+ margin-top: 0!important;
124
+ margin-bottom: 0!important;
125
+ margin-left: rem(16)!important;
126
+ margin-right: 0!important;
127
+ }
128
+
129
+ ::slotted(.btn:not(.btn-action)){
130
+ order: 2;
131
+ }
132
+
133
+ // buttons only for single items
134
+ ::slotted([data-single]){
135
+ pointer-events: none;
136
+ opacity: 0.5;
137
+ }
138
+
139
+ :host([data-selected="1"]) ::slotted([data-single]){
140
+ pointer-events: all;
141
+ opacity: 1;
142
+ }
143
+
144
+ ::slotted(hr){
145
+ height: rem(32);
146
+ color: #9D9D9D!important;
147
+ width: 1px;
148
+ display: none;
149
+
150
+ @include container-up(md) {
151
+
152
+ display: block;
153
+ }
154
+ }
155
+ // #endregion
156
+
157
+ // #region safe area
158
+ .safe-area {
159
+
160
+ display: flex;
161
+ flex-wrap: nowrap;
162
+ justify-content: flex-end;
163
+ align-items: center;
164
+ width: rem(210);
165
+
166
+ @include container-up(sm) {
167
+
168
+ width: rem(450);
169
+ }
170
+
171
+ @include container-up(md) {
172
+
173
+ width: rem(750);
174
+ }
175
+
176
+ overflow: visible;
177
+ position: relative;
178
+
179
+ .body {
180
+ display: contents;
181
+ }
182
+ }
183
+
184
+ :host([data-switchviews]) .safe-area {
185
+
186
+ width: rem(144);
187
+ }
188
+ // #endregion
189
+
190
+ // #region overflow dialog
191
+ ::slotted(.btn-compact[slot="selected-overflow"]),
192
+ ::slotted(.btn-compact[slot="overflow"]) {
193
+
194
+ max-width: none!important;
195
+ text-indent: 0!important;
196
+ width: auto!important;
197
+ text-align: left!important;
198
+ padding-left: 0!important;
199
+ background: none!important;
200
+ border: none!important;
201
+
202
+ &:before {
203
+ position: static!important;
204
+ line-height: inherit!important;
205
+ }
206
+ }
207
+
208
+ ::slotted(.dialog__wrapper[slot="overflow"]) dialog[open]{
209
+
210
+ background: red;
211
+ }
212
+
213
+ .dialog__wrapper.dialog-overflow {
214
+ margin-left: 0.5rem;
215
+ margin-right: -0.5rem;
216
+ }
217
+ // #endregion
218
+
219
+ // #region Search bar
220
+ .actionbar--search .btn{
221
+
222
+ margin-left: rem(-12)!important;
223
+ margin-right: auto!important;
224
+ }
225
+
226
+ .search-wrapper {
227
+ width: calc(100% - #{rem(44 + 8)});
228
+ max-width: rem(350)!important;
229
+ margin: 0!important;
230
+
231
+ @include container-up(md) {
232
+
233
+ max-width: rem(450)!important;
234
+ }
235
+
236
+ input {
237
+ padding-top: rem(8);
238
+ padding-bottom: rem(8);
239
+
240
+ min-height: rem(40)!important;
241
+ max-height: rem(40)!important;
242
+ }
243
+
244
+ :is(.prefix,.suffix) {
245
+
246
+ padding: rem(8)!important;
247
+ min-height: rem(40)!important;
248
+ max-height: rem(40)!important;
249
+ min-width: rem(40)!important;
250
+ max-width: rem(40)!important;
251
+ line-height: rem(40 - 8 - 8)!important;
252
+ }
253
+ }
254
+ // #endregion
@@ -167,6 +167,7 @@ dialog[open] {
167
167
  &:before {
168
168
  top: 100%;
169
169
  height: var(--dialog-padding);
170
+ margin-bottom: -2rem;
170
171
  }
171
172
  }
172
173
  }
@@ -183,6 +184,7 @@ dialog::backdrop {
183
184
 
184
185
  text-align: center;
185
186
 
187
+
186
188
  &:before {
187
189
  content: "\f05a";
188
190
  font-weight: 300;
@@ -205,6 +207,38 @@ dialog::backdrop {
205
207
  clear: both;
206
208
  }
207
209
 
210
+ &:has(> i):before{
211
+
212
+ display: none;
213
+ }
214
+
215
+ &:has(> i) > i{
216
+
217
+ display: var(--fa-display,inline-block);
218
+ line-height: 1;
219
+ font-size: 3rem;
220
+ @include media-breakpoint-up(md) {
221
+ font-size: 4rem;
222
+ }
223
+ margin-top: 0;
224
+ margin-bottom: rem(24);
225
+ line-height: 1;
226
+ color: var(--colour-heading);
227
+ clear: both;
228
+
229
+ &:has(> i){
230
+ position: relative;
231
+ }
232
+
233
+ > i:before {
234
+ content: "\f2ed";
235
+ position: absolute;
236
+ top: 0;
237
+ left: 50%;
238
+ transform: scale(0.5) translate(-100%,0);
239
+ }
240
+ }
241
+
208
242
  > form:first-child button,
209
243
  > button:first-child {
210
244
  display: none;
@@ -223,6 +257,15 @@ dialog::backdrop {
223
257
  button {
224
258
  margin-bottom: 0;
225
259
  }
260
+
261
+ @include media-breakpoint-up(sm) {
262
+
263
+ button:has( + button:last-child),
264
+ button:last-child {
265
+ min-width: calc(50% - 1rem);
266
+ text-align: center;
267
+ }
268
+ }
226
269
  }
227
270
  // #endregion
228
271
 
@@ -508,7 +551,7 @@ dialog::backdrop {
508
551
  z-index: var(--index-floating);
509
552
  min-width: rem(320);
510
553
  border-radius: rem(16);
511
- width: rem(319);
554
+ width: rem(320);
512
555
  padding: rem(24);
513
556
 
514
557
  @include media-breakpoint-up(sm) {
@@ -517,6 +560,61 @@ dialog::backdrop {
517
560
  @include media-breakpoint-up(md) {
518
561
  width: rem(360);
519
562
  }
563
+
564
+
565
+ &.dialog--list {
566
+
567
+ width: fit-content!important;
568
+ min-width: rem(140)!important;
569
+ max-width: rem(280)!important;
570
+ padding: rem(16);
571
+ margin: 0;
572
+
573
+ .btn-action {
574
+ border: none;
575
+ padding: 0;
576
+ margin: 0;
577
+ padding-block: rem(6);
578
+ line-height: rem(20);
579
+ background: none;
580
+ white-space: inherit;
581
+ max-width: 100%;
582
+ min-width: 100%;
583
+
584
+ &:before {
585
+ min-width: rem(20);
586
+ display: inline-block;
587
+ }
588
+
589
+ &::after {
590
+ float: right;
591
+ }
592
+ }
593
+
594
+ hr {
595
+ height: 2px;
596
+ background: var(--colour-border);
597
+ margin-left: -#{rem(16)};
598
+ margin-right: -#{rem(16)};
599
+ margin-block: 0.25rem;
600
+ }
601
+
602
+ .radio--tick {
603
+ margin-right: 0;
604
+ padding-left: 1.5rem;
605
+ margin-bottom: 0;
606
+
607
+ &:before {
608
+ left: 0;
609
+ font-size: 1em;
610
+ top: 0.75rem;
611
+ }
612
+ }
613
+ }
614
+
615
+ dialog[open] {
616
+ display: contents;
617
+ }
520
618
  }
521
619
 
522
620
  &.dialog__wrapper--right > dialog[open]{