@instructure/ui-menu 8.13.1-snapshot.9 → 8.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/es/Menu/MenuItem/index.js +28 -21
  3. package/es/Menu/MenuItem/props.js +0 -23
  4. package/es/Menu/MenuItemGroup/index.js +17 -13
  5. package/es/Menu/MenuItemGroup/props.js +1 -30
  6. package/es/Menu/MenuItemSeparator/index.js +6 -2
  7. package/es/Menu/index.js +59 -56
  8. package/es/Menu/props.js +1 -113
  9. package/es/MenuContext.js +3 -3
  10. package/lib/Menu/MenuItem/index.js +28 -21
  11. package/lib/Menu/MenuItem/props.js +0 -23
  12. package/lib/Menu/MenuItemGroup/index.js +17 -13
  13. package/lib/Menu/MenuItemGroup/props.js +1 -30
  14. package/lib/Menu/MenuItemSeparator/index.js +6 -2
  15. package/lib/Menu/index.js +61 -56
  16. package/lib/Menu/props.js +1 -113
  17. package/lib/MenuContext.js +2 -2
  18. package/package.json +21 -22
  19. package/src/Menu/MenuItem/index.tsx +24 -34
  20. package/src/Menu/MenuItem/props.ts +36 -27
  21. package/src/Menu/MenuItemGroup/index.tsx +28 -48
  22. package/src/Menu/MenuItemGroup/props.ts +37 -30
  23. package/src/Menu/MenuItemSeparator/index.tsx +2 -4
  24. package/src/Menu/index.tsx +81 -135
  25. package/src/Menu/props.ts +79 -84
  26. package/src/MenuContext.ts +3 -2
  27. package/tsconfig.build.json +25 -2
  28. package/tsconfig.build.tsbuildinfo +1 -0
  29. package/types/Menu/MenuItem/MenuItemLocator.d.ts +52 -52
  30. package/types/Menu/MenuItem/index.d.ts +24 -23
  31. package/types/Menu/MenuItem/index.d.ts.map +1 -1
  32. package/types/Menu/MenuItem/props.d.ts +30 -7
  33. package/types/Menu/MenuItem/props.d.ts.map +1 -1
  34. package/types/Menu/MenuItemGroup/MenuItemGroupLocator.d.ts +182 -182
  35. package/types/Menu/MenuItemGroup/index.d.ts +22 -22
  36. package/types/Menu/MenuItemGroup/index.d.ts.map +1 -1
  37. package/types/Menu/MenuItemGroup/props.d.ts +33 -8
  38. package/types/Menu/MenuItemGroup/props.d.ts.map +1 -1
  39. package/types/Menu/MenuItemSeparator/index.d.ts.map +1 -1
  40. package/types/Menu/MenuLocator.d.ts +576 -576
  41. package/types/Menu/index.d.ts +58 -68
  42. package/types/Menu/index.d.ts.map +1 -1
  43. package/types/Menu/props.d.ts +94 -16
  44. package/types/Menu/props.d.ts.map +1 -1
  45. package/types/MenuContext.d.ts +3 -2
  46. package/types/MenuContext.d.ts.map +1 -1
  47. package/LICENSE.md +0 -27
@@ -1,26 +1,28 @@
1
1
  /** @jsx jsx */
2
2
  import { Component } from 'react';
3
3
  import { jsx } from '@instructure/emotion';
4
- import type { MenuGroupProps } from './props';
4
+ import { MenuItem } from '../MenuItem';
5
+ import type { MenuGroupProps, MenuGroupState } from './props';
6
+ import type { OnMenuItemSelect, MenuItemProps } from '../MenuItem/props';
5
7
  /**
6
8
  ---
7
9
  parent: Menu
8
10
  id: Menu.Group
9
11
  ---
12
+ @tsProps
10
13
  **/
11
- declare class MenuItemGroup extends Component<MenuGroupProps> {
14
+ declare class MenuItemGroup extends Component<MenuGroupProps, MenuGroupState> {
12
15
  static readonly componentId = "Menu.Group";
13
16
  static propTypes: import("@instructure/shared-types/types/UtilityTypes").PropValidators<keyof {
14
17
  label: import("react").ReactNode;
15
18
  allowMultiple?: boolean | undefined;
16
19
  children?: import("react").ReactNode;
17
- selected?: any;
18
- defaultSelected?: any[] | undefined;
19
- onSelect?: ((...args: any[]) => any) | undefined;
20
- onMouseOver?: ((...args: any[]) => any) | undefined;
21
- onKeyDown?: ((...args: any[]) => any) | undefined;
20
+ selected?: (string | number)[] | undefined;
21
+ defaultSelected?: (string | number)[] | undefined;
22
+ onSelect?: ((e: import("react").MouseEvent<Element, MouseEvent>, updated: (string | number | undefined)[], selected: boolean | undefined, item: MenuItem) => void) | undefined;
23
+ onMouseOver?: ((e: import("react").MouseEvent<Element, MouseEvent>, args: MenuItem) => void) | undefined;
22
24
  controls?: string | undefined;
23
- itemRef?: ((...args: any[]) => any) | undefined;
25
+ itemRef?: ((element: Element | null) => void) | undefined;
24
26
  disabled?: boolean | undefined;
25
27
  isTabbable?: boolean | undefined;
26
28
  }>;
@@ -28,13 +30,12 @@ declare class MenuItemGroup extends Component<MenuGroupProps> {
28
30
  label: import("react").ReactNode;
29
31
  allowMultiple?: boolean | undefined;
30
32
  children?: import("react").ReactNode;
31
- selected?: any;
32
- defaultSelected?: any[] | undefined;
33
- onSelect?: ((...args: any[]) => any) | undefined;
34
- onMouseOver?: ((...args: any[]) => any) | undefined;
35
- onKeyDown?: ((...args: any[]) => any) | undefined;
33
+ selected?: (string | number)[] | undefined;
34
+ defaultSelected?: (string | number)[] | undefined;
35
+ onSelect?: ((e: import("react").MouseEvent<Element, MouseEvent>, updated: (string | number | undefined)[], selected: boolean | undefined, item: MenuItem) => void) | undefined;
36
+ onMouseOver?: ((e: import("react").MouseEvent<Element, MouseEvent>, args: MenuItem) => void) | undefined;
36
37
  controls?: string | undefined;
37
- itemRef?: ((...args: any[]) => any) | undefined;
38
+ itemRef?: ((element: Element | null) => void) | undefined;
38
39
  disabled?: boolean | undefined;
39
40
  isTabbable?: boolean | undefined;
40
41
  })[];
@@ -44,20 +45,19 @@ declare class MenuItemGroup extends Component<MenuGroupProps> {
44
45
  isTabbable: boolean;
45
46
  allowMultiple: boolean;
46
47
  defaultSelected: never[];
47
- itemRef: (item: any) => void;
48
- onSelect: (e: any, value: any, selected: any, item: any) => void;
49
48
  };
50
- constructor(props: any);
49
+ constructor(props: MenuGroupProps);
50
+ private _labelId;
51
51
  ref: Element | null;
52
52
  handleRef: (el: Element | null) => void;
53
53
  componentDidMount(): void;
54
54
  componentDidUpdate(): void;
55
- handleSelect: (e: any, value: any, selected: any, item: any) => void;
56
- updateSelected: (e: any, value: any, items: any, selected: any, item: any) => any[];
57
- selectedFromChildren(props: any): any[] | null;
58
- get selected(): any[];
55
+ handleSelect: OnMenuItemSelect;
56
+ updateSelected: (e: React.MouseEvent, value: MenuItemProps['value'], items: MenuGroupState['selected'], selected: MenuItemProps['selected'], item: MenuItem) => (string | number)[];
57
+ selectedFromChildren(props: MenuGroupProps): (string | number)[] | null;
58
+ get selected(): (string | number)[];
59
59
  renderLabel(): import("react").ReactNode;
60
- renderChildren(): {}[] | null | undefined;
60
+ renderChildren(): jsx.JSX.Element[];
61
61
  render(): jsx.JSX.Element;
62
62
  }
63
63
  export default MenuItemGroup;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Menu/MenuItemGroup/index.tsx"],"names":[],"mappings":"AAwBA,eAAe;AACf,OAAO,EAAY,SAAS,EAAgB,MAAM,OAAO,CAAA;AAEzD,OAAO,EAAa,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAgBrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C;;;;;GAKG;AACH,cAEM,aAAc,SAAQ,SAAS,CAAC,cAAc,CAAC;IACnD,MAAM,CAAC,QAAQ,CAAC,WAAW,gBAAe;IAE1C,MAAM,CAAC,SAAS;;;;;;;;;;;;;OAAY;IAC5B,MAAM,CAAC,YAAY;;;;;;;;;;;;;SAAe;IAClC,MAAM,CAAC,YAAY;;;;;;;;MAUlB;gBAGW,KAAK,KAAA;IAcjB,GAAG,EAAE,OAAO,GAAG,IAAI,CAAO;IAE1B,SAAS,OAAQ,OAAO,GAAG,IAAI,UAE9B;IAED,iBAAiB;IAKjB,kBAAkB;IAMlB,YAAY,yDAsBX;IAGD,cAAc,sEAmBb;IAGD,oBAAoB,CAAC,KAAK,KAAA;IAwB1B,IAAI,QAAQ,UAaX;IAED,WAAW;IAUX,cAAc;IAyCd,MAAM;CAuBP;AAED,eAAe,aAAa,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Menu/MenuItemGroup/index.tsx"],"names":[],"mappings":"AAwBA,eAAe;AACf,OAAO,EAAY,SAAS,EAAgB,MAAM,OAAO,CAAA;AAEzD,OAAO,EAAa,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAUrD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAMtC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAExE;;;;;;GAMG;AACH,cAEM,aAAc,SAAQ,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IACnE,MAAM,CAAC,QAAQ,CAAC,WAAW,gBAAe;IAE1C,MAAM,CAAC,SAAS;;;;;;;;;;;;OAAY;IAC5B,MAAM,CAAC,YAAY;;;;;;;;;;;;SAAe;IAClC,MAAM,CAAC,YAAY;;;;;;MAMlB;gBAEW,KAAK,EAAE,cAAc;IAYjC,OAAO,CAAC,QAAQ,CAAQ;IACxB,GAAG,EAAE,OAAO,GAAG,IAAI,CAAO;IAE1B,SAAS,OAAQ,OAAO,GAAG,IAAI,UAE9B;IAED,iBAAiB;IAIjB,kBAAkB;IAIlB,YAAY,EAAE,gBAAgB,CAqB7B;IAED,cAAc,MACT,gBAAgB,SACZ,aAAa,CAAC,OAAO,CAAC,SACtB,cAAc,CAAC,UAAU,CAAC,YACvB,aAAa,CAAC,UAAU,CAAC,QAC7B,QAAQ,yBAoBf;IAED,oBAAoB,CAAC,KAAK,EAAE,cAAc;IAoB1C,IAAI,QAAQ,wBAWX;IAED,WAAW;IAUX,cAAc;IAiCd,MAAM;CAqBP;AAED,eAAe,aAAa,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,CAAA"}
@@ -1,18 +1,40 @@
1
- /// <reference types="react" />
1
+ import { MenuItem } from '../MenuItem';
2
2
  import type { PropValidators, MenuGroupTheme, OtherHTMLAttributes } from '@instructure/shared-types';
3
3
  import type { WithStyleProps, ComponentStyle } from '@instructure/emotion';
4
+ import type { MenuItemProps } from '../MenuItem/props';
5
+ import React from 'react';
4
6
  declare type MenuGroupOwnProps = {
5
7
  label: React.ReactNode;
6
8
  allowMultiple?: boolean;
9
+ /**
10
+ * children of type `Menu.Item`, `Menu.Separator`
11
+ */
7
12
  children?: React.ReactNode;
8
- selected?: any;
9
- defaultSelected?: any[];
10
- onSelect?: (...args: any[]) => any;
11
- onMouseOver?: (...args: any[]) => any;
12
- onKeyDown?: (...args: any[]) => any;
13
+ /**
14
+ * an array of the values (or indices by default) for the selected items
15
+ */
16
+ selected?: (string | number)[];
17
+ /**
18
+ * an array of the values (or indices by default) for the selected items on initial render
19
+ */
20
+ defaultSelected?: (string | number)[];
21
+ /**
22
+ * call this function when a menu item is selected
23
+ */
24
+ onSelect?: (e: React.MouseEvent, updated: MenuItemProps['value'][], selected: MenuItemProps['selected'], item: MenuItem) => void;
25
+ onMouseOver?: (e: React.MouseEvent, args: MenuItem) => void;
26
+ /**
27
+ * the id of the element that the menu items will act upon
28
+ */
13
29
  controls?: string;
14
- itemRef?: (...args: any[]) => any;
30
+ /**
31
+ * returns a reference to the `MenuItem`
32
+ */
33
+ itemRef?: (element: Element | null) => void;
15
34
  disabled?: boolean;
35
+ /**
36
+ * should the group appear in the tab order (the first item will have a tabIndex of 0)
37
+ */
16
38
  isTabbable?: boolean;
17
39
  };
18
40
  declare type PropKeys = keyof MenuGroupOwnProps;
@@ -21,6 +43,9 @@ declare type MenuGroupProps = MenuGroupOwnProps & WithStyleProps<MenuGroupTheme,
21
43
  declare type MenuGroupStyle = ComponentStyle<'menuItemGroup' | 'label' | 'items'>;
22
44
  declare const propTypes: PropValidators<PropKeys>;
23
45
  declare const allowedProps: AllowedPropKeys;
24
- export type { MenuGroupProps, MenuGroupStyle };
46
+ declare type MenuGroupState = {
47
+ selected: (string | number)[];
48
+ };
49
+ export type { MenuGroupProps, MenuGroupStyle, MenuGroupState };
25
50
  export { propTypes, allowedProps };
26
51
  //# sourceMappingURL=props.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../src/Menu/MenuItemGroup/props.ts"],"names":[],"mappings":";AAkCA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,mBAAmB,EACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1E,aAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,eAAe,CAAC,EAAE,GAAG,EAAE,CAAA;IACvB,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IAClC,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IACrC,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,aAAK,QAAQ,GAAG,MAAM,iBAAiB,CAAA;AAEvC,aAAK,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;AAEhD,aAAK,cAAc,GAAG,iBAAiB,GACrC,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC,GAC9C,mBAAmB,CAAC,iBAAiB,CAAC,CAAA;AAExC,aAAK,cAAc,GAAG,cAAc,CAAC,eAAe,GAAG,OAAO,GAAG,OAAO,CAAC,CAAA;AAEzE,QAAA,MAAM,SAAS,EAAE,cAAc,CAAC,QAAQ,CAkCvC,CAAA;AAED,QAAA,MAAM,YAAY,EAAE,eAanB,CAAA;AAED,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../src/Menu/MenuItemGroup/props.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAGtC,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,mBAAmB,EACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,aAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAC9B;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACrC;;OAEG;IACH,QAAQ,CAAC,EAAE,CACT,CAAC,EAAE,KAAK,CAAC,UAAU,EACnB,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,EACjC,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,EACnC,IAAI,EAAE,QAAQ,KACX,IAAI,CAAA;IACT,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC3D;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAA;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,aAAK,QAAQ,GAAG,MAAM,iBAAiB,CAAA;AAEvC,aAAK,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;AAEhD,aAAK,cAAc,GAAG,iBAAiB,GACrC,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC,GAC9C,mBAAmB,CAAC,iBAAiB,CAAC,CAAA;AAExC,aAAK,cAAc,GAAG,cAAc,CAAC,eAAe,GAAG,OAAO,GAAG,OAAO,CAAC,CAAA;AAEzE,QAAA,MAAM,SAAS,EAAE,cAAc,CAAC,QAAQ,CAYvC,CAAA;AAED,QAAA,MAAM,YAAY,EAAE,eAYnB,CAAA;AAED,aAAK,cAAc,GAAG;IACpB,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CAC9B,CAAA;AACD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Menu/MenuItemSeparator/index.tsx"],"names":[],"mappings":"AAwBA,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAa,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAQrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD;;;;;;GAMG;AACH,cAEM,iBAAkB,SAAQ,SAAS,CAAC,kBAAkB,CAAC;IAC3D,MAAM,CAAC,QAAQ,CAAC,WAAW,oBAAmB;IAE9C,MAAM,CAAC,SAAS,+EAAY;IAC5B,MAAM,CAAC,YAAY,mBAAe;IAElC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAO;IAE1B,SAAS,OAAQ,OAAO,GAAG,IAAI,UAE9B;IAED,iBAAiB;IAKjB,kBAAkB;IAKlB,MAAM;CAWP;AAED,eAAe,iBAAiB,CAAA;AAChC,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Menu/MenuItemSeparator/index.tsx"],"names":[],"mappings":"AAwBA,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAa,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAQrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD;;;;;;GAMG;AACH,cAEM,iBAAkB,SAAQ,SAAS,CAAC,kBAAkB,CAAC;IAC3D,MAAM,CAAC,QAAQ,CAAC,WAAW,oBAAmB;IAE9C,MAAM,CAAC,SAAS,+EAAY;IAC5B,MAAM,CAAC,YAAY,mBAAe;IAElC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAO;IAE1B,SAAS,OAAQ,OAAO,GAAG,IAAI,UAE9B;IAED,iBAAiB;IAIjB,kBAAkB;IAIlB,MAAM;CAWP;AAED,eAAe,iBAAiB,CAAA;AAChC,OAAO,EAAE,iBAAiB,EAAE,CAAA"}