@aws-amplify/ui-react 6.2.1 → 6.3.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 (47) hide show
  1. package/dist/{Field-d47a49dc.js → Field-4b189104.js} +11 -0
  2. package/dist/esm/PrimitiveCatalog.mjs +285 -17
  3. package/dist/esm/components/AccountSettings/ChangePassword/ChangePassword.mjs +1 -0
  4. package/dist/esm/components/AccountSettings/ChangePassword/defaults.mjs +1 -0
  5. package/dist/esm/components/AccountSettings/DeleteUser/DeleteUser.mjs +1 -0
  6. package/dist/esm/components/AccountSettings/DeleteUser/defaults.mjs +1 -0
  7. package/dist/esm/components/AccountSettings/shared/Defaults.mjs +1 -0
  8. package/dist/esm/index.mjs +1 -0
  9. package/dist/esm/internal.mjs +4 -0
  10. package/dist/esm/primitives/Avatar/Avatar.mjs +23 -0
  11. package/dist/esm/primitives/Icon/icons/IconAssistant.mjs +15 -0
  12. package/dist/esm/primitives/Icon/icons/IconAttach.mjs +15 -0
  13. package/dist/esm/primitives/Icon/icons/IconSend.mjs +15 -0
  14. package/dist/esm/primitives/Icon/icons/IconUser.mjs +15 -0
  15. package/dist/esm/primitives/ScrollView/ScrollView.mjs +21 -1
  16. package/dist/esm/primitives/TextArea/AutoresizeTextarea.mjs +19 -0
  17. package/dist/esm/primitives/TextArea/useAutoresizeTextarea.mjs +28 -0
  18. package/dist/esm/primitives/TextAreaField/TextAreaField.mjs +3 -2
  19. package/dist/esm/primitives/index.mjs +1 -0
  20. package/dist/esm/version.mjs +1 -1
  21. package/dist/index.js +98 -28
  22. package/dist/internal.js +320 -18
  23. package/dist/styles/AIConversation.css +108 -0
  24. package/dist/styles/AIConversation.layer.css +110 -0
  25. package/dist/styles/avatar.css +111 -0
  26. package/dist/styles/avatar.layer.css +113 -0
  27. package/dist/styles/base.css +29 -0
  28. package/dist/styles/base.layer.css +29 -0
  29. package/dist/styles.css +250 -0
  30. package/dist/styles.layer.css +250 -0
  31. package/dist/types/primitives/Avatar/Avatar.d.ts +6 -0
  32. package/dist/types/primitives/Avatar/index.d.ts +2 -0
  33. package/dist/types/primitives/Avatar/types.d.ts +36 -0
  34. package/dist/types/primitives/Icon/context/IconsContext.d.ts +2 -0
  35. package/dist/types/primitives/Icon/icons/IconAssistant.d.ts +5 -0
  36. package/dist/types/primitives/Icon/icons/IconAttach.d.ts +5 -0
  37. package/dist/types/primitives/Icon/icons/IconSend.d.ts +5 -0
  38. package/dist/types/primitives/Icon/icons/IconUser.d.ts +5 -0
  39. package/dist/types/primitives/Icon/icons/index.d.ts +4 -0
  40. package/dist/types/primitives/TextArea/AutoresizeTextarea.d.ts +3 -0
  41. package/dist/types/primitives/TextArea/index.d.ts +1 -0
  42. package/dist/types/primitives/TextArea/useAutoresizeTextarea.d.ts +1 -0
  43. package/dist/types/primitives/components.d.ts +1 -0
  44. package/dist/types/primitives/types/scrollView.d.ts +5 -0
  45. package/dist/types/primitives/types/textAreaField.d.ts +7 -0
  46. package/dist/types/version.d.ts +1 -1
  47. package/package.json +3 -3
@@ -84,6 +84,35 @@
84
84
  --amplify-components-autocomplete-menu-loading-gap: var(--amplify-space-xxxs);
85
85
  --amplify-components-autocomplete-menu-space-shared-padding-block: var(--amplify-space-xs);
86
86
  --amplify-components-autocomplete-menu-space-shared-padding-inline: var(--amplify-space-small);
87
+ --amplify-components-avatar-color: var(--amplify-colors-font-tertiary);
88
+ --amplify-components-avatar-line-height: 1;
89
+ --amplify-components-avatar-font-weight: var(--amplify-font-weights-semibold);
90
+ --amplify-components-avatar-font-size: var(--amplify-font-sizes-small);
91
+ --amplify-components-avatar-text-align: center;
92
+ --amplify-components-avatar-width: var(--amplify-font-sizes-xxl);
93
+ --amplify-components-avatar-height: var(--amplify-font-sizes-xxl);
94
+ --amplify-components-avatar-background-color: var(--amplify-colors-background-tertiary);
95
+ --amplify-components-avatar-border-radius: 100%;
96
+ --amplify-components-avatar-border-color: var(--amplify-colors-border-primary);
97
+ --amplify-components-avatar-border-width: var(--amplify-border-widths-medium);
98
+ --amplify-components-avatar-info-color: var(--amplify-colors-font-info);
99
+ --amplify-components-avatar-info-background-color: var(--amplify-colors-background-info);
100
+ --amplify-components-avatar-info-border-color: var(--amplify-colors-border-info);
101
+ --amplify-components-avatar-warning-color: var(--amplify-colors-font-warning);
102
+ --amplify-components-avatar-warning-background-color: var(--amplify-colors-background-warning);
103
+ --amplify-components-avatar-warning-border-color: var(--amplify-colors-border-warning);
104
+ --amplify-components-avatar-success-color: var(--amplify-colors-font-success);
105
+ --amplify-components-avatar-success-background-color: var(--amplify-colors-background-success);
106
+ --amplify-components-avatar-success-border-color: var(--amplify-colors-border-success);
107
+ --amplify-components-avatar-error-color: var(--amplify-colors-font-error);
108
+ --amplify-components-avatar-error-background-color: var(--amplify-colors-background-error);
109
+ --amplify-components-avatar-error-border-color: var(--amplify-colors-border-error);
110
+ --amplify-components-avatar-small-font-size: var(--amplify-font-sizes-xs);
111
+ --amplify-components-avatar-small-width: var(--amplify-font-sizes-xl);
112
+ --amplify-components-avatar-small-height: var(--amplify-font-sizes-xl);
113
+ --amplify-components-avatar-large-font-size: var(--amplify-font-sizes-medium);
114
+ --amplify-components-avatar-large-width: var(--amplify-font-sizes-xxxl);
115
+ --amplify-components-avatar-large-height: var(--amplify-font-sizes-xxxl);
87
116
  --amplify-components-badge-color: var(--amplify-colors-font-primary);
88
117
  --amplify-components-badge-line-height: 1;
89
118
  --amplify-components-badge-font-weight: var(--amplify-font-weights-semibold);
@@ -3422,6 +3451,118 @@ strong.amplify-text {
3422
3451
  gap: var(--amplify-space-medium);
3423
3452
  }
3424
3453
 
3454
+ .amplify-avatar {
3455
+ --avatar-color: var(--amplify-components-avatar-color);
3456
+ --avatar-background-color: var(--amplify-components-avatar-background-color);
3457
+ --avatar-filled-background-color: var(--amplify-components-avatar-color);
3458
+ --avatar-filled-color: var(--amplify-components-avatar-background-color);
3459
+ --avatar-border-color: var(--amplify-components-avatar-border-color);
3460
+ --avatar-size: var(--amplify-components-avatar-width);
3461
+ --amplify-components-icon-height: 100%;
3462
+ display: inline-flex;
3463
+ align-items: center;
3464
+ justify-content: center;
3465
+ color: var(--avatar-color);
3466
+ background-color: var(--avatar-background-color);
3467
+ font-weight: var(--amplify-components-avatar-font-weight);
3468
+ font-size: var(--amplify-components-avatar-font-size);
3469
+ width: var(--amplify-components-avatar-width);
3470
+ height: var(--amplify-components-avatar-height);
3471
+ overflow: hidden;
3472
+ border-radius: var(--amplify-components-avatar-border-radius);
3473
+ }
3474
+ .amplify-avatar--filled {
3475
+ background-color: var(--avatar-filled-background-color);
3476
+ color: var(--avatar-filled-color);
3477
+ }
3478
+ .amplify-avatar--outlined {
3479
+ border-width: var(--amplify-components-avatar-border-width);
3480
+ border-style: solid;
3481
+ padding: var(--amplify-components-avatar-border-width);
3482
+ border-color: var(--avatar-border-color);
3483
+ background-color: transparent;
3484
+ color: var(--avatar-color);
3485
+ }
3486
+ .amplify-avatar--small {
3487
+ --avatar-size: var(--amplify-components-avatar-small-width);
3488
+ width: var(--amplify-components-avatar-small-width);
3489
+ height: var(--amplify-components-avatar-small-height);
3490
+ font-size: var(--amplify-components-avatar-small-font-size);
3491
+ }
3492
+ .amplify-avatar--large {
3493
+ --avatar-size: var(--amplify-components-avatar-large-width);
3494
+ width: var(--amplify-components-avatar-large-width);
3495
+ height: var(--amplify-components-avatar-large-height);
3496
+ font-size: var(--amplify-components-avatar-large-font-size);
3497
+ }
3498
+ .amplify-avatar--warning {
3499
+ --avatar-border-color: var(
3500
+ --amplify-components-avatar-warning-border-color
3501
+ );
3502
+ --avatar-background-color: var(
3503
+ --amplify-components-avatar-warning-background-color
3504
+ );
3505
+ --avatar-color: var(--amplify-components-avatar-warning-color);
3506
+ --avatar-filled-background-color: var(
3507
+ --amplify-components-avatar-warning-color
3508
+ );
3509
+ --avatar-filled-color: var(
3510
+ --amplify-components-avatar-warning-background-color
3511
+ );
3512
+ }
3513
+ .amplify-avatar--error {
3514
+ --avatar-border-color: var(--amplify-components-avatar-error-border-color);
3515
+ --avatar-background-color: var(
3516
+ --amplify-components-avatar-error-background-color
3517
+ );
3518
+ --avatar-color: var(--amplify-components-avatar-error-color);
3519
+ --avatar-filled-background-color: var(
3520
+ --amplify-components-avatar-error-color
3521
+ );
3522
+ --avatar-filled-color: var(
3523
+ --amplify-components-avatar-error-background-color
3524
+ );
3525
+ }
3526
+ .amplify-avatar--info {
3527
+ --avatar-border-color: var(--amplify-components-avatar-info-border-color);
3528
+ --avatar-background-color: var(
3529
+ --amplify-components-avatar-info-background-color
3530
+ );
3531
+ --avatar-color: var(--amplify-components-avatar-info-color);
3532
+ --avatar-filled-background-color: var(
3533
+ --amplify-components-avatar-info-color
3534
+ );
3535
+ --avatar-filled-color: var(
3536
+ --amplify-components-avatar-info-background-color
3537
+ );
3538
+ }
3539
+ .amplify-avatar--success {
3540
+ --avatar-border-color: var(
3541
+ --amplify-components-avatar-success-border-color
3542
+ );
3543
+ --avatar-background-color: var(
3544
+ --amplify-components-avatar-success-background-color
3545
+ );
3546
+ --avatar-color: var(--amplify-components-avatar-success-color);
3547
+ --avatar-filled-background-color: var(
3548
+ --amplify-components-avatar-success-color
3549
+ );
3550
+ --avatar-filled-color: var(
3551
+ --amplify-components-avatar-success-background-color
3552
+ );
3553
+ }
3554
+ .amplify-avatar__icon {
3555
+ display: flex;
3556
+ font-size: calc(var(--avatar-size) * 0.6);
3557
+ }
3558
+ .amplify-avatar__image {
3559
+ width: 100%;
3560
+ height: 100%;
3561
+ -o-object-fit: cover;
3562
+ object-fit: cover;
3563
+ display: block;
3564
+ }
3565
+
3425
3566
  .amplify-breadcrumbs__list {
3426
3567
  display: flex;
3427
3568
  flex-wrap: var(--amplify-components-breadcrumbs-flex-wrap);
@@ -6185,6 +6326,115 @@ html[dir=rtl] .amplify-field-group__inner-start {
6185
6326
  gap: var(--amplify-space-small);
6186
6327
  }
6187
6328
 
6329
+ .amplify-ai-conversation {
6330
+ display: flex;
6331
+ flex-direction: column;
6332
+ height: 100%;
6333
+ }
6334
+ .amplify-ai-conversation__message {
6335
+ --content-bg: transparent;
6336
+ display: flex;
6337
+ flex-direction: var(--flex-direction);
6338
+ gap: var(--amplify-space-small);
6339
+ padding: var(--amplify-space-small);
6340
+ }
6341
+ .amplify-ai-conversation__message__list {
6342
+ display: flex;
6343
+ flex-direction: column;
6344
+ }
6345
+ .amplify-ai-conversation__message__avatar {
6346
+ flex-shrink: 0;
6347
+ }
6348
+ .amplify-ai-conversation__message__sender {
6349
+ display: flex;
6350
+ flex-direction: var(--flex-direction);
6351
+ align-items: center;
6352
+ height: var(--amplify-components-avatar-height);
6353
+ gap: var(--amplify-space-small);
6354
+ }
6355
+ .amplify-ai-conversation__message__sender__username {
6356
+ font-weight: bold;
6357
+ }
6358
+ .amplify-ai-conversation__message__sender__timestamp {
6359
+ color: var(--amplify-colors-font-tertiary);
6360
+ font-size: var(--amplify-font-sizes-small);
6361
+ }
6362
+ .amplify-ai-conversation__message__body {
6363
+ display: flex;
6364
+ flex-direction: column;
6365
+ align-items: var(--body-align-items);
6366
+ gap: var(--amplify-space-xs);
6367
+ }
6368
+ .amplify-ai-conversation__message__content {
6369
+ background-color: var(--content-bg);
6370
+ border-radius: var(--amplify-radii-medium);
6371
+ padding: var(--content-padding);
6372
+ }
6373
+ .amplify-ai-conversation__message__actions {
6374
+ display: flex;
6375
+ flex-direction: row;
6376
+ }
6377
+ .amplify-ai-conversation__message--bubble {
6378
+ --content-bg: var(--bg-color);
6379
+ --content-padding: var(--amplify-space-xxs) var(--amplify-space-xs);
6380
+ --flex-direction: row-reverse;
6381
+ --body-align-items: flex-end;
6382
+ }
6383
+ .amplify-ai-conversation__message--user {
6384
+ --bg-color: var(--amplify-colors-background-secondary);
6385
+ }
6386
+ .amplify-ai-conversation__message--assistant {
6387
+ --bg-color: var(--amplify-colors-primary-10);
6388
+ --flex-direction: row;
6389
+ --body-align-items: flex-start;
6390
+ }
6391
+ .amplify-ai-conversation__form {
6392
+ display: flex;
6393
+ flex-direction: row;
6394
+ align-items: flex-start;
6395
+ gap: var(--amplify-space-small);
6396
+ }
6397
+ .amplify-ai-conversation__form__dropzone {
6398
+ text-align: initial;
6399
+ border: none;
6400
+ padding: var(--amplify-space-xs);
6401
+ }
6402
+ .amplify-ai-conversation__attachment {
6403
+ display: flex;
6404
+ flex-direction: row;
6405
+ padding-block: var(--amplify-space-xxxs);
6406
+ padding-inline: var(--amplify-space-xs);
6407
+ border-width: var(--amplify-border-widths-small);
6408
+ border-style: solid;
6409
+ border-color: var(--amplify-colors-border-secondary);
6410
+ border-radius: var(--amplify-radii-small);
6411
+ align-items: center;
6412
+ gap: var(--amplify-space-xs);
6413
+ font-size: var(--amplify-font-sizes-small);
6414
+ }
6415
+ .amplify-ai-conversation__attachment__list {
6416
+ display: flex;
6417
+ flex-direction: row;
6418
+ flex-wrap: wrap;
6419
+ gap: var(--amplify-space-small);
6420
+ padding-block-start: var(--amplify-space-small);
6421
+ }
6422
+ .amplify-ai-conversation__attachment__image {
6423
+ width: 1rem;
6424
+ height: 1rem;
6425
+ -o-object-fit: cover;
6426
+ object-fit: cover;
6427
+ }
6428
+ .amplify-ai-conversation__attachment__size {
6429
+ color: var(--amplify-colors-font-tertiary);
6430
+ }
6431
+ .amplify-ai-conversation__attachment__remove {
6432
+ padding: var(--amplify-space-xxs);
6433
+ }
6434
+ .amplify-ai-conversation__prompt {
6435
+ font-weight: normal;
6436
+ }
6437
+
6188
6438
  .amplify-label-start {
6189
6439
  flex-direction: row;
6190
6440
  }
@@ -0,0 +1,6 @@
1
+ import { ForwardRefPrimitive } from '../types';
2
+ import { BaseAvatarProps } from './types';
3
+ /**
4
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/avatar)
5
+ */
6
+ export declare const Avatar: ForwardRefPrimitive<BaseAvatarProps, 'span'>;
@@ -0,0 +1,2 @@
1
+ export { Avatar } from './Avatar';
2
+ export { AvatarProps } from './types';
@@ -0,0 +1,36 @@
1
+ import { Sizes } from '../types/base';
2
+ import { ElementType, PrimitiveProps, BaseViewProps } from '../types/view';
3
+ type AvatarVariations = 'default' | 'filled' | 'outlined';
4
+ type AvatarColorThemes = 'info' | 'error' | 'warning' | 'success';
5
+ type AvatarSizes = Sizes;
6
+ export interface BaseAvatarProps extends BaseViewProps {
7
+ /**
8
+ * @description
9
+ * If you provide a src it will be used as the avatar image
10
+ */
11
+ src?: string;
12
+ /**
13
+ * @description
14
+ * The alt text for the avatar image
15
+ */
16
+ alt?: string;
17
+ /**
18
+ * @description
19
+ * The variation property will affect how the avatar looks, whether
20
+ * it is outlined, filled, or the default style.
21
+ */
22
+ variation?: AvatarVariations;
23
+ /**
24
+ * @description
25
+ * The colorTheme property will affect the color of the avatar. Depending
26
+ * on the variation the colorTheme will change background, border, and text colors
27
+ */
28
+ colorTheme?: AvatarColorThemes;
29
+ /**
30
+ * @description
31
+ * The size property will affect the size of the avatar.
32
+ */
33
+ size?: AvatarSizes;
34
+ }
35
+ export type AvatarProps<Element extends ElementType = 'span'> = PrimitiveProps<BaseAvatarProps, Element>;
36
+ export {};
@@ -5,6 +5,8 @@ type ComponentIcons<Keys extends string> = {
5
5
  export type IconsContextInterface = {
6
6
  accordion?: ComponentIcons<'more'>;
7
7
  alert?: ComponentIcons<'close' | 'info' | 'error' | 'success' | 'warning'>;
8
+ avatar?: ComponentIcons<'user'>;
9
+ aiConversation?: ComponentIcons<'attach' | 'close' | 'send' | 'remove' | 'assistant' | 'user'>;
8
10
  checkbox?: ComponentIcons<'indeterminate' | 'checked'>;
9
11
  field?: ComponentIcons<'clear'>;
10
12
  menu?: ComponentIcons<'menu'>;
@@ -0,0 +1,5 @@
1
+ import { InternalIcon } from './types';
2
+ /**
3
+ * @internal For internal Amplify UI use only. May be removed in a future release.
4
+ */
5
+ export declare const IconAssistant: InternalIcon;
@@ -0,0 +1,5 @@
1
+ import { InternalIcon } from './types';
2
+ /**
3
+ * @internal For internal Amplify UI use only. May be removed in a future release.
4
+ */
5
+ export declare const IconAttach: InternalIcon;
@@ -0,0 +1,5 @@
1
+ import { InternalIcon } from './types';
2
+ /**
3
+ * @internal For internal Amplify UI use only. May be removed in a future release.
4
+ */
5
+ export declare const IconSend: InternalIcon;
@@ -0,0 +1,5 @@
1
+ import { InternalIcon } from './types';
2
+ /**
3
+ * @internal For internal Amplify UI use only. May be removed in a future release.
4
+ */
5
+ export declare const IconUser: InternalIcon;
@@ -1,4 +1,6 @@
1
1
  export * from './IconAdd';
2
+ export * from './IconAssistant';
3
+ export * from './IconAttach';
2
4
  export * from './IconCheckCircleOutline';
3
5
  export * from './IconCheckCircle';
4
6
  export * from './IconCheck';
@@ -14,8 +16,10 @@ export * from './IconInfo';
14
16
  export * from './IconMenu';
15
17
  export * from './IconRemove';
16
18
  export * from './IconSearch';
19
+ export * from './IconSend';
17
20
  export * from './IconStar';
18
21
  export * from './IconUpload';
22
+ export * from './IconUser';
19
23
  export * from './IconVisibilityOff';
20
24
  export * from './IconVisibility';
21
25
  export * from './IconWarning';
@@ -0,0 +1,3 @@
1
+ import { ForwardRefPrimitive } from '../types/view';
2
+ import { BaseTextAreaProps } from '../types/textArea';
3
+ export declare const AutoresizeTextArea: ForwardRefPrimitive<BaseTextAreaProps, 'textarea'>;
@@ -1 +1,2 @@
1
1
  export { TextArea } from './TextArea';
2
+ export { AutoresizeTextArea } from './AutoresizeTextarea';
@@ -0,0 +1 @@
1
+ export declare const useAutoresizeTextArea: (textAreaRef: HTMLTextAreaElement | null, value?: unknown) => void;
@@ -1,5 +1,6 @@
1
1
  export { Alert } from './Alert';
2
2
  export { Autocomplete } from './Autocomplete';
3
+ export { Avatar, AvatarProps } from './Avatar';
3
4
  export { Badge } from './Badge';
4
5
  export { Breadcrumbs } from './Breadcrumbs';
5
6
  export { Button } from './Button';
@@ -7,6 +7,11 @@ export interface BaseScrollViewProps extends BaseViewProps {
7
7
  * make the width or height of the ScrollView component smaller than the content.
8
8
  */
9
9
  orientation?: ScrollViewOrientation;
10
+ /**
11
+ * @description
12
+ * Scroll to the end as the children of it change
13
+ */
14
+ autoScroll?: 'smooth' | 'instant' | 'auto';
10
15
  }
11
16
  export type ScrollViewProps<Element extends ElementType = 'div'> = PrimitiveProps<BaseScrollViewProps, Element>;
12
17
  export {};
@@ -6,5 +6,12 @@ import { ElementType, PrimitiveProps } from './view';
6
6
  /** @deprecated For internal use only */
7
7
  export interface BaseTextAreaFieldProps extends BaseFieldProps, FlexContainerStyleProps, BaseTextAreaProps {
8
8
  inputStyles?: BaseStyleProps & TextAreaStyleProps;
9
+ /**
10
+ * @description
11
+ * Automatically adjusts the height of the textarea based on its content
12
+ * @default
13
+ * false
14
+ */
15
+ autoResize?: boolean;
9
16
  }
10
17
  export type TextAreaFieldProps<Element extends ElementType = 'textarea'> = PrimitiveProps<BaseTextAreaFieldProps, Element>;
@@ -1 +1 @@
1
- export declare const VERSION = "6.2.1";
1
+ export declare const VERSION = "6.3.0";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/ui-react",
3
- "version": "6.2.1",
3
+ "version": "6.3.0",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/esm/index.mjs",
6
6
  "exports": {
@@ -55,8 +55,8 @@
55
55
  "typecheck": "tsc --noEmit"
56
56
  },
57
57
  "dependencies": {
58
- "@aws-amplify/ui": "6.2.0",
59
- "@aws-amplify/ui-react-core": "3.0.19",
58
+ "@aws-amplify/ui": "6.4.0",
59
+ "@aws-amplify/ui-react-core": "3.0.21",
60
60
  "@radix-ui/react-direction": "1.0.0",
61
61
  "@radix-ui/react-dropdown-menu": "1.0.0",
62
62
  "@radix-ui/react-slider": "1.0.0",