@elliemae/ds-legacy-dropdownmenu 1.0.0-rc.1

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 (185) hide show
  1. package/dist/cjs/DSDropdownMenu.js +50 -0
  2. package/dist/cjs/DSDropdownMenu.js.map +7 -0
  3. package/dist/cjs/DropdownMenuContext.js +37 -0
  4. package/dist/cjs/DropdownMenuContext.js.map +7 -0
  5. package/dist/cjs/DropdownMenuDataTestId.js +42 -0
  6. package/dist/cjs/DropdownMenuDataTestId.js.map +7 -0
  7. package/dist/cjs/config/useDropdownMenuConfig.js +114 -0
  8. package/dist/cjs/config/useDropdownMenuConfig.js.map +7 -0
  9. package/dist/cjs/config/useReferenceConfig.js +47 -0
  10. package/dist/cjs/config/useReferenceConfig.js.map +7 -0
  11. package/dist/cjs/deprecated/CustomPhoneRenderer.js +37 -0
  12. package/dist/cjs/deprecated/CustomPhoneRenderer.js.map +7 -0
  13. package/dist/cjs/deprecated/DSDropdownMenu.js +173 -0
  14. package/dist/cjs/deprecated/DSDropdownMenu.js.map +7 -0
  15. package/dist/cjs/deprecated/DropdownMenuContext.js +39 -0
  16. package/dist/cjs/deprecated/DropdownMenuContext.js.map +7 -0
  17. package/dist/cjs/deprecated/DropdownMenuLoadingIndicator.js +46 -0
  18. package/dist/cjs/deprecated/DropdownMenuLoadingIndicator.js.map +7 -0
  19. package/dist/cjs/deprecated/DropdownMenuProvider.js +109 -0
  20. package/dist/cjs/deprecated/DropdownMenuProvider.js.map +7 -0
  21. package/dist/cjs/deprecated/DropdownMenuRenderer.js +173 -0
  22. package/dist/cjs/deprecated/DropdownMenuRenderer.js.map +7 -0
  23. package/dist/cjs/deprecated/DropdownMenuWrapper.js +41 -0
  24. package/dist/cjs/deprecated/DropdownMenuWrapper.js.map +7 -0
  25. package/dist/cjs/deprecated/MenuItemClickableHOC.js +61 -0
  26. package/dist/cjs/deprecated/MenuItemClickableHOC.js.map +7 -0
  27. package/dist/cjs/deprecated/MenuItemGroupSelectionHOC.js +59 -0
  28. package/dist/cjs/deprecated/MenuItemGroupSelectionHOC.js.map +7 -0
  29. package/dist/cjs/deprecated/decoratedMenuItemFactory.js +49 -0
  30. package/dist/cjs/deprecated/decoratedMenuItemFactory.js.map +7 -0
  31. package/dist/cjs/deprecated/index.js +40 -0
  32. package/dist/cjs/deprecated/index.js.map +7 -0
  33. package/dist/cjs/exported-related/constants.js +45 -0
  34. package/dist/cjs/exported-related/constants.js.map +7 -0
  35. package/dist/cjs/exported-related/index.js +30 -0
  36. package/dist/cjs/exported-related/index.js.map +7 -0
  37. package/dist/cjs/hooks/index.js +32 -0
  38. package/dist/cjs/hooks/index.js.map +7 -0
  39. package/dist/cjs/hooks/useAutofocusContainerOnOpen.js +49 -0
  40. package/dist/cjs/hooks/useAutofocusContainerOnOpen.js.map +7 -0
  41. package/dist/cjs/hooks/useDropdownListboxHandlers.js +126 -0
  42. package/dist/cjs/hooks/useDropdownListboxHandlers.js.map +7 -0
  43. package/dist/cjs/hooks/useDropdownMenuItemHandlers.js +128 -0
  44. package/dist/cjs/hooks/useDropdownMenuItemHandlers.js.map +7 -0
  45. package/dist/cjs/hooks/useGetOptionSpecialAttributes.js +47 -0
  46. package/dist/cjs/hooks/useGetOptionSpecialAttributes.js.map +7 -0
  47. package/dist/cjs/index.js +46 -0
  48. package/dist/cjs/index.js.map +7 -0
  49. package/dist/cjs/package.json +7 -0
  50. package/dist/cjs/parts/DropdownMenuContent.js +100 -0
  51. package/dist/cjs/parts/DropdownMenuContent.js.map +7 -0
  52. package/dist/cjs/parts/DropdownMenuEmptyState.js +38 -0
  53. package/dist/cjs/parts/DropdownMenuEmptyState.js.map +7 -0
  54. package/dist/cjs/parts/DropdownMenuItemFactory.js +106 -0
  55. package/dist/cjs/parts/DropdownMenuItemFactory.js.map +7 -0
  56. package/dist/cjs/parts/DropdownMenuListBox.js +135 -0
  57. package/dist/cjs/parts/DropdownMenuListBox.js.map +7 -0
  58. package/dist/cjs/parts/DropdownMenuLoading.js +73 -0
  59. package/dist/cjs/parts/DropdownMenuLoading.js.map +7 -0
  60. package/dist/cjs/parts/DropdownMenuSkeleton.js +42 -0
  61. package/dist/cjs/parts/DropdownMenuSkeleton.js.map +7 -0
  62. package/dist/cjs/react-desc-prop-types.js +129 -0
  63. package/dist/cjs/react-desc-prop-types.js.map +7 -0
  64. package/dist/cjs/styled.js +120 -0
  65. package/dist/cjs/styled.js.map +7 -0
  66. package/dist/cjs/utils/findInCircularList.js +42 -0
  67. package/dist/cjs/utils/findInCircularList.js.map +7 -0
  68. package/dist/cjs/utils/index.js +32 -0
  69. package/dist/cjs/utils/index.js.map +7 -0
  70. package/dist/cjs/utils/isOptionFocuseable.js +36 -0
  71. package/dist/cjs/utils/isOptionFocuseable.js.map +7 -0
  72. package/dist/cjs/utils/manageOpenedSubmenus.js +67 -0
  73. package/dist/cjs/utils/manageOpenedSubmenus.js.map +7 -0
  74. package/dist/esm/DSDropdownMenu.js +20 -0
  75. package/dist/esm/DSDropdownMenu.js.map +7 -0
  76. package/dist/esm/DropdownMenuContext.js +7 -0
  77. package/dist/esm/DropdownMenuContext.js.map +7 -0
  78. package/dist/esm/DropdownMenuDataTestId.js +12 -0
  79. package/dist/esm/DropdownMenuDataTestId.js.map +7 -0
  80. package/dist/esm/config/useDropdownMenuConfig.js +84 -0
  81. package/dist/esm/config/useDropdownMenuConfig.js.map +7 -0
  82. package/dist/esm/config/useReferenceConfig.js +17 -0
  83. package/dist/esm/config/useReferenceConfig.js.map +7 -0
  84. package/dist/esm/deprecated/CustomPhoneRenderer.js +7 -0
  85. package/dist/esm/deprecated/CustomPhoneRenderer.js.map +7 -0
  86. package/dist/esm/deprecated/DSDropdownMenu.js +143 -0
  87. package/dist/esm/deprecated/DSDropdownMenu.js.map +7 -0
  88. package/dist/esm/deprecated/DropdownMenuContext.js +9 -0
  89. package/dist/esm/deprecated/DropdownMenuContext.js.map +7 -0
  90. package/dist/esm/deprecated/DropdownMenuLoadingIndicator.js +16 -0
  91. package/dist/esm/deprecated/DropdownMenuLoadingIndicator.js.map +7 -0
  92. package/dist/esm/deprecated/DropdownMenuProvider.js +79 -0
  93. package/dist/esm/deprecated/DropdownMenuProvider.js.map +7 -0
  94. package/dist/esm/deprecated/DropdownMenuRenderer.js +143 -0
  95. package/dist/esm/deprecated/DropdownMenuRenderer.js.map +7 -0
  96. package/dist/esm/deprecated/DropdownMenuWrapper.js +11 -0
  97. package/dist/esm/deprecated/DropdownMenuWrapper.js.map +7 -0
  98. package/dist/esm/deprecated/MenuItemClickableHOC.js +31 -0
  99. package/dist/esm/deprecated/MenuItemClickableHOC.js.map +7 -0
  100. package/dist/esm/deprecated/MenuItemGroupSelectionHOC.js +29 -0
  101. package/dist/esm/deprecated/MenuItemGroupSelectionHOC.js.map +7 -0
  102. package/dist/esm/deprecated/decoratedMenuItemFactory.js +19 -0
  103. package/dist/esm/deprecated/decoratedMenuItemFactory.js.map +7 -0
  104. package/dist/esm/deprecated/index.js +10 -0
  105. package/dist/esm/deprecated/index.js.map +7 -0
  106. package/dist/esm/exported-related/constants.js +15 -0
  107. package/dist/esm/exported-related/constants.js.map +7 -0
  108. package/dist/esm/exported-related/index.js +3 -0
  109. package/dist/esm/exported-related/index.js.map +7 -0
  110. package/dist/esm/hooks/index.js +5 -0
  111. package/dist/esm/hooks/index.js.map +7 -0
  112. package/dist/esm/hooks/useAutofocusContainerOnOpen.js +19 -0
  113. package/dist/esm/hooks/useAutofocusContainerOnOpen.js.map +7 -0
  114. package/dist/esm/hooks/useDropdownListboxHandlers.js +96 -0
  115. package/dist/esm/hooks/useDropdownListboxHandlers.js.map +7 -0
  116. package/dist/esm/hooks/useDropdownMenuItemHandlers.js +98 -0
  117. package/dist/esm/hooks/useDropdownMenuItemHandlers.js.map +7 -0
  118. package/dist/esm/hooks/useGetOptionSpecialAttributes.js +17 -0
  119. package/dist/esm/hooks/useGetOptionSpecialAttributes.js.map +7 -0
  120. package/dist/esm/index.js +15 -0
  121. package/dist/esm/index.js.map +7 -0
  122. package/dist/esm/package.json +7 -0
  123. package/dist/esm/parts/DropdownMenuContent.js +70 -0
  124. package/dist/esm/parts/DropdownMenuContent.js.map +7 -0
  125. package/dist/esm/parts/DropdownMenuEmptyState.js +8 -0
  126. package/dist/esm/parts/DropdownMenuEmptyState.js.map +7 -0
  127. package/dist/esm/parts/DropdownMenuItemFactory.js +85 -0
  128. package/dist/esm/parts/DropdownMenuItemFactory.js.map +7 -0
  129. package/dist/esm/parts/DropdownMenuListBox.js +105 -0
  130. package/dist/esm/parts/DropdownMenuListBox.js.map +7 -0
  131. package/dist/esm/parts/DropdownMenuLoading.js +43 -0
  132. package/dist/esm/parts/DropdownMenuLoading.js.map +7 -0
  133. package/dist/esm/parts/DropdownMenuSkeleton.js +12 -0
  134. package/dist/esm/parts/DropdownMenuSkeleton.js.map +7 -0
  135. package/dist/esm/react-desc-prop-types.js +102 -0
  136. package/dist/esm/react-desc-prop-types.js.map +7 -0
  137. package/dist/esm/styled.js +90 -0
  138. package/dist/esm/styled.js.map +7 -0
  139. package/dist/esm/utils/findInCircularList.js +12 -0
  140. package/dist/esm/utils/findInCircularList.js.map +7 -0
  141. package/dist/esm/utils/index.js +5 -0
  142. package/dist/esm/utils/index.js.map +7 -0
  143. package/dist/esm/utils/isOptionFocuseable.js +6 -0
  144. package/dist/esm/utils/isOptionFocuseable.js.map +7 -0
  145. package/dist/esm/utils/manageOpenedSubmenus.js +37 -0
  146. package/dist/esm/utils/manageOpenedSubmenus.js.map +7 -0
  147. package/dist/types/DSDropdownMenu.d.ts +5 -0
  148. package/dist/types/DropdownMenuContext.d.ts +3 -0
  149. package/dist/types/DropdownMenuDataTestId.d.ts +7 -0
  150. package/dist/types/config/useDropdownMenuConfig.d.ts +2 -0
  151. package/dist/types/config/useReferenceConfig.d.ts +7 -0
  152. package/dist/types/deprecated/CustomPhoneRenderer.d.ts +2 -0
  153. package/dist/types/deprecated/DSDropdownMenu.d.ts +110 -0
  154. package/dist/types/deprecated/DropdownMenuContext.d.ts +4 -0
  155. package/dist/types/deprecated/DropdownMenuLoadingIndicator.d.ts +3 -0
  156. package/dist/types/deprecated/DropdownMenuProvider.d.ts +12 -0
  157. package/dist/types/deprecated/DropdownMenuRenderer.d.ts +28 -0
  158. package/dist/types/deprecated/DropdownMenuWrapper.d.ts +3 -0
  159. package/dist/types/deprecated/MenuItemClickableHOC.d.ts +6 -0
  160. package/dist/types/deprecated/MenuItemGroupSelectionHOC.d.ts +6 -0
  161. package/dist/types/deprecated/decoratedMenuItemFactory.d.ts +2 -0
  162. package/dist/types/deprecated/index.d.ts +2 -0
  163. package/dist/types/exported-related/constants.d.ts +9 -0
  164. package/dist/types/exported-related/index.d.ts +1 -0
  165. package/dist/types/hooks/index.d.ts +3 -0
  166. package/dist/types/hooks/useAutofocusContainerOnOpen.d.ts +1 -0
  167. package/dist/types/hooks/useDropdownListboxHandlers.d.ts +8 -0
  168. package/dist/types/hooks/useDropdownMenuItemHandlers.d.ts +12 -0
  169. package/dist/types/hooks/useGetOptionSpecialAttributes.d.ts +3 -0
  170. package/dist/types/index.d.ts +7 -0
  171. package/dist/types/parts/DropdownMenuContent.d.ts +2 -0
  172. package/dist/types/parts/DropdownMenuEmptyState.d.ts +8 -0
  173. package/dist/types/parts/DropdownMenuItemFactory.d.ts +8 -0
  174. package/dist/types/parts/DropdownMenuListBox.d.ts +2 -0
  175. package/dist/types/parts/DropdownMenuLoading.d.ts +2 -0
  176. package/dist/types/parts/DropdownMenuSkeleton.d.ts +1 -0
  177. package/dist/types/react-desc-prop-types.d.ts +120 -0
  178. package/dist/types/styled.d.ts +20 -0
  179. package/dist/types/tests/DSDropdownMenuV2.keyboardEvents.test.d.ts +1 -0
  180. package/dist/types/tests/DSDropdownMenuV2.pointerEvents.test.d.ts +1 -0
  181. package/dist/types/utils/findInCircularList.d.ts +1 -0
  182. package/dist/types/utils/index.d.ts +3 -0
  183. package/dist/types/utils/isOptionFocuseable.d.ts +2 -0
  184. package/dist/types/utils/manageOpenedSubmenus.d.ts +2 -0
  185. package/package.json +93 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import DSDropdownMenu from './deprecated/index.js';\nimport type {} from '@xstyled/system';\n\nexport * from './DSDropdownMenu.js';\nexport * from './exported-related/index.js';\nexport type { DSDropdownMenuT } from './react-desc-prop-types.js';\nexport { DropdownMenuDataTestId } from './DropdownMenuDataTestId.js';\n\n// Deprecated part\nexport { DSDropdownMenu, DropdownMenuWithSchema, CustomPhoneRenderer } from './deprecated/index.js';\nexport default DSDropdownMenu;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,wBAA2B;AAG3B,wBAAc,gCAHd;AAIA,wBAAc,wCAJd;AAMA,oCAAuC;AAGvC,IAAAA,qBAA4E;AAC5E,IAAO,cAAQ,kBAAAC;",
6
+ "names": ["import_deprecated", "DSDropdownMenu"]
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "type": "commonjs",
3
+ "sideEffects": [
4
+ "*.css",
5
+ "*.scss"
6
+ ]
7
+ }
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var DropdownMenuContent_exports = {};
30
+ __export(DropdownMenuContent_exports, {
31
+ DropdownMenuContent: () => DropdownMenuContent
32
+ });
33
+ module.exports = __toCommonJS(DropdownMenuContent_exports);
34
+ var React = __toESM(require("react"));
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ var import_react = require("react");
37
+ var import_ds_legacy_popperjs = require("@elliemae/ds-legacy-popperjs");
38
+ var import_ds_legacy_props_helpers = require("@elliemae/ds-legacy-props-helpers");
39
+ var import_DropdownMenuDataTestId = require("../DropdownMenuDataTestId.js");
40
+ var import_styled = require("../styled.js");
41
+ var import_DropdownMenuListBox = require("./DropdownMenuListBox.js");
42
+ var import_DropdownMenuContext = require("../DropdownMenuContext.js");
43
+ var import_DropdownMenuLoading = require("./DropdownMenuLoading.js");
44
+ const DropdownMenuContent = () => {
45
+ const { props, triggerReferenceElement, setTriggerReferenceElement } = (0, import_react.useContext)(import_DropdownMenuContext.DSDropdownMenuContext);
46
+ const {
47
+ children,
48
+ isOpened,
49
+ onClickOutside,
50
+ startPlacementPreference,
51
+ placementOrderPreference,
52
+ customOffset,
53
+ wrapperStyles,
54
+ isLoading,
55
+ zIndex,
56
+ as
57
+ } = props;
58
+ const { "data-popover-label": dataPopoverLabel, ...globalAttributes } = (0, import_ds_legacy_props_helpers.useGetGlobalAttributes)(props);
59
+ const { minWidth, minHeight, ...restXstyledProps } = (0, import_ds_legacy_props_helpers.useGetXstyledProps)(props);
60
+ const onClickOutsideHandler = (e) => {
61
+ const dropdownListboxes = [
62
+ ...document.body.querySelectorAll(`[data-testid="${import_DropdownMenuDataTestId.DropdownMenuDataTestId.MENU_WRAPPER}"]`)
63
+ ];
64
+ if (dropdownListboxes.every((listbox) => !listbox.contains(e.target))) {
65
+ onClickOutside(e);
66
+ }
67
+ };
68
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
69
+ import_styled.StyledTriggerWrapper,
70
+ {
71
+ "data-testid": `${import_DropdownMenuDataTestId.DropdownMenuDataTestId.TRIGGER_WRAPPER}`,
72
+ ref: setTriggerReferenceElement,
73
+ "aria-haspopup": "listbox",
74
+ ...wrapperStyles,
75
+ ...globalAttributes,
76
+ ...restXstyledProps,
77
+ as,
78
+ children: [
79
+ children,
80
+ triggerReferenceElement && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
81
+ import_ds_legacy_popperjs.DSPopperJS,
82
+ {
83
+ referenceElement: triggerReferenceElement,
84
+ showPopover: isOpened,
85
+ withoutArrow: true,
86
+ withoutAnimation: true,
87
+ customOffset,
88
+ onClickOutside: onClickOutsideHandler,
89
+ startPlacementPreference,
90
+ placementOrderPreference,
91
+ zIndex,
92
+ "aria-label": dataPopoverLabel || "dropdown-menu popover",
93
+ children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DropdownMenuLoading.DropdownMenuLoading, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DropdownMenuListBox.DropdownMenuListBox, {})
94
+ }
95
+ )
96
+ ]
97
+ }
98
+ );
99
+ };
100
+ //# sourceMappingURL=DropdownMenuContent.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/parts/DropdownMenuContent.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["/* eslint-disable no-unused-vars */\nimport React, { useContext } from 'react';\nimport { DSPopperJS } from '@elliemae/ds-legacy-popperjs';\nimport { useGetGlobalAttributes, useGetXstyledProps } from '@elliemae/ds-legacy-props-helpers';\nimport { DropdownMenuDataTestId } from '../DropdownMenuDataTestId.js';\nimport { StyledTriggerWrapper } from '../styled.js';\nimport { DropdownMenuListBox } from './DropdownMenuListBox.js';\nimport { DSDropdownMenuContext } from '../DropdownMenuContext.js';\nimport { DropdownMenuLoading } from './DropdownMenuLoading.js';\n\nexport const DropdownMenuContent: React.ComponentType<Record<string, never>> = () => {\n const { props, triggerReferenceElement, setTriggerReferenceElement } = useContext(DSDropdownMenuContext);\n\n const {\n children,\n isOpened,\n onClickOutside,\n startPlacementPreference,\n placementOrderPreference,\n customOffset,\n wrapperStyles,\n isLoading,\n zIndex,\n as,\n } = props;\n const { 'data-popover-label': dataPopoverLabel, ...globalAttributes } = useGetGlobalAttributes(props);\n // we need to exclude this props from the xstyled props because there is a conflict\n // using submenus items with the name of the prop of ddmenu and xstyled\n const { minWidth, minHeight, ...restXstyledProps } = useGetXstyledProps(props);\n const onClickOutsideHandler = (e: MouseEvent | TouchEvent) => {\n // We need to find out if the click was originated inside a child's dropdownmenu\n const dropdownListboxes = [\n ...document.body.querySelectorAll(`[data-testid=\"${DropdownMenuDataTestId.MENU_WRAPPER}\"]`),\n ];\n if (dropdownListboxes.every((listbox) => !listbox.contains(e.target as Node))) {\n onClickOutside(e);\n }\n };\n\n return (\n <StyledTriggerWrapper\n data-testid={`${DropdownMenuDataTestId.TRIGGER_WRAPPER}`}\n ref={setTriggerReferenceElement}\n aria-haspopup=\"listbox\"\n {...wrapperStyles}\n {...globalAttributes}\n {...restXstyledProps}\n as={as}\n >\n {children}\n {triggerReferenceElement && (\n <DSPopperJS\n referenceElement={triggerReferenceElement}\n showPopover={isOpened}\n withoutArrow\n withoutAnimation\n customOffset={customOffset}\n onClickOutside={onClickOutsideHandler}\n startPlacementPreference={startPlacementPreference}\n placementOrderPreference={placementOrderPreference}\n zIndex={zIndex}\n aria-label={(dataPopoverLabel as string) || 'dropdown-menu popover'}\n >\n {isLoading ? <DropdownMenuLoading /> : <DropdownMenuListBox />}\n </DSPopperJS>\n )}\n </StyledTriggerWrapper>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADwCnB;AAvCJ,mBAAkC;AAClC,gCAA2B;AAC3B,qCAA2D;AAC3D,oCAAuC;AACvC,oBAAqC;AACrC,iCAAoC;AACpC,iCAAsC;AACtC,iCAAoC;AAE7B,MAAM,sBAAkE,MAAM;AACnF,QAAM,EAAE,OAAO,yBAAyB,2BAA2B,QAAI,yBAAW,gDAAqB;AAEvG,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,EAAE,sBAAsB,kBAAkB,GAAG,iBAAiB,QAAI,uDAAuB,KAAK;AAGpG,QAAM,EAAE,UAAU,WAAW,GAAG,iBAAiB,QAAI,mDAAmB,KAAK;AAC7E,QAAM,wBAAwB,CAAC,MAA+B;AAE5D,UAAM,oBAAoB;AAAA,MACxB,GAAG,SAAS,KAAK,iBAAiB,iBAAiB,qDAAuB,gBAAgB;AAAA,IAC5F;AACA,QAAI,kBAAkB,MAAM,CAAC,YAAY,CAAC,QAAQ,SAAS,EAAE,MAAc,CAAC,GAAG;AAC7E,qBAAe,CAAC;AAAA,IAClB;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAa,GAAG,qDAAuB;AAAA,MACvC,KAAK;AAAA,MACL,iBAAc;AAAA,MACb,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACJ;AAAA,MAEC;AAAA;AAAA,QACA,2BACC;AAAA,UAAC;AAAA;AAAA,YACC,kBAAkB;AAAA,YAClB,aAAa;AAAA,YACb,cAAY;AAAA,YACZ,kBAAgB;AAAA,YAChB;AAAA,YACA,gBAAgB;AAAA,YAChB;AAAA,YACA;AAAA,YACA;AAAA,YACA,cAAa,oBAA+B;AAAA,YAE3C,sBAAY,4CAAC,kDAAoB,IAAK,4CAAC,kDAAoB;AAAA;AAAA,QAC9D;AAAA;AAAA;AAAA,EAEJ;AAEJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var DropdownMenuEmptyState_exports = {};
30
+ __export(DropdownMenuEmptyState_exports, {
31
+ DropdownMenuEmptyState: () => DropdownMenuEmptyState
32
+ });
33
+ module.exports = __toCommonJS(DropdownMenuEmptyState_exports);
34
+ var React = __toESM(require("react"));
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ var import_styled = require("../styled.js");
37
+ const DropdownMenuEmptyState = (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styled.StyledEmptyStateWrapper, { px: "xxs", py: "xxxs", role: "alert", ...props, children: "No content available" });
38
+ //# sourceMappingURL=DropdownMenuEmptyState.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/parts/DropdownMenuEmptyState.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import React from 'react';\nimport { StyledEmptyStateWrapper } from '../styled.js';\nimport type { SizingProps } from '@elliemae/ds-legacy-system';\n\ninterface DropdownMenuEmptyStateProps {\n minWidth: SizingProps['minWidth'];\n maxHeight: SizingProps['maxHeight'];\n}\nexport const DropdownMenuEmptyState: React.FC<DropdownMenuEmptyStateProps> = (props) => (\n <StyledEmptyStateWrapper px=\"xxs\" py=\"xxxs\" role=\"alert\" {...props}>\n No content available\n </StyledEmptyStateWrapper>\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADSrB;AARF,oBAAwC;AAOjC,MAAM,yBAAgE,CAAC,UAC5E,4CAAC,yCAAwB,IAAG,OAAM,IAAG,QAAO,MAAK,SAAS,GAAG,OAAO,kCAEpE;",
6
+ "names": []
7
+ }
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var DropdownMenuItemFactory_exports = {};
30
+ __export(DropdownMenuItemFactory_exports, {
31
+ DropdownMenuItemFactory: () => DropdownMenuItemFactory
32
+ });
33
+ module.exports = __toCommonJS(DropdownMenuItemFactory_exports);
34
+ var React = __toESM(require("react"));
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ var import_react = require("react");
37
+ var import_ds_legacy_menu_items = require("@elliemae/ds-legacy-menu-items");
38
+ var import_DropdownMenuContext = require("../DropdownMenuContext.js");
39
+ var import_hooks = require("../hooks/index.js");
40
+ const menuItemMap = {
41
+ action: import_ds_legacy_menu_items.ActionMenuItem,
42
+ single: import_ds_legacy_menu_items.SingleMenuItem,
43
+ checkbox: import_ds_legacy_menu_items.MultiMenuItem,
44
+ submenu: import_ds_legacy_menu_items.SubmenuItem,
45
+ separator: import_ds_legacy_menu_items.Separator,
46
+ section: import_ds_legacy_menu_items.Section,
47
+ singleWithSubmenu: import_ds_legacy_menu_items.SingleWithSubmenuItem,
48
+ skeleton: import_ds_legacy_menu_items.SkeletonMenuItem
49
+ };
50
+ const DropdownMenuItemFactory = ({ option, style, innerRef, optionsShouldHavePadding }) => {
51
+ const {
52
+ props: { selectedOptions, onOptionClick, openedSubmenus, onSubmenuToggle, onClickOutside },
53
+ activeDescendant,
54
+ DSDropdownMenuV2
55
+ } = (0, import_react.useContext)(import_DropdownMenuContext.DSDropdownMenuContext);
56
+ if (!(option.type in menuItemMap)) {
57
+ throw new Error(
58
+ `Provided option type (${option.type}) is not valid. Please provide one of ${Object.keys(menuItemMap).join(
59
+ ", "
60
+ )}`
61
+ );
62
+ }
63
+ const type = option.type;
64
+ const Component = menuItemMap[type];
65
+ const { onDropdownKeyDown, ...handlers } = (0, import_hooks.useDropdownMenuItemHandlers)(option);
66
+ const itemProps = (0, import_react.useMemo)(
67
+ () => ({
68
+ ...handlers,
69
+ innerRef,
70
+ isActive: activeDescendant === option.dsId,
71
+ isSelected: selectedOptions ? !!selectedOptions[option.dsId] : false,
72
+ isSubmenuOpened: openedSubmenus ? !!openedSubmenus[option.dsId] : false,
73
+ tabIndex: -1,
74
+ optionsShouldHavePadding,
75
+ wrapperStyles: style,
76
+ Dropdown: DSDropdownMenuV2,
77
+ dropdownProps: {
78
+ ...option,
79
+ options: option.type === "submenu" || option.type === "singleWithSubmenu" ? option.options : [],
80
+ onClickOutside,
81
+ onOptionClick,
82
+ onSubmenuToggle,
83
+ selectedOptions,
84
+ openedSubmenus,
85
+ onKeyDown: onDropdownKeyDown
86
+ }
87
+ }),
88
+ [
89
+ handlers,
90
+ innerRef,
91
+ activeDescendant,
92
+ option,
93
+ selectedOptions,
94
+ openedSubmenus,
95
+ optionsShouldHavePadding,
96
+ style,
97
+ DSDropdownMenuV2,
98
+ onClickOutside,
99
+ onOptionClick,
100
+ onSubmenuToggle,
101
+ onDropdownKeyDown
102
+ ]
103
+ );
104
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { ...option, ...itemProps });
105
+ };
106
+ //# sourceMappingURL=DropdownMenuItemFactory.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/parts/DropdownMenuItemFactory.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["/* eslint-disable react/prop-types */\nimport React, { useContext, useMemo } from 'react';\nimport {\n ActionMenuItem,\n SingleMenuItem,\n MultiMenuItem,\n SubmenuItem,\n Separator,\n Section,\n SingleWithSubmenuItem,\n SkeletonMenuItem,\n} from '@elliemae/ds-legacy-menu-items';\nimport type { DSDropdownMenuT } from '../react-desc-prop-types.js';\nimport { DSDropdownMenuContext } from '../DropdownMenuContext.js';\nimport { useDropdownMenuItemHandlers } from '../hooks/index.js';\n\nconst menuItemMap = {\n action: ActionMenuItem,\n single: SingleMenuItem,\n checkbox: MultiMenuItem,\n submenu: SubmenuItem,\n separator: Separator,\n section: Section,\n singleWithSubmenu: SingleWithSubmenuItem,\n skeleton: SkeletonMenuItem,\n};\n\nexport const DropdownMenuItemFactory: React.ComponentType<{\n option: DSDropdownMenuT.Item;\n style?: Record<string, unknown>;\n innerRef?: (el: HTMLElement) => void;\n optionsShouldHavePadding: boolean;\n}> = ({ option, style, innerRef, optionsShouldHavePadding }): JSX.Element => {\n const {\n props: { selectedOptions, onOptionClick, openedSubmenus, onSubmenuToggle, onClickOutside },\n activeDescendant,\n DSDropdownMenuV2,\n } = useContext(DSDropdownMenuContext);\n\n if (!(option.type in menuItemMap)) {\n throw new Error(\n `Provided option type (${option.type}) is not valid. Please provide one of ${Object.keys(menuItemMap).join(\n ', ',\n )}`,\n );\n }\n const type = option.type as\n | 'action'\n | 'single'\n | 'checkbox'\n | 'separator'\n | 'section'\n | 'skeleton'\n | 'singleWithSubmenu';\n\n const Component = menuItemMap[type];\n\n const { onDropdownKeyDown, ...handlers } = useDropdownMenuItemHandlers(option);\n\n const itemProps = useMemo(\n () => ({\n ...handlers,\n innerRef,\n isActive: activeDescendant === option.dsId,\n isSelected: selectedOptions ? !!selectedOptions[option.dsId] : false,\n isSubmenuOpened: openedSubmenus ? !!openedSubmenus[option.dsId] : false,\n tabIndex: -1 as const,\n optionsShouldHavePadding,\n wrapperStyles: style,\n Dropdown: DSDropdownMenuV2,\n dropdownProps: {\n ...option,\n options: option.type === 'submenu' || option.type === 'singleWithSubmenu' ? option.options : [],\n onClickOutside,\n onOptionClick,\n onSubmenuToggle,\n selectedOptions,\n openedSubmenus,\n onKeyDown: onDropdownKeyDown,\n },\n }),\n [\n handlers,\n innerRef,\n activeDescendant,\n option,\n selectedOptions,\n openedSubmenus,\n optionsShouldHavePadding,\n style,\n DSDropdownMenuV2,\n onClickOutside,\n onOptionClick,\n onSubmenuToggle,\n onDropdownKeyDown,\n ],\n );\n\n return <Component {...option} {...itemProps} />;\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADkGd;AAjGT,mBAA2C;AAC3C,kCASO;AAEP,iCAAsC;AACtC,mBAA4C;AAE5C,MAAM,cAAc;AAAA,EAClB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AAAA,EACT,mBAAmB;AAAA,EACnB,UAAU;AACZ;AAEO,MAAM,0BAKR,CAAC,EAAE,QAAQ,OAAO,UAAU,yBAAyB,MAAmB;AAC3E,QAAM;AAAA,IACJ,OAAO,EAAE,iBAAiB,eAAe,gBAAgB,iBAAiB,eAAe;AAAA,IACzF;AAAA,IACA;AAAA,EACF,QAAI,yBAAW,gDAAqB;AAEpC,MAAI,EAAE,OAAO,QAAQ,cAAc;AACjC,UAAM,IAAI;AAAA,MACR,yBAAyB,OAAO,6CAA6C,OAAO,KAAK,WAAW,EAAE;AAAA,QACpG;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,QAAM,OAAO,OAAO;AASpB,QAAM,YAAY,YAAY,IAAI;AAElC,QAAM,EAAE,mBAAmB,GAAG,SAAS,QAAI,0CAA4B,MAAM;AAE7E,QAAM,gBAAY;AAAA,IAChB,OAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,MACA,UAAU,qBAAqB,OAAO;AAAA,MACtC,YAAY,kBAAkB,CAAC,CAAC,gBAAgB,OAAO,IAAI,IAAI;AAAA,MAC/D,iBAAiB,iBAAiB,CAAC,CAAC,eAAe,OAAO,IAAI,IAAI;AAAA,MAClE,UAAU;AAAA,MACV;AAAA,MACA,eAAe;AAAA,MACf,UAAU;AAAA,MACV,eAAe;AAAA,QACb,GAAG;AAAA,QACH,SAAS,OAAO,SAAS,aAAa,OAAO,SAAS,sBAAsB,OAAO,UAAU,CAAC;AAAA,QAC9F;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW;AAAA,MACb;AAAA,IACF;AAAA,IACA;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,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO,4CAAC,aAAW,GAAG,QAAS,GAAG,WAAW;AAC/C;",
6
+ "names": []
7
+ }
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var DropdownMenuListBox_exports = {};
30
+ __export(DropdownMenuListBox_exports, {
31
+ DropdownMenuListBox: () => DropdownMenuListBox
32
+ });
33
+ module.exports = __toCommonJS(DropdownMenuListBox_exports);
34
+ var React = __toESM(require("react"));
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ var import_react = require("react");
37
+ var import_ds_legacy_form_input_text = require("@elliemae/ds-legacy-form-input-text");
38
+ var import_DropdownMenuContext = require("../DropdownMenuContext.js");
39
+ var import_DropdownMenuDataTestId = require("../DropdownMenuDataTestId.js");
40
+ var import_useDropdownListboxHandlers = require("../hooks/useDropdownListboxHandlers.js");
41
+ var import_styled = require("../styled.js");
42
+ var import_DropdownMenuEmptyState = require("./DropdownMenuEmptyState.js");
43
+ var import_DropdownMenuItemFactory = require("./DropdownMenuItemFactory.js");
44
+ var import_DropdownMenuSkeleton = require("./DropdownMenuSkeleton.js");
45
+ var import_hooks = require("../hooks/index.js");
46
+ const DropdownMenuListBox = () => {
47
+ const ctx = (0, import_react.useContext)(import_DropdownMenuContext.DSDropdownMenuContext);
48
+ const {
49
+ triggerReferenceElement,
50
+ props: {
51
+ isSkeleton,
52
+ options,
53
+ hasInput,
54
+ inputValue,
55
+ onInputChange,
56
+ HeaderComp,
57
+ minWidth: userMinWidth,
58
+ maxHeight: userMaxHeight
59
+ },
60
+ activeDescendant,
61
+ listboxReference,
62
+ inputReference,
63
+ virtualListHelpers: { totalSize, virtualItems }
64
+ } = ctx;
65
+ (0, import_hooks.useAutofocusContainerOnOpen)();
66
+ const { onKeyDown, onMouseEnter, onMouseLeave } = (0, import_useDropdownListboxHandlers.useDropdownListboxHandlers)();
67
+ const { optionsShouldHavePadding } = (0, import_hooks.useGetOptionSpecialAttributes)();
68
+ const minWidth = (0, import_react.useMemo)(
69
+ () => userMinWidth !== void 0 ? userMinWidth : Math.max(triggerReferenceElement?.offsetWidth ?? 0, 162),
70
+ [triggerReferenceElement?.offsetWidth, userMinWidth]
71
+ );
72
+ return (0, import_react.useMemo)(() => {
73
+ if (virtualItems.length === 0) {
74
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DropdownMenuEmptyState.DropdownMenuEmptyState, { minWidth, maxHeight: userMaxHeight || 400 });
75
+ }
76
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
77
+ import_styled.StyledListBoxWrapper,
78
+ {
79
+ minWidth,
80
+ maxHeight: userMaxHeight || 400,
81
+ ref: listboxReference,
82
+ tabIndex: 0,
83
+ "data-testid": import_DropdownMenuDataTestId.DropdownMenuDataTestId.MENU_WRAPPER,
84
+ onKeyDown,
85
+ onMouseEnter,
86
+ onMouseLeave,
87
+ hasHeader: !!HeaderComp,
88
+ children: isSkeleton ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DropdownMenuSkeleton.DropdownMenuSkeleton, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
89
+ HeaderComp && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styled.StyledHeaderWrapper, { alignItems: "center", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(HeaderComp, { ctx }) }),
90
+ hasInput && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styled.StyledInputWrapper, { hasHeader: !!HeaderComp, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_legacy_form_input_text.DSInputText, { value: inputValue, onChange: onInputChange, innerRef: inputReference }) }, "dropdown-listbox-input-wrapper"),
91
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
92
+ import_styled.StyledOptionListWrapper,
93
+ {
94
+ "aria-activedescendant": activeDescendant,
95
+ "data-testid": import_DropdownMenuDataTestId.DropdownMenuDataTestId.LISTBOX,
96
+ role: "listbox",
97
+ "aria-label": "List of options",
98
+ style: { height: totalSize || 16 },
99
+ children: virtualItems.map((vItem) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
100
+ import_DropdownMenuItemFactory.DropdownMenuItemFactory,
101
+ {
102
+ option: options[vItem.index],
103
+ style: { position: "absolute", top: vItem.start, left: 0, width: "100%" },
104
+ innerRef: vItem.measureRef,
105
+ optionsShouldHavePadding
106
+ },
107
+ `dropdown-listbox-option-${options[vItem.index].dsId}`
108
+ ))
109
+ }
110
+ )
111
+ ] })
112
+ }
113
+ );
114
+ }, [
115
+ HeaderComp,
116
+ activeDescendant,
117
+ ctx,
118
+ hasInput,
119
+ inputReference,
120
+ inputValue,
121
+ isSkeleton,
122
+ listboxReference,
123
+ minWidth,
124
+ onInputChange,
125
+ onKeyDown,
126
+ onMouseEnter,
127
+ onMouseLeave,
128
+ options,
129
+ optionsShouldHavePadding,
130
+ totalSize,
131
+ userMaxHeight,
132
+ virtualItems
133
+ ]);
134
+ };
135
+ //# sourceMappingURL=DropdownMenuListBox.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/parts/DropdownMenuListBox.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import React, { useContext, useMemo } from 'react';\nimport { DSInputText } from '@elliemae/ds-legacy-form-input-text';\nimport { DSDropdownMenuContext } from '../DropdownMenuContext.js';\nimport { DropdownMenuDataTestId } from '../DropdownMenuDataTestId.js';\nimport { useDropdownListboxHandlers } from '../hooks/useDropdownListboxHandlers.js';\nimport { StyledInputWrapper, StyledListBoxWrapper, StyledHeaderWrapper, StyledOptionListWrapper } from '../styled.js';\nimport { DropdownMenuEmptyState } from './DropdownMenuEmptyState.js';\nimport { DropdownMenuItemFactory } from './DropdownMenuItemFactory.js';\nimport { DropdownMenuSkeleton } from './DropdownMenuSkeleton.js';\n\nimport { useAutofocusContainerOnOpen, useGetOptionSpecialAttributes } from '../hooks/index.js';\n\nexport const DropdownMenuListBox: React.ComponentType<Record<string, never>> = () => {\n const ctx = useContext(DSDropdownMenuContext);\n const {\n triggerReferenceElement,\n props: {\n isSkeleton,\n options,\n hasInput,\n inputValue,\n onInputChange,\n HeaderComp,\n minWidth: userMinWidth,\n maxHeight: userMaxHeight,\n },\n activeDescendant,\n listboxReference,\n inputReference,\n virtualListHelpers: { totalSize, virtualItems },\n } = ctx;\n\n useAutofocusContainerOnOpen();\n\n const { onKeyDown, onMouseEnter, onMouseLeave } = useDropdownListboxHandlers();\n\n const { optionsShouldHavePadding } = useGetOptionSpecialAttributes();\n\n const minWidth = useMemo(\n () => (userMinWidth !== undefined ? userMinWidth : Math.max(triggerReferenceElement?.offsetWidth ?? 0, 162)),\n [triggerReferenceElement?.offsetWidth, userMinWidth],\n );\n\n return useMemo(() => {\n if (virtualItems.length === 0) {\n return <DropdownMenuEmptyState minWidth={minWidth} maxHeight={userMaxHeight || 400} />;\n }\n return (\n <StyledListBoxWrapper\n minWidth={minWidth}\n maxHeight={userMaxHeight || 400}\n ref={listboxReference}\n tabIndex={0}\n data-testid={DropdownMenuDataTestId.MENU_WRAPPER}\n onKeyDown={onKeyDown}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n hasHeader={!!HeaderComp}\n >\n {isSkeleton ? (\n <DropdownMenuSkeleton />\n ) : (\n <>\n {HeaderComp && (\n <StyledHeaderWrapper alignItems=\"center\">\n <HeaderComp ctx={ctx} />\n </StyledHeaderWrapper>\n )}\n {hasInput && (\n <StyledInputWrapper key=\"dropdown-listbox-input-wrapper\" hasHeader={!!HeaderComp}>\n <DSInputText value={inputValue} onChange={onInputChange} innerRef={inputReference} />\n </StyledInputWrapper>\n )}\n <StyledOptionListWrapper\n aria-activedescendant={activeDescendant}\n data-testid={DropdownMenuDataTestId.LISTBOX}\n role=\"listbox\"\n aria-label=\"List of options\"\n style={{ height: totalSize || 16 }}\n >\n {virtualItems.map((vItem) => (\n <DropdownMenuItemFactory\n option={options[vItem.index]}\n style={{ position: 'absolute', top: vItem.start, left: 0, width: '100%' }}\n key={`dropdown-listbox-option-${options[vItem.index].dsId}`}\n innerRef={vItem.measureRef}\n optionsShouldHavePadding={optionsShouldHavePadding}\n />\n ))}\n </StyledOptionListWrapper>\n </>\n )}\n </StyledListBoxWrapper>\n );\n }, [\n HeaderComp,\n activeDescendant,\n ctx,\n hasInput,\n inputReference,\n inputValue,\n isSkeleton,\n listboxReference,\n minWidth,\n onInputChange,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n options,\n optionsShouldHavePadding,\n totalSize,\n userMaxHeight,\n virtualItems,\n ]);\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD6CV;AA7Cb,mBAA2C;AAC3C,uCAA4B;AAC5B,iCAAsC;AACtC,oCAAuC;AACvC,wCAA2C;AAC3C,oBAAuG;AACvG,oCAAuC;AACvC,qCAAwC;AACxC,kCAAqC;AAErC,mBAA2E;AAEpE,MAAM,sBAAkE,MAAM;AACnF,QAAM,UAAM,yBAAW,gDAAqB;AAC5C,QAAM;AAAA,IACJ;AAAA,IACA,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU;AAAA,MACV,WAAW;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB,EAAE,WAAW,aAAa;AAAA,EAChD,IAAI;AAEJ,gDAA4B;AAE5B,QAAM,EAAE,WAAW,cAAc,aAAa,QAAI,8DAA2B;AAE7E,QAAM,EAAE,yBAAyB,QAAI,4CAA8B;AAEnE,QAAM,eAAW;AAAA,IACf,MAAO,iBAAiB,SAAY,eAAe,KAAK,IAAI,yBAAyB,eAAe,GAAG,GAAG;AAAA,IAC1G,CAAC,yBAAyB,aAAa,YAAY;AAAA,EACrD;AAEA,aAAO,sBAAQ,MAAM;AACnB,QAAI,aAAa,WAAW,GAAG;AAC7B,aAAO,4CAAC,wDAAuB,UAAoB,WAAW,iBAAiB,KAAK;AAAA,IACtF;AACA,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,iBAAiB;AAAA,QAC5B,KAAK;AAAA,QACL,UAAU;AAAA,QACV,eAAa,qDAAuB;AAAA,QACpC;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW,CAAC,CAAC;AAAA,QAEZ,uBACC,4CAAC,oDAAqB,IAEtB,4EACG;AAAA,wBACC,4CAAC,qCAAoB,YAAW,UAC9B,sDAAC,cAAW,KAAU,GACxB;AAAA,UAED,YACC,4CAAC,oCAAwD,WAAW,CAAC,CAAC,YACpE,sDAAC,gDAAY,OAAO,YAAY,UAAU,eAAe,UAAU,gBAAgB,KAD7D,gCAExB;AAAA,UAEF;AAAA,YAAC;AAAA;AAAA,cACC,yBAAuB;AAAA,cACvB,eAAa,qDAAuB;AAAA,cACpC,MAAK;AAAA,cACL,cAAW;AAAA,cACX,OAAO,EAAE,QAAQ,aAAa,GAAG;AAAA,cAEhC,uBAAa,IAAI,CAAC,UACjB;AAAA,gBAAC;AAAA;AAAA,kBACC,QAAQ,QAAQ,MAAM,KAAK;AAAA,kBAC3B,OAAO,EAAE,UAAU,YAAY,KAAK,MAAM,OAAO,MAAM,GAAG,OAAO,OAAO;AAAA,kBAExE,UAAU,MAAM;AAAA,kBAChB;AAAA;AAAA,gBAFK,2BAA2B,QAAQ,MAAM,KAAK,EAAE;AAAA,cAGvD,CACD;AAAA;AAAA,UACH;AAAA,WACF;AAAA;AAAA,IAEJ;AAAA,EAEJ,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
6
+ "names": []
7
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var DropdownMenuLoading_exports = {};
30
+ __export(DropdownMenuLoading_exports, {
31
+ DropdownMenuLoading: () => DropdownMenuLoading
32
+ });
33
+ module.exports = __toCommonJS(DropdownMenuLoading_exports);
34
+ var React = __toESM(require("react"));
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ var import_react = require("react");
37
+ var import_ds_legacy_circular_progress_indicator = require("@elliemae/ds-legacy-circular-progress-indicator");
38
+ var import_DropdownMenuContext = require("../DropdownMenuContext.js");
39
+ var import_DropdownMenuDataTestId = require("../DropdownMenuDataTestId.js");
40
+ var import_styled = require("../styled.js");
41
+ const DropdownMenuLoading = () => {
42
+ const {
43
+ props: { onClickOutside },
44
+ triggerReferenceElement
45
+ } = (0, import_react.useContext)(import_DropdownMenuContext.DSDropdownMenuContext);
46
+ const loadingRef = (0, import_react.useRef)(null);
47
+ (0, import_react.useLayoutEffect)(() => {
48
+ loadingRef.current?.focus();
49
+ }, [loadingRef]);
50
+ const onKeyDown = (0, import_react.useCallback)(
51
+ (e) => {
52
+ if (e.code === "Escape" || e.code === "ArrowLeft")
53
+ onClickOutside(e);
54
+ },
55
+ [onClickOutside]
56
+ );
57
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
58
+ import_styled.StyledLoadingWrapper,
59
+ {
60
+ minWidth: triggerReferenceElement?.offsetWidth ?? 0,
61
+ justifyContent: "center",
62
+ alignItems: "center",
63
+ "data-testid": import_DropdownMenuDataTestId.DropdownMenuDataTestId.LOADING,
64
+ tabIndex: 0,
65
+ role: "status",
66
+ "aria-busy": "true",
67
+ ref: loadingRef,
68
+ onKeyDown,
69
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_legacy_circular_progress_indicator.DSCircularProgressIndicator, { size: "l" })
70
+ }
71
+ );
72
+ };
73
+ //# sourceMappingURL=DropdownMenuLoading.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/parts/DropdownMenuLoading.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import React, { useCallback, useContext, useLayoutEffect, useRef } from 'react';\nimport { DSCircularProgressIndicator } from '@elliemae/ds-legacy-circular-progress-indicator';\nimport { DSDropdownMenuContext } from '../DropdownMenuContext.js';\nimport { DropdownMenuDataTestId } from '../DropdownMenuDataTestId.js';\nimport { StyledLoadingWrapper } from '../styled.js';\n\nexport const DropdownMenuLoading: React.ComponentType<Record<string, never>> = () => {\n const {\n props: { onClickOutside },\n triggerReferenceElement,\n } = useContext(DSDropdownMenuContext);\n\n const loadingRef = useRef<HTMLDivElement>(null);\n\n useLayoutEffect(() => {\n loadingRef.current?.focus();\n }, [loadingRef]);\n\n const onKeyDown: React.KeyboardEventHandler = useCallback(\n (e) => {\n if (e.code === 'Escape' || e.code === 'ArrowLeft') onClickOutside(e);\n },\n [onClickOutside],\n );\n\n return (\n <StyledLoadingWrapper\n minWidth={triggerReferenceElement?.offsetWidth ?? 0}\n justifyContent=\"center\"\n alignItems=\"center\"\n data-testid={DropdownMenuDataTestId.LOADING}\n tabIndex={0}\n role=\"status\"\n aria-busy=\"true\"\n ref={loadingRef}\n onKeyDown={onKeyDown}\n >\n <DSCircularProgressIndicator size=\"l\" />\n </StyledLoadingWrapper>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADqCjB;AArCN,mBAAwE;AACxE,mDAA4C;AAC5C,iCAAsC;AACtC,oCAAuC;AACvC,oBAAqC;AAE9B,MAAM,sBAAkE,MAAM;AACnF,QAAM;AAAA,IACJ,OAAO,EAAE,eAAe;AAAA,IACxB;AAAA,EACF,QAAI,yBAAW,gDAAqB;AAEpC,QAAM,iBAAa,qBAAuB,IAAI;AAE9C,oCAAgB,MAAM;AACpB,eAAW,SAAS,MAAM;AAAA,EAC5B,GAAG,CAAC,UAAU,CAAC;AAEf,QAAM,gBAAwC;AAAA,IAC5C,CAAC,MAAM;AACL,UAAI,EAAE,SAAS,YAAY,EAAE,SAAS;AAAa,uBAAe,CAAC;AAAA,IACrE;AAAA,IACA,CAAC,cAAc;AAAA,EACjB;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU,yBAAyB,eAAe;AAAA,MAClD,gBAAe;AAAA,MACf,YAAW;AAAA,MACX,eAAa,qDAAuB;AAAA,MACpC,UAAU;AAAA,MACV,MAAK;AAAA,MACL,aAAU;AAAA,MACV,KAAK;AAAA,MACL;AAAA,MAEA,sDAAC,4EAA4B,MAAK,KAAI;AAAA;AAAA,EACxC;AAEJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var DropdownMenuSkeleton_exports = {};
30
+ __export(DropdownMenuSkeleton_exports, {
31
+ DropdownMenuSkeleton: () => DropdownMenuSkeleton
32
+ });
33
+ module.exports = __toCommonJS(DropdownMenuSkeleton_exports);
34
+ var React = __toESM(require("react"));
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ var import_ds_legacy_menu_items = require("@elliemae/ds-legacy-menu-items");
37
+ var import_ds_legacy_grid = require("@elliemae/ds-legacy-grid");
38
+ const DropdownMenuSkeleton = () => {
39
+ const SKELETON_AMOUNT = 5;
40
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_legacy_grid.Grid, { children: Array(SKELETON_AMOUNT).fill(0).map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_legacy_menu_items.SkeletonMenuItem, { dsId: `${index}-skeleton` }, index)) });
41
+ };
42
+ //# sourceMappingURL=DropdownMenuSkeleton.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/parts/DropdownMenuSkeleton.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import React from 'react';\nimport { SkeletonMenuItem } from '@elliemae/ds-legacy-menu-items';\nimport { Grid } from '@elliemae/ds-legacy-grid';\n\nexport const DropdownMenuSkeleton = () => {\n const SKELETON_AMOUNT = 5;\n\n return (\n <Grid>\n {Array(SKELETON_AMOUNT)\n .fill(0)\n .map((_, index) => (\n <SkeletonMenuItem key={index} dsId={`${index}-skeleton`} />\n ))}\n </Grid>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADYb;AAXV,kCAAiC;AACjC,4BAAqB;AAEd,MAAM,uBAAuB,MAAM;AACxC,QAAM,kBAAkB;AAExB,SACE,4CAAC,8BACE,gBAAM,eAAe,EACnB,KAAK,CAAC,EACN,IAAI,CAAC,GAAG,UACP,4CAAC,gDAA6B,MAAM,GAAG,oBAAhB,KAAkC,CAC1D,GACL;AAEJ;",
6
+ "names": []
7
+ }