@mongodb-js/compass-components 1.29.3 → 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.
Files changed (195) hide show
  1. package/lib/components/breadcrumb.js +1 -1
  2. package/lib/components/breadcrumb.js.map +1 -1
  3. package/lib/components/bson-value.js +4 -0
  4. package/lib/components/bson-value.js.map +1 -1
  5. package/lib/components/collapsible-field-set.js +4 -1
  6. package/lib/components/collapsible-field-set.js.map +1 -1
  7. package/lib/components/combobox/Chip.js +5 -2
  8. package/lib/components/combobox/Chip.js.map +1 -1
  9. package/lib/components/combobox/Combobox.d.ts +9 -0
  10. package/lib/components/combobox/Combobox.d.ts.map +1 -1
  11. package/lib/components/combobox/Combobox.js +225 -5
  12. package/lib/components/combobox/Combobox.js.map +1 -1
  13. package/lib/components/combobox/Combobox.styles.d.ts +15 -0
  14. package/lib/components/combobox/Combobox.styles.d.ts.map +1 -1
  15. package/lib/components/combobox/Combobox.styles.js +19 -2
  16. package/lib/components/combobox/Combobox.styles.js.map +1 -1
  17. package/lib/components/combobox/Combobox.types.d.ts +174 -0
  18. package/lib/components/combobox/Combobox.types.d.ts.map +1 -1
  19. package/lib/components/combobox/Combobox.types.js +20 -0
  20. package/lib/components/combobox/Combobox.types.js.map +1 -1
  21. package/lib/components/combobox/ComboboxMenu/ComboboxMenu.js +5 -0
  22. package/lib/components/combobox/ComboboxMenu/ComboboxMenu.js.map +1 -1
  23. package/lib/components/combobox/ComboboxMenu/Menu.styles.d.ts +4 -0
  24. package/lib/components/combobox/ComboboxMenu/Menu.styles.d.ts.map +1 -1
  25. package/lib/components/combobox/ComboboxMenu/Menu.styles.js +4 -0
  26. package/lib/components/combobox/ComboboxMenu/Menu.styles.js.map +1 -1
  27. package/lib/components/combobox/ComboboxOption.d.ts +3 -0
  28. package/lib/components/combobox/ComboboxOption.d.ts.map +1 -1
  29. package/lib/components/combobox/ComboboxOption.js +14 -0
  30. package/lib/components/combobox/ComboboxOption.js.map +1 -1
  31. package/lib/components/combobox/Menu.styles.d.ts +4 -0
  32. package/lib/components/combobox/Menu.styles.d.ts.map +1 -1
  33. package/lib/components/combobox/Menu.styles.js +7 -3
  34. package/lib/components/combobox/Menu.styles.js.map +1 -1
  35. package/lib/components/combobox/utils/OptionObjectUtils.d.ts +18 -0
  36. package/lib/components/combobox/utils/OptionObjectUtils.d.ts.map +1 -1
  37. package/lib/components/combobox/utils/OptionObjectUtils.js +18 -0
  38. package/lib/components/combobox/utils/OptionObjectUtils.js.map +1 -1
  39. package/lib/components/combobox/utils/flattenChildren.d.ts +8 -0
  40. package/lib/components/combobox/utils/flattenChildren.d.ts.map +1 -1
  41. package/lib/components/combobox/utils/flattenChildren.js +13 -1
  42. package/lib/components/combobox/utils/flattenChildren.js.map +1 -1
  43. package/lib/components/combobox/utils/getNameAndValue.d.ts +9 -0
  44. package/lib/components/combobox/utils/getNameAndValue.d.ts.map +1 -1
  45. package/lib/components/combobox/utils/getNameAndValue.js +10 -1
  46. package/lib/components/combobox/utils/getNameAndValue.js.map +1 -1
  47. package/lib/components/combobox/utils/wrapJSX.d.ts +12 -0
  48. package/lib/components/combobox/utils/wrapJSX.d.ts.map +1 -1
  49. package/lib/components/combobox/utils/wrapJSX.js +21 -0
  50. package/lib/components/combobox/utils/wrapJSX.js.map +1 -1
  51. package/lib/components/combobox-with-custom-option.js +2 -0
  52. package/lib/components/combobox-with-custom-option.js.map +1 -1
  53. package/lib/components/compass-components-provider.d.ts +23 -0
  54. package/lib/components/compass-components-provider.d.ts.map +1 -1
  55. package/lib/components/compass-components-provider.js +22 -1
  56. package/lib/components/compass-components-provider.js.map +1 -1
  57. package/lib/components/content-with-fallback.js +3 -0
  58. package/lib/components/content-with-fallback.js.map +1 -1
  59. package/lib/components/document-list/document-actions-group.js +10 -1
  60. package/lib/components/document-list/document-actions-group.js.map +1 -1
  61. package/lib/components/document-list/document-edit-actions-footer.js +3 -0
  62. package/lib/components/document-list/document-edit-actions-footer.js.map +1 -1
  63. package/lib/components/document-list/document.js +23 -1
  64. package/lib/components/document-list/document.js.map +1 -1
  65. package/lib/components/document-list/element-actions.js +2 -0
  66. package/lib/components/document-list/element-actions.js.map +1 -1
  67. package/lib/components/document-list/element-editors.js +51 -9
  68. package/lib/components/document-list/element-editors.js.map +1 -1
  69. package/lib/components/document-list/element.js +45 -5
  70. package/lib/components/document-list/element.js.map +1 -1
  71. package/lib/components/empty-content.js +1 -1
  72. package/lib/components/empty-content.js.map +1 -1
  73. package/lib/components/error-boundary.js +3 -0
  74. package/lib/components/error-boundary.js.map +1 -1
  75. package/lib/components/feedback-popover.js +3 -0
  76. package/lib/components/feedback-popover.js.map +1 -1
  77. package/lib/components/file-input.js +22 -3
  78. package/lib/components/file-input.js.map +1 -1
  79. package/lib/components/guide-cue/guide-cue-groups.js +3 -0
  80. package/lib/components/guide-cue/guide-cue-groups.js.map +1 -1
  81. package/lib/components/guide-cue/guide-cue-service.js +5 -0
  82. package/lib/components/guide-cue/guide-cue-service.js.map +1 -1
  83. package/lib/components/guide-cue/guide-cue.js +14 -1
  84. package/lib/components/guide-cue/guide-cue.js.map +1 -1
  85. package/lib/components/icons/favorite-icon.js +3 -1
  86. package/lib/components/icons/favorite-icon.js.map +1 -1
  87. package/lib/components/index-keys-badge.js +1 -0
  88. package/lib/components/index-keys-badge.js.map +1 -1
  89. package/lib/components/inline-definition.js +1 -0
  90. package/lib/components/inline-definition.js.map +1 -1
  91. package/lib/components/interactive-popover.d.ts +3 -0
  92. package/lib/components/interactive-popover.d.ts.map +1 -1
  93. package/lib/components/interactive-popover.js +6 -0
  94. package/lib/components/interactive-popover.js.map +1 -1
  95. package/lib/components/item-action-controls.d.ts +2 -1
  96. package/lib/components/item-action-controls.d.ts.map +1 -1
  97. package/lib/components/item-action-controls.js +31 -4
  98. package/lib/components/item-action-controls.js.map +1 -1
  99. package/lib/components/keyline-card.d.ts +7 -0
  100. package/lib/components/keyline-card.d.ts.map +1 -1
  101. package/lib/components/leafygreen.js +8 -0
  102. package/lib/components/leafygreen.js.map +1 -1
  103. package/lib/components/links/link.js +2 -0
  104. package/lib/components/links/link.js.map +1 -1
  105. package/lib/components/modals/modal-body.js +2 -0
  106. package/lib/components/modals/modal-body.js.map +1 -1
  107. package/lib/components/modals/modal.js +8 -0
  108. package/lib/components/modals/modal.js.map +1 -1
  109. package/lib/components/options-toggle.js +5 -1
  110. package/lib/components/options-toggle.js.map +1 -1
  111. package/lib/components/placeholder.js +1 -0
  112. package/lib/components/placeholder.js.map +1 -1
  113. package/lib/components/resize-handle.js +4 -0
  114. package/lib/components/resize-handle.js.map +1 -1
  115. package/lib/components/resizeable-sidebar.js +2 -0
  116. package/lib/components/resizeable-sidebar.js.map +1 -1
  117. package/lib/components/signal-popover.d.ts +19 -0
  118. package/lib/components/signal-popover.d.ts.map +1 -1
  119. package/lib/components/signal-popover.js +43 -3
  120. package/lib/components/signal-popover.js.map +1 -1
  121. package/lib/components/tab-nav-bar.d.ts +11 -4
  122. package/lib/components/tab-nav-bar.d.ts.map +1 -1
  123. package/lib/components/tab-nav-bar.js +14 -11
  124. package/lib/components/tab-nav-bar.js.map +1 -1
  125. package/lib/components/toast-body.js +1 -0
  126. package/lib/components/toast-body.js.map +1 -1
  127. package/lib/components/virtual-grid.d.ts +42 -0
  128. package/lib/components/virtual-grid.d.ts.map +1 -1
  129. package/lib/components/virtual-grid.js +3 -0
  130. package/lib/components/virtual-grid.js.map +1 -1
  131. package/lib/components/virtual-list.d.ts +69 -0
  132. package/lib/components/virtual-list.d.ts.map +1 -1
  133. package/lib/components/virtual-list.js +9 -1
  134. package/lib/components/virtual-list.js.map +1 -1
  135. package/lib/components/workspace-container.js +10 -0
  136. package/lib/components/workspace-container.js.map +1 -1
  137. package/lib/components/workspace-tabs/tab.js +15 -1
  138. package/lib/components/workspace-tabs/tab.js.map +1 -1
  139. package/lib/components/workspace-tabs/workspace-tabs.js +5 -1
  140. package/lib/components/workspace-tabs/workspace-tabs.js.map +1 -1
  141. package/lib/hooks/use-confirmation.js +12 -1
  142. package/lib/hooks/use-confirmation.js.map +1 -1
  143. package/lib/hooks/use-default-action.d.ts +8 -0
  144. package/lib/hooks/use-default-action.d.ts.map +1 -1
  145. package/lib/hooks/use-default-action.js +11 -1
  146. package/lib/hooks/use-default-action.js.map +1 -1
  147. package/lib/hooks/use-effect-on-change.d.ts +6 -0
  148. package/lib/hooks/use-effect-on-change.d.ts.map +1 -1
  149. package/lib/hooks/use-effect-on-change.js +18 -1
  150. package/lib/hooks/use-effect-on-change.js.map +1 -1
  151. package/lib/hooks/use-focus-ring.d.ts +19 -0
  152. package/lib/hooks/use-focus-ring.d.ts.map +1 -1
  153. package/lib/hooks/use-focus-ring.js +21 -0
  154. package/lib/hooks/use-focus-ring.js.map +1 -1
  155. package/lib/hooks/use-hotkeys.d.ts +14 -0
  156. package/lib/hooks/use-hotkeys.d.ts.map +1 -1
  157. package/lib/hooks/use-hotkeys.js +18 -3
  158. package/lib/hooks/use-hotkeys.js.map +1 -1
  159. package/lib/hooks/use-persisted-state.d.ts +9 -0
  160. package/lib/hooks/use-persisted-state.d.ts.map +1 -1
  161. package/lib/hooks/use-persisted-state.js +9 -0
  162. package/lib/hooks/use-persisted-state.js.map +1 -1
  163. package/lib/hooks/use-scrollbars.d.ts +7 -0
  164. package/lib/hooks/use-scrollbars.d.ts.map +1 -1
  165. package/lib/hooks/use-scrollbars.js +19 -0
  166. package/lib/hooks/use-scrollbars.js.map +1 -1
  167. package/lib/hooks/use-sort.js +6 -0
  168. package/lib/hooks/use-sort.js.map +1 -1
  169. package/lib/hooks/use-stacked-component.js +1 -0
  170. package/lib/hooks/use-stacked-component.js.map +1 -1
  171. package/lib/hooks/use-theme.js +10 -1
  172. package/lib/hooks/use-theme.js.map +1 -1
  173. package/lib/hooks/use-toast.d.ts +15 -0
  174. package/lib/hooks/use-toast.d.ts.map +1 -1
  175. package/lib/hooks/use-toast.js +30 -0
  176. package/lib/hooks/use-toast.js.map +1 -1
  177. package/lib/hooks/use-virtual-grid.d.ts +8 -0
  178. package/lib/hooks/use-virtual-grid.d.ts.map +1 -1
  179. package/lib/hooks/use-virtual-grid.js +29 -0
  180. package/lib/hooks/use-virtual-grid.js.map +1 -1
  181. package/lib/hooks/use-virtual-list-item-observer.js +23 -0
  182. package/lib/hooks/use-virtual-list-item-observer.js.map +1 -1
  183. package/lib/utils/format-date.js +2 -0
  184. package/lib/utils/format-date.js.map +1 -1
  185. package/lib/utils/merge-props.js +1 -0
  186. package/lib/utils/merge-props.js.map +1 -1
  187. package/lib/utils/rafraf.d.ts +10 -0
  188. package/lib/utils/rafraf.d.ts.map +1 -1
  189. package/lib/utils/rafraf.js +10 -0
  190. package/lib/utils/rafraf.js.map +1 -1
  191. package/package.json +7 -10
  192. package/lib/hooks/use-virtual-grid.test.d.ts +0 -2
  193. package/lib/hooks/use-virtual-grid.test.d.ts.map +0 -1
  194. package/lib/hooks/use-virtual-grid.test.js +0 -210
  195. 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":"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"}
1
+ {"version":3,"file":"use-scrollbars.js","sourceRoot":"","sources":["../../src/hooks/use-scrollbars.tsx"],"names":[],"mappings":"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"}
@@ -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":"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"}
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;AASF,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"}
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"}
@@ -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, { darkMode: darkMode, ref: ref, ...props }));
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;AAOM,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;AAIF,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,IAGf,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"}
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"}
@@ -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;AAiBF,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAsBxD"}
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"}
@@ -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":"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"}
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;AAyC/B,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"}
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":"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"}
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":"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"}
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;IAEvC,4EAA4E;IAC5E,6EAA6E;IAC7E,uBAAuB;IACvB,MAAM,gBAAgB,GAAG,IAAA,cAAM,EAAC,IAAI,OAAO,EAA0B,CAAC,CAAC;IAEvE,6EAA6E;IAC7E,2EAA2E;IAC3E,8EAA8E;IAC9E,4EAA4E;IAC5E,6EAA6E;IAC7E,iCAAiC;IACjC,MAAM,MAAM,GAAG,IAAA,cAAM,GAAsB,CAAC;IAE5C,MAAM,cAAc,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAClC,OAAO,IAAI,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,IAAI,MAAM,CAAC,OAAO,EAAE;gBAClB,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACrC,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;aAC5B;YAED,MAAM,CAAC,OAAO,GAAG,qBAAqB,CAAC,GAAG,EAAE;gBAC1C,qEAAqE;gBACrE,oEAAoE;gBACpE,oBAAoB;gBACpB,MAAM,qBAAqB,GAAa,EAAE,CAAC;gBAC3C,KAAK,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,OAAO,EAAE;oBAC7C,IAAI,MAAM,YAAY,cAAc,EAAE;wBACpC,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBACzD,IAAI,WAAW,KAAK,SAAS,EAAE;4BAC7B,qBAAqB,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;yBACzD;qBACF;iBACF;gBAED,sEAAsE;gBACtE,8DAA8D;gBAC9D,uEAAuE;gBACvE,sEAAsE;gBACtE,oEAAoE;gBACpE,MAAM,eAAe,GAAG,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;gBACrD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAC9B,IAAI,KAAK,EAAU,EACnB,eAAe,EACf,qBAAqB,CACtB,CAAC;gBAEF,IAAI,IAAA,gBAAO,EAAC,eAAe,EAAE,UAAU,CAAC,EAAE;oBACxC,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;oBAC3B,OAAO;iBACR;gBAED,eAAe,CAAC,UAAU,CAAC,CAAC;gBAE5B,uEAAuE;gBACvE,oEAAoE;gBACpE,2CAA2C;gBAC3C,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,SAAS,CACvD,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,MAAM,KAAK,QAAQ,CACvC,CAAC;gBACF,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE;oBAC5B,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;iBACrD;gBACD,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,WAAW,GAAG,IAAA,mBAAW,EAC7B,CAAC,GAAW,EAAE,EAAE;QACd,0EAA0E;QAC1E,uEAAuE;QACvE,4DAA4D;QAC5D,MAAM,UAAU,GACd,YAAY,CAAC,GAAG,CAAC,IAAI,yBAAyB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,IAAI,MAAM,KAAK,SAAS,IAAI,GAAG,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpD,OAAO,UAAU,GAAG,MAAM,CAAC;SAC5B;QACD,OAAO,UAAU,CAAC;IACpB,CAAC,EACD,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,yBAAyB,CAAC,CACzD,CAAC;IAEF,MAAM,iBAAiB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACrC,OAAO,CACL,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpE,KAAK,CAAC,MAAM,CACb,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IAEzB,MAAM,gBAAgB,GAAG,IAAA,eAAO,EAC9B,GAAG,EAAE,CAAC,CAAC;QACL,OAAO,CAAC,OAAuB,EAAE,KAAa;YAC5C,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC7C,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,SAAS,CAAC,OAAuB;YAC/B,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACzC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;KACF,CAAC,EACF,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,IAAI,MAAM,CAAC,OAAO,EAAE;gBAClB,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACrC,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;aAC5B;YACD,cAAc,CAAC,UAAU,EAAE,CAAC;QAC9B,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,QAAQ,EAAE,gBAAgB;QAC1B,WAAW;QACX,iBAAiB;KAClB,CAAC;AACJ,CAAC,CAAC;AAtIW,QAAA,0BAA0B,8BAsIrC"}
@@ -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;AAGvB,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;IAE1D,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"}
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"}
@@ -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;QAEL,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"}
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"}
@@ -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":"AAUA,wBAAgB,MAAM,CAAC,EAAE,EAAE,oBAAoB,GAAG,MAAM,IAAI,CAW3D"}
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"}
@@ -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(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"rafraf.js","sourceRoot":"","sources":["../../src/utils/rafraf.ts"],"names":[],"mappings":";;;AAUA,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"}
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.29.3",
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.2",
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.6",
96
- "@mongodb-js/mocha-config-compass": "^1.4.1",
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/tsconfig-compass": "^1.0.4",
99
- "@testing-library/dom": "^8.20.1",
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": "610f66813a9fa7e0b5240896a273be0e90e60d50"
121
+ "gitHead": "7bb0ec47c90909273d5cf0a63a39f12fc31e8d42"
125
122
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=use-virtual-grid.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-virtual-grid.test.d.ts","sourceRoot":"","sources":["../../src/hooks/use-virtual-grid.test.tsx"],"names":[],"mappings":""}