@pyric/ui 0.1.0-alpha.7 → 0.1.0-alpha.9

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 (117) hide show
  1. package/LICENSE +216 -0
  2. package/dist/auth/components/AuthUserList.d.ts +15 -4
  3. package/dist/auth/components/AuthUserList.d.ts.map +1 -1
  4. package/dist/auth/components/AuthUserList.js +3 -3
  5. package/dist/auth/components/AuthUserList.js.map +1 -1
  6. package/dist/firestore/components/DocumentList.d.ts +5 -2
  7. package/dist/firestore/components/DocumentList.d.ts.map +1 -1
  8. package/dist/firestore/components/DocumentList.js +17 -3
  9. package/dist/firestore/components/DocumentList.js.map +1 -1
  10. package/dist/firestore/firestoreApi.d.ts +2 -2
  11. package/dist/firestore/firestoreApi.d.ts.map +1 -1
  12. package/dist/firestore/firestoreApi.js +2 -1
  13. package/dist/firestore/firestoreApi.js.map +1 -1
  14. package/dist/firestore/hooks/useDocumentEditor.d.ts +7 -4
  15. package/dist/firestore/hooks/useDocumentEditor.d.ts.map +1 -1
  16. package/dist/firestore/hooks/useDocumentEditor.js +7 -4
  17. package/dist/firestore/hooks/useDocumentEditor.js.map +1 -1
  18. package/dist/firestore/hooks/useDocumentList.d.ts +18 -13
  19. package/dist/firestore/hooks/useDocumentList.d.ts.map +1 -1
  20. package/dist/firestore/hooks/useDocumentList.js +77 -27
  21. package/dist/firestore/hooks/useDocumentList.js.map +1 -1
  22. package/dist/firestore/hooks/useFirestoreCollection.d.ts +1 -1
  23. package/dist/firestore/hooks/useFirestoreCollection.d.ts.map +1 -1
  24. package/dist/firestore/hooks/useFirestoreCollection.js +3 -2
  25. package/dist/firestore/hooks/useFirestoreCollection.js.map +1 -1
  26. package/dist/firestore/hooks/useFirestoreDoc.d.ts +1 -1
  27. package/dist/firestore/hooks/useFirestoreDoc.d.ts.map +1 -1
  28. package/dist/firestore/hooks/useFirestoreDoc.js +3 -2
  29. package/dist/firestore/hooks/useFirestoreDoc.js.map +1 -1
  30. package/dist/firestore/index.d.ts +1 -0
  31. package/dist/firestore/index.d.ts.map +1 -1
  32. package/dist/firestore/index.js +1 -0
  33. package/dist/firestore/index.js.map +1 -1
  34. package/dist/firestore/reducers/documentEditor.d.ts.map +1 -1
  35. package/dist/firestore/reducers/documentEditor.js +2 -0
  36. package/dist/firestore/reducers/documentEditor.js.map +1 -1
  37. package/dist/firestore/reducers/types.d.ts +3 -0
  38. package/dist/firestore/reducers/types.d.ts.map +1 -1
  39. package/dist/firestore/valueEquality.d.ts +4 -0
  40. package/dist/firestore/valueEquality.d.ts.map +1 -0
  41. package/dist/firestore/valueEquality.js +44 -0
  42. package/dist/firestore/valueEquality.js.map +1 -0
  43. package/dist/primitives/hooks/useUpdateHighlights.d.ts +18 -0
  44. package/dist/primitives/hooks/useUpdateHighlights.d.ts.map +1 -0
  45. package/dist/primitives/hooks/useUpdateHighlights.js +84 -0
  46. package/dist/primitives/hooks/useUpdateHighlights.js.map +1 -0
  47. package/dist/primitives/index.d.ts +1 -0
  48. package/dist/primitives/index.d.ts.map +1 -1
  49. package/dist/primitives/index.js +1 -0
  50. package/dist/primitives/index.js.map +1 -1
  51. package/dist/rtdb/components/RtdbTree.js +2 -1
  52. package/dist/rtdb/components/RtdbTree.js.map +1 -1
  53. package/dist/rtdb/hooks/useRtdbTree.d.ts +2 -0
  54. package/dist/rtdb/hooks/useRtdbTree.d.ts.map +1 -1
  55. package/dist/rtdb/hooks/useRtdbTree.js +20 -2
  56. package/dist/rtdb/hooks/useRtdbTree.js.map +1 -1
  57. package/dist/rtdb/values.d.ts +6 -0
  58. package/dist/rtdb/values.d.ts.map +1 -1
  59. package/dist/rtdb/values.js +43 -0
  60. package/dist/rtdb/values.js.map +1 -1
  61. package/dist/rules/hooks/useDenialTrace.d.ts +1 -1
  62. package/dist/rules/hooks/useDenialTrace.d.ts.map +1 -1
  63. package/dist/rules/hooks/useDenialTrace.js +1 -1
  64. package/dist/rules/hooks/useDenialTrace.js.map +1 -1
  65. package/dist/rules/types.d.ts +1 -1
  66. package/dist/rules/types.d.ts.map +1 -1
  67. package/dist/storage/components/DeleteSelectionWithConfirm.d.ts +0 -2
  68. package/dist/storage/components/DeleteSelectionWithConfirm.d.ts.map +1 -1
  69. package/dist/storage/components/DeleteSelectionWithConfirm.js.map +1 -1
  70. package/dist/storage/components/ObjectBrowser.d.ts +6 -3
  71. package/dist/storage/components/ObjectBrowser.d.ts.map +1 -1
  72. package/dist/storage/components/ObjectBrowser.js +6 -5
  73. package/dist/storage/components/ObjectBrowser.js.map +1 -1
  74. package/dist/storage/components/ObjectInspector.d.ts +1 -1
  75. package/dist/storage/components/ObjectInspector.d.ts.map +1 -1
  76. package/dist/storage/folderPlaceholder.d.ts +9 -3
  77. package/dist/storage/folderPlaceholder.d.ts.map +1 -1
  78. package/dist/storage/folderPlaceholder.js +12 -5
  79. package/dist/storage/folderPlaceholder.js.map +1 -1
  80. package/dist/storage/hooks/useObjectUpload.d.ts +5 -9
  81. package/dist/storage/hooks/useObjectUpload.d.ts.map +1 -1
  82. package/dist/storage/hooks/useObjectUpload.js.map +1 -1
  83. package/dist/storage/hooks/useStorageDelete.d.ts +2 -1
  84. package/dist/storage/hooks/useStorageDelete.d.ts.map +1 -1
  85. package/dist/storage/hooks/useStorageDelete.js +19 -13
  86. package/dist/storage/hooks/useStorageDelete.js.map +1 -1
  87. package/dist/storage/hooks/useStorageList.d.ts +5 -7
  88. package/dist/storage/hooks/useStorageList.d.ts.map +1 -1
  89. package/dist/storage/hooks/useStorageList.js +5 -8
  90. package/dist/storage/hooks/useStorageList.js.map +1 -1
  91. package/dist/storage/hooks/useStorageObject.d.ts +4 -5
  92. package/dist/storage/hooks/useStorageObject.d.ts.map +1 -1
  93. package/dist/storage/hooks/useStorageObject.js.map +1 -1
  94. package/dist/storage/hooks/useStorageRulesGate.d.ts +5 -17
  95. package/dist/storage/hooks/useStorageRulesGate.d.ts.map +1 -1
  96. package/dist/storage/hooks/useStorageRulesGate.js +35 -43
  97. package/dist/storage/hooks/useStorageRulesGate.js.map +1 -1
  98. package/dist/storage/pendingPrefixes.d.ts +7 -3
  99. package/dist/storage/pendingPrefixes.d.ts.map +1 -1
  100. package/dist/storage/pendingPrefixes.js +9 -3
  101. package/dist/storage/pendingPrefixes.js.map +1 -1
  102. package/dist/storage/storageApi.d.ts +1 -1
  103. package/dist/storage/storageApi.d.ts.map +1 -1
  104. package/dist/storage/storageApi.js +9 -2
  105. package/dist/storage/storageApi.js.map +1 -1
  106. package/dist/traffic/components/TrafficLineChart.d.ts +4 -1
  107. package/dist/traffic/components/TrafficLineChart.d.ts.map +1 -1
  108. package/dist/traffic/components/TrafficLineChart.js +3 -3
  109. package/dist/traffic/components/TrafficLineChart.js.map +1 -1
  110. package/dist/traffic/components/TrafficRow.js +1 -1
  111. package/dist/traffic/components/TrafficRow.js.map +1 -1
  112. package/dist/traffic/components/TrafficTimeline.d.ts +12 -5
  113. package/dist/traffic/components/TrafficTimeline.d.ts.map +1 -1
  114. package/dist/traffic/components/TrafficTimeline.js +20 -6
  115. package/dist/traffic/components/TrafficTimeline.js.map +1 -1
  116. package/dist/traffic/hooks/useTrafficMetrics.js +1 -1
  117. package/package.json +17 -6
@@ -1,55 +1,89 @@
1
- import { useCallback, useEffect, useState } from 'react';
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
2
  import { useFirestoreApi } from '../firestoreApi.js';
3
3
  /**
4
- * Cursor-based paginated document list. Uses `startAfter` against
5
- * the last fetched snapshot the consumer never sees cursor
6
- * mechanics. `documents` accumulates across pages.
7
- *
8
- * Note: this is read-via-get, not realtime. The list updates on
9
- * `loadMore` / `createDocument` / `deleteDocument` / `refresh`.
10
- * Realtime subscriptions for a collection live in
11
- * `useFirestoreCollection`; combining the two (paginated + realtime)
12
- * is non-trivial and deferred — see design rationale section M6.
4
+ * Paginated document list with two acquisition strategies. The default
5
+ * `paged` mode uses `startAfter` and accumulates one-shot reads. `live` keeps
6
+ * the requested prefix under one `onSnapshot` listener; loading more grows
7
+ * that prefix and establishes a new subscription baseline.
13
8
  */
14
- export function useDocumentList({ collection, query, pageSize = 50, }) {
9
+ export function useDocumentList({ collection, query, pageSize = 50, mode = 'paged', }) {
15
10
  const [documents, setDocuments] = useState([]);
16
11
  const [isLoading, setIsLoading] = useState(true);
17
12
  const [error, setError] = useState(undefined);
18
13
  const [hasMore, setHasMore] = useState(false);
19
14
  const [tick, setTick] = useState(0);
15
+ const [requestedCount, setRequestedCount] = useState(pageSize);
16
+ const nextSubscriptionGeneration = useRef(0);
17
+ const [subscriptionGeneration, setSubscriptionGeneration] = useState(0);
20
18
  // The modular fns, injected: in-process `pyric/firestore` by default, or the
21
19
  // SharedWorker client bundle when a consumer (Pyric Studio served mode) wraps
22
20
  // the tree in a `FirestoreApiProvider`. Stable across renders per provider.
23
- const { addDoc, deleteDoc, doc: docFn, getDoc, getDocs, limit: limitFn, query: queryFn, setDoc, startAfter: startAfterFn, } = useFirestoreApi();
21
+ const { addDoc, deleteDoc, doc: docFn, getDoc, getDocs, limit: limitFn, onSnapshot, query: queryFn, setDoc, startAfter: startAfterFn, } = useFirestoreApi();
22
+ useEffect(() => {
23
+ setRequestedCount(pageSize);
24
+ }, [collection, mode, pageSize, query]);
24
25
  useEffect(() => {
25
26
  let cancelled = false;
26
- setDocuments([]);
27
+ if (mode === 'paged')
28
+ setDocuments([]);
27
29
  setHasMore(false);
28
30
  setIsLoading(true);
29
31
  setError(undefined);
30
32
  const baseQuery = query ?? collection;
31
- const pagedQuery = queryFn(baseQuery, limitFn(pageSize));
32
- getDocs(pagedQuery)
33
- .then((snap) => {
33
+ const fetchCount = mode === 'live' ? requestedCount : pageSize;
34
+ const pagedQuery = queryFn(baseQuery, limitFn(fetchCount));
35
+ const accept = (snap) => {
34
36
  if (cancelled)
35
37
  return;
36
38
  setDocuments([...snap.docs]);
37
- setHasMore(snap.docs.length === pageSize);
39
+ setHasMore(snap.docs.length === fetchCount);
38
40
  setIsLoading(false);
39
- })
40
- .catch((e) => {
41
+ };
42
+ const reject = (e) => {
41
43
  if (cancelled)
42
44
  return;
43
45
  setError(e instanceof Error ? e : new Error(String(e)));
44
46
  setIsLoading(false);
45
- });
47
+ };
48
+ if (mode === 'live') {
49
+ const generation = ++nextSubscriptionGeneration.current;
50
+ const unsubscribe = onSnapshot(pagedQuery, (snap) => {
51
+ setSubscriptionGeneration(generation);
52
+ accept(snap);
53
+ }, reject);
54
+ return () => {
55
+ cancelled = true;
56
+ unsubscribe();
57
+ };
58
+ }
59
+ getDocs(pagedQuery)
60
+ .then((snap) => {
61
+ accept(snap);
62
+ })
63
+ .catch(reject);
46
64
  return () => {
47
65
  cancelled = true;
48
66
  };
49
- }, [collection, query, pageSize, tick]);
67
+ }, [
68
+ collection,
69
+ getDocs,
70
+ limitFn,
71
+ mode,
72
+ onSnapshot,
73
+ pageSize,
74
+ query,
75
+ queryFn,
76
+ requestedCount,
77
+ tick,
78
+ ]);
50
79
  const loadMore = useCallback(() => {
51
80
  if (!hasMore || isLoading)
52
81
  return;
82
+ if (mode === 'live') {
83
+ setIsLoading(true);
84
+ setRequestedCount((count) => count + pageSize);
85
+ return;
86
+ }
53
87
  const last = documents[documents.length - 1];
54
88
  if (!last)
55
89
  return;
@@ -66,11 +100,24 @@ export function useDocumentList({ collection, query, pageSize = 50, }) {
66
100
  setError(e instanceof Error ? e : new Error(String(e)));
67
101
  setIsLoading(false);
68
102
  });
69
- }, [collection, query, pageSize, documents, hasMore, isLoading]);
103
+ }, [
104
+ collection,
105
+ documents,
106
+ getDocs,
107
+ hasMore,
108
+ isLoading,
109
+ limitFn,
110
+ mode,
111
+ pageSize,
112
+ query,
113
+ queryFn,
114
+ startAfterFn,
115
+ ]);
70
116
  const createDocument = useCallback(async (id, data, opts) => {
71
117
  if (id == null) {
72
118
  const ref = await addDoc(collection, data);
73
- setTick((n) => n + 1);
119
+ if (mode === 'paged')
120
+ setTick((n) => n + 1);
74
121
  return ref;
75
122
  }
76
123
  const ref = docFn(collection, id);
@@ -90,18 +137,21 @@ export function useDocumentList({ collection, query, pageSize = 50, }) {
90
137
  }
91
138
  }
92
139
  await setDoc(ref, data);
93
- setTick((n) => n + 1);
140
+ if (mode === 'paged')
141
+ setTick((n) => n + 1);
94
142
  return ref;
95
- }, [collection]);
143
+ }, [addDoc, collection, docFn, getDoc, mode, setDoc]);
96
144
  const deleteDocument = useCallback(async (ref) => {
97
145
  await deleteDoc(ref);
98
- setTick((n) => n + 1);
99
- }, []);
146
+ if (mode === 'paged')
147
+ setTick((n) => n + 1);
148
+ }, [deleteDoc, mode]);
100
149
  const refresh = useCallback(() => setTick((n) => n + 1), []);
101
150
  return {
102
151
  documents,
103
152
  isLoading,
104
153
  error,
154
+ subscriptionGeneration,
105
155
  hasMore,
106
156
  loadMore,
107
157
  createDocument,
@@ -1 +1 @@
1
- {"version":3,"file":"useDocumentList.js","sourceRoot":"","sources":["../../../src/firestore/hooks/useDocumentList.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDocumentList.js","sourceRoot":"","sources":["../../../src/firestore/hooks/useDocumentList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAOjE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AA+CrD;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,UAAU,EACV,KAAK,EACL,QAAQ,GAAG,EAAE,EACb,IAAI,GAAG,OAAO,GACS;IACvB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAA0B,EAAE,CAAC,CAAC;IACxE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAoB,SAAS,CAAC,CAAC;IACjE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/D,MAAM,0BAA0B,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAExE,6EAA6E;IAC7E,8EAA8E;IAC9E,4EAA4E;IAC5E,MAAM,EACJ,MAAM,EACN,SAAS,EACT,GAAG,EAAE,KAAK,EACV,MAAM,EACN,OAAO,EACP,KAAK,EAAE,OAAO,EACd,UAAU,EACV,KAAK,EAAE,OAAO,EACd,MAAM,EACN,UAAU,EAAE,YAAY,GACzB,GAAG,eAAe,EAAE,CAAC;IAEtB,SAAS,CAAC,GAAG,EAAE;QACb,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,IAAI,KAAK,OAAO;YAAE,YAAY,CAAC,EAAE,CAAC,CAAC;QACvC,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,MAAM,SAAS,GAAG,KAAK,IAAI,UAAU,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC/D,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,CAAC,IAAyD,EAAE,EAAE;YAC3E,IAAI,SAAS;gBAAE,OAAO;YACtB,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;YAC5C,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,CAAU,EAAE,EAAE;YAC5B,IAAI,SAAS;gBAAE,OAAO;YACtB,QAAQ,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC;QAEF,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,UAAU,GAAG,EAAE,0BAA0B,CAAC,OAAO,CAAC;YACxD,MAAM,WAAW,GAAG,UAAU,CAC5B,UAAU,EACV,CAAC,IAAa,EAAE,EAAE;gBAChB,yBAAyB,CAAC,UAAU,CAAC,CAAC;gBACtC,MAAM,CAAC,IAA2D,CAAC,CAAC;YACtE,CAAC,EACD,MAAM,CACP,CAAC;YACF,OAAO,GAAG,EAAE;gBACV,SAAS,GAAG,IAAI,CAAC;gBACjB,WAAW,EAAE,CAAC;YAChB,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,UAAU,CAAC;aAChB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,MAAM,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC;aACD,KAAK,CAAC,MAAM,CAAC,CAAC;QACjB,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE;QACD,UAAU;QACV,OAAO;QACP,OAAO;QACP,IAAI;QACJ,UAAU;QACV,QAAQ;QACR,KAAK;QACL,OAAO;QACP,cAAc;QACd,IAAI;KACL,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC,OAAO,IAAI,SAAS;YAAE,OAAO;QAClC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,iBAAiB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,MAAM,SAAS,GAAG,KAAK,IAAI,UAAU,CAAC;QACtC,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,UAAU,CAAC;aAChB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAChD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;YAC1C,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,QAAQ,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC,EAAE;QACD,UAAU;QACV,SAAS;QACT,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,OAAO;QACP,YAAY;KACb,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,WAAW,CAChC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QACvB,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,IAAI,KAAK,OAAO;gBAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5C,OAAO,GAAG,CAAC;QACb,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,IAAI,EAAE,UAAU,KAAK,MAAM,EAAE,CAAC;YAChC,qEAAqE;YACrE,oEAAoE;YACpE,sEAAsE;YACtE,gEAAgE;YAChE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;YACnC,oEAAoE;YACpE,gEAAgE;YAChE,MAAM,MAAM,GACV,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACvF,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,aAAa,EAAE,mBAAmB,CAA6B,CAAC;gBACtF,GAAG,CAAC,IAAI,GAAG,gBAAgB,CAAC;gBAC5B,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QACD,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxB,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,OAAO,GAAG,CAAC;IACb,CAAC,EACD,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAClD,CAAC;IAEF,MAAM,cAAc,GAAG,WAAW,CAChC,KAAK,EAAE,GAAG,EAAE,EAAE;QACZ,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC,EACD,CAAC,SAAS,EAAE,IAAI,CAAC,CAClB,CAAC;IAEF,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE7D,OAAO;QACL,SAAS;QACT,SAAS;QACT,KAAK;QACL,sBAAsB;QACtB,OAAO;QACP,QAAQ;QACR,cAAc;QACd,cAAc;QACd,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type Query, type QuerySnapshot } from 'pyric/firestore';
1
+ import type { Query, QuerySnapshot } from 'pyric/firestore';
2
2
  import type { SubscriptionState } from './useFirestoreDoc.js';
3
3
  /**
4
4
  * Subscribe to a Firestore query (a `Query` from `pyric/firestore`'s
@@ -1 +1 @@
1
- {"version":3,"file":"useFirestoreCollection.d.ts","sourceRoot":"","sources":["../../../src/firestore/hooks/useFirestoreCollection.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAC9B,iBAAiB,CAAC,aAAa,CAAC,CA+BlC"}
1
+ {"version":3,"file":"useFirestoreCollection.d.ts","sourceRoot":"","sources":["../../../src/firestore/hooks/useFirestoreCollection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAC9B,iBAAiB,CAAC,aAAa,CAAC,CAgClC"}
@@ -1,6 +1,6 @@
1
1
  import { useEffect, useState } from 'react';
2
- import { onSnapshot, } from 'pyric/firestore';
3
2
  import { coerceError } from './coerceError.js';
3
+ import { useFirestoreApi } from '../firestoreApi.js';
4
4
  /**
5
5
  * Subscribe to a Firestore query (a `Query` from `pyric/firestore`'s
6
6
  * modular surface, including any `CollectionReference`, which extends
@@ -12,6 +12,7 @@ import { coerceError } from './coerceError.js';
12
12
  * — pass the same instance across renders to avoid re-subscribing.
13
13
  */
14
14
  export function useFirestoreCollection(query) {
15
+ const { onSnapshot } = useFirestoreApi();
15
16
  const [state, setState] = useState(() => ({
16
17
  data: undefined,
17
18
  error: undefined,
@@ -29,7 +30,7 @@ export function useFirestoreCollection(query) {
29
30
  isLoading: false,
30
31
  }));
31
32
  return unsubscribe;
32
- }, [query]);
33
+ }, [onSnapshot, query]);
33
34
  return state;
34
35
  }
35
36
  //# sourceMappingURL=useFirestoreCollection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFirestoreCollection.js","sourceRoot":"","sources":["../../../src/firestore/hooks/useFirestoreCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EACL,UAAU,GAGX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAA+B;IAE/B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAmC,GAAG,EAAE,CAAC,CAAC;QAC1E,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,KAAK,IAAI,IAAI;KACzB,CAAC,CAAC,CAAC;IAEJ,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE7E,MAAM,WAAW,GAAG,UAAU,CAC5B,KAAK,EACL,CAAC,IAAI,EAAE,EAAE,CACP,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAC/E,CAAC,GAAG,EAAE,EAAE,CACN,QAAQ,CAAC;YACP,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;YACvB,SAAS,EAAE,KAAK;SACjB,CAAC,CACL,CAAC;QAEF,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"useFirestoreCollection.js","sourceRoot":"","sources":["../../../src/firestore/hooks/useFirestoreCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAA+B;IAE/B,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE,CAAC;IACzC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAmC,GAAG,EAAE,CAAC,CAAC;QAC1E,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,KAAK,IAAI,IAAI;KACzB,CAAC,CAAC,CAAC;IAEJ,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE7E,MAAM,WAAW,GAAG,UAAU,CAC5B,KAAK,EACL,CAAC,IAAI,EAAE,EAAE,CACP,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAC/E,CAAC,GAAG,EAAE,EAAE,CACN,QAAQ,CAAC;YACP,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;YACvB,SAAS,EAAE,KAAK;SACjB,CAAC,CACL,CAAC;QAEF,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IAExB,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type DocumentReference, type DocumentSnapshot } from 'pyric/firestore';
1
+ import type { DocumentReference, DocumentSnapshot } from 'pyric/firestore';
2
2
  export interface SubscriptionState<T> {
3
3
  data: T | undefined;
4
4
  error: Error | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useFirestoreDoc.d.ts","sourceRoot":"","sources":["../../../src/firestore/hooks/useFirestoreDoc.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IACpB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GACxC,iBAAiB,CAAC,gBAAgB,CAAC,CA+BrC"}
1
+ {"version":3,"file":"useFirestoreDoc.d.ts","sourceRoot":"","sources":["../../../src/firestore/hooks/useFirestoreDoc.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAI3E,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IACpB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GACxC,iBAAiB,CAAC,gBAAgB,CAAC,CAgCrC"}
@@ -1,6 +1,6 @@
1
1
  import { useEffect, useState } from 'react';
2
- import { onSnapshot, } from 'pyric/firestore';
3
2
  import { coerceError } from './coerceError.js';
3
+ import { useFirestoreApi } from '../firestoreApi.js';
4
4
  /**
5
5
  * Subscribe to a single Firestore document. Returns `{ data, error,
6
6
  * isLoading }`. Null/undefined ref short-circuits to an idle state
@@ -11,6 +11,7 @@ import { coerceError } from './coerceError.js';
11
11
  * the call site; this hook's effect re-runs on identity change.
12
12
  */
13
13
  export function useFirestoreDoc(ref) {
14
+ const { onSnapshot } = useFirestoreApi();
14
15
  const [state, setState] = useState(() => ({
15
16
  data: undefined,
16
17
  error: undefined,
@@ -28,7 +29,7 @@ export function useFirestoreDoc(ref) {
28
29
  isLoading: false,
29
30
  }));
30
31
  return unsubscribe;
31
- }, [ref]);
32
+ }, [onSnapshot, ref]);
32
33
  return state;
33
34
  }
34
35
  //# sourceMappingURL=useFirestoreDoc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFirestoreDoc.js","sourceRoot":"","sources":["../../../src/firestore/hooks/useFirestoreDoc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EACL,UAAU,GAGX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQ/C;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAyC;IAEzC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAsC,GAAG,EAAE,CAAC,CAAC;QAC7E,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,GAAG,IAAI,IAAI;KACvB,CAAC,CAAC,CAAC;IAEJ,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE7E,MAAM,WAAW,GAAG,UAAU,CAC5B,GAAG,EACH,CAAC,IAAI,EAAE,EAAE,CACP,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAwB,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAClF,CAAC,GAAG,EAAE,EAAE,CACN,QAAQ,CAAC;YACP,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;YACvB,SAAS,EAAE,KAAK;SACjB,CAAC,CACL,CAAC;QAEF,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"useFirestoreDoc.js","sourceRoot":"","sources":["../../../src/firestore/hooks/useFirestoreDoc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQrD;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAyC;IAEzC,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE,CAAC;IACzC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAsC,GAAG,EAAE,CAAC,CAAC;QAC7E,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,GAAG,IAAI,IAAI;KACvB,CAAC,CAAC,CAAC;IAEJ,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE7E,MAAM,WAAW,GAAG,UAAU,CAC5B,GAAG,EACH,CAAC,IAAI,EAAE,EAAE,CACP,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAwB,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAClF,CAAC,GAAG,EAAE,EAAE,CACN,QAAQ,CAAC;YACP,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;YACvB,SAAS,EAAE,KAAK;SACjB,CAAC,CACL,CAAC;QAEF,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IAEtB,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export * from './hooks/index.js';
2
2
  export { FirestoreApiProvider, useFirestoreApi, type FirestoreApi, } from './firestoreApi.js';
3
3
  export { inferType, asVectorView, vectorPreview, truncateVectorsForDisplay, type FieldType, type VectorView, } from './types.js';
4
+ export { firestoreValuesEqual } from './valueEquality.js';
4
5
  export { defaultFieldEditors, mergeFieldEditors, } from './fieldEditors/registry.js';
5
6
  export type { FieldEditorContract, FieldEditorRegistry, FieldDisplayProps, FieldEditProps, } from './fieldEditors/types.js';
6
7
  export { FieldRenderer, type FieldRendererProps } from './components/FieldRenderer.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/firestore/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AAIjC,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,KAAK,YAAY,GAClB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,SAAS,EACT,YAAY,EACZ,aAAa,EACb,yBAAyB,EACzB,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,GAC1B,MAAM,iCAAiC,CAAC;AAGzC,YAAY,EACV,SAAS,EACT,UAAU,EACV,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,GAC1B,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,8BAA8B,CAAC;AAMtC,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/firestore/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AAIjC,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,KAAK,YAAY,GAClB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,SAAS,EACT,YAAY,EACZ,aAAa,EACb,yBAAyB,EACzB,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,GAC1B,MAAM,iCAAiC,CAAC;AAGzC,YAAY,EACV,SAAS,EACT,UAAU,EACV,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,GAC1B,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,8BAA8B,CAAC;AAMtC,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,yBAAyB,CAAC"}
@@ -4,6 +4,7 @@ export * from './hooks/index.js';
4
4
  export { FirestoreApiProvider, useFirestoreApi, } from './firestoreApi.js';
5
5
  // M2: read-only display surface
6
6
  export { inferType, asVectorView, vectorPreview, truncateVectorsForDisplay, } from './types.js';
7
+ export { firestoreValuesEqual } from './valueEquality.js';
7
8
  export { defaultFieldEditors, mergeFieldEditors, } from './fieldEditors/registry.js';
8
9
  export { FieldRenderer } from './components/FieldRenderer.js';
9
10
  export { DocumentPreview, } from './components/DocumentPreview.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/firestore/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AAEjC,gFAAgF;AAChF,gFAAgF;AAChF,OAAO,EACL,oBAAoB,EACpB,eAAe,GAEhB,MAAM,mBAAmB,CAAC;AAE3B,gCAAgC;AAChC,OAAO,EACL,SAAS,EACT,YAAY,EACZ,aAAa,EACb,yBAAyB,GAG1B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAOpC,OAAO,EAAE,aAAa,EAA2B,MAAM,+BAA+B,CAAC;AACvF,OAAO,EACL,eAAe,GAEhB,MAAM,iCAAiC,CAAC;AASzC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,GAEzB,MAAM,gCAAgC,CAAC;AAExC,yCAAyC;AACzC,OAAO,EAAE,cAAc,EAA4B,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,YAAY,EAA0B,MAAM,8BAA8B,CAAC;AACpF,OAAO,EACL,iBAAiB,GAElB,MAAM,mCAAmC,CAAC;AAE3C,0CAA0C;AAC1C,OAAO,EACL,eAAe,GAEhB,MAAM,iCAAiC,CAAC;AAEzC,qCAAqC;AACrC,OAAO,EACL,YAAY,GAEb,MAAM,8BAA8B,CAAC;AAEtC,8EAA8E;AAC9E,6EAA6E;AAC7E,2EAA2E;AAC3E,4BAA4B;AAC5B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,eAAe,GAIhB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/firestore/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AAEjC,gFAAgF;AAChF,gFAAgF;AAChF,OAAO,EACL,oBAAoB,EACpB,eAAe,GAEhB,MAAM,mBAAmB,CAAC;AAE3B,gCAAgC;AAChC,OAAO,EACL,SAAS,EACT,YAAY,EACZ,aAAa,EACb,yBAAyB,GAG1B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAOpC,OAAO,EAAE,aAAa,EAA2B,MAAM,+BAA+B,CAAC;AACvF,OAAO,EACL,eAAe,GAEhB,MAAM,iCAAiC,CAAC;AASzC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,GAEzB,MAAM,gCAAgC,CAAC;AAExC,yCAAyC;AACzC,OAAO,EAAE,cAAc,EAA4B,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,YAAY,EAA0B,MAAM,8BAA8B,CAAC;AACpF,OAAO,EACL,iBAAiB,GAElB,MAAM,mCAAmC,CAAC;AAE3C,0CAA0C;AAC1C,OAAO,EACL,eAAe,GAEhB,MAAM,iCAAiC,CAAC;AAEzC,qCAAqC;AACrC,OAAO,EACL,YAAY,GAEb,MAAM,8BAA8B,CAAC;AAEtC,8EAA8E;AAC9E,6EAA6E;AAC7E,2EAA2E;AAC3E,4BAA4B;AAC5B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,eAAe,GAIhB,MAAM,yBAAyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"documentEditor.d.ts","sourceRoot":"","sources":["../../../src/firestore/reducers/documentEditor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EAGpB,MAAM,YAAY,CAAC;AAOpB;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAmBhE;AAED,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB,CAI/E;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,oBAAoB,GAC3B,mBAAmB,CA+CrB"}
1
+ {"version":3,"file":"documentEditor.d.ts","sourceRoot":"","sources":["../../../src/firestore/reducers/documentEditor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EAGpB,MAAM,YAAY,CAAC;AAOpB;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAmBhE;AAED,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB,CAI/E;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,oBAAoB,GAC3B,mBAAmB,CAkDrB"}
@@ -70,6 +70,8 @@ export function reducer(state, action) {
70
70
  initial: state.initial,
71
71
  errorCount: countErrors(state.initial),
72
72
  };
73
+ case 'replaceData':
74
+ return initState(action.data);
73
75
  case 'touch': {
74
76
  const node = state.tree.nodes[action.nodeId];
75
77
  if (!node || node.touched)
@@ -1 +1 @@
1
- {"version":3,"file":"documentEditor.js","sourceRoot":"","sources":["../../../src/firestore/reducers/documentEditor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"documentEditor.js","sourceRoot":"","sources":["../../../src/firestore/reducers/documentEditor.ts"],"names":[],"mappings":"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"}
@@ -80,6 +80,9 @@ export type DocumentEditorAction = {
80
80
  nodeId: string;
81
81
  } | {
82
82
  type: 'reset';
83
+ } | {
84
+ type: 'replaceData';
85
+ data: Record<string, unknown>;
83
86
  }
84
87
  /** Mark one node touched (dispatched on blur). Doesn't change any
85
88
  * value — only gates error display for consumers that check it. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/firestore/reducers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,iEAAiE;IACjE,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;OAIG;IACH,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,uDAAuD;IACvD,IAAI,EAAE,SAAS,CAAC;IAChB;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GAC5E;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE;AACnB;oEACoE;GAClE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACnC;mEACmE;GACjE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzB;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB;mEAC+D;IAC/D,OAAO,EAAE,UAAU,CAAC;IACpB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/firestore/reducers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,iEAAiE;IACjE,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;OAIG;IACH,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,uDAAuD;IACvD,IAAI,EAAE,SAAS,CAAC;IAChB;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GAC5E;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE;AACxD;oEACoE;GAClE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACnC;mEACmE;GACjE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzB;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB;mEAC+D;IAC/D,OAAO,EAAE,UAAU,CAAC;IACpB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,4 @@
1
+ /** Firestore-aware structural equality for values delivered by either the
2
+ * in-process SDK or the SharedWorker serializer. */
3
+ export declare function firestoreValuesEqual(previous: unknown, next: unknown): boolean;
4
+ //# sourceMappingURL=valueEquality.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valueEquality.d.ts","sourceRoot":"","sources":["../../src/firestore/valueEquality.ts"],"names":[],"mappings":"AAmBA;oDACoD;AACpD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAqB9E"}
@@ -0,0 +1,44 @@
1
+ function hasFirestoreEquality(value) {
2
+ return (typeof value === 'object' &&
3
+ value !== null &&
4
+ 'isEqual' in value &&
5
+ typeof value.isEqual === 'function');
6
+ }
7
+ function isPlainRecord(value) {
8
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
9
+ return false;
10
+ const prototype = Object.getPrototypeOf(value);
11
+ return prototype === Object.prototype || prototype === null;
12
+ }
13
+ /** Firestore-aware structural equality for values delivered by either the
14
+ * in-process SDK or the SharedWorker serializer. */
15
+ export function firestoreValuesEqual(previous, next) {
16
+ if (Object.is(previous, next))
17
+ return true;
18
+ if (hasFirestoreEquality(previous))
19
+ return previous.isEqual(next);
20
+ if (hasFirestoreEquality(next))
21
+ return next.isEqual(previous);
22
+ if (previous instanceof Uint8Array || next instanceof Uint8Array) {
23
+ if (!(previous instanceof Uint8Array) || !(next instanceof Uint8Array))
24
+ return false;
25
+ if (previous.length !== next.length)
26
+ return false;
27
+ return previous.every((byte, index) => byte === next[index]);
28
+ }
29
+ if (Array.isArray(previous) || Array.isArray(next)) {
30
+ if (!Array.isArray(previous) || !Array.isArray(next))
31
+ return false;
32
+ if (previous.length !== next.length)
33
+ return false;
34
+ return previous.every((value, index) => firestoreValuesEqual(value, next[index]));
35
+ }
36
+ if (!isPlainRecord(previous) || !isPlainRecord(next))
37
+ return false;
38
+ const previousKeys = Object.keys(previous);
39
+ const nextKeys = Object.keys(next);
40
+ if (previousKeys.length !== nextKeys.length)
41
+ return false;
42
+ return previousKeys.every((key) => key in next && firestoreValuesEqual(previous[key], next[key]));
43
+ }
44
+ //# sourceMappingURL=valueEquality.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valueEquality.js","sourceRoot":"","sources":["../../src/firestore/valueEquality.ts"],"names":[],"mappings":"AAIA,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,SAAS,IAAI,KAAK;QAClB,OAAQ,KAA+B,CAAC,OAAO,KAAK,UAAU,CAC/D,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtF,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC;AAC9D,CAAC;AAED;oDACoD;AACpD,MAAM,UAAU,oBAAoB,CAAC,QAAiB,EAAE,IAAa;IACnE,IAAI,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,oBAAoB,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,IAAI,oBAAoB,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9D,IAAI,QAAQ,YAAY,UAAU,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QACjE,IAAI,CAAC,CAAC,QAAQ,YAAY,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;QACrF,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAClD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACnE,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAClD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACnE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,YAAY,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1D,OAAO,YAAY,CAAC,KAAK,CACvB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CACvE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ export type UpdateHighlightKind = 'added' | 'modified';
2
+ export interface UpdateHighlight {
3
+ kind: UpdateHighlightKind;
4
+ cycle: 0 | 1;
5
+ }
6
+ export interface UseUpdateHighlightsOptions<T> {
7
+ scope: string;
8
+ entries: ReadonlyMap<string, T>;
9
+ equals?: (previous: T, next: T) => boolean;
10
+ durationMs?: number;
11
+ ready?: boolean;
12
+ }
13
+ /**
14
+ * Tracks transient additions and modifications between keyed snapshots.
15
+ * The first ready snapshot in each scope is a silent baseline.
16
+ */
17
+ export declare function useUpdateHighlights<T>({ scope, entries, equals, durationMs, ready, }: UseUpdateHighlightsOptions<T>): ReadonlyMap<string, UpdateHighlight>;
18
+ //# sourceMappingURL=useUpdateHighlights.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUpdateHighlights.d.ts","sourceRoot":"","sources":["../../../src/primitives/hooks/useUpdateHighlights.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,UAAU,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;CACd;AAED,MAAM,WAAW,0BAA0B,CAAC,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,EACrC,KAAK,EACL,OAAO,EACP,MAAkB,EAClB,UAAkB,EAClB,KAAY,GACb,EAAE,0BAA0B,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CA+EtE"}
@@ -0,0 +1,84 @@
1
+ import { useEffect, useRef, useState } from 'react';
2
+ const EMPTY_HIGHLIGHTS = new Map();
3
+ /**
4
+ * Tracks transient additions and modifications between keyed snapshots.
5
+ * The first ready snapshot in each scope is a silent baseline.
6
+ */
7
+ export function useUpdateHighlights({ scope, entries, equals = Object.is, durationMs = 1_200, ready = true, }) {
8
+ const baselineRef = useRef(null);
9
+ const cyclesRef = useRef(new Map());
10
+ const timersRef = useRef(new Map());
11
+ const [highlights, setHighlights] = useState(EMPTY_HIGHLIGHTS);
12
+ useEffect(() => {
13
+ const baseline = baselineRef.current;
14
+ if (!ready) {
15
+ if (baseline && baseline.scope !== scope) {
16
+ baselineRef.current = null;
17
+ for (const timer of timersRef.current.values())
18
+ clearTimeout(timer);
19
+ timersRef.current.clear();
20
+ cyclesRef.current.clear();
21
+ setHighlights(EMPTY_HIGHLIGHTS);
22
+ }
23
+ return;
24
+ }
25
+ if (!baseline || baseline.scope !== scope) {
26
+ baselineRef.current = { scope, entries };
27
+ for (const timer of timersRef.current.values())
28
+ clearTimeout(timer);
29
+ timersRef.current.clear();
30
+ cyclesRef.current.clear();
31
+ setHighlights(EMPTY_HIGHLIGHTS);
32
+ return;
33
+ }
34
+ const changed = new Map();
35
+ for (const [key, value] of entries) {
36
+ const hadValue = baseline.entries.has(key);
37
+ const previous = baseline.entries.get(key);
38
+ if (hadValue && equals(previous, value))
39
+ continue;
40
+ const cycle = cyclesRef.current.get(key) === 0 ? 1 : 0;
41
+ cyclesRef.current.set(key, cycle);
42
+ changed.set(key, { kind: hadValue ? 'modified' : 'added', cycle });
43
+ }
44
+ baselineRef.current = { scope, entries };
45
+ setHighlights((current) => {
46
+ const next = new Map(current);
47
+ let didChange = changed.size > 0;
48
+ for (const key of current.keys()) {
49
+ if (!entries.has(key)) {
50
+ next.delete(key);
51
+ didChange = true;
52
+ }
53
+ }
54
+ for (const [key, marker] of changed)
55
+ next.set(key, marker);
56
+ if (!didChange)
57
+ return current;
58
+ return next.size === 0 ? EMPTY_HIGHLIGHTS : next;
59
+ });
60
+ for (const [key, marker] of changed) {
61
+ const priorTimer = timersRef.current.get(key);
62
+ if (priorTimer)
63
+ clearTimeout(priorTimer);
64
+ const timer = setTimeout(() => {
65
+ timersRef.current.delete(key);
66
+ setHighlights((current) => {
67
+ if (current.get(key)?.cycle !== marker.cycle)
68
+ return current;
69
+ const next = new Map(current);
70
+ next.delete(key);
71
+ return next.size === 0 ? EMPTY_HIGHLIGHTS : next;
72
+ });
73
+ }, durationMs);
74
+ timersRef.current.set(key, timer);
75
+ }
76
+ }, [durationMs, entries, equals, ready, scope]);
77
+ useEffect(() => () => {
78
+ for (const timer of timersRef.current.values())
79
+ clearTimeout(timer);
80
+ timersRef.current.clear();
81
+ }, []);
82
+ return highlights;
83
+ }
84
+ //# sourceMappingURL=useUpdateHighlights.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUpdateHighlights.js","sourceRoot":"","sources":["../../../src/primitives/hooks/useUpdateHighlights.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,5 @@ export { ConfirmProvider, useConfirm, type ConfirmOptions, type ConfirmFn, type
7
7
  export { ToastProvider, useToast, type ToastInput, type ToastRecord, type ToastKind, type ToastProviderProps, } from './Toast.js';
8
8
  export { VirtualList, type VirtualListProps } from './VirtualList.js';
9
9
  export { useContainerSize, type ContainerSize, type UseContainerSizeOptions, } from './hooks/useContainerSize.js';
10
+ export { useUpdateHighlights, type UpdateHighlight, type UpdateHighlightKind, type UseUpdateHighlightsOptions, } from './hooks/useUpdateHighlights.js';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/primitives/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EACL,QAAQ,EACR,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EACL,eAAe,EACf,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,aAAa,EACb,QAAQ,EACR,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EACL,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,uBAAuB,GAC7B,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/primitives/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EACL,QAAQ,EACR,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EACL,eAAe,EACf,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,aAAa,EACb,QAAQ,EACR,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EACL,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,uBAAuB,GAC7B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,GAChC,MAAM,gCAAgC,CAAC"}
@@ -7,4 +7,5 @@ export { ConfirmProvider, useConfirm, } from './useConfirm.js';
7
7
  export { ToastProvider, useToast, } from './Toast.js';
8
8
  export { VirtualList } from './VirtualList.js';
9
9
  export { useContainerSize, } from './hooks/useContainerSize.js';
10
+ export { useUpdateHighlights, } from './hooks/useUpdateHighlights.js';
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/primitives/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,KAAK,EAAmB,MAAM,YAAY,CAAC;AACpD,OAAO,EACL,QAAQ,GAET,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EACL,eAAe,EACf,UAAU,GAIX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,aAAa,EACb,QAAQ,GAKT,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAyB,MAAM,kBAAkB,CAAC;AACtE,OAAO,EACL,gBAAgB,GAGjB,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/primitives/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,KAAK,EAAmB,MAAM,YAAY,CAAC;AACpD,OAAO,EACL,QAAQ,GAET,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EACL,eAAe,EACf,UAAU,GAIX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,aAAa,EACb,QAAQ,GAKT,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAyB,MAAM,kBAAkB,CAAC;AACtE,OAAO,EACL,gBAAgB,GAGjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,mBAAmB,GAIpB,MAAM,gCAAgC,CAAC"}