@cloudscape-design/components-themeable 3.0.1333 → 3.0.1334
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.
- package/lib/internal/manifest.json +1 -1
- package/lib/internal/scss/box/visual-accent.scss +61 -25
- package/lib/internal/scss/button/styles.scss +6 -0
- package/lib/internal/scss/code-editor/ace-editor.scss +1 -1
- package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +1 -1
- package/lib/internal/scss/side-navigation/styles.scss +10 -3
- package/lib/internal/scss/steps/styles.scss +113 -31
- package/lib/internal/scss/table/header-cell/styles.scss +42 -14
- package/lib/internal/scss/table/styles.scss +6 -0
- package/lib/internal/scss/tooltip/styles.scss +22 -0
- package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/index.js +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/index.js.map +1 -1
- package/lib/internal/template/box/interfaces.d.ts +1 -1
- package/lib/internal/template/box/interfaces.d.ts.map +1 -1
- package/lib/internal/template/box/interfaces.js.map +1 -1
- package/lib/internal/template/box/styles.css.js +220 -224
- package/lib/internal/template/box/styles.scoped.css +293 -313
- package/lib/internal/template/box/styles.selectors.js +220 -224
- package/lib/internal/template/button/internal.d.ts +2 -0
- package/lib/internal/template/button/internal.d.ts.map +1 -1
- package/lib/internal/template/button/internal.js +2 -1
- package/lib/internal/template/button/internal.js.map +1 -1
- package/lib/internal/template/button/styles.css.js +23 -22
- package/lib/internal/template/button/styles.scoped.css +74 -69
- package/lib/internal/template/button/styles.selectors.js +23 -22
- package/lib/internal/template/button-dropdown/internal-interfaces.d.ts +11 -0
- package/lib/internal/template/button-dropdown/internal-interfaces.d.ts.map +1 -1
- package/lib/internal/template/button-dropdown/internal-interfaces.js.map +1 -1
- package/lib/internal/template/button-dropdown/internal.d.ts.map +1 -1
- package/lib/internal/template/button-dropdown/internal.js +3 -2
- package/lib/internal/template/button-dropdown/internal.js.map +1 -1
- package/lib/internal/template/button-group/copy-to-clipboard-item.d.ts +16 -0
- package/lib/internal/template/button-group/copy-to-clipboard-item.d.ts.map +1 -0
- package/lib/internal/template/button-group/copy-to-clipboard-item.js +38 -0
- package/lib/internal/template/button-group/copy-to-clipboard-item.js.map +1 -0
- package/lib/internal/template/button-group/index.d.ts.map +1 -1
- package/lib/internal/template/button-group/index.js +9 -1
- package/lib/internal/template/button-group/index.js.map +1 -1
- package/lib/internal/template/button-group/interfaces.d.ts +38 -2
- package/lib/internal/template/button-group/interfaces.d.ts.map +1 -1
- package/lib/internal/template/button-group/interfaces.js.map +1 -1
- package/lib/internal/template/button-group/internal-interfaces.d.ts +1 -1
- package/lib/internal/template/button-group/internal-interfaces.d.ts.map +1 -1
- package/lib/internal/template/button-group/internal-interfaces.js.map +1 -1
- package/lib/internal/template/button-group/internal.d.ts.map +1 -1
- package/lib/internal/template/button-group/internal.js +2 -2
- package/lib/internal/template/button-group/internal.js.map +1 -1
- package/lib/internal/template/button-group/item-element.d.ts +2 -0
- package/lib/internal/template/button-group/item-element.d.ts.map +1 -1
- package/lib/internal/template/button-group/item-element.js +13 -3
- package/lib/internal/template/button-group/item-element.js.map +1 -1
- package/lib/internal/template/code-editor/styles.css.js +33 -33
- package/lib/internal/template/code-editor/styles.scoped.css +187 -187
- package/lib/internal/template/code-editor/styles.selectors.js +33 -33
- package/lib/internal/template/i18n/messages/all.all.js +1 -1
- package/lib/internal/template/i18n/messages/all.all.json +1 -1
- package/lib/internal/template/i18n/messages/all.ar.js +1 -1
- package/lib/internal/template/i18n/messages/all.ar.json +1 -1
- package/lib/internal/template/i18n/messages/all.de.js +1 -1
- package/lib/internal/template/i18n/messages/all.de.json +1 -1
- package/lib/internal/template/i18n/messages/all.en-GB.js +1 -1
- package/lib/internal/template/i18n/messages/all.en-GB.json +1 -1
- package/lib/internal/template/i18n/messages/all.en.js +1 -1
- package/lib/internal/template/i18n/messages/all.en.json +1 -1
- package/lib/internal/template/i18n/messages/all.es.js +1 -1
- package/lib/internal/template/i18n/messages/all.es.json +1 -1
- package/lib/internal/template/i18n/messages/all.fr.js +1 -1
- package/lib/internal/template/i18n/messages/all.fr.json +1 -1
- package/lib/internal/template/i18n/messages/all.id.js +1 -1
- package/lib/internal/template/i18n/messages/all.id.json +1 -1
- package/lib/internal/template/i18n/messages/all.it.js +1 -1
- package/lib/internal/template/i18n/messages/all.it.json +1 -1
- package/lib/internal/template/i18n/messages/all.ja.js +1 -1
- package/lib/internal/template/i18n/messages/all.ja.json +1 -1
- package/lib/internal/template/i18n/messages/all.ko.js +1 -1
- package/lib/internal/template/i18n/messages/all.ko.json +1 -1
- package/lib/internal/template/i18n/messages/all.pt-BR.js +1 -1
- package/lib/internal/template/i18n/messages/all.pt-BR.json +1 -1
- package/lib/internal/template/i18n/messages/all.tr.js +1 -1
- package/lib/internal/template/i18n/messages/all.tr.json +1 -1
- package/lib/internal/template/i18n/messages/all.zh-CN.js +1 -1
- package/lib/internal/template/i18n/messages/all.zh-CN.json +1 -1
- package/lib/internal/template/i18n/messages/all.zh-TW.js +1 -1
- package/lib/internal/template/i18n/messages/all.zh-TW.json +1 -1
- package/lib/internal/template/i18n/messages-types.d.ts +19 -0
- package/lib/internal/template/i18n/messages-types.d.ts.map +1 -1
- package/lib/internal/template/i18n/messages-types.js.map +1 -1
- package/lib/internal/template/internal/base-component/styles.scoped.css +163 -3
- package/lib/internal/template/internal/environment.js +2 -2
- package/lib/internal/template/internal/environment.json +2 -2
- package/lib/internal/template/internal/generated/styles/tokens.d.ts +35 -38
- package/lib/internal/template/internal/generated/styles/tokens.js +35 -38
- package/lib/internal/template/internal/generated/theming/index.cjs +585 -774
- package/lib/internal/template/internal/generated/theming/index.cjs.d.ts +36 -9
- package/lib/internal/template/internal/generated/theming/index.d.ts +36 -9
- package/lib/internal/template/internal/generated/theming/index.js +585 -774
- package/lib/internal/template/side-navigation/implementation.d.ts.map +1 -1
- package/lib/internal/template/side-navigation/implementation.js +3 -2
- package/lib/internal/template/side-navigation/implementation.js.map +1 -1
- package/lib/internal/template/side-navigation/parts.d.ts +2 -1
- package/lib/internal/template/side-navigation/parts.d.ts.map +1 -1
- package/lib/internal/template/side-navigation/parts.js +14 -13
- package/lib/internal/template/side-navigation/parts.js.map +1 -1
- package/lib/internal/template/side-navigation/styles.css.js +48 -47
- package/lib/internal/template/side-navigation/styles.scoped.css +77 -74
- package/lib/internal/template/side-navigation/styles.selectors.js +48 -47
- package/lib/internal/template/side-navigation/util.d.ts +1 -0
- package/lib/internal/template/side-navigation/util.d.ts.map +1 -1
- package/lib/internal/template/side-navigation/util.js +5 -0
- package/lib/internal/template/side-navigation/util.js.map +1 -1
- package/lib/internal/template/steps/interfaces.d.ts +2 -0
- package/lib/internal/template/steps/interfaces.d.ts.map +1 -1
- package/lib/internal/template/steps/interfaces.js.map +1 -1
- package/lib/internal/template/steps/internal.d.ts.map +1 -1
- package/lib/internal/template/steps/internal.js +35 -12
- package/lib/internal/template/steps/internal.js.map +1 -1
- package/lib/internal/template/steps/styles.css.js +17 -13
- package/lib/internal/template/steps/styles.scoped.css +99 -42
- package/lib/internal/template/steps/styles.selectors.js +17 -13
- package/lib/internal/template/table/clear-sort.d.ts +9 -0
- package/lib/internal/template/table/clear-sort.d.ts.map +1 -0
- package/lib/internal/template/table/clear-sort.js +15 -0
- package/lib/internal/template/table/clear-sort.js.map +1 -0
- package/lib/internal/template/table/header-cell/index.d.ts +4 -1
- package/lib/internal/template/table/header-cell/index.d.ts.map +1 -1
- package/lib/internal/template/table/header-cell/index.js +122 -33
- package/lib/internal/template/table/header-cell/index.js.map +1 -1
- package/lib/internal/template/table/header-cell/sort-menu.d.ts +14 -0
- package/lib/internal/template/table/header-cell/sort-menu.d.ts.map +1 -0
- package/lib/internal/template/table/header-cell/sort-menu.js +50 -0
- package/lib/internal/template/table/header-cell/sort-menu.js.map +1 -0
- package/lib/internal/template/table/header-cell/styles.css.js +38 -33
- package/lib/internal/template/table/header-cell/styles.scoped.css +101 -76
- package/lib/internal/template/table/header-cell/styles.selectors.js +38 -33
- package/lib/internal/template/table/header-cell/th-element.d.ts +8 -1
- package/lib/internal/template/table/header-cell/th-element.d.ts.map +1 -1
- package/lib/internal/template/table/header-cell/th-element.js +6 -2
- package/lib/internal/template/table/header-cell/th-element.js.map +1 -1
- package/lib/internal/template/table/index.d.ts.map +1 -1
- package/lib/internal/template/table/index.js +1 -0
- package/lib/internal/template/table/index.js.map +1 -1
- package/lib/internal/template/table/interfaces.d.ts +67 -1
- package/lib/internal/template/table/interfaces.d.ts.map +1 -1
- package/lib/internal/template/table/interfaces.js.map +1 -1
- package/lib/internal/template/table/internal.d.ts.map +1 -1
- package/lib/internal/template/table/internal.js +21 -3
- package/lib/internal/template/table/internal.js.map +1 -1
- package/lib/internal/template/table/multi-column-sort/live-announcement.d.ts +16 -0
- package/lib/internal/template/table/multi-column-sort/live-announcement.d.ts.map +1 -0
- package/lib/internal/template/table/multi-column-sort/live-announcement.js +68 -0
- package/lib/internal/template/table/multi-column-sort/live-announcement.js.map +1 -0
- package/lib/internal/template/table/multi-column-sort/utils.d.ts +45 -0
- package/lib/internal/template/table/multi-column-sort/utils.d.ts.map +1 -0
- package/lib/internal/template/table/multi-column-sort/utils.js +76 -0
- package/lib/internal/template/table/multi-column-sort/utils.js.map +1 -0
- package/lib/internal/template/table/styles.css.js +37 -36
- package/lib/internal/template/table/styles.scoped.css +46 -43
- package/lib/internal/template/table/styles.selectors.js +37 -36
- package/lib/internal/template/table/thead.d.ts +3 -0
- package/lib/internal/template/table/thead.d.ts.map +1 -1
- package/lib/internal/template/table/thead.js +3 -3
- package/lib/internal/template/table/thead.js.map +1 -1
- package/lib/internal/template/table/tools-header.d.ts +2 -1
- package/lib/internal/template/table/tools-header.d.ts.map +1 -1
- package/lib/internal/template/table/tools-header.js +4 -3
- package/lib/internal/template/table/tools-header.js.map +1 -1
- package/lib/internal/template/test-utils/dom/button-group/index.d.ts +4 -0
- package/lib/internal/template/test-utils/dom/button-group/index.js +8 -0
- package/lib/internal/template/test-utils/dom/button-group/index.js.map +1 -1
- package/lib/internal/template/test-utils/dom/steps/index.d.ts +4 -0
- package/lib/internal/template/test-utils/dom/steps/index.js +6 -0
- package/lib/internal/template/test-utils/dom/steps/index.js.map +1 -1
- package/lib/internal/template/test-utils/dom/table/index.d.ts +77 -0
- package/lib/internal/template/test-utils/dom/table/index.js +87 -2
- package/lib/internal/template/test-utils/dom/table/index.js.map +1 -1
- package/lib/internal/template/test-utils/selectors/button-group/index.d.ts +4 -0
- package/lib/internal/template/test-utils/selectors/button-group/index.js +8 -0
- package/lib/internal/template/test-utils/selectors/button-group/index.js.map +1 -1
- package/lib/internal/template/test-utils/selectors/steps/index.d.ts +4 -0
- package/lib/internal/template/test-utils/selectors/steps/index.js +6 -0
- package/lib/internal/template/test-utils/selectors/steps/index.js.map +1 -1
- package/lib/internal/template/test-utils/selectors/table/index.d.ts +77 -0
- package/lib/internal/template/test-utils/selectors/table/index.js +87 -2
- package/lib/internal/template/test-utils/selectors/table/index.js.map +1 -1
- package/lib/internal/template/tooltip/internal.d.ts.map +1 -1
- package/lib/internal/template/tooltip/internal.js +2 -1
- package/lib/internal/template/tooltip/internal.js.map +1 -1
- package/lib/internal/template/tooltip/styles.css.js +7 -0
- package/lib/internal/template/tooltip/styles.scoped.css +165 -0
- package/lib/internal/template/tooltip/styles.selectors.js +8 -0
- package/lib/internal/template/top-navigation/use-top-navigation.d.ts.map +1 -1
- package/lib/internal/template/top-navigation/use-top-navigation.js +2 -5
- package/lib/internal/template/top-navigation/use-top-navigation.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/button-group/internal.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, { forwardRef, useImperativeHandle, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport { ButtonProps } from '../button/interfaces';\nimport { getBaseProps } from '../internal/base-component';\nimport InternalNavigableGroup from '../navigable-group/internal';\nimport { ButtonGroupProps } from './interfaces';\nimport { InternalButtonGroupProps } from './internal-interfaces';\nimport ItemElement from './item-element.js';\nimport { getButtonGroupStyles } from './style';\n\nimport styles from './styles.css.js';\nimport testUtilStyles from './test-classes/styles.css.js';\n\nconst InternalButtonGroup = forwardRef(\n (\n {\n items = [],\n onItemClick,\n onFilesChange,\n ariaLabel,\n dropdownExpandToViewport,\n style,\n __internalRootRef,\n ...props\n }: InternalButtonGroupProps,\n ref: React.Ref<ButtonGroupProps.Ref>\n ) => {\n const baseProps = getBaseProps(props);\n const itemsRef = useRef<Record<string, ButtonProps.Ref | null>>({});\n const [tooltip, setTooltip] = useState<null | { item: string; feedback: boolean }>(null);\n\n useImperativeHandle(ref, () => ({\n focus: id => {\n itemsRef.current[id]?.focus();\n },\n }));\n\n const stylePropertiesAndVariables = getButtonGroupStyles(style);\n return (\n <div\n {...baseProps}\n ref={__internalRootRef}\n className={clsx(styles.root, testUtilStyles['button-group'], baseProps.className)}\n role=\"toolbar\"\n aria-label={ariaLabel}\n style={stylePropertiesAndVariables}\n >\n <InternalNavigableGroup getItemKey={item => item.dataset.itemid!}>\n {items.map((itemOrGroup, index) => {\n const itemContent = (item: ButtonGroupProps.Item, position: string) => (\n <ItemElement\n key={item.id}\n item={item}\n dropdownExpandToViewport={dropdownExpandToViewport}\n tooltip={tooltip}\n setTooltip={setTooltip}\n onItemClick={onItemClick}\n onFilesChange={onFilesChange}\n ref={element => (itemsRef.current[item.id] = element)}\n position={position}\n style={style}\n />\n );\n\n const isGroupBefore = items[index - 1]?.type === 'group';\n const currentItem = items[index];\n const isGroupNow = currentItem?.type === 'group';\n const shouldAddDivider = isGroupBefore || (!isGroupBefore && isGroupNow && index !== 0);\n\n if (isGroupNow && currentItem.items.length === 0) {\n warnOnce('ButtonGroup', 'Empty group detected. Empty groups are not allowed.');\n }\n\n return (\n <React.Fragment key={itemOrGroup.type === 'group' ? index : itemOrGroup.id}>\n {shouldAddDivider && <div className={styles.divider} />}\n {itemOrGroup.type === 'group' ? (\n <div key={index} role=\"group\" aria-label={itemOrGroup.text} className={styles.group}>\n {itemOrGroup.items.map((item, subIndex) => itemContent(item, `${index + 1},${subIndex + 1}`))}\n </div>\n ) : (\n itemContent(itemOrGroup, `${index + 1}`)\n )}\n </React.Fragment>\n );\n })}\n </InternalNavigableGroup>\n </div>\n );\n }\n);\n\nexport default InternalButtonGroup;\n"]}
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/button-group/internal.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, { forwardRef, useImperativeHandle, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport { ButtonProps } from '../button/interfaces';\nimport { getBaseProps } from '../internal/base-component';\nimport InternalNavigableGroup from '../navigable-group/internal';\nimport { ButtonGroupProps } from './interfaces';\nimport { InternalButtonGroupProps } from './internal-interfaces';\nimport ItemElement from './item-element.js';\nimport { getButtonGroupStyles } from './style';\n\nimport styles from './styles.css.js';\nimport testUtilStyles from './test-classes/styles.css.js';\n\nconst InternalButtonGroup = forwardRef(\n (\n {\n items = [],\n onItemClick,\n onFilesChange,\n onCopySuccess,\n onCopyFailure,\n ariaLabel,\n dropdownExpandToViewport,\n style,\n __internalRootRef,\n ...props\n }: InternalButtonGroupProps,\n ref: React.Ref<ButtonGroupProps.Ref>\n ) => {\n const baseProps = getBaseProps(props);\n const itemsRef = useRef<Record<string, ButtonProps.Ref | null>>({});\n const [tooltip, setTooltip] = useState<null | { item: string; feedback: boolean }>(null);\n\n useImperativeHandle(ref, () => ({\n focus: id => {\n itemsRef.current[id]?.focus();\n },\n }));\n\n const stylePropertiesAndVariables = getButtonGroupStyles(style);\n return (\n <div\n {...baseProps}\n ref={__internalRootRef}\n className={clsx(styles.root, testUtilStyles['button-group'], baseProps.className)}\n role=\"toolbar\"\n aria-label={ariaLabel}\n style={stylePropertiesAndVariables}\n >\n <InternalNavigableGroup getItemKey={item => item.dataset.itemid!}>\n {items.map((itemOrGroup, index) => {\n const itemContent = (item: ButtonGroupProps.Item, position: string) => (\n <ItemElement\n key={item.id}\n item={item}\n dropdownExpandToViewport={dropdownExpandToViewport}\n tooltip={tooltip}\n setTooltip={setTooltip}\n onItemClick={onItemClick}\n onFilesChange={onFilesChange}\n onCopySuccess={onCopySuccess}\n onCopyFailure={onCopyFailure}\n ref={element => (itemsRef.current[item.id] = element)}\n position={position}\n style={style}\n />\n );\n\n const isGroupBefore = items[index - 1]?.type === 'group';\n const currentItem = items[index];\n const isGroupNow = currentItem?.type === 'group';\n const shouldAddDivider = isGroupBefore || (!isGroupBefore && isGroupNow && index !== 0);\n\n if (isGroupNow && currentItem.items.length === 0) {\n warnOnce('ButtonGroup', 'Empty group detected. Empty groups are not allowed.');\n }\n\n return (\n <React.Fragment key={itemOrGroup.type === 'group' ? index : itemOrGroup.id}>\n {shouldAddDivider && <div className={styles.divider} />}\n {itemOrGroup.type === 'group' ? (\n <div key={index} role=\"group\" aria-label={itemOrGroup.text} className={styles.group}>\n {itemOrGroup.items.map((item, subIndex) => itemContent(item, `${index + 1},${subIndex + 1}`))}\n </div>\n ) : (\n itemContent(itemOrGroup, `${index + 1}`)\n )}\n </React.Fragment>\n );\n })}\n </InternalNavigableGroup>\n </div>\n );\n }\n);\n\nexport default InternalButtonGroup;\n"]}
|
|
@@ -15,6 +15,8 @@ interface ItemElementProps {
|
|
|
15
15
|
}) => void;
|
|
16
16
|
onItemClick?: NonCancelableEventHandler<ButtonGroupProps.ItemClickDetails> | undefined;
|
|
17
17
|
onFilesChange?: NonCancelableEventHandler<ButtonGroupProps.FilesChangeDetails> | undefined;
|
|
18
|
+
onCopySuccess?: NonCancelableEventHandler<ButtonGroupProps.CopySuccessDetail> | undefined;
|
|
19
|
+
onCopyFailure?: NonCancelableEventHandler<ButtonGroupProps.CopyFailureDetail> | undefined;
|
|
18
20
|
position: string;
|
|
19
21
|
style?: ButtonGroupProps.Style;
|
|
20
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item-element.d.ts","sourceRoot":"","sources":["../../../src/button-group/item-element.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6D,MAAM,OAAO,CAAC;AAIlF,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAKtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"item-element.d.ts","sourceRoot":"","sources":["../../../src/button-group/item-element.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6D,MAAM,OAAO,CAAC;AAIlF,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAKtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAK5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAMhD,UAAU,gBAAgB;IACxB,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,OAAO,EAAE,IAAI,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IACpD,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1E,WAAW,CAAC,EAAE,yBAAyB,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;IACvF,aAAa,CAAC,EAAE,yBAAyB,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;IAC3F,aAAa,CAAC,EAAE,yBAAyB,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IAC1F,aAAa,CAAC,EAAE,yBAAyB,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IAC1F,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC;CAChC;AAED,QAAA,MAAM,WAAW,0FAoLhB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -4,23 +4,26 @@ import React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react
|
|
|
4
4
|
import { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';
|
|
5
5
|
import { fireCancelableEvent } from '../internal/events';
|
|
6
6
|
import { nodeBelongs } from '../internal/utils/node-belongs';
|
|
7
|
+
import CopyToClipboardItem from './copy-to-clipboard-item.js';
|
|
7
8
|
import FileInputItem from './file-input-item';
|
|
8
9
|
import IconButtonItem from './icon-button-item';
|
|
9
10
|
import IconToggleButtonItem from './icon-toggle-button-item.js';
|
|
10
11
|
import MenuDropdownItem from './menu-dropdown-item';
|
|
11
12
|
import { getButtonGroupItemStyles } from './style';
|
|
12
13
|
import styles from './styles.css.js';
|
|
13
|
-
const ItemElement = forwardRef(({ item, dropdownExpandToViewport, tooltip, setTooltip, onItemClick, onFilesChange, position, style, }, ref) => {
|
|
14
|
+
const ItemElement = forwardRef(({ item, dropdownExpandToViewport, tooltip, setTooltip, onItemClick, onFilesChange, onCopyFailure, onCopySuccess, position, style, }, ref) => {
|
|
14
15
|
const containerRef = useRef(null);
|
|
15
16
|
const buttonRef = useRef(null);
|
|
16
17
|
const fileInputRef = useRef(null);
|
|
17
18
|
const buttonDropdownRef = useRef(null);
|
|
19
|
+
const copyToClipboardRef = useRef(null);
|
|
18
20
|
useImperativeHandle(ref, () => ({
|
|
19
21
|
focus: () => {
|
|
20
|
-
var _a, _b, _c;
|
|
22
|
+
var _a, _b, _c, _d;
|
|
21
23
|
(_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
22
24
|
(_b = fileInputRef.current) === null || _b === void 0 ? void 0 : _b.focus();
|
|
23
25
|
(_c = buttonDropdownRef.current) === null || _c === void 0 ? void 0 : _c.focus();
|
|
26
|
+
(_d = copyToClipboardRef.current) === null || _d === void 0 ? void 0 : _d.focus();
|
|
24
27
|
},
|
|
25
28
|
}));
|
|
26
29
|
useEffect(() => {
|
|
@@ -72,6 +75,12 @@ const ItemElement = forwardRef(({ item, dropdownExpandToViewport, tooltip, setTo
|
|
|
72
75
|
fireCancelableEvent(onFilesChange, event.detail, event);
|
|
73
76
|
setTooltip(null);
|
|
74
77
|
};
|
|
78
|
+
const onCopyFailureHandler = event => {
|
|
79
|
+
fireCancelableEvent(onCopyFailure, event.detail);
|
|
80
|
+
};
|
|
81
|
+
const onCopySuccessHandler = event => {
|
|
82
|
+
fireCancelableEvent(onCopySuccess, event.detail);
|
|
83
|
+
};
|
|
75
84
|
const itemStylePropertiesAndVariables = getButtonGroupItemStyles(style);
|
|
76
85
|
return (React.createElement("div", { key: item.id, className: styles['item-wrapper'], ref: containerRef, onPointerEnter: () => onShowTooltipSoft(true), onPointerLeave: () => onShowTooltipSoft(false), onFocus: event => {
|
|
77
86
|
// Showing no tooltip when the focus comes from inside the container.
|
|
@@ -86,7 +95,8 @@ const ItemElement = forwardRef(({ item, dropdownExpandToViewport, tooltip, setTo
|
|
|
86
95
|
item.type === 'icon-button' && (React.createElement(IconButtonItem, { ref: buttonRef, item: item, onItemClick: onClickHandler, showTooltip: (tooltip === null || tooltip === void 0 ? void 0 : tooltip.item) === item.id, showFeedback: !!(tooltip === null || tooltip === void 0 ? void 0 : tooltip.feedback), onTooltipDismiss: () => setTooltip(null) })),
|
|
87
96
|
item.type === 'icon-toggle-button' && (React.createElement(IconToggleButtonItem, { ref: buttonRef, item: item, onItemClick: onClickHandler, showTooltip: (tooltip === null || tooltip === void 0 ? void 0 : tooltip.item) === item.id, showFeedback: !!(tooltip === null || tooltip === void 0 ? void 0 : tooltip.feedback), onTooltipDismiss: () => setTooltip(null) })),
|
|
88
97
|
item.type === 'icon-file-input' && (React.createElement(FileInputItem, { ref: fileInputRef, item: item, onFilesChange: onFilesChangeHandler, showTooltip: (tooltip === null || tooltip === void 0 ? void 0 : tooltip.item) === item.id, onTooltipDismiss: () => setTooltip(null) })),
|
|
89
|
-
item.type === 'menu-dropdown' && (React.createElement(MenuDropdownItem, { ref: buttonDropdownRef, item: item, showTooltip: (tooltip === null || tooltip === void 0 ? void 0 : tooltip.item) === item.id, onItemClick: onClickHandler, expandToViewport: dropdownExpandToViewport, onTooltipDismiss: () => setTooltip(null), position: position }))
|
|
98
|
+
item.type === 'menu-dropdown' && (React.createElement(MenuDropdownItem, { ref: buttonDropdownRef, item: item, showTooltip: (tooltip === null || tooltip === void 0 ? void 0 : tooltip.item) === item.id, onItemClick: onClickHandler, expandToViewport: dropdownExpandToViewport, onTooltipDismiss: () => setTooltip(null), position: position })),
|
|
99
|
+
item.type === 'icon-copy-to-clipboard' && (React.createElement(CopyToClipboardItem, { ref: copyToClipboardRef, item: item, showTooltip: (tooltip === null || tooltip === void 0 ? void 0 : tooltip.item) === item.id, showFeedback: !!(tooltip === null || tooltip === void 0 ? void 0 : tooltip.feedback), onTooltipDismiss: () => setTooltip(null), onShowFeedback: () => setTooltip({ item: item.id, feedback: true }), onCopyFailure: onCopyFailureHandler, onCopySuccess: onCopySuccessHandler }))));
|
|
90
100
|
});
|
|
91
101
|
export default ItemElement;
|
|
92
102
|
//# sourceMappingURL=item-element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item-element.js","sourceRoot":"","sources":["../../../src/button-group/item-element.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, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { ButtonProps } from '../button/interfaces.js';\nimport { ButtonDropdownProps } from '../button-dropdown/interfaces.js';\nimport { FileInputProps } from '../file-input/interfaces';\nimport { fireCancelableEvent } from '../internal/events';\nimport { nodeBelongs } from '../internal/utils/node-belongs';\nimport { NonCancelableEventHandler } from '../types/events';\nimport FileInputItem from './file-input-item';\nimport IconButtonItem from './icon-button-item';\nimport IconToggleButtonItem from './icon-toggle-button-item.js';\nimport { ButtonGroupProps } from './interfaces';\nimport MenuDropdownItem from './menu-dropdown-item';\nimport { getButtonGroupItemStyles } from './style';\n\nimport styles from './styles.css.js';\n\ninterface ItemElementProps {\n item: ButtonGroupProps.Item;\n dropdownExpandToViewport?: boolean;\n tooltip: null | { item: string; feedback: boolean };\n setTooltip: (tooltip: null | { item: string; feedback: boolean }) => void;\n onItemClick?: NonCancelableEventHandler<ButtonGroupProps.ItemClickDetails> | undefined;\n onFilesChange?: NonCancelableEventHandler<ButtonGroupProps.FilesChangeDetails> | undefined;\n position: string;\n style?: ButtonGroupProps.Style;\n}\n\nconst ItemElement = forwardRef(\n (\n {\n item,\n dropdownExpandToViewport,\n tooltip,\n setTooltip,\n onItemClick,\n onFilesChange,\n position,\n style,\n }: ItemElementProps,\n ref: React.Ref<ButtonProps.Ref>\n ) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<ButtonProps.Ref>(null);\n const fileInputRef = useRef<FileInputProps.Ref>(null);\n const buttonDropdownRef = useRef<ButtonDropdownProps.Ref>(null);\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n buttonRef.current?.focus();\n fileInputRef.current?.focus();\n buttonDropdownRef.current?.focus();\n },\n }));\n\n useEffect(() => {\n if (tooltip?.item !== item.id) {\n return;\n }\n\n const close = () => {\n setTooltip(null);\n };\n\n const handlePointerDownEvent = (event: PointerEvent) => {\n if (event.target && containerRef.current?.contains(event.target as HTMLElement)) {\n return;\n }\n\n close();\n };\n\n const handleKeyDownEvent = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n close();\n }\n };\n\n const controller = new AbortController();\n window.addEventListener('pointerdown', handlePointerDownEvent, { signal: controller.signal });\n window.addEventListener('keydown', handleKeyDownEvent, { signal: controller.signal });\n\n return () => {\n controller.abort();\n };\n }, [item.id, tooltip, setTooltip]);\n\n const onShowTooltipSoft = (show: boolean) => {\n if (!tooltip?.feedback) {\n setTooltip(show ? { item: item.id, feedback: false } : null);\n }\n };\n\n const onShowTooltipHard = (show: boolean) => {\n if (!show && item.id !== tooltip?.item) {\n return;\n }\n\n setTooltip(show ? { item: item.id, feedback: false } : null);\n };\n\n const onClickHandler = (event: CustomEvent<ButtonGroupProps.ItemClickDetails>) => {\n const feedbackKey: keyof ButtonGroupProps.IconButton = 'popoverFeedback';\n const hasPopoverFeedback = feedbackKey in item && item.popoverFeedback;\n\n if (hasPopoverFeedback) {\n setTooltip({ item: item.id, feedback: true });\n }\n\n fireCancelableEvent(onItemClick, event.detail, event);\n };\n\n const onFilesChangeHandler = (event: CustomEvent<ButtonGroupProps.FilesChangeDetails>) => {\n fireCancelableEvent(onFilesChange, event.detail, event);\n\n setTooltip(null);\n };\n\n const itemStylePropertiesAndVariables = getButtonGroupItemStyles(style);\n\n return (\n <div\n key={item.id}\n className={styles['item-wrapper']}\n ref={containerRef}\n onPointerEnter={() => onShowTooltipSoft(true)}\n onPointerLeave={() => onShowTooltipSoft(false)}\n onFocus={event => {\n // Showing no tooltip when the focus comes from inside the container.\n // This is needed to prevent the tooltip after a menu closes with item selection or Escape.\n if (event && event.relatedTarget && nodeBelongs(containerRef.current, event.relatedTarget)) {\n return;\n }\n onShowTooltipHard(true);\n }}\n onBlur={() => onShowTooltipHard(false)}\n style={itemStylePropertiesAndVariables}\n {...(item.type === 'menu-dropdown' || (item as ButtonGroupProps.IconButton).disabled\n ? {}\n : getAnalyticsMetadataAttribute({ detail: { position, id: item.id } }))}\n >\n {item.type === 'icon-button' && (\n <IconButtonItem\n ref={buttonRef}\n item={item}\n onItemClick={onClickHandler}\n showTooltip={tooltip?.item === item.id}\n showFeedback={!!tooltip?.feedback}\n onTooltipDismiss={() => setTooltip(null)}\n />\n )}\n {item.type === 'icon-toggle-button' && (\n <IconToggleButtonItem\n ref={buttonRef}\n item={item}\n onItemClick={onClickHandler}\n showTooltip={tooltip?.item === item.id}\n showFeedback={!!tooltip?.feedback}\n onTooltipDismiss={() => setTooltip(null)}\n />\n )}\n {item.type === 'icon-file-input' && (\n <FileInputItem\n ref={fileInputRef}\n item={item}\n onFilesChange={onFilesChangeHandler}\n showTooltip={tooltip?.item === item.id}\n onTooltipDismiss={() => setTooltip(null)}\n />\n )}\n {item.type === 'menu-dropdown' && (\n <MenuDropdownItem\n ref={buttonDropdownRef}\n item={item}\n showTooltip={tooltip?.item === item.id}\n onItemClick={onClickHandler}\n expandToViewport={dropdownExpandToViewport}\n onTooltipDismiss={() => setTooltip(null)}\n position={position}\n />\n )}\n </div>\n );\n }\n);\n\nexport default ItemElement;\n"]}
|
|
1
|
+
{"version":3,"file":"item-element.js","sourceRoot":"","sources":["../../../src/button-group/item-element.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, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { ButtonProps } from '../button/interfaces.js';\nimport { ButtonDropdownProps } from '../button-dropdown/interfaces.js';\nimport { FileInputProps } from '../file-input/interfaces';\nimport { fireCancelableEvent } from '../internal/events';\nimport { nodeBelongs } from '../internal/utils/node-belongs';\nimport { NonCancelableEventHandler } from '../types/events';\nimport CopyToClipboardItem from './copy-to-clipboard-item.js';\nimport FileInputItem from './file-input-item';\nimport IconButtonItem from './icon-button-item';\nimport IconToggleButtonItem from './icon-toggle-button-item.js';\nimport { ButtonGroupProps } from './interfaces';\nimport MenuDropdownItem from './menu-dropdown-item';\nimport { getButtonGroupItemStyles } from './style';\n\nimport styles from './styles.css.js';\n\ninterface ItemElementProps {\n item: ButtonGroupProps.Item;\n dropdownExpandToViewport?: boolean;\n tooltip: null | { item: string; feedback: boolean };\n setTooltip: (tooltip: null | { item: string; feedback: boolean }) => void;\n onItemClick?: NonCancelableEventHandler<ButtonGroupProps.ItemClickDetails> | undefined;\n onFilesChange?: NonCancelableEventHandler<ButtonGroupProps.FilesChangeDetails> | undefined;\n onCopySuccess?: NonCancelableEventHandler<ButtonGroupProps.CopySuccessDetail> | undefined;\n onCopyFailure?: NonCancelableEventHandler<ButtonGroupProps.CopyFailureDetail> | undefined;\n position: string;\n style?: ButtonGroupProps.Style;\n}\n\nconst ItemElement = forwardRef(\n (\n {\n item,\n dropdownExpandToViewport,\n tooltip,\n setTooltip,\n onItemClick,\n onFilesChange,\n onCopyFailure,\n onCopySuccess,\n position,\n style,\n }: ItemElementProps,\n ref: React.Ref<ButtonProps.Ref>\n ) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<ButtonProps.Ref>(null);\n const fileInputRef = useRef<FileInputProps.Ref>(null);\n const buttonDropdownRef = useRef<ButtonDropdownProps.Ref>(null);\n const copyToClipboardRef = useRef<ButtonProps.Ref>(null);\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n buttonRef.current?.focus();\n fileInputRef.current?.focus();\n buttonDropdownRef.current?.focus();\n copyToClipboardRef.current?.focus();\n },\n }));\n\n useEffect(() => {\n if (tooltip?.item !== item.id) {\n return;\n }\n\n const close = () => {\n setTooltip(null);\n };\n\n const handlePointerDownEvent = (event: PointerEvent) => {\n if (event.target && containerRef.current?.contains(event.target as HTMLElement)) {\n return;\n }\n\n close();\n };\n\n const handleKeyDownEvent = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n close();\n }\n };\n\n const controller = new AbortController();\n window.addEventListener('pointerdown', handlePointerDownEvent, { signal: controller.signal });\n window.addEventListener('keydown', handleKeyDownEvent, { signal: controller.signal });\n\n return () => {\n controller.abort();\n };\n }, [item.id, tooltip, setTooltip]);\n\n const onShowTooltipSoft = (show: boolean) => {\n if (!tooltip?.feedback) {\n setTooltip(show ? { item: item.id, feedback: false } : null);\n }\n };\n\n const onShowTooltipHard = (show: boolean) => {\n if (!show && item.id !== tooltip?.item) {\n return;\n }\n\n setTooltip(show ? { item: item.id, feedback: false } : null);\n };\n\n const onClickHandler = (event: CustomEvent<ButtonGroupProps.ItemClickDetails>) => {\n const feedbackKey: keyof ButtonGroupProps.IconButton = 'popoverFeedback';\n const hasPopoverFeedback = feedbackKey in item && item.popoverFeedback;\n\n if (hasPopoverFeedback) {\n setTooltip({ item: item.id, feedback: true });\n }\n\n fireCancelableEvent(onItemClick, event.detail, event);\n };\n\n const onFilesChangeHandler = (event: CustomEvent<ButtonGroupProps.FilesChangeDetails>) => {\n fireCancelableEvent(onFilesChange, event.detail, event);\n\n setTooltip(null);\n };\n\n const onCopyFailureHandler: NonCancelableEventHandler<ButtonGroupProps.CopyFailureDetail> = event => {\n fireCancelableEvent(onCopyFailure, event.detail);\n };\n\n const onCopySuccessHandler: NonCancelableEventHandler<ButtonGroupProps.CopySuccessDetail> = event => {\n fireCancelableEvent(onCopySuccess, event.detail);\n };\n\n const itemStylePropertiesAndVariables = getButtonGroupItemStyles(style);\n\n return (\n <div\n key={item.id}\n className={styles['item-wrapper']}\n ref={containerRef}\n onPointerEnter={() => onShowTooltipSoft(true)}\n onPointerLeave={() => onShowTooltipSoft(false)}\n onFocus={event => {\n // Showing no tooltip when the focus comes from inside the container.\n // This is needed to prevent the tooltip after a menu closes with item selection or Escape.\n if (event && event.relatedTarget && nodeBelongs(containerRef.current, event.relatedTarget)) {\n return;\n }\n onShowTooltipHard(true);\n }}\n onBlur={() => onShowTooltipHard(false)}\n style={itemStylePropertiesAndVariables}\n {...(item.type === 'menu-dropdown' || (item as ButtonGroupProps.IconButton).disabled\n ? {}\n : getAnalyticsMetadataAttribute({ detail: { position, id: item.id } }))}\n >\n {item.type === 'icon-button' && (\n <IconButtonItem\n ref={buttonRef}\n item={item}\n onItemClick={onClickHandler}\n showTooltip={tooltip?.item === item.id}\n showFeedback={!!tooltip?.feedback}\n onTooltipDismiss={() => setTooltip(null)}\n />\n )}\n {item.type === 'icon-toggle-button' && (\n <IconToggleButtonItem\n ref={buttonRef}\n item={item}\n onItemClick={onClickHandler}\n showTooltip={tooltip?.item === item.id}\n showFeedback={!!tooltip?.feedback}\n onTooltipDismiss={() => setTooltip(null)}\n />\n )}\n {item.type === 'icon-file-input' && (\n <FileInputItem\n ref={fileInputRef}\n item={item}\n onFilesChange={onFilesChangeHandler}\n showTooltip={tooltip?.item === item.id}\n onTooltipDismiss={() => setTooltip(null)}\n />\n )}\n {item.type === 'menu-dropdown' && (\n <MenuDropdownItem\n ref={buttonDropdownRef}\n item={item}\n showTooltip={tooltip?.item === item.id}\n onItemClick={onClickHandler}\n expandToViewport={dropdownExpandToViewport}\n onTooltipDismiss={() => setTooltip(null)}\n position={position}\n />\n )}\n {item.type === 'icon-copy-to-clipboard' && (\n <CopyToClipboardItem\n ref={copyToClipboardRef}\n item={item}\n showTooltip={tooltip?.item === item.id}\n showFeedback={!!tooltip?.feedback}\n onTooltipDismiss={() => setTooltip(null)}\n onShowFeedback={() => setTooltip({ item: item.id, feedback: true })}\n onCopyFailure={onCopyFailureHandler}\n onCopySuccess={onCopySuccessHandler}\n />\n )}\n </div>\n );\n }\n);\n\nexport default ItemElement;\n"]}
|
|
@@ -1,38 +1,38 @@
|
|
|
1
1
|
|
|
2
2
|
import './styles.scoped.css';
|
|
3
3
|
export default {
|
|
4
|
-
"code-editor-refresh": "awsui_code-editor-
|
|
5
|
-
"code-editor": "awsui_code-
|
|
6
|
-
"pane": "
|
|
7
|
-
"pane__close-container": "awsui_pane__close-
|
|
8
|
-
"pane__list": "
|
|
9
|
-
"pane__table": "
|
|
10
|
-
"pane__item": "
|
|
11
|
-
"pane__cell": "
|
|
12
|
-
"pane__item--highlighted": "awsui_pane__item--
|
|
13
|
-
"pane__location": "
|
|
14
|
-
"pane__description": "
|
|
15
|
-
"focus-lock": "awsui_focus-
|
|
16
|
-
"editor": "
|
|
17
|
-
"editor-refresh": "awsui_editor-
|
|
18
|
-
"status-bar": "awsui_status-
|
|
19
|
-
"status-bar-with-hidden-pane": "awsui_status-bar-with-hidden-
|
|
20
|
-
"status-bar__left": "awsui_status-
|
|
21
|
-
"status-bar__right": "awsui_status-
|
|
22
|
-
"status-bar__language-mode": "awsui_status-bar__language-
|
|
23
|
-
"status-bar__cursor-position": "awsui_status-bar__cursor-
|
|
24
|
-
"status-bar__cog-button": "awsui_status-bar__cog-
|
|
25
|
-
"tab-list": "awsui_tab-
|
|
26
|
-
"tab-button": "awsui_tab-
|
|
27
|
-
"tab-button--refresh": "awsui_tab-button--
|
|
28
|
-
"tab-button--warnings": "awsui_tab-button--
|
|
29
|
-
"tab-button--active": "awsui_tab-button--
|
|
30
|
-
"tab-button--disabled": "awsui_tab-button--
|
|
31
|
-
"tab-button--divider": "awsui_tab-button--
|
|
32
|
-
"tab-button--errors": "awsui_tab-button--
|
|
33
|
-
"count": "
|
|
34
|
-
"text": "
|
|
35
|
-
"loading-screen": "awsui_loading-
|
|
36
|
-
"error-screen": "awsui_error-
|
|
4
|
+
"code-editor-refresh": "awsui_code-editor-refresh_1gl9c_mudg1_158",
|
|
5
|
+
"code-editor": "awsui_code-editor_1gl9c_mudg1_158",
|
|
6
|
+
"pane": "awsui_pane_1gl9c_mudg1_704",
|
|
7
|
+
"pane__close-container": "awsui_pane__close-container_1gl9c_mudg1_715",
|
|
8
|
+
"pane__list": "awsui_pane__list_1gl9c_mudg1_720",
|
|
9
|
+
"pane__table": "awsui_pane__table_1gl9c_mudg1_727",
|
|
10
|
+
"pane__item": "awsui_pane__item_1gl9c_mudg1_733",
|
|
11
|
+
"pane__cell": "awsui_pane__cell_1gl9c_mudg1_733",
|
|
12
|
+
"pane__item--highlighted": "awsui_pane__item--highlighted_1gl9c_mudg1_747",
|
|
13
|
+
"pane__location": "awsui_pane__location_1gl9c_mudg1_768",
|
|
14
|
+
"pane__description": "awsui_pane__description_1gl9c_mudg1_768",
|
|
15
|
+
"focus-lock": "awsui_focus-lock_1gl9c_mudg1_783",
|
|
16
|
+
"editor": "awsui_editor_1gl9c_mudg1_827",
|
|
17
|
+
"editor-refresh": "awsui_editor-refresh_1gl9c_mudg1_857",
|
|
18
|
+
"status-bar": "awsui_status-bar_1gl9c_mudg1_862",
|
|
19
|
+
"status-bar-with-hidden-pane": "awsui_status-bar-with-hidden-pane_1gl9c_mudg1_871",
|
|
20
|
+
"status-bar__left": "awsui_status-bar__left_1gl9c_mudg1_875",
|
|
21
|
+
"status-bar__right": "awsui_status-bar__right_1gl9c_mudg1_882",
|
|
22
|
+
"status-bar__language-mode": "awsui_status-bar__language-mode_1gl9c_mudg1_886",
|
|
23
|
+
"status-bar__cursor-position": "awsui_status-bar__cursor-position_1gl9c_mudg1_886",
|
|
24
|
+
"status-bar__cog-button": "awsui_status-bar__cog-button_1gl9c_mudg1_892",
|
|
25
|
+
"tab-list": "awsui_tab-list_1gl9c_mudg1_897",
|
|
26
|
+
"tab-button": "awsui_tab-button_1gl9c_mudg1_902",
|
|
27
|
+
"tab-button--refresh": "awsui_tab-button--refresh_1gl9c_mudg1_935",
|
|
28
|
+
"tab-button--warnings": "awsui_tab-button--warnings_1gl9c_mudg1_938",
|
|
29
|
+
"tab-button--active": "awsui_tab-button--active_1gl9c_mudg1_947",
|
|
30
|
+
"tab-button--disabled": "awsui_tab-button--disabled_1gl9c_mudg1_963",
|
|
31
|
+
"tab-button--divider": "awsui_tab-button--divider_1gl9c_mudg1_996",
|
|
32
|
+
"tab-button--errors": "awsui_tab-button--errors_1gl9c_mudg1_1003",
|
|
33
|
+
"count": "awsui_count_1gl9c_mudg1_1012",
|
|
34
|
+
"text": "awsui_text_1gl9c_mudg1_1015",
|
|
35
|
+
"loading-screen": "awsui_loading-screen_1gl9c_mudg1_1037",
|
|
36
|
+
"error-screen": "awsui_error-screen_1gl9c_mudg1_1038"
|
|
37
37
|
};
|
|
38
38
|
|