@mongodb-js/compass-components 1.29.2 → 1.30.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.
- package/lib/components/breadcrumb.js +1 -1
- package/lib/components/breadcrumb.js.map +1 -1
- package/lib/components/bson-value.js +4 -0
- package/lib/components/bson-value.js.map +1 -1
- package/lib/components/collapsible-field-set.js +4 -1
- package/lib/components/collapsible-field-set.js.map +1 -1
- package/lib/components/combobox/Chip.js +5 -2
- package/lib/components/combobox/Chip.js.map +1 -1
- package/lib/components/combobox/Combobox.d.ts +9 -0
- package/lib/components/combobox/Combobox.d.ts.map +1 -1
- package/lib/components/combobox/Combobox.js +225 -5
- package/lib/components/combobox/Combobox.js.map +1 -1
- package/lib/components/combobox/Combobox.styles.d.ts +15 -0
- package/lib/components/combobox/Combobox.styles.d.ts.map +1 -1
- package/lib/components/combobox/Combobox.styles.js +19 -2
- package/lib/components/combobox/Combobox.styles.js.map +1 -1
- package/lib/components/combobox/Combobox.types.d.ts +174 -0
- package/lib/components/combobox/Combobox.types.d.ts.map +1 -1
- package/lib/components/combobox/Combobox.types.js +20 -0
- package/lib/components/combobox/Combobox.types.js.map +1 -1
- package/lib/components/combobox/ComboboxMenu/ComboboxMenu.js +5 -0
- package/lib/components/combobox/ComboboxMenu/ComboboxMenu.js.map +1 -1
- package/lib/components/combobox/ComboboxMenu/Menu.styles.d.ts +4 -0
- package/lib/components/combobox/ComboboxMenu/Menu.styles.d.ts.map +1 -1
- package/lib/components/combobox/ComboboxMenu/Menu.styles.js +4 -0
- package/lib/components/combobox/ComboboxMenu/Menu.styles.js.map +1 -1
- package/lib/components/combobox/ComboboxOption.d.ts +3 -0
- package/lib/components/combobox/ComboboxOption.d.ts.map +1 -1
- package/lib/components/combobox/ComboboxOption.js +14 -0
- package/lib/components/combobox/ComboboxOption.js.map +1 -1
- package/lib/components/combobox/Menu.styles.d.ts +4 -0
- package/lib/components/combobox/Menu.styles.d.ts.map +1 -1
- package/lib/components/combobox/Menu.styles.js +7 -3
- package/lib/components/combobox/Menu.styles.js.map +1 -1
- package/lib/components/combobox/utils/OptionObjectUtils.d.ts +18 -0
- package/lib/components/combobox/utils/OptionObjectUtils.d.ts.map +1 -1
- package/lib/components/combobox/utils/OptionObjectUtils.js +18 -0
- package/lib/components/combobox/utils/OptionObjectUtils.js.map +1 -1
- package/lib/components/combobox/utils/flattenChildren.d.ts +8 -0
- package/lib/components/combobox/utils/flattenChildren.d.ts.map +1 -1
- package/lib/components/combobox/utils/flattenChildren.js +13 -1
- package/lib/components/combobox/utils/flattenChildren.js.map +1 -1
- package/lib/components/combobox/utils/getNameAndValue.d.ts +9 -0
- package/lib/components/combobox/utils/getNameAndValue.d.ts.map +1 -1
- package/lib/components/combobox/utils/getNameAndValue.js +10 -1
- package/lib/components/combobox/utils/getNameAndValue.js.map +1 -1
- package/lib/components/combobox/utils/wrapJSX.d.ts +12 -0
- package/lib/components/combobox/utils/wrapJSX.d.ts.map +1 -1
- package/lib/components/combobox/utils/wrapJSX.js +21 -0
- package/lib/components/combobox/utils/wrapJSX.js.map +1 -1
- package/lib/components/combobox-with-custom-option.js +2 -0
- package/lib/components/combobox-with-custom-option.js.map +1 -1
- package/lib/components/compass-components-provider.d.ts +23 -0
- package/lib/components/compass-components-provider.d.ts.map +1 -1
- package/lib/components/compass-components-provider.js +22 -1
- package/lib/components/compass-components-provider.js.map +1 -1
- package/lib/components/content-with-fallback.js +3 -0
- package/lib/components/content-with-fallback.js.map +1 -1
- package/lib/components/document-list/document-actions-group.js +10 -1
- package/lib/components/document-list/document-actions-group.js.map +1 -1
- package/lib/components/document-list/document-edit-actions-footer.js +3 -0
- package/lib/components/document-list/document-edit-actions-footer.js.map +1 -1
- package/lib/components/document-list/document.js +23 -1
- package/lib/components/document-list/document.js.map +1 -1
- package/lib/components/document-list/element-actions.js +2 -0
- package/lib/components/document-list/element-actions.js.map +1 -1
- package/lib/components/document-list/element-editors.js +51 -9
- package/lib/components/document-list/element-editors.js.map +1 -1
- package/lib/components/document-list/element.js +45 -5
- package/lib/components/document-list/element.js.map +1 -1
- package/lib/components/empty-content.js +1 -1
- package/lib/components/empty-content.js.map +1 -1
- package/lib/components/error-boundary.js +3 -0
- package/lib/components/error-boundary.js.map +1 -1
- package/lib/components/feedback-popover.js +3 -0
- package/lib/components/feedback-popover.js.map +1 -1
- package/lib/components/file-input.js +22 -3
- package/lib/components/file-input.js.map +1 -1
- package/lib/components/guide-cue/guide-cue-groups.js +3 -0
- package/lib/components/guide-cue/guide-cue-groups.js.map +1 -1
- package/lib/components/guide-cue/guide-cue-service.js +5 -0
- package/lib/components/guide-cue/guide-cue-service.js.map +1 -1
- package/lib/components/guide-cue/guide-cue.js +14 -1
- package/lib/components/guide-cue/guide-cue.js.map +1 -1
- package/lib/components/icons/favorite-icon.js +3 -1
- package/lib/components/icons/favorite-icon.js.map +1 -1
- package/lib/components/index-keys-badge.js +1 -0
- package/lib/components/index-keys-badge.js.map +1 -1
- package/lib/components/inline-definition.js +1 -0
- package/lib/components/inline-definition.js.map +1 -1
- package/lib/components/interactive-popover.d.ts +3 -0
- package/lib/components/interactive-popover.d.ts.map +1 -1
- package/lib/components/interactive-popover.js +6 -0
- package/lib/components/interactive-popover.js.map +1 -1
- package/lib/components/item-action-controls.d.ts +2 -1
- package/lib/components/item-action-controls.d.ts.map +1 -1
- package/lib/components/item-action-controls.js +31 -4
- package/lib/components/item-action-controls.js.map +1 -1
- package/lib/components/keyline-card.d.ts +7 -0
- package/lib/components/keyline-card.d.ts.map +1 -1
- package/lib/components/leafygreen.js +8 -0
- package/lib/components/leafygreen.js.map +1 -1
- package/lib/components/links/link.js +2 -0
- package/lib/components/links/link.js.map +1 -1
- package/lib/components/modals/modal-body.js +2 -0
- package/lib/components/modals/modal-body.js.map +1 -1
- package/lib/components/modals/modal.js +8 -0
- package/lib/components/modals/modal.js.map +1 -1
- package/lib/components/options-toggle.js +5 -1
- package/lib/components/options-toggle.js.map +1 -1
- package/lib/components/placeholder.js +1 -0
- package/lib/components/placeholder.js.map +1 -1
- package/lib/components/resize-handle.js +4 -0
- package/lib/components/resize-handle.js.map +1 -1
- package/lib/components/resizeable-sidebar.js +2 -0
- package/lib/components/resizeable-sidebar.js.map +1 -1
- package/lib/components/signal-popover.d.ts +19 -0
- package/lib/components/signal-popover.d.ts.map +1 -1
- package/lib/components/signal-popover.js +43 -3
- package/lib/components/signal-popover.js.map +1 -1
- package/lib/components/tab-nav-bar.d.ts +11 -4
- package/lib/components/tab-nav-bar.d.ts.map +1 -1
- package/lib/components/tab-nav-bar.js +14 -11
- package/lib/components/tab-nav-bar.js.map +1 -1
- package/lib/components/toast-body.js +1 -0
- package/lib/components/toast-body.js.map +1 -1
- package/lib/components/virtual-grid.d.ts +42 -0
- package/lib/components/virtual-grid.d.ts.map +1 -1
- package/lib/components/virtual-grid.js +3 -0
- package/lib/components/virtual-grid.js.map +1 -1
- package/lib/components/virtual-list.d.ts +69 -0
- package/lib/components/virtual-list.d.ts.map +1 -1
- package/lib/components/virtual-list.js +9 -1
- package/lib/components/virtual-list.js.map +1 -1
- package/lib/components/workspace-container.js +10 -0
- package/lib/components/workspace-container.js.map +1 -1
- package/lib/components/workspace-tabs/tab.d.ts.map +1 -1
- package/lib/components/workspace-tabs/tab.js +15 -1
- package/lib/components/workspace-tabs/tab.js.map +1 -1
- package/lib/components/workspace-tabs/workspace-tabs.js +5 -1
- package/lib/components/workspace-tabs/workspace-tabs.js.map +1 -1
- package/lib/hooks/use-confirmation.js +12 -1
- package/lib/hooks/use-confirmation.js.map +1 -1
- package/lib/hooks/use-default-action.d.ts +8 -0
- package/lib/hooks/use-default-action.d.ts.map +1 -1
- package/lib/hooks/use-default-action.js +11 -1
- package/lib/hooks/use-default-action.js.map +1 -1
- package/lib/hooks/use-effect-on-change.d.ts +6 -0
- package/lib/hooks/use-effect-on-change.d.ts.map +1 -1
- package/lib/hooks/use-effect-on-change.js +18 -1
- package/lib/hooks/use-effect-on-change.js.map +1 -1
- package/lib/hooks/use-focus-ring.d.ts +19 -0
- package/lib/hooks/use-focus-ring.d.ts.map +1 -1
- package/lib/hooks/use-focus-ring.js +21 -0
- package/lib/hooks/use-focus-ring.js.map +1 -1
- package/lib/hooks/use-hotkeys.d.ts +14 -0
- package/lib/hooks/use-hotkeys.d.ts.map +1 -1
- package/lib/hooks/use-hotkeys.js +18 -3
- package/lib/hooks/use-hotkeys.js.map +1 -1
- package/lib/hooks/use-persisted-state.d.ts +9 -0
- package/lib/hooks/use-persisted-state.d.ts.map +1 -1
- package/lib/hooks/use-persisted-state.js +9 -0
- package/lib/hooks/use-persisted-state.js.map +1 -1
- package/lib/hooks/use-scrollbars.d.ts +7 -0
- package/lib/hooks/use-scrollbars.d.ts.map +1 -1
- package/lib/hooks/use-scrollbars.js +19 -0
- package/lib/hooks/use-scrollbars.js.map +1 -1
- package/lib/hooks/use-sort.js +6 -0
- package/lib/hooks/use-sort.js.map +1 -1
- package/lib/hooks/use-stacked-component.js +1 -0
- package/lib/hooks/use-stacked-component.js.map +1 -1
- package/lib/hooks/use-theme.js +10 -1
- package/lib/hooks/use-theme.js.map +1 -1
- package/lib/hooks/use-toast.d.ts +15 -0
- package/lib/hooks/use-toast.d.ts.map +1 -1
- package/lib/hooks/use-toast.js +30 -0
- package/lib/hooks/use-toast.js.map +1 -1
- package/lib/hooks/use-virtual-grid.d.ts +8 -0
- package/lib/hooks/use-virtual-grid.d.ts.map +1 -1
- package/lib/hooks/use-virtual-grid.js +29 -0
- package/lib/hooks/use-virtual-grid.js.map +1 -1
- package/lib/hooks/use-virtual-list-item-observer.js +23 -0
- package/lib/hooks/use-virtual-list-item-observer.js.map +1 -1
- package/lib/utils/format-date.js +2 -0
- package/lib/utils/format-date.js.map +1 -1
- package/lib/utils/merge-props.js +1 -0
- package/lib/utils/merge-props.js.map +1 -1
- package/lib/utils/rafraf.d.ts +10 -0
- package/lib/utils/rafraf.d.ts.map +1 -1
- package/lib/utils/rafraf.js +10 -0
- package/lib/utils/rafraf.js.map +1 -1
- package/package.json +7 -10
- package/lib/hooks/use-virtual-grid.test.d.ts +0 -2
- package/lib/hooks/use-virtual-grid.test.d.ts.map +0 -1
- package/lib/hooks/use-virtual-grid.test.js +0 -210
- package/lib/hooks/use-virtual-grid.test.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-scrollbars.js","sourceRoot":"","sources":["../../src/hooks/use-scrollbars.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAgC;AAChC,oDAAiD;AACjD,oDAAiD;AACjD,+CAAuC;AACvC,gFAAsD;AAEtD,2CAA0C;AAE1C,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,MAAM,eAAe,GAAG,IAAA,aAAG,EAAC;IAC1B,4BAA4B,EAAE;
|
|
1
|
+
{"version":3,"file":"use-scrollbars.js","sourceRoot":"","sources":["../../src/hooks/use-scrollbars.tsx"],"names":[],"mappings":"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"}
|
package/lib/hooks/use-sort.js
CHANGED
|
@@ -35,10 +35,12 @@ const controlsContainer = (0, emotion_1.css)({
|
|
|
35
35
|
gap: tokens_1.spacing[2],
|
|
36
36
|
});
|
|
37
37
|
const label = (0, emotion_1.css)({
|
|
38
|
+
// Because leafygreen
|
|
38
39
|
margin: '0 !important',
|
|
39
40
|
padding: '0 !important',
|
|
40
41
|
});
|
|
41
42
|
const select = (0, emotion_1.css)({
|
|
43
|
+
// Because leafygreen
|
|
42
44
|
'& > button': {
|
|
43
45
|
margin: 0,
|
|
44
46
|
},
|
|
@@ -95,13 +97,17 @@ function useSortedItems(items, { name, order, }, sortFn = null) {
|
|
|
95
97
|
if (!name) {
|
|
96
98
|
return 0;
|
|
97
99
|
}
|
|
100
|
+
// If value we are sorting by doesn't exist on an object, send it all the
|
|
101
|
+
// way to the back of the list
|
|
98
102
|
if (typeof a[name] === 'undefined') {
|
|
99
103
|
return 1;
|
|
100
104
|
}
|
|
101
105
|
const sort = sortFn && sortFn[name];
|
|
106
|
+
// If custom sort is provided for the key, use it
|
|
102
107
|
if (sort) {
|
|
103
108
|
return sort(a[name], b[name], order);
|
|
104
109
|
}
|
|
110
|
+
// Otherwise use default sort method based on the value type
|
|
105
111
|
if (typeof a[name] === 'string') {
|
|
106
112
|
return sortString(a[name], b[name], order);
|
|
107
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-sort.js","sourceRoot":"","sources":["../../src/hooks/use-sort.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAmD;AACnD,6CAA0C;AAC1C,oDAA6C;AAC7C,kDAAgD;AAChD,yDAA+E;AAE/E,MAAM,iBAAiB,GAAG,IAAA,aAAG,EAAC;IAC5B,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,gBAAO,CAAC,CAAC,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,KAAK,GAAG,IAAA,aAAG,EAAC;
|
|
1
|
+
{"version":3,"file":"use-sort.js","sourceRoot":"","sources":["../../src/hooks/use-sort.tsx"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,7 @@ const useStackedComponent = () => {
|
|
|
35
35
|
return (0, react_1.useContext)(StackedComponentContext);
|
|
36
36
|
};
|
|
37
37
|
exports.useStackedComponent = useStackedComponent;
|
|
38
|
+
// TODO(LG-4109): This should be eventually supported by the LG design system
|
|
38
39
|
const withBaseStyles = function (WrappedComponent, usePopoverZIndex) {
|
|
39
40
|
const ComponentWithStackedStyles = (props, ref) => {
|
|
40
41
|
const context = (0, exports.useStackedComponent)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-stacked-component.js","sourceRoot":"","sources":["../../src/hooks/use-stacked-component.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAkE;AAMlE,MAAM,uBAAuB,GAC3B,IAAA,qBAAa,EAAuC,IAAI,CAAC,CAAC;AAErD,MAAM,wBAAwB,GAAG,CAAC,EACvC,MAAM,EACN,QAAQ,GACsD,EAAE,EAAE;IAClE,MAAM,KAAK,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,OAAO,CACL,8BAAC,uBAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IAC3C,QAAQ,CACwB,CACpC,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,wBAAwB,4BAUnC;AAEK,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,OAAO,IAAA,kBAAU,EAAC,uBAAuB,CAAC,CAAC;AAC7C,CAAC,CAAC;AAFW,QAAA,mBAAmB,uBAE9B;
|
|
1
|
+
{"version":3,"file":"use-stacked-component.js","sourceRoot":"","sources":["../../src/hooks/use-stacked-component.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAkE;AAMlE,MAAM,uBAAuB,GAC3B,IAAA,qBAAa,EAAuC,IAAI,CAAC,CAAC;AAErD,MAAM,wBAAwB,GAAG,CAAC,EACvC,MAAM,EACN,QAAQ,GACsD,EAAE,EAAE;IAClE,MAAM,KAAK,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,OAAO,CACL,8BAAC,uBAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IAC3C,QAAQ,CACwB,CACpC,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,wBAAwB,4BAUnC;AAEK,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,OAAO,IAAA,kBAAU,EAAC,uBAAuB,CAAC,CAAC;AAC7C,CAAC,CAAC;AAFW,QAAA,mBAAmB,uBAE9B;AAQF,6EAA6E;AAC7E,MAAM,cAAc,GAAG,UACrB,gBAA+C,EAC/C,gBAA4B;IAE5B,MAAM,0BAA0B,GAAG,CACjC,KAAqB,EACrB,GAAgD,EAChD,EAAE;QACF,MAAM,OAAO,GAAG,IAAA,2BAAmB,GAAE,CAAC;QACtC,MAAM,mBAAmB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;YACvC,IAAI,OAAO,EAAE,MAAM,EAAE;gBACnB,IAAI,gBAAgB,EAAE;oBACpB,OAAO;wBACL,aAAa,EACV,KAAqC,CAAC,aAAa;4BACpD,OAAO,CAAC,MAAM;qBACjB,CAAC;iBACH;qBAAM;oBACL,OAAO;wBACL,KAAK,EAAE;4BACL,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,GAAI,KAAsC,CAAC,KAAK;yBACjD;qBACF,CAAC;iBACH;aACF;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE;YACD,OAAO;YACN,KAAqC,CAAC,aAAa;YACnD,KAAsC,CAAC,KAAK;SAC9C,CAAC,CAAC;QAEH,OAAO,8BAAC,gBAAgB,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,KAAM,mBAAmB,GAAI,CAAC;IAC5E,CAAC,CAAC;IAEF,MAAM,WAAW,GACf,gBAAgB,CAAC,WAAW,IAAI,gBAAgB,CAAC,IAAI,IAAI,WAAW,CAAC;IACvE,0BAA0B,CAAC,WAAW,GAAG,qBAAqB,WAAW,GAAG,CAAC;IAE7E,OAAO,eAAK,CAAC,UAAU,CACrB,0BAA0B,CACA,CAAC;AAC/B,CAAC,CAAC;AAEK,MAAM,0BAA0B,GAAG,UAGxC,gBAA+C;IAE/C,OAAO,cAAc,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AANW,QAAA,0BAA0B,8BAMrC;AAEK,MAAM,iCAAiC,GAAG,UAG/C,gBAA+C;IAE/C,OAAO,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC,CAAC;AANW,QAAA,iCAAiC,qCAM5C"}
|
package/lib/hooks/use-theme.js
CHANGED
|
@@ -40,14 +40,23 @@ function useDarkMode(localDarkMode) {
|
|
|
40
40
|
return darkMode.darkMode;
|
|
41
41
|
}
|
|
42
42
|
exports.useDarkMode = useDarkMode;
|
|
43
|
+
// @deprecated Only left for browser-shell compatibility
|
|
43
44
|
const ThemeProvider = ({ children, theme, }) => {
|
|
44
45
|
return theme.enabled ? (react_1.default.createElement(leafygreen_provider_1.default, { darkMode: theme.theme === Theme.Dark }, children)) : (react_1.default.createElement(react_1.default.Fragment, null, children));
|
|
45
46
|
};
|
|
46
47
|
exports.ThemeProvider = ThemeProvider;
|
|
48
|
+
// High Order Component(HOC) used to inject Compass' theme pulled from the available
|
|
49
|
+
// theme on the React context from LeafyGreen's provider into the wrapped component.
|
|
47
50
|
const withDarkMode = function (WrappedComponent) {
|
|
48
51
|
const ComponentWithDarkMode = (props, ref) => {
|
|
49
52
|
const darkMode = useDarkMode();
|
|
50
|
-
return (react_1.default.createElement(WrappedComponent
|
|
53
|
+
return (react_1.default.createElement(WrappedComponent
|
|
54
|
+
// Set the darkMode before the props so that the props can
|
|
55
|
+
// override the theme if needed.
|
|
56
|
+
, {
|
|
57
|
+
// Set the darkMode before the props so that the props can
|
|
58
|
+
// override the theme if needed.
|
|
59
|
+
darkMode: darkMode, ref: ref, ...props }));
|
|
51
60
|
};
|
|
52
61
|
const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
|
|
53
62
|
ComponentWithDarkMode.displayName = `WithDarkMode(${displayName})`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-theme.js","sourceRoot":"","sources":["../../src/hooks/use-theme.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,0FAE4C;AAE5C,IAAK,KAGJ;AAHD,WAAK,KAAK;IACR,wBAAe,CAAA;IACf,sBAAa,CAAA;AACf,CAAC,EAHI,KAAK,KAAL,KAAK,QAGT;AA+DQ,sBAAK;AA7Dd,SAAgB,WAAW,CAAC,aAAuB;IACjD,MAAM,QAAQ,GAAG,IAAA,iCAAqB,EAAC,aAAa,CAAC,CAAC;IACtD,OAAO,QAAQ,CAAC,QAAQ,CAAC;AAC3B,CAAC;AAHD,kCAGC;
|
|
1
|
+
{"version":3,"file":"use-theme.js","sourceRoot":"","sources":["../../src/hooks/use-theme.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,0FAE4C;AAE5C,IAAK,KAGJ;AAHD,WAAK,KAAK;IACR,wBAAe,CAAA;IACf,sBAAa,CAAA;AACf,CAAC,EAHI,KAAK,KAAL,KAAK,QAGT;AA+DQ,sBAAK;AA7Dd,SAAgB,WAAW,CAAC,aAAuB;IACjD,MAAM,QAAQ,GAAG,IAAA,iCAAqB,EAAC,aAAa,CAAC,CAAC;IACtD,OAAO,QAAQ,CAAC,QAAQ,CAAC;AAC3B,CAAC;AAHD,kCAGC;AAMD,wDAAwD;AACjD,MAAM,aAAa,GAAG,CAAC,EAC5B,QAAQ,EACR,KAAK,GAON,EAAsB,EAAE;IACvB,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CACrB,8BAAC,6BAAkB,IAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,IACrD,QAAQ,CACU,CACtB,CAAC,CAAC,CAAC,CACF,8DAAG,QAAQ,CAAI,CAChB,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,aAAa,iBAiBxB;AAEF,oFAAoF;AACpF,oFAAoF;AACpF,MAAM,YAAY,GAAG,UAGnB,gBAAyE;IAEzE,MAAM,qBAAqB,GAAG,CAC5B,KAAqB,EACrB,GAEC,EACD,EAAE;QACF,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,OAAO,CACL,8BAAC,gBAAgB;QACf,0DAA0D;QAC1D,gCAAgC;;YADhC,0DAA0D;YAC1D,gCAAgC;YAChC,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,GAAG,KACJ,KAAK,GACT,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,WAAW,GACf,gBAAgB,CAAC,WAAW,IAAI,gBAAgB,CAAC,IAAI,IAAI,WAAW,CAAC;IACvE,qBAAqB,CAAC,WAAW,GAAG,gBAAgB,WAAW,GAAG,CAAC;IAEnE,OAAO,eAAK,CAAC,UAAU,CAAC,qBAAqB,CAA4B,CAAC;AAC5E,CAAC,CAAC;AAEc,oCAAY"}
|
package/lib/hooks/use-toast.d.ts
CHANGED
|
@@ -8,5 +8,20 @@ export interface ToastActions {
|
|
|
8
8
|
export declare const openToast: (id: string, props: ToastProperties) => void;
|
|
9
9
|
export declare const closeToast: (id: string) => void;
|
|
10
10
|
export declare const ToastArea: React.FunctionComponent;
|
|
11
|
+
/**
|
|
12
|
+
* @example
|
|
13
|
+
*
|
|
14
|
+
* ```
|
|
15
|
+
* const MyButton = () => {
|
|
16
|
+
* const { openToast } = useToast('namespace');
|
|
17
|
+
* return <button type="button" onClick={() => openToast(
|
|
18
|
+
* 'myToast1', {title: 'This is a notification'})} />
|
|
19
|
+
* };
|
|
20
|
+
*
|
|
21
|
+
* <ToastArea><MyButton/><ToastArea>
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
11
26
|
export declare function useToast(namespace: string): ToastActions;
|
|
12
27
|
//# sourceMappingURL=use-toast.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-toast.d.ts","sourceRoot":"","sources":["../../src/hooks/use-toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAQ3D,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,UAAU,EACR,eAAe,GACf,OAAO,GACP,aAAa,GACb,SAAS,GACT,UAAU,GACV,SAAS,GACT,aAAa,GACb,SAAS,CACZ,CAAC;AAMF,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,KAAK,IAAI,CAAC;IAClE,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAwED,eAAO,MAAM,SAAS,OAnDN,MAAM,SAAS,eAAe,KAAG,IAmDa,CAAC;AAE/D,eAAO,MAAM,UAAU,OA9BN,MAAM,KAAG,IA8BsC,CAAC;AA2DjE,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,iBAmB7B,CAAC;
|
|
1
|
+
{"version":3,"file":"use-toast.d.ts","sourceRoot":"","sources":["../../src/hooks/use-toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAQ3D,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,UAAU,EACR,eAAe,GACf,OAAO,GACP,aAAa,GACb,SAAS,GACT,UAAU,GACV,SAAS,GACT,aAAa,GACb,SAAS,CACZ,CAAC;AAMF,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,KAAK,IAAI,CAAC;IAClE,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAwED,eAAO,MAAM,SAAS,OAnDN,MAAM,SAAS,eAAe,KAAG,IAmDa,CAAC;AAE/D,eAAO,MAAM,UAAU,OA9BN,MAAM,KAAG,IA8BsC,CAAC;AA2DjE,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,iBAmB7B,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAsBxD"}
|
package/lib/hooks/use-toast.js
CHANGED
|
@@ -36,6 +36,7 @@ class GlobalToastState {
|
|
|
36
36
|
this.timeouts = new Map();
|
|
37
37
|
this.toasts = new Map();
|
|
38
38
|
this.onToastsChange = () => {
|
|
39
|
+
/** noop */
|
|
39
40
|
};
|
|
40
41
|
}
|
|
41
42
|
openToast(id, props) {
|
|
@@ -55,6 +56,8 @@ class GlobalToastState {
|
|
|
55
56
|
this.closeToast(id);
|
|
56
57
|
}, toastProps.timeout);
|
|
57
58
|
this.timeouts.set(id, timeoutId);
|
|
59
|
+
// If we are in the node environment, unref the timeout to allow process
|
|
60
|
+
// to exit (this is mostly needed for test environments)
|
|
58
61
|
timeoutId.unref?.();
|
|
59
62
|
}
|
|
60
63
|
this.onToastsChange('push', { id, ...toastProps }, this.toasts);
|
|
@@ -91,11 +94,19 @@ exports.closeToast = toastState.closeToast.bind(toastState);
|
|
|
91
94
|
const toastActions = { openToast: exports.openToast, closeToast: exports.closeToast };
|
|
92
95
|
const ToastContext = (0, react_1.createContext)({
|
|
93
96
|
openToast: () => {
|
|
97
|
+
//
|
|
94
98
|
},
|
|
95
99
|
closeToast: () => {
|
|
100
|
+
//
|
|
96
101
|
},
|
|
97
102
|
});
|
|
98
103
|
const _ToastArea = ({ children }) => {
|
|
104
|
+
// NB: the way leafygreen implements this hook leads to anything specifying
|
|
105
|
+
// toast methods in hooks dependencies to constantly update potentially
|
|
106
|
+
// causing infinite loops of toasts. To work around that we are storing toast
|
|
107
|
+
// interface in a ref so that we can safely use it inside our effects
|
|
108
|
+
//
|
|
109
|
+
// @see {@link https://jira.mongodb.org/browse/LG-3209}
|
|
99
110
|
const toastRef = (0, react_1.useRef)((0, leafygreen_1.useToast)());
|
|
100
111
|
const toastStateRef = (0, react_1.useRef)();
|
|
101
112
|
if (!toastStateRef.current) {
|
|
@@ -104,6 +115,9 @@ const _ToastArea = ({ children }) => {
|
|
|
104
115
|
if (action === 'push') {
|
|
105
116
|
toastRef.current.pushToast({
|
|
106
117
|
...toast,
|
|
118
|
+
// To be able to maintain a global state of toasts, we remove
|
|
119
|
+
// timeout prop as timeouts handled by the GlobalToast state and our
|
|
120
|
+
// timeouts logic doesn't match leafygreen out
|
|
107
121
|
timeout: null,
|
|
108
122
|
});
|
|
109
123
|
}
|
|
@@ -125,6 +139,7 @@ const _ToastArea = ({ children }) => {
|
|
|
125
139
|
const ToastAreaMountedContext = react_1.default.createContext(false);
|
|
126
140
|
const ToastArea = ({ children }) => {
|
|
127
141
|
const stackedContext = (0, use_stacked_component_1.useStackedComponent)();
|
|
142
|
+
// We always want to show the toast over modal or other stacked components that may hide the toast and hence +1
|
|
128
143
|
const stackedElemStyles = (0, react_1.useMemo)(() => {
|
|
129
144
|
const zIndex = stackedContext?.zIndex ? stackedContext.zIndex + 1 : 1;
|
|
130
145
|
return (0, __1.css)({ zIndex });
|
|
@@ -137,6 +152,21 @@ const ToastArea = ({ children }) => {
|
|
|
137
152
|
react_1.default.createElement(_ToastArea, null, children))));
|
|
138
153
|
};
|
|
139
154
|
exports.ToastArea = ToastArea;
|
|
155
|
+
/**
|
|
156
|
+
* @example
|
|
157
|
+
*
|
|
158
|
+
* ```
|
|
159
|
+
* const MyButton = () => {
|
|
160
|
+
* const { openToast } = useToast('namespace');
|
|
161
|
+
* return <button type="button" onClick={() => openToast(
|
|
162
|
+
* 'myToast1', {title: 'This is a notification'})} />
|
|
163
|
+
* };
|
|
164
|
+
*
|
|
165
|
+
* <ToastArea><MyButton/><ToastArea>
|
|
166
|
+
* ```
|
|
167
|
+
*
|
|
168
|
+
* @returns
|
|
169
|
+
*/
|
|
140
170
|
function useToast(namespace) {
|
|
141
171
|
const { openToast: openGlobalToast, closeToast: closeGlobalToast } = (0, react_1.useContext)(ToastContext);
|
|
142
172
|
const openToast = (0, react_1.useCallback)((toastId, toastProperties) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-toast.js","sourceRoot":"","sources":["../../src/hooks/use-toast.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAOe;AAEf,yDAGkC;AAClC,mEAA8D;AAC9D,0BAAyB;AAczB,MAAM,sBAAsB,GAA6B;IACvD,WAAW,EAAE,IAAI;CAClB,CAAC;AAoBF,MAAM,gBAAgB;IAAtB;QACU,aAAQ,GAAG,IAAI,GAAG,EAAyC,CAAC;QAC5D,WAAM,GAAG,IAAI,GAAG,EAA2B,CAAC;QACpD,mBAAc,GAAkB,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"use-toast.js","sourceRoot":"","sources":["../../src/hooks/use-toast.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Hook that adds support for the grid keyboard navigation while handling the
|
|
4
|
+
* focus using the roving tab index
|
|
5
|
+
*
|
|
6
|
+
* {@link https://www.w3.org/TR/wai-aria-1.1/#grid}
|
|
7
|
+
* {@link https://www.w3.org/TR/wai-aria-1.1/#gridcell}
|
|
8
|
+
* {@link https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_roving_tabindex}
|
|
9
|
+
*/
|
|
2
10
|
export declare function useVirtualGridArrowNavigation<T extends HTMLElement = HTMLElement>({ colCount, rowCount, itemsCount, resetActiveItemOnBlur, pageSize, defaultCurrentTabbable, onFocusMove, }: {
|
|
3
11
|
colCount: number;
|
|
4
12
|
rowCount: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-virtual-grid.d.ts","sourceRoot":"","sources":["../../src/hooks/use-virtual-grid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"use-virtual-grid.d.ts","sourceRoot":"","sources":["../../src/hooks/use-virtual-grid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiC/B;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,EACA,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,qBAA4B,EAC5B,QAAY,EACZ,sBAA0B,EAC1B,WAAW,GACZ,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAsL/B"}
|
|
@@ -25,16 +25,30 @@ function getItemIndex(node) {
|
|
|
25
25
|
}
|
|
26
26
|
return Number(node.dataset.vlistItemIdx);
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Hook that adds support for the grid keyboard navigation while handling the
|
|
30
|
+
* focus using the roving tab index
|
|
31
|
+
*
|
|
32
|
+
* {@link https://www.w3.org/TR/wai-aria-1.1/#grid}
|
|
33
|
+
* {@link https://www.w3.org/TR/wai-aria-1.1/#gridcell}
|
|
34
|
+
* {@link https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_roving_tabindex}
|
|
35
|
+
*/
|
|
28
36
|
function useVirtualGridArrowNavigation({ colCount, rowCount, itemsCount, resetActiveItemOnBlur = true, pageSize = 3, defaultCurrentTabbable = 0, onFocusMove, }) {
|
|
29
37
|
const rootNode = (0, react_1.useRef)(null);
|
|
30
38
|
const [tabIndex, setTabIndex] = (0, react_1.useState)(0);
|
|
31
39
|
const [currentTabbable, setCurrentTabbable] = (0, react_1.useState)(defaultCurrentTabbable);
|
|
32
40
|
const onFocus = (0, react_1.useCallback)((evt) => {
|
|
41
|
+
// If we received focus on the grid container itself, this is a keyboard
|
|
42
|
+
// navigation, disable focus on the container to trigger a focus effect
|
|
43
|
+
// for the currentTabbable element
|
|
33
44
|
if (evt.target === evt.currentTarget) {
|
|
34
45
|
setTabIndex(-1);
|
|
35
46
|
}
|
|
36
47
|
else {
|
|
37
48
|
const focusedItem = closest(evt.target, vgridItemSelector());
|
|
49
|
+
// If focus was received somewhere inside grid item, disable focus on
|
|
50
|
+
// the container and mark item that got the interaction as the
|
|
51
|
+
// `currentTabbable` item
|
|
38
52
|
if (focusedItem) {
|
|
39
53
|
setTabIndex(-1);
|
|
40
54
|
setCurrentTabbable(getItemIndex(focusedItem));
|
|
@@ -43,6 +57,8 @@ function useVirtualGridArrowNavigation({ colCount, rowCount, itemsCount, resetAc
|
|
|
43
57
|
}, [defaultCurrentTabbable]);
|
|
44
58
|
const onBlur = (0, react_1.useCallback)(() => {
|
|
45
59
|
const isFocusInside = closest(document.activeElement, (node) => node === rootNode.current) !== null;
|
|
60
|
+
// If focus is outside of the grid container, make the whole container
|
|
61
|
+
// focusable again and reset tabbable item if needed
|
|
46
62
|
if (!isFocusInside) {
|
|
47
63
|
setTabIndex(0);
|
|
48
64
|
if (resetActiveItemOnBlur) {
|
|
@@ -52,8 +68,13 @@ function useVirtualGridArrowNavigation({ colCount, rowCount, itemsCount, resetAc
|
|
|
52
68
|
}, [resetActiveItemOnBlur, defaultCurrentTabbable]);
|
|
53
69
|
const onMouseDown = (0, react_1.useCallback)((evt) => {
|
|
54
70
|
const gridItem = closest(evt.target, vgridItemSelector());
|
|
71
|
+
// If mousedown didn't originate in one of the grid items (we just clicked
|
|
72
|
+
// some empty space in the grid container), prevent default behavior to stop
|
|
73
|
+
// focus on the grid container from happening
|
|
55
74
|
if (!gridItem) {
|
|
56
75
|
evt.preventDefault();
|
|
76
|
+
// Simulate active element blur that normally happens when clicking a
|
|
77
|
+
// non-focusable element
|
|
57
78
|
document.activeElement?.blur();
|
|
58
79
|
}
|
|
59
80
|
}, []);
|
|
@@ -130,11 +151,19 @@ function useVirtualGridArrowNavigation({ colCount, rowCount, itemsCount, resetAc
|
|
|
130
151
|
}, [currentTabbable, itemsCount, rowCount, colCount, pageSize]);
|
|
131
152
|
const activeCurrentTabbable = tabIndex === 0 ? -1 : currentTabbable;
|
|
132
153
|
(0, react_1.useEffect)(() => {
|
|
154
|
+
// If we have an active current tabbable item (there is a focus somewhere in
|
|
155
|
+
// the grid container) ...
|
|
133
156
|
if (activeCurrentTabbable >= 0) {
|
|
134
157
|
const gridItem = closest(document.activeElement, vgridItemSelector());
|
|
135
158
|
const shouldMoveFocus = !gridItem || getItemIndex(gridItem) !== activeCurrentTabbable;
|
|
159
|
+
// ... and this item is currently not focused ...
|
|
136
160
|
if (shouldMoveFocus) {
|
|
161
|
+
// ... communicate that there will be a focus change happening (this is
|
|
162
|
+
// needed so that we can scroll invisible virtual item into view if
|
|
163
|
+
// needed) ...
|
|
137
164
|
onFocusMove(activeCurrentTabbable);
|
|
165
|
+
// ... and trigger a focus on the element after a frame delay, so that
|
|
166
|
+
// the item has time to scroll into view and render if needed
|
|
138
167
|
const cancel = (0, rafraf_1.rafraf)(() => {
|
|
139
168
|
rootNode.current
|
|
140
169
|
?.querySelector(vgridItemSelector(currentTabbable))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-virtual-grid.js","sourceRoot":"","sources":["../../src/hooks/use-virtual-grid.ts"],"names":[],"mappings":";;;AACA,iCAAiE;AACjE,4CAAyC;AAEzC,SAAS,OAAO,CACd,IAAwB,EACxB,IAA+C;IAE/C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,OAAO,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;KACpC;IAED,IAAI,MAAM,GAAuB,IAAI,CAAC;IACtC,OAAO,MAAM,EAAE;QACb,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE;YAChB,OAAO,MAAM,CAAC;SACf;QACD,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;KAC/B;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAY;IACrC,OAAO,GAAG,CAAC,CAAC,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC;AAC1E,CAAC;AAED,SAAS,YAAY,CAAC,IAAiB;IACrC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;KAC5E;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAC3C,CAAC;
|
|
1
|
+
{"version":3,"file":"use-virtual-grid.js","sourceRoot":"","sources":["../../src/hooks/use-virtual-grid.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,16 @@ const useVirtualListItemObserver = ({ listRef, items, rowGap, estimateItemInitia
|
|
|
7
7
|
const [itemsHeights, setItemsHeights] = (0, react_1.useState)(items.map(estimateItemInitialHeight));
|
|
8
8
|
const itemsHeightsRef = (0, react_1.useRef)(itemsHeights);
|
|
9
9
|
itemsHeightsRef.current = itemsHeights;
|
|
10
|
+
// A WeakMap of observed elements to their index in the virtual list so that
|
|
11
|
+
// when the observed element changes, we can update the respective index with
|
|
12
|
+
// the modified height.
|
|
10
13
|
const observedElements = (0, react_1.useRef)(new WeakMap());
|
|
14
|
+
// It will happen from time to time that the observed element will change its
|
|
15
|
+
// height while the resize notification is being delivered. This results in
|
|
16
|
+
// endless loop which gets terminated with an error event. To avoid having the
|
|
17
|
+
// loop terminated error we perform the side effect on resizes (resizing the
|
|
18
|
+
// underlying element while notifying) in the next frame to allow the current
|
|
19
|
+
// notification to get delivered.
|
|
11
20
|
const oldRaf = (0, react_1.useRef)();
|
|
12
21
|
const resizeObserver = (0, react_1.useMemo)(() => {
|
|
13
22
|
return new ResizeObserver((entries) => {
|
|
@@ -16,6 +25,9 @@ const useVirtualListItemObserver = ({ listRef, items, rowGap, estimateItemInitia
|
|
|
16
25
|
oldRaf.current = undefined;
|
|
17
26
|
}
|
|
18
27
|
oldRaf.current = requestAnimationFrame(() => {
|
|
28
|
+
// We use a number list but as a sparse list so that only the indexes
|
|
29
|
+
// for which the heights actually changed gets applied on top of old
|
|
30
|
+
// recorded heights.
|
|
19
31
|
const sparseModifiedIndexes = [];
|
|
20
32
|
for (const { target, contentRect } of entries) {
|
|
21
33
|
if (target instanceof HTMLDivElement) {
|
|
@@ -25,6 +37,11 @@ const useVirtualListItemObserver = ({ listRef, items, rowGap, estimateItemInitia
|
|
|
25
37
|
}
|
|
26
38
|
}
|
|
27
39
|
}
|
|
40
|
+
// Instead of using the setState with a callback to update itemHeights
|
|
41
|
+
// state we rely on a ref to retrieve the current value of the
|
|
42
|
+
// itemHeights state because we also want to reset the VariableSizeList
|
|
43
|
+
// after the first modified index so that the list can pick up the new
|
|
44
|
+
// heights but only when there was actually an update otherwise not.
|
|
28
45
|
const previousHeights = [...itemsHeightsRef.current];
|
|
29
46
|
const newHeights = Object.assign(new Array(), previousHeights, sparseModifiedIndexes);
|
|
30
47
|
if ((0, lodash_1.isEqual)(previousHeights, newHeights)) {
|
|
@@ -32,6 +49,9 @@ const useVirtualListItemObserver = ({ listRef, items, rowGap, estimateItemInitia
|
|
|
32
49
|
return;
|
|
33
50
|
}
|
|
34
51
|
setItemsHeights(newHeights);
|
|
52
|
+
// Since we have sparse list holding the indexes that actually changed,
|
|
53
|
+
// we use that to find the first modified index after which the list
|
|
54
|
+
// should re-render with the updated height
|
|
35
55
|
const indexToResetAfter = sparseModifiedIndexes.findIndex((height) => typeof height === 'number');
|
|
36
56
|
if (indexToResetAfter !== -1) {
|
|
37
57
|
listRef.current?.resetAfterIndex(indexToResetAfter);
|
|
@@ -41,6 +61,9 @@ const useVirtualListItemObserver = ({ listRef, items, rowGap, estimateItemInitia
|
|
|
41
61
|
});
|
|
42
62
|
}, []);
|
|
43
63
|
const getItemSize = (0, react_1.useCallback)((idx) => {
|
|
64
|
+
// It can happen that there are new items added to the list (when docs per
|
|
65
|
+
// page changes) in which case we won't have their heights in our state
|
|
66
|
+
// hence we fallback to estimating initial document heights.
|
|
44
67
|
const itemHeight = itemsHeights[idx] ?? estimateItemInitialHeight(items[idx]);
|
|
45
68
|
if (rowGap !== undefined && idx !== items.length - 1) {
|
|
46
69
|
return itemHeight + rowGap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-virtual-list-item-observer.js","sourceRoot":"","sources":["../../src/hooks/use-virtual-list-item-observer.ts"],"names":[],"mappings":";;;AAAA,mCAAiC;AACjC,iCAA0E;AAenE,MAAM,0BAA0B,GAAG,CAAI,EAC5C,OAAO,EACP,KAAK,EACL,MAAM,EACN,yBAAyB,GACQ,EAIjC,EAAE;IACF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAC9C,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CACrC,CAAC;IACF,MAAM,eAAe,GAAG,IAAA,cAAM,EAAC,YAAY,CAAC,CAAC;IAC7C,eAAe,CAAC,OAAO,GAAG,YAAY,CAAC;
|
|
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/utils/format-date.js
CHANGED
|
@@ -7,10 +7,12 @@ const HOUR = MINUTE * 60;
|
|
|
7
7
|
const DAY = HOUR * 24;
|
|
8
8
|
const WEEK = DAY * 7;
|
|
9
9
|
const MONTH = WEEK * 4;
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
10
11
|
const relativeDateFormatter = new Intl.RelativeTimeFormat('en', {
|
|
11
12
|
numeric: 'auto',
|
|
12
13
|
});
|
|
13
14
|
const absoluteDateFormatter = new Intl.DateTimeFormat('en', {
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
14
16
|
dateStyle: 'long',
|
|
15
17
|
});
|
|
16
18
|
const formatScale = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-date.js","sourceRoot":"","sources":["../../src/utils/format-date.ts"],"names":[],"mappings":";;;AAAA,MAAM,MAAM,GAAG,IAAI,CAAC;AACpB,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;AAC3B,MAAM,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC;AACzB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AACtB,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;AACrB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"format-date.js","sourceRoot":"","sources":["../../src/utils/format-date.ts"],"names":[],"mappings":";;;AAAA,MAAM,MAAM,GAAG,IAAI,CAAC;AACpB,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;AAC3B,MAAM,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC;AACzB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AACtB,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;AACrB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC;AAEvB,6DAA6D;AAC7D,MAAM,qBAAqB,GAAG,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;IAC9D,OAAO,EAAE,MAAM;CAChB,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;IAC1D,6DAA6D;IAC7D,SAAS,EAAE,MAAM;CAClB,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,IAAI;CACX,CAAC;AAEF,SAAgB,UAAU,CAAC,IAAY;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IACnC,IAAI,UAAU,GAAoC,IAAI,CAAC;IAEvD,IAAI,QAAQ,GAAG,MAAM,EAAE;QACrB,UAAU,GAAG,QAAQ,CAAC;KACvB;SAAM,IAAI,QAAQ,GAAG,IAAI,EAAE;QAC1B,UAAU,GAAG,QAAQ,CAAC;KACvB;SAAM,IAAI,QAAQ,GAAG,GAAG,EAAE;QACzB,UAAU,GAAG,MAAM,CAAC;KACrB;SAAM,IAAI,QAAQ,GAAG,IAAI,EAAE;QAC1B,UAAU,GAAG,KAAK,CAAC;KACpB;SAAM,IAAI,QAAQ,GAAG,KAAK,EAAE;QAC3B,UAAU,GAAG,MAAM,CAAC;KACrB;SAAM;QACL,OAAO,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC3C;IAED,OAAO,qBAAqB,CAAC,MAAM,CACjC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,EAC/C,UAAU,CACX,CAAC;AACJ,CAAC;AAtBD,gCAsBC"}
|
package/lib/utils/merge-props.js
CHANGED
|
@@ -5,6 +5,7 @@ const utils_1 = require("@react-aria/utils");
|
|
|
5
5
|
function mergeProps(...props) {
|
|
6
6
|
const propsWithRefs = props.filter((prop) => prop.ref);
|
|
7
7
|
return {
|
|
8
|
+
// This mergeProps method can handle callbacks and class names, but not refs
|
|
8
9
|
...(0, utils_1.mergeProps)(...props),
|
|
9
10
|
...(propsWithRefs.length > 0 && {
|
|
10
11
|
ref(val) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-props.js","sourceRoot":"","sources":["../../src/utils/merge-props.ts"],"names":[],"mappings":";;;AACA,6CAA8D;AAE9D,SAAgB,UAAU,CACxB,GAAG,KAA2B;IAE9B,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,OAAO;
|
|
1
|
+
{"version":3,"file":"merge-props.js","sourceRoot":"","sources":["../../src/utils/merge-props.ts"],"names":[],"mappings":";;;AACA,6CAA8D;AAE9D,SAAgB,UAAU,CACxB,GAAG,KAA2B;IAE9B,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,OAAO;QACL,4EAA4E;QAC5E,GAAG,IAAA,kBAAW,EAAC,GAAG,KAAK,CAAC;QACxB,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI;YAC9B,GAAG,CAAC,GAAM;gBACR,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;oBAChC,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;wBAC7B,GAAG,CAAC,GAAG,CAAC,CAAC;qBACV;yBAAM,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;wBACxC,GAAiC,CAAC,OAAO,GAAG,GAAG,CAAC;qBAClD;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;KACH,CAAC;AACJ,CAAC;AAnBD,gCAmBC"}
|
package/lib/utils/rafraf.d.ts
CHANGED
|
@@ -1,2 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper method to do something after skipping a few frames. Useful when
|
|
3
|
+
* something needs to happen after browser handled layout related operations,
|
|
4
|
+
* like focusing an element or repainting
|
|
5
|
+
*
|
|
6
|
+
* Scheduling one rAF inside another rAF ensures that we will wait until next
|
|
7
|
+
* frame, see https://medium.com/@paul_irish/requestanimationframe-scheduling-for-nerds-9c57f7438ef4
|
|
8
|
+
*
|
|
9
|
+
* Returns a function to abort fn
|
|
10
|
+
*/
|
|
1
11
|
export declare function rafraf(fn: FrameRequestCallback): () => void;
|
|
2
12
|
//# sourceMappingURL=rafraf.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rafraf.d.ts","sourceRoot":"","sources":["../../src/utils/rafraf.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rafraf.d.ts","sourceRoot":"","sources":["../../src/utils/rafraf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,oBAAoB,GAAG,MAAM,IAAI,CAW3D"}
|
package/lib/utils/rafraf.js
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.rafraf = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Helper method to do something after skipping a few frames. Useful when
|
|
6
|
+
* something needs to happen after browser handled layout related operations,
|
|
7
|
+
* like focusing an element or repainting
|
|
8
|
+
*
|
|
9
|
+
* Scheduling one rAF inside another rAF ensures that we will wait until next
|
|
10
|
+
* frame, see https://medium.com/@paul_irish/requestanimationframe-scheduling-for-nerds-9c57f7438ef4
|
|
11
|
+
*
|
|
12
|
+
* Returns a function to abort fn
|
|
13
|
+
*/
|
|
4
14
|
function rafraf(fn) {
|
|
5
15
|
const controller = new AbortController();
|
|
6
16
|
requestAnimationFrame(() => {
|
package/lib/utils/rafraf.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rafraf.js","sourceRoot":"","sources":["../../src/utils/rafraf.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"rafraf.js","sourceRoot":"","sources":["../../src/utils/rafraf.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACH,SAAgB,MAAM,CAAC,EAAwB;IAC7C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,qBAAqB,CAAC,GAAG,EAAE;QACzB,qBAAqB,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7B,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;gBAAE,OAAO;YACtC,EAAE,CAAC,IAAI,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,EAAE;QACV,UAAU,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC;AAXD,wBAWC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mongodb-js/compass-components",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.30.0",
|
|
4
4
|
"description": "React Components used in Compass",
|
|
5
5
|
"license": "SSPL",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"@react-aria/visually-hidden": "^3.3.1",
|
|
79
79
|
"bson": "^6.7.0",
|
|
80
80
|
"focus-trap-react": "^9.0.2",
|
|
81
|
-
"hadron-document": "^8.6.
|
|
81
|
+
"hadron-document": "^8.6.3",
|
|
82
82
|
"hadron-type-checker": "^7.2.2",
|
|
83
83
|
"is-electron-renderer": "^2.0.1",
|
|
84
84
|
"lodash": "^4.17.21",
|
|
@@ -92,14 +92,11 @@
|
|
|
92
92
|
},
|
|
93
93
|
"devDependencies": {
|
|
94
94
|
"@emotion/css": "^11.11.2",
|
|
95
|
-
"@mongodb-js/eslint-config-compass": "^1.1.
|
|
96
|
-
"@mongodb-js/mocha-config-compass": "^1.4.
|
|
95
|
+
"@mongodb-js/eslint-config-compass": "^1.1.7",
|
|
96
|
+
"@mongodb-js/mocha-config-compass": "^1.4.2",
|
|
97
97
|
"@mongodb-js/prettier-config-compass": "^1.0.2",
|
|
98
|
-
"@mongodb-js/
|
|
99
|
-
"@
|
|
100
|
-
"@testing-library/react": "^12.1.5",
|
|
101
|
-
"@testing-library/react-hooks": "^7.0.2",
|
|
102
|
-
"@testing-library/user-event": "^13.5.0",
|
|
98
|
+
"@mongodb-js/testing-library-compass": "^1.0.2",
|
|
99
|
+
"@mongodb-js/tsconfig-compass": "^1.0.5",
|
|
103
100
|
"@types/chai": "^4.2.21",
|
|
104
101
|
"@types/chai-dom": "^0.0.10",
|
|
105
102
|
"@types/mocha": "^9.0.0",
|
|
@@ -121,5 +118,5 @@
|
|
|
121
118
|
"publishConfig": {
|
|
122
119
|
"access": "public"
|
|
123
120
|
},
|
|
124
|
-
"gitHead": "
|
|
121
|
+
"gitHead": "7bb0ec47c90909273d5cf0a63a39f12fc31e8d42"
|
|
125
122
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-virtual-grid.test.d.ts","sourceRoot":"","sources":["../../src/hooks/use-virtual-grid.test.tsx"],"names":[],"mappings":""}
|