@primer/components 31.2.0-rc.5ccefd7d → 31.2.0-rc.5e503f97

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 (206) hide show
  1. package/.github/workflows/release.yml +1 -0
  2. package/.github/workflows/release_canary.yml +1 -0
  3. package/CHANGELOG.md +14 -0
  4. package/dist/browser.esm.js +626 -624
  5. package/dist/browser.esm.js.map +1 -1
  6. package/dist/browser.umd.js +196 -194
  7. package/dist/browser.umd.js.map +1 -1
  8. package/docs/content/ActionList2.mdx +360 -0
  9. package/docs/content/StateLabel.md +5 -4
  10. package/docs/content/getting-started.md +1 -1
  11. package/docs/src/@primer/gatsby-theme-doctocat/components/hero.js +1 -3
  12. package/docs/src/@primer/gatsby-theme-doctocat/components/live-preview-wrapper.js +1 -1
  13. package/docs/src/@primer/gatsby-theme-doctocat/live-code-scope.js +17 -0
  14. package/lib/ActionList2/Description.d.ts +12 -0
  15. package/lib/ActionList2/Description.js +53 -0
  16. package/lib/ActionList2/Divider.d.ts +5 -0
  17. package/lib/ActionList2/Divider.js +35 -0
  18. package/lib/ActionList2/Group.d.ts +11 -0
  19. package/lib/ActionList2/Group.js +57 -0
  20. package/lib/ActionList2/Header.d.ts +26 -0
  21. package/lib/ActionList2/Header.js +55 -0
  22. package/lib/ActionList2/Item.d.ts +63 -0
  23. package/lib/ActionList2/Item.js +244 -0
  24. package/lib/ActionList2/LinkItem.d.ts +17 -0
  25. package/lib/ActionList2/LinkItem.js +57 -0
  26. package/lib/ActionList2/List.d.ts +26 -0
  27. package/lib/ActionList2/List.js +59 -0
  28. package/lib/ActionList2/Selection.d.ts +5 -0
  29. package/lib/ActionList2/Selection.js +70 -0
  30. package/lib/ActionList2/Visuals.d.ts +9 -0
  31. package/lib/ActionList2/Visuals.js +90 -0
  32. package/lib/ActionList2/index.d.ts +36 -0
  33. package/lib/ActionList2/index.js +47 -0
  34. package/lib/Autocomplete/Autocomplete.d.ts +28 -28
  35. package/lib/Autocomplete/AutocompleteInput.d.ts +28 -28
  36. package/lib/Button/Button.d.ts +25 -25
  37. package/lib/Button/ButtonClose.d.ts +45 -45
  38. package/lib/Button/ButtonDanger.d.ts +25 -25
  39. package/lib/Button/ButtonInvisible.d.ts +25 -25
  40. package/lib/Button/ButtonOutline.d.ts +25 -25
  41. package/lib/Button/ButtonPrimary.d.ts +25 -25
  42. package/lib/CircleOcticon.d.ts +42 -42
  43. package/lib/Dialog.d.ts +45 -45
  44. package/lib/Dropdown.d.ts +176 -176
  45. package/lib/DropdownMenu/DropdownButton.d.ts +46 -46
  46. package/lib/FilterList.d.ts +42 -42
  47. package/lib/Overlay.js +3 -1
  48. package/lib/Portal/Portal.js +3 -2
  49. package/lib/Position.d.ts +4 -4
  50. package/lib/SelectMenu/SelectMenu.d.ts +246 -246
  51. package/lib/SelectMenu/SelectMenuItem.d.ts +1 -1
  52. package/lib/SelectMenu/SelectMenuModal.d.ts +1 -1
  53. package/lib/StateLabel.d.ts +1 -1
  54. package/lib/StateLabel.js +6 -1
  55. package/lib/TextInputWithTokens.d.ts +28 -28
  56. package/lib/Timeline.d.ts +43 -43
  57. package/lib/Token/AvatarToken.d.ts +1 -1
  58. package/lib/Token/IssueLabelToken.d.ts +1 -1
  59. package/lib/Token/Token.d.ts +1 -1
  60. package/lib/_TextInputWrapper.js +2 -2
  61. package/lib/__tests__/ActionList2.test.d.ts +1 -0
  62. package/lib/__tests__/ActionList2.test.js +53 -0
  63. package/lib/__tests__/AnchoredOverlay.test.js +4 -2
  64. package/lib/__tests__/TextInputWithTokens.test.js +1 -10
  65. package/lib/__tests__/utils/createSlots.test.d.ts +1 -0
  66. package/lib/__tests__/utils/createSlots.test.js +75 -0
  67. package/lib/drafts.d.ts +7 -0
  68. package/lib/drafts.js +18 -0
  69. package/lib/hooks/useAnchoredPosition.js +3 -2
  70. package/lib/hooks/useCombinedRefs.d.ts +2 -2
  71. package/lib/hooks/useCombinedRefs.js +4 -6
  72. package/lib/hooks/useResizeObserver.js +2 -2
  73. package/lib/stories/ActionList2.stories.js +907 -0
  74. package/lib/stories/TextInput.stories.js +144 -0
  75. package/lib/stories/Token.stories.js +19 -2
  76. package/lib/sx.d.ts +2 -0
  77. package/lib/sx.js +8 -0
  78. package/lib/theme-preval.js +81 -2
  79. package/lib/utils/create-slots.d.ts +17 -0
  80. package/lib/utils/create-slots.js +105 -0
  81. package/lib/utils/testing.d.ts +14 -1
  82. package/lib/utils/use-force-update.d.ts +1 -0
  83. package/lib/utils/use-force-update.js +19 -0
  84. package/lib/utils/useIsomorphicLayoutEffect.d.ts +3 -0
  85. package/lib/utils/useIsomorphicLayoutEffect.js +12 -0
  86. package/lib-esm/ActionList2/Description.d.ts +12 -0
  87. package/lib-esm/ActionList2/Description.js +37 -0
  88. package/lib-esm/ActionList2/Divider.d.ts +5 -0
  89. package/lib-esm/ActionList2/Divider.js +23 -0
  90. package/lib-esm/ActionList2/Group.d.ts +11 -0
  91. package/lib-esm/ActionList2/Group.js +40 -0
  92. package/lib-esm/ActionList2/Header.d.ts +26 -0
  93. package/lib-esm/ActionList2/Header.js +44 -0
  94. package/lib-esm/ActionList2/Item.d.ts +63 -0
  95. package/lib-esm/ActionList2/Item.js +210 -0
  96. package/lib-esm/ActionList2/LinkItem.d.ts +17 -0
  97. package/lib-esm/ActionList2/LinkItem.js +43 -0
  98. package/lib-esm/ActionList2/List.d.ts +26 -0
  99. package/lib-esm/ActionList2/List.js +37 -0
  100. package/lib-esm/ActionList2/Selection.d.ts +5 -0
  101. package/lib-esm/ActionList2/Selection.js +52 -0
  102. package/lib-esm/ActionList2/Visuals.d.ts +9 -0
  103. package/lib-esm/ActionList2/Visuals.js +68 -0
  104. package/lib-esm/ActionList2/index.d.ts +36 -0
  105. package/lib-esm/ActionList2/index.js +33 -0
  106. package/lib-esm/Autocomplete/Autocomplete.d.ts +28 -28
  107. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +28 -28
  108. package/lib-esm/Button/Button.d.ts +25 -25
  109. package/lib-esm/Button/ButtonClose.d.ts +45 -45
  110. package/lib-esm/Button/ButtonDanger.d.ts +25 -25
  111. package/lib-esm/Button/ButtonInvisible.d.ts +25 -25
  112. package/lib-esm/Button/ButtonOutline.d.ts +25 -25
  113. package/lib-esm/Button/ButtonPrimary.d.ts +25 -25
  114. package/lib-esm/CircleOcticon.d.ts +42 -42
  115. package/lib-esm/Dialog.d.ts +45 -45
  116. package/lib-esm/Dropdown.d.ts +176 -176
  117. package/lib-esm/DropdownMenu/DropdownButton.d.ts +46 -46
  118. package/lib-esm/FilterList.d.ts +42 -42
  119. package/lib-esm/Overlay.js +2 -1
  120. package/lib-esm/Portal/Portal.js +2 -1
  121. package/lib-esm/Position.d.ts +4 -4
  122. package/lib-esm/SelectMenu/SelectMenu.d.ts +246 -246
  123. package/lib-esm/SelectMenu/SelectMenuItem.d.ts +1 -1
  124. package/lib-esm/SelectMenu/SelectMenuModal.d.ts +1 -1
  125. package/lib-esm/StateLabel.d.ts +1 -1
  126. package/lib-esm/StateLabel.js +7 -2
  127. package/lib-esm/TextInputWithTokens.d.ts +28 -28
  128. package/lib-esm/Timeline.d.ts +43 -43
  129. package/lib-esm/Token/AvatarToken.d.ts +1 -1
  130. package/lib-esm/Token/IssueLabelToken.d.ts +1 -1
  131. package/lib-esm/Token/Token.d.ts +1 -1
  132. package/lib-esm/_TextInputWrapper.js +2 -2
  133. package/lib-esm/__tests__/ActionList2.test.d.ts +1 -0
  134. package/lib-esm/__tests__/ActionList2.test.js +41 -0
  135. package/lib-esm/__tests__/AnchoredOverlay.test.js +4 -2
  136. package/lib-esm/__tests__/TextInputWithTokens.test.js +1 -10
  137. package/lib-esm/__tests__/utils/createSlots.test.d.ts +1 -0
  138. package/lib-esm/__tests__/utils/createSlots.test.js +67 -0
  139. package/lib-esm/drafts.d.ts +7 -0
  140. package/lib-esm/drafts.js +8 -0
  141. package/lib-esm/hooks/useAnchoredPosition.js +2 -1
  142. package/lib-esm/hooks/useCombinedRefs.d.ts +2 -2
  143. package/lib-esm/hooks/useCombinedRefs.js +3 -2
  144. package/lib-esm/hooks/useResizeObserver.js +2 -2
  145. package/lib-esm/stories/ActionList2.stories.js +796 -0
  146. package/lib-esm/stories/TextInput.stories.js +117 -0
  147. package/lib-esm/stories/Token.stories.js +14 -1
  148. package/lib-esm/sx.d.ts +2 -0
  149. package/lib-esm/sx.js +3 -1
  150. package/lib-esm/theme-preval.js +81 -2
  151. package/lib-esm/utils/create-slots.d.ts +17 -0
  152. package/lib-esm/utils/create-slots.js +84 -0
  153. package/lib-esm/utils/testing.d.ts +14 -1
  154. package/lib-esm/utils/use-force-update.d.ts +1 -0
  155. package/lib-esm/utils/use-force-update.js +6 -0
  156. package/lib-esm/utils/useIsomorphicLayoutEffect.d.ts +3 -0
  157. package/lib-esm/utils/useIsomorphicLayoutEffect.js +3 -0
  158. package/migrating.md +1 -1
  159. package/package-lock.json +153 -14
  160. package/package.json +6 -4
  161. package/script/build +2 -0
  162. package/src/ActionList2/Description.tsx +49 -0
  163. package/src/ActionList2/Divider.tsx +24 -0
  164. package/src/ActionList2/Group.tsx +34 -0
  165. package/src/ActionList2/Header.tsx +58 -0
  166. package/src/ActionList2/Item.tsx +245 -0
  167. package/src/ActionList2/LinkItem.tsx +49 -0
  168. package/src/ActionList2/List.tsx +55 -0
  169. package/src/ActionList2/Selection.tsx +40 -0
  170. package/src/ActionList2/Visuals.tsx +76 -0
  171. package/src/ActionList2/index.ts +39 -0
  172. package/src/Overlay.tsx +2 -1
  173. package/src/Portal/Portal.tsx +2 -1
  174. package/src/StateLabel.tsx +14 -2
  175. package/src/_TextInputWrapper.tsx +7 -0
  176. package/src/__tests__/ActionList2.test.tsx +47 -0
  177. package/src/__tests__/AnchoredOverlay.test.tsx +2 -2
  178. package/src/__tests__/TextInputWithTokens.test.tsx +0 -10
  179. package/src/__tests__/__snapshots__/ActionList2.test.tsx.snap +14 -0
  180. package/src/__tests__/__snapshots__/AnchoredOverlay.test.tsx.snap +35 -135
  181. package/src/__tests__/__snapshots__/Autocomplete.test.tsx.snap +1 -0
  182. package/src/__tests__/__snapshots__/CircleBadge.test.tsx.snap +1 -0
  183. package/src/__tests__/__snapshots__/CircleOcticon.test.tsx.snap +1 -0
  184. package/src/__tests__/__snapshots__/Dialog.test.tsx.snap +1 -0
  185. package/src/__tests__/__snapshots__/DropdownMenu.test.tsx.snap +1 -0
  186. package/src/__tests__/__snapshots__/SelectMenu.test.tsx.snap +4 -0
  187. package/src/__tests__/__snapshots__/SelectPanel.test.tsx.snap +1 -0
  188. package/src/__tests__/__snapshots__/StateLabel.test.tsx.snap +13 -6
  189. package/src/__tests__/__snapshots__/StyledOcticon.test.tsx.snap +1 -0
  190. package/src/__tests__/__snapshots__/TextInputWithTokens.test.tsx.snap +66 -0
  191. package/src/__tests__/__snapshots__/Token.test.tsx.snap +17 -0
  192. package/src/__tests__/utils/__snapshots__/createSlots.test.tsx.snap +55 -0
  193. package/src/__tests__/utils/createSlots.test.tsx +74 -0
  194. package/src/drafts.ts +9 -0
  195. package/src/hooks/useAnchoredPosition.ts +2 -1
  196. package/src/hooks/useCombinedRefs.ts +3 -3
  197. package/src/hooks/useResizeObserver.ts +2 -2
  198. package/src/stories/ActionList2.stories.tsx +1288 -0
  199. package/src/stories/TextInput.stories.tsx +113 -0
  200. package/src/stories/Token.stories.tsx +12 -1
  201. package/src/sx.ts +3 -0
  202. package/src/theme-preval.js +1 -0
  203. package/src/utils/create-slots.tsx +96 -0
  204. package/src/utils/use-force-update.ts +7 -0
  205. package/src/utils/useIsomorphicLayoutEffect.ts +10 -0
  206. package/stats.html +1 -1
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var _react = require("@testing-library/react");
4
+
5
+ require("babel-polyfill");
6
+
7
+ var _jestAxe = require("jest-axe");
8
+
9
+ var _react2 = _interopRequireDefault(require("react"));
10
+
11
+ var _theme = _interopRequireDefault(require("../theme"));
12
+
13
+ var _ActionList = require("../ActionList2");
14
+
15
+ var _testing = require("../utils/testing");
16
+
17
+ var _ = require("..");
18
+
19
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
+
21
+ expect.extend(_jestAxe.toHaveNoViolations);
22
+
23
+ function SimpleActionList() {
24
+ return /*#__PURE__*/_react2.default.createElement(_.ThemeProvider, {
25
+ theme: _theme.default
26
+ }, /*#__PURE__*/_react2.default.createElement(_.SSRProvider, null, /*#__PURE__*/_react2.default.createElement(_.BaseStyles, null, /*#__PURE__*/_react2.default.createElement(_ActionList.ActionList, null, /*#__PURE__*/_react2.default.createElement(_ActionList.ActionList.Item, null, "New file"), /*#__PURE__*/_react2.default.createElement(_ActionList.ActionList.Divider, null), /*#__PURE__*/_react2.default.createElement(_ActionList.ActionList.Item, null, "Copy link"), /*#__PURE__*/_react2.default.createElement(_ActionList.ActionList.Item, null, "Edit file"), /*#__PURE__*/_react2.default.createElement(_ActionList.ActionList.Item, {
27
+ variant: "danger"
28
+ }, "Delete file")))));
29
+ }
30
+
31
+ SimpleActionList.displayName = "SimpleActionList";
32
+ describe('ActionList', () => {
33
+ (0, _testing.behavesAsComponent)({
34
+ Component: _ActionList.ActionList,
35
+ options: {
36
+ skipAs: true,
37
+ skipSx: true
38
+ },
39
+ toRender: () => /*#__PURE__*/_react2.default.createElement(_ActionList.ActionList, null)
40
+ });
41
+ (0, _testing.checkExports)('ActionList2', {
42
+ default: undefined,
43
+ ActionList: _ActionList.ActionList
44
+ });
45
+ it('should have no axe violations', async () => {
46
+ const {
47
+ container
48
+ } = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(SimpleActionList, null));
49
+ const results = await (0, _jestAxe.axe)(container);
50
+ expect(results).toHaveNoViolations();
51
+ (0, _react.cleanup)();
52
+ });
53
+ });
@@ -152,9 +152,11 @@ describe('AnchoredOverlay', () => {
152
152
  expect(mockCloseCallback).toHaveBeenCalledWith('escape');
153
153
  });
154
154
  it('should render consistently when open', () => {
155
- const anchoredOverlay = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(AnchoredOverlayTestComponent, {
155
+ const {
156
+ container
157
+ } = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(AnchoredOverlayTestComponent, {
156
158
  initiallyOpen: true
157
159
  }));
158
- expect(anchoredOverlay).toMatchSnapshot();
160
+ expect(container).toMatchSnapshot();
159
161
  });
160
162
  });
@@ -58,16 +58,7 @@ const LabelledTextInputWithTokens = ({
58
58
  tokens: tokens,
59
59
  onTokenRemove: onTokenRemove,
60
60
  id: "tokenInput"
61
- }, rest))); // describe('axe test', () => {
62
- // it('should have no axe violations', async () => {
63
- // const onRemoveMock = jest.fn()
64
- // const {container} = HTMLRender(<LabelledTextInputWithTokens tokens={mockTokens} onTokenRemove={onRemoveMock} />)
65
- // const results = await axe(container)
66
- // expect(results).toHaveNoViolations()
67
- // cleanup()
68
- // })
69
- // })
70
-
61
+ }, rest)));
71
62
 
72
63
  jest.useFakeTimers();
73
64
  describe('TextInputWithTokens', () => {
@@ -0,0 +1 @@
1
+ import 'babel-polyfill';
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ require("babel-polyfill");
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _createSlots = _interopRequireDefault(require("../../utils/create-slots"));
10
+
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+
13
+ // setup a component with slots
14
+ const {
15
+ Slots,
16
+ Slot
17
+ } = (0, _createSlots.default)(['One', 'Two', 'Three']);
18
+
19
+ const ComponentWithSlots = ({
20
+ salutation,
21
+ children
22
+ }) => {
23
+ return /*#__PURE__*/_react.default.createElement(Slots, {
24
+ context: {
25
+ salutation
26
+ }
27
+ }, slots => /*#__PURE__*/_react.default.createElement("div", null, slots.One, /*#__PURE__*/_react.default.createElement("span", null, children, " ", slots.Two, " ", slots.Three)));
28
+ };
29
+
30
+ ComponentWithSlots.displayName = "ComponentWithSlots";
31
+
32
+ const SlotItem1 = ({
33
+ children
34
+ }) => /*#__PURE__*/_react.default.createElement(Slot, {
35
+ name: "One"
36
+ }, children);
37
+
38
+ SlotItem1.displayName = "SlotItem1";
39
+
40
+ const SlotItem2 = ({
41
+ children
42
+ }) => /*#__PURE__*/_react.default.createElement(Slot, {
43
+ name: "Two"
44
+ }, children);
45
+
46
+ SlotItem2.displayName = "SlotItem2";
47
+
48
+ const SlotItem3 = ({
49
+ children
50
+ }) => /*#__PURE__*/_react.default.createElement(Slot, {
51
+ name: "Three"
52
+ }, context => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, context.salutation, " ", children));
53
+
54
+ SlotItem3.displayName = "SlotItem3";
55
+ describe('ComponentWithSlots', () => {
56
+ it('renders all slots', async () => {
57
+ const component = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(ComponentWithSlots, null, /*#__PURE__*/_react.default.createElement(SlotItem1, null, "first"), /*#__PURE__*/_react.default.createElement(SlotItem2, null, "second"), "free form"));
58
+ await (0, _react2.waitFor)(() => component.getByText('first'));
59
+ expect(component.container).toMatchSnapshot();
60
+ });
61
+ it('renders without any slots', async () => {
62
+ const component = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(ComponentWithSlots, null, "free form"));
63
+ expect(component.container).toMatchSnapshot();
64
+ });
65
+ it('renders with just one slot', async () => {
66
+ const component = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(ComponentWithSlots, null, /*#__PURE__*/_react.default.createElement(SlotItem1, null, "first"), "free form"));
67
+ expect(component.container).toMatchSnapshot();
68
+ });
69
+ it('renders with context passed to children', async () => {
70
+ const component = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(ComponentWithSlots, {
71
+ salutation: "hi"
72
+ }, /*#__PURE__*/_react.default.createElement(SlotItem3, null, "third"), "free form"));
73
+ expect(component.container).toMatchSnapshot();
74
+ });
75
+ });
@@ -0,0 +1,7 @@
1
+ /** This is the place where we keep components that are not part of the public
2
+ * api yet (not in main bundle). We don't recommend using it in production.
3
+ *
4
+ * But, they are published on npm and you can import them for experimentation/feedback.
5
+ * example: import {ActionList} from '@primer/components/drafts
6
+ */
7
+ export * from './ActionList2';
package/lib/drafts.js ADDED
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _ActionList = require("./ActionList2");
8
+
9
+ Object.keys(_ActionList).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _ActionList[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _ActionList[key];
16
+ }
17
+ });
18
+ });
@@ -13,6 +13,8 @@ var _useProvidedRefOrCreate = require("./useProvidedRefOrCreate");
13
13
 
14
14
  var _useResizeObserver = require("./useResizeObserver");
15
15
 
16
+ var _useIsomorphicLayoutEffect = _interopRequireDefault(require("../utils/useIsomorphicLayoutEffect"));
17
+
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
19
 
18
20
  /**
@@ -39,8 +41,7 @@ function useAnchoredPosition(settings, dependencies = []) {
39
41
  }, // eslint-disable-next-line react-hooks/exhaustive-deps
40
42
  [floatingElementRef, anchorElementRef, ...dependencies]);
41
43
 
42
- _react.default.useLayoutEffect(updatePosition, [updatePosition]);
43
-
44
+ (0, _useIsomorphicLayoutEffect.default)(updatePosition, [updatePosition]);
44
45
  (0, _useResizeObserver.useResizeObserver)(updatePosition);
45
46
  return {
46
47
  floatingElementRef,
@@ -1,4 +1,4 @@
1
- import React, { ForwardedRef } from 'react';
1
+ import { ForwardedRef } from 'react';
2
2
  /**
3
3
  * Creates a ref by combining multiple constituent refs. The ref returned by this hook
4
4
  * should be passed as the ref for the element that needs to be shared. This is
@@ -7,4 +7,4 @@ import React, { ForwardedRef } from 'react';
7
7
  * though, as it breaks encapsulation.
8
8
  * @param refs
9
9
  */
10
- export declare function useCombinedRefs<T>(...refs: (ForwardedRef<T> | null | undefined)[]): React.MutableRefObject<T | null>;
10
+ export declare function useCombinedRefs<T>(...refs: (ForwardedRef<T> | null | undefined)[]): import("react").MutableRefObject<T | null>;
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useCombinedRefs = useCombinedRefs;
7
7
 
8
- var _react = _interopRequireWildcard(require("react"));
8
+ var _react = require("react");
9
9
 
10
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
+ var _useIsomorphicLayoutEffect = _interopRequireDefault(require("../utils/useIsomorphicLayoutEffect"));
11
11
 
12
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
 
14
14
  /**
15
15
  * Creates a ref by combining multiple constituent refs. The ref returned by this hook
@@ -21,8 +21,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
21
21
  */
22
22
  function useCombinedRefs(...refs) {
23
23
  const combinedRef = (0, _react.useRef)(null);
24
-
25
- _react.default.useLayoutEffect(() => {
24
+ (0, _useIsomorphicLayoutEffect.default)(() => {
26
25
  function setRefs(current = null) {
27
26
  for (const ref of refs) {
28
27
  if (!ref) {
@@ -44,6 +43,5 @@ function useCombinedRefs(...refs) {
44
43
  setRefs(combinedRef.current);
45
44
  }; // eslint-disable-next-line react-hooks/exhaustive-deps
46
45
  }, [...refs, combinedRef.current]);
47
-
48
46
  return combinedRef;
49
47
  }
@@ -5,12 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useResizeObserver = useResizeObserver;
7
7
 
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _useIsomorphicLayoutEffect = _interopRequireDefault(require("../utils/useIsomorphicLayoutEffect"));
9
9
 
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
11
 
12
12
  function useResizeObserver(callback) {
13
- _react.default.useLayoutEffect(() => {
13
+ (0, _useIsomorphicLayoutEffect.default)(() => {
14
14
  const observer = new window.ResizeObserver(() => callback());
15
15
  observer.observe(document.documentElement);
16
16
  return () => {