@iamproperty/components 3.8.0 → 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 (86) hide show
  1. package/assets/css/components/actionbar-global.css +1 -0
  2. package/assets/css/components/actionbar-global.css.map +1 -0
  3. package/assets/css/components/actionbar.css +1 -0
  4. package/assets/css/components/actionbar.css.map +1 -0
  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/components/header.css +1 -1
  10. package/assets/css/components/header.css.map +1 -1
  11. package/assets/css/components/lists.css.map +1 -1
  12. package/assets/css/components/nav-global.css +1 -0
  13. package/assets/css/components/nav-global.css.map +1 -0
  14. package/assets/css/components/nav.css +1 -1
  15. package/assets/css/components/nav.css.map +1 -1
  16. package/assets/css/components/nav.docs.css +1 -0
  17. package/assets/css/components/nav.docs.css.map +1 -0
  18. package/assets/css/components/nav.old.css +1 -0
  19. package/assets/css/components/nav.old.css.map +1 -0
  20. package/assets/css/components/pagination.css.map +1 -1
  21. package/assets/css/components/property-searchbar.css +1 -1
  22. package/assets/css/components/property-searchbar.css.map +1 -1
  23. package/assets/css/components/table.css +1 -1
  24. package/assets/css/components/table.css.map +1 -1
  25. package/assets/css/core.min.css +1 -1
  26. package/assets/css/core.min.css.map +1 -1
  27. package/assets/css/style.min.css +1 -1
  28. package/assets/css/style.min.css.map +1 -1
  29. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  30. package/assets/js/components/actionbar/actionbar.component.js +305 -0
  31. package/assets/js/components/actionbar/actionbar.component.min.js +53 -0
  32. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -0
  33. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  34. package/assets/js/components/card/card.component.min.js +1 -1
  35. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  36. package/assets/js/components/header/header.component.min.js +2 -2
  37. package/assets/js/components/nav/nav.component.js +294 -0
  38. package/assets/js/components/nav/nav.component.min.js +51 -0
  39. package/assets/js/components/nav/nav.component.min.js.map +1 -0
  40. package/assets/js/components/notification/notification.component.min.js +1 -1
  41. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  42. package/assets/js/components/table/table.component.js +33 -0
  43. package/assets/js/components/table/table.component.min.js +12 -11
  44. package/assets/js/components/table/table.component.min.js.map +1 -1
  45. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  46. package/assets/js/dynamic.min.js +3 -3
  47. package/assets/js/dynamic.min.js.map +1 -1
  48. package/assets/js/modules/dialogs.js +3 -0
  49. package/assets/js/modules/table.js +1 -1
  50. package/assets/js/scripts.bundle.js +15 -14
  51. package/assets/js/scripts.bundle.js.map +1 -1
  52. package/assets/js/scripts.bundle.min.js +2 -2
  53. package/assets/js/scripts.bundle.min.js.map +1 -1
  54. package/assets/sass/_corefiles.scss +2 -0
  55. package/assets/sass/_functions/mixins.scss +25 -0
  56. package/assets/sass/_functions/variables.scss +1 -1
  57. package/assets/sass/components/actionbar-global.scss +89 -0
  58. package/assets/sass/components/actionbar.scss +254 -0
  59. package/assets/sass/components/dialog.scss +10 -0
  60. package/assets/sass/components/forms.scss +29 -0
  61. package/assets/sass/components/nav-global.scss +619 -0
  62. package/assets/sass/components/nav.docs.scss +54 -0
  63. package/assets/sass/components/nav.old.scss +965 -0
  64. package/assets/sass/components/nav.scss +450 -782
  65. package/assets/sass/components/table.scss +9 -1
  66. package/assets/sass/foundations/buttons.scss +57 -32
  67. package/assets/sass/foundations/links.scss +1 -1
  68. package/assets/sass/foundations/reboot.scss +5 -3
  69. package/assets/ts/components/actionbar/README.md +55 -0
  70. package/assets/ts/components/actionbar/actionbar.component.ts +396 -0
  71. package/assets/ts/components/nav/README.md +68 -0
  72. package/assets/ts/components/nav/nav.component.ts +370 -0
  73. package/assets/ts/components/table/table.component.ts +65 -0
  74. package/assets/ts/modules/dialogs.ts +6 -0
  75. package/assets/ts/modules/table.ts +5 -5
  76. package/dist/components.es.js +839 -1092
  77. package/dist/components.umd.js +96 -46
  78. package/dist/style.css +1 -1
  79. package/package.json +1 -1
  80. package/src/components/Actionbar/Actionbar.vue +20 -0
  81. package/src/components/Actionbar/README.md +40 -0
  82. package/src/components/Nav/Nav.vue +20 -195
  83. package/src/components/Nav/README.md +43 -13
  84. package/src/components/Nav-old/Nav.vue +213 -0
  85. package/src/components/Nav-old/README.md +23 -0
  86. 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),
@@ -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
  }
@@ -256,6 +257,15 @@ dialog::backdrop {
256
257
  button {
257
258
  margin-bottom: 0;
258
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
+ }
259
269
  }
260
270
  // #endregion
261
271
 
@@ -387,6 +387,7 @@ input:is([type="radio"],[type="checkbox"]) {
387
387
  height: 0;
388
388
  width: 0;
389
389
  margin: 0;
390
+ pointer-events: none;
390
391
  }
391
392
 
392
393
  :is(div,fieldset):has(> input:is([type="radio"],[type="checkbox"])) {
@@ -546,6 +547,34 @@ input[type="checkbox"]:checked + label {
546
547
  }
547
548
  }
548
549
 
550
+ input[type="checkbox"]:indeterminate + label {
551
+
552
+ &:before {
553
+ background: var(--colour-info) !important;
554
+ border-color: var(--colour-info) !important;
555
+ }
556
+
557
+ &:after {
558
+ content: "\f068";
559
+ position: absolute;
560
+ font-size: 1em;
561
+ line-height: 1;
562
+ color: var(--colour-primary-theme);
563
+ font-family: "Font Awesome 6 Pro";
564
+ font-weight: bold;
565
+ height: rem(24);
566
+ width: rem(24);
567
+ line-height: rem(26);
568
+ background: none !important;
569
+ border: none!important;
570
+ outline: none!important;
571
+ top: rem(10 - 2);
572
+ left: var(--outline-width);
573
+ text-align: center;
574
+ }
575
+ }
576
+
577
+
549
578
  input:is([type="radio"],[type="checkbox"]):checked:is(:focus,:hover,.focus) + label {
550
579
 
551
580
  --tick-colour: var(--colour-info);