@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
@@ -22,25 +22,15 @@ export declare const MenuItemLocator: {
22
22
  toString: (maxLength?: number | undefined, options?: {
23
23
  highlight: boolean;
24
24
  } | undefined) => string;
25
- contains: (elementOrSelector?: string | Element | undefined) => boolean | Element;
26
- children: (selector: string) => Element[];
27
- title: () => string | null | undefined;
28
- id: () => string;
29
- tagName: () => string;
30
- getAttribute: (qualifiedName: string) => string | null;
31
- getBoundingClientRect: () => DOMRect;
32
- matches: (selector: string | undefined) => boolean;
33
25
  visible: () => boolean;
34
- value: () => string | null;
35
- disabled: () => string | null;
36
- role: () => string | null;
37
- label: () => string | null | undefined;
38
26
  getId: () => string;
39
27
  getOwnerWindow: () => (Window & typeof globalThis) | null;
40
28
  getOwnerDocument: () => Document;
41
29
  getComputedStyle: () => CSSStyleDeclaration;
42
30
  getTagName: () => string;
31
+ tagName: () => string;
43
32
  typeIn: (text: string) => Promise<void>;
33
+ getAttribute: (qualifiedName: string) => string | null;
44
34
  getDOMNode: () => Element;
45
35
  node: () => Element;
46
36
  debug: (maxLength?: number | undefined, options?: {
@@ -50,6 +40,7 @@ export declare const MenuItemLocator: {
50
40
  getTextContent: () => string | null;
51
41
  getParentNode: () => ParentNode | null;
52
42
  parent: () => ParentNode | null;
43
+ getBoundingClientRect: () => DOMRect;
53
44
  rect: () => DOMRect;
54
45
  hasClass: (classname: string) => boolean;
55
46
  containsFocus: () => boolean;
@@ -61,17 +52,25 @@ export declare const MenuItemLocator: {
61
52
  exists: () => boolean;
62
53
  text: () => string | null;
63
54
  empty: () => boolean;
55
+ contains: (elementOrSelector?: string | Element | undefined) => boolean | Element;
64
56
  descendants: (selector: string) => Element[];
65
57
  ancestors: (selector: string) => ParentNode[];
66
58
  attribute: (qualifiedName: string) => string | null;
67
59
  style: (property: string) => string;
68
60
  classNames: () => string[];
61
+ id: () => string;
62
+ matches: (selector: string | undefined) => boolean;
69
63
  checked: () => any;
70
64
  selected: () => any;
65
+ disabled: () => string | null;
71
66
  readonly: () => any;
67
+ role: () => string | null;
68
+ value: () => string | null;
69
+ label: () => string | null | undefined;
70
+ title: () => string | null | undefined;
71
+ children: (selector: string) => Element[];
72
72
  parents: (selector: string) => ParentNode[];
73
73
  } & {
74
- scroll: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
75
74
  copy: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
76
75
  cut: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
77
76
  paste: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
@@ -109,6 +108,7 @@ export declare const MenuItemLocator: {
109
108
  touchEnd: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
110
109
  touchMove: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
111
110
  touchStart: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
111
+ scroll: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
112
112
  wheel: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
113
113
  abort: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
114
114
  canPlay: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
@@ -161,25 +161,15 @@ export declare const MenuItemLocator: {
161
161
  toString: (maxLength?: number | undefined, options?: {
162
162
  highlight: boolean;
163
163
  } | undefined) => string;
164
- contains: (elementOrSelector?: string | Element | undefined) => boolean | Element;
165
- children: (selector: string) => Element[];
166
- title: () => string | null | undefined;
167
- id: () => string;
168
- tagName: () => string;
169
- getAttribute: (qualifiedName: string) => string | null;
170
- getBoundingClientRect: () => DOMRect;
171
- matches: (selector: string | undefined) => boolean;
172
164
  visible: () => boolean;
173
- value: () => string | null;
174
- disabled: () => string | null;
175
- role: () => string | null;
176
- label: () => string | null | undefined;
177
165
  getId: () => string;
178
166
  getOwnerWindow: () => (Window & typeof globalThis) | null;
179
167
  getOwnerDocument: () => Document;
180
168
  getComputedStyle: () => CSSStyleDeclaration;
181
169
  getTagName: () => string;
170
+ tagName: () => string;
182
171
  typeIn: (text: string) => Promise<void>;
172
+ getAttribute: (qualifiedName: string) => string | null;
183
173
  getDOMNode: () => Element;
184
174
  node: () => Element;
185
175
  debug: (maxLength?: number | undefined, options?: {
@@ -189,6 +179,7 @@ export declare const MenuItemLocator: {
189
179
  getTextContent: () => string | null;
190
180
  getParentNode: () => ParentNode | null;
191
181
  parent: () => ParentNode | null;
182
+ getBoundingClientRect: () => DOMRect;
192
183
  rect: () => DOMRect;
193
184
  hasClass: (classname: string) => boolean;
194
185
  containsFocus: () => boolean;
@@ -200,17 +191,25 @@ export declare const MenuItemLocator: {
200
191
  exists: () => boolean;
201
192
  text: () => string | null;
202
193
  empty: () => boolean;
194
+ contains: (elementOrSelector?: string | Element | undefined) => boolean | Element;
203
195
  descendants: (selector: string) => Element[];
204
196
  ancestors: (selector: string) => ParentNode[];
205
197
  attribute: (qualifiedName: string) => string | null;
206
198
  style: (property: string) => string;
207
199
  classNames: () => string[];
200
+ id: () => string;
201
+ matches: (selector: string | undefined) => boolean;
208
202
  checked: () => any;
209
203
  selected: () => any;
204
+ disabled: () => string | null;
210
205
  readonly: () => any;
206
+ role: () => string | null;
207
+ value: () => string | null;
208
+ label: () => string | null | undefined;
209
+ title: () => string | null | undefined;
210
+ children: (selector: string) => Element[];
211
211
  parents: (selector: string) => ParentNode[];
212
212
  } & {
213
- scroll: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
214
213
  copy: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
215
214
  cut: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
216
215
  paste: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
@@ -248,6 +247,7 @@ export declare const MenuItemLocator: {
248
247
  touchEnd: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
249
248
  touchMove: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
250
249
  touchStart: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
250
+ scroll: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
251
251
  wheel: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
252
252
  abort: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
253
253
  canPlay: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
@@ -300,25 +300,15 @@ export declare const MenuItemLocator: {
300
300
  toString: (maxLength?: number | undefined, options?: {
301
301
  highlight: boolean;
302
302
  } | undefined) => string;
303
- contains: (elementOrSelector?: string | Element | undefined) => boolean | Element;
304
- children: (selector: string) => Element[];
305
- title: () => string | null | undefined;
306
- id: () => string;
307
- tagName: () => string;
308
- getAttribute: (qualifiedName: string) => string | null;
309
- getBoundingClientRect: () => DOMRect;
310
- matches: (selector: string | undefined) => boolean;
311
303
  visible: () => boolean;
312
- value: () => string | null;
313
- disabled: () => string | null;
314
- role: () => string | null;
315
- label: () => string | null | undefined;
316
304
  getId: () => string;
317
305
  getOwnerWindow: () => (Window & typeof globalThis) | null;
318
306
  getOwnerDocument: () => Document;
319
307
  getComputedStyle: () => CSSStyleDeclaration;
320
308
  getTagName: () => string;
309
+ tagName: () => string;
321
310
  typeIn: (text: string) => Promise<void>;
311
+ getAttribute: (qualifiedName: string) => string | null;
322
312
  getDOMNode: () => Element;
323
313
  node: () => Element;
324
314
  debug: (maxLength?: number | undefined, options?: {
@@ -328,6 +318,7 @@ export declare const MenuItemLocator: {
328
318
  getTextContent: () => string | null;
329
319
  getParentNode: () => ParentNode | null;
330
320
  parent: () => ParentNode | null;
321
+ getBoundingClientRect: () => DOMRect;
331
322
  rect: () => DOMRect;
332
323
  hasClass: (classname: string) => boolean;
333
324
  containsFocus: () => boolean;
@@ -339,17 +330,25 @@ export declare const MenuItemLocator: {
339
330
  exists: () => boolean;
340
331
  text: () => string | null;
341
332
  empty: () => boolean;
333
+ contains: (elementOrSelector?: string | Element | undefined) => boolean | Element;
342
334
  descendants: (selector: string) => Element[];
343
335
  ancestors: (selector: string) => ParentNode[];
344
336
  attribute: (qualifiedName: string) => string | null;
345
337
  style: (property: string) => string;
346
338
  classNames: () => string[];
339
+ id: () => string;
340
+ matches: (selector: string | undefined) => boolean;
347
341
  checked: () => any;
348
342
  selected: () => any;
343
+ disabled: () => string | null;
349
344
  readonly: () => any;
345
+ role: () => string | null;
346
+ value: () => string | null;
347
+ label: () => string | null | undefined;
348
+ title: () => string | null | undefined;
349
+ children: (selector: string) => Element[];
350
350
  parents: (selector: string) => ParentNode[];
351
351
  } & {
352
- scroll: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
353
352
  copy: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
354
353
  cut: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
355
354
  paste: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
@@ -387,6 +386,7 @@ export declare const MenuItemLocator: {
387
386
  touchEnd: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
388
387
  touchMove: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
389
388
  touchStart: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
389
+ scroll: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
390
390
  wheel: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
391
391
  abort: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
392
392
  canPlay: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
@@ -439,25 +439,15 @@ export declare const MenuItemLocator: {
439
439
  toString: (maxLength?: number | undefined, options?: {
440
440
  highlight: boolean;
441
441
  } | undefined) => string;
442
- contains: (elementOrSelector?: string | Element | undefined) => boolean | Element;
443
- children: (selector: string) => Element[];
444
- title: () => string | null | undefined;
445
- id: () => string;
446
- tagName: () => string;
447
- getAttribute: (qualifiedName: string) => string | null;
448
- getBoundingClientRect: () => DOMRect;
449
- matches: (selector: string | undefined) => boolean;
450
442
  visible: () => boolean;
451
- value: () => string | null;
452
- disabled: () => string | null;
453
- role: () => string | null;
454
- label: () => string | null | undefined;
455
443
  getId: () => string;
456
444
  getOwnerWindow: () => (Window & typeof globalThis) | null;
457
445
  getOwnerDocument: () => Document;
458
446
  getComputedStyle: () => CSSStyleDeclaration;
459
447
  getTagName: () => string;
448
+ tagName: () => string;
460
449
  typeIn: (text: string) => Promise<void>;
450
+ getAttribute: (qualifiedName: string) => string | null;
461
451
  getDOMNode: () => Element;
462
452
  node: () => Element;
463
453
  debug: (maxLength?: number | undefined, options?: {
@@ -467,6 +457,7 @@ export declare const MenuItemLocator: {
467
457
  getTextContent: () => string | null;
468
458
  getParentNode: () => ParentNode | null;
469
459
  parent: () => ParentNode | null;
460
+ getBoundingClientRect: () => DOMRect;
470
461
  rect: () => DOMRect;
471
462
  hasClass: (classname: string) => boolean;
472
463
  containsFocus: () => boolean;
@@ -478,17 +469,25 @@ export declare const MenuItemLocator: {
478
469
  exists: () => boolean;
479
470
  text: () => string | null;
480
471
  empty: () => boolean;
472
+ contains: (elementOrSelector?: string | Element | undefined) => boolean | Element;
481
473
  descendants: (selector: string) => Element[];
482
474
  ancestors: (selector: string) => ParentNode[];
483
475
  attribute: (qualifiedName: string) => string | null;
484
476
  style: (property: string) => string;
485
477
  classNames: () => string[];
478
+ id: () => string;
479
+ matches: (selector: string | undefined) => boolean;
486
480
  checked: () => any;
487
481
  selected: () => any;
482
+ disabled: () => string | null;
488
483
  readonly: () => any;
484
+ role: () => string | null;
485
+ value: () => string | null;
486
+ label: () => string | null | undefined;
487
+ title: () => string | null | undefined;
488
+ children: (selector: string) => Element[];
489
489
  parents: (selector: string) => ParentNode[];
490
490
  } & {
491
- scroll: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
492
491
  copy: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
493
492
  cut: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
494
493
  paste: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
@@ -526,6 +525,7 @@ export declare const MenuItemLocator: {
526
525
  touchEnd: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
527
526
  touchMove: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
528
527
  touchStart: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
528
+ scroll: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
529
529
  wheel: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
530
530
  abort: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
531
531
  canPlay: (init?: import("@instructure/ui-test-queries/src/utils/events").FireEventInit | undefined, options?: Record<string, unknown> | undefined) => Promise<Event>;
@@ -1,24 +1,25 @@
1
1
  /** @jsx jsx */
2
2
  import { Component } from 'react';
3
3
  import { jsx } from '@instructure/emotion';
4
- import type { MenuItemProps } from './props';
4
+ import type { MenuItemProps, MenuItemState } from './props';
5
5
  /**
6
6
  ---
7
7
  parent: Menu
8
8
  id: Menu.Item
9
9
  ---
10
+ @tsProps
10
11
  **/
11
- declare class MenuItem extends Component<MenuItemProps> {
12
+ declare class MenuItem extends Component<MenuItemProps, MenuItemState> {
12
13
  static readonly componentId = "Menu.Item";
13
14
  static propTypes: import("@instructure/shared-types/types/UtilityTypes").PropValidators<keyof {
14
15
  children: import("react").ReactNode;
15
16
  defaultSelected?: boolean | undefined;
16
- selected?: any;
17
- onSelect?: ((...args: any[]) => any) | undefined;
18
- onClick?: ((...args: any[]) => any) | undefined;
19
- onKeyDown?: ((...args: any[]) => any) | undefined;
20
- onKeyUp?: ((...args: any[]) => any) | undefined;
21
- onMouseOver?: ((...args: any[]) => any) | undefined;
17
+ selected?: boolean | undefined;
18
+ onSelect?: import("./props").OnMenuItemSelect | undefined;
19
+ onClick?: ((e: import("react").MouseEvent<Element, MouseEvent>) => void) | undefined;
20
+ onKeyDown?: ((e: import("react").KeyboardEvent<Element>) => void) | undefined;
21
+ onKeyUp?: ((e: import("react").KeyboardEvent<Element>) => void) | undefined;
22
+ onMouseOver?: ((e: import("react").MouseEvent<Element, MouseEvent>, args: MenuItem) => void) | undefined;
22
23
  controls?: string | undefined;
23
24
  disabled?: boolean | undefined;
24
25
  as?: import("@instructure/shared-types/types/CommonProps").AsElementType | undefined;
@@ -29,12 +30,12 @@ declare class MenuItem extends Component<MenuItemProps> {
29
30
  static allowedProps: readonly (keyof {
30
31
  children: import("react").ReactNode;
31
32
  defaultSelected?: boolean | undefined;
32
- selected?: any;
33
- onSelect?: ((...args: any[]) => any) | undefined;
34
- onClick?: ((...args: any[]) => any) | undefined;
35
- onKeyDown?: ((...args: any[]) => any) | undefined;
36
- onKeyUp?: ((...args: any[]) => any) | undefined;
37
- onMouseOver?: ((...args: any[]) => any) | undefined;
33
+ selected?: boolean | undefined;
34
+ onSelect?: import("./props").OnMenuItemSelect | undefined;
35
+ onClick?: ((e: import("react").MouseEvent<Element, MouseEvent>) => void) | undefined;
36
+ onKeyDown?: ((e: import("react").KeyboardEvent<Element>) => void) | undefined;
37
+ onKeyUp?: ((e: import("react").KeyboardEvent<Element>) => void) | undefined;
38
+ onMouseOver?: ((e: import("react").MouseEvent<Element, MouseEvent>, args: MenuItem) => void) | undefined;
38
39
  controls?: string | undefined;
39
40
  disabled?: boolean | undefined;
40
41
  as?: import("@instructure/shared-types/types/CommonProps").AsElementType | undefined;
@@ -45,26 +46,26 @@ declare class MenuItem extends Component<MenuItemProps> {
45
46
  static defaultProps: {
46
47
  readonly type: "button";
47
48
  readonly disabled: false;
48
- readonly onSelect: (e: any, value: any, selected: any, item: any) => void;
49
49
  };
50
50
  static contextType: import("react").Context<{
51
- registerMenuItem: () => void;
52
- removeMenuItem: () => void;
51
+ registerMenuItem: (_value: MenuItem) => void;
52
+ removeMenuItem: (_value: MenuItem) => void;
53
53
  }>;
54
- constructor(props: any);
54
+ constructor(props: MenuItemProps);
55
55
  get _node(): Element | null;
56
+ labelId: string;
56
57
  ref: Element | null;
57
58
  handleRef: (el: Element | null) => void;
58
59
  componentDidMount(): void;
59
60
  componentDidUpdate(): void;
60
61
  componentWillUnmount(): void;
61
- handleClick: (e: any) => void;
62
- handleKeyDown: (e: any) => void;
63
- handleKeyUp: (e: any) => void;
64
- handleMouseOver: (event: any) => void;
62
+ handleClick: (e: React.MouseEvent) => void;
63
+ handleKeyDown: (e: React.KeyboardEvent) => void;
64
+ handleKeyUp: (e: React.KeyboardEvent) => void;
65
+ handleMouseOver: (event: React.MouseEvent) => void;
65
66
  get elementType(): import("@instructure/shared-types/types/CommonProps").AsElementType;
66
67
  get role(): "button" | "menuitem" | "menuitemcheckbox" | "menuitemradio";
67
- get selected(): any;
68
+ get selected(): boolean;
68
69
  get focused(): boolean;
69
70
  focus(): void;
70
71
  renderContent(): jsx.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Menu/MenuItem/index.tsx"],"names":[],"mappings":"AAuBA,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AASjC,OAAO,EAAa,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAQrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C;;;;;GAKG;AACH,cAEM,QAAS,SAAQ,SAAS,CAAC,aAAa,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,WAAW,eAAc;IAEzC,MAAM,CAAC,SAAS;;;;;;;;;;;;;;;OAAY;IAC5B,MAAM,CAAC,YAAY;;;;;;;;;;;;;;;SAAe;IAClC,MAAM,CAAC,YAAY;;;;MAKT;IAEV,MAAM,CAAC,WAAW;;;OAAc;gBAGpB,KAAK,KAAA;IAcjB,IAAI,KAAK,mBAMR;IACD,GAAG,EAAE,OAAO,GAAG,IAAI,CAAO;IAC1B,SAAS,OAAQ,OAAO,GAAG,IAAI,UAE9B;IAED,iBAAiB;IAUjB,kBAAkB;IAKlB,oBAAoB;IASpB,WAAW,mBAqBV;IAGD,aAAa,mBAcZ;IAGD,WAAW,mBAaV;IAGD,eAAe,uBAMd;IAED,IAAI,WAAW,wEAEd;IAED,IAAI,IAAI,iEAWP;IAED,IAAI,QAAQ,QAKX;IAED,IAAI,OAAO,YAEV;IAED,KAAK;IAKL,aAAa;IAuBb,MAAM;CAmCP;AAED,eAAe,QAAQ,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Menu/MenuItem/index.tsx"],"names":[],"mappings":"AAuBA,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AASjC,OAAO,EAAa,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAQrD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE3D;;;;;;GAMG;AACH,cAEM,QAAS,SAAQ,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAC5D,MAAM,CAAC,QAAQ,CAAC,WAAW,eAAc;IAEzC,MAAM,CAAC,SAAS;;;;;;;;;;;;;;;OAAY;IAC5B,MAAM,CAAC,YAAY;;;;;;;;;;;;;;;SAAe;IAClC,MAAM,CAAC,YAAY;;;MAGT;IAEV,MAAM,CAAC,WAAW;;;OAAc;gBAEpB,KAAK,EAAE,aAAa;IAYhC,IAAI,KAAK,mBAMR;IAED,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,OAAO,GAAG,IAAI,CAAO;IAE1B,SAAS,OAAQ,OAAO,GAAG,IAAI,UAE9B;IAED,iBAAiB;IASjB,kBAAkB;IAIlB,oBAAoB;IAQpB,WAAW,MAAO,gBAAgB,UAqBjC;IAED,aAAa,MAAO,mBAAmB,UActC;IAED,WAAW,MAAO,mBAAmB,UAapC;IAED,eAAe,UAAW,gBAAgB,UAMzC;IAED,IAAI,WAAW,wEAEd;IAED,IAAI,IAAI,iEAWP;IAED,IAAI,QAAQ,YAIX;IAED,IAAI,OAAO,YAEV;IAED,KAAK;IAKL,aAAa;IAsBb,MAAM;CAkCP;AAED,eAAe,QAAQ,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -1,17 +1,37 @@
1
1
  import React from 'react';
2
+ import MenuItem from '../MenuItem';
2
3
  import type { AsElementType, PropValidators, MenuItemTheme, OtherHTMLAttributes } from '@instructure/shared-types';
3
4
  import type { WithStyleProps, ComponentStyle } from '@instructure/emotion';
5
+ declare type OnMenuItemSelect = (e: React.MouseEvent, value: MenuItemOwnProps['value'], selected: MenuItemOwnProps['selected'], args: MenuItem) => void;
4
6
  declare type MenuItemOwnProps = {
7
+ /**
8
+ * the menu item label
9
+ */
5
10
  children: React.ReactNode;
11
+ /**
12
+ * whether to set the menu item state to selected or not on initial render
13
+ */
6
14
  defaultSelected?: boolean;
7
- selected?: any;
8
- onSelect?: (...args: any[]) => any;
9
- onClick?: (...args: any[]) => any;
10
- onKeyDown?: (...args: any[]) => any;
11
- onKeyUp?: (...args: any[]) => any;
12
- onMouseOver?: (...args: any[]) => any;
15
+ /**
16
+ * whether the menu item is selected or not (must be accompanied by an `onSelect` prop)
17
+ */
18
+ selected?: boolean;
19
+ /**
20
+ * when used with the `selected` prop, the component will not control its own state
21
+ */
22
+ onSelect?: OnMenuItemSelect;
23
+ onClick?: (e: React.MouseEvent) => void;
24
+ onKeyDown?: (e: React.KeyboardEvent) => void;
25
+ onKeyUp?: (e: React.KeyboardEvent) => void;
26
+ onMouseOver?: (e: React.MouseEvent, args: MenuItem) => void;
27
+ /**
28
+ * the id of the element that the menu item will act upon
29
+ */
13
30
  controls?: string;
14
31
  disabled?: boolean;
32
+ /**
33
+ * the element type to render as (will default to `<a>` if href is provided)
34
+ */
15
35
  as?: AsElementType;
16
36
  type?: 'button' | 'checkbox' | 'radio' | 'flyout';
17
37
  value?: string | number;
@@ -23,6 +43,9 @@ declare type MenuItemProps = MenuItemOwnProps & WithStyleProps<MenuItemTheme, Me
23
43
  declare type MenuItemStyle = ComponentStyle<'menuItem' | 'icon' | 'label'>;
24
44
  declare const propTypes: PropValidators<PropKeys>;
25
45
  declare const allowedProps: AllowedPropKeys;
26
- export type { MenuItemProps, MenuItemStyle };
46
+ declare type MenuItemState = {
47
+ selected: boolean;
48
+ };
49
+ export type { MenuItemProps, MenuItemStyle, MenuItemState, OnMenuItemSelect };
27
50
  export { propTypes, allowedProps };
28
51
  //# sourceMappingURL=props.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../src/Menu/MenuItem/props.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACb,mBAAmB,EACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1E,aAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IAClC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IACjC,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IACnC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IACjC,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,EAAE,CAAC,EAAE,aAAa,CAAA;IAClB,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAA;IACjD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,aAAK,QAAQ,GAAG,MAAM,gBAAgB,CAAA;AAEtC,aAAK,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;AAEhD,aAAK,aAAa,GAAG,gBAAgB,GACnC,cAAc,CAAC,aAAa,EAAE,aAAa,CAAC,GAC5C,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;AAEvC,aAAK,aAAa,GAAG,cAAc,CAAC,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;AAElE,QAAA,MAAM,SAAS,EAAE,cAAc,CAAC,QAAQ,CAiCvC,CAAA;AAED,QAAA,MAAM,YAAY,EAAE,eAenB,CAAA;AAED,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../src/Menu/MenuItem/props.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,QAAQ,MAAM,aAAa,CAAA;AAGlC,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACb,mBAAmB,EACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1E,aAAK,gBAAgB,GAAG,CACtB,CAAC,EAAE,KAAK,CAAC,UAAU,EACnB,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAChC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,EACtC,IAAI,EAAE,QAAQ,KACX,IAAI,CAAA;AAET,aAAK,gBAAgB,GAAG;IACtB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAA;IAC3B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAA;IACvC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAA;IAC5C,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAA;IAC1C,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,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,EAAE,CAAC,EAAE,aAAa,CAAA;IAClB,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAA;IACjD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,aAAK,QAAQ,GAAG,MAAM,gBAAgB,CAAA;AAEtC,aAAK,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;AAEhD,aAAK,aAAa,GAAG,gBAAgB,GACnC,cAAc,CAAC,aAAa,EAAE,aAAa,CAAC,GAC5C,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;AAEvC,aAAK,aAAa,GAAG,cAAc,CAAC,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;AAElE,QAAA,MAAM,SAAS,EAAE,cAAc,CAAC,QAAQ,CAevC,CAAA;AAED,QAAA,MAAM,YAAY,EAAE,eAenB,CAAA;AACD,aAAK,aAAa,GAAG;IACnB,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AACD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAA;AAC7E,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA"}