@codecademy/gamut
73.5.073.5.1-alpha.7af239.0
−
Removed (2 files)
+
Added (2 files)
~
Modified (13 files)
Index: package/dist/Form/SelectDropdown/elements/containers.js
===================================================================
--- package/dist/Form/SelectDropdown/elements/containers.js
+++ package/dist/Form/SelectDropdown/elements/containers.js
@@ -1,17 +1,19 @@
import { createContext, useEffect, useLayoutEffect } from 'react';
import ReactSelect, { components as SelectDropdownElements } from 'react-select';
import CreatableSelect from 'react-select/creatable';
+import { DEFAULT_SELECT_DROPDOWN_TRANSLATIONS } from '../core/translations';
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
/**
* React context for sharing state between SelectDropdown components.
- * Provides access to focus state and refs for keyboard navigation.
+ * Provides access to focus state, refs for keyboard navigation, and translations.
*/
export const SelectDropdownContext = /*#__PURE__*/createContext({
currentFocusedValue: undefined,
setCurrentFocusedValue: undefined,
selectInputRef: undefined,
- removeAllButtonRef: undefined
+ removeAllButtonRef: undefined,
+ translations: DEFAULT_SELECT_DROPDOWN_TRANSLATIONS
});
/**
* Wraps react-select's `NoOptionsMessage` to report its text via Index: package/dist/Form/SelectDropdown/elements/index.js
===================================================================
--- package/dist/Form/SelectDropdown/elements/index.js
+++ package/dist/Form/SelectDropdown/elements/index.js
@@ -1,6 +1,5 @@
export { iconSize, selectedIconSize, indicatorIcons } from './constants';
export { MultiValueWithColorMode, MultiValueRemoveButton, RemoveAllButton } from './multi-value';
export { DropdownButton } from './controls';
-export { onFocus } from '../core/accessibility';
export { SelectDropdownContext, createNoOptionsMessage, CustomContainer, CustomInput, CustomValueContainer, TypedReactSelect } from './containers';
export { IconOption, AbbreviatedSingleValue, formatOptionLabel, formatGroupLabel } from './options';
\ No newline at end of file Index: package/dist/Form/SelectDropdown/index.js
===================================================================
--- package/dist/Form/SelectDropdown/index.js
+++ package/dist/Form/SelectDropdown/index.js
@@ -1,2 +1,3 @@
export * from './types';
-export * from './SelectDropdown';
\ No newline at end of file
+export * from './SelectDropdown';
+export {};
\ No newline at end of file Index: package/dist/Form/SelectDropdown/elements/multi-value.js
===================================================================
--- package/dist/Form/SelectDropdown/elements/multi-value.js
+++ package/dist/Form/SelectDropdown/elements/multi-value.js
@@ -46,13 +46,16 @@
* Provides accessible removal functionality with proper ARIA labels.
*/
export const MultiValueRemoveButton = props => {
const {
+ translations
+ } = useContext(SelectDropdownContext);
+ const {
label
} = props?.data ?? {
label: ''
};
- props.innerProps['aria-label'] = `Remove ${label}`;
+ props.innerProps['aria-label'] = translations.removeOptionLabel(label);
return /*#__PURE__*/_jsx(MultiValueRemove, {
...props,
children: /*#__PURE__*/_jsx(MiniDeleteIcon, {
size: 12
@@ -74,9 +77,9 @@
},
'&:focus-visible': {
outline: `2px solid ${theme.colors.primary}`
}
-}, ";label:CustomStyledRemoveAllDiv;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9Gb3JtL1NlbGVjdERyb3Bkb3duL2VsZW1lbnRzL211bHRpLXZhbHVlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2RUUiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL0Zvcm0vU2VsZWN0RHJvcGRvd24vZWxlbWVudHMvbXVsdGktdmFsdWUudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWluaURlbGV0ZUljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyB0aGVtZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBLZXlib2FyZEV2ZW50LCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtcbiAgY29tcG9uZW50cyBhcyBTZWxlY3REcm9wZG93bkVsZW1lbnRzLFxuICBHcm91cEJhc2UsXG4gIE11bHRpVmFsdWVQcm9wcyxcbiAgTXVsdGlWYWx1ZVJlbW92ZVByb3BzLFxufSBmcm9tICdyZWFjdC1zZWxlY3QnO1xuXG5pbXBvcnQgeyBFeHRlbmRlZE9wdGlvbiwgU2l6ZWRJbmRpY2F0b3JQcm9wcyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGluZGljYXRvckljb25zIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU2VsZWN0RHJvcGRvd25Db250ZXh0IH0gZnJvbSAnLi9jb250YWluZXJzJztcblxuY29uc3QgeyBNdWx0aVZhbHVlLCBNdWx0aVZhbHVlUmVtb3ZlIH0gPSBTZWxlY3REcm9wZG93bkVsZW1lbnRzO1xuXG4vKipcbiAqIEN1c3RvbSBtdWx0aS12YWx1ZSBjb21wb25lbnQgdGhhdCBtYW5hZ2VzIGZvY3VzIHN0YXRlIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uLlxuICogVHJhY2tzIHdoaWNoIG11bHRpLXZhbHVlIGlzIGN1cnJlbnRseSBmb2N1c2VkIGFuZCB1cGRhdGVzIHRoZSBjb250ZXh0IGFjY29yZGluZ2x5LlxuICovXG5leHBvcnQgY29uc3QgTXVsdGlWYWx1ZVdpdGhDb2xvck1vZGUgPSAoXG4gIHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8RXh0ZW5kZWRPcHRpb24sIHRydWUsIEdyb3VwQmFzZTxFeHRlbmRlZE9wdGlvbj4+XG4pID0+IHtcbiAgY29uc3QgeyBjdXJyZW50Rm9jdXNlZFZhbHVlLCBzZXRDdXJyZW50Rm9jdXNlZFZhbHVlIH0gPSB1c2VDb250ZXh0KFxuICAgIFNlbGVjdERyb3Bkb3duQ29udGV4dFxuICApO1xuXG4gIGNvbnN0IHsgZGF0YSB9ID0gcHJvcHM7XG5cbiAgY29uc3QgeyB2YWx1ZSwgbGFiZWwgfSA9IGRhdGE7XG5cbiAgaWYgKFxuICAgIHByb3BzLmlzRm9jdXNlZCAmJlxuICAgIHNldEN1cnJlbnRGb2N1c2VkVmFsdWUgJiZcbiAgICBjdXJyZW50Rm9jdXNlZFZhbHVlICE9PSB2YWx1ZVxuICApIHtcbiAgICBzZXRDdXJyZW50Rm9jdXNlZFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIGlmIChcbiAgICAhcHJvcHMuaXNGb2N1c2VkICYmXG4gICAgc2V0Q3VycmVudEZvY3VzZWRWYWx1ZSAmJlxuICAgIGN1cnJlbnRGb2N1c2VkVmFsdWUgPT09IHZhbHVlXG4gICkge1xuICAgIHNldEN1cnJlbnRGb2N1c2VkVmFsdWUodW5kZWZpbmVkKTtcbiAgfVxuICBjb25zdCBkaXNwbGF5VGV4dCA9IGRhdGE/LmFiYnJldmlhdGlvbiA/IGRhdGEuYWJicmV2aWF0aW9uIDogbGFiZWwgfHwgJyc7XG5cbiAgcmV0dXJuIDxNdWx0aVZhbHVlIHsuLi5wcm9wc30+e2Rpc3BsYXlUZXh0fTwvTXVsdGlWYWx1ZT47XG59O1xuXG4vKipcbiAqIEN1c3RvbSByZW1vdmUgYnV0dG9uIGZvciBtdWx0aS12YWx1ZSBpdGVtcy5cbiAqIFByb3ZpZGVzIGFjY2Vzc2libGUgcmVtb3ZhbCBmdW5jdGlvbmFsaXR5IHdpdGggcHJvcGVyIEFSSUEgbGFiZWxzLlxuICovXG5leHBvcnQgY29uc3QgTXVsdGlWYWx1ZVJlbW92ZUJ1dHRvbiA9IChcbiAgcHJvcHM6IE11bHRpVmFsdWVSZW1vdmVQcm9wczxFeHRlbmRlZE9wdGlvbiwgdHJ1ZSwgR3JvdXBCYXNlPEV4dGVuZGVkT3B0aW9uPj5cbikgPT4ge1xuICBjb25zdCB7IGxhYmVsIH0gPSBwcm9wcz8uZGF0YSA/PyB7IGxhYmVsOiAnJyB9O1xuXG4gIHByb3BzLmlubmVyUHJvcHNbJ2FyaWEtbGFiZWwnXSA9IGBSZW1vdmUgJHtsYWJlbH1gO1xuXG4gIHJldHVybiAoXG4gICAgPE11bHRpVmFsdWVSZW1vdmUgey4uLnByb3BzfT5cbiAgICAgIDxNaW5pRGVsZXRlSWNvbiBzaXplPXsxMn0gLz5cbiAgICA8L011bHRpVmFsdWVSZW1vdmU+XG4gICk7XG59O1xuXG4vKipcbiAqIEN1c3RvbSByZW1vdmUgYWxsIGJ1dHRvbiBmb3IgbXVsdGktc2VsZWN0IG1vZGUuXG4gKiBQcm92aWRlcyBrZXlib2FyZCBuYXZpZ2F0aW9uIGFuZCBhY2Nlc3NpYmxlIHJlbW92YWwgb2YgYWxsIHNlbGVjdGVkIHZhbHVlcy5cbiAqL1xuXG5jb25zdCBDdXN0b21TdHlsZWRSZW1vdmVBbGxEaXYgPSBzdHlsZWQoJ2RpdicpKFxuICBjc3Moe1xuICAgICcmOmZvY3VzJzoge1xuICAgICAgb3V0bGluZTogYDJweCBzb2xpZCAke3RoZW1lLmNvbG9ycy5wcmltYXJ5fWAsXG4gICAgfSxcbiAgICAnJjpmb2N1cy12aXNpYmxlJzoge1xuICAgICAgb3V0bGluZTogYDJweCBzb2xpZCAke3RoZW1lLmNvbG9ycy5wcmltYXJ5fWAsXG4gICAgfSxcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBSZW1vdmVBbGxCdXR0b24gPSAocHJvcHM6IFNpemVkSW5kaWNhdG9yUHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGdldFN0eWxlcyxcbiAgICBpbm5lclByb3BzOiB7IC4uLnJlc3RJbm5lclByb3BzIH0sXG4gICAgc2VsZWN0UHJvcHM6IHsgc2l6ZSB9LFxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3QgeyByZW1vdmVBbGxCdXR0b25SZWYsIHNlbGVjdElucHV0UmVmIH0gPSB1c2VDb250ZXh0KFxuICAgIFNlbGVjdERyb3Bkb3duQ29udGV4dFxuICApO1xuXG4gIGNvbnN0IGljb25TaXplID0gc2l6ZSA/PyAnbWVkaXVtJztcbiAgY29uc3QgeyAuLi5pY29uUHJvcHMgfSA9IGluZGljYXRvckljb25zW2Ake2ljb25TaXplfVJlbW92ZWBdO1xuICBjb25zdCB7IGljb246IEluZGljYXRvckljb24gfSA9IGljb25Qcm9wcztcblxuICBjb25zdCBvbktleVByZXNzID0gKGU6IEtleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSAnRW50ZXInICYmIHJlc3RJbm5lclByb3BzLm9uTW91c2VEb3duKSB7XG4gICAgICByZXN0SW5uZXJQcm9wcy5vbk1vdXNlRG93bihlIGFzIGFueSk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgc2VsZWN0SW5wdXRSZWY/LmN1cnJlbnQgJiZcbiAgICAgIChlLmtleSA9PT0gJ0Fycm93UmlnaHQnIHx8IGUua2V5ID09PSAnQXJyb3dMZWZ0JyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpXG4gICAgKSB7XG4gICAgICBzZWxlY3RJbnB1dFJlZi5jdXJyZW50LmZvY3VzKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHN0eWxlID0gZ2V0U3R5bGVzKCdjbGVhckluZGljYXRvcicsIHByb3BzKSBhcyBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuXG4gIHJldHVybiAoXG4gICAgPEN1c3RvbVN0eWxlZFJlbW92ZUFsbERpdlxuICAgICAgYXJpYS1sYWJlbD1cIlJlbW92ZSBhbGwgc2VsZWN0ZWRcIlxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICB0YWJJbmRleD17MH1cbiAgICAgIHsuLi5yZXN0SW5uZXJQcm9wc31cbiAgICAgIHJlZj17cmVtb3ZlQWxsQnV0dG9uUmVmIGFzIFJlYWN0LlJlZjxIVE1MRGl2RWxlbWVudD59XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2FtdXQvbm8taW5saW5lLXN0eWxlXG4gICAgICBzdHlsZT17c3R5bGV9XG4gICAgICBvbktleURvd249e29uS2V5UHJlc3N9XG4gICAgPlxuICAgICAgPEluZGljYXRvckljb24gey4uLmljb25Qcm9wc30gY29sb3I9XCJ0ZXh0XCIgLz5cbiAgICA8L0N1c3RvbVN0eWxlZFJlbW92ZUFsbERpdj5cbiAgKTtcbn07XG4iXX0= */")), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9Gb3JtL1NlbGVjdERyb3Bkb3duL2VsZW1lbnRzL211bHRpLXZhbHVlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0RWlDIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9Gb3JtL1NlbGVjdERyb3Bkb3duL2VsZW1lbnRzL211bHRpLXZhbHVlLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbmlEZWxldGVJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgdGhlbWUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgS2V5Ym9hcmRFdmVudCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIGNvbXBvbmVudHMgYXMgU2VsZWN0RHJvcGRvd25FbGVtZW50cyxcbiAgR3JvdXBCYXNlLFxuICBNdWx0aVZhbHVlUHJvcHMsXG4gIE11bHRpVmFsdWVSZW1vdmVQcm9wcyxcbn0gZnJvbSAncmVhY3Qtc2VsZWN0JztcblxuaW1wb3J0IHsgRXh0ZW5kZWRPcHRpb24sIFNpemVkSW5kaWNhdG9yUHJvcHMgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpbmRpY2F0b3JJY29ucyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFNlbGVjdERyb3Bkb3duQ29udGV4dCB9IGZyb20gJy4vY29udGFpbmVycyc7XG5cbmNvbnN0IHsgTXVsdGlWYWx1ZSwgTXVsdGlWYWx1ZVJlbW92ZSB9ID0gU2VsZWN0RHJvcGRvd25FbGVtZW50cztcblxuLyoqXG4gKiBDdXN0b20gbXVsdGktdmFsdWUgY29tcG9uZW50IHRoYXQgbWFuYWdlcyBmb2N1cyBzdGF0ZSBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbi5cbiAqIFRyYWNrcyB3aGljaCBtdWx0aS12YWx1ZSBpcyBjdXJyZW50bHkgZm9jdXNlZCBhbmQgdXBkYXRlcyB0aGUgY29udGV4dCBhY2NvcmRpbmdseS5cbiAqL1xuZXhwb3J0IGNvbnN0IE11bHRpVmFsdWVXaXRoQ29sb3JNb2RlID0gKFxuICBwcm9wczogTXVsdGlWYWx1ZVByb3BzPEV4dGVuZGVkT3B0aW9uLCB0cnVlLCBHcm91cEJhc2U8RXh0ZW5kZWRPcHRpb24+PlxuKSA9PiB7XG4gIGNvbnN0IHsgY3VycmVudEZvY3VzZWRWYWx1ZSwgc2V0Q3VycmVudEZvY3VzZWRWYWx1ZSB9ID0gdXNlQ29udGV4dChcbiAgICBTZWxlY3REcm9wZG93bkNvbnRleHRcbiAgKTtcblxuICBjb25zdCB7IGRhdGEgfSA9IHByb3BzO1xuXG4gIGNvbnN0IHsgdmFsdWUsIGxhYmVsIH0gPSBkYXRhO1xuXG4gIGlmIChcbiAgICBwcm9wcy5pc0ZvY3VzZWQgJiZcbiAgICBzZXRDdXJyZW50Rm9jdXNlZFZhbHVlICYmXG4gICAgY3VycmVudEZvY3VzZWRWYWx1ZSAhPT0gdmFsdWVcbiAgKSB7XG4gICAgc2V0Q3VycmVudEZvY3VzZWRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBpZiAoXG4gICAgIXByb3BzLmlzRm9jdXNlZCAmJlxuICAgIHNldEN1cnJlbnRGb2N1c2VkVmFsdWUgJiZcbiAgICBjdXJyZW50Rm9jdXNlZFZhbHVlID09PSB2YWx1ZVxuICApIHtcbiAgICBzZXRDdXJyZW50Rm9jdXNlZFZhbHVlKHVuZGVmaW5lZCk7XG4gIH1cbiAgY29uc3QgZGlzcGxheVRleHQgPSBkYXRhPy5hYmJyZXZpYXRpb24gPyBkYXRhLmFiYnJldmlhdGlvbiA6IGxhYmVsIHx8ICcnO1xuXG4gIHJldHVybiA8TXVsdGlWYWx1ZSB7Li4ucHJvcHN9PntkaXNwbGF5VGV4dH08L011bHRpVmFsdWU+O1xufTtcblxuLyoqXG4gKiBDdXN0b20gcmVtb3ZlIGJ1dHRvbiBmb3IgbXVsdGktdmFsdWUgaXRlbXMuXG4gKiBQcm92aWRlcyBhY2Nlc3NpYmxlIHJlbW92YWwgZnVuY3Rpb25hbGl0eSB3aXRoIHByb3BlciBBUklBIGxhYmVscy5cbiAqL1xuZXhwb3J0IGNvbnN0IE11bHRpVmFsdWVSZW1vdmVCdXR0b24gPSAoXG4gIHByb3BzOiBNdWx0aVZhbHVlUmVtb3ZlUHJvcHM8RXh0ZW5kZWRPcHRpb24sIHRydWUsIEdyb3VwQmFzZTxFeHRlbmRlZE9wdGlvbj4+XG4pID0+IHtcbiAgY29uc3QgeyBsYWJlbCB9ID0gcHJvcHM/LmRhdGEgPz8geyBsYWJlbDogJycgfTtcblxuICBwcm9wcy5pbm5lclByb3BzWydhcmlhLWxhYmVsJ10gPSBgUmVtb3ZlICR7bGFiZWx9YDtcblxuICByZXR1cm4gKFxuICAgIDxNdWx0aVZhbHVlUmVtb3ZlIHsuLi5wcm9wc30+XG4gICAgICA8TWluaURlbGV0ZUljb24gc2l6ZT17MTJ9IC8+XG4gICAgPC9NdWx0aVZhbHVlUmVtb3ZlPlxuICApO1xufTtcblxuLyoqXG4gKiBDdXN0b20gcmVtb3ZlIGFsbCBidXR0b24gZm9yIG11bHRpLXNlbGVjdCBtb2RlLlxuICogUHJvdmlkZXMga2V5Ym9hcmQgbmF2aWdhdGlvbiBhbmQgYWNjZXNzaWJsZSByZW1vdmFsIG9mIGFsbCBzZWxlY3RlZCB2YWx1ZXMuXG4gKi9cblxuY29uc3QgQ3VzdG9tU3R5bGVkUmVtb3ZlQWxsRGl2ID0gc3R5bGVkKCdkaXYnKShcbiAgY3NzKHtcbiAgICAnJjpmb2N1cyc6IHtcbiAgICAgIG91dGxpbmU6IGAycHggc29saWQgJHt0aGVtZS5jb2xvcnMucHJpbWFyeX1gLFxuICAgIH0sXG4gICAgJyY6Zm9jdXMtdmlzaWJsZSc6IHtcbiAgICAgIG91dGxpbmU6IGAycHggc29saWQgJHt0aGVtZS5jb2xvcnMucHJpbWFyeX1gLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgUmVtb3ZlQWxsQnV0dG9uID0gKHByb3BzOiBTaXplZEluZGljYXRvclByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBnZXRTdHlsZXMsXG4gICAgaW5uZXJQcm9wczogeyAuLi5yZXN0SW5uZXJQcm9wcyB9LFxuICAgIHNlbGVjdFByb3BzOiB7IHNpemUgfSxcbiAgfSA9IHByb3BzO1xuXG4gIGNvbnN0IHsgcmVtb3ZlQWxsQnV0dG9uUmVmLCBzZWxlY3RJbnB1dFJlZiB9ID0gdXNlQ29udGV4dChcbiAgICBTZWxlY3REcm9wZG93bkNvbnRleHRcbiAgKTtcblxuICBjb25zdCBpY29uU2l6ZSA9IHNpemUgPz8gJ21lZGl1bSc7XG4gIGNvbnN0IHsgLi4uaWNvblByb3BzIH0gPSBpbmRpY2F0b3JJY29uc1tgJHtpY29uU2l6ZX1SZW1vdmVgXTtcbiAgY29uc3QgeyBpY29uOiBJbmRpY2F0b3JJY29uIH0gPSBpY29uUHJvcHM7XG5cbiAgY29uc3Qgb25LZXlQcmVzcyA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyAmJiByZXN0SW5uZXJQcm9wcy5vbk1vdXNlRG93bikge1xuICAgICAgcmVzdElubmVyUHJvcHMub25Nb3VzZURvd24oZSBhcyBhbnkpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHNlbGVjdElucHV0UmVmPy5jdXJyZW50ICYmXG4gICAgICAoZS5rZXkgPT09ICdBcnJvd1JpZ2h0JyB8fCBlLmtleSA9PT0gJ0Fycm93TGVmdCcgfHwgZS5rZXkgPT09ICdBcnJvd0Rvd24nKVxuICAgICkge1xuICAgICAgc2VsZWN0SW5wdXRSZWYuY3VycmVudC5mb2N1cygpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBzdHlsZSA9IGdldFN0eWxlcygnY2xlYXJJbmRpY2F0b3InLCBwcm9wcykgYXMgUmVhY3QuQ1NTUHJvcGVydGllcztcblxuICByZXR1cm4gKFxuICAgIDxDdXN0b21TdHlsZWRSZW1vdmVBbGxEaXZcbiAgICAgIGFyaWEtbGFiZWw9XCJSZW1vdmUgYWxsIHNlbGVjdGVkXCJcbiAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICB7Li4ucmVzdElubmVyUHJvcHN9XG4gICAgICByZWY9e3JlbW92ZUFsbEJ1dHRvblJlZiBhcyBSZWFjdC5SZWY8SFRNTERpdkVsZW1lbnQ+fVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGdhbXV0L25vLWlubGluZS1zdHlsZVxuICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgb25LZXlEb3duPXtvbktleVByZXNzfVxuICAgID5cbiAgICAgIDxJbmRpY2F0b3JJY29uIHsuLi5pY29uUHJvcHN9IGNvbG9yPVwidGV4dFwiIC8+XG4gICAgPC9DdXN0b21TdHlsZWRSZW1vdmVBbGxEaXY+XG4gICk7XG59O1xuIl19 */");
+}, ";label:CustomStyledRemoveAllDiv;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9Gb3JtL1NlbGVjdERyb3Bkb3duL2VsZW1lbnRzL211bHRpLXZhbHVlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4RUUiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL0Zvcm0vU2VsZWN0RHJvcGRvd24vZWxlbWVudHMvbXVsdGktdmFsdWUudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWluaURlbGV0ZUljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyB0aGVtZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBLZXlib2FyZEV2ZW50LCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtcbiAgY29tcG9uZW50cyBhcyBTZWxlY3REcm9wZG93bkVsZW1lbnRzLFxuICBHcm91cEJhc2UsXG4gIE11bHRpVmFsdWVQcm9wcyxcbiAgTXVsdGlWYWx1ZVJlbW92ZVByb3BzLFxufSBmcm9tICdyZWFjdC1zZWxlY3QnO1xuXG5pbXBvcnQgeyBFeHRlbmRlZE9wdGlvbiwgU2l6ZWRJbmRpY2F0b3JQcm9wcyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGluZGljYXRvckljb25zIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU2VsZWN0RHJvcGRvd25Db250ZXh0IH0gZnJvbSAnLi9jb250YWluZXJzJztcblxuY29uc3QgeyBNdWx0aVZhbHVlLCBNdWx0aVZhbHVlUmVtb3ZlIH0gPSBTZWxlY3REcm9wZG93bkVsZW1lbnRzO1xuXG4vKipcbiAqIEN1c3RvbSBtdWx0aS12YWx1ZSBjb21wb25lbnQgdGhhdCBtYW5hZ2VzIGZvY3VzIHN0YXRlIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uLlxuICogVHJhY2tzIHdoaWNoIG11bHRpLXZhbHVlIGlzIGN1cnJlbnRseSBmb2N1c2VkIGFuZCB1cGRhdGVzIHRoZSBjb250ZXh0IGFjY29yZGluZ2x5LlxuICovXG5leHBvcnQgY29uc3QgTXVsdGlWYWx1ZVdpdGhDb2xvck1vZGUgPSAoXG4gIHByb3BzOiBNdWx0aVZhbHVlUHJvcHM8RXh0ZW5kZWRPcHRpb24sIHRydWUsIEdyb3VwQmFzZTxFeHRlbmRlZE9wdGlvbj4+XG4pID0+IHtcbiAgY29uc3QgeyBjdXJyZW50Rm9jdXNlZFZhbHVlLCBzZXRDdXJyZW50Rm9jdXNlZFZhbHVlIH0gPSB1c2VDb250ZXh0KFxuICAgIFNlbGVjdERyb3Bkb3duQ29udGV4dFxuICApO1xuXG4gIGNvbnN0IHsgZGF0YSB9ID0gcHJvcHM7XG5cbiAgY29uc3QgeyB2YWx1ZSwgbGFiZWwgfSA9IGRhdGE7XG5cbiAgaWYgKFxuICAgIHByb3BzLmlzRm9jdXNlZCAmJlxuICAgIHNldEN1cnJlbnRGb2N1c2VkVmFsdWUgJiZcbiAgICBjdXJyZW50Rm9jdXNlZFZhbHVlICE9PSB2YWx1ZVxuICApIHtcbiAgICBzZXRDdXJyZW50Rm9jdXNlZFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIGlmIChcbiAgICAhcHJvcHMuaXNGb2N1c2VkICYmXG4gICAgc2V0Q3VycmVudEZvY3VzZWRWYWx1ZSAmJlxuICAgIGN1cnJlbnRGb2N1c2VkVmFsdWUgPT09IHZhbHVlXG4gICkge1xuICAgIHNldEN1cnJlbnRGb2N1c2VkVmFsdWUodW5kZWZpbmVkKTtcbiAgfVxuICBjb25zdCBkaXNwbGF5VGV4dCA9IGRhdGE/LmFiYnJldmlhdGlvbiA/IGRhdGEuYWJicmV2aWF0aW9uIDogbGFiZWwgfHwgJyc7XG5cbiAgcmV0dXJuIDxNdWx0aVZhbHVlIHsuLi5wcm9wc30+e2Rpc3BsYXlUZXh0fTwvTXVsdGlWYWx1ZT47XG59O1xuXG4vKipcbiAqIEN1c3RvbSByZW1vdmUgYnV0dG9uIGZvciBtdWx0aS12YWx1ZSBpdGVtcy5cbiAqIFByb3ZpZGVzIGFjY2Vzc2libGUgcmVtb3ZhbCBmdW5jdGlvbmFsaXR5IHdpdGggcHJvcGVyIEFSSUEgbGFiZWxzLlxuICovXG5leHBvcnQgY29uc3QgTXVsdGlWYWx1ZVJlbW92ZUJ1dHRvbiA9IChcbiAgcHJvcHM6IE11bHRpVmFsdWVSZW1vdmVQcm9wczxFeHRlbmRlZE9wdGlvbiwgdHJ1ZSwgR3JvdXBCYXNlPEV4dGVuZGVkT3B0aW9uPj5cbikgPT4ge1xuICBjb25zdCB7IHRyYW5zbGF0aW9ucyB9ID0gdXNlQ29udGV4dChTZWxlY3REcm9wZG93bkNvbnRleHQpO1xuICBjb25zdCB7IGxhYmVsIH0gPSBwcm9wcz8uZGF0YSA/PyB7IGxhYmVsOiAnJyB9O1xuXG4gIHByb3BzLmlubmVyUHJvcHNbJ2FyaWEtbGFiZWwnXSA9IHRyYW5zbGF0aW9ucy5yZW1vdmVPcHRpb25MYWJlbChsYWJlbCk7XG5cbiAgcmV0dXJuIChcbiAgICA8TXVsdGlWYWx1ZVJlbW92ZSB7Li4ucHJvcHN9PlxuICAgICAgPE1pbmlEZWxldGVJY29uIHNpemU9ezEyfSAvPlxuICAgIDwvTXVsdGlWYWx1ZVJlbW92ZT5cbiAgKTtcbn07XG5cbi8qKlxuICogQ3VzdG9tIHJlbW92ZSBhbGwgYnV0dG9uIGZvciBtdWx0aS1zZWxlY3QgbW9kZS5cbiAqIFByb3ZpZGVzIGtleWJvYXJkIG5hdmlnYXRpb24gYW5kIGFjY2Vzc2libGUgcmVtb3ZhbCBvZiBhbGwgc2VsZWN0ZWQgdmFsdWVzLlxuICovXG5cbmNvbnN0IEN1c3RvbVN0eWxlZFJlbW92ZUFsbERpdiA9IHN0eWxlZCgnZGl2JykoXG4gIGNzcyh7XG4gICAgJyY6Zm9jdXMnOiB7XG4gICAgICBvdXRsaW5lOiBgMnB4IHNvbGlkICR7dGhlbWUuY29sb3JzLnByaW1hcnl9YCxcbiAgICB9LFxuICAgICcmOmZvY3VzLXZpc2libGUnOiB7XG4gICAgICBvdXRsaW5lOiBgMnB4IHNvbGlkICR7dGhlbWUuY29sb3JzLnByaW1hcnl9YCxcbiAgICB9LFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFJlbW92ZUFsbEJ1dHRvbiA9IChwcm9wczogU2l6ZWRJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgZ2V0U3R5bGVzLFxuICAgIGlubmVyUHJvcHM6IHsgLi4ucmVzdElubmVyUHJvcHMgfSxcbiAgICBzZWxlY3RQcm9wczogeyBzaXplIH0sXG4gIH0gPSBwcm9wcztcblxuICBjb25zdCB7IHJlbW92ZUFsbEJ1dHRvblJlZiwgc2VsZWN0SW5wdXRSZWYsIHRyYW5zbGF0aW9ucyB9ID0gdXNlQ29udGV4dChcbiAgICBTZWxlY3REcm9wZG93bkNvbnRleHRcbiAgKTtcblxuICBjb25zdCBpY29uU2l6ZSA9IHNpemUgPz8gJ21lZGl1bSc7XG4gIGNvbnN0IHsgLi4uaWNvblByb3BzIH0gPSBpbmRpY2F0b3JJY29uc1tgJHtpY29uU2l6ZX1SZW1vdmVgXTtcbiAgY29uc3QgeyBpY29uOiBJbmRpY2F0b3JJY29uIH0gPSBpY29uUHJvcHM7XG5cbiAgY29uc3Qgb25LZXlQcmVzcyA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyAmJiByZXN0SW5uZXJQcm9wcy5vbk1vdXNlRG93bikge1xuICAgICAgcmVzdElubmVyUHJvcHMub25Nb3VzZURvd24oZSBhcyBhbnkpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHNlbGVjdElucHV0UmVmPy5jdXJyZW50ICYmXG4gICAgICAoZS5rZXkgPT09ICdBcnJvd1JpZ2h0JyB8fCBlLmtleSA9PT0gJ0Fycm93TGVmdCcgfHwgZS5rZXkgPT09ICdBcnJvd0Rvd24nKVxuICAgICkge1xuICAgICAgc2VsZWN0SW5wdXRSZWYuY3VycmVudC5mb2N1cygpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBzdHlsZSA9IGdldFN0eWxlcygnY2xlYXJJbmRpY2F0b3InLCBwcm9wcykgYXMgUmVhY3QuQ1NTUHJvcGVydGllcztcblxuICByZXR1cm4gKFxuICAgIDxDdXN0b21TdHlsZWRSZW1vdmVBbGxEaXZcbiAgICAgIGFyaWEtbGFiZWw9e3RyYW5zbGF0aW9ucy5jbGVhckFsbExhYmVsfVxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICB0YWJJbmRleD17MH1cbiAgICAgIHsuLi5yZXN0SW5uZXJQcm9wc31cbiAgICAgIHJlZj17cmVtb3ZlQWxsQnV0dG9uUmVmIGFzIFJlYWN0LlJlZjxIVE1MRGl2RWxlbWVudD59XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2FtdXQvbm8taW5saW5lLXN0eWxlXG4gICAgICBzdHlsZT17c3R5bGV9XG4gICAgICBvbktleURvd249e29uS2V5UHJlc3N9XG4gICAgPlxuICAgICAgPEluZGljYXRvckljb24gey4uLmljb25Qcm9wc30gY29sb3I9XCJ0ZXh0XCIgLz5cbiAgICA8L0N1c3RvbVN0eWxlZFJlbW92ZUFsbERpdj5cbiAgKTtcbn07XG4iXX0= */")), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9Gb3JtL1NlbGVjdERyb3Bkb3duL2VsZW1lbnRzL211bHRpLXZhbHVlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2RWlDIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9Gb3JtL1NlbGVjdERyb3Bkb3duL2VsZW1lbnRzL211bHRpLXZhbHVlLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbmlEZWxldGVJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgdGhlbWUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgS2V5Ym9hcmRFdmVudCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIGNvbXBvbmVudHMgYXMgU2VsZWN0RHJvcGRvd25FbGVtZW50cyxcbiAgR3JvdXBCYXNlLFxuICBNdWx0aVZhbHVlUHJvcHMsXG4gIE11bHRpVmFsdWVSZW1vdmVQcm9wcyxcbn0gZnJvbSAncmVhY3Qtc2VsZWN0JztcblxuaW1wb3J0IHsgRXh0ZW5kZWRPcHRpb24sIFNpemVkSW5kaWNhdG9yUHJvcHMgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpbmRpY2F0b3JJY29ucyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFNlbGVjdERyb3Bkb3duQ29udGV4dCB9IGZyb20gJy4vY29udGFpbmVycyc7XG5cbmNvbnN0IHsgTXVsdGlWYWx1ZSwgTXVsdGlWYWx1ZVJlbW92ZSB9ID0gU2VsZWN0RHJvcGRvd25FbGVtZW50cztcblxuLyoqXG4gKiBDdXN0b20gbXVsdGktdmFsdWUgY29tcG9uZW50IHRoYXQgbWFuYWdlcyBmb2N1cyBzdGF0ZSBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbi5cbiAqIFRyYWNrcyB3aGljaCBtdWx0aS12YWx1ZSBpcyBjdXJyZW50bHkgZm9jdXNlZCBhbmQgdXBkYXRlcyB0aGUgY29udGV4dCBhY2NvcmRpbmdseS5cbiAqL1xuZXhwb3J0IGNvbnN0IE11bHRpVmFsdWVXaXRoQ29sb3JNb2RlID0gKFxuICBwcm9wczogTXVsdGlWYWx1ZVByb3BzPEV4dGVuZGVkT3B0aW9uLCB0cnVlLCBHcm91cEJhc2U8RXh0ZW5kZWRPcHRpb24+PlxuKSA9PiB7XG4gIGNvbnN0IHsgY3VycmVudEZvY3VzZWRWYWx1ZSwgc2V0Q3VycmVudEZvY3VzZWRWYWx1ZSB9ID0gdXNlQ29udGV4dChcbiAgICBTZWxlY3REcm9wZG93bkNvbnRleHRcbiAgKTtcblxuICBjb25zdCB7IGRhdGEgfSA9IHByb3BzO1xuXG4gIGNvbnN0IHsgdmFsdWUsIGxhYmVsIH0gPSBkYXRhO1xuXG4gIGlmIChcbiAgICBwcm9wcy5pc0ZvY3VzZWQgJiZcbiAgICBzZXRDdXJyZW50Rm9jdXNlZFZhbHVlICYmXG4gICAgY3VycmVudEZvY3VzZWRWYWx1ZSAhPT0gdmFsdWVcbiAgKSB7XG4gICAgc2V0Q3VycmVudEZvY3VzZWRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBpZiAoXG4gICAgIXByb3BzLmlzRm9jdXNlZCAmJlxuICAgIHNldEN1cnJlbnRGb2N1c2VkVmFsdWUgJiZcbiAgICBjdXJyZW50Rm9jdXNlZFZhbHVlID09PSB2YWx1ZVxuICApIHtcbiAgICBzZXRDdXJyZW50Rm9jdXNlZFZhbHVlKHVuZGVmaW5lZCk7XG4gIH1cbiAgY29uc3QgZGlzcGxheVRleHQgPSBkYXRhPy5hYmJyZXZpYXRpb24gPyBkYXRhLmFiYnJldmlhdGlvbiA6IGxhYmVsIHx8ICcnO1xuXG4gIHJldHVybiA8TXVsdGlWYWx1ZSB7Li4ucHJvcHN9PntkaXNwbGF5VGV4dH08L011bHRpVmFsdWU+O1xufTtcblxuLyoqXG4gKiBDdXN0b20gcmVtb3ZlIGJ1dHRvbiBmb3IgbXVsdGktdmFsdWUgaXRlbXMuXG4gKiBQcm92aWRlcyBhY2Nlc3NpYmxlIHJlbW92YWwgZnVuY3Rpb25hbGl0eSB3aXRoIHByb3BlciBBUklBIGxhYmVscy5cbiAqL1xuZXhwb3J0IGNvbnN0IE11bHRpVmFsdWVSZW1vdmVCdXR0b24gPSAoXG4gIHByb3BzOiBNdWx0aVZhbHVlUmVtb3ZlUHJvcHM8RXh0ZW5kZWRPcHRpb24sIHRydWUsIEdyb3VwQmFzZTxFeHRlbmRlZE9wdGlvbj4+XG4pID0+IHtcbiAgY29uc3QgeyB0cmFuc2xhdGlvbnMgfSA9IHVzZUNvbnRleHQoU2VsZWN0RHJvcGRvd25Db250ZXh0KTtcbiAgY29uc3QgeyBsYWJlbCB9ID0gcHJvcHM/LmRhdGEgPz8geyBsYWJlbDogJycgfTtcblxuICBwcm9wcy5pbm5lclByb3BzWydhcmlhLWxhYmVsJ10gPSB0cmFuc2xhdGlvbnMucmVtb3ZlT3B0aW9uTGFiZWwobGFiZWwpO1xuXG4gIHJldHVybiAoXG4gICAgPE11bHRpVmFsdWVSZW1vdmUgey4uLnByb3BzfT5cbiAgICAgIDxNaW5pRGVsZXRlSWNvbiBzaXplPXsxMn0gLz5cbiAgICA8L011bHRpVmFsdWVSZW1vdmU+XG4gICk7XG59O1xuXG4vKipcbiAqIEN1c3RvbSByZW1vdmUgYWxsIGJ1dHRvbiBmb3IgbXVsdGktc2VsZWN0IG1vZGUuXG4gKiBQcm92aWRlcyBrZXlib2FyZCBuYXZpZ2F0aW9uIGFuZCBhY2Nlc3NpYmxlIHJlbW92YWwgb2YgYWxsIHNlbGVjdGVkIHZhbHVlcy5cbiAqL1xuXG5jb25zdCBDdXN0b21TdHlsZWRSZW1vdmVBbGxEaXYgPSBzdHlsZWQoJ2RpdicpKFxuICBjc3Moe1xuICAgICcmOmZvY3VzJzoge1xuICAgICAgb3V0bGluZTogYDJweCBzb2xpZCAke3RoZW1lLmNvbG9ycy5wcmltYXJ5fWAsXG4gICAgfSxcbiAgICAnJjpmb2N1cy12aXNpYmxlJzoge1xuICAgICAgb3V0bGluZTogYDJweCBzb2xpZCAke3RoZW1lLmNvbG9ycy5wcmltYXJ5fWAsXG4gICAgfSxcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBSZW1vdmVBbGxCdXR0b24gPSAocHJvcHM6IFNpemVkSW5kaWNhdG9yUHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGdldFN0eWxlcyxcbiAgICBpbm5lclByb3BzOiB7IC4uLnJlc3RJbm5lclByb3BzIH0sXG4gICAgc2VsZWN0UHJvcHM6IHsgc2l6ZSB9LFxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3QgeyByZW1vdmVBbGxCdXR0b25SZWYsIHNlbGVjdElucHV0UmVmLCB0cmFuc2xhdGlvbnMgfSA9IHVzZUNvbnRleHQoXG4gICAgU2VsZWN0RHJvcGRvd25Db250ZXh0XG4gICk7XG5cbiAgY29uc3QgaWNvblNpemUgPSBzaXplID8/ICdtZWRpdW0nO1xuICBjb25zdCB7IC4uLmljb25Qcm9wcyB9ID0gaW5kaWNhdG9ySWNvbnNbYCR7aWNvblNpemV9UmVtb3ZlYF07XG4gIGNvbnN0IHsgaWNvbjogSW5kaWNhdG9ySWNvbiB9ID0gaWNvblByb3BzO1xuXG4gIGNvbnN0IG9uS2V5UHJlc3MgPSAoZTogS2V5Ym9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiYgcmVzdElubmVyUHJvcHMub25Nb3VzZURvd24pIHtcbiAgICAgIHJlc3RJbm5lclByb3BzLm9uTW91c2VEb3duKGUgYXMgYW55KTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBzZWxlY3RJbnB1dFJlZj8uY3VycmVudCAmJlxuICAgICAgKGUua2V5ID09PSAnQXJyb3dSaWdodCcgfHwgZS5rZXkgPT09ICdBcnJvd0xlZnQnIHx8IGUua2V5ID09PSAnQXJyb3dEb3duJylcbiAgICApIHtcbiAgICAgIHNlbGVjdElucHV0UmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgc3R5bGUgPSBnZXRTdHlsZXMoJ2NsZWFySW5kaWNhdG9yJywgcHJvcHMpIGFzIFJlYWN0LkNTU1Byb3BlcnRpZXM7XG5cbiAgcmV0dXJuIChcbiAgICA8Q3VzdG9tU3R5bGVkUmVtb3ZlQWxsRGl2XG4gICAgICBhcmlhLWxhYmVsPXt0cmFuc2xhdGlvbnMuY2xlYXJBbGxMYWJlbH1cbiAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICB7Li4ucmVzdElubmVyUHJvcHN9XG4gICAgICByZWY9e3JlbW92ZUFsbEJ1dHRvblJlZiBhcyBSZWFjdC5SZWY8SFRNTERpdkVsZW1lbnQ+fVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGdhbXV0L25vLWlubGluZS1zdHlsZVxuICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgb25LZXlEb3duPXtvbktleVByZXNzfVxuICAgID5cbiAgICAgIDxJbmRpY2F0b3JJY29uIHsuLi5pY29uUHJvcHN9IGNvbG9yPVwidGV4dFwiIC8+XG4gICAgPC9DdXN0b21TdHlsZWRSZW1vdmVBbGxEaXY+XG4gICk7XG59O1xuIl19 */");
export const RemoveAllButton = props => {
const {
getStyles,
innerProps: {
@@ -87,9 +90,10 @@
}
} = props;
const {
removeAllButtonRef,
- selectInputRef
+ selectInputRef,
+ translations
} = useContext(SelectDropdownContext);
const iconSize = size ?? 'medium';
const {
...iconProps
@@ -106,9 +110,9 @@
}
};
const style = getStyles('clearIndicator', props);
return /*#__PURE__*/_jsx(CustomStyledRemoveAllDiv, {
- "aria-label": "Remove all selected",
+ "aria-label": translations.clearAllLabel,
role: "button",
tabIndex: 0,
...restInnerProps,
ref: removeAllButtonRef Index: package/dist/Form/SelectDropdown/SelectDropdown.js
===================================================================
--- package/dist/Form/SelectDropdown/SelectDropdown.js
+++ package/dist/Form/SelectDropdown/SelectDropdown.js
@@ -2,11 +2,11 @@
import { screenReaderOnly } from '@codecademy/gamut-styles';
import { useTheme } from '@emotion/react';
import { useId, useMemo, useRef, useState } from 'react';
import * as React from 'react';
-import { onFocus } from './core/accessibility';
import { getDefaultComponents } from './core/constants';
import { getMemoizedStyles } from './core/styles';
+import { DEFAULT_SELECT_DROPDOWN_TRANSLATIONS } from './core/translations';
import { resolveNoOptionsMessage } from './core/utils';
import { formatGroupLabel, formatOptionLabel, SelectDropdownContext, TypedReactSelect } from './elements';
import { useNoOptionsAnnouncement } from './hooks/useNoOptionsAnnouncement';
import { useSelectHandlers } from './hooks/useSelectHandlers';
@@ -15,9 +15,9 @@
/** Announces the custom `validationMessage` menu text - see `useNoOptionsAnnouncement`. */
const NoOptionsLiveRegion = /*#__PURE__*/_styled("div", {
target: "e2dtq0m0",
label: "NoOptionsLiveRegion"
-})(screenReaderOnly, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9Gb3JtL1NlbGVjdERyb3Bkb3duL1NlbGVjdERyb3Bkb3duLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1QjRCIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9Gb3JtL1NlbGVjdERyb3Bkb3duL1NlbGVjdERyb3Bkb3duLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNjcmVlblJlYWRlck9ubHkgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB1c2VJZCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFN0eWxlc0NvbmZpZyB9IGZyb20gJ3JlYWN0LXNlbGVjdCc7XG5cbmltcG9ydCB7IG9uRm9jdXMgfSBmcm9tICcuL2NvcmUvYWNjZXNzaWJpbGl0eSc7XG5pbXBvcnQgeyBnZXREZWZhdWx0Q29tcG9uZW50cyB9IGZyb20gJy4vY29yZS9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0TWVtb2l6ZWRTdHlsZXMgfSBmcm9tICcuL2NvcmUvc3R5bGVzJztcbmltcG9ydCB7IHJlc29sdmVOb09wdGlvbnNNZXNzYWdlIH0gZnJvbSAnLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7XG4gIGZvcm1hdEdyb3VwTGFiZWwsXG4gIGZvcm1hdE9wdGlvbkxhYmVsLFxuICBTZWxlY3REcm9wZG93bkNvbnRleHQsXG4gIFR5cGVkUmVhY3RTZWxlY3QsXG59IGZyb20gJy4vZWxlbWVudHMnO1xuaW1wb3J0IHsgdXNlTm9PcHRpb25zQW5ub3VuY2VtZW50IH0gZnJvbSAnLi9ob29rcy91c2VOb09wdGlvbnNBbm5vdW5jZW1lbnQnO1xuaW1wb3J0IHsgdXNlU2VsZWN0SGFuZGxlcnMgfSBmcm9tICcuL2hvb2tzL3VzZVNlbGVjdEhhbmRsZXJzJztcbmltcG9ydCB7IHVzZVNlbGVjdE9wdGlvbnMgfSBmcm9tICcuL2hvb2tzL3VzZVNlbGVjdE9wdGlvbnMnO1xuaW1wb3J0IHsgT3B0aW9uU3RyaWN0LCBTZWxlY3REcm9wZG93blByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKiBBbm5vdW5jZXMgdGhlIGN1c3RvbSBgdmFsaWRhdGlvbk1lc3NhZ2VgIG1lbnUgdGV4dCAtIHNlZSBgdXNlTm9PcHRpb25zQW5ub3VuY2VtZW50YC4gKi9cbmNvbnN0IE5vT3B0aW9uc0xpdmVSZWdpb24gPSBzdHlsZWQuZGl2KHNjcmVlblJlYWRlck9ubHkpO1xuXG4vKipcbiAqIEEgZmxleGlibGUgZHJvcGRvd24gc2VsZWN0IGNvbXBvbmVudCBidWlsdCBvbiB0b3Agb2YgcmVhY3Qtc2VsZWN0LlxuICpcbiAqIFN1cHBvcnRzIGJvdGggc2luZ2xlIGFuZCBtdWx0aS1zZWxlY3QgbW9kZXMgd2l0aCBjdXN0b21pemFibGUgb3B0aW9ucyBpbmNsdWRpbmdcbiAqIGljb25zLCBzdWJ0aXRsZXMsIHJpZ2h0IGxhYmVscywgYW5kIGFiYnJldmlhdGlvbnMuIFRoZSBjb21wb25lbnQgcHJvdmlkZXNcbiAqIGFjY2Vzc2liaWxpdHkgZmVhdHVyZXMsIGtleWJvYXJkIG5hdmlnYXRpb24sIGFuZCByZXNwb25zaXZlIHN0eWxpbmcuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogLy8gQmFzaWMgc2luZ2xlIHNlbGVjdFxuICogPFNlbGVjdERyb3Bkb3duXG4gKiAgIG5hbWU9XCJjb3VudHJ5XCJcbiAqICAgb3B0aW9ucz17W1xuICogICAgIHsgbGFiZWw6ICdVbml0ZWQgU3RhdGVzJywgdmFsdWU6ICd1cycgfSxcbiAqICAgICB7IGxhYmVsOiAnQ2FuYWRhJywgdmFsdWU6ICdjYScgfVxuICogICBdfVxuICogICBvbkNoYW5nZT17KG9wdGlvbikgPT4gY29uc29sZS5sb2cob3B0aW9uKX1cbiAqIC8+XG4gKlxuICogLy8gTXVsdGktc2VsZWN0IHdpdGggaWNvbnNcbiAqIDxTZWxlY3REcm9wZG93blxuICogICBuYW1lPVwic2tpbGxzXCJcbiAqICAgbXVsdGlwbGVcbiAqICAgb3B0aW9ucz17W1xuICogICAgIHsgbGFiZWw6ICdSZWFjdCcsIHZhbHVlOiAncmVhY3QnLCBpY29uOiBSZWFjdEljb24gfSxcbiAqICAgICB7IGxhYmVsOiAnVHlwZVNjcmlwdCcsIHZhbHVlOiAndHMnLCBpY29uOiBUeXBlU2NyaXB0SWNvbiB9XG4gKiAgIF19XG4gKiAgIG9uQ2hhbmdlPXsob3B0aW9ucykgPT4gY29uc29sZS5sb2cob3B0aW9ucyl9XG4gKiAvPlxuICpcbiAqIC8vIEdyb3VwZWQgb3B0aW9ucyB3aXRoIGV4dGVuZGVkIGZlYXR1cmVzXG4gKiA8U2VsZWN0RHJvcGRvd25cbiAqICAgbmFtZT1cImNhdGVnb3J5XCJcbiAqICAgcGxhY2Vob2xkZXI9XCJEZWZhdWx0IHBsYWNlaG9sZGVyIHRleHRcIlxuICogICBvcHRpb25zPXtbXG4gKiAgICAge1xuICogICAgICAgbGFiZWw6ICdGcm9udGVuZCcsXG4gKiAgICAgICBvcHRpb25zOiBbXG4gKiAgICAgICAgIHsgbGFiZWw6ICdSZWFjdCcsIHZhbHVlOiAncmVhY3QnLCBzdWJ0aXRsZTogJ1VJIExpYnJhcnknIH0sXG4gKiAgICAgICAgIHsgbGFiZWw6ICdWdWUnLCB2YWx1ZTogJ3Z1ZScsIHN1YnRpdGxlOiAnUHJvZ3Jlc3NpdmUgRnJhbWV3b3JrJyB9XG4gKiAgICAgICBdXG4gKiAgICAgfVxuICogICBdfVxuICogLz5cbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgU2VsZWN0RHJvcGRvd246IFJlYWN0LkZDPFNlbGVjdERyb3Bkb3duUHJvcHM+ID0gKHtcbiAgY3JlYXRlT3B0aW9uUG9zaXRpb24sXG4gIGRpc2FibGVkLFxuICBkcm9wZG93bldpZHRoLFxuICBlcnJvcixcbiAgZm9ybWF0Q3JlYXRlTGFiZWwgPSAoaW5wdXRWYWx1ZTogc3RyaW5nKSA9PiBgQWRkIFwiJHtpbnB1dFZhbHVlfVwiYCxcbiAgaWQsXG4gIGlucHV0UHJvcHMsXG4gIGlucHV0V2lkdGgsXG4gIGlzQ3JlYXRhYmxlID0gZmFsc2UsXG4gIGlzU2VhcmNoYWJsZTogaXNTZWFyY2hhYmxlUHJvcCA9IGZhbHNlLFxuICBpc1ZhbGlkTmV3T3B0aW9uLFxuICBtZW51QWxpZ25tZW50ID0gJ2xlZnQnLFxuICBtdWx0aXBsZSxcbiAgbmFtZSxcbiAgb25DaGFuZ2UsXG4gIG9uQ3JlYXRlT3B0aW9uLFxuICBvbklucHV0Q2hhbmdlLFxuICBvbk1lbnVDbG9zZSxcbiAgb3B0aW9ucyxcbiAgcGxhY2Vob2xkZXIgPSAnU2VsZWN0IGFuIG9wdGlvbicsXG4gIHNob3duT3B0aW9uc0xpbWl0ID0gNixcbiAgc2l6ZSxcbiAgdmFsaWRhdGlvbk1lc3NhZ2UsXG4gIHZhbHVlLFxuICB6SW5kZXgsXG4gIC4uLnJlc3Rcbn0pID0+IHtcbiAgLy8gaXNTZWFyY2hhYmxlIGlzIGZvcmNlZCB0cnVlIHdoZW4gaXNDcmVhdGFibGUgaXMgdHJ1ZSAoQ3JlYXRhYmxlU2VsZWN0IHJlcXVpcmVzIGEgdGV4dCBpbnB1dClcbiAgY29uc3QgaXNTZWFyY2hhYmxlID0gaXNDcmVhdGFibGUgfHwgaXNTZWFyY2hhYmxlUHJvcDtcbiAgY29uc3QgcmF3SW5wdXRJZCA9IHVzZUlkKCk7XG4gIGNvbnN0IGlucHV0SWQgPSBuYW1lID8/IGAke2lkID8/IHJhd0lucHV0SWR9LXNlbGVjdC1kcm9wZG93bi0ke3Jhd0lucHV0SWR9YDtcblxuICBjb25zdCByZW1vdmVBbGxCdXR0b25SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBzZWxlY3RJbnB1dFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3QgW2N1cnJlbnRGb2N1c2VkVmFsdWUsIHNldEN1cnJlbnRGb2N1c2VkVmFsdWVdID0gdXNlU3RhdGUodW5kZWZpbmVkKTtcblxuICBjb25zdCB7IHNlbGVjdE9wdGlvbnMsIHBhcnNlZFZhbHVlIH0gPSB1c2VTZWxlY3RPcHRpb25zKHtcbiAgICBvcHRpb25zLFxuICAgIGlkLFxuICAgIHNpemUsXG4gICAgdmFsdWU6IHZhbHVlIGFzIHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICB9KTtcblxuICBjb25zdCBub09wdGlvbnNNZXNzYWdlID0gcmVzb2x2ZU5vT3B0aW9uc01lc3NhZ2UodmFsaWRhdGlvbk1lc3NhZ2UpO1xuICBjb25zdCB7IG5vT3B0aW9uc01lc3NhZ2VDb21wb25lbnQsIGFubm91bmNlbWVudCwgY2xlYXJBbm5vdW5jZW1lbnQgfSA9XG4gICAgdXNlTm9PcHRpb25zQW5ub3VuY2VtZW50KCk7XG4gIGNvbnN0IGNvbXBvbmVudHMgPSB1c2VNZW1vKFxuICAgICgpID0+IGdldERlZmF1bHRDb21wb25lbnRzKG5vT3B0aW9uc01lc3NhZ2VDb21wb25lbnQpLFxuICAgIFtub09wdGlvbnNNZXNzYWdlQ29tcG9uZW50XVxuICApO1xuICBjb25zdCBoYW5kbGVNZW51Q2xvc2UgPSAoKSA9PiB7XG4gICAgY2xlYXJBbm5vdW5jZW1lbnQoKTtcbiAgICBvbk1lbnVDbG9zZT8uKCk7XG4gIH07XG5cbiAgY29uc3QgeyBhY3RpdmF0ZWQsIG11bHRpVmFsdWVzLCBjaGFuZ2VIYW5kbGVyLCBrZXlQcmVzc0hhbmRsZXIgfSA9XG4gICAgdXNlU2VsZWN0SGFuZGxlcnMoe1xuICAgICAgb25DaGFuZ2UsXG4gICAgICBtdWx0aXBsZSxcbiAgICAgIG9uQ3JlYXRlT3B0aW9uLFxuICAgICAgc2VsZWN0T3B0aW9ucyxcbiAgICAgIHZhbHVlLFxuICAgICAgY3VycmVudEZvY3VzZWRWYWx1ZSxcbiAgICAgIHJlbW92ZUFsbEJ1dHRvblJlZixcbiAgICB9KTtcblxuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IG1lbW9pemVkU3R5bGVzID0gdXNlTWVtbygoKTogU3R5bGVzQ29uZmlnPGFueSwgZmFsc2U+ID0+IHtcbiAgICByZXR1cm4gZ2V0TWVtb2l6ZWRTdHlsZXModGhlbWUsIHpJbmRleCk7XG4gIH0sIFt0aGVtZSwgekluZGV4XSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U2VsZWN0RHJvcGRvd25Db250ZXh0LlByb3ZpZGVyXG4gICAgICB2YWx1ZT17e1xuICAgICAgICBjdXJyZW50Rm9jdXNlZFZhbHVlLFxuICAgICAgICBzZXRDdXJyZW50Rm9jdXNlZFZhbHVlLFxuICAgICAgICByZW1vdmVBbGxCdXR0b25SZWYsXG4gICAgICAgIHNlbGVjdElucHV0UmVmLFxuICAgICAgfX1cbiAgICA+XG4gICAgICA8VHlwZWRSZWFjdFNlbGVjdFxuICAgICAgICBhY3RpdmF0ZWQ9e2FjdGl2YXRlZH1cbiAgICAgICAgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCJcbiAgICAgICAgYXJpYUxpdmVNZXNzYWdlcz17eyBvbkZvY3VzIH19XG4gICAgICAgIGNvbXBvbmVudHM9e2NvbXBvbmVudHN9XG4gICAgICAgIGNyZWF0ZU9wdGlvblBvc2l0aW9uPXtjcmVhdGVPcHRpb25Qb3NpdGlvbn1cbiAgICAgICAgZHJvcGRvd25XaWR0aD17ZHJvcGRvd25XaWR0aH1cbiAgICAgICAgZXJyb3I9e0Jvb2xlYW4oZXJyb3IpfVxuICAgICAgICBmb3JtYXRDcmVhdGVMYWJlbD17Zm9ybWF0Q3JlYXRlTGFiZWx9XG4gICAgICAgIGZvcm1hdEdyb3VwTGFiZWw9e2Zvcm1hdEdyb3VwTGFiZWx9XG4gICAgICAgIGZvcm1hdE9wdGlvbkxhYmVsPXtmb3JtYXRPcHRpb25MYWJlbH1cbiAgICAgICAgaWQ9e2lkIHx8IHJlc3QuaHRtbEZvciB8fCByYXdJbnB1dElkfVxuICAgICAgICBpbnB1dElkPXtpbnB1dElkfVxuICAgICAgICBpbnB1dFByb3BzPXt7IC4uLmlucHV0UHJvcHMgfX1cbiAgICAgICAgaW5wdXRXaWR0aD17aW5wdXRXaWR0aH1cbiAgICAgICAgaXNDcmVhdGFibGU9e2lzQ3JlYXRhYmxlfVxuICAgICAgICBpc0Rpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgaXNNdWx0aT17bXVsdGlwbGV9XG4gICAgICAgIGlzT3B0aW9uRGlzYWJsZWQ9eyhvcHRpb246IE9wdGlvblN0cmljdCAmIHsgZGlzYWJsZWQ/OiBib29sZWFuIH0pID0+XG4gICAgICAgICAgb3B0aW9uLmRpc2FibGVkID8/IGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaXNTZWFyY2hhYmxlPXtpc1NlYXJjaGFibGV9XG4gICAgICAgIGlzVmFsaWROZXdPcHRpb249e2lzVmFsaWROZXdPcHRpb259XG4gICAgICAgIG1lbnVBbGlnbm1lbnQ9e21lbnVBbGlnbm1lbnR9XG4gICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgIG5vT3B0aW9uc01lc3NhZ2U9e25vT3B0aW9uc01lc3NhZ2V9XG4gICAgICAgIG9wdGlvbnM9e3NlbGVjdE9wdGlvbnN9XG4gICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgc2VsZWN0UmVmPXtzZWxlY3RJbnB1dFJlZn1cbiAgICAgICAgc2hvd25PcHRpb25zTGltaXQ9e3Nob3duT3B0aW9uc0xpbWl0fVxuICAgICAgICBzaXplPXtzaXplfVxuICAgICAgICBzdHlsZXM9e21lbW9pemVkU3R5bGVzfVxuICAgICAgICB2YWx1ZT17bXVsdGlwbGUgPyBtdWx0aVZhbHVlcyA6IHBhcnNlZFZhbHVlfVxuICAgICAgICBvbkNoYW5nZT17Y2hhbmdlSGFuZGxlcn1cbiAgICAgICAgb25JbnB1dENoYW5nZT17b25JbnB1dENoYW5nZX1cbiAgICAgICAgb25LZXlEb3duPXttdWx0aXBsZSA/IGtleVByZXNzSGFuZGxlciA6IHVuZGVmaW5lZH1cbiAgICAgICAgb25NZW51Q2xvc2U9e2hhbmRsZU1lbnVDbG9zZX1cbiAgICAgICAgey4uLnJlc3R9XG4gICAgICAvPlxuICAgICAgPE5vT3B0aW9uc0xpdmVSZWdpb24gYXJpYS1saXZlPVwicG9saXRlXCIgcm9sZT1cInN0YXR1c1wiPlxuICAgICAgICB7YW5ub3VuY2VtZW50fVxuICAgICAgPC9Ob09wdGlvbnNMaXZlUmVnaW9uPlxuICAgIDwvU2VsZWN0RHJvcGRvd25Db250ZXh0LlByb3ZpZGVyPlxuICApO1xufTtcbiJdfQ== */");
+})(screenReaderOnly, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9Gb3JtL1NlbGVjdERyb3Bkb3duL1NlbGVjdERyb3Bkb3duLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1QjRCIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9Gb3JtL1NlbGVjdERyb3Bkb3duL1NlbGVjdERyb3Bkb3duLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNjcmVlblJlYWRlck9ubHkgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB1c2VJZCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFN0eWxlc0NvbmZpZyB9IGZyb20gJ3JlYWN0LXNlbGVjdCc7XG5cbmltcG9ydCB7IGdldERlZmF1bHRDb21wb25lbnRzIH0gZnJvbSAnLi9jb3JlL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRNZW1vaXplZFN0eWxlcyB9IGZyb20gJy4vY29yZS9zdHlsZXMnO1xuaW1wb3J0IHsgREVGQVVMVF9TRUxFQ1RfRFJPUERPV05fVFJBTlNMQVRJT05TIH0gZnJvbSAnLi9jb3JlL3RyYW5zbGF0aW9ucyc7XG5pbXBvcnQgeyByZXNvbHZlTm9PcHRpb25zTWVzc2FnZSB9IGZyb20gJy4vY29yZS91dGlscyc7XG5pbXBvcnQge1xuICBmb3JtYXRHcm91cExhYmVsLFxuICBmb3JtYXRPcHRpb25MYWJlbCxcbiAgU2VsZWN0RHJvcGRvd25Db250ZXh0LFxuICBUeXBlZFJlYWN0U2VsZWN0LFxufSBmcm9tICcuL2VsZW1lbnRzJztcbmltcG9ydCB7IHVzZU5vT3B0aW9uc0Fubm91bmNlbWVudCB9IGZyb20gJy4vaG9va3MvdXNlTm9PcHRpb25zQW5ub3VuY2VtZW50JztcbmltcG9ydCB7IHVzZVNlbGVjdEhhbmRsZXJzIH0gZnJvbSAnLi9ob29rcy91c2VTZWxlY3RIYW5kbGVycyc7XG5pbXBvcnQgeyB1c2VTZWxlY3RPcHRpb25zIH0gZnJvbSAnLi9ob29rcy91c2VTZWxlY3RPcHRpb25zJztcbmltcG9ydCB7IE9wdGlvblN0cmljdCwgU2VsZWN0RHJvcGRvd25Qcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKiogQW5ub3VuY2VzIHRoZSBjdXN0b20gYHZhbGlkYXRpb25NZXNzYWdlYCBtZW51IHRleHQgLSBzZWUgYHVzZU5vT3B0aW9uc0Fubm91bmNlbWVudGAuICovXG5jb25zdCBOb09wdGlvbnNMaXZlUmVnaW9uID0gc3R5bGVkLmRpdihzY3JlZW5SZWFkZXJPbmx5KTtcblxuLyoqXG4gKiBBIGZsZXhpYmxlIGRyb3Bkb3duIHNlbGVjdCBjb21wb25lbnQgYnVpbHQgb24gdG9wIG9mIHJlYWN0LXNlbGVjdC5cbiAqXG4gKiBTdXBwb3J0cyBib3RoIHNpbmdsZSBhbmQgbXVsdGktc2VsZWN0IG1vZGVzIHdpdGggY3VzdG9taXphYmxlIG9wdGlvbnMgaW5jbHVkaW5nXG4gKiBpY29ucywgc3VidGl0bGVzLCByaWdodCBsYWJlbHMsIGFuZCBhYmJyZXZpYXRpb25zLiBUaGUgY29tcG9uZW50IHByb3ZpZGVzXG4gKiBhY2Nlc3NpYmlsaXR5IGZlYXR1cmVzLCBrZXlib2FyZCBuYXZpZ2F0aW9uLCBhbmQgcmVzcG9uc2l2ZSBzdHlsaW5nLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIC8vIEJhc2ljIHNpbmdsZSBzZWxlY3RcbiAqIDxTZWxlY3REcm9wZG93blxuICogICBuYW1lPVwiY291bnRyeVwiXG4gKiAgIG9wdGlvbnM9e1tcbiAqICAgICB7IGxhYmVsOiAnVW5pdGVkIFN0YXRlcycsIHZhbHVlOiAndXMnIH0sXG4gKiAgICAgeyBsYWJlbDogJ0NhbmFkYScsIHZhbHVlOiAnY2EnIH1cbiAqICAgXX1cbiAqICAgb25DaGFuZ2U9eyhvcHRpb24pID0+IGNvbnNvbGUubG9nKG9wdGlvbil9XG4gKiAvPlxuICpcbiAqIC8vIE11bHRpLXNlbGVjdCB3aXRoIGljb25zXG4gKiA8U2VsZWN0RHJvcGRvd25cbiAqICAgbmFtZT1cInNraWxsc1wiXG4gKiAgIG11bHRpcGxlXG4gKiAgIG9wdGlvbnM9e1tcbiAqICAgICB7IGxhYmVsOiAnUmVhY3QnLCB2YWx1ZTogJ3JlYWN0JywgaWNvbjogUmVhY3RJY29uIH0sXG4gKiAgICAgeyBsYWJlbDogJ1R5cGVTY3JpcHQnLCB2YWx1ZTogJ3RzJywgaWNvbjogVHlwZVNjcmlwdEljb24gfVxuICogICBdfVxuICogICBvbkNoYW5nZT17KG9wdGlvbnMpID0+IGNvbnNvbGUubG9nKG9wdGlvbnMpfVxuICogLz5cbiAqXG4gKiAvLyBHcm91cGVkIG9wdGlvbnMgd2l0aCBleHRlbmRlZCBmZWF0dXJlc1xuICogPFNlbGVjdERyb3Bkb3duXG4gKiAgIG5hbWU9XCJjYXRlZ29yeVwiXG4gKiAgIHBsYWNlaG9sZGVyPVwiRGVmYXVsdCBwbGFjZWhvbGRlciB0ZXh0XCJcbiAqICAgb3B0aW9ucz17W1xuICogICAgIHtcbiAqICAgICAgIGxhYmVsOiAnRnJvbnRlbmQnLFxuICogICAgICAgb3B0aW9uczogW1xuICogICAgICAgICB7IGxhYmVsOiAnUmVhY3QnLCB2YWx1ZTogJ3JlYWN0Jywgc3VidGl0bGU6ICdVSSBMaWJyYXJ5JyB9LFxuICogICAgICAgICB7IGxhYmVsOiAnVnVlJywgdmFsdWU6ICd2dWUnLCBzdWJ0aXRsZTogJ1Byb2dyZXNzaXZlIEZyYW1ld29yaycgfVxuICogICAgICAgXVxuICogICAgIH1cbiAqICAgXX1cbiAqIC8+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IFNlbGVjdERyb3Bkb3duOiBSZWFjdC5GQzxTZWxlY3REcm9wZG93blByb3BzPiA9ICh7XG4gIGNyZWF0ZU9wdGlvblBvc2l0aW9uLFxuICBkaXNhYmxlZCxcbiAgZHJvcGRvd25XaWR0aCxcbiAgZXJyb3IsXG4gIGZvcm1hdENyZWF0ZUxhYmVsLFxuICBpZCxcbiAgaW5wdXRQcm9wcyxcbiAgaW5wdXRXaWR0aCxcbiAgaXNDcmVhdGFibGUgPSBmYWxzZSxcbiAgaXNTZWFyY2hhYmxlOiBpc1NlYXJjaGFibGVQcm9wID0gZmFsc2UsXG4gIGlzVmFsaWROZXdPcHRpb24sXG4gIG1lbnVBbGlnbm1lbnQgPSAnbGVmdCcsXG4gIG11bHRpcGxlLFxuICBuYW1lLFxuICBvbkNoYW5nZSxcbiAgb25DcmVhdGVPcHRpb24sXG4gIG9uSW5wdXRDaGFuZ2UsXG4gIG9uTWVudUNsb3NlLFxuICBvcHRpb25zLFxuICBwbGFjZWhvbGRlcixcbiAgc2hvd25PcHRpb25zTGltaXQgPSA2LFxuICBzaXplLFxuICB0cmFuc2xhdGlvbnMsXG4gIHZhbGlkYXRpb25NZXNzYWdlLFxuICB2YWx1ZSxcbiAgekluZGV4LFxuICAuLi5yZXN0XG59KSA9PiB7XG4gIGNvbnN0IG1lcmdlZFRyYW5zbGF0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHsgLi4uREVGQVVMVF9TRUxFQ1RfRFJPUERPV05fVFJBTlNMQVRJT05TLCAuLi50cmFuc2xhdGlvbnMgfSksXG4gICAgW3RyYW5zbGF0aW9uc11cbiAgKTtcbiAgLy8gaXNTZWFyY2hhYmxlIGlzIGZvcmNlZCB0cnVlIHdoZW4gaXNDcmVhdGFibGUgaXMgdHJ1ZSAoQ3JlYXRhYmxlU2VsZWN0IHJlcXVpcmVzIGEgdGV4dCBpbnB1dClcbiAgY29uc3QgaXNTZWFyY2hhYmxlID0gaXNDcmVhdGFibGUgfHwgaXNTZWFyY2hhYmxlUHJvcDtcbiAgY29uc3QgcmF3SW5wdXRJZCA9IHVzZUlkKCk7XG4gIGNvbnN0IGlucHV0SWQgPSBuYW1lID8/IGAke2lkID8/IHJhd0lucHV0SWR9LXNlbGVjdC1kcm9wZG93bi0ke3Jhd0lucHV0SWR9YDtcblxuICBjb25zdCByZW1vdmVBbGxCdXR0b25SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBzZWxlY3RJbnB1dFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3QgW2N1cnJlbnRGb2N1c2VkVmFsdWUsIHNldEN1cnJlbnRGb2N1c2VkVmFsdWVdID0gdXNlU3RhdGUodW5kZWZpbmVkKTtcblxuICBjb25zdCB7IHNlbGVjdE9wdGlvbnMsIHBhcnNlZFZhbHVlIH0gPSB1c2VTZWxlY3RPcHRpb25zKHtcbiAgICBvcHRpb25zLFxuICAgIGlkLFxuICAgIHNpemUsXG4gICAgdmFsdWU6IHZhbHVlIGFzIHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICB9KTtcblxuICBjb25zdCBub09wdGlvbnNNZXNzYWdlID0gcmVzb2x2ZU5vT3B0aW9uc01lc3NhZ2UoXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2UsXG4gICAgbWVyZ2VkVHJhbnNsYXRpb25zLnZhbGlkYXRpb25NZXNzYWdlXG4gICk7XG4gIGNvbnN0IHsgbm9PcHRpb25zTWVzc2FnZUNvbXBvbmVudCwgYW5ub3VuY2VtZW50LCBjbGVhckFubm91bmNlbWVudCB9ID1cbiAgICB1c2VOb09wdGlvbnNBbm5vdW5jZW1lbnQoKTtcbiAgY29uc3QgY29tcG9uZW50cyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gZ2V0RGVmYXVsdENvbXBvbmVudHMobm9PcHRpb25zTWVzc2FnZUNvbXBvbmVudCksXG4gICAgW25vT3B0aW9uc01lc3NhZ2VDb21wb25lbnRdXG4gICk7XG4gIGNvbnN0IGhhbmRsZU1lbnVDbG9zZSA9ICgpID0+IHtcbiAgICBjbGVhckFubm91bmNlbWVudCgpO1xuICAgIG9uTWVudUNsb3NlPy4oKTtcbiAgfTtcblxuICBjb25zdCB7IGFjdGl2YXRlZCwgbXVsdGlWYWx1ZXMsIGNoYW5nZUhhbmRsZXIsIGtleVByZXNzSGFuZGxlciB9ID1cbiAgICB1c2VTZWxlY3RIYW5kbGVycyh7XG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG11bHRpcGxlLFxuICAgICAgb25DcmVhdGVPcHRpb24sXG4gICAgICBzZWxlY3RPcHRpb25zLFxuICAgICAgdmFsdWUsXG4gICAgICBjdXJyZW50Rm9jdXNlZFZhbHVlLFxuICAgICAgcmVtb3ZlQWxsQnV0dG9uUmVmLFxuICAgIH0pO1xuXG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgY29uc3QgbWVtb2l6ZWRTdHlsZXMgPSB1c2VNZW1vKCgpOiBTdHlsZXNDb25maWc8YW55LCBmYWxzZT4gPT4ge1xuICAgIHJldHVybiBnZXRNZW1vaXplZFN0eWxlcyh0aGVtZSwgekluZGV4KTtcbiAgfSwgW3RoZW1lLCB6SW5kZXhdKTtcblxuICByZXR1cm4gKFxuICAgIDxTZWxlY3REcm9wZG93bkNvbnRleHQuUHJvdmlkZXJcbiAgICAgIHZhbHVlPXt7XG4gICAgICAgIGN1cnJlbnRGb2N1c2VkVmFsdWUsXG4gICAgICAgIHNldEN1cnJlbnRGb2N1c2VkVmFsdWUsXG4gICAgICAgIHJlbW92ZUFsbEJ1dHRvblJlZixcbiAgICAgICAgc2VsZWN0SW5wdXRSZWYsXG4gICAgICAgIHRyYW5zbGF0aW9uczogbWVyZ2VkVHJhbnNsYXRpb25zLFxuICAgICAgfX1cbiAgICA+XG4gICAgICA8VHlwZWRSZWFjdFNlbGVjdFxuICAgICAgICBhY3RpdmF0ZWQ9e2FjdGl2YXRlZH1cbiAgICAgICAgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCJcbiAgICAgICAgYXJpYUxpdmVNZXNzYWdlcz17e1xuICAgICAgICAgIG9uRm9jdXM6ICh7IGZvY3VzZWQgfSkgPT5cbiAgICAgICAgICAgIG1lcmdlZFRyYW5zbGF0aW9ucy5mb2N1c2VkT3B0aW9uQW5ub3VuY2VtZW50KGZvY3VzZWQpLFxuICAgICAgICB9fVxuICAgICAgICBjb21wb25lbnRzPXtjb21wb25lbnRzfVxuICAgICAgICBjcmVhdGVPcHRpb25Qb3NpdGlvbj17Y3JlYXRlT3B0aW9uUG9zaXRpb259XG4gICAgICAgIGRyb3Bkb3duV2lkdGg9e2Ryb3Bkb3duV2lkdGh9XG4gICAgICAgIGVycm9yPXtCb29sZWFuKGVycm9yKX1cbiAgICAgICAgZm9ybWF0Q3JlYXRlTGFiZWw9e1xuICAgICAgICAgIGZvcm1hdENyZWF0ZUxhYmVsID8/IG1lcmdlZFRyYW5zbGF0aW9ucy5mb3JtYXRDcmVhdGVMYWJlbFxuICAgICAgICB9XG4gICAgICAgIGZvcm1hdEdyb3VwTGFiZWw9e2Zvcm1hdEdyb3VwTGFiZWx9XG4gICAgICAgIGZvcm1hdE9wdGlvbkxhYmVsPXtmb3JtYXRPcHRpb25MYWJlbH1cbiAgICAgICAgaWQ9e2lkIHx8IHJlc3QuaHRtbEZvciB8fCByYXdJbnB1dElkfVxuICAgICAgICBpbnB1dElkPXtpbnB1dElkfVxuICAgICAgICBpbnB1dFByb3BzPXt7IC4uLmlucHV0UHJvcHMgfX1cbiAgICAgICAgaW5wdXRXaWR0aD17aW5wdXRXaWR0aH1cbiAgICAgICAgaXNDcmVhdGFibGU9e2lzQ3JlYXRhYmxlfVxuICAgICAgICBpc0Rpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgaXNNdWx0aT17bXVsdGlwbGV9XG4gICAgICAgIGlzT3B0aW9uRGlzYWJsZWQ9eyhvcHRpb246IE9wdGlvblN0cmljdCAmIHsgZGlzYWJsZWQ/OiBib29sZWFuIH0pID0+XG4gICAgICAgICAgb3B0aW9uLmRpc2FibGVkID8/IGZhbHNlXG4gICAgICAgIH1cbiAgICAgICAgaXNTZWFyY2hhYmxlPXtpc1NlYXJjaGFibGV9XG4gICAgICAgIGlzVmFsaWROZXdPcHRpb249e2lzVmFsaWROZXdPcHRpb259XG4gICAgICAgIG1lbnVBbGlnbm1lbnQ9e21lbnVBbGlnbm1lbnR9XG4gICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgIG5vT3B0aW9uc01lc3NhZ2U9e25vT3B0aW9uc01lc3NhZ2V9XG4gICAgICAgIG9wdGlvbnM9e3NlbGVjdE9wdGlvbnN9XG4gICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlciA/PyBtZXJnZWRUcmFuc2xhdGlvbnMucGxhY2Vob2xkZXJ9XG4gICAgICAgIHNlbGVjdFJlZj17c2VsZWN0SW5wdXRSZWZ9XG4gICAgICAgIHNob3duT3B0aW9uc0xpbWl0PXtzaG93bk9wdGlvbnNMaW1pdH1cbiAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgc3R5bGVzPXttZW1vaXplZFN0eWxlc31cbiAgICAgICAgdmFsdWU9e211bHRpcGxlID8gbXVsdGlWYWx1ZXMgOiBwYXJzZWRWYWx1ZX1cbiAgICAgICAgb25DaGFuZ2U9e2NoYW5nZUhhbmRsZXJ9XG4gICAgICAgIG9uSW5wdXRDaGFuZ2U9e29uSW5wdXRDaGFuZ2V9XG4gICAgICAgIG9uS2V5RG93bj17bXVsdGlwbGUgPyBrZXlQcmVzc0hhbmRsZXIgOiB1bmRlZmluZWR9XG4gICAgICAgIG9uTWVudUNsb3NlPXtoYW5kbGVNZW51Q2xvc2V9XG4gICAgICAgIHsuLi5yZXN0fVxuICAgICAgLz5cbiAgICAgIDxOb09wdGlvbnNMaXZlUmVnaW9uIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIHJvbGU9XCJzdGF0dXNcIj5cbiAgICAgICAge2Fubm91bmNlbWVudH1cbiAgICAgIDwvTm9PcHRpb25zTGl2ZVJlZ2lvbj5cbiAgICA8L1NlbGVjdERyb3Bkb3duQ29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG4iXX0= */");
/**
* A flexible dropdown select component built on top of react-select.
*
@@ -68,9 +68,9 @@
createOptionPosition,
disabled,
dropdownWidth,
error,
- formatCreateLabel = inputValue => `Add "${inputValue}"`,
+ formatCreateLabel,
id,
inputProps,
inputWidth,
isCreatable = false,
@@ -83,16 +83,21 @@
onCreateOption,
onInputChange,
onMenuClose,
options,
- placeholder = 'Select an option',
+ placeholder,
shownOptionsLimit = 6,
size,
+ translations,
validationMessage,
value,
zIndex,
...rest
}) => {
+ const mergedTranslations = useMemo(() => ({
+ ...DEFAULT_SELECT_DROPDOWN_TRANSLATIONS,
+ ...translations
+ }), [translations]);
// isSearchable is forced true when isCreatable is true (CreatableSelect requires a text input)
const isSearchable = isCreatable || isSearchableProp;
const rawInputId = useId();
const inputId = name ?? `${id ?? rawInputId}-select-dropdown-${rawInputId}`;
@@ -107,9 +112,9 @@
id,
size,
value: value
});
- const noOptionsMessage = resolveNoOptionsMessage(validationMessage);
+ const noOptionsMessage = resolveNoOptionsMessage(validationMessage, mergedTranslations.validationMessage);
const {
noOptionsMessageComponent,
announcement,
clearAnnouncement
@@ -141,21 +146,24 @@
value: {
currentFocusedValue,
setCurrentFocusedValue,
removeAllButtonRef,
- selectInputRef
+ selectInputRef,
+ translations: mergedTranslations
},
children: [/*#__PURE__*/_jsx(TypedReactSelect, {
activated: activated,
"aria-live": "assertive",
ariaLiveMessages: {
- onFocus
+ onFocus: ({
+ focused
+ }) => mergedTranslations.focusedOptionAnnouncement(focused)
},
components: components,
createOptionPosition: createOptionPosition,
dropdownWidth: dropdownWidth,
error: Boolean(error),
- formatCreateLabel: formatCreateLabel,
+ formatCreateLabel: formatCreateLabel ?? mergedTranslations.formatCreateLabel,
formatGroupLabel: formatGroupLabel,
formatOptionLabel: formatOptionLabel,
id: id || rest.htmlFor || rawInputId,
inputId: inputId,
@@ -172,9 +180,9 @@
menuAlignment: menuAlignment,
name: name,
noOptionsMessage: noOptionsMessage,
options: selectOptions,
- placeholder: placeholder,
+ placeholder: placeholder ?? mergedTranslations.placeholder,
selectRef: selectInputRef,
shownOptionsLimit: shownOptionsLimit,
size: size,
styles: memoizedStyles, Index: package/dist/Form/SelectDropdown/core/utils.js
===================================================================
--- package/dist/Form/SelectDropdown/core/utils.js
+++ package/dist/Form/SelectDropdown/core/utils.js
@@ -44,14 +44,14 @@
* @param selectedOptions - The currently selected options
* @param value - The value or values to remove
* @returns New array with the specified values removed
*/
-export const resolveNoOptionsMessage = validationMessage => {
- if (validationMessage === undefined) return undefined;
- if (typeof validationMessage === 'function') {
- return validationMessage;
+export const resolveNoOptionsMessage = (validationMessage, translationsValidationMessage) => {
+ const message = validationMessage === undefined ? translationsValidationMessage : validationMessage;
+ if (typeof message === 'function') {
+ return message;
}
- return () => validationMessage;
+ return () => message;
};
export const removeValueFromSelectedOptions = (selectedOptions, value) => {
return selectedOptions.filter(option => {
if (Array.isArray(value)) { Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,16 +1,16 @@
{
"name": "@codecademy/gamut",
"description": "Styleguide & Component library for Codecademy",
- "version": "73.5.0",
+ "version": "73.5.1-alpha.7af239.0",
"author": "Codecademy Engineering <[email protected]>",
"bin": "./bin/gamut.mjs",
"dependencies": {
- "@codecademy/gamut-icons": "10.2.0",
- "@codecademy/gamut-illustrations": "1.1.0",
- "@codecademy/gamut-patterns": "1.1.0",
- "@codecademy/gamut-styles": "21.2.0",
- "@codecademy/variance": "1.1.0",
+ "@codecademy/gamut-icons": "10.2.1-alpha.7af239.0",
+ "@codecademy/gamut-illustrations": "1.1.1-alpha.7af239.0",
+ "@codecademy/gamut-patterns": "1.1.1-alpha.7af239.0",
+ "@codecademy/gamut-styles": "21.2.1-alpha.7af239.0",
+ "@codecademy/variance": "1.1.1-alpha.7af239.0",
"@formatjs/intl-locale": "5.3.1",
"@react-aria/interactions": "3.25.0",
"@types/marked": "^4.0.8",
"@vidstack/react": "^1.12.12", Index: package/dist/Form/SelectDropdown/types/component-props.d.ts
===================================================================
--- package/dist/Form/SelectDropdown/types/component-props.d.ts
+++ package/dist/Form/SelectDropdown/types/component-props.d.ts
@@ -1,7 +1,8 @@
import { Ref, SelectHTMLAttributes } from 'react';
import { Options as OptionsType, Props as NamedProps } from 'react-select';
import { SelectComponentProps } from '../../inputs/Select';
+import { SelectDropdownTranslations, ValidationMessage } from '../core/translations';
import { OptionStrict, SelectDropdownGroup, SelectDropdownOptions } from './options';
import { ReactSelectAdditionalProps, SelectDropdownSizes, SharedProps } from './styles';
/**
* Safe props that can be passed to the combobox input element.
@@ -33,9 +34,12 @@
name: string;
/** Placeholder text shown when no option is selected.
* Placeholder text is not recommended for accessibility. If you need to use placeholder text,
* please make sure the placeholder text doesn't add any new information to the input.
- * I.e - if the placeholder text describes an action you'd like the user to take, please use a label instead. */
+ * I.e - if the placeholder text describes an action you'd like the user to take, please use a label instead.
+ *
+ * @deprecated Use `translations.placeholder` instead.
+ */
placeholder?: string;
/** Array of options or option groups to display in the dropdown */
options?: SelectDropdownOptions | SelectDropdownGroup[];
/**
@@ -52,8 +56,10 @@
onCreateOption?: (inputValue: string) => void;
/**
* Customises the label shown in the "Add" row.
* Defaults to: (inputValue) => `Add "${inputValue}"`.
+ *
+ * @deprecated Use `translations.formatCreateLabel` instead.
*/
formatCreateLabel?: (inputValue: string) => React.ReactNode;
/**
* Controls when the "Add" row is visible.
@@ -73,12 +79,20 @@
* or every option filtered out by a search. Not tied to `isCreatable`; any
* searchable SelectDropdown can use it. Accepts a `ReactNode`, or a function
* receiving `{ inputValue }` for live, input-specific validation/error copy
* (e.g. "No results for '{inputValue}'").
+ *
+ * @deprecated Use `translations.validationMessage` instead. When both are set
+ * this prop takes precedence.
*/
- validationMessage?: React.ReactNode | ((obj: {
- inputValue: string;
- }) => React.ReactNode);
+ validationMessage?: ValidationMessage;
+ /**
+ * Custom translations for UI / microcopy strings (placeholder, "No options"
+ * text, creatable "Add" label, and remove/clear/focus accessibility strings).
+ * Provided keys are merged over the English defaults. Explicit `placeholder`
+ * and `formatCreateLabel` props take precedence over their translation keys.
+ */
+ translations?: Partial<SelectDropdownTranslations>;
}
/**
* Props for single-select mode.
* When multiple is false or undefined, only one option can be selected. Index: package/dist/Form/SelectDropdown/elements/containers.d.ts
===================================================================
--- package/dist/Form/SelectDropdown/elements/containers.d.ts
+++ package/dist/Form/SelectDropdown/elements/containers.d.ts
@@ -2,9 +2,9 @@
import { components as SelectDropdownElements, GroupBase, Props } from 'react-select';
import { CustomSelectComponentProps, SelectDropdownContextValueTypes, TypedReactSelectProps } from '../types';
/**
* React context for sharing state between SelectDropdown components.
- * Provides access to focus state and refs for keyboard navigation.
+ * Provides access to focus state, refs for keyboard navigation, and translations.
*/
export declare const SelectDropdownContext: import("react").Context<SelectDropdownContextValueTypes>;
/**
* Wraps react-select's `NoOptionsMessage` to report its text via Index: package/dist/Form/SelectDropdown/elements/index.d.ts
===================================================================
--- package/dist/Form/SelectDropdown/elements/index.d.ts
+++ package/dist/Form/SelectDropdown/elements/index.d.ts
@@ -1,6 +1,5 @@
export { iconSize, selectedIconSize, indicatorIcons } from './constants';
export { MultiValueWithColorMode, MultiValueRemoveButton, RemoveAllButton, } from './multi-value';
export { DropdownButton } from './controls';
-export { onFocus } from '../core/accessibility';
export { SelectDropdownContext, createNoOptionsMessage, CustomContainer, CustomInput, CustomValueContainer, TypedReactSelect, } from './containers';
export { IconOption, AbbreviatedSingleValue, formatOptionLabel, formatGroupLabel, } from './options'; Index: package/dist/Form/SelectDropdown/index.d.ts
===================================================================
--- package/dist/Form/SelectDropdown/index.d.ts
+++ package/dist/Form/SelectDropdown/index.d.ts
@@ -1,2 +1,3 @@
+export type { SelectDropdownTranslations } from './core/translations';
export * from './types';
export * from './SelectDropdown'; Index: package/dist/Form/SelectDropdown/types/internal.d.ts
===================================================================
--- package/dist/Form/SelectDropdown/types/internal.d.ts
+++ package/dist/Form/SelectDropdown/types/internal.d.ts
@@ -1,7 +1,8 @@
import * as React from 'react';
import { DropdownIndicatorProps, GroupBase } from 'react-select';
import { SelectOptionBase } from '../../utils';
+import { SelectDropdownTranslations } from '../core/translations';
import { OptionStrict } from './options';
import { SelectDropdownSizes, SharedProps } from './styles';
/**
* Internal props passed to custom select components.
@@ -27,8 +28,10 @@
/** Ref to the select input for programmatic focus */
selectInputRef?: ProgrammaticFocusRef;
/** Ref to the remove all button for programmatic focus */
removeAllButtonRef?: ProgrammaticFocusRef;
+ /** Merged translations for microcopy consumed by sub-components */
+ translations: SelectDropdownTranslations;
}
/**
* Props for sized indicator components (dropdown arrow, search icon, etc.).
* Combines react-select's DropdownIndicatorProps with internal select props. Index: package/dist/Form/SelectDropdown/core/utils.d.ts
===================================================================
--- package/dist/Form/SelectDropdown/core/utils.d.ts
+++ package/dist/Form/SelectDropdown/core/utils.d.ts
@@ -1,8 +1,9 @@
import * as React from 'react';
import { ActionMeta, Options as OptionsType } from 'react-select';
import { SelectOptionBase } from '../../utils';
import { BaseOnChangeProps, ExtendedOption, MultiSelectDropdownProps, OptionStrict, SelectDropdownGroup, SelectDropdownOptions, SelectDropdownProps, SingleSelectDropdownProps } from '../types';
+import { ValidationMessage } from './translations';
export declare const isMultipleSelectProps: (props: BaseOnChangeProps) => props is MultiSelectDropdownProps;
export declare const isSingleSelectProps: (props: BaseOnChangeProps) => props is SingleSelectDropdownProps;
/**
* Resolves the value for a newly created option from react-select action metadata
@@ -29,8 +30,8 @@
* @param selectedOptions - The currently selected options
* @param value - The value or values to remove
* @returns New array with the specified values removed
*/
-export declare const resolveNoOptionsMessage: (validationMessage: SelectDropdownProps["validationMessage"]) => ((obj: {
+export declare const resolveNoOptionsMessage: (validationMessage: SelectDropdownProps["validationMessage"], translationsValidationMessage: ValidationMessage) => ((obj: {
inputValue: string;
-}) => React.ReactNode) | undefined;
+}) => React.ReactNode);
export declare const removeValueFromSelectedOptions: (selectedOptions: ExtendedOption[] | SelectOptionBase[], value: SelectDropdownProps["value"]) => SelectOptionBase[];