@iamproperty/components 6.0.0 → 6.1.0--beta

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 (207) hide show
  1. package/assets/bootstrap/README.md +8 -7
  2. package/assets/bootstrap/js/index.esm.js +19 -0
  3. package/assets/bootstrap/js/index.umd.js +34 -0
  4. package/assets/bootstrap/js/src/alert.js +1 -1
  5. package/assets/bootstrap/js/src/base-component.js +2 -2
  6. package/assets/bootstrap/js/src/button.js +1 -1
  7. package/assets/bootstrap/js/src/carousel.js +1 -1
  8. package/assets/bootstrap/js/src/collapse.js +1 -1
  9. package/assets/bootstrap/js/src/dom/data.js +1 -1
  10. package/assets/bootstrap/js/src/dom/event-handler.js +1 -1
  11. package/assets/bootstrap/js/src/dom/manipulator.js +1 -1
  12. package/assets/bootstrap/js/src/dom/selector-engine.js +1 -1
  13. package/assets/bootstrap/js/src/dropdown.js +3 -12
  14. package/assets/bootstrap/js/src/modal.js +13 -17
  15. package/assets/bootstrap/js/src/offcanvas.js +1 -1
  16. package/assets/bootstrap/js/src/popover.js +1 -1
  17. package/assets/bootstrap/js/src/scrollspy.js +10 -14
  18. package/assets/bootstrap/js/src/tab.js +4 -2
  19. package/assets/bootstrap/js/src/toast.js +4 -9
  20. package/assets/bootstrap/js/src/tooltip.js +50 -32
  21. package/assets/bootstrap/js/src/util/backdrop.js +1 -1
  22. package/assets/bootstrap/js/src/util/component-functions.js +1 -1
  23. package/assets/bootstrap/js/src/util/config.js +1 -1
  24. package/assets/bootstrap/js/src/util/focustrap.js +1 -1
  25. package/assets/bootstrap/js/src/util/index.js +1 -1
  26. package/assets/bootstrap/js/src/util/sanitizer.js +1 -1
  27. package/assets/bootstrap/js/src/util/scrollbar.js +1 -1
  28. package/assets/bootstrap/js/src/util/swipe.js +1 -1
  29. package/assets/bootstrap/js/src/util/template-factory.js +1 -1
  30. package/assets/bootstrap/package.json +27 -28
  31. package/assets/bootstrap/scss/_accordion.scss +4 -7
  32. package/assets/bootstrap/scss/_button-group.scss +1 -1
  33. package/assets/bootstrap/scss/_buttons.scss +7 -28
  34. package/assets/bootstrap/scss/_carousel.scss +3 -0
  35. package/assets/bootstrap/scss/_dropdown.scss +1 -2
  36. package/assets/bootstrap/scss/_functions.scss +2 -2
  37. package/assets/bootstrap/scss/_list-group.scss +5 -6
  38. package/assets/bootstrap/scss/_modal.scss +1 -1
  39. package/assets/bootstrap/scss/_nav.scss +2 -2
  40. package/assets/bootstrap/scss/_navbar.scss +0 -2
  41. package/assets/bootstrap/scss/_offcanvas.scss +4 -5
  42. package/assets/bootstrap/scss/_pagination.scss +1 -1
  43. package/assets/bootstrap/scss/_popover.scss +5 -5
  44. package/assets/bootstrap/scss/_toasts.scss +2 -5
  45. package/assets/bootstrap/scss/_variables-dark.scss +87 -0
  46. package/assets/bootstrap/scss/_variables.scss +17 -18
  47. package/assets/bootstrap/scss/bootstrap-utilities.scss +0 -3
  48. package/assets/bootstrap/scss/forms/_floating-labels.scss +0 -1
  49. package/assets/bootstrap/scss/forms/_input-group.scss +4 -7
  50. package/assets/bootstrap/scss/helpers/_focus-ring.scss +5 -0
  51. package/assets/bootstrap/scss/helpers/_icon-link.scss +25 -0
  52. package/assets/bootstrap/scss/mixins/_banner.scss +2 -2
  53. package/assets/bootstrap/scss/mixins/_color-mode.scss +21 -0
  54. package/assets/bootstrap/scss/mixins/_forms.scss +10 -10
  55. package/assets/bootstrap/scss/mixins/_table-variants.scss +2 -2
  56. package/assets/bootstrap/scss/mixins/_utilities.scss +1 -1
  57. package/assets/css/components/barchart.component.css +1 -1
  58. package/assets/css/components/barchart.component.css.map +1 -1
  59. package/assets/css/components/card.component.css +1 -0
  60. package/assets/css/components/card.component.css.map +1 -0
  61. package/assets/css/components/card.module.css +1 -0
  62. package/assets/css/components/card.module.css.map +1 -0
  63. package/assets/css/components/charts.config.css +1 -1
  64. package/assets/css/components/charts.config.css.map +1 -1
  65. package/assets/css/components/charts.css +1 -1
  66. package/assets/css/components/charts.css.map +1 -1
  67. package/assets/css/components/charts.module.css +1 -1
  68. package/assets/css/components/charts.module.css.map +1 -1
  69. package/assets/css/components/filter-card.component.css +1 -0
  70. package/assets/css/components/filter-card.component.css.map +1 -0
  71. package/assets/css/components/multiselect.preload.css +1 -1
  72. package/assets/css/components/multiselect.preload.css.map +1 -1
  73. package/assets/css/components/record-card.component.css +1 -0
  74. package/assets/css/components/record-card.component.css.map +1 -0
  75. package/assets/css/components/timeline.css +1 -1
  76. package/assets/css/components/timeline.css.map +1 -1
  77. package/assets/css/components/video-card.component.css +1 -0
  78. package/assets/css/components/video-card.component.css.map +1 -0
  79. package/assets/css/core.min.css +1 -1
  80. package/assets/css/core.min.css.map +1 -1
  81. package/assets/css/style.min.css +1 -1
  82. package/assets/css/style.min.css.map +1 -1
  83. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  84. package/assets/js/components/actionbar/actionbar.component.min.js +5 -5
  85. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  86. package/assets/js/components/address-lookup/address-lookup.component.min.js +1 -1
  87. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  88. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  89. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  90. package/assets/js/components/barchart/barchart.component.js +2 -0
  91. package/assets/js/components/barchart/barchart.component.min.js +4 -2
  92. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  93. package/assets/js/components/card/card.component.js +92 -154
  94. package/assets/js/components/card/card.component.min.js +26 -31
  95. package/assets/js/components/card/card.component.min.js.map +1 -1
  96. package/assets/js/components/carousel/carousel.component.min.js +1 -1
  97. package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
  98. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  99. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  100. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  101. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  102. package/assets/js/components/filter-card/filter-card.component.js +71 -0
  103. package/assets/js/components/filter-card/filter-card.component.min.js +27 -0
  104. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -0
  105. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  106. package/assets/js/components/header/header.component.min.js +1 -1
  107. package/assets/js/components/header/header.component.min.js.map +1 -1
  108. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  109. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  110. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  111. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  112. package/assets/js/components/multiselect/multiselect.component.min.js +1 -1
  113. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  114. package/assets/js/components/nav/nav.component.min.js +1 -1
  115. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  116. package/assets/js/components/notification/notification.component.min.js +1 -1
  117. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  118. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  119. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  120. package/assets/js/components/record-card/record-card.component.js +69 -0
  121. package/assets/js/components/record-card/record-card.component.min.js +27 -0
  122. package/assets/js/components/record-card/record-card.component.min.js.map +1 -0
  123. package/assets/js/components/search/search.component.min.js +1 -1
  124. package/assets/js/components/slider/slider.component.min.js +1 -1
  125. package/assets/js/components/slider/slider.component.min.js.map +1 -1
  126. package/assets/js/components/table/table.component.min.js +2 -2
  127. package/assets/js/components/table/table.component.min.js.map +1 -1
  128. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  129. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  130. package/assets/js/components/video-card/video-card.component.js +176 -0
  131. package/assets/js/components/video-card/video-card.component.min.js +30 -0
  132. package/assets/js/components/video-card/video-card.component.min.js.map +1 -0
  133. package/assets/js/components.bundle.js +5 -0
  134. package/assets/js/components.bundle.js.map +1 -0
  135. package/assets/js/components.js +30 -0
  136. package/assets/js/modules/card.module.js +33 -0
  137. package/assets/js/modules/chart.js +2 -2
  138. package/assets/js/modules/dialogs.js +0 -6
  139. package/assets/js/modules/table.js +1 -1
  140. package/assets/js/scripts.bundle.js +3 -194
  141. package/assets/js/scripts.bundle.js.map +1 -1
  142. package/assets/js/scripts.bundle.min.js +2 -2
  143. package/assets/js/scripts.bundle.min.js.map +1 -1
  144. package/assets/js/scripts.js +17 -0
  145. package/assets/js/tests/filterlist.spec.js +1 -1
  146. package/assets/sass/_components.scss +81 -1
  147. package/assets/sass/_corefiles.scss +4 -10
  148. package/assets/sass/_elements.scss +2 -0
  149. package/assets/sass/components/card.component.scss +229 -0
  150. package/assets/sass/components/card.module.scss +154 -0
  151. package/assets/sass/components/charts.config.scss +3 -0
  152. package/assets/sass/components/charts.module.scss +5 -3
  153. package/assets/sass/components/filter-card.component.scss +106 -0
  154. package/assets/sass/components/multiselect.preload.scss +7 -0
  155. package/assets/sass/components/record-card.component.scss +204 -0
  156. package/assets/sass/components/video-card.component.scss +80 -0
  157. package/assets/sass/components.reset.scss +5 -43
  158. package/assets/sass/elements/badge-tag.scss +5 -1
  159. package/assets/sass/elements/buttons.scss +3 -0
  160. package/assets/sass/elements/dialog.scss +2 -744
  161. package/assets/sass/elements/forms.scss +5 -0
  162. package/assets/sass/elements/media.scss +0 -38
  163. package/assets/sass/elements/modal.scss +553 -0
  164. package/assets/sass/elements/popover.scss +207 -0
  165. package/assets/sass/foundations/reboot.scss +2 -2
  166. package/assets/sass/foundations/root.scss +0 -1
  167. package/assets/ts/components/barchart/barchart.component.ts +2 -0
  168. package/assets/ts/components/card/card.component.ts +94 -192
  169. package/assets/ts/components/filter-card/filter-card.component.ts +81 -0
  170. package/assets/ts/components/record-card/record-card.component.ts +82 -0
  171. package/assets/ts/components/video-card/video-card.component.ts +227 -0
  172. package/assets/ts/components.ts +38 -0
  173. package/assets/ts/modules/card.module.ts +43 -0
  174. package/assets/ts/modules/dialogs.ts +0 -8
  175. package/assets/ts/modules/table.ts +1 -1
  176. package/assets/ts/scripts.ts +22 -0
  177. package/assets/ts/tests/filterlist.spec.ts +1 -1
  178. package/dist/components.es.js +201 -201
  179. package/dist/components.umd.js +76 -81
  180. package/package.json +8 -7
  181. package/src/components/BarChart/BarChart.vue +2 -2
  182. package/src/components/FilterCard/FilterCard.vue +25 -0
  183. package/src/components/RecordCard/RecordCard.vue +25 -0
  184. package/src/components/VideoCard/VideoCard.vue +25 -0
  185. package/assets/css/components/card.css +0 -1
  186. package/assets/css/components/card.css.map +0 -1
  187. package/assets/css/components/card.global.css +0 -1
  188. package/assets/css/components/card.global.css.map +0 -1
  189. package/assets/css/components/card.preload.css +0 -1
  190. package/assets/css/components/card.preload.css.map +0 -1
  191. package/assets/js/bundle.js +0 -74
  192. package/assets/js/dynamic.js +0 -80
  193. package/assets/js/dynamic.min.js +0 -18
  194. package/assets/js/dynamic.min.js.map +0 -1
  195. package/assets/js/flat-components.js +0 -84
  196. package/assets/js/modules/youtubevideo.js +0 -106
  197. package/assets/sass/components/card.global.scss +0 -102
  198. package/assets/sass/components/card.preload.scss +0 -8
  199. package/assets/sass/components/card.scss +0 -606
  200. package/assets/ts/bundle.ts +0 -94
  201. package/assets/ts/components/barchart/README.md +0 -37
  202. package/assets/ts/components/card/README.md +0 -39
  203. package/assets/ts/dynamic.ts +0 -107
  204. package/assets/ts/flat-components.ts +0 -106
  205. package/assets/ts/modules/youtubevideo.ts +0 -141
  206. package/src/foundations/YoutubeVideo/README.md +0 -11
  207. package/src/foundations/YoutubeVideo/YoutubeVideo.vue +0 -24
@@ -0,0 +1,17 @@
1
+ // @ts-nocheck
2
+ // Modules
3
+ import * as helpers from '../js/modules/helpers.js';
4
+ import extendDialogs from '../js/modules/dialogs.js';
5
+ import createDataLayer from '../js/modules/data-layer.js';
6
+ import extendInputs from '../js/modules/inputs.js';
7
+ import createDynamicEvents from '../js/modules/dynamicEvents.js';
8
+ // Attach classes to dom elements
9
+ document.addEventListener("DOMContentLoaded", function () {
10
+ createDataLayer();
11
+ createDynamicEvents();
12
+ // Global stuff
13
+ helpers.addBodyClasses(document.body);
14
+ helpers.addGlobalEvents(document.body);
15
+ extendDialogs(document.body);
16
+ extendInputs(document.body);
17
+ });
@@ -17,6 +17,6 @@ describe('addDataAttributes', () => {
17
17
  filterTheList(list, "Lucas");
18
18
  test('should add a class of d-none to each item except the one containing Lucas Myers', () => {
19
19
  expect(list.querySelectorAll('li:not(.d-none)').length).toEqual(1);
20
- expect(list.querySelector('li:not(.d-none').textContent).toEqual('Lucas Myers');
20
+ expect(list.querySelector('li:not(.d-none)').textContent).toEqual('Lucas Myers');
21
21
  });
22
22
  });
@@ -2,10 +2,19 @@
2
2
  @use "_func" as *;
3
3
 
4
4
  @use 'components/nav.preload';
5
- @use 'components/card.preload';
6
5
  @use 'components/carousel.preload';
7
6
  @use 'components/multiselect.preload';
8
7
  @use 'components/inline-edit.preload';
8
+ @use "components/charts.config.scss";
9
+
10
+ // Make sure the first
11
+ main {
12
+ position: relative;
13
+
14
+ > *:first-child {
15
+ padding-top: 2rem;
16
+ }
17
+ }
9
18
 
10
19
  // #region Undefined web components
11
20
  main > :is(*):not(:defined):not(iam-carousel) {
@@ -26,6 +35,77 @@ main > :is(*):not(:defined):not(iam-carousel) {
26
35
  }
27
36
  }
28
37
 
38
+ // #region Cards
39
+ .card:not(:defined) {
40
+ box-shadow: var(--card-box-shadow);
41
+ border-radius: var(--card-border-radius);
42
+ padding: var(--card-top-padding) var(--card-right-padding) var(--card-bottom-padding) var(--card-left-padding);
43
+ }
44
+
45
+ .row [class*="col"] > :is(label,button,a):has(.card:defined):first-child:last-child,
46
+ .row [class*="col"] > .card:defined:first-child:last-child {
47
+ min-height: calc(100% - 2rem);
48
+ margin-bottom: 2rem!important;
49
+
50
+ .card:defined {
51
+ margin-bottom: 0!important;
52
+ }
53
+ }
54
+
55
+ iam-card:has([type=checkbox]:checked) {
56
+ --hover-outline-colour: var(--colour-info);
57
+ --outline-colour: var(--colour-info);
58
+ }
59
+
60
+ label:has(.card) {
61
+
62
+ padding: 0!important;
63
+ margin-right: 0!important;
64
+
65
+ &:before,
66
+ &:after {
67
+ display: none!important;
68
+ }
69
+
70
+ .optional-text {
71
+ display: none;
72
+ }
73
+
74
+ &:has(:checked) {
75
+ .card:defined {
76
+ outline: 2px solid var(--colour,var(--colour-primary));
77
+ outline-offset: -2px;
78
+
79
+ ::part(body) {
80
+ background: none;
81
+ }
82
+ ::part(footer) {
83
+ background: none;
84
+ }
85
+ }
86
+ }
87
+ }
88
+
89
+
90
+ iam-filter-card:not(:has(i)){
91
+
92
+ border-left: 0.75rem solid var(--colour, var(--colour-primary));
93
+ }
94
+
95
+ .card .badge:not([class*="bg-"]):not([class*="wider-colour-"]){
96
+
97
+ background-color: var(--colour-canvas);
98
+ outline: 1px solid var(--colour-light);
99
+ }
100
+
101
+
102
+ a[target="_blank"] .card {
103
+
104
+ --icon: var(--icon-new-tab);
105
+ }
106
+
107
+ // #endregion
108
+
29
109
  // Search
30
110
  iam-search input:not(.is-invalid):not(:invalid) {
31
111
  background: none!important;
@@ -4,8 +4,12 @@
4
4
  @layer reset, elements, components, templates, utilities, overrides;
5
5
 
6
6
 
7
+ $root: ":root"!default;
8
+ $layers: "true"!default;
9
+
7
10
  // Foundations
8
11
  @include layer('reset') {
12
+
9
13
  @import "foundations/root.scss";
10
14
  @import "foundations/reboot.scss";
11
15
  }
@@ -16,19 +20,9 @@
16
20
 
17
21
  @include layer('components') {
18
22
 
19
- // Make sure the first
20
- main {
21
- position: relative;
22
-
23
- > *:first-child {
24
- padding-top: 2rem;
25
- }
26
- }
27
-
28
23
  // Deal with preloaded state of native components
29
24
  @import "_components.scss";
30
25
 
31
- @import "components/charts.config.scss";
32
26
  }
33
27
 
34
28
  @include layer('templates') {
@@ -11,6 +11,8 @@
11
11
  @import "elements/links.scss";
12
12
  @import "elements/buttons";
13
13
  @import "elements/dialog.scss";
14
+ @import "elements/popover.scss";
15
+ @import "elements/modal.scss";
14
16
  @import "elements/admin-panel.scss";
15
17
 
16
18
  @import "elements/forms.scss";
@@ -0,0 +1,229 @@
1
+ @use "../_func.scss" as *;
2
+ @use "card.module.scss" as *;
3
+ @use "../elements/dialog.scss" as *;
4
+ @use "../elements/popover.scss" as *;
5
+ @use "../elements/buttons.scss" as *;
6
+
7
+ :host {
8
+ --card-right-padding: 1rem;
9
+ //--card-head-height: 10rem;
10
+ --card-icon-right: 1rem;
11
+
12
+ }
13
+
14
+ :host(:is(:hover,:focus,.hover):not(.prevent-hover)) {
15
+ --hover-outline-colour-default: var(--colour, var(--colour-primary));
16
+ outline: 2px solid var(--hover-outline-colour, var(--hover-outline-colour-default));
17
+ outline-offset: -2px;
18
+ }
19
+
20
+ :host(:is(:active,.active):not(.prevent-hover)) {
21
+ --card-icon-right: var(--card-icon-right-overide,0.5rem);
22
+ outline: none;
23
+ }
24
+
25
+ :host(.prevent-hover){
26
+
27
+ pointer-events: none;
28
+
29
+ * {
30
+ pointer-events: all;
31
+ }
32
+ }
33
+
34
+ // #region Right arrow
35
+ :host(.show-icon) .card__body {
36
+ --card-right-padding: 3.5rem;
37
+
38
+ &:before,
39
+ &:after {
40
+ content: "";
41
+ position: absolute;
42
+ right: var(--card-icon-right);
43
+ bottom: var(--card-bottom-padding);
44
+ height: rem(24);
45
+ width: rem(24);
46
+ background: var(--colour-warning);
47
+ border-radius: 50%;
48
+ }
49
+
50
+ &:after {
51
+ background: var(--colour-primary-theme);
52
+ mask-image: var(--icon,var(--icon-arrow));
53
+ mask-size: 50%;
54
+ mask-repeat: no-repeat;
55
+ mask-position: 50% 50%;
56
+ -webkit-mask-image: var(--icon,var(--icon-arrow));
57
+ -webkit-mask-size: 50%;
58
+ -webkit-mask-repeat: no-repeat;
59
+ -webkit-mask-position: 50% 50%;
60
+ z-index: 2;
61
+ }
62
+ }
63
+
64
+ :host(:is(:hover,:focus,.hover):not(.prevent-hover):not([class*="colour-"])) {
65
+
66
+ .card__body {
67
+
68
+ &:before {
69
+ background: var(--hover-icon-bg, var(--colour-primary-theme));
70
+ }
71
+ &:after {
72
+ background: var(--hover-icon-colour, #ffffff);
73
+ }
74
+ }
75
+ }
76
+
77
+ :host(:is(:active, .active):not(.prevent-hover):not([class*="colour-"])){
78
+
79
+ .card__body:before {
80
+ background: var(--hover-icon-bg, var(--colour-primary-theme));
81
+ }
82
+ .card__body:after {
83
+ background: var(--hover-icon-colour, #ffffff);
84
+ }
85
+ }
86
+ // #endregion
87
+
88
+ // #region illustration
89
+ .card__body {
90
+ &:has(.card__illustration) {
91
+
92
+ align-items: center;
93
+ display: flex;
94
+
95
+ .card__illustration {
96
+ height: rem(64);
97
+ width: rem(64);
98
+ margin-right: rem(24);
99
+ margin-top: rem(-20);
100
+ margin-bottom: rem(-20);
101
+ position: relative;
102
+
103
+ img {
104
+ position: absolute;
105
+ top: 0;
106
+ left: 0;
107
+ width: 100%;
108
+ height: 100%;
109
+ object-fit: contain;
110
+ }
111
+ }
112
+ }
113
+ }
114
+
115
+ // #endregion
116
+
117
+ // #region border left
118
+ :host([class*="colour-"]) {
119
+
120
+ border-left: rem(12) solid var(--colour,var(--colour-primary));
121
+ }
122
+ // #endregion
123
+
124
+ // #region secondary button
125
+ slot[name="secondary"] {
126
+ display: block;
127
+ position: absolute;
128
+ top: 0.5rem;
129
+ right: 0;
130
+ margin: 0.5rem 0.5rem 0 0;
131
+ z-index: 999;
132
+ }
133
+
134
+ ::slotted([slot="secondary"]:not(:hover,:focus,:active,.hover)) {
135
+
136
+ background: none!important;
137
+ color: var(--colour-btn)!important;
138
+ }
139
+ // #endregion
140
+
141
+ // #region checkbox
142
+ ::slotted([slot="checkbox"]){
143
+
144
+ position: absolute!important;
145
+ top: 0.5rem;
146
+ right: 0.5rem;
147
+ width: rem(32);
148
+ height: rem(32);
149
+ height: rem(40);
150
+ overflow: hidden;
151
+ }
152
+ // #endregion
153
+
154
+ // #region Multi-action card
155
+ .dialog__wrapper {
156
+ position: absolute;
157
+ right: 1rem;
158
+ bottom: 2rem;
159
+ width: 3rem !important;
160
+ left: auto;
161
+ z-index: 999;
162
+
163
+
164
+ > .btn:before {
165
+ content: "\f142";
166
+ font-family: "Font Awesome 6 Pro";
167
+ }
168
+
169
+
170
+ > [popover] {
171
+
172
+ display: var(--menu-display, none);
173
+ position: fixed;
174
+ top: anchor(top);
175
+ position-anchor: --anchor-el;
176
+ left: anchor(right);
177
+ right: auto;
178
+ margin: 0 0 0 #{rem(4)};
179
+ padding: rem(16);
180
+
181
+
182
+ &::backdrop {
183
+ display: none;
184
+ }
185
+ }
186
+
187
+ > [popover]:popover-open {
188
+
189
+ display: block!important;
190
+ }
191
+
192
+ &:has([popover]:popover-open) > button {
193
+ background-color: var(--colour);
194
+ }
195
+
196
+ > button[popovertarget] {
197
+ margin: 0;
198
+ anchor-name: --anchor-el;
199
+
200
+ &:not(:hover,:focus,:focus-within,:active){
201
+
202
+ background: var(--ellipsis-bg);
203
+ }
204
+ }
205
+ }
206
+
207
+ ::slotted([slot="btns"]){
208
+ border: none !important;
209
+ margin: 0 !important;
210
+ display: block!important;
211
+ width: fit-content;
212
+ }
213
+ ::slotted([slot="primary-action"]){
214
+ overflow: hidden;
215
+ background-color: transparent;
216
+ text-indent: -300%;
217
+ position: absolute!important;
218
+ inset: 0;
219
+ margin: 0!important;
220
+ z-index: 99;
221
+ border: none;
222
+ }
223
+ :host(:not(.prevent-hover)) ::slotted([slot="primary-action"]:is(:hover,:focus,.hover)) {
224
+ --hover-outline-colour-default: var(--colour, var(--colour-primary));
225
+ outline: 2px solid var(--hover-outline-colour, var(--hover-outline-colour-default));
226
+ outline-offset: -2px;
227
+ border-radius: var(--card-border-radius)!important;
228
+ }
229
+ // #endregion
@@ -0,0 +1,154 @@
1
+ @use "../_func.scss" as *;
2
+
3
+ :host {
4
+ --card-icon-right: 1rem;
5
+ --card-head-top-padding: 2rem;
6
+ --card-head-bottom-padding: 2rem;
7
+ --card-footer-bottom-padding: 1.5rem;
8
+ --card-head-height: 6rem;
9
+
10
+ box-shadow: var(--card-box-shadow);
11
+ border-radius: var(--card-border-radius);
12
+ position: relative;
13
+ font-weight: bold;
14
+ font-size: rem(18);
15
+ line-height: rem(24);
16
+ color: var(--colour-primary);
17
+ //min-height: calc(100% - 2rem);
18
+ width: 100%;
19
+ text-align: left;
20
+ display: flex;
21
+ flex-direction: column;
22
+ overflow: hidden;
23
+ z-index: 0;
24
+ background: var(--colour-canvas-2);
25
+ outline: 2px solid var(--outline-colour,--colour-canvas-2);
26
+ outline-offset: -2px;
27
+ margin-bottom: 2rem;
28
+
29
+ > * {
30
+ width: 100%;
31
+ box-sizing: border-box;;
32
+ }
33
+ }
34
+
35
+ :host-context(:is(a,label,button)) {
36
+ margin-bottom: 0!important;
37
+ }
38
+
39
+ :host(.border-0) {
40
+ box-shadow: none;
41
+ --card-left-padding: 0rem;
42
+ outline-offset: 1px!important;
43
+ }
44
+
45
+ .card__head:has(img) {
46
+
47
+ min-height: var(--card-head-height);
48
+ position: relative;
49
+ overflow: hidden;
50
+ background: rgba(0,0,0,0.1);
51
+ z-index: -1;
52
+
53
+ > img {
54
+ position: absolute;
55
+ top: 0;
56
+ left: 0;
57
+ margin: -2px;
58
+ width: calc(100% + 4px);
59
+ height: calc(100% + 4px);
60
+ object-fit: cover;
61
+ }
62
+ }
63
+
64
+ .card__body {
65
+ //position: relative;
66
+ padding: var(--card-head-top-padding) var(--card-right-padding) var(--card-head-bottom-padding) var(--card-left-padding);
67
+ //z-index: -1;
68
+ }
69
+
70
+ .card__footer {
71
+ margin-top: 0;
72
+ padding: 0 var(--card-right-padding) 0 var(--card-left-padding);
73
+ }
74
+
75
+ ::slotted(i){
76
+ font-size: rem(24)!important;
77
+ margin: -3px var(--card-icon-right) 0 0!important;
78
+ vertical-align: middle!important;
79
+ }
80
+ ::slotted(i:not(.fa-light):not(.fa-bold)){
81
+ font-weight: 400!important;
82
+ }
83
+
84
+ ::slotted(.badge){
85
+ margin-bottom: 0.375rem!important;
86
+ }
87
+ ::slotted(span:not(.badge)){
88
+ display: block!important;
89
+ font-weight: normal!important;
90
+ font-size: rem(16)!important;
91
+ }
92
+ ::slotted(small){
93
+ padding-top: rem(16)!important;
94
+ display: block!important;
95
+ font-weight: normal!important;
96
+ padding-bottom: 0!important;
97
+ color: var(--colour-body);
98
+ }
99
+ ::slotted(span:not(.badge):not([class*="pt-"])){
100
+ padding-top: rem(24)!important;
101
+ }
102
+
103
+ ::slotted(:is(a,button)[slot="footer"]){
104
+ margin-bottom: var(--card-footer-bottom-padding)!important;
105
+ }
106
+
107
+ // #region Show total number
108
+ .card__body:has(.card__total) {
109
+ --card-head-top-padding: 1rem;
110
+ --card-head-bottom-padding: 1.5rem;
111
+ }
112
+
113
+ .card__total {
114
+ font-size: rem(48);
115
+ line-height: rem(48);
116
+ padding-right: rem(16);
117
+ margin-top: 0.5rem;
118
+
119
+ i {
120
+ font-family: var(--fa-style-family, "Font Awesome 6 Pro");
121
+ font-weight: var(--fa-style, 900);
122
+
123
+ display: block !important;
124
+ font-size: 2.5rem !important;
125
+ margin: .5rem 0 .5rem 0 !important;
126
+ }
127
+ }
128
+
129
+ ::slotted([slot="total-icon"]) {
130
+ display: block !important;
131
+ font-size: 2.5rem !important;
132
+ margin: .5rem 0 .5rem 0 !important;
133
+ line-height: 2.5rem;
134
+ }
135
+
136
+ // #endregion
137
+
138
+
139
+ // #region badges
140
+ .card__head:has(img) ~ .card__badges {
141
+
142
+ position: absolute;
143
+ top: 0;
144
+ text-align: left;
145
+ left: 0;
146
+ z-index: 9;
147
+ }
148
+
149
+ .card__badges {
150
+
151
+ padding: var(--card-badges-top-padding, 1rem) var(--card-right-padding) 0 var(--card-left-padding);
152
+ margin-bottom: -1.5rem;
153
+ }
154
+ // #endregion
@@ -1,3 +1,6 @@
1
+ @use "sass:math";
2
+ @use "../_func" as *;
3
+
1
4
  iam-barchart {
2
5
 
3
6
  --chart-bar-alignment: left;
@@ -483,10 +483,12 @@ $chart-height-lg: #{rem(200)}!default;
483
483
  position: relative;
484
484
  padding: 0;
485
485
  background: var(--chart-colour);
486
-
487
- @media screen and (prefers-color-scheme: dark) {
486
+
487
+ & {
488
+ @media screen and (prefers-color-scheme: dark) {
488
489
 
489
- background: color-mix(in oklab, var(--chart-colour), black 20%);
490
+ background: color-mix(in oklab, var(--chart-colour), black 20%);
491
+ }
490
492
  }
491
493
 
492
494
  border-top-right-radius: 4px;
@@ -0,0 +1,106 @@
1
+ @use "../_func.scss" as *;
2
+ @use "card.module.scss" as *;
3
+
4
+ :host {
5
+
6
+ --top-padding: #{rem(24)};
7
+ --right-padding: 1rem;
8
+ --bottom-padding: #{rem(24)};
9
+ --left-padding: 1rem;
10
+
11
+ &:has(.card__total) .card__body{
12
+
13
+ align-items: center;
14
+ display: flex;
15
+ }
16
+
17
+ &:before,
18
+ &:after {
19
+ display: none;
20
+ }
21
+
22
+ &.card--has-icon {
23
+ --bottom-padding: #{rem(16)};
24
+ border: none;
25
+ }
26
+
27
+ .icon {
28
+ font-size: rem(18)!important;
29
+ height: rem(18)!important;
30
+ margin: 0 0 0.5rem 0!important;
31
+ font-weight: 400!important;
32
+ display: block!important;
33
+ }
34
+
35
+ .card__total {
36
+ margin-top: 0;
37
+ order: -1;
38
+ }
39
+ }
40
+
41
+
42
+ :host(:is(:hover,:focus,.hover)) {
43
+
44
+ outline: none;
45
+
46
+ :is(.card__body,.card__footer) {
47
+ background: #EEEEEE;
48
+ }
49
+ }
50
+
51
+ :host-context(:is(:checked, .checked)),
52
+ :host(:is(:active, .active)) {
53
+
54
+ outline: 2px solid var(--colour,var(--colour-primary));
55
+ outline-offset: -2px;
56
+
57
+ .card__body {
58
+ background: none;
59
+ }
60
+ .card__footer {
61
+ background: none;
62
+ }
63
+ }
64
+
65
+
66
+ ::slotted(i) {
67
+ display: block !important;
68
+ font-size: rem(18)!important;
69
+ margin: 0 0 0.5rem 0!important;
70
+ }
71
+
72
+
73
+ // #region card with a flag
74
+ :host(.card--flag) {
75
+ position: relative;
76
+
77
+ &:after {
78
+ content: var(--card-flag-icon, "\f024");
79
+ font-family: "Font Awesome 6 Pro";
80
+ position: absolute;
81
+ top: 1rem;
82
+ right: 1rem;
83
+ font-size: rem(16);
84
+ line-height: 1;
85
+ height: rem(16);
86
+ width: rem(16);
87
+ display: inline-block;
88
+ font-weight: normal;
89
+ color: var(--colour, var(--colour-primary));
90
+ }
91
+ }
92
+ // #endregion
93
+
94
+ // #region Show total number
95
+ .card__body:has(.card__total) {
96
+ --card-head-top-padding: 2rem;
97
+ --card-head-bottom-padding: 2rem;
98
+ display: flex;
99
+ align-items: center;
100
+ }
101
+
102
+ .card__total {
103
+ order: -1;
104
+ }
105
+
106
+ // #endregion
@@ -34,4 +34,11 @@ iam-multiselect:has(label:not([slot="checked"]):not([slot="notmatched"])) {
34
34
  iam-multiselect:has(label[slot="checked"]) {
35
35
 
36
36
  --display-button: block;
37
+ }
38
+
39
+ @include dark-mode() {
40
+ iam-multiselect :is(.tag,.badge):not([slot="checked"]){
41
+
42
+ color: var(--colour-heading);
43
+ }
37
44
  }