@progressiveui/styles 10.30.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 (265) hide show
  1. package/CHANGELOG.md +621 -0
  2. package/README.md +85 -0
  3. package/index-with-tokens.scss +26 -0
  4. package/index.scss +12 -0
  5. package/package.json +42 -0
  6. package/scss/_breakpoint.scss +2 -0
  7. package/scss/_config.scss +30 -0
  8. package/scss/_feature-flags.scss +1 -0
  9. package/scss/_font-face.scss +13 -0
  10. package/scss/_global-defaults.scss +14 -0
  11. package/scss/_grid.scss +32 -0
  12. package/scss/_motion.scss +67 -0
  13. package/scss/_reset.scss +172 -0
  14. package/scss/_spacing.scss +4 -0
  15. package/scss/_theme.scss +102 -0
  16. package/scss/_themes.scss +14 -0
  17. package/scss/_type.scss +143 -0
  18. package/scss/_zone.scss +26 -0
  19. package/scss/components/_index.scss +82 -0
  20. package/scss/components/accordion/_accordion.legacy.scss +348 -0
  21. package/scss/components/accordion/_accordion.scss +118 -0
  22. package/scss/components/accordion/_index.scss +4 -0
  23. package/scss/components/anchor-navigation/_anchor-navigation.scss +37 -0
  24. package/scss/components/anchor-navigation/_index.scss +4 -0
  25. package/scss/components/auth-layout/_auth-layout.scss +55 -0
  26. package/scss/components/auth-layout/_index.scss +11 -0
  27. package/scss/components/avatar/_avatar.scss +61 -0
  28. package/scss/components/avatar/_index.scss +4 -0
  29. package/scss/components/banner-navigation/_banner-navigation.scss +80 -0
  30. package/scss/components/banner-navigation/_index.scss +4 -0
  31. package/scss/components/blockquote/_blockquote.scss +156 -0
  32. package/scss/components/blockquote/_index.scss +4 -0
  33. package/scss/components/breadcrumb/_breadcrumb.scss +89 -0
  34. package/scss/components/breadcrumb/_index.scss +4 -0
  35. package/scss/components/button/_button.scss +520 -0
  36. package/scss/components/button/_index.scss +5 -0
  37. package/scss/components/button/_mixins.scss +92 -0
  38. package/scss/components/button/_vars.scss +69 -0
  39. package/scss/components/card/_card-external.scss +149 -0
  40. package/scss/components/card/_card.scss +138 -0
  41. package/scss/components/card/_index.scss +7 -0
  42. package/scss/components/checkbox/_checkbox.scss +195 -0
  43. package/scss/components/checkbox/_index.scss +11 -0
  44. package/scss/components/code-snippet/_code-snippet.scss +581 -0
  45. package/scss/components/code-snippet/_index.scss +11 -0
  46. package/scss/components/code-snippet/_mixins.scss +21 -0
  47. package/scss/components/col/_col.scss +54 -0
  48. package/scss/components/col/_index.scss +4 -0
  49. package/scss/components/combo-box/_combo-box.scss +45 -0
  50. package/scss/components/combo-box/_index.scss +11 -0
  51. package/scss/components/content-switcher/_content-switcher.scss +132 -0
  52. package/scss/components/content-switcher/_index.scss +11 -0
  53. package/scss/components/context-menu/_context-menu.scss +26 -0
  54. package/scss/components/context-menu/_index.scss +11 -0
  55. package/scss/components/credits/_credits.scss +30 -0
  56. package/scss/components/credits/_index.scss +11 -0
  57. package/scss/components/data-table/_data-table.scss +1005 -0
  58. package/scss/components/data-table/_index.scss +12 -0
  59. package/scss/components/data-table/_mixins.scss +38 -0
  60. package/scss/components/data-table/_vars.scss +13 -0
  61. package/scss/components/data-table/action/_data-table-action.scss +587 -0
  62. package/scss/components/data-table/action/_index.scss +11 -0
  63. package/scss/components/data-table/expandable/_data-table-expandable.scss +411 -0
  64. package/scss/components/data-table/expandable/_index.scss +11 -0
  65. package/scss/components/data-table/skeleton/_data-table-skeleton.scss +72 -0
  66. package/scss/components/data-table/skeleton/_index.scss +11 -0
  67. package/scss/components/data-table/sort/_data-table-sort.scss +245 -0
  68. package/scss/components/data-table/sort/_index.scss +11 -0
  69. package/scss/components/date-picker/_date-picker.scss +896 -0
  70. package/scss/components/date-picker/_flatpickr.scss +538 -0
  71. package/scss/components/date-picker/_index.scss +11 -0
  72. package/scss/components/date-picker-new/_date-picker-new.scss +100 -0
  73. package/scss/components/date-picker-new/_index.scss +4 -0
  74. package/scss/components/date-picker-new/react-datepicker/datepicker.scss +692 -0
  75. package/scss/components/date-picker-new/react-datepicker/mixins.scss +88 -0
  76. package/scss/components/date-picker-new/react-datepicker/variables.scss +20 -0
  77. package/scss/components/dropdown/_dropdown.scss +493 -0
  78. package/scss/components/dropdown/_index.scss +11 -0
  79. package/scss/components/empty/_empty.scss +105 -0
  80. package/scss/components/empty/_index.scss +11 -0
  81. package/scss/components/file-uploader/_file-uploader.scss +321 -0
  82. package/scss/components/file-uploader/_index.scss +11 -0
  83. package/scss/components/footer/_footer.scss +258 -0
  84. package/scss/components/footer/_footer_external.scss +153 -0
  85. package/scss/components/footer/_index.scss +14 -0
  86. package/scss/components/form/_form.scss +146 -0
  87. package/scss/components/form/_index.scss +4 -0
  88. package/scss/components/form-controls/_form-controls.scss +53 -0
  89. package/scss/components/form-controls/_index.scss +11 -0
  90. package/scss/components/form-error/_form-error.scss +25 -0
  91. package/scss/components/form-error/_index.scss +11 -0
  92. package/scss/components/form-group/_form-group.scss +109 -0
  93. package/scss/components/form-group/_index.scss +11 -0
  94. package/scss/components/form-hint/_form-hint.scss +28 -0
  95. package/scss/components/form-hint/_index.scss +11 -0
  96. package/scss/components/form-wizard/_form-wizard.scss +48 -0
  97. package/scss/components/form-wizard/_index.scss +11 -0
  98. package/scss/components/grid/_grid.scss +80 -0
  99. package/scss/components/grid/_index.scss +4 -0
  100. package/scss/components/hero/_hero-external.scss +84 -0
  101. package/scss/components/hero/_hero.scss +321 -0
  102. package/scss/components/hero/_index.scss +14 -0
  103. package/scss/components/icon/_icon.scss +19 -0
  104. package/scss/components/icon/_index.scss +11 -0
  105. package/scss/components/info-bar/_index.scss +11 -0
  106. package/scss/components/info-bar/_info-bar.scss +21 -0
  107. package/scss/components/inline-loading/_index.scss +11 -0
  108. package/scss/components/inline-loading/_inline-loading.scss +159 -0
  109. package/scss/components/inline-loading/_keyframes.scss +12 -0
  110. package/scss/components/input/_index.scss +11 -0
  111. package/scss/components/input/_input.scss +87 -0
  112. package/scss/components/input/_vars.scss +31 -0
  113. package/scss/components/item/_index.scss +11 -0
  114. package/scss/components/item/_item.scss +227 -0
  115. package/scss/components/link/_index.scss +11 -0
  116. package/scss/components/link/_link.scss +109 -0
  117. package/scss/components/list/_index.scss +4 -0
  118. package/scss/components/list/_list.scss +144 -0
  119. package/scss/components/list-box/_index.scss +11 -0
  120. package/scss/components/list-box/_list-box.scss +813 -0
  121. package/scss/components/loading/_animation.scss +39 -0
  122. package/scss/components/loading/_functions.scss +10 -0
  123. package/scss/components/loading/_index.scss +11 -0
  124. package/scss/components/loading/_keyframes.scss +48 -0
  125. package/scss/components/loading/_loading.scss +72 -0
  126. package/scss/components/loading/_mixins.scss +42 -0
  127. package/scss/components/loading/_vars.scss +26 -0
  128. package/scss/components/main-navigation/_index.scss +14 -0
  129. package/scss/components/main-navigation/_main-navigation.scss +360 -0
  130. package/scss/components/main-navigation/_main-navigation_external.scss +527 -0
  131. package/scss/components/menu/_index.scss +11 -0
  132. package/scss/components/menu/_menu.scss +143 -0
  133. package/scss/components/modal/_index.scss +11 -0
  134. package/scss/components/modal/_mixins.scss +10 -0
  135. package/scss/components/modal/_modal.scss +224 -0
  136. package/scss/components/module/_index.scss +4 -0
  137. package/scss/components/module/_module.scss +199 -0
  138. package/scss/components/multiselect/_index.scss +11 -0
  139. package/scss/components/multiselect/_multiselect.scss +103 -0
  140. package/scss/components/notification/_index.scss +21 -0
  141. package/scss/components/notification/_inline-notification.scss +321 -0
  142. package/scss/components/notification/_mixins.scss +41 -0
  143. package/scss/components/notification/_notification.scss +480 -0
  144. package/scss/components/notification/_toast-notification.scss +249 -0
  145. package/scss/components/notification/_tokens.scss +126 -0
  146. package/scss/components/number-input/_index.scss +11 -0
  147. package/scss/components/number-input/_number-input.scss +195 -0
  148. package/scss/components/overflow-menu/_index.scss +11 -0
  149. package/scss/components/overflow-menu/_overflow-menu.scss +351 -0
  150. package/scss/components/pagination/_index.scss +11 -0
  151. package/scss/components/pagination/_pagination.scss +214 -0
  152. package/scss/components/pagination-nav/_index.scss +11 -0
  153. package/scss/components/pagination-nav/_mixins.scss +38 -0
  154. package/scss/components/pagination-nav/_pagination-nav.scss +171 -0
  155. package/scss/components/popover/_index.scss +11 -0
  156. package/scss/components/popover/_popover.scss +323 -0
  157. package/scss/components/progress-bar/_index.scss +11 -0
  158. package/scss/components/progress-bar/_progress-bar.scss +82 -0
  159. package/scss/components/progress-indicator/_index.scss +11 -0
  160. package/scss/components/progress-indicator/_progress-indicator.scss +328 -0
  161. package/scss/components/radio-button/_index.scss +4 -0
  162. package/scss/components/radio-button/_radio-button.scss +239 -0
  163. package/scss/components/react-dropzone/_index.scss +11 -0
  164. package/scss/components/react-dropzone/_react-dropzone.scss +58 -0
  165. package/scss/components/react-select/_index.scss +11 -0
  166. package/scss/components/react-select/_react-select.scss +90 -0
  167. package/scss/components/read-more/_index.scss +11 -0
  168. package/scss/components/read-more/_read-more.scss +102 -0
  169. package/scss/components/search/_index.scss +4 -0
  170. package/scss/components/search/_search.scss +436 -0
  171. package/scss/components/secondary-navigation/_index.scss +4 -0
  172. package/scss/components/secondary-navigation/_secondary-navigation.scss +61 -0
  173. package/scss/components/select/_index.scss +11 -0
  174. package/scss/components/select/_select.scss +224 -0
  175. package/scss/components/sidebar/_index.scss +11 -0
  176. package/scss/components/sidebar/_sidebar.scss +118 -0
  177. package/scss/components/skeleton-text/_index.scss +4 -0
  178. package/scss/components/skeleton-text/_skeleton-text.scss +22 -0
  179. package/scss/components/slider/_index.scss +4 -0
  180. package/scss/components/slider/_slider.scss +274 -0
  181. package/scss/components/step-navigation/_index.scss +4 -0
  182. package/scss/components/step-navigation/_step-navigation.scss +136 -0
  183. package/scss/components/step-navigation-item/_index.scss +4 -0
  184. package/scss/components/step-navigation-item/_step-navigation-item.scss +377 -0
  185. package/scss/components/story/_index.scss +11 -0
  186. package/scss/components/story/_story.scss +519 -0
  187. package/scss/components/structured-list/_index.scss +11 -0
  188. package/scss/components/structured-list/_mixins.scss +59 -0
  189. package/scss/components/structured-list/_structured-list.scss +235 -0
  190. package/scss/components/sub-navigation/_index.scss +4 -0
  191. package/scss/components/sub-navigation/_sub-navigation.scss +113 -0
  192. package/scss/components/table/_index.scss +11 -0
  193. package/scss/components/table/table.scss +88 -0
  194. package/scss/components/tabs/_index.scss +4 -0
  195. package/scss/components/tabs/_tabs.scss +185 -0
  196. package/scss/components/tabs/_vars.scss +23 -0
  197. package/scss/components/tag/_index.scss +12 -0
  198. package/scss/components/tag/_mixins.scss +19 -0
  199. package/scss/components/tag/_tag.scss +137 -0
  200. package/scss/components/tag/_tokens.scss +702 -0
  201. package/scss/components/text-area/_index.scss +11 -0
  202. package/scss/components/text-area/_text-area.scss +120 -0
  203. package/scss/components/text-input/_index.scss +11 -0
  204. package/scss/components/text-input/_text-input.scss +19 -0
  205. package/scss/components/tile/_index.scss +11 -0
  206. package/scss/components/tile/_tile.scss +269 -0
  207. package/scss/components/time-picker/_index.scss +11 -0
  208. package/scss/components/time-picker/_time-picker.scss +94 -0
  209. package/scss/components/toggle/_index.scss +11 -0
  210. package/scss/components/toggle/_toggle.scss +192 -0
  211. package/scss/components/tooltip/_index.scss +11 -0
  212. package/scss/components/tooltip/_mixins.scss +107 -0
  213. package/scss/components/tooltip/_tooltip.scss +128 -0
  214. package/scss/components/tooltip/_vars.scss +6 -0
  215. package/scss/components/tooltip/animations/fade.scss +10 -0
  216. package/scss/components/tooltip/themes/light-border.scss +158 -0
  217. package/scss/components/tooltip/themes/light.scss +28 -0
  218. package/scss/components/treeview/_index.scss +11 -0
  219. package/scss/components/treeview/_treeview.scss +177 -0
  220. package/scss/components/ui-shell/_functions.scss +19 -0
  221. package/scss/components/ui-shell/_index.scss +11 -0
  222. package/scss/components/ui-shell/_mixins.scss +56 -0
  223. package/scss/components/ui-shell/_ui-shell.scss +23 -0
  224. package/scss/components/ui-shell/content/_content.scss +34 -0
  225. package/scss/components/ui-shell/content/_index.scss +11 -0
  226. package/scss/components/ui-shell/header/_header.scss +382 -0
  227. package/scss/components/ui-shell/header/_index.scss +11 -0
  228. package/scss/components/ui-shell/header-panel/_header-panel.scss +41 -0
  229. package/scss/components/ui-shell/header-panel/_index.scss +11 -0
  230. package/scss/components/ui-shell/side-nav/_index.scss +11 -0
  231. package/scss/components/ui-shell/side-nav/_side-nav.scss +526 -0
  232. package/scss/components/ui-shell/switcher/_index.scss +11 -0
  233. package/scss/components/ui-shell/switcher/_switcher.scss +78 -0
  234. package/scss/components/unit/_index.scss +11 -0
  235. package/scss/components/unit/_unit.scss +277 -0
  236. package/scss/components/user/_index.scss +11 -0
  237. package/scss/components/user/_user.scss +104 -0
  238. package/scss/components/value/_index.scss +11 -0
  239. package/scss/components/value/_value.scss +41 -0
  240. package/scss/components/wrapper/_index.scss +11 -0
  241. package/scss/components/wrapper/_wrapper.scss +71 -0
  242. package/scss/utilities/_box-shadow.scss +14 -0
  243. package/scss/utilities/_button-reset.scss +31 -0
  244. package/scss/utilities/_component-reset.scss +25 -0
  245. package/scss/utilities/_component-tokens.scss +27 -0
  246. package/scss/utilities/_convert.scss +41 -0
  247. package/scss/utilities/_custom-property.scss +56 -0
  248. package/scss/utilities/_focus-outline.scss +68 -0
  249. package/scss/utilities/_high-contrast-mode.scss +37 -0
  250. package/scss/utilities/_index.scss +24 -0
  251. package/scss/utilities/_input-base.scss +63 -0
  252. package/scss/utilities/_keyframes.scss +76 -0
  253. package/scss/utilities/_layer-set.scss +31 -0
  254. package/scss/utilities/_layer.scss +52 -0
  255. package/scss/utilities/_placeholder-colors.scss +10 -0
  256. package/scss/utilities/_read-only.scss +19 -0
  257. package/scss/utilities/_rotate.scss +19 -0
  258. package/scss/utilities/_rtl.scss +21 -0
  259. package/scss/utilities/_skeleton.scss +44 -0
  260. package/scss/utilities/_text-gradient.scss +20 -0
  261. package/scss/utilities/_text-overflow.scss +23 -0
  262. package/scss/utilities/_text-truncate.scss +29 -0
  263. package/scss/utilities/_visually-hidden.scss +38 -0
  264. package/scss/utilities/_z-index.scss +38 -0
  265. package/styles.css +1 -0
@@ -0,0 +1,527 @@
1
+ @use "../../config" as *;
2
+ @use "../../spacing" as *;
3
+ @use "../../theme" as *;
4
+ @use "../../type" as *;
5
+ @use "../../breakpoint" as *;
6
+
7
+ @mixin main_navigation_external {
8
+ /* Custom local Sass variables */
9
+ $wfp-logo-wrapper-width: 88px;
10
+ $nav-main-padding-bottom: $spacing-04;
11
+
12
+ .#{$prefix}--main-navigation-ext {
13
+ background-color: $background-main;
14
+ box-shadow: 0 5px 26px 0 rgb(21 41 53 / 8%); // TODO: Create new token for the shadow
15
+ display: flex;
16
+ position: relative;
17
+
18
+ .#{$prefix}--main-navigation__trigger {
19
+ cursor: pointer;
20
+ user-select: none;
21
+ //vertical-align: middle;
22
+ white-space: nowrap;
23
+
24
+ > a {
25
+ color: $action-default-link-default; // TODO change to $link_on_color token
26
+ @include type-style("body-short-02");
27
+ text-decoration: none;
28
+ &.active {
29
+ border-bottom: 3px solid rgba(var(--ui-01), 0.5);
30
+ }
31
+ &:hover,
32
+ &:visited,
33
+ &:active {
34
+ color: $action-default-link-default;
35
+ text-decoration: underline;
36
+ }
37
+ &:focus {
38
+ color: $action-default-link-default;
39
+ }
40
+ }
41
+ }
42
+ }
43
+
44
+ .#{$prefix}--main-navigation-ext__wrapper {
45
+ display: flex;
46
+ justify-content: space-between;
47
+ margin-bottom: 0;
48
+ margin-top: 0;
49
+ min-height: 88px;
50
+
51
+ @include breakpoint-down(lg) {
52
+ &.#{$prefix}--wrapper {
53
+ padding-left: 0;
54
+ }
55
+ }
56
+
57
+ @include breakpoint-down(md) {
58
+ min-height: auto;
59
+ max-height: 60px;
60
+ }
61
+ }
62
+
63
+ .#{$prefix}--main-navigation-ext__branding {
64
+ position: relative;
65
+
66
+ @include breakpoint-down(md) {
67
+ align-items: center;
68
+ display: flex;
69
+ }
70
+ }
71
+
72
+ // [1] Overflow the Header to cover the entire Breadcrumb banner's height (40px)
73
+ .#{$prefix}--main-navigation-ext__wfp-logo {
74
+ align-items: center;
75
+ background-color: $background-brand;
76
+ display: flex;
77
+ height: calc(100% + 40px); // [1]
78
+ left: 0;
79
+ padding: $spacing-04;
80
+ position: absolute;
81
+ top: 0;
82
+ width: $wfp-logo-wrapper-width;
83
+
84
+ @include breakpoint-down(md) {
85
+ height: 100%;
86
+ padding: $spacing-02;
87
+ position: static;
88
+ width: auto;
89
+ }
90
+ }
91
+
92
+ .#{$prefix}--main-navigation-ext__wfp-logo-svg {
93
+ fill: $icon-on-color;
94
+ height: auto;
95
+ width: 100%;
96
+
97
+ @include breakpoint-down(md) {
98
+ height: 100%;
99
+ width: auto;
100
+ }
101
+ }
102
+
103
+ // [1] Move the product name next to the WFP logo
104
+ .#{$prefix}--main-navigation-ext__product-name {
105
+ @include type-style("expressive-heading-03");
106
+
107
+ align-items: center;
108
+ color: #0b77c2; // TODO: Use $brand token
109
+ display: flex;
110
+ font-weight: 700;
111
+ height: 100%;
112
+ justify-content: flex-start;
113
+ margin-left: calc(#{$wfp-logo-wrapper-width} + #{$spacing-05}); // [1]
114
+ text-transform: uppercase;
115
+
116
+ @include breakpoint-down(md) {
117
+ @include type-style("expressive-heading-01");
118
+
119
+ font-weight: 700;
120
+ margin-left: $spacing-03;
121
+ }
122
+ }
123
+
124
+ .#{$prefix}--main-navigation-ext__main {
125
+ align-self: flex-end;
126
+ padding: $spacing-05 0 $nav-main-padding-bottom;
127
+
128
+ @include breakpoint-down(md) {
129
+ align-items: baseline;
130
+ align-self: center;
131
+ display: flex;
132
+ }
133
+ }
134
+
135
+ .#{$prefix}--main-navigation-ext__settings {
136
+ align-items: center;
137
+ display: flex;
138
+ gap: 2rem;
139
+ justify-content: flex-end;
140
+
141
+ @include breakpoint-down(md) {
142
+ display: none;
143
+ }
144
+ }
145
+
146
+ /* Block Language styles */
147
+ // [1] TODO: Create a token for menu settings type-styles
148
+ .#{$prefix}--language-ext {
149
+ color: $text-body-secondary;
150
+ cursor: pointer;
151
+ font-size: 12px; // [1]
152
+ font-weight: 700; // [1]
153
+ letter-spacing: 0.36px; // [1]
154
+ line-height: 1; // [1]
155
+ position: relative;
156
+ text-transform: uppercase; // [1]
157
+ }
158
+
159
+ .#{$prefix}--language-ext__trigger {
160
+ align-items: center;
161
+ display: flex;
162
+ user-select: none;
163
+
164
+ svg {
165
+ margin-left: 0.3em;
166
+ }
167
+
168
+ @include breakpoint-down(md) {
169
+ color: $text-inverse-default;
170
+ font-size: 14px;
171
+ padding: 1rem;
172
+ }
173
+ }
174
+
175
+ .#{$prefix}--language-ext-chevron {
176
+ margin-left: $spacing-02;
177
+ }
178
+
179
+ .#{$prefix}--language-ext__dropdown {
180
+ background-color: $background-main;
181
+ border-bottom: 5px solid #0b77c2; // TODO: Use $brand token
182
+ box-shadow: 0 1px 8px rgb(0 0 0 / 30%); // TODO: Create a token for this shadow
183
+ display: none;
184
+ padding: $spacing-03 $spacing-02;
185
+ position: absolute;
186
+ right: 0;
187
+ top: calc(100% + #{$spacing-02});
188
+ width: 12rem;
189
+ z-index: 8100;
190
+
191
+ @include breakpoint-down(md) {
192
+ border-bottom: none;
193
+ box-shadow: none;
194
+ padding: $spacing-03;
195
+ position: static;
196
+ width: 100%;
197
+ }
198
+
199
+ &.#{$prefix}--language-ext__dropdown--is-shown {
200
+ display: block;
201
+ }
202
+ }
203
+
204
+ .#{$prefix}--language-ext__dropdown-option {
205
+ padding: $spacing-03;
206
+
207
+ @include breakpoint-down(md) {
208
+ @include type-style("body-short");
209
+
210
+ font-weight: 700;
211
+ padding: $spacing-05 $spacing-03;
212
+ }
213
+
214
+ &:hover {
215
+ @include breakpoint-up(md) {
216
+ background-color: $action-default-link-default;
217
+ }
218
+
219
+ & > a {
220
+ @include breakpoint-up(md) {
221
+ color: $text-inverse-default;
222
+ }
223
+ }
224
+ }
225
+
226
+ &:active {
227
+ @include breakpoint-down(md) {
228
+ background-color: #007dbc; // TODO: Create a token for this color
229
+
230
+ & > a {
231
+ color: $text-inverse-default;
232
+ }
233
+ }
234
+ }
235
+
236
+ & > a {
237
+ color: $text-body-secondary;
238
+ }
239
+ }
240
+ /* End block Language styles */
241
+
242
+ /* Block User styles */
243
+ .#{$prefix}--user-ext {
244
+ position: relative;
245
+ }
246
+
247
+ .#{$prefix}--user-ext__trigger {
248
+ align-items: center;
249
+ color: $text-body-secondary;
250
+ cursor: pointer;
251
+ display: flex;
252
+ font-size: 12px;
253
+ font-weight: 700;
254
+ letter-spacing: 0.36px;
255
+ text-transform: uppercase;
256
+ user-select: none;
257
+
258
+ svg {
259
+ margin-left: 0.3em;
260
+ }
261
+
262
+ @include breakpoint-down(md) {
263
+ color: $text-inverse-default;
264
+ font-size: 14px;
265
+ padding: 1rem;
266
+ }
267
+ }
268
+
269
+ .#{$prefix}--user-ext__chevron {
270
+ margin-left: $spacing-02;
271
+ }
272
+
273
+ .#{$prefix}--user-ext__dropdown {
274
+ background-color: $background-main;
275
+ border-bottom: 5px solid #0b77c2; // TODO: Use $brand token
276
+ box-shadow: 0 1px 8px rgb(0 0 0 / 30%); // TODO: Create a token for this shadow
277
+ display: none;
278
+ padding: $spacing-05;
279
+ position: absolute;
280
+ right: 0;
281
+ top: calc(100% + #{$spacing-02});
282
+ width: 18rem;
283
+ z-index: 8100;
284
+
285
+ @include breakpoint-down(md) {
286
+ border-bottom: none;
287
+ box-shadow: none;
288
+ position: static;
289
+ width: 100%;
290
+ }
291
+
292
+ &.#{$prefix}--user-ext__dropdown--is-shown {
293
+ display: block;
294
+ }
295
+ }
296
+
297
+ .#{$prefix}--user-ext__profile-item {
298
+ align-items: baseline;
299
+ display: flex;
300
+ font-size: 12px;
301
+
302
+ & + .#{$prefix}--user-ext__profile-item {
303
+ margin-top: $spacing-03;
304
+ }
305
+ }
306
+
307
+ .#{$prefix}--user-ext__profile-label {
308
+ font-weight: 600;
309
+ }
310
+
311
+ .#{$prefix}--user-ext__profile-value {
312
+ margin-left: $spacing-02;
313
+ }
314
+
315
+ .#{$prefix}--user-ext__profile-actions {
316
+ align-items: baseline;
317
+ border-top: 1px solid $border-subtle;
318
+ display: flex;
319
+ justify-content: space-between;
320
+ margin-top: $spacing-04;
321
+ padding-top: $spacing-04;
322
+ }
323
+
324
+ .#{$prefix}--user-ext__profile-edit {
325
+ font-size: 14px;
326
+ }
327
+ /* End block User styles */
328
+
329
+ .#{$prefix}--main-navigation-ext__nav {
330
+ align-items: baseline;
331
+ display: flex;
332
+ justify-content: flex-end;
333
+ margin-top: $spacing-04;
334
+
335
+ @include breakpoint-down(md) {
336
+ margin-top: 0;
337
+ }
338
+ }
339
+
340
+ .#{$prefix}--main-navigation-ext__mobile-menu-button {
341
+ display: none;
342
+
343
+ @include breakpoint-down(lg) {
344
+ display: block;
345
+ }
346
+ }
347
+
348
+ // Wrap all nav links in a dropdown on small mobile devices
349
+ .#{$prefix}--main-navigation-ext__nav-wrapper {
350
+ align-items: baseline;
351
+ display: flex;
352
+ justify-content: flex-end;
353
+
354
+ @include breakpoint-down(md) {
355
+ background-color: #00547f; // TODO: Create a token for this color
356
+ box-shadow: 0 1px 8px rgb(0 0 0 / 20%); // TODO: Create a token for this shadow
357
+ display: none;
358
+ left: 0;
359
+ position: absolute;
360
+ top: 100%;
361
+ width: 100%;
362
+ }
363
+
364
+ &.#{$prefix}--main-navigation-ext--is-shown {
365
+ @include breakpoint-down(md) {
366
+ display: block;
367
+ }
368
+ }
369
+ }
370
+
371
+ // Wrap only site nav links in a dropdown on medium mobile devices
372
+ .#{$prefix}--main-navigation-ext__site-nav {
373
+ @include breakpoint-between(md, lg) {
374
+ background-color: #00547f; // TODO: Create a token for this color
375
+ box-shadow: 0 1px 8px rgb(0 0 0 / 20%); // TODO: Create a token for this shadow
376
+ display: none;
377
+ left: 0;
378
+ position: absolute;
379
+ top: 100%;
380
+ width: 100%;
381
+ }
382
+
383
+ &.#{$prefix}--main-navigation-ext--is-shown {
384
+ @include breakpoint-between(md, lg) {
385
+ display: block;
386
+ }
387
+ }
388
+ }
389
+
390
+ .#{$prefix}--main-navigation-ext__site-nav-list {
391
+ align-items: baseline;
392
+ display: flex;
393
+ justify-content: flex-end;
394
+
395
+ @include breakpoint-down(lg) {
396
+ flex-direction: column;
397
+ }
398
+ }
399
+
400
+ .#{$prefix}--main-navigation-ext__site-link {
401
+ position: relative;
402
+ user-select: none;
403
+
404
+ // Styles to apply when the site link is the current page
405
+ &.#{$prefix}--main-navigation-ext__site-link--current::after {
406
+ background-color: $action-default-fill-primary-default;
407
+ content: "";
408
+ height: 4px;
409
+ left: 0;
410
+ position: absolute;
411
+ top: calc(100% + #{$nav-main-padding-bottom} - 4px);
412
+ width: 100%;
413
+ }
414
+
415
+ @include breakpoint-down(lg) {
416
+ width: 100%;
417
+ }
418
+
419
+ & + .#{$prefix}--main-navigation-ext__site-link {
420
+ margin-left: $spacing-07;
421
+
422
+ @include breakpoint-down(lg) {
423
+ border-top: 1px solid $border-interactive;
424
+ margin-left: 0;
425
+ }
426
+ }
427
+
428
+ & > a {
429
+ @include type-style("body-short");
430
+
431
+ color: $text-body-default;
432
+ cursor: pointer;
433
+ font-weight: 700;
434
+ text-transform: uppercase;
435
+
436
+ @include breakpoint-down(lg) {
437
+ align-items: center;
438
+ color: $text-inverse-default;
439
+ display: inline-flex;
440
+ height: 50px;
441
+ padding: 0 $spacing-05;
442
+ width: 100%;
443
+ }
444
+
445
+ &:hover {
446
+ color: $action-default-fill-primary-default;
447
+
448
+ @include breakpoint-down(lg) {
449
+ color: $text-inverse-default;
450
+ }
451
+ }
452
+
453
+ &:active {
454
+ @include breakpoint-down(lg) {
455
+ background-color: #007dbc; // TODO: Create a token for this color
456
+ }
457
+ }
458
+ }
459
+
460
+ & > button {
461
+ @include breakpoint-down(lg) {
462
+ margin: $spacing-04 $spacing-05 $spacing-05;
463
+ }
464
+ }
465
+ }
466
+
467
+ .#{$prefix}--main-navigation-ext__mobile-settings {
468
+ display: none;
469
+ width: 100%;
470
+
471
+ @include breakpoint-down(md) {
472
+ display: flex;
473
+ flex-direction: column-reverse;
474
+ }
475
+
476
+ &
477
+ .#{$prefix}--main-navigation-ext__site-link
478
+ + .#{$prefix}--main-navigation-ext__site-link {
479
+ // Add a border to the bottom since the flex direction is reversed
480
+ border-bottom: 1px solid $border-interactive;
481
+ }
482
+
483
+ & .#{$prefix}--language-ext__trigger,
484
+ & .#{$prefix}--user-ext__trigger {
485
+ @include breakpoint-down(md) {
486
+ align-items: center;
487
+ display: flex;
488
+ height: 50px;
489
+ }
490
+
491
+ &:active {
492
+ @include breakpoint-down(md) {
493
+ background-color: #007dbc; // TODO: Create a token for this color
494
+ }
495
+ }
496
+ }
497
+ }
498
+
499
+ .#{$prefix}--main-navigation-ext__auth {
500
+ margin-left: $spacing-07;
501
+
502
+ @include breakpoint-down(md) {
503
+ margin-left: 0;
504
+ }
505
+ }
506
+
507
+ .#{$prefix}--main-navigation-ext__auth-list {
508
+ align-items: baseline;
509
+ display: flex;
510
+ justify-content: flex-end;
511
+
512
+ @include breakpoint-down(md) {
513
+ justify-content: flex-start;
514
+ padding: $spacing-04 $spacing-05 $spacing-05;
515
+ }
516
+ }
517
+
518
+ .#{$prefix}--main-navigation-ext__auth-action {
519
+ & + .#{$prefix}--main-navigation-ext__auth-action {
520
+ margin-left: $spacing-05;
521
+
522
+ @include breakpoint-down(md) {
523
+ margin-left: $spacing-06;
524
+ }
525
+ }
526
+ }
527
+ }
@@ -0,0 +1,11 @@
1
+ //
2
+ // Copyright IBM Corp. 2018, 2018
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
7
+
8
+ @forward 'menu';
9
+ @use 'menu';
10
+
11
+ @include menu.menu;
@@ -0,0 +1,143 @@
1
+ //
2
+ // Copyright IBM Corp. 2020
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
7
+
8
+ @use "../../config" as *;
9
+ @use "../../motion" as *;
10
+ @use "../../spacing" as *;
11
+ @use "../../theme" as *;
12
+ @use "../../type" as *;
13
+ @use "../button/tokens" as button;
14
+ @use "../../utilities/box-shadow" as *;
15
+ @use "../../utilities/focus-outline" as *;
16
+ @use "../../utilities/z-index" as *;
17
+
18
+ /// Menu styles
19
+ /// @access public
20
+ /// @group menu
21
+ @mixin menu {
22
+ .#{$prefix}--menu {
23
+ @include box-shadow;
24
+
25
+ position: fixed;
26
+ z-index: z("modal");
27
+ min-width: 13rem;
28
+ max-width: 18rem;
29
+ padding: $spacing-02 0;
30
+ background-color: $layer-primary;
31
+ visibility: hidden;
32
+ }
33
+
34
+ .#{$prefix}--menu--open {
35
+ visibility: visible;
36
+
37
+ &:focus {
38
+ @include focus-outline("border");
39
+ }
40
+ }
41
+
42
+ .#{$prefix}--menu--invisible {
43
+ opacity: 0;
44
+ }
45
+
46
+ .#{$prefix}--menu-option {
47
+ position: relative;
48
+ // $size-sm
49
+ height: 2rem;
50
+ background-color: $layer-primary;
51
+ color: $text-body-default;
52
+ cursor: pointer;
53
+ transition: background-color $duration-fast-01 motion(standard, productive);
54
+
55
+ &:focus {
56
+ @include focus-outline("outline");
57
+ }
58
+ }
59
+
60
+ .#{$prefix}--menu-option--active,
61
+ .#{$prefix}--menu-option:hover {
62
+ background-color: $layer-hover;
63
+ }
64
+
65
+ .#{$prefix}--menu-option--danger:hover,
66
+ .#{$prefix}--menu-option--danger:focus {
67
+ background-color: button.$button-danger-primary;
68
+ color: $text-inverse-default;
69
+ }
70
+
71
+ .#{$prefix}--menu-option > .#{$prefix}--menu {
72
+ margin-top: calc(#{$spacing-02} * -1);
73
+ }
74
+
75
+ .#{$prefix}--menu-option__content {
76
+ display: flex;
77
+ height: 100%;
78
+ align-items: center;
79
+ justify-content: space-between;
80
+ padding: 0 $spacing-05;
81
+ }
82
+
83
+ .#{$prefix}--menu-option__content--disabled {
84
+ background-color: $layer-primary;
85
+ color: $text-disabled;
86
+ cursor: not-allowed;
87
+ }
88
+
89
+ .#{$prefix}--menu-option__content--disabled .#{$prefix}--menu-option__label,
90
+ .#{$prefix}--menu-option__content--disabled .#{$prefix}--menu-option__info,
91
+ .#{$prefix}--menu-option__content--disabled .#{$prefix}--menu-option__icon {
92
+ color: $text-disabled;
93
+ }
94
+
95
+ .#{$prefix}--menu-option__content--indented .#{$prefix}--menu-option__label {
96
+ margin-left: $spacing-05;
97
+ }
98
+
99
+ .#{$prefix}--menu-option__label {
100
+ @include type-style("body-short");
101
+
102
+ overflow: hidden;
103
+ flex-grow: 1;
104
+ // add top/bottom padding to make sure letters are not cut off by hidden overflow
105
+ padding: $spacing-02 0;
106
+ text-align: start;
107
+ text-overflow: ellipsis;
108
+ white-space: nowrap;
109
+ }
110
+
111
+ .#{$prefix}--menu-option__info {
112
+ display: inline-flex;
113
+ margin-left: $spacing-05;
114
+ }
115
+
116
+ .#{$prefix}--menu-option__icon {
117
+ display: flex;
118
+ width: 1rem;
119
+ height: 1rem;
120
+ align-items: center;
121
+ margin-right: $spacing-03;
122
+ }
123
+
124
+ .#{$prefix}--menu-divider {
125
+ width: 100%;
126
+ height: 1px;
127
+ margin: $spacing-02 0;
128
+ background-color: $border-subtle;
129
+ }
130
+
131
+ $supported-sizes: (
132
+ // $size-md
133
+ "md": 2.5rem,
134
+ // $size-lg
135
+ "lg": 3rem
136
+ );
137
+
138
+ @each $size, $value in $supported-sizes {
139
+ .#{$prefix}--menu--#{$size} .#{$prefix}--menu-option {
140
+ height: $value;
141
+ }
142
+ }
143
+ }
@@ -0,0 +1,11 @@
1
+ //
2
+ // Copyright IBM Corp. 2018, 2018
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
7
+
8
+ @forward 'modal';
9
+ @use 'modal';
10
+
11
+ @include modal.modal;
@@ -0,0 +1,10 @@
1
+ //----------------------------------------------
2
+ // Modal
3
+ // ---------------------------------------------
4
+ @use '../../config' as *;
5
+
6
+ @mixin modal--color($color) {
7
+ .#{$prefix}--modal-container {
8
+ border-top-color: $color;
9
+ }
10
+ }