@mongodb-js/compass-components 1.32.1 → 1.32.3

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 (169) hide show
  1. package/lib/components/actions/action-glyph.d.ts +11 -0
  2. package/lib/components/actions/action-glyph.d.ts.map +1 -0
  3. package/lib/components/actions/action-glyph.js +19 -0
  4. package/lib/components/actions/action-glyph.js.map +1 -0
  5. package/lib/components/actions/constants.d.ts +7 -0
  6. package/lib/components/actions/constants.d.ts.map +1 -0
  7. package/lib/components/actions/constants.js +9 -0
  8. package/lib/components/actions/constants.js.map +1 -0
  9. package/lib/components/actions/dropdown-menu-button.d.ts +19 -0
  10. package/lib/components/actions/dropdown-menu-button.d.ts.map +1 -0
  11. package/lib/components/actions/dropdown-menu-button.js +79 -0
  12. package/lib/components/actions/dropdown-menu-button.js.map +1 -0
  13. package/lib/components/actions/item-action-button.d.ts +4 -0
  14. package/lib/components/actions/item-action-button.d.ts.map +1 -0
  15. package/lib/components/actions/item-action-button.js +15 -0
  16. package/lib/components/actions/item-action-button.js.map +1 -0
  17. package/lib/components/actions/item-action-controls.d.ts +20 -0
  18. package/lib/components/actions/item-action-controls.d.ts.map +1 -0
  19. package/lib/components/actions/item-action-controls.js +52 -0
  20. package/lib/components/actions/item-action-controls.js.map +1 -0
  21. package/lib/components/actions/item-action-group.d.ts +19 -0
  22. package/lib/components/actions/item-action-group.d.ts.map +1 -0
  23. package/lib/components/actions/item-action-group.js +71 -0
  24. package/lib/components/actions/item-action-group.js.map +1 -0
  25. package/lib/components/actions/item-action-menu.d.ts +20 -0
  26. package/lib/components/actions/item-action-menu.d.ts.map +1 -0
  27. package/lib/components/actions/item-action-menu.js +86 -0
  28. package/lib/components/actions/item-action-menu.js.map +1 -0
  29. package/lib/components/actions/small-icon-button.d.ts +11 -0
  30. package/lib/components/actions/small-icon-button.d.ts.map +1 -0
  31. package/lib/components/actions/small-icon-button.js +66 -0
  32. package/lib/components/actions/small-icon-button.js.map +1 -0
  33. package/lib/components/actions/types.d.ts +32 -0
  34. package/lib/components/actions/types.d.ts.map +1 -0
  35. package/lib/components/actions/types.js +3 -0
  36. package/lib/components/actions/types.js.map +1 -0
  37. package/lib/components/actions/utils.d.ts +2 -0
  38. package/lib/components/actions/utils.d.ts.map +1 -0
  39. package/lib/components/actions/utils.js +8 -0
  40. package/lib/components/actions/utils.js.map +1 -0
  41. package/lib/components/combobox-with-custom-option.d.ts +1 -1
  42. package/lib/components/combobox-with-custom-option.d.ts.map +1 -1
  43. package/lib/components/combobox-with-custom-option.js +3 -3
  44. package/lib/components/combobox-with-custom-option.js.map +1 -1
  45. package/lib/components/document-list/element-actions.d.ts.map +1 -1
  46. package/lib/components/document-list/element-actions.js +1 -1
  47. package/lib/components/document-list/element-actions.js.map +1 -1
  48. package/lib/components/document-list/element-editors.d.ts.map +1 -1
  49. package/lib/components/document-list/element-editors.js +12 -5
  50. package/lib/components/document-list/element-editors.js.map +1 -1
  51. package/lib/components/document-list/element.d.ts.map +1 -1
  52. package/lib/components/document-list/element.js +10 -3
  53. package/lib/components/document-list/element.js.map +1 -1
  54. package/lib/components/feedback-popover.d.ts +2 -5
  55. package/lib/components/feedback-popover.d.ts.map +1 -1
  56. package/lib/components/feedback-popover.js +1 -5
  57. package/lib/components/feedback-popover.js.map +1 -1
  58. package/lib/components/file-input.js +3 -3
  59. package/lib/components/file-input.js.map +1 -1
  60. package/lib/components/guide-cue/guide-cue.d.ts +1 -2
  61. package/lib/components/guide-cue/guide-cue.d.ts.map +1 -1
  62. package/lib/components/guide-cue/guide-cue.js +1 -3
  63. package/lib/components/guide-cue/guide-cue.js.map +1 -1
  64. package/lib/components/interactive-popover.d.ts +4 -4
  65. package/lib/components/interactive-popover.d.ts.map +1 -1
  66. package/lib/components/interactive-popover.js +1 -1
  67. package/lib/components/interactive-popover.js.map +1 -1
  68. package/lib/components/leafygreen.d.ts +4 -54
  69. package/lib/components/leafygreen.d.ts.map +1 -1
  70. package/lib/components/leafygreen.js +7 -6
  71. package/lib/components/leafygreen.js.map +1 -1
  72. package/lib/components/links/link.d.ts +7 -7
  73. package/lib/components/tab-nav-bar.d.ts.map +1 -1
  74. package/lib/components/tab-nav-bar.js +8 -1
  75. package/lib/components/tab-nav-bar.js.map +1 -1
  76. package/lib/components/virtual-list.d.ts +3 -5
  77. package/lib/components/virtual-list.d.ts.map +1 -1
  78. package/lib/components/virtual-list.js +2 -2
  79. package/lib/components/virtual-list.js.map +1 -1
  80. package/lib/components/workspace-tabs/tab.d.ts +2 -3
  81. package/lib/components/workspace-tabs/tab.d.ts.map +1 -1
  82. package/lib/components/workspace-tabs/tab.js.map +1 -1
  83. package/lib/components/workspace-tabs/workspace-tabs.d.ts +2 -2
  84. package/lib/components/workspace-tabs/workspace-tabs.d.ts.map +1 -1
  85. package/lib/hooks/use-confirmation.d.ts +0 -1
  86. package/lib/hooks/use-confirmation.d.ts.map +1 -1
  87. package/lib/hooks/use-confirmation.js +0 -1
  88. package/lib/hooks/use-confirmation.js.map +1 -1
  89. package/lib/hooks/use-stacked-component.d.ts +1 -6
  90. package/lib/hooks/use-stacked-component.d.ts.map +1 -1
  91. package/lib/hooks/use-stacked-component.js +9 -28
  92. package/lib/hooks/use-stacked-component.js.map +1 -1
  93. package/lib/hooks/use-virtual-list-item-observer.d.ts +2 -4
  94. package/lib/hooks/use-virtual-list-item-observer.d.ts.map +1 -1
  95. package/lib/hooks/use-virtual-list-item-observer.js +1 -1
  96. package/lib/hooks/use-virtual-list-item-observer.js.map +1 -1
  97. package/lib/index.d.ts +9 -6
  98. package/lib/index.d.ts.map +1 -1
  99. package/lib/index.js +8 -9
  100. package/lib/index.js.map +1 -1
  101. package/package.json +47 -49
  102. package/lib/components/combobox/Chip.d.ts +0 -4
  103. package/lib/components/combobox/Chip.d.ts.map +0 -1
  104. package/lib/components/combobox/Chip.js +0 -230
  105. package/lib/components/combobox/Chip.js.map +0 -1
  106. package/lib/components/combobox/Combobox.d.ts +0 -48
  107. package/lib/components/combobox/Combobox.d.ts.map +0 -1
  108. package/lib/components/combobox/Combobox.js +0 -1029
  109. package/lib/components/combobox/Combobox.js.map +0 -1
  110. package/lib/components/combobox/Combobox.styles.d.ts +0 -53
  111. package/lib/components/combobox/Combobox.styles.d.ts.map +0 -1
  112. package/lib/components/combobox/Combobox.styles.js +0 -294
  113. package/lib/components/combobox/Combobox.styles.js.map +0 -1
  114. package/lib/components/combobox/Combobox.types.d.ts +0 -295
  115. package/lib/components/combobox/Combobox.types.d.ts.map +0 -1
  116. package/lib/components/combobox/Combobox.types.js +0 -66
  117. package/lib/components/combobox/Combobox.types.js.map +0 -1
  118. package/lib/components/combobox/ComboboxContext.d.ts +0 -21
  119. package/lib/components/combobox/ComboboxContext.d.ts.map +0 -1
  120. package/lib/components/combobox/ComboboxContext.js +0 -19
  121. package/lib/components/combobox/ComboboxContext.js.map +0 -1
  122. package/lib/components/combobox/ComboboxGroup.d.ts +0 -15
  123. package/lib/components/combobox/ComboboxGroup.d.ts.map +0 -1
  124. package/lib/components/combobox/ComboboxGroup.js +0 -84
  125. package/lib/components/combobox/ComboboxGroup.js.map +0 -1
  126. package/lib/components/combobox/ComboboxMenu/ComboboxMenu.d.ts +0 -9
  127. package/lib/components/combobox/ComboboxMenu/ComboboxMenu.d.ts.map +0 -1
  128. package/lib/components/combobox/ComboboxMenu/ComboboxMenu.js +0 -91
  129. package/lib/components/combobox/ComboboxMenu/ComboboxMenu.js.map +0 -1
  130. package/lib/components/combobox/ComboboxMenu/Menu.styles.d.ts +0 -26
  131. package/lib/components/combobox/ComboboxMenu/Menu.styles.d.ts.map +0 -1
  132. package/lib/components/combobox/ComboboxMenu/Menu.styles.js +0 -119
  133. package/lib/components/combobox/ComboboxMenu/Menu.styles.js.map +0 -1
  134. package/lib/components/combobox/ComboboxOption.d.ts +0 -20
  135. package/lib/components/combobox/ComboboxOption.d.ts.map +0 -1
  136. package/lib/components/combobox/ComboboxOption.js +0 -272
  137. package/lib/components/combobox/ComboboxOption.js.map +0 -1
  138. package/lib/components/combobox/Menu.styles.d.ts +0 -22
  139. package/lib/components/combobox/Menu.styles.d.ts.map +0 -1
  140. package/lib/components/combobox/Menu.styles.js +0 -102
  141. package/lib/components/combobox/Menu.styles.js.map +0 -1
  142. package/lib/components/combobox/index.d.ts +0 -6
  143. package/lib/components/combobox/index.d.ts.map +0 -1
  144. package/lib/components/combobox/index.js +0 -15
  145. package/lib/components/combobox/index.js.map +0 -1
  146. package/lib/components/combobox/utils/OptionObjectUtils.d.ts +0 -23
  147. package/lib/components/combobox/utils/OptionObjectUtils.d.ts.map +0 -1
  148. package/lib/components/combobox/utils/OptionObjectUtils.js +0 -40
  149. package/lib/components/combobox/utils/OptionObjectUtils.js.map +0 -1
  150. package/lib/components/combobox/utils/flattenChildren.d.ts +0 -12
  151. package/lib/components/combobox/utils/flattenChildren.d.ts.map +0 -1
  152. package/lib/components/combobox/utils/flattenChildren.js +0 -47
  153. package/lib/components/combobox/utils/flattenChildren.js.map +0 -1
  154. package/lib/components/combobox/utils/getNameAndValue.d.ts +0 -15
  155. package/lib/components/combobox/utils/getNameAndValue.d.ts.map +0 -1
  156. package/lib/components/combobox/utils/getNameAndValue.js +0 -24
  157. package/lib/components/combobox/utils/getNameAndValue.js.map +0 -1
  158. package/lib/components/combobox/utils/index.d.ts +0 -5
  159. package/lib/components/combobox/utils/index.d.ts.map +0 -1
  160. package/lib/components/combobox/utils/index.js +0 -14
  161. package/lib/components/combobox/utils/index.js.map +0 -1
  162. package/lib/components/combobox/utils/wrapJSX.d.ts +0 -15
  163. package/lib/components/combobox/utils/wrapJSX.d.ts.map +0 -1
  164. package/lib/components/combobox/utils/wrapJSX.js +0 -53
  165. package/lib/components/combobox/utils/wrapJSX.js.map +0 -1
  166. package/lib/components/item-action-controls.d.ts +0 -87
  167. package/lib/components/item-action-controls.d.ts.map +0 -1
  168. package/lib/components/item-action-controls.js +0 -239
  169. package/lib/components/item-action-controls.js.map +0 -1
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { Icon } from '../leafygreen';
3
+ import type { ItemActionButtonSize } from './constants';
4
+ type IconProps = React.ComponentProps<typeof Icon>;
5
+ type ActionGlyphProps = Omit<IconProps, 'size' | 'glyph'> & {
6
+ glyph?: React.ReactChild;
7
+ size?: ItemActionButtonSize;
8
+ };
9
+ export declare const ActionGlyph: ({ glyph, size, ...props }: ActionGlyphProps) => React.JSX.Element | null;
10
+ export {};
11
+ //# sourceMappingURL=action-glyph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-glyph.d.ts","sourceRoot":"","sources":["../../../src/components/actions/action-glyph.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAKxD,KAAK,SAAS,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,CAAC;AACnD,KAAK,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;IACzB,IAAI,CAAC,EAAE,oBAAoB,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,WAAW,8BAA+B,gBAAgB,6BAUtE,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ActionGlyph = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const leafygreen_1 = require("../leafygreen");
9
+ const ActionGlyph = ({ glyph, size, ...props }) => {
10
+ if (typeof glyph === 'string') {
11
+ return react_1.default.createElement(leafygreen_1.Icon, { size: size, glyph: glyph, ...props });
12
+ }
13
+ if (react_1.default.isValidElement(glyph)) {
14
+ return glyph;
15
+ }
16
+ return null;
17
+ };
18
+ exports.ActionGlyph = ActionGlyph;
19
+ //# sourceMappingURL=action-glyph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-glyph.js","sourceRoot":"","sources":["../../../src/components/actions/action-glyph.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,8CAAqC;AAY9B,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAoB,EAAE,EAAE;IACzE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,8BAAC,iBAAI,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,KAAM,KAAK,GAAI,CAAC;KACtD;IAED,IAAI,eAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;QAC/B,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAVW,QAAA,WAAW,eAUtB"}
@@ -0,0 +1,7 @@
1
+ export declare const ItemActionButtonSize: {
2
+ readonly XSmall: "xsmall";
3
+ readonly Small: "small";
4
+ readonly Default: "default";
5
+ };
6
+ export type ItemActionButtonSize = typeof ItemActionButtonSize[keyof typeof ItemActionButtonSize];
7
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/components/actions/constants.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAC9B,OAAO,oBAAoB,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ItemActionButtonSize = void 0;
4
+ exports.ItemActionButtonSize = {
5
+ XSmall: 'xsmall',
6
+ Small: 'small',
7
+ Default: 'default',
8
+ };
9
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/components/actions/constants.tsx"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG;IAClC,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;CACV,CAAC"}
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import type { ButtonProps } from '@leafygreen-ui/button';
3
+ import type { RenderMode } from '@leafygreen-ui/popover';
4
+ import { ItemActionButtonSize } from './constants';
5
+ import { type MenuAction } from './item-action-menu';
6
+ export type DropdownMenuButtonProps<Action extends string> = {
7
+ actions: MenuAction<Action>[];
8
+ onAction(actionName: Action): void;
9
+ renderMode?: RenderMode;
10
+ iconSize?: ItemActionButtonSize;
11
+ isVisible?: boolean;
12
+ activeAction?: Action;
13
+ 'data-testid'?: string;
14
+ buttonText: string;
15
+ buttonProps: ButtonProps;
16
+ hideOnNarrow?: boolean;
17
+ };
18
+ export declare function DropdownMenuButton<Action extends string>({ isVisible, actions, onAction, renderMode, activeAction, buttonText, buttonProps, iconSize, 'data-testid': dataTestId, hideOnNarrow, }: DropdownMenuButtonProps<Action>): React.JSX.Element | null;
19
+ //# sourceMappingURL=dropdown-menu-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu-button.d.ts","sourceRoot":"","sources":["../../../src/components/actions/dropdown-menu-button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAS5E,MAAM,MAAM,uBAAuB,CAAC,MAAM,SAAS,MAAM,IAAI;IAC3D,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,MAAM,SAAS,MAAM,EAAE,EACxD,SAAgB,EAChB,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,QAAuC,EACvC,aAAa,EAAE,UAAU,EACzB,YAAmB,GACpB,EAAE,uBAAuB,CAAC,MAAM,CAAC,4BAuFjC"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.DropdownMenuButton = void 0;
27
+ const react_1 = __importStar(require("react"));
28
+ const emotion_1 = require("@leafygreen-ui/emotion");
29
+ const leafygreen_1 = require("../leafygreen");
30
+ const workspace_container_1 = require("../workspace-container");
31
+ const constants_1 = require("./constants");
32
+ const utils_1 = require("./utils");
33
+ const action_glyph_1 = require("./action-glyph");
34
+ const item_action_menu_1 = require("./item-action-menu");
35
+ const hiddenOnNarrowStyles = (0, emotion_1.css)({
36
+ [`@container ${workspace_container_1.WorkspaceContainer.toolbarContainerQueryName} (width < 900px)`]: {
37
+ display: 'none',
38
+ },
39
+ });
40
+ function DropdownMenuButton({ isVisible = true, actions, onAction, renderMode, activeAction, buttonText, buttonProps, iconSize = constants_1.ItemActionButtonSize.Default, 'data-testid': dataTestId, hideOnNarrow = true, }) {
41
+ // this ref is used by the Menu component to calculate the height and position
42
+ // of the menu, and by us to give back the focus to the trigger when the menu
43
+ // is closed (https://jira.mongodb.org/browse/PD-1674).
44
+ const menuTriggerRef = (0, react_1.useRef)(null);
45
+ const [isMenuOpen, setIsMenuOpen] = (0, react_1.useState)(false);
46
+ const onClick = (0, react_1.useCallback)((evt) => {
47
+ evt.stopPropagation();
48
+ if (evt.currentTarget.dataset.menuitem) {
49
+ setIsMenuOpen(false);
50
+ // Workaround for https://jira.mongodb.org/browse/PD-1674
51
+ menuTriggerRef.current?.focus();
52
+ }
53
+ const actionName = evt.currentTarget.dataset.action;
54
+ if (typeof actionName !== 'string') {
55
+ throw new Error('Expected element to have a "data-action" attribute');
56
+ }
57
+ onAction(actionName);
58
+ }, [onAction]);
59
+ const shouldRender = isMenuOpen || (isVisible && actions.length > 0);
60
+ if (!shouldRender) {
61
+ return null;
62
+ }
63
+ return (react_1.default.createElement(leafygreen_1.Menu, { open: isMenuOpen, setOpen: setIsMenuOpen, justify: "start", refEl: menuTriggerRef, renderMode: renderMode, "data-testid": dataTestId, trigger: ({ onClick, children, }) => {
64
+ return (react_1.default.createElement(leafygreen_1.Button, { ...buttonProps, ref: menuTriggerRef, "data-testid": dataTestId ? `${dataTestId}-show-actions` : undefined, onClick: (evt) => {
65
+ evt.stopPropagation();
66
+ onClick && onClick(evt);
67
+ }, rightGlyph: react_1.default.createElement(leafygreen_1.Icon, { glyph: 'CaretDown' }), title: buttonText },
68
+ react_1.default.createElement("span", { className: hideOnNarrow ? hiddenOnNarrowStyles : undefined }, buttonText),
69
+ children));
70
+ } }, actions.map((menuAction, idx) => {
71
+ if ((0, item_action_menu_1.isSeparatorMenuAction)(menuAction)) {
72
+ return react_1.default.createElement(leafygreen_1.MenuSeparator, { key: `separator-${idx}` });
73
+ }
74
+ const { action, label, icon } = menuAction;
75
+ return (react_1.default.createElement(leafygreen_1.MenuItem, { active: activeAction === action, key: action, "data-testid": (0, utils_1.actionTestId)(dataTestId, action), "data-action": action, "data-menuitem": true, glyph: react_1.default.createElement(action_glyph_1.ActionGlyph, { glyph: icon, size: iconSize }), onClick: onClick }, label));
76
+ })));
77
+ }
78
+ exports.DropdownMenuButton = DropdownMenuButton;
79
+ //# sourceMappingURL=dropdown-menu-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu-button.js","sourceRoot":"","sources":["../../../src/components/actions/dropdown-menu-button.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { ItemComponentProps } from './types';
3
+ export declare function ItemActionButton<Action extends string>({ action, icon, label, tooltip, iconSize, onClick, iconClassName, className, iconStyle, isDisabled, 'data-testid': dataTestId, }: ItemComponentProps<Action>): React.JSX.Element;
4
+ //# sourceMappingURL=item-action-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item-action-button.d.ts","sourceRoot":"","sources":["../../../src/components/actions/item-action-button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,wBAAgB,gBAAgB,CAAC,MAAM,SAAS,MAAM,EAAE,EACtD,MAAM,EACN,IAAY,EACZ,KAAK,EACL,OAAO,EACP,QAAuC,EACvC,OAAO,EACP,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,aAAa,EAAE,UAAU,GAC1B,EAAE,kBAAkB,CAAC,MAAM,CAAC,qBAgB5B"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ItemActionButton = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const emotion_1 = require("@leafygreen-ui/emotion");
9
+ const constants_1 = require("./constants");
10
+ const small_icon_button_1 = require("./small-icon-button");
11
+ function ItemActionButton({ action, icon = react_1.default.createElement(react_1.default.Fragment, null), label, tooltip, iconSize = constants_1.ItemActionButtonSize.Default, onClick, iconClassName, className, iconStyle, isDisabled, 'data-testid': dataTestId, }) {
12
+ return (react_1.default.createElement(small_icon_button_1.SmallIconButton, { key: action, glyph: icon, label: label, title: !tooltip ? label : undefined, size: iconSize, "data-action": action, "data-testid": dataTestId, onClick: onClick, className: (0, emotion_1.cx)(iconClassName, className), style: iconStyle, disabled: isDisabled }));
13
+ }
14
+ exports.ItemActionButton = ItemActionButton;
15
+ //# sourceMappingURL=item-action-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item-action-button.js","sourceRoot":"","sources":["../../../src/components/actions/item-action-button.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,oDAA4C;AAE5C,2CAAmD;AAEnD,2DAAsD;AAEtD,SAAgB,gBAAgB,CAAwB,EACtD,MAAM,EACN,IAAI,GAAG,6DAAK,EACZ,KAAK,EACL,OAAO,EACP,QAAQ,GAAG,gCAAoB,CAAC,OAAO,EACvC,OAAO,EACP,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,aAAa,EAAE,UAAU,GACE;IAC3B,OAAO,CACL,8BAAC,mCAAe,IACd,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,IAAI,EACX,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EACnC,IAAI,EAAE,QAAQ,iBACD,MAAM,iBACN,UAAU,EACvB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,IAAA,YAAE,EAAC,aAAa,EAAE,SAAS,CAAC,EACvC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,UAAU,GACpB,CACH,CAAC;AACJ,CAAC;AA5BD,4CA4BC"}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import type { RenderMode } from '@leafygreen-ui/popover';
3
+ import { ItemActionButtonSize } from './constants';
4
+ import type { ItemAction, ItemSeparator } from './types';
5
+ export type ItemActionControlsProps<Action extends string> = {
6
+ isVisible?: boolean;
7
+ actions: (ItemAction<Action> | ItemSeparator)[];
8
+ onAction(actionName: Action): void;
9
+ className?: string;
10
+ menuClassName?: string;
11
+ iconSize?: ItemActionButtonSize;
12
+ iconClassName?: string;
13
+ iconStyle?: React.CSSProperties;
14
+ collapseAfter?: number;
15
+ collapseToMenuThreshold?: number;
16
+ renderMode?: RenderMode;
17
+ 'data-testid'?: string;
18
+ };
19
+ export declare function ItemActionControls<Action extends string>({ isVisible, actions, onAction, className, menuClassName, iconClassName, iconStyle, iconSize, renderMode, collapseAfter, collapseToMenuThreshold, 'data-testid': dataTestId, }: ItemActionControlsProps<Action>): React.JSX.Element | null;
20
+ //# sourceMappingURL=item-action-controls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item-action-controls.d.ts","sourceRoot":"","sources":["../../../src/components/actions/item-action-controls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAWzD,MAAM,MAAM,uBAAuB,CAAC,MAAM,SAAS,MAAM,IAAI;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAEhC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,MAAM,SAAS,MAAM,EAAE,EACxD,SAAgB,EAChB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,aAAa,EACb,aAAa,EACb,SAAS,EACT,QAAuC,EACvC,UAAU,EACV,aAAiB,EACjB,uBAA2B,EAC3B,aAAa,EAAE,UAAU,GAC1B,EAAE,uBAAuB,CAAC,MAAM,CAAC,4BA4CjC"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ItemActionControls = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const tokens_1 = require("@leafygreen-ui/tokens");
9
+ const emotion_1 = require("@leafygreen-ui/emotion");
10
+ const item_action_menu_1 = require("./item-action-menu");
11
+ const constants_1 = require("./constants");
12
+ const item_action_group_1 = require("./item-action-group");
13
+ const actionControlsStyle = (0, emotion_1.css)({
14
+ flex: 'none',
15
+ marginLeft: 'auto',
16
+ alignItems: 'center',
17
+ display: 'flex',
18
+ gap: tokens_1.spacing[100],
19
+ });
20
+ function ItemActionControls({ isVisible = true, actions, onAction, className, menuClassName, iconClassName, iconStyle, iconSize = constants_1.ItemActionButtonSize.Default, renderMode, collapseAfter = 0, collapseToMenuThreshold = 2, 'data-testid': dataTestId, }) {
21
+ const sharedProps = {
22
+ isVisible,
23
+ onAction,
24
+ className: (0, emotion_1.cx)('item-action-controls', className),
25
+ iconClassName,
26
+ iconStyle,
27
+ iconSize,
28
+ 'data-testid': dataTestId,
29
+ };
30
+ const sharedMenuProps = {
31
+ menuClassName,
32
+ renderMode,
33
+ };
34
+ if (actions.length === 0) {
35
+ return null;
36
+ }
37
+ // When user wants to show a few actions and collapse the rest into a menu
38
+ if (collapseAfter > 0) {
39
+ const visibleActions = actions.slice(0, collapseAfter);
40
+ const collapsedActions = actions.slice(collapseAfter);
41
+ return (react_1.default.createElement("div", { className: actionControlsStyle },
42
+ react_1.default.createElement(item_action_group_1.ItemActionGroup, { ...sharedProps, actions: visibleActions }),
43
+ react_1.default.createElement(item_action_menu_1.ItemActionMenu, { ...sharedProps, ...sharedMenuProps, actions: collapsedActions })));
44
+ }
45
+ const shouldShowMenu = actions.length >= collapseToMenuThreshold;
46
+ if (shouldShowMenu) {
47
+ return (react_1.default.createElement(item_action_menu_1.ItemActionMenu, { actions: actions, ...sharedProps, ...sharedMenuProps }));
48
+ }
49
+ return react_1.default.createElement(item_action_group_1.ItemActionGroup, { actions: actions, ...sharedProps });
50
+ }
51
+ exports.ItemActionControls = ItemActionControls;
52
+ //# sourceMappingURL=item-action-controls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item-action-controls.js","sourceRoot":"","sources":["../../../src/components/actions/item-action-controls.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,kDAAgD;AAChD,oDAAiD;AAGjD,yDAAoD;AACpD,2CAAmD;AAEnD,2DAAsD;AAEtD,MAAM,mBAAmB,GAAG,IAAA,aAAG,EAAC;IAC9B,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,QAAQ;IACpB,OAAO,EAAE,MAAM;IACf,GAAG,EAAE,gBAAO,CAAC,GAAG,CAAC;CAClB,CAAC,CAAC;AAmBH,SAAgB,kBAAkB,CAAwB,EACxD,SAAS,GAAG,IAAI,EAChB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,aAAa,EACb,aAAa,EACb,SAAS,EACT,QAAQ,GAAG,gCAAoB,CAAC,OAAO,EACvC,UAAU,EACV,aAAa,GAAG,CAAC,EACjB,uBAAuB,GAAG,CAAC,EAC3B,aAAa,EAAE,UAAU,GACO;IAChC,MAAM,WAAW,GAAG;QAClB,SAAS;QACT,QAAQ;QACR,SAAS,EAAE,IAAA,YAAE,EAAC,sBAAsB,EAAE,SAAS,CAAC;QAChD,aAAa;QACb,SAAS;QACT,QAAQ;QACR,aAAa,EAAE,UAAU;KAC1B,CAAC;IACF,MAAM,eAAe,GAAG;QACtB,aAAa;QACb,UAAU;KACX,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,IAAI,CAAC;KACb;IAED,0EAA0E;IAC1E,IAAI,aAAa,GAAG,CAAC,EAAE;QACrB,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QACvD,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACtD,OAAO,CACL,uCAAK,SAAS,EAAE,mBAAmB;YACjC,8BAAC,mCAAe,OAAK,WAAW,EAAE,OAAO,EAAE,cAAc,GAAI;YAC7D,8BAAC,iCAAc,OACT,WAAW,KACX,eAAe,EACnB,OAAO,EAAE,gBAAgB,GACzB,CACE,CACP,CAAC;KACH;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,IAAI,uBAAuB,CAAC;IAEjE,IAAI,cAAc,EAAE;QAClB,OAAO,CACL,8BAAC,iCAAc,IAAC,OAAO,EAAE,OAAO,KAAM,WAAW,KAAM,eAAe,GAAI,CAC3E,CAAC;KACH;IAED,OAAO,8BAAC,mCAAe,IAAC,OAAO,EAAE,OAAO,KAAM,WAAW,GAAI,CAAC;AAChE,CAAC;AAzDD,gDAyDC"}
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { Tooltip } from '../leafygreen';
3
+ import { ItemActionButtonSize } from './constants';
4
+ import type { ItemAction, ItemSeparator } from './types';
5
+ export type GroupedItemAction<Action extends string> = ItemAction<Action> & {
6
+ tooltipProps?: Parameters<typeof Tooltip>;
7
+ };
8
+ export type ItemActionGroupProps<Action extends string> = {
9
+ actions: (GroupedItemAction<Action> | ItemSeparator)[];
10
+ onAction(actionName: Action): void;
11
+ className?: string;
12
+ iconClassName?: string;
13
+ iconStyle?: React.CSSProperties;
14
+ iconSize?: ItemActionButtonSize;
15
+ isVisible?: boolean;
16
+ 'data-testid'?: string;
17
+ };
18
+ export declare function ItemActionGroup<Action extends string>({ actions, onAction, className, iconClassName, iconStyle, iconSize, isVisible, 'data-testid': dataTestId, }: ItemActionGroupProps<Action>): React.JSX.Element | null;
19
+ //# sourceMappingURL=item-action-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item-action-group.d.ts","sourceRoot":"","sources":["../../../src/components/actions/item-action-group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAI3C,OAAO,EAAiB,OAAO,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAKzD,MAAM,MAAM,iBAAiB,CAAC,MAAM,SAAS,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG;IAC1E,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;CAC3C,CAAC;AAUF,MAAM,MAAM,oBAAoB,CAAC,MAAM,SAAS,MAAM,IAAI;IACxD,OAAO,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAChC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,eAAe,CAAC,MAAM,SAAS,MAAM,EAAE,EACrD,OAAO,EACP,QAAQ,EACR,SAAS,EACT,aAAa,EACb,SAAS,EACT,QAAuC,EACvC,SAAgB,EAChB,aAAa,EAAE,UAAU,GAC1B,EAAE,oBAAoB,CAAC,MAAM,CAAC,4BA+D9B"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.ItemActionGroup = void 0;
27
+ const react_1 = __importStar(require("react"));
28
+ const emotion_1 = require("@leafygreen-ui/emotion");
29
+ const tokens_1 = require("@leafygreen-ui/tokens");
30
+ const leafygreen_1 = require("../leafygreen");
31
+ const constants_1 = require("./constants");
32
+ const item_action_menu_1 = require("./item-action-menu");
33
+ const item_action_button_1 = require("./item-action-button");
34
+ const utils_1 = require("./utils");
35
+ const containerStyle = (0, emotion_1.css)({
36
+ flex: 'none',
37
+ marginLeft: 'auto',
38
+ alignItems: 'center',
39
+ display: 'flex',
40
+ gap: tokens_1.spacing[100],
41
+ });
42
+ function ItemActionGroup({ actions, onAction, className, iconClassName, iconStyle, iconSize = constants_1.ItemActionButtonSize.Default, isVisible = true, 'data-testid': dataTestId, }) {
43
+ const onClick = (0, react_1.useCallback)((evt) => {
44
+ evt.stopPropagation();
45
+ const actionName = evt.currentTarget.dataset.action;
46
+ if (typeof actionName !== 'string') {
47
+ throw new Error('Expected element to have a "data-action" attribute');
48
+ }
49
+ onAction(actionName);
50
+ }, [onAction]);
51
+ const shouldRender = isVisible && actions.length > 0;
52
+ if (!shouldRender) {
53
+ return null;
54
+ }
55
+ return (react_1.default.createElement("div", { className: (0, emotion_1.cx)(containerStyle, className), "data-testid": dataTestId }, actions.map((menuItem, idx) => {
56
+ if ((0, item_action_menu_1.isSeparatorMenuAction)(menuItem)) {
57
+ return react_1.default.createElement(leafygreen_1.MenuSeparator, { key: `separator-${idx}` });
58
+ }
59
+ const { expandedAs: ItemComponent = item_action_button_1.ItemActionButton, tooltip, tooltipProps, ...itemProps } = menuItem;
60
+ const item = (react_1.default.createElement(ItemComponent, { key: itemProps.action, ...itemProps, iconSize: iconSize, iconStyle: iconStyle, iconClassName: iconClassName, onClick: onClick, "data-testid": (0, utils_1.actionTestId)(dataTestId, itemProps.action) }));
61
+ if (tooltip) {
62
+ return (react_1.default.createElement(leafygreen_1.Tooltip, { key: itemProps.action, ...tooltipProps,
63
+ // Wrapping the item in a div, because the `trigger` must accept and render `children`
64
+ // See docs for the prop for more information
65
+ trigger: react_1.default.createElement("div", { style: { display: 'inherit' } }, item) }, tooltip));
66
+ }
67
+ return item;
68
+ })));
69
+ }
70
+ exports.ItemActionGroup = ItemActionGroup;
71
+ //# sourceMappingURL=item-action-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item-action-group.js","sourceRoot":"","sources":["../../../src/components/actions/item-action-group.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA2C;AAC3C,oDAAiD;AACjD,kDAAgD;AAEhD,8CAAuD;AAEvD,2CAAmD;AAEnD,yDAA2D;AAC3D,6DAAwD;AACxD,mCAAuC;AAMvC,MAAM,cAAc,GAAG,IAAA,aAAG,EAAC;IACzB,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,QAAQ;IACpB,OAAO,EAAE,MAAM;IACf,GAAG,EAAE,gBAAO,CAAC,GAAG,CAAC;CAClB,CAAC,CAAC;AAaH,SAAgB,eAAe,CAAwB,EACrD,OAAO,EACP,QAAQ,EACR,SAAS,EACT,aAAa,EACb,SAAS,EACT,QAAQ,GAAG,gCAAoB,CAAC,OAAO,EACvC,SAAS,GAAG,IAAI,EAChB,aAAa,EAAE,UAAU,GACI;IAC7B,MAAM,OAAO,GAAyC,IAAA,mBAAW,EAC/D,CAAC,GAAG,EAAE,EAAE;QACN,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;QACpD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;SACvE;QACD,QAAQ,CAAC,UAAoB,CAAC,CAAC;IACjC,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,MAAM,YAAY,GAAG,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAErD,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,uCAAK,SAAS,EAAE,IAAA,YAAE,EAAC,cAAc,EAAE,SAAS,CAAC,iBAAe,UAAU,IACnE,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE;QAC7B,IAAI,IAAA,wCAAqB,EAAC,QAAQ,CAAC,EAAE;YACnC,OAAO,8BAAC,0BAAa,IAAC,GAAG,EAAE,aAAa,GAAG,EAAE,GAAI,CAAC;SACnD;QAED,MAAM,EACJ,UAAU,EAAE,aAAa,GAAG,qCAAgB,EAC5C,OAAO,EACP,YAAY,EACZ,GAAG,SAAS,EACb,GAAG,QAAQ,CAAC;QAEb,MAAM,IAAI,GAAG,CACX,8BAAC,aAAa,IACZ,GAAG,EAAE,SAAS,CAAC,MAAM,KACjB,SAAS,EACb,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,OAAO,iBACH,IAAA,oBAAY,EAAC,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,GACvD,CACH,CAAC;QAEF,IAAI,OAAO,EAAE;YACX,OAAO,CACL,8BAAC,oBAAO,IACN,GAAG,EAAE,SAAS,CAAC,MAAM,KACjB,YAAY;gBAChB,sFAAsF;gBACtF,6CAA6C;gBAC7C,OAAO,EAAE,uCAAK,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAG,IAAI,CAAO,IAExD,OAAO,CACA,CACX,CAAC;SACH;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CACE,CACP,CAAC;AACJ,CAAC;AAxED,0CAwEC"}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import type { RenderMode } from '@leafygreen-ui/popover';
3
+ import { ItemActionButtonSize } from './constants';
4
+ import type { ItemBase, ItemSeparator } from './types';
5
+ export type MenuAction<Action extends string> = ItemBase<Action> | ItemSeparator;
6
+ export declare function isSeparatorMenuAction(value: unknown): value is ItemSeparator;
7
+ export type ItemActionMenuProps<Action extends string> = {
8
+ actions: MenuAction<Action>[];
9
+ onAction(actionName: Action): void;
10
+ className?: string;
11
+ menuClassName?: string;
12
+ renderMode?: RenderMode;
13
+ iconClassName?: string;
14
+ iconStyle?: React.CSSProperties;
15
+ iconSize?: ItemActionButtonSize;
16
+ isVisible?: boolean;
17
+ 'data-testid'?: string;
18
+ };
19
+ export declare function ItemActionMenu<Action extends string>({ isVisible, actions, onAction, className, menuClassName, renderMode, iconClassName, iconStyle, iconSize, 'data-testid': dataTestId, }: ItemActionMenuProps<Action>): React.JSX.Element | null;
20
+ //# sourceMappingURL=item-action-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item-action-menu.d.ts","sourceRoot":"","sources":["../../../src/components/actions/item-action-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAIvD,MAAM,MAAM,UAAU,CAAC,MAAM,SAAS,MAAM,IACxC,QAAQ,CAAC,MAAM,CAAC,GAChB,aAAa,CAAC;AAElB,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAO5E;AASD,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,MAAM,IAAI;IACvD,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAChC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,cAAc,CAAC,MAAM,SAAS,MAAM,EAAE,EACpD,SAAgB,EAChB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,aAAa,EACb,UAAU,EACV,aAAa,EACb,SAAS,EACT,QAAuC,EACvC,aAAa,EAAE,UAAU,GAC1B,EAAE,mBAAmB,CAAC,MAAM,CAAC,4BAsG7B"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.ItemActionMenu = exports.isSeparatorMenuAction = void 0;
27
+ const react_1 = __importStar(require("react"));
28
+ const emotion_1 = require("@leafygreen-ui/emotion");
29
+ const leafygreen_1 = require("../leafygreen");
30
+ const constants_1 = require("./constants");
31
+ const action_glyph_1 = require("./action-glyph");
32
+ const small_icon_button_1 = require("./small-icon-button");
33
+ const utils_1 = require("./utils");
34
+ function isSeparatorMenuAction(value) {
35
+ return (typeof value === 'object' &&
36
+ value !== null &&
37
+ 'separator' in value &&
38
+ value.separator === true);
39
+ }
40
+ exports.isSeparatorMenuAction = isSeparatorMenuAction;
41
+ const containerStyle = (0, emotion_1.css)({
42
+ flex: 'none',
43
+ marginLeft: 'auto',
44
+ alignItems: 'center',
45
+ display: 'flex',
46
+ });
47
+ function ItemActionMenu({ isVisible = true, actions, onAction, className, menuClassName, renderMode, iconClassName, iconStyle, iconSize = constants_1.ItemActionButtonSize.Default, 'data-testid': dataTestId, }) {
48
+ // this ref is used by the Menu component to calculate the height and position
49
+ // of the menu, and by us to give back the focus to the trigger when the menu
50
+ // is closed (https://jira.mongodb.org/browse/PD-1674).
51
+ const menuTriggerRef = (0, react_1.useRef)(null);
52
+ const [isMenuOpen, setIsMenuOpen] = (0, react_1.useState)(false);
53
+ const onClick = (0, react_1.useCallback)((evt) => {
54
+ evt.stopPropagation();
55
+ if (evt.currentTarget.dataset.menuitem) {
56
+ setIsMenuOpen(false);
57
+ // Workaround for https://jira.mongodb.org/browse/PD-1674
58
+ menuTriggerRef.current?.focus();
59
+ }
60
+ const actionName = evt.currentTarget.dataset.action;
61
+ if (typeof actionName !== 'string') {
62
+ throw new Error('Expected element to have a "data-action" attribute');
63
+ }
64
+ onAction(actionName);
65
+ }, [onAction]);
66
+ const shouldRender = isMenuOpen || (isVisible && actions.length > 0);
67
+ if (!shouldRender) {
68
+ return null;
69
+ }
70
+ // TODO: Remove the wrapping div
71
+ return (react_1.default.createElement("div", { className: (0, emotion_1.cx)(containerStyle, className) },
72
+ react_1.default.createElement(leafygreen_1.Menu, { className: menuClassName, open: isMenuOpen, setOpen: setIsMenuOpen, refEl: menuTriggerRef, renderMode: renderMode, "data-testid": dataTestId, trigger: ({ onClick, children, }) => {
73
+ return (react_1.default.createElement(small_icon_button_1.SmallIconButton, { ref: menuTriggerRef, size: iconSize, glyph: "Ellipsis", label: "Show actions", title: "Show actions", "data-testid": dataTestId ? `${dataTestId}-show-actions` : undefined, onClick: (evt) => {
74
+ evt.stopPropagation();
75
+ onClick && onClick(evt);
76
+ }, className: iconClassName, style: iconStyle }, children));
77
+ } }, actions.map((menuAction, idx) => {
78
+ if (isSeparatorMenuAction(menuAction)) {
79
+ return react_1.default.createElement(leafygreen_1.MenuSeparator, { key: `separator-${idx}` });
80
+ }
81
+ const { action, label, icon, variant, isDisabled, disabledDescription, } = menuAction;
82
+ return (react_1.default.createElement(leafygreen_1.MenuItem, { key: action, "data-testid": (0, utils_1.actionTestId)(dataTestId, action), "data-action": action, "data-menuitem": true, glyph: react_1.default.createElement(action_glyph_1.ActionGlyph, { glyph: icon, size: iconSize }), onClick: onClick, variant: variant || 'default', disabled: isDisabled, description: isDisabled ? disabledDescription : '' }, label));
83
+ }))));
84
+ }
85
+ exports.ItemActionMenu = ItemActionMenu;
86
+ //# sourceMappingURL=item-action-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item-action-menu.js","sourceRoot":"","sources":["../../../src/components/actions/item-action-menu.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import type { ItemActionButtonSize } from './constants';
3
+ export type SmallIconButtonProps = {
4
+ glyph: React.ReactChild;
5
+ label: string;
6
+ title?: string;
7
+ size: ItemActionButtonSize;
8
+ onClick(evt: React.MouseEvent<HTMLButtonElement>): void;
9
+ } & Omit<React.HTMLProps<HTMLButtonElement>, 'size'>;
10
+ export declare const SmallIconButton: React.ForwardRefExoticComponent<Omit<SmallIconButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
11
+ //# sourceMappingURL=small-icon-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"small-icon-button.d.ts","sourceRoot":"","sources":["../../../src/components/actions/small-icon-button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAM1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AA2BxD,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;CACzD,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC;AAErD,eAAO,MAAM,eAAe,6GAyB1B,CAAC"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.SmallIconButton = void 0;
27
+ const react_1 = __importStar(require("react"));
28
+ const emotion_1 = require("@leafygreen-ui/emotion");
29
+ const tokens_1 = require("@leafygreen-ui/tokens");
30
+ const leafygreen_1 = require("../leafygreen");
31
+ const action_glyph_1 = require("./action-glyph");
32
+ const iconContainerStyle = (0, emotion_1.css)({
33
+ display: 'block',
34
+ flex: 'none',
35
+ fontSize: 0,
36
+ lineHeight: 0,
37
+ });
38
+ // Using important here because leafygreen / emotion applies styles in the order
39
+ // that doesn't allow our styles override theirs
40
+ const buttonSizeStyle = {
41
+ default: undefined,
42
+ small: (0, emotion_1.css)({
43
+ flex: 'none',
44
+ width: `${tokens_1.spacing[4]}px !important`,
45
+ height: `${tokens_1.spacing[4]}px !important`,
46
+ }),
47
+ xsmall: (0, emotion_1.css)({
48
+ flex: 'none',
49
+ // aligns with other xsmall components
50
+ width: `${20}px !important`,
51
+ height: `${20}px !important`,
52
+ }),
53
+ };
54
+ exports.SmallIconButton = (0, react_1.forwardRef)(function SmallIconButton({ glyph, size, label, onClick, children, title, className, ...rest }, ref) {
55
+ return (react_1.default.createElement(leafygreen_1.IconButton
56
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
57
+ // @ts-expect-error leafygreen confuses TS a lot here
58
+ , {
59
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
60
+ // @ts-expect-error leafygreen confuses TS a lot here
61
+ ref: ref, className: (0, emotion_1.cx)(buttonSizeStyle[size], className), "aria-label": label, title: title, onClick: onClick, ...rest },
62
+ react_1.default.createElement("span", { role: "presentation", className: iconContainerStyle },
63
+ react_1.default.createElement(action_glyph_1.ActionGlyph, { glyph: glyph, size: size })),
64
+ children));
65
+ });
66
+ //# sourceMappingURL=small-icon-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"small-icon-button.js","sourceRoot":"","sources":["../../../src/components/actions/small-icon-button.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA0C;AAC1C,oDAAiD;AACjD,kDAAgD;AAEhD,8CAA2C;AAG3C,iDAA6C;AAE7C,MAAM,kBAAkB,GAAG,IAAA,aAAG,EAAC;IAC7B,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,CAAC;CACd,CAAC,CAAC;AAEH,gFAAgF;AAChF,gDAAgD;AAChD,MAAM,eAAe,GAAqD;IACxE,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,IAAA,aAAG,EAAC;QACT,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,GAAG,gBAAO,CAAC,CAAC,CAAC,eAAe;QACnC,MAAM,EAAE,GAAG,gBAAO,CAAC,CAAC,CAAC,eAAe;KACrC,CAAC;IACF,MAAM,EAAE,IAAA,aAAG,EAAC;QACV,IAAI,EAAE,MAAM;QACZ,sCAAsC;QACtC,KAAK,EAAE,GAAG,EAAE,eAAe;QAC3B,MAAM,EAAE,GAAG,EAAE,eAAe;KAC7B,CAAC;CACH,CAAC;AAUW,QAAA,eAAe,GAAG,IAAA,kBAAU,EAGvC,SAAS,eAAe,CACxB,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EACpE,GAAG;IAEH,OAAO,CACL,8BAAC,uBAAU;IACT,6DAA6D;IAC7D,qDAAqD;;QADrD,6DAA6D;QAC7D,qDAAqD;QACrD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,YAAE,EAAC,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,gBACnC,KAAK,EACjB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,KACZ,IAAI;QAER,wCAAM,IAAI,EAAC,cAAc,EAAC,SAAS,EAAE,kBAAkB;YACrD,8BAAC,0BAAW,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAI,CACpC;QAEN,QAAQ,CACE,CACd,CAAC;AACJ,CAAC,CAAC,CAAC"}