@codecademy/gamut 72.2.3-alpha.f0a032.0 → 72.2.3-alpha.f43044.0

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 (104) hide show
  1. package/agent-tools/skills/gamut-forms/SKILL.md +0 -16
  2. package/dist/Alert/elements.d.ts +2 -2
  3. package/dist/Anchor/index.d.ts +19 -9
  4. package/dist/Anchor/index.js +9 -6
  5. package/dist/BarChart/BarRow/elements.d.ts +47 -45
  6. package/dist/BarChart/utils/hooks.d.ts +2 -2
  7. package/dist/BarChart/utils/hooks.js +3 -1
  8. package/dist/Box/GridBox.d.ts +1 -0
  9. package/dist/Box/GridBox.js +1 -1
  10. package/dist/Box/props.d.ts +1 -1
  11. package/dist/Breadcrumbs/index.d.ts +5 -5
  12. package/dist/Breadcrumbs/index.js +2 -2
  13. package/dist/Button/CTAButton.d.ts +2 -2
  14. package/dist/Button/FillButton.d.ts +4 -4
  15. package/dist/Button/IconButton.d.ts +4 -4
  16. package/dist/Button/IconButton.js +1 -0
  17. package/dist/Button/StrokeButton.d.ts +4 -4
  18. package/dist/Button/TextButton.d.ts +4 -4
  19. package/dist/Button/shared/InlineIconButton.d.ts +2 -2
  20. package/dist/Button/shared/styles.d.ts +3 -3
  21. package/dist/Button/shared/types.d.ts +1 -1
  22. package/dist/ButtonBase/ButtonBase.d.ts +9 -4
  23. package/dist/ButtonBase/ButtonBase.js +11 -4
  24. package/dist/Card/elements.d.ts +109 -103
  25. package/dist/Card/styles.d.ts +8 -8
  26. package/dist/Coachmark/index.d.ts +1 -1
  27. package/dist/ConnectedForm/ConnectedForm.d.ts +1 -1
  28. package/dist/ConnectedForm/ConnectedFormGroup.js +3 -2
  29. package/dist/ConnectedForm/utils.d.ts +1 -1
  30. package/dist/ConnectedForm/utils.js +1 -1
  31. package/dist/DatePicker/DatePickerInput/index.d.ts +1 -1
  32. package/dist/Disclosure/elements.d.ts +18 -12
  33. package/dist/FeatureShimmer/index.js +1 -1
  34. package/dist/Form/SelectDropdown/SelectDropdown.js +101 -49
  35. package/dist/Form/SelectDropdown/elements/constants.d.ts +8 -0
  36. package/dist/Form/SelectDropdown/elements/constants.js +9 -1
  37. package/dist/Form/SelectDropdown/elements/containers.d.ts +2 -6
  38. package/dist/Form/SelectDropdown/elements/containers.js +2 -18
  39. package/dist/Form/SelectDropdown/elements/controls.d.ts +15 -1
  40. package/dist/Form/SelectDropdown/elements/controls.js +91 -2
  41. package/dist/Form/SelectDropdown/elements/index.d.ts +1 -2
  42. package/dist/Form/SelectDropdown/elements/index.js +1 -2
  43. package/dist/Form/SelectDropdown/elements/multi-value.js +2 -2
  44. package/dist/Form/SelectDropdown/elements/options.d.ts +0 -1
  45. package/dist/Form/SelectDropdown/elements/options.js +2 -5
  46. package/dist/Form/SelectDropdown/{core/styles.js → styles.js} +12 -30
  47. package/dist/Form/SelectDropdown/types/component-props.d.ts +6 -54
  48. package/dist/Form/SelectDropdown/types/internal.d.ts +4 -4
  49. package/dist/Form/SelectDropdown/types/styles.d.ts +1 -5
  50. package/dist/Form/SelectDropdown/{core/utils.d.ts → utils.d.ts} +2 -12
  51. package/dist/Form/SelectDropdown/{core/utils.js → utils.js} +2 -24
  52. package/dist/Form/elements/Form.d.ts +15 -15
  53. package/dist/Form/elements/FormGroup.d.ts +1 -1
  54. package/dist/Form/styles/Checkbox-styles.d.ts +1 -1
  55. package/dist/Form/styles/index.d.ts +1 -1
  56. package/dist/Form/styles/index.js +1 -1
  57. package/dist/GridForm/GridFormButtons/index.d.ts +4 -4
  58. package/dist/List/ListProvider.d.ts +1 -1
  59. package/dist/List/elements.d.ts +44 -42
  60. package/dist/Menu/MenuItem.d.ts +2 -0
  61. package/dist/Menu/MenuItem.js +12 -6
  62. package/dist/Menu/elements.d.ts +3 -2
  63. package/dist/Menu/elements.js +7 -5
  64. package/dist/Modals/Dialog.js +6 -2
  65. package/dist/Modals/Modal.js +5 -2
  66. package/dist/Modals/elements.d.ts +1 -1
  67. package/dist/Pagination/AnimatedPaginationButtons.d.ts +31 -29
  68. package/dist/Pagination/EllipsisButton.d.ts +2 -2
  69. package/dist/Pagination/PaginationButton.d.ts +6 -6
  70. package/dist/Pagination/utils.d.ts +31 -29
  71. package/dist/Pagination/utils.js +14 -11
  72. package/dist/Popover/Popover.js +6 -6
  73. package/dist/Popover/types.d.ts +4 -3
  74. package/dist/PopoverContainer/PopoverContainer.js +9 -9
  75. package/dist/PopoverContainer/hooks.d.ts +16 -4
  76. package/dist/PopoverContainer/hooks.js +50 -27
  77. package/dist/PopoverContainer/types.d.ts +2 -1
  78. package/dist/Tabs/TabButton.d.ts +2 -2
  79. package/dist/Tabs/TabNavLink.d.ts +2 -2
  80. package/dist/Tag/elements.d.ts +14 -8
  81. package/dist/Tip/InfoTip/InfoTipButton.d.ts +4 -4
  82. package/dist/Tip/PreviewTip/elements.d.ts +12 -6
  83. package/dist/Tip/ToolTip/index.d.ts +5 -0
  84. package/dist/Tip/__tests__/helpers.d.ts +1 -1
  85. package/dist/Tip/shared/FloatingTip.js +17 -2
  86. package/dist/Tip/shared/InlineTip.js +23 -2
  87. package/dist/Tip/shared/elements.d.ts +1 -1
  88. package/dist/Tip/shared/elements.js +16 -7
  89. package/dist/Tip/shared/types.d.ts +2 -1
  90. package/dist/Tip/shared/utils.js +1 -1
  91. package/dist/utils/nullish.d.ts +10 -0
  92. package/dist/utils/nullish.js +11 -0
  93. package/dist/utils/react.js +4 -2
  94. package/package.json +10 -10
  95. package/agent-tools/skills/gamut-select-dropdown/SKILL.md +0 -236
  96. package/dist/Form/SelectDropdown/core/accessibility.d.ts +0 -3
  97. package/dist/Form/SelectDropdown/core/accessibility.js +0 -12
  98. package/dist/Form/SelectDropdown/core/constants.d.ts +0 -13
  99. package/dist/Form/SelectDropdown/core/constants.js +0 -14
  100. package/dist/Form/SelectDropdown/hooks/useSelectHandlers.d.ts +0 -22
  101. package/dist/Form/SelectDropdown/hooks/useSelectHandlers.js +0 -62
  102. package/dist/Form/SelectDropdown/hooks/useSelectOptions.d.ts +0 -14
  103. package/dist/Form/SelectDropdown/hooks/useSelectOptions.js +0 -39
  104. /package/dist/Form/SelectDropdown/{core/styles.d.ts → styles.d.ts} +0 -0
@@ -17,7 +17,7 @@ const Shimmer = /*#__PURE__*/_styled(BaseContainer, {
17
17
  left: '-100%',
18
18
  top: 0,
19
19
  bg: 'white-400'
20
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9GZWF0dXJlU2hpbW1lci9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT2dCIiwiZmlsZSI6Ii4uLy4uL3NyYy9GZWF0dXJlU2hpbW1lci9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgbW90aW9uLCB1c2VSZWR1Y2VkTW90aW9uIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5cbmltcG9ydCB7IEJveCwgQm94UHJvcHMgfSBmcm9tICcuLi9Cb3gnO1xuXG5jb25zdCBCYXNlQ29udGFpbmVyID0gbW90aW9uLmNyZWF0ZShCb3gpO1xuY29uc3QgU2hpbW1lciA9IHN0eWxlZChCYXNlQ29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBoZWlnaHQ6ICcxNTAlJyxcbiAgICB3aWR0aDogJ2NhbGMoMTAwJSAvIDkpJyxcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICB0cmFuc2Zvcm06ICdyb3RhdGUoMzBkZWcpJyxcbiAgICB0cmFuc2Zvcm1PcmlnaW46ICd0b3AgcmlnaHQnLFxuICAgIGZpbHRlcjogJ2JsdXIoMjVweCknLFxuICAgIGxlZnQ6ICctMTAwJScsXG4gICAgdG9wOiAwLFxuICAgIGJnOiAnd2hpdGUtNDAwJyxcbiAgfSlcbik7XG5cbmNvbnN0IGJveFZhcmlhbnRzID0ge1xuICBpblZpZXc6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsIDAsIDAsIDApJyxcbiAgICBib3JkZXJDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMCknLFxuICAgIHRyYW5zaXRpb246IHtcbiAgICAgIGVhc2U6ICdlYXNlT3V0JyxcbiAgICAgIGR1cmF0aW9uOiAwLjMsXG4gICAgICBkZWxheTogNCxcbiAgICB9LFxuICB9LFxufTtcblxuY29uc3Qgc2hpbW1lclZhcmlhbnRzID0ge1xuICBpblZpZXc6IHtcbiAgICBsZWZ0OiAnMTIwJScsIC8vIGV4dHJhICUgdG8gYWNjb3VudCBmb3Igcm90YXRpb25cbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsIDAsIDAsIDApJyxcbiAgICB0cmFuc2l0aW9uOiB7XG4gICAgICBsZWZ0OiB7XG4gICAgICAgIGVhc2U6ICdlYXNlSW5PdXQnLFxuICAgICAgICBkdXJhdGlvbjogMixcbiAgICAgICAgZGVsYXk6IDIsXG4gICAgICB9LFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB7XG4gICAgICAgIGVhc2U6ICdlYXNlT3V0JyxcbiAgICAgICAgZHVyYXRpb246IDEsXG4gICAgICAgIGRlbGF5OiA0LFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IEZlYXR1cmVTaGltbWVyOiBSZWFjdC5GQzxPbWl0PEJveFByb3BzLCAncmVmJz4+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn0pID0+IHtcbiAgY29uc3Qgc2hvdWxkUmVkdWNlTW90aW9uID0gdXNlUmVkdWNlZE1vdGlvbigpO1xuICByZXR1cm4gKFxuICAgIDxCb3ggey4uLnJlc3R9PlxuICAgICAge3Nob3VsZFJlZHVjZU1vdGlvbiA/IChcbiAgICAgICAgY2hpbGRyZW5cbiAgICAgICkgOiAoXG4gICAgICAgIDxCYXNlQ29udGFpbmVyXG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kLXNlbGVjdGVkXCJcbiAgICAgICAgICBib3JkZXI9ezF9XG4gICAgICAgICAgYm9yZGVyQ29sb3I9XCJib3JkZXItdGVydGlhcnlcIlxuICAgICAgICAgIGJvcmRlclJhZGl1cz17cmVzdD8uYm9yZGVyUmFkaXVzfVxuICAgICAgICAgIGhlaWdodD17MX1cbiAgICAgICAgICBvdmVyZmxvdz1cImhpZGRlblwiXG4gICAgICAgICAgcG9zaXRpb249XCJyZWxhdGl2ZVwiXG4gICAgICAgICAgdmFyaWFudHM9e2JveFZhcmlhbnRzfVxuICAgICAgICAgIHZpZXdwb3J0PXt7IG9uY2U6IHRydWUgfX1cbiAgICAgICAgICB3aGlsZUluVmlldz1cImluVmlld1wiXG4gICAgICAgICAgd2lkdGg9ezF9XG4gICAgICAgID5cbiAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJmZWF0dXJlLXNoaW1tZXJcIlxuICAgICAgICAgICAgdmFyaWFudHM9e3NoaW1tZXJWYXJpYW50c31cbiAgICAgICAgICAgIHZpZXdwb3J0PXt7IG9uY2U6IHRydWUgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9CYXNlQ29udGFpbmVyPlxuICAgICAgKX1cbiAgICA8L0JveD5cbiAgKTtcbn07XG4iXX0= */");
20
+ }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9GZWF0dXJlU2hpbW1lci9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT2dCIiwiZmlsZSI6Ii4uLy4uL3NyYy9GZWF0dXJlU2hpbW1lci9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgbW90aW9uLCB1c2VSZWR1Y2VkTW90aW9uIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5cbmltcG9ydCB7IEJveCwgQm94UHJvcHMgfSBmcm9tICcuLi9Cb3gnO1xuXG5jb25zdCBCYXNlQ29udGFpbmVyID0gbW90aW9uLmNyZWF0ZShCb3gpO1xuY29uc3QgU2hpbW1lciA9IHN0eWxlZChCYXNlQ29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBoZWlnaHQ6ICcxNTAlJyxcbiAgICB3aWR0aDogJ2NhbGMoMTAwJSAvIDkpJyxcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICB0cmFuc2Zvcm06ICdyb3RhdGUoMzBkZWcpJyxcbiAgICB0cmFuc2Zvcm1PcmlnaW46ICd0b3AgcmlnaHQnLFxuICAgIGZpbHRlcjogJ2JsdXIoMjVweCknLFxuICAgIGxlZnQ6ICctMTAwJScsXG4gICAgdG9wOiAwLFxuICAgIGJnOiAnd2hpdGUtNDAwJyxcbiAgfSlcbik7XG5cbmNvbnN0IGJveFZhcmlhbnRzID0ge1xuICBpblZpZXc6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsIDAsIDAsIDApJyxcbiAgICBib3JkZXJDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMCknLFxuICAgIHRyYW5zaXRpb246IHtcbiAgICAgIGVhc2U6ICdlYXNlT3V0JyBhcyBjb25zdCxcbiAgICAgIGR1cmF0aW9uOiAwLjMsXG4gICAgICBkZWxheTogNCxcbiAgICB9LFxuICB9LFxufTtcblxuY29uc3Qgc2hpbW1lclZhcmlhbnRzID0ge1xuICBpblZpZXc6IHtcbiAgICBsZWZ0OiAnMTIwJScsIC8vIGV4dHJhICUgdG8gYWNjb3VudCBmb3Igcm90YXRpb25cbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsIDAsIDAsIDApJyxcbiAgICB0cmFuc2l0aW9uOiB7XG4gICAgICBsZWZ0OiB7XG4gICAgICAgIGVhc2U6ICdlYXNlSW5PdXQnIGFzIGNvbnN0LFxuICAgICAgICBkdXJhdGlvbjogMixcbiAgICAgICAgZGVsYXk6IDIsXG4gICAgICB9LFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB7XG4gICAgICAgIGVhc2U6ICdlYXNlT3V0JyBhcyBjb25zdCxcbiAgICAgICAgZHVyYXRpb246IDEsXG4gICAgICAgIGRlbGF5OiA0LFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IEZlYXR1cmVTaGltbWVyOiBSZWFjdC5GQzxPbWl0PEJveFByb3BzLCAncmVmJz4+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnJlc3Rcbn0pID0+IHtcbiAgY29uc3Qgc2hvdWxkUmVkdWNlTW90aW9uID0gdXNlUmVkdWNlZE1vdGlvbigpO1xuICByZXR1cm4gKFxuICAgIDxCb3ggey4uLnJlc3R9PlxuICAgICAge3Nob3VsZFJlZHVjZU1vdGlvbiA/IChcbiAgICAgICAgY2hpbGRyZW5cbiAgICAgICkgOiAoXG4gICAgICAgIDxCYXNlQ29udGFpbmVyXG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kLXNlbGVjdGVkXCJcbiAgICAgICAgICBib3JkZXI9ezF9XG4gICAgICAgICAgYm9yZGVyQ29sb3I9XCJib3JkZXItdGVydGlhcnlcIlxuICAgICAgICAgIGJvcmRlclJhZGl1cz17cmVzdD8uYm9yZGVyUmFkaXVzfVxuICAgICAgICAgIGhlaWdodD17MX1cbiAgICAgICAgICBvdmVyZmxvdz1cImhpZGRlblwiXG4gICAgICAgICAgcG9zaXRpb249XCJyZWxhdGl2ZVwiXG4gICAgICAgICAgdmFyaWFudHM9e2JveFZhcmlhbnRzfVxuICAgICAgICAgIHZpZXdwb3J0PXt7IG9uY2U6IHRydWUgfX1cbiAgICAgICAgICB3aGlsZUluVmlldz1cImluVmlld1wiXG4gICAgICAgICAgd2lkdGg9ezF9XG4gICAgICAgID5cbiAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJmZWF0dXJlLXNoaW1tZXJcIlxuICAgICAgICAgICAgdmFyaWFudHM9e3NoaW1tZXJWYXJpYW50c31cbiAgICAgICAgICAgIHZpZXdwb3J0PXt7IG9uY2U6IHRydWUgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9CYXNlQ29udGFpbmVyPlxuICAgICAgKX1cbiAgICA8L0JveD5cbiAgKTtcbn07XG4iXX0= */");
21
21
  const boxVariants = {
22
22
  inView: {
23
23
  backgroundColor: 'rgba(0, 0, 0, 0)',
@@ -1,14 +1,28 @@
1
1
  import { useTheme } from '@emotion/react';
2
- import { useId, useMemo, useRef, useState } from 'react';
2
+ import { useCallback, useEffect, useId, useMemo, useRef, useState } from 'react';
3
3
  import * as React from 'react';
4
- import { onFocus } from './core/accessibility';
5
- import { defaultComponents } from './core/constants';
6
- import { getMemoizedStyles } from './core/styles';
7
- import { resolveNoOptionsMessage } from './core/utils';
8
- import { formatGroupLabel, formatOptionLabel, SelectDropdownContext, TypedReactSelect } from './elements';
9
- import { useSelectHandlers } from './hooks/useSelectHandlers';
10
- import { useSelectOptions } from './hooks/useSelectOptions';
4
+ import { parseOptions } from '../utils';
5
+ import { AbbreviatedSingleValue, CustomContainer, CustomInput, CustomValueContainer, DropdownButton, formatGroupLabel, formatOptionLabel, IconOption, MultiValueRemoveButton, MultiValueWithColorMode, onFocus, RemoveAllButton, SelectDropdownContext, TypedReactSelect } from './elements';
6
+ import { getMemoizedStyles } from './styles';
7
+ import { filterValueFromOptions, isMultipleSelectProps, isOptionsGrouped, isSingleSelectProps, removeValueFromSelectedOptions } from './utils';
11
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
+ const defaultProps = {
10
+ name: undefined,
11
+ components: {
12
+ DropdownIndicator: DropdownButton,
13
+ IndicatorSeparator: () => null,
14
+ ClearIndicator: RemoveAllButton,
15
+ SelectContainer: CustomContainer,
16
+ ValueContainer: CustomValueContainer,
17
+ MultiValue: MultiValueWithColorMode,
18
+ MultiValueRemove: MultiValueRemoveButton,
19
+ Option: IconOption,
20
+ SingleValue: AbbreviatedSingleValue,
21
+ Input: CustomInput
22
+ }
23
+ };
24
+ const onChangeAction = 'select-option';
25
+
12
26
  /**
13
27
  * A flexible dropdown select component built on top of react-select.
14
28
  *
@@ -59,58 +73,101 @@ export const SelectDropdown = ({
59
73
  disabled,
60
74
  dropdownWidth,
61
75
  error,
62
- formatCreateLabel = inputValue => `Add "${inputValue}"`,
63
76
  id,
64
77
  inputProps,
65
78
  inputWidth,
66
- isCreatable = false,
67
- isSearchable: isSearchableProp = false,
68
- isValidNewOption,
79
+ isSearchable = false,
69
80
  menuAlignment = 'left',
70
81
  multiple,
71
82
  name,
72
83
  onChange,
73
- onCreateOption,
74
- onInputChange,
75
84
  options,
76
85
  placeholder = 'Select an option',
77
86
  shownOptionsLimit = 6,
78
87
  size,
79
- validationMessage,
80
88
  value,
81
89
  zIndex,
82
90
  ...rest
83
91
  }) => {
84
- // isSearchable is forced true when isCreatable is true (CreatableSelect requires a text input)
85
- const isSearchable = isCreatable || isSearchableProp;
86
92
  const rawInputId = useId();
87
93
  const inputId = name ?? `${id}-select-dropdown-${rawInputId}`;
94
+ const [activated, setActivated] = useState(false);
95
+ const [currentFocusedValue, setCurrentFocusedValue] = useState(undefined);
96
+
97
+ // these are used to programatically manage the focus state of our multi-select options + 'Remove all' button
88
98
  const removeAllButtonRef = useRef(null);
89
99
  const selectInputRef = useRef(null);
90
- const [currentFocusedValue, setCurrentFocusedValue] = useState(undefined);
91
- const {
92
- selectOptions,
93
- parsedValue
94
- } = useSelectOptions({
95
- options,
96
- id,
97
- size,
98
- value: value
99
- });
100
- const {
101
- activated,
102
- multiValues,
103
- changeHandler,
104
- keyPressHandler
105
- } = useSelectHandlers({
106
- onChange,
107
- multiple,
108
- onCreateOption,
109
- selectOptions,
110
- value,
111
- currentFocusedValue,
112
- removeAllButtonRef
113
- });
100
+ const selectOptions = useMemo(() => {
101
+ if (!options || Array.isArray(options) && !options.length || typeof options === 'object' && !Array.isArray(options) && Object.keys(options).length === 0) {
102
+ return [];
103
+ }
104
+ if (isOptionsGrouped(options)) {
105
+ return options;
106
+ }
107
+ return parseOptions({
108
+ options,
109
+ id,
110
+ size
111
+ });
112
+ }, [options, id, size]);
113
+ const parsedValue = useMemo(() => {
114
+ if (isOptionsGrouped(selectOptions)) {
115
+ for (const group of selectOptions) {
116
+ if (group.options) {
117
+ const foundOption = group.options.find(option => option.value === value);
118
+ if (foundOption) return foundOption;
119
+ }
120
+ }
121
+ return undefined;
122
+ }
123
+ return selectOptions.find(option => option.value === value);
124
+ }, [selectOptions, value]);
125
+ const [multiValues, setMultiValues] = useState(multiple &&
126
+ // To keep this efficient for non-multiSelect
127
+ filterValueFromOptions(selectOptions, value, isOptionsGrouped(selectOptions)));
128
+
129
+ // If the caller changes the initial value, let's update our value to match.
130
+ useEffect(() => {
131
+ const newMultiValues = filterValueFromOptions(selectOptions, value, isOptionsGrouped(selectOptions));
132
+ if (newMultiValues !== multiValues) setMultiValues(newMultiValues);
133
+
134
+ //
135
+ // We only update this when our passed in options or value changes, not multiValues.
136
+ // eslint-disable-next-line react-hooks/exhaustive-deps
137
+ }, [options, value]);
138
+ const changeHandler = useCallback(optionEvent => {
139
+ setActivated(true);
140
+
141
+ // We have to do this because the version of typescript we have doesn't have the transitivity of these type guards yet. But, we will soon!
142
+ // Should probably come with: https://codecademy.atlassian.net/browse/GM-354
143
+ const onChangeProps = {
144
+ onChange,
145
+ multiple
146
+ };
147
+ if (isSingleSelectProps(onChangeProps)) {
148
+ const singleOptionEvent = optionEvent;
149
+ onChangeProps.onChange?.(singleOptionEvent, {
150
+ action: onChangeAction,
151
+ option: singleOptionEvent
152
+ });
153
+ }
154
+ if (isMultipleSelectProps(onChangeProps)) {
155
+ setMultiValues(optionEvent);
156
+ onChangeProps.onChange?.(optionEvent, {
157
+ action: onChangeAction,
158
+ option: undefined // At the moment this isn't used, but when multi select is built for real, boom (https://codecademy.atlassian.net/browse/GM-354)
159
+ });
160
+ }
161
+ }, [onChange, multiple]);
162
+ const keyPressHandler = e => {
163
+ if (multiple && e.key === 'Enter' && currentFocusedValue && multiValues) {
164
+ const newMultiValues = removeValueFromSelectedOptions(multiValues, currentFocusedValue);
165
+ if (newMultiValues !== multiValues) setMultiValues(newMultiValues);
166
+ }
167
+ if (removeAllButtonRef.current !== null && e.key === 'ArrowRight' && multiValues && currentFocusedValue === multiValues[multiValues.length - 1].value) {
168
+ removeAllButtonRef.current.focus();
169
+ }
170
+ };
114
171
  const theme = useTheme();
115
172
  const memoizedStyles = useMemo(() => {
116
173
  return getMemoizedStyles(theme, zIndex);
@@ -123,15 +180,14 @@ export const SelectDropdown = ({
123
180
  selectInputRef
124
181
  },
125
182
  children: /*#__PURE__*/_jsx(TypedReactSelect, {
183
+ ...defaultProps,
126
184
  activated: activated,
127
185
  "aria-live": "assertive",
128
186
  ariaLiveMessages: {
129
187
  onFocus
130
188
  },
131
- components: defaultComponents,
132
189
  dropdownWidth: dropdownWidth,
133
190
  error: Boolean(error),
134
- formatCreateLabel: formatCreateLabel,
135
191
  formatGroupLabel: formatGroupLabel,
136
192
  formatOptionLabel: formatOptionLabel,
137
193
  id: id || rest.htmlFor || rawInputId,
@@ -140,15 +196,12 @@ export const SelectDropdown = ({
140
196
  ...inputProps
141
197
  },
142
198
  inputWidth: inputWidth,
143
- isCreatable: isCreatable,
144
199
  isDisabled: disabled,
145
200
  isMulti: multiple,
146
- isOptionDisabled: option => option.disabled,
201
+ isOptionDisabled: option => option.disabled ?? false,
147
202
  isSearchable: isSearchable,
148
- isValidNewOption: isValidNewOption,
149
203
  menuAlignment: menuAlignment,
150
204
  name: name,
151
- noOptionsMessage: resolveNoOptionsMessage(validationMessage),
152
205
  options: selectOptions,
153
206
  placeholder: placeholder,
154
207
  selectRef: selectInputRef,
@@ -157,8 +210,7 @@ export const SelectDropdown = ({
157
210
  styles: memoizedStyles,
158
211
  value: multiple ? multiValues : parsedValue,
159
212
  onChange: changeHandler,
160
- onInputChange: onInputChange,
161
- onKeyDown: multiple ? keyPressHandler : undefined,
213
+ onKeyDown: multiple ? e => keyPressHandler(e) : undefined,
162
214
  ...rest
163
215
  })
164
216
  });
@@ -15,6 +15,14 @@ export declare const indicatorIcons: {
15
15
  size: number;
16
16
  icon: import("react").ForwardRefExoticComponent<import("@codecademy/gamut-icons").GamutIconProps & import("react").RefAttributes<SVGSVGElement>>;
17
17
  };
18
+ smallSearchable: {
19
+ size: number;
20
+ icon: import("react").ForwardRefExoticComponent<import("@codecademy/gamut-icons").GamutIconProps & import("react").RefAttributes<SVGSVGElement>>;
21
+ };
22
+ mediumSearchable: {
23
+ size: number;
24
+ icon: import("react").ForwardRefExoticComponent<import("@codecademy/gamut-icons").GamutIconProps & import("react").RefAttributes<SVGSVGElement>>;
25
+ };
18
26
  smallRemove: {
19
27
  size: number;
20
28
  icon: import("react").ForwardRefExoticComponent<import("@codecademy/gamut-icons").GamutIconProps & import("react").RefAttributes<SVGSVGElement>>;
@@ -1,4 +1,4 @@
1
- import { ArrowChevronDownIcon, CloseIcon, MiniChevronDownIcon, MiniDeleteIcon } from '@codecademy/gamut-icons';
1
+ import { ArrowChevronDownIcon, CloseIcon, MiniChevronDownIcon, MiniDeleteIcon, SearchIcon } from '@codecademy/gamut-icons';
2
2
  export const iconSize = {
3
3
  small: 12,
4
4
  medium: 16
@@ -16,6 +16,14 @@ export const indicatorIcons = {
16
16
  size: iconSize.medium,
17
17
  icon: ArrowChevronDownIcon
18
18
  },
19
+ smallSearchable: {
20
+ size: iconSize.small,
21
+ icon: SearchIcon
22
+ },
23
+ mediumSearchable: {
24
+ size: iconSize.medium,
25
+ icon: SearchIcon
26
+ },
19
27
  smallRemove: {
20
28
  size: iconSize.small,
21
29
  icon: MiniDeleteIcon
@@ -24,10 +24,6 @@ export declare const CustomValueContainer: ({ ...rest }: CustomSelectComponentPr
24
24
  export declare const CustomInput: ({ ...rest }: CustomSelectComponentProps<typeof SelectDropdownElements.Input>) => import("react/jsx-runtime").JSX.Element;
25
25
  /**
26
26
  * Typed wrapper around react-select component.
27
- * Renders CreatableSelect when isCreatable is true, ReactSelect otherwise.
28
- * Creatable-only props (formatCreateLabel, isValidNewOption) are stripped from
29
- * the non-creatable path so they don't reach ReactSelect. `onCreateOption` is
30
- * handled in SelectDropdown's changeHandler — do not pass it to CreatableSelect
31
- * or react-select will skip onChange on create.
27
+ * Provides type safety for the underlying react-select implementation.
32
28
  */
33
- export declare function TypedReactSelect<OptionType, IsMulti extends boolean = false, GroupType extends GroupBase<OptionType> = GroupBase<OptionType>>({ selectRef, isCreatable, formatCreateLabel, isValidNewOption, ...props }: Props<OptionType, IsMulti, GroupType> & TypedReactSelectProps): import("react/jsx-runtime").JSX.Element;
29
+ export declare function TypedReactSelect<OptionType, IsMulti extends boolean = false, GroupType extends GroupBase<OptionType> = GroupBase<OptionType>>({ selectRef, ...props }: Props<OptionType, IsMulti, GroupType> & TypedReactSelectProps): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,5 @@
1
1
  import { createContext, useLayoutEffect } from 'react';
2
2
  import ReactSelect, { components as SelectDropdownElements } from 'react-select';
3
- import CreatableSelect from 'react-select/creatable';
4
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
4
  /**
6
5
  * React context for sharing state between SelectDropdown components.
@@ -62,7 +61,7 @@ export const CustomValueContainer = ({
62
61
  } = rest.selectProps;
63
62
  if (inputId) {
64
63
  const inputElement = document.getElementById(inputId);
65
- if (inputElement && inputElement.getAttribute('role') === 'combobox') {
64
+ if (inputElement?.getAttribute('role') === 'combobox') {
66
65
  Object.entries(comboboxProps).forEach(([key, value]) => {
67
66
  inputElement.setAttribute(key, value);
68
67
  });
@@ -117,27 +116,12 @@ export const CustomInput = ({
117
116
 
118
117
  /**
119
118
  * Typed wrapper around react-select component.
120
- * Renders CreatableSelect when isCreatable is true, ReactSelect otherwise.
121
- * Creatable-only props (formatCreateLabel, isValidNewOption) are stripped from
122
- * the non-creatable path so they don't reach ReactSelect. `onCreateOption` is
123
- * handled in SelectDropdown's changeHandler — do not pass it to CreatableSelect
124
- * or react-select will skip onChange on create.
119
+ * Provides type safety for the underlying react-select implementation.
125
120
  */
126
121
  export function TypedReactSelect({
127
122
  selectRef,
128
- isCreatable,
129
- formatCreateLabel,
130
- isValidNewOption,
131
123
  ...props
132
124
  }) {
133
- if (isCreatable) {
134
- return /*#__PURE__*/_jsx(CreatableSelect, {
135
- ...props,
136
- formatCreateLabel: formatCreateLabel,
137
- isValidNewOption: isValidNewOption,
138
- ref: selectRef
139
- });
140
- }
141
125
  return /*#__PURE__*/_jsx(ReactSelect, {
142
126
  ...props,
143
127
  ref: selectRef
@@ -1,6 +1,20 @@
1
- import { SizedIndicatorProps } from '../types';
1
+ import { AriaOnFocus } from 'react-select';
2
+ import { ExtendedOption, SizedIndicatorProps } from '../types';
3
+ /**
4
+ * Generates accessible focus messages for screen readers.
5
+ * Provides detailed information about the currently focused option.
6
+ *
7
+ * @param params - Object containing the focused option details
8
+ * @returns Formatted accessibility message
9
+ */
10
+ export declare const onFocus: AriaOnFocus<ExtendedOption>;
2
11
  /**
3
12
  * Custom dropdown indicator that shows either a chevron or search icon.
4
13
  * The icon type depends on whether the select is searchable or not.
5
14
  */
6
15
  export declare const DropdownButton: (props: SizedIndicatorProps) => import("react/jsx-runtime").JSX.Element;
16
+ /**
17
+ * Custom remove all button for multi-select mode.
18
+ * Provides keyboard navigation and accessible removal of all selected values.
19
+ */
20
+ export declare const RemoveAllButton: (props: SizedIndicatorProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,23 +1,50 @@
1
+ import _styled from "@emotion/styled/base";
2
+ import { css, theme } from '@codecademy/gamut-styles';
3
+ import { useContext } from 'react';
1
4
  import { components as SelectDropdownElements } from 'react-select';
2
5
  import { indicatorIcons } from './constants';
6
+ import { SelectDropdownContext } from './containers';
3
7
  import { jsx as _jsx } from "react/jsx-runtime";
4
8
  const {
5
9
  DropdownIndicator
6
10
  } = SelectDropdownElements;
7
11
 
12
+ /**
13
+ * Generates accessible focus messages for screen readers.
14
+ * Provides detailed information about the currently focused option.
15
+ *
16
+ * @param params - Object containing the focused option details
17
+ * @returns Formatted accessibility message
18
+ */
19
+ export const onFocus = ({
20
+ focused: {
21
+ label,
22
+ subtitle,
23
+ rightLabel,
24
+ disabled
25
+ }
26
+ }) => {
27
+ const formattedSubtitle = `, ${subtitle}`;
28
+ const formattedRightLabel = `, ${rightLabel}`;
29
+ const msg = `You are currently focused on option ${label}${subtitle ? formattedSubtitle : ''} ${rightLabel ? formattedRightLabel : ''}${disabled ? ', disabled' : ''}`;
30
+ return msg;
31
+ };
32
+
8
33
  /**
9
34
  * Custom dropdown indicator that shows either a chevron or search icon.
10
35
  * The icon type depends on whether the select is searchable or not.
11
36
  */
12
37
  export const DropdownButton = props => {
13
38
  const {
14
- size
39
+ size,
40
+ isSearchable
15
41
  } = props.selectProps;
16
42
  const color = props.isDisabled ? 'text-disabled' : 'text';
17
43
  const iconSize = size ?? 'medium';
44
+ const iconType = isSearchable ? 'Searchable' : 'Chevron';
18
45
  const {
19
46
  ...iconProps
20
- } = indicatorIcons[`${iconSize}Chevron`];
47
+ } = indicatorIcons[`${iconSize}${iconType}`];
21
48
  const {
22
49
  icon: IndicatorIcon
23
50
  } = iconProps;
@@ -28,4 +55,66 @@ export const DropdownButton = props => {
28
55
  color: color
29
56
  })
30
57
  });
58
+ };
59
+ const CustomStyledRemoveAllDiv = /*#__PURE__*/_styled('div', {
60
+ target: "e1xkmr70",
61
+ label: "CustomStyledRemoveAllDiv"
62
+ })(css({
63
+ '&:focus': {
64
+ outline: `2px solid ${theme.colors.primary}`
65
+ },
66
+ '&:focus-visible': {
67
+ outline: `2px solid ${theme.colors.primary}`
68
+ }
69
+ }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9Gb3JtL1NlbGVjdERyb3Bkb3duL2VsZW1lbnRzL2NvbnRyb2xzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxRGlDIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9Gb3JtL1NlbGVjdERyb3Bkb3duL2VsZW1lbnRzL2NvbnRyb2xzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcywgdGhlbWUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgS2V5Ym9hcmRFdmVudCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIEFyaWFPbkZvY3VzLFxuICBjb21wb25lbnRzIGFzIFNlbGVjdERyb3Bkb3duRWxlbWVudHMsXG59IGZyb20gJ3JlYWN0LXNlbGVjdCc7XG5cbmltcG9ydCB7IEV4dGVuZGVkT3B0aW9uLCBTaXplZEluZGljYXRvclByb3BzIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgaW5kaWNhdG9ySWNvbnMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTZWxlY3REcm9wZG93bkNvbnRleHQgfSBmcm9tICcuL2NvbnRhaW5lcnMnO1xuXG5jb25zdCB7IERyb3Bkb3duSW5kaWNhdG9yIH0gPSBTZWxlY3REcm9wZG93bkVsZW1lbnRzO1xuXG4vKipcbiAqIEdlbmVyYXRlcyBhY2Nlc3NpYmxlIGZvY3VzIG1lc3NhZ2VzIGZvciBzY3JlZW4gcmVhZGVycy5cbiAqIFByb3ZpZGVzIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50bHkgZm9jdXNlZCBvcHRpb24uXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIE9iamVjdCBjb250YWluaW5nIHRoZSBmb2N1c2VkIG9wdGlvbiBkZXRhaWxzXG4gKiBAcmV0dXJucyBGb3JtYXR0ZWQgYWNjZXNzaWJpbGl0eSBtZXNzYWdlXG4gKi9cbmV4cG9ydCBjb25zdCBvbkZvY3VzOiBBcmlhT25Gb2N1czxFeHRlbmRlZE9wdGlvbj4gPSAoe1xuICBmb2N1c2VkOiB7IGxhYmVsLCBzdWJ0aXRsZSwgcmlnaHRMYWJlbCwgZGlzYWJsZWQgfSxcbn0pID0+IHtcbiAgY29uc3QgZm9ybWF0dGVkU3VidGl0bGUgPSBgLCAke3N1YnRpdGxlfWA7XG4gIGNvbnN0IGZvcm1hdHRlZFJpZ2h0TGFiZWwgPSBgLCAke3JpZ2h0TGFiZWx9YDtcblxuICBjb25zdCBtc2cgPSBgWW91IGFyZSBjdXJyZW50bHkgZm9jdXNlZCBvbiBvcHRpb24gJHtsYWJlbH0ke1xuICAgIHN1YnRpdGxlID8gZm9ybWF0dGVkU3VidGl0bGUgOiAnJ1xuICB9ICR7cmlnaHRMYWJlbCA/IGZvcm1hdHRlZFJpZ2h0TGFiZWwgOiAnJ30ke2Rpc2FibGVkID8gJywgZGlzYWJsZWQnIDogJyd9YDtcblxuICByZXR1cm4gbXNnO1xufTtcblxuLyoqXG4gKiBDdXN0b20gZHJvcGRvd24gaW5kaWNhdG9yIHRoYXQgc2hvd3MgZWl0aGVyIGEgY2hldnJvbiBvciBzZWFyY2ggaWNvbi5cbiAqIFRoZSBpY29uIHR5cGUgZGVwZW5kcyBvbiB3aGV0aGVyIHRoZSBzZWxlY3QgaXMgc2VhcmNoYWJsZSBvciBub3QuXG4gKi9cbmV4cG9ydCBjb25zdCBEcm9wZG93bkJ1dHRvbiA9IChwcm9wczogU2l6ZWRJbmRpY2F0b3JQcm9wcykgPT4ge1xuICBjb25zdCB7IHNpemUsIGlzU2VhcmNoYWJsZSB9ID0gcHJvcHMuc2VsZWN0UHJvcHM7XG4gIGNvbnN0IGNvbG9yID0gcHJvcHMuaXNEaXNhYmxlZCA/ICd0ZXh0LWRpc2FibGVkJyA6ICd0ZXh0JztcbiAgY29uc3QgaWNvblNpemUgPSBzaXplID8/ICdtZWRpdW0nO1xuICBjb25zdCBpY29uVHlwZSA9IGlzU2VhcmNoYWJsZSA/ICdTZWFyY2hhYmxlJyA6ICdDaGV2cm9uJztcbiAgY29uc3QgeyAuLi5pY29uUHJvcHMgfSA9IGluZGljYXRvckljb25zW2Ake2ljb25TaXplfSR7aWNvblR5cGV9YF07XG4gIGNvbnN0IHsgaWNvbjogSW5kaWNhdG9ySWNvbiB9ID0gaWNvblByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPERyb3Bkb3duSW5kaWNhdG9yIHsuLi5wcm9wc30+XG4gICAgICA8SW5kaWNhdG9ySWNvbiB7Li4uaWNvblByb3BzfSBjb2xvcj17Y29sb3J9IC8+XG4gICAgPC9Ecm9wZG93bkluZGljYXRvcj5cbiAgKTtcbn07XG5cbmNvbnN0IEN1c3RvbVN0eWxlZFJlbW92ZUFsbERpdiA9IHN0eWxlZCgnZGl2JykoXG4gIGNzcyh7XG4gICAgJyY6Zm9jdXMnOiB7XG4gICAgICBvdXRsaW5lOiBgMnB4IHNvbGlkICR7dGhlbWUuY29sb3JzLnByaW1hcnl9YCxcbiAgICB9LFxuICAgICcmOmZvY3VzLXZpc2libGUnOiB7XG4gICAgICBvdXRsaW5lOiBgMnB4IHNvbGlkICR7dGhlbWUuY29sb3JzLnByaW1hcnl9YCxcbiAgICB9LFxuICB9KVxuKTtcblxuLyoqXG4gKiBDdXN0b20gcmVtb3ZlIGFsbCBidXR0b24gZm9yIG11bHRpLXNlbGVjdCBtb2RlLlxuICogUHJvdmlkZXMga2V5Ym9hcmQgbmF2aWdhdGlvbiBhbmQgYWNjZXNzaWJsZSByZW1vdmFsIG9mIGFsbCBzZWxlY3RlZCB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBSZW1vdmVBbGxCdXR0b24gPSAocHJvcHM6IFNpemVkSW5kaWNhdG9yUHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGdldFN0eWxlcyxcbiAgICBpbm5lclByb3BzOiB7IC4uLnJlc3RJbm5lclByb3BzIH0sXG4gICAgc2VsZWN0UHJvcHM6IHsgc2l6ZSB9LFxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3QgeyByZW1vdmVBbGxCdXR0b25SZWYsIHNlbGVjdElucHV0UmVmIH0gPSB1c2VDb250ZXh0KFxuICAgIFNlbGVjdERyb3Bkb3duQ29udGV4dFxuICApO1xuXG4gIGNvbnN0IGljb25TaXplID0gc2l6ZSA/PyAnbWVkaXVtJztcbiAgY29uc3QgeyAuLi5pY29uUHJvcHMgfSA9IGluZGljYXRvckljb25zW2Ake2ljb25TaXplfVJlbW92ZWBdO1xuICBjb25zdCB7IGljb246IEluZGljYXRvckljb24gfSA9IGljb25Qcm9wcztcblxuICBjb25zdCBvbktleVByZXNzID0gKGU6IEtleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSAnRW50ZXInICYmIHJlc3RJbm5lclByb3BzLm9uTW91c2VEb3duKSB7XG4gICAgICByZXN0SW5uZXJQcm9wcy5vbk1vdXNlRG93bihlIGFzIGFueSk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgc2VsZWN0SW5wdXRSZWY/LmN1cnJlbnQgJiZcbiAgICAgIChlLmtleSA9PT0gJ0Fycm93UmlnaHQnIHx8IGUua2V5ID09PSAnQXJyb3dMZWZ0JyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpXG4gICAgKSB7XG4gICAgICBzZWxlY3RJbnB1dFJlZi5jdXJyZW50LmZvY3VzKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHN0eWxlID0gZ2V0U3R5bGVzKCdjbGVhckluZGljYXRvcicsIHByb3BzKSBhcyBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuXG4gIHJldHVybiAoXG4gICAgPEN1c3RvbVN0eWxlZFJlbW92ZUFsbERpdlxuICAgICAgYXJpYS1sYWJlbD1cIlJlbW92ZSBhbGwgc2VsZWN0ZWRcIlxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICB0YWJJbmRleD17MH1cbiAgICAgIHsuLi5yZXN0SW5uZXJQcm9wc31cbiAgICAgIHJlZj17cmVtb3ZlQWxsQnV0dG9uUmVmIGFzIFJlYWN0LlJlZjxIVE1MRGl2RWxlbWVudD59XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2FtdXQvbm8taW5saW5lLXN0eWxlXG4gICAgICBzdHlsZT17c3R5bGV9XG4gICAgICBvbktleURvd249e29uS2V5UHJlc3N9XG4gICAgPlxuICAgICAgPEluZGljYXRvckljb24gey4uLmljb25Qcm9wc30gY29sb3I9XCJ0ZXh0XCIgLz5cbiAgICA8L0N1c3RvbVN0eWxlZFJlbW92ZUFsbERpdj5cbiAgKTtcbn07XG4iXX0= */");
70
+
71
+ /**
72
+ * Custom remove all button for multi-select mode.
73
+ * Provides keyboard navigation and accessible removal of all selected values.
74
+ */
75
+ export const RemoveAllButton = props => {
76
+ const {
77
+ getStyles,
78
+ innerProps: {
79
+ ...restInnerProps
80
+ },
81
+ selectProps: {
82
+ size
83
+ }
84
+ } = props;
85
+ const {
86
+ removeAllButtonRef,
87
+ selectInputRef
88
+ } = useContext(SelectDropdownContext);
89
+ const iconSize = size ?? 'medium';
90
+ const {
91
+ ...iconProps
92
+ } = indicatorIcons[`${iconSize}Remove`];
93
+ const {
94
+ icon: IndicatorIcon
95
+ } = iconProps;
96
+ const onKeyPress = e => {
97
+ if (e.key === 'Enter' && restInnerProps.onMouseDown) {
98
+ restInnerProps.onMouseDown(e);
99
+ }
100
+ if (selectInputRef?.current && (e.key === 'ArrowRight' || e.key === 'ArrowLeft' || e.key === 'ArrowDown')) {
101
+ selectInputRef.current.focus();
102
+ }
103
+ };
104
+ const style = getStyles('clearIndicator', props);
105
+ return /*#__PURE__*/_jsx(CustomStyledRemoveAllDiv, {
106
+ "aria-label": "Remove all selected",
107
+ role: "button",
108
+ tabIndex: 0,
109
+ ...restInnerProps,
110
+ ref: removeAllButtonRef
111
+ // eslint-disable-next-line gamut/no-inline-style
112
+ ,
113
+ style: style,
114
+ onKeyDown: onKeyPress,
115
+ children: /*#__PURE__*/_jsx(IndicatorIcon, {
116
+ ...iconProps,
117
+ color: "text"
118
+ })
119
+ });
31
120
  };
@@ -1,6 +1,5 @@
1
1
  export { iconSize, selectedIconSize, indicatorIcons } from './constants';
2
2
  export { MultiValueWithColorMode, MultiValueRemoveButton, RemoveAllButton, } from './multi-value';
3
- export { DropdownButton } from './controls';
4
- export { onFocus } from '../core/accessibility';
3
+ export { DropdownButton, onFocus } from './controls';
5
4
  export { SelectDropdownContext, CustomContainer, CustomInput, CustomValueContainer, TypedReactSelect, } from './containers';
6
5
  export { IconOption, AbbreviatedSingleValue, formatOptionLabel, formatGroupLabel, } from './options';
@@ -1,6 +1,5 @@
1
1
  export { iconSize, selectedIconSize, indicatorIcons } from './constants';
2
2
  export { MultiValueWithColorMode, MultiValueRemoveButton, RemoveAllButton } from './multi-value';
3
- export { DropdownButton } from './controls';
4
- export { onFocus } from '../core/accessibility';
3
+ export { DropdownButton, onFocus } from './controls';
5
4
  export { SelectDropdownContext, CustomContainer, CustomInput, CustomValueContainer, TypedReactSelect } from './containers';
6
5
  export { IconOption, AbbreviatedSingleValue, formatOptionLabel, formatGroupLabel } from './options';
@@ -75,7 +75,7 @@ const CustomStyledRemoveAllDiv = /*#__PURE__*/_styled('div', {
75
75
  '&:focus-visible': {
76
76
  outline: `2px solid ${theme.colors.primary}`
77
77
  }
78
- }, ";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/LmN1cnJlbnQgJiZcbiAgICAgIChlLmtleSA9PT0gJ0Fycm93UmlnaHQnIHx8IGUua2V5ID09PSAnQXJyb3dMZWZ0JyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpXG4gICAgKSB7XG4gICAgICBzZWxlY3RJbnB1dFJlZj8uY3VycmVudC5mb2N1cygpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBzdHlsZSA9IGdldFN0eWxlcygnY2xlYXJJbmRpY2F0b3InLCBwcm9wcykgYXMgUmVhY3QuQ1NTUHJvcGVydGllcztcblxuICByZXR1cm4gKFxuICAgIDxDdXN0b21TdHlsZWRSZW1vdmVBbGxEaXZcbiAgICAgIGFyaWEtbGFiZWw9XCJSZW1vdmUgYWxsIHNlbGVjdGVkXCJcbiAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICB7Li4ucmVzdElubmVyUHJvcHN9XG4gICAgICByZWY9e3JlbW92ZUFsbEJ1dHRvblJlZn1cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBnYW11dC9uby1pbmxpbmUtc3R5bGVcbiAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgIG9uS2V5RG93bj17b25LZXlQcmVzc31cbiAgICA+XG4gICAgICA8SW5kaWNhdG9ySWNvbiB7Li4uaWNvblByb3BzfSBjb2xvcj1cInRleHRcIiAvPlxuICAgIDwvQ3VzdG9tU3R5bGVkUmVtb3ZlQWxsRGl2PlxuICApO1xufTtcbiJdfQ== */")), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9Gb3JtL1NlbGVjdERyb3Bkb3duL2VsZW1lbnRzL211bHRpLXZhbHVlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0RWlDIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9Gb3JtL1NlbGVjdERyb3Bkb3duL2VsZW1lbnRzL211bHRpLXZhbHVlLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbmlEZWxldGVJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgdGhlbWUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgS2V5Ym9hcmRFdmVudCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIGNvbXBvbmVudHMgYXMgU2VsZWN0RHJvcGRvd25FbGVtZW50cyxcbiAgR3JvdXBCYXNlLFxuICBNdWx0aVZhbHVlUHJvcHMsXG4gIE11bHRpVmFsdWVSZW1vdmVQcm9wcyxcbn0gZnJvbSAncmVhY3Qtc2VsZWN0JztcblxuaW1wb3J0IHsgRXh0ZW5kZWRPcHRpb24sIFNpemVkSW5kaWNhdG9yUHJvcHMgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpbmRpY2F0b3JJY29ucyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFNlbGVjdERyb3Bkb3duQ29udGV4dCB9IGZyb20gJy4vY29udGFpbmVycyc7XG5cbmNvbnN0IHsgTXVsdGlWYWx1ZSwgTXVsdGlWYWx1ZVJlbW92ZSB9ID0gU2VsZWN0RHJvcGRvd25FbGVtZW50cztcblxuLyoqXG4gKiBDdXN0b20gbXVsdGktdmFsdWUgY29tcG9uZW50IHRoYXQgbWFuYWdlcyBmb2N1cyBzdGF0ZSBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbi5cbiAqIFRyYWNrcyB3aGljaCBtdWx0aS12YWx1ZSBpcyBjdXJyZW50bHkgZm9jdXNlZCBhbmQgdXBkYXRlcyB0aGUgY29udGV4dCBhY2NvcmRpbmdseS5cbiAqL1xuZXhwb3J0IGNvbnN0IE11bHRpVmFsdWVXaXRoQ29sb3JNb2RlID0gKFxuICBwcm9wczogTXVsdGlWYWx1ZVByb3BzPEV4dGVuZGVkT3B0aW9uLCB0cnVlLCBHcm91cEJhc2U8RXh0ZW5kZWRPcHRpb24+PlxuKSA9PiB7XG4gIGNvbnN0IHsgY3VycmVudEZvY3VzZWRWYWx1ZSwgc2V0Q3VycmVudEZvY3VzZWRWYWx1ZSB9ID0gdXNlQ29udGV4dChcbiAgICBTZWxlY3REcm9wZG93bkNvbnRleHRcbiAgKTtcblxuICBjb25zdCB7IGRhdGEgfSA9IHByb3BzO1xuXG4gIGNvbnN0IHsgdmFsdWUsIGxhYmVsIH0gPSBkYXRhO1xuXG4gIGlmIChcbiAgICBwcm9wcy5pc0ZvY3VzZWQgJiZcbiAgICBzZXRDdXJyZW50Rm9jdXNlZFZhbHVlICYmXG4gICAgY3VycmVudEZvY3VzZWRWYWx1ZSAhPT0gdmFsdWVcbiAgKSB7XG4gICAgc2V0Q3VycmVudEZvY3VzZWRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBpZiAoXG4gICAgIXByb3BzLmlzRm9jdXNlZCAmJlxuICAgIHNldEN1cnJlbnRGb2N1c2VkVmFsdWUgJiZcbiAgICBjdXJyZW50Rm9jdXNlZFZhbHVlID09PSB2YWx1ZVxuICApIHtcbiAgICBzZXRDdXJyZW50Rm9jdXNlZFZhbHVlKHVuZGVmaW5lZCk7XG4gIH1cbiAgY29uc3QgZGlzcGxheVRleHQgPSBkYXRhPy5hYmJyZXZpYXRpb24gPyBkYXRhLmFiYnJldmlhdGlvbiA6IGxhYmVsIHx8ICcnO1xuXG4gIHJldHVybiA8TXVsdGlWYWx1ZSB7Li4ucHJvcHN9PntkaXNwbGF5VGV4dH08L011bHRpVmFsdWU+O1xufTtcblxuLyoqXG4gKiBDdXN0b20gcmVtb3ZlIGJ1dHRvbiBmb3IgbXVsdGktdmFsdWUgaXRlbXMuXG4gKiBQcm92aWRlcyBhY2Nlc3NpYmxlIHJlbW92YWwgZnVuY3Rpb25hbGl0eSB3aXRoIHByb3BlciBBUklBIGxhYmVscy5cbiAqL1xuZXhwb3J0IGNvbnN0IE11bHRpVmFsdWVSZW1vdmVCdXR0b24gPSAoXG4gIHByb3BzOiBNdWx0aVZhbHVlUmVtb3ZlUHJvcHM8RXh0ZW5kZWRPcHRpb24sIHRydWUsIEdyb3VwQmFzZTxFeHRlbmRlZE9wdGlvbj4+XG4pID0+IHtcbiAgY29uc3QgeyBsYWJlbCB9ID0gcHJvcHM/LmRhdGEgPz8geyBsYWJlbDogJycgfTtcblxuICBwcm9wcy5pbm5lclByb3BzWydhcmlhLWxhYmVsJ10gPSBgUmVtb3ZlICR7bGFiZWx9YDtcblxuICByZXR1cm4gKFxuICAgIDxNdWx0aVZhbHVlUmVtb3ZlIHsuLi5wcm9wc30+XG4gICAgICA8TWluaURlbGV0ZUljb24gc2l6ZT17MTJ9IC8+XG4gICAgPC9NdWx0aVZhbHVlUmVtb3ZlPlxuICApO1xufTtcblxuLyoqXG4gKiBDdXN0b20gcmVtb3ZlIGFsbCBidXR0b24gZm9yIG11bHRpLXNlbGVjdCBtb2RlLlxuICogUHJvdmlkZXMga2V5Ym9hcmQgbmF2aWdhdGlvbiBhbmQgYWNjZXNzaWJsZSByZW1vdmFsIG9mIGFsbCBzZWxlY3RlZCB2YWx1ZXMuXG4gKi9cblxuY29uc3QgQ3VzdG9tU3R5bGVkUmVtb3ZlQWxsRGl2ID0gc3R5bGVkKCdkaXYnKShcbiAgY3NzKHtcbiAgICAnJjpmb2N1cyc6IHtcbiAgICAgIG91dGxpbmU6IGAycHggc29saWQgJHt0aGVtZS5jb2xvcnMucHJpbWFyeX1gLFxuICAgIH0sXG4gICAgJyY6Zm9jdXMtdmlzaWJsZSc6IHtcbiAgICAgIG91dGxpbmU6IGAycHggc29saWQgJHt0aGVtZS5jb2xvcnMucHJpbWFyeX1gLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgUmVtb3ZlQWxsQnV0dG9uID0gKHByb3BzOiBTaXplZEluZGljYXRvclByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBnZXRTdHlsZXMsXG4gICAgaW5uZXJQcm9wczogeyAuLi5yZXN0SW5uZXJQcm9wcyB9LFxuICAgIHNlbGVjdFByb3BzOiB7IHNpemUgfSxcbiAgfSA9IHByb3BzO1xuXG4gIGNvbnN0IHsgcmVtb3ZlQWxsQnV0dG9uUmVmLCBzZWxlY3RJbnB1dFJlZiB9ID0gdXNlQ29udGV4dChcbiAgICBTZWxlY3REcm9wZG93bkNvbnRleHRcbiAgKTtcblxuICBjb25zdCBpY29uU2l6ZSA9IHNpemUgPz8gJ21lZGl1bSc7XG4gIGNvbnN0IHsgLi4uaWNvblByb3BzIH0gPSBpbmRpY2F0b3JJY29uc1tgJHtpY29uU2l6ZX1SZW1vdmVgXTtcbiAgY29uc3QgeyBpY29uOiBJbmRpY2F0b3JJY29uIH0gPSBpY29uUHJvcHM7XG5cbiAgY29uc3Qgb25LZXlQcmVzcyA9IChlOiBLZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyAmJiByZXN0SW5uZXJQcm9wcy5vbk1vdXNlRG93bikge1xuICAgICAgcmVzdElubmVyUHJvcHMub25Nb3VzZURvd24oZSBhcyBhbnkpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHNlbGVjdElucHV0UmVmPy5jdXJyZW50ICYmXG4gICAgICAoZS5rZXkgPT09ICdBcnJvd1JpZ2h0JyB8fCBlLmtleSA9PT0gJ0Fycm93TGVmdCcgfHwgZS5rZXkgPT09ICdBcnJvd0Rvd24nKVxuICAgICkge1xuICAgICAgc2VsZWN0SW5wdXRSZWY/LmN1cnJlbnQuZm9jdXMoKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgc3R5bGUgPSBnZXRTdHlsZXMoJ2NsZWFySW5kaWNhdG9yJywgcHJvcHMpIGFzIFJlYWN0LkNTU1Byb3BlcnRpZXM7XG5cbiAgcmV0dXJuIChcbiAgICA8Q3VzdG9tU3R5bGVkUmVtb3ZlQWxsRGl2XG4gICAgICBhcmlhLWxhYmVsPVwiUmVtb3ZlIGFsbCBzZWxlY3RlZFwiXG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIHRhYkluZGV4PXswfVxuICAgICAgey4uLnJlc3RJbm5lclByb3BzfVxuICAgICAgcmVmPXtyZW1vdmVBbGxCdXR0b25SZWZ9XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2FtdXQvbm8taW5saW5lLXN0eWxlXG4gICAgICBzdHlsZT17c3R5bGV9XG4gICAgICBvbktleURvd249e29uS2V5UHJlc3N9XG4gICAgPlxuICAgICAgPEluZGljYXRvckljb24gey4uLmljb25Qcm9wc30gY29sb3I9XCJ0ZXh0XCIgLz5cbiAgICA8L0N1c3RvbVN0eWxlZFJlbW92ZUFsbERpdj5cbiAgKTtcbn07XG4iXX0= */");
78
+ }, ";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 */");
79
79
  export const RemoveAllButton = props => {
80
80
  const {
81
81
  getStyles,
@@ -102,7 +102,7 @@ export const RemoveAllButton = props => {
102
102
  restInnerProps.onMouseDown(e);
103
103
  }
104
104
  if (selectInputRef?.current && (e.key === 'ArrowRight' || e.key === 'ArrowLeft' || e.key === 'ArrowDown')) {
105
- selectInputRef?.current.focus();
105
+ selectInputRef.current.focus();
106
106
  }
107
107
  };
108
108
  const style = getStyles('clearIndicator', props);
@@ -3,7 +3,6 @@ import { CustomSelectComponentProps, ExtendedOption, SelectDropdownGroup } from
3
3
  /**
4
4
  * Custom option component that displays a check icon for selected items.
5
5
  * Also manages ARIA attributes for accessibility.
6
- * Skips the check icon for react-select/creatable's "Add" row (__isNew__).
7
6
  */
8
7
  export declare const IconOption: ({ children, ...rest }: CustomSelectComponentProps<typeof SelectDropdownElements.Option>) => import("react/jsx-runtime").JSX.Element;
9
8
  /**
@@ -44,7 +44,6 @@ const IconOptionLabel = ({
44
44
  /**
45
45
  * Custom option component that displays a check icon for selected items.
46
46
  * Also manages ARIA attributes for accessibility.
47
- * Skips the check icon for react-select/creatable's "Add" row (__isNew__).
48
47
  */
49
48
  export const IconOption = ({
50
49
  children,
@@ -55,17 +54,15 @@ export const IconOption = ({
55
54
  } = rest.selectProps;
56
55
  const {
57
56
  isFocused,
58
- innerProps,
59
- data
57
+ innerProps
60
58
  } = rest;
61
- const isNew = data?.__isNew__;
62
59
  return /*#__PURE__*/_jsxs(SelectDropdownElements.Option, {
63
60
  ...rest,
64
61
  innerProps: {
65
62
  ...innerProps,
66
63
  'aria-selected': isFocused
67
64
  },
68
- children: [children, !isNew && rest?.isSelected && /*#__PURE__*/_jsx(CheckIcon, {
65
+ children: [children, rest?.isSelected && /*#__PURE__*/_jsx(CheckIcon, {
69
66
  size: selectedIconSize[size ?? 'medium']
70
67
  })]
71
68
  });