@aws-amplify/ui-react 6.8.0 → 6.9.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.
@@ -1,12 +1,9 @@
1
1
  import * as React from 'react';
2
- import * as RadixDirection from '@radix-ui/react-direction';
3
- import { sanitizeNamespaceImport, createTheme } from '@aws-amplify/ui';
2
+ import { DirectionProvider } from '@radix-ui/react-direction';
3
+ import { createTheme } from '@aws-amplify/ui';
4
4
  import { ThemeContext } from './ThemeContext.mjs';
5
5
  import { ThemeStyle } from './ThemeStyle.mjs';
6
6
 
7
- // Radix packages don't support ESM in Node, in some scenarios(e.g. SSR)
8
- // We have to use namespace import and sanitize it to ensure the interoperablity between ESM and CJS
9
- const { DirectionProvider } = sanitizeNamespaceImport(RadixDirection);
10
7
  /**
11
8
  * [📖 Docs](https://ui.docs.amplify.aws/react/theming)
12
9
  */
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { sanitizeNamespaceImport, classNames, ComponentClassName } from '@aws-amplify/ui';
3
- import * as Dropdown from '@radix-ui/react-dropdown-menu';
2
+ import { classNames, ComponentClassName } from '@aws-amplify/ui';
3
+ import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent } from '@radix-ui/react-dropdown-menu';
4
4
  import { ButtonGroup } from '../ButtonGroup/ButtonGroup.mjs';
5
5
  import '../Icon/Icon.mjs';
6
6
  import '../Icon/context/IconsContext.mjs';
@@ -10,9 +10,6 @@ import { IconMenu } from '../Icon/icons/IconMenu.mjs';
10
10
  import { MenuButton } from './MenuButton.mjs';
11
11
  import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
12
12
 
13
- // Radix packages don't support ESM in Node, in some scenarios(e.g. SSR)
14
- // We have to use namespace import and sanitize it to ensure the interoperablity between ESM and CJS
15
- const { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent } = sanitizeNamespaceImport(Dropdown);
16
13
  const MENU_TRIGGER_TEST_ID = 'amplify-menu-trigger-test-id';
17
14
  const MENU_ITEMS_GROUP_TEST_ID = 'amplify-menu-items-group-test-id';
18
15
  const MenuPrimitive = ({ menuAlign = 'start', children, className, isOpen, size, trigger, triggerClassName, ariaLabel, onOpenChange, isDisabled, ...rest }, ref) => {
@@ -1,12 +1,9 @@
1
1
  import * as React from 'react';
2
- import { sanitizeNamespaceImport, classNames, ComponentClassName } from '@aws-amplify/ui';
3
- import * as Dropdown from '@radix-ui/react-dropdown-menu';
2
+ import { classNames, ComponentClassName } from '@aws-amplify/ui';
3
+ import { DropdownMenuItem } from '@radix-ui/react-dropdown-menu';
4
4
  import { MenuButton } from './MenuButton.mjs';
5
5
  import { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';
6
6
 
7
- // Radix packages don't support ESM in Node, in some scenarios(e.g. SSR)
8
- // We have to use namespace import and sanitize it to ensure the interoperablity between ESM and CJS
9
- const { DropdownMenuItem } = sanitizeNamespaceImport(Dropdown);
10
7
  const MENU_ITEM_TEST_ID = 'amplify-menu-item-test-id';
11
8
  /**
12
9
  * [📖 Docs](https://ui.docs.amplify.aws/react/components/menu)
@@ -1,5 +1,5 @@
1
- import { sanitizeNamespaceImport, isFunction, classNames, ComponentClassName, classNameModifier, classNameModifierByFlag } from '@aws-amplify/ui';
2
- import * as RadixSlider from '@radix-ui/react-slider';
1
+ import { isFunction, classNames, ComponentClassName, classNameModifier, classNameModifierByFlag } from '@aws-amplify/ui';
2
+ import { Root, Track, Range, Thumb } from '@radix-ui/react-slider';
3
3
  import * as React from 'react';
4
4
  import '../Field/FieldClearButton.mjs';
5
5
  import { FieldDescription } from '../Field/FieldDescription.mjs';
@@ -17,9 +17,6 @@ import { createSpaceSeparatedIds } from '../utils/createSpaceSeparatedIds.mjs';
17
17
  import { DESCRIPTION_SUFFIX, ERROR_SUFFIX } from '../../helpers/constants.mjs';
18
18
  import { getUniqueComponentId } from '../utils/getUniqueComponentId.mjs';
19
19
 
20
- // Radix packages don't support ESM in Node, in some scenarios(e.g. SSR)
21
- // We have to use namespace import and sanitize it to ensure the interoperablity between ESM and CJS
22
- const { Range, Root, Thumb, Track } = sanitizeNamespaceImport(RadixSlider);
23
20
  const SLIDER_LABEL_TEST_ID = 'slider-label';
24
21
  const SLIDER_ROOT_TEST_ID = 'slider-root';
25
22
  const SLIDER_TRACK_TEST_ID = 'slider-track';
@@ -1,3 +1,3 @@
1
- const VERSION = '6.8.0';
1
+ const VERSION = '6.9.0';
2
2
 
3
3
  export { VERSION };
package/dist/index.js CHANGED
@@ -9,11 +9,11 @@ var ui = require('@aws-amplify/ui');
9
9
  var Field = require('./Field-DbA9eYRa.js');
10
10
  require('aws-amplify/storage');
11
11
  var debounce = require('lodash/debounce.js');
12
- var Dropdown = require('@radix-ui/react-dropdown-menu');
13
- var RadixSlider = require('@radix-ui/react-slider');
12
+ var reactDropdownMenu = require('@radix-ui/react-dropdown-menu');
13
+ var reactSlider = require('@radix-ui/react-slider');
14
14
  var QRCode = require('qrcode');
15
15
  var utils = require('aws-amplify/utils');
16
- var RadixDirection = require('@radix-ui/react-direction');
16
+ var reactDirection = require('@radix-ui/react-direction');
17
17
  var ThemeStyle = require('./ThemeStyle-DA2-Clfz.js');
18
18
  require('@aws-amplify/core');
19
19
  require('aws-amplify/auth');
@@ -41,10 +41,7 @@ function _interopNamespace(e) {
41
41
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
42
42
  var isEqual__default = /*#__PURE__*/_interopDefault(isEqual);
43
43
  var debounce__default = /*#__PURE__*/_interopDefault(debounce);
44
- var Dropdown__namespace = /*#__PURE__*/_interopNamespace(Dropdown);
45
- var RadixSlider__namespace = /*#__PURE__*/_interopNamespace(RadixSlider);
46
44
  var QRCode__default = /*#__PURE__*/_interopDefault(QRCode);
47
- var RadixDirection__namespace = /*#__PURE__*/_interopNamespace(RadixDirection);
48
45
 
49
46
  /**
50
47
  * [📖 Docs](https://ui.docs.amplify.aws/react/theming/responsive#usebreakpointvalue)
@@ -1350,16 +1347,13 @@ const MenuButtonPrimitive = ({ ariaLabel, className, children, isDisabled = fals
1350
1347
  const MenuButton = Field.primitiveWithForwardRef(MenuButtonPrimitive);
1351
1348
  MenuButton.displayName = 'MenuButton';
1352
1349
 
1353
- // Radix packages don't support ESM in Node, in some scenarios(e.g. SSR)
1354
- // We have to use namespace import and sanitize it to ensure the interoperablity between ESM and CJS
1355
- const { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent } = ui.sanitizeNamespaceImport(Dropdown__namespace);
1356
1350
  const MENU_TRIGGER_TEST_ID = 'amplify-menu-trigger-test-id';
1357
1351
  const MENU_ITEMS_GROUP_TEST_ID = 'amplify-menu-items-group-test-id';
1358
1352
  const MenuPrimitive = ({ menuAlign = 'start', children, className, isOpen, size, trigger, triggerClassName, ariaLabel, onOpenChange, isDisabled, ...rest }, ref) => {
1359
1353
  const icons = Field.useIcons('menu');
1360
- return (React__namespace.createElement(DropdownMenu, { onOpenChange: onOpenChange, open: isOpen },
1361
- React__namespace.createElement(DropdownMenuTrigger, { disabled: isDisabled, asChild: true }, trigger ?? (React__namespace.createElement(MenuButton, { ariaLabel: ariaLabel, size: size, testId: MENU_TRIGGER_TEST_ID, className: ui.classNames(ui.ComponentClassName.MenuTrigger, triggerClassName) }, icons?.menu ?? React__namespace.createElement(Field.IconMenu, null)))),
1362
- React__namespace.createElement(DropdownMenuContent, { align: menuAlign, className: ui.ComponentClassName.MenuWrapper },
1354
+ return (React__namespace.createElement(reactDropdownMenu.DropdownMenu, { onOpenChange: onOpenChange, open: isOpen },
1355
+ React__namespace.createElement(reactDropdownMenu.DropdownMenuTrigger, { disabled: isDisabled, asChild: true }, trigger ?? (React__namespace.createElement(MenuButton, { ariaLabel: ariaLabel, size: size, testId: MENU_TRIGGER_TEST_ID, className: ui.classNames(ui.ComponentClassName.MenuTrigger, triggerClassName) }, icons?.menu ?? React__namespace.createElement(Field.IconMenu, null)))),
1356
+ React__namespace.createElement(reactDropdownMenu.DropdownMenuContent, { align: menuAlign, className: ui.ComponentClassName.MenuWrapper },
1363
1357
  React__namespace.createElement(ButtonGroup, { className: ui.classNames(ui.ComponentClassName.MenuContent, className), ref: ref, isDisabled: isDisabled, size: size, testId: MENU_ITEMS_GROUP_TEST_ID, ...rest }, children))));
1364
1358
  };
1365
1359
  /**
@@ -1368,15 +1362,12 @@ const MenuPrimitive = ({ menuAlign = 'start', children, className, isOpen, size,
1368
1362
  const Menu = Field.primitiveWithForwardRef(MenuPrimitive);
1369
1363
  Menu.displayName = 'Menu';
1370
1364
 
1371
- // Radix packages don't support ESM in Node, in some scenarios(e.g. SSR)
1372
- // We have to use namespace import and sanitize it to ensure the interoperablity between ESM and CJS
1373
- const { DropdownMenuItem } = ui.sanitizeNamespaceImport(Dropdown__namespace);
1374
1365
  const MENU_ITEM_TEST_ID = 'amplify-menu-item-test-id';
1375
1366
  /**
1376
1367
  * [📖 Docs](https://ui.docs.amplify.aws/react/components/menu)
1377
1368
  */
1378
1369
  const MenuItemPrimitive = ({ children, className, ...rest }, ref) => {
1379
- return (React__namespace.createElement(DropdownMenuItem, { asChild: true, ref: ref },
1370
+ return (React__namespace.createElement(reactDropdownMenu.DropdownMenuItem, { asChild: true, ref: ref },
1380
1371
  React__namespace.createElement(MenuButton, { className: ui.classNames(ui.ComponentClassName.MenuItem, className), testId: MENU_ITEM_TEST_ID, ...rest, variation: "menu" // ensures `menu` variation is not overwritten
1381
1372
  }, children)));
1382
1373
  };
@@ -1727,9 +1718,6 @@ const RatingPrimitive = ({ className, emptyColor, emptyIcon, fillColor, icon, ma
1727
1718
  const Rating = Field.primitiveWithForwardRef(RatingPrimitive);
1728
1719
  Rating.displayName = 'Rating';
1729
1720
 
1730
- // Radix packages don't support ESM in Node, in some scenarios(e.g. SSR)
1731
- // We have to use namespace import and sanitize it to ensure the interoperablity between ESM and CJS
1732
- const { Range, Root, Thumb, Track } = ui.sanitizeNamespaceImport(RadixSlider__namespace);
1733
1721
  const SLIDER_LABEL_TEST_ID = 'slider-label';
1734
1722
  const SLIDER_ROOT_TEST_ID = 'slider-root';
1735
1723
  const SLIDER_TRACK_TEST_ID = 'slider-track';
@@ -1777,13 +1765,13 @@ const SliderFieldPrimitive = ({ ariaValuetext, className, defaultValue = 0, desc
1777
1765
  !isValueHidden ? renderedValue : null),
1778
1766
  React__namespace.createElement(Field.FieldDescription, { id: descriptionId, labelHidden: labelHidden, descriptiveText: descriptiveText }),
1779
1767
  React__namespace.createElement(FieldGroup, { className: ui.ComponentClassName.SliderFieldGroup, id: fieldId, orientation: orientation, outerStartComponent: outerStartComponent, outerEndComponent: outerEndComponent },
1780
- React__namespace.createElement(Root, { className: rootComponentClasses, "data-testid": SLIDER_ROOT_TEST_ID, disabled: disabled, defaultValue: defaultValues, onValueChange: onValueChange, orientation: orientation, ref: ref, value: values, ...rest },
1781
- React__namespace.createElement(Track, { className: componentClasses, "data-testid": SLIDER_TRACK_TEST_ID, style: {
1768
+ React__namespace.createElement(reactSlider.Root, { className: rootComponentClasses, "data-testid": SLIDER_ROOT_TEST_ID, disabled: disabled, defaultValue: defaultValues, onValueChange: onValueChange, orientation: orientation, ref: ref, value: values, ...rest },
1769
+ React__namespace.createElement(reactSlider.Track, { className: componentClasses, "data-testid": SLIDER_TRACK_TEST_ID, style: {
1782
1770
  backgroundColor: String(emptyTrackColor),
1783
1771
  [`${isVertical ? 'width' : 'height'}`]: trackSize,
1784
1772
  } },
1785
- React__namespace.createElement(Range, { className: ui.classNames(ui.ComponentClassName.SliderFieldRange, ui.classNameModifier(ui.ComponentClassName.SliderFieldRange, orientation), ui.classNameModifierByFlag(ui.ComponentClassName.SliderFieldRange, 'disabled', disabled)), "data-testid": SLIDER_RANGE_TEST_ID, style: { backgroundColor: String(filledTrackColor) } })),
1786
- React__namespace.createElement(Thumb, { "aria-describedby": ariaDescribedBy, "aria-labelledby": stableId, "aria-valuetext": ariaValuetext, className: ui.classNames(ui.ComponentClassName.SliderFieldThumb, ui.classNameModifier(ui.ComponentClassName.SliderFieldThumb, size), ui.classNameModifierByFlag(ui.ComponentClassName.SliderFieldThumb, 'disabled', disabled)), style: { backgroundColor: String(thumbColor) } }))),
1773
+ React__namespace.createElement(reactSlider.Range, { className: ui.classNames(ui.ComponentClassName.SliderFieldRange, ui.classNameModifier(ui.ComponentClassName.SliderFieldRange, orientation), ui.classNameModifierByFlag(ui.ComponentClassName.SliderFieldRange, 'disabled', disabled)), "data-testid": SLIDER_RANGE_TEST_ID, style: { backgroundColor: String(filledTrackColor) } })),
1774
+ React__namespace.createElement(reactSlider.Thumb, { "aria-describedby": ariaDescribedBy, "aria-labelledby": stableId, "aria-valuetext": ariaValuetext, className: ui.classNames(ui.ComponentClassName.SliderFieldThumb, ui.classNameModifier(ui.ComponentClassName.SliderFieldThumb, size), ui.classNameModifierByFlag(ui.ComponentClassName.SliderFieldThumb, 'disabled', disabled)), style: { backgroundColor: String(thumbColor) } }))),
1787
1775
  React__namespace.createElement(Field.FieldErrorMessage, { id: errorId, hasError: hasError, errorMessage: errorMessage })));
1788
1776
  };
1789
1777
  /**
@@ -2483,7 +2471,7 @@ const defaultDeleteUserDisplayText = {
2483
2471
  warningText: 'Deleting your account is not reversible. You will lose access to your account and all data associated with it.',
2484
2472
  };
2485
2473
 
2486
- const VERSION = '6.8.0';
2474
+ const VERSION = '6.9.0';
2487
2475
 
2488
2476
  const logger$2 = ui.getLogger('AccountSettings');
2489
2477
  const getIsDisabled = (formValues, validationError) => {
@@ -3456,16 +3444,13 @@ function withAuthenticator(Component, options = {}) {
3456
3444
  };
3457
3445
  }
3458
3446
 
3459
- // Radix packages don't support ESM in Node, in some scenarios(e.g. SSR)
3460
- // We have to use namespace import and sanitize it to ensure the interoperablity between ESM and CJS
3461
- const { DirectionProvider } = ui.sanitizeNamespaceImport(RadixDirection__namespace);
3462
3447
  /**
3463
3448
  * [📖 Docs](https://ui.docs.amplify.aws/react/theming)
3464
3449
  */
3465
3450
  function ThemeProvider({ children, colorMode, direction = 'ltr', nonce, theme, }) {
3466
3451
  const value = React__namespace.useMemo(() => ({ theme: ui.createTheme(theme), colorMode }), [theme, colorMode]);
3467
3452
  return (React__namespace.createElement(Field.ThemeContext.Provider, { value: value },
3468
- React__namespace.createElement(DirectionProvider, { dir: direction },
3453
+ React__namespace.createElement(reactDirection.DirectionProvider, { dir: direction },
3469
3454
  React__namespace.createElement("div", { "data-amplify-theme": value.theme.name, "data-amplify-color-mode": colorMode, dir: direction }, children),
3470
3455
  theme ? React__namespace.createElement(ThemeStyle.ThemeStyle, { theme: value.theme, nonce: nonce }) : null)));
3471
3456
  }
@@ -2,7 +2,13 @@ import * as React from 'react';
2
2
  import { MergeProps } from '@aws-amplify/ui-react-core';
3
3
  import { AriaProps, BaseComponentProps } from './base';
4
4
  import { BaseStyleProps } from './style';
5
+ /**
6
+ * @deprecated will be removed in a future major version
7
+ */
5
8
  export type IsAny<Type> = (Type extends never ? true : false) extends false ? false : true;
9
+ /**
10
+ * @deprecated will be removed in a future major version
11
+ */
6
12
  export type ElementType = React.ElementType;
7
13
  type AsProp<Element extends ElementType> = {
8
14
  /**
@@ -11,8 +17,14 @@ type AsProp<Element extends ElementType> = {
11
17
  */
12
18
  as?: Element;
13
19
  };
20
+ /**
21
+ * @deprecated will be removed in a future major version
22
+ */
14
23
  export type PrimitivePropsWithAs<Props extends BaseViewProps, Element extends ElementType> = Omit<Props, 'as'> & AsProp<Element>;
15
24
  type PrimitivePropsWithRef<Props extends BaseViewProps, Element extends ElementType> = Omit<Props, 'ref'> & React.RefAttributes<React.ComponentRef<Element>>;
25
+ /**
26
+ * @deprecated will be removed in a future major version
27
+ */
16
28
  export type PrimitivePropsWithHTMLAttributes<Props extends BaseViewProps, Element extends ElementType> =
17
29
  /**
18
30
  * Doing an IsAny<Element> conditional check here makes sure typescript infers the type of `Element`.
@@ -21,40 +33,20 @@ export type PrimitivePropsWithHTMLAttributes<Props extends BaseViewProps, Elemen
21
33
  * e.g. In an event handler, onChange((event) => { console.log(event)}), event will be implicitly inferred as any without the check
22
34
  */
23
35
  IsAny<Element> extends false ? MergeProps<PrimitivePropsWithRef<Props, Element>, React.ComponentPropsWithoutRef<Element>> : any;
36
+ /**
37
+ * @deprecated will be removed in a future major version
38
+ */
24
39
  export type PrimitiveProps<Props extends BaseViewProps, Element extends ElementType> = PrimitivePropsWithHTMLAttributes<PrimitivePropsWithAs<Props, Element>, Element>;
25
40
  /**
26
- * @see {React.ForwardRefRenderFunction}
27
- * Modifies return type of `React.ForwardRefRenderFunction`
28
- * to allow usage in React 16
41
+ * @deprecated will be removed in a future major version
29
42
  */
30
- interface JSElementForwardRefRenderFunction<T, P = {}> {
31
- (props: P, ref: React.ForwardedRef<T>): React.JSX.Element | null;
32
- displayName?: string | undefined;
33
- /**
34
- * defaultProps are not supported on render functions
35
- */
36
- defaultProps?: never | undefined;
37
- /**
38
- * propTypes are not supported on render functions
39
- */
40
- propTypes?: never | undefined;
41
- }
42
- export interface Primitive<Props extends BaseViewProps, Element extends ElementType> extends JSElementForwardRefRenderFunction<React.ComponentRef<Element>, Props> {
43
+ export interface Primitive<Props extends BaseViewProps, Element extends ElementType> extends React.ForwardRefRenderFunction<React.ComponentRef<Element>, Props> {
43
44
  }
44
45
  /**
45
- * @see {React.ForwardRefExoticComponent}
46
- * Modifies return type of `React.ForwardRefExoticComponent`
47
- * to allow usage in React 16
46
+ * @deprecated will be removed in a future major version
48
47
  */
49
- interface JSXElementForwardRefExoticComponent<P = {}> {
50
- (props: P): React.ReactElement | null;
51
- defaultProps?: Partial<P> | undefined;
52
- displayName?: string | undefined;
53
- propTypes?: any;
54
- readonly $$typeof: symbol;
55
- }
56
- export interface ForwardRefPrimitive<Props extends BaseViewProps, DefaultElement extends ElementType> extends JSXElementForwardRefExoticComponent<PrimitiveProps<Props, DefaultElement>> {
57
- <Element extends ElementType = DefaultElement>(props: PrimitiveProps<Props, Element>): React.ReactElement<Props, Element> | null;
48
+ export interface ForwardRefPrimitive<Props extends BaseViewProps, DefaultElement extends ElementType> extends React.ForwardRefExoticComponent<PrimitiveProps<Props, DefaultElement>> {
49
+ <Element extends ElementType = DefaultElement>(props: PrimitiveProps<Props, Element>): ReturnType<React.ForwardRefExoticComponent<PrimitiveProps<Props, DefaultElement>>>;
58
50
  }
59
51
  /** @deprecated For internal use only */
60
52
  export interface BaseViewProps extends BaseComponentProps, BaseStyleProps, AriaProps {
@@ -1 +1 @@
1
- export declare const VERSION = "6.8.0";
1
+ export declare const VERSION = "6.9.0";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/ui-react",
3
- "version": "6.8.0",
3
+ "version": "6.9.0",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/esm/index.mjs",
6
6
  "exports": {
@@ -55,11 +55,11 @@
55
55
  "typecheck": "tsc --noEmit"
56
56
  },
57
57
  "dependencies": {
58
- "@aws-amplify/ui": "6.7.2",
59
- "@aws-amplify/ui-react-core": "3.2.0",
60
- "@radix-ui/react-direction": "1.0.0",
61
- "@radix-ui/react-dropdown-menu": "1.0.0",
62
- "@radix-ui/react-slider": "1.0.0",
58
+ "@aws-amplify/ui": "6.8.0",
59
+ "@aws-amplify/ui-react-core": "3.3.0",
60
+ "@radix-ui/react-direction": "^1.1.0",
61
+ "@radix-ui/react-dropdown-menu": "^2.1.4",
62
+ "@radix-ui/react-slider": "^1.2.2",
63
63
  "@xstate/react": "^3.2.2",
64
64
  "lodash": "4.17.21",
65
65
  "qrcode": "1.5.0",