@cloudscape-design/components-themeable 3.0.832 → 3.0.834

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 (68) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/{file-upload → internal/components}/file-input/styles.scss +7 -13
  3. package/lib/internal/scss/s3-resource-selector/test-classes/styles.scss +8 -0
  4. package/lib/internal/scss/table/body-cell/styles.scss +19 -40
  5. package/lib/internal/template/app-layout/utils/use-drawers.d.ts.map +1 -1
  6. package/lib/internal/template/app-layout/utils/use-drawers.js +5 -1
  7. package/lib/internal/template/app-layout/utils/use-drawers.js.map +1 -1
  8. package/lib/internal/template/file-upload/internal.d.ts.map +1 -1
  9. package/lib/internal/template/file-upload/internal.js +4 -4
  10. package/lib/internal/template/file-upload/internal.js.map +1 -1
  11. package/lib/internal/template/icon/generated/icons.d.ts +26 -0
  12. package/lib/internal/template/icon/generated/icons.d.ts.map +1 -1
  13. package/lib/internal/template/icon/generated/icons.js +81 -4
  14. package/lib/internal/template/icon/generated/icons.js.map +1 -1
  15. package/lib/internal/template/icon/interfaces.d.ts +1 -1
  16. package/lib/internal/template/icon/interfaces.d.ts.map +1 -1
  17. package/lib/internal/template/icon/interfaces.js.map +1 -1
  18. package/lib/internal/template/internal/components/file-input/index.d.ts +6 -0
  19. package/lib/internal/template/internal/components/file-input/index.d.ts.map +1 -0
  20. package/lib/internal/template/{file-upload → internal/components}/file-input/index.js +24 -16
  21. package/lib/internal/template/internal/components/file-input/index.js.map +1 -0
  22. package/lib/internal/template/internal/components/file-input/interfaces.d.ts +53 -0
  23. package/lib/internal/template/internal/components/file-input/interfaces.d.ts.map +1 -0
  24. package/lib/internal/template/internal/components/file-input/interfaces.js +2 -0
  25. package/lib/internal/template/internal/components/file-input/interfaces.js.map +1 -0
  26. package/lib/internal/template/internal/components/file-input/styles.css.js +10 -0
  27. package/lib/internal/template/{file-upload → internal/components}/file-input/styles.scoped.css +9 -12
  28. package/lib/internal/template/internal/components/file-input/styles.selectors.js +11 -0
  29. package/lib/internal/template/internal/environment.js +1 -1
  30. package/lib/internal/template/internal/environment.json +1 -1
  31. package/lib/internal/template/s3-resource-selector/s3-modal/index.d.ts.map +1 -1
  32. package/lib/internal/template/s3-resource-selector/s3-modal/index.js +2 -1
  33. package/lib/internal/template/s3-resource-selector/s3-modal/index.js.map +1 -1
  34. package/lib/internal/template/s3-resource-selector/test-classes/styles.css.js +6 -0
  35. package/lib/internal/template/s3-resource-selector/test-classes/styles.scoped.css +7 -0
  36. package/lib/internal/template/s3-resource-selector/test-classes/styles.selectors.js +7 -0
  37. package/lib/internal/template/table/body-cell/disabled-inline-editor.d.ts +1 -1
  38. package/lib/internal/template/table/body-cell/disabled-inline-editor.d.ts.map +1 -1
  39. package/lib/internal/template/table/body-cell/disabled-inline-editor.js +4 -4
  40. package/lib/internal/template/table/body-cell/disabled-inline-editor.js.map +1 -1
  41. package/lib/internal/template/table/body-cell/index.d.ts +0 -1
  42. package/lib/internal/template/table/body-cell/index.d.ts.map +1 -1
  43. package/lib/internal/template/table/body-cell/index.js +4 -4
  44. package/lib/internal/template/table/body-cell/index.js.map +1 -1
  45. package/lib/internal/template/table/body-cell/styles.css.js +46 -47
  46. package/lib/internal/template/table/body-cell/styles.scoped.css +301 -331
  47. package/lib/internal/template/table/body-cell/styles.selectors.js +46 -47
  48. package/lib/internal/template/test-utils/dom/file-upload/index.js +16 -16
  49. package/lib/internal/template/test-utils/dom/file-upload/index.js.map +1 -1
  50. package/lib/internal/template/test-utils/dom/internal/file-input.d.ts +7 -0
  51. package/lib/internal/template/test-utils/dom/internal/file-input.js +18 -0
  52. package/lib/internal/template/test-utils/dom/internal/file-input.js.map +1 -0
  53. package/lib/internal/template/test-utils/dom/s3-resource-selector/index.js +2 -1
  54. package/lib/internal/template/test-utils/dom/s3-resource-selector/index.js.map +1 -1
  55. package/lib/internal/template/test-utils/selectors/file-upload/index.js +16 -16
  56. package/lib/internal/template/test-utils/selectors/file-upload/index.js.map +1 -1
  57. package/lib/internal/template/test-utils/selectors/internal/file-input.d.ts +7 -0
  58. package/lib/internal/template/test-utils/selectors/internal/file-input.js +18 -0
  59. package/lib/internal/template/test-utils/selectors/internal/file-input.js.map +1 -0
  60. package/lib/internal/template/test-utils/selectors/s3-resource-selector/index.js +2 -1
  61. package/lib/internal/template/test-utils/selectors/s3-resource-selector/index.js.map +1 -1
  62. package/lib/internal/template/test-utils/tsconfig.tsbuildinfo +1 -1
  63. package/package.json +1 -1
  64. package/lib/internal/template/file-upload/file-input/index.d.ts +0 -14
  65. package/lib/internal/template/file-upload/file-input/index.d.ts.map +0 -1
  66. package/lib/internal/template/file-upload/file-input/index.js.map +0 -1
  67. package/lib/internal/template/file-upload/file-input/styles.css.js +0 -9
  68. package/lib/internal/template/file-upload/file-input/styles.selectors.js +0 -10
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/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 React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useInternalI18n } from '../../i18n/context';\nimport Icon from '../../icon/internal';\nimport { useSingleTabStopNavigation } from '../../internal/context/single-tab-stop-navigation-context.js';\nimport { usePrevious } from '../../internal/hooks/use-previous';\nimport InternalLiveRegion from '../../live-region/internal';\nimport { TableProps } from '../interfaces';\nimport { DisabledInlineEditor } from './disabled-inline-editor';\nimport { InlineEditor } from './inline-editor';\nimport { TableTdElement, TableTdElementProps } from './td-element';\n\nimport styles from './styles.css.js';\n\nconst submitHandlerFallback = () => {\n throw new Error('The function `handleSubmit` is required for editable columns');\n};\n\nexport interface TableBodyCellProps<ItemType> extends TableTdElementProps {\n column: TableProps.ColumnDefinition<ItemType>;\n item: ItemType;\n isEditing: boolean;\n resizableColumns?: boolean;\n successfulEdit?: boolean;\n onEditStart: () => void;\n onEditEnd: (cancelled: boolean) => void;\n submitEdit?: TableProps.SubmitEditFunction<ItemType>;\n ariaLabels: TableProps['ariaLabels'];\n interactiveCell?: boolean;\n}\n\nfunction TableCellEditable<ItemType>({\n className,\n item,\n column,\n isEditing,\n onEditStart,\n onEditEnd,\n submitEdit,\n ariaLabels,\n isVisualRefresh,\n resizableColumns = false,\n successfulEdit = false,\n interactiveCell = true,\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 // When a cell is both expandable and editable the icon is always shown.\n const showIcon = hasHover || hasFocus || !interactiveCell;\n\n const prevSuccessfulEdit = usePrevious(successfulEdit);\n const prevHasFocus = usePrevious(hasFocus);\n const [showSuccessIcon, setShowSuccessIcon] = useState(false);\n\n useEffect(() => {\n // Hide the success icon after a successful edit, when cell loses focus.\n if (successfulEdit && prevSuccessfulEdit && !hasFocus && prevHasFocus) {\n setShowSuccessIcon(false);\n }\n // Show success icon right after a successful edit, when `successfulEdit` switches to true.\n if (successfulEdit && !prevSuccessfulEdit) {\n setShowSuccessIcon(true);\n }\n }, [hasFocus, successfulEdit, prevHasFocus, prevSuccessfulEdit]);\n\n const { tabIndex: editActivateTabIndex } = useSingleTabStopNavigation(editActivateRef);\n\n return (\n <TableTdElement\n {...rest}\n nativeAttributes={tdNativeAttributes as TableTdElementProps['nativeAttributes']}\n className={clsx(\n className,\n styles['body-cell-editable'],\n interactiveCell && styles['body-cell-interactive'],\n resizableColumns && styles['resizable-columns'],\n isEditing && styles['body-cell-edit-active'],\n showSuccessIcon && showIcon && styles['body-cell-has-success'],\n isVisualRefresh && styles['is-visual-refresh']\n )}\n onClick={interactiveCell && !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={options => {\n setShowSuccessIcon(false);\n isFocusMoveNeededRef.current = options.refocusCell;\n onEditEnd(options.cancelled);\n }}\n submitEdit={submitEdit ?? submitHandlerFallback}\n />\n ) : (\n <>\n {column.cell(item)}\n\n {showSuccessIcon && showIcon && (\n <>\n <span\n className={styles['body-cell-success']}\n aria-label={ariaLabels?.successfulEditLabel?.(column)}\n role=\"img\"\n onMouseDown={e => {\n // Prevent the editor's Button blur event to be fired when clicking the success icon.\n // This prevents unfocusing the button and triggers the `TableTdElement` onClick event which initiates the edit mode.\n e.preventDefault();\n }}\n >\n <Icon name=\"status-positive\" variant=\"success\" />\n </span>\n <InternalLiveRegion tagName=\"span\" hidden={true}>\n {i18n('ariaLabels.successfulEditLabel', ariaLabels?.successfulEditLabel?.(column))}\n </InternalLiveRegion>\n </>\n )}\n\n <div className={styles['body-cell-editor-wrapper']}>\n <button\n className={styles['body-cell-editor']}\n aria-label={ariaLabels?.activateEditLabel?.(column, item)}\n ref={editActivateRef}\n onClick={!interactiveCell && !isEditing ? onEditStart : undefined}\n onFocus={() => setHasFocus(true)}\n onBlur={() => setHasFocus(false)}\n tabIndex={editActivateTabIndex}\n >\n {showIcon && <Icon name=\"edit\" />}\n </button>\n </div>\n </>\n )}\n </TableTdElement>\n );\n}\n\nexport function TableBodyCell<ItemType>({\n isEditable,\n ...rest\n}: TableBodyCellProps<ItemType> & { isEditable: boolean }) {\n const isExpandableColumnCell = rest.level !== undefined;\n const editDisabledReason = rest.column.editConfig?.disabledReason?.(rest.item);\n\n // Inline editing is deactivated for expandable column because editable cells are interactive\n // and cannot include interactive content such as expand toggles.\n if (editDisabledReason && !isExpandableColumnCell) {\n return <DisabledInlineEditor editDisabledReason={editDisabledReason} {...rest} />;\n }\n if ((isEditable || rest.isEditing) && !isExpandableColumnCell) {\n return <TableCellEditable {...rest} />;\n }\n\n const { column, item } = rest;\n return <TableTdElement {...rest}>{column.cell(item)}</TableTdElement>;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/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 React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useInternalI18n } from '../../i18n/context';\nimport Icon from '../../icon/internal';\nimport { useSingleTabStopNavigation } from '../../internal/context/single-tab-stop-navigation-context.js';\nimport { usePrevious } from '../../internal/hooks/use-previous';\nimport InternalLiveRegion from '../../live-region/internal';\nimport { TableProps } from '../interfaces';\nimport { DisabledInlineEditor } from './disabled-inline-editor';\nimport { InlineEditor } from './inline-editor';\nimport { TableTdElement, TableTdElementProps } from './td-element';\n\nimport styles from './styles.css.js';\n\nconst submitHandlerFallback = () => {\n throw new Error('The function `handleSubmit` is required for editable columns');\n};\n\nexport interface TableBodyCellProps<ItemType> extends TableTdElementProps {\n column: TableProps.ColumnDefinition<ItemType>;\n item: ItemType;\n isEditing: boolean;\n resizableColumns?: 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 resizableColumns = false,\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 // When a cell is both expandable and editable the icon is always shown.\n const showIcon = hasHover || hasFocus;\n\n const prevSuccessfulEdit = usePrevious(successfulEdit);\n const prevHasFocus = usePrevious(hasFocus);\n const [showSuccessIcon, setShowSuccessIcon] = useState(false);\n\n useEffect(() => {\n // Hide the success icon after a successful edit, when cell loses focus.\n if (successfulEdit && prevSuccessfulEdit && !hasFocus && prevHasFocus) {\n setShowSuccessIcon(false);\n }\n // Show success icon right after a successful edit, when `successfulEdit` switches to true.\n if (successfulEdit && !prevSuccessfulEdit) {\n setShowSuccessIcon(true);\n }\n }, [hasFocus, successfulEdit, prevHasFocus, prevSuccessfulEdit]);\n\n const { tabIndex: editActivateTabIndex } = useSingleTabStopNavigation(editActivateRef);\n\n return (\n <TableTdElement\n {...rest}\n nativeAttributes={tdNativeAttributes as TableTdElementProps['nativeAttributes']}\n className={clsx(\n className,\n styles['body-cell-editable'],\n resizableColumns && styles['resizable-columns'],\n isEditing && styles['body-cell-edit-active'],\n showSuccessIcon && showIcon && 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={options => {\n setShowSuccessIcon(false);\n isFocusMoveNeededRef.current = options.refocusCell;\n onEditEnd(options.cancelled);\n }}\n submitEdit={submitEdit ?? submitHandlerFallback}\n />\n ) : (\n <>\n {column.cell(item)}\n\n {showSuccessIcon && showIcon && (\n <>\n <span\n className={styles['body-cell-success']}\n aria-label={ariaLabels?.successfulEditLabel?.(column)}\n role=\"img\"\n onMouseDown={e => {\n // Prevent the editor's Button blur event to be fired when clicking the success icon.\n // This prevents unfocusing the button and triggers the `TableTdElement` onClick event which initiates the edit mode.\n e.preventDefault();\n }}\n >\n <Icon name=\"status-positive\" variant=\"success\" />\n </span>\n <InternalLiveRegion tagName=\"span\" hidden={true}>\n {i18n('ariaLabels.successfulEditLabel', ariaLabels?.successfulEditLabel?.(column))}\n </InternalLiveRegion>\n </>\n )}\n\n <div className={styles['body-cell-editor-wrapper']}>\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 tabIndex={editActivateTabIndex}\n >\n {showIcon && <Icon name=\"edit\" />}\n </button>\n </div>\n </>\n )}\n </TableTdElement>\n );\n}\n\nexport function TableBodyCell<ItemType>({\n isEditable,\n ...rest\n}: TableBodyCellProps<ItemType> & { isEditable: boolean }) {\n const isExpandableColumnCell = rest.level !== undefined;\n const editDisabledReason = rest.column.editConfig?.disabledReason?.(rest.item);\n\n // Inline editing is deactivated for expandable column because editable cells are interactive\n // and cannot include interactive content such as expand toggles.\n if (editDisabledReason && !isExpandableColumnCell) {\n return <DisabledInlineEditor editDisabledReason={editDisabledReason} {...rest} />;\n }\n if ((isEditable || rest.isEditing) && !isExpandableColumnCell) {\n return <TableCellEditable {...rest} />;\n }\n\n const { column, item } = rest;\n return <TableTdElement {...rest}>{column.cell(item)}</TableTdElement>;\n}\n"]}
@@ -1,52 +1,51 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "expandable-toggle-wrapper": "awsui_expandable-toggle-wrapper_c6tup_16jns_141",
5
- "body-cell": "awsui_body-cell_c6tup_16jns_148",
6
- "body-cell-content": "awsui_body-cell-content_c6tup_16jns_156",
7
- "expandable-level-0": "awsui_expandable-level-0_c6tup_16jns_162",
8
- "expandable-level-1": "awsui_expandable-level-1_c6tup_16jns_169",
9
- "expandable-level-2": "awsui_expandable-level-2_c6tup_16jns_176",
10
- "expandable-level-3": "awsui_expandable-level-3_c6tup_16jns_183",
11
- "expandable-level-4": "awsui_expandable-level-4_c6tup_16jns_190",
12
- "expandable-level-5": "awsui_expandable-level-5_c6tup_16jns_197",
13
- "expandable-level-6": "awsui_expandable-level-6_c6tup_16jns_204",
14
- "expandable-level-7": "awsui_expandable-level-7_c6tup_16jns_211",
15
- "expandable-level-8": "awsui_expandable-level-8_c6tup_16jns_218",
16
- "expandable-level-9": "awsui_expandable-level-9_c6tup_16jns_225",
17
- "expandable-level-next": "awsui_expandable-level-next_c6tup_16jns_232",
18
- "body-cell-wrap": "awsui_body-cell-wrap_c6tup_16jns_253",
19
- "is-visual-refresh": "awsui_is-visual-refresh_c6tup_16jns_267",
20
- "has-striped-rows": "awsui_has-striped-rows_c6tup_16jns_279",
21
- "body-cell-edit-active": "awsui_body-cell-edit-active_c6tup_16jns_362",
22
- "body-cell-interactive": "awsui_body-cell-interactive_c6tup_16jns_362",
23
- "body-cell-editable": "awsui_body-cell-editable_c6tup_16jns_362",
24
- "sticky-cell-pad-inline-start": "awsui_sticky-cell-pad-inline-start_c6tup_16jns_445",
25
- "has-selection": "awsui_has-selection_c6tup_16jns_445",
26
- "body-cell-align-top": "awsui_body-cell-align-top_c6tup_16jns_784",
27
- "body-cell-first-row": "awsui_body-cell-first-row_c6tup_16jns_787",
28
- "body-cell-last-row": "awsui_body-cell-last-row_c6tup_16jns_790",
29
- "body-cell-selected": "awsui_body-cell-selected_c6tup_16jns_790",
30
- "has-footer": "awsui_has-footer_c6tup_16jns_790",
31
- "body-cell-shaded": "awsui_body-cell-shaded_c6tup_16jns_800",
32
- "sticky-cell": "awsui_sticky-cell_c6tup_16jns_445",
33
- "sticky-cell-pad-left": "awsui_sticky-cell-pad-left_c6tup_16jns_848",
34
- "sticky-cell-last-inline-end": "awsui_sticky-cell-last-inline-end_c6tup_16jns_945",
35
- "sticky-cell-last-inline-start": "awsui_sticky-cell-last-inline-start_c6tup_16jns_954",
36
- "body-cell-next-selected": "awsui_body-cell-next-selected_c6tup_16jns_976",
37
- "body-cell-prev-selected": "awsui_body-cell-prev-selected_c6tup_16jns_983",
38
- "body-cell-editor-wrapper": "awsui_body-cell-editor-wrapper_c6tup_16jns_1009",
39
- "body-cell-success": "awsui_body-cell-success_c6tup_16jns_1014",
40
- "body-cell-editor": "awsui_body-cell-editor_c6tup_16jns_1009",
41
- "body-cell-editor-disabled": "awsui_body-cell-editor-disabled_c6tup_16jns_1039",
42
- "body-cell-editor-form": "awsui_body-cell-editor-form_c6tup_16jns_1048",
43
- "body-cell-editor-row": "awsui_body-cell-editor-row_c6tup_16jns_1058",
44
- "body-cell-editor-controls": "awsui_body-cell-editor-controls_c6tup_16jns_1068",
45
- "body-cell-editor-row-editor": "awsui_body-cell-editor-row-editor_c6tup_16jns_1071",
46
- "body-cell-expandable": "awsui_body-cell-expandable_c6tup_16jns_1074",
47
- "resizable-columns": "awsui_resizable-columns_c6tup_16jns_1095",
48
- "expandable-cell-content": "awsui_expandable-cell-content_c6tup_16jns_1098",
49
- "body-cell-has-success": "awsui_body-cell-has-success_c6tup_16jns_1167",
50
- "body-cell-edit-disabled-popover": "awsui_body-cell-edit-disabled-popover_c6tup_16jns_1167"
4
+ "expandable-toggle-wrapper": "awsui_expandable-toggle-wrapper_c6tup_1p9se_141",
5
+ "body-cell": "awsui_body-cell_c6tup_1p9se_148",
6
+ "body-cell-content": "awsui_body-cell-content_c6tup_1p9se_156",
7
+ "expandable-level-0": "awsui_expandable-level-0_c6tup_1p9se_162",
8
+ "expandable-level-1": "awsui_expandable-level-1_c6tup_1p9se_169",
9
+ "expandable-level-2": "awsui_expandable-level-2_c6tup_1p9se_176",
10
+ "expandable-level-3": "awsui_expandable-level-3_c6tup_1p9se_183",
11
+ "expandable-level-4": "awsui_expandable-level-4_c6tup_1p9se_190",
12
+ "expandable-level-5": "awsui_expandable-level-5_c6tup_1p9se_197",
13
+ "expandable-level-6": "awsui_expandable-level-6_c6tup_1p9se_204",
14
+ "expandable-level-7": "awsui_expandable-level-7_c6tup_1p9se_211",
15
+ "expandable-level-8": "awsui_expandable-level-8_c6tup_1p9se_218",
16
+ "expandable-level-9": "awsui_expandable-level-9_c6tup_1p9se_225",
17
+ "expandable-level-next": "awsui_expandable-level-next_c6tup_1p9se_232",
18
+ "body-cell-wrap": "awsui_body-cell-wrap_c6tup_1p9se_253",
19
+ "is-visual-refresh": "awsui_is-visual-refresh_c6tup_1p9se_267",
20
+ "has-striped-rows": "awsui_has-striped-rows_c6tup_1p9se_279",
21
+ "body-cell-edit-active": "awsui_body-cell-edit-active_c6tup_1p9se_362",
22
+ "body-cell-editable": "awsui_body-cell-editable_c6tup_1p9se_362",
23
+ "sticky-cell-pad-inline-start": "awsui_sticky-cell-pad-inline-start_c6tup_1p9se_445",
24
+ "has-selection": "awsui_has-selection_c6tup_1p9se_445",
25
+ "body-cell-align-top": "awsui_body-cell-align-top_c6tup_1p9se_784",
26
+ "body-cell-first-row": "awsui_body-cell-first-row_c6tup_1p9se_787",
27
+ "body-cell-last-row": "awsui_body-cell-last-row_c6tup_1p9se_790",
28
+ "body-cell-selected": "awsui_body-cell-selected_c6tup_1p9se_790",
29
+ "has-footer": "awsui_has-footer_c6tup_1p9se_790",
30
+ "body-cell-shaded": "awsui_body-cell-shaded_c6tup_1p9se_800",
31
+ "sticky-cell": "awsui_sticky-cell_c6tup_1p9se_445",
32
+ "sticky-cell-pad-left": "awsui_sticky-cell-pad-left_c6tup_1p9se_848",
33
+ "sticky-cell-last-inline-end": "awsui_sticky-cell-last-inline-end_c6tup_1p9se_945",
34
+ "sticky-cell-last-inline-start": "awsui_sticky-cell-last-inline-start_c6tup_1p9se_954",
35
+ "body-cell-next-selected": "awsui_body-cell-next-selected_c6tup_1p9se_976",
36
+ "body-cell-prev-selected": "awsui_body-cell-prev-selected_c6tup_1p9se_983",
37
+ "body-cell-editor-wrapper": "awsui_body-cell-editor-wrapper_c6tup_1p9se_1009",
38
+ "body-cell-success": "awsui_body-cell-success_c6tup_1p9se_1014",
39
+ "body-cell-editor": "awsui_body-cell-editor_c6tup_1p9se_1009",
40
+ "body-cell-editor-disabled": "awsui_body-cell-editor-disabled_c6tup_1p9se_1039",
41
+ "body-cell-editor-form": "awsui_body-cell-editor-form_c6tup_1p9se_1048",
42
+ "body-cell-editor-row": "awsui_body-cell-editor-row_c6tup_1p9se_1058",
43
+ "body-cell-editor-controls": "awsui_body-cell-editor-controls_c6tup_1p9se_1068",
44
+ "body-cell-editor-row-editor": "awsui_body-cell-editor-row-editor_c6tup_1p9se_1071",
45
+ "body-cell-expandable": "awsui_body-cell-expandable_c6tup_1p9se_1074",
46
+ "resizable-columns": "awsui_resizable-columns_c6tup_1p9se_1092",
47
+ "expandable-cell-content": "awsui_expandable-cell-content_c6tup_1p9se_1095",
48
+ "body-cell-has-success": "awsui_body-cell-has-success_c6tup_1p9se_1143",
49
+ "body-cell-edit-disabled-popover": "awsui_body-cell-edit-disabled-popover_c6tup_1p9se_1143"
51
50
  };
52
51