@iamproperty/components 7.2.2--beta3 → 7.4.0

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 (247) hide show
  1. package/assets/css/components/actionbar.component.css +1 -1
  2. package/assets/css/components/actionbar.component.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/barchart.component.css +1 -1
  6. package/assets/css/components/barchart.component.css.map +1 -1
  7. package/assets/css/components/bento-grid.global.css.map +1 -1
  8. package/assets/css/components/calendar.component.css +1 -0
  9. package/assets/css/components/calendar.component.css.map +1 -0
  10. package/assets/css/components/calendar.config.css +1 -0
  11. package/assets/css/components/calendar.config.css.map +1 -0
  12. package/assets/css/components/card.component.css +1 -1
  13. package/assets/css/components/card.component.css.map +1 -1
  14. package/assets/css/components/carousel.component.css +1 -1
  15. package/assets/css/components/carousel.component.css.map +1 -1
  16. package/assets/css/components/charts.module.css.map +1 -1
  17. package/assets/css/components/collapsible-side.css +1 -1
  18. package/assets/css/components/collapsible-side.css.map +1 -1
  19. package/assets/css/components/content.component.css +1 -0
  20. package/assets/css/components/content.component.css.map +1 -0
  21. package/assets/css/components/doughnutchart.component.css +1 -1
  22. package/assets/css/components/doughnutchart.component.css.map +1 -1
  23. package/assets/css/components/fileupload.css.map +1 -1
  24. package/assets/css/components/inline-edit.css +1 -1
  25. package/assets/css/components/inline-edit.css.map +1 -1
  26. package/assets/css/components/marketing.component.css +1 -0
  27. package/assets/css/components/marketing.component.css.map +1 -0
  28. package/assets/css/components/menu.component.css +1 -1
  29. package/assets/css/components/menu.component.css.map +1 -1
  30. package/assets/css/components/menu.css +1 -1
  31. package/assets/css/components/menu.css.map +1 -1
  32. package/assets/css/components/milestone.css +1 -0
  33. package/assets/css/components/milestone.css.map +1 -0
  34. package/assets/css/components/multiselect.css +1 -1
  35. package/assets/css/components/multiselect.css.map +1 -1
  36. package/assets/css/components/nav.component.css +1 -1
  37. package/assets/css/components/nav.component.css.map +1 -1
  38. package/assets/css/components/nav.global.css +1 -1
  39. package/assets/css/components/nav.global.css.map +1 -1
  40. package/assets/css/components/pagination.css.map +1 -1
  41. package/assets/css/components/rank.component.css +1 -1
  42. package/assets/css/components/rank.component.css.map +1 -1
  43. package/assets/css/components/rankings.component.css +1 -1
  44. package/assets/css/components/rankings.component.css.map +1 -1
  45. package/assets/css/components/rankings.global.css +1 -1
  46. package/assets/css/components/rankings.global.css.map +1 -1
  47. package/assets/css/components/slider.css.map +1 -1
  48. package/assets/css/components/split-button.component.css +1 -0
  49. package/assets/css/components/split-button.component.css.map +1 -0
  50. package/assets/css/components/table-basic.global.css.map +1 -1
  51. package/assets/css/components/table.global.css.map +1 -1
  52. package/assets/css/core.min.css +1 -1
  53. package/assets/css/core.min.css.map +1 -1
  54. package/assets/css/mobile-core.min.css +1 -1
  55. package/assets/css/mobile-core.min.css.map +1 -1
  56. package/assets/css/mobile.min.css +1 -1
  57. package/assets/css/mobile.min.css.map +1 -1
  58. package/assets/css/style.min.css +1 -1
  59. package/assets/css/style.min.css.map +1 -1
  60. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  61. package/assets/js/components/actionbar/actionbar.component.js +51 -31
  62. package/assets/js/components/actionbar/actionbar.component.min.js +17 -17
  63. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  64. package/assets/js/components/address-lookup/address-lookup.component.min.js +1 -1
  65. package/assets/js/components/advanced-select/advanced-select.component.js +63 -0
  66. package/assets/js/components/advanced-select/advanced-select.component.min.js +23 -0
  67. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -0
  68. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  69. package/assets/js/components/barchart/barchart.component.min.js +2 -2
  70. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  71. package/assets/js/components/calendar/calendar.component.js +1083 -0
  72. package/assets/js/components/calendar/calendar.component.min.js +170 -0
  73. package/assets/js/components/calendar/calendar.component.min.js.map +1 -0
  74. package/assets/js/components/card/card.component.js +20 -8
  75. package/assets/js/components/card/card.component.min.js +10 -10
  76. package/assets/js/components/card/card.component.min.js.map +1 -1
  77. package/assets/js/components/carousel/carousel.component.min.js +2 -2
  78. package/assets/js/components/collapsible-side/collapsible-side.component.js +47 -12
  79. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +6 -5
  80. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  81. package/assets/js/components/content/content.component.js +66 -0
  82. package/assets/js/components/content/content.component.min.js +15 -0
  83. package/assets/js/components/content/content.component.min.js.map +1 -0
  84. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +2 -2
  85. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  86. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  87. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  88. package/assets/js/components/header/header.component.min.js +1 -1
  89. package/assets/js/components/inline-edit/inline-edit.component.min.js +5 -5
  90. package/assets/js/components/marketing/marketing.component.js +1 -1
  91. package/assets/js/components/marketing/marketing.component.min.js +2 -2
  92. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  93. package/assets/js/components/menu/menu.component.js +148 -161
  94. package/assets/js/components/menu/menu.component.min.js +4 -69
  95. package/assets/js/components/menu/menu.component.min.js.map +1 -1
  96. package/assets/js/components/milestone/milestone.component.js +38 -0
  97. package/assets/js/components/milestone/milestone.component.min.js +15 -0
  98. package/assets/js/components/milestone/milestone.component.min.js.map +1 -0
  99. package/assets/js/components/milestone-group/milestone-group.component.js +35 -0
  100. package/assets/js/components/milestone-group/milestone-group.component.min.js +13 -0
  101. package/assets/js/components/milestone-group/milestone-group.component.min.js.map +1 -0
  102. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  103. package/assets/js/components/multiselect/multiselect.component.js +54 -2
  104. package/assets/js/components/multiselect/multiselect.component.min.js +5 -5
  105. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  106. package/assets/js/components/nav/nav.component.js +19 -0
  107. package/assets/js/components/nav/nav.component.min.js +6 -6
  108. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  109. package/assets/js/components/notification/notification.component.js +17 -11
  110. package/assets/js/components/notification/notification.component.min.js +4 -4
  111. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  112. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  113. package/assets/js/components/rank/rank.component.js +346 -210
  114. package/assets/js/components/rank/rank.component.min.js +346 -211
  115. package/assets/js/components/rank/rank.component.min.js.map +1 -1
  116. package/assets/js/components/rankings/rankings.component.js +17 -8
  117. package/assets/js/components/rankings/rankings.component.min.js +14 -8
  118. package/assets/js/components/rankings/rankings.component.min.js.map +1 -1
  119. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  120. package/assets/js/components/search/search.component.js +5 -3
  121. package/assets/js/components/search/search.component.min.js +6 -6
  122. package/assets/js/components/search/search.component.min.js.map +1 -1
  123. package/assets/js/components/slider/slider.component.min.js +1 -1
  124. package/assets/js/components/split-button/split-button.component.js +60 -0
  125. package/assets/js/components/split-button/split-button.component.min.js +34 -0
  126. package/assets/js/components/split-button/split-button.component.min.js.map +1 -0
  127. package/assets/js/components/table/table.component.js +12 -0
  128. package/assets/js/components/table/table.component.min.js +3 -3
  129. package/assets/js/components/table/table.component.min.js.map +1 -1
  130. package/assets/js/components/table-ajax/table-ajax.component.js +12 -0
  131. package/assets/js/components/table-ajax/table-ajax.component.min.js +3 -3
  132. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  133. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  134. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  135. package/assets/js/components/table-no-submit/table-no-submit.component.js +12 -0
  136. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +3 -3
  137. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  138. package/assets/js/components/table-submit/table-submit.component.js +12 -0
  139. package/assets/js/components/table-submit/table-submit.component.min.js +3 -3
  140. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  141. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  142. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  143. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  144. package/assets/js/components.js +58 -0
  145. package/assets/js/modules/advanced-select.js +106 -0
  146. package/assets/js/modules/dialogs.js +53 -51
  147. package/assets/js/modules/dynamicEvents.js +7 -0
  148. package/assets/js/modules/milestone-group.js +30 -0
  149. package/assets/js/modules/milestone.js +89 -0
  150. package/assets/js/modules/table.js +11 -1
  151. package/assets/js/modules/videos.js +1 -1
  152. package/assets/js/scripts.bundle.js +3 -3
  153. package/assets/js/scripts.bundle.js.map +1 -1
  154. package/assets/js/scripts.bundle.min.js +2 -2
  155. package/assets/js/scripts.bundle.min.js.map +1 -1
  156. package/assets/js/scripts.js +4 -0
  157. package/assets/sass/_components.scss +11 -0
  158. package/assets/sass/_functions/utility-mixins.scss +41 -0
  159. package/assets/sass/_functions/variables.scss +11 -8
  160. package/assets/sass/components/actionbar.component.scss +3 -4
  161. package/assets/sass/components/actionbar.global.scss +4 -4
  162. package/assets/sass/components/bento-grid.global.scss +0 -1
  163. package/assets/sass/components/calendar.component.scss +1380 -0
  164. package/assets/sass/components/calendar.config.scss +476 -0
  165. package/assets/sass/components/card.component.scss +4 -34
  166. package/assets/sass/components/carousel.component.scss +5 -0
  167. package/assets/sass/components/charts.module.scss +0 -2
  168. package/assets/sass/components/collapsible-side.scss +91 -95
  169. package/assets/sass/components/content.component.scss +18 -0
  170. package/assets/sass/components/inline-edit.scss +2 -0
  171. package/assets/sass/components/{marketing.scss → marketing.component.scss} +2 -6
  172. package/assets/sass/components/menu.component.scss +118 -31
  173. package/assets/sass/components/menu.scss +68 -7
  174. package/assets/sass/components/milestone.scss +207 -0
  175. package/assets/sass/components/multiselect.scss +3 -0
  176. package/assets/sass/components/nav.component.scss +1 -0
  177. package/assets/sass/components/nav.global.scss +30 -0
  178. package/assets/sass/components/rank.component.scss +197 -33
  179. package/assets/sass/components/rankings.component.scss +39 -35
  180. package/assets/sass/components/rankings.global.scss +66 -10
  181. package/assets/sass/components/split-button.component.scss +77 -0
  182. package/assets/sass/components/table-basic.global.scss +2 -4
  183. package/assets/sass/components/table.global.scss +4 -4
  184. package/assets/sass/elements/badge-tag.scss +5 -1
  185. package/assets/sass/elements/buttons--compact.scss +4 -0
  186. package/assets/sass/elements/buttons--global.scss +1 -1
  187. package/assets/sass/elements/details.scss +0 -1
  188. package/assets/sass/elements/dialog.scss +1 -3
  189. package/assets/sass/elements/forms.scss +148 -22
  190. package/assets/sass/elements/links.scss +132 -4
  191. package/assets/sass/elements/lists.scss +61 -0
  192. package/assets/sass/elements/popover.scss +64 -10
  193. package/assets/sass/elements/toggle-button.scss +7 -8
  194. package/assets/sass/elements/type.scss +7 -10
  195. package/assets/sass/foundations/reboot.scss +3 -3
  196. package/assets/sass/templates/form.scss +0 -2
  197. package/assets/ts/components/actionbar/actionbar.component.ts +49 -23
  198. package/assets/ts/components/advanced-select/advanced-select.component.ts +74 -0
  199. package/assets/ts/components/calendar/calendar.component.ts +1460 -0
  200. package/assets/ts/components/card/card.component.ts +22 -14
  201. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +53 -12
  202. package/assets/ts/components/content/content.component.ts +78 -0
  203. package/assets/ts/components/marketing/marketing.component.ts +1 -1
  204. package/assets/ts/components/menu/menu.component.ts +162 -173
  205. package/assets/ts/components/milestone/milestone.component.ts +45 -0
  206. package/assets/ts/components/milestone-group/milestone-group.component.ts +41 -0
  207. package/assets/ts/components/multiselect/multiselect.component.ts +69 -3
  208. package/assets/ts/components/nav/nav.component.ts +25 -0
  209. package/assets/ts/components/notification/notification.component.ts +34 -11
  210. package/assets/ts/components/rank/rank.component.ts +345 -214
  211. package/assets/ts/components/rankings/rankings.component.ts +28 -15
  212. package/assets/ts/components/search/search.component.ts +6 -4
  213. package/assets/ts/components/split-button/split-button.component.ts +69 -0
  214. package/assets/ts/components/table/table.component.ts +14 -0
  215. package/assets/ts/components/table-ajax/table-ajax.component.ts +14 -0
  216. package/assets/ts/components/table-no-submit/table-no-submit.component.ts +14 -0
  217. package/assets/ts/components/table-submit/table-submit.component.ts +14 -0
  218. package/assets/ts/components/video-card/video-card.component.ts +2 -3
  219. package/assets/ts/components.ts +63 -0
  220. package/assets/ts/modules/advanced-select.ts +125 -0
  221. package/assets/ts/modules/dialogs.ts +64 -61
  222. package/assets/ts/modules/dynamicEvents.ts +12 -1
  223. package/assets/ts/modules/milestone-group.ts +42 -0
  224. package/assets/ts/modules/milestone.ts +122 -0
  225. package/assets/ts/modules/table.ts +15 -1
  226. package/assets/ts/modules/videos.ts +19 -37
  227. package/assets/ts/scripts.ts +5 -3
  228. package/dist/components.es.js +41 -1923
  229. package/dist/components.umd.js +127 -171
  230. package/package.json +1 -1
  231. package/src/components/AdvancedSelect/AdvancedSelect.vue +23 -0
  232. package/src/components/Calendar/Calendar.vue +26 -0
  233. package/src/components/Card/Card.vue +1 -1
  234. package/src/components/CollapsibleSideMenu/CollapsibleSideMenu.vue +7 -13
  235. package/src/components/Content/Content.vue +23 -0
  236. package/src/components/Milestones/Milestone.vue +27 -0
  237. package/src/components/Milestones/MilestoneGroup.vue +27 -0
  238. package/src/components/Rank/Rank.vue +1 -2
  239. package/src/components/Rankings/Rankings.vue +9 -10
  240. package/src/components/SplitButton/README.md +19 -0
  241. package/src/components/SplitButton/SplitButton.vue +26 -0
  242. package/src/index.js +44 -41
  243. package/assets/css/components/marketing.css +0 -1
  244. package/assets/css/components/marketing.css.map +0 -1
  245. package/assets/css/components/nav.old.css +0 -1
  246. package/assets/css/components/nav.old.css.map +0 -1
  247. package/assets/sass/components/nav.old.scss +0 -891
@@ -36,32 +36,41 @@ $darkMode: 'true' !default;
36
36
  @include media-breakpoint-up(md, $mobileOnly) {
37
37
  padding-left: 5.25rem !important;
38
38
  }
39
+
40
+ &.inline {
41
+ .side-menu {
42
+ position: absolute;
43
+ top: 0;
44
+ }
45
+ }
39
46
  }
40
47
 
41
48
  // #region Side menu
42
49
  .side-menu {
43
50
  position: absolute;
51
+ z-index: 20;
44
52
  top: 0;
45
53
  left: 0;
46
54
  height: 100%;
47
55
  min-height: calc(100vh - var(--nav-height));
48
- width: rem(30);
56
+ width: rem(70);
49
57
  height: calc(100% - var(--nav-height));
50
- background-color: var(--colour-canvas);
58
+ padding: 0 rem(40) 0 0;
51
59
  transition: width 1s;
52
60
 
53
61
  &:before {
54
62
  content: '';
55
63
  position: absolute;
64
+ z-index: 1;
56
65
  top: 0;
57
- right: 0;
66
+ right: rem(40);
58
67
  height: 100%;
59
68
  border-right: 2px solid var(--colour-border);
60
69
  }
61
70
 
62
71
  @include media-breakpoint-up(sm, $mobileOnly) {
63
72
  left: 0;
64
- width: rem(40);
73
+ width: rem(80);
65
74
  }
66
75
 
67
76
  @include media-breakpoint-up(md, $mobileOnly) {
@@ -71,10 +80,11 @@ $darkMode: 'true' !default;
71
80
  top: var(--nav-height);
72
81
 
73
82
  &:not(.open).hover {
74
- width: rem(304);
83
+ width: rem(344);
75
84
 
76
85
  .btn[class*='fa-']:before {
77
86
  content: '\f023' !important;
87
+ transform: rotate(0);
78
88
  }
79
89
  }
80
90
  }
@@ -83,13 +93,14 @@ $darkMode: 'true' !default;
83
93
  display: var(--btn-display, block);
84
94
  position: absolute;
85
95
  top: rem(32);
86
- right: 0;
96
+ right: rem(40);
87
97
  margin-bottom: 0;
88
98
  margin-right: rem(-20);
89
99
  background-color: var(--colour-canvas-2);
90
100
  border: 2px solid var(--colour-border);
91
101
  z-index: 99;
92
102
  color: var(--colour-primary-theme);
103
+ transition: opacity 0.2s;
93
104
 
94
105
  &[aria-expanded] {
95
106
  // Change icon
@@ -105,7 +116,7 @@ $darkMode: 'true' !default;
105
116
 
106
117
  &:is(:hover, :focus-within, :active) .btn {
107
118
  border: 2px solid var(--colour-border);
108
- color: var(--colour-primary-theme);
119
+ color: var(--colour-primary);
109
120
 
110
121
  @include media-breakpoint-up(md, $mobileOnly) {
111
122
  opacity: 1;
@@ -113,29 +124,30 @@ $darkMode: 'true' !default;
113
124
  }
114
125
 
115
126
  &:is(.open) {
116
- width: calc(100% - var(--container-padding-x));
127
+ width: calc(100% - var(--container-padding-x) + rem(40));
117
128
 
118
- @include media-breakpoint-up(sm, $mobileOnly) {
119
- width: rem(382);
129
+ @include media-breakpoint-up(sm) {
130
+ width: rem(422);
120
131
  }
121
- @include media-breakpoint-up(md, $mobileOnly) {
122
- width: rem(304);
132
+ @include media-breakpoint-up(md) {
133
+ width: rem(344);
123
134
  }
124
135
  }
125
136
 
126
137
  // Content
127
-
128
138
  .side-menu-content {
129
139
  position: absolute;
130
140
  top: 0;
131
- right: 0;
132
- padding: rem(32) rem(40) 0 0;
141
+ right: rem(40);
142
+ padding: rem(32) rem(40) rem(40) 0;
133
143
  width: rem(351);
144
+ background-color: var(--colour-canvas);
134
145
  opacity: 0;
135
146
  transition: opacity 1s;
136
147
  min-height: 100%;
137
148
  overflow: auto;
138
149
  max-height: 100%;
150
+ scrollbar-width: thin;
139
151
 
140
152
  .h3 {
141
153
  padding-left: rem(24);
@@ -172,90 +184,13 @@ $darkMode: 'true' !default;
172
184
  }
173
185
  }
174
186
 
175
- // Links
176
- ::slotted(*[slot='menu']) {
177
- padding-left: rem(24);
178
-
179
- @include media-breakpoint-up(sm, $mobileOnly) {
180
- padding-left: rem(40);
181
- }
182
-
183
- @include media-breakpoint-up(md, $mobileOnly) {
184
- padding-left: var(--container-padding-x-md);
185
- }
186
- }
187
-
188
- ::slotted(hr) {
189
- border-bottom: 2px solid var(--colour-border) !important;
190
- margin-right: rem(-40) !important;
191
- }
192
-
193
- ::slotted(a[slot='menu']) {
194
- display: block;
195
-
196
- display: block !important;
197
- line-height: rem(20) !important;
198
- padding: rem(16) rem(40) rem(16) rem(24) !important;
199
- margin: 0 !important;
200
- flex-shrink: 0;
201
- font-size: 1rem !important;
202
- font-weight: normal !important;
203
- text-decoration: none;
204
-
205
- border-right: 2px solid var(--colour-border) !important;
206
- border-bottom: 2px solid var(--colour-border) !important;
207
-
208
- margin-right: rem(-40) !important;
209
-
210
- @include media-breakpoint-up(sm, $mobileOnly) {
211
- padding-left: rem(40) !important;
212
- }
213
-
214
- @include media-breakpoint-up(md, $mobileOnly) {
215
- padding-left: var(--container-padding-x-md) !important;
216
- }
217
- &:after {
218
- display: none;
219
- }
220
- }
221
-
222
- ::slotted(a[slot='menu']:where(:hover, :focus, [aria-expanded])) {
223
- background-color: var(--side-link-hover) !important;
224
- }
225
-
226
- ::slotted(a[slot='menu']:active) {
227
- background-color: var(--side-link-hover) !important;
228
- font-weight: bold !important;
229
- }
230
-
231
- ::slotted(a[slot='menu'][aria-expanded]) {
232
- background-color: var(--side-link-hover) !important;
233
- font-weight: bold !important;
234
- margin-right: #{rem(-40)} !important;
235
- position: relative;
236
-
237
- border-right: 2px solid var(--colour-info) !important;
238
-
239
- &:before {
240
- content: '';
241
- position: absolute;
242
- top: 0;
243
- right: 0;
244
- height: calc(100% + 4px);
245
- margin-top: -2px;
246
- width: 2px;
247
- border-right: 2px solid var(--colour-info);
248
- margin-right: -2px;
249
-
250
- @media (forced-colors: active) {
251
- border-right: 10px solid var(--colour-info);
252
- }
253
- }
254
- }
187
+ // links moved to links.scss
255
188
  // #endregion
256
189
 
257
190
  // #region main content
258
191
  .main-content {
192
+ position: relative;
193
+ z-index: 10;
259
194
  padding-top: rem(24);
260
195
  padding-left: rem(60);
261
196
 
@@ -311,3 +246,64 @@ $darkMode: 'true' !default;
311
246
  --btn-display: none;
312
247
  }
313
248
  }
249
+
250
+ :host([inline]) {
251
+ width: 100%;
252
+ max-width: 100%;
253
+
254
+ @include media-breakpoint-up(md, $mobileOnly) {
255
+ max-width: min(var(--container-max-width), 100% - 19rem);
256
+ }
257
+ }
258
+
259
+ :host([menu-right]) {
260
+ .container {
261
+ padding-right: 0 !important;
262
+
263
+ @include media-breakpoint-up(md, $mobileOnly) {
264
+ padding-right: 5.25rem !important;
265
+ }
266
+ }
267
+
268
+ @include media-breakpoint-up(md, $mobileOnly) {
269
+ .container:has(.side-menu.open) {
270
+ margin-right: max(19rem, calc(50% - calc(var(--container-max-width) / 2)));
271
+ margin-left: 0;
272
+ }
273
+ }
274
+
275
+ .side-menu {
276
+ left: auto;
277
+ right: -2.5rem;
278
+ padding: 0 0 0 rem(40);
279
+
280
+ @include media-breakpoint-up(md, $mobileOnly) {
281
+ right: 0;
282
+ }
283
+
284
+ &::before {
285
+ right: 100%;
286
+ }
287
+
288
+ .btn {
289
+ right: 100%;
290
+
291
+ &:before {
292
+ transform: rotate(180deg);
293
+ }
294
+ }
295
+ }
296
+
297
+ .main-content {
298
+ padding-left: var(--container-padding-x);
299
+ padding-right: rem(60);
300
+
301
+ @include media-breakpoint-up(sm, $mobileOnly) {
302
+ padding-right: rem(80);
303
+ }
304
+
305
+ @include media-breakpoint-up(md, $mobileOnly) {
306
+ padding-right: 0;
307
+ }
308
+ }
309
+ }
@@ -0,0 +1,18 @@
1
+ @use '../_func' as *;
2
+ @use '../elements/buttons.scss' as *;
3
+
4
+ *,
5
+ *::before,
6
+ *::after {
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ :host {
11
+ display: contents;
12
+ }
13
+
14
+ ::slotted(iam-marketing:first-child:last-child) {
15
+ margin-bottom: 0;
16
+ min-height: 100%;
17
+ min-width: 100%;
18
+ }
@@ -1,5 +1,7 @@
1
1
  @use '../_func' as *;
2
2
 
3
+ @include display();
4
+
3
5
  :host {
4
6
  max-width: var(--input-max-width, 50rem);
5
7
  display: block;
@@ -2,14 +2,13 @@
2
2
 
3
3
  $isComponent: 'true' !default;
4
4
 
5
- @mixin iamMarketing() {
5
+ :host {
6
6
  display: flex;
7
7
  position: relative;
8
8
  overflow: hidden;
9
9
  position: relative;
10
10
  overflow: hidden;
11
11
  margin-bottom: 2rem;
12
- max-width: 40rem;
13
12
  min-width: 100%;
14
13
  padding: 2rem;
15
14
  border-radius: 0.5rem;
@@ -24,6 +23,7 @@ figure {
24
23
  width: 100%;
25
24
  top: 0;
26
25
  left: 0;
26
+ margin: 0;
27
27
 
28
28
  &:after {
29
29
  content: '';
@@ -58,10 +58,6 @@ img {
58
58
  mix-blend-mode: multiply;
59
59
  }
60
60
 
61
- :host {
62
- @include iamMarketing();
63
- }
64
-
65
61
  @include slotted('*', $isComponent) {
66
62
  position: relative;
67
63
  z-index: 2;
@@ -1,17 +1,36 @@
1
+ @use '../_func.scss' as *;
2
+
1
3
  :host {
4
+ //all: unset;
2
5
  inset: auto;
3
- top: anchor(top);
4
- left: calc(anchor(right) + var(--menu-offset, 0.25rem));
6
+ top: anchor(bottom);
7
+ left: anchor(left);
5
8
  position: fixed;
6
9
  position-try-fallbacks: flip-block, flip-inline;
7
10
  width: max-content;
8
- min-width: calc(anchor-size(width) + 2rem);
9
11
 
10
- max-height: var(--menu-max-height, min-contents);
12
+ height: min-content;
13
+ max-height: var(--menu-max-height, min(100vh - 6rem));
11
14
  background: var(--menu-bg, canvas);
12
15
  margin: var(--menu-margin, 0);
13
- padding: var(--menu-padding, 0.25rem);
16
+ padding: var(--menu-padding, 0.5rem);
14
17
  border: var(--menu-border, 2px solid grey);
18
+ overflow: auto;
19
+
20
+ border: none !important;
21
+ border-radius: 0.5rem;
22
+ box-shadow: 0px 2px 9px rgba(0, 0, 0, 0.1);
23
+ }
24
+
25
+ :host(.menu--fill) {
26
+ width: anchor-size(width);
27
+ min-width: anchor-size(width);
28
+ max-width: anchor-size(width);
29
+ }
30
+
31
+ :host(:popover-open),
32
+ :host([popover-open]) {
33
+ display: block;
15
34
  }
16
35
 
17
36
  :host(:not([popover])) {
@@ -19,61 +38,128 @@
19
38
  display: block;
20
39
  }
21
40
 
22
- .menu--inner {
23
- display: contents;
41
+ :host(.menu--sm) {
42
+ width: rem(160);
43
+ }
44
+ :host(.menu--md) {
45
+ width: rem(240);
46
+ }
47
+ :host(.menu--lg) {
48
+ width: rem(320);
49
+ }
50
+
51
+ :host(.menu--height-sm) {
52
+ max-height: rem(200);
53
+ }
54
+ :host(.menu--height-lg) {
55
+ max-height: rem(400);
24
56
  }
25
57
 
26
- ::slotted(*:not(iam-menu)) {
58
+ ::slotted(*:is(button, a, label, span)) {
27
59
  //all: unset !important;
28
60
  background: unset !important;
29
61
  border: unset !important;
30
- color: inherit !important;
62
+ color: var(--colour-primary) !important;
31
63
  font-weight: inherit !important;
32
64
  font-family: inherit !important;
33
65
  font-size: 1rem !important;
66
+ line-height: rem(19) !important;
34
67
  display: block !important;
35
68
  margin: var(--menu-item-margin, 0 0 0.25rem 0) !important;
36
- padding: var(--menu-item-padding, 0) !important;
69
+ padding-block: var(--menu-item-padding, 0.5rem) !important;
37
70
  width: var(--menu-item-width, 100%) !important;
71
+ max-width: var(--menu-item-width, 100%) !important;
38
72
  text-align: var(--menu-item-text-align, left) !important;
73
+ }
74
+
75
+ ::slotted(*:is(button, a, label)) {
76
+ padding-inline: var(--menu-item-padding, 0.5rem);
39
77
  cursor: var(--menu-item-cursor, pointer) !important;
40
78
  }
41
79
 
42
- ::slotted(details) {
43
- margin: 0 !important;
44
- padding: 0 !important;
80
+ ::slotted(*:is(span):first-child) {
81
+ padding-top: 0 !important;
82
+ font-weight: 700 !important;
45
83
  }
46
- ::slotted(*:not(iam-menu):not([class*='fa-'])):before {
47
- display: none !important;
84
+
85
+ ::slotted(*:is(button, a, label, span):last-child) {
86
+ margin-bottom: 0 !important;
48
87
  }
49
- ::slotted(*[class*='fa-']):before {
50
- font-family: var(--fa-font-family, 'Font Awesome 6 Pro');
88
+
89
+ // Radio buttons
90
+
91
+ ::slotted(*:is(label)) {
92
+ --radio-size: #{rem(20)};
93
+ --radio-inner-size: #{rem(12)};
94
+ --radio-inner-top: #{rem(12)};
95
+ --radio-inner-left: #{rem(12)};
96
+
97
+ --checkbox-tick-size: #{rem(12)};
98
+ --checkbox-inner-size: #{rem(10)};
99
+ --checkbox-inner-top: #{rem(6)};
100
+ --checkbox-inner-left: #{rem(8)};
101
+ padding-left: rem(36) !important;
51
102
  }
52
- ::slotted(*:not(iam-menu)):after {
53
- display: none !important;
103
+
104
+ // States
105
+
106
+ ::slotted(*:is(button, a, label):is(.selected)) {
107
+ background: #e9f8fc !important;
108
+ border-left: 4px solid var(--colour-info) !important;
109
+ border-radius: 0.25rem !important;
110
+
111
+ padding-left: calc(var(--menu-item-padding, 0.5rem) - 4px) !important;
54
112
  }
55
113
 
56
- ::slotted(*:not(iam-menu):focus) {
57
- color: var(--menuFocusColor, LinkText) !important;
114
+ @media (prefers-color-scheme: dark) {
115
+ ::slotted(*:is(button, a, label):is(.selected):not(:hover, .hover)) {
116
+ color: black !important;
117
+ }
58
118
  }
59
- ::slotted(*:not(iam-menu):not(details):hover) {
60
- color: var(--menuHoverColor, LinkText) !important;
119
+
120
+ ::slotted(*:is(button, a, label):is(:hover, .hover, :focus, .focus)) {
121
+ //all: unset !important;
122
+ background: var(--colour-light) !important;
123
+ border-radius: 0.25rem !important;
61
124
  }
62
- ::slotted(*:not(iam-menu):not(details):active) {
63
- color: var(--menuActiveColor, ActiveText) !important;
125
+
126
+ ::slotted(*:is(button, a, label):is(:active, .active)) {
127
+ background: rgba(224, 224, 224, 1) !important;
128
+ border-radius: 0.25rem !important;
129
+ }
130
+
131
+ @media (prefers-color-scheme: dark) {
132
+ ::slotted(*:is(button, a, label):is(:active, .active)) {
133
+ color: black !important;
134
+ }
64
135
  }
65
136
 
66
137
  ::slotted(hr) {
67
- height: 2px !important;
138
+ height: 1px !important;
68
139
  background-color: var(--menu-hr-border-color, var(--border-color, grey)) !important;
69
- margin-left: calc(var(--menu-padding, 0.25rem) * -1) !important;
70
- margin-right: calc(var(--menu-padding, 0.25rem) * -1) !important;
71
- width: calc(100% + var(--menu-padding, 0.25rem) * 2) !important;
72
- margin-top: var(--menu-hr-margin, 0.75rem) !important;
73
- margin-bottom: var(--menu-hr-margin, 1rem) !important;
140
+ width: 100%;
141
+ margin: var(--menu-item-margin, 0 0 0.25rem 0) !important;
74
142
  padding: 0 !important;
75
143
  }
76
144
 
145
+ // #region sub menu
146
+ ::slotted(iam-menu:not([popover])) {
147
+ border: none !important;
148
+ border-radius: 0 !important;
149
+ box-shadow: none !important;
150
+ padding: 0;
151
+ margin: 0;
152
+ width: auto;
153
+ }
154
+
155
+ ::slotted(iam-menu[popover]) {
156
+ top: anchor(top);
157
+ left: calc(anchor(right) + 1rem);
158
+ }
159
+ // #endregion
160
+
161
+ /*
162
+
77
163
  ::slotted([popovertarget]):before {
78
164
  text-align: center;
79
165
  display: inline-block !important;
@@ -99,3 +185,4 @@
99
185
  -webkit-mask-position: 50% 50%;
100
186
  z-index: 2;
101
187
  }
188
+ */
@@ -5,17 +5,78 @@ $mobileOnly: 'false' !default;
5
5
  $darkMode: 'true' !default;
6
6
 
7
7
  @include layer('components', $layers) {
8
- $menuPadding: 1rem !default;
9
- $menuBorder: none !default;
10
- $menuBorderRadius: 1rem !default;
11
- $menuBoxShadow: 0px 2px 9px rgba(0, 0, 0, 0.1) !default;
8
+ $menuPadding: 0.5rem !default;
12
9
 
13
10
  iam-menu:defined {
14
11
  --menu-padding: #{$menuPadding};
15
12
  --border-color: var(--colour-border);
16
13
  --menu-item-margin: 0 0 0.5rem 0;
17
- border: #{$menuBorder};
18
- border-radius: #{$menuBorderRadius};
19
- box-shadow: #{$menuBoxShadow};
20
14
  }
15
+
16
+ iam-menu i {
17
+ width: 1.25rem;
18
+ }
19
+
20
+ // #region sub menu
21
+
22
+ iam-menu > button:has(+ iam-menu) {
23
+ position: relative;
24
+
25
+ &:after {
26
+ content: '';
27
+ height: var(--btn-line-height);
28
+ width: rem(16);
29
+ height: rem(16);
30
+ display: inline-block;
31
+ background: currentColor;
32
+ mask-image: var(--icon-arrow);
33
+ mask-size: 100%;
34
+ mask-repeat: no-repeat;
35
+ mask-position: 50% 50%;
36
+ -webkit-mask-image: var(--icon-arrow);
37
+ -webkit-mask-size: 100%;
38
+ -webkit-mask-repeat: no-repeat;
39
+ -webkit-mask-position: 50% 50%;
40
+ vertical-align: bottom;
41
+
42
+ position: absolute;
43
+ top: calc(50% - 0.5rem);
44
+ right: 0.5rem;
45
+ }
46
+ }
47
+
48
+ iam-menu > button:has(+ iam-menu:not([popover])) {
49
+ &:after {
50
+ rotate: 90deg;
51
+ }
52
+ }
53
+
54
+ iam-menu > button.open:has(+ iam-menu:not([popover])) {
55
+ position: relative;
56
+
57
+ &:after {
58
+ top: calc(50% - 0.5rem);
59
+ right: 0.5rem;
60
+ rotate: 270deg;
61
+ }
62
+ }
63
+
64
+ iam-menu > button:has(+ iam-menu:popover-open) {
65
+ position: relative;
66
+
67
+ &:after {
68
+ top: calc(50% - 0.5rem);
69
+ right: 0.5rem;
70
+ rotate: 180deg;
71
+ }
72
+ }
73
+
74
+ iam-menu > button:not(.open) + iam-menu:not([popover]) {
75
+ display: none;
76
+ }
77
+
78
+ iam-menu > button + iam-menu:not([popover]) > *:is(button, a, label) {
79
+ padding-left: 2rem;
80
+ }
81
+ // #endregion
21
82
  }