@iamproperty/components 5.5.1-beta-2 → 5.5.1-beta-5

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 (84) 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/actionbar.global.css +1 -1
  4. package/assets/css/components/actionbar.global.css.map +1 -1
  5. package/assets/css/components/inline-edit.css +1 -0
  6. package/assets/css/components/inline-edit.css.map +1 -0
  7. package/assets/css/components/inline-edit.preload.css +1 -0
  8. package/assets/css/components/inline-edit.preload.css.map +1 -0
  9. package/assets/css/components/multiselect.css +1 -0
  10. package/assets/css/components/multiselect.css.map +1 -0
  11. package/assets/css/components/multiselect.preload.css +1 -0
  12. package/assets/css/components/multiselect.preload.css.map +1 -0
  13. package/assets/css/components/nav.global.css +1 -1
  14. package/assets/css/components/nav.global.css.map +1 -1
  15. package/assets/css/core.min.css +1 -1
  16. package/assets/css/core.min.css.map +1 -1
  17. package/assets/css/style.min.css +1 -1
  18. package/assets/css/style.min.css.map +1 -1
  19. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  20. package/assets/js/components/actionbar/actionbar.component.js +2 -0
  21. package/assets/js/components/actionbar/actionbar.component.min.js +5 -3
  22. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  23. package/assets/js/components/address-lookup/address-lookup.component.min.js +1 -1
  24. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  25. package/assets/js/components/card/card.component.min.js +1 -1
  26. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  27. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  28. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  29. package/assets/js/components/header/header.component.min.js +1 -1
  30. package/assets/js/components/inline-edit/inline-edit.component.js +148 -0
  31. package/assets/js/components/inline-edit/inline-edit.component.min.js +22 -0
  32. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -0
  33. package/assets/js/components/multiselect/multiselect.component.js +221 -0
  34. package/assets/js/components/multiselect/multiselect.component.min.js +25 -0
  35. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -0
  36. package/assets/js/components/nav/nav.component.min.js +2 -2
  37. package/assets/js/components/notification/notification.component.min.js +1 -1
  38. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  39. package/assets/js/components/search/search.component.min.js +1 -1
  40. package/assets/js/components/search/search.component.min.js.map +1 -1
  41. package/assets/js/components/table/table.component.js +26 -14
  42. package/assets/js/components/table/table.component.min.js +4 -4
  43. package/assets/js/components/table/table.component.min.js.map +1 -1
  44. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  45. package/assets/js/dynamic.min.js +5 -5
  46. package/assets/js/dynamic.min.js.map +1 -1
  47. package/assets/js/modules/helpers.js +4 -0
  48. package/assets/js/modules/inputs.js +6 -2
  49. package/assets/js/modules/table.js +36 -18
  50. package/assets/js/scripts.bundle.js +4 -4
  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/_components.scss +5 -0
  55. package/assets/sass/components/actionbar.global.scss +10 -0
  56. package/assets/sass/components/actionbar.scss +20 -3
  57. package/assets/sass/components/inline-edit.preload.scss +98 -0
  58. package/assets/sass/components/inline-edit.scss +32 -0
  59. package/assets/sass/components/multiselect.preload.scss +37 -0
  60. package/assets/sass/components/multiselect.scss +186 -0
  61. package/assets/sass/components/nav.global.scss +2 -0
  62. package/assets/sass/elements/admin-panel.scss +0 -3
  63. package/assets/sass/elements/badge-tag.scss +15 -5
  64. package/assets/sass/elements/forms.scss +16 -3
  65. package/assets/ts/components/actionbar/actionbar.component.ts +2 -0
  66. package/assets/ts/components/inline-edit/README.md +30 -0
  67. package/assets/ts/components/inline-edit/inline-edit.component.ts +211 -0
  68. package/assets/ts/components/multiselect/README.md +35 -0
  69. package/assets/ts/components/multiselect/multiselect.component.ts +304 -0
  70. package/assets/ts/components/search/README.md +36 -0
  71. package/assets/ts/components/table/table.component.ts +28 -21
  72. package/assets/ts/modules/helpers.ts +6 -0
  73. package/assets/ts/modules/inputs.ts +8 -2
  74. package/assets/ts/modules/table.ts +40 -19
  75. package/dist/components.es.js +66 -65
  76. package/dist/components.umd.js +61 -64
  77. package/package.json +1 -1
  78. package/src/components/InlineEdit/InlineEdit.vue +45 -0
  79. package/src/components/InlineEdit/README.md +7 -0
  80. package/src/components/Multiselect/Multiselect.vue +24 -0
  81. package/src/components/Multiselect/README.md +12 -0
  82. package/src/components/Search/README.md +11 -0
  83. package/src/components/Search/Search.vue +1 -1
  84. package/src/components/Table/Table.vue +2 -1
@@ -4,6 +4,8 @@
4
4
  @use 'components/nav.preload';
5
5
  @use 'components/card.preload';
6
6
  @use 'components/carousel.preload';
7
+ @use 'components/multiselect.preload';
8
+ @use 'components/inline-edit.preload';
7
9
 
8
10
  // #region Undefined web components
9
11
  main > :is(*):not(:defined):not(iam-carousel) {
@@ -28,4 +30,7 @@ main > :is(*):not(:defined):not(iam-carousel) {
28
30
  iam-search input:not(.is-invalid):not(:invalid) {
29
31
  background: none!important;
30
32
  }
33
+ iam-search .optional-text {
34
+ display: none!important;
35
+ }
31
36
 
@@ -170,3 +170,13 @@ button[slot="selected-overflow"] {
170
170
  }
171
171
  }
172
172
  // #endregion
173
+
174
+ // Select all done with vue
175
+
176
+
177
+ iam-actionbar:has(.selectall input:checked) {
178
+ --selectall-opacity: 1;
179
+ --selectall-pe: all;
180
+ --selectall-actionbar-opactiy: 0;
181
+ --selectall-action-pe: none;
182
+ }
@@ -13,10 +13,13 @@
13
13
 
14
14
  // #region View states (Default, search, selected)
15
15
  .views,
16
- .selectall {
16
+ .selectall,
17
+ slot[name="selectall"] {
18
+ display: block;
17
19
  position: absolute!important;
18
20
  top: 50%;
19
21
  left: rem(24);
22
+ margin-left: 0;
20
23
 
21
24
  @include media-breakpoint-up(sm) {
22
25
  left: rem(32);
@@ -30,7 +33,8 @@
30
33
  }
31
34
  }
32
35
 
33
- .selectall {
36
+ .selectall,
37
+ slot[name="selectall"] {
34
38
 
35
39
  width: rem(40);
36
40
  overflow: hidden;
@@ -113,12 +117,25 @@
113
117
  }
114
118
 
115
119
  // Show selected bar
120
+ .actionbar {
121
+
122
+ opacity: var(--selectall-actionbar-opacity,1);
123
+ pointer-events: var(--selectall-actionbar-pe,all);
124
+ }
125
+
126
+ .actionbar--selected {
127
+
128
+ opacity: var(--selectall-opacity,0);
129
+ pointer-events: var(--selectall-pe,none);
130
+ }
131
+
116
132
  .selectall:has(input:checked) ~ .actionbar,
117
133
  .selectall:has(input:indeterminate) ~ .actionbar {
118
134
 
119
135
  opacity: 0;
120
136
  pointer-events: none;
121
137
  }
138
+
122
139
  .selectall:has(input:checked) ~ .actionbar--selected,
123
140
  .selectall:has(input:indeterminate) ~ .actionbar--selected {
124
141
 
@@ -140,7 +157,7 @@
140
157
  // #endregion
141
158
 
142
159
  // #region Slotted elements
143
- ::slotted(*:not([slot="overflow"])){
160
+ ::slotted(.btn){
144
161
  margin-top: 0!important;
145
162
  margin-bottom: 0!important;
146
163
  margin-left: rem(16)!important;
@@ -0,0 +1,98 @@
1
+ @use "../_func" as *;
2
+
3
+ iam-inline-edit {
4
+
5
+ .optional-text {
6
+ display: none;
7
+ }
8
+
9
+ label,
10
+ textarea {
11
+ margin: 0;;
12
+ }
13
+ }
14
+
15
+
16
+ iam-inline-edit:focus-within {
17
+
18
+
19
+ --display-status: none;
20
+ }
21
+
22
+
23
+
24
+
25
+
26
+
27
+ // Inactive state
28
+ iam-inline-edit:defined:not(:focus-within):not([data-saving]):not(.was-validated:has(:invalid)) {
29
+
30
+ --display-btns: none;
31
+
32
+ input,
33
+ textarea,
34
+ select {
35
+ border: none;
36
+ background: none;
37
+ margin-left: -1rem;
38
+ width: calc(100% + 1rem);
39
+ max-width: calc(100% + 1rem);
40
+ box-shadow: none;
41
+ }
42
+ }
43
+
44
+ iam-inline-edit:defined:focus-within:has(select),
45
+ iam-inline-edit:defined[data-saving]:has(select) {
46
+
47
+ --display-btns: none;
48
+ }
49
+
50
+ // Hover state
51
+ iam-inline-edit:defined:not(:focus-within):not([data-saving]):not(.was-validated:has(:invalid)):hover {
52
+
53
+ input,
54
+ textarea,
55
+ select {
56
+ border: none;
57
+ background: var(--colour-light);
58
+ }
59
+ }
60
+
61
+
62
+ // Multi select
63
+
64
+ iam-inline-edit:has(iam-multiselect label[slot=checked]) {
65
+ --display-btns: none;
66
+ }
67
+
68
+ iam-inline-edit:not(:focus-within) iam-multiselect:has(label[slot=checked]) {
69
+ --display-button: none;
70
+ }
71
+
72
+ iam-inline-edit iam-multiselect .tag[slot="checked"]{
73
+
74
+ outline: none;
75
+ }
76
+
77
+
78
+ // Error message
79
+
80
+ iam-inline-edit.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]), select)):has(:is(:invalid, .is-invalid)):after {
81
+
82
+ position: absolute;
83
+ right: 0;
84
+ bottom: 100%;
85
+ padding: 0.85rem;
86
+ width: min-content;
87
+ white-space: nowrap;
88
+
89
+
90
+ color: var(--colour-heading);
91
+
92
+ display: block;
93
+ box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.11);
94
+ background: var(--colour-canvas-2);
95
+ border-radius: 0.5rem;
96
+ margin: 0 0 -1rem 0;
97
+ outline: var(--contrast-outline-width, 0px) solid var(--colour-primary);
98
+ }
@@ -0,0 +1,32 @@
1
+ @use "../_func" as *;
2
+
3
+ :host {
4
+
5
+ max-width: var(--input-max-width, 50rem);
6
+ display: block;
7
+ font-weight: normal;
8
+ margin-bottom: 2rem;
9
+ position: relative;
10
+ }
11
+
12
+ .btns, .status {
13
+ justify-content: flex-end;
14
+ gap: 0.5rem;
15
+ position: absolute;
16
+ top: calc(100% + 0.5rem);
17
+ right: 0;
18
+ }
19
+
20
+ .btns {
21
+
22
+ display: var(--display-btns, flex);
23
+ justify-content: flex-end;
24
+ }
25
+
26
+ .status {
27
+ display: var(--display-status, flex);
28
+ }
29
+
30
+ .btn-action {
31
+ margin: 0;
32
+ }
@@ -0,0 +1,37 @@
1
+ @use "../_func" as *;
2
+
3
+ iam-multiselect .tag[slot="checked"]{
4
+ margin-bottom: rem(8);
5
+ order: var(--order, 1);
6
+ margin-inline: rem(3);
7
+ }
8
+
9
+ iam-multiselect .tag:not([slot="checked"]){
10
+ display: block;
11
+ width: 100%;
12
+ max-width: 100%;
13
+ margin: 0;
14
+ text-align: left;
15
+ border-radius: 0;
16
+ padding-inline: 1rem;
17
+ outline: none;
18
+ padding-block: 0.5rem;
19
+
20
+ &:not(:hover,:focus,:active,:focus-within){
21
+ background: none!important;
22
+ }
23
+
24
+ &::after {
25
+ display: none;
26
+ }
27
+ }
28
+
29
+ iam-multiselect:has(label:not([slot="checked"]):not([slot="notmatched"])) {
30
+
31
+ --display-panel: block;
32
+ }
33
+
34
+ iam-multiselect:has(label[slot="checked"]) {
35
+
36
+ --display-button: block;
37
+ }
@@ -0,0 +1,186 @@
1
+ @use "../_func" as *;
2
+
3
+ .outer {
4
+
5
+ position: relative;
6
+ max-width: var(--input-max-width, 50rem);
7
+ display: block;
8
+ }
9
+
10
+ label {
11
+ margin-bottom: 0;
12
+ padding-bottom: 0.5rem;
13
+ }
14
+
15
+ .wrapper {
16
+
17
+ margin-bottom: rem(24);
18
+ max-width: var(--input-max-width, 50rem);
19
+
20
+ &:after {
21
+ content: "";
22
+ display: block;
23
+ position: absolute;
24
+ top: 100%;
25
+ left: 0;
26
+ width: 100%;
27
+ height: 1rem;
28
+ }
29
+
30
+ input {
31
+
32
+ margin-bottom: rem(8);
33
+ }
34
+
35
+ .feedback {
36
+ position: absolute;
37
+ right: 0;
38
+ bottom: 100%;
39
+ padding: 0.85rem;
40
+ width: min-content;
41
+ white-space: nowrap;
42
+ margin-bottom: 0.5rem;
43
+ display: none;
44
+ }
45
+
46
+ &.was-validated .feedback{
47
+ display: block;
48
+ }
49
+ }
50
+
51
+ .wrapper.filled {
52
+
53
+ display: flex;
54
+ flex-direction: row;
55
+ flex-wrap: wrap;
56
+ align-items: flex-start;
57
+ min-height: calc(0.75rem + 0.75rem + 1.25rem + 4px);
58
+ padding: #{rem(8)} #{rem(32)} #{rem(0)} #{rem(13)};
59
+ font-size: var(--input-fs, #{rem(16)});
60
+ line-height: var(--input-lh, #{rem(20)});
61
+ color: var(--colour-body);
62
+ background-color: var(--colour-canvas-2);
63
+ border: 2px solid var(--colour-primary);
64
+ border-radius: rem(8);
65
+
66
+ &:is(:focus-within,.focus-within):not(:disabled) {
67
+ border-color: var(--colour-info);
68
+ outline: 0;
69
+ box-shadow: 0 0 0 0.1rem rgba(30, 190, 230, 0.25);
70
+ }
71
+
72
+ input {
73
+ all: unset;
74
+ font-size: rem(16);
75
+ line-height: rem(26);
76
+ display: inline-block;
77
+ width: 0;
78
+ flex-grow: 1;
79
+ padding: 0 rem(8) 0 0!important;
80
+ margin-inline: rem(3);
81
+ order: 999;
82
+ margin-bottom: rem(8);
83
+ }
84
+
85
+ .feedback {
86
+ display: none!important;
87
+ }
88
+
89
+ &:is(:focus,.focus):not(:disabled) {
90
+ border-color: var(--colour-info);
91
+ outline: 0;
92
+ box-shadow: 0 0 0 0.1rem rgba(30, 190, 230, 0.25);
93
+ }
94
+ }
95
+
96
+ button {
97
+
98
+ position: absolute;
99
+ top: 0.75rem;
100
+ right: 0.5rem;
101
+ border: none;
102
+ background: none;
103
+ padding-inline: 0.5rem;
104
+ display: var(--display-button, none);
105
+
106
+ &:after {
107
+ content: '\2715';
108
+ font-weight: bold;
109
+ }
110
+ }
111
+
112
+ .dropdown {
113
+ position: absolute;
114
+ top: calc(100% + 0.5rem);
115
+ padding: 0;
116
+ left: 0;
117
+ width: 100%;
118
+ margin: 0;
119
+ z-index: 99;
120
+ display: none;
121
+ max-height: rem(244) !important;
122
+ overflow: auto;
123
+
124
+ &:before {
125
+ display: none;
126
+ }
127
+ }
128
+
129
+
130
+
131
+ .wrapper:is(:hover, :focus-within) .dropdown {
132
+
133
+ display: var(--display-panel, none);
134
+ }
135
+
136
+
137
+ // Inline edit
138
+ :host-context(:focus-within) {
139
+ input {
140
+ background-color: none!important;
141
+ }
142
+ }
143
+ :host-context(iam-inline-edit) {
144
+
145
+ display: block;
146
+ --display-btns: none;
147
+
148
+ label:hover + .outer:not(:focus-within) .wrapper:not([data-mousedown]),
149
+ .outer:not(:focus-within) .wrapper:not([data-mousedown]):hover{
150
+
151
+ background-color: var(--colour-light);
152
+
153
+ input {
154
+ background-color: var(--colour-light);
155
+ }
156
+
157
+ .dropdown {
158
+ display: none;
159
+ }
160
+ }
161
+
162
+ .wrapper {
163
+ margin-bottom: 0;
164
+ }
165
+
166
+ .wrapper:not(.filled):not(:focus-within):not([data-mousedown]){
167
+
168
+ input {
169
+ border: none;
170
+ background: none;
171
+ margin-left: -1rem;
172
+ width: calc(100% + 1rem);
173
+ max-width: calc(100% + 1rem);
174
+ box-shadow: none;
175
+ }
176
+
177
+ .dropdown {
178
+ display: none;
179
+ }
180
+ }
181
+ .wrapper.filled:not(:focus-within):not([data-mousedown]) {
182
+ background: none;
183
+ border: none;
184
+ padding-left: 0;
185
+ }
186
+ }
@@ -140,6 +140,8 @@ iam-nav {
140
140
 
141
141
 
142
142
  iam-nav details {
143
+
144
+ padding-bottom: 0;
143
145
 
144
146
  > summary {
145
147
 
@@ -5,10 +5,7 @@
5
5
  --padding-top: #{rem(16)};
6
6
  --padding-bottom: #{rem(24)};
7
7
  --mh-modifier: #{rem(56 + 16)};
8
-
9
8
  --mh-padding-inline: var(--padding-x);
10
-
11
-
12
9
  display: block;
13
10
  padding: var(--padding-top) var(--padding-x) var(--padding-bottom) var(--padding-x);
14
11
  box-shadow: 0px 6px 12px rgba(0,0,0,0.11);
@@ -19,7 +19,7 @@
19
19
  background: var(--wider-colour, var(--wider-colour-1));
20
20
  margin-bottom: 1rem;
21
21
 
22
- &:has(:is(.badge, .tag)) {
22
+ &:has(+ :is(.badge, .tag)) {
23
23
  margin-right: rem(6);
24
24
  }
25
25
 
@@ -36,11 +36,10 @@
36
36
  font-weight: bold;
37
37
  }
38
38
 
39
- &:is(:hover,:focus,.hover) {
39
+ &:is(:hover,:focus,.hover,:focus-within, :focus-visible) {
40
40
  background: var(--wider-colour-hover, var(--wider-colour-1-hover));
41
41
  }
42
42
 
43
- &:has(input:checked),
44
43
  &:is(:active,.active) {
45
44
  background: var(--wider-colour-active, var(--wider-colour-1-active));
46
45
  }
@@ -53,8 +52,9 @@
53
52
  }
54
53
  }
55
54
 
56
- .tag.tag--toggle,
57
- .tag.tag--not-set {
55
+ .tag.tag--not-set,
56
+ iam-multiselect:not(:defined) .tag,
57
+ .tag.tag--toggle {
58
58
 
59
59
  background: var(--colour-canvas);
60
60
  outline: 1px solid var(--colour-border);
@@ -66,6 +66,16 @@
66
66
  &:after {
67
67
  display: none;
68
68
  }
69
+
70
+ &:is(:hover,:focus) {
71
+
72
+ background: #EEEEEE;
73
+ }
74
+
75
+ &:is(:active) {
76
+
77
+ background: #E0E0E0;
78
+ }
69
79
 
70
80
  &:has(input:checked),
71
81
  &.selected {
@@ -373,6 +373,18 @@ input[maxlength] + span {
373
373
 
374
374
  border-color: var(--colour-danger)!important;
375
375
  }
376
+
377
+
378
+ .was-validated select:is(:invalid, .is-invalid, [aria-invalid],:-internal-autofill-selected) {
379
+
380
+ $form-select-indicator-new: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m2 5 6 6 6-6'/></svg>") !default;
381
+
382
+ background: escape-svg($form-select-indicator-new) right var(--input-padding-block, 0.75rem) top var(--input-padding-block, 0.75rem) / var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,
383
+ linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top / calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)) calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.8rem) + var(--input-lh, 1.25rem)) no-repeat,
384
+ escape-svg($icon-error) right var(--input-padding-block, 3.5rem) top var(--input-padding-block, 0.75rem) / var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat;
385
+ padding-right: 6rem!important;
386
+ }
387
+
376
388
  .was-validated input:is(:invalid, .is-invalid,[aria-invalid],:-internal-autofill-selected) {
377
389
 
378
390
  background-image: escape-svg($icon-error);
@@ -769,12 +781,13 @@ select[multiple]::-webkit-scrollbar-thumb {
769
781
  select {
770
782
  $form-select-indicator-new: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m2 5 6 6 6-6'/></svg>") !default;
771
783
 
772
- background: escape-svg($form-select-indicator-new) right var(--input-padding-block, 0.75rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,
773
- linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top/calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)) calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)) no-repeat;
784
+ background: escape-svg($form-select-indicator-new) right var(--input-padding-block, 0.75rem) top var(--input-padding-block, 0.75rem) / var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,
785
+ linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top / calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)) calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.8rem) + var(--input-lh, 1.25rem)) no-repeat;
774
786
 
775
787
  padding-right: calc(var(--input-padding-inline, #{rem(16)}) + var(--input-padding-inline, #{rem(16)}) + var(--input-lh, 1.25rem))!important;
776
788
  option {font-size: 1.2em;}
777
789
 
790
+ box-shadow: inset -2px 0px 0px var(--colour-primary-theme);
778
791
 
779
792
  max-width: $select-max-width;
780
793
 
@@ -864,7 +877,7 @@ iam-fileupload {
864
877
  margin-bottom: rem(24);
865
878
  max-width: $input-max-width;
866
879
 
867
- :is(input:not([type="range"]),select) {
880
+ :is(input:not([type="range"]),select,textarea) {
868
881
  margin-top: rem(8);
869
882
  margin-bottom: 0!important;
870
883
  }
@@ -56,7 +56,9 @@ class iamActionbar extends HTMLElement {
56
56
  </style>
57
57
  <link rel="stylesheet" href="https://kit.fontawesome.com/26fdbf0179.css" crossorigin="anonymous">
58
58
  <div class="actionbar__wrapper">
59
+
59
60
  <div class="actionbar">
61
+ <slot name="selectall"></slot>
60
62
  <div class="safe-area">
61
63
  <slot></slot>
62
64
  <div class="body">
@@ -0,0 +1,30 @@
1
+ **Add the below to your initialise script**
2
+
3
+ ```
4
+ import('../node_modules/@iamproperty/components/assets/js/components/nav/nav.component.min').then(module => { // Might need to update the path
5
+
6
+ if (!window.customElements.get(`iam-nav`))
7
+ window.customElements.define(`iam-nav`, module.default);
8
+
9
+ }).catch((err) => {
10
+ console.log(err.message);
11
+ });
12
+ ```
13
+
14
+ **Add the below HTML code to where you want the component to live.**
15
+
16
+ ```
17
+ <iam-inline-edit id="inlineEdit" data-autosave>
18
+ <label >Optional label
19
+ <input type="text" name="text" value="Placeholder text" />
20
+ </label>
21
+ </iam-inline-edit>
22
+ ```
23
+
24
+ ```
25
+
26
+ **Properties**
27
+
28
+ | Option | Type | Default Value | Description |
29
+ | ------ | ---- | ------------- | ----------- |
30
+ | data-autosave | Flag | - | Allows the input field to dispatch the autosave event when unfocusing the input field |