@elliemae/ds-form-combobox 3.4.3-rc.1 → 3.4.3

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 (143) hide show
  1. package/dist/cjs/ComboBox.js +9 -5
  2. package/dist/cjs/ComboBox.js.map +1 -1
  3. package/dist/cjs/ComboBoxCTX.js +4 -1
  4. package/dist/cjs/ComboBoxCTX.js.map +1 -1
  5. package/dist/cjs/ComboboxDataTestids.js +4 -1
  6. package/dist/cjs/ComboboxDataTestids.js.map +1 -1
  7. package/dist/cjs/config/useComboBox.js +68 -53
  8. package/dist/cjs/config/useComboBox.js.map +1 -1
  9. package/dist/cjs/config/useCorrectOptions.js +7 -2
  10. package/dist/cjs/config/useCorrectOptions.js.map +1 -1
  11. package/dist/cjs/constants.js +4 -1
  12. package/dist/cjs/constants.js.map +1 -1
  13. package/dist/cjs/index.js +4 -1
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/parts/A11yFocusedOption.js +14 -10
  16. package/dist/cjs/parts/A11yFocusedOption.js.map +2 -2
  17. package/dist/cjs/parts/A11ySelectedValues.js +20 -17
  18. package/dist/cjs/parts/A11ySelectedValues.js.map +3 -3
  19. package/dist/cjs/parts/DropdownIndicator.js +10 -5
  20. package/dist/cjs/parts/DropdownIndicator.js.map +2 -2
  21. package/dist/cjs/parts/container/Container.js +55 -35
  22. package/dist/cjs/parts/container/Container.js.map +2 -2
  23. package/dist/cjs/parts/container/index.js +4 -1
  24. package/dist/cjs/parts/container/index.js.map +1 -1
  25. package/dist/cjs/parts/container/styled.js +4 -1
  26. package/dist/cjs/parts/container/styled.js.map +1 -1
  27. package/dist/cjs/parts/controls/Controls.js +59 -31
  28. package/dist/cjs/parts/controls/Controls.js.map +3 -3
  29. package/dist/cjs/parts/controls/index.js +4 -1
  30. package/dist/cjs/parts/controls/index.js.map +1 -1
  31. package/dist/cjs/parts/controls/styled.js +4 -1
  32. package/dist/cjs/parts/controls/styled.js.map +1 -1
  33. package/dist/cjs/parts/controls/useOnPillsNavigation.js +24 -18
  34. package/dist/cjs/parts/controls/useOnPillsNavigation.js.map +2 -2
  35. package/dist/cjs/parts/controls-input/ControlsInput.js +41 -28
  36. package/dist/cjs/parts/controls-input/ControlsInput.js.map +1 -1
  37. package/dist/cjs/parts/controls-input/styled.js +4 -1
  38. package/dist/cjs/parts/controls-input/styled.js.map +1 -1
  39. package/dist/cjs/parts/controls-input/useControlsInput.js +16 -10
  40. package/dist/cjs/parts/controls-input/useControlsInput.js.map +2 -2
  41. package/dist/cjs/parts/controls-input/useKeyboardNavigation.js +113 -104
  42. package/dist/cjs/parts/controls-input/useKeyboardNavigation.js.map +1 -1
  43. package/dist/cjs/parts/controls-input/useMaskedOnChange.js +27 -18
  44. package/dist/cjs/parts/controls-input/useMaskedOnChange.js.map +2 -2
  45. package/dist/cjs/parts/header-list/HeaderList.js +37 -22
  46. package/dist/cjs/parts/header-list/HeaderList.js.map +1 -1
  47. package/dist/cjs/parts/header-list/index.js +4 -1
  48. package/dist/cjs/parts/header-list/index.js.map +1 -1
  49. package/dist/cjs/parts/header-list/styled.js +4 -1
  50. package/dist/cjs/parts/header-list/styled.js.map +1 -1
  51. package/dist/cjs/parts/header-list/useHeaderListHandlers.js +72 -48
  52. package/dist/cjs/parts/header-list/useHeaderListHandlers.js.map +2 -2
  53. package/dist/cjs/parts/menu-list/MenuList.js +49 -36
  54. package/dist/cjs/parts/menu-list/MenuList.js.map +1 -1
  55. package/dist/cjs/parts/menu-list/index.js +4 -1
  56. package/dist/cjs/parts/menu-list/index.js.map +1 -1
  57. package/dist/cjs/parts/menu-list/styled.js +4 -1
  58. package/dist/cjs/parts/menu-list/styled.js.map +1 -1
  59. package/dist/cjs/parts/menu-list/useItemRenderer.js +38 -23
  60. package/dist/cjs/parts/menu-list/useItemRenderer.js.map +1 -1
  61. package/dist/cjs/parts/multi-selected-values-container/MultiSelectedValuesContainer.js +28 -18
  62. package/dist/cjs/parts/multi-selected-values-container/MultiSelectedValuesContainer.js.map +2 -2
  63. package/dist/cjs/parts/multi-selected-values-container/RemovableSelectedValuePill.js +8 -5
  64. package/dist/cjs/parts/multi-selected-values-container/RemovableSelectedValuePill.js.map +2 -2
  65. package/dist/cjs/parts/multi-selected-values-container/index.js +4 -1
  66. package/dist/cjs/parts/multi-selected-values-container/index.js.map +1 -1
  67. package/dist/cjs/parts/multi-selected-values-container/useGroupPills.js +7 -2
  68. package/dist/cjs/parts/multi-selected-values-container/useGroupPills.js.map +1 -1
  69. package/dist/cjs/parts/styled.js +4 -1
  70. package/dist/cjs/parts/styled.js.map +1 -1
  71. package/dist/cjs/react-desc-prop-types.js +13 -4
  72. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  73. package/dist/cjs/sharedTypes.js +4 -1
  74. package/dist/cjs/sharedTypes.js.map +1 -1
  75. package/dist/cjs/tests/utils.js +4 -1
  76. package/dist/cjs/tests/utils.js.map +1 -1
  77. package/dist/cjs/theming.js +4 -1
  78. package/dist/cjs/theming.js.map +1 -1
  79. package/dist/cjs/utils/listHelper.js +7 -2
  80. package/dist/cjs/utils/listHelper.js.map +1 -1
  81. package/dist/esm/ComboBox.js +5 -4
  82. package/dist/esm/ComboBox.js.map +1 -1
  83. package/dist/esm/ComboBoxCTX.js.map +1 -1
  84. package/dist/esm/ComboboxDataTestids.js.map +1 -1
  85. package/dist/esm/config/useComboBox.js +64 -52
  86. package/dist/esm/config/useComboBox.js.map +1 -1
  87. package/dist/esm/config/useCorrectOptions.js +3 -1
  88. package/dist/esm/config/useCorrectOptions.js.map +1 -1
  89. package/dist/esm/constants.js.map +1 -1
  90. package/dist/esm/index.js.map +1 -1
  91. package/dist/esm/parts/A11yFocusedOption.js +10 -9
  92. package/dist/esm/parts/A11yFocusedOption.js.map +1 -1
  93. package/dist/esm/parts/A11ySelectedValues.js +16 -16
  94. package/dist/esm/parts/A11ySelectedValues.js.map +2 -2
  95. package/dist/esm/parts/DropdownIndicator.js +6 -4
  96. package/dist/esm/parts/DropdownIndicator.js.map +1 -1
  97. package/dist/esm/parts/container/Container.js +51 -34
  98. package/dist/esm/parts/container/Container.js.map +1 -1
  99. package/dist/esm/parts/container/index.js.map +1 -1
  100. package/dist/esm/parts/container/styled.js.map +1 -1
  101. package/dist/esm/parts/controls/Controls.js +55 -30
  102. package/dist/esm/parts/controls/Controls.js.map +2 -2
  103. package/dist/esm/parts/controls/index.js.map +1 -1
  104. package/dist/esm/parts/controls/styled.js.map +1 -1
  105. package/dist/esm/parts/controls/useOnPillsNavigation.js +20 -17
  106. package/dist/esm/parts/controls/useOnPillsNavigation.js.map +1 -1
  107. package/dist/esm/parts/controls-input/ControlsInput.js +37 -27
  108. package/dist/esm/parts/controls-input/ControlsInput.js.map +1 -1
  109. package/dist/esm/parts/controls-input/styled.js.map +1 -1
  110. package/dist/esm/parts/controls-input/useControlsInput.js +12 -9
  111. package/dist/esm/parts/controls-input/useControlsInput.js.map +1 -1
  112. package/dist/esm/parts/controls-input/useKeyboardNavigation.js +109 -103
  113. package/dist/esm/parts/controls-input/useKeyboardNavigation.js.map +1 -1
  114. package/dist/esm/parts/controls-input/useMaskedOnChange.js +23 -17
  115. package/dist/esm/parts/controls-input/useMaskedOnChange.js.map +1 -1
  116. package/dist/esm/parts/header-list/HeaderList.js +33 -21
  117. package/dist/esm/parts/header-list/HeaderList.js.map +1 -1
  118. package/dist/esm/parts/header-list/index.js.map +1 -1
  119. package/dist/esm/parts/header-list/styled.js.map +1 -1
  120. package/dist/esm/parts/header-list/useHeaderListHandlers.js +68 -47
  121. package/dist/esm/parts/header-list/useHeaderListHandlers.js.map +1 -1
  122. package/dist/esm/parts/menu-list/MenuList.js +45 -35
  123. package/dist/esm/parts/menu-list/MenuList.js.map +1 -1
  124. package/dist/esm/parts/menu-list/index.js.map +1 -1
  125. package/dist/esm/parts/menu-list/styled.js.map +1 -1
  126. package/dist/esm/parts/menu-list/useItemRenderer.js +34 -22
  127. package/dist/esm/parts/menu-list/useItemRenderer.js.map +1 -1
  128. package/dist/esm/parts/multi-selected-values-container/MultiSelectedValuesContainer.js +24 -17
  129. package/dist/esm/parts/multi-selected-values-container/MultiSelectedValuesContainer.js.map +1 -1
  130. package/dist/esm/parts/multi-selected-values-container/RemovableSelectedValuePill.js +4 -4
  131. package/dist/esm/parts/multi-selected-values-container/RemovableSelectedValuePill.js.map +1 -1
  132. package/dist/esm/parts/multi-selected-values-container/index.js.map +1 -1
  133. package/dist/esm/parts/multi-selected-values-container/useGroupPills.js +3 -1
  134. package/dist/esm/parts/multi-selected-values-container/useGroupPills.js.map +1 -1
  135. package/dist/esm/parts/styled.js.map +1 -1
  136. package/dist/esm/react-desc-prop-types.js +9 -3
  137. package/dist/esm/react-desc-prop-types.js.map +2 -2
  138. package/dist/esm/sharedTypes.js.map +1 -1
  139. package/dist/esm/tests/utils.js.map +1 -1
  140. package/dist/esm/theming.js.map +1 -1
  141. package/dist/esm/utils/listHelper.js +3 -1
  142. package/dist/esm/utils/listHelper.js.map +1 -1
  143. package/package.json +12 -12
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/index.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export * from './ComboBox';\nexport * from './theming';\nexport * from './ComboboxDataTestids';\n"],
5
- "mappings": "AAAA;ACAA;AACA;AACA;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,cAAc;AACd,cAAc;AACd,cAAc;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,6 @@
1
1
  import * as React from "react";
2
- import React2, { useContext, useMemo } from "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { useContext, useMemo } from "react";
3
4
  import ComboBoxContext from "../ComboBoxCTX";
4
5
  import { StyledA11ySelectedValues } from "./styled";
5
6
  import { getSelectableOptions, isSelected } from "../utils/listHelper";
@@ -17,19 +18,19 @@ const A11yFocusedOption = () => {
17
18
  const navigationContext = "Use up and down to choose options,press enter to choose focused option, press Escape to excuse dropdown menu";
18
19
  return useMemo(() => {
19
20
  if (!isSeparator(focusOption) && menuState && focusOption && focusOption.type === "option")
20
- return /* @__PURE__ */ React2.createElement(StyledA11ySelectedValues, {
21
- key: menuState,
21
+ return /* @__PURE__ */ jsx(StyledA11ySelectedValues, {
22
22
  "aria-live": "polite",
23
23
  "aria-atomic": "false",
24
- "aria-relevant": "additions text"
25
- }, `option ${focusOption?.label} ${isFocusOptionSelected ? "selected and " : ""}focused .${focusSelectableOptionIdx + 1} of ${selectabledOptions.length}. ${navigationContext} `);
24
+ "aria-relevant": "additions text",
25
+ children: `option ${focusOption?.label} ${isFocusOptionSelected ? "selected and " : ""}focused .${focusSelectableOptionIdx + 1} of ${selectabledOptions.length}. ${navigationContext} `
26
+ }, menuState);
26
27
  if (focusOption?.type === "creatable")
27
- return /* @__PURE__ */ React2.createElement(StyledA11ySelectedValues, {
28
- key: menuState,
28
+ return /* @__PURE__ */ jsx(StyledA11ySelectedValues, {
29
29
  "aria-live": "assertive",
30
30
  "aria-atomic": "false",
31
- "aria-relevant": "additions text"
32
- }, `Press enter to Add option written in input box. ${navigationContext}`);
31
+ "aria-relevant": "additions text",
32
+ children: `Press enter to Add option written in input box. ${navigationContext}`
33
+ }, menuState);
33
34
  return null;
34
35
  }, [focusOption, menuState, isFocusOptionSelected, focusSelectableOptionIdx, selectabledOptions.length]);
35
36
  };
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/A11yFocusedOption.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useContext, useMemo } from 'react';\nimport ComboBoxContext from '../ComboBoxCTX';\nimport { StyledA11ySelectedValues } from './styled';\nimport { getSelectableOptions, isSelected } from '../utils/listHelper';\nimport { isSeparator } from '../sharedTypes';\n\nexport const A11yFocusedOption: React.ComponentType = () => {\n const {\n props: { filteredOptions, selectedValues },\n focusOptionIdx,\n menuState,\n } = useContext(ComboBoxContext);\n const selectabledOptions = getSelectableOptions(filteredOptions);\n const focusOption = filteredOptions.find((option) => option.dsId === focusOptionIdx);\n const isFocusOptionSelected = focusOption?.type === 'option' && isSelected(selectedValues, focusOption);\n const focusSelectableOptionIdx = selectabledOptions.findIndex((option) => option.dsId === focusOptionIdx);\n\n const navigationContext =\n 'Use up and down to choose options,press enter to choose focused option, press Escape to excuse dropdown menu';\n return useMemo(() => {\n if (!isSeparator(focusOption) && menuState && focusOption && focusOption.type === 'option')\n return (\n <StyledA11ySelectedValues key={menuState} aria-live=\"polite\" aria-atomic=\"false\" aria-relevant=\"additions text\">\n {`option ${focusOption?.label} ${isFocusOptionSelected ? 'selected and ' : ''}focused .${\n focusSelectableOptionIdx + 1\n } of ${selectabledOptions.length}. ${navigationContext} `}\n </StyledA11ySelectedValues>\n );\n if (focusOption?.type === 'creatable')\n return (\n <StyledA11ySelectedValues\n key={menuState}\n aria-live=\"assertive\"\n aria-atomic=\"false\"\n aria-relevant=\"additions text\"\n >\n {`Press enter to Add option written in input box. ${navigationContext}`}\n </StyledA11ySelectedValues>\n );\n return null;\n }, [focusOption, menuState, isFocusOptionSelected, focusSelectableOptionIdx, selectabledOptions.length]);\n};\n"],
5
- "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AAEO,MAAM,oBAAyC,MAAM;AAC1D,QAAM;AAAA,IACJ,OAAO,EAAE,iBAAiB;AAAA,IAC1B;AAAA,IACA;AAAA,MACE,WAAW,eAAe;AAC9B,QAAM,qBAAqB,qBAAqB,eAAe;AAC/D,QAAM,cAAc,gBAAgB,KAAK,CAAC,WAAW,OAAO,SAAS,cAAc;AACnF,QAAM,wBAAwB,aAAa,SAAS,YAAY,WAAW,gBAAgB,WAAW;AACtG,QAAM,2BAA2B,mBAAmB,UAAU,CAAC,WAAW,OAAO,SAAS,cAAc;AAExG,QAAM,oBACJ;AACF,SAAO,QAAQ,MAAM;AACnB,QAAI,CAAC,YAAY,WAAW,KAAK,aAAa,eAAe,YAAY,SAAS;AAChF,aACE,qCAAC;AAAA,QAAyB,KAAK;AAAA,QAAW,aAAU;AAAA,QAAS,eAAY;AAAA,QAAQ,iBAAc;AAAA,SAC5F,UAAU,aAAa,SAAS,wBAAwB,kBAAkB,cACzE,2BAA2B,QACtB,mBAAmB,WAAW,oBACvC;AAEJ,QAAI,aAAa,SAAS;AACxB,aACE,qCAAC;AAAA,QACC,KAAK;AAAA,QACL,aAAU;AAAA,QACV,eAAY;AAAA,QACZ,iBAAc;AAAA,SAEb,mDAAmD,mBACtD;AAEJ,WAAO;AAAA,EACT,GAAG,CAAC,aAAa,WAAW,uBAAuB,0BAA0B,mBAAmB,MAAM,CAAC;AACzG;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB;AAAA,SAAgB,YAAY,eAAe;AAC3C,OAAO,qBAAqB;AAC5B,SAAS,gCAAgC;AACzC,SAAS,sBAAsB,kBAAkB;AACjD,SAAS,mBAAmB;AAErB,MAAM,oBAAyC,MAAM;AAC1D,QAAM;AAAA,IACJ,OAAO,EAAE,iBAAiB,eAAe;AAAA,IACzC;AAAA,IACA;AAAA,EACF,IAAI,WAAW,eAAe;AAC9B,QAAM,qBAAqB,qBAAqB,eAAe;AAC/D,QAAM,cAAc,gBAAgB,KAAK,CAAC,WAAW,OAAO,SAAS,cAAc;AACnF,QAAM,wBAAwB,aAAa,SAAS,YAAY,WAAW,gBAAgB,WAAW;AACtG,QAAM,2BAA2B,mBAAmB,UAAU,CAAC,WAAW,OAAO,SAAS,cAAc;AAExG,QAAM,oBACJ;AACF,SAAO,QAAQ,MAAM;AACnB,QAAI,CAAC,YAAY,WAAW,KAAK,aAAa,eAAe,YAAY,SAAS;AAChF,aACE,oBAAC;AAAA,QAAyC,aAAU;AAAA,QAAS,eAAY;AAAA,QAAQ,iBAAc;AAAA,QAC5F,oBAAU,aAAa,SAAS,wBAAwB,kBAAkB,cACzE,2BAA2B,QACtB,mBAAmB,WAAW;AAAA,SAHR,SAI/B;AAEJ,QAAI,aAAa,SAAS;AACxB,aACE,oBAAC;AAAA,QAEC,aAAU;AAAA,QACV,eAAY;AAAA,QACZ,iBAAc;AAAA,QAEb,6DAAmD;AAAA,SAL/C,SAMP;AAEJ,WAAO;AAAA,EACT,GAAG,CAAC,aAAa,WAAW,uBAAuB,0BAA0B,mBAAmB,MAAM,CAAC;AACzG;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,6 @@
1
1
  import * as React from "react";
2
- import React2, { useContext, useMemo } from "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { useContext, useMemo } from "react";
3
4
  import ComboBoxContext from "../ComboBoxCTX";
4
5
  import { StyledA11ySelectedValues } from "./styled";
5
6
  import { ComboboxDataTestid } from "../ComboboxDataTestids";
@@ -7,23 +8,22 @@ const A11ySelectedValues = () => {
7
8
  const {
8
9
  props: { selectedValues }
9
10
  } = useContext(ComboBoxContext);
10
- return useMemo(() => {
11
- let msg = "No Option Selected";
12
- if (Array.isArray(selectedValues)) {
13
- if (selectedValues.length > 0) {
14
- msg = `Options selected: ${selectedValues.map((item) => item.label).join(", ")}`;
15
- }
16
- } else if (selectedValues) {
17
- msg = `Option selected: ${selectedValues?.label}`;
11
+ const msg = useMemo(() => {
12
+ if (Array.isArray(selectedValues) && selectedValues.length > 0) {
13
+ return `Options selected: ${selectedValues.map((item) => item.label).join(", ")}`;
18
14
  }
19
- return /* @__PURE__ */ React2.createElement(StyledA11ySelectedValues, {
20
- id: "combobox-selected-items",
21
- "data-testid": ComboboxDataTestid.ALLY_SELECTED_VALUES,
22
- "aria-live": "polite",
23
- "aria-atomic": "false",
24
- "aria-relevant": "additions text"
25
- }, msg);
15
+ if (selectedValues) {
16
+ return `Option selected: ${selectedValues?.label}`;
17
+ }
18
+ return "No Option Selected";
26
19
  }, [selectedValues]);
20
+ return /* @__PURE__ */ jsx(StyledA11ySelectedValues, {
21
+ "data-testid": ComboboxDataTestid.ALLY_SELECTED_VALUES,
22
+ "aria-live": "polite",
23
+ "aria-atomic": "false",
24
+ "aria-relevant": "additions text",
25
+ children: msg
26
+ });
27
27
  };
28
28
  export {
29
29
  A11ySelectedValues
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/A11ySelectedValues.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useContext, useMemo } from 'react';\nimport ComboBoxContext from '../ComboBoxCTX';\nimport { StyledA11ySelectedValues } from './styled';\nimport { ComboboxDataTestid } from '../ComboboxDataTestids';\nexport const A11ySelectedValues = (): JSX.Element => {\n const {\n props: { selectedValues },\n } = useContext(ComboBoxContext);\n\n return useMemo(() => {\n let msg = 'No Option Selected';\n if (Array.isArray(selectedValues)) {\n if (selectedValues.length > 0) {\n msg = `Options selected: ${selectedValues.map((item) => item.label).join(', ')}`;\n }\n } else if (selectedValues) {\n msg = `Option selected: ${selectedValues?.label}`;\n }\n\n return (\n <StyledA11ySelectedValues\n id=\"combobox-selected-items\"\n data-testid={ComboboxDataTestid.ALLY_SELECTED_VALUES}\n aria-live=\"polite\"\n aria-atomic=\"false\"\n aria-relevant=\"additions text\"\n >\n {msg}\n </StyledA11ySelectedValues>\n );\n }, [selectedValues]);\n};\n"],
5
- "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACO,MAAM,qBAAqB,MAAmB;AACnD,QAAM;AAAA,IACJ,OAAO,EAAE;AAAA,MACP,WAAW,eAAe;AAE9B,SAAO,QAAQ,MAAM;AACnB,QAAI,MAAM;AACV,QAAI,MAAM,QAAQ,cAAc,GAAG;AACjC,UAAI,eAAe,SAAS,GAAG;AAC7B,cAAM,qBAAqB,eAAe,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,KAAK,IAAI;AAAA,MAC/E;AAAA,IACF,WAAW,gBAAgB;AACzB,YAAM,oBAAoB,gBAAgB;AAAA,IAC5C;AAEA,WACE,qCAAC;AAAA,MACC,IAAG;AAAA,MACH,eAAa,mBAAmB;AAAA,MAChC,aAAU;AAAA,MACV,eAAY;AAAA,MACZ,iBAAc;AAAA,OAEb,GACH;AAAA,EAEJ,GAAG,CAAC,cAAc,CAAC;AACrB;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useContext, useMemo } from 'react';\nimport ComboBoxContext from '../ComboBoxCTX';\nimport { StyledA11ySelectedValues } from './styled';\nimport { ComboboxDataTestid } from '../ComboboxDataTestids';\nexport const A11ySelectedValues = (): JSX.Element => {\n const {\n props: { selectedValues },\n } = useContext(ComboBoxContext);\n\n const msg = useMemo(() => {\n if (Array.isArray(selectedValues) && selectedValues.length > 0) {\n return `Options selected: ${selectedValues.map((item) => item.label).join(', ')}`;\n }\n if (selectedValues) {\n return `Option selected: ${selectedValues?.label}`;\n }\n return 'No Option Selected';\n }, [selectedValues]);\n\n return (\n <StyledA11ySelectedValues\n data-testid={ComboboxDataTestid.ALLY_SELECTED_VALUES}\n aria-live=\"polite\"\n aria-atomic=\"false\"\n aria-relevant=\"additions text\"\n >\n {msg}\n </StyledA11ySelectedValues>\n );\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB;AAAA,SAAgB,YAAY,eAAe;AAC3C,OAAO,qBAAqB;AAC5B,SAAS,gCAAgC;AACzC,SAAS,0BAA0B;AAC5B,MAAM,qBAAqB,MAAmB;AACnD,QAAM;AAAA,IACJ,OAAO,EAAE,eAAe;AAAA,EAC1B,IAAI,WAAW,eAAe;AAE9B,QAAM,MAAM,QAAQ,MAAM;AACxB,QAAI,MAAM,QAAQ,cAAc,KAAK,eAAe,SAAS,GAAG;AAC9D,aAAO,qBAAqB,eAAe,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,KAAK,IAAI;AAAA,IAChF;AACA,QAAI,gBAAgB;AAClB,aAAO,oBAAoB,gBAAgB;AAAA,IAC7C;AACA,WAAO;AAAA,EACT,GAAG,CAAC,cAAc,CAAC;AAEnB,SACE,oBAAC;AAAA,IACC,eAAa,mBAAmB;AAAA,IAChC,aAAU;AAAA,IACV,eAAY;AAAA,IACZ,iBAAc;AAAA,IAEb;AAAA,GACH;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,6 @@
1
1
  import * as React from "react";
2
- import React2, { useCallback, useContext } from "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { useCallback, useContext } from "react";
3
4
  import { styled } from "@elliemae/ds-system";
4
5
  import { DSButtonV2 } from "@elliemae/ds-button";
5
6
  import { ChevronSmallDown } from "@elliemae/ds-icons";
@@ -25,7 +26,7 @@ const DropdownIndicator = () => {
25
26
  const handleOnClick = useCallback((e) => {
26
27
  e.preventDefault();
27
28
  }, []);
28
- return /* @__PURE__ */ React2.createElement(StyledDropDownButton, {
29
+ return /* @__PURE__ */ jsx(StyledDropDownButton, {
29
30
  onClick: handleOnClick,
30
31
  "data-testid": ComboboxDataTestid.DROPDOWN,
31
32
  "aria-controls": "combo-listbox",
@@ -35,8 +36,9 @@ const DropdownIndicator = () => {
35
36
  "aria-haspopup": "listbox",
36
37
  "aria-hidden": true,
37
38
  buttonType: "icon",
38
- tabIndex: -1
39
- }, /* @__PURE__ */ React2.createElement(ChevronSmallDown, null));
39
+ tabIndex: -1,
40
+ children: /* @__PURE__ */ jsx(ChevronSmallDown, {})
41
+ });
40
42
  };
41
43
  export {
42
44
  DropdownIndicator
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/DropdownIndicator.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/prop-types */\n/* eslint-disable import/no-cycle */\nimport React, { useCallback, useContext } from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { DSButtonV2 } from '@elliemae/ds-button';\nimport { ChevronSmallDown } from '@elliemae/ds-icons';\nimport ComboBoxContext from '../ComboBoxCTX';\nimport { ComboboxDataTestid } from '../ComboboxDataTestids';\n\nconst StyledDropDownButton = styled(DSButtonV2)`\n &:focus::after {\n border: none;\n }\n &:hover:not(:disabled) {\n background-color: transparent;\n }\n\n & svg {\n fill: ${({ theme, disabled }) => (disabled ? theme.colors.neutral['400'] : theme.colors.brand['700'])};\n }\n`;\n\nexport const DropdownIndicator = (): JSX.Element => {\n const {\n props: { disabled },\n menuState,\n } = useContext(ComboBoxContext);\n\n const handleOnClick = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n }, []);\n\n return (\n <StyledDropDownButton\n onClick={handleOnClick}\n data-testid={ComboboxDataTestid.DROPDOWN}\n aria-controls=\"combo-listbox\"\n aria-labelledby=\"combo-label\"\n disabled={disabled}\n aria-expanded={menuState}\n aria-haspopup=\"listbox\"\n aria-hidden\n buttonType=\"icon\"\n tabIndex={-1}\n >\n <ChevronSmallDown />\n </StyledDropDownButton>\n );\n};\n"],
5
- "mappings": "AAAA;ACEA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,uBAAuB,OAAO,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YASlC,CAAC,EAAE,OAAO,eAAgB,WAAW,MAAM,OAAO,QAAQ,SAAS,MAAM,OAAO,MAAM;AAAA;AAAA;AAI3F,MAAM,oBAAoB,MAAmB;AAClD,QAAM;AAAA,IACJ,OAAO,EAAE;AAAA,IACT;AAAA,MACE,WAAW,eAAe;AAE9B,QAAM,gBAAgB,YAAY,CAAC,MAAwB;AACzD,MAAE,eAAe;AAAA,EACnB,GAAG,CAAC,CAAC;AAEL,SACE,qCAAC;AAAA,IACC,SAAS;AAAA,IACT,eAAa,mBAAmB;AAAA,IAChC,iBAAc;AAAA,IACd,mBAAgB;AAAA,IAChB;AAAA,IACA,iBAAe;AAAA,IACf,iBAAc;AAAA,IACd,eAAW;AAAA,IACX,YAAW;AAAA,IACX,UAAU;AAAA,KAEV,qCAAC,sBAAiB,CACpB;AAEJ;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB;AAEA,SAAgB,aAAa,kBAAkB;AAC/C,SAAS,cAAc;AACvB,SAAS,kBAAkB;AAC3B,SAAS,wBAAwB;AACjC,OAAO,qBAAqB;AAC5B,SAAS,0BAA0B;AAEnC,MAAM,uBAAuB,OAAO,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YASlC,CAAC,EAAE,OAAO,SAAS,MAAO,WAAW,MAAM,OAAO,QAAQ,SAAS,MAAM,OAAO,MAAM;AAAA;AAAA;AAI3F,MAAM,oBAAoB,MAAmB;AAClD,QAAM;AAAA,IACJ,OAAO,EAAE,SAAS;AAAA,IAClB;AAAA,EACF,IAAI,WAAW,eAAe;AAE9B,QAAM,gBAAgB,YAAY,CAAC,MAAwB;AACzD,MAAE,eAAe;AAAA,EACnB,GAAG,CAAC,CAAC;AAEL,SACE,oBAAC;AAAA,IACC,SAAS;AAAA,IACT,eAAa,mBAAmB;AAAA,IAChC,iBAAc;AAAA,IACd,mBAAgB;AAAA,IAChB;AAAA,IACA,iBAAe;AAAA,IACf,iBAAc;AAAA,IACd,eAAW;AAAA,IACX,YAAW;AAAA,IACX,UAAU;AAAA,IAEV,8BAAC,oBAAiB;AAAA,GACpB;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,6 @@
1
1
  import * as React from "react";
2
- import React2, { useCallback, useEffect, useMemo, useContext } from "react";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { useCallback, useEffect, useMemo, useContext } from "react";
3
4
  import { useGetGlobalAttributes, useGetXstyledProps } from "@elliemae/ds-utilities";
4
5
  import { DSPopperJS } from "@elliemae/ds-popperjs";
5
6
  import ComboBoxContext from "../../ComboBoxCTX";
@@ -30,39 +31,55 @@ const Container = () => {
30
31
  window.removeEventListener("blur", closeMenuOnWindowBlur);
31
32
  };
32
33
  }, [setMenuState]);
33
- return useMemo(() => /* @__PURE__ */ React2.createElement(StyledContainer, {
34
- "data-testid": ComboboxDataTestid.CONTAINER,
35
- ref: setReferenceElement,
36
- ...containerGlobals,
37
- ...xStyledProps
38
- }, inline ? /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(Controls, null), /* @__PURE__ */ React2.createElement(MenuList, null)) : /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(Controls, null), /* @__PURE__ */ React2.createElement(DSPopperJS, {
39
- customOffset: [0, 5],
40
- referenceElement,
41
- showPopover: menuState,
42
- closeContextMenu: handleCloseMenu,
43
- startPlacementPreference,
44
- placementOrderPreference,
45
- withoutPortal,
46
- withoutArrow: true,
47
- withoutAnimation: true,
48
- zIndex
49
- }, /* @__PURE__ */ React2.createElement(StyledPopperWrapper, {
50
- tabIndex: -1,
51
- onMouseDown: handleMouseDown
52
- }, /* @__PURE__ */ React2.createElement(MenuList, null))))), [
53
- inline,
54
- setReferenceElement,
55
- containerGlobals,
56
- referenceElement,
57
- menuState,
58
- xStyledProps,
59
- handleCloseMenu,
60
- startPlacementPreference,
61
- placementOrderPreference,
62
- withoutPortal,
63
- zIndex,
64
- handleMouseDown
65
- ]);
34
+ return useMemo(
35
+ () => /* @__PURE__ */ jsx(StyledContainer, {
36
+ "data-testid": ComboboxDataTestid.CONTAINER,
37
+ ref: setReferenceElement,
38
+ ...containerGlobals,
39
+ ...xStyledProps,
40
+ children: inline ? /* @__PURE__ */ jsxs(Fragment, {
41
+ children: [
42
+ /* @__PURE__ */ jsx(Controls, {}),
43
+ /* @__PURE__ */ jsx(MenuList, {})
44
+ ]
45
+ }) : /* @__PURE__ */ jsxs(Fragment, {
46
+ children: [
47
+ /* @__PURE__ */ jsx(Controls, {}),
48
+ /* @__PURE__ */ jsx(DSPopperJS, {
49
+ customOffset: [0, 5],
50
+ referenceElement,
51
+ showPopover: menuState,
52
+ closeContextMenu: handleCloseMenu,
53
+ startPlacementPreference,
54
+ placementOrderPreference,
55
+ withoutPortal,
56
+ withoutArrow: true,
57
+ withoutAnimation: true,
58
+ zIndex,
59
+ children: /* @__PURE__ */ jsx(StyledPopperWrapper, {
60
+ tabIndex: -1,
61
+ onMouseDown: handleMouseDown,
62
+ children: /* @__PURE__ */ jsx(MenuList, {})
63
+ })
64
+ })
65
+ ]
66
+ })
67
+ }),
68
+ [
69
+ inline,
70
+ setReferenceElement,
71
+ containerGlobals,
72
+ referenceElement,
73
+ menuState,
74
+ xStyledProps,
75
+ handleCloseMenu,
76
+ startPlacementPreference,
77
+ placementOrderPreference,
78
+ withoutPortal,
79
+ zIndex,
80
+ handleMouseDown
81
+ ]
82
+ );
66
83
  };
67
84
  export {
68
85
  Container
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/container/Container.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable complexity */\nimport React, { useCallback, useEffect, useMemo, useContext } from 'react';\nimport { useGetGlobalAttributes, useGetXstyledProps } from '@elliemae/ds-utilities';\nimport { DSPopperJS } from '@elliemae/ds-popperjs';\nimport ComboBoxContext from '../../ComboBoxCTX';\nimport { StyledContainer, StyledPopperWrapper } from './styled';\nimport { Controls } from '../controls';\nimport { MenuList } from '../menu-list';\nimport { ComboboxDataTestid } from '../../ComboboxDataTestids';\n\nexport const Container = (): JSX.Element => {\n const { props, setMenuState, menuState, setReferenceElement, referenceElement } = useContext(ComboBoxContext);\n\n const { inline, innerRef, startPlacementPreference, placementOrderPreference, withoutPortal, zIndex } = props;\n const globalAttributes = useGetGlobalAttributes(props);\n const xStyledProps = useGetXstyledProps(props);\n // Removing possible collisionable props\n const { placeholder, onKeyDown, onChange, disabled, tabIndex, ...containerGlobals } = globalAttributes;\n const handleMouseDown = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n }, []);\n\n const handleCloseMenu = useCallback(() => {\n setMenuState(false, 'blur');\n if (innerRef?.current) innerRef.current.blur();\n }, [innerRef, setMenuState]);\n\n useEffect(() => {\n const closeMenuOnWindowBlur = () => {\n setMenuState(false, 'blur');\n };\n\n window.addEventListener('blur', closeMenuOnWindowBlur);\n\n return () => {\n window.removeEventListener('blur', closeMenuOnWindowBlur);\n };\n }, [setMenuState]);\n\n return useMemo(\n () => (\n <StyledContainer\n data-testid={ComboboxDataTestid.CONTAINER}\n ref={setReferenceElement}\n {...containerGlobals}\n {...xStyledProps}\n >\n {inline ? (\n <>\n <Controls />\n <MenuList />\n </>\n ) : (\n <>\n <Controls />\n <DSPopperJS\n customOffset={[0, 5]}\n referenceElement={referenceElement}\n showPopover={menuState}\n closeContextMenu={handleCloseMenu}\n startPlacementPreference={startPlacementPreference}\n placementOrderPreference={placementOrderPreference}\n withoutPortal={withoutPortal}\n withoutArrow\n withoutAnimation\n zIndex={zIndex}\n >\n <StyledPopperWrapper tabIndex={-1} onMouseDown={handleMouseDown}>\n <MenuList />\n </StyledPopperWrapper>\n </DSPopperJS>\n </>\n )}\n </StyledContainer>\n ),\n [\n inline,\n setReferenceElement,\n containerGlobals,\n referenceElement,\n menuState,\n xStyledProps,\n handleCloseMenu,\n startPlacementPreference,\n placementOrderPreference,\n withoutPortal,\n zIndex,\n handleMouseDown,\n ],\n );\n};\n"],
5
- "mappings": "AAAA;ACCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,MAAM,YAAY,MAAmB;AAC1C,QAAM,EAAE,OAAO,cAAc,WAAW,qBAAqB,qBAAqB,WAAW,eAAe;AAE5G,QAAM,EAAE,QAAQ,UAAU,0BAA0B,0BAA0B,eAAe,WAAW;AACxG,QAAM,mBAAmB,uBAAuB,KAAK;AACrD,QAAM,eAAe,mBAAmB,KAAK;AAE7C,QAAM,EAAE,aAAa,WAAW,UAAU,UAAU,aAAa,qBAAqB;AACtF,QAAM,kBAAkB,YAAY,CAAC,MAAwB;AAC3D,MAAE,eAAe;AAAA,EACnB,GAAG,CAAC,CAAC;AAEL,QAAM,kBAAkB,YAAY,MAAM;AACxC,iBAAa,OAAO,MAAM;AAC1B,QAAI,UAAU;AAAS,eAAS,QAAQ,KAAK;AAAA,EAC/C,GAAG,CAAC,UAAU,YAAY,CAAC;AAE3B,YAAU,MAAM;AACd,UAAM,wBAAwB,MAAM;AAClC,mBAAa,OAAO,MAAM;AAAA,IAC5B;AAEA,WAAO,iBAAiB,QAAQ,qBAAqB;AAErD,WAAO,MAAM;AACX,aAAO,oBAAoB,QAAQ,qBAAqB;AAAA,IAC1D;AAAA,EACF,GAAG,CAAC,YAAY,CAAC;AAEjB,SAAO,QACL,MACE,qCAAC;AAAA,IACC,eAAa,mBAAmB;AAAA,IAChC,KAAK;AAAA,IACJ,GAAG;AAAA,IACH,GAAG;AAAA,KAEH,SACC,4DACE,qCAAC,cAAS,GACV,qCAAC,cAAS,CACZ,IAEA,4DACE,qCAAC,cAAS,GACV,qCAAC;AAAA,IACC,cAAc,CAAC,GAAG,CAAC;AAAA,IACnB;AAAA,IACA,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAY;AAAA,IACZ,kBAAgB;AAAA,IAChB;AAAA,KAEA,qCAAC;AAAA,IAAoB,UAAU;AAAA,IAAI,aAAa;AAAA,KAC9C,qCAAC,cAAS,CACZ,CACF,CACF,CAEJ,GAEF;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CACF;AACF;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB;AACA,SAAgB,aAAa,WAAW,SAAS,kBAAkB;AACnE,SAAS,wBAAwB,0BAA0B;AAC3D,SAAS,kBAAkB;AAC3B,OAAO,qBAAqB;AAC5B,SAAS,iBAAiB,2BAA2B;AACrD,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AACzB,SAAS,0BAA0B;AAE5B,MAAM,YAAY,MAAmB;AAC1C,QAAM,EAAE,OAAO,cAAc,WAAW,qBAAqB,iBAAiB,IAAI,WAAW,eAAe;AAE5G,QAAM,EAAE,QAAQ,UAAU,0BAA0B,0BAA0B,eAAe,OAAO,IAAI;AACxG,QAAM,mBAAmB,uBAAuB,KAAK;AACrD,QAAM,eAAe,mBAAmB,KAAK;AAE7C,QAAM,EAAE,aAAa,WAAW,UAAU,UAAU,aAAa,iBAAiB,IAAI;AACtF,QAAM,kBAAkB,YAAY,CAAC,MAAwB;AAC3D,MAAE,eAAe;AAAA,EACnB,GAAG,CAAC,CAAC;AAEL,QAAM,kBAAkB,YAAY,MAAM;AACxC,iBAAa,OAAO,MAAM;AAC1B,QAAI,UAAU;AAAS,eAAS,QAAQ,KAAK;AAAA,EAC/C,GAAG,CAAC,UAAU,YAAY,CAAC;AAE3B,YAAU,MAAM;AACd,UAAM,wBAAwB,MAAM;AAClC,mBAAa,OAAO,MAAM;AAAA,IAC5B;AAEA,WAAO,iBAAiB,QAAQ,qBAAqB;AAErD,WAAO,MAAM;AACX,aAAO,oBAAoB,QAAQ,qBAAqB;AAAA,IAC1D;AAAA,EACF,GAAG,CAAC,YAAY,CAAC;AAEjB,SAAO;AAAA,IACL,MACE,oBAAC;AAAA,MACC,eAAa,mBAAmB;AAAA,MAChC,KAAK;AAAA,MACJ,GAAG;AAAA,MACH,GAAG;AAAA,MAEH,mBACC;AAAA,QACE;AAAA,8BAAC,YAAS;AAAA,UACV,oBAAC,YAAS;AAAA;AAAA,OACZ,IAEA;AAAA,QACE;AAAA,8BAAC,YAAS;AAAA,UACV,oBAAC;AAAA,YACC,cAAc,CAAC,GAAG,CAAC;AAAA,YACnB;AAAA,YACA,aAAa;AAAA,YACb,kBAAkB;AAAA,YAClB;AAAA,YACA;AAAA,YACA;AAAA,YACA,cAAY;AAAA,YACZ,kBAAgB;AAAA,YAChB;AAAA,YAEA,8BAAC;AAAA,cAAoB,UAAU;AAAA,cAAI,aAAa;AAAA,cAC9C,8BAAC,YAAS;AAAA,aACZ;AAAA,WACF;AAAA;AAAA,OACF;AAAA,KAEJ;AAAA,IAEF;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/container/index.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { Container } from './Container';\n"],
5
- "mappings": "AAAA;ACAA;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,iBAAiB;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/container/styled.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { styled } from '@elliemae/ds-system';\nimport { DSComboBoxName, DSComboboxSlots } from '../../theming';\n\nexport const StyledContainer = styled('div', {\n name: DSComboBoxName,\n slot: DSComboboxSlots.CONTAINER,\n})`\n position: relative;\n cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'default')};\n`;\n\nexport const StyledPopperWrapper = styled('div')`\n position: relative;\n cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'default')};\n overflow: auto;\n`;\n"],
5
- "mappings": "AAAA;ACAA;AACA;AAEO,MAAM,kBAAkB,OAAO,OAAO;AAAA,EAC3C,MAAM;AAAA,EACN,MAAM,gBAAgB;AACxB,CAAC;AAAA;AAAA,YAEW,CAAC,EAAE,eAAgB,WAAW,gBAAgB;AAAA;AAGnD,MAAM,sBAAsB,OAAO,KAAK;AAAA;AAAA,YAEnC,CAAC,EAAE,eAAgB,WAAW,gBAAgB;AAAA;AAAA;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,cAAc;AACvB,SAAS,gBAAgB,uBAAuB;AAEzC,MAAM,kBAAkB,OAAO,OAAO;AAAA,EAC3C,MAAM;AAAA,EACN,MAAM,gBAAgB;AACxB,CAAC;AAAA;AAAA,YAEW,CAAC,EAAE,SAAS,MAAO,WAAW,gBAAgB;AAAA;AAGnD,MAAM,sBAAsB,OAAO,KAAK;AAAA;AAAA,YAEnC,CAAC,EAAE,SAAS,MAAO,WAAW,gBAAgB;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,6 @@
1
1
  import * as React from "react";
2
- import React2, { useContext, useMemo, useCallback } from "react";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useContext, useMemo, useCallback } from "react";
3
4
  import { DropdownIndicator } from "../DropdownIndicator";
4
5
  import { ComboboxDataTestid } from "../../ComboboxDataTestids";
5
6
  import ComboBoxContext from "../../ComboBoxCTX";
@@ -39,22 +40,31 @@ const Controls = () => {
39
40
  innerRef.current?.focus();
40
41
  setMenuState(true);
41
42
  }, [disabled, listRef, hasFocus, menuState, inline, innerRef, setMenuState, focusOptionIdx]);
42
- const handleOnPillsClick = useCallback((e) => {
43
- if (menuState || disabled) {
44
- e.stopPropagation();
45
- } else {
46
- innerRef.current?.focus();
47
- setMenuState(true);
48
- }
49
- }, [menuState, innerRef, disabled, setMenuState]);
50
- const handleOnMouseDown = useCallback((e) => {
51
- if (document.activeElement === innerRef.current || inline) {
52
- e.preventDefault();
53
- }
54
- }, [innerRef, inline]);
43
+ const handleOnPillsClick = useCallback(
44
+ (e) => {
45
+ if (menuState || disabled) {
46
+ e.stopPropagation();
47
+ } else {
48
+ innerRef.current?.focus();
49
+ setMenuState(true);
50
+ }
51
+ },
52
+ [menuState, innerRef, disabled, setMenuState]
53
+ );
54
+ const handleOnMouseDown = useCallback(
55
+ (e) => {
56
+ if (document.activeElement === innerRef.current || inline) {
57
+ e.preventDefault();
58
+ }
59
+ },
60
+ [innerRef, inline]
61
+ );
55
62
  const { onKeyDownPills } = useOnPillsNavigation();
56
- const cols = useMemo(() => !inline ? ["minmax(0px,max-content)", "minmax(20px, auto)", "29px"] : ["minmax(0px, auto)"], [inline]);
57
- return /* @__PURE__ */ React2.createElement(StyledControlsWrapper, {
63
+ const cols = useMemo(
64
+ () => !inline ? ["minmax(0px,max-content)", "minmax(20px, auto)", "29px"] : ["minmax(0px, auto)"],
65
+ [inline]
66
+ );
67
+ return /* @__PURE__ */ jsxs(StyledControlsWrapper, {
58
68
  ref: controlsWrapperRef,
59
69
  cols,
60
70
  disabled,
@@ -64,20 +74,35 @@ const Controls = () => {
64
74
  onClick: handleOnClick,
65
75
  onMouseDown: handleOnMouseDown,
66
76
  onKeyDown: onKeyDownPills,
67
- "data-testid": ComboboxDataTestid.CONTROLS_WRAPPER
68
- }, !inline && /* @__PURE__ */ React2.createElement(StyledSelection, {
69
- ref: selectedOptionsRef,
70
- onClick: handleOnPillsClick
71
- }, /* @__PURE__ */ React2.createElement(A11ySelectedValues, null), Array.isArray(selectedValues) ? /* @__PURE__ */ React2.createElement(MultiSelectedValuesContainer, null) : /* @__PURE__ */ React2.createElement("div", {
72
- "data-testid": ComboboxDataTestid.SELECTED_VALUES
73
- }, selectedValues && /* @__PURE__ */ React2.createElement(RemovableSelectedValuePill, {
74
- pill: selectedValues
75
- }))), /* @__PURE__ */ React2.createElement(A11yFocusedOption, null), /* @__PURE__ */ React2.createElement(ControlsInput, null), !inline && /* @__PURE__ */ React2.createElement(StyledHeaderActionsWrapper, {
76
- justifyContent: "center",
77
- cols: ["min-content", "min-content"]
78
- }, /* @__PURE__ */ React2.createElement(StyleHeaderActionsSeparator, {
79
- disabled
80
- }), /* @__PURE__ */ React2.createElement(DropdownIndicator, null)));
77
+ "data-testid": ComboboxDataTestid.CONTROLS_WRAPPER,
78
+ children: [
79
+ !inline && /* @__PURE__ */ jsxs(StyledSelection, {
80
+ ref: selectedOptionsRef,
81
+ onClick: handleOnPillsClick,
82
+ children: [
83
+ hasFocus && /* @__PURE__ */ jsx(A11ySelectedValues, {}),
84
+ Array.isArray(selectedValues) ? /* @__PURE__ */ jsx(MultiSelectedValuesContainer, {}) : /* @__PURE__ */ jsx("div", {
85
+ "data-testid": ComboboxDataTestid.SELECTED_VALUES,
86
+ children: selectedValues && /* @__PURE__ */ jsx(RemovableSelectedValuePill, {
87
+ pill: selectedValues
88
+ })
89
+ })
90
+ ]
91
+ }),
92
+ /* @__PURE__ */ jsx(A11yFocusedOption, {}),
93
+ /* @__PURE__ */ jsx(ControlsInput, {}),
94
+ !inline && /* @__PURE__ */ jsxs(StyledHeaderActionsWrapper, {
95
+ justifyContent: "center",
96
+ cols: ["min-content", "min-content"],
97
+ children: [
98
+ /* @__PURE__ */ jsx(StyleHeaderActionsSeparator, {
99
+ disabled
100
+ }),
101
+ /* @__PURE__ */ jsx(DropdownIndicator, {})
102
+ ]
103
+ })
104
+ ]
105
+ });
81
106
  };
82
107
  export {
83
108
  Controls
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/controls/Controls.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport React, { useContext, useMemo, useCallback } from 'react';\nimport { DropdownIndicator } from '../DropdownIndicator';\nimport { ComboboxDataTestid } from '../../ComboboxDataTestids';\nimport ComboBoxContext from '../../ComboBoxCTX';\nimport {\n StyledControlsWrapper,\n StyleHeaderActionsSeparator,\n StyledHeaderActionsWrapper,\n StyledSelection,\n} from './styled';\nimport { scrollIfNeeded } from '../../utils/listHelper';\nimport { MultiSelectedValuesContainer } from '../multi-selected-values-container';\nimport { ControlsInput } from '../controls-input/ControlsInput';\nimport { useOnPillsNavigation } from './useOnPillsNavigation';\nimport { A11yFocusedOption } from '../A11yFocusedOption';\nimport { A11ySelectedValues } from '../A11ySelectedValues';\nimport { RemovableSelectedValuePill } from '../multi-selected-values-container/RemovableSelectedValuePill';\nexport const Controls = (): JSX.Element => {\n const {\n props: { inline, disabled, inputMinWidth, hasError, selectedValues, innerRef },\n selectedOptionsRef,\n setMenuState,\n setFocusOptionIdx,\n hasFocus,\n listRef,\n focusOptionIdx,\n menuState,\n controlsWrapperRef,\n } = useContext(ComboBoxContext);\n\n const handleOnClick = useCallback(() => {\n if (disabled) return;\n if (hasFocus && menuState && !inline) {\n setMenuState(false);\n setFocusOptionIdx('');\n innerRef.current?.blur();\n return;\n }\n innerRef.current?.focus();\n setMenuState(true);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [disabled, listRef, hasFocus, menuState, inline, innerRef, setMenuState, focusOptionIdx]);\n\n // this callback prevent to toggle the menu when clicking or removing pills\n const handleOnPillsClick: React.MouseEventHandler = useCallback(\n (e) => {\n if (menuState || disabled) {\n e.stopPropagation();\n } else {\n innerRef.current?.focus();\n setMenuState(true);\n }\n },\n [menuState, innerRef, disabled, setMenuState],\n );\n\n // callback to prevent onBlur on the input when clicking in all the wrapper\n const handleOnMouseDown: React.MouseEventHandler = useCallback(\n (e) => {\n if (document.activeElement === innerRef.current || inline) {\n e.preventDefault();\n }\n },\n [innerRef, inline],\n );\n\n const { onKeyDownPills } = useOnPillsNavigation();\n\n const cols = useMemo(\n () => (!inline ? ['minmax(0px,max-content)', 'minmax(20px, auto)', '29px'] : ['minmax(0px, auto)']),\n [inline],\n );\n return (\n <StyledControlsWrapper\n ref={controlsWrapperRef}\n cols={cols}\n disabled={disabled}\n minWidth={inputMinWidth}\n hasError={hasError}\n inline={inline}\n onClick={handleOnClick}\n onMouseDown={handleOnMouseDown}\n onKeyDown={onKeyDownPills}\n data-testid={ComboboxDataTestid.CONTROLS_WRAPPER}\n >\n {!inline && (\n <StyledSelection ref={selectedOptionsRef} onClick={handleOnPillsClick}>\n <A11ySelectedValues />\n {Array.isArray(selectedValues) ? (\n <MultiSelectedValuesContainer />\n ) : (\n <div data-testid={ComboboxDataTestid.SELECTED_VALUES}>\n {selectedValues && <RemovableSelectedValuePill pill={selectedValues} />}\n </div>\n )}\n </StyledSelection>\n )}\n <A11yFocusedOption />\n\n <ControlsInput />\n {!inline && (\n <StyledHeaderActionsWrapper justifyContent=\"center\" cols={['min-content', 'min-content']}>\n <StyleHeaderActionsSeparator disabled={disabled} />\n <DropdownIndicator />\n </StyledHeaderActionsWrapper>\n )}\n </StyledControlsWrapper>\n );\n};\n"],
5
- "mappings": "AAAA;ACEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,WAAW,MAAmB;AACzC,QAAM;AAAA,IACJ,OAAO,EAAE,QAAQ,UAAU,eAAe,UAAU,gBAAgB;AAAA,IACpE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,WAAW,eAAe;AAE9B,QAAM,gBAAgB,YAAY,MAAM;AACtC,QAAI;AAAU;AACd,QAAI,YAAY,aAAa,CAAC,QAAQ;AACpC,mBAAa,KAAK;AAClB,wBAAkB,EAAE;AACpB,eAAS,SAAS,KAAK;AACvB;AAAA,IACF;AACA,aAAS,SAAS,MAAM;AACxB,iBAAa,IAAI;AAAA,EAGnB,GAAG,CAAC,UAAU,SAAS,UAAU,WAAW,QAAQ,UAAU,cAAc,cAAc,CAAC;AAG3F,QAAM,qBAA8C,YAClD,CAAC,MAAM;AACL,QAAI,aAAa,UAAU;AACzB,QAAE,gBAAgB;AAAA,IACpB,OAAO;AACL,eAAS,SAAS,MAAM;AACxB,mBAAa,IAAI;AAAA,IACnB;AAAA,EACF,GACA,CAAC,WAAW,UAAU,UAAU,YAAY,CAC9C;AAGA,QAAM,oBAA6C,YACjD,CAAC,MAAM;AACL,QAAI,SAAS,kBAAkB,SAAS,WAAW,QAAQ;AACzD,QAAE,eAAe;AAAA,IACnB;AAAA,EACF,GACA,CAAC,UAAU,MAAM,CACnB;AAEA,QAAM,EAAE,mBAAmB,qBAAqB;AAEhD,QAAM,OAAO,QACX,MAAO,CAAC,SAAS,CAAC,2BAA2B,sBAAsB,MAAM,IAAI,CAAC,mBAAmB,GACjG,CAAC,MAAM,CACT;AACA,SACE,qCAAC;AAAA,IACC,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,aAAa;AAAA,IACb,WAAW;AAAA,IACX,eAAa,mBAAmB;AAAA,KAE/B,CAAC,UACA,qCAAC;AAAA,IAAgB,KAAK;AAAA,IAAoB,SAAS;AAAA,KACjD,qCAAC,wBAAmB,GACnB,MAAM,QAAQ,cAAc,IAC3B,qCAAC,kCAA6B,IAE9B,qCAAC;AAAA,IAAI,eAAa,mBAAmB;AAAA,KAClC,kBAAkB,qCAAC;AAAA,IAA2B,MAAM;AAAA,GAAgB,CACvE,CAEJ,GAEF,qCAAC,uBAAkB,GAEnB,qCAAC,mBAAc,GACd,CAAC,UACA,qCAAC;AAAA,IAA2B,gBAAe;AAAA,IAAS,MAAM,CAAC,eAAe,aAAa;AAAA,KACrF,qCAAC;AAAA,IAA4B;AAAA,GAAoB,GACjD,qCAAC,uBAAkB,CACrB,CAEJ;AAEJ;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport React, { useContext, useMemo, useCallback } from 'react';\nimport { DropdownIndicator } from '../DropdownIndicator';\nimport { ComboboxDataTestid } from '../../ComboboxDataTestids';\nimport ComboBoxContext from '../../ComboBoxCTX';\nimport {\n StyledControlsWrapper,\n StyleHeaderActionsSeparator,\n StyledHeaderActionsWrapper,\n StyledSelection,\n} from './styled';\nimport { MultiSelectedValuesContainer } from '../multi-selected-values-container';\nimport { ControlsInput } from '../controls-input/ControlsInput';\nimport { useOnPillsNavigation } from './useOnPillsNavigation';\nimport { A11yFocusedOption } from '../A11yFocusedOption';\nimport { A11ySelectedValues } from '../A11ySelectedValues';\nimport { RemovableSelectedValuePill } from '../multi-selected-values-container/RemovableSelectedValuePill';\nexport const Controls = (): JSX.Element => {\n const {\n props: { inline, disabled, inputMinWidth, hasError, selectedValues, innerRef },\n selectedOptionsRef,\n setMenuState,\n setFocusOptionIdx,\n hasFocus,\n listRef,\n focusOptionIdx,\n menuState,\n controlsWrapperRef,\n } = useContext(ComboBoxContext);\n\n const handleOnClick = useCallback(() => {\n if (disabled) return;\n if (hasFocus && menuState && !inline) {\n setMenuState(false);\n setFocusOptionIdx('');\n innerRef.current?.blur();\n return;\n }\n innerRef.current?.focus();\n setMenuState(true);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [disabled, listRef, hasFocus, menuState, inline, innerRef, setMenuState, focusOptionIdx]);\n\n // this callback prevent to toggle the menu when clicking or removing pills\n const handleOnPillsClick: React.MouseEventHandler = useCallback(\n (e) => {\n if (menuState || disabled) {\n e.stopPropagation();\n } else {\n innerRef.current?.focus();\n setMenuState(true);\n }\n },\n [menuState, innerRef, disabled, setMenuState],\n );\n\n // callback to prevent onBlur on the input when clicking in all the wrapper\n const handleOnMouseDown: React.MouseEventHandler = useCallback(\n (e) => {\n if (document.activeElement === innerRef.current || inline) {\n e.preventDefault();\n }\n },\n [innerRef, inline],\n );\n\n const { onKeyDownPills } = useOnPillsNavigation();\n\n const cols = useMemo(\n () => (!inline ? ['minmax(0px,max-content)', 'minmax(20px, auto)', '29px'] : ['minmax(0px, auto)']),\n [inline],\n );\n return (\n <StyledControlsWrapper\n ref={controlsWrapperRef}\n cols={cols}\n disabled={disabled}\n minWidth={inputMinWidth}\n hasError={hasError}\n inline={inline}\n onClick={handleOnClick}\n onMouseDown={handleOnMouseDown}\n onKeyDown={onKeyDownPills}\n data-testid={ComboboxDataTestid.CONTROLS_WRAPPER}\n >\n {!inline && (\n <StyledSelection ref={selectedOptionsRef} onClick={handleOnPillsClick}>\n {hasFocus && <A11ySelectedValues />}\n {Array.isArray(selectedValues) ? (\n <MultiSelectedValuesContainer />\n ) : (\n <div data-testid={ComboboxDataTestid.SELECTED_VALUES}>\n {selectedValues && <RemovableSelectedValuePill pill={selectedValues} />}\n </div>\n )}\n </StyledSelection>\n )}\n <A11yFocusedOption />\n\n <ControlsInput />\n {!inline && (\n <StyledHeaderActionsWrapper justifyContent=\"center\" cols={['min-content', 'min-content']}>\n <StyleHeaderActionsSeparator disabled={disabled} />\n <DropdownIndicator />\n </StyledHeaderActionsWrapper>\n )}\n </StyledControlsWrapper>\n );\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB;AAEA,SAAgB,YAAY,SAAS,mBAAmB;AACxD,SAAS,yBAAyB;AAClC,SAAS,0BAA0B;AACnC,OAAO,qBAAqB;AAC5B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oCAAoC;AAC7C,SAAS,qBAAqB;AAC9B,SAAS,4BAA4B;AACrC,SAAS,yBAAyB;AAClC,SAAS,0BAA0B;AACnC,SAAS,kCAAkC;AACpC,MAAM,WAAW,MAAmB;AACzC,QAAM;AAAA,IACJ,OAAO,EAAE,QAAQ,UAAU,eAAe,UAAU,gBAAgB,SAAS;AAAA,IAC7E;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,WAAW,eAAe;AAE9B,QAAM,gBAAgB,YAAY,MAAM;AACtC,QAAI;AAAU;AACd,QAAI,YAAY,aAAa,CAAC,QAAQ;AACpC,mBAAa,KAAK;AAClB,wBAAkB,EAAE;AACpB,eAAS,SAAS,KAAK;AACvB;AAAA,IACF;AACA,aAAS,SAAS,MAAM;AACxB,iBAAa,IAAI;AAAA,EAGnB,GAAG,CAAC,UAAU,SAAS,UAAU,WAAW,QAAQ,UAAU,cAAc,cAAc,CAAC;AAG3F,QAAM,qBAA8C;AAAA,IAClD,CAAC,MAAM;AACL,UAAI,aAAa,UAAU;AACzB,UAAE,gBAAgB;AAAA,MACpB,OAAO;AACL,iBAAS,SAAS,MAAM;AACxB,qBAAa,IAAI;AAAA,MACnB;AAAA,IACF;AAAA,IACA,CAAC,WAAW,UAAU,UAAU,YAAY;AAAA,EAC9C;AAGA,QAAM,oBAA6C;AAAA,IACjD,CAAC,MAAM;AACL,UAAI,SAAS,kBAAkB,SAAS,WAAW,QAAQ;AACzD,UAAE,eAAe;AAAA,MACnB;AAAA,IACF;AAAA,IACA,CAAC,UAAU,MAAM;AAAA,EACnB;AAEA,QAAM,EAAE,eAAe,IAAI,qBAAqB;AAEhD,QAAM,OAAO;AAAA,IACX,MAAO,CAAC,SAAS,CAAC,2BAA2B,sBAAsB,MAAM,IAAI,CAAC,mBAAmB;AAAA,IACjG,CAAC,MAAM;AAAA,EACT;AACA,SACE,qBAAC;AAAA,IACC,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,aAAa;AAAA,IACb,WAAW;AAAA,IACX,eAAa,mBAAmB;AAAA,IAE/B;AAAA,OAAC,UACA,qBAAC;AAAA,QAAgB,KAAK;AAAA,QAAoB,SAAS;AAAA,QAChD;AAAA,sBAAY,oBAAC,sBAAmB;AAAA,UAChC,MAAM,QAAQ,cAAc,IAC3B,oBAAC,gCAA6B,IAE9B,oBAAC;AAAA,YAAI,eAAa,mBAAmB;AAAA,YAClC,4BAAkB,oBAAC;AAAA,cAA2B,MAAM;AAAA,aAAgB;AAAA,WACvE;AAAA;AAAA,OAEJ;AAAA,MAEF,oBAAC,qBAAkB;AAAA,MAEnB,oBAAC,iBAAc;AAAA,MACd,CAAC,UACA,qBAAC;AAAA,QAA2B,gBAAe;AAAA,QAAS,MAAM,CAAC,eAAe,aAAa;AAAA,QACrF;AAAA,8BAAC;AAAA,YAA4B;AAAA,WAAoB;AAAA,UACjD,oBAAC,qBAAkB;AAAA;AAAA,OACrB;AAAA;AAAA,GAEJ;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/controls/index.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { Controls } from './Controls';\n"],
5
- "mappings": "AAAA;ACAA;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,gBAAgB;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/controls/styled.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { styled, css } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSComboBoxName, DSComboboxSlots } from '../../theming';\n\ninterface StyledControlsWrapperT {\n hasError: boolean;\n inline: boolean;\n minWidth?: number;\n disabled: boolean;\n}\nconst normalBorder = css<{ hasError: boolean }>`\n border: 1px solid ${({ hasError, theme }) => (hasError ? theme.colors.danger[900] : theme.colors.neutral[400])};\n`;\nconst focusBorder = css`\n outline: 2px solid ${({ theme }) => theme.colors.brand[700]};\n outline-offset: -2px;\n`;\n\nconst hoverBorder = css`\n border: 1px solid ${({ theme }) => theme.colors.brand[700]};\n`;\nexport const StyledControlsWrapper = styled(Grid, {\n name: DSComboBoxName,\n slot: DSComboboxSlots.INPUT_WRAPPER,\n})<StyledControlsWrapperT>`\n background: ${({ disabled, theme }) => (disabled ? theme.colors.neutral['080'] : '#ffffff')};\n position: relative;\n border-radius: 2px;\n min-width: ${({ minWidth, inline }) => (inline || !minWidth ? '' : `${minWidth}px`)};\n align-items: center;\n align-content: center;\n height: 28px;\n padding-left: 8px;\n margin: ${({ inline }) => (inline ? '10px 16px' : '')};\n ${normalBorder}\n &:hover {\n ${({ disabled }) => (!disabled ? hoverBorder : '')}\n }\n &:focus-within {\n ${focusBorder}\n }\n`;\n\nexport const StyledSelection = styled.div`\n font-size: 13px;\n margin-right: 3px;\n display: flex;\n`;\n\nexport const StyledHeaderActionsWrapper = styled(Grid)`\n height: 100%;\n .em-ds-button--text:focus::after {\n border: none;\n }\n`;\n\nexport const StyleDropdownIndicator = styled.div``;\n\nexport const StyleHeaderActionsSeparator = styled.span<Partial<StyledControlsWrapperT>>`\n align-self: stretch;\n margin: 4px 0px;\n width: 1px;\n background-color: ${({ theme, disabled }) => (disabled ? theme.colors.neutral['400'] : theme.colors.neutral['500'])};\n`;\n"],
5
- "mappings": "AAAA;ACAA;AACA;AACA;AAQA,MAAM,eAAe;AAAA,sBACC,CAAC,EAAE,UAAU,YAAa,WAAW,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,QAAQ;AAAA;AAE3G,MAAM,cAAc;AAAA,uBACG,CAAC,EAAE,YAAY,MAAM,OAAO,MAAM;AAAA;AAAA;AAIzD,MAAM,cAAc;AAAA,sBACE,CAAC,EAAE,YAAY,MAAM,OAAO,MAAM;AAAA;AAEjD,MAAM,wBAAwB,OAAO,MAAM;AAAA,EAChD,MAAM;AAAA,EACN,MAAM,gBAAgB;AACxB,CAAC;AAAA,gBACe,CAAC,EAAE,UAAU,YAAa,WAAW,MAAM,OAAO,QAAQ,SAAS;AAAA;AAAA;AAAA,eAGpE,CAAC,EAAE,UAAU,aAAc,UAAU,CAAC,WAAW,KAAK,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,YAK5D,CAAC,EAAE,aAAc,SAAS,cAAc;AAAA,IAChD;AAAA;AAAA,MAEE,CAAC,EAAE,eAAgB,CAAC,WAAW,cAAc;AAAA;AAAA;AAAA,MAG7C;AAAA;AAAA;AAIC,MAAM,kBAAkB,OAAO;AAAA;AAAA;AAAA;AAAA;AAM/B,MAAM,6BAA6B,OAAO,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAO9C,MAAM,yBAAyB,OAAO;AAEtC,MAAM,8BAA8B,OAAO;AAAA;AAAA;AAAA;AAAA,sBAI5B,CAAC,EAAE,OAAO,eAAgB,WAAW,MAAM,OAAO,QAAQ,SAAS,MAAM,OAAO,QAAQ;AAAA;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,QAAQ,WAAW;AAC5B,SAAS,YAAY;AACrB,SAAS,gBAAgB,uBAAuB;AAQhD,MAAM,eAAe;AAAA,sBACC,CAAC,EAAE,UAAU,MAAM,MAAO,WAAW,MAAM,OAAO,OAAO,OAAO,MAAM,OAAO,QAAQ;AAAA;AAE3G,MAAM,cAAc;AAAA,uBACG,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,MAAM;AAAA;AAAA;AAIzD,MAAM,cAAc;AAAA,sBACE,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,MAAM;AAAA;AAEjD,MAAM,wBAAwB,OAAO,MAAM;AAAA,EAChD,MAAM;AAAA,EACN,MAAM,gBAAgB;AACxB,CAAC;AAAA,gBACe,CAAC,EAAE,UAAU,MAAM,MAAO,WAAW,MAAM,OAAO,QAAQ,SAAS;AAAA;AAAA;AAAA,eAGpE,CAAC,EAAE,UAAU,OAAO,MAAO,UAAU,CAAC,WAAW,KAAK,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,YAK5D,CAAC,EAAE,OAAO,MAAO,SAAS,cAAc;AAAA,IAChD;AAAA;AAAA,MAEE,CAAC,EAAE,SAAS,MAAO,CAAC,WAAW,cAAc;AAAA;AAAA;AAAA,MAG7C;AAAA;AAAA;AAIC,MAAM,kBAAkB,OAAO;AAAA;AAAA;AAAA;AAAA;AAM/B,MAAM,6BAA6B,OAAO,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAO9C,MAAM,yBAAyB,OAAO;AAEtC,MAAM,8BAA8B,OAAO;AAAA;AAAA;AAAA;AAAA,sBAI5B,CAAC,EAAE,OAAO,SAAS,MAAO,WAAW,MAAM,OAAO,QAAQ,SAAS,MAAM,OAAO,QAAQ;AAAA;",
6
6
  "names": []
7
7
  }
@@ -10,25 +10,28 @@ const useOnPillsNavigation = () => {
10
10
  selectedOptionsRef
11
11
  } = useContext(ComboBoxContext);
12
12
  const REMOVABLE_PILL_SELECTOR = ".ds-pill-wrapper-removable button";
13
- const onKeyDownPills = useCallback((e) => {
14
- if ((e.key === "ArrowLeft" || e.key === "ArrowRight" || e.key === "ArrowUp" || e.key === "ArrowDown") && inputValue === "") {
15
- if (e.key === "ArrowUp" || e.key === "ArrowDown") {
16
- innerRef.current?.focus();
17
- setMenuState(true, "open", e);
18
- return;
19
- }
20
- if (e.key === "ArrowLeft") {
21
- const removablePills = selectedOptionsRef.current?.querySelectorAll(REMOVABLE_PILL_SELECTOR);
22
- if (hasFocus && removablePills) {
23
- removablePills[removablePills.length - 1]?.focus();
13
+ const onKeyDownPills = useCallback(
14
+ (e) => {
15
+ if ((e.key === "ArrowLeft" || e.key === "ArrowRight" || e.key === "ArrowUp" || e.key === "ArrowDown") && inputValue === "") {
16
+ if (e.key === "ArrowUp" || e.key === "ArrowDown") {
17
+ innerRef.current?.focus();
18
+ setMenuState(true, "open", e);
19
+ return;
20
+ }
21
+ if (e.key === "ArrowLeft") {
22
+ const removablePills = selectedOptionsRef.current?.querySelectorAll(REMOVABLE_PILL_SELECTOR);
23
+ if (hasFocus && removablePills) {
24
+ removablePills[removablePills.length - 1]?.focus();
25
+ }
26
+ }
27
+ if (e.key === "ArrowRight") {
28
+ e.preventDefault();
29
+ innerRef.current?.focus();
24
30
  }
25
31
  }
26
- if (e.key === "ArrowRight") {
27
- e.preventDefault();
28
- innerRef.current?.focus();
29
- }
30
- }
31
- }, [inputValue, innerRef, setMenuState, selectedOptionsRef, hasFocus]);
32
+ },
33
+ [inputValue, innerRef, setMenuState, selectedOptionsRef, hasFocus]
34
+ );
32
35
  return { onKeyDownPills };
33
36
  };
34
37
  export {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/controls/useOnPillsNavigation.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable max-depth */\n/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport React, { useCallback, useContext } from 'react';\nimport ComboBoxContext from '../../ComboBoxCTX';\n\nexport const useOnPillsNavigation = () => {\n const {\n props: { innerRef },\n inputValue,\n hasFocus,\n setMenuState,\n selectedOptionsRef,\n } = useContext(ComboBoxContext);\n\n // todo: constant must be defined on pills component\n const REMOVABLE_PILL_SELECTOR = '.ds-pill-wrapper-removable button';\n\n const onKeyDownPills: React.KeyboardEventHandler<HTMLInputElement> = useCallback(\n (e) => {\n if (\n (e.key === 'ArrowLeft' || e.key === 'ArrowRight' || e.key === 'ArrowUp' || e.key === 'ArrowDown') &&\n inputValue === ''\n ) {\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n innerRef.current?.focus();\n setMenuState(true, 'open', e);\n return;\n }\n if (e.key === 'ArrowLeft') {\n const removablePills: NodeListOf<HTMLButtonElement> | undefined =\n selectedOptionsRef.current?.querySelectorAll(REMOVABLE_PILL_SELECTOR);\n\n if (hasFocus && removablePills) {\n removablePills[removablePills.length - 1]?.focus();\n }\n }\n if (e.key === 'ArrowRight') {\n e.preventDefault();\n innerRef.current?.focus();\n }\n }\n },\n [inputValue, innerRef, setMenuState, selectedOptionsRef, hasFocus],\n );\n\n return { onKeyDownPills };\n};\n"],
5
- "mappings": "AAAA;ACIA;AACA;AAEO,MAAM,uBAAuB,MAAM;AACxC,QAAM;AAAA,IACJ,OAAO,EAAE;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,WAAW,eAAe;AAG9B,QAAM,0BAA0B;AAEhC,QAAM,iBAA+D,YACnE,CAAC,MAAM;AACL,QACG,GAAE,QAAQ,eAAe,EAAE,QAAQ,gBAAgB,EAAE,QAAQ,aAAa,EAAE,QAAQ,gBACrF,eAAe,IACf;AACA,UAAI,EAAE,QAAQ,aAAa,EAAE,QAAQ,aAAa;AAChD,iBAAS,SAAS,MAAM;AACxB,qBAAa,MAAM,QAAQ,CAAC;AAC5B;AAAA,MACF;AACA,UAAI,EAAE,QAAQ,aAAa;AACzB,cAAM,iBACJ,mBAAmB,SAAS,iBAAiB,uBAAuB;AAEtE,YAAI,YAAY,gBAAgB;AAC9B,yBAAe,eAAe,SAAS,IAAI,MAAM;AAAA,QACnD;AAAA,MACF;AACA,UAAI,EAAE,QAAQ,cAAc;AAC1B,UAAE,eAAe;AACjB,iBAAS,SAAS,MAAM;AAAA,MAC1B;AAAA,IACF;AAAA,EACF,GACA,CAAC,YAAY,UAAU,cAAc,oBAAoB,QAAQ,CACnE;AAEA,SAAO,EAAE,eAAe;AAC1B;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACIvB,SAAgB,aAAa,kBAAkB;AAC/C,OAAO,qBAAqB;AAErB,MAAM,uBAAuB,MAAM;AACxC,QAAM;AAAA,IACJ,OAAO,EAAE,SAAS;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,WAAW,eAAe;AAG9B,QAAM,0BAA0B;AAEhC,QAAM,iBAA+D;AAAA,IACnE,CAAC,MAAM;AACL,WACG,EAAE,QAAQ,eAAe,EAAE,QAAQ,gBAAgB,EAAE,QAAQ,aAAa,EAAE,QAAQ,gBACrF,eAAe,IACf;AACA,YAAI,EAAE,QAAQ,aAAa,EAAE,QAAQ,aAAa;AAChD,mBAAS,SAAS,MAAM;AACxB,uBAAa,MAAM,QAAQ,CAAC;AAC5B;AAAA,QACF;AACA,YAAI,EAAE,QAAQ,aAAa;AACzB,gBAAM,iBACJ,mBAAmB,SAAS,iBAAiB,uBAAuB;AAEtE,cAAI,YAAY,gBAAgB;AAC9B,2BAAe,eAAe,SAAS,IAAI,MAAM;AAAA,UACnD;AAAA,QACF;AACA,YAAI,EAAE,QAAQ,cAAc;AAC1B,YAAE,eAAe;AACjB,mBAAS,SAAS,MAAM;AAAA,QAC1B;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,YAAY,UAAU,cAAc,oBAAoB,QAAQ;AAAA,EACnE;AAEA,SAAO,EAAE,eAAe;AAC1B;",
6
6
  "names": []
7
7
  }