@iamproperty/components 7.5.1--beta9 → 7.5.1--beta11

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 (194) 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.map +1 -1
  4. package/assets/css/components/address-lookup.component.css +1 -1
  5. package/assets/css/components/address-lookup.component.css.map +1 -1
  6. package/assets/css/components/applied-filters.css.map +1 -1
  7. package/assets/css/components/barchart.component.css +1 -1
  8. package/assets/css/components/barchart.component.css.map +1 -1
  9. package/assets/css/components/calendar.component.css +1 -1
  10. package/assets/css/components/calendar.component.css.map +1 -1
  11. package/assets/css/components/calendar.config.css.map +1 -1
  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/carousel.config.css.map +1 -1
  17. package/assets/css/components/charts.config.css.map +1 -1
  18. package/assets/css/components/collapsible-side.css +1 -1
  19. package/assets/css/components/collapsible-side.css.map +1 -1
  20. package/assets/css/components/content.component.css +1 -1
  21. package/assets/css/components/content.component.css.map +1 -1
  22. package/assets/css/components/doughnutchart.component.css +1 -1
  23. package/assets/css/components/doughnutchart.component.css.map +1 -1
  24. package/assets/css/components/fileupload.css +1 -1
  25. package/assets/css/components/fileupload.css.map +1 -1
  26. package/assets/css/components/header.css.map +1 -1
  27. package/assets/css/components/inline-edit.css.map +1 -1
  28. package/assets/css/components/inline-edit.preload.css.map +1 -1
  29. package/assets/css/components/marketing.component.css.map +1 -1
  30. package/assets/css/components/menu.component.css +1 -1
  31. package/assets/css/components/menu.component.css.map +1 -1
  32. package/assets/css/components/menu.global.css.map +1 -1
  33. package/assets/css/components/modal.component.css +1 -1
  34. package/assets/css/components/modal.component.css.map +1 -1
  35. package/assets/css/components/multi-step-modal.component.css +1 -1
  36. package/assets/css/components/multi-step-modal.component.css.map +1 -1
  37. package/assets/css/components/multi-step-modal.global.css.map +1 -1
  38. package/assets/css/components/multi-step.component.css.map +1 -1
  39. package/assets/css/components/multiselect.css +1 -1
  40. package/assets/css/components/multiselect.css.map +1 -1
  41. package/assets/css/components/multiselect.preload.css.map +1 -1
  42. package/assets/css/components/nav.component.css +1 -1
  43. package/assets/css/components/nav.component.css.map +1 -1
  44. package/assets/css/components/nav.docs.css.map +1 -1
  45. package/assets/css/components/nav.global.css.map +1 -1
  46. package/assets/css/components/nav.preload.css.map +1 -1
  47. package/assets/css/components/notification.css.map +1 -1
  48. package/assets/css/components/pagination.css +1 -1
  49. package/assets/css/components/pagination.css.map +1 -1
  50. package/assets/css/components/popover.component.css +1 -0
  51. package/assets/css/components/popover.component.css.map +1 -0
  52. package/assets/css/components/property-searchbar.css.map +1 -1
  53. package/assets/css/components/rank.component.css.map +1 -1
  54. package/assets/css/components/rankings.component.css.map +1 -1
  55. package/assets/css/components/rankings.global.css.map +1 -1
  56. package/assets/css/components/slider.css +1 -1
  57. package/assets/css/components/slider.css.map +1 -1
  58. package/assets/css/components/snapshot.css.map +1 -1
  59. package/assets/css/components/split-button.component.css +1 -1
  60. package/assets/css/components/split-button.component.css.map +1 -1
  61. package/assets/css/components/stepper.css.map +1 -1
  62. package/assets/css/components/table-basic.component.css.map +1 -1
  63. package/assets/css/components/table-basic.global.css +1 -1
  64. package/assets/css/components/table-basic.global.css.map +1 -1
  65. package/assets/css/components/table.component.css.map +1 -1
  66. package/assets/css/components/table.global.css +1 -1
  67. package/assets/css/components/table.global.css.map +1 -1
  68. package/assets/css/components/tabs.component.css +1 -1
  69. package/assets/css/components/tabs.component.css.map +1 -1
  70. package/assets/css/components/tabs.config.css.map +1 -1
  71. package/assets/css/components/testimonial.css.map +1 -1
  72. package/assets/css/components/timeline.css.map +1 -1
  73. package/assets/css/components/tooltip.component.css +1 -0
  74. package/assets/css/components/tooltip.component.css.map +1 -0
  75. package/assets/css/core.min.css +1 -1
  76. package/assets/css/core.min.css.map +1 -1
  77. package/assets/css/mobile-core.min.css +1 -1
  78. package/assets/css/mobile-core.min.css.map +1 -1
  79. package/assets/css/mobile.min.css +1 -1
  80. package/assets/css/mobile.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 +4 -4
  87. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  88. package/assets/js/components/advanced-select/advanced-select.component.min.js +3 -3
  89. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
  90. package/assets/js/components/applied-filters/applied-filters.component.min.js +4 -4
  91. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  92. package/assets/js/components/barchart/barchart.component.min.js +2 -2
  93. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  94. package/assets/js/components/calendar/calendar.component.min.js +4 -4
  95. package/assets/js/components/card/card.component.min.js +6 -6
  96. package/assets/js/components/card/card.component.min.js.map +1 -1
  97. package/assets/js/components/carousel/carousel.component.min.js +4 -4
  98. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +2 -2
  99. package/assets/js/components/content/content.component.min.js +2 -2
  100. package/assets/js/components/darkmode/darkmode.component.js +5 -1
  101. package/assets/js/components/darkmode/darkmode.component.min.js +2 -2
  102. package/assets/js/components/darkmode/darkmode.component.min.js.map +1 -1
  103. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +7 -7
  104. package/assets/js/components/fileupload/fileupload.component.min.js +3 -3
  105. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  106. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  107. package/assets/js/components/header/header.component.min.js +1 -1
  108. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  109. package/assets/js/components/input/input.component.js +82 -1
  110. package/assets/js/components/input/input.component.min.js +4 -4
  111. package/assets/js/components/input/input.component.min.js.map +1 -1
  112. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  113. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  114. package/assets/js/components/menu/menu.component.js +1 -0
  115. package/assets/js/components/menu/menu.component.min.js +4 -4
  116. package/assets/js/components/menu/menu.component.min.js.map +1 -1
  117. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  118. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  119. package/assets/js/components/modal/modal.component.min.js +4 -4
  120. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  121. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +4 -4
  122. package/assets/js/components/multiselect/multiselect.component.min.js +4 -4
  123. package/assets/js/components/nav/nav.component.min.js +2 -2
  124. package/assets/js/components/notification/notification.component.min.js +1 -1
  125. package/assets/js/components/pagination/pagination.component.min.js +2 -2
  126. package/assets/js/components/password/password.component.min.js +1 -1
  127. package/assets/js/components/popover/popover.component.js +36 -0
  128. package/assets/js/components/popover/popover.component.min.js +13 -0
  129. package/assets/js/components/popover/popover.component.min.js.map +1 -0
  130. package/assets/js/components/rank/rank.component.min.js +1 -1
  131. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  132. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  133. package/assets/js/components/search/search.component.min.js +5 -5
  134. package/assets/js/components/search/search.component.min.js.map +1 -1
  135. package/assets/js/components/slider/slider.component.min.js +2 -2
  136. package/assets/js/components/split-button/split-button.component.min.js +4 -4
  137. package/assets/js/components/split-button/split-button.component.min.js.map +1 -1
  138. package/assets/js/components/std-address-lookup/std-address-lookup.component.js +1 -1
  139. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +7 -7
  140. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
  141. package/assets/js/components/table/table.component.min.js +6 -6
  142. package/assets/js/components/table/table.component.min.js.map +1 -1
  143. package/assets/js/components/table-ajax/table-ajax.component.min.js +6 -6
  144. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  145. package/assets/js/components/table-basic/table-basic.component.js +1 -1
  146. package/assets/js/components/table-basic/table-basic.component.min.js +4 -4
  147. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  148. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +6 -6
  149. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  150. package/assets/js/components/table-submit/table-submit.component.min.js +5 -5
  151. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  152. package/assets/js/components/tabs/tabs.component.min.js +4 -4
  153. package/assets/js/components/tooltip/tooltip.component.js +68 -0
  154. package/assets/js/components/tooltip/tooltip.component.min.js +14 -0
  155. package/assets/js/components/tooltip/tooltip.component.min.js.map +1 -0
  156. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  157. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  158. package/assets/js/modules/advanced-select.js +6 -0
  159. package/assets/js/modules/applied-filters.js +8 -2
  160. package/assets/js/modules/table.js +49 -164
  161. package/assets/js/scripts.bundle.js +1 -1
  162. package/assets/js/scripts.bundle.min.js +1 -1
  163. package/assets/sass/_elements.scss +5 -0
  164. package/assets/sass/_functions/mixins.scss +53 -0
  165. package/assets/sass/components/actionbar.component.scss +8 -1
  166. package/assets/sass/components/address-lookup.component.scss +1 -0
  167. package/assets/sass/components/menu.component.scss +7 -5
  168. package/assets/sass/components/popover.component.scss +28 -0
  169. package/assets/sass/components/table-basic.global.scss +5 -7
  170. package/assets/sass/components/tooltip.component.scss +120 -0
  171. package/assets/sass/elements/buttons--special.scss +45 -0
  172. package/assets/sass/elements/buttons.scss +6 -0
  173. package/assets/sass/elements/dialog.scss +8 -7
  174. package/assets/sass/elements/feature.scss +53 -0
  175. package/assets/sass/elements/forms.scss +10 -187
  176. package/assets/sass/elements/input.scss +177 -0
  177. package/assets/sass/elements/links.scss +7 -1
  178. package/assets/sass/elements/popover.scss +3 -2
  179. package/assets/ts/components/darkmode/darkmode.component.ts +6 -2
  180. package/assets/ts/components/input/input.component.ts +109 -1
  181. package/assets/ts/components/menu/menu.component.ts +1 -0
  182. package/assets/ts/components/popover/popover.component.ts +50 -0
  183. package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +1 -1
  184. package/assets/ts/components/table-basic/table-basic.component.ts +1 -1
  185. package/assets/ts/components/tooltip/tooltip.component.ts +98 -0
  186. package/assets/ts/modules/advanced-select.ts +8 -0
  187. package/assets/ts/modules/applied-filters.ts +12 -1
  188. package/assets/ts/modules/table.ts +15 -161
  189. package/dist/components.es.js +493 -563
  190. package/dist/components.umd.js +224 -201
  191. package/package.json +5 -5
  192. package/src/components/Filterlist/Filterlist.vue +0 -12
  193. package/src/components/Popover/Popover.vue +22 -0
  194. package/src/components/Tooltip/Tooltip.vue +22 -0
@@ -0,0 +1,120 @@
1
+ @use '../_func.scss' as *;
2
+
3
+ *,
4
+ *::before,
5
+ *::after {
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ @layer components {
10
+
11
+ :host {
12
+ display: inline;
13
+ position: relative;
14
+ text-decoration: underline;
15
+ text-decoration-style: dashed;
16
+ text-underline-offset: 0.2em;
17
+ overflow-anchor: none;
18
+ cursor: pointer;
19
+ }
20
+
21
+ .tooltip__anchor {
22
+
23
+ anchor-name: --anchor;
24
+ position: absolute;
25
+ display: block;
26
+ inset: 0;
27
+ height: 100%;
28
+ width: 100%;
29
+ min-width: 1rem;
30
+ left: auto;
31
+ right: 0;
32
+ }
33
+
34
+ :host(:empty) .tooltip__anchor{
35
+
36
+ height: 1rem;
37
+ width: 1rem;
38
+ }
39
+
40
+ :host(:empty) .tooltip__anchor:after {
41
+ font-family: "Font Awesome 6 Pro";
42
+ font-weight: 900;
43
+ content: "\f059";
44
+ display: block;
45
+ margin: 0;
46
+ line-height: 1;
47
+ color: var(--colour-primary);
48
+ position: absolute;
49
+ top: 50%;
50
+ left: 50%;
51
+ translate: -50% -50%;
52
+ }
53
+
54
+ .tooltip__content {
55
+ position: fixed;
56
+ position-anchor: --anchor;
57
+ position-area: center end;
58
+ position-try-fallbacks: bottom span-all, top span-all, start;
59
+
60
+ container-type: anchored;
61
+ max-width: #{rem(270)};
62
+ background: var(--colour-primary);
63
+ color: var(--colour-white);
64
+ padding: rem(24);
65
+ border: none;
66
+ border-radius: 0.5rem;
67
+ box-shadow: 0px 2px 9px rgba(0, 0, 0, 0.11);
68
+ margin: 0.75rem;
69
+ overflow: visible;
70
+
71
+ > strong:first-child {
72
+ display: block;
73
+ padding-bottom: 1rem;
74
+ color: inherit;
75
+ }
76
+
77
+ @include media-breakpoint-up(sm, $mobileOnly) {
78
+ max-width: #{rem(335)};
79
+ }
80
+
81
+ @include media-breakpoint-up(md, $mobileOnly) {
82
+ max-width: #{rem(360)};
83
+ }
84
+
85
+ &::after {
86
+ content: '';
87
+ position: absolute;
88
+ bottom: 50%;
89
+ left: -0.45rem;
90
+ transform: translate(-50%, 0);
91
+ border-width: 0.5rem;
92
+ border-style: solid;
93
+ border-color: transparent var(--colour-primary) transparent transparent;
94
+ margin-bottom: -0.5rem;
95
+
96
+ @container anchored(fallback: top span-all) {
97
+
98
+ left: 50%;
99
+ bottom: auto;
100
+ top: 100%;
101
+ border-color: var(--colour-primary) transparent transparent transparent;
102
+ margin-bottom: -1px;
103
+ }
104
+
105
+ @container anchored(fallback: bottom span-all) {
106
+
107
+ top: auto;
108
+ bottom: 100%;
109
+ left: 50%;
110
+ border-color: transparent transparent var(--colour-primary) transparent;
111
+ margin-bottom: -1px;
112
+ }
113
+
114
+ @container anchored(fallback: start) {
115
+
116
+ display: none;
117
+ }
118
+ }
119
+ }
120
+ }
@@ -0,0 +1,45 @@
1
+ @use '../_func' as *;
2
+
3
+ $layers: 'true' !default;
4
+ $mobileOnly: 'false' !default;
5
+ $darkMode: 'true' !default;
6
+
7
+
8
+ // #region btn compact
9
+ .btn[popovertarget] {
10
+
11
+ position: relative;
12
+ anchor-name: --button2;
13
+
14
+ > .fa-chevron-down {
15
+ display: none;
16
+ }
17
+
18
+ &:after {
19
+ content: '';
20
+
21
+ display: inline-block;
22
+ margin-left: 1em;
23
+
24
+ height: 0.8em;
25
+ width: 0.8em;
26
+ z-index: var(--index-focus);
27
+ background: currentColor;
28
+ mask-image: var(--icon-arrow);
29
+ mask-size: 100%;
30
+ mask-repeat: no-repeat;
31
+ mask-position: 50% 50%;
32
+ -webkit-mask-image: var(--icon-arrow);
33
+ -webkit-mask-size: 100%;
34
+ -webkit-mask-repeat: no-repeat;
35
+ -webkit-mask-position: 50% 50%;
36
+
37
+ transform: rotate(90deg);
38
+ }
39
+
40
+ &[aria-pressed]:after {
41
+ transform: rotate(270deg);
42
+ }
43
+ }
44
+
45
+ // #endregion
@@ -29,3 +29,9 @@ $darkMode: 'true' !default;
29
29
  $darkMode: $darkMode,
30
30
  $mobileOnly: $mobileOnly
31
31
  );
32
+
33
+ @use './buttons--special.scss' with (
34
+ $layers: $layers,
35
+ $darkMode: $darkMode,
36
+ $mobileOnly: $mobileOnly
37
+ );
@@ -12,7 +12,8 @@ $darkMode: 'true' !default;
12
12
  }
13
13
 
14
14
  // #region Default styling of both modals
15
- dialog {
15
+ dialog,
16
+ [popover] {
16
17
  --dialog-padding: #{rem(24)};
17
18
 
18
19
  --mh-padding-inline: var(--dialog-padding);
@@ -42,13 +43,15 @@ $darkMode: 'true' !default;
42
43
  overscroll-behavior: contain;
43
44
  }
44
45
 
45
- dialog[open] {
46
+ dialog[open],
47
+ [popover]:popover-open {
46
48
  display: flex;
47
49
  flex-direction: column;
48
50
  }
49
51
 
50
52
  // TODO: when the old modals are depreciated this selector can be simplified
51
- *:not(.dialog__wrapper) > dialog[open]:not([popover]) {
53
+ *:not(.dialog__wrapper) > dialog[open],
54
+ *:not(.dialog__wrapper) > [popover]:popover-open {
52
55
 
53
56
  overflow-y: auto;
54
57
  width: 90vw;
@@ -59,8 +62,8 @@ $darkMode: 'true' !default;
59
62
  overscroll-behavior: contain;
60
63
 
61
64
  @include media-breakpoint-up(sm, $mobileOnly) {
62
- --dialog-padding: #{rem(32)};
63
- padding: var(--dialog-padding);
65
+ //--dialog-padding: #{rem(32)};
66
+ //padding: var(--dialog-padding);
64
67
  min-width: rem(335);
65
68
  width: fit-content;
66
69
  max-width: rem(686);
@@ -75,11 +78,9 @@ $darkMode: 'true' !default;
75
78
  }
76
79
  // #endregion
77
80
 
78
-
79
81
  details.bg-light {
80
82
  margin-inline: calc(var(--dialog-padding) * -1);
81
83
  padding-inline: var(--dialog-padding);
82
84
  }
83
85
 
84
86
  }
85
-
@@ -0,0 +1,53 @@
1
+ @use '../_func' as *;
2
+
3
+ $layers: 'true' !default;
4
+ $mobileOnly: 'false' !default;
5
+ $darkMode: 'true' !default;
6
+
7
+ @include layer('elements', $layers) {
8
+
9
+
10
+ .feature {
11
+
12
+ background-color: var(--colour-canvas-2);
13
+ border: 1px solid var(--colour-border);
14
+ border-radius: 0.5rem;
15
+ padding: 1rem 1rem 1rem 1rem;
16
+
17
+ strong {
18
+ display: block;
19
+ padding-bottom: 0.2em;
20
+ }
21
+ }
22
+
23
+ .feature[class*="fa-"] {
24
+
25
+ padding-left: 4rem;
26
+ position: relative;
27
+
28
+ &:before {
29
+ position: absolute;
30
+ inset: 1rem;
31
+ content: var(--fa);
32
+ font-family: "Font Awesome 6 Pro";
33
+ display: block;
34
+
35
+ background-color: var(--colour-success);
36
+ border-radius: 50%;
37
+ padding: 0;
38
+ height: 2rem;
39
+ line-height: 2rem;
40
+ width: 2rem;
41
+ text-align: center;
42
+ }
43
+ }
44
+
45
+ .feature[class*="fa-rocket"] {
46
+
47
+ &:before {
48
+
49
+ padding-right: 0.1rem;
50
+ }
51
+ }
52
+
53
+ }
@@ -3,6 +3,9 @@
3
3
 
4
4
  @use '../_func' as *;
5
5
 
6
+ @use './input' as *;
7
+
8
+
6
9
  $icon-error: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d='M256 32a224 224 0 1 1 0 448 224 224 0 1 1 0-448zm0 480A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c-8.8 0-16 7.2-16 16V272c0 8.8 7.2 16 16 16s16-7.2 16-16V144c0-8.8-7.2-16-16-16zm24 224a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z' fill='#dc3545'/></svg>");
7
10
 
8
11
  $icon-tick: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'><!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d='M441 103c9.4 9.4 9.4 24.6 0 33.9L177 401c-9.4 9.4-24.6 9.4-33.9 0L7 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l119 119L407 103c9.4-9.4 24.6-9.4 33.9 0z' fill='#0f9d58' /></svg>");
@@ -20,8 +23,6 @@ $optionalText: 'true' !default;
20
23
  }
21
24
 
22
25
  // 1. Remove the margin in Firefox and Safari
23
-
24
- input,
25
26
  select,
26
27
  optgroup,
27
28
  textarea {
@@ -50,26 +51,7 @@ $optionalText: 'true' !default;
50
51
  }
51
52
  }
52
53
 
53
- // Remove the dropdown arrow only from text type inputs built with datalists in Chrome.
54
- // See https://stackoverflow.com/a/54997118
55
-
56
- [list]:not([type='date']):not([type='datetime-local']):not([type='month']):not([type='week']):not(
57
- [type='time']
58
- )::-webkit-calendar-picker-indicator {
59
- display: none !important;
60
- }
61
-
62
- // 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
63
- // controls in Android 4.
64
- // 2. Correct the inability to style clickable types in iOS and Safari.
65
- // 3. Opinionated: add "hand" cursor to non-disabled button elements.
66
-
67
- // Remove inner border and padding from Firefox, but don't restore the outline like Normalize.
68
-
69
- ::-moz-focus-inner {
70
- padding: 0;
71
- border-style: none;
72
- }
54
+
73
55
 
74
56
  // 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.
75
57
 
@@ -91,97 +73,6 @@ $optionalText: 'true' !default;
91
73
  border: 0; // 2
92
74
  }
93
75
 
94
- // 1. By using `float: left`, the legend will behave like a block element.
95
- // This way the border of a fieldset wraps around the legend if present.
96
- // 2. Fix wrapping bug.
97
- // See https://github.com/twbs/bootstrap/issues/29712
98
-
99
- legend {
100
- float: left; // 1
101
- width: 100%;
102
- padding: 0;
103
- margin-bottom: $legend-margin-bottom;
104
- @include font-size($legend-font-size);
105
- font-weight: $legend-font-weight;
106
- line-height: inherit;
107
-
108
- + * {
109
- clear: left; // 2
110
- }
111
- }
112
-
113
- // Fix height of inputs with a type of datetime-local, date, month, week, or time
114
- // See https://github.com/twbs/bootstrap/issues/18842
115
-
116
- ::-webkit-datetime-edit-fields-wrapper,
117
- ::-webkit-datetime-edit-text,
118
- ::-webkit-datetime-edit-minute,
119
- ::-webkit-datetime-edit-hour-field,
120
- ::-webkit-datetime-edit-day-field,
121
- ::-webkit-datetime-edit-month-field,
122
- ::-webkit-datetime-edit-year-field {
123
- padding: 0;
124
- }
125
-
126
- ::-webkit-inner-spin-button {
127
- height: auto;
128
- }
129
-
130
- // 1. Correct the outline style in Safari.
131
- // 2. This overrides the extra rounded corners on search inputs in iOS so that our
132
- // `.form-control` class can properly style them. Note that this cannot simply
133
- // be added to `.form-control` as it's not specific enough. For details, see
134
- // https://github.com/twbs/bootstrap/issues/11586.
135
-
136
- [type='search'] {
137
- outline-offset: -2px; // 1
138
- -webkit-appearance: textfield; // 2
139
- }
140
-
141
- // 1. A few input types should stay LTR
142
- // See https://rtlstyling.com/posts/rtl-styling#form-inputs
143
- // 2. RTL only output
144
- // See https://rtlcss.com/learn/usage-guide/control-directives/#raw
145
-
146
- /* rtl:raw:
147
- [type="tel"],
148
- [type="url"],
149
- [type="email"],
150
- [type="number"] {
151
- direction: ltr;
152
- }
153
- */
154
-
155
- // Remove the inner padding in Chrome and Safari on macOS.
156
-
157
- ::-webkit-search-decoration {
158
- -webkit-appearance: none;
159
- }
160
-
161
- // Remove padding around color pickers in webkit browsers
162
-
163
- ::-webkit-color-swatch-wrapper {
164
- padding: 0;
165
- }
166
-
167
- ::-moz-color-swatch {
168
- border-radius: 0;
169
- border: none;
170
- }
171
-
172
- ::-webkit-color-swatch {
173
- border-radius: 0;
174
- border: none;
175
- }
176
-
177
- // 1. Inherit font family and line height for file input buttons
178
- // 2. Correct the inability to style clickable types in iOS and Safari.
179
-
180
- ::file-selector-button {
181
- font: inherit; // 1
182
- -webkit-appearance: button; // 2
183
- }
184
-
185
76
  // Correct element displays
186
77
 
187
78
  output {
@@ -232,73 +123,13 @@ $optionalText: 'true' !default;
232
123
 
233
124
  // #region input field
234
125
  :is(
235
- input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range']),
236
- textarea,
237
- output,
238
126
  select:not(.select--minimal, .btn)
239
127
  ) {
240
- display: block;
241
- width: 100%;
242
- display: block;
243
- width: 100%;
244
- padding: var(--input-padding-block, #{rem(12)}) var(--input-padding-inline, #{rem(16)});
245
- font-size: var(--input-fs, #{rem(16)});
246
- line-height: var(--input-lh, #{rem(20)});
247
- color: var(--colour-heading);
248
- background-color: var(--colour-canvas-2);
249
- background-clip: padding-box;
250
- border: 2px solid var(--colour-primary);
251
- appearance: none; // Fix appearance for date inputs in Safari
252
- border-radius: rem(8);
253
- margin-bottom: rem(24);
254
- min-height: calc(
255
- var(--input-padding-block, #{rem(12)}) + var(--input-padding-block, #{rem(12)}) + var(--input-lh, #{rem(20)}) +
256
- 4px
257
- );
258
- max-height: calc(
259
- var(--input-padding-block, #{rem(12)}) + var(--input-padding-block, #{rem(12)}) + var(--input-lh, #{rem(20)}) +
260
- 4px
261
- );
262
-
263
- &:is(textarea) {
264
- max-height: 100%;
265
- }
266
-
267
- // Customize the `:focus` state to imitate native WebKit styles.
268
- &:is(:focus, .focus):not(:disabled) {
269
- border-color: var(--colour-info);
270
- outline: 0;
271
- }
272
-
273
- &:is(:focus, .focus):not(:disabled):not(:invalid) {
274
- box-shadow: 0 0 0 0.1rem rgba(30, 190, 230, 0.25);
275
- }
276
- // Add some height to date inputs on iOS
277
- // https://github.com/twbs/bootstrap/issues/23307
278
- // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved
279
- &::-webkit-date-and-time-value {
280
- // Multiply line-height by 1em if it has no unit
281
- height: if(math.unit($input-line-height) == '', $input-line-height * 1em, $input-line-height);
282
- }
283
-
284
- // Disabled inputs
285
- &:disabled {
286
- background-color: #ccd6d8;
287
- opacity: 0.4;
288
- cursor: not-allowed;
289
- }
128
+
129
+ @include input();
290
130
  }
291
131
 
292
- input[type='color'] {
293
-
294
- padding: 0!important;
295
- max-width: 3rem!important;
296
- }
297
-
298
132
  [disabled] :is(
299
- input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range']),
300
- textarea,
301
- output,
302
133
  select:not(.select--minimal, .btn)
303
134
  ) {
304
135
  background-color: #ccd6d8;
@@ -312,18 +143,6 @@ $optionalText: 'true' !default;
312
143
  cursor: not-allowed;
313
144
  pointer-events: none;
314
145
  }
315
-
316
- :is(input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range'])) {
317
- max-width: $input-max-width;
318
- }
319
-
320
- textarea {
321
- --textarea-height-scale: 3;
322
- min-height: calc(
323
- var(--input-padding-block, #{rem(12)}) + var(--input-padding-block, #{rem(12)}) +
324
- (var(--input-lh, #{rem(20)}) * var(--textarea-height-scale)) + 4px
325
- ) !important;
326
- }
327
146
  // #endregion
328
147
 
329
148
  // #region legend
@@ -1221,6 +1040,10 @@ $optionalText: 'true' !default;
1221
1040
  }
1222
1041
  }
1223
1042
 
1043
+ &:has(input:is([name$="Alt"]):not([data-value],[data-placeholder])) .empty {
1044
+ display: none;
1045
+ }
1046
+
1224
1047
  label:after,
1225
1048
  .hint-text {
1226
1049
  position: absolute;
@@ -0,0 +1,177 @@
1
+ @use 'sass:map';
2
+ @use 'sass:math';
3
+
4
+ @use '../_func' as *;
5
+
6
+
7
+ @layer elements {
8
+
9
+ input {
10
+ margin: 0; // 1
11
+ font-family: inherit;
12
+ @include font-size(inherit);
13
+ line-height: inherit;
14
+ }
15
+
16
+ // Remove the dropdown arrow only from text type inputs built with datalists in Chrome.
17
+ // See https://stackoverflow.com/a/54997118
18
+
19
+ [list]:not([type='date']):not([type='datetime-local']):not([type='month']):not([type='week']):not(
20
+ [type='time']
21
+ )::-webkit-calendar-picker-indicator {
22
+ display: none !important;
23
+ }
24
+
25
+ // 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
26
+ // controls in Android 4.
27
+ // 2. Correct the inability to style clickable types in iOS and Safari.
28
+ // 3. Opinionated: add "hand" cursor to non-disabled button elements.
29
+
30
+ // Remove inner border and padding from Firefox, but don't restore the outline like Normalize.
31
+
32
+ ::-moz-focus-inner {
33
+ padding: 0;
34
+ border-style: none;
35
+ }
36
+
37
+ // 1. By using `float: left`, the legend will behave like a block element.
38
+ // This way the border of a fieldset wraps around the legend if present.
39
+ // 2. Fix wrapping bug.
40
+ // See https://github.com/twbs/bootstrap/issues/29712
41
+
42
+ legend {
43
+ float: left; // 1
44
+ width: 100%;
45
+ padding: 0;
46
+ margin-bottom: $legend-margin-bottom;
47
+ @include font-size($legend-font-size);
48
+ font-weight: $legend-font-weight;
49
+ line-height: inherit;
50
+
51
+ + * {
52
+ clear: left; // 2
53
+ }
54
+ }
55
+
56
+ // Fix height of inputs with a type of datetime-local, date, month, week, or time
57
+ // See https://github.com/twbs/bootstrap/issues/18842
58
+
59
+ ::-webkit-datetime-edit-fields-wrapper,
60
+ ::-webkit-datetime-edit-text,
61
+ ::-webkit-datetime-edit-minute,
62
+ ::-webkit-datetime-edit-hour-field,
63
+ ::-webkit-datetime-edit-day-field,
64
+ ::-webkit-datetime-edit-month-field,
65
+ ::-webkit-datetime-edit-year-field {
66
+ padding: 0;
67
+ }
68
+
69
+ ::-webkit-inner-spin-button {
70
+ height: auto;
71
+ }
72
+
73
+ // 1. Correct the outline style in Safari.
74
+ // 2. This overrides the extra rounded corners on search inputs in iOS so that our
75
+ // `.form-control` class can properly style them. Note that this cannot simply
76
+ // be added to `.form-control` as it's not specific enough. For details, see
77
+ // https://github.com/twbs/bootstrap/issues/11586.
78
+
79
+ [type='search'] {
80
+ outline-offset: -2px; // 1
81
+ -webkit-appearance: textfield; // 2
82
+ }
83
+
84
+ // 1. A few input types should stay LTR
85
+ // See https://rtlstyling.com/posts/rtl-styling#form-inputs
86
+ // 2. RTL only output
87
+ // See https://rtlcss.com/learn/usage-guide/control-directives/#raw
88
+
89
+ /* rtl:raw:
90
+ [type="tel"],
91
+ [type="url"],
92
+ [type="email"],
93
+ [type="number"] {
94
+ direction: ltr;
95
+ }
96
+ */
97
+
98
+ // Remove the inner padding in Chrome and Safari on macOS.
99
+
100
+ ::-webkit-search-decoration {
101
+ -webkit-appearance: none;
102
+ }
103
+
104
+ // Remove padding around color pickers in webkit browsers
105
+
106
+ ::-webkit-color-swatch-wrapper {
107
+ padding: 0;
108
+ }
109
+
110
+ ::-moz-color-swatch {
111
+ border-radius: 0;
112
+ border: none;
113
+ }
114
+
115
+ ::-webkit-color-swatch {
116
+ border-radius: 0;
117
+ border: none;
118
+ }
119
+
120
+ // 1. Inherit font family and line height for file input buttons
121
+ // 2. Correct the inability to style clickable types in iOS and Safari.
122
+
123
+ ::file-selector-button {
124
+ font: inherit; // 1
125
+ -webkit-appearance: button; // 2
126
+ }
127
+
128
+
129
+
130
+
131
+ // #region input field
132
+ :is(
133
+ input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range']),
134
+ textarea,
135
+ output
136
+ ) {
137
+ @include input();
138
+ }
139
+
140
+ input[type='color'] {
141
+
142
+ padding: 0!important;
143
+ max-width: 3rem!important;
144
+ }
145
+
146
+ [disabled] :is(
147
+ input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range']),
148
+ textarea,
149
+ output,
150
+ select:not(.select--minimal, .btn)
151
+ ) {
152
+ background-color: #ccd6d8;
153
+ opacity: 0.4;
154
+ cursor: not-allowed;
155
+ pointer-events: none;
156
+ }
157
+
158
+ [disabled] label {
159
+
160
+ cursor: not-allowed;
161
+ pointer-events: none;
162
+ }
163
+
164
+ :is(input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range'])) {
165
+ max-width: $input-max-width;
166
+ }
167
+
168
+ textarea {
169
+ --textarea-height-scale: 3;
170
+ min-height: calc(
171
+ var(--input-padding-block, #{rem(12)}) + var(--input-padding-block, #{rem(12)}) +
172
+ (var(--input-lh, #{rem(20)}) * var(--textarea-height-scale)) + 4px
173
+ ) !important;
174
+ }
175
+ // #endregion
176
+
177
+ }