foxact 0.3.3 → 0.3.5

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.
@@ -1,8 +1,8 @@
1
1
  import * as react from 'react';
2
- import { Foxact } from '../types/index.js';
3
2
 
4
- interface ContextComposeProviderProps extends Foxact.PropsWithChildren {
5
- contexts: React.ReactElement[];
3
+ interface ContextComposeProviderProps extends React.PropsWithChildren {
4
+ /** Only elements that accept a `children` prop (e.g. context providers) can be composed */
5
+ contexts: Array<React.ReactElement<React.PropsWithChildren>>;
6
6
  }
7
7
  /** @see https://foxact.skk.moe/compose-context-provider */
8
8
  declare const ComposeContextProvider: react.MemoExoticComponent<({ contexts, children }: ContextComposeProviderProps) => react.ReactNode>;
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("../use-isomorphic-layout-effect/index.cjs");require("client-only");const n=r.memo(function(n){let{defaultYear:u,...i}=n;"u"<typeof window&&void 0===u&&console.warn('[foxact/current-year] "defaultYear" is required during the server-side rendering.');const[o,s]=r.useState(u||new Date().getFullYear());return t.useIsomorphicLayoutEffect(()=>{s(new Date().getFullYear())},[]),e.jsx("span",{...i,children:o})});exports.CurrentYear=n;
2
+ "use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("../use-isomorphic-layout-effect/index.cjs");require("client-only");const n=r.memo(function(n){let{defaultYear:u,...i}=n;"u"<typeof window&&void 0===u&&console.warn('[foxact/current-year] "defaultYear" is required during the server-side rendering.');const[o,s]=r.useState(()=>u||new Date().getFullYear());return t.useIsomorphicLayoutEffect(()=>{s(new Date().getFullYear())},[]),e.jsx("span",{...i,children:o})});exports.CurrentYear=n;
@@ -1,10 +1,9 @@
1
1
  import * as react from 'react';
2
- import * as react_jsx_runtime from 'react/jsx-runtime';
3
2
 
4
3
  interface CurrentYearProps extends React.ComponentProps<'span'> {
5
4
  defaultYear?: number;
6
5
  }
7
6
  /** @see https://foxact.skk.moe/current-year */
8
- declare const CurrentYear: react.MemoExoticComponent<({ defaultYear, ...restProps }: CurrentYearProps) => react_jsx_runtime.JSX.Element>;
7
+ declare const CurrentYear: react.MemoExoticComponent<({ defaultYear, ...restProps }: CurrentYearProps) => react.JSX.Element>;
9
8
 
10
9
  export { CurrentYear };
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{jsx as e}from"react/jsx-runtime";import{memo as r,useState as t}from"react";import{useIsomorphicLayoutEffect as n}from"../use-isomorphic-layout-effect/index.mjs";import"client-only";const o=r(function(r){let{defaultYear:o,...i}=r;"u"<typeof window&&void 0===o&&console.warn('[foxact/current-year] "defaultYear" is required during the server-side rendering.');const[a,u]=t(o||new Date().getFullYear());return n(()=>{u(new Date().getFullYear())},[]),e("span",{...i,children:a})});export{o as CurrentYear};
2
+ import{jsx as e}from"react/jsx-runtime";import{memo as r,useState as t}from"react";import{useIsomorphicLayoutEffect as n}from"../use-isomorphic-layout-effect/index.mjs";import"client-only";const o=r(function(r){let{defaultYear:o,...i}=r;"u"<typeof window&&void 0===o&&console.warn('[foxact/current-year] "defaultYear" is required during the server-side rendering.');const[a,u]=t(()=>o||new Date().getFullYear());return n(()=>{u(new Date().getFullYear())},[]),e("span",{...i,children:a})});export{o as CurrentYear};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var e=require("react"),t=require("../use-isomorphic-layout-effect/index.cjs");require("client-only");const o=e.memo(o=>{let{mailbox:r,domain:i}=o;const[c,s]=e.useState(()=>Math.random().toString(36).slice(2)+"[at]"+i.replace(/\./g,"[dot]"));return t.useIsomorphicLayoutEffect(()=>{s(r+"@"+i)},[i,r]),c});"production"!==process.env.NODE_ENV&&(o.displayName="EmailProtection"),exports.EmailProtection=o;
2
+ "use strict";var e=require("react"),t=require("../noop/index.cjs");const o=e.memo(o=>{let{mailbox:r,domain:n}=o;const[a]=e.useState(()=>Math.random().toString(36).slice(2)+"[at]"+n.replace(/\./g,"[dot]"));return e.useSyncExternalStore(t.noop,()=>r+"@"+n,()=>a)});"production"!==process.env.NODE_ENV&&(o.displayName="EmailProtection"),exports.EmailProtection=o;
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{memo as o,useState as t}from"react";import{useIsomorphicLayoutEffect as e}from"../use-isomorphic-layout-effect/index.mjs";import"client-only";const r=o(o=>{let{mailbox:r,domain:i}=o;const[c,n]=t(()=>Math.random().toString(36).slice(2)+"[at]"+i.replace(/\./g,"[dot]"));return e(()=>{n(r+"@"+i)},[i,r]),c});"production"!==process.env.NODE_ENV&&(r.displayName="EmailProtection");export{r as EmailProtection};
2
+ import{memo as o,useState as t,useSyncExternalStore as r}from"react";import{noop as e}from"../noop/index.mjs";const i=o(o=>{let{mailbox:i,domain:n}=o;const[a]=t(()=>Math.random().toString(36).slice(2)+"[at]"+n.replace(/\./g,"[dot]"));return r(e,()=>i+"@"+n,()=>a)});"production"!==process.env.NODE_ENV&&(i.displayName="EmailProtection");export{i as EmailProtection};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "foxact",
3
- "version": "0.3.3",
3
+ "version": "0.3.5",
4
4
  "description": "React Hooks/Utils done right. For browser, SSR, and React Server Components.",
5
5
  "homepage": "https://foxact.skk.moe",
6
6
  "repository": {
@@ -61,24 +61,6 @@
61
61
  "require": "./compose-context-provider/index.cjs",
62
62
  "default": "./compose-context-provider/index.cjs"
63
63
  },
64
- "./context-state": {
65
- "types": "./context-state/index.d.ts",
66
- "import": {
67
- "types": "./context-state/index.d.ts",
68
- "default": "./context-state/index.mjs"
69
- },
70
- "require": "./context-state/index.cjs",
71
- "default": "./context-state/index.cjs"
72
- },
73
- "./create-context-reducer": {
74
- "types": "./create-context-reducer/index.d.ts",
75
- "import": {
76
- "types": "./create-context-reducer/index.d.ts",
77
- "default": "./create-context-reducer/index.mjs"
78
- },
79
- "require": "./create-context-reducer/index.cjs",
80
- "default": "./create-context-reducer/index.cjs"
81
- },
82
64
  "./context-reducer": {
83
65
  "types": "./context-reducer/index.d.ts",
84
66
  "import": {
@@ -115,32 +97,32 @@
115
97
  "require": "./create-local-storage-state/index.cjs",
116
98
  "default": "./create-local-storage-state/index.cjs"
117
99
  },
118
- "./create-magic-portal": {
119
- "types": "./create-magic-portal/index.d.ts",
100
+ "./create-context-reducer": {
101
+ "types": "./create-context-reducer/index.d.ts",
120
102
  "import": {
121
- "types": "./create-magic-portal/index.d.ts",
122
- "default": "./create-magic-portal/index.mjs"
103
+ "types": "./create-context-reducer/index.d.ts",
104
+ "default": "./create-context-reducer/index.mjs"
123
105
  },
124
- "require": "./create-magic-portal/index.cjs",
125
- "default": "./create-magic-portal/index.cjs"
106
+ "require": "./create-context-reducer/index.cjs",
107
+ "default": "./create-context-reducer/index.cjs"
126
108
  },
127
- "./create-stackless-error": {
128
- "types": "./create-stackless-error/index.d.ts",
109
+ "./context-state": {
110
+ "types": "./context-state/index.d.ts",
129
111
  "import": {
130
- "types": "./create-stackless-error/index.d.ts",
131
- "default": "./create-stackless-error/index.mjs"
112
+ "types": "./context-state/index.d.ts",
113
+ "default": "./context-state/index.mjs"
132
114
  },
133
- "require": "./create-stackless-error/index.cjs",
134
- "default": "./create-stackless-error/index.cjs"
115
+ "require": "./context-state/index.cjs",
116
+ "default": "./context-state/index.cjs"
135
117
  },
136
- "./create-storage-hook": {
137
- "types": "./create-storage-hook/index.d.ts",
118
+ "./create-magic-portal": {
119
+ "types": "./create-magic-portal/index.d.ts",
138
120
  "import": {
139
- "types": "./create-storage-hook/index.d.ts",
140
- "default": "./create-storage-hook/index.mjs"
121
+ "types": "./create-magic-portal/index.d.ts",
122
+ "default": "./create-magic-portal/index.mjs"
141
123
  },
142
- "require": "./create-storage-hook/index.cjs",
143
- "default": "./create-storage-hook/index.cjs"
124
+ "require": "./create-magic-portal/index.cjs",
125
+ "default": "./create-magic-portal/index.cjs"
144
126
  },
145
127
  "./create-storage-state-factory": {
146
128
  "types": "./create-storage-state-factory/index.d.ts",
@@ -160,6 +142,15 @@
160
142
  "require": "./current-year/index.cjs",
161
143
  "default": "./current-year/index.cjs"
162
144
  },
145
+ "./create-stackless-error": {
146
+ "types": "./create-stackless-error/index.d.ts",
147
+ "import": {
148
+ "types": "./create-stackless-error/index.d.ts",
149
+ "default": "./create-stackless-error/index.mjs"
150
+ },
151
+ "require": "./create-stackless-error/index.cjs",
152
+ "default": "./create-stackless-error/index.cjs"
153
+ },
163
154
  "./email-protection": {
164
155
  "types": "./email-protection/index.d.ts",
165
156
  "import": {
@@ -169,15 +160,6 @@
169
160
  "require": "./email-protection/index.cjs",
170
161
  "default": "./email-protection/index.cjs"
171
162
  },
172
- "./fetch-jsonp": {
173
- "types": "./fetch-jsonp/index.d.ts",
174
- "import": {
175
- "types": "./fetch-jsonp/index.d.ts",
176
- "default": "./fetch-jsonp/index.mjs"
177
- },
178
- "require": "./fetch-jsonp/index.cjs",
179
- "default": "./fetch-jsonp/index.cjs"
180
- },
181
163
  "./invariant": {
182
164
  "types": "./invariant/index.d.ts",
183
165
  "import": {
@@ -187,6 +169,15 @@
187
169
  "require": "./invariant/index.cjs",
188
170
  "default": "./invariant/index.cjs"
189
171
  },
172
+ "./fetch-jsonp": {
173
+ "types": "./fetch-jsonp/index.d.ts",
174
+ "import": {
175
+ "types": "./fetch-jsonp/index.d.ts",
176
+ "default": "./fetch-jsonp/index.mjs"
177
+ },
178
+ "require": "./fetch-jsonp/index.cjs",
179
+ "default": "./fetch-jsonp/index.cjs"
180
+ },
190
181
  "./is-safari": {
191
182
  "types": "./is-safari/index.d.ts",
192
183
  "import": {
@@ -196,15 +187,6 @@
196
187
  "require": "./is-safari/index.cjs",
197
188
  "default": "./is-safari/index.cjs"
198
189
  },
199
- "./merge-refs": {
200
- "types": "./merge-refs/index.d.ts",
201
- "import": {
202
- "types": "./merge-refs/index.d.ts",
203
- "default": "./merge-refs/index.mjs"
204
- },
205
- "require": "./merge-refs/index.cjs",
206
- "default": "./merge-refs/index.cjs"
207
- },
208
190
  "./magic-portal": {
209
191
  "types": "./magic-portal/index.d.ts",
210
192
  "import": {
@@ -214,23 +196,14 @@
214
196
  "require": "./magic-portal/index.cjs",
215
197
  "default": "./magic-portal/index.cjs"
216
198
  },
217
- "./no-ssr": {
218
- "types": "./no-ssr/index.d.ts",
219
- "import": {
220
- "types": "./no-ssr/index.d.ts",
221
- "default": "./no-ssr/index.mjs"
222
- },
223
- "require": "./no-ssr/index.cjs",
224
- "default": "./no-ssr/index.cjs"
225
- },
226
- "./create-session-storage-state": {
227
- "types": "./create-session-storage-state/index.d.ts",
199
+ "./merge-refs": {
200
+ "types": "./merge-refs/index.d.ts",
228
201
  "import": {
229
- "types": "./create-session-storage-state/index.d.ts",
230
- "default": "./create-session-storage-state/index.mjs"
202
+ "types": "./merge-refs/index.d.ts",
203
+ "default": "./merge-refs/index.mjs"
231
204
  },
232
- "require": "./create-session-storage-state/index.cjs",
233
- "default": "./create-session-storage-state/index.cjs"
205
+ "require": "./merge-refs/index.cjs",
206
+ "default": "./merge-refs/index.cjs"
234
207
  },
235
208
  "./noop": {
236
209
  "types": "./noop/index.d.ts",
@@ -241,6 +214,15 @@
241
214
  "require": "./noop/index.cjs",
242
215
  "default": "./noop/index.cjs"
243
216
  },
217
+ "./no-ssr": {
218
+ "types": "./no-ssr/index.d.ts",
219
+ "import": {
220
+ "types": "./no-ssr/index.d.ts",
221
+ "default": "./no-ssr/index.mjs"
222
+ },
223
+ "require": "./no-ssr/index.cjs",
224
+ "default": "./no-ssr/index.cjs"
225
+ },
244
226
  "./noop-component": {
245
227
  "types": "./noop-component/index.d.ts",
246
228
  "import": {
@@ -259,15 +241,6 @@
259
241
  "require": "./nullthrow/index.cjs",
260
242
  "default": "./nullthrow/index.cjs"
261
243
  },
262
- "./rem": {
263
- "types": "./rem/index.d.ts",
264
- "import": {
265
- "types": "./rem/index.d.ts",
266
- "default": "./rem/index.mjs"
267
- },
268
- "require": "./rem/index.cjs",
269
- "default": "./rem/index.cjs"
270
- },
271
244
  "./open-new-tab": {
272
245
  "types": "./open-new-tab/index.d.ts",
273
246
  "import": {
@@ -286,6 +259,15 @@
286
259
  "require": "./request-idle-callback/index.cjs",
287
260
  "default": "./request-idle-callback/index.cjs"
288
261
  },
262
+ "./rem": {
263
+ "types": "./rem/index.d.ts",
264
+ "import": {
265
+ "types": "./rem/index.d.ts",
266
+ "default": "./rem/index.mjs"
267
+ },
268
+ "require": "./rem/index.cjs",
269
+ "default": "./rem/index.cjs"
270
+ },
289
271
  "./types": {
290
272
  "types": "./types/index.d.ts",
291
273
  "import": {
@@ -313,15 +295,6 @@
313
295
  "require": "./use/index.cjs",
314
296
  "default": "./use/index.cjs"
315
297
  },
316
- "./use-abortable-effect": {
317
- "types": "./use-abortable-effect/index.d.ts",
318
- "import": {
319
- "types": "./use-abortable-effect/index.d.ts",
320
- "default": "./use-abortable-effect/index.mjs"
321
- },
322
- "require": "./use-abortable-effect/index.cjs",
323
- "default": "./use-abortable-effect/index.cjs"
324
- },
325
298
  "./use-array": {
326
299
  "types": "./use-array/index.d.ts",
327
300
  "import": {
@@ -331,6 +304,15 @@
331
304
  "require": "./use-array/index.cjs",
332
305
  "default": "./use-array/index.cjs"
333
306
  },
307
+ "./use-abortable-effect": {
308
+ "types": "./use-abortable-effect/index.d.ts",
309
+ "import": {
310
+ "types": "./use-abortable-effect/index.d.ts",
311
+ "default": "./use-abortable-effect/index.mjs"
312
+ },
313
+ "require": "./use-abortable-effect/index.cjs",
314
+ "default": "./use-abortable-effect/index.cjs"
315
+ },
334
316
  "./use-clipboard": {
335
317
  "types": "./use-clipboard/index.d.ts",
336
318
  "import": {
@@ -358,15 +340,6 @@
358
340
  "require": "./use-composition-input/index.cjs",
359
341
  "default": "./use-composition-input/index.cjs"
360
342
  },
361
- "./use-debounced-state": {
362
- "types": "./use-debounced-state/index.d.ts",
363
- "import": {
364
- "types": "./use-debounced-state/index.d.ts",
365
- "default": "./use-debounced-state/index.mjs"
366
- },
367
- "require": "./use-debounced-state/index.cjs",
368
- "default": "./use-debounced-state/index.cjs"
369
- },
370
343
  "./use-debounced-value": {
371
344
  "types": "./use-debounced-value/index.d.ts",
372
345
  "import": {
@@ -376,14 +349,14 @@
376
349
  "require": "./use-debounced-value/index.cjs",
377
350
  "default": "./use-debounced-value/index.cjs"
378
351
  },
379
- "./use-intersection": {
380
- "types": "./use-intersection/index.d.ts",
352
+ "./use-debounced-state": {
353
+ "types": "./use-debounced-state/index.d.ts",
381
354
  "import": {
382
- "types": "./use-intersection/index.d.ts",
383
- "default": "./use-intersection/index.mjs"
355
+ "types": "./use-debounced-state/index.d.ts",
356
+ "default": "./use-debounced-state/index.mjs"
384
357
  },
385
- "require": "./use-intersection/index.cjs",
386
- "default": "./use-intersection/index.cjs"
358
+ "require": "./use-debounced-state/index.cjs",
359
+ "default": "./use-debounced-state/index.cjs"
387
360
  },
388
361
  "./use-error-boundary": {
389
362
  "types": "./use-error-boundary/index.d.ts",
@@ -403,14 +376,14 @@
403
376
  "require": "./use-fast-click/index.cjs",
404
377
  "default": "./use-fast-click/index.cjs"
405
378
  },
406
- "./use-is-client": {
407
- "types": "./use-is-client/index.d.ts",
379
+ "./use-intersection": {
380
+ "types": "./use-intersection/index.d.ts",
408
381
  "import": {
409
- "types": "./use-is-client/index.d.ts",
410
- "default": "./use-is-client/index.mjs"
382
+ "types": "./use-intersection/index.d.ts",
383
+ "default": "./use-intersection/index.mjs"
411
384
  },
412
- "require": "./use-is-client/index.cjs",
413
- "default": "./use-is-client/index.cjs"
385
+ "require": "./use-intersection/index.cjs",
386
+ "default": "./use-intersection/index.cjs"
414
387
  },
415
388
  "./use-is-online": {
416
389
  "types": "./use-is-online/index.d.ts",
@@ -421,6 +394,15 @@
421
394
  "require": "./use-is-online/index.cjs",
422
395
  "default": "./use-is-online/index.cjs"
423
396
  },
397
+ "./use-is-client": {
398
+ "types": "./use-is-client/index.d.ts",
399
+ "import": {
400
+ "types": "./use-is-client/index.d.ts",
401
+ "default": "./use-is-client/index.mjs"
402
+ },
403
+ "require": "./use-is-client/index.cjs",
404
+ "default": "./use-is-client/index.cjs"
405
+ },
424
406
  "./use-isomorphic-layout-effect": {
425
407
  "types": "./use-isomorphic-layout-effect/index.d.ts",
426
408
  "import": {
@@ -430,15 +412,6 @@
430
412
  "require": "./use-isomorphic-layout-effect/index.cjs",
431
413
  "default": "./use-isomorphic-layout-effect/index.cjs"
432
414
  },
433
- "./use-local-storage": {
434
- "types": "./use-local-storage/index.d.ts",
435
- "import": {
436
- "types": "./use-local-storage/index.d.ts",
437
- "default": "./use-local-storage/index.mjs"
438
- },
439
- "require": "./use-local-storage/index.cjs",
440
- "default": "./use-local-storage/index.cjs"
441
- },
442
415
  "./use-map": {
443
416
  "types": "./use-map/index.d.ts",
444
417
  "import": {
@@ -448,6 +421,15 @@
448
421
  "require": "./use-map/index.cjs",
449
422
  "default": "./use-map/index.cjs"
450
423
  },
424
+ "./use-local-storage": {
425
+ "types": "./use-local-storage/index.d.ts",
426
+ "import": {
427
+ "types": "./use-local-storage/index.d.ts",
428
+ "default": "./use-local-storage/index.mjs"
429
+ },
430
+ "require": "./use-local-storage/index.cjs",
431
+ "default": "./use-local-storage/index.cjs"
432
+ },
451
433
  "./use-media-query": {
452
434
  "types": "./use-media-query/index.d.ts",
453
435
  "import": {
@@ -475,15 +457,6 @@
475
457
  "require": "./use-readonly-search-params/index.cjs",
476
458
  "default": "./use-readonly-search-params/index.cjs"
477
459
  },
478
- "./use-retimer": {
479
- "types": "./use-retimer/index.d.ts",
480
- "import": {
481
- "types": "./use-retimer/index.d.ts",
482
- "default": "./use-retimer/index.mjs"
483
- },
484
- "require": "./use-retimer/index.cjs",
485
- "default": "./use-retimer/index.cjs"
486
- },
487
460
  "./use-session-storage": {
488
461
  "types": "./use-session-storage/index.d.ts",
489
462
  "import": {
@@ -493,6 +466,15 @@
493
466
  "require": "./use-session-storage/index.cjs",
494
467
  "default": "./use-session-storage/index.cjs"
495
468
  },
469
+ "./use-retimer": {
470
+ "types": "./use-retimer/index.d.ts",
471
+ "import": {
472
+ "types": "./use-retimer/index.d.ts",
473
+ "default": "./use-retimer/index.mjs"
474
+ },
475
+ "require": "./use-retimer/index.cjs",
476
+ "default": "./use-retimer/index.cjs"
477
+ },
496
478
  "./use-set": {
497
479
  "types": "./use-set/index.d.ts",
498
480
  "import": {
@@ -511,15 +493,6 @@
511
493
  "require": "./use-singleton/index.cjs",
512
494
  "default": "./use-singleton/index.cjs"
513
495
  },
514
- "./use-state-with-deps": {
515
- "types": "./use-state-with-deps/index.d.ts",
516
- "import": {
517
- "types": "./use-state-with-deps/index.d.ts",
518
- "default": "./use-state-with-deps/index.mjs"
519
- },
520
- "require": "./use-state-with-deps/index.cjs",
521
- "default": "./use-state-with-deps/index.cjs"
522
- },
523
496
  "./use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired": {
524
497
  "types": "./use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired/index.d.ts",
525
498
  "import": {
@@ -538,6 +511,15 @@
538
511
  "require": "./use-typescript-happy-callback/index.cjs",
539
512
  "default": "./use-typescript-happy-callback/index.cjs"
540
513
  },
514
+ "./use-state-with-deps": {
515
+ "types": "./use-state-with-deps/index.d.ts",
516
+ "import": {
517
+ "types": "./use-state-with-deps/index.d.ts",
518
+ "default": "./use-state-with-deps/index.mjs"
519
+ },
520
+ "require": "./use-state-with-deps/index.cjs",
521
+ "default": "./use-state-with-deps/index.cjs"
522
+ },
541
523
  "./use-uncontrolled": {
542
524
  "types": "./use-uncontrolled/index.d.ts",
543
525
  "import": {
@@ -555,6 +537,24 @@
555
537
  },
556
538
  "require": "./use-url-hash-state/index.cjs",
557
539
  "default": "./use-url-hash-state/index.cjs"
540
+ },
541
+ "./create-storage-hook": {
542
+ "types": "./create-storage-hook/index.d.ts",
543
+ "import": {
544
+ "types": "./create-storage-hook/index.d.ts",
545
+ "default": "./create-storage-hook/index.mjs"
546
+ },
547
+ "require": "./create-storage-hook/index.cjs",
548
+ "default": "./create-storage-hook/index.cjs"
549
+ },
550
+ "./create-session-storage-state": {
551
+ "types": "./create-session-storage-state/index.d.ts",
552
+ "import": {
553
+ "types": "./create-session-storage-state/index.d.ts",
554
+ "default": "./create-session-storage-state/index.mjs"
555
+ },
556
+ "require": "./create-session-storage-state/index.cjs",
557
+ "default": "./create-session-storage-state/index.cjs"
558
558
  }
559
559
  }
560
560
  }
package/sizes.json CHANGED
@@ -1 +1 @@
1
- {"total":{"raw":25768,"gzip":15616,"br":0},"exports":{"compose-context-provider":{"raw":177,"gzip":155,"br":122},"create-context-reducer":{"raw":223,"gzip":146,"br":117},"context-state":{"raw":402,"gzip":259,"br":218},"context-reducer":{"raw":557,"gzip":332,"br":319},"create-context-state":{"raw":145,"gzip":116,"br":96},"create-magic-portal":{"raw":268,"gzip":148,"br":121},"create-fixed-array":{"raw":452,"gzip":282,"br":248},"create-local-storage-state":{"raw":446,"gzip":222,"br":209},"create-stackless-error":{"raw":278,"gzip":198,"br":162},"current-year":{"raw":524,"gzip":355,"br":293},"create-storage-state-factory":{"raw":620,"gzip":341,"br":290},"email-protection":{"raw":426,"gzip":321,"br":272},"is-safari":{"raw":233,"gzip":164,"br":119},"invariant":{"raw":178,"gzip":156,"br":118},"fetch-jsonp":{"raw":890,"gzip":546,"br":429},"no-ssr":{"raw":338,"gzip":267,"br":219},"merge-refs":{"raw":525,"gzip":280,"br":235},"noop-component":{"raw":142,"gzip":130,"br":111},"create-storage-hook":{"raw":2462,"gzip":972,"br":852},"create-session-storage-state":{"raw":450,"gzip":223,"br":206},"noop":{"raw":33,"gzip":53,"br":37},"magic-portal":{"raw":1083,"gzip":536,"br":472},"nullthrow":{"raw":187,"gzip":163,"br":121},"types":{"raw":0,"gzip":20,"br":1},"open-new-tab":{"raw":335,"gzip":255,"br":187},"typescript-happy-forward-ref":{"raw":119,"gzip":103,"br":80},"request-idle-callback":{"raw":392,"gzip":221,"br":171},"use-abortable-effect":{"raw":215,"gzip":170,"br":144},"rem":{"raw":823,"gzip":395,"br":350},"use":{"raw":298,"gzip":197,"br":160},"use-array":{"raw":322,"gzip":236,"br":202},"use-component-will-receive-update":{"raw":216,"gzip":188,"br":154},"use-debounced-state":{"raw":401,"gzip":280,"br":242},"use-composition-input":{"raw":470,"gzip":286,"br":241},"use-debounced-value":{"raw":524,"gzip":342,"br":286},"use-clipboard":{"raw":1177,"gzip":650,"br":552},"use-error-boundary":{"raw":252,"gzip":195,"br":165},"use-is-client":{"raw":204,"gzip":153,"br":121},"use-fast-click":{"raw":622,"gzip":392,"br":317},"use-intersection":{"raw":1230,"gzip":649,"br":597},"use-isomorphic-layout-effect":{"raw":169,"gzip":137,"br":110},"use-is-online":{"raw":370,"gzip":258,"br":220},"use-local-storage":{"raw":428,"gzip":226,"br":198},"use-map":{"raw":339,"gzip":243,"br":208},"use-page-visibility":{"raw":359,"gzip":263,"br":210},"use-retimer":{"raw":199,"gzip":166,"br":127},"use-media-query":{"raw":648,"gzip":397,"br":332},"use-set":{"raw":340,"gzip":238,"br":203},"use-singleton":{"raw":149,"gzip":135,"br":116},"use-session-storage":{"raw":434,"gzip":225,"br":210},"use-readonly-search-params":{"raw":1164,"gzip":589,"br":496},"use-typescript-happy-callback":{"raw":107,"gzip":102,"br":77},"use-state-with-deps":{"raw":464,"gzip":321,"br":295},"use-uncontrolled":{"raw":388,"gzip":273,"br":230},"use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired":{"raw":450,"gzip":318,"br":249},"use-url-hash-state":{"raw":1121,"gzip":628,"br":556}}}
1
+ {"total":{"raw":27817,"gzip":16550,"br":0},"exports":{"create-context-state":{"raw":145,"gzip":116,"br":96},"compose-context-provider":{"raw":177,"gzip":155,"br":122},"context-reducer":{"raw":557,"gzip":332,"br":319},"create-context-reducer":{"raw":223,"gzip":146,"br":117},"create-magic-portal":{"raw":268,"gzip":148,"br":121},"create-local-storage-state":{"raw":446,"gzip":222,"br":209},"context-state":{"raw":402,"gzip":259,"br":218},"create-fixed-array":{"raw":452,"gzip":282,"br":248},"create-stackless-error":{"raw":278,"gzip":198,"br":162},"create-storage-state-factory":{"raw":620,"gzip":341,"br":290},"invariant":{"raw":178,"gzip":156,"br":118},"email-protection":{"raw":380,"gzip":292,"br":248},"current-year":{"raw":528,"gzip":356,"br":292},"is-safari":{"raw":233,"gzip":164,"br":119},"noop":{"raw":33,"gzip":53,"br":37},"fetch-jsonp":{"raw":890,"gzip":546,"br":429},"merge-refs":{"raw":525,"gzip":280,"br":235},"noop-component":{"raw":142,"gzip":130,"br":111},"magic-portal":{"raw":1083,"gzip":536,"br":472},"no-ssr":{"raw":338,"gzip":267,"br":219},"nullthrow":{"raw":187,"gzip":163,"br":121},"types":{"raw":0,"gzip":20,"br":1},"open-new-tab":{"raw":335,"gzip":255,"br":187},"typescript-happy-forward-ref":{"raw":119,"gzip":103,"br":80},"request-idle-callback":{"raw":392,"gzip":221,"br":171},"use":{"raw":298,"gzip":197,"br":160},"rem":{"raw":823,"gzip":395,"br":350},"use-abortable-effect":{"raw":215,"gzip":170,"br":144},"use-array":{"raw":334,"gzip":243,"br":206},"use-component-will-receive-update":{"raw":216,"gzip":188,"br":154},"use-composition-input":{"raw":470,"gzip":286,"br":241},"use-debounced-value":{"raw":553,"gzip":358,"br":320},"use-debounced-state":{"raw":401,"gzip":280,"br":242},"use-error-boundary":{"raw":252,"gzip":195,"br":165},"use-is-online":{"raw":370,"gzip":258,"br":220},"use-fast-click":{"raw":622,"gzip":392,"br":317},"use-clipboard":{"raw":2723,"gzip":1332,"br":1140},"use-is-client":{"raw":204,"gzip":153,"br":121},"use-isomorphic-layout-effect":{"raw":169,"gzip":137,"br":110},"use-intersection":{"raw":1363,"gzip":716,"br":654},"use-map":{"raw":384,"gzip":256,"br":220},"use-local-storage":{"raw":428,"gzip":226,"br":198},"use-page-visibility":{"raw":359,"gzip":263,"br":210},"use-media-query":{"raw":648,"gzip":397,"br":332},"use-retimer":{"raw":194,"gzip":166,"br":127},"use-session-storage":{"raw":434,"gzip":225,"br":210},"use-readonly-search-params":{"raw":1164,"gzip":589,"br":496},"use-set":{"raw":368,"gzip":247,"br":211},"use-singleton":{"raw":149,"gzip":135,"br":116},"use-typescript-happy-callback":{"raw":107,"gzip":102,"br":77},"use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired":{"raw":450,"gzip":318,"br":249},"use-uncontrolled":{"raw":388,"gzip":273,"br":230},"use-state-with-deps":{"raw":767,"gzip":489,"br":427},"use-url-hash-state":{"raw":1121,"gzip":628,"br":556},"create-session-storage-state":{"raw":450,"gzip":223,"br":206},"create-storage-hook":{"raw":2462,"gzip":972,"br":852}}}
@@ -1 +1 @@
1
- "use strict";require("client-only");var e=require("react");exports.useArray=function(){let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>[];const[t,c]=e.useState(r),l=e.useCallback(e=>c(r=>r.concat(e)),[]);return[t,l,e.useCallback(()=>c([]),[]),e.useCallback(e=>c(r=>{if(e>-1){const t=r.slice();return t.splice(e,1),t}return r}),[])]};
1
+ "use strict";require("client-only");var e=require("react");exports.useArray=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>[];const[r,c]=e.useState(t),l=e.useCallback(e=>c(t=>t.concat(e)),[]);return[r,l,e.useCallback(()=>c([]),[]),e.useCallback(e=>c(t=>{if(e>-1&&e<t.length){const r=t.slice();return r.splice(e,1),r}return t}),[])]};
@@ -1 +1 @@
1
- import"client-only";import{useState as t,useCallback as r}from"react";function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>[];const[n,o]=t(e),c=r(t=>o(r=>r.concat(t)),[]);return[n,c,r(()=>o([]),[]),r(t=>o(r=>{if(t>-1){const e=r.slice();return e.splice(t,1),e}return r}),[])]}export{e as useArray};
1
+ import"client-only";import{useState as t,useCallback as r}from"react";function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>[];const[n,o]=t(e),c=r(t=>o(r=>r.concat(t)),[]);return[n,c,r(()=>o([]),[]),r(t=>o(r=>{if(t>-1&&t<r.length){const e=r.slice();return e.splice(t,1),e}return r}),[])]}export{e as useArray};
@@ -1 +1 @@
1
- "use strict";require("client-only");var e=require("react"),r=require("../noop/index.cjs"),t=require("../use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired/index.cjs"),a=require("../use-typescript-happy-callback/index.cjs");class o extends Error{constructor(e){super(e),this.name="UseClipboardError"}}exports.UseClipboardError=o,exports.useClipboard=function(){let{timeout:l=1e3,usePromptAsFallback:i=!1,promptFallbackText:c="Failed to copy to clipboard automatically, please manually copy the text below.",onCopyError:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const[u,s]=e.useState(null),[p,d]=e.useState(!1),b=e.useRef(null),y=t.useStableHandler(n||r.noop),w=a.useCallback(e=>{b.current&&clearTimeout(b.current),e&&(b.current=window.setTimeout(()=>d(!1),l)),d(e)},[l]),h=a.useCallback(e=>{s(e),y(e)},[y]);return{copy:a.useCallback(async e=>{try{if("clipboard"in navigator)await navigator.clipboard.writeText(e),w(!0);else throw new o("[foxact/use-clipboard] navigator.clipboard is not supported")}catch(r){if(i)try{window.prompt(c,e)}catch(e){h(e)}else h(r)}},[w,c,h,i]),reset:a.useCallback(()=>{d(!1),s(null),b.current&&clearTimeout(b.current)},[]),error:u,copied:p}};
1
+ "use strict";require("client-only");var e=require("react"),t=require("../noop/index.cjs"),r=require("../use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired/index.cjs"),l=require("../use-typescript-happy-callback/index.cjs");class a extends Error{constructor(...e){var t;super(...e),(t="name")in this?Object.defineProperty(this,t,{value:"UseClipboardError",enumerable:!0,configurable:!0,writable:!0}):this[t]="UseClipboardError"}}async function o(e,t,r,l){let o;if("clipboard"in navigator)try{return await navigator.clipboard.writeText(e),!0}catch(e){(o=new a("[foxact/use-clipboard] Failed to copy using navigator.clipboard")).cause=e}else o=new a("[foxact/use-clipboard] navigator.clipboard is not supported");if(t){var n;let t;const r=document.activeElement,l=[],c=document.getSelection();let s=null,i=null!=(n=document.fullscreenElement)?n:document.body,u=r;for(;u;){if("DIALOG"===u.tagName&&u.open){i=u;break}u=u.parentElement}let d=null;try{if(c.rangeCount){for(let e=0;e<c.rangeCount;e++)l.push(c.getRangeAt(e));c.removeAllRanges()}((null==r?void 0:r.tagName)==="INPUT"||(null==r?void 0:r.tagName)==="TEXTAREA")&&(s=r).blur();const a=document.createRange();(d=document.createElement("span")).textContent=e,d.style.whiteSpace="pre",d.ariaHidden="true",d.style.all="unset",d.style.position="fixed",d.style.top="0",d.style.clip="rect(0, 0, 0, 0)",d.style.borderWidth="0",d.style.overflow="hidden",d.style.userSelect="text",d.style.webkitUserSelect="text",d.style.MozUserSelect="text",d.style.msUserSelect="text",d.addEventListener("copy",e=>{e.stopPropagation()}),i.appendChild(d),a.selectNodeContents(d),c.removeAllRanges(),c.addRange(a),t=document.execCommand("copy")}catch(e){(o=new a("[foxact/use-clipboard] Failed to copy using execCommand fallback")).cause=e,t=!1}finally{c.removeAllRanges(),d&&i.removeChild(d),"Caret"===c.type&&c.removeAllRanges(),c.rangeCount||l.forEach(e=>c.addRange(e)),null==s||s.focus()}if(t)return!0}return r?(window.prompt(l,e),!1):o}exports.UseClipboardError=a,exports.useClipboard=function(){let{timeout:a=1e3,useExecCommandAsFallback:n=!0,usePromptAsFallback:c=!1,promptFallbackText:s="Failed to copy to clipboard, please manually copy the text below.",onCopyError:i}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const[u,d]=e.useState(null),[p,y]=e.useState(!1),b=e.useRef(null),m=r.useStableHandler(i||t.noop),g=l.useCallback(e=>{b.current&&clearTimeout(b.current),e&&(b.current=window.setTimeout(()=>y(!1),a)),y(e)},[a]),f=l.useCallback(e=>{d(e),m(e)},[m]);return{copy:l.useCallback(async e=>{try{const t=await o(e,n,c,s);"boolean"==typeof t?t&&g(!0):f(t)}catch(e){f(e)}},[g,s,f,n,c]),reset:l.useCallback(()=>{y(!1),d(null),b.current&&clearTimeout(b.current)},[]),error:u,copied:p}};
@@ -1,14 +1,17 @@
1
1
  declare class UseClipboardError extends Error {
2
- constructor(message: string);
2
+ readonly name = "UseClipboardError";
3
3
  }
4
4
  interface UseClipboardOption {
5
5
  timeout?: number;
6
+ /** @default true */
7
+ useExecCommandAsFallback?: boolean;
8
+ /** @default false */
6
9
  usePromptAsFallback?: boolean;
7
10
  promptFallbackText?: string;
8
11
  onCopyError?: (error: Error) => void;
9
12
  }
10
13
  /** @see https://foxact.skk.moe/use-clipboard */
11
- declare function useClipboard({ timeout, usePromptAsFallback, promptFallbackText, onCopyError }?: UseClipboardOption): {
14
+ declare function useClipboard({ timeout, useExecCommandAsFallback, usePromptAsFallback, promptFallbackText, onCopyError }?: UseClipboardOption): {
12
15
  copy: (valueToCopy: string) => Promise<void>;
13
16
  reset: () => void;
14
17
  error: Error | null;
@@ -1 +1 @@
1
- import"client-only";import{useState as r,useRef as e}from"react";import{noop as o}from"../noop/index.mjs";import{useStableHandler as t}from"../use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired/index.mjs";import{useCallback as i}from"../use-typescript-happy-callback/index.mjs";class a extends Error{constructor(r){super(r),this.name="UseClipboardError"}}function l(){let{timeout:l=1e3,usePromptAsFallback:n=!1,promptFallbackText:c="Failed to copy to clipboard automatically, please manually copy the text below.",onCopyError:p}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const[s,u]=r(null),[d,m]=r(!1),y=e(null),w=t(p||o),b=i(r=>{y.current&&clearTimeout(y.current),r&&(y.current=window.setTimeout(()=>m(!1),l)),m(r)},[l]),h=i(r=>{u(r),w(r)},[w]);return{copy:i(async r=>{try{if("clipboard"in navigator)await navigator.clipboard.writeText(r),b(!0);else throw new a("[foxact/use-clipboard] navigator.clipboard is not supported")}catch(e){if(n)try{window.prompt(c,r)}catch(r){h(r)}else h(e)}},[b,c,h,n]),reset:i(()=>{m(!1),u(null),y.current&&clearTimeout(y.current)},[]),error:s,copied:d}}export{a as UseClipboardError,l as useClipboard};
1
+ import"client-only";import{useState as e,useRef as t}from"react";import{noop as o}from"../noop/index.mjs";import{useStableHandler as r}from"../use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired/index.mjs";import{useCallback as n}from"../use-typescript-happy-callback/index.mjs";class l extends Error{constructor(...e){var t;super(...e),(t="name")in this?Object.defineProperty(this,t,{value:"UseClipboardError",enumerable:!0,configurable:!0,writable:!0}):this[t]="UseClipboardError"}}function a(){let{timeout:l=1e3,useExecCommandAsFallback:a=!0,usePromptAsFallback:c=!1,promptFallbackText:s="Failed to copy to clipboard, please manually copy the text below.",onCopyError:u}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const[d,p]=e(null),[m,y]=e(!1),b=t(null),f=r(u||o),g=n(e=>{b.current&&clearTimeout(b.current),e&&(b.current=window.setTimeout(()=>y(!1),l)),y(e)},[l]),h=n(e=>{p(e),f(e)},[f]);return{copy:n(async e=>{try{const t=await i(e,a,c,s);"boolean"==typeof t?t&&g(!0):h(t)}catch(e){h(e)}},[g,s,h,a,c]),reset:n(()=>{y(!1),p(null),b.current&&clearTimeout(b.current)},[]),error:d,copied:m}}async function i(e,t,o,r){let n;if("clipboard"in navigator)try{return await navigator.clipboard.writeText(e),!0}catch(e){(n=new l("[foxact/use-clipboard] Failed to copy using navigator.clipboard")).cause=e}else n=new l("[foxact/use-clipboard] navigator.clipboard is not supported");if(t){var a;let t;const o=document.activeElement,r=[],i=document.getSelection();let c=null,s=null!=(a=document.fullscreenElement)?a:document.body,u=o;for(;u;){if("DIALOG"===u.tagName&&u.open){s=u;break}u=u.parentElement}let d=null;try{if(i.rangeCount){for(let e=0;e<i.rangeCount;e++)r.push(i.getRangeAt(e));i.removeAllRanges()}((null==o?void 0:o.tagName)==="INPUT"||(null==o?void 0:o.tagName)==="TEXTAREA")&&(c=o).blur();const n=document.createRange();(d=document.createElement("span")).textContent=e,d.style.whiteSpace="pre",d.ariaHidden="true",d.style.all="unset",d.style.position="fixed",d.style.top="0",d.style.clip="rect(0, 0, 0, 0)",d.style.borderWidth="0",d.style.overflow="hidden",d.style.userSelect="text",d.style.webkitUserSelect="text",d.style.MozUserSelect="text",d.style.msUserSelect="text",d.addEventListener("copy",e=>{e.stopPropagation()}),s.appendChild(d),n.selectNodeContents(d),i.removeAllRanges(),i.addRange(n),t=document.execCommand("copy")}catch(e){(n=new l("[foxact/use-clipboard] Failed to copy using execCommand fallback")).cause=e,t=!1}finally{i.removeAllRanges(),d&&s.removeChild(d),"Caret"===i.type&&i.removeAllRanges(),i.rangeCount||r.forEach(e=>i.addRange(e)),null==c||c.focus()}if(t)return!0}return o?(window.prompt(r,e),!1):n}export{l as UseClipboardError,a as useClipboard};
@@ -1 +1 @@
1
- "use strict";require("client-only");var e=require("react"),t=require("../use-abortable-effect/index.cjs");exports.useDebouncedValue=function(r,u){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("function"==typeof r)throw TypeError("useDebouncedValue does not support function as value");const[o,c]=e.useState(r),i=e.useRef(!0);return t.useEffect(e=>{let t=null;return e.aborted||(n&&i.current?(i.current=!1,c(r)):t=window.setTimeout(()=>{i.current=!0,c(r)},u)),()=>{t&&window.clearTimeout(t)}},[r,n,u]),o};
1
+ "use strict";require("client-only");var e=require("react"),t=require("../use-abortable-effect/index.cjs");exports.useDebouncedValue=function(u,r){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("function"==typeof u)throw TypeError("[foxact/use-debounced-value] useDebouncedValue does not support function as value");const[o,c]=e.useState(u),s=e.useRef(!0);return t.useEffect(e=>{let t=null;return e.aborted||(n&&s.current?(s.current=!1,c(u)):t=window.setTimeout(()=>{s.current=!0,c(u)},r)),()=>{t&&window.clearTimeout(t)}},[u,n,r]),o};
@@ -1 +1 @@
1
- import"client-only";import{useState as e,useRef as t}from"react";import{useEffect as o}from"../use-abortable-effect/index.mjs";function r(r,n){let u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("function"==typeof r)throw TypeError("useDebouncedValue does not support function as value");const[i,c]=e(r),l=t(!0);return o(e=>{let t=null;return e.aborted||(u&&l.current?(l.current=!1,c(r)):t=window.setTimeout(()=>{l.current=!0,c(r)},n)),()=>{t&&window.clearTimeout(t)}},[r,u,n]),i}export{r as useDebouncedValue};
1
+ import"client-only";import{useState as e,useRef as t}from"react";import{useEffect as o}from"../use-abortable-effect/index.mjs";function r(r,n){let u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("function"==typeof r)throw TypeError("[foxact/use-debounced-value] useDebouncedValue does not support function as value");const[c,i]=e(r),l=t(!0);return o(e=>{let t=null;return e.aborted||(u&&l.current?(l.current=!1,i(r)):t=window.setTimeout(()=>{l.current=!0,i(r)},n)),()=>{t&&window.clearTimeout(t)}},[r,u,n]),c}export{r as useDebouncedValue};
@@ -1 +1 @@
1
- "use strict";require("client-only");var e=require("react"),t=require("../request-idle-callback/index.cjs");const n="function"==typeof IntersectionObserver,r=new Map,o=[];exports.useIntersection=function(c){let{rootRef:i,rootMargin:s,disabled:u}=c;const[l,a]=e.useState(!1),f=e.useRef(null);e.useEffect(()=>{if(n){if(u||l)return;const e=f.current;if(null==e?void 0:e.tagName)return function(e,t,n){const{id:c,observer:i,elements:s}=function(e){let t;const n={root:e.root||null,margin:e.rootMargin||""},c=o.find(e=>e.root===n.root&&e.margin===n.margin);if(c&&(t=r.get(c)))return t;const i=new Map;return t={id:n,observer:new IntersectionObserver(e=>{e.forEach(e=>{const t=i.get(e.target),n=e.isIntersecting||e.intersectionRatio>0;t&&n&&t(n)})},e),elements:i},o.push(n),r.set(n,t),t}(n);return s.set(e,t),i.observe(e),function(){if(s.delete(e),i.unobserve(e),0===s.size){i.disconnect(),r.delete(c);const e=o.findIndex(e=>e.root===c.root&&e.margin===c.margin);e>-1&&o.splice(e,1)}}}(e,e=>e&&a(!0),{root:null==i?void 0:i.current,rootMargin:s})}if(!l){const e=t.requestIdleCallback(()=>a(!0));return()=>t.cancelIdleCallback(e)}},[u,s,i,l]);const d=e.useCallback(()=>{a(!1)},[]);return[e.useCallback(e=>{f.current=e},[]),l,d]};
1
+ "use strict";require("client-only");var e=require("react"),n=require("../request-idle-callback/index.cjs"),t=require("../use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired/index.cjs");const r="function"==typeof IntersectionObserver,o=new Map,i=[];exports.useIntersection=function(s){let{rootRef:c,rootMargin:u,disabled:l}=s;const[a,f]=e.useState(!1),d=e.useRef(null),b=t.useStableHandler(()=>f(!0));e.useEffect(()=>{if(r){if(l||a)return;const e=d.current;if(null==e?void 0:e.tagName)return function(e,n,t){const{id:r,observer:s,elements:c}=function(e){let n;const t={root:e.root||null,margin:e.rootMargin||""},r=i.find(e=>e.root===t.root&&e.margin===t.margin);if(r&&(n=o.get(r)))return n;const s=new Map;return n={id:t,observer:new IntersectionObserver(e=>{e.forEach(e=>{const n=s.get(e.target),t=e.isIntersecting||e.intersectionRatio>0;n&&t&&n(t)})},e),elements:s},i.push(t),o.set(t,n),n}(t);return c.set(e,n),s.observe(e),function(){if(c.delete(e),s.unobserve(e),0===c.size){s.disconnect(),o.delete(r);const e=i.findIndex(e=>e.root===r.root&&e.margin===r.margin);e>-1&&i.splice(e,1)}}}(e,e=>e&&b(),{root:null==c?void 0:c.current,rootMargin:u})}if(!a){const e=n.requestIdleCallback(b);return()=>n.cancelIdleCallback(e)}},[l,u,c,a,b]);const g=e.useCallback(()=>{f(!1)},[]);return[e.useCallback(e=>{d.current=e},[]),a,g]};
@@ -1 +1 @@
1
- import"client-only";import{useState as t,useRef as n,useEffect as e,useCallback as r}from"react";import{requestIdleCallback as o,cancelIdleCallback as i}from"../request-idle-callback/index.mjs";const c="function"==typeof IntersectionObserver;function s(s){let{rootRef:f,rootMargin:a,disabled:m}=s;const[g,d]=t(!1),p=n(null);e(()=>{if(c){if(m||g)return;const t=p.current;if(null==t?void 0:t.tagName)return function(t,n,e){const{id:r,observer:o,elements:i}=function(t){let n;const e={root:t.root||null,margin:t.rootMargin||""},r=l.find(t=>t.root===e.root&&t.margin===e.margin);if(r&&(n=u.get(r)))return n;const o=new Map;return n={id:e,observer:new IntersectionObserver(t=>{t.forEach(t=>{const n=o.get(t.target),e=t.isIntersecting||t.intersectionRatio>0;n&&e&&n(e)})},t),elements:o},l.push(e),u.set(e,n),n}(e);return i.set(t,n),o.observe(t),function(){if(i.delete(t),o.unobserve(t),0===i.size){o.disconnect(),u.delete(r);const t=l.findIndex(t=>t.root===r.root&&t.margin===r.margin);t>-1&&l.splice(t,1)}}}(t,t=>t&&d(!0),{root:null==f?void 0:f.current,rootMargin:a})}if(!g){const t=o(()=>d(!0));return()=>i(t)}},[m,a,f,g]);const v=r(()=>{d(!1)},[]);return[r(t=>{p.current=t},[]),g,v]}const u=new Map,l=[];export{s as useIntersection};
1
+ import"client-only";import{useState as n,useRef as e,useEffect as t,useCallback as r}from"react";import{requestIdleCallback as o,cancelIdleCallback as i}from"../request-idle-callback/index.mjs";import{useStableHandler as s}from"../use-stable-handler-only-when-you-know-what-you-are-doing-or-you-will-be-fired/index.mjs";const c="function"==typeof IntersectionObserver;function u(u){let{rootRef:f,rootMargin:m,disabled:d}=u;const[g,p]=n(!1),b=e(null),v=s(()=>p(!0));t(()=>{if(c){if(d||g)return;const n=b.current;if(null==n?void 0:n.tagName)return function(n,e,t){const{id:r,observer:o,elements:i}=function(n){let e;const t={root:n.root||null,margin:n.rootMargin||""},r=a.find(n=>n.root===t.root&&n.margin===t.margin);if(r&&(e=l.get(r)))return e;const o=new Map;return e={id:t,observer:new IntersectionObserver(n=>{n.forEach(n=>{const e=o.get(n.target),t=n.isIntersecting||n.intersectionRatio>0;e&&t&&e(t)})},n),elements:o},a.push(t),l.set(t,e),e}(t);return i.set(n,e),o.observe(n),function(){if(i.delete(n),o.unobserve(n),0===i.size){o.disconnect(),l.delete(r);const n=a.findIndex(n=>n.root===r.root&&n.margin===r.margin);n>-1&&a.splice(n,1)}}}(n,n=>n&&v(),{root:null==f?void 0:f.current,rootMargin:m})}if(!g){const n=o(v);return()=>i(n)}},[d,m,f,g,v]);const w=r(()=>{p(!1)},[]);return[r(n=>{b.current=n},[]),g,w]}const l=new Map,a=[];export{u as useIntersection};
package/use-map/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";require("client-only");var e=require("react");exports.useMap=function(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>new Map;const[t,l]=e.useState(a),s=e.useCallback((e,a)=>l(t=>(t.set(e,a),new Map(t))),[]),n=e.useCallback(e=>l(a=>a.has(e)?(a.delete(e),new Map(a)):a),[]);return[t,s,n,e.useCallback(()=>l(new Map),[]),e.useCallback(e=>l(e),[])]};
1
+ "use strict";require("client-only");var e=require("react");exports.useMap=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>new Map;const[a,n]=e.useState(t),r=e.useCallback((e,t)=>n(a=>{const n=new Map(a);return n.set(e,t),n}),[]),s=e.useCallback(e=>n(t=>{if(!t.has(e))return t;const a=new Map(t);return a.delete(e),a}),[]);return[a,r,s,e.useCallback(()=>n(new Map),[]),e.useCallback(e=>n(e),[])]};
package/use-map/index.mjs CHANGED
@@ -1 +1 @@
1
- import"client-only";import{useState as e,useCallback as t}from"react";function n(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>new Map;const[o,p]=e(n),a=t((e,t)=>p(n=>(n.set(e,t),new Map(n))),[]),r=t(e=>p(t=>t.has(e)?(t.delete(e),new Map(t)):t),[]);return[o,a,r,t(()=>p(new Map),[]),t(e=>p(e),[])]}export{n as useMap};
1
+ import"client-only";import{useState as e,useCallback as t}from"react";function n(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>new Map;const[r,o]=e(n),p=t((e,t)=>o(n=>{const r=new Map(n);return r.set(e,t),r}),[]),a=t(e=>o(t=>{if(!t.has(e))return t;const n=new Map(t);return n.delete(e),n}),[]);return[r,p,a,t(()=>o(new Map),[]),t(e=>o(e),[])]}export{n as useMap};
@@ -1 +1 @@
1
- "use strict";require("client-only");var e=require("react");exports.useRetimer=function(){const r=e.useRef();return e.useCallback(e=>{"number"==typeof r.current&&clearTimeout(r.current),r.current=e},[])};
1
+ "use strict";require("client-only");var e=require("react");exports.useRetimer=function(){const r=e.useRef(void 0);return e.useCallback(e=>{null!=r.current&&clearTimeout(r.current),r.current=e},[])};
@@ -1 +1 @@
1
- import"client-only";import{useRef as r,useCallback as e}from"react";function t(){const t=r();return e(r=>{"number"==typeof t.current&&clearTimeout(t.current),t.current=r},[])}export{t as useRetimer};
1
+ import"client-only";import{useRef as r,useCallback as t}from"react";function e(){const e=r(void 0);return t(r=>{null!=e.current&&clearTimeout(e.current),e.current=r},[])}export{e as useRetimer};
package/use-set/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";require("client-only");var e=require("react");exports.useSet=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>new Set;const[a,l]=e.useState(t),s=e.useCallback(e=>l(t=>t.has(e)?t:new Set([...t,e])),[]),n=e.useCallback(e=>l(t=>t.has(e)?(t.delete(e),new Set(t)):t),[]);return[a,s,n,e.useCallback(()=>l(new Set),[]),e.useCallback(e=>l(e),[])]};
1
+ "use strict";require("client-only");var e=require("react");exports.useSet=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>new Set;const[n,r]=e.useState(t),a=e.useCallback(e=>r(t=>t.has(e)?t:new Set([...t,e])),[]),l=e.useCallback(e=>r(t=>{if(!t.has(e))return t;const n=new Set(t);return n.delete(e),n}),[]);return[n,a,l,e.useCallback(()=>r(new Set),[]),e.useCallback(e=>r(e),[])]};
package/use-set/index.mjs CHANGED
@@ -1 +1 @@
1
- import"client-only";import{useState as e,useCallback as t}from"react";function n(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>new Set;const[o,r]=e(n),i=t(e=>r(t=>t.has(e)?t:new Set([...t,e])),[]),l=t(e=>r(t=>t.has(e)?(t.delete(e),new Set(t)):t),[]);return[o,i,l,t(()=>r(new Set),[]),t(e=>r(e),[])]}export{n as useSet};
1
+ import"client-only";import{useState as e,useCallback as t}from"react";function n(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>new Set;const[r,o]=e(n),i=t(e=>o(t=>t.has(e)?t:new Set([...t,e])),[]),c=t(e=>o(t=>{if(!t.has(e))return t;const n=new Set(t);return n.delete(e),n}),[]);return[r,i,c,t(()=>o(new Set),[]),t(e=>o(e),[])]}export{n as useSet};
@@ -1 +1 @@
1
- "use strict";var e=require("react"),t=require("../use-isomorphic-layout-effect/index.cjs");require("client-only"),exports.useStateWithDeps=function(r){const[,u]=e.useState({}),c=e.useRef(!1),s=e.useRef(r),n=e.useRef({}),o=e.useCallback(e=>{let t=!1;const r=s.current;for(const u in e)Object.prototype.hasOwnProperty.call(e,u)&&r[u]!==e[u]&&(r[u]=e[u],n.current[u]&&(t=!0));t&&!c.current&&u({})},[]);return t.useLayoutEffect(()=>(c.current=!1,()=>{c.current=!0})),[s,n,o]};
1
+ "use strict";var e=require("react"),t=require("../use-isomorphic-layout-effect/index.cjs");function s(e,t){Object.defineProperty(e.t,t,{get:()=>(e.d[t]=!0,e.s[t]),enumerable:!0})}function n(e){return{state:e.s,tracked:e.d}}require("client-only");const r=Object.prototype.hasOwnProperty;exports.useStateWithDeps=function(c){const[{inst:u},o]=e.useState(()=>{const e={s:c,d:{},t:{},u:!1};for(const t in c)r.call(c,t)&&s(e,t);return{inst:e}}),i=e.useCallback(e=>{const t="function"==typeof e?e(u.s):e;let n=!1;for(const e in t)r.call(t,e)&&(r.call(u.t,e)||s(u,e),!Object.is(u.s[e],t[e])&&(u.s[e]=t[e],u.d[e]&&(n=!0)));n&&!u.u&&o({inst:u})},[u]);return t.useLayoutEffect(()=>(u.u=!1,()=>{u.u=!0})),"production"!==process.env.NODE_ENV&&e.useDebugValue(u,n),[u.t,i]};
@@ -1,9 +1,7 @@
1
- import { RefObject } from 'react';
2
-
1
+ /** @see https://foxact.skk.moe/use-state-with-deps */
3
2
  declare function useStateWithDeps<S extends Record<string, any> = Record<string, any>>(initialState: S): [
4
- stateRef: RefObject<S>,
5
- stateDependenciesRef: RefObject<Partial<Record<keyof S, boolean>>>,
6
- setState: (payload: Partial<S>) => void
3
+ snapshot: Readonly<S>,
4
+ setState: (payload: Partial<S> | ((prevState: Readonly<S>) => Partial<S>)) => void
7
5
  ];
8
6
 
9
7
  export { useStateWithDeps };
@@ -1 +1 @@
1
- import{useState as t,useRef as r,useCallback as e}from"react";import{useLayoutEffect as o}from"../use-isomorphic-layout-effect/index.mjs";import"client-only";function n(n){const[,c]=t({}),i=r(!1),u=r(n),p=r({}),s=e(t=>{let r=!1;const e=u.current;for(const o in t)Object.prototype.hasOwnProperty.call(t,o)&&e[o]!==t[o]&&(e[o]=t[o],p.current[o]&&(r=!0));r&&!i.current&&c({})},[]);return o(()=>(i.current=!1,()=>{i.current=!0})),[u,p,s]}export{n as useStateWithDeps};
1
+ import{useState as t,useCallback as e,useDebugValue as o}from"react";import{useLayoutEffect as n}from"../use-isomorphic-layout-effect/index.mjs";import"client-only";function r(t,e){Object.defineProperty(t.t,e,{get:()=>(t.d[e]=!0,t.s[e]),enumerable:!0})}function c(t){return{state:t.s,tracked:t.d}}const s=Object.prototype.hasOwnProperty;function i(i){const[{inst:u},p]=t(()=>{const t={s:i,d:{},t:{},u:!1};for(const e in i)s.call(i,e)&&r(t,e);return{inst:t}}),f=e(t=>{const e="function"==typeof t?t(u.s):t;let o=!1;for(const t in e)s.call(e,t)&&(s.call(u.t,t)||r(u,t),!Object.is(u.s[t],e[t])&&(u.s[t]=e[t],u.d[t]&&(o=!0)));o&&!u.u&&p({inst:u})},[u]);return n(()=>(u.u=!1,()=>{u.u=!0})),"production"!==process.env.NODE_ENV&&o(u,c),[u.t,f]}export{i as useStateWithDeps};