@cloudscape-design/components 3.0.312 → 3.0.314

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 (98) hide show
  1. package/app-layout/index.js +1 -1
  2. package/app-layout/index.js.map +1 -1
  3. package/app-layout/visual-refresh/context.js +1 -1
  4. package/app-layout/visual-refresh/context.js.map +1 -1
  5. package/area-chart/internal.js +1 -1
  6. package/area-chart/internal.js.map +1 -1
  7. package/autosuggest/internal.js +1 -1
  8. package/autosuggest/internal.js.map +1 -1
  9. package/autosuggest/virtual-list.d.ts.map +1 -1
  10. package/autosuggest/virtual-list.js +3 -4
  11. package/autosuggest/virtual-list.js.map +1 -1
  12. package/button/interfaces.d.ts +1 -1
  13. package/button/interfaces.js.map +1 -1
  14. package/button/internal.d.ts.map +1 -1
  15. package/button/internal.js +3 -1
  16. package/button/internal.js.map +1 -1
  17. package/code-editor/index.d.ts.map +1 -1
  18. package/code-editor/index.js +3 -2
  19. package/code-editor/index.js.map +1 -1
  20. package/code-editor/interfaces.d.ts +4 -0
  21. package/code-editor/interfaces.d.ts.map +1 -1
  22. package/code-editor/interfaces.js.map +1 -1
  23. package/collection-preferences/index.js +1 -1
  24. package/collection-preferences/index.js.map +1 -1
  25. package/date-range-picker/index.js +1 -1
  26. package/date-range-picker/index.js.map +1 -1
  27. package/date-range-picker/time-offset.js +1 -1
  28. package/date-range-picker/time-offset.js.map +1 -1
  29. package/expandable-section/expandable-section-header.js +1 -1
  30. package/expandable-section/expandable-section-header.js.map +1 -1
  31. package/file-upload/internal.js +1 -1
  32. package/file-upload/internal.js.map +1 -1
  33. package/flashbar/common.js +1 -1
  34. package/flashbar/common.js.map +1 -1
  35. package/flashbar/flash.js +1 -1
  36. package/flashbar/flash.js.map +1 -1
  37. package/grid/internal.js +2 -2
  38. package/grid/internal.js.map +1 -1
  39. package/i18n/provider.js +1 -1
  40. package/i18n/provider.js.map +1 -1
  41. package/icon/internal.js +1 -1
  42. package/icon/internal.js.map +1 -1
  43. package/internal/components/masked-input/use-mask.js +2 -2
  44. package/internal/components/masked-input/use-mask.js.map +1 -1
  45. package/internal/components/option/index.js +1 -1
  46. package/internal/components/option/index.js.map +1 -1
  47. package/internal/environment.js +1 -1
  48. package/internal/hooks/check-controlled/index.js +1 -1
  49. package/internal/hooks/check-controlled/index.js.map +1 -1
  50. package/internal/hooks/use-controllable/index.js +1 -1
  51. package/internal/hooks/use-controllable/index.js.map +1 -1
  52. package/internal/hooks/use-virtual/index.d.ts +27 -0
  53. package/internal/hooks/use-virtual/index.d.ts.map +1 -0
  54. package/internal/hooks/use-virtual/index.js +41 -0
  55. package/internal/hooks/use-virtual/index.js.map +1 -0
  56. package/internal/hooks/use-visual-mode/index.js +1 -1
  57. package/internal/hooks/use-visual-mode/index.js.map +1 -1
  58. package/internal/manifest.json +1 -1
  59. package/internal/utils/check-safe-url.js +1 -1
  60. package/internal/utils/check-safe-url.js.map +1 -1
  61. package/internal/utils/locale/normalize-locale.js +1 -1
  62. package/internal/utils/locale/normalize-locale.js.map +1 -1
  63. package/mixed-line-bar-chart/internal.js +1 -1
  64. package/mixed-line-bar-chart/internal.js.map +1 -1
  65. package/package.json +1 -1
  66. package/popover/index.js +1 -1
  67. package/popover/index.js.map +1 -1
  68. package/progress-bar/index.js +1 -1
  69. package/progress-bar/index.js.map +1 -1
  70. package/property-filter/utils.d.ts.map +1 -1
  71. package/property-filter/utils.js +4 -1
  72. package/property-filter/utils.js.map +1 -1
  73. package/select/parts/virtual-list.d.ts.map +1 -1
  74. package/select/parts/virtual-list.js +2 -3
  75. package/select/parts/virtual-list.js.map +1 -1
  76. package/select/utils/check-option-value-field.js +1 -1
  77. package/select/utils/check-option-value-field.js.map +1 -1
  78. package/side-navigation/util.js +1 -1
  79. package/side-navigation/util.js.map +1 -1
  80. package/space-between/interfaces.d.ts +1 -1
  81. package/space-between/interfaces.d.ts.map +1 -1
  82. package/space-between/interfaces.js.map +1 -1
  83. package/space-between/styles.css.js +23 -21
  84. package/space-between/styles.scoped.css +30 -22
  85. package/space-between/styles.selectors.js +23 -21
  86. package/table/body-cell/index.d.ts.map +1 -1
  87. package/table/body-cell/index.js +9 -5
  88. package/table/body-cell/index.js.map +1 -1
  89. package/table/use-column-widths.js +1 -1
  90. package/table/use-column-widths.js.map +1 -1
  91. package/table/utils.js +1 -1
  92. package/table/utils.js.map +1 -1
  93. package/wizard/internal.js +1 -1
  94. package/wizard/internal.js.map +1 -1
  95. package/internal/logging.d.ts +0 -2
  96. package/internal/logging.d.ts.map +0 -1
  97. package/internal/logging.js +0 -14
  98. package/internal/logging.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"lib/default/","sources":["property-filter/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { ComparisonOperator, InternalFilteringOption, InternalFilteringProperty, Token } from './interfaces';\n\n// Finds the longest property the filtering text starts from.\nexport function matchFilteringProperty(\n filteringProperties: readonly InternalFilteringProperty[],\n filteringText: string\n): null | InternalFilteringProperty {\n let maxLength = 0;\n let matchedProperty: null | InternalFilteringProperty = null;\n\n for (const property of filteringProperties) {\n if (\n (property.propertyLabel.length >= maxLength && startsWith(filteringText, property.propertyLabel)) ||\n (property.propertyLabel.length > maxLength &&\n startsWith(filteringText.toLowerCase(), property.propertyLabel.toLowerCase()))\n ) {\n maxLength = property.propertyLabel.length;\n matchedProperty = property;\n }\n }\n\n return matchedProperty;\n}\n\n// Finds the longest operator the filtering text starts from.\nexport function matchOperator(\n allowedOperators: readonly ComparisonOperator[],\n filteringText: string\n): null | ComparisonOperator {\n filteringText = filteringText.toLowerCase();\n\n let maxLength = 0;\n let matchedOperator: null | ComparisonOperator = null;\n\n for (const operator of allowedOperators) {\n if (operator.length > maxLength && startsWith(filteringText, operator.toLowerCase())) {\n maxLength = operator.length;\n matchedOperator = operator;\n }\n }\n\n return matchedOperator;\n}\n\n// Finds if the filtering text matches any operator prefix.\nexport function matchOperatorPrefix(\n allowedOperators: readonly ComparisonOperator[],\n filteringText: string\n): null | string {\n if (filteringText.trim().length === 0) {\n return '';\n }\n for (const operator of allowedOperators) {\n if (startsWith(operator.toLowerCase(), filteringText.toLowerCase())) {\n return filteringText;\n }\n }\n return null;\n}\n\nexport function matchTokenValue(token: Token, filteringOptions: readonly InternalFilteringOption[]): Token {\n const propertyOptions = filteringOptions.filter(option => option.propertyKey === token.propertyKey);\n const bestMatch = { ...token };\n for (const option of propertyOptions) {\n if ((option.label && option.label === token.value) || (!option.label && option.value === token.value)) {\n // exact match found: return it\n return { ...token, value: option.value };\n }\n if (token.value.toLowerCase() === (option.label ?? option.value ?? '').toLowerCase()) {\n // non-exact match: save and keep running in case exact match found later\n bestMatch.value = option.value;\n }\n }\n\n return bestMatch;\n}\n\nexport function getPropertyByKey(filteringProperties: readonly InternalFilteringProperty[], key: string) {\n const propertyMap = new Map(filteringProperties.map(prop => [prop.propertyKey, prop]));\n return propertyMap.get(key) as InternalFilteringProperty | undefined;\n}\n\nexport function getFormattedToken(filteringProperties: readonly InternalFilteringProperty[], token: Token) {\n const property = token.propertyKey ? getPropertyByKey(filteringProperties, token.propertyKey) : undefined;\n const valueFormatter = property?.getValueFormatter(token.operator);\n const propertyLabel = property && property.propertyLabel;\n const tokenValue = valueFormatter ? valueFormatter(token.value) : token.value;\n const label = `${propertyLabel ?? ''} ${token.operator} ${tokenValue}`;\n return { property: propertyLabel, operator: token.operator, value: tokenValue, label };\n}\n\nexport function trimStart(source: string): string {\n let spacesLength = 0;\n for (let i = 0; i < source.length; i++) {\n if (source[i] === ' ') {\n spacesLength++;\n } else {\n break;\n }\n }\n return source.slice(spacesLength);\n}\n\nexport function trimFirstSpace(source: string): string {\n return source[0] === ' ' ? source.slice(1) : source;\n}\n\nfunction startsWith(source: string, target: string): boolean {\n return source.indexOf(target) === 0;\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"lib/default/","sources":["property-filter/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { ComparisonOperator, InternalFilteringOption, InternalFilteringProperty, Token } from './interfaces';\n\n// Finds the longest property the filtering text starts from.\nexport function matchFilteringProperty(\n filteringProperties: readonly InternalFilteringProperty[],\n filteringText: string\n): null | InternalFilteringProperty {\n let maxLength = 0;\n let matchedProperty: null | InternalFilteringProperty = null;\n\n for (const property of filteringProperties) {\n if (\n (property.propertyLabel.length >= maxLength && startsWith(filteringText, property.propertyLabel)) ||\n (property.propertyLabel.length > maxLength &&\n startsWith(filteringText.toLowerCase(), property.propertyLabel.toLowerCase()))\n ) {\n maxLength = property.propertyLabel.length;\n matchedProperty = property;\n }\n }\n\n return matchedProperty;\n}\n\n// Finds the longest operator the filtering text starts from.\nexport function matchOperator(\n allowedOperators: readonly ComparisonOperator[],\n filteringText: string\n): null | ComparisonOperator {\n filteringText = filteringText.toLowerCase();\n\n let maxLength = 0;\n let matchedOperator: null | ComparisonOperator = null;\n\n for (const operator of allowedOperators) {\n if (operator.length > maxLength && startsWith(filteringText, operator.toLowerCase())) {\n maxLength = operator.length;\n matchedOperator = operator;\n }\n }\n\n return matchedOperator;\n}\n\n// Finds if the filtering text matches any operator prefix.\nexport function matchOperatorPrefix(\n allowedOperators: readonly ComparisonOperator[],\n filteringText: string\n): null | string {\n if (filteringText.trim().length === 0) {\n return '';\n }\n for (const operator of allowedOperators) {\n if (startsWith(operator.toLowerCase(), filteringText.toLowerCase())) {\n return filteringText;\n }\n }\n return null;\n}\n\nexport function matchTokenValue(token: Token, filteringOptions: readonly InternalFilteringOption[]): Token {\n const propertyOptions = filteringOptions.filter(option => option.propertyKey === token.propertyKey);\n const bestMatch = { ...token };\n for (const option of propertyOptions) {\n if ((option.label && option.label === token.value) || (!option.label && option.value === token.value)) {\n // exact match found: return it\n return { ...token, value: option.value };\n }\n\n // By default, the token value is a string, but when a custom property is used,\n // the token value can be any, therefore we need to check for its type before calling toLowerCase()\n if (\n typeof token.value === 'string' &&\n token.value.toLowerCase() === (option.label ?? option.value ?? '').toLowerCase()\n ) {\n // non-exact match: save and keep running in case exact match found later\n bestMatch.value = option.value;\n }\n }\n\n return bestMatch;\n}\n\nexport function getPropertyByKey(filteringProperties: readonly InternalFilteringProperty[], key: string) {\n const propertyMap = new Map(filteringProperties.map(prop => [prop.propertyKey, prop]));\n return propertyMap.get(key) as InternalFilteringProperty | undefined;\n}\n\nexport function getFormattedToken(filteringProperties: readonly InternalFilteringProperty[], token: Token) {\n const property = token.propertyKey ? getPropertyByKey(filteringProperties, token.propertyKey) : undefined;\n const valueFormatter = property?.getValueFormatter(token.operator);\n const propertyLabel = property && property.propertyLabel;\n const tokenValue = valueFormatter ? valueFormatter(token.value) : token.value;\n const label = `${propertyLabel ?? ''} ${token.operator} ${tokenValue}`;\n return { property: propertyLabel, operator: token.operator, value: tokenValue, label };\n}\n\nexport function trimStart(source: string): string {\n let spacesLength = 0;\n for (let i = 0; i < source.length; i++) {\n if (source[i] === ' ') {\n spacesLength++;\n } else {\n break;\n }\n }\n return source.slice(spacesLength);\n}\n\nexport function trimFirstSpace(source: string): string {\n return source[0] === ' ' ? source.slice(1) : source;\n}\n\nfunction startsWith(source: string, target: string): boolean {\n return source.indexOf(target) === 0;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-list.d.ts","sourceRoot":"lib/default/","sources":["select/parts/virtual-list.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAIpF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;;AA2F/C,wBAAuC"}
1
+ {"version":3,"file":"virtual-list.d.ts","sourceRoot":"lib/default/","sources":["select/parts/virtual-list.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAGpF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;;AA6F/C,wBAAuC"}
@@ -4,9 +4,9 @@ import { useMergeRefs } from '../../internal/hooks/use-merge-refs';
4
4
  import React, { forwardRef, useCallback, useImperativeHandle, useRef } from 'react';
5
5
  import OptionsList from '../../internal/components/options-list';
6
6
  import { renderOptions } from '../utils/render-options';
7
- import { useVirtual } from 'react-virtual';
8
7
  import { useContainerQuery } from '../../internal/hooks/container-queries';
9
8
  import styles from './styles.css.js';
9
+ import { useVirtual } from '../../internal/hooks/use-virtual';
10
10
  const VirtualList = (props, ref) => {
11
11
  return props.menuProps.open ? React.createElement(VirtualListOpen, Object.assign({}, props, { ref: ref })) : React.createElement(VirtualListClosed, Object.assign({}, props, { ref: ref }));
12
12
  };
@@ -16,7 +16,7 @@ const VirtualListOpen = forwardRef(({ menuProps, getOptionProps, filteredOptions
16
16
  const menuRefObject = useRef(null);
17
17
  const menuRef = useMergeRefs(menuMeasureRef, menuRefObject, menuProps.ref);
18
18
  const { virtualItems, totalSize, scrollToIndex } = useVirtual({
19
- size: filteredOptions.length,
19
+ items: filteredOptions,
20
20
  parentRef: menuRefObject,
21
21
  // estimateSize is a dependency of measurements memo. We update it to force full recalculation
22
22
  // when the height of any option could have changed:
@@ -24,7 +24,6 @@ const VirtualListOpen = forwardRef(({ menuProps, getOptionProps, filteredOptions
24
24
  // 2: because the option changed its content (filteringValue property controls the highlight and the visibility of hidden tags)
25
25
  // eslint-disable-next-line react-hooks/exhaustive-deps
26
26
  estimateSize: useCallback(() => 31, [width, filteringValue]),
27
- overscan: 5,
28
27
  });
29
28
  useImperativeHandle(ref, () => (index) => {
30
29
  if (highlightType === 'keyboard') {
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-list.js","sourceRoot":"lib/default/","sources":["select/parts/virtual-list.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { useMergeRefs } from '../../internal/hooks/use-merge-refs';\nimport React, { forwardRef, useCallback, useImperativeHandle, useRef } from 'react';\nimport OptionsList from '../../internal/components/options-list';\nimport { renderOptions } from '../utils/render-options';\nimport { useVirtual } from 'react-virtual';\nimport { SelectListProps } from './plain-list';\nimport { useContainerQuery } from '../../internal/hooks/container-queries';\n\nimport styles from './styles.css.js';\n\nconst VirtualList = (props: SelectListProps, ref: React.Ref<SelectListProps.SelectListRef>) => {\n return props.menuProps.open ? <VirtualListOpen {...props} ref={ref} /> : <VirtualListClosed {...props} ref={ref} />;\n};\n\nconst VirtualListOpen = forwardRef(\n (\n {\n menuProps,\n getOptionProps,\n filteredOptions,\n filteringValue,\n highlightType,\n checkboxes,\n hasDropdownStatus,\n listBottom,\n useInteractiveGroups,\n screenReaderContent,\n }: SelectListProps,\n ref: React.Ref<SelectListProps.SelectListRef>\n ) => {\n // update component, when it gets wider or narrower to reposition items\n const [width, menuMeasureRef] = useContainerQuery(rect => rect.width, []);\n const menuRefObject = useRef(null);\n const menuRef = useMergeRefs(menuMeasureRef, menuRefObject, menuProps.ref);\n\n const { virtualItems, totalSize, scrollToIndex } = useVirtual({\n size: filteredOptions.length,\n parentRef: menuRefObject,\n // estimateSize is a dependency of measurements memo. We update it to force full recalculation\n // when the height of any option could have changed:\n // 1: because the component got resized (width property got updated)\n // 2: because the option changed its content (filteringValue property controls the highlight and the visibility of hidden tags)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n estimateSize: useCallback(() => 31, [width, filteringValue]),\n overscan: 5,\n });\n useImperativeHandle(\n ref,\n () => (index: number) => {\n if (highlightType === 'keyboard') {\n scrollToIndex(index);\n }\n },\n [highlightType, scrollToIndex]\n );\n const finalOptions = renderOptions({\n options: virtualItems.map(({ index }) => filteredOptions[index]),\n getOptionProps,\n filteringValue,\n highlightType,\n checkboxes,\n hasDropdownStatus,\n virtualItems,\n useInteractiveGroups,\n screenReaderContent,\n ariaSetsize: filteredOptions.length,\n });\n return (\n <OptionsList {...menuProps} ref={menuRef}>\n <div aria-hidden=\"true\" key=\"total-size\" className={styles['layout-strut']} style={{ height: totalSize }} />\n {finalOptions}\n {listBottom ? (\n <li role=\"option\" className={styles['list-bottom']}>\n {listBottom}\n </li>\n ) : null}\n </OptionsList>\n );\n }\n);\n\nconst VirtualListClosed = forwardRef(\n ({ menuProps, listBottom }: SelectListProps, ref: React.Ref<SelectListProps.SelectListRef>) => {\n useImperativeHandle(ref, () => () => {}, []);\n return (\n <OptionsList {...menuProps} ref={menuProps.ref}>\n {listBottom ? (\n <li role=\"option\" className={styles['list-bottom']}>\n {listBottom}\n </li>\n ) : null}\n </OptionsList>\n );\n }\n);\n\nexport default forwardRef(VirtualList);\n"]}
1
+ {"version":3,"file":"virtual-list.js","sourceRoot":"lib/default/","sources":["select/parts/virtual-list.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { useMergeRefs } from '../../internal/hooks/use-merge-refs';\nimport React, { forwardRef, useCallback, useImperativeHandle, useRef } from 'react';\nimport OptionsList from '../../internal/components/options-list';\nimport { renderOptions } from '../utils/render-options';\nimport { SelectListProps } from './plain-list';\nimport { useContainerQuery } from '../../internal/hooks/container-queries';\n\nimport styles from './styles.css.js';\nimport { useVirtual } from '../../internal/hooks/use-virtual';\n\nconst VirtualList = (props: SelectListProps, ref: React.Ref<SelectListProps.SelectListRef>) => {\n return props.menuProps.open ? <VirtualListOpen {...props} ref={ref} /> : <VirtualListClosed {...props} ref={ref} />;\n};\n\nconst VirtualListOpen = forwardRef(\n (\n {\n menuProps,\n getOptionProps,\n filteredOptions,\n filteringValue,\n highlightType,\n checkboxes,\n hasDropdownStatus,\n listBottom,\n useInteractiveGroups,\n screenReaderContent,\n }: SelectListProps,\n ref: React.Ref<SelectListProps.SelectListRef>\n ) => {\n // update component, when it gets wider or narrower to reposition items\n const [width, menuMeasureRef] = useContainerQuery(rect => rect.width, []);\n const menuRefObject = useRef(null);\n const menuRef = useMergeRefs(menuMeasureRef, menuRefObject, menuProps.ref);\n\n const { virtualItems, totalSize, scrollToIndex } = useVirtual({\n items: filteredOptions,\n parentRef: menuRefObject,\n // estimateSize is a dependency of measurements memo. We update it to force full recalculation\n // when the height of any option could have changed:\n // 1: because the component got resized (width property got updated)\n // 2: because the option changed its content (filteringValue property controls the highlight and the visibility of hidden tags)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n estimateSize: useCallback(() => 31, [width, filteringValue]),\n });\n\n useImperativeHandle(\n ref,\n () => (index: number) => {\n if (highlightType === 'keyboard') {\n scrollToIndex(index);\n }\n },\n [highlightType, scrollToIndex]\n );\n const finalOptions = renderOptions({\n options: virtualItems.map(({ index }) => filteredOptions[index]),\n getOptionProps,\n filteringValue,\n highlightType,\n checkboxes,\n hasDropdownStatus,\n virtualItems,\n useInteractiveGroups,\n screenReaderContent,\n ariaSetsize: filteredOptions.length,\n });\n\n return (\n <OptionsList {...menuProps} ref={menuRef}>\n <div aria-hidden=\"true\" key=\"total-size\" className={styles['layout-strut']} style={{ height: totalSize }} />\n {finalOptions}\n {listBottom ? (\n <li role=\"option\" className={styles['list-bottom']}>\n {listBottom}\n </li>\n ) : null}\n </OptionsList>\n );\n }\n);\n\nconst VirtualListClosed = forwardRef(\n ({ menuProps, listBottom }: SelectListProps, ref: React.Ref<SelectListProps.SelectListRef>) => {\n useImperativeHandle(ref, () => () => {}, []);\n return (\n <OptionsList {...menuProps} ref={menuProps.ref}>\n {listBottom ? (\n <li role=\"option\" className={styles['list-bottom']}>\n {listBottom}\n </li>\n ) : null}\n </OptionsList>\n );\n }\n);\n\nexport default forwardRef(VirtualList);\n"]}
@@ -1,7 +1,7 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { isDevelopment } from '../../internal/is-development';
4
- import { warnOnce } from '../../internal/logging';
4
+ import { warnOnce } from '@cloudscape-design/component-toolkit/internal';
5
5
  export function checkOptionValueField(componentName, propertyName, propertyValue) {
6
6
  if (isDevelopment) {
7
7
  if (!propertyValue) {
@@ -1 +1 @@
1
- {"version":3,"file":"check-option-value-field.js","sourceRoot":"lib/default/","sources":["select/utils/check-option-value-field.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,MAAM,UAAU,qBAAqB,CACnC,aAAqB,EACrB,YAAoB,EACpB,aAAoC;IAEpC,IAAI,aAAa,EAAE;QACjB,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO;SACR;QAED,MAAM,oBAAoB,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YAC1D,OAAO,SAAS,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,IAAI,oBAAoB,EAAE;YACxB,QAAQ,CACN,aAAa,EACb,qBAAqB,YAAY,8IAA8I,CAChL,CAAC;SACH;KACF;AACH,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { isDevelopment } from '../../internal/is-development';\nimport { warnOnce } from '../../internal/logging';\n\nexport function checkOptionValueField<ValueType extends ReadonlyArray<any>>(\n componentName: string,\n propertyName: string,\n propertyValue: ValueType | undefined\n) {\n if (isDevelopment) {\n if (!propertyValue) {\n return;\n }\n\n const valuePropertyMissing = !propertyValue.every(element => {\n return 'options' in element || 'value' in element;\n });\n\n if (valuePropertyMissing) {\n warnOnce(\n componentName,\n `You provided an \\`${propertyName}\\` prop where at least one non-group array element is missing the \\`value\\` field. This field is required for all options without sub-items.`\n );\n }\n }\n}\n"]}
1
+ {"version":3,"file":"check-option-value-field.js","sourceRoot":"lib/default/","sources":["select/utils/check-option-value-field.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AAEzE,MAAM,UAAU,qBAAqB,CACnC,aAAqB,EACrB,YAAoB,EACpB,aAAoC;IAEpC,IAAI,aAAa,EAAE;QACjB,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO;SACR;QAED,MAAM,oBAAoB,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YAC1D,OAAO,SAAS,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,IAAI,oBAAoB,EAAE;YACxB,QAAQ,CACN,aAAa,EACb,qBAAqB,YAAY,8IAA8I,CAChL,CAAC;SACH;KACF;AACH,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { isDevelopment } from '../../internal/is-development';\nimport { warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nexport function checkOptionValueField<ValueType extends ReadonlyArray<any>>(\n componentName: string,\n propertyName: string,\n propertyValue: ValueType | undefined\n) {\n if (isDevelopment) {\n if (!propertyValue) {\n return;\n }\n\n const valuePropertyMissing = !propertyValue.every(element => {\n return 'options' in element || 'value' in element;\n });\n\n if (valuePropertyMissing) {\n warnOnce(\n componentName,\n `You provided an \\`${propertyName}\\` prop where at least one non-group array element is missing the \\`value\\` field. This field is required for all options without sub-items.`\n );\n }\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { warnOnce } from '../internal/logging';
1
+ import { warnOnce } from '@cloudscape-design/component-toolkit/internal';
2
2
  export function hasActiveLink(items, activeHref) {
3
3
  for (const item of items) {
4
4
  if ((item.type === 'link' || item.type === 'link-group' || item.type === 'expandable-link-group') &&
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"lib/default/","sources":["side-navigation/util.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAI/C,MAAM,UAAU,aAAa,CAAC,KAA8C,EAAE,UAAkB;IAC9F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IACE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,CAAC;YAC7F,IAAI,CAAC,IAAI,KAAK,UAAU,EACxB;YACA,OAAO,IAAI,CAAC;SACb;QACD,IACE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,CAAC;YAChG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,EACrC;YACA,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,KAA8C,EAC9C,UAA4E,IAAI,OAAO,EAAE,EACzF,oBAAmD,EAAE;IAErD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACnB,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACnD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,EAAE;YACpE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YACrC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAChC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,EAAE;YAClG,8BAA8B,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;SACvE;IACH,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAA8C;IAChF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,mDAAmD;QACnD,oEAAoE;QACpE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAE5B,yBAAyB;QACzB,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACxB,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;aAC9E;YACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtB;QAED,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3B;KACF;AACH,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { SideNavigationProps } from './interfaces';\nimport { warnOnce } from '../internal/logging';\n\ntype ExpandableItem = SideNavigationProps.Section | SideNavigationProps.ExpandableLinkGroup;\n\nexport function hasActiveLink(items: ReadonlyArray<SideNavigationProps.Item>, activeHref: string): boolean {\n for (const item of items) {\n if (\n (item.type === 'link' || item.type === 'link-group' || item.type === 'expandable-link-group') &&\n item.href === activeHref\n ) {\n return true;\n }\n if (\n (item.type === 'section' || item.type === 'link-group' || item.type === 'expandable-link-group') &&\n hasActiveLink(item.items, activeHref)\n ) {\n return true;\n }\n }\n return false;\n}\n\nexport function generateExpandableItemsMapping(\n items: ReadonlyArray<SideNavigationProps.Item>,\n mapping: WeakMap<SideNavigationProps.Item, ReadonlyArray<ExpandableItem>> = new WeakMap(),\n expandableParents: ReadonlyArray<ExpandableItem> = []\n): WeakMap<SideNavigationProps.Item, ReadonlyArray<ExpandableItem>> {\n items.forEach(item => {\n const nextLevelParents = expandableParents.slice();\n if (item.type === 'section' || item.type === 'expandable-link-group') {\n mapping.set(item, expandableParents);\n nextLevelParents.unshift(item);\n }\n if (item.type === 'section' || item.type === 'link-group' || item.type === 'expandable-link-group') {\n generateExpandableItemsMapping(item.items, mapping, nextLevelParents);\n }\n });\n return mapping;\n}\n\nexport function checkDuplicateHrefs(items: ReadonlyArray<SideNavigationProps.Item>) {\n const hrefs = new Set();\n const queue = items.slice();\n while (queue.length > 0) {\n // We just checked that there's items in the queue.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const item = queue.shift()!;\n\n // Check duplicated hrefs\n if ('href' in item) {\n if (hrefs.has(item.href)) {\n warnOnce('SideNavigation', `duplicate href in \"${item.text}\": ${item.href}`);\n }\n hrefs.add(item.href);\n }\n\n if ('items' in item) {\n queue.push(...item.items);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"util.js","sourceRoot":"lib/default/","sources":["side-navigation/util.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AAIzE,MAAM,UAAU,aAAa,CAAC,KAA8C,EAAE,UAAkB;IAC9F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IACE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,CAAC;YAC7F,IAAI,CAAC,IAAI,KAAK,UAAU,EACxB;YACA,OAAO,IAAI,CAAC;SACb;QACD,IACE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,CAAC;YAChG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,EACrC;YACA,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,KAA8C,EAC9C,UAA4E,IAAI,OAAO,EAAE,EACzF,oBAAmD,EAAE;IAErD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACnB,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACnD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,EAAE;YACpE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YACrC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAChC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,EAAE;YAClG,8BAA8B,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;SACvE;IACH,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAA8C;IAChF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,mDAAmD;QACnD,oEAAoE;QACpE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAE5B,yBAAyB;QACzB,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACxB,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;aAC9E;YACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtB;QAED,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3B;KACF;AACH,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { SideNavigationProps } from './interfaces';\nimport { warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\ntype ExpandableItem = SideNavigationProps.Section | SideNavigationProps.ExpandableLinkGroup;\n\nexport function hasActiveLink(items: ReadonlyArray<SideNavigationProps.Item>, activeHref: string): boolean {\n for (const item of items) {\n if (\n (item.type === 'link' || item.type === 'link-group' || item.type === 'expandable-link-group') &&\n item.href === activeHref\n ) {\n return true;\n }\n if (\n (item.type === 'section' || item.type === 'link-group' || item.type === 'expandable-link-group') &&\n hasActiveLink(item.items, activeHref)\n ) {\n return true;\n }\n }\n return false;\n}\n\nexport function generateExpandableItemsMapping(\n items: ReadonlyArray<SideNavigationProps.Item>,\n mapping: WeakMap<SideNavigationProps.Item, ReadonlyArray<ExpandableItem>> = new WeakMap(),\n expandableParents: ReadonlyArray<ExpandableItem> = []\n): WeakMap<SideNavigationProps.Item, ReadonlyArray<ExpandableItem>> {\n items.forEach(item => {\n const nextLevelParents = expandableParents.slice();\n if (item.type === 'section' || item.type === 'expandable-link-group') {\n mapping.set(item, expandableParents);\n nextLevelParents.unshift(item);\n }\n if (item.type === 'section' || item.type === 'link-group' || item.type === 'expandable-link-group') {\n generateExpandableItemsMapping(item.items, mapping, nextLevelParents);\n }\n });\n return mapping;\n}\n\nexport function checkDuplicateHrefs(items: ReadonlyArray<SideNavigationProps.Item>) {\n const hrefs = new Set();\n const queue = items.slice();\n while (queue.length > 0) {\n // We just checked that there's items in the queue.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const item = queue.shift()!;\n\n // Check duplicated hrefs\n if ('href' in item) {\n if (hrefs.has(item.href)) {\n warnOnce('SideNavigation', `duplicate href in \"${item.text}\": ${item.href}`);\n }\n hrefs.add(item.href);\n }\n\n if ('items' in item) {\n queue.push(...item.items);\n }\n }\n}\n"]}
@@ -21,6 +21,6 @@ export interface SpaceBetweenProps extends BaseComponentProps {
21
21
  export declare namespace SpaceBetweenProps {
22
22
  type Direction = 'vertical' | 'horizontal';
23
23
  type Size = 'xxxs' | 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl';
24
- type AlignItems = 'center';
24
+ type AlignItems = 'center' | 'start' | 'end';
25
25
  }
26
26
  //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"lib/default/","sources":["space-between/interfaces.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D;;OAEG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC;IAExC;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B;;OAEG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC;CAC3C;AAED,yBAAiB,iBAAiB,CAAC;IACjC,KAAY,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;IAElD,KAAY,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC;IAE1E,KAAY,UAAU,GAAG,QAAQ,CAAC;CACnC"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"lib/default/","sources":["space-between/interfaces.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D;;OAEG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC;IAExC;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B;;OAEG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC;CAC3C;AAED,yBAAiB,iBAAiB,CAAC;IACjC,KAAY,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;IAElD,KAAY,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC;IAE1E,KAAY,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;CACrD"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"lib/default/","sources":["space-between/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { BaseComponentProps } from '../internal/base-component';\n\nexport interface SpaceBetweenProps extends BaseComponentProps {\n /**\n * Defines the direction in which the content is laid out.\n */\n direction?: SpaceBetweenProps.Direction;\n\n /**\n * Defines the spacing between the individual items of the content.\n */\n size: SpaceBetweenProps.Size;\n\n /**\n * Content of this component.\n */\n children?: React.ReactNode;\n\n /**\n * Determines how the child elements will be aligned based on the [align-items](https://developer.mozilla.org/en-US/docs/Web/CSS/align-items) property of the CSS Flexbox.\n */\n alignItems?: SpaceBetweenProps.AlignItems;\n}\n\nexport namespace SpaceBetweenProps {\n export type Direction = 'vertical' | 'horizontal';\n\n export type Size = 'xxxs' | 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl';\n\n export type AlignItems = 'center';\n}\n"]}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"lib/default/","sources":["space-between/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { BaseComponentProps } from '../internal/base-component';\n\nexport interface SpaceBetweenProps extends BaseComponentProps {\n /**\n * Defines the direction in which the content is laid out.\n */\n direction?: SpaceBetweenProps.Direction;\n\n /**\n * Defines the spacing between the individual items of the content.\n */\n size: SpaceBetweenProps.Size;\n\n /**\n * Content of this component.\n */\n children?: React.ReactNode;\n\n /**\n * Determines how the child elements will be aligned based on the [align-items](https://developer.mozilla.org/en-US/docs/Web/CSS/align-items) property of the CSS Flexbox.\n */\n alignItems?: SpaceBetweenProps.AlignItems;\n}\n\nexport namespace SpaceBetweenProps {\n export type Direction = 'vertical' | 'horizontal';\n\n export type Size = 'xxxs' | 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl';\n\n export type AlignItems = 'center' | 'start' | 'end';\n}\n"]}
@@ -1,26 +1,28 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "root": "awsui_root_18582_18i5a_93",
5
- "child": "awsui_child_18582_18i5a_97",
6
- "horizontal": "awsui_horizontal_18582_18i5a_108",
7
- "horizontal-xxxs": "awsui_horizontal-xxxs_18582_18i5a_112",
8
- "horizontal-xxs": "awsui_horizontal-xxs_18582_18i5a_115",
9
- "horizontal-xs": "awsui_horizontal-xs_18582_18i5a_118",
10
- "horizontal-s": "awsui_horizontal-s_18582_18i5a_121",
11
- "horizontal-m": "awsui_horizontal-m_18582_18i5a_124",
12
- "horizontal-l": "awsui_horizontal-l_18582_18i5a_127",
13
- "horizontal-xl": "awsui_horizontal-xl_18582_18i5a_130",
14
- "horizontal-xxl": "awsui_horizontal-xxl_18582_18i5a_133",
15
- "vertical": "awsui_vertical_18582_18i5a_140",
16
- "vertical-xxxs": "awsui_vertical-xxxs_18582_18i5a_143",
17
- "vertical-xxs": "awsui_vertical-xxs_18582_18i5a_146",
18
- "vertical-xs": "awsui_vertical-xs_18582_18i5a_149",
19
- "vertical-s": "awsui_vertical-s_18582_18i5a_152",
20
- "vertical-m": "awsui_vertical-m_18582_18i5a_155",
21
- "vertical-l": "awsui_vertical-l_18582_18i5a_158",
22
- "vertical-xl": "awsui_vertical-xl_18582_18i5a_161",
23
- "vertical-xxl": "awsui_vertical-xxl_18582_18i5a_164",
24
- "align-center": "awsui_align-center_18582_18i5a_168"
4
+ "root": "awsui_root_18582_vrts6_93",
5
+ "child": "awsui_child_18582_vrts6_97",
6
+ "horizontal": "awsui_horizontal_18582_vrts6_108",
7
+ "horizontal-xxxs": "awsui_horizontal-xxxs_18582_vrts6_112",
8
+ "horizontal-xxs": "awsui_horizontal-xxs_18582_vrts6_115",
9
+ "horizontal-xs": "awsui_horizontal-xs_18582_vrts6_118",
10
+ "horizontal-s": "awsui_horizontal-s_18582_vrts6_121",
11
+ "horizontal-m": "awsui_horizontal-m_18582_vrts6_124",
12
+ "horizontal-l": "awsui_horizontal-l_18582_vrts6_127",
13
+ "horizontal-xl": "awsui_horizontal-xl_18582_vrts6_130",
14
+ "horizontal-xxl": "awsui_horizontal-xxl_18582_vrts6_133",
15
+ "vertical": "awsui_vertical_18582_vrts6_140",
16
+ "vertical-xxxs": "awsui_vertical-xxxs_18582_vrts6_143",
17
+ "vertical-xxs": "awsui_vertical-xxs_18582_vrts6_146",
18
+ "vertical-xs": "awsui_vertical-xs_18582_vrts6_149",
19
+ "vertical-s": "awsui_vertical-s_18582_vrts6_152",
20
+ "vertical-m": "awsui_vertical-m_18582_vrts6_155",
21
+ "vertical-l": "awsui_vertical-l_18582_vrts6_158",
22
+ "vertical-xl": "awsui_vertical-xl_18582_vrts6_161",
23
+ "vertical-xxl": "awsui_vertical-xxl_18582_vrts6_164",
24
+ "align-center": "awsui_align-center_18582_vrts6_168",
25
+ "align-start": "awsui_align-start_18582_vrts6_172",
26
+ "align-end": "awsui_align-end_18582_vrts6_176"
25
27
  };
26
28
 
@@ -90,81 +90,89 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
90
90
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
91
91
  SPDX-License-Identifier: Apache-2.0
92
92
  */
93
- .awsui_root_18582_18i5a_93:not(#\9) {
93
+ .awsui_root_18582_vrts6_93:not(#\9) {
94
94
  display: flex;
95
95
  }
96
96
 
97
- .awsui_child_18582_18i5a_97:not(#\9) {
97
+ .awsui_child_18582_vrts6_97:not(#\9) {
98
98
  /* used in test-utils */
99
99
  }
100
100
 
101
- .awsui_child_18582_18i5a_97:not(#\9):empty {
101
+ .awsui_child_18582_vrts6_97:not(#\9):empty {
102
102
  display: none;
103
103
  }
104
104
 
105
105
  /*
106
106
  * Horizontal variant
107
107
  */
108
- .awsui_horizontal_18582_18i5a_108:not(#\9) {
108
+ .awsui_horizontal_18582_vrts6_108:not(#\9) {
109
109
  flex-direction: row;
110
110
  flex-wrap: wrap;
111
111
  }
112
- .awsui_horizontal-xxxs_18582_18i5a_112:not(#\9) {
112
+ .awsui_horizontal-xxxs_18582_vrts6_112:not(#\9) {
113
113
  gap: var(--space-xxxs-j6dpcy, 2px);
114
114
  }
115
- .awsui_horizontal-xxs_18582_18i5a_115:not(#\9) {
115
+ .awsui_horizontal-xxs_18582_vrts6_115:not(#\9) {
116
116
  gap: var(--space-xxs-ja5cp8, 4px);
117
117
  }
118
- .awsui_horizontal-xs_18582_18i5a_118:not(#\9) {
118
+ .awsui_horizontal-xs_18582_vrts6_118:not(#\9) {
119
119
  gap: var(--space-xs-edba2s, 8px);
120
120
  }
121
- .awsui_horizontal-s_18582_18i5a_121:not(#\9) {
121
+ .awsui_horizontal-s_18582_vrts6_121:not(#\9) {
122
122
  gap: var(--space-s-hdd878, 12px);
123
123
  }
124
- .awsui_horizontal-m_18582_18i5a_124:not(#\9) {
124
+ .awsui_horizontal-m_18582_vrts6_124:not(#\9) {
125
125
  gap: var(--space-m-h2th94, 16px);
126
126
  }
127
- .awsui_horizontal-l_18582_18i5a_127:not(#\9) {
127
+ .awsui_horizontal-l_18582_vrts6_127:not(#\9) {
128
128
  gap: var(--space-l-f4l5gr, 20px);
129
129
  }
130
- .awsui_horizontal-xl_18582_18i5a_130:not(#\9) {
130
+ .awsui_horizontal-xl_18582_vrts6_130:not(#\9) {
131
131
  gap: var(--space-xl-gsucfg, 24px);
132
132
  }
133
- .awsui_horizontal-xxl_18582_18i5a_133:not(#\9) {
133
+ .awsui_horizontal-xxl_18582_vrts6_133:not(#\9) {
134
134
  gap: var(--space-xxl-sgg5p8, 32px);
135
135
  }
136
136
 
137
137
  /*
138
138
  * Vertical variant
139
139
  */
140
- .awsui_vertical_18582_18i5a_140:not(#\9) {
140
+ .awsui_vertical_18582_vrts6_140:not(#\9) {
141
141
  flex-direction: column;
142
142
  }
143
- .awsui_vertical-xxxs_18582_18i5a_143:not(#\9) {
143
+ .awsui_vertical-xxxs_18582_vrts6_143:not(#\9) {
144
144
  row-gap: var(--space-xxxs-j6dpcy, 2px);
145
145
  }
146
- .awsui_vertical-xxs_18582_18i5a_146:not(#\9) {
146
+ .awsui_vertical-xxs_18582_vrts6_146:not(#\9) {
147
147
  row-gap: var(--space-xxs-ja5cp8, 4px);
148
148
  }
149
- .awsui_vertical-xs_18582_18i5a_149:not(#\9) {
149
+ .awsui_vertical-xs_18582_vrts6_149:not(#\9) {
150
150
  row-gap: var(--space-xs-edba2s, 8px);
151
151
  }
152
- .awsui_vertical-s_18582_18i5a_152:not(#\9) {
152
+ .awsui_vertical-s_18582_vrts6_152:not(#\9) {
153
153
  row-gap: var(--space-scaled-s-913kwi, 12px);
154
154
  }
155
- .awsui_vertical-m_18582_18i5a_155:not(#\9) {
155
+ .awsui_vertical-m_18582_vrts6_155:not(#\9) {
156
156
  row-gap: var(--space-scaled-m-gxhdpl, 16px);
157
157
  }
158
- .awsui_vertical-l_18582_18i5a_158:not(#\9) {
158
+ .awsui_vertical-l_18582_vrts6_158:not(#\9) {
159
159
  row-gap: var(--space-scaled-l-2rs0gk, 20px);
160
160
  }
161
- .awsui_vertical-xl_18582_18i5a_161:not(#\9) {
161
+ .awsui_vertical-xl_18582_vrts6_161:not(#\9) {
162
162
  row-gap: var(--space-scaled-xl-jawob6, 24px);
163
163
  }
164
- .awsui_vertical-xxl_18582_18i5a_164:not(#\9) {
164
+ .awsui_vertical-xxl_18582_vrts6_164:not(#\9) {
165
165
  row-gap: var(--space-scaled-xxl-fzmynl, 32px);
166
166
  }
167
167
 
168
- .awsui_align-center_18582_18i5a_168:not(#\9) {
168
+ .awsui_align-center_18582_vrts6_168:not(#\9) {
169
169
  align-items: center;
170
+ }
171
+
172
+ .awsui_align-start_18582_vrts6_172:not(#\9) {
173
+ align-items: start;
174
+ }
175
+
176
+ .awsui_align-end_18582_vrts6_176:not(#\9) {
177
+ align-items: end;
170
178
  }
@@ -2,26 +2,28 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "root": "awsui_root_18582_18i5a_93",
6
- "child": "awsui_child_18582_18i5a_97",
7
- "horizontal": "awsui_horizontal_18582_18i5a_108",
8
- "horizontal-xxxs": "awsui_horizontal-xxxs_18582_18i5a_112",
9
- "horizontal-xxs": "awsui_horizontal-xxs_18582_18i5a_115",
10
- "horizontal-xs": "awsui_horizontal-xs_18582_18i5a_118",
11
- "horizontal-s": "awsui_horizontal-s_18582_18i5a_121",
12
- "horizontal-m": "awsui_horizontal-m_18582_18i5a_124",
13
- "horizontal-l": "awsui_horizontal-l_18582_18i5a_127",
14
- "horizontal-xl": "awsui_horizontal-xl_18582_18i5a_130",
15
- "horizontal-xxl": "awsui_horizontal-xxl_18582_18i5a_133",
16
- "vertical": "awsui_vertical_18582_18i5a_140",
17
- "vertical-xxxs": "awsui_vertical-xxxs_18582_18i5a_143",
18
- "vertical-xxs": "awsui_vertical-xxs_18582_18i5a_146",
19
- "vertical-xs": "awsui_vertical-xs_18582_18i5a_149",
20
- "vertical-s": "awsui_vertical-s_18582_18i5a_152",
21
- "vertical-m": "awsui_vertical-m_18582_18i5a_155",
22
- "vertical-l": "awsui_vertical-l_18582_18i5a_158",
23
- "vertical-xl": "awsui_vertical-xl_18582_18i5a_161",
24
- "vertical-xxl": "awsui_vertical-xxl_18582_18i5a_164",
25
- "align-center": "awsui_align-center_18582_18i5a_168"
5
+ "root": "awsui_root_18582_vrts6_93",
6
+ "child": "awsui_child_18582_vrts6_97",
7
+ "horizontal": "awsui_horizontal_18582_vrts6_108",
8
+ "horizontal-xxxs": "awsui_horizontal-xxxs_18582_vrts6_112",
9
+ "horizontal-xxs": "awsui_horizontal-xxs_18582_vrts6_115",
10
+ "horizontal-xs": "awsui_horizontal-xs_18582_vrts6_118",
11
+ "horizontal-s": "awsui_horizontal-s_18582_vrts6_121",
12
+ "horizontal-m": "awsui_horizontal-m_18582_vrts6_124",
13
+ "horizontal-l": "awsui_horizontal-l_18582_vrts6_127",
14
+ "horizontal-xl": "awsui_horizontal-xl_18582_vrts6_130",
15
+ "horizontal-xxl": "awsui_horizontal-xxl_18582_vrts6_133",
16
+ "vertical": "awsui_vertical_18582_vrts6_140",
17
+ "vertical-xxxs": "awsui_vertical-xxxs_18582_vrts6_143",
18
+ "vertical-xxs": "awsui_vertical-xxs_18582_vrts6_146",
19
+ "vertical-xs": "awsui_vertical-xs_18582_vrts6_149",
20
+ "vertical-s": "awsui_vertical-s_18582_vrts6_152",
21
+ "vertical-m": "awsui_vertical-m_18582_vrts6_155",
22
+ "vertical-l": "awsui_vertical-l_18582_vrts6_158",
23
+ "vertical-xl": "awsui_vertical-xl_18582_vrts6_161",
24
+ "vertical-xxl": "awsui_vertical-xxl_18582_vrts6_164",
25
+ "align-center": "awsui_align-center_18582_vrts6_168",
26
+ "align-start": "awsui_align-start_18582_vrts6_172",
27
+ "align-end": "awsui_align-end_18582_vrts6_176"
26
28
  };
27
29
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"lib/default/","sources":["table/body-cell/index.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAkB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AASnE,UAAU,kBAAkB,CAAC,QAAQ,CAAE,SAAQ,mBAAmB;IAChE,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACrD,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;CACtC;AAuFD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,EACtC,UAAU,EACV,GAAG,IAAI,EACR,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GAAG;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,eAMxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"lib/default/","sources":["table/body-cell/index.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAkB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AASnE,UAAU,kBAAkB,CAAC,QAAQ,CAAE,SAAQ,mBAAmB;IAChE,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACrD,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;CACtC;AA2FD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,EACtC,UAAU,EACV,GAAG,IAAI,EACR,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GAAG;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,eAMxD"}
@@ -3,8 +3,7 @@ import { __rest } from "tslib";
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  import clsx from 'clsx';
5
5
  import styles from './styles.css.js';
6
- import React, { useRef, useState } from 'react';
7
- import { useEffectOnUpdate } from '../../internal/hooks/use-effect-on-update';
6
+ import React, { useEffect, useRef, useState } from 'react';
8
7
  import Icon from '../../icon/internal';
9
8
  import { TableTdElement } from './td-element';
10
9
  import { InlineEditor } from './inline-editor';
@@ -21,8 +20,10 @@ function TableCellEditable(_a) {
21
20
  const tdNativeAttributes = {
22
21
  'data-inline-editing-active': isEditing.toString(),
23
22
  };
24
- useEffectOnUpdate(() => {
25
- if (!isEditing && editActivateRef.current) {
23
+ const isFocusMoveNeededRef = useRef(false);
24
+ useEffect(() => {
25
+ if (!isEditing && editActivateRef.current && isFocusMoveNeededRef.current) {
26
+ isFocusMoveNeededRef.current = false;
26
27
  editActivateRef.current.focus();
27
28
  }
28
29
  }, [isEditing]);
@@ -30,7 +31,10 @@ function TableCellEditable(_a) {
30
31
  const [hasHover, setHasHover] = useState(false);
31
32
  const [hasFocus, setHasFocus] = useState(false);
32
33
  const showIcon = hasHover || hasFocus;
33
- return (React.createElement(TableTdElement, Object.assign({}, rest, { nativeAttributes: tdNativeAttributes, className: clsx(className, styles['body-cell-editable'], isEditing && styles['body-cell-edit-active'], successfulEdit && styles['body-cell-has-success'], isVisualRefresh && styles['is-visual-refresh']), onClick: !isEditing ? onEditStart : undefined, onMouseEnter: () => setHasHover(true), onMouseLeave: () => setHasHover(false) }), isEditing ? (React.createElement(InlineEditor, { ariaLabels: ariaLabels, column: column, item: item, onEditEnd: onEditEnd, submitEdit: submitEdit !== null && submitEdit !== void 0 ? submitEdit : submitHandlerFallback })) : (React.createElement(React.Fragment, null,
34
+ return (React.createElement(TableTdElement, Object.assign({}, rest, { nativeAttributes: tdNativeAttributes, className: clsx(className, styles['body-cell-editable'], isEditing && styles['body-cell-edit-active'], successfulEdit && styles['body-cell-has-success'], isVisualRefresh && styles['is-visual-refresh']), onClick: !isEditing ? onEditStart : undefined, onMouseEnter: () => setHasHover(true), onMouseLeave: () => setHasHover(false) }), isEditing ? (React.createElement(InlineEditor, { ariaLabels: ariaLabels, column: column, item: item, onEditEnd: e => {
35
+ isFocusMoveNeededRef.current = true;
36
+ onEditEnd(e);
37
+ }, submitEdit: submitEdit !== null && submitEdit !== void 0 ? submitEdit : submitHandlerFallback })) : (React.createElement(React.Fragment, null,
34
38
  column.cell(item),
35
39
  successfulEdit && (React.createElement(React.Fragment, null,
36
40
  React.createElement("span", { className: styles['body-cell-success'], "aria-label": (_b = ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.successfulEditLabel) === null || _b === void 0 ? void 0 : _b.call(ariaLabels, column), role: "img" },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["table/body-cell/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport styles from './styles.css.js';\nimport React, { useRef, useState } from 'react';\nimport { useEffectOnUpdate } from '../../internal/hooks/use-effect-on-update';\nimport Icon from '../../icon/internal';\nimport { TableProps } from '../interfaces';\nimport { TableTdElement, TableTdElementProps } from './td-element';\nimport { InlineEditor } from './inline-editor';\nimport LiveRegion from '../../internal/components/live-region/index.js';\nimport { useInternalI18n } from '../../internal/i18n/context';\n\nconst submitHandlerFallback = () => {\n throw new Error('The function `handleSubmit` is required for editable columns');\n};\n\ninterface TableBodyCellProps<ItemType> extends TableTdElementProps {\n column: TableProps.ColumnDefinition<ItemType>;\n item: ItemType;\n isEditing: boolean;\n successfulEdit?: boolean;\n onEditStart: () => void;\n onEditEnd: (cancelled: boolean) => void;\n submitEdit?: TableProps.SubmitEditFunction<ItemType>;\n ariaLabels: TableProps['ariaLabels'];\n}\n\nfunction TableCellEditable<ItemType>({\n className,\n item,\n column,\n isEditing,\n onEditStart,\n onEditEnd,\n submitEdit,\n ariaLabels,\n isVisualRefresh,\n successfulEdit = false,\n ...rest\n}: TableBodyCellProps<ItemType>) {\n const i18n = useInternalI18n('table');\n const editActivateRef = useRef<HTMLButtonElement>(null);\n const tdNativeAttributes = {\n 'data-inline-editing-active': isEditing.toString(),\n };\n\n useEffectOnUpdate(() => {\n if (!isEditing && editActivateRef.current) {\n editActivateRef.current.focus();\n }\n }, [isEditing]);\n\n // To improve the initial page render performance we only show the edit icon when necessary.\n const [hasHover, setHasHover] = useState(false);\n const [hasFocus, setHasFocus] = useState(false);\n const showIcon = hasHover || hasFocus;\n\n return (\n <TableTdElement\n {...rest}\n nativeAttributes={tdNativeAttributes as TableTdElementProps['nativeAttributes']}\n className={clsx(\n className,\n styles['body-cell-editable'],\n isEditing && styles['body-cell-edit-active'],\n successfulEdit && styles['body-cell-has-success'],\n isVisualRefresh && styles['is-visual-refresh']\n )}\n onClick={!isEditing ? onEditStart : undefined}\n onMouseEnter={() => setHasHover(true)}\n onMouseLeave={() => setHasHover(false)}\n >\n {isEditing ? (\n <InlineEditor\n ariaLabels={ariaLabels}\n column={column}\n item={item}\n onEditEnd={onEditEnd}\n submitEdit={submitEdit ?? submitHandlerFallback}\n />\n ) : (\n <>\n {column.cell(item)}\n {successfulEdit && (\n <>\n <span\n className={styles['body-cell-success']}\n aria-label={ariaLabels?.successfulEditLabel?.(column)}\n role=\"img\"\n >\n <Icon name=\"status-positive\" variant=\"success\" />\n </span>\n <LiveRegion>\n {i18n('ariaLabels.successfulEditLabel', ariaLabels?.successfulEditLabel?.(column))}\n </LiveRegion>\n </>\n )}\n <button\n className={styles['body-cell-editor']}\n aria-label={ariaLabels?.activateEditLabel?.(column, item)}\n ref={editActivateRef}\n onFocus={() => setHasFocus(true)}\n onBlur={() => setHasFocus(false)}\n >\n {showIcon && <Icon name=\"edit\" />}\n </button>\n </>\n )}\n </TableTdElement>\n );\n}\n\nexport function TableBodyCell<ItemType>({\n isEditable,\n ...rest\n}: TableBodyCellProps<ItemType> & { isEditable: boolean }) {\n if (isEditable || rest.isEditing) {\n return <TableCellEditable {...rest} />;\n }\n const { column, item } = rest;\n return <TableTdElement {...rest}>{column.cell(item)}</TableTdElement>;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["table/body-cell/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport styles from './styles.css.js';\nimport React, { useEffect, useRef, useState } from 'react';\nimport Icon from '../../icon/internal';\nimport { TableProps } from '../interfaces';\nimport { TableTdElement, TableTdElementProps } from './td-element';\nimport { InlineEditor } from './inline-editor';\nimport LiveRegion from '../../internal/components/live-region/index.js';\nimport { useInternalI18n } from '../../internal/i18n/context';\n\nconst submitHandlerFallback = () => {\n throw new Error('The function `handleSubmit` is required for editable columns');\n};\n\ninterface TableBodyCellProps<ItemType> extends TableTdElementProps {\n column: TableProps.ColumnDefinition<ItemType>;\n item: ItemType;\n isEditing: boolean;\n successfulEdit?: boolean;\n onEditStart: () => void;\n onEditEnd: (cancelled: boolean) => void;\n submitEdit?: TableProps.SubmitEditFunction<ItemType>;\n ariaLabels: TableProps['ariaLabels'];\n}\n\nfunction TableCellEditable<ItemType>({\n className,\n item,\n column,\n isEditing,\n onEditStart,\n onEditEnd,\n submitEdit,\n ariaLabels,\n isVisualRefresh,\n successfulEdit = false,\n ...rest\n}: TableBodyCellProps<ItemType>) {\n const i18n = useInternalI18n('table');\n const editActivateRef = useRef<HTMLButtonElement>(null);\n const tdNativeAttributes = {\n 'data-inline-editing-active': isEditing.toString(),\n };\n const isFocusMoveNeededRef = useRef(false);\n\n useEffect(() => {\n if (!isEditing && editActivateRef.current && isFocusMoveNeededRef.current) {\n isFocusMoveNeededRef.current = false;\n editActivateRef.current.focus();\n }\n }, [isEditing]);\n // To improve the initial page render performance we only show the edit icon when necessary.\n const [hasHover, setHasHover] = useState(false);\n const [hasFocus, setHasFocus] = useState(false);\n const showIcon = hasHover || hasFocus;\n\n return (\n <TableTdElement\n {...rest}\n nativeAttributes={tdNativeAttributes as TableTdElementProps['nativeAttributes']}\n className={clsx(\n className,\n styles['body-cell-editable'],\n isEditing && styles['body-cell-edit-active'],\n successfulEdit && styles['body-cell-has-success'],\n isVisualRefresh && styles['is-visual-refresh']\n )}\n onClick={!isEditing ? onEditStart : undefined}\n onMouseEnter={() => setHasHover(true)}\n onMouseLeave={() => setHasHover(false)}\n >\n {isEditing ? (\n <InlineEditor\n ariaLabels={ariaLabels}\n column={column}\n item={item}\n onEditEnd={e => {\n isFocusMoveNeededRef.current = true;\n onEditEnd(e);\n }}\n submitEdit={submitEdit ?? submitHandlerFallback}\n />\n ) : (\n <>\n {column.cell(item)}\n {successfulEdit && (\n <>\n <span\n className={styles['body-cell-success']}\n aria-label={ariaLabels?.successfulEditLabel?.(column)}\n role=\"img\"\n >\n <Icon name=\"status-positive\" variant=\"success\" />\n </span>\n <LiveRegion>\n {i18n('ariaLabels.successfulEditLabel', ariaLabels?.successfulEditLabel?.(column))}\n </LiveRegion>\n </>\n )}\n <button\n className={styles['body-cell-editor']}\n aria-label={ariaLabels?.activateEditLabel?.(column, item)}\n ref={editActivateRef}\n onFocus={() => setHasFocus(true)}\n onBlur={() => setHasFocus(false)}\n >\n {showIcon && <Icon name=\"edit\" />}\n </button>\n </>\n )}\n </TableTdElement>\n );\n}\n\nexport function TableBodyCell<ItemType>({\n isEditable,\n ...rest\n}: TableBodyCellProps<ItemType> & { isEditable: boolean }) {\n if (isEditable || rest.isEditing) {\n return <TableCellEditable {...rest} />;\n }\n const { column, item } = rest;\n return <TableTdElement {...rest}>{column.cell(item)}</TableTdElement>;\n}\n"]}
@@ -3,7 +3,7 @@
3
3
  import React, { useEffect, useRef, useState, createContext, useContext } from 'react';
4
4
  import { getColumnKey } from './utils';
5
5
  import headerCellStyles from './header-cell/styles.css.js';
6
- import { warnOnce } from '../internal/logging';
6
+ import { warnOnce } from '@cloudscape-design/component-toolkit/internal';
7
7
  export const DEFAULT_WIDTH = 120;
8
8
  const SELECTION_CELL_WIDTH = 54;
9
9
  function checkProperty(column, name) {
@@ -1 +1 @@
1
- {"version":3,"file":"use-column-widths.js","sourceRoot":"lib/default/","sources":["table/use-column-widths.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef, useState, createContext, useContext } from 'react';\nimport { TableProps } from './interfaces';\nimport { getColumnKey } from './utils';\nimport headerCellStyles from './header-cell/styles.css.js';\nimport { warnOnce } from '../internal/logging';\n\nexport const DEFAULT_WIDTH = 120;\nconst SELECTION_CELL_WIDTH = 54;\n\nfunction checkProperty(column: TableProps.ColumnDefinition<any>, name: 'width' | 'minWidth') {\n const value = column[name];\n if (typeof value !== 'number' && typeof value !== 'undefined') {\n warnOnce(\n 'Table',\n `resizableColumns feature requires ${name} property to be a number, got ${value}. The component may work incorrectly.`\n );\n }\n}\n\nexport function checkColumnWidths(columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<any>>) {\n for (const column of columnDefinitions) {\n checkProperty(column, 'minWidth');\n checkProperty(column, 'width');\n }\n}\n\nfunction readWidths(\n headerEl: HTMLElement,\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<any>>,\n hasSelection: boolean\n) {\n const result: Record<string, number> = {};\n for (let index = 0; index < columnDefinitions.length; index++) {\n const column = columnDefinitions[index];\n const id = getColumnKey(columnDefinitions[index], index);\n let width = (column.width as number) || 0;\n const minWidth = (column.minWidth as number) || width || DEFAULT_WIDTH;\n if (\n !width && // read width from the DOM if it is missing in the config\n index !== columnDefinitions.length - 1 // skip reading for the last column, because it expands to fully fit the container\n ) {\n const colIndex = hasSelection ? index + 2 : index + 1;\n const colEl = headerEl.querySelector<HTMLElement>(`.${headerCellStyles['header-cell']}:nth-child(${colIndex})`)!;\n width = colEl.getBoundingClientRect().width;\n }\n result[id] = Math.max(width, minWidth);\n }\n return result;\n}\n\nfunction updateWidths(\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<any>>,\n oldWidths: Record<string, number>,\n newWidth: number,\n colIndex: number\n) {\n const definition = columnDefinitions[colIndex];\n const id = getColumnKey(definition, colIndex);\n const minWidth = typeof definition.minWidth === 'number' ? definition.minWidth : DEFAULT_WIDTH;\n newWidth = Math.max(newWidth, minWidth);\n if (oldWidths[id] === newWidth) {\n return oldWidths;\n }\n return { ...oldWidths, [id]: newWidth };\n}\n\ninterface WidthsContext {\n totalWidth: number;\n columnWidths: Record<string, number>;\n updateColumn: (colIndex: number, newWidth: number) => void;\n}\n\nconst WidthsContext = createContext<WidthsContext>({\n totalWidth: 0,\n columnWidths: {},\n updateColumn: () => {},\n});\n\ninterface WidthProviderProps {\n tableRef: React.MutableRefObject<HTMLElement | null>;\n visibleColumnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<any>>;\n resizableColumns: boolean | undefined;\n hasSelection: boolean;\n children: React.ReactNode;\n}\n\nexport function ColumnWidthsProvider({\n tableRef,\n visibleColumnDefinitions,\n resizableColumns,\n hasSelection,\n children,\n}: WidthProviderProps) {\n const visibleColumns = useRef<(string | undefined)[] | null>(null);\n const [columnWidths, setColumnWidths] = useState<Record<string, number>>({});\n\n useEffect(() => {\n if (!resizableColumns) {\n return;\n }\n const lastVisible = visibleColumns.current;\n if (lastVisible) {\n for (let index = 0; index < visibleColumnDefinitions.length; index++) {\n const column = visibleColumnDefinitions[index];\n const id = getColumnKey(column, index);\n if (!columnWidths[id] && lastVisible.indexOf(column.id) === -1) {\n setColumnWidths(columnWidths => ({ ...columnWidths, [id]: (column.width as number) || DEFAULT_WIDTH }));\n }\n }\n }\n visibleColumns.current = visibleColumnDefinitions.map(column => column.id);\n }, [columnWidths, resizableColumns, visibleColumnDefinitions]);\n\n useEffect(() => {\n if (!resizableColumns) {\n return;\n }\n setColumnWidths(() => readWidths(tableRef.current!, visibleColumnDefinitions, hasSelection));\n // This code is intended to run only at the first render and should not re-run when table props change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n function updateColumn(colIndex: number, newWidth: number) {\n setColumnWidths(columnWidths => updateWidths(visibleColumnDefinitions, columnWidths, newWidth, colIndex));\n }\n\n let totalWidth = visibleColumnDefinitions.reduce(\n (total, column, index) => total + (columnWidths[getColumnKey(column, index)] || DEFAULT_WIDTH),\n 0\n );\n if (hasSelection) {\n totalWidth += SELECTION_CELL_WIDTH;\n }\n\n return <WidthsContext.Provider value={{ columnWidths, totalWidth, updateColumn }}>{children}</WidthsContext.Provider>;\n}\n\nexport function useColumnWidths() {\n return useContext(WidthsContext);\n}\n"]}
1
+ {"version":3,"file":"use-column-widths.js","sourceRoot":"lib/default/","sources":["table/use-column-widths.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef, useState, createContext, useContext } from 'react';\nimport { TableProps } from './interfaces';\nimport { getColumnKey } from './utils';\nimport headerCellStyles from './header-cell/styles.css.js';\nimport { warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nexport const DEFAULT_WIDTH = 120;\nconst SELECTION_CELL_WIDTH = 54;\n\nfunction checkProperty(column: TableProps.ColumnDefinition<any>, name: 'width' | 'minWidth') {\n const value = column[name];\n if (typeof value !== 'number' && typeof value !== 'undefined') {\n warnOnce(\n 'Table',\n `resizableColumns feature requires ${name} property to be a number, got ${value}. The component may work incorrectly.`\n );\n }\n}\n\nexport function checkColumnWidths(columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<any>>) {\n for (const column of columnDefinitions) {\n checkProperty(column, 'minWidth');\n checkProperty(column, 'width');\n }\n}\n\nfunction readWidths(\n headerEl: HTMLElement,\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<any>>,\n hasSelection: boolean\n) {\n const result: Record<string, number> = {};\n for (let index = 0; index < columnDefinitions.length; index++) {\n const column = columnDefinitions[index];\n const id = getColumnKey(columnDefinitions[index], index);\n let width = (column.width as number) || 0;\n const minWidth = (column.minWidth as number) || width || DEFAULT_WIDTH;\n if (\n !width && // read width from the DOM if it is missing in the config\n index !== columnDefinitions.length - 1 // skip reading for the last column, because it expands to fully fit the container\n ) {\n const colIndex = hasSelection ? index + 2 : index + 1;\n const colEl = headerEl.querySelector<HTMLElement>(`.${headerCellStyles['header-cell']}:nth-child(${colIndex})`)!;\n width = colEl.getBoundingClientRect().width;\n }\n result[id] = Math.max(width, minWidth);\n }\n return result;\n}\n\nfunction updateWidths(\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<any>>,\n oldWidths: Record<string, number>,\n newWidth: number,\n colIndex: number\n) {\n const definition = columnDefinitions[colIndex];\n const id = getColumnKey(definition, colIndex);\n const minWidth = typeof definition.minWidth === 'number' ? definition.minWidth : DEFAULT_WIDTH;\n newWidth = Math.max(newWidth, minWidth);\n if (oldWidths[id] === newWidth) {\n return oldWidths;\n }\n return { ...oldWidths, [id]: newWidth };\n}\n\ninterface WidthsContext {\n totalWidth: number;\n columnWidths: Record<string, number>;\n updateColumn: (colIndex: number, newWidth: number) => void;\n}\n\nconst WidthsContext = createContext<WidthsContext>({\n totalWidth: 0,\n columnWidths: {},\n updateColumn: () => {},\n});\n\ninterface WidthProviderProps {\n tableRef: React.MutableRefObject<HTMLElement | null>;\n visibleColumnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<any>>;\n resizableColumns: boolean | undefined;\n hasSelection: boolean;\n children: React.ReactNode;\n}\n\nexport function ColumnWidthsProvider({\n tableRef,\n visibleColumnDefinitions,\n resizableColumns,\n hasSelection,\n children,\n}: WidthProviderProps) {\n const visibleColumns = useRef<(string | undefined)[] | null>(null);\n const [columnWidths, setColumnWidths] = useState<Record<string, number>>({});\n\n useEffect(() => {\n if (!resizableColumns) {\n return;\n }\n const lastVisible = visibleColumns.current;\n if (lastVisible) {\n for (let index = 0; index < visibleColumnDefinitions.length; index++) {\n const column = visibleColumnDefinitions[index];\n const id = getColumnKey(column, index);\n if (!columnWidths[id] && lastVisible.indexOf(column.id) === -1) {\n setColumnWidths(columnWidths => ({ ...columnWidths, [id]: (column.width as number) || DEFAULT_WIDTH }));\n }\n }\n }\n visibleColumns.current = visibleColumnDefinitions.map(column => column.id);\n }, [columnWidths, resizableColumns, visibleColumnDefinitions]);\n\n useEffect(() => {\n if (!resizableColumns) {\n return;\n }\n setColumnWidths(() => readWidths(tableRef.current!, visibleColumnDefinitions, hasSelection));\n // This code is intended to run only at the first render and should not re-run when table props change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n function updateColumn(colIndex: number, newWidth: number) {\n setColumnWidths(columnWidths => updateWidths(visibleColumnDefinitions, columnWidths, newWidth, colIndex));\n }\n\n let totalWidth = visibleColumnDefinitions.reduce(\n (total, column, index) => total + (columnWidths[getColumnKey(column, index)] || DEFAULT_WIDTH),\n 0\n );\n if (hasSelection) {\n totalWidth += SELECTION_CELL_WIDTH;\n }\n\n return <WidthsContext.Provider value={{ columnWidths, totalWidth, updateColumn }}>{children}</WidthsContext.Provider>;\n}\n\nexport function useColumnWidths() {\n return useContext(WidthsContext);\n}\n"]}
package/table/utils.js CHANGED
@@ -1,4 +1,4 @@
1
- import { warnOnce } from '../internal/logging';
1
+ import { warnOnce } from '@cloudscape-design/component-toolkit/internal';
2
2
  export const applyTrackBy = (trackBy, item) => {
3
3
  if (typeof trackBy === 'function') {
4
4
  return trackBy(item);
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"lib/default/","sources":["table/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { InternalContainerProps } from '../container/internal';\nimport { TableProps } from './interfaces';\nimport { warnOnce } from '../internal/logging';\nimport { StickyColumnsCellState } from './use-sticky-columns';\n\nexport const applyTrackBy = <T>(trackBy: TableProps.TrackBy<T>, item: T) => {\n if (typeof trackBy === 'function') {\n return trackBy(item);\n }\n return (item as any)[trackBy];\n};\n\nexport const getItemKey = <T>(trackBy: TableProps.TrackBy<T> | undefined, item: T, index: number) => {\n if (!trackBy) {\n return index;\n }\n return applyTrackBy(trackBy, item);\n};\n\nexport const getTrackableValue = <T>(trackBy: TableProps.TrackBy<T> | undefined, item: T) => {\n if (!trackBy) {\n return item;\n }\n return applyTrackBy(trackBy, item);\n};\n\nexport const getColumnKey = <T>(column: TableProps.ColumnDefinition<T>, index: number) => {\n return column.id || index;\n};\n\nexport const toContainerVariant = (variant: TableProps.Variant | undefined): InternalContainerProps['variant'] => {\n const isDefaultVariant = !variant || variant === 'container';\n return isDefaultVariant ? 'default' : variant === 'borderless' ? 'embedded' : variant;\n};\n\nexport function checkSortingState<T>(\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<T>>,\n sortingComparator: TableProps.SortingColumn<T>['sortingComparator']\n) {\n const matchedColumn = columnDefinitions.filter(column => column.sortingComparator === sortingComparator)[0];\n if (!matchedColumn) {\n warnOnce(\n 'Table',\n 'Currently active sorting comparator was not found in any columns. Make sure to provide the same comparator function instance on each render.'\n );\n }\n}\n\nexport function getVisibleColumnDefinitions<T>({\n columnDisplay,\n visibleColumns,\n columnDefinitions,\n}: {\n columnDisplay?: ReadonlyArray<TableProps.ColumnDisplayProperties>;\n visibleColumns?: ReadonlyArray<string>;\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<T>>;\n}) {\n // columnsDisplay has a precedence over visibleColumns.\n if (columnDisplay) {\n return getVisibleColumnDefinitionsFromColumnDisplay({ columnDisplay, columnDefinitions });\n } else if (visibleColumns) {\n return getVisibleColumnDefinitionsFromVisibleColumns({ visibleColumns, columnDefinitions });\n } else {\n return columnDefinitions;\n }\n}\n\nfunction getVisibleColumnDefinitionsFromColumnDisplay<T>({\n columnDisplay,\n columnDefinitions,\n}: {\n columnDisplay: ReadonlyArray<TableProps.ColumnDisplayProperties>;\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<T>>;\n}) {\n const columnDefinitionsById: Record<string, TableProps.ColumnDefinition<T>> = columnDefinitions.reduce(\n (accumulator, item) => (item.id === undefined ? accumulator : { ...accumulator, [item.id]: item }),\n {}\n );\n return columnDisplay\n .filter(item => item.visible)\n .map(item => columnDefinitionsById[item.id])\n .filter(Boolean);\n}\n\nfunction getVisibleColumnDefinitionsFromVisibleColumns<T>({\n visibleColumns,\n columnDefinitions,\n}: {\n visibleColumns: ReadonlyArray<string>;\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<T>>;\n}) {\n const ids = new Set(visibleColumns);\n return columnDefinitions.filter(({ id }) => id !== undefined && ids.has(id));\n}\n\nexport function getStickyClassNames(styles: Record<string, string>, props: StickyColumnsCellState | null) {\n return {\n [styles['sticky-cell']]: !!props,\n [styles['sticky-cell-pad-left']]: !!props?.padLeft,\n [styles['sticky-cell-last-left']]: !!props?.lastLeft,\n [styles['sticky-cell-last-right']]: !!props?.lastRight,\n };\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"lib/default/","sources":["table/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { InternalContainerProps } from '../container/internal';\nimport { TableProps } from './interfaces';\nimport { warnOnce } from '@cloudscape-design/component-toolkit/internal';\nimport { StickyColumnsCellState } from './use-sticky-columns';\n\nexport const applyTrackBy = <T>(trackBy: TableProps.TrackBy<T>, item: T) => {\n if (typeof trackBy === 'function') {\n return trackBy(item);\n }\n return (item as any)[trackBy];\n};\n\nexport const getItemKey = <T>(trackBy: TableProps.TrackBy<T> | undefined, item: T, index: number) => {\n if (!trackBy) {\n return index;\n }\n return applyTrackBy(trackBy, item);\n};\n\nexport const getTrackableValue = <T>(trackBy: TableProps.TrackBy<T> | undefined, item: T) => {\n if (!trackBy) {\n return item;\n }\n return applyTrackBy(trackBy, item);\n};\n\nexport const getColumnKey = <T>(column: TableProps.ColumnDefinition<T>, index: number) => {\n return column.id || index;\n};\n\nexport const toContainerVariant = (variant: TableProps.Variant | undefined): InternalContainerProps['variant'] => {\n const isDefaultVariant = !variant || variant === 'container';\n return isDefaultVariant ? 'default' : variant === 'borderless' ? 'embedded' : variant;\n};\n\nexport function checkSortingState<T>(\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<T>>,\n sortingComparator: TableProps.SortingColumn<T>['sortingComparator']\n) {\n const matchedColumn = columnDefinitions.filter(column => column.sortingComparator === sortingComparator)[0];\n if (!matchedColumn) {\n warnOnce(\n 'Table',\n 'Currently active sorting comparator was not found in any columns. Make sure to provide the same comparator function instance on each render.'\n );\n }\n}\n\nexport function getVisibleColumnDefinitions<T>({\n columnDisplay,\n visibleColumns,\n columnDefinitions,\n}: {\n columnDisplay?: ReadonlyArray<TableProps.ColumnDisplayProperties>;\n visibleColumns?: ReadonlyArray<string>;\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<T>>;\n}) {\n // columnsDisplay has a precedence over visibleColumns.\n if (columnDisplay) {\n return getVisibleColumnDefinitionsFromColumnDisplay({ columnDisplay, columnDefinitions });\n } else if (visibleColumns) {\n return getVisibleColumnDefinitionsFromVisibleColumns({ visibleColumns, columnDefinitions });\n } else {\n return columnDefinitions;\n }\n}\n\nfunction getVisibleColumnDefinitionsFromColumnDisplay<T>({\n columnDisplay,\n columnDefinitions,\n}: {\n columnDisplay: ReadonlyArray<TableProps.ColumnDisplayProperties>;\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<T>>;\n}) {\n const columnDefinitionsById: Record<string, TableProps.ColumnDefinition<T>> = columnDefinitions.reduce(\n (accumulator, item) => (item.id === undefined ? accumulator : { ...accumulator, [item.id]: item }),\n {}\n );\n return columnDisplay\n .filter(item => item.visible)\n .map(item => columnDefinitionsById[item.id])\n .filter(Boolean);\n}\n\nfunction getVisibleColumnDefinitionsFromVisibleColumns<T>({\n visibleColumns,\n columnDefinitions,\n}: {\n visibleColumns: ReadonlyArray<string>;\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<T>>;\n}) {\n const ids = new Set(visibleColumns);\n return columnDefinitions.filter(({ id }) => id !== undefined && ids.has(id));\n}\n\nexport function getStickyClassNames(styles: Record<string, string>, props: StickyColumnsCellState | null) {\n return {\n [styles['sticky-cell']]: !!props,\n [styles['sticky-cell-pad-left']]: !!props?.padLeft,\n [styles['sticky-cell-last-left']]: !!props?.lastLeft,\n [styles['sticky-cell-last-right']]: !!props?.lastRight,\n };\n}\n"]}
@@ -5,7 +5,7 @@ import React, { useRef } from 'react';
5
5
  import clsx from 'clsx';
6
6
  import { getBaseProps } from '../internal/base-component';
7
7
  import { fireNonCancelableEvent } from '../internal/events';
8
- import { warnOnce } from '../internal/logging';
8
+ import { warnOnce } from '@cloudscape-design/component-toolkit/internal';
9
9
  import { useContainerBreakpoints } from '../internal/hooks/container-queries';
10
10
  import { useControllable } from '../internal/hooks/use-controllable';
11
11
  import { useMergeRefs } from '../internal/hooks/use-merge-refs';