@cloudscape-design/components-themeable 3.0.1340 → 3.0.1342

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 (212) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/expandable-section/styles.scss +142 -0
  3. package/lib/internal/scss/input/styles.scss +228 -37
  4. package/lib/internal/scss/internal/components/chart-legend/styles.scss +1 -0
  5. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +1 -1
  6. package/lib/internal/scss/multiselect/styles.scss +14 -0
  7. package/lib/internal/scss/pagination/styles.scss +9 -2
  8. package/lib/internal/scss/pagination/test-classes/styles.scss +8 -0
  9. package/lib/internal/scss/select/styles.scss +14 -1
  10. package/lib/internal/scss/side-navigation/styles.scss +62 -24
  11. package/lib/internal/scss/textarea/styles.scss +21 -2
  12. package/lib/internal/template/button-dropdown/filter.d.ts +1 -1
  13. package/lib/internal/template/button-dropdown/filter.d.ts.map +1 -1
  14. package/lib/internal/template/button-dropdown/internal.d.ts.map +1 -1
  15. package/lib/internal/template/button-dropdown/internal.js +2 -2
  16. package/lib/internal/template/button-dropdown/internal.js.map +1 -1
  17. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.d.ts +1 -0
  18. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.d.ts.map +1 -1
  19. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.js +9 -0
  20. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.js.map +1 -1
  21. package/lib/internal/template/expandable-section/expandable-section-header.d.ts +2 -1
  22. package/lib/internal/template/expandable-section/expandable-section-header.d.ts.map +1 -1
  23. package/lib/internal/template/expandable-section/expandable-section-header.js +57 -13
  24. package/lib/internal/template/expandable-section/expandable-section-header.js.map +1 -1
  25. package/lib/internal/template/expandable-section/interfaces.d.ts +1 -1
  26. package/lib/internal/template/expandable-section/interfaces.js.map +1 -1
  27. package/lib/internal/template/expandable-section/internal.d.ts +14 -1
  28. package/lib/internal/template/expandable-section/internal.d.ts.map +1 -1
  29. package/lib/internal/template/expandable-section/internal.js +3 -3
  30. package/lib/internal/template/expandable-section/internal.js.map +1 -1
  31. package/lib/internal/template/expandable-section/styles.css.js +42 -35
  32. package/lib/internal/template/expandable-section/styles.scoped.css +177 -69
  33. package/lib/internal/template/expandable-section/styles.selectors.js +42 -35
  34. package/lib/internal/template/i18n/context.d.ts +16 -4
  35. package/lib/internal/template/i18n/context.d.ts.map +1 -1
  36. package/lib/internal/template/i18n/context.js +10 -4
  37. package/lib/internal/template/i18n/context.js.map +1 -1
  38. package/lib/internal/template/i18n/index.d.ts +2 -0
  39. package/lib/internal/template/i18n/index.d.ts.map +1 -1
  40. package/lib/internal/template/i18n/index.js +1 -0
  41. package/lib/internal/template/i18n/index.js.map +1 -1
  42. package/lib/internal/template/i18n/messages/all.all.js +1 -1
  43. package/lib/internal/template/i18n/messages/all.all.json +1 -1
  44. package/lib/internal/template/i18n/messages/all.ar.js +1 -1
  45. package/lib/internal/template/i18n/messages/all.ar.json +1 -1
  46. package/lib/internal/template/i18n/messages/all.de.js +1 -1
  47. package/lib/internal/template/i18n/messages/all.de.json +1 -1
  48. package/lib/internal/template/i18n/messages/all.en-GB.js +1 -1
  49. package/lib/internal/template/i18n/messages/all.en-GB.json +1 -1
  50. package/lib/internal/template/i18n/messages/all.en.js +1 -1
  51. package/lib/internal/template/i18n/messages/all.en.json +1 -1
  52. package/lib/internal/template/i18n/messages/all.es.js +1 -1
  53. package/lib/internal/template/i18n/messages/all.es.json +1 -1
  54. package/lib/internal/template/i18n/messages/all.fr.js +1 -1
  55. package/lib/internal/template/i18n/messages/all.fr.json +1 -1
  56. package/lib/internal/template/i18n/messages/all.id.js +1 -1
  57. package/lib/internal/template/i18n/messages/all.id.json +1 -1
  58. package/lib/internal/template/i18n/messages/all.it.js +1 -1
  59. package/lib/internal/template/i18n/messages/all.it.json +1 -1
  60. package/lib/internal/template/i18n/messages/all.ja.js +1 -1
  61. package/lib/internal/template/i18n/messages/all.ja.json +1 -1
  62. package/lib/internal/template/i18n/messages/all.ko.js +1 -1
  63. package/lib/internal/template/i18n/messages/all.ko.json +1 -1
  64. package/lib/internal/template/i18n/messages/all.pt-BR.js +1 -1
  65. package/lib/internal/template/i18n/messages/all.pt-BR.json +1 -1
  66. package/lib/internal/template/i18n/messages/all.tr.js +1 -1
  67. package/lib/internal/template/i18n/messages/all.tr.json +1 -1
  68. package/lib/internal/template/i18n/messages/all.zh-CN.js +1 -1
  69. package/lib/internal/template/i18n/messages/all.zh-CN.json +1 -1
  70. package/lib/internal/template/i18n/messages/all.zh-TW.js +1 -1
  71. package/lib/internal/template/i18n/messages/all.zh-TW.json +1 -1
  72. package/lib/internal/template/i18n/messages-types.d.ts +5 -0
  73. package/lib/internal/template/i18n/messages-types.d.ts.map +1 -1
  74. package/lib/internal/template/i18n/messages-types.js.map +1 -1
  75. package/lib/internal/template/input/index.d.ts.map +1 -1
  76. package/lib/internal/template/input/index.js +4 -2
  77. package/lib/internal/template/input/index.js.map +1 -1
  78. package/lib/internal/template/input/interfaces.d.ts +9 -0
  79. package/lib/internal/template/input/interfaces.d.ts.map +1 -1
  80. package/lib/internal/template/input/interfaces.js.map +1 -1
  81. package/lib/internal/template/input/internal.d.ts +5 -5
  82. package/lib/internal/template/input/internal.d.ts.map +1 -1
  83. package/lib/internal/template/input/internal.js +60 -24
  84. package/lib/internal/template/input/internal.js.map +1 -1
  85. package/lib/internal/template/input/styles.css.js +28 -18
  86. package/lib/internal/template/input/styles.scoped.css +213 -52
  87. package/lib/internal/template/input/styles.selectors.js +28 -18
  88. package/lib/internal/template/input/utils.js +3 -3
  89. package/lib/internal/template/input/utils.js.map +1 -1
  90. package/lib/internal/template/internal/base-component/styles.scoped.css +297 -289
  91. package/lib/internal/template/internal/components/cartesian-chart/styles.css.js +28 -28
  92. package/lib/internal/template/internal/components/cartesian-chart/styles.scoped.css +35 -35
  93. package/lib/internal/template/internal/components/cartesian-chart/styles.selectors.js +28 -28
  94. package/lib/internal/template/internal/components/chart-legend/styles.css.js +6 -6
  95. package/lib/internal/template/internal/components/chart-legend/styles.scoped.css +16 -14
  96. package/lib/internal/template/internal/components/chart-legend/styles.selectors.js +6 -6
  97. package/lib/internal/template/internal/environment.js +2 -2
  98. package/lib/internal/template/internal/environment.json +2 -2
  99. package/lib/internal/template/internal/generated/styles/tokens.d.ts +1 -0
  100. package/lib/internal/template/internal/generated/styles/tokens.js +1 -0
  101. package/lib/internal/template/internal/generated/theming/index.cjs +31 -0
  102. package/lib/internal/template/internal/generated/theming/index.js +31 -0
  103. package/lib/internal/template/multiselect/embedded.d.ts +1 -1
  104. package/lib/internal/template/multiselect/index.d.ts.map +1 -1
  105. package/lib/internal/template/multiselect/index.js +4 -0
  106. package/lib/internal/template/multiselect/index.js.map +1 -1
  107. package/lib/internal/template/multiselect/interfaces.d.ts +8 -1
  108. package/lib/internal/template/multiselect/interfaces.d.ts.map +1 -1
  109. package/lib/internal/template/multiselect/interfaces.js.map +1 -1
  110. package/lib/internal/template/multiselect/internal.d.ts.map +1 -1
  111. package/lib/internal/template/multiselect/internal.js +22 -2
  112. package/lib/internal/template/multiselect/internal.js.map +1 -1
  113. package/lib/internal/template/multiselect/styles.css.js +5 -3
  114. package/lib/internal/template/multiselect/styles.scoped.css +13 -3
  115. package/lib/internal/template/multiselect/styles.selectors.js +5 -3
  116. package/lib/internal/template/multiselect/use-multiselect.d.ts +3 -2
  117. package/lib/internal/template/multiselect/use-multiselect.d.ts.map +1 -1
  118. package/lib/internal/template/multiselect/use-multiselect.js +5 -3
  119. package/lib/internal/template/multiselect/use-multiselect.js.map +1 -1
  120. package/lib/internal/template/pagination/index.d.ts.map +1 -1
  121. package/lib/internal/template/pagination/index.js +3 -3
  122. package/lib/internal/template/pagination/index.js.map +1 -1
  123. package/lib/internal/template/pagination/interfaces.d.ts +19 -3
  124. package/lib/internal/template/pagination/interfaces.d.ts.map +1 -1
  125. package/lib/internal/template/pagination/interfaces.js.map +1 -1
  126. package/lib/internal/template/pagination/internal.d.ts.map +1 -1
  127. package/lib/internal/template/pagination/internal.js +18 -6
  128. package/lib/internal/template/pagination/internal.js.map +1 -1
  129. package/lib/internal/template/pagination/styles.css.js +12 -11
  130. package/lib/internal/template/pagination/styles.scoped.css +34 -25
  131. package/lib/internal/template/pagination/styles.selectors.js +12 -11
  132. package/lib/internal/template/pagination/test-classes/styles.css.js +6 -0
  133. package/lib/internal/template/pagination/test-classes/styles.scoped.css +7 -0
  134. package/lib/internal/template/pagination/test-classes/styles.selectors.js +7 -0
  135. package/lib/internal/template/prompt-input/internal.d.ts.map +1 -1
  136. package/lib/internal/template/prompt-input/internal.js +14 -2
  137. package/lib/internal/template/prompt-input/internal.js.map +1 -1
  138. package/lib/internal/template/select/index.d.ts.map +1 -1
  139. package/lib/internal/template/select/index.js +4 -0
  140. package/lib/internal/template/select/index.js.map +1 -1
  141. package/lib/internal/template/select/interfaces.d.ts +39 -0
  142. package/lib/internal/template/select/interfaces.d.ts.map +1 -1
  143. package/lib/internal/template/select/interfaces.js.map +1 -1
  144. package/lib/internal/template/select/internal.d.ts.map +1 -1
  145. package/lib/internal/template/select/internal.js +20 -4
  146. package/lib/internal/template/select/internal.js.map +1 -1
  147. package/lib/internal/template/select/parts/filter.d.ts +1 -1
  148. package/lib/internal/template/select/parts/filter.d.ts.map +1 -1
  149. package/lib/internal/template/select/styles.css.js +3 -1
  150. package/lib/internal/template/select/styles.scoped.css +11 -1
  151. package/lib/internal/template/select/styles.selectors.js +3 -1
  152. package/lib/internal/template/select/utils/dropdown-customization.d.ts +20 -0
  153. package/lib/internal/template/select/utils/dropdown-customization.d.ts.map +1 -0
  154. package/lib/internal/template/select/utils/dropdown-customization.js +22 -0
  155. package/lib/internal/template/select/utils/dropdown-customization.js.map +1 -0
  156. package/lib/internal/template/select/utils/use-select.d.ts +4 -1
  157. package/lib/internal/template/select/utils/use-select.d.ts.map +1 -1
  158. package/lib/internal/template/select/utils/use-select.js +21 -4
  159. package/lib/internal/template/select/utils/use-select.js.map +1 -1
  160. package/lib/internal/template/side-navigation/parts.d.ts.map +1 -1
  161. package/lib/internal/template/side-navigation/parts.js +3 -2
  162. package/lib/internal/template/side-navigation/parts.js.map +1 -1
  163. package/lib/internal/template/side-navigation/styles.css.js +50 -48
  164. package/lib/internal/template/side-navigation/styles.scoped.css +106 -93
  165. package/lib/internal/template/side-navigation/styles.selectors.js +50 -48
  166. package/lib/internal/template/status-indicator/interfaces.d.ts +1 -1
  167. package/lib/internal/template/status-indicator/interfaces.d.ts.map +1 -1
  168. package/lib/internal/template/status-indicator/interfaces.js.map +1 -1
  169. package/lib/internal/template/status-indicator/internal.d.ts +2 -6
  170. package/lib/internal/template/status-indicator/internal.d.ts.map +1 -1
  171. package/lib/internal/template/status-indicator/internal.js.map +1 -1
  172. package/lib/internal/template/steps/interfaces.d.ts +2 -2
  173. package/lib/internal/template/steps/interfaces.d.ts.map +1 -1
  174. package/lib/internal/template/steps/interfaces.js.map +1 -1
  175. package/lib/internal/template/test-utils/dom/input/index.d.ts +2 -0
  176. package/lib/internal/template/test-utils/dom/input/index.js +6 -0
  177. package/lib/internal/template/test-utils/dom/input/index.js.map +1 -1
  178. package/lib/internal/template/test-utils/dom/multiselect/index.d.ts +16 -0
  179. package/lib/internal/template/test-utils/dom/multiselect/index.js +16 -0
  180. package/lib/internal/template/test-utils/dom/multiselect/index.js.map +1 -1
  181. package/lib/internal/template/test-utils/dom/pagination/index.d.ts +5 -1
  182. package/lib/internal/template/test-utils/dom/pagination/index.js +7 -0
  183. package/lib/internal/template/test-utils/dom/pagination/index.js.map +1 -1
  184. package/lib/internal/template/test-utils/dom/select/index.d.ts +16 -0
  185. package/lib/internal/template/test-utils/dom/select/index.js +16 -0
  186. package/lib/internal/template/test-utils/dom/select/index.js.map +1 -1
  187. package/lib/internal/template/test-utils/selectors/input/index.d.ts +2 -0
  188. package/lib/internal/template/test-utils/selectors/input/index.js +6 -0
  189. package/lib/internal/template/test-utils/selectors/input/index.js.map +1 -1
  190. package/lib/internal/template/test-utils/selectors/multiselect/index.d.ts +16 -0
  191. package/lib/internal/template/test-utils/selectors/multiselect/index.js +20 -0
  192. package/lib/internal/template/test-utils/selectors/multiselect/index.js.map +1 -1
  193. package/lib/internal/template/test-utils/selectors/pagination/index.d.ts +5 -1
  194. package/lib/internal/template/test-utils/selectors/pagination/index.js +7 -0
  195. package/lib/internal/template/test-utils/selectors/pagination/index.js.map +1 -1
  196. package/lib/internal/template/test-utils/selectors/select/index.d.ts +16 -0
  197. package/lib/internal/template/test-utils/selectors/select/index.js +20 -0
  198. package/lib/internal/template/test-utils/selectors/select/index.js.map +1 -1
  199. package/lib/internal/template/textarea/index.d.ts.map +1 -1
  200. package/lib/internal/template/textarea/index.js +11 -3
  201. package/lib/internal/template/textarea/index.js.map +1 -1
  202. package/lib/internal/template/textarea/interfaces.d.ts +12 -0
  203. package/lib/internal/template/textarea/interfaces.d.ts.map +1 -1
  204. package/lib/internal/template/textarea/interfaces.js.map +1 -1
  205. package/lib/internal/template/textarea/styles.css.js +9 -5
  206. package/lib/internal/template/textarea/styles.scoped.css +26 -14
  207. package/lib/internal/template/textarea/styles.selectors.js +9 -5
  208. package/package.json +1 -1
  209. package/lib/internal/template/status-indicator/internal-interfaces.d.ts +0 -3
  210. package/lib/internal/template/status-indicator/internal-interfaces.d.ts.map +0 -1
  211. package/lib/internal/template/status-indicator/internal-interfaces.js +0 -2
  212. package/lib/internal/template/status-indicator/internal-interfaces.js.map +0 -1
@@ -1,3 +1,3 @@
1
1
  {
2
- "commit": "154aba5d90a8762f424b37f51b22021521238da5"
2
+ "commit": "2041ec8f9027e7c42c879f7113759c67d545a585"
3
3
  }
@@ -198,6 +198,8 @@ $icon-total-space-medium: calc(#{$icon-width-medium} + #{$icon-margin-left} + #{
198
198
  flex-direction: row;
199
199
  justify-content: space-between;
200
200
  align-items: center;
201
+ flex: 1;
202
+ min-inline-size: 0;
201
203
  }
202
204
 
203
205
  &-button,
@@ -285,6 +287,20 @@ $icon-total-space-medium: calc(#{$icon-width-medium} + #{$icon-margin-left} + #{
285
287
  }
286
288
  }
287
289
 
290
+ // Internal-only class: zeros header wrapper padding when __disableHeaderPaddings is set.
291
+ // Allows parent components to control spacing without brittle positional selectors.
292
+ .disable-header-paddings {
293
+ padding-block: 0;
294
+ padding-inline: 0;
295
+ }
296
+
297
+ // Internal-only class: zeros content wrapper padding when the disableContentPaddings prop is set.
298
+ // Paired with disable-header-paddings for consistent zero-padding on both wrapper divs.
299
+ .disable-content-paddings {
300
+ padding-block: 0;
301
+ padding-inline: 0;
302
+ }
303
+
288
304
  .focusable {
289
305
  &:focus {
290
306
  outline: none;
@@ -302,3 +318,129 @@ $icon-total-space-medium: calc(#{$icon-width-medium} + #{$icon-margin-left} + #{
302
318
  color: awsui.$color-text-expandable-section-hover;
303
319
  }
304
320
  }
321
+
322
+ // When the expand/collapse icon is rendered at the end of the header.
323
+ // For non-container variants the icon is rendered at the end of the headerButton
324
+ // (taking the full width of the header). For the container variant the icon is
325
+ // rendered as a sibling of the InternalHeader so it appears past any actions.
326
+ .header-icon-end {
327
+ &.wrapper-default,
328
+ &.wrapper-inline,
329
+ &.wrapper-footer,
330
+ &.wrapper-compact {
331
+ padding-inline-start: 0;
332
+ }
333
+
334
+ &.wrapper-navigation {
335
+ justify-content: space-between;
336
+ align-items: flex-start;
337
+ column-gap: awsui.$space-xs;
338
+ }
339
+
340
+ &.wrapper-container,
341
+ &.wrapper-default {
342
+ display: flex;
343
+ align-items: flex-start;
344
+ column-gap: awsui.$space-m;
345
+ }
346
+
347
+ &.wrapper-container {
348
+ &:not(.header-deprecated) {
349
+ padding-inline-start: container.$header-padding-horizontal;
350
+ }
351
+ }
352
+ }
353
+
354
+ .header-button-icon-end {
355
+ margin-inline-start: 0;
356
+ column-gap: awsui.$space-xs;
357
+ justify-content: space-between;
358
+
359
+ // For non-container variants the icon lives inside this button, so it
360
+ // needs to be a full-width flex row to push the icon to the inline-end.
361
+ // The container variant renders the icon outside InternalHeader, so
362
+ // making this element a block-level flex container with 100% width would
363
+ // force the title to consume all available space and push the info slot
364
+ // (rendered as a sibling inside InternalHeader) to a new line.
365
+ &:not(.header-container-button) {
366
+ display: flex;
367
+ inline-size: 100%;
368
+
369
+ > .header-text {
370
+ flex: 1;
371
+ min-inline-size: 0;
372
+ }
373
+ }
374
+ }
375
+
376
+ .icon-container-end {
377
+ margin-inline-start: auto;
378
+ margin-inline-end: 0;
379
+ flex-shrink: 0;
380
+
381
+ // Stretch the button to fill the parent's block-size so the entire caret
382
+ // column is clickable/hoverable, matching start-position behavior.
383
+ align-self: stretch;
384
+ align-items: flex-start;
385
+
386
+ // Reset native <button> chrome for the outside caret in end-icon-position.
387
+ // The navigation variant already has its own reset via .header-navigation > .icon-container
388
+ // so this is harmless-but-redundant for that path, and necessary for default/container.
389
+ border-block: none;
390
+ border-inline: none;
391
+ background: none;
392
+ padding-block: 0;
393
+ padding-inline: 0;
394
+ cursor: pointer;
395
+ font: inherit;
396
+ color: inherit;
397
+
398
+ @include focus-visible.when-visible {
399
+ @include styles.focus-highlight(2px);
400
+ }
401
+
402
+ // Align the navigation end-layout caret to the first line of header text.
403
+ // The header link has padding-block equal to (item-height - line-height) / 2
404
+ // (set by side-navigation). Mirror that on the caret so it sits at the same
405
+ // vertical position as the first text line — identical to the start layout.
406
+ .header-icon-end.wrapper-navigation > & {
407
+ padding-block-start: calc((#{awsui.$size-side-navigation-item-height} - #{awsui.$line-height-body-m}) / 2);
408
+ }
409
+
410
+ // In the end layout the icon is a flex child governed by the parent's
411
+ // align-items: flex-start. Reset the inset-block-start offsets that the
412
+ // start layout uses (they assume relative positioning within text flow)
413
+ // so the icon aligns with the first line of header text via flex.
414
+ @include theming.one-theme-only {
415
+ // Override the base .icon-container one-theme rule that re-introduces
416
+ // margin-inline-end via the margin-inline shorthand (equal specificity,
417
+ // later source order wins).
418
+ margin-inline-end: 0;
419
+ &:not(.icon-container-container) {
420
+ inset-block-start: $icon-offset-block;
421
+ }
422
+ > .icon {
423
+ inset-block-start: 0;
424
+ }
425
+ }
426
+ }
427
+
428
+ // Semantic wrapper around HeadingTag + actions in non-container variants
429
+ .header-icon-end > .header-content {
430
+ flex: 1;
431
+ min-inline-size: 0;
432
+ }
433
+
434
+ .header-icon-end > .header-navigation-content {
435
+ flex: 1;
436
+ min-inline-size: 0;
437
+ }
438
+
439
+ // Navigation variant, start icon: align the expand caret to the first line of text
440
+ // when header paddings are disabled (side-navigation use case).
441
+ // Mirrors the end-icon alignment at .icon-container-end (same formula).
442
+ .disable-header-paddings.wrapper-navigation:not(.header-icon-end) > .icon-container {
443
+ display: grid;
444
+ align-items: flex-start;
445
+ padding-block: calc((#{awsui.$size-side-navigation-item-height} - #{awsui.$line-height-body-m}) / 2);
446
+ }
@@ -28,6 +28,47 @@
28
28
  }
29
29
  }
30
30
 
31
+ %input-default-styles {
32
+ background-color: var(#{custom-props.$styleBackgroundDefault}, awsui.$color-background-input-default);
33
+ border-block: awsui.$border-width-field solid
34
+ var(#{custom-props.$styleBorderColorDefault}, awsui.$color-border-input-default);
35
+ border-inline: awsui.$border-width-field solid
36
+ var(#{custom-props.$styleBorderColorDefault}, awsui.$color-border-input-default);
37
+ box-shadow: var(#{custom-props.$styleBoxShadowDefault});
38
+ }
39
+
40
+ %input-hover-styles {
41
+ border-color: var(
42
+ #{custom-props.$styleBorderColorHover},
43
+ var(#{custom-props.$styleBorderColorDefault}, awsui.$color-border-input-default)
44
+ );
45
+ background-color: var(
46
+ #{custom-props.$styleBackgroundHover},
47
+ var(#{custom-props.$styleBackgroundDefault}, awsui.$color-background-input-default)
48
+ );
49
+ box-shadow: var(#{custom-props.$styleBoxShadowHover}, #{custom-props.$styleBoxShadowDefault});
50
+ }
51
+
52
+ %input-readonly-styles {
53
+ @include styles.form-readonly-element(
54
+ $background-color: var(
55
+ #{custom-props.$styleBackgroundReadonly},
56
+ var(#{custom-props.$styleBackgroundDefault}, awsui.$color-background-input-default)
57
+ ),
58
+ $border-color: var(
59
+ #{custom-props.$styleBorderColorReadonly},
60
+ var(#{custom-props.$styleBorderColorDefault}, awsui.$color-border-input-disabled)
61
+ )
62
+ );
63
+ }
64
+
65
+ %input-focus-styles {
66
+ @include styles.form-focus-element(
67
+ $border-color: var(#{custom-props.$styleBorderColorFocus}, awsui.$color-border-input-focused),
68
+ $box-shadow: var(#{custom-props.$styleBoxShadowFocus}, foundation.$box-shadow-focused-light)
69
+ );
70
+ }
71
+
31
72
  .root {
32
73
  /* used in test-utils for component to distinguish input from other input-like components, for example autosuggest */
33
74
  }
@@ -40,54 +81,31 @@
40
81
  inline-size: 100%;
41
82
  cursor: text;
42
83
  box-sizing: border-box;
43
- background-color: var(#{custom-props.$styleBackgroundDefault}, awsui.$color-background-input-default);
44
84
  border-start-start-radius: styles.$control-border-radius;
45
85
  border-start-end-radius: styles.$control-border-radius;
46
86
  border-end-start-radius: styles.$control-border-radius;
47
87
  border-end-end-radius: styles.$control-border-radius;
48
88
 
49
- border-block: awsui.$border-width-field solid
50
- var(#{custom-props.$styleBorderColorDefault}, awsui.$color-border-input-default);
51
- border-inline: awsui.$border-width-field solid
52
- var(#{custom-props.$styleBorderColorDefault}, awsui.$color-border-input-default);
53
-
54
- box-shadow: var(#{custom-props.$styleBoxShadowDefault});
55
-
56
89
  @include styles.font-body-m;
57
90
  min-block-size: awsui.$size-vertical-input;
58
91
 
92
+ @extend %input-default-styles;
93
+
59
94
  &:hover {
60
- border-color: var(
61
- #{custom-props.$styleBorderColorHover},
62
- var(#{custom-props.$styleBorderColorDefault}, awsui.$color-border-input-default)
63
- );
64
95
  color: var(
65
96
  #{custom-props.$styleColorHover},
66
97
  var(#{custom-props.$styleBorderColorDefault}, awsui.$color-text-body-default)
67
98
  );
68
- background-color: var(
69
- #{custom-props.$styleBackgroundHover},
70
- var(#{custom-props.$styleBackgroundDefault}, awsui.$color-background-input-default)
71
- );
72
- box-shadow: var(#{custom-props.$styleBoxShadowHover}, #{custom-props.$styleBoxShadowDefault});
99
+ @extend %input-hover-styles;
73
100
  }
74
101
 
75
102
  &.input-readonly {
76
- @include styles.form-readonly-element(
77
- $background-color: var(
78
- #{custom-props.$styleBackgroundReadonly},
79
- var(#{custom-props.$styleBackgroundDefault}, awsui.$color-background-input-default)
80
- ),
81
- $border-color: var(
82
- #{custom-props.$styleBorderColorReadonly},
83
- var(#{custom-props.$styleBorderColorDefault}, awsui.$color-border-input-disabled)
84
- )
85
- );
86
103
  color: var(
87
104
  #{custom-props.$styleColorReadonly},
88
105
  var(#{custom-props.$styleColorDefault}, awsui.$color-text-body-default)
89
106
  );
90
107
  box-shadow: var(#{custom-props.$styleBoxShadowReadonly});
108
+ @extend %input-readonly-styles;
91
109
  }
92
110
 
93
111
  @include placeholder {
@@ -100,12 +118,9 @@
100
118
  }
101
119
 
102
120
  &:focus {
103
- @include styles.form-focus-element(
104
- $border-color: var(#{custom-props.$styleBorderColorFocus}, awsui.$color-border-input-focused),
105
- $box-shadow: var(#{custom-props.$styleBoxShadowFocus}, foundation.$box-shadow-focused-light)
106
- );
107
121
  color: var(#{custom-props.$styleColorFocus}, awsui.$color-text-body-default);
108
122
  background-color: var(#{custom-props.$styleBackgroundFocus}, awsui.$color-background-input-default);
123
+ @extend %input-focus-styles;
109
124
  }
110
125
 
111
126
  &:disabled {
@@ -134,7 +149,7 @@
134
149
  $border-color: var(#{custom-props.$styleBorderColorDefault}, awsui.$color-text-status-error),
135
150
  $focus-box-shadow: var(#{custom-props.$styleBoxShadowFocus}, foundation.$box-shadow-focused-light-invalid)
136
151
  );
137
- &.input-has-icon-left {
152
+ &.input-has-icon-start {
138
153
  padding-inline-start: calc(
139
154
  #{styles.$control-icon-horizontal-padding} -
140
155
  (#{styles.$invalid-control-left-border} - #{awsui.$border-width-field})
@@ -148,7 +163,7 @@
148
163
  $border-color: var(#{custom-props.$styleBorderColorDefault}, awsui.$color-text-status-warning),
149
164
  $focus-box-shadow: var(#{custom-props.$styleBoxShadowFocus}, foundation.$box-shadow-focused-light-invalid)
150
165
  );
151
- &.input-has-icon-left {
166
+ &.input-has-icon-start {
152
167
  padding-inline-start: calc(
153
168
  #{styles.$control-icon-horizontal-padding} -
154
169
  (#{styles.$invalid-control-left-border} - #{awsui.$border-width-field})
@@ -169,10 +184,10 @@
169
184
  display: none;
170
185
  }
171
186
  }
172
- &.input-has-icon-left {
187
+ &.input-has-icon-start {
173
188
  padding-inline-start: styles.$control-icon-horizontal-padding;
174
189
  }
175
- &.input-has-icon-right {
190
+ &.input-has-icon-end {
176
191
  padding-inline-end: styles.$control-icon-horizontal-padding;
177
192
  }
178
193
  &.input-has-no-border-radius {
@@ -188,14 +203,14 @@
188
203
  position: relative;
189
204
  }
190
205
 
191
- .input-icon-left {
206
+ .input-icon-start {
192
207
  position: absolute;
193
208
  pointer-events: none;
194
209
  inset-inline-start: styles.$control-icon-horizontal-offset;
195
210
  inset-block-start: styles.$control-icon-vertical-offset;
196
211
  }
197
212
 
198
- .input-icon-right {
213
+ .input-icon-end {
199
214
  position: absolute;
200
215
  inset-block-start: calc(#{styles.$control-icon-vertical-offset} - #{awsui.$space-xxxs});
201
216
  inset-inline-end: calc(#{styles.$control-icon-horizontal-offset} - #{awsui.$space-xxs});
@@ -224,3 +239,179 @@
224
239
  .inline-label {
225
240
  @include forms.inline-label;
226
241
  }
242
+
243
+ .input-adorned-container {
244
+ display: flex;
245
+ align-items: stretch;
246
+ inline-size: 100%;
247
+ box-sizing: border-box;
248
+ color: var(#{custom-props.$styleColorDefault}, awsui.$color-text-form-secondary);
249
+ border-start-start-radius: styles.$control-border-radius;
250
+ border-start-end-radius: styles.$control-border-radius;
251
+ border-end-start-radius: styles.$control-border-radius;
252
+ border-end-end-radius: styles.$control-border-radius;
253
+ min-block-size: awsui.$size-vertical-input;
254
+
255
+ @extend %input-default-styles;
256
+
257
+ &:hover {
258
+ @extend %input-hover-styles;
259
+ color: var(
260
+ #{custom-props.$styleColorHover},
261
+ var(#{custom-props.$styleColorDefault}, awsui.$color-text-form-secondary)
262
+ );
263
+ }
264
+
265
+ &.input-adorned-container-readonly {
266
+ @extend %input-readonly-styles;
267
+ color: var(
268
+ #{custom-props.$styleColorReadonly},
269
+ var(#{custom-props.$styleColorDefault}, awsui.$color-text-form-secondary)
270
+ );
271
+ }
272
+
273
+ &:focus-within {
274
+ @extend %input-focus-styles;
275
+ color: var(
276
+ #{custom-props.$styleColorFocus},
277
+ var(#{custom-props.$styleColorDefault}, awsui.$color-text-form-secondary)
278
+ );
279
+ }
280
+
281
+ &.input-adorned-container-invalid {
282
+ @include styles.form-invalid-control(
283
+ $color: var(#{custom-props.$styleColorDefault}, awsui.$color-text-status-error),
284
+ $border-color: var(#{custom-props.$styleBorderColorDefault}, awsui.$color-text-status-error),
285
+ $focus-box-shadow: var(#{custom-props.$styleBoxShadowFocus}, foundation.$box-shadow-focused-light-invalid)
286
+ ) {
287
+ padding-inline-start: 0;
288
+ }
289
+
290
+ &:focus-within {
291
+ box-shadow: var(#{custom-props.$styleBoxShadowFocus}, foundation.$box-shadow-focused-light-invalid);
292
+ }
293
+ }
294
+
295
+ &.input-adorned-container-warning {
296
+ @include styles.form-warning-control(
297
+ $color: var(#{custom-props.$styleColorDefault}, awsui.$color-text-status-warning),
298
+ $border-color: var(#{custom-props.$styleBorderColorDefault}, awsui.$color-text-status-warning),
299
+ $focus-box-shadow: var(#{custom-props.$styleBoxShadowFocus}, foundation.$box-shadow-focused-light-invalid)
300
+ ) {
301
+ padding-inline-start: 0;
302
+ }
303
+
304
+ &:focus-within {
305
+ box-shadow: var(#{custom-props.$styleBoxShadowFocus}, foundation.$box-shadow-focused-light-invalid);
306
+ }
307
+ }
308
+
309
+ &.input-adorned-container-disabled {
310
+ @include styles.form-disabled-element(
311
+ $background-color: var(#{custom-props.$styleBackgroundDisabled}, awsui.$color-background-input-disabled),
312
+ $border-color: var(#{custom-props.$styleBorderColorDisabled}, awsui.$color-border-input-disabled),
313
+ $color: var(#{custom-props.$styleColorDisabled}, awsui.$color-text-input-disabled),
314
+ $cursor: default
315
+ );
316
+ box-shadow: var(#{custom-props.$styleBoxShadowDisabled});
317
+ }
318
+ }
319
+
320
+ .input-prefix,
321
+ .input-suffix {
322
+ display: flex;
323
+ align-items: center;
324
+ flex-shrink: 1;
325
+ max-inline-size: calc(50% - 6rem);
326
+ min-inline-size: 0;
327
+ padding-block: styles.$control-padding-vertical;
328
+ padding-inline: styles.$control-padding-horizontal;
329
+ color: inherit;
330
+ @include styles.font-body-m;
331
+ }
332
+
333
+ .input-adornment-content {
334
+ display: block;
335
+ flex: 1;
336
+ min-inline-size: 0;
337
+ overflow: hidden;
338
+ text-overflow: ellipsis;
339
+ white-space: nowrap;
340
+ }
341
+
342
+ .input-adornment-divider {
343
+ display: block;
344
+ flex-shrink: 0;
345
+ inline-size: awsui.$border-width-field;
346
+ background-color: awsui.$color-border-divider-default;
347
+ align-self: stretch;
348
+ }
349
+
350
+ .input-adorned {
351
+ flex: 1;
352
+ min-inline-size: 0;
353
+ border-block: none;
354
+ border-inline: none;
355
+ border-start-start-radius: 0;
356
+ border-start-end-radius: 0;
357
+ border-end-start-radius: 0;
358
+ border-end-end-radius: 0;
359
+ background-color: transparent;
360
+ box-shadow: none;
361
+ min-block-size: unset;
362
+
363
+ &.input:focus {
364
+ border-block: 0;
365
+ border-inline: 0;
366
+ box-shadow: none;
367
+ outline: none;
368
+ }
369
+
370
+ &:hover {
371
+ border-color: transparent;
372
+ background-color: transparent;
373
+ }
374
+
375
+ &:disabled {
376
+ background-color: transparent;
377
+ border-color: transparent;
378
+ border-block: 0;
379
+ border-inline: 0;
380
+ }
381
+
382
+ &.input-readonly {
383
+ background-color: transparent;
384
+ border-color: transparent;
385
+ border-block: 0;
386
+ border-inline: 0;
387
+ }
388
+
389
+ &.input-invalid,
390
+ &.input-warning {
391
+ padding-inline-start: styles.$control-padding-horizontal;
392
+ border-block: 0;
393
+ border-inline: 0;
394
+ border-inline-start-width: 0;
395
+ box-shadow: none;
396
+
397
+ &:focus {
398
+ border-block: 0;
399
+ border-inline: 0;
400
+ box-shadow: none;
401
+ outline: none;
402
+ }
403
+ }
404
+ }
405
+
406
+ .input-adorned-container-invalid,
407
+ .input-adorned-container-warning {
408
+ > .input-prefix,
409
+ > .input-adorned:first-child {
410
+ padding-inline-start: styles.$invalid-control-left-padding;
411
+ }
412
+
413
+ > .input-prefix,
414
+ > .input-suffix {
415
+ max-inline-size: calc(50% - 6rem + (#{styles.$invalid-control-left-border} - #{awsui.$border-width-field}) / 2);
416
+ }
417
+ }
@@ -32,6 +32,7 @@
32
32
  }
33
33
 
34
34
  .marker {
35
+ @include styles.text-wrapping;
35
36
  display: inline-flex;
36
37
  align-items: flex-start;
37
38
  padding-block: 0;
@@ -1,6 +1,6 @@
1
1
 
2
2
  // Build environment
3
- $awsui-commit-hash: "154aba5d";
3
+ $awsui-commit-hash: "2041ec8f";
4
4
  // Manually managed CSS-variables
5
5
  $maxContentWidth: --awsui-max-content-width-esndbs;
6
6
  $minContentWidth: --awsui-min-content-width-esndbs;
@@ -18,3 +18,17 @@
18
18
  .tokens {
19
19
  margin-block-start: awsui.$space-scaled-xs;
20
20
  }
21
+
22
+ // Custom dropdown header/footer regions (renderDropdownHeader / renderDropdownFooter). Duplicated in the
23
+ // Select stylesheet. The header can sit directly above the options list, so it is lifted with z-index to
24
+ // keep focusable content's focus ring above the list; the footer sits below the list with natural
25
+ // clearance and needs no lift.
26
+ .dropdown-header {
27
+ inline-size: 100%;
28
+ position: relative;
29
+ z-index: 4;
30
+ }
31
+
32
+ .dropdown-footer {
33
+ inline-size: 100%;
34
+ }
@@ -98,8 +98,14 @@
98
98
  color: awsui.$color-text-interactive-default;
99
99
  }
100
100
 
101
+ .pages-compact {
102
+ color: awsui.$color-text-pagination-page-number-default;
103
+ white-space: nowrap;
104
+ }
105
+
101
106
  .page-item,
102
- .dots {
107
+ .dots,
108
+ .pages-compact {
103
109
  margin-block: styles.$control-padding-vertical;
104
110
  margin-inline: awsui.$space-xxs;
105
111
  text-align: center;
@@ -114,6 +120,7 @@
114
120
  }
115
121
  }
116
122
 
117
- .root-disabled > .dots {
123
+ .root-disabled > .dots,
124
+ .root-disabled > .pages-compact {
118
125
  color: awsui.$color-text-interactive-disabled;
119
126
  }
@@ -0,0 +1,8 @@
1
+ /*
2
+ Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ SPDX-License-Identifier: Apache-2.0
4
+ */
5
+
6
+ .pages-compact-text {
7
+ /* used in test-utils or tests */
8
+ }
@@ -4,8 +4,21 @@
4
4
  */
5
5
 
6
6
  @use '../internal/styles' as styles;
7
- @use '../internal/styles/tokens' as awsui;
8
7
 
9
8
  .root {
10
9
  @include styles.styles-reset;
11
10
  }
11
+
12
+ // Custom dropdown header/footer regions (renderDropdownHeader / renderDropdownFooter). Duplicated in the
13
+ // Multiselect stylesheet. The header can sit directly above the options list, so it is lifted with z-index
14
+ // to keep focusable content's focus ring above the list; the footer sits below the list with natural
15
+ // clearance and needs no lift.
16
+ .dropdown-header {
17
+ inline-size: 100%;
18
+ position: relative;
19
+ z-index: 4;
20
+ }
21
+
22
+ .dropdown-footer {
23
+ inline-size: 100%;
24
+ }