@cloudscape-design/components-themeable 3.0.267 → 3.0.268

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 (85) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/table/body-cell/styles.scss +162 -0
  3. package/lib/internal/template/cards/styles.css.js +37 -37
  4. package/lib/internal/template/cards/styles.scoped.css +52 -52
  5. package/lib/internal/template/cards/styles.selectors.js +37 -37
  6. package/lib/internal/template/code-editor/index.d.ts.map +1 -1
  7. package/lib/internal/template/code-editor/index.js +1 -14
  8. package/lib/internal/template/code-editor/index.js.map +1 -1
  9. package/lib/internal/template/code-editor/pane.d.ts +1 -2
  10. package/lib/internal/template/code-editor/pane.d.ts.map +1 -1
  11. package/lib/internal/template/code-editor/pane.js +8 -3
  12. package/lib/internal/template/code-editor/pane.js.map +1 -1
  13. package/lib/internal/template/code-editor/status-bar.d.ts +3 -3
  14. package/lib/internal/template/code-editor/status-bar.d.ts.map +1 -1
  15. package/lib/internal/template/code-editor/status-bar.js +5 -3
  16. package/lib/internal/template/code-editor/status-bar.js.map +1 -1
  17. package/lib/internal/template/internal/base-component/styles.scoped.css +9 -7
  18. package/lib/internal/template/internal/components/button-trigger/styles.css.js +9 -9
  19. package/lib/internal/template/internal/components/button-trigger/styles.scoped.css +24 -24
  20. package/lib/internal/template/internal/components/button-trigger/styles.selectors.js +9 -9
  21. package/lib/internal/template/internal/components/filtering-token/styles.css.js +7 -7
  22. package/lib/internal/template/internal/components/filtering-token/styles.scoped.css +15 -15
  23. package/lib/internal/template/internal/components/filtering-token/styles.selectors.js +7 -7
  24. package/lib/internal/template/internal/environment.js +1 -1
  25. package/lib/internal/template/modal/internal.d.ts +1 -1
  26. package/lib/internal/template/modal/internal.d.ts.map +1 -1
  27. package/lib/internal/template/modal/internal.js +24 -15
  28. package/lib/internal/template/modal/internal.js.map +1 -1
  29. package/lib/internal/template/table/body-cell/index.d.ts +2 -1
  30. package/lib/internal/template/table/body-cell/index.d.ts.map +1 -1
  31. package/lib/internal/template/table/body-cell/index.js +9 -4
  32. package/lib/internal/template/table/body-cell/index.js.map +1 -1
  33. package/lib/internal/template/table/body-cell/inline-editor.d.ts +1 -1
  34. package/lib/internal/template/table/body-cell/inline-editor.d.ts.map +1 -1
  35. package/lib/internal/template/table/body-cell/inline-editor.js +5 -3
  36. package/lib/internal/template/table/body-cell/inline-editor.js.map +1 -1
  37. package/lib/internal/template/table/body-cell/styles.css.js +40 -18
  38. package/lib/internal/template/table/body-cell/styles.scoped.css +226 -56
  39. package/lib/internal/template/table/body-cell/styles.selectors.js +40 -18
  40. package/lib/internal/template/table/header-cell/index.js +1 -1
  41. package/lib/internal/template/table/header-cell/index.js.map +1 -1
  42. package/lib/internal/template/table/interfaces.d.ts +6 -0
  43. package/lib/internal/template/table/interfaces.d.ts.map +1 -1
  44. package/lib/internal/template/table/interfaces.js.map +1 -1
  45. package/lib/internal/template/table/internal.d.ts.map +1 -1
  46. package/lib/internal/template/table/internal.js +20 -18
  47. package/lib/internal/template/table/internal.js.map +1 -1
  48. package/lib/internal/template/table/selection-control/index.d.ts +2 -8
  49. package/lib/internal/template/table/selection-control/index.d.ts.map +1 -1
  50. package/lib/internal/template/table/selection-control/index.js.map +1 -1
  51. package/lib/internal/template/table/table-wrapper.d.ts +13 -0
  52. package/lib/internal/template/table/table-wrapper.d.ts.map +1 -0
  53. package/lib/internal/template/table/table-wrapper.js +15 -0
  54. package/lib/internal/template/table/table-wrapper.js.map +1 -0
  55. package/lib/internal/template/table/thead.d.ts +2 -2
  56. package/lib/internal/template/table/thead.d.ts.map +1 -1
  57. package/lib/internal/template/table/thead.js +3 -3
  58. package/lib/internal/template/table/thead.js.map +1 -1
  59. package/lib/internal/template/table/use-column-widths.js +1 -1
  60. package/lib/internal/template/table/use-column-widths.js.map +1 -1
  61. package/lib/internal/template/table/use-selection.d.ts +12 -18
  62. package/lib/internal/template/table/use-selection.d.ts.map +1 -1
  63. package/lib/internal/template/table/use-selection.js +20 -12
  64. package/lib/internal/template/table/use-selection.js.map +1 -1
  65. package/lib/internal/template/table/use-table-focus-navigation.d.ts.map +1 -1
  66. package/lib/internal/template/table/use-table-focus-navigation.js +9 -34
  67. package/lib/internal/template/table/use-table-focus-navigation.js.map +1 -1
  68. package/lib/internal/template/test-utils/dom/table/index.d.ts +3 -0
  69. package/lib/internal/template/test-utils/dom/table/index.js +16 -15
  70. package/lib/internal/template/test-utils/dom/table/index.js.map +1 -1
  71. package/lib/internal/template/test-utils/selectors/table/index.d.ts +3 -0
  72. package/lib/internal/template/test-utils/selectors/table/index.js +16 -15
  73. package/lib/internal/template/test-utils/selectors/table/index.js.map +1 -1
  74. package/lib/internal/template/test-utils/tsconfig.tsbuildinfo +1 -1
  75. package/lib/internal/template/tiles/styles.css.js +28 -28
  76. package/lib/internal/template/tiles/styles.scoped.css +69 -69
  77. package/lib/internal/template/tiles/styles.selectors.js +28 -28
  78. package/lib/internal/template/token-group/styles.css.js +7 -7
  79. package/lib/internal/template/token-group/styles.scoped.css +17 -17
  80. package/lib/internal/template/token-group/styles.selectors.js +7 -7
  81. package/package.json +1 -1
  82. package/lib/internal/scss/table/header-cell/styles.scss +0 -160
  83. package/lib/internal/template/table/header-cell/styles.css.js +0 -24
  84. package/lib/internal/template/table/header-cell/styles.scoped.css +0 -252
  85. package/lib/internal/template/table/header-cell/styles.selectors.js +0 -25
@@ -166,19 +166,6 @@ const CodeEditor = forwardRef((props, ref) => {
166
166
  const onAnnotationClear = useCallback(() => {
167
167
  setHighlightedAnnotation(undefined);
168
168
  }, []);
169
- /**
170
- * Ignore focus lock if focused element is the pane tab button or within editor tree.
171
- * This check is required:
172
- * - When closing the pane with `ESC` key: The panel closes asynchronously and its focus lock
173
- * still exists when trying to focus the tab button in higher-order component.
174
- * - When clicking or hittin `Enter` on an annotation: The panel remains open but focus lock
175
- * deactivates asynchronously.
176
- */
177
- const shouldHandleFocus = useCallback((activeElement) => {
178
- return (activeElement !== errorsTabRef.current &&
179
- activeElement !== warningsTabRef.current &&
180
- !(editor === null || editor === void 0 ? void 0 : editor.container.contains(activeElement)));
181
- }, [editor]);
182
169
  const [isPreferencesModalVisible, setPreferencesModalVisible] = useState(false);
183
170
  const onPreferencesOpen = () => setPreferencesModalVisible(true);
184
171
  const onPreferencesConfirm = (p) => {
@@ -200,7 +187,7 @@ const CodeEditor = forwardRef((props, ref) => {
200
187
  React.createElement("div", { ref: codeEditorRef, className: clsx(styles.editor, styles.ace, isRefresh && styles['editor-refresh']), onKeyDown: onEditorKeydown, tabIndex: 0, role: "group", "aria-label": i18nStrings.editorGroupAriaLabel })),
201
188
  React.createElement("div", { role: "group", "aria-label": i18nStrings.statusBarGroupAriaLabel },
202
189
  React.createElement(StatusBar, { languageLabel: languageLabel, cursorPosition: i18nStrings.cursorPosition(cursorPosition.row + 1, cursorPosition.column + 1), errorCount: errorCount, warningCount: warningCount, paneStatus: paneStatus, onErrorPaneToggle: onErrorPaneToggle, onWarningPaneToggle: onWarningPaneToggle, onTabFocus: onTabFocus, onTabBlur: onTabBlur, errorsTabRef: errorsTabRef, warningsTabRef: warningsTabRef, i18nStrings: i18nStrings, isTabFocused: isTabFocused, paneId: isPaneVisible ? paneId : undefined, onPreferencesOpen: onPreferencesOpen, isRefresh: isRefresh }),
203
- React.createElement(Pane, { id: paneId, visible: isPaneVisible, annotations: currentAnnotations, highlighted: highlightedAnnotation, onAnnotationClick: onAnnotationClick, onAnnotationClear: onAnnotationClear, onClose: onPaneClose, onAllowlist: shouldHandleFocus, cursorPositionLabel: i18nStrings.cursorPosition, closeButtonAriaLabel: i18nStrings.paneCloseButtonAriaLabel })),
190
+ React.createElement(Pane, { id: paneId, visible: isPaneVisible, annotations: currentAnnotations, highlighted: highlightedAnnotation, onAnnotationClick: onAnnotationClick, onAnnotationClear: onAnnotationClear, onClose: onPaneClose, cursorPositionLabel: i18nStrings.cursorPosition, closeButtonAriaLabel: i18nStrings.paneCloseButtonAriaLabel })),
204
191
  isPreferencesModalVisible && (React.createElement(PreferencesModal, { onConfirm: onPreferencesConfirm, onDismiss: onPreferencesDismiss, themes: props.themes, preferences: props.preferences, defaultTheme: defaultTheme, i18nStrings: {
205
192
  header: i18nStrings.preferencesModalHeader,
206
193
  cancel: i18nStrings.preferencesModalCancel,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["code-editor/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, { useCallback, useEffect, useMemo, useRef, useState, forwardRef } from 'react';\nimport { Ace } from 'ace-builds';\nimport clsx from 'clsx';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\n\nimport { getBaseProps } from '../internal/base-component';\nimport { KeyCode } from '../internal/keycode';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { CodeEditorProps } from './interfaces';\nimport { Pane } from './pane';\nimport { useChangeEffect } from './listeners';\nimport {\n getDefaultConfig,\n getAceTheme,\n PaneStatus,\n getLanguageLabel,\n DEFAULT_DARK_THEME,\n DEFAULT_LIGHT_THEME,\n getDefaultTheme,\n} from './util';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { setupEditor } from './setup-editor';\nimport { ResizableBox } from './resizable-box';\nimport PreferencesModal from './preferences-modal';\nimport LoadingScreen from './loading-screen';\nimport ErrorScreen from './error-screen';\n\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport useForwardFocus from '../internal/hooks/forward-focus';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { useContainerQuery } from '../internal/hooks/container-queries/use-container-query';\nimport { useCurrentMode } from '../internal/hooks/use-visual-mode';\nimport { StatusBar } from './status-bar';\nimport { useFormFieldContext } from '../internal/context/form-field-context';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { useControllable } from '../internal/hooks/use-controllable';\nimport LiveRegion from '../internal/components/live-region';\n\nimport styles from './styles.css.js';\n\nexport { CodeEditorProps };\n\nconst CodeEditor = forwardRef((props: CodeEditorProps, ref: React.Ref<CodeEditorProps.Ref>) => {\n const codeEditorRef = useRef<HTMLDivElement>(null);\n const { __internalRootRef } = useBaseComponent('CodeEditor');\n const { controlId, ariaLabelledby, ariaDescribedby } = useFormFieldContext(props);\n const {\n ace,\n value,\n language,\n i18nStrings,\n editorContentHeight,\n onEditorContentResize,\n languageLabel: customLanguageLabel,\n ...rest\n } = props;\n const [editorHeight = 480, setEditorHeight] = useControllable(editorContentHeight, onEditorContentResize, 480, {\n componentName: 'code-editor',\n changeHandler: 'onEditorContentResize',\n controlledProp: 'editorContentHeight',\n });\n const baseProps = getBaseProps(rest);\n\n const [editor, setEditor] = useState<Ace.Editor>();\n const mode = useCurrentMode(__internalRootRef);\n const defaultTheme = mode === 'dark' ? DEFAULT_DARK_THEME : DEFAULT_LIGHT_THEME;\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n const { textarea } = editor.renderer as unknown as { textarea: HTMLTextAreaElement };\n if (!textarea) {\n return;\n }\n const updateAttribute = (attribute: string, value: string | undefined) =>\n value ? textarea.setAttribute(attribute, value) : textarea.removeAttribute(attribute);\n updateAttribute('id', controlId);\n updateAttribute('aria-labelledby', ariaLabelledby);\n updateAttribute('aria-describedby', ariaDescribedby);\n }, [ariaDescribedby, ariaLabelledby, controlId, editor]);\n\n const [paneStatus, setPaneStatus] = useState<PaneStatus>('hidden');\n const [annotations, setAnnotations] = useState<Ace.Annotation[]>([]);\n const [highlightedAnnotation, setHighlightedAnnotation] = useState<Ace.Annotation>();\n const [cursorPosition, setCursorPosition] = useState<Ace.Point>({ row: 0, column: 0 });\n const [isTabFocused, setTabFocused] = useState<boolean>(false);\n\n const errorsTabRef = useRef<HTMLButtonElement>(null);\n const warningsTabRef = useRef<HTMLButtonElement>(null);\n useEffect(() => {\n const elem = codeEditorRef.current;\n if (!ace || !elem) {\n return;\n }\n const config = getDefaultConfig();\n setEditor(\n ace.edit(elem, {\n ...config,\n theme: getAceTheme(getDefaultTheme(elem)),\n })\n );\n }, [ace, props.loading]);\n const [codeEditorWidth, codeEditorMeasureRef] = useContainerQuery(rect => rect.width);\n const mergedRef = useMergeRefs(codeEditorMeasureRef, __internalRootRef);\n useForwardFocus(ref, codeEditorRef);\n const isRefresh = useVisualRefresh();\n\n useEffect(() => {\n editor?.resize();\n }, [editor, editorContentHeight, codeEditorWidth]);\n\n const paneId = useUniqueId('code-editor-pane');\n\n useEffect(() => {\n if (!ace || !editor) {\n return;\n }\n\n setupEditor(ace, editor, setAnnotations, setCursorPosition, setHighlightedAnnotation, setPaneStatus);\n\n return () => {\n editor?.destroy();\n };\n }, [ace, editor, __internalRootRef]);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n if (value === editor.getValue()) {\n return;\n }\n // TODO maintain cursor position?\n const pos = editor.session.selection.toJSON();\n editor.setValue(value, -1);\n editor.session.selection.fromJSON(pos);\n }, [editor, value]);\n\n useEffect(() => {\n editor?.session.setMode(`ace/mode/${language}`);\n }, [editor, language]);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n const theme: CodeEditorProps.Theme = props.preferences?.theme ?? defaultTheme;\n editor.setTheme(getAceTheme(theme));\n\n editor.session.setUseWrapMode(props.preferences?.wrapLines ?? true);\n }, [editor, defaultTheme, props.preferences]);\n\n // Change listeners\n useChangeEffect(editor, props.onChange, props.onDelayedChange);\n\n // Hide error panel when there are no errors to show.\n useEffect(() => {\n if (annotations.length === 0) {\n setPaneStatus('hidden');\n }\n\n if (props.onValidate) {\n fireNonCancelableEvent(props.onValidate, { annotations });\n }\n }, [annotations, props.onValidate]);\n\n const languageLabel = customLanguageLabel ?? getLanguageLabel(language);\n\n const errorCount = annotations.filter(a => a.type === 'error').length;\n const warningCount = annotations.filter(a => a.type === 'warning').length;\n const currentAnnotations = useMemo(() => annotations.filter(a => a.type === paneStatus), [annotations, paneStatus]);\n\n /*\n * Callbacks\n */\n\n const onEditorKeydown = useCallback(\n (e: React.KeyboardEvent) => {\n if (editor && e.target === editor.container && e.keyCode === KeyCode.enter) {\n e.stopPropagation();\n e.preventDefault();\n editor.focus();\n }\n },\n [editor]\n );\n\n const onTabFocus = useCallback(() => setTabFocused(true), []);\n const onTabBlur = useCallback(() => setTabFocused(false), []);\n\n const onResize = useCallback(() => {\n editor?.resize();\n }, [editor]);\n\n const onErrorPaneToggle = useCallback(() => {\n setPaneStatus(paneStatus !== 'error' ? 'error' : 'hidden');\n }, [paneStatus]);\n\n const onWarningPaneToggle = useCallback(() => {\n setPaneStatus(paneStatus !== 'warning' ? 'warning' : 'hidden');\n }, [paneStatus]);\n\n const onPaneClose = useCallback(() => {\n if (paneStatus === 'error' && errorsTabRef.current) {\n errorsTabRef.current.focus();\n }\n if (paneStatus === 'warning' && warningsTabRef.current) {\n warningsTabRef.current.focus();\n }\n setPaneStatus('hidden');\n }, [paneStatus]);\n\n const onAnnotationClick = ({ row = 0, column = 0 }: Ace.Annotation) => {\n if (!editor) {\n return;\n }\n editor.focus();\n editor.gotoLine(row + 1, column, false);\n setHighlightedAnnotation(undefined);\n };\n\n const onAnnotationClear = useCallback(() => {\n setHighlightedAnnotation(undefined);\n }, []);\n\n /**\n * Ignore focus lock if focused element is the pane tab button or within editor tree.\n * This check is required:\n * - When closing the pane with `ESC` key: The panel closes asynchronously and its focus lock\n * still exists when trying to focus the tab button in higher-order component.\n * - When clicking or hittin `Enter` on an annotation: The panel remains open but focus lock\n * deactivates asynchronously.\n */\n const shouldHandleFocus = useCallback(\n (activeElement: HTMLElement): boolean => {\n return (\n activeElement !== errorsTabRef.current &&\n activeElement !== warningsTabRef.current &&\n !editor?.container.contains(activeElement)\n );\n },\n [editor]\n );\n\n const [isPreferencesModalVisible, setPreferencesModalVisible] = useState(false);\n const onPreferencesOpen = () => setPreferencesModalVisible(true);\n const onPreferencesConfirm = (p: CodeEditorProps.Preferences) => {\n fireNonCancelableEvent(props.onPreferencesChange, p);\n setPreferencesModalVisible(false);\n };\n const onPreferencesDismiss = () => setPreferencesModalVisible(false);\n\n const isPaneVisible = paneStatus !== 'hidden';\n\n return (\n <div\n {...baseProps}\n className={clsx(styles['code-editor'], baseProps.className, { [styles['code-editor-refresh']]: isRefresh })}\n ref={mergedRef}\n >\n {props.loading && (\n <LoadingScreen>\n <LiveRegion visible={true}>{i18nStrings.loadingState}</LiveRegion>\n </LoadingScreen>\n )}\n\n {!ace && !props.loading && (\n <ErrorScreen recoveryText={i18nStrings.errorStateRecovery} onRecoveryClick={props.onRecoveryClick}>\n {i18nStrings.errorState}\n </ErrorScreen>\n )}\n\n {ace && !props.loading && (\n <>\n <ResizableBox\n height={Math.max(editorHeight, 20)}\n minHeight={20}\n onResize={height => {\n setEditorHeight(height);\n onResize();\n fireNonCancelableEvent(onEditorContentResize, { height });\n }}\n >\n <div\n ref={codeEditorRef}\n className={clsx(styles.editor, styles.ace, isRefresh && styles['editor-refresh'])}\n onKeyDown={onEditorKeydown}\n tabIndex={0}\n role=\"group\"\n aria-label={i18nStrings.editorGroupAriaLabel}\n />\n </ResizableBox>\n <div role=\"group\" aria-label={i18nStrings.statusBarGroupAriaLabel}>\n <StatusBar\n languageLabel={languageLabel}\n cursorPosition={i18nStrings.cursorPosition(cursorPosition.row + 1, cursorPosition.column + 1)}\n errorCount={errorCount}\n warningCount={warningCount}\n paneStatus={paneStatus}\n onErrorPaneToggle={onErrorPaneToggle}\n onWarningPaneToggle={onWarningPaneToggle}\n onTabFocus={onTabFocus}\n onTabBlur={onTabBlur}\n errorsTabRef={errorsTabRef}\n warningsTabRef={warningsTabRef}\n i18nStrings={i18nStrings}\n isTabFocused={isTabFocused}\n paneId={isPaneVisible ? paneId : undefined}\n onPreferencesOpen={onPreferencesOpen}\n isRefresh={isRefresh}\n />\n <Pane\n id={paneId}\n visible={isPaneVisible}\n annotations={currentAnnotations}\n highlighted={highlightedAnnotation}\n onAnnotationClick={onAnnotationClick}\n onAnnotationClear={onAnnotationClear}\n onClose={onPaneClose}\n onAllowlist={shouldHandleFocus}\n cursorPositionLabel={i18nStrings.cursorPosition}\n closeButtonAriaLabel={i18nStrings.paneCloseButtonAriaLabel}\n />\n </div>\n {isPreferencesModalVisible && (\n <PreferencesModal\n onConfirm={onPreferencesConfirm}\n onDismiss={onPreferencesDismiss}\n themes={props.themes}\n preferences={props.preferences}\n defaultTheme={defaultTheme}\n i18nStrings={{\n header: i18nStrings.preferencesModalHeader,\n cancel: i18nStrings.preferencesModalCancel,\n confirm: i18nStrings.preferencesModalConfirm,\n wrapLines: i18nStrings.preferencesModalWrapLines,\n theme: i18nStrings.preferencesModalTheme,\n lightThemes: i18nStrings.preferencesModalLightThemes,\n darkThemes: i18nStrings.preferencesModalDarkThemes,\n themeFilteringAriaLabel: i18nStrings.preferencesModalThemeFilteringAriaLabel,\n themeFilteringClearAriaLabel: i18nStrings.preferencesModalThemeFilteringClearAriaLabel,\n themeFilteringPlaceholder: i18nStrings.preferencesModalThemeFilteringPlaceholder,\n }}\n />\n )}\n </>\n )}\n </div>\n );\n});\n\napplyDisplayName(CodeEditor, 'CodeEditor');\nexport default CodeEditor;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["code-editor/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, { useCallback, useEffect, useMemo, useRef, useState, forwardRef } from 'react';\nimport { Ace } from 'ace-builds';\nimport clsx from 'clsx';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\n\nimport { getBaseProps } from '../internal/base-component';\nimport { KeyCode } from '../internal/keycode';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport { CodeEditorProps } from './interfaces';\nimport { Pane } from './pane';\nimport { useChangeEffect } from './listeners';\nimport {\n getDefaultConfig,\n getAceTheme,\n PaneStatus,\n getLanguageLabel,\n DEFAULT_DARK_THEME,\n DEFAULT_LIGHT_THEME,\n getDefaultTheme,\n} from './util';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { setupEditor } from './setup-editor';\nimport { ResizableBox } from './resizable-box';\nimport PreferencesModal from './preferences-modal';\nimport LoadingScreen from './loading-screen';\nimport ErrorScreen from './error-screen';\n\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport useForwardFocus from '../internal/hooks/forward-focus';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { useContainerQuery } from '../internal/hooks/container-queries/use-container-query';\nimport { useCurrentMode } from '../internal/hooks/use-visual-mode';\nimport { StatusBar } from './status-bar';\nimport { useFormFieldContext } from '../internal/context/form-field-context';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { useControllable } from '../internal/hooks/use-controllable';\nimport LiveRegion from '../internal/components/live-region';\n\nimport styles from './styles.css.js';\n\nexport { CodeEditorProps };\n\nconst CodeEditor = forwardRef((props: CodeEditorProps, ref: React.Ref<CodeEditorProps.Ref>) => {\n const codeEditorRef = useRef<HTMLDivElement>(null);\n const { __internalRootRef } = useBaseComponent('CodeEditor');\n const { controlId, ariaLabelledby, ariaDescribedby } = useFormFieldContext(props);\n const {\n ace,\n value,\n language,\n i18nStrings,\n editorContentHeight,\n onEditorContentResize,\n languageLabel: customLanguageLabel,\n ...rest\n } = props;\n const [editorHeight = 480, setEditorHeight] = useControllable(editorContentHeight, onEditorContentResize, 480, {\n componentName: 'code-editor',\n changeHandler: 'onEditorContentResize',\n controlledProp: 'editorContentHeight',\n });\n const baseProps = getBaseProps(rest);\n\n const [editor, setEditor] = useState<Ace.Editor>();\n const mode = useCurrentMode(__internalRootRef);\n const defaultTheme = mode === 'dark' ? DEFAULT_DARK_THEME : DEFAULT_LIGHT_THEME;\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n const { textarea } = editor.renderer as unknown as { textarea: HTMLTextAreaElement };\n if (!textarea) {\n return;\n }\n const updateAttribute = (attribute: string, value: string | undefined) =>\n value ? textarea.setAttribute(attribute, value) : textarea.removeAttribute(attribute);\n updateAttribute('id', controlId);\n updateAttribute('aria-labelledby', ariaLabelledby);\n updateAttribute('aria-describedby', ariaDescribedby);\n }, [ariaDescribedby, ariaLabelledby, controlId, editor]);\n\n const [paneStatus, setPaneStatus] = useState<PaneStatus>('hidden');\n const [annotations, setAnnotations] = useState<Ace.Annotation[]>([]);\n const [highlightedAnnotation, setHighlightedAnnotation] = useState<Ace.Annotation>();\n const [cursorPosition, setCursorPosition] = useState<Ace.Point>({ row: 0, column: 0 });\n const [isTabFocused, setTabFocused] = useState<boolean>(false);\n\n const errorsTabRef = useRef<HTMLButtonElement>(null);\n const warningsTabRef = useRef<HTMLButtonElement>(null);\n useEffect(() => {\n const elem = codeEditorRef.current;\n if (!ace || !elem) {\n return;\n }\n const config = getDefaultConfig();\n setEditor(\n ace.edit(elem, {\n ...config,\n theme: getAceTheme(getDefaultTheme(elem)),\n })\n );\n }, [ace, props.loading]);\n const [codeEditorWidth, codeEditorMeasureRef] = useContainerQuery(rect => rect.width);\n const mergedRef = useMergeRefs(codeEditorMeasureRef, __internalRootRef);\n useForwardFocus(ref, codeEditorRef);\n const isRefresh = useVisualRefresh();\n\n useEffect(() => {\n editor?.resize();\n }, [editor, editorContentHeight, codeEditorWidth]);\n\n const paneId = useUniqueId('code-editor-pane');\n\n useEffect(() => {\n if (!ace || !editor) {\n return;\n }\n\n setupEditor(ace, editor, setAnnotations, setCursorPosition, setHighlightedAnnotation, setPaneStatus);\n\n return () => {\n editor?.destroy();\n };\n }, [ace, editor, __internalRootRef]);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n if (value === editor.getValue()) {\n return;\n }\n // TODO maintain cursor position?\n const pos = editor.session.selection.toJSON();\n editor.setValue(value, -1);\n editor.session.selection.fromJSON(pos);\n }, [editor, value]);\n\n useEffect(() => {\n editor?.session.setMode(`ace/mode/${language}`);\n }, [editor, language]);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n const theme: CodeEditorProps.Theme = props.preferences?.theme ?? defaultTheme;\n editor.setTheme(getAceTheme(theme));\n\n editor.session.setUseWrapMode(props.preferences?.wrapLines ?? true);\n }, [editor, defaultTheme, props.preferences]);\n\n // Change listeners\n useChangeEffect(editor, props.onChange, props.onDelayedChange);\n\n // Hide error panel when there are no errors to show.\n useEffect(() => {\n if (annotations.length === 0) {\n setPaneStatus('hidden');\n }\n\n if (props.onValidate) {\n fireNonCancelableEvent(props.onValidate, { annotations });\n }\n }, [annotations, props.onValidate]);\n\n const languageLabel = customLanguageLabel ?? getLanguageLabel(language);\n\n const errorCount = annotations.filter(a => a.type === 'error').length;\n const warningCount = annotations.filter(a => a.type === 'warning').length;\n const currentAnnotations = useMemo(() => annotations.filter(a => a.type === paneStatus), [annotations, paneStatus]);\n\n /*\n * Callbacks\n */\n\n const onEditorKeydown = useCallback(\n (e: React.KeyboardEvent) => {\n if (editor && e.target === editor.container && e.keyCode === KeyCode.enter) {\n e.stopPropagation();\n e.preventDefault();\n editor.focus();\n }\n },\n [editor]\n );\n\n const onTabFocus = useCallback(() => setTabFocused(true), []);\n const onTabBlur = useCallback(() => setTabFocused(false), []);\n\n const onResize = useCallback(() => {\n editor?.resize();\n }, [editor]);\n\n const onErrorPaneToggle = useCallback(() => {\n setPaneStatus(paneStatus !== 'error' ? 'error' : 'hidden');\n }, [paneStatus]);\n\n const onWarningPaneToggle = useCallback(() => {\n setPaneStatus(paneStatus !== 'warning' ? 'warning' : 'hidden');\n }, [paneStatus]);\n\n const onPaneClose = useCallback(() => {\n if (paneStatus === 'error' && errorsTabRef.current) {\n errorsTabRef.current.focus();\n }\n if (paneStatus === 'warning' && warningsTabRef.current) {\n warningsTabRef.current.focus();\n }\n setPaneStatus('hidden');\n }, [paneStatus]);\n\n const onAnnotationClick = ({ row = 0, column = 0 }: Ace.Annotation) => {\n if (!editor) {\n return;\n }\n editor.focus();\n editor.gotoLine(row + 1, column, false);\n setHighlightedAnnotation(undefined);\n };\n\n const onAnnotationClear = useCallback(() => {\n setHighlightedAnnotation(undefined);\n }, []);\n\n const [isPreferencesModalVisible, setPreferencesModalVisible] = useState(false);\n const onPreferencesOpen = () => setPreferencesModalVisible(true);\n const onPreferencesConfirm = (p: CodeEditorProps.Preferences) => {\n fireNonCancelableEvent(props.onPreferencesChange, p);\n setPreferencesModalVisible(false);\n };\n const onPreferencesDismiss = () => setPreferencesModalVisible(false);\n\n const isPaneVisible = paneStatus !== 'hidden';\n\n return (\n <div\n {...baseProps}\n className={clsx(styles['code-editor'], baseProps.className, { [styles['code-editor-refresh']]: isRefresh })}\n ref={mergedRef}\n >\n {props.loading && (\n <LoadingScreen>\n <LiveRegion visible={true}>{i18nStrings.loadingState}</LiveRegion>\n </LoadingScreen>\n )}\n\n {!ace && !props.loading && (\n <ErrorScreen recoveryText={i18nStrings.errorStateRecovery} onRecoveryClick={props.onRecoveryClick}>\n {i18nStrings.errorState}\n </ErrorScreen>\n )}\n\n {ace && !props.loading && (\n <>\n <ResizableBox\n height={Math.max(editorHeight, 20)}\n minHeight={20}\n onResize={height => {\n setEditorHeight(height);\n onResize();\n fireNonCancelableEvent(onEditorContentResize, { height });\n }}\n >\n <div\n ref={codeEditorRef}\n className={clsx(styles.editor, styles.ace, isRefresh && styles['editor-refresh'])}\n onKeyDown={onEditorKeydown}\n tabIndex={0}\n role=\"group\"\n aria-label={i18nStrings.editorGroupAriaLabel}\n />\n </ResizableBox>\n <div role=\"group\" aria-label={i18nStrings.statusBarGroupAriaLabel}>\n <StatusBar\n languageLabel={languageLabel}\n cursorPosition={i18nStrings.cursorPosition(cursorPosition.row + 1, cursorPosition.column + 1)}\n errorCount={errorCount}\n warningCount={warningCount}\n paneStatus={paneStatus}\n onErrorPaneToggle={onErrorPaneToggle}\n onWarningPaneToggle={onWarningPaneToggle}\n onTabFocus={onTabFocus}\n onTabBlur={onTabBlur}\n errorsTabRef={errorsTabRef}\n warningsTabRef={warningsTabRef}\n i18nStrings={i18nStrings}\n isTabFocused={isTabFocused}\n paneId={isPaneVisible ? paneId : undefined}\n onPreferencesOpen={onPreferencesOpen}\n isRefresh={isRefresh}\n />\n <Pane\n id={paneId}\n visible={isPaneVisible}\n annotations={currentAnnotations}\n highlighted={highlightedAnnotation}\n onAnnotationClick={onAnnotationClick}\n onAnnotationClear={onAnnotationClear}\n onClose={onPaneClose}\n cursorPositionLabel={i18nStrings.cursorPosition}\n closeButtonAriaLabel={i18nStrings.paneCloseButtonAriaLabel}\n />\n </div>\n {isPreferencesModalVisible && (\n <PreferencesModal\n onConfirm={onPreferencesConfirm}\n onDismiss={onPreferencesDismiss}\n themes={props.themes}\n preferences={props.preferences}\n defaultTheme={defaultTheme}\n i18nStrings={{\n header: i18nStrings.preferencesModalHeader,\n cancel: i18nStrings.preferencesModalCancel,\n confirm: i18nStrings.preferencesModalConfirm,\n wrapLines: i18nStrings.preferencesModalWrapLines,\n theme: i18nStrings.preferencesModalTheme,\n lightThemes: i18nStrings.preferencesModalLightThemes,\n darkThemes: i18nStrings.preferencesModalDarkThemes,\n themeFilteringAriaLabel: i18nStrings.preferencesModalThemeFilteringAriaLabel,\n themeFilteringClearAriaLabel: i18nStrings.preferencesModalThemeFilteringClearAriaLabel,\n themeFilteringPlaceholder: i18nStrings.preferencesModalThemeFilteringPlaceholder,\n }}\n />\n )}\n </>\n )}\n </div>\n );\n});\n\napplyDisplayName(CodeEditor, 'CodeEditor');\nexport default CodeEditor;\n"]}
@@ -7,10 +7,9 @@ export interface PaneProps {
7
7
  highlighted?: Ace.Annotation;
8
8
  cursorPositionLabel: (row: number, column: number) => string;
9
9
  closeButtonAriaLabel: string;
10
- onAllowlist: (activeElement: HTMLElement) => boolean;
11
10
  onClose: () => void;
12
11
  onAnnotationClick: (annotation: Ace.Annotation) => void;
13
12
  onAnnotationClear: () => void;
14
13
  }
15
- export declare const Pane: ({ id, visible, annotations, highlighted, onAllowlist, onClose, onAnnotationClick, onAnnotationClear, cursorPositionLabel, closeButtonAriaLabel, }: PaneProps) => JSX.Element | null;
14
+ export declare const Pane: ({ id, visible, annotations, highlighted, onClose, onAnnotationClick, onAnnotationClear, cursorPositionLabel, closeButtonAriaLabel, }: PaneProps) => JSX.Element | null;
16
15
  //# sourceMappingURL=pane.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pane.d.ts","sourceRoot":"lib/default/","sources":["code-editor/pane.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAcjC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IAEX,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC;IAE7B,mBAAmB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7D,oBAAoB,EAAE,MAAM,CAAC;IAE7B,WAAW,EAAE,CAAC,aAAa,EAAE,WAAW,KAAK,OAAO,CAAC;IACrD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,iBAAiB,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC;IACxD,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,eAAO,MAAM,IAAI,sJAWd,SAAS,uBAuGX,CAAC"}
1
+ {"version":3,"file":"pane.d.ts","sourceRoot":"lib/default/","sources":["code-editor/pane.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAejC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IAEX,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC;IAE7B,mBAAmB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7D,oBAAoB,EAAE,MAAM,CAAC;IAE7B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,iBAAiB,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC;IACxD,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,eAAO,MAAM,IAAI,yIAUd,SAAS,uBAwGX,CAAC"}
@@ -2,16 +2,16 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import React, { useEffect, useRef, useState } from 'react';
4
4
  import clsx from 'clsx';
5
- import FocusLock from 'react-focus-lock';
6
5
  import { KeyCode } from '../internal/keycode';
7
6
  import { scrollElementIntoView } from '../internal/utils/scrollable-containers';
7
+ import FocusLock from '../internal/components/focus-lock';
8
8
  import { InternalButton } from '../button/internal';
9
9
  import { ResizableBox } from './resizable-box';
10
10
  import styles from './styles.css.js';
11
11
  const ANNOTATION_ITEM_HEIGHT = 31;
12
12
  const PANE_ANNOTATIONS_PADDING = 12;
13
13
  const MIN_HEIGHT = 3 * ANNOTATION_ITEM_HEIGHT + 2 * PANE_ANNOTATIONS_PADDING;
14
- export const Pane = ({ id, visible, annotations, highlighted, onAllowlist, onClose, onAnnotationClick, onAnnotationClear, cursorPositionLabel, closeButtonAriaLabel, }) => {
14
+ export const Pane = ({ id, visible, annotations, highlighted, onClose, onAnnotationClick, onAnnotationClear, cursorPositionLabel, closeButtonAriaLabel, }) => {
15
15
  const [paneHeight, setPaneHeight] = useState(MIN_HEIGHT);
16
16
  const listRef = useRef(null);
17
17
  const [isFocusTrapActive, setFocusTrapActive] = useState(false);
@@ -27,6 +27,11 @@ export const Pane = ({ id, visible, annotations, highlighted, onAllowlist, onClo
27
27
  scrollElementIntoView(errorItem);
28
28
  }
29
29
  }, [highlighted, annotations]);
30
+ useEffect(() => {
31
+ if (!visible) {
32
+ setFocusTrapActive(false);
33
+ }
34
+ }, [visible]);
30
35
  const onItemFocus = () => {
31
36
  setFocusTrapActive(true);
32
37
  onAnnotationClear();
@@ -54,7 +59,7 @@ export const Pane = ({ id, visible, annotations, highlighted, onAllowlist, onClo
54
59
  }
55
60
  return (React.createElement("div", { id: id, className: styles.pane, onKeyDown: onEscKeyDown, role: "tabpanel" },
56
61
  React.createElement(ResizableBox, { height: paneHeight, minHeight: MIN_HEIGHT, onResize: newHeight => setPaneHeight(newHeight) },
57
- React.createElement(FocusLock, { disabled: !isFocusTrapActive, className: styles['focus-lock'], autoFocus: false, returnFocus: false, whiteList: onAllowlist },
62
+ React.createElement(FocusLock, { disabled: !isFocusTrapActive, className: styles['focus-lock'], autoFocus: true },
58
63
  React.createElement("div", { className: styles.pane__list, tabIndex: -1 },
59
64
  React.createElement("table", { className: styles.pane__table, role: "presentation" },
60
65
  React.createElement("colgroup", null,
@@ -1 +1 @@
1
- {"version":3,"file":"pane.js","sourceRoot":"lib/default/","sources":["code-editor/pane.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';\nimport FocusLock from 'react-focus-lock';\nimport { Ace } from 'ace-builds';\n\nimport { KeyCode } from '../internal/keycode';\nimport { scrollElementIntoView } from '../internal/utils/scrollable-containers';\n\nimport { InternalButton } from '../button/internal';\nimport { ResizableBox } from './resizable-box';\n\nimport styles from './styles.css.js';\n\nconst ANNOTATION_ITEM_HEIGHT = 31;\nconst PANE_ANNOTATIONS_PADDING = 12;\nconst MIN_HEIGHT = 3 * ANNOTATION_ITEM_HEIGHT + 2 * PANE_ANNOTATIONS_PADDING;\n\nexport interface PaneProps {\n id: string;\n\n visible: boolean;\n annotations: Ace.Annotation[];\n highlighted?: Ace.Annotation;\n\n cursorPositionLabel: (row: number, column: number) => string;\n closeButtonAriaLabel: string;\n\n onAllowlist: (activeElement: HTMLElement) => boolean;\n onClose: () => void;\n onAnnotationClick: (annotation: Ace.Annotation) => void;\n onAnnotationClear: () => void;\n}\n\nexport const Pane = ({\n id,\n visible,\n annotations,\n highlighted,\n onAllowlist,\n onClose,\n onAnnotationClick,\n onAnnotationClear,\n cursorPositionLabel,\n closeButtonAriaLabel,\n}: PaneProps) => {\n const [paneHeight, setPaneHeight] = useState(MIN_HEIGHT);\n const listRef = useRef<HTMLTableSectionElement>(null);\n const [isFocusTrapActive, setFocusTrapActive] = useState(false);\n\n useEffect(() => {\n if (!highlighted) {\n return;\n }\n const { row, column } = highlighted;\n const highlightedAnnotationIndex = annotations.indexOf(\n annotations.filter(a => a.row === row && a.column === column)[0]\n );\n\n if (highlightedAnnotationIndex > -1) {\n const errorItem = listRef.current?.children[highlightedAnnotationIndex] as HTMLElement | undefined;\n scrollElementIntoView(errorItem);\n }\n }, [highlighted, annotations]);\n\n const onItemFocus = () => {\n setFocusTrapActive(true);\n onAnnotationClear();\n };\n\n const onItemClick = (annotation: Ace.Annotation) => {\n setFocusTrapActive(false);\n onAnnotationClick(annotation);\n };\n const onItemKeyDown = (annotation: Ace.Annotation, event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.enter || event.keyCode === KeyCode.space) {\n event.preventDefault();\n setFocusTrapActive(false);\n onAnnotationClick(annotation);\n }\n };\n\n const onEscKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.escape) {\n event.preventDefault();\n setFocusTrapActive(false);\n onClose();\n }\n };\n\n if (!visible) {\n return null;\n }\n\n return (\n <div id={id} className={styles.pane} onKeyDown={onEscKeyDown} role=\"tabpanel\">\n <ResizableBox height={paneHeight} minHeight={MIN_HEIGHT} onResize={newHeight => setPaneHeight(newHeight)}>\n <FocusLock\n disabled={!isFocusTrapActive}\n className={styles['focus-lock']}\n autoFocus={false}\n returnFocus={false}\n whiteList={onAllowlist}\n >\n <div className={styles.pane__list} tabIndex={-1}>\n <table className={styles.pane__table} role=\"presentation\">\n <colgroup>\n <col style={{ width: 1 } /* shrink to fit content */} />\n <col style={{ width: 'auto' }} />\n </colgroup>\n <tbody ref={listRef}>\n {annotations.map((annotation, i) => (\n <tr\n key={i}\n className={clsx(styles.pane__item, {\n [styles['pane__item--highlighted']]: annotation === highlighted,\n })}\n onFocus={onItemFocus}\n onMouseOver={onAnnotationClear}\n onClick={onItemClick.bind(null, annotation)}\n onKeyDown={onItemKeyDown.bind(null, annotation)}\n tabIndex={0}\n role=\"link\"\n >\n <td className={clsx(styles.pane__location, styles.pane__cell)} tabIndex={-1}>\n {cursorPositionLabel((annotation.row || 0) + 1, (annotation.column || 0) + 1)}\n </td>\n <td className={clsx(styles.pane__description, styles.pane__cell)} tabIndex={-1}>\n {annotation.text}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n <div className={styles['pane__close-container']}>\n <InternalButton\n formAction=\"none\"\n variant=\"icon\"\n iconName=\"close\"\n onClick={onClose}\n ariaLabel={closeButtonAriaLabel}\n />\n </div>\n </FocusLock>\n </ResizableBox>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"pane.js","sourceRoot":"lib/default/","sources":["code-editor/pane.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';\nimport { Ace } from 'ace-builds';\n\nimport { KeyCode } from '../internal/keycode';\nimport { scrollElementIntoView } from '../internal/utils/scrollable-containers';\nimport FocusLock from '../internal/components/focus-lock';\n\nimport { InternalButton } from '../button/internal';\nimport { ResizableBox } from './resizable-box';\n\nimport styles from './styles.css.js';\n\nconst ANNOTATION_ITEM_HEIGHT = 31;\nconst PANE_ANNOTATIONS_PADDING = 12;\nconst MIN_HEIGHT = 3 * ANNOTATION_ITEM_HEIGHT + 2 * PANE_ANNOTATIONS_PADDING;\n\nexport interface PaneProps {\n id: string;\n\n visible: boolean;\n annotations: Ace.Annotation[];\n highlighted?: Ace.Annotation;\n\n cursorPositionLabel: (row: number, column: number) => string;\n closeButtonAriaLabel: string;\n\n onClose: () => void;\n onAnnotationClick: (annotation: Ace.Annotation) => void;\n onAnnotationClear: () => void;\n}\n\nexport const Pane = ({\n id,\n visible,\n annotations,\n highlighted,\n onClose,\n onAnnotationClick,\n onAnnotationClear,\n cursorPositionLabel,\n closeButtonAriaLabel,\n}: PaneProps) => {\n const [paneHeight, setPaneHeight] = useState(MIN_HEIGHT);\n const listRef = useRef<HTMLTableSectionElement>(null);\n const [isFocusTrapActive, setFocusTrapActive] = useState(false);\n\n useEffect(() => {\n if (!highlighted) {\n return;\n }\n const { row, column } = highlighted;\n const highlightedAnnotationIndex = annotations.indexOf(\n annotations.filter(a => a.row === row && a.column === column)[0]\n );\n\n if (highlightedAnnotationIndex > -1) {\n const errorItem = listRef.current?.children[highlightedAnnotationIndex] as HTMLElement | undefined;\n scrollElementIntoView(errorItem);\n }\n }, [highlighted, annotations]);\n\n useEffect(() => {\n if (!visible) {\n setFocusTrapActive(false);\n }\n }, [visible]);\n\n const onItemFocus = () => {\n setFocusTrapActive(true);\n onAnnotationClear();\n };\n\n const onItemClick = (annotation: Ace.Annotation) => {\n setFocusTrapActive(false);\n onAnnotationClick(annotation);\n };\n\n const onItemKeyDown = (annotation: Ace.Annotation, event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.enter || event.keyCode === KeyCode.space) {\n event.preventDefault();\n setFocusTrapActive(false);\n onAnnotationClick(annotation);\n }\n };\n\n const onEscKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.escape) {\n event.preventDefault();\n setFocusTrapActive(false);\n onClose();\n }\n };\n\n if (!visible) {\n return null;\n }\n\n return (\n <div id={id} className={styles.pane} onKeyDown={onEscKeyDown} role=\"tabpanel\">\n <ResizableBox height={paneHeight} minHeight={MIN_HEIGHT} onResize={newHeight => setPaneHeight(newHeight)}>\n <FocusLock disabled={!isFocusTrapActive} className={styles['focus-lock']} autoFocus={true}>\n <div className={styles.pane__list} tabIndex={-1}>\n <table className={styles.pane__table} role=\"presentation\">\n <colgroup>\n <col style={{ width: 1 } /* shrink to fit content */} />\n <col style={{ width: 'auto' }} />\n </colgroup>\n <tbody ref={listRef}>\n {annotations.map((annotation, i) => (\n <tr\n key={i}\n className={clsx(styles.pane__item, {\n [styles['pane__item--highlighted']]: annotation === highlighted,\n })}\n onFocus={onItemFocus}\n onMouseOver={onAnnotationClear}\n onClick={onItemClick.bind(null, annotation)}\n onKeyDown={onItemKeyDown.bind(null, annotation)}\n tabIndex={0}\n role=\"link\"\n >\n <td className={clsx(styles.pane__location, styles.pane__cell)} tabIndex={-1}>\n {cursorPositionLabel((annotation.row || 0) + 1, (annotation.column || 0) + 1)}\n </td>\n <td className={clsx(styles.pane__description, styles.pane__cell)} tabIndex={-1}>\n {annotation.text}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n <div className={styles['pane__close-container']}>\n <InternalButton\n formAction=\"none\"\n variant=\"icon\"\n iconName=\"close\"\n onClick={onClose}\n ariaLabel={closeButtonAriaLabel}\n />\n </div>\n </FocusLock>\n </ResizableBox>\n </div>\n );\n};\n"]}
@@ -4,14 +4,14 @@ interface StatusBarProps {
4
4
  languageLabel: string;
5
5
  cursorPosition: string;
6
6
  paneStatus: string;
7
- errorsTabRef: React.RefObject<HTMLButtonElement>;
8
- warningsTabRef: React.RefObject<HTMLButtonElement>;
9
7
  isTabFocused: boolean;
10
8
  paneId?: string;
11
9
  i18nStrings: CodeEditorProps.I18nStrings;
12
10
  errorCount: number;
13
11
  warningCount: number;
14
12
  isRefresh: boolean;
13
+ errorsTabRef?: React.RefObject<HTMLButtonElement>;
14
+ warningsTabRef?: React.RefObject<HTMLButtonElement>;
15
15
  onErrorPaneToggle: () => void;
16
16
  onWarningPaneToggle: () => void;
17
17
  onTabFocus?: React.FocusEventHandler<HTMLButtonElement>;
@@ -19,6 +19,6 @@ interface StatusBarProps {
19
19
  onPreferencesOpen: () => void;
20
20
  onHeightChange?: (height: number | null) => void;
21
21
  }
22
- export declare const StatusBar: (props: StatusBarProps) => JSX.Element;
22
+ export declare const StatusBar: ({ errorsTabRef, warningsTabRef, ...restProps }: StatusBarProps) => JSX.Element;
23
23
  export {};
24
24
  //# sourceMappingURL=status-bar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"status-bar.d.ts","sourceRoot":"lib/default/","sources":["code-editor/status-bar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,UAAU,cAAc;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACjD,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACnD,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IAEnB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACxD,SAAS,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACvD,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAClD;AA+GD,eAAO,MAAM,SAAS,UAAW,cAAc,gBAc9C,CAAC"}
1
+ {"version":3,"file":"status-bar.d.ts","sourceRoot":"lib/default/","sources":["code-editor/status-bar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,UAAU,cAAc;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IAEnB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAClD,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAEpD,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACxD,SAAS,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACvD,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAClD;AA+GD,eAAO,MAAM,SAAS,mDAAoD,cAAc,gBAqBvF,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { __rest } from "tslib";
1
2
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
3
  // SPDX-License-Identifier: Apache-2.0
3
4
  import React from 'react';
@@ -36,14 +37,15 @@ function InternalStatusBar({ languageLabel, cursorPosition, paneStatus, onErrorP
36
37
  'aria-hidden': paneStatus !== 'hidden' && isTabFocused ? true : undefined,
37
38
  } })))));
38
39
  }
39
- export const StatusBar = (props) => {
40
+ export const StatusBar = (_a) => {
41
+ var { errorsTabRef, warningsTabRef } = _a, restProps = __rest(_a, ["errorsTabRef", "warningsTabRef"]);
40
42
  // create a virtual status bar, in order to calculate the width with full tab button text
41
43
  // and decide if tab button text needs to be reduced
42
44
  const [realWidth, statusLeftBarRef] = useContainerQuery(rect => rect.width);
43
45
  const [virtualWidth, virtualStatusLeftBarRef] = useContainerQuery(rect => rect.width);
44
46
  const minifyCounters = virtualWidth !== null && realWidth !== null && virtualWidth > realWidth;
45
47
  return (React.createElement(React.Fragment, null,
46
- React.createElement(InternalStatusBar, Object.assign({ isVirtual: false }, props, { leftBarRef: statusLeftBarRef, minifyCounters: minifyCounters })),
47
- React.createElement(InternalStatusBar, Object.assign({ isVirtual: true }, props, { leftBarRef: virtualStatusLeftBarRef, minifyCounters: false }))));
48
+ React.createElement(InternalStatusBar, Object.assign({}, restProps, { isVirtual: false, leftBarRef: statusLeftBarRef, errorsTabRef: errorsTabRef, warningsTabRef: warningsTabRef, minifyCounters: minifyCounters })),
49
+ React.createElement(InternalStatusBar, Object.assign({}, restProps, { isVirtual: true, leftBarRef: virtualStatusLeftBarRef, minifyCounters: false }))));
48
50
  };
49
51
  //# sourceMappingURL=status-bar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status-bar.js","sourceRoot":"lib/default/","sources":["code-editor/status-bar.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 from 'react';\nimport clsx from 'clsx';\nimport styles from './styles.css.js';\nimport LiveRegion from '../internal/components/live-region/index';\nimport { TabButton } from './tab-button';\nimport { InternalButton } from '../button/internal';\nimport { useContainerQuery } from '../internal/hooks/container-queries/use-container-query';\nimport { CodeEditorProps } from './interfaces';\n\ninterface StatusBarProps {\n languageLabel: string;\n cursorPosition: string;\n paneStatus: string;\n errorsTabRef: React.RefObject<HTMLButtonElement>;\n warningsTabRef: React.RefObject<HTMLButtonElement>;\n isTabFocused: boolean;\n paneId?: string;\n i18nStrings: CodeEditorProps.I18nStrings;\n errorCount: number;\n warningCount: number;\n isRefresh: boolean;\n\n onErrorPaneToggle: () => void;\n onWarningPaneToggle: () => void;\n onTabFocus?: React.FocusEventHandler<HTMLButtonElement>;\n onTabBlur?: React.FocusEventHandler<HTMLButtonElement>;\n onPreferencesOpen: () => void;\n onHeightChange?: (height: number | null) => void;\n}\n\ntype InternalStatusBarProps = StatusBarProps & {\n leftBarRef: React.Ref<HTMLDivElement>;\n isVirtual: boolean;\n minifyCounters: boolean;\n};\n\nfunction InternalStatusBar({\n languageLabel,\n cursorPosition,\n paneStatus,\n onErrorPaneToggle,\n onWarningPaneToggle,\n onTabFocus,\n onTabBlur,\n errorsTabRef,\n warningsTabRef,\n isTabFocused,\n paneId,\n onPreferencesOpen,\n i18nStrings,\n errorCount,\n warningCount,\n leftBarRef,\n isVirtual,\n minifyCounters,\n isRefresh,\n}: InternalStatusBarProps) {\n const errorText = `${i18nStrings.errorsTab}: ${errorCount}`;\n const warningText = `${i18nStrings.warningsTab}: ${warningCount}`;\n\n // Virtual status bar is inaccessible for screen readers and keyboard interactions.\n\n return (\n <div\n className={clsx(styles['status-bar'], {\n [styles['status-bar-with-hidden-pane']]: paneStatus === 'hidden',\n [styles['status-bar-virtual']]: isVirtual,\n })}\n aria-hidden={isVirtual}\n >\n <div\n className={clsx(styles['status-bar__left'], {\n [styles['status-bar__left-virtual']]: isVirtual,\n })}\n ref={leftBarRef}\n >\n <span className={styles['status-bar__language-mode']}>{languageLabel}</span>\n <span className={styles['status-bar__cursor-position']}>{cursorPosition}</span>\n\n <div role=\"tablist\">\n <TabButton\n text={minifyCounters ? ` ${errorCount}` : errorText}\n className={styles['tab-button--errors']}\n iconName=\"status-negative\"\n disabled={errorCount === 0 || isVirtual}\n active={paneStatus === 'error'}\n onClick={onErrorPaneToggle}\n onFocus={onTabFocus}\n onBlur={onTabBlur}\n ref={errorsTabRef}\n ariaLabel={errorText}\n paneId={paneId}\n isRefresh={isRefresh}\n />\n <span className={styles['tab-button--divider']}></span>\n <TabButton\n text={minifyCounters ? ` ${warningCount}` : warningText}\n className={styles['tab-button--warnings']}\n iconName=\"status-warning\"\n disabled={warningCount === 0 || isVirtual}\n active={paneStatus === 'warning'}\n onClick={onWarningPaneToggle}\n onFocus={onTabFocus}\n onBlur={onTabBlur}\n ref={warningsTabRef}\n tabIndex={paneStatus === 'error' && isTabFocused ? -1 : undefined}\n ariaHidden={paneStatus === 'error' && isTabFocused ? true : undefined}\n ariaLabel={warningText}\n paneId={paneId}\n isRefresh={isRefresh}\n />\n </div>\n <LiveRegion assertive={true}>\n <span>{errorText} </span>\n <span>{warningText}</span>\n </LiveRegion>\n </div>\n\n <div className={styles['status-bar__right']}>\n <div className={styles['status-bar__cog-button']}>\n <InternalButton\n disabled={isVirtual}\n formAction=\"none\"\n variant=\"icon\"\n iconName=\"settings\"\n iconAlt=\"Settings\"\n ariaLabel={i18nStrings.preferencesButtonAriaLabel}\n onClick={onPreferencesOpen}\n __nativeAttributes={{\n tabIndex: paneStatus !== 'hidden' && isTabFocused ? -1 : undefined,\n 'aria-hidden': paneStatus !== 'hidden' && isTabFocused ? true : undefined,\n }}\n />\n </div>\n </div>\n </div>\n );\n}\n\nexport const StatusBar = (props: StatusBarProps) => {\n // create a virtual status bar, in order to calculate the width with full tab button text\n // and decide if tab button text needs to be reduced\n const [realWidth, statusLeftBarRef] = useContainerQuery(rect => rect.width);\n const [virtualWidth, virtualStatusLeftBarRef] = useContainerQuery(rect => rect.width);\n\n const minifyCounters = virtualWidth !== null && realWidth !== null && virtualWidth > realWidth;\n\n return (\n <>\n <InternalStatusBar isVirtual={false} {...props} leftBarRef={statusLeftBarRef} minifyCounters={minifyCounters} />\n <InternalStatusBar isVirtual={true} {...props} leftBarRef={virtualStatusLeftBarRef} minifyCounters={false} />\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"status-bar.js","sourceRoot":"lib/default/","sources":["code-editor/status-bar.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 from 'react';\nimport clsx from 'clsx';\nimport styles from './styles.css.js';\nimport LiveRegion from '../internal/components/live-region/index';\nimport { TabButton } from './tab-button';\nimport { InternalButton } from '../button/internal';\nimport { useContainerQuery } from '../internal/hooks/container-queries/use-container-query';\nimport { CodeEditorProps } from './interfaces';\n\ninterface StatusBarProps {\n languageLabel: string;\n cursorPosition: string;\n paneStatus: string;\n isTabFocused: boolean;\n paneId?: string;\n i18nStrings: CodeEditorProps.I18nStrings;\n errorCount: number;\n warningCount: number;\n isRefresh: boolean;\n\n errorsTabRef?: React.RefObject<HTMLButtonElement>;\n warningsTabRef?: React.RefObject<HTMLButtonElement>;\n\n onErrorPaneToggle: () => void;\n onWarningPaneToggle: () => void;\n onTabFocus?: React.FocusEventHandler<HTMLButtonElement>;\n onTabBlur?: React.FocusEventHandler<HTMLButtonElement>;\n onPreferencesOpen: () => void;\n onHeightChange?: (height: number | null) => void;\n}\n\ntype InternalStatusBarProps = StatusBarProps & {\n leftBarRef: React.Ref<HTMLDivElement>;\n isVirtual: boolean;\n minifyCounters: boolean;\n};\n\nfunction InternalStatusBar({\n languageLabel,\n cursorPosition,\n paneStatus,\n onErrorPaneToggle,\n onWarningPaneToggle,\n onTabFocus,\n onTabBlur,\n errorsTabRef,\n warningsTabRef,\n isTabFocused,\n paneId,\n onPreferencesOpen,\n i18nStrings,\n errorCount,\n warningCount,\n leftBarRef,\n isVirtual,\n minifyCounters,\n isRefresh,\n}: InternalStatusBarProps) {\n const errorText = `${i18nStrings.errorsTab}: ${errorCount}`;\n const warningText = `${i18nStrings.warningsTab}: ${warningCount}`;\n\n // Virtual status bar is inaccessible for screen readers and keyboard interactions.\n\n return (\n <div\n className={clsx(styles['status-bar'], {\n [styles['status-bar-with-hidden-pane']]: paneStatus === 'hidden',\n [styles['status-bar-virtual']]: isVirtual,\n })}\n aria-hidden={isVirtual}\n >\n <div\n className={clsx(styles['status-bar__left'], {\n [styles['status-bar__left-virtual']]: isVirtual,\n })}\n ref={leftBarRef}\n >\n <span className={styles['status-bar__language-mode']}>{languageLabel}</span>\n <span className={styles['status-bar__cursor-position']}>{cursorPosition}</span>\n\n <div role=\"tablist\">\n <TabButton\n text={minifyCounters ? ` ${errorCount}` : errorText}\n className={styles['tab-button--errors']}\n iconName=\"status-negative\"\n disabled={errorCount === 0 || isVirtual}\n active={paneStatus === 'error'}\n onClick={onErrorPaneToggle}\n onFocus={onTabFocus}\n onBlur={onTabBlur}\n ref={errorsTabRef}\n ariaLabel={errorText}\n paneId={paneId}\n isRefresh={isRefresh}\n />\n <span className={styles['tab-button--divider']}></span>\n <TabButton\n text={minifyCounters ? ` ${warningCount}` : warningText}\n className={styles['tab-button--warnings']}\n iconName=\"status-warning\"\n disabled={warningCount === 0 || isVirtual}\n active={paneStatus === 'warning'}\n onClick={onWarningPaneToggle}\n onFocus={onTabFocus}\n onBlur={onTabBlur}\n ref={warningsTabRef}\n tabIndex={paneStatus === 'error' && isTabFocused ? -1 : undefined}\n ariaHidden={paneStatus === 'error' && isTabFocused ? true : undefined}\n ariaLabel={warningText}\n paneId={paneId}\n isRefresh={isRefresh}\n />\n </div>\n <LiveRegion assertive={true}>\n <span>{errorText} </span>\n <span>{warningText}</span>\n </LiveRegion>\n </div>\n\n <div className={styles['status-bar__right']}>\n <div className={styles['status-bar__cog-button']}>\n <InternalButton\n disabled={isVirtual}\n formAction=\"none\"\n variant=\"icon\"\n iconName=\"settings\"\n iconAlt=\"Settings\"\n ariaLabel={i18nStrings.preferencesButtonAriaLabel}\n onClick={onPreferencesOpen}\n __nativeAttributes={{\n tabIndex: paneStatus !== 'hidden' && isTabFocused ? -1 : undefined,\n 'aria-hidden': paneStatus !== 'hidden' && isTabFocused ? true : undefined,\n }}\n />\n </div>\n </div>\n </div>\n );\n}\n\nexport const StatusBar = ({ errorsTabRef, warningsTabRef, ...restProps }: StatusBarProps) => {\n // create a virtual status bar, in order to calculate the width with full tab button text\n // and decide if tab button text needs to be reduced\n const [realWidth, statusLeftBarRef] = useContainerQuery(rect => rect.width);\n const [virtualWidth, virtualStatusLeftBarRef] = useContainerQuery(rect => rect.width);\n\n const minifyCounters = virtualWidth !== null && realWidth !== null && virtualWidth > realWidth;\n\n return (\n <>\n <InternalStatusBar\n {...restProps}\n isVirtual={false}\n leftBarRef={statusLeftBarRef}\n errorsTabRef={errorsTabRef}\n warningsTabRef={warningsTabRef}\n minifyCounters={minifyCounters}\n />\n <InternalStatusBar {...restProps} isVirtual={true} leftBarRef={virtualStatusLeftBarRef} minifyCounters={false} />\n </>\n );\n};\n"]}
@@ -249,7 +249,7 @@
249
249
  --color-border-input-disabled-ek5o0x:#eaeded;
250
250
  --color-border-item-focused-n5kd8g:#0073bb;
251
251
  --color-border-item-placeholder-wtgwev:transparent;
252
- --color-border-item-selected-pr9yuf:#00a1c9;
252
+ --color-border-item-selected-592lau:#0073bb;
253
253
  --color-border-layout-ifju5o:#d5dbdb;
254
254
  --color-border-popover-jq2u63:#d5dbdb;
255
255
  --color-border-segment-active-9wobfw:#16191f;
@@ -823,6 +823,7 @@
823
823
  --color-border-dropdown-item-top-3kvhpl:#414750;
824
824
  --color-border-input-disabled-ek5o0x:#414750;
825
825
  --color-border-item-focused-n5kd8g:#00a1c9;
826
+ --color-border-item-selected-592lau:#00a1c9;
826
827
  --color-border-layout-ifju5o:#414750;
827
828
  --color-border-popover-jq2u63:#545b64;
828
829
  --color-border-segment-active-9wobfw:#ffffff;
@@ -1093,6 +1094,7 @@
1093
1094
  --color-border-dropdown-item-top-3kvhpl:#414750;
1094
1095
  --color-border-input-disabled-ek5o0x:#414750;
1095
1096
  --color-border-item-focused-n5kd8g:#00a1c9;
1097
+ --color-border-item-selected-592lau:#00a1c9;
1096
1098
  --color-border-layout-ifju5o:#414750;
1097
1099
  --color-border-popover-jq2u63:#545b64;
1098
1100
  --color-border-segment-active-9wobfw:#ffffff;
@@ -1289,7 +1291,7 @@
1289
1291
  --color-border-input-disabled-ek5o0x:#e9ebed;
1290
1292
  --color-border-item-focused-n5kd8g:#0972d3;
1291
1293
  --color-border-item-placeholder-wtgwev:#0972d3;
1292
- --color-border-item-selected-pr9yuf:#0972d3;
1294
+ --color-border-item-selected-592lau:#0972d3;
1293
1295
  --color-border-layout-ifju5o:#d1d5db;
1294
1296
  --color-border-popover-jq2u63:#9ba7b6;
1295
1297
  --color-border-segment-active-9wobfw:#414d5c;
@@ -1622,7 +1624,7 @@
1622
1624
  --color-border-input-disabled-ek5o0x:#192534;
1623
1625
  --color-border-item-focused-n5kd8g:#539fe5;
1624
1626
  --color-border-item-placeholder-wtgwev:#539fe5;
1625
- --color-border-item-selected-pr9yuf:#539fe5;
1627
+ --color-border-item-selected-592lau:#539fe5;
1626
1628
  --color-border-layout-ifju5o:#354150;
1627
1629
  --color-border-popover-jq2u63:#5f6b7a;
1628
1630
  --color-border-segment-active-9wobfw:#d1d5db;
@@ -1879,7 +1881,7 @@
1879
1881
  --color-border-input-disabled-ek5o0x:#192534;
1880
1882
  --color-border-item-focused-n5kd8g:#539fe5;
1881
1883
  --color-border-item-placeholder-wtgwev:#539fe5;
1882
- --color-border-item-selected-pr9yuf:#539fe5;
1884
+ --color-border-item-selected-592lau:#539fe5;
1883
1885
  --color-border-layout-ifju5o:#354150;
1884
1886
  --color-border-popover-jq2u63:#5f6b7a;
1885
1887
  --color-border-segment-active-9wobfw:#d1d5db;
@@ -2062,7 +2064,7 @@
2062
2064
  --color-border-input-disabled-ek5o0x:#192534;
2063
2065
  --color-border-item-focused-n5kd8g:#539fe5;
2064
2066
  --color-border-item-placeholder-wtgwev:#539fe5;
2065
- --color-border-item-selected-pr9yuf:#539fe5;
2067
+ --color-border-item-selected-592lau:#539fe5;
2066
2068
  --color-border-layout-ifju5o:#354150;
2067
2069
  --color-border-popover-jq2u63:#5f6b7a;
2068
2070
  --color-border-segment-active-9wobfw:#d1d5db;
@@ -2247,7 +2249,7 @@
2247
2249
  --color-border-input-disabled-ek5o0x:#192534;
2248
2250
  --color-border-item-focused-n5kd8g:#539fe5;
2249
2251
  --color-border-item-placeholder-wtgwev:#539fe5;
2250
- --color-border-item-selected-pr9yuf:#539fe5;
2252
+ --color-border-item-selected-592lau:#539fe5;
2251
2253
  --color-border-layout-ifju5o:#354150;
2252
2254
  --color-border-popover-jq2u63:#5f6b7a;
2253
2255
  --color-border-segment-active-9wobfw:#d1d5db;
@@ -2442,7 +2444,7 @@
2442
2444
  --color-border-input-disabled-ek5o0x:#192534;
2443
2445
  --color-border-item-focused-n5kd8g:#539fe5;
2444
2446
  --color-border-item-placeholder-wtgwev:#539fe5;
2445
- --color-border-item-selected-pr9yuf:#539fe5;
2447
+ --color-border-item-selected-592lau:#539fe5;
2446
2448
  --color-border-layout-ifju5o:#354150;
2447
2449
  --color-border-popover-jq2u63:#5f6b7a;
2448
2450
  --color-border-segment-active-9wobfw:#d1d5db;
@@ -1,14 +1,14 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "button-trigger": "awsui_button-trigger_18eso_1gx6f_97",
5
- "arrow": "awsui_arrow_18eso_1gx6f_97",
6
- "has-caret": "awsui_has-caret_18eso_1gx6f_137",
7
- "placeholder": "awsui_placeholder_18eso_1gx6f_140",
8
- "pressed": "awsui_pressed_18eso_1gx6f_153",
9
- "disabled": "awsui_disabled_18eso_1gx6f_156",
10
- "in-filtering-token": "awsui_in-filtering-token_18eso_1gx6f_165",
11
- "read-only": "awsui_read-only_18eso_1gx6f_171",
12
- "invalid": "awsui_invalid_18eso_1gx6f_188"
4
+ "button-trigger": "awsui_button-trigger_18eso_170ad_97",
5
+ "arrow": "awsui_arrow_18eso_170ad_97",
6
+ "has-caret": "awsui_has-caret_18eso_170ad_137",
7
+ "placeholder": "awsui_placeholder_18eso_170ad_140",
8
+ "pressed": "awsui_pressed_18eso_170ad_153",
9
+ "disabled": "awsui_disabled_18eso_170ad_156",
10
+ "in-filtering-token": "awsui_in-filtering-token_18eso_170ad_165",
11
+ "read-only": "awsui_read-only_18eso_170ad_171",
12
+ "invalid": "awsui_invalid_18eso_170ad_188"
13
13
  };
14
14
 
@@ -94,16 +94,16 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
94
94
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
95
95
  SPDX-License-Identifier: Apache-2.0
96
96
  */
97
- .awsui_button-trigger_18eso_1gx6f_97 > .awsui_arrow_18eso_1gx6f_97:not(#\9) {
97
+ .awsui_button-trigger_18eso_170ad_97 > .awsui_arrow_18eso_170ad_97:not(#\9) {
98
98
  transition: transform var(--motion-duration-rotate-180-ofa1ir, 135ms) var(--motion-easing-rotate-180-3rbbga, cubic-bezier(0.165, 0.84, 0.44, 1));
99
99
  }
100
100
  @media (prefers-reduced-motion: reduce) {
101
- .awsui_button-trigger_18eso_1gx6f_97 > .awsui_arrow_18eso_1gx6f_97:not(#\9) {
101
+ .awsui_button-trigger_18eso_170ad_97 > .awsui_arrow_18eso_170ad_97:not(#\9) {
102
102
  animation: none;
103
103
  transition: none;
104
104
  }
105
105
  }
106
- .awsui-motion-disabled .awsui_button-trigger_18eso_1gx6f_97 > .awsui_arrow_18eso_1gx6f_97:not(#\9), .awsui-mode-entering .awsui_button-trigger_18eso_1gx6f_97 > .awsui_arrow_18eso_1gx6f_97:not(#\9) {
106
+ .awsui-motion-disabled .awsui_button-trigger_18eso_170ad_97 > .awsui_arrow_18eso_170ad_97:not(#\9), .awsui-mode-entering .awsui_button-trigger_18eso_170ad_97 > .awsui_arrow_18eso_170ad_97:not(#\9) {
107
107
  animation: none;
108
108
  transition: none;
109
109
  }
@@ -112,7 +112,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
112
112
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
113
113
  SPDX-License-Identifier: Apache-2.0
114
114
  */
115
- .awsui_button-trigger_18eso_1gx6f_97:not(#\9) {
115
+ .awsui_button-trigger_18eso_170ad_97:not(#\9) {
116
116
  /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
117
117
  border-collapse: separate;
118
118
  border-spacing: 0;
@@ -160,58 +160,58 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
160
160
  border: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-input-default-t7b5of, #879596);
161
161
  min-height: var(--size-vertical-input-ikahdk, 32px);
162
162
  }
163
- .awsui_button-trigger_18eso_1gx6f_97.awsui_has-caret_18eso_1gx6f_137:not(#\9) {
163
+ .awsui_button-trigger_18eso_170ad_97.awsui_has-caret_18eso_170ad_137:not(#\9) {
164
164
  padding-right: var(--space-field-icon-offset-alfd6o, 32px);
165
165
  }
166
- .awsui_button-trigger_18eso_1gx6f_97 > .awsui_placeholder_18eso_1gx6f_140:not(#\9) {
166
+ .awsui_button-trigger_18eso_170ad_97 > .awsui_placeholder_18eso_170ad_140:not(#\9) {
167
167
  color: var(--color-text-input-placeholder-rtvjp5, #687078);
168
168
  font-style: italic;
169
169
  }
170
- .awsui_button-trigger_18eso_1gx6f_97 > .awsui_arrow_18eso_1gx6f_97:not(#\9) {
170
+ .awsui_button-trigger_18eso_170ad_97 > .awsui_arrow_18eso_170ad_97:not(#\9) {
171
171
  position: absolute;
172
172
  right: var(--space-field-horizontal-z3i1c8, 8px);
173
173
  top: calc(50% - var(--font-body-m-line-height-i7xxvv, 22px) / 2);
174
174
  color: var(--color-text-button-inline-icon-default-qhj7jl, #545b64);
175
175
  }
176
- .awsui_button-trigger_18eso_1gx6f_97:not(#\9):hover > .awsui_arrow_18eso_1gx6f_97 {
176
+ .awsui_button-trigger_18eso_170ad_97:not(#\9):hover > .awsui_arrow_18eso_170ad_97 {
177
177
  color: var(--color-text-button-inline-icon-hover-84mkuo, #16191f);
178
178
  }
179
- .awsui_button-trigger_18eso_1gx6f_97.awsui_pressed_18eso_1gx6f_153 > .awsui_arrow_18eso_1gx6f_97:not(#\9) {
179
+ .awsui_button-trigger_18eso_170ad_97.awsui_pressed_18eso_170ad_153 > .awsui_arrow_18eso_170ad_97:not(#\9) {
180
180
  transform: rotate(-180deg);
181
181
  }
182
- .awsui_button-trigger_18eso_1gx6f_97.awsui_disabled_18eso_1gx6f_156:not(#\9) {
182
+ .awsui_button-trigger_18eso_170ad_97.awsui_disabled_18eso_170ad_156:not(#\9) {
183
183
  background-color: var(--color-background-input-disabled-5vlksk, #eaeded);
184
184
  border: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-input-disabled-ek5o0x, #eaeded);
185
185
  color: var(--color-text-input-disabled-zfb02z, #879596);
186
186
  cursor: auto;
187
187
  }
188
- .awsui_button-trigger_18eso_1gx6f_97.awsui_disabled_18eso_1gx6f_156 > .awsui_arrow_18eso_1gx6f_97:not(#\9) {
188
+ .awsui_button-trigger_18eso_170ad_97.awsui_disabled_18eso_170ad_156 > .awsui_arrow_18eso_170ad_97:not(#\9) {
189
189
  color: var(--color-text-button-inline-icon-disabled-sesloi, #aab7b8);
190
190
  }
191
- .awsui_button-trigger_18eso_1gx6f_97.awsui_disabled_18eso_1gx6f_156.awsui_in-filtering-token_18eso_1gx6f_165:not(#\9) {
191
+ .awsui_button-trigger_18eso_170ad_97.awsui_disabled_18eso_170ad_156.awsui_in-filtering-token_18eso_170ad_165:not(#\9) {
192
192
  border-color: var(--color-border-control-disabled-zgidl5, #d5dbdb);
193
193
  }
194
- .awsui_button-trigger_18eso_1gx6f_97.awsui_disabled_18eso_1gx6f_156 > .awsui_placeholder_18eso_1gx6f_140:not(#\9) {
194
+ .awsui_button-trigger_18eso_170ad_97.awsui_disabled_18eso_170ad_156 > .awsui_placeholder_18eso_170ad_140:not(#\9) {
195
195
  color: var(--color-text-input-placeholder-disabled-60yf1a, #687078);
196
196
  }
197
- .awsui_button-trigger_18eso_1gx6f_97.awsui_read-only_18eso_1gx6f_171:not(#\9) {
197
+ .awsui_button-trigger_18eso_170ad_97.awsui_read-only_18eso_170ad_171:not(#\9) {
198
198
  background-color: var(--color-background-input-default-ewlytp, #ffffff);
199
199
  border: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-input-disabled-ek5o0x, #eaeded);
200
200
  }
201
- .awsui_button-trigger_18eso_1gx6f_97:not(#\9):focus {
201
+ .awsui_button-trigger_18eso_170ad_97:not(#\9):focus {
202
202
  outline: none;
203
203
  text-decoration: none;
204
204
  }
205
- body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1gx6f_97:not(#\9):not(.awsui_in-filtering-token_18eso_1gx6f_165):focus {
205
+ body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_170ad_97:not(#\9):not(.awsui_in-filtering-token_18eso_170ad_165):focus {
206
206
  outline: 2px dotted transparent;
207
207
  border: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-item-focused-n5kd8g, #0073bb);
208
208
  border-radius: var(--border-radius-input-fterib, 2px);
209
209
  box-shadow: 0 0 0 var(--border-control-focus-ring-shadow-spread-glnuoy, 1px) var(--color-border-item-focused-n5kd8g, #0073bb);
210
210
  }
211
- .awsui_button-trigger_18eso_1gx6f_97:not(#\9):not(.awsui_in-filtering-token_18eso_1gx6f_165):invalid {
211
+ .awsui_button-trigger_18eso_170ad_97:not(#\9):not(.awsui_in-filtering-token_18eso_170ad_165):invalid {
212
212
  box-shadow: none;
213
213
  }
214
- .awsui_button-trigger_18eso_1gx6f_97:not(#\9):not(.awsui_in-filtering-token_18eso_1gx6f_165).awsui_invalid_18eso_1gx6f_188, .awsui_button-trigger_18eso_1gx6f_97:not(#\9):not(.awsui_in-filtering-token_18eso_1gx6f_165).awsui_invalid_18eso_1gx6f_188:focus {
214
+ .awsui_button-trigger_18eso_170ad_97:not(#\9):not(.awsui_in-filtering-token_18eso_170ad_165).awsui_invalid_18eso_170ad_188, .awsui_button-trigger_18eso_170ad_97:not(#\9):not(.awsui_in-filtering-token_18eso_170ad_165).awsui_invalid_18eso_170ad_188:focus {
215
215
  color: var(--color-text-status-error-jer77f, #d13212);
216
216
  border-color: var(--color-text-status-error-jer77f, #d13212);
217
217
  padding-left: calc(
@@ -219,23 +219,23 @@ body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1gx6f_97:not(#\9
219
219
  );
220
220
  border-left-width: var(--border-invalid-width-glmng5, 4px);
221
221
  }
222
- .awsui_button-trigger_18eso_1gx6f_97:not(#\9):not(.awsui_in-filtering-token_18eso_1gx6f_165).awsui_invalid_18eso_1gx6f_188:focus, .awsui_button-trigger_18eso_1gx6f_97:not(#\9):not(.awsui_in-filtering-token_18eso_1gx6f_165).awsui_invalid_18eso_1gx6f_188:focus:focus {
222
+ .awsui_button-trigger_18eso_170ad_97:not(#\9):not(.awsui_in-filtering-token_18eso_170ad_165).awsui_invalid_18eso_170ad_188:focus, .awsui_button-trigger_18eso_170ad_97:not(#\9):not(.awsui_in-filtering-token_18eso_170ad_165).awsui_invalid_18eso_170ad_188:focus:focus {
223
223
  box-shadow: 0 0 0 var(--border-control-invalid-focus-ring-shadow-spread-6t5p47, 1px) var(--color-border-item-focused-n5kd8g, #0073bb);
224
224
  }
225
- .awsui_button-trigger_18eso_1gx6f_97.awsui_in-filtering-token_18eso_1gx6f_165:not(#\9) {
226
- border-color: var(--color-border-item-selected-pr9yuf, #00a1c9);
225
+ .awsui_button-trigger_18eso_170ad_97.awsui_in-filtering-token_18eso_170ad_165:not(#\9) {
226
+ border-color: var(--color-border-item-selected-592lau, #0073bb);
227
227
  border-top-right-radius: 0;
228
228
  border-bottom-right-radius: 0;
229
229
  height: 100%;
230
230
  }
231
- body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1gx6f_97.awsui_in-filtering-token_18eso_1gx6f_165:not(#\9):focus {
231
+ body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_170ad_97.awsui_in-filtering-token_18eso_170ad_165:not(#\9):focus {
232
232
  position: relative;
233
233
  }
234
- body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1gx6f_97.awsui_in-filtering-token_18eso_1gx6f_165:not(#\9):focus {
234
+ body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_170ad_97.awsui_in-filtering-token_18eso_170ad_165:not(#\9):focus {
235
235
  outline: 2px dotted transparent;
236
236
  outline-offset: calc(var(--space-filtering-token-operation-select-focus-outline-gutter-0nruvp, 0px) - 1px);
237
237
  }
238
- body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1gx6f_97.awsui_in-filtering-token_18eso_1gx6f_165:not(#\9):focus::before {
238
+ body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_170ad_97.awsui_in-filtering-token_18eso_170ad_165:not(#\9):focus::before {
239
239
  content: " ";
240
240
  display: block;
241
241
  position: absolute;