@jobber/hooks 2.17.4 → 2.18.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 (148) hide show
  1. package/dist/index.cjs +49 -0
  2. package/dist/index.mjs +23 -0
  3. package/dist/isObjectLike-cjs.js +228 -0
  4. package/dist/isObjectLike-es.js +219 -0
  5. package/dist/useBool/index.cjs +8 -0
  6. package/dist/useBool/index.mjs +2 -0
  7. package/dist/useBool-cjs.js +13 -0
  8. package/dist/useBool-es.js +11 -0
  9. package/dist/useBreakpoints/index.cjs +11 -0
  10. package/dist/useBreakpoints/index.mjs +3 -0
  11. package/dist/useBreakpoints/mockViewportWidth/{mockViewportWidth.js → index.cjs} +5 -4
  12. package/dist/useBreakpoints/mockViewportWidth/index.mjs +66 -0
  13. package/dist/useBreakpoints-cjs.js +48 -0
  14. package/dist/useBreakpoints-es.js +45 -0
  15. package/dist/useCallbackRef/index.cjs +8 -0
  16. package/dist/useCallbackRef/index.mjs +2 -0
  17. package/dist/useCallbackRef-cjs.js +17 -0
  18. package/dist/useCallbackRef-es.js +15 -0
  19. package/dist/useCollectionQuery/index.cjs +13 -0
  20. package/dist/useCollectionQuery/index.mjs +7 -0
  21. package/dist/useCollectionQuery/useCollectionQuery.d.ts +1 -1
  22. package/dist/useCollectionQuery-cjs.js +2842 -0
  23. package/dist/useCollectionQuery-es.js +2821 -0
  24. package/dist/useDebounce/index.cjs +9 -0
  25. package/dist/useDebounce/index.mjs +3 -0
  26. package/dist/useDebounce-cjs.js +92 -0
  27. package/dist/useDebounce-es.js +90 -0
  28. package/dist/useFocusTrap/index.cjs +8 -0
  29. package/dist/useFocusTrap/index.mjs +2 -0
  30. package/dist/{useFocusTrap/useFocusTrap.js → useFocusTrap-cjs.js} +8 -6
  31. package/dist/useFocusTrap-es.js +68 -0
  32. package/dist/useFormState/index.cjs +8 -0
  33. package/dist/useFormState/index.mjs +2 -0
  34. package/dist/useFormState-cjs.js +13 -0
  35. package/dist/useFormState-es.js +11 -0
  36. package/dist/useInView/index.cjs +8 -0
  37. package/dist/useInView/index.mjs +2 -0
  38. package/dist/{useInView/useInView.js → useInView-cjs.js} +10 -8
  39. package/dist/useInView-es.js +19 -0
  40. package/dist/useIsMounted/index.cjs +9 -0
  41. package/dist/useIsMounted/index.mjs +3 -0
  42. package/dist/{useIsMounted/useIsMounted.js → useIsMounted-cjs.js} +9 -7
  43. package/dist/useIsMounted-es.js +34 -0
  44. package/dist/useLiveAnnounce/index.cjs +8 -0
  45. package/dist/useLiveAnnounce/index.mjs +2 -0
  46. package/dist/{useLiveAnnounce/useLiveAnnounce.js → useLiveAnnounce-cjs.js} +8 -6
  47. package/dist/useLiveAnnounce-es.js +41 -0
  48. package/dist/useOnKeyDown/index.cjs +8 -0
  49. package/dist/useOnKeyDown/index.mjs +2 -0
  50. package/dist/{useOnKeyDown/useOnKeyDown.js → useOnKeyDown-cjs.js} +7 -5
  51. package/dist/useOnKeyDown-es.js +34 -0
  52. package/dist/useOnMount/index.cjs +9 -0
  53. package/dist/useOnMount/index.mjs +3 -0
  54. package/dist/{useOnMount/useOnMount.js → useOnMount-cjs.js} +9 -8
  55. package/dist/useOnMount-es.js +19 -0
  56. package/dist/useRefocusOnActivator/index.cjs +8 -0
  57. package/dist/useRefocusOnActivator/index.mjs +2 -0
  58. package/dist/{useRefocusOnActivator/useRefocusOnActivator.js → useRefocusOnActivator-cjs.js} +7 -5
  59. package/dist/useRefocusOnActivator-es.js +26 -0
  60. package/dist/useResizeObserver/index.cjs +10 -0
  61. package/dist/useResizeObserver/index.mjs +3 -0
  62. package/dist/useResizeObserver-cjs.js +1519 -0
  63. package/dist/useResizeObserver-es.js +1516 -0
  64. package/dist/useSafeLayoutEffect/index.cjs +8 -0
  65. package/dist/useSafeLayoutEffect/index.mjs +2 -0
  66. package/dist/useSafeLayoutEffect-cjs.js +9 -0
  67. package/dist/useSafeLayoutEffect-es.js +7 -0
  68. package/dist/useShowClear/{useShowClear.js → index.cjs} +4 -3
  69. package/dist/useShowClear/index.mjs +17 -0
  70. package/dist/useStepper/index.cjs +8 -0
  71. package/dist/useStepper/index.mjs +2 -0
  72. package/dist/{useStepper/useStepper.js → useStepper-cjs.js} +26 -14
  73. package/dist/useStepper-es.js +51 -0
  74. package/dist/useWindowDimensions/index.cjs +8 -0
  75. package/dist/useWindowDimensions/index.mjs +2 -0
  76. package/dist/{useWindowDimensions/useWindowDimensions.js → useWindowDimensions-cjs.js} +8 -6
  77. package/dist/useWindowDimensions-es.js +28 -0
  78. package/package.json +109 -7
  79. package/dist/index.js +0 -34
  80. package/dist/useBool/index.js +0 -5
  81. package/dist/useBool/useBool.js +0 -11
  82. package/dist/useBool/useBool.test.d.ts +0 -1
  83. package/dist/useBool/useBool.test.js +0 -28
  84. package/dist/useBreakpoints/index.js +0 -20
  85. package/dist/useBreakpoints/mockViewportWidth/index.js +0 -17
  86. package/dist/useBreakpoints/mockViewportWidth/mockViewportWidth.test.d.ts +0 -1
  87. package/dist/useBreakpoints/mockViewportWidth/mockViewportWidth.test.js +0 -17
  88. package/dist/useBreakpoints/useBreakpoints.js +0 -28
  89. package/dist/useBreakpoints/useBreakpoints.test.d.ts +0 -1
  90. package/dist/useBreakpoints/useBreakpoints.test.js +0 -142
  91. package/dist/useBreakpoints/useMediaQuery.js +0 -22
  92. package/dist/useCallbackRef/index.js +0 -5
  93. package/dist/useCallbackRef/useCallbackRef.js +0 -15
  94. package/dist/useCallbackRef/useCallbackRef.test.d.ts +0 -1
  95. package/dist/useCallbackRef/useCallbackRef.test.js +0 -29
  96. package/dist/useCollectionQuery/index.js +0 -5
  97. package/dist/useCollectionQuery/mdxUtils.js +0 -152
  98. package/dist/useCollectionQuery/test-utilities/index.d.ts +0 -3
  99. package/dist/useCollectionQuery/test-utilities/index.js +0 -19
  100. package/dist/useCollectionQuery/test-utilities/mocks.d.ts +0 -106
  101. package/dist/useCollectionQuery/test-utilities/mocks.js +0 -131
  102. package/dist/useCollectionQuery/test-utilities/queries.d.ts +0 -37
  103. package/dist/useCollectionQuery/test-utilities/queries.js +0 -59
  104. package/dist/useCollectionQuery/test-utilities/utils.d.ts +0 -1
  105. package/dist/useCollectionQuery/test-utilities/utils.js +0 -17
  106. package/dist/useCollectionQuery/uniqueEdges.js +0 -18
  107. package/dist/useCollectionQuery/uniqueNodes.js +0 -10
  108. package/dist/useCollectionQuery/useCollectionQuery.js +0 -194
  109. package/dist/useCollectionQuery/useCollectionQuery.test.d.ts +0 -1
  110. package/dist/useCollectionQuery/useCollectionQuery.test.js +0 -357
  111. package/dist/useDebounce/index.js +0 -5
  112. package/dist/useDebounce/useDebounce.js +0 -29
  113. package/dist/useDebounce/useDebounce.test.d.ts +0 -1
  114. package/dist/useDebounce/useDebounce.test.js +0 -190
  115. package/dist/useFocusTrap/index.js +0 -5
  116. package/dist/useFocusTrap/useFocusTrap.test.d.ts +0 -1
  117. package/dist/useFocusTrap/useFocusTrap.test.js +0 -61
  118. package/dist/useFormState/index.js +0 -5
  119. package/dist/useFormState/useFormState.js +0 -11
  120. package/dist/useInView/index.js +0 -17
  121. package/dist/useInView/useInView.test.d.ts +0 -1
  122. package/dist/useInView/useInView.test.js +0 -29
  123. package/dist/useIsMounted/index.js +0 -5
  124. package/dist/useIsMounted/useIsMounted.test.d.ts +0 -1
  125. package/dist/useIsMounted/useIsMounted.test.js +0 -15
  126. package/dist/useLiveAnnounce/index.js +0 -5
  127. package/dist/useLiveAnnounce/useLiveAnnounce.test.d.ts +0 -1
  128. package/dist/useLiveAnnounce/useLiveAnnounce.test.js +0 -60
  129. package/dist/useOnKeyDown/index.js +0 -5
  130. package/dist/useOnKeyDown/useOnKeyDown.test.d.ts +0 -1
  131. package/dist/useOnKeyDown/useOnKeyDown.test.js +0 -23
  132. package/dist/useOnMount/index.js +0 -5
  133. package/dist/useOnMount/useOnMount.test.d.ts +0 -1
  134. package/dist/useOnMount/useOnMount.test.js +0 -18
  135. package/dist/useRefocusOnActivator/index.js +0 -5
  136. package/dist/useResizeObserver/index.js +0 -17
  137. package/dist/useResizeObserver/useResizeObserver.js +0 -68
  138. package/dist/useSafeLayoutEffect/index.js +0 -5
  139. package/dist/useSafeLayoutEffect/useSafeLayoutEffect.js +0 -7
  140. package/dist/useShowClear/index.js +0 -5
  141. package/dist/useShowClear/useShowClear.test.d.ts +0 -1
  142. package/dist/useShowClear/useShowClear.test.js +0 -210
  143. package/dist/useStepper/index.js +0 -5
  144. package/dist/useStepper/useStepper.test.d.ts +0 -1
  145. package/dist/useStepper/useStepper.test.js +0 -79
  146. package/dist/useWindowDimensions/index.js +0 -5
  147. package/dist/useWindowDimensions/useWIndowDimensions.test.d.ts +0 -1
  148. package/dist/useWindowDimensions/useWIndowDimensions.test.js +0 -23
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useShowClear = void 0;
4
- var useShowClear_1 = require("./useShowClear");
5
- Object.defineProperty(exports, "useShowClear", { enumerable: true, get: function () { return useShowClear_1.useShowClear; } });
@@ -1 +0,0 @@
1
- export {};
@@ -1,210 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const useShowClear_1 = require("./useShowClear");
4
- describe("useShowClear", () => {
5
- describe.each([
6
- {
7
- clearable: "always",
8
- hasValue: true,
9
- focused: false,
10
- multiline: false,
11
- disabled: false,
12
- expected: true,
13
- },
14
- {
15
- clearable: "always",
16
- hasValue: true,
17
- focused: true,
18
- multiline: false,
19
- disabled: false,
20
- expected: true,
21
- },
22
- {
23
- clearable: "always",
24
- hasValue: true,
25
- focused: false,
26
- multiline: false,
27
- disabled: true,
28
- expected: false,
29
- },
30
- {
31
- clearable: "always",
32
- hasValue: false,
33
- focused: false,
34
- multiline: false,
35
- disabled: true,
36
- expected: false,
37
- },
38
- {
39
- clearable: "while-editing",
40
- hasValue: true,
41
- focused: false,
42
- multiline: false,
43
- disabled: false,
44
- expected: false,
45
- },
46
- {
47
- clearable: "while-editing",
48
- hasValue: true,
49
- focused: true,
50
- multiline: false,
51
- disabled: false,
52
- expected: true,
53
- },
54
- {
55
- clearable: "while-editing",
56
- hasValue: false,
57
- focused: false,
58
- multiline: false,
59
- disabled: true,
60
- expected: false,
61
- },
62
- {
63
- clearable: "while-editing",
64
- hasValue: true,
65
- focused: false,
66
- multiline: false,
67
- disabled: true,
68
- expected: false,
69
- },
70
- {
71
- clearable: "never",
72
- hasValue: true,
73
- focused: false,
74
- multiline: false,
75
- disabled: false,
76
- expected: false,
77
- },
78
- {
79
- clearable: "never",
80
- hasValue: true,
81
- focused: true,
82
- multiline: false,
83
- disabled: false,
84
- expected: false,
85
- },
86
- {
87
- clearable: "never",
88
- hasValue: false,
89
- focused: false,
90
- multiline: false,
91
- disabled: true,
92
- expected: false,
93
- },
94
- {
95
- clearable: "never",
96
- hasValue: true,
97
- focused: false,
98
- multiline: false,
99
- disabled: true,
100
- expected: false,
101
- },
102
- // Readonly cases
103
- {
104
- clearable: "always",
105
- hasValue: true,
106
- focused: false,
107
- multiline: false,
108
- disabled: false,
109
- readonly: true,
110
- expected: false,
111
- },
112
- {
113
- clearable: "always",
114
- hasValue: true,
115
- focused: true,
116
- multiline: false,
117
- disabled: false,
118
- readonly: true,
119
- expected: false,
120
- },
121
- {
122
- clearable: "while-editing",
123
- hasValue: true,
124
- focused: false,
125
- multiline: false,
126
- disabled: false,
127
- readonly: true,
128
- expected: false,
129
- },
130
- {
131
- clearable: "while-editing",
132
- hasValue: true,
133
- focused: true,
134
- multiline: false,
135
- disabled: false,
136
- readonly: true,
137
- expected: false,
138
- },
139
- {
140
- clearable: "never",
141
- hasValue: true,
142
- focused: false,
143
- multiline: false,
144
- disabled: false,
145
- readonly: true,
146
- expected: false,
147
- },
148
- {
149
- clearable: "never",
150
- hasValue: true,
151
- focused: true,
152
- multiline: false,
153
- disabled: false,
154
- readonly: true,
155
- expected: false,
156
- },
157
- ])("%j", ({ clearable, hasValue, focused, multiline, disabled, readonly, expected, }) => {
158
- it(`returns ${expected}`, () => {
159
- expect((0, useShowClear_1.useShowClear)({
160
- clearable,
161
- multiline,
162
- focused,
163
- hasValue,
164
- disabled,
165
- readonly,
166
- })).toEqual(expected);
167
- });
168
- });
169
- it("throws an error if multiline is true and clearable isn't never", () => {
170
- expect(() => {
171
- (0, useShowClear_1.useShowClear)({
172
- clearable: "always",
173
- multiline: true,
174
- focused: true,
175
- hasValue: true,
176
- disabled: false,
177
- });
178
- }).toThrow();
179
- expect(() => {
180
- (0, useShowClear_1.useShowClear)({
181
- clearable: "while-editing",
182
- multiline: true,
183
- focused: true,
184
- hasValue: true,
185
- disabled: false,
186
- });
187
- }).toThrow();
188
- expect(() => {
189
- (0, useShowClear_1.useShowClear)({
190
- clearable: "never",
191
- multiline: true,
192
- focused: true,
193
- hasValue: true,
194
- disabled: false,
195
- });
196
- }).not.toThrow();
197
- });
198
- it("respects readonly in multiline inputs", () => {
199
- expect(() => {
200
- (0, useShowClear_1.useShowClear)({
201
- clearable: "never",
202
- multiline: true,
203
- focused: true,
204
- hasValue: true,
205
- disabled: false,
206
- readonly: true,
207
- });
208
- }).not.toThrow();
209
- });
210
- });
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useStepper = void 0;
4
- var useStepper_1 = require("./useStepper");
5
- Object.defineProperty(exports, "useStepper", { enumerable: true, get: function () { return useStepper_1.useStepper; } });
@@ -1 +0,0 @@
1
- export {};
@@ -1,79 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const react_1 = require("@testing-library/react");
4
- const _1 = require(".");
5
- const steps = ["step1", "step2", "step3"];
6
- describe("useStepper", () => {
7
- it("initializes with first step when no initial step provided", () => {
8
- const { result } = (0, react_1.renderHook)(() => (0, _1.useStepper)(steps));
9
- expect(result.current.currentStep).toBe("step1");
10
- expect(result.current.isFirst).toBe(true);
11
- expect(result.current.isLast).toBe(false);
12
- });
13
- it("initializes with provided initial step", () => {
14
- const { result } = (0, react_1.renderHook)(() => (0, _1.useStepper)(["step1", "step2", "step3"], {
15
- defaultStep: "step2",
16
- }));
17
- expect(result.current.currentStep).toBe("step2");
18
- expect(result.current.isFirst).toBe(false);
19
- expect(result.current.isLast).toBe(false);
20
- });
21
- it("moves to next step when nextStep is called", () => {
22
- const { result } = (0, react_1.renderHook)(() => (0, _1.useStepper)(steps));
23
- (0, react_1.act)(() => {
24
- result.current.goToNextStep();
25
- });
26
- expect(result.current.currentStep).toBe("step2");
27
- expect(result.current.isLast).toBe(false);
28
- expect(result.current.isFirst).toBe(false);
29
- });
30
- it("moves to previous step when previousStep is called", () => {
31
- const { result } = (0, react_1.renderHook)(() => (0, _1.useStepper)(steps, {
32
- defaultStep: "step2",
33
- }));
34
- (0, react_1.act)(() => {
35
- result.current.goToPreviousStep();
36
- });
37
- expect(result.current.currentStep).toBe("step1");
38
- expect(result.current.isLast).toBe(false);
39
- expect(result.current.isFirst).toBe(true);
40
- });
41
- it("does not move past the last step", () => {
42
- const { result } = (0, react_1.renderHook)(() => (0, _1.useStepper)(steps, {
43
- defaultStep: "step3",
44
- }));
45
- (0, react_1.act)(() => {
46
- result.current.goToNextStep();
47
- });
48
- expect(result.current.currentStep).toBe("step3");
49
- expect(result.current.isLast).toBe(true);
50
- expect(result.current.isFirst).toBe(false);
51
- });
52
- it("does not move before the first step", () => {
53
- const { result } = (0, react_1.renderHook)(() => (0, _1.useStepper)(steps, {
54
- defaultStep: "step1",
55
- }));
56
- (0, react_1.act)(() => {
57
- result.current.goToPreviousStep();
58
- });
59
- expect(result.current.currentStep).toBe("step1");
60
- expect(result.current.isFirst).toBe(true);
61
- expect(result.current.isLast).toBe(false);
62
- });
63
- it("moves to specific step when goToStep is called", () => {
64
- const { result } = (0, react_1.renderHook)(() => (0, _1.useStepper)(steps));
65
- (0, react_1.act)(() => {
66
- result.current.goToStep("step3");
67
- });
68
- expect(result.current.currentStep).toBe("step3");
69
- expect(result.current.isLast).toBe(true);
70
- expect(result.current.isFirst).toBe(false);
71
- });
72
- describe("error handling", () => {
73
- it("throws error when steps array is empty", () => {
74
- expect(() => {
75
- (0, react_1.renderHook)(() => (0, _1.useStepper)([]));
76
- }).toThrow(new Error("Invariant failed: Steps array cannot be empty"));
77
- });
78
- });
79
- });
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useWindowDimensions = void 0;
4
- var useWindowDimensions_1 = require("./useWindowDimensions");
5
- Object.defineProperty(exports, "useWindowDimensions", { enumerable: true, get: function () { return useWindowDimensions_1.useWindowDimensions; } });
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const react_hooks_1 = require("@testing-library/react-hooks");
4
- const react_1 = require("@testing-library/react");
5
- const useWindowDimensions_1 = require("./useWindowDimensions");
6
- describe("useWindowDimensions", () => {
7
- it("should return window dimensions", () => {
8
- window.innerHeight = 100;
9
- window.innerWidth = 1000;
10
- const { result } = (0, react_hooks_1.renderHook)(() => (0, useWindowDimensions_1.useWindowDimensions)());
11
- expect(result.current).toEqual({ width: 1000, height: 100 });
12
- });
13
- describe("resize event", () => {
14
- it("should return window dimensions after resize", () => {
15
- window.innerHeight = 100;
16
- window.innerWidth = 1000;
17
- const { result } = (0, react_hooks_1.renderHook)(() => (0, useWindowDimensions_1.useWindowDimensions)());
18
- window.innerWidth = 500;
19
- (0, react_1.fireEvent)(window, new Event("resize"));
20
- expect(result.current).toEqual({ width: 500, height: 100 });
21
- });
22
- });
23
- });