@elliemae/ds-menu-button 3.70.0-next.6 → 3.70.0-next.61

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 (105) hide show
  1. package/dist/cjs/package.json +1 -4
  2. package/dist/cjs/parts/DSFlyoutMenu/DSFlyoutMenu.js +19 -9
  3. package/dist/cjs/parts/DSFlyoutMenu/DSFlyoutMenu.js.map +2 -2
  4. package/dist/cjs/parts/DSFlyoutMenu/react-desc-prop-types.js +0 -1
  5. package/dist/cjs/parts/DSFlyoutMenu/react-desc-prop-types.js.map +2 -2
  6. package/dist/cjs/parts/DSFlyoutMenu/typescript-testing/slot-props.js +36 -0
  7. package/dist/cjs/parts/DSFlyoutMenu/typescript-testing/slot-props.js.map +7 -0
  8. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/config/useMenuBehaviouralContextProvider.js.map +2 -2
  9. package/dist/cjs/parts/DSMenuBehaviouralContextProvider/utils/nodeGettersByCriterias.js.map +2 -2
  10. package/dist/cjs/parts/DSMenuItemRendererFactory/ActivableMenuItem.js +13 -4
  11. package/dist/cjs/parts/DSMenuItemRendererFactory/ActivableMenuItem.js.map +2 -2
  12. package/dist/cjs/parts/DSMenuItemRendererFactory/ActivableWithSubmenuMenuItem.js +13 -2
  13. package/dist/cjs/parts/DSMenuItemRendererFactory/ActivableWithSubmenuMenuItem.js.map +2 -2
  14. package/dist/cjs/parts/DSMenuItemRendererFactory/DSMenuItemRendererFactory.js +66 -18
  15. package/dist/cjs/parts/DSMenuItemRendererFactory/DSMenuItemRendererFactory.js.map +3 -3
  16. package/dist/cjs/parts/DSMenuItemRendererFactory/MultipleSelectMenuItem.js +13 -2
  17. package/dist/cjs/parts/DSMenuItemRendererFactory/MultipleSelectMenuItem.js.map +2 -2
  18. package/dist/cjs/parts/DSMenuItemRendererFactory/MultipleSelectWithSubmenuMenuItem.js +13 -2
  19. package/dist/cjs/parts/DSMenuItemRendererFactory/MultipleSelectWithSubmenuMenuItem.js.map +2 -2
  20. package/dist/cjs/parts/DSMenuItemRendererFactory/SingleSelectMenuItem.js +18 -5
  21. package/dist/cjs/parts/DSMenuItemRendererFactory/SingleSelectMenuItem.js.map +3 -3
  22. package/dist/cjs/parts/DSMenuItemRendererFactory/SingleSelectWithSubmenuMenuItem.js +18 -3
  23. package/dist/cjs/parts/DSMenuItemRendererFactory/SingleSelectWithSubmenuMenuItem.js.map +3 -3
  24. package/dist/cjs/parts/DSMenuItemRendererFactory/SkeletonMenuItem.js +5 -5
  25. package/dist/cjs/parts/DSMenuItemRendererFactory/SkeletonMenuItem.js.map +2 -2
  26. package/dist/cjs/parts/DSMenuItemRendererFactory/WithSubmenuMenuItem.js +13 -2
  27. package/dist/cjs/parts/DSMenuItemRendererFactory/WithSubmenuMenuItem.js.map +2 -2
  28. package/dist/cjs/parts/DSMenuItemRendererFactory/constants/index.js +5 -1
  29. package/dist/cjs/parts/DSMenuItemRendererFactory/constants/index.js.map +2 -2
  30. package/dist/cjs/parts/DSMenuItemRendererFactory/react-desc-prop-types.js.map +2 -2
  31. package/dist/cjs/parts/DSMenuItemRendererFactory/typescript-testing/slot-props.js +38 -0
  32. package/dist/cjs/parts/DSMenuItemRendererFactory/typescript-testing/slot-props.js.map +7 -0
  33. package/dist/cjs/parts/DSOpinionatedButton/react-desc-prop-types.js.map +2 -2
  34. package/dist/cjs/parts/DSOpinionatedButton/typescript-testing/slot-props.js +32 -0
  35. package/dist/cjs/parts/DSOpinionatedButton/typescript-testing/slot-props.js.map +7 -0
  36. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  37. package/dist/cjs/typescript-testing/slot-props.js +32 -0
  38. package/dist/cjs/typescript-testing/slot-props.js.map +7 -0
  39. package/dist/cjs/utils/nodesTypeguardsAndGetters.js +6 -0
  40. package/dist/cjs/utils/nodesTypeguardsAndGetters.js.map +2 -2
  41. package/dist/esm/package.json +1 -4
  42. package/dist/esm/parts/DSFlyoutMenu/DSFlyoutMenu.js +20 -10
  43. package/dist/esm/parts/DSFlyoutMenu/DSFlyoutMenu.js.map +2 -2
  44. package/dist/esm/parts/DSFlyoutMenu/react-desc-prop-types.js +0 -1
  45. package/dist/esm/parts/DSFlyoutMenu/react-desc-prop-types.js.map +2 -2
  46. package/dist/esm/parts/DSFlyoutMenu/typescript-testing/slot-props.js +13 -0
  47. package/dist/esm/parts/DSFlyoutMenu/typescript-testing/slot-props.js.map +7 -0
  48. package/dist/esm/parts/DSMenuBehaviouralContextProvider/config/useMenuBehaviouralContextProvider.js.map +2 -2
  49. package/dist/esm/parts/DSMenuBehaviouralContextProvider/utils/nodeGettersByCriterias.js.map +2 -2
  50. package/dist/esm/parts/DSMenuItemRendererFactory/ActivableMenuItem.js +13 -4
  51. package/dist/esm/parts/DSMenuItemRendererFactory/ActivableMenuItem.js.map +2 -2
  52. package/dist/esm/parts/DSMenuItemRendererFactory/ActivableWithSubmenuMenuItem.js +13 -2
  53. package/dist/esm/parts/DSMenuItemRendererFactory/ActivableWithSubmenuMenuItem.js.map +2 -2
  54. package/dist/esm/parts/DSMenuItemRendererFactory/DSMenuItemRendererFactory.js +67 -18
  55. package/dist/esm/parts/DSMenuItemRendererFactory/DSMenuItemRendererFactory.js.map +3 -3
  56. package/dist/esm/parts/DSMenuItemRendererFactory/MultipleSelectMenuItem.js +13 -2
  57. package/dist/esm/parts/DSMenuItemRendererFactory/MultipleSelectMenuItem.js.map +2 -2
  58. package/dist/esm/parts/DSMenuItemRendererFactory/MultipleSelectWithSubmenuMenuItem.js +13 -2
  59. package/dist/esm/parts/DSMenuItemRendererFactory/MultipleSelectWithSubmenuMenuItem.js.map +2 -2
  60. package/dist/esm/parts/DSMenuItemRendererFactory/SingleSelectMenuItem.js +18 -5
  61. package/dist/esm/parts/DSMenuItemRendererFactory/SingleSelectMenuItem.js.map +2 -2
  62. package/dist/esm/parts/DSMenuItemRendererFactory/SingleSelectWithSubmenuMenuItem.js +18 -3
  63. package/dist/esm/parts/DSMenuItemRendererFactory/SingleSelectWithSubmenuMenuItem.js.map +2 -2
  64. package/dist/esm/parts/DSMenuItemRendererFactory/SkeletonMenuItem.js +5 -5
  65. package/dist/esm/parts/DSMenuItemRendererFactory/SkeletonMenuItem.js.map +2 -2
  66. package/dist/esm/parts/DSMenuItemRendererFactory/WithSubmenuMenuItem.js +13 -2
  67. package/dist/esm/parts/DSMenuItemRendererFactory/WithSubmenuMenuItem.js.map +2 -2
  68. package/dist/esm/parts/DSMenuItemRendererFactory/constants/index.js +5 -1
  69. package/dist/esm/parts/DSMenuItemRendererFactory/constants/index.js.map +2 -2
  70. package/dist/esm/parts/DSMenuItemRendererFactory/react-desc-prop-types.js.map +2 -2
  71. package/dist/esm/parts/DSMenuItemRendererFactory/typescript-testing/slot-props.js +15 -0
  72. package/dist/esm/parts/DSMenuItemRendererFactory/typescript-testing/slot-props.js.map +7 -0
  73. package/dist/esm/parts/DSOpinionatedButton/react-desc-prop-types.js.map +2 -2
  74. package/dist/esm/parts/DSOpinionatedButton/typescript-testing/slot-props.js +9 -0
  75. package/dist/esm/parts/DSOpinionatedButton/typescript-testing/slot-props.js.map +7 -0
  76. package/dist/esm/react-desc-prop-types.js.map +2 -2
  77. package/dist/esm/typescript-testing/slot-props.js +9 -0
  78. package/dist/esm/typescript-testing/slot-props.js.map +7 -0
  79. package/dist/esm/utils/nodesTypeguardsAndGetters.js +6 -0
  80. package/dist/esm/utils/nodesTypeguardsAndGetters.js.map +2 -2
  81. package/dist/types/config/useSplitInherithedProps.d.ts +1 -1
  82. package/dist/types/constants/index.d.ts +2 -1
  83. package/dist/types/parts/DSFlyoutMenu/react-desc-prop-types.d.ts +5 -0
  84. package/dist/types/parts/DSMenuItemRendererFactory/ActivableMenuItem.d.ts +2 -0
  85. package/dist/types/parts/DSMenuItemRendererFactory/ActivableWithSubmenuMenuItem.d.ts +2 -0
  86. package/dist/types/parts/DSMenuItemRendererFactory/MultipleSelectMenuItem.d.ts +2 -0
  87. package/dist/types/parts/DSMenuItemRendererFactory/MultipleSelectWithSubmenuMenuItem.d.ts +2 -0
  88. package/dist/types/parts/DSMenuItemRendererFactory/SingleSelectMenuItem.d.ts +2 -0
  89. package/dist/types/parts/DSMenuItemRendererFactory/SingleSelectWithSubmenuMenuItem.d.ts +2 -0
  90. package/dist/types/parts/DSMenuItemRendererFactory/SkeletonMenuItem.d.ts +2 -0
  91. package/dist/types/parts/DSMenuItemRendererFactory/WithSubmenuMenuItem.d.ts +2 -0
  92. package/dist/types/parts/DSMenuItemRendererFactory/constants/index.d.ts +4 -2
  93. package/dist/types/parts/DSMenuItemRendererFactory/react-desc-prop-types.d.ts +6 -0
  94. package/dist/types/parts/DSOpinionatedButton/config/useOpinionatedButton.d.ts +8 -8
  95. package/dist/types/parts/DSOpinionatedButton/react-desc-prop-types.d.ts +3 -0
  96. package/dist/types/react-desc-prop-types.d.ts +3 -0
  97. package/dist/types/utils/nodesTypeguardsAndGetters.d.ts +15 -0
  98. package/package.json +15 -15
  99. package/dist/types/tests/config/ControlledTestRender.d.ts +0 -3
  100. package/dist/types/tests/menu-button.keyboard.test.d.ts +0 -1
  101. package/dist/types/tests/playwright/DSMenuButton.ControlledTestRenderer.d.ts +0 -2
  102. package/dist/types/tests/playwright/DSMenuButton.test.playwright.d.ts +0 -1
  103. /package/dist/types/{tests/menu-button.exports.test.d.ts → parts/DSFlyoutMenu/typescript-testing/slot-props.d.ts} +0 -0
  104. /package/dist/types/{tests/menu-button.floating-config.test.d.ts → parts/DSMenuItemRendererFactory/typescript-testing/slot-props.d.ts} +0 -0
  105. /package/dist/types/{tests/menu-button.get-owner-props.test.d.ts → parts/DSOpinionatedButton/typescript-testing/slot-props.d.ts} +0 -0
@@ -4,6 +4,12 @@ import type { DSMenuButtonT } from '../../react-desc-prop-types.js';
4
4
  import type { DSFlyoutMenuT } from '../DSFlyoutMenu/react-desc-prop-types.js';
5
5
  import { DSMenuItemRendererFactoryName, MENU_ITEM_RENDERER_FACTORY_SLOTS } from './constants/index.js';
6
6
  export declare namespace DSMenuItemRendererFactoryT {
7
+ type SlotFunctionArguments = {
8
+ dsMenuitemrendererfactoryRoot: () => object;
9
+ dsMenuitemrendererfactoryGroupLabelWrapper: () => object;
10
+ dsMenuitemrendererfactoryLabelWithLeftDecWrapper: () => object;
11
+ dsMenuitemrendererfactoryRadioDotIndicator: () => object;
12
+ };
7
13
  interface RequiredProps {
8
14
  itemNode: DSMenuButtonT.MenuNode;
9
15
  FlyoutMenuCircularDepInject: React.ComponentType<DSFlyoutMenuT.Props>;
@@ -12,29 +12,29 @@ export declare const useOpinionatedButton: (propsFromUser: DSOpinionatedButtonT.
12
12
  };
13
13
  floatingContext: {
14
14
  refs: {
15
- setReference: React.Dispatch<React.SetStateAction<Element | null>>;
15
+ setReference: (el: Element | null) => void;
16
16
  setFloating: React.Dispatch<React.SetStateAction<HTMLElement | null>>;
17
17
  floating: HTMLElement | null;
18
18
  reference: Element | null;
19
19
  };
20
20
  floatingStyles: React.CSSProperties;
21
21
  handlers: {
22
- onMouseEnter: () => void;
23
- onMouseLeave: () => void;
24
- onFocus: () => void;
25
- onBlur: () => void;
22
+ onMouseEnter: React.MouseEventHandler<Element>;
23
+ onMouseLeave: React.MouseEventHandler<Element>;
24
+ onFocus: React.FocusEventHandler<Element>;
25
+ onBlur: React.FocusEventHandler<Element>;
26
26
  };
27
27
  isOpen: boolean;
28
28
  arrowStyles: import("@elliemae/ds-floating-context/dist/types/parts/PopoverArrow.js").PopoverArrowT;
29
- hideTooltip: () => void;
30
- showTooltip: () => void;
29
+ hideTooltip: (event?: React.FocusEvent | React.MouseEvent | KeyboardEvent) => void;
30
+ showTooltip: (event?: React.FocusEvent | React.MouseEvent | React.KeyboardEvent) => void;
31
31
  context: {
32
32
  withoutPortal: boolean;
33
33
  withoutAnimation: boolean;
34
34
  portalDOMContainer: HTMLElement | undefined;
35
35
  animationDuration: number;
36
36
  };
37
- mutableUpdateStyles: React.MutableRefObject<() => void>;
37
+ mutableUpdateStyles: React.MutableRefObject<import("lodash").DebouncedFunc<() => void>>;
38
38
  forceUpdatePosition: () => void;
39
39
  };
40
40
  };
@@ -4,6 +4,9 @@ import type React from 'react';
4
4
  import { type DSMenuButtonT } from '../../react-desc-prop-types.js';
5
5
  import { DSOpinionatedButtonName, OPINIONATED_BUTTON_SLOTS } from './constants/index.js';
6
6
  export declare namespace DSOpinionatedButtonT {
7
+ type SlotFunctionArguments = {
8
+ dsOpinionatedbuttonRoot: () => object;
9
+ };
7
10
  interface RequiredProps extends DSMenuButtonT.ButtonInheritedRequiredProps {
8
11
  menuSpecificProps: DSMenuButtonT.MenuSpecificProps;
9
12
  }
@@ -5,6 +5,9 @@ import type { UseDSTreeT } from '@elliemae/ds-tree-model';
5
5
  import type { DSHookFloatingContextT } from '@elliemae/ds-floating-context';
6
6
  import { DSMenuButtonName, MENU_BUTTON_SLOTS, type MENU_ITEMS_TYPES } from './constants/index.js';
7
7
  export declare namespace DSMenuButtonT {
8
+ type SlotFunctionArguments = {
9
+ dsMenubuttonRoot: () => object;
10
+ };
8
11
  interface RootItem extends UseDSTreeT.AnyObjectWithoutReservedKeys {
9
12
  type: 'ROOT_ITEM';
10
13
  dsId: string;
@@ -131,4 +131,19 @@ export declare const isGroup: (item: unknown) => item is DSMenuButtonT.MenuNodeG
131
131
  * This function uses a hardcoded string to identify the root item.
132
132
  */
133
133
  export declare const isRootNode: (item: unknown) => item is DSMenuButtonT.MenuNodeRootItem;
134
+ /**
135
+ * Computes aria-posinset/aria-setsize for the focusable nodes within a single sibling
136
+ * list — either the flyout menu's top-level children, or one group's subitems.
137
+ * @param {DSMenuButtonT.MenuNode[]} siblingNodes - Immediate sibling nodes sharing one list level.
138
+ * @returns {Map<DSMenuButtonT.MenuNode['dsId'], { ariaPosInSet: number; ariaSetSize: number }>} keyed by dsId.
139
+ * @remarks
140
+ * PUI-18614: the browser/AT native inference of a menu's item count and an item's position
141
+ * breaks once a `role="group"` wrapper has no accessible name (a supported, label-less GROUP
142
+ * usage). Making both values explicit removes the dependency on that inference. Separators and
143
+ * nested groups are excluded — they are not part of the ARIA "set of items".
144
+ */
145
+ export declare const getAriaSetSizeAndPosInSetBySiblingList: (siblingNodes: DSMenuButtonT.MenuNode[]) => Map<DSMenuButtonT.MenuNode["dsId"], {
146
+ ariaPosInSet: number;
147
+ ariaSetSize: number;
148
+ }>;
134
149
  export declare const isMenuNodeAllowedToHaveChildren: (item: unknown) => item is DSMenuButtonT.MenuNodesAllowedToHaveChildren;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/ds-menu-button",
3
- "version": "3.70.0-next.6",
3
+ "version": "3.70.0-next.61",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - Menu Button",
6
6
  "files": [
@@ -36,22 +36,22 @@
36
36
  "indent": 4
37
37
  },
38
38
  "dependencies": {
39
- "@elliemae/ds-button-v2": "3.70.0-next.6",
40
- "@elliemae/ds-hooks-on-blur-out": "3.70.0-next.6",
41
- "@elliemae/ds-floating-context": "3.70.0-next.6",
42
- "@elliemae/ds-grid": "3.70.0-next.6",
43
- "@elliemae/ds-system": "3.70.0-next.6",
44
- "@elliemae/ds-menu-items-commons": "3.70.0-next.6",
45
- "@elliemae/ds-icons": "3.70.0-next.6",
46
- "@elliemae/ds-tree-model": "3.70.0-next.6",
47
- "@elliemae/ds-props-helpers": "3.70.0-next.6"
39
+ "@elliemae/ds-floating-context": "3.70.0-next.61",
40
+ "@elliemae/ds-button-v2": "3.70.0-next.61",
41
+ "@elliemae/ds-grid": "3.70.0-next.61",
42
+ "@elliemae/ds-menu-items-commons": "3.70.0-next.61",
43
+ "@elliemae/ds-hooks-on-blur-out": "3.70.0-next.61",
44
+ "@elliemae/ds-icons": "3.70.0-next.61",
45
+ "@elliemae/ds-props-helpers": "3.70.0-next.61",
46
+ "@elliemae/ds-system": "3.70.0-next.61",
47
+ "@elliemae/ds-tree-model": "3.70.0-next.61"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@elliemae/pui-theme": "~2.13.0",
51
51
  "jest": "^30.0.0",
52
- "styled-components": "~5.3.9",
53
- "@elliemae/ds-typescript-helpers": "3.70.0-next.6",
54
- "@elliemae/ds-monorepo-devops": "3.70.0-next.6"
52
+ "styled-components": "~5.3.11",
53
+ "@elliemae/ds-typescript-helpers": "3.70.0-next.61",
54
+ "@elliemae/ds-monorepo-devops": "3.70.0-next.61"
55
55
  },
56
56
  "peerDependencies": {
57
57
  "@testing-library/jest-dom": "^6.6.3",
@@ -59,7 +59,7 @@
59
59
  "@testing-library/user-event": "~14.6.1",
60
60
  "react": "^18.3.1",
61
61
  "react-dom": "^18.3.1",
62
- "styled-components": "~5.3.9"
62
+ "styled-components": "~5.3.11"
63
63
  },
64
64
  "publishConfig": {
65
65
  "access": "public",
@@ -74,4 +74,4 @@
74
74
  "build": "cross-env NODE_ENV=production node ../../../scripts/build/build.mjs",
75
75
  "checkDeps": "npx -yes ../../util/ds-codemods check-missing-packages --projectFolderPath=\"./\" --ignorePackagesGlobPattern=\"\" --ignoreFilesGlobPattern=\"**/test-ables/*,**/tests/*\""
76
76
  }
77
- }
77
+ }
@@ -1,3 +0,0 @@
1
- export function ControlledTestRender({ mockActionOnActivateItem }: {
2
- mockActionOnActivateItem: any;
3
- }): import("react/jsx-runtime").JSX.Element;
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- export const DSMenuButtonControlledTestRenderer: React.FunctionComponent<React.JSX.IntrinsicAttributes>;
2
- import React from 'react';