@launchpad-ui/menu 0.3.7 → 0.4.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.
package/dist/index.es.js CHANGED
@@ -5,29 +5,34 @@ import * as React from "react";
5
5
  import cx from "clsx";
6
6
  import { forwardRef } from "react";
7
7
  import "./styles/Menu.css";
8
- var MenuBase = forwardRef(({ children, size, isVirtual, ...props }, ref) => {
9
- const classes = cx("Menu", {
10
- "Menu--isVirtual": isVirtual,
11
- [`MenuSize--${size}`]: size
12
- });
13
- return /* @__PURE__ */ React.createElement("div", {
14
- ...props,
15
- role: "menu",
16
- className: classes,
17
- ref
18
- }, children);
19
- });
8
+ import { jsx } from "react/jsx-runtime";
9
+ var MenuBase = forwardRef(
10
+ ({ children, size, isVirtual, ...props }, ref) => {
11
+ const classes = cx("Menu", {
12
+ "Menu--isVirtual": isVirtual,
13
+ [`MenuSize--${size}`]: size
14
+ });
15
+ return /* @__PURE__ */ jsx("div", {
16
+ ...props,
17
+ role: "menu",
18
+ className: classes,
19
+ ref,
20
+ children
21
+ });
22
+ }
23
+ );
20
24
  MenuBase.displayName = "MenuBase";
21
25
 
22
26
  // src/MenuDivider.tsx
23
27
  import { useSeparator } from "@react-aria/separator";
24
28
  import "./styles/Menu.css";
29
+ import { jsx as jsx2 } from "react/jsx-runtime";
25
30
  var MenuDivider = ({ elementType = "div", orientation, innerRef }) => {
26
31
  const { separatorProps } = useSeparator({
27
32
  orientation,
28
33
  elementType
29
34
  });
30
- return /* @__PURE__ */ React.createElement("div", {
35
+ return /* @__PURE__ */ jsx2("div", {
31
36
  ...separatorProps,
32
37
  ref: innerRef,
33
38
  className: "Menu-divider"
@@ -42,6 +47,7 @@ import { FocusRing } from "@react-aria/focus";
42
47
  import cx2 from "clsx";
43
48
  import { Link } from "react-router-dom";
44
49
  import "./styles/Menu.css";
50
+ import { Fragment, jsx as jsx3, jsxs } from "react/jsx-runtime";
45
51
  var defaultElement = "button";
46
52
  var MenuItem = ({
47
53
  ...props
@@ -65,28 +71,43 @@ var MenuItem = ({
65
71
  ...rest
66
72
  } = props;
67
73
  const Component = component || (asChild ? Slot : defaultElement);
68
- const renderedItem = /* @__PURE__ */ React.createElement(FocusRing, {
69
- focusRingClass: "has-focus"
70
- }, /* @__PURE__ */ React.createElement(Component, {
71
- ...rest,
72
- disabled,
73
- "aria-disabled": disabled ? disabled : void 0,
74
- className: cx2("Menu-item", className, { "is-highlighted": isHighlighted }, { "Menu-item--nested": nested }, { "Menu-item--header": groupHeader }),
75
- role,
76
- onKeyDown
77
- }, asChild ? children : /* @__PURE__ */ React.createElement(React.Fragment, null, Icon && /* @__PURE__ */ React.createElement("span", {
78
- className: "Menu-item-icon"
79
- }, /* @__PURE__ */ React.createElement(Icon, {
80
- size: IconSize.SMALL
81
- })), children)));
74
+ const renderedItem = /* @__PURE__ */ jsx3(FocusRing, {
75
+ focusRingClass: "has-focus",
76
+ children: /* @__PURE__ */ jsx3(Component, {
77
+ ...rest,
78
+ disabled,
79
+ "aria-disabled": disabled ? disabled : void 0,
80
+ className: cx2(
81
+ "Menu-item",
82
+ className,
83
+ { "is-highlighted": isHighlighted },
84
+ { "Menu-item--nested": nested },
85
+ { "Menu-item--header": groupHeader }
86
+ ),
87
+ role,
88
+ onKeyDown,
89
+ children: asChild ? children : /* @__PURE__ */ jsxs(Fragment, {
90
+ children: [
91
+ Icon && /* @__PURE__ */ jsx3("span", {
92
+ className: "Menu-item-icon",
93
+ children: /* @__PURE__ */ jsx3(Icon, {
94
+ size: IconSize.SMALL
95
+ })
96
+ }),
97
+ children
98
+ ]
99
+ })
100
+ })
101
+ });
82
102
  if (tooltip) {
83
- return /* @__PURE__ */ React.createElement(Tooltip, {
103
+ return /* @__PURE__ */ jsx3(Tooltip, {
84
104
  content: tooltip,
85
105
  rootElementStyle: { display: "block" },
86
106
  allowBoundaryElementOverflow: true,
87
107
  placement: tooltipPlacement ? tooltipPlacement : "bottom",
88
- ...tooltipOptions || {}
89
- }, renderedItem);
108
+ ...tooltipOptions || {},
109
+ children: renderedItem
110
+ });
90
111
  }
91
112
  return renderedItem;
92
113
  };
@@ -106,40 +127,45 @@ var MenuItemLink = ({
106
127
  rel: newTab ? "noopener noreferrer" : void 0,
107
128
  target: newTab ? "_blank" : void 0
108
129
  };
109
- return /* @__PURE__ */ React.createElement(MenuItem, {
110
- ...finalProps
111
- }, children);
130
+ return /* @__PURE__ */ jsx3(MenuItem, {
131
+ ...finalProps,
132
+ children
133
+ });
112
134
  };
113
135
 
114
136
  // src/MenuItemList.tsx
115
137
  import { forwardRef as forwardRef2 } from "react";
116
138
  import "./styles/Menu.css";
117
- var MenuItemList = forwardRef2(({ children, ...rest }, ref) => /* @__PURE__ */ React.createElement("div", {
139
+ import { jsx as jsx4 } from "react/jsx-runtime";
140
+ var MenuItemList = forwardRef2(({ children, ...rest }, ref) => /* @__PURE__ */ jsx4("div", {
118
141
  ...rest,
119
142
  ref,
120
143
  "data-test-id": "menu-item-list",
121
- className: "Menu-item-list"
122
- }, children));
144
+ className: "Menu-item-list",
145
+ children
146
+ }));
123
147
  MenuItemList.displayName = "MenuItemList";
124
148
 
125
149
  // src/MenuSearch.tsx
126
150
  import { TextField } from "@launchpad-ui/form";
127
151
  import { forwardRef as forwardRef3 } from "react";
128
152
  import "./styles/Menu.css";
153
+ import { jsx as jsx5 } from "react/jsx-runtime";
129
154
  var MenuSearch = forwardRef3((props, ref) => {
130
155
  const { ariaLabel, placeholder, ...finalProps } = props;
131
- return /* @__PURE__ */ React.createElement("div", {
132
- className: "Menu-search"
133
- }, /* @__PURE__ */ React.createElement(TextField, {
134
- ...finalProps,
135
- ref,
136
- className: "Menu-search-input",
137
- tiny: true,
138
- type: "search",
139
- autoComplete: "off",
140
- placeholder,
141
- "aria-label": ariaLabel || "Search"
142
- }));
156
+ return /* @__PURE__ */ jsx5("div", {
157
+ className: "Menu-search",
158
+ children: /* @__PURE__ */ jsx5(TextField, {
159
+ ...finalProps,
160
+ ref,
161
+ className: "Menu-search-input",
162
+ tiny: true,
163
+ type: "search",
164
+ autoComplete: "off",
165
+ placeholder,
166
+ "aria-label": ariaLabel || "Search"
167
+ })
168
+ });
143
169
  });
144
170
  MenuSearch.displayName = "MenuSearch";
145
171
 
@@ -169,6 +195,7 @@ var chainEventHandlers = (...handlers) => (event) => {
169
195
  };
170
196
 
171
197
  // src/Menu.tsx
198
+ import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs2 } from "react/jsx-runtime";
172
199
  var Menu = (props) => {
173
200
  const {
174
201
  children,
@@ -207,65 +234,76 @@ var Menu = (props) => {
207
234
  });
208
235
  return { items: elements, searchElement: searchElem };
209
236
  }
210
- return childrenProps.reduce(({ items, searchElement }, child) => {
211
- switch (child.type) {
212
- case MenuSearch:
213
- return {
214
- items,
215
- searchElement: cloneElement(child, {
216
- onKeyDown: (e) => handleKeyboardInteractions(e, {
217
- handleDown: handleArrowDown,
218
- handleUp: handleArrowUp
219
- })
220
- })
221
- };
222
- case MenuItem:
223
- case MenuItemLink:
224
- return {
225
- items: items.concat(child.props.disabled ? cloneElement(child, {
226
- onClick: () => void 0,
227
- onKeyDown: () => void 0,
228
- tabIndex: -1,
229
- disabled: true
230
- }) : cloneElement(child, {
231
- className: cx3(child.props.className, menuItemClassName),
232
- item: child.props.item ?? items.length,
233
- onClick: chainEventHandlers(child.props.onClick, () => {
234
- onSelect?.(child.props.item ?? items.length);
235
- }),
236
- onKeyDown: (e) => handleKeyboardInteractions(e, {
237
- handleDown: handleArrowDown,
238
- handleUp: handleArrowUp
237
+ return childrenProps.reduce(
238
+ ({ items, searchElement }, child) => {
239
+ switch (child.type) {
240
+ case MenuSearch:
241
+ return {
242
+ items,
243
+ searchElement: cloneElement(child, {
244
+ onKeyDown: (e) => handleKeyboardInteractions(e, {
245
+ handleDown: handleArrowDown,
246
+ handleUp: handleArrowUp
247
+ })
239
248
  })
240
- })),
241
- searchElement
242
- };
243
- case MenuDivider:
244
- return { items: items.concat(child), searchElement };
245
- default:
246
- return { items, searchElement };
247
- }
248
- }, { items: [], searchElement: null });
249
+ };
250
+ case MenuItem:
251
+ case MenuItemLink:
252
+ return {
253
+ items: items.concat(
254
+ child.props.disabled ? cloneElement(child, {
255
+ onClick: () => void 0,
256
+ onKeyDown: () => void 0,
257
+ tabIndex: -1,
258
+ disabled: true
259
+ }) : cloneElement(child, {
260
+ className: cx3(child.props.className, menuItemClassName),
261
+ item: child.props.item ?? items.length,
262
+ onClick: chainEventHandlers(child.props.onClick, () => {
263
+ onSelect?.(child.props.item ?? items.length);
264
+ }),
265
+ onKeyDown: (e) => handleKeyboardInteractions(e, {
266
+ handleDown: handleArrowDown,
267
+ handleUp: handleArrowUp
268
+ })
269
+ })
270
+ ),
271
+ searchElement
272
+ };
273
+ case MenuDivider:
274
+ return { items: items.concat(child), searchElement };
275
+ default:
276
+ return { items, searchElement };
277
+ }
278
+ },
279
+ { items: [], searchElement: null }
280
+ );
249
281
  }, [children, enableVirtualization, menuItemClassName, handleArrowDown, handleArrowUp, onSelect]);
250
282
  if (enableVirtualization) {
251
- return /* @__PURE__ */ React.createElement(MenuBase, {
283
+ return /* @__PURE__ */ jsx6(MenuBase, {
252
284
  isVirtual: true,
253
- size
254
- }, /* @__PURE__ */ React.createElement(ItemVirtualizer, {
255
- items: Children.toArray(reduceItems.items),
256
- searchElement: reduceItems.searchElement,
257
- overscan,
258
- menuItemClassName,
259
- onSelect,
260
- itemHeight,
261
- focusManager
262
- }));
285
+ size,
286
+ children: /* @__PURE__ */ jsx6(ItemVirtualizer, {
287
+ items: Children.toArray(reduceItems.items),
288
+ searchElement: reduceItems.searchElement,
289
+ overscan,
290
+ menuItemClassName,
291
+ onSelect,
292
+ itemHeight,
293
+ focusManager
294
+ })
295
+ });
263
296
  }
264
- return /* @__PURE__ */ React.createElement(MenuBase, {
265
- size
266
- }, reduceItems.searchElement, /* @__PURE__ */ React.createElement(MenuItemList, {
267
- role: "presentation"
268
- }, reduceItems.items));
297
+ return /* @__PURE__ */ jsxs2(MenuBase, {
298
+ size,
299
+ children: [
300
+ reduceItems.searchElement,
301
+ /* @__PURE__ */ jsx6(MenuItemList, {
302
+ role: "presentation",
303
+ children: reduceItems.items
304
+ })
305
+ ]
306
+ });
269
307
  };
270
308
  var ItemVirtualizer = (props) => {
271
309
  const {
@@ -294,63 +332,72 @@ var ItemVirtualizer = (props) => {
294
332
  rowVirtualizer.scrollToIndex(0);
295
333
  searchRef.current?.focus?.();
296
334
  }, [rowVirtualizer]);
297
- const focusMenuItem = useCallback((index) => {
298
- rowVirtualizer.scrollToIndex(index);
299
- setNextFocusValue(index);
300
- }, [rowVirtualizer]);
301
- const handleKeyboardFocusInteraction = useCallback((direction) => {
302
- if (focusedItemIndex.current === null || focusedItemIndex.current === void 0) {
303
- return;
304
- }
305
- const nextIndex = direction === "next" ? focusedItemIndex.current + 1 : focusedItemIndex.current - 1;
306
- const shouldWrap = direction === "next" && focusedItemIndex.current === lastVirtualItemIndex || direction === "previous" && focusedItemIndex.current === 0;
307
- if (shouldWrap) {
308
- if (hasSearch) {
309
- focusSearchBar();
310
- } else {
311
- focusMenuItem(direction === "next" ? 0 : lastVirtualItemIndex);
335
+ const focusMenuItem = useCallback(
336
+ (index) => {
337
+ rowVirtualizer.scrollToIndex(index);
338
+ setNextFocusValue(index);
339
+ },
340
+ [rowVirtualizer]
341
+ );
342
+ const handleKeyboardFocusInteraction = useCallback(
343
+ (direction) => {
344
+ if (focusedItemIndex.current === null || focusedItemIndex.current === void 0) {
345
+ return;
312
346
  }
313
- return;
314
- }
315
- switch (direction) {
316
- case "next":
317
- rowVirtualizer.scrollToIndex(nextIndex);
318
- focusManager.focusNext();
319
- break;
320
- case "previous":
321
- rowVirtualizer.scrollToIndex(nextIndex);
322
- focusManager.focusPrevious();
323
- break;
324
- default:
325
- break;
326
- }
327
- }, [focusManager, focusMenuItem, focusSearchBar, hasSearch, lastVirtualItemIndex, rowVirtualizer]);
328
- const getItemProps = useCallback((itemElem, index) => {
329
- const childProps = itemElem.props;
330
- switch (itemElem.type) {
331
- case MenuItem:
332
- case MenuItemLink:
333
- return {
334
- className: cx3(childProps.className, menuItemClassName),
335
- onKeyDown: childProps.disabled ? () => void 0 : (e) => handleKeyboardFocusKeydown(e, {
336
- handleFocusBackward: handleKeyboardFocusInteraction,
337
- handleFocusForward: handleKeyboardFocusInteraction
338
- }),
339
- onFocus: chainEventHandlers(childProps.onFocus, () => {
340
- focusedItemIndex.current = index;
341
- }),
342
- id: createItemId(index, menuId.current),
343
- onBlur: chainEventHandlers(childProps.onBlur, () => {
344
- focusedItemIndex.current = null;
345
- }),
346
- onClick: childProps.disabled ? () => void 0 : chainEventHandlers(childProps.onClick, () => {
347
- onSelect?.(childProps.item);
348
- })
349
- };
350
- default:
351
- return {};
352
- }
353
- }, [handleKeyboardFocusInteraction, menuItemClassName, onSelect]);
347
+ const nextIndex = direction === "next" ? focusedItemIndex.current + 1 : focusedItemIndex.current - 1;
348
+ const shouldWrap = direction === "next" && focusedItemIndex.current === lastVirtualItemIndex || direction === "previous" && focusedItemIndex.current === 0;
349
+ if (shouldWrap) {
350
+ if (hasSearch) {
351
+ focusSearchBar();
352
+ } else {
353
+ focusMenuItem(direction === "next" ? 0 : lastVirtualItemIndex);
354
+ }
355
+ return;
356
+ }
357
+ switch (direction) {
358
+ case "next":
359
+ rowVirtualizer.scrollToIndex(nextIndex);
360
+ focusManager.focusNext();
361
+ break;
362
+ case "previous":
363
+ rowVirtualizer.scrollToIndex(nextIndex);
364
+ focusManager.focusPrevious();
365
+ break;
366
+ default:
367
+ break;
368
+ }
369
+ },
370
+ [focusManager, focusMenuItem, focusSearchBar, hasSearch, lastVirtualItemIndex, rowVirtualizer]
371
+ );
372
+ const getItemProps = useCallback(
373
+ (itemElem, index) => {
374
+ const childProps = itemElem.props;
375
+ switch (itemElem.type) {
376
+ case MenuItem:
377
+ case MenuItemLink:
378
+ return {
379
+ className: cx3(childProps.className, menuItemClassName),
380
+ onKeyDown: childProps.disabled ? () => void 0 : (e) => handleKeyboardFocusKeydown(e, {
381
+ handleFocusBackward: handleKeyboardFocusInteraction,
382
+ handleFocusForward: handleKeyboardFocusInteraction
383
+ }),
384
+ onFocus: chainEventHandlers(childProps.onFocus, () => {
385
+ focusedItemIndex.current = index;
386
+ }),
387
+ id: createItemId(index, menuId.current),
388
+ onBlur: chainEventHandlers(childProps.onBlur, () => {
389
+ focusedItemIndex.current = null;
390
+ }),
391
+ onClick: childProps.disabled ? () => void 0 : chainEventHandlers(childProps.onClick, () => {
392
+ onSelect?.(childProps.item);
393
+ })
394
+ };
395
+ default:
396
+ return {};
397
+ }
398
+ },
399
+ [handleKeyboardFocusInteraction, menuItemClassName, onSelect]
400
+ );
354
401
  useEffect(() => {
355
402
  if (nextFocusValue !== null) {
356
403
  requestAnimationFrame(() => {
@@ -372,38 +419,51 @@ var ItemVirtualizer = (props) => {
372
419
  }
373
420
  }
374
421
  };
375
- const renderSearch = useMemo(() => searchElement ? cloneElement(searchElement, {
376
- onKeyDown: (e) => handleKeyboardFocusKeydown(e, {
377
- handleFocusBackward: () => focusMenuItem(lastVirtualItemIndex),
378
- handleFocusForward: () => focusMenuItem(0)
379
- }),
380
- ref: searchRef
381
- }) : null, [searchElement, lastVirtualItemIndex, focusMenuItem]);
382
- const renderItems = useMemo(() => rowVirtualizer.virtualItems.map((virtualRow) => {
383
- if (!items) {
384
- return null;
385
- }
386
- const elem = items[virtualRow.index];
387
- return /* @__PURE__ */ React.createElement("div", {
388
- key: virtualRow.index,
389
- ref: elem.type !== MenuItem || elem.type !== MenuItemLink ? virtualRow.measureRef : void 0,
390
- role: "presentation",
391
- className: cx3("VirtualMenu-item"),
392
- style: {
393
- transform: `translateY(${virtualRow.start}px)`
422
+ const renderSearch = useMemo(
423
+ () => searchElement ? cloneElement(searchElement, {
424
+ onKeyDown: (e) => handleKeyboardFocusKeydown(e, {
425
+ handleFocusBackward: () => focusMenuItem(lastVirtualItemIndex),
426
+ handleFocusForward: () => focusMenuItem(0)
427
+ }),
428
+ ref: searchRef
429
+ }) : null,
430
+ [searchElement, lastVirtualItemIndex, focusMenuItem]
431
+ );
432
+ const renderItems = useMemo(
433
+ () => rowVirtualizer.virtualItems.map((virtualRow) => {
434
+ if (!items) {
435
+ return null;
394
436
  }
395
- }, cloneElement(elem, getItemProps(elem, virtualRow.index)));
396
- }), [rowVirtualizer.virtualItems, items, getItemProps]);
397
- return /* @__PURE__ */ React.createElement(React.Fragment, null, renderSearch, /* @__PURE__ */ React.createElement(MenuItemList, {
398
- ref: parentRef,
399
- role: "presentation"
400
- }, /* @__PURE__ */ React.createElement("div", {
401
- role: "presentation",
402
- className: "VirtualMenu-item-list",
403
- style: {
404
- height: `${rowVirtualizer.totalSize}px`
405
- }
406
- }, renderItems)));
437
+ const elem = items[virtualRow.index];
438
+ return /* @__PURE__ */ jsx6("div", {
439
+ ref: elem.type !== MenuItem || elem.type !== MenuItemLink ? virtualRow.measureRef : void 0,
440
+ role: "presentation",
441
+ className: cx3("VirtualMenu-item"),
442
+ style: {
443
+ transform: `translateY(${virtualRow.start}px)`
444
+ },
445
+ children: cloneElement(elem, getItemProps(elem, virtualRow.index))
446
+ }, virtualRow.index);
447
+ }),
448
+ [rowVirtualizer.virtualItems, items, getItemProps]
449
+ );
450
+ return /* @__PURE__ */ jsxs2(Fragment2, {
451
+ children: [
452
+ renderSearch,
453
+ /* @__PURE__ */ jsx6(MenuItemList, {
454
+ ref: parentRef,
455
+ role: "presentation",
456
+ children: /* @__PURE__ */ jsx6("div", {
457
+ role: "presentation",
458
+ className: "VirtualMenu-item-list",
459
+ style: {
460
+ height: `${rowVirtualizer.totalSize}px`
461
+ },
462
+ children: renderItems
463
+ })
464
+ })
465
+ ]
466
+ });
407
467
  };
408
468
 
409
469
  // src/types.ts
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../scripts/react-shim.js", "../src/MenuBase.tsx", "../src/MenuDivider.tsx", "../src/MenuItem.tsx", "../src/MenuItemList.tsx", "../src/MenuSearch.tsx", "../src/Menu.tsx", "../src/utils.ts", "../src/types.ts"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import type { MenuSize } from './types';\n\nimport cx from 'clsx';\nimport { forwardRef } from 'react';\n\nimport './styles/Menu.css';\n\ntype MenuBaseProps = React.ComponentPropsWithRef<'div'> & {\n isVirtual?: boolean;\n size?: MenuSize;\n};\n\nconst MenuBase = forwardRef<HTMLDivElement, MenuBaseProps>(\n ({ children, size, isVirtual, ...props }, ref) => {\n const classes = cx('Menu', {\n 'Menu--isVirtual': isVirtual,\n [`MenuSize--${size}`]: size,\n });\n\n return (\n <div {...props} role=\"menu\" className={classes} ref={ref}>\n {children}\n </div>\n );\n }\n);\n\nMenuBase.displayName = 'MenuBase';\n\nexport { MenuBase };\nexport type { MenuBaseProps };\n", "import type { SeparatorProps } from '@react-aria/separator';\n\nimport { useSeparator } from '@react-aria/separator';\n\nimport './styles/Menu.css';\n\ntype MenuDividerProps = SeparatorProps & {\n innerRef?: React.RefObject<HTMLDivElement>;\n};\n\nconst MenuDivider = ({ elementType = 'div', orientation, innerRef }: MenuDividerProps) => {\n const { separatorProps } = useSeparator({\n orientation,\n elementType,\n });\n\n return <div {...separatorProps} ref={innerRef} className=\"Menu-divider\" />;\n};\n\nexport { MenuDivider };\nexport type { MenuDividerProps };\n", "import type { Icon } from '@launchpad-ui/icons';\nimport type { PopoverPlacement } from '@launchpad-ui/popover';\n\nimport { IconSize } from '@launchpad-ui/icons';\nimport { Tooltip } from '@launchpad-ui/tooltip';\nimport { Slot } from '@radix-ui/react-slot';\nimport { FocusRing } from '@react-aria/focus';\nimport cx from 'clsx';\nimport { Link } from 'react-router-dom';\n\nimport './styles/Menu.css';\n\n// Merge two types and get rid of overlapping definitions\ntype Merge<T, U> = Omit<T, keyof U> & U;\n\ntype PropsWithComponent<P, T extends React.ElementType> = P & { component?: T };\n\ntype PolymorphicPropsWithRef<P, T extends React.ElementType> = Merge<\n T extends keyof JSX.IntrinsicElements\n ? React.PropsWithRef<JSX.IntrinsicElements[T]>\n : React.ComponentPropsWithRef<T>,\n PropsWithComponent<P, T>\n>;\n\ntype MenuItemOwnProps = {\n isHighlighted?: boolean;\n icon?: typeof Icon | null;\n disabled?: boolean;\n nested?: boolean;\n groupHeader?: boolean;\n tooltip?: string | React.ReactElement;\n tooltipOptions?: typeof Tooltip;\n tooltipPlacement?: PopoverPlacement;\n asChild?: boolean;\n};\n\nconst defaultElement = 'button';\n\ntype MenuItemProps<\n P,\n T extends React.ElementType = typeof defaultElement\n> = PolymorphicPropsWithRef<\n | (MenuItemOwnProps & {\n item: P; // Infer the type if it is included\n })\n | (MenuItemOwnProps & {\n item?: undefined;\n }),\n T\n>;\n\nconst MenuItem = <P, T extends React.ElementType = typeof defaultElement>({\n ...props\n}: MenuItemProps<P, T>) => {\n const {\n // TODO: remove component prop once we migrate over to asChild format\n component,\n children,\n isHighlighted,\n icon: Icon,\n nested,\n groupHeader,\n item,\n disabled,\n className,\n tooltip,\n role = 'menuitem',\n tooltipPlacement,\n onKeyDown,\n tooltipOptions,\n asChild,\n ...rest\n } = props;\n\n const Component: React.ElementType = component || (asChild ? Slot : defaultElement);\n\n const renderedItem = (\n <FocusRing focusRingClass=\"has-focus\">\n <Component\n {...rest}\n disabled={disabled}\n aria-disabled={disabled ? disabled : undefined}\n className={cx(\n 'Menu-item',\n className,\n { 'is-highlighted': isHighlighted },\n { 'Menu-item--nested': nested },\n { 'Menu-item--header': groupHeader }\n )}\n role={role}\n onKeyDown={onKeyDown}\n >\n {asChild ? (\n children\n ) : (\n <>\n {Icon && (\n <span className=\"Menu-item-icon\">\n <Icon size={IconSize.SMALL} />\n </span>\n )}\n {children}\n </>\n )}\n </Component>\n </FocusRing>\n );\n\n if (tooltip) {\n return (\n <Tooltip\n content={tooltip}\n rootElementStyle={{ display: 'block' }}\n allowBoundaryElementOverflow\n placement={tooltipPlacement ? tooltipPlacement : 'bottom'}\n {...(tooltipOptions || {})}\n >\n {renderedItem}\n </Tooltip>\n );\n }\n\n return renderedItem;\n};\n\ntype MenuItemLinkOwnProps = {\n disabled?: boolean;\n useHistory?: boolean;\n newTab?: boolean;\n};\n\ntype MenuItemLinkProps<P, T extends React.ElementType = typeof Link> =\n | Merge<Omit<MenuItemProps<P, T>, 'component' | 'item'>, MenuItemLinkOwnProps> &\n (\n | {\n item?: undefined;\n }\n | {\n item: P;\n }\n );\n\n// By default, this is a Link component whenever useHistory is\n// explicitly not false\n// TODO: deprecate this component\nconst MenuItemLink = <P, T extends React.ElementType = typeof Link>({\n to,\n disabled = false,\n useHistory = true,\n newTab = false,\n children,\n ...props\n}: MenuItemLinkProps<P, T>) => {\n const finalProps = {\n ...props,\n disabled,\n component: useHistory ? Link : ('a' as const),\n [useHistory ? 'to' : 'href']: disabled ? '' : to,\n rel: newTab ? 'noopener noreferrer' : undefined,\n target: newTab ? '_blank' : undefined,\n };\n\n // Ideally if this item is disabled, it should be a button rather\n // than a link https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-is-valid.md\n\n return <MenuItem {...finalProps}>{children}</MenuItem>;\n};\n\nexport { MenuItem, MenuItemLink };\nexport type { MenuItemProps, MenuItemLinkProps };\n", "import { forwardRef } from 'react';\n\nimport './styles/Menu.css';\n\ntype MenuItemListProps = Omit<React.ComponentPropsWithRef<'div'>, 'className'>;\n\nconst MenuItemList = forwardRef<HTMLDivElement, MenuItemListProps>(({ children, ...rest }, ref) => (\n <div {...rest} ref={ref} data-test-id=\"menu-item-list\" className=\"Menu-item-list\">\n {children}\n </div>\n));\n\nMenuItemList.displayName = 'MenuItemList';\n\nexport { MenuItemList };\nexport type { MenuItemListProps };\n", "import type { ChangeEvent } from 'react';\n\nimport { TextField } from '@launchpad-ui/form';\nimport { forwardRef } from 'react';\n\nimport './styles/Menu.css';\n\ntype MenuSearchProps = {\n ariaLabel?: string;\n value?: string;\n placeholder?: string;\n onChange?(event: ChangeEvent<HTMLInputElement>): void;\n};\n\nconst MenuSearch = forwardRef<HTMLInputElement, MenuSearchProps>((props, ref) => {\n const { ariaLabel, placeholder, ...finalProps } = props;\n\n return (\n <div className=\"Menu-search\">\n <TextField\n {...finalProps}\n ref={ref}\n className=\"Menu-search-input\"\n tiny\n type=\"search\"\n autoComplete=\"off\"\n placeholder={placeholder}\n aria-label={ariaLabel || 'Search'}\n />\n </div>\n );\n});\n\nMenuSearch.displayName = 'MenuSearch';\n\nexport { MenuSearch };\nexport type { MenuSearchProps };\n", "import type { MenuItemProps } from './MenuItem';\nimport type { MenuSize } from './types';\nimport type { FocusManager } from '@react-aria/focus';\nimport type { KeyboardEvent, ReactElement } from 'react';\n\nimport { useFocusManager } from '@react-aria/focus';\nimport cx from 'clsx';\nimport { Children, cloneElement, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useVirtual } from 'react-virtual';\nimport { v4 } from 'uuid';\n\nimport { MenuBase } from './MenuBase';\nimport { MenuDivider } from './MenuDivider';\nimport { MenuItem, MenuItemLink } from './MenuItem';\nimport { MenuItemList } from './MenuItemList';\nimport { MenuSearch } from './MenuSearch';\nimport {\n chainEventHandlers,\n createItemId,\n getNodeForIndex,\n handleKeyboardInteractions,\n} from './utils';\n\ntype ControlledMenuProps<T> = {\n children: React.ReactNode;\n onSelect?: (item: T) => void;\n /**\n * Menus items are rendered using react-virtual for\n * additional rendering performance.\n */\n enableVirtualization?: boolean;\n /**\n * Class name to be applied to all MenuItem and MenuItemLink components\n * in the menu.\n */\n menuItemClassName?: string;\n /**\n * Sets the width of the menu. This is especially useful when using virtual items\n * since the width cannot be automatically set by the widest element.\n */\n size?: MenuSize;\n /**\n * Sets the number out of elements rendered outside of the view window\n * when using virtualization\n */\n overscan?: number;\n /**\n * Sets the height for each menu item when using virtualization.\n *\n */\n itemHeight?: number;\n};\n\ntype MenuProps<T extends number | string> = ControlledMenuProps<T>;\n\nconst Menu = <T extends number | string>(props: MenuProps<T>) => {\n const {\n children,\n menuItemClassName,\n onSelect,\n enableVirtualization,\n itemHeight,\n size,\n overscan = 1,\n } = props;\n\n const focusManager = useFocusManager();\n\n const handleArrowDown = useCallback(() => {\n focusManager.focusNext({ wrap: true });\n }, [focusManager]);\n\n const handleArrowUp = useCallback(() => {\n focusManager.focusPrevious({ wrap: true });\n }, [focusManager]);\n\n const reduceItems = useMemo(() => {\n const childrenProps = Children.toArray(children);\n if (enableVirtualization) {\n // the virtualized menu has its own handlers and props\n let searchElem = null;\n let elements: ReactElement[] = [];\n (childrenProps as ReactElement[]).forEach((child: ReactElement) => {\n switch (child.type) {\n case MenuSearch:\n searchElem = child;\n break;\n case MenuItem:\n case MenuItemLink:\n case MenuDivider:\n elements = elements.concat(child);\n break;\n default:\n break;\n }\n });\n return { items: elements, searchElement: searchElem };\n }\n\n return (childrenProps as ReactElement[]).reduce(\n (\n { items, searchElement }: { items: ReactElement[]; searchElement: null | ReactElement },\n child\n ) => {\n switch (child.type) {\n case MenuSearch:\n return {\n items,\n searchElement: cloneElement(child, {\n onKeyDown: (e: KeyboardEvent) =>\n handleKeyboardInteractions(e, {\n handleDown: handleArrowDown,\n handleUp: handleArrowUp,\n }),\n }),\n };\n case MenuItem:\n case MenuItemLink:\n return {\n items: items.concat(\n child.props.disabled\n ? cloneElement(child, {\n onClick: () => undefined,\n onKeyDown: () => undefined,\n tabIndex: -1,\n disabled: true,\n })\n : cloneElement(child, {\n className: cx(child.props.className, menuItemClassName),\n item: child.props.item ?? items.length,\n // set focus on the first menu item if there is no search input, and set in the tab order\n onClick: chainEventHandlers(child.props.onClick, () => {\n onSelect?.(child.props.item ?? items.length);\n }),\n onKeyDown: (e: KeyboardEvent) =>\n handleKeyboardInteractions(e, {\n handleDown: handleArrowDown,\n handleUp: handleArrowUp,\n }),\n })\n ),\n searchElement,\n };\n case MenuDivider:\n return { items: items.concat(child), searchElement };\n default:\n return { items, searchElement };\n }\n },\n { items: [], searchElement: null }\n );\n }, [children, enableVirtualization, menuItemClassName, handleArrowDown, handleArrowUp, onSelect]);\n\n if (enableVirtualization) {\n return (\n <MenuBase isVirtual size={size}>\n <ItemVirtualizer<T>\n items={Children.toArray(reduceItems.items) as ReactElement[]}\n searchElement={reduceItems.searchElement}\n overscan={overscan}\n menuItemClassName={menuItemClassName}\n onSelect={onSelect}\n itemHeight={itemHeight}\n focusManager={focusManager}\n />\n </MenuBase>\n );\n }\n\n return (\n <MenuBase size={size}>\n {reduceItems.searchElement}\n <MenuItemList role=\"presentation\">{reduceItems.items}</MenuItemList>\n </MenuBase>\n );\n};\n\ntype ItemVirtualizerProps<T> = Omit<ControlledMenuProps<T>, 'children'> & {\n items: ReactElement[] | null;\n searchElement?: React.ReactElement | null;\n focusManager: FocusManager;\n};\n\nconst ItemVirtualizer = <T extends number | string>(props: ItemVirtualizerProps<T>) => {\n const {\n overscan,\n searchElement,\n itemHeight = 33,\n menuItemClassName,\n items: items,\n focusManager,\n onSelect,\n } = props;\n\n const menuId = useRef(`menu-ctrl-${v4()}`);\n\n const focusedItemIndex = useRef<number | null>(null);\n const parentRef = useRef<HTMLDivElement | null>(null);\n const searchRef = useRef<HTMLInputElement>();\n\n const [nextFocusValue, setNextFocusValue] = useState<number | null>(null);\n\n const hasSearch = !!searchElement;\n\n const lastVirtualItemIndex = items ? items.length - 1 : 0;\n\n const rowVirtualizer = useVirtual({\n size: items !== null ? items.length : 0,\n parentRef,\n estimateSize: useCallback(() => itemHeight, [itemHeight]),\n overscan,\n });\n\n const focusSearchBar = useCallback(() => {\n rowVirtualizer.scrollToIndex(0);\n searchRef.current?.focus?.();\n }, [rowVirtualizer]);\n\n /**\n * Scrolls to the menu item with the index provided and\n * then manually focuses it using a side effect in useEffect\n */\n const focusMenuItem = useCallback(\n (index: number) => {\n rowVirtualizer.scrollToIndex(index);\n setNextFocusValue(index);\n },\n [rowVirtualizer]\n );\n\n const handleKeyboardFocusInteraction = useCallback(\n (direction: 'next' | 'previous') => {\n if (focusedItemIndex.current === null || focusedItemIndex.current === undefined) {\n return;\n }\n const nextIndex =\n direction === 'next' ? focusedItemIndex.current + 1 : focusedItemIndex.current - 1;\n const shouldWrap =\n (direction === 'next' && focusedItemIndex.current === lastVirtualItemIndex) ||\n (direction === 'previous' && focusedItemIndex.current === 0);\n if (shouldWrap) {\n // we are at the end of the list so we will\n // scroll back to the beginning of the list\n if (hasSearch) {\n focusSearchBar();\n } else {\n // if at end, wrap to beginning, else focus last item\n focusMenuItem(direction === 'next' ? 0 : lastVirtualItemIndex);\n }\n return;\n }\n switch (direction) {\n case 'next':\n rowVirtualizer.scrollToIndex(nextIndex);\n focusManager.focusNext();\n break;\n case 'previous':\n rowVirtualizer.scrollToIndex(nextIndex);\n focusManager.focusPrevious();\n break;\n default:\n break;\n }\n },\n [focusManager, focusMenuItem, focusSearchBar, hasSearch, lastVirtualItemIndex, rowVirtualizer]\n );\n\n const getItemProps = useCallback(\n (itemElem: ReactElement, index: number) => {\n const childProps = itemElem.props as MenuItemProps<T>;\n switch (itemElem.type) {\n case MenuItem:\n case MenuItemLink:\n return {\n className: cx(childProps.className, menuItemClassName),\n // set focus on the first menu item if there is no search input, and set in the tab order\n onKeyDown: childProps.disabled\n ? () => undefined\n : (e: KeyboardEvent) =>\n handleKeyboardFocusKeydown(e, {\n handleFocusBackward: handleKeyboardFocusInteraction,\n handleFocusForward: handleKeyboardFocusInteraction,\n }),\n onFocus: chainEventHandlers(childProps.onFocus, () => {\n focusedItemIndex.current = index;\n }),\n id: createItemId(index, menuId.current),\n onBlur: chainEventHandlers(childProps.onBlur, () => {\n focusedItemIndex.current = null;\n }),\n onClick: childProps.disabled\n ? () => undefined\n : chainEventHandlers(childProps.onClick, () => {\n onSelect?.(childProps.item as T);\n }),\n } as MenuItemProps<T>;\n default:\n return {};\n }\n },\n [handleKeyboardFocusInteraction, menuItemClassName, onSelect]\n );\n\n useEffect(() => {\n if (nextFocusValue !== null) {\n requestAnimationFrame(() => {\n const element = getNodeForIndex(nextFocusValue, menuId.current);\n element?.focus();\n });\n setNextFocusValue(null);\n }\n }, [nextFocusValue]);\n\n /**\n * Calls handleFocusForward when the user is attempting to focus forward using\n * tab or arrow keys. Calls handleFocusBackward when the users wants to move backward.\n */\n const handleKeyboardFocusKeydown = (\n e: KeyboardEvent,\n callbacks: Record<\n 'handleFocusForward' | 'handleFocusBackward',\n (direction: 'next' | 'previous') => void\n >\n ) => {\n const keyOps = ['Tab', 'ArrowUp', 'ArrowDown'];\n if (keyOps.includes(e.key)) {\n e.preventDefault();\n e.stopPropagation();\n if ((e.key === 'Tab' && e.shiftKey) || e.key === 'ArrowUp') {\n callbacks.handleFocusBackward?.('previous');\n } else if (e.key === 'ArrowDown' || e.key === 'Tab') {\n callbacks.handleFocusForward?.('next');\n }\n }\n };\n\n const renderSearch = useMemo(\n () =>\n searchElement\n ? cloneElement(searchElement, {\n onKeyDown: (e: KeyboardEvent) =>\n handleKeyboardFocusKeydown(e, {\n handleFocusBackward: () => focusMenuItem(lastVirtualItemIndex),\n handleFocusForward: () => focusMenuItem(0),\n }),\n ref: searchRef,\n })\n : null,\n [searchElement, lastVirtualItemIndex, focusMenuItem]\n );\n\n const renderItems = useMemo(\n () =>\n rowVirtualizer.virtualItems.map((virtualRow) => {\n if (!items) {\n return null;\n }\n const elem = items[virtualRow.index];\n return (\n <div\n key={virtualRow.index}\n ref={\n elem.type !== MenuItem || elem.type !== MenuItemLink\n ? virtualRow.measureRef\n : undefined\n }\n role=\"presentation\"\n className={cx('VirtualMenu-item')}\n style={{\n transform: `translateY(${virtualRow.start}px)`,\n }}\n >\n {cloneElement(elem, getItemProps(elem, virtualRow.index))}\n </div>\n );\n }),\n [rowVirtualizer.virtualItems, items, getItemProps]\n );\n\n return (\n <>\n {renderSearch}\n <MenuItemList ref={parentRef} role=\"presentation\">\n <div\n role=\"presentation\"\n className=\"VirtualMenu-item-list\"\n style={{\n height: `${rowVirtualizer.totalSize}px`,\n }}\n >\n {renderItems}\n </div>\n </MenuItemList>\n </>\n );\n};\n\nexport { Menu, ItemVirtualizer };\nexport type { MenuProps, ItemVirtualizerProps };\n", "import type { EventHandler, KeyboardEvent, SyntheticEvent } from 'react';\n\nconst createItemId = (index: number, id: string) => `${id}-item-${index}`;\n\nconst getNodeForIndex = (index: number | null, menuId: string) =>\n index === null ? index : document.getElementById(createItemId(index, menuId));\n\nconst handleKeyboardInteractions = (\n event: React.KeyboardEvent,\n keyHandlers: Partial<\n Record<'handleUp' | 'handleDown' | 'handleEnter', (e: KeyboardEvent) => void>\n >\n) => {\n const ops = {\n ArrowUp: keyHandlers.handleUp,\n ArrowDown: keyHandlers.handleDown,\n Enter: keyHandlers.handleEnter,\n } as Record<string, (e: KeyboardEvent) => void | undefined>;\n\n if (ops[event.key]) {\n event.preventDefault();\n ops[event.key]?.call(globalThis, event);\n }\n};\n\nconst chainEventHandlers =\n (...handlers: Array<EventHandler<SyntheticEvent> | undefined>) =>\n (event: SyntheticEvent) => {\n handlers.forEach((h) => typeof h === 'function' && h(event));\n };\n\nexport { createItemId, getNodeForIndex, handleKeyboardInteractions, chainEventHandlers };\n", "enum MenuSize {\n SMALL = 'sm',\n MEDIUM = 'md',\n LARGE = 'lg',\n EXTRA_LARGE = 'xl',\n}\n\nexport { MenuSize };\n"],
5
- "mappings": "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",
6
- "names": []
5
+ "mappings": "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",
6
+ "names": ["jsx", "cx", "jsx", "forwardRef", "jsx", "forwardRef", "jsx", "cx", "Fragment", "jsx", "jsxs", "cx", "MenuSize"]
7
7
  }