@mongodb-js/compass-components 1.28.0 → 1.29.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 (81) hide show
  1. package/lib/components/document-list/document-actions-group.d.ts.map +1 -1
  2. package/lib/components/document-list/document-actions-group.js +4 -9
  3. package/lib/components/document-list/document-actions-group.js.map +1 -1
  4. package/lib/components/document-list/document.d.ts.map +1 -1
  5. package/lib/components/document-list/document.js +22 -9
  6. package/lib/components/document-list/document.js.map +1 -1
  7. package/lib/components/document-list/element-editors.d.ts.map +1 -1
  8. package/lib/components/document-list/element-editors.js +3 -5
  9. package/lib/components/document-list/element-editors.js.map +1 -1
  10. package/lib/components/document-list/element.d.ts +5 -0
  11. package/lib/components/document-list/element.d.ts.map +1 -1
  12. package/lib/components/document-list/element.js +41 -8
  13. package/lib/components/document-list/element.js.map +1 -1
  14. package/lib/components/document-list/index.d.ts +1 -1
  15. package/lib/components/document-list/index.d.ts.map +1 -1
  16. package/lib/components/document-list/index.js +3 -3
  17. package/lib/components/document-list/index.js.map +1 -1
  18. package/lib/components/document-list/visible-field-toggle.d.ts +14 -0
  19. package/lib/components/document-list/visible-field-toggle.d.ts.map +1 -0
  20. package/lib/components/document-list/{document-fields-toggle-group.js → visible-field-toggle.js} +27 -18
  21. package/lib/components/document-list/visible-field-toggle.js.map +1 -0
  22. package/lib/components/error-warning-summary.d.ts.map +1 -1
  23. package/lib/components/error-warning-summary.js +0 -1
  24. package/lib/components/error-warning-summary.js.map +1 -1
  25. package/lib/components/guide-cue/guide-cue-service.d.ts.map +1 -1
  26. package/lib/components/guide-cue/guide-cue-service.js +6 -10
  27. package/lib/components/guide-cue/guide-cue-service.js.map +1 -1
  28. package/lib/components/icons/logo-icon.d.ts +8 -0
  29. package/lib/components/icons/logo-icon.d.ts.map +1 -0
  30. package/lib/components/icons/logo-icon.js +22 -0
  31. package/lib/components/icons/logo-icon.js.map +1 -0
  32. package/lib/components/icons/server-icon.d.ts +5 -1
  33. package/lib/components/icons/server-icon.d.ts.map +1 -1
  34. package/lib/components/icons/server-icon.js +3 -3
  35. package/lib/components/icons/server-icon.js.map +1 -1
  36. package/lib/components/inline-definition.d.ts +1 -1
  37. package/lib/components/inline-definition.d.ts.map +1 -1
  38. package/lib/components/inline-definition.js +1 -8
  39. package/lib/components/inline-definition.js.map +1 -1
  40. package/lib/components/item-action-controls.d.ts +2 -2
  41. package/lib/components/item-action-controls.d.ts.map +1 -1
  42. package/lib/components/item-action-controls.js +1 -4
  43. package/lib/components/item-action-controls.js.map +1 -1
  44. package/lib/components/leafygreen.d.ts +4 -3
  45. package/lib/components/leafygreen.d.ts.map +1 -1
  46. package/lib/components/leafygreen.js +4 -2
  47. package/lib/components/leafygreen.js.map +1 -1
  48. package/lib/components/resizeable-sidebar.d.ts +1 -1
  49. package/lib/components/resizeable-sidebar.d.ts.map +1 -1
  50. package/lib/components/resizeable-sidebar.js +1 -2
  51. package/lib/components/resizeable-sidebar.js.map +1 -1
  52. package/lib/components/virtual-list.d.ts +21 -0
  53. package/lib/components/virtual-list.d.ts.map +1 -0
  54. package/lib/components/virtual-list.js +89 -0
  55. package/lib/components/virtual-list.js.map +1 -0
  56. package/lib/components/workspace-tabs/tab.d.ts +6 -4
  57. package/lib/components/workspace-tabs/tab.d.ts.map +1 -1
  58. package/lib/components/workspace-tabs/tab.js +68 -63
  59. package/lib/components/workspace-tabs/tab.js.map +1 -1
  60. package/lib/components/workspace-tabs/workspace-tabs.d.ts +3 -3
  61. package/lib/components/workspace-tabs/workspace-tabs.d.ts.map +1 -1
  62. package/lib/hooks/use-confirmation.d.ts +5 -1
  63. package/lib/hooks/use-confirmation.d.ts.map +1 -1
  64. package/lib/hooks/use-confirmation.js +17 -1
  65. package/lib/hooks/use-confirmation.js.map +1 -1
  66. package/lib/hooks/use-virtual-list-item-observer.d.ts +18 -0
  67. package/lib/hooks/use-virtual-list-item-observer.d.ts.map +1 -0
  68. package/lib/hooks/use-virtual-list-item-observer.js +80 -0
  69. package/lib/hooks/use-virtual-list-item-observer.js.map +1 -0
  70. package/lib/index.d.ts +1 -1
  71. package/lib/index.d.ts.map +1 -1
  72. package/lib/index.js +5 -5
  73. package/lib/index.js.map +1 -1
  74. package/package.json +9 -10
  75. package/lib/components/document-list/document-fields-toggle-group.d.ts +0 -11
  76. package/lib/components/document-list/document-fields-toggle-group.d.ts.map +0 -1
  77. package/lib/components/document-list/document-fields-toggle-group.js.map +0 -1
  78. package/lib/components/tooltip.d.ts +0 -16
  79. package/lib/components/tooltip.d.ts.map +0 -1
  80. package/lib/components/tooltip.js +0 -58
  81. package/lib/components/tooltip.js.map +0 -1
@@ -0,0 +1,89 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.VirtualList = void 0;
30
+ const react_1 = __importStar(require("react"));
31
+ const react_window_1 = require("react-window");
32
+ const react_virtualized_auto_sizer_1 = __importDefault(require("react-virtualized-auto-sizer"));
33
+ const emotion_1 = require("@leafygreen-ui/emotion");
34
+ const use_virtual_list_item_observer_1 = require("../hooks/use-virtual-list-item-observer");
35
+ const flexContainerStyles = (0, emotion_1.css)({
36
+ width: '100%',
37
+ height: '100%',
38
+ position: 'relative',
39
+ display: 'flex',
40
+ overflow: 'hidden',
41
+ });
42
+ const flexItemStyles = (0, emotion_1.css)({
43
+ flex: 1,
44
+ });
45
+ function VirtualList({ items, estimateItemInitialHeight, renderItem, overScanCount, rowGap, listOuterContainerClassName, dataTestId, itemDataTestId, initialScrollTop, scrollableContainerRef, __TEST_LIST_WIDTH = 1024, __TEST_LIST_HEIGHT = 768, __TEST_LIST_REF, }) {
46
+ const listRef = (0, react_1.useRef)(null);
47
+ const inUseListRef = __TEST_LIST_REF ?? listRef;
48
+ const { observer, estimatedItemSize, getItemSize } = (0, use_virtual_list_item_observer_1.useVirtualListItemObserver)({
49
+ listRef: inUseListRef,
50
+ rowGap,
51
+ items,
52
+ estimateItemInitialHeight,
53
+ });
54
+ const itemData = (0, react_1.useMemo)(() => ({
55
+ items,
56
+ observer,
57
+ itemDataTestId,
58
+ renderItem,
59
+ }), [items, observer, itemDataTestId, renderItem]);
60
+ const isTestEnv = process.env.NODE_ENV === 'test';
61
+ return (react_1.default.createElement("div", { className: flexContainerStyles, "data-testid": dataTestId },
62
+ react_1.default.createElement("div", { className: flexItemStyles },
63
+ react_1.default.createElement(react_virtualized_auto_sizer_1.default, { disableWidth: isTestEnv, disableHeight: isTestEnv }, ({ width, height }) => (react_1.default.createElement(react_window_1.VariableSizeList, { ref: inUseListRef, width: isTestEnv ? __TEST_LIST_WIDTH : width, height: isTestEnv ? __TEST_LIST_HEIGHT : height, itemData: itemData, itemCount: items.length, estimatedItemSize: estimatedItemSize, itemSize: getItemSize, overscanCount: overScanCount, initialScrollOffset: initialScrollTop, outerRef: scrollableContainerRef, innerElementType: InnerElementType, className: listOuterContainerClassName }, DocumentRow))))));
64
+ }
65
+ exports.VirtualList = VirtualList;
66
+ function DocumentRow({ index, style, data, }) {
67
+ const itemRef = (0, react_1.useRef)(null);
68
+ const { items, observer, itemDataTestId, renderItem } = data;
69
+ const item = items[index];
70
+ (0, react_1.useLayoutEffect)(() => {
71
+ const itemRefCurrent = itemRef.current;
72
+ if (itemRefCurrent) {
73
+ observer.observe(itemRefCurrent, index);
74
+ }
75
+ return () => {
76
+ if (itemRefCurrent) {
77
+ observer.unobserve(itemRefCurrent, index);
78
+ }
79
+ };
80
+ }, [observer, index]);
81
+ return (react_1.default.createElement("div", { "data-testid": itemDataTestId, key: index, style: style }, renderItem(item, itemRef, index)));
82
+ }
83
+ const innerElementStyles = (0, emotion_1.css)({
84
+ position: 'relative',
85
+ });
86
+ const InnerElementType = (0, react_1.forwardRef)(function InnerElementType({ style, ...rest }, ref) {
87
+ return (react_1.default.createElement("div", { "data-testid": "virtual-list-inner-container", className: innerElementStyles, ref: ref, style: style, ...rest }));
88
+ });
89
+ //# sourceMappingURL=virtual-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-list.js","sourceRoot":"","sources":["../../src/components/virtual-list.tsx"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import type { glyphs } from '@leafygreen-ui/icon';
3
3
  export type TabTheme = {
4
4
  '--workspace-tab-background-color': string;
5
5
  '--workspace-tab-selected-background-color': string;
6
+ '--workspace-tab-top-border-color': string;
7
+ '--workspace-tab-selected-top-border-color': string;
6
8
  '--workspace-tab-border-color': string;
7
9
  '--workspace-tab-color': string;
8
10
  '--workspace-tab-selected-color': string;
@@ -20,11 +22,11 @@ type TabProps = {
20
22
  isDragging: boolean;
21
23
  onSelect: () => void;
22
24
  onClose: () => void;
23
- iconGlyph: IconGlyph | 'Logo';
25
+ iconGlyph: IconGlyph | 'Logo' | 'Server';
24
26
  tabContentId: string;
25
- subtitle?: string;
26
- tabTheme?: TabTheme;
27
+ tooltip?: [string, string][];
28
+ tabTheme?: Partial<TabTheme>;
27
29
  };
28
- declare function Tab({ connectionName, type, title, isSelected, isDragging, onSelect, onClose, tabContentId, iconGlyph, subtitle, tabTheme, ...props }: TabProps & React.HTMLProps<HTMLDivElement>): JSX.Element;
30
+ declare function Tab({ connectionName, type, title, tooltip, isSelected, isDragging, onSelect, onClose, tabContentId, iconGlyph, tabTheme, ...props }: TabProps & React.HTMLProps<HTMLDivElement>): JSX.Element;
29
31
  export { Tab };
30
32
  //# sourceMappingURL=tab.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab.d.ts","sourceRoot":"","sources":["../../../src/components/workspace-tabs/tab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAIvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAmElD,MAAM,MAAM,QAAQ,GAAG;IACrB,kCAAkC,EAAE,MAAM,CAAC;IAC3C,2CAA2C,EAAE,MAAM,CAAC;IACpD,8BAA8B,EAAE,MAAM,CAAC;IACvC,uBAAuB,EAAE,MAAM,CAAC;IAChC,gCAAgC,EAAE,MAAM,CAAC;IACzC,iBAAiB,EAAE;QACjB,gCAAgC,EAAE,MAAM,CAAC;QACzC,8BAA8B,EAAE,MAAM,CAAC;KACxC,CAAC;CACH,CAAC;AAsGF,KAAK,SAAS,GAAG,OAAO,CAAC,MAAM,OAAO,MAAM,EAAE,MAAM,CAAC,CAAC;AAEtD,KAAK,QAAQ,GAAG;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,iBAAS,GAAG,CAAC,EACX,cAAc,EACd,IAAI,EACJ,KAAK,EACL,UAAU,EACV,UAAU,EACV,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,eAiG5C;AAED,OAAO,EAAE,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"tab.d.ts","sourceRoot":"","sources":["../../../src/components/workspace-tabs/tab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAIvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAkFlD,MAAM,MAAM,QAAQ,GAAG;IACrB,kCAAkC,EAAE,MAAM,CAAC;IAC3C,2CAA2C,EAAE,MAAM,CAAC;IACpD,kCAAkC,EAAE,MAAM,CAAC;IAC3C,2CAA2C,EAAE,MAAM,CAAC;IACpD,8BAA8B,EAAE,MAAM,CAAC;IACvC,uBAAuB,EAAE,MAAM,CAAC;IAChC,gCAAgC,EAAE,MAAM,CAAC;IACzC,iBAAiB,EAAE;QACjB,gCAAgC,EAAE,MAAM,CAAC;QACzC,8BAA8B,EAAE,MAAM,CAAC;KACxC,CAAC;CACH,CAAC;AAkFF,KAAK,SAAS,GAAG,OAAO,CAAC,MAAM,OAAO,MAAM,EAAE,MAAM,CAAC,CAAC;AAEtD,KAAK,QAAQ,GAAG;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC9B,CAAC;AAEF,iBAAS,GAAG,CAAC,EACX,cAAc,EACd,IAAI,EACJ,KAAK,EACL,OAAO,EACP,UAAU,EACV,UAAU,EACV,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,eAyH5C;AAED,OAAO,EAAE,GAAG,EAAE,CAAC"}
@@ -34,25 +34,33 @@ const use_theme_1 = require("../../hooks/use-theme");
34
34
  const leafygreen_1 = require("../leafygreen");
35
35
  const merge_props_1 = require("../../utils/merge-props");
36
36
  const use_default_action_1 = require("../../hooks/use-default-action");
37
+ const logo_icon_1 = require("../icons/logo-icon");
38
+ const leafygreen_2 = require("../leafygreen");
39
+ const server_icon_1 = require("../icons/server-icon");
37
40
  function focusedChild(className) {
38
41
  return `&:hover ${className}, &:focus-visible ${className}, &:focus-within:not(:focus) ${className}`;
39
42
  }
40
43
  const tabTransition = '.16s ease-in-out';
41
44
  const tabStyles = (0, emotion_1.css)({
42
45
  display: 'grid',
46
+ gridTemplateAreas: `
47
+ "top top top"
48
+ "icon text close"
49
+ `,
50
+ gridRowGap: 0,
51
+ gridColumnGap: tokens_1.spacing[200],
52
+ gridTemplateRows: `${tokens_1.spacing[100]}px 1fr`,
43
53
  gridTemplateColumns: 'min-content 1fr min-content',
54
+ '&:hover, &:focus-visible, &:focus-within:not(:focus)': {
55
+ gridTemplateColumns: 'min-content 1fr min-content',
56
+ },
44
57
  alignItems: 'center',
45
- paddingLeft: 12,
46
- paddingRight: tokens_1.spacing[1],
47
- gap: tokens_1.spacing[2],
48
- paddingBottom: '4px',
49
- maxWidth: tokens_1.spacing[6] * 4,
50
- minWidth: tokens_1.spacing[6] * 2,
51
- height: 36,
58
+ paddingBottom: tokens_1.spacing[100],
59
+ maxWidth: tokens_1.spacing[800] * 6,
60
+ minWidth: tokens_1.spacing[1600] + tokens_1.spacing[800],
61
+ height: tokens_1.spacing[1000],
52
62
  position: 'relative',
53
63
  outline: 'none',
54
- overflow: 'hidden',
55
- paddingTop: tokens_1.spacing[100],
56
64
  backgroundColor: 'var(--workspace-tab-background-color)',
57
65
  color: 'var(--workspace-tab-color)',
58
66
  boxShadow: 'inset -1px -1px 0 0 var(--workspace-tab-border-color)',
@@ -63,26 +71,31 @@ const tabStyles = (0, emotion_1.css)({
63
71
  '&:focus-visible': {
64
72
  boxShadow: 'inset 0 0 0 1px var(--workspace-tab-border-color)',
65
73
  },
66
- [focusedChild('.workspace-tab-close-button')]: {
67
- visibility: 'visible',
74
+ [focusedChild('.workspace-tab-title-container')]: {
75
+ maxWidth: `calc(100% - ${tokens_1.spacing[600]}px - ${tokens_1.spacing[150]}px)`,
68
76
  },
69
- });
70
- const animatedSubtitleStyles = (0, emotion_1.css)({
71
- [focusedChild('.workspace-tab-title')]: {
72
- transform: 'translateY(6px)',
77
+ [focusedChild('.workspace-tab-close-button')]: {
78
+ display: 'inline-block',
79
+ position: 'absolute',
80
+ right: tokens_1.spacing[100],
81
+ bottom: tokens_1.spacing[100] + tokens_1.spacing[50],
73
82
  },
74
- [focusedChild('.workspace-tab-subtitle')]: {
75
- opacity: 1,
76
- transform: 'translateY(-4px)',
77
- pointerEvents: 'auto',
83
+ '&::before': {
84
+ content: '""',
85
+ backgroundColor: 'var(--workspace-tab-top-border-color)',
86
+ height: tokens_1.spacing[100],
87
+ width: '100%',
88
+ display: 'block',
89
+ gridArea: 'top',
78
90
  },
79
91
  });
80
92
  const tabLightThemeStyles = (0, emotion_1.css)({
81
93
  '--workspace-tab-background-color': palette_1.palette.gray.light3,
82
94
  '--workspace-tab-selected-background-color': palette_1.palette.white,
83
95
  '--workspace-tab-border-color': palette_1.palette.gray.light2,
96
+ '--workspace-tab-top-border-color': 'transparent',
84
97
  '--workspace-tab-color': palette_1.palette.gray.base,
85
- '--workspace-tab-selected-color': palette_1.palette.green.dark2,
98
+ '--workspace-tab-selected-color': palette_1.palette.gray.dark3,
86
99
  '--workspace-tab-selected-border-color': 'transparent',
87
100
  '&:focus-visible': {
88
101
  '--workspace-tab-selected-color': palette_1.palette.blue.base,
@@ -93,12 +106,13 @@ const tabDarkThemeStyles = (0, emotion_1.css)({
93
106
  '--workspace-tab-background-color': palette_1.palette.gray.dark3,
94
107
  '--workspace-tab-selected-background-color': palette_1.palette.black,
95
108
  '--workspace-tab-border-color': palette_1.palette.gray.dark2,
109
+ '--workspace-tab-top-border-color': 'transparent',
96
110
  '--workspace-tab-color': palette_1.palette.gray.base,
97
- '--workspace-tab-selected-color': palette_1.palette.green.base,
111
+ '--workspace-tab-selected-color': palette_1.palette.white,
98
112
  '--workspace-tab-selected-border-color': 'transparent',
99
113
  '&:focus-visible': {
100
114
  '--workspace-tab-selected-color': palette_1.palette.blue.light1,
101
- '--workspace-tab-border-color': palette_1.palette.blue.light1,
115
+ '--workspace-tab-`border-color`': palette_1.palette.blue.light1,
102
116
  },
103
117
  });
104
118
  const selectedTabStyles = (0, emotion_1.css)({
@@ -108,25 +122,28 @@ const selectedTabStyles = (0, emotion_1.css)({
108
122
  '&:hover': {
109
123
  cursor: 'default',
110
124
  },
125
+ '&::before': {
126
+ backgroundColor: 'var(--workspace-tab-selected-top-border-color)',
127
+ filter: 'brightness(0.85) saturate(2)',
128
+ },
111
129
  });
112
- const selectedThemedTabStyles = (0, emotion_1.css)({
113
- borderTop: `${tokens_1.spacing[100]}px solid var(--workspace-tab-selected-border-color)`,
114
- paddingTop: 0,
115
- });
130
+ const selectedThemedTabStyles = (0, emotion_1.css)({});
116
131
  const draggingTabStyles = (0, emotion_1.css)({
117
132
  cursor: 'grabbing !important',
118
133
  });
119
134
  const tabIconStyles = (0, emotion_1.css)({
120
135
  color: 'currentColor',
136
+ marginLeft: tokens_1.spacing[300],
121
137
  });
122
138
  const tabTitleContainerStyles = (0, emotion_1.css)({
123
139
  position: 'relative',
124
140
  minWidth: 0,
141
+ marginRight: tokens_1.spacing[100],
125
142
  });
126
143
  const tabTitleStyles = (0, emotion_1.css)({
127
- fontSize: 12,
144
+ fontSize: '12px',
128
145
  lineHeight: '16px',
129
- fontWeight: 700,
146
+ fontWeight: 'normal',
130
147
  color: 'currentColor',
131
148
  whiteSpace: 'nowrap',
132
149
  overflow: 'hidden',
@@ -135,31 +152,11 @@ const tabTitleStyles = (0, emotion_1.css)({
135
152
  transition: tabTransition,
136
153
  transitionProperty: 'opacity, transform',
137
154
  });
138
- const tabSubtitleStyles = (0, emotion_1.css)({
139
- position: 'absolute',
140
- top: 0,
141
- left: 0,
142
- width: '100%',
143
- height: '100%',
144
- fontSize: 10,
145
- lineHeight: '12px',
146
- color: 'var(--workspace-tab-color)',
147
- whiteSpace: 'nowrap',
148
- overflow: 'hidden',
149
- textOverflow: 'ellipsis',
150
- opacity: 0,
151
- transform: 'translateY(0)',
152
- transition: tabTransition,
153
- transitionProperty: 'opacity, transform',
154
- pointerEvents: 'none',
155
- });
156
155
  const closeButtonStyles = (0, emotion_1.css)({
157
- visibility: 'hidden',
158
- });
159
- const selectedCloseButtonStyles = (0, emotion_1.css)({
160
- visibility: 'visible',
156
+ display: 'none',
157
+ marginRight: tokens_1.spacing[100],
161
158
  });
162
- function Tab({ connectionName, type, title, isSelected, isDragging, onSelect, onClose, tabContentId, iconGlyph, subtitle, tabTheme, ...props }) {
159
+ function Tab({ connectionName, type, title, tooltip, isSelected, isDragging, onSelect, onClose, tabContentId, iconGlyph, tabTheme, ...props }) {
163
160
  const darkMode = (0, use_theme_1.useDarkMode)();
164
161
  const defaultActionProps = (0, use_default_action_1.useDefaultAction)(onSelect);
165
162
  const { listeners, setNodeRef, transform, transition } = (0, sortable_1.useSortable)({
@@ -176,19 +173,27 @@ function Tab({ connectionName, type, title, isSelected, isDragging, onSelect, on
176
173
  transform: utilities_1.CSS.Transform.toString(transform),
177
174
  transition,
178
175
  cursor: 'grabbing !important',
179
- minWidth: (subtitle?.length ?? 0) > 16 ? tokens_1.spacing[6] * 3 : undefined,
180
176
  };
181
- return (react_1.default.createElement("div", { ref: setNodeRef, style: style, className: (0, emotion_1.cx)(tabStyles, themeClass, isSelected && selectedTabStyles, isSelected && tabTheme && selectedThemedTabStyles, isDragging && draggingTabStyles, subtitle && animatedSubtitleStyles), "aria-selected": isSelected, role: "tab", tabIndex: isSelected ? 0 : -1, "aria-controls": tabContentId, "data-testid": "workspace-tab-button", "data-connectionName": connectionName, "data-type": type, title: subtitle ? subtitle : title, ...tabProps },
182
- iconGlyph === 'Logo' && (react_1.default.createElement(leafygreen_1.MongoDBLogoMark, { height: 16, role: "presentation", className: tabIconStyles, "data-testid": `workspace-tab-icon-${iconGlyph}` })),
183
- iconGlyph !== 'Logo' && (react_1.default.createElement(leafygreen_1.Icon, { size: "small", role: "presentation", className: tabIconStyles, glyph: iconGlyph, "data-testid": `workspace-tab-icon-${iconGlyph}` })),
184
- react_1.default.createElement("div", { className: tabTitleContainerStyles },
185
- react_1.default.createElement("div", { className: (0, emotion_1.cx)(tabTitleStyles, 'workspace-tab-title') }, title),
186
- subtitle && (react_1.default.createElement("div", { className: (0, emotion_1.cx)(tabSubtitleStyles, 'workspace-tab-subtitle') }, subtitle))),
187
- react_1.default.createElement(leafygreen_1.IconButton, { className: (0, emotion_1.cx)(closeButtonStyles, isSelected && selectedCloseButtonStyles, 'workspace-tab-close-button'), onClick: (e) => {
188
- e.stopPropagation();
189
- onClose();
190
- }, "aria-label": "Close Tab", "data-testid": "close-workspace-tab" },
191
- react_1.default.createElement(leafygreen_1.Icon, { glyph: "X", role: "presentation" }))));
177
+ return (react_1.default.createElement(leafygreen_2.Tooltip, { enabled: !!tooltip, trigger: react_1.default.createElement("div", { ref: setNodeRef, style: style, className: (0, emotion_1.cx)(tabStyles, themeClass, isSelected && selectedTabStyles, isSelected && tabTheme && selectedThemedTabStyles, isDragging && draggingTabStyles), "aria-selected": isSelected, role: "tab", tabIndex: isSelected ? 0 : -1, "aria-controls": tabContentId, "data-testid": "workspace-tab-button", "data-connectionName": connectionName, "data-type": type, ...tabProps },
178
+ iconGlyph === 'Logo' && (react_1.default.createElement(logo_icon_1.LogoIcon, { height: 16, color: isSelected
179
+ ? 'var(--workspace-tab-selected-color)'
180
+ : 'var(--workspace-tab-color)', role: "presentation", className: tabIconStyles, "data-testid": `workspace-tab-icon-${iconGlyph}` })),
181
+ iconGlyph === 'Server' && (react_1.default.createElement(server_icon_1.ServerIcon, { color: isSelected
182
+ ? 'var(--workspace-tab-selected-color)'
183
+ : 'var(--workspace-tab-color)', className: tabIconStyles, "data-testid": `workspace-tab-icon-${iconGlyph}` })),
184
+ !['Logo', 'Server'].includes(iconGlyph) && (react_1.default.createElement(leafygreen_1.Icon, { size: "small", role: "presentation", className: tabIconStyles, glyph: iconGlyph, "data-testid": `workspace-tab-icon-${iconGlyph}` })),
185
+ react_1.default.createElement("div", { className: (0, emotion_1.cx)(tabTitleContainerStyles, 'workspace-tab-title-container') },
186
+ react_1.default.createElement("div", { className: (0, emotion_1.cx)(tabTitleStyles, 'workspace-tab-title') }, title)),
187
+ react_1.default.createElement(leafygreen_1.IconButton, { className: (0, emotion_1.cx)(closeButtonStyles, 'workspace-tab-close-button'), onClick: (e) => {
188
+ e.stopPropagation();
189
+ onClose();
190
+ }, "aria-label": "Close Tab", "data-testid": "close-workspace-tab" },
191
+ react_1.default.createElement(leafygreen_1.Icon, { glyph: "X", role: "presentation" }))) }, tooltip && (react_1.default.createElement("div", { "data-testid": "workspace-tab-tooltip" }, tooltip.map(([label, value]) => (react_1.default.createElement("div", { key: label },
192
+ react_1.default.createElement("b", null,
193
+ label,
194
+ ":"),
195
+ " ",
196
+ value)))))));
192
197
  }
193
198
  exports.Tab = Tab;
194
199
  //# sourceMappingURL=tab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab.js","sourceRoot":"","sources":["../../../src/components/workspace-tabs/tab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tab.js","sourceRoot":"","sources":["../../../src/components/workspace-tabs/tab.tsx"],"names":[],"mappings":"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"}
@@ -17,10 +17,10 @@ export type TabProps = {
17
17
  id: string;
18
18
  type: string;
19
19
  title: string;
20
- subtitle?: string;
20
+ tooltip?: [string, string][];
21
21
  connectionId?: string;
22
- iconGlyph: Extract<keyof typeof glyphs, string> | 'Logo';
23
- } & Omit<React.HTMLProps<HTMLDivElement>, 'id' | 'title' | 'subtitle'>;
22
+ iconGlyph: Extract<keyof typeof glyphs, string> | 'Logo' | 'Server';
23
+ } & Omit<React.HTMLProps<HTMLDivElement>, 'id' | 'title'>;
24
24
  export declare function useRovingTabIndex<T extends HTMLElement = HTMLElement>({ currentTabbable, }: {
25
25
  currentTabbable: number;
26
26
  }): React.HTMLProps<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-tabs.d.ts","sourceRoot":"","sources":["../../../src/components/workspace-tabs/workspace-tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAuBlD,eAAO,MAAM,wBAAwB,QAAgC,CAAC;AACtE,eAAO,MAAM,uBAAuB,QAAgC,CAAC;AA4HrE,KAAK,kBAAkB,GAAG;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC,MAAM,OAAO,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;CAC1D,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,UAAU,CAAC,CAAC;AAEvE,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,EACrE,eAAe,GAChB,EAAE;IACD,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAyBrB;AA+GD,iBAAS,aAAa,CAAC,EACrB,CAAC,YAAY,CAAC,EAAE,SAAS,EACzB,cAAc,EACd,UAAU,EACV,SAAS,EACT,WAAW,EACX,eAAe,EACf,eAAe,EACf,IAAI,EACJ,gBAAgB,GACjB,EAAE,kBAAkB,eA0GpB;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"workspace-tabs.d.ts","sourceRoot":"","sources":["../../../src/components/workspace-tabs/workspace-tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAuBlD,eAAO,MAAM,wBAAwB,QAAgC,CAAC;AACtE,eAAO,MAAM,uBAAuB,QAAgC,CAAC;AA4HrE,KAAK,kBAAkB,GAAG;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC,MAAM,OAAO,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,QAAQ,CAAC;CACrE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC;AAE1D,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,EACrE,eAAe,GAChB,EAAE;IACD,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAyBrB;AA+GD,iBAAS,aAAa,CAAC,EACrB,CAAC,YAAY,CAAC,EAAE,SAAS,EACzB,cAAc,EACd,UAAU,EACV,SAAS,EACT,WAAW,EACX,eAAe,EACf,eAAe,EACf,IAAI,EACJ,gBAAgB,GACjB,EAAE,kBAAkB,eA0GpB;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -3,7 +3,11 @@ import { Variant as ConfirmationModalVariant } from '@leafygreen-ui/confirmation
3
3
  import ConfirmationModal from '../components/modals/confirmation-modal';
4
4
  export { ConfirmationModalVariant };
5
5
  type ConfirmationModalProps = React.ComponentProps<typeof ConfirmationModal>;
6
- type ConfirmationProperties = Partial<Pick<ConfirmationModalProps, 'title' | 'buttonText' | 'variant' | 'requiredInputText'>> & {
6
+ type ConfirmationProperties = Partial<Pick<ConfirmationModalProps, 'title' | 'variant' | 'requiredInputText'>> & {
7
+ buttonText?: React.ReactNode;
8
+ cancelButtonText?: React.ReactNode;
9
+ hideConfirmButton?: boolean;
10
+ hideCancelButton?: boolean;
7
11
  description?: React.ReactNode;
8
12
  signal?: AbortSignal;
9
13
  'data-testid'?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"use-confirmation.d.ts","sourceRoot":"","sources":["../../src/hooks/use-confirmation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AACxF,OAAO,iBAAiB,MAAM,yCAAyC,CAAC;AAExE,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAEpC,KAAK,sBAAsB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE7E,KAAK,sBAAsB,GAAG,OAAO,CACnC,IAAI,CACF,sBAAsB,EACtB,OAAO,GAAG,YAAY,GAAG,SAAS,GAAG,mBAAmB,CACzD,CACF,GAAG;IACF,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAyDF,eAAO,MAAM,gBAAgB,UAhBH,sBAAsB,qBAiBc,CAAC;AAY/D,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAmFzC,CAAC;AAEF,eAAO,MAAM,oBAAoB;8BAtJL,sBAAsB,KAAK,QAAQ,OAAO,CAAC;CA8JtE,CAAC"}
1
+ {"version":3,"file":"use-confirmation.d.ts","sourceRoot":"","sources":["../../src/hooks/use-confirmation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AACxF,OAAO,iBAAiB,MAAM,yCAAyC,CAAC;AAGxE,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAEpC,KAAK,sBAAsB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE7E,KAAK,sBAAsB,GAAG,OAAO,CACnC,IAAI,CAAC,sBAAsB,EAAE,OAAO,GAAG,SAAS,GAAG,mBAAmB,CAAC,CACxE,GAAG;IACF,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAyDF,eAAO,MAAM,gBAAgB,UAhBH,sBAAsB,qBAiBc,CAAC;AAgB/D,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EA8FzC,CAAC;AAEF,eAAO,MAAM,oBAAoB;8BArKL,sBAAsB,KAAK,QAAQ,OAAO,CAAC;CA6KtE,CAAC"}
@@ -31,6 +31,7 @@ const react_1 = __importStar(require("react"));
31
31
  const confirmation_modal_1 = require("@leafygreen-ui/confirmation-modal");
32
32
  Object.defineProperty(exports, "ConfirmationModalVariant", { enumerable: true, get: function () { return confirmation_modal_1.Variant; } });
33
33
  const confirmation_modal_2 = __importDefault(require("../components/modals/confirmation-modal"));
34
+ const emotion_1 = require("@leafygreen-ui/emotion");
34
35
  let confirmationId = 0;
35
36
  class GlobalConfirmation extends EventTarget {
36
37
  showConfirmation(props) {
@@ -51,6 +52,9 @@ const ConfirmationModalContext = react_1.default.createContext({
51
52
  isMounted: false,
52
53
  showConfirmation: exports.showConfirmation,
53
54
  });
55
+ const hideButtonStyles = (0, emotion_1.css)({
56
+ display: 'none !important',
57
+ });
54
58
  const ConfirmationModalArea = ({ children }) => {
55
59
  const hasParentContext = (0, react_1.useContext)(ConfirmationModalContext).isMounted;
56
60
  const [confirmationProps, setConfirmationProps] = (0, react_1.useState)({
@@ -98,7 +102,19 @@ const ConfirmationModalArea = ({ children }) => {
98
102
  }
99
103
  return (react_1.default.createElement(ConfirmationModalContext.Provider, { value: contextValue },
100
104
  children,
101
- react_1.default.createElement(confirmation_modal_2.default, { key: confirmationId, "data-testid": confirmationProps['data-testid'] ?? 'confirmation-modal', open: confirmationProps.open, title: confirmationProps.title ?? 'Are you sure?', variant: confirmationProps.variant ?? confirmation_modal_1.Variant.Default, buttonText: confirmationProps.buttonText ?? 'Confirm', requiredInputText: confirmationProps.requiredInputText ?? undefined, onConfirm: handleConfirm, onCancel: handleCancel }, confirmationProps.description)));
105
+ react_1.default.createElement(confirmation_modal_2.default, { key: confirmationId, "data-testid": confirmationProps['data-testid'] ?? 'confirmation-modal', open: confirmationProps.open, title: confirmationProps.title ?? 'Are you sure?', variant: confirmationProps.variant ?? confirmation_modal_1.Variant.Default, confirmButtonProps: {
106
+ className: confirmationProps.hideConfirmButton
107
+ ? hideButtonStyles
108
+ : undefined,
109
+ children: confirmationProps.buttonText ?? 'Confirm',
110
+ onClick: handleConfirm,
111
+ }, cancelButtonProps: {
112
+ className: confirmationProps.hideCancelButton
113
+ ? hideButtonStyles
114
+ : undefined,
115
+ children: confirmationProps.cancelButtonText ?? 'Cancel',
116
+ onClick: handleCancel,
117
+ }, requiredInputText: confirmationProps.requiredInputText ?? undefined }, confirmationProps.description)));
102
118
  };
103
119
  exports.ConfirmationModalArea = ConfirmationModalArea;
104
120
  const useConfirmationModal = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"use-confirmation.js","sourceRoot":"","sources":["../../src/hooks/use-confirmation.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-confirmation.js","sourceRoot":"","sources":["../../src/hooks/use-confirmation.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /// <reference types="react" />
2
+ import { type VariableSizeList } from 'react-window';
3
+ export type VirtualListItemObserverParams<T> = {
4
+ listRef: React.RefObject<VariableSizeList>;
5
+ items: T[];
6
+ rowGap?: number;
7
+ estimateItemInitialHeight(item: T): number;
8
+ };
9
+ export type ListItemObserver = {
10
+ observe(this: void, element: HTMLDivElement, index: number): void;
11
+ unobserve(this: void, element: HTMLDivElement, index: number): void;
12
+ };
13
+ export declare const useVirtualListItemObserver: <T>({ listRef, items, rowGap, estimateItemInitialHeight, }: VirtualListItemObserverParams<T>) => {
14
+ observer: ListItemObserver;
15
+ estimatedItemSize: number;
16
+ getItemSize(this: void, index: number): number;
17
+ };
18
+ //# sourceMappingURL=use-virtual-list-item-observer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-virtual-list-item-observer.d.ts","sourceRoot":"","sources":["../../src/hooks/use-virtual-list-item-observer.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,MAAM,6BAA6B,CAAC,CAAC,IAAI;IAC7C,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC3C,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yBAAyB,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAClE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACrE,CAAC;AAEF,eAAO,MAAM,0BAA0B;cAM3B,gBAAgB;uBACP,MAAM;sBACP,IAAI,SAAS,MAAM,GAAG,MAAM;CA8H/C,CAAC"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useVirtualListItemObserver = void 0;
4
+ const lodash_1 = require("lodash");
5
+ const react_1 = require("react");
6
+ const useVirtualListItemObserver = ({ listRef, items, rowGap, estimateItemInitialHeight, }) => {
7
+ const [itemsHeights, setItemsHeights] = (0, react_1.useState)(items.map(estimateItemInitialHeight));
8
+ const itemsHeightsRef = (0, react_1.useRef)(itemsHeights);
9
+ itemsHeightsRef.current = itemsHeights;
10
+ const observedElements = (0, react_1.useRef)(new WeakMap());
11
+ const oldRaf = (0, react_1.useRef)();
12
+ const resizeObserver = (0, react_1.useMemo)(() => {
13
+ return new ResizeObserver((entries) => {
14
+ if (oldRaf.current) {
15
+ cancelAnimationFrame(oldRaf.current);
16
+ oldRaf.current = undefined;
17
+ }
18
+ oldRaf.current = requestAnimationFrame(() => {
19
+ const sparseModifiedIndexes = [];
20
+ for (const { target, contentRect } of entries) {
21
+ if (target instanceof HTMLDivElement) {
22
+ const targetIndex = observedElements.current.get(target);
23
+ if (targetIndex !== undefined) {
24
+ sparseModifiedIndexes[targetIndex] = contentRect.height;
25
+ }
26
+ }
27
+ }
28
+ const previousHeights = [...itemsHeightsRef.current];
29
+ const newHeights = Object.assign(new Array(), previousHeights, sparseModifiedIndexes);
30
+ if ((0, lodash_1.isEqual)(previousHeights, newHeights)) {
31
+ oldRaf.current = undefined;
32
+ return;
33
+ }
34
+ setItemsHeights(newHeights);
35
+ const indexToResetAfter = sparseModifiedIndexes.findIndex((height) => typeof height === 'number');
36
+ if (indexToResetAfter !== -1) {
37
+ listRef.current?.resetAfterIndex(indexToResetAfter);
38
+ }
39
+ oldRaf.current = undefined;
40
+ });
41
+ });
42
+ }, []);
43
+ const getItemSize = (0, react_1.useCallback)((idx) => {
44
+ const itemHeight = itemsHeights[idx] ?? estimateItemInitialHeight(items[idx]);
45
+ if (rowGap !== undefined && idx !== items.length - 1) {
46
+ return itemHeight + rowGap;
47
+ }
48
+ return itemHeight;
49
+ }, [rowGap, itemsHeights, items, estimateItemInitialHeight]);
50
+ const estimatedItemSize = (0, react_1.useMemo)(() => {
51
+ return (items.reduce((total, _item, index) => total + getItemSize(index), 0) /
52
+ items.length);
53
+ }, [items, getItemSize]);
54
+ const listItemObserver = (0, react_1.useMemo)(() => ({
55
+ observe(element, index) {
56
+ observedElements.current.set(element, index);
57
+ resizeObserver.observe(element);
58
+ },
59
+ unobserve(element) {
60
+ observedElements.current.delete(element);
61
+ resizeObserver.unobserve(element);
62
+ },
63
+ }), [resizeObserver]);
64
+ (0, react_1.useEffect)(() => {
65
+ return () => {
66
+ if (oldRaf.current) {
67
+ cancelAnimationFrame(oldRaf.current);
68
+ oldRaf.current = undefined;
69
+ }
70
+ resizeObserver.disconnect();
71
+ };
72
+ }, []);
73
+ return {
74
+ observer: listItemObserver,
75
+ getItemSize,
76
+ estimatedItemSize,
77
+ };
78
+ };
79
+ exports.useVirtualListItemObserver = useVirtualListItemObserver;
80
+ //# sourceMappingURL=use-virtual-list-item-observer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-virtual-list-item-observer.js","sourceRoot":"","sources":["../../src/hooks/use-virtual-list-item-observer.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -33,7 +33,6 @@ export { useId } from '@react-aria/utils';
33
33
  export { VisuallyHidden } from '@react-aria/visually-hidden';
34
34
  export { useToast, openToast, closeToast, ToastArea } from './hooks/use-toast';
35
35
  export { breakpoints, spacing } from '@leafygreen-ui/tokens';
36
- export { Tooltip } from './components/tooltip';
37
36
  import IndexIcon from './components/index-icon';
38
37
  export { default as FormFieldContainer } from './components/form-field-container';
39
38
  export { Modal } from './components/modals/modal';
@@ -93,4 +92,5 @@ export { type BreadcrumbItem, Breadcrumbs } from './components/breadcrumb';
93
92
  export { urlWithUtmParams, RequiredURLSearchParamsProvider, useRequiredURLSearchParams, } from './components/links/link';
94
93
  export { ChevronCollapse } from './components/chevron-collapse-icon';
95
94
  export { formatDate } from './utils/format-date';
95
+ export { VirtualList, type VirtualListRef, type VirtualListProps, type ItemRenderer as VirtualListItemRenderer, } from './components/virtual-list';
96
96
  //# sourceMappingURL=index.d.ts.map