@undrr/undrr-mangrove 1.8.2 → 2.0.0-alpha.2

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 (145) hide show
  1. package/components/BookCard.js +2 -2
  2. package/components/BookCard.js.LICENSE.txt +1 -1
  3. package/components/Breadcrumbs.js +3 -2
  4. package/components/Checkbox.js +3 -2
  5. package/components/Chips.js +3 -2
  6. package/components/CtaButton.js +3 -2
  7. package/components/EmbedContainer.js +3 -2
  8. package/components/Footer.js +2 -2
  9. package/components/Footer.js.LICENSE.txt +1 -1
  10. package/components/FormAction.js +6 -0
  11. package/components/FormAction.js.LICENSE.txt +9 -0
  12. package/components/FormErrorSummary.js +3 -2
  13. package/components/FormGroup.js +3 -2
  14. package/components/FullWidth.js +3 -2
  15. package/components/Gallery.js +2 -2
  16. package/components/Gallery.js.LICENSE.txt +1 -1
  17. package/components/Hero.js +2 -2
  18. package/components/Hero.js.LICENSE.txt +1 -1
  19. package/components/HighlightBox.js +3 -2
  20. package/components/HorizontalBookCard.js +2 -2
  21. package/components/HorizontalBookCard.js.LICENSE.txt +1 -1
  22. package/components/HorizontalCard.js +2 -2
  23. package/components/HorizontalCard.js.LICENSE.txt +1 -1
  24. package/components/IconCard.js +2 -2
  25. package/components/IconCard.js.LICENSE.txt +1 -1
  26. package/components/Loader.js +3 -2
  27. package/components/MegaMenu.js +2 -2
  28. package/components/MegaMenu.js.LICENSE.txt +1 -1
  29. package/components/PageHeader.js +3 -2
  30. package/components/Pager.js +2 -2
  31. package/components/Pager.js.LICENSE.txt +1 -1
  32. package/components/QuoteHighlight.js +3 -2
  33. package/components/Radio.js +3 -2
  34. package/components/ScrollContainer.js +3 -2
  35. package/components/Select.js +3 -2
  36. package/components/ShareButtons.js +2 -2
  37. package/components/ShareButtons.js.LICENSE.txt +1 -1
  38. package/components/ShowMore.js +3 -2
  39. package/components/StatsCard.js +2 -2
  40. package/components/StatsCard.js.LICENSE.txt +10 -0
  41. package/components/SyndicationSearchWidget.js +2 -2
  42. package/components/SyndicationSearchWidget.js.LICENSE.txt +1 -1
  43. package/components/Tab.js +3 -2
  44. package/components/TextCta.js +2 -2
  45. package/components/TextCta.js.LICENSE.txt +10 -0
  46. package/components/TextInput.js +3 -2
  47. package/components/Textarea.js +3 -2
  48. package/components/UserFeedback.js +6 -0
  49. package/components/UserFeedback.js.LICENSE.txt +9 -0
  50. package/components/VerticalCard.js +2 -2
  51. package/components/VerticalCard.js.LICENSE.txt +1 -1
  52. package/components/hydrate.js +1 -1
  53. package/css/style-all.css +422 -0
  54. package/css/style-all.css.map +1 -0
  55. package/css/style-delta.css +122 -171
  56. package/css/style-delta.css.map +1 -1
  57. package/css/style-gutenberg.css +55 -89
  58. package/css/style-gutenberg.css.map +1 -1
  59. package/css/style-irp.css +122 -161
  60. package/css/style-irp.css.map +1 -1
  61. package/css/style-mcr.css +122 -161
  62. package/css/style-mcr.css.map +1 -1
  63. package/css/style-preventionweb.css +122 -161
  64. package/css/style-preventionweb.css.map +1 -1
  65. package/css/style.css +121 -154
  66. package/css/style.css.map +1 -1
  67. package/package.json +2 -2
  68. package/scss/Atom/BaseTypography/Abbr/abbr.scss +1 -1
  69. package/scss/Atom/BaseTypography/Code/code.scss +41 -36
  70. package/scss/Atom/BaseTypography/Mark/mark.scss +2 -2
  71. package/scss/Atom/Images/AuthorImage/author-image.scss +8 -8
  72. package/scss/Atom/Images/ImageCaptionCredit/image-caption-credit.scss +9 -9
  73. package/scss/Atom/Layout/Container/container.scss +2 -4
  74. package/scss/Atom/Layout/Grid/grid.scss +15 -15
  75. package/scss/Atom/Navigation/MenuItems/menu-items.scss +10 -3
  76. package/scss/Atom/ReachElement/Details/details.scss +44 -39
  77. package/scss/Atom/Table/table.scss +22 -10
  78. package/scss/Atom/Tag/tag.scss +32 -32
  79. package/scss/Components/Boilerplate/boilerplate.scss +7 -7
  80. package/scss/Components/Breadcrumbs/breadcrumbs.scss +9 -9
  81. package/scss/Components/Buttons/Chips/chips.scss +63 -23
  82. package/scss/Components/Buttons/CtaButton/cta-button.scss +142 -20
  83. package/scss/Components/Buttons/ShareButtons/share-buttons.scss +16 -16
  84. package/scss/Components/Cards/Card/card.scss +77 -50
  85. package/scss/Components/Cards/StatsCard/stats-card.scss +32 -34
  86. package/scss/Components/CookieConsentBanner/cookie-consent-banner.scss +75 -74
  87. package/scss/Components/ErrorPages/error-pages.scss +9 -9
  88. package/scss/Components/Footer/footer.scss +12 -12
  89. package/scss/Components/Forms/FormAction/form-action.scss +50 -0
  90. package/scss/Components/Forms/FormGroup/form-group.scss +18 -7
  91. package/scss/Components/Forms/Select/select.scss +1 -1
  92. package/scss/Components/Forms/TextInput/text-input.scss +1 -1
  93. package/scss/Components/Forms/_form-base.scss +68 -61
  94. package/scss/Components/Gallery/gallery.scss +71 -70
  95. package/scss/Components/Hero/hero.scss +241 -74
  96. package/scss/Components/HighlightBox/highlight-box.scss +3 -3
  97. package/scss/Components/MegaMenu/mega-menu.scss +73 -76
  98. package/scss/Components/OnThisPageNav/on-this-page-nav.scss +36 -37
  99. package/scss/Components/PageHeader/page-header.scss +7 -7
  100. package/scss/Components/Pager/pager.scss +85 -62
  101. package/scss/Components/PreviewAccess/preview-access.scss +35 -35
  102. package/scss/Components/QuoteHighlight/quote-highlight.scss +32 -32
  103. package/scss/Components/ScrollContainer/scroll-container.scss +52 -32
  104. package/scss/Components/Snackbar/snackbar.scss +24 -31
  105. package/scss/Components/SyndicationSearchWidget/syndication-search-widget.scss +147 -139
  106. package/scss/Components/Tab/tab.scss +215 -34
  107. package/scss/Components/TableOfContents/table-of-contents.scss +6 -6
  108. package/scss/Components/TextCta/text-cta.scss +69 -23
  109. package/scss/Components/UserFeedback/user-feedback.scss +69 -0
  110. package/scss/Molecules/ImageCaption/image-caption.scss +16 -16
  111. package/scss/Molecules/SectionHeader/section-header.scss +1 -1
  112. package/scss/Utilities/FullWidth/full-width.scss +1 -1
  113. package/scss/Utilities/Loader/loader.scss +4 -4
  114. package/scss/assets/scss/_components.scss +3 -2
  115. package/scss/assets/scss/_foundational.scss +44 -26
  116. package/scss/assets/scss/_mixins.scss +34 -1
  117. package/scss/assets/scss/_theme-delta.scss +68 -0
  118. package/scss/assets/scss/_theme-irp.scss +39 -0
  119. package/scss/assets/scss/_theme-mcr.scss +56 -0
  120. package/scss/assets/scss/_theme-preventionweb.scss +37 -0
  121. package/scss/assets/scss/_utility.scss +112 -112
  122. package/scss/assets/scss/_variables.scss +358 -354
  123. package/scss/assets/scss/style-all.scss +19 -0
  124. package/scss/assets/scss/style-delta.scss +1 -1
  125. package/scss/assets/scss/style-irp.scss +1 -1
  126. package/scss/assets/scss/style-mcr.scss +1 -1
  127. package/scss/assets/scss/style-preventionweb.scss +1 -1
  128. package/css/style-irp-legacy.css +0 -476
  129. package/css/style-irp-legacy.css.map +0 -1
  130. package/css/style-legacy.css +0 -469
  131. package/css/style-legacy.css.map +0 -1
  132. package/css/style-mcr-legacy.css +0 -476
  133. package/css/style-mcr-legacy.css.map +0 -1
  134. package/css/style-preventionweb-legacy.css +0 -476
  135. package/css/style-preventionweb-legacy.css.map +0 -1
  136. package/scss/Components/Forms/_form-legacy.scss +0 -152
  137. package/scss/Components/Pagination/pagination.scss +0 -112
  138. package/scss/assets/scss/_variables-delta.scss +0 -110
  139. package/scss/assets/scss/_variables-irp.scss +0 -50
  140. package/scss/assets/scss/_variables-mcr.scss +0 -65
  141. package/scss/assets/scss/_variables-preventionweb.scss +0 -48
  142. package/scss/assets/scss/style-irp-legacy.scss +0 -20
  143. package/scss/assets/scss/style-legacy.scss +0 -20
  144. package/scss/assets/scss/style-mcr-legacy.scss +0 -20
  145. package/scss/assets/scss/style-preventionweb-legacy.scss +0 -20
@@ -13,48 +13,57 @@
13
13
  }
14
14
 
15
15
  &:has(.mg-scroll__nav) {
16
- margin-top: 40px;
16
+ margin-bottom: mg-rem(56);
17
17
  }
18
18
 
19
19
  &__nav {
20
20
  position: absolute;
21
21
 
22
22
  // TODO: Review this and ensure it works across all containers
23
- top: -40px;
24
- right: 0;
23
+ bottom: mg-rem(-48);
24
+ inset-inline-end: 0;
25
25
  display: flex;
26
- gap: $mg-spacing-50;
26
+ gap: var(--mg-spacing-50);
27
27
  z-index: 1; // scroll nav above container content — local to scroll-container stacking context
28
28
 
29
29
  &-button {
30
- width: $mg-spacing-300;
31
- height: $mg-spacing-300;
30
+ width: mg-rem(44);
31
+ height: mg-rem(44);
32
32
  border: none;
33
- border-radius: 4px;
34
- background: $mg-color-neutral-700;
35
- color: $mg-color-white;
33
+ border-radius: 50%;
34
+ background: rgb(var(--mg-color-interactive) / 0.06);
35
+ color: rgb(var(--mg-color-interactive));
36
36
  font-size: $mg-font-size-300;
37
37
  cursor: pointer;
38
38
  display: flex;
39
39
  align-items: center;
40
40
  justify-content: center;
41
41
 
42
- @include transition(background-color 0.2s, opacity 0.2s);
42
+ @media (prefers-reduced-motion: no-preference) {
43
+ transition:
44
+ background-color var(--mg-motion-duration-fast)
45
+ var(--mg-motion-easing-standard),
46
+ color var(--mg-motion-duration-fast) var(--mg-motion-easing-standard),
47
+ scale var(--mg-motion-duration-fast) var(--mg-motion-easing-standard);
48
+ }
43
49
 
44
50
  &:hover {
45
- background: $mg-color-neutral-600;
51
+ background: rgb(var(--mg-color-interactive));
52
+ color: rgb(var(--mg-color-neutral-0));
53
+ }
54
+
55
+ &:focus-visible {
56
+ @include mg-focus-ring;
46
57
  }
47
58
 
48
- &:focus {
49
- outline: none;
50
- box-shadow:
51
- 0 0 0 2px $mg-color-white,
52
- 0 0 0 4px $mg-color-neutral-700;
59
+ &:active {
60
+ scale: 0.96;
53
61
  }
54
62
 
55
63
  &:disabled {
56
- background: $mg-color-neutral-300;
57
- cursor: not-allowed;
64
+ background: rgb(var(--mg-color-interactive) / 0.03);
65
+ color: rgb(var(--mg-color-neutral-500));
66
+ cursor: default;
58
67
  }
59
68
  }
60
69
  }
@@ -62,18 +71,20 @@
62
71
  &__container {
63
72
  display: block;
64
73
  overflow-x: auto;
65
- overflow-y: auto;
74
+ overflow-y: hidden;
66
75
  width: 100%;
67
76
  max-width: 100%;
68
77
  max-height: inherit;
69
78
  position: relative;
70
79
  cursor: grab;
80
+ scroll-snap-type: inline proximity;
71
81
  -webkit-overflow-scrolling: touch;
72
82
 
73
83
  // TODO: Review - do we need it
74
84
  // Firefox scrollbar styling
75
85
  scrollbar-width: thin;
76
- scrollbar-color: $mg-color-neutral-500 $mg-color-neutral-100;
86
+ scrollbar-color: rgb(var(--mg-color-neutral-500))
87
+ rgb(var(--mg-color-neutral-100));
77
88
 
78
89
  @include devicebreak(small) {
79
90
  height: auto;
@@ -93,20 +104,20 @@
93
104
 
94
105
  // Custom scrollbar styling
95
106
  &::-webkit-scrollbar {
96
- height: $mg-spacing-50;
107
+ height: var(--mg-spacing-50);
97
108
  }
98
109
 
99
110
  &::-webkit-scrollbar-track {
100
- background: $mg-color-neutral-100;
101
- border-radius: 4px;
111
+ background: rgb(var(--mg-color-neutral-100));
112
+ border-radius: var(--mg-radius-form-input);
102
113
  }
103
114
 
104
115
  &::-webkit-scrollbar-thumb {
105
- background: $mg-color-neutral-500;
106
- border-radius: 4px;
116
+ background: rgb(var(--mg-color-neutral-500));
117
+ border-radius: var(--mg-radius-form-input);
107
118
 
108
119
  &:hover {
109
- background: $mg-color-neutral-600;
120
+ background: rgb(var(--mg-color-neutral-600));
110
121
  }
111
122
  }
112
123
 
@@ -139,30 +150,39 @@
139
150
  align-items: flex-start;
140
151
  display: flex;
141
152
  flex-wrap: nowrap;
153
+ gap: var(--mg-spacing-150);
142
154
  height: auto;
143
155
 
144
156
  @include devicebreak(small) {
145
- gap: $mg-spacing-100;
157
+ gap: var(--mg-spacing-100);
146
158
  height: auto;
147
159
  min-height: auto;
148
160
  }
149
161
  }
150
162
 
163
+ &__content--stretch {
164
+ align-items: stretch;
165
+
166
+ .mg-scroll__item-wrapper {
167
+ display: flex;
168
+
169
+ > * {
170
+ width: 100%;
171
+ }
172
+ }
173
+ }
174
+
151
175
  &__item-wrapper {
152
176
  width: var(--scroll-item-width, 300px);
153
177
  min-width: var(--scroll-item-width, 300px);
154
178
  flex-shrink: 0;
155
- margin-right: $mg-spacing-300;
156
179
  white-space: normal;
157
180
  overflow-wrap: break-word;
181
+ scroll-snap-align: start;
158
182
 
159
183
  @include devicebreak(small) {
160
184
  display: inline-block;
161
185
  vertical-align: top;
162
186
  }
163
-
164
- &:last-child {
165
- margin-right: 0;
166
- }
167
187
  }
168
188
  }
@@ -8,7 +8,7 @@
8
8
  justify-content: center;
9
9
  transform: translate(-50%, -300%);
10
10
  transition: transform 0.3s ease-in-out;
11
- z-index: $mg-z-index-toast; // above modals and all page chrome
11
+ z-index: var(--mg-z-index-toast); // above modals and all page chrome
12
12
  width: calc(100% - 32px); // Ensure it works on small screens
13
13
  max-width: 600px; // Limit width on large screens
14
14
 
@@ -25,24 +25,18 @@
25
25
  .mg-snackbar {
26
26
  display: flex;
27
27
  align-items: center;
28
- background-color: $mg-color-interactive;
29
- color: $mg-color-white;
30
- border-radius: $mg-radius-tab;
31
- padding: $mg-padding-button;
28
+ background-color: rgb(var(--mg-color-interactive));
29
+ color: rgb(var(--mg-color-white));
30
+ border-radius: var(--mg-radius-tab);
31
+ padding: var(--mg-padding-button);
32
32
  box-shadow: 0 0 10px rgb(0 0 0 / 0.2);
33
- fill: $mg-color-white;
33
+ fill: rgb(var(--mg-color-white));
34
34
  width: 100%;
35
35
 
36
- // Ensure appropriate color contrast for accessibility
37
- &__error {
38
- background-color: $mg-color-red-900;
39
- color: $mg-color-white; // Ensure text is readable
40
- }
41
-
42
36
  // severity - use colors with sufficient contrast ratio
43
37
  &__error {
44
- background-color: $mg-color-red-900;
45
- color: $mg-color-white;
38
+ background-color: rgb(var(--mg-color-red-900));
39
+ color: rgb(var(--mg-color-white));
46
40
  }
47
41
 
48
42
  &__warning {
@@ -51,28 +45,26 @@
51
45
  $lightness: -10%
52
46
  ); // Dark amber color for warning state
53
47
 
54
- color: $mg-color-white; // Use white text to be consistent with other severity types
48
+ color: rgb(
49
+ var(--mg-color-white)
50
+ ); // Use white text to be consistent with other severity types
55
51
  }
56
52
 
57
53
  &__info {
58
- background-color: $mg-color-interactive;
59
- color: $mg-color-white;
54
+ background-color: rgb(var(--mg-color-interactive));
55
+ color: rgb(var(--mg-color-white));
60
56
  }
61
57
 
62
58
  &__success {
63
- background-color: color.adjust(
64
- $mg-color-interactive,
65
- $lightness: -5%
66
- ); // Slightly darker for better distinction
67
-
68
- color: $mg-color-white;
59
+ background-color: #14527a; // Slightly darker for better distinction (blue-900 darkened 5% lightness)
60
+ color: rgb(var(--mg-color-white));
69
61
  }
70
62
 
71
63
  &__content {
72
64
  display: flex;
73
65
  align-items: center;
74
66
  justify-content: space-between;
75
- gap: $mg-spacing-100;
67
+ gap: var(--mg-spacing-100);
76
68
  width: 100%;
77
69
 
78
70
  @media (max-width: $mg-breakpoint-mobile) {
@@ -82,7 +74,7 @@
82
74
 
83
75
  // On mobile, make the close button span the full width
84
76
  .mg-button {
85
- margin-top: $mg-spacing-100;
77
+ margin-top: var(--mg-spacing-100);
86
78
  width: 100%;
87
79
  min-height: 44px; // Ensure touchable area is large enough
88
80
  }
@@ -90,7 +82,7 @@
90
82
  }
91
83
 
92
84
  &__message {
93
- margin-right: $mg-spacing-200;
85
+ margin-inline-end: var(--mg-spacing-200);
94
86
  flex: 1; // Allow message to take up available space
95
87
  overflow-wrap: break-word; // Prevent overflow of long words
96
88
  }
@@ -98,15 +90,16 @@
98
90
  // Make button larger on touch devices for better usability
99
91
  .mg-button {
100
92
  min-width: 88px;
101
- min-height: 36px;
102
- padding: $mg-spacing-50 $mg-spacing-150;
93
+ min-height: 44px;
94
+ padding: var(--mg-spacing-50) var(--mg-spacing-150);
103
95
  font-weight: bold;
104
96
  cursor: pointer;
105
- border-radius: 4px;
97
+ border-radius: var(--mg-radius-button);
106
98
  border: 1px solid rgb(255 255 255 / 0.5);
107
99
  background-color: rgb(255 255 255 / 0.1);
108
100
  color: inherit;
109
- transition: background-color 0.2s ease;
101
+ transition: background-color var(--mg-motion-duration-fast)
102
+ var(--mg-motion-easing-standard);
110
103
 
111
104
  &:hover {
112
105
  background-color: rgb(255 255 255 / 0.2);
@@ -117,7 +110,7 @@
117
110
  }
118
111
 
119
112
  &:focus-visible {
120
- outline: 2px solid $mg-color-white;
113
+ outline: 2px solid rgb(var(--mg-color-white));
121
114
  outline-offset: 2px;
122
115
  }
123
116