@iamproperty/components 5.0.0 → 5.1.0-beta10

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 (208) hide show
  1. package/assets/css/components/accordion.css +1 -1
  2. package/assets/css/components/accordion.css.map +1 -1
  3. package/assets/css/components/accordion.global.css +1 -0
  4. package/assets/css/components/accordion.global.css.map +1 -0
  5. package/assets/css/components/actionbar.css +1 -1
  6. package/assets/css/components/actionbar.css.map +1 -1
  7. package/assets/css/components/actionbar.global.css +1 -0
  8. package/assets/css/components/actionbar.global.css.map +1 -0
  9. package/assets/css/components/card.css +1 -1
  10. package/assets/css/components/card.css.map +1 -1
  11. package/assets/css/components/card.global.css +1 -0
  12. package/assets/css/components/card.global.css.map +1 -0
  13. package/assets/css/components/carousel.css +1 -1
  14. package/assets/css/components/carousel.css.map +1 -1
  15. package/assets/css/components/component.native.css +1 -0
  16. package/assets/css/components/component.native.css.map +1 -0
  17. package/assets/css/components/component.reset.css +1 -1
  18. package/assets/css/components/component.reset.css.map +1 -1
  19. package/assets/css/components/fileupload.css +1 -1
  20. package/assets/css/components/fileupload.css.map +1 -1
  21. package/assets/css/components/header.css +1 -1
  22. package/assets/css/components/header.css.map +1 -1
  23. package/assets/css/components/marketing.css +1 -0
  24. package/assets/css/components/marketing.css.map +1 -0
  25. package/assets/css/components/nav.css +1 -1
  26. package/assets/css/components/nav.css.map +1 -1
  27. package/assets/css/components/nav.global.css +1 -0
  28. package/assets/css/components/nav.global.css.map +1 -0
  29. package/assets/css/components/notification.global.css +1 -0
  30. package/assets/css/components/notification.global.css.map +1 -0
  31. package/assets/css/components/pagination.css +1 -1
  32. package/assets/css/components/pagination.css.map +1 -1
  33. package/assets/css/components/slider.css +1 -0
  34. package/assets/css/components/slider.css.map +1 -0
  35. package/assets/css/components/table.css +1 -1
  36. package/assets/css/components/table.css.map +1 -1
  37. package/assets/css/components/{table.extras.css → table.global.css} +1 -1
  38. package/assets/css/components/{table.extras.css.map → table.global.css.map} +1 -1
  39. package/assets/css/components/tabs.css +1 -1
  40. package/assets/css/components/tabs.css.map +1 -1
  41. package/assets/css/core.min.css +1 -1
  42. package/assets/css/core.min.css.map +1 -1
  43. package/assets/css/style.min.css +1 -1
  44. package/assets/css/style.min.css.map +1 -1
  45. package/assets/img/illustrations/add-new-property.png +0 -0
  46. package/assets/img/illustrations/auctioneer.png +0 -0
  47. package/assets/img/illustrations/branch.png +0 -0
  48. package/assets/img/illustrations/company-level.png +0 -0
  49. package/assets/img/illustrations/contractors.png +0 -0
  50. package/assets/img/illustrations/find-existing-property.png +0 -0
  51. package/assets/img/illustrations/green/add-new-property.png +0 -0
  52. package/assets/img/illustrations/green/auctioneer.png +0 -0
  53. package/assets/img/illustrations/green/branch.png +0 -0
  54. package/assets/img/illustrations/green/buyer.png +0 -0
  55. package/assets/img/illustrations/green/company-level.png +0 -0
  56. package/assets/img/illustrations/green/contractors.png +0 -0
  57. package/assets/img/illustrations/green/estate-agents.png +0 -0
  58. package/assets/img/illustrations/green/find-existing-property.png +0 -0
  59. package/assets/img/illustrations/green/landlords.png +0 -0
  60. package/assets/img/illustrations/green/seller.png +0 -0
  61. package/assets/img/illustrations/green/whats-new-2.png +0 -0
  62. package/assets/img/illustrations/green/whats-new.png +0 -0
  63. package/assets/img/illustrations/information-works.png +0 -0
  64. package/assets/img/illustrations/landlords.png +0 -0
  65. package/assets/img/illustrations/whats-new-2.png +0 -0
  66. package/assets/img/illustrations/whats-new.png +0 -0
  67. package/assets/img/signin-bg.png +0 -0
  68. package/assets/js/components/accordion/accordion.component.js +4 -0
  69. package/assets/js/components/accordion/accordion.component.min.js +6 -5
  70. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  71. package/assets/js/components/actionbar/actionbar.component.js +4 -0
  72. package/assets/js/components/actionbar/actionbar.component.min.js +5 -4
  73. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  74. package/assets/js/components/address-lookup/address-lookup.component.js +18 -4
  75. package/assets/js/components/address-lookup/address-lookup.component.min.js +5 -5
  76. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  77. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  78. package/assets/js/components/card/card.component.js +6 -1
  79. package/assets/js/components/card/card.component.min.js +6 -4
  80. package/assets/js/components/card/card.component.min.js.map +1 -1
  81. package/assets/js/components/carousel/carousel.component.js +61 -0
  82. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  83. package/assets/js/components/fileupload/fileupload.component.min.js +2 -2
  84. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  85. package/assets/js/components/header/header.component.js +6 -12
  86. package/assets/js/components/header/header.component.min.js +8 -14
  87. package/assets/js/components/header/header.component.min.js.map +1 -1
  88. package/assets/js/components/marketing/marketing.component.js +37 -0
  89. package/assets/js/components/nav/nav.component.js +8 -36
  90. package/assets/js/components/nav/nav.component.min.js +10 -12
  91. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  92. package/assets/js/components/notification/notification.component.js +4 -0
  93. package/assets/js/components/notification/notification.component.min.js +4 -3
  94. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  95. package/assets/js/components/pagination/pagination.component.min.js +2 -2
  96. package/assets/js/components/search/search.component.js +148 -0
  97. package/assets/js/components/search/search.component.min.js +14 -0
  98. package/assets/js/components/search/search.component.min.js.map +1 -0
  99. package/assets/js/components/slider/slider.component.js +143 -0
  100. package/assets/js/components/table/table.component.js +1 -1
  101. package/assets/js/components/table/table.component.min.js +6 -6
  102. package/assets/js/components/table/table.component.min.js.map +1 -1
  103. package/assets/js/components/tabs/tabs.component.js +2 -0
  104. package/assets/js/components/tabs/tabs.component.min.js +5 -3
  105. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  106. package/assets/js/dynamic.js +1 -1
  107. package/assets/js/dynamic.min.js +5 -5
  108. package/assets/js/dynamic.min.js.map +1 -1
  109. package/assets/js/modules/carousel.js +15 -23
  110. package/assets/js/modules/dynamicEvents.js +28 -13
  111. package/assets/js/modules/helpers.js +4 -1
  112. package/assets/js/modules/inputs.js +44 -3
  113. package/assets/js/modules/table.js +8 -6
  114. package/assets/js/modules/tabs.js +29 -31
  115. package/assets/js/scripts.bundle.js +31 -35
  116. package/assets/js/scripts.bundle.js.map +1 -1
  117. package/assets/js/scripts.bundle.min.js +2 -2
  118. package/assets/js/scripts.bundle.min.js.map +1 -1
  119. package/assets/js/tests/slider.spec.js +20 -0
  120. package/assets/sass/_components.scss +0 -6
  121. package/assets/sass/_corefiles.scss +9 -88
  122. package/assets/sass/_elements.scss +1 -2
  123. package/assets/sass/_functions/mixins.scss +16 -0
  124. package/assets/sass/_functions/utilities.scss +0 -17
  125. package/assets/sass/_functions/variables.scss +1 -0
  126. package/assets/sass/components/accordion.global.scss +135 -0
  127. package/assets/sass/components/accordion.scss +6 -192
  128. package/assets/sass/components/{actionbar-global.scss → actionbar.global.scss} +3 -1
  129. package/assets/sass/components/actionbar.scss +2 -2
  130. package/assets/sass/components/{card-global.scss → card.global.scss} +2 -23
  131. package/assets/sass/components/card.scss +44 -3
  132. package/assets/sass/components/carousel.scss +86 -159
  133. package/assets/sass/components/component.native.scss +120 -0
  134. package/assets/sass/components/component.reset.scss +1 -3
  135. package/assets/sass/components/fileupload.scss +1 -1
  136. package/assets/sass/components/header.scss +55 -52
  137. package/assets/sass/components/marketing.scss +64 -0
  138. package/assets/sass/components/{nav-global.scss → nav.global.scss} +2 -1
  139. package/assets/sass/components/nav.scss +7 -1
  140. package/assets/sass/components/notification.global.scss +41 -0
  141. package/assets/sass/components/pagination.scss +4 -0
  142. package/assets/sass/components/slider.scss +121 -0
  143. package/assets/sass/components/{table.extras.scss → table.global.scss} +5 -1
  144. package/assets/sass/components/table.scss +1 -1
  145. package/assets/sass/components/tabs.scss +2 -5
  146. package/assets/sass/core.scss +1 -2
  147. package/assets/sass/elements/admin-panel.scss +9 -7
  148. package/assets/sass/elements/badge.scss +29 -0
  149. package/assets/sass/elements/container.scss +17 -0
  150. package/assets/sass/elements/dialog.scss +4 -4
  151. package/assets/sass/elements/forms.scss +142 -14
  152. package/assets/sass/elements/links.scss +2 -1
  153. package/assets/sass/elements/table.element.scss +1 -2
  154. package/assets/sass/error.scss +1 -1
  155. package/assets/sass/foundations/reboot.scss +59 -12
  156. package/assets/sass/foundations/root.scss +11 -3
  157. package/assets/sass/helpers/max-height.scss +78 -4
  158. package/assets/sass/main.scss +0 -1
  159. package/assets/sass/templates/auth.scss +112 -0
  160. package/assets/sass/templates/form.scss +1 -0
  161. package/assets/ts/components/accordion/accordion.component.ts +5 -0
  162. package/assets/ts/components/actionbar/actionbar.component.ts +5 -0
  163. package/assets/ts/components/address-lookup/address-lookup.component.ts +24 -5
  164. package/assets/ts/components/card/card.component.ts +7 -1
  165. package/assets/ts/components/carousel/README.md +39 -0
  166. package/assets/ts/components/carousel/carousel.component.ts +75 -0
  167. package/assets/ts/components/header/header.component.ts +6 -12
  168. package/assets/ts/components/marketing/marketing.component.ts +49 -0
  169. package/assets/ts/components/nav/README.md +2 -13
  170. package/assets/ts/components/nav/nav.component.ts +9 -47
  171. package/assets/ts/components/notification/notification.component.ts +4 -0
  172. package/assets/ts/components/search/search.component.ts +177 -0
  173. package/assets/ts/components/slider/README.md +26 -0
  174. package/assets/ts/components/slider/slider.component.ts +189 -0
  175. package/assets/ts/components/table/table.component.ts +1 -1
  176. package/assets/ts/components/tabs/tabs.component.ts +2 -0
  177. package/assets/ts/dynamic.ts +1 -1
  178. package/assets/ts/modules/carousel.ts +21 -33
  179. package/assets/ts/modules/dynamicEvents.ts +44 -24
  180. package/assets/ts/modules/helpers.ts +8 -2
  181. package/assets/ts/modules/inputs.ts +61 -4
  182. package/assets/ts/modules/table.ts +11 -14
  183. package/assets/ts/modules/tabs.ts +38 -41
  184. package/assets/ts/tests/slider.spec.ts +33 -0
  185. package/dist/components.es.js +893 -1542
  186. package/dist/components.umd.js +328 -161
  187. package/dist/style.css +1 -1
  188. package/package.json +5 -4
  189. package/src/components/Accordion/Accordion.vue +12 -5
  190. package/src/components/Actionbar/Actionbar.vue +12 -5
  191. package/src/components/Card/Card.vue +1 -1
  192. package/src/components/Carousel/Carousel.vue +18 -103
  193. package/src/components/Header/Header.vue +10 -6
  194. package/src/components/Marketing/Marketing.vue +39 -0
  195. package/src/components/Marketing/README.md +20 -0
  196. package/src/components/Nav/Nav.vue +1 -1
  197. package/src/components/Nav/README.md +1 -12
  198. package/src/components/Search/Search.vue +25 -0
  199. package/src/components/Slider/README.md +11 -0
  200. package/src/components/Slider/Slider.vue +25 -0
  201. package/src/components/Tabs/Tabs.vue +14 -5
  202. package/assets/css/components/actionbar-global.css +0 -1
  203. package/assets/css/components/actionbar-global.css.map +0 -1
  204. package/assets/css/components/card-global.css +0 -1
  205. package/assets/css/components/card-global.css.map +0 -1
  206. package/assets/css/components/nav-global.css +0 -1
  207. package/assets/css/components/nav-global.css.map +0 -1
  208. package/src/components/Carousel/Carousel.spec.js +0 -45
@@ -0,0 +1,20 @@
1
+ // @ts-nocheck
2
+ import '@testing-library/jest-dom';
3
+ import "expect-puppeteer";
4
+ import iamSlider from "../components/slider/slider.component.js";
5
+ describe('The slider component', () => {
6
+ if (!window.customElements.get(`iam-slider`))
7
+ window.customElements.define(`iam-slider`, iamSlider);
8
+ test('should always show the minimum and maximum values that it can be set', () => {
9
+ document.body.innerHTML = `<label>Input field label <iam-slider><input type="number" name="percent" min="0" max="100" value="15" step="1" /></iam-slider></label>`;
10
+ let component = document.querySelector('iam-slider');
11
+ expect(component.shadowRoot.innerHTML).toContain('<div class="col min pe-2">0</div>');
12
+ expect(component.shadowRoot.innerHTML).toContain('<div class="col max ps-2">100</div>');
13
+ });
14
+ test('should always have a secondary way of inputing the value i.e. a number input field', () => {
15
+ document.body.innerHTML = `<label>Input field label <iam-slider><input type="number" name="percent" min="0" max="100" value="15" step="1" /></iam-slider></label>`;
16
+ let component = document.querySelector('iam-slider');
17
+ expect(component.querySelectorAll('input[type="number"]').length).toEqual(1);
18
+ expect(component.shadowRoot.querySelectorAll('input[type="range"]').length).toEqual(1);
19
+ });
20
+ });
@@ -1,15 +1,9 @@
1
- @use "components/card.scss";
2
- @use "components/nav.scss";
3
1
  @use "components/header.scss";
4
2
  @use "components/testimonial.scss";
5
- @use "components/accordion.scss";
6
- @use "components/notification";
7
3
  @use "components/carousel.scss";
8
4
  @use "components/property-searchbar.scss";
9
- @use "components/tabs.scss";
10
5
  @use "components/charts.scss";
11
6
  @use "components/timeline.scss";
12
7
  @use "components/snapshot.scss";
13
8
  @use "components/stepper.scss";
14
9
 
15
- @use "components/pagination.scss";
@@ -16,101 +16,22 @@
16
16
 
17
17
  @include layer('components') {
18
18
 
19
- // #region Undefined web components
20
- :is(*):not(:defined):not(iam-nav):not(iam-pagination) {
21
- display: block;
22
- padding: rem(24);
23
- margin-bottom: rem(24);
24
- border-radius: rem(8);
25
- margin-left: auto;
26
- margin-right: auto;
27
- max-width: 80rem;
28
- }
29
-
30
- main > :is(*):not(:defined) {
31
-
32
- padding: var(--container-padding);
33
- padding-top: 1rem;
34
- }
35
-
36
- @include media-breakpoint-up(md) {
19
+ // Make sure the first
20
+ main {
21
+ position: relative;
37
22
 
38
- main > :is(*):not(:defined) {
39
- max-width: 100%!important;
40
- padding-inline: calc(50% - #{rem(math.div(1112,2))});
41
- }
42
-
43
- iam-header:not(:defined) {
44
- min-height: rem(470);
45
- }
46
- }
47
-
48
- :is(iam-notification,iam-card):not(:defined) {
49
- box-shadow: var(--card-box-shadow);
50
- border-radius: var(--card-border-radius);
51
- padding: var(--card-top-padding) var(--card-right-padding) var(--card-bottom-padding) var(--card-left-padding);
52
- }
53
-
54
- main {
55
- position: relative;
56
-
57
- > *:first-child {
58
- padding-top: 2rem;
23
+ > *:first-child {
24
+ padding-top: 2rem;
25
+ }
59
26
  }
60
- }
61
-
62
- .container.notification__holder {
63
-
64
- position: fixed;
65
- top: var(--nav-height);
66
- left: 50%;
67
- transform: translate(-50%,0);
68
-
69
- bottom: 0;
70
- z-index: 999999;
71
- pointer-events: none;
72
- padding-top: 1rem;
73
- padding-bottom: 1rem;
74
- display: flex;
75
- margin: 0;
76
- width: 100%;
77
- //max-width: rem(454);
78
- flex-wrap: wrap;
79
- align-content: flex-start;
80
- flex-direction: column;
81
- align-content: flex-end;
82
- align-items: flex-end;
83
-
84
- :is(.iam-notification, iam-notification) {
85
- pointer-events: all;
86
- margin: 0.5rem 0 0.5rem 0;
87
- }
88
-
89
- &.bottom {
90
- flex-direction: column-reverse;
91
- }
92
-
93
- &.left {
94
- align-content: flex-start;
95
- align-items: flex-start;
96
- }
97
-
98
- &.middle {
99
- align-content: space-around;
100
- align-items: center;
101
- }
102
- }
103
- // #endregion
104
27
 
105
- @import "components/tabs.scss";
106
- @import "components/accordion.scss";
107
- @import "components/card-global.scss";
108
- @import "components/actionbar-global.scss";
109
- // Bootstrap elements
28
+ // Deal with preloaded state of native components
29
+ @import "components/component.native.scss";
110
30
  }
111
31
 
112
32
  @include layer('templates') {
113
33
  @import "templates/form.scss";
34
+ @import "templates/auth.scss";
114
35
  }
115
36
 
116
37
  @include layer('utilities') {
@@ -13,7 +13,6 @@
13
13
  @import "elements/dialog.scss";
14
14
  @import "elements/admin-panel.scss";
15
15
 
16
- @import "../bootstrap/scss/forms/_form-range";
17
16
  @import "elements/forms.scss";
18
17
 
19
- @import "../bootstrap/scss/_badge.scss";
18
+ @import "elements/badge.scss";
@@ -211,3 +211,19 @@
211
211
  --colour-#{$color}: #{$value};
212
212
  }
213
213
  }
214
+
215
+ @mixin slotted($el, $isComponent:"true"){
216
+
217
+ @if $isComponent == "true" {
218
+ ::slotted(#{$el}) {
219
+
220
+ @content;
221
+ }
222
+ }
223
+ @else {
224
+ #{$el} {
225
+
226
+ @content;
227
+ }
228
+ }
229
+ }
@@ -201,23 +201,6 @@ $utilities: map-merge(
201
201
  );
202
202
  // #endregion
203
203
 
204
- // #region Max height classes
205
- $utilities: map-merge(
206
- $utilities,
207
- (
208
- "max-heights": (
209
- property: max-height,
210
- class: mh,
211
- values: (
212
- "sm": #{rem(200)},
213
- "md": #{rem(400)},
214
- "lg": #{rem(600)}
215
- )
216
- )
217
- )
218
- );
219
- // #endregion
220
-
221
204
  // #region Max height classes
222
205
  $utilities: map-merge(
223
206
  $utilities,
@@ -39,6 +39,7 @@ $vars: map-merge((
39
39
  "--container-padding-top": 0,
40
40
  "--container-padding-bottom": #{rem(16)},
41
41
  "--container-padding-x": #{rem($container-padding-x)},
42
+ "--container-padding-x-sm": #{rem($container-padding-x-sm)},
42
43
  "--container-padding-x-md": #{rem($container-padding-x-md)},
43
44
  "--container-padding": $container-padding,
44
45
  "--container-padding-sm": $container-padding-sm,
@@ -0,0 +1,135 @@
1
+ @use "../_func.scss" as *;
2
+
3
+ .accordion-header {
4
+
5
+ padding: $accordion-button-padding-y var(--accordion-right-padding) $accordion-button-padding-y $accordion-button-padding-x;
6
+ color: var(--colour-heading);
7
+ text-align: left; // Reset button style
8
+ background-color: $accordion-button-bg;
9
+ overflow-anchor: none;
10
+ @include transition($accordion-transition);
11
+
12
+ --marker-bg: var(--colour-secondary);
13
+
14
+
15
+
16
+ cursor: pointer;
17
+ position: relative;
18
+ max-width: 100%;
19
+
20
+ .badge {
21
+ vertical-align: bottom;
22
+ margin-left: 0.5em;
23
+ margin-right: 0.5em;
24
+ margin-bottom: 0.1em;
25
+ }
26
+
27
+
28
+ &:before,
29
+ &:after {
30
+
31
+ content: "";
32
+ position: absolute;
33
+ right: var(--accordion-indent);
34
+ top: var(--accordion-icon-top);
35
+ margin-top: var(--accordion-icon-size-half);
36
+ width: var(--accordion-icon-size);
37
+ height: var(--accordion-icon-size);
38
+ }
39
+
40
+ &:before {
41
+ text-indent: 100%;
42
+ white-space: nowrap;
43
+ overflow: hidden;
44
+ background: var(--marker-bg);
45
+ border-radius: 100%;
46
+
47
+
48
+ }
49
+
50
+ // Accordion icon
51
+ &::after {
52
+ background: currentColor;
53
+ mask-image: escape-svg($accordion-button-icon);
54
+ mask-size: 50%;
55
+ mask-repeat: no-repeat;
56
+ mask-position: 50% 50%;
57
+
58
+ -webkit-mask-image: escape-svg($accordion-button-icon);
59
+ -webkit-mask-size: 50%;
60
+ -webkit-mask-repeat: no-repeat;
61
+ -webkit-mask-position: 50% 50%;
62
+
63
+ @include transition($accordion-icon-transition);
64
+ transform: rotate(90deg);
65
+
66
+
67
+ @media (forced-colors: active) {
68
+ content: "\25BA";
69
+ mask-image: none;
70
+ -webkit-mask-image: none;
71
+ }
72
+
73
+ }
74
+
75
+ &:hover,
76
+ &:focus {
77
+
78
+ --marker-bg: var(--colour-warning);
79
+ color: var(--colour-hover);
80
+ }
81
+
82
+ &:hover {
83
+ z-index: var(--index-focus);
84
+ }
85
+
86
+ &:focus {
87
+ z-index: var(--index-focus);
88
+ border-color: $accordion-button-focus-border-color;
89
+ outline: 0;
90
+ box-shadow: $accordion-button-focus-box-shadow;
91
+ }
92
+
93
+ [open] > summary > & {
94
+ color: var(--colour-heading);
95
+ background-color: $accordion-button-active-bg;
96
+
97
+ &::after {
98
+
99
+ transform: rotate(-90deg);
100
+ }
101
+ }
102
+ }
103
+
104
+ // #region Coloured summary
105
+ .accordion-header[class*="bg-"] {
106
+
107
+ .accordion-button {
108
+
109
+ border-bottom: 1px solid var(--colour-border);
110
+ margin-bottom: -1px;
111
+
112
+ &:before {
113
+ background: none!important;
114
+ }
115
+ }
116
+
117
+ &:hover .accordion-button {
118
+ opacity: 0.8;
119
+ }
120
+
121
+ & + .accordion-body {
122
+
123
+ padding-top: 2rem;
124
+ }
125
+ }
126
+ // #endregion
127
+
128
+ .accordion-header {
129
+ margin-bottom: 0;
130
+ }
131
+
132
+ .accordion-header ~ * {
133
+ text-align: left;
134
+ padding-inline: $accordion-body-padding-x;
135
+ }
@@ -1,7 +1,7 @@
1
1
  @use "../_func.scss" as *;
2
2
 
3
3
  // Accordion
4
- :is(.accordion, iam-accordion) {
4
+ :host {
5
5
  --accordion-indent: 0.75rem;
6
6
  --accordion-right-padding: 3rem;
7
7
  --accordion-y-padding: 1rem;
@@ -14,200 +14,14 @@
14
14
  --accordion-y-padding: 2rem;
15
15
  --accordion-icon-size: #{rem(48)};
16
16
  --accordion-icon-top: #{rem(20)};
17
- }
18
- }
19
-
20
- .accordion-header {
21
-
22
- padding: $accordion-button-padding-y var(--accordion-right-padding) $accordion-button-padding-y $accordion-button-padding-x;
23
- color: var(--colour-heading);
24
- text-align: left; // Reset button style
25
- background-color: $accordion-button-bg;
26
- overflow-anchor: none;
27
- @include transition($accordion-transition);
28
-
29
- --marker-bg: var(--colour-secondary);
30
-
31
-
32
-
33
- cursor: pointer;
34
- position: relative;
35
- max-width: 100%;
36
-
37
- .badge {
38
- vertical-align: bottom;
39
- margin-left: 0.5em;
40
- margin-right: 0.5em;
41
- margin-bottom: 0.1em;
42
- }
43
-
44
-
45
- &:before,
46
- &:after {
47
-
48
- content: "";
49
- position: absolute;
50
- right: var(--accordion-indent);
51
- top: var(--accordion-icon-top);
52
- margin-top: var(--accordion-icon-size-half);
53
- width: var(--accordion-icon-size);
54
- height: var(--accordion-icon-size);
55
- }
56
-
57
- &:before {
58
- text-indent: 100%;
59
- white-space: nowrap;
60
- overflow: hidden;
61
- background: var(--marker-bg);
62
- border-radius: 100%;
63
-
64
-
65
- }
66
-
67
- // Accordion icon
68
- &::after {
69
- background: currentColor;
70
- mask-image: escape-svg($accordion-button-icon);
71
- mask-size: 50%;
72
- mask-repeat: no-repeat;
73
- mask-position: 50% 50%;
17
+ }
74
18
 
75
- -webkit-mask-image: escape-svg($accordion-button-icon);
76
- -webkit-mask-size: 50%;
77
- -webkit-mask-repeat: no-repeat;
78
- -webkit-mask-position: 50% 50%;
79
-
80
- @include transition($accordion-icon-transition);
81
- transform: rotate(90deg);
82
-
83
-
84
- @media (forced-colors: active) {
85
- content: "\25BA";
86
- mask-image: none;
87
- -webkit-mask-image: none;
88
- }
89
-
90
- }
91
-
92
- &:hover,
93
- &:focus {
94
-
95
- --marker-bg: var(--colour-warning);
96
- color: var(--colour-hover);
97
- }
98
-
99
- &:hover {
100
- z-index: var(--index-focus);
101
- }
102
-
103
- &:focus {
104
- z-index: var(--index-focus);
105
- border-color: $accordion-button-focus-border-color;
106
- outline: 0;
107
- box-shadow: $accordion-button-focus-box-shadow;
108
- }
109
-
110
- [open] > summary > & {
111
- color: var(--colour-heading);
112
- background-color: $accordion-button-active-bg;
113
-
114
- &::after {
115
-
116
- transform: rotate(-90deg);
117
- }
118
- }
119
- }
120
-
121
- // #region Coloured summary
122
- .accordion-header[class*="bg-"] {
123
-
124
- .accordion-button {
125
-
126
- border-bottom: 1px solid var(--colour-border);
127
- margin-bottom: -1px;
128
-
129
- &:before {
130
- background: none!important;
131
- }
132
- }
133
-
134
- &:hover .accordion-button {
135
- opacity: 0.8;
136
- }
137
-
138
- & + .accordion-body {
139
-
140
- padding-top: 2rem;
141
- }
142
- }
143
- // #endregion
144
-
145
-
146
-
147
- .accordion-header {
148
- margin-bottom: 0;
149
- }
150
-
151
- .accordion-item {
152
- background-color: $accordion-bg;
153
- border-bottom: $accordion-border-width solid $accordion-border-color;
154
19
  margin-bottom: 2rem;
155
-
156
- &:first-of-type {
157
20
  border-top: $accordion-border-width solid $accordion-border-color;
158
- }
159
-
160
- & + .accordion-item {
161
- margin-top: -2rem;
162
- }
163
21
  }
164
22
 
165
- .accordion-item summary ~ * {
166
- text-align: left;
167
- padding: 0 $accordion-body-padding-x;
23
+ ::slotted(details) {
24
+ background-color: $accordion-bg!important;
25
+ border-bottom: $accordion-border-width solid $accordion-border-color!important;
26
+ margin-bottom: 0!important;
168
27
  }
169
-
170
- // #region Straight edge
171
- .accordion--straight {
172
- > details > summary:not([class*="bg-"]) > .accordion-button,
173
- > details > .accordion-item summary ~ * {
174
- padding-left: 0!important;
175
- }
176
-
177
- .accordion-item summary ~ * {
178
- padding-right: 0!important;
179
- }
180
- }
181
- // #endregion
182
-
183
- // #region Child accordion
184
- .accordion .accordion {
185
-
186
- &:first-child {
187
-
188
- padding-top: 1rem;
189
- }
190
-
191
- &:last-child {
192
-
193
- padding-bottom: 2rem;
194
- }
195
-
196
- .accordion-button {
197
- padding: 1rem 3rem 1rem var(--accordion-indent);
198
-
199
- &:before,
200
- &:after {
201
- top: 0.75rem;
202
- height: 2rem;
203
- width: 2rem;
204
- right: 0.5rem;
205
- }
206
- &:before {
207
- background-color: var(--colour-light);
208
- }
209
- }
210
- }
211
- // #endregion
212
-
213
-
@@ -15,6 +15,7 @@ iam-actionbar {
15
15
  border-top-left-radius: rem(10);
16
16
  border-top-right-radius: rem(10);
17
17
 
18
+ --actionbar-radius: 0;
18
19
  }
19
20
  // #endregion
20
21
 
@@ -129,7 +130,7 @@ iam-actionbar[data-view="small"] ~ [data-view="small"] {
129
130
  // #endregion
130
131
 
131
132
  // #region Child elements
132
-
133
+ iam-actionbar {
133
134
  .actionbar__text {
134
135
 
135
136
  font-size: rem(18);
@@ -157,4 +158,5 @@ button[slot="selected-overflow"] {
157
158
 
158
159
  display: contents;
159
160
  }
161
+ }
160
162
  // #endregion
@@ -53,8 +53,8 @@
53
53
 
54
54
  :is(.actionbar,.actionbar--selected,.actionbar--search){
55
55
 
56
- border-top-left-radius: rem(10);
57
- border-top-right-radius: rem(10);
56
+ border-top-left-radius: var(--actionbar-radius, #{rem(10)});
57
+ border-top-right-radius: var(--actionbar-radius, #{rem(10)});
58
58
  padding: 0 rem(24);
59
59
  flex-wrap: nowrap;
60
60
  justify-content: flex-end;
@@ -1,26 +1,5 @@
1
1
  @use "../_func.scss" as *;
2
2
 
3
- // #region card with a flag
4
- iam-card.card--flag {
5
- position: relative;
6
-
7
- &:after {
8
- content: "\f024";
9
- font-family: "Font Awesome 6 Pro";
10
- position: absolute;
11
- top: 1rem;
12
- right: 1rem;
13
- font-size: rem(16);
14
- line-height: 1;
15
- height: rem(16);
16
- width: rem(16);
17
- display: inline-block;
18
- font-weight: normal;
19
- color: var(--colour, var(--colour-primary));
20
- }
21
- }
22
- // #endregion
23
-
24
3
  // #region cards with an added checkbox for actionbars
25
4
 
26
5
  iam-card {
@@ -38,8 +17,8 @@ iam-card {
38
17
  > input:is([type=radio], [type=checkbox]) + label {
39
18
 
40
19
  position: absolute!important;
41
- top: 0;
42
- right: 0;
20
+ top: 0.5rem;
21
+ right: 0.5rem;
43
22
  width: rem(32);
44
23
  padding-left: rem(32);
45
24
  margin: rem(4) rem(8)!important;
@@ -17,8 +17,8 @@
17
17
  overflow: hidden;
18
18
  z-index: 0;
19
19
  background: var(--colour-canvas-2);
20
- outline: var(--contrast-outline-width, 0px) solid var(--colour-primary);
21
- outline-offset: -1px;
20
+ outline: 2px solid var(--colour-canvas-2);
21
+ outline-offset: -2px;
22
22
 
23
23
  &.border-0 {
24
24
  box-shadow: none;
@@ -131,7 +131,7 @@
131
131
  vertical-align: middle!important;
132
132
  }
133
133
 
134
- ::slotted(span){
134
+ ::slotted(span:not(.badge)){
135
135
  display: block!important;
136
136
  font-weight: normal!important;
137
137
  padding-top: rem(24)!important;
@@ -139,6 +139,26 @@
139
139
  }
140
140
  // #endregion
141
141
 
142
+ // #region card bages
143
+ .card__badges {
144
+ position: absolute;
145
+ top: 0;
146
+ right: 0.25rem;
147
+ padding: 0.25rem;
148
+ z-index: 9;
149
+ text-align: right;
150
+ width: 1;
151
+ }
152
+ .card__head .card__badges {
153
+
154
+ top: auto;
155
+ bottom: 0;
156
+ text-align: left;
157
+ left: 0.25rem;
158
+ right: auto;
159
+ }
160
+ // #endregion
161
+
142
162
  // #region border left
143
163
  .card[class*="colour-"],
144
164
  .card--filter {
@@ -278,3 +298,24 @@
278
298
  display: none!important;
279
299
  }
280
300
  }
301
+
302
+ // #region card with a flag
303
+ :host(.card--flag) {
304
+ position: relative;
305
+
306
+ &:after {
307
+ content: "\f024";
308
+ font-family: "Font Awesome 6 Pro";
309
+ position: absolute;
310
+ top: 1rem;
311
+ right: 1rem;
312
+ font-size: rem(16);
313
+ line-height: 1;
314
+ height: rem(16);
315
+ width: rem(16);
316
+ display: inline-block;
317
+ font-weight: normal;
318
+ color: var(--colour, var(--colour-primary));
319
+ }
320
+ }
321
+ // #endregion