@pyric/ui 0.1.0-alpha.10

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 (603) hide show
  1. package/LICENSE +216 -0
  2. package/README.md +79 -0
  3. package/dist/agents/ContextWindowUsage.d.ts +67 -0
  4. package/dist/agents/ContextWindowUsage.d.ts.map +1 -0
  5. package/dist/agents/ContextWindowUsage.js +115 -0
  6. package/dist/agents/ContextWindowUsage.js.map +1 -0
  7. package/dist/agents/EmptyState.d.ts +18 -0
  8. package/dist/agents/EmptyState.d.ts.map +1 -0
  9. package/dist/agents/EmptyState.js +11 -0
  10. package/dist/agents/EmptyState.js.map +1 -0
  11. package/dist/agents/Fold.d.ts +37 -0
  12. package/dist/agents/Fold.d.ts.map +1 -0
  13. package/dist/agents/Fold.js +18 -0
  14. package/dist/agents/Fold.js.map +1 -0
  15. package/dist/agents/Modal.d.ts +25 -0
  16. package/dist/agents/Modal.d.ts.map +1 -0
  17. package/dist/agents/Modal.js +28 -0
  18. package/dist/agents/Modal.js.map +1 -0
  19. package/dist/agents/PulsingDot.d.ts +21 -0
  20. package/dist/agents/PulsingDot.d.ts.map +1 -0
  21. package/dist/agents/PulsingDot.js +18 -0
  22. package/dist/agents/PulsingDot.js.map +1 -0
  23. package/dist/agents/index.d.ts +15 -0
  24. package/dist/agents/index.d.ts.map +1 -0
  25. package/dist/agents/index.js +15 -0
  26. package/dist/agents/index.js.map +1 -0
  27. package/dist/auth/authApi.d.ts +32 -0
  28. package/dist/auth/authApi.d.ts.map +1 -0
  29. package/dist/auth/authApi.js +27 -0
  30. package/dist/auth/authApi.js.map +1 -0
  31. package/dist/auth/claims.d.ts +27 -0
  32. package/dist/auth/claims.d.ts.map +1 -0
  33. package/dist/auth/claims.js +58 -0
  34. package/dist/auth/claims.js.map +1 -0
  35. package/dist/auth/components/AuthProviderToggles.d.ts +31 -0
  36. package/dist/auth/components/AuthProviderToggles.d.ts.map +1 -0
  37. package/dist/auth/components/AuthProviderToggles.js +48 -0
  38. package/dist/auth/components/AuthProviderToggles.js.map +1 -0
  39. package/dist/auth/components/AuthSignInHelper.d.ts +57 -0
  40. package/dist/auth/components/AuthSignInHelper.d.ts.map +1 -0
  41. package/dist/auth/components/AuthSignInHelper.js +69 -0
  42. package/dist/auth/components/AuthSignInHelper.js.map +1 -0
  43. package/dist/auth/components/AuthUserForm.d.ts +84 -0
  44. package/dist/auth/components/AuthUserForm.d.ts.map +1 -0
  45. package/dist/auth/components/AuthUserForm.js +89 -0
  46. package/dist/auth/components/AuthUserForm.js.map +1 -0
  47. package/dist/auth/components/AuthUserList.d.ts +62 -0
  48. package/dist/auth/components/AuthUserList.d.ts.map +1 -0
  49. package/dist/auth/components/AuthUserList.js +46 -0
  50. package/dist/auth/components/AuthUserList.js.map +1 -0
  51. package/dist/auth/components/ClaimsField.d.ts +22 -0
  52. package/dist/auth/components/ClaimsField.d.ts.map +1 -0
  53. package/dist/auth/components/ClaimsField.js +11 -0
  54. package/dist/auth/components/ClaimsField.js.map +1 -0
  55. package/dist/auth/components/confirmActions.d.ts +40 -0
  56. package/dist/auth/components/confirmActions.d.ts.map +1 -0
  57. package/dist/auth/components/confirmActions.js +49 -0
  58. package/dist/auth/components/confirmActions.js.map +1 -0
  59. package/dist/auth/controller.d.ts +73 -0
  60. package/dist/auth/controller.d.ts.map +1 -0
  61. package/dist/auth/controller.js +139 -0
  62. package/dist/auth/controller.js.map +1 -0
  63. package/dist/auth/hooks/index.d.ts +7 -0
  64. package/dist/auth/hooks/index.d.ts.map +1 -0
  65. package/dist/auth/hooks/index.js +7 -0
  66. package/dist/auth/hooks/index.js.map +1 -0
  67. package/dist/auth/hooks/useAuthFlowHelper.d.ts +30 -0
  68. package/dist/auth/hooks/useAuthFlowHelper.d.ts.map +1 -0
  69. package/dist/auth/hooks/useAuthFlowHelper.js +30 -0
  70. package/dist/auth/hooks/useAuthFlowHelper.js.map +1 -0
  71. package/dist/auth/hooks/useAuthProviderConfig.d.ts +37 -0
  72. package/dist/auth/hooks/useAuthProviderConfig.d.ts.map +1 -0
  73. package/dist/auth/hooks/useAuthProviderConfig.js +98 -0
  74. package/dist/auth/hooks/useAuthProviderConfig.js.map +1 -0
  75. package/dist/auth/hooks/useAuthUserEditor.d.ts +30 -0
  76. package/dist/auth/hooks/useAuthUserEditor.d.ts.map +1 -0
  77. package/dist/auth/hooks/useAuthUserEditor.js +27 -0
  78. package/dist/auth/hooks/useAuthUserEditor.js.map +1 -0
  79. package/dist/auth/hooks/useAuthUsers.d.ts +38 -0
  80. package/dist/auth/hooks/useAuthUsers.d.ts.map +1 -0
  81. package/dist/auth/hooks/useAuthUsers.js +111 -0
  82. package/dist/auth/hooks/useAuthUsers.js.map +1 -0
  83. package/dist/auth/index.d.ts +11 -0
  84. package/dist/auth/index.d.ts.map +1 -0
  85. package/dist/auth/index.js +13 -0
  86. package/dist/auth/index.js.map +1 -0
  87. package/dist/auth/providers.d.ts +11 -0
  88. package/dist/auth/providers.d.ts.map +1 -0
  89. package/dist/auth/providers.js +28 -0
  90. package/dist/auth/providers.js.map +1 -0
  91. package/dist/auth/reducers/userEditor.d.ts +55 -0
  92. package/dist/auth/reducers/userEditor.d.ts.map +1 -0
  93. package/dist/auth/reducers/userEditor.js +136 -0
  94. package/dist/auth/reducers/userEditor.js.map +1 -0
  95. package/dist/events/components/ActivityActionItems.d.ts +45 -0
  96. package/dist/events/components/ActivityActionItems.d.ts.map +1 -0
  97. package/dist/events/components/ActivityActionItems.js +68 -0
  98. package/dist/events/components/ActivityActionItems.js.map +1 -0
  99. package/dist/events/components/ActivityGrid.d.ts +65 -0
  100. package/dist/events/components/ActivityGrid.d.ts.map +1 -0
  101. package/dist/events/components/ActivityGrid.js +61 -0
  102. package/dist/events/components/ActivityGrid.js.map +1 -0
  103. package/dist/events/components/ActivityGridRow.d.ts +31 -0
  104. package/dist/events/components/ActivityGridRow.d.ts.map +1 -0
  105. package/dist/events/components/ActivityGridRow.js +23 -0
  106. package/dist/events/components/ActivityGridRow.js.map +1 -0
  107. package/dist/events/components/ProposedChangeDiff.d.ts +46 -0
  108. package/dist/events/components/ProposedChangeDiff.d.ts.map +1 -0
  109. package/dist/events/components/ProposedChangeDiff.js +60 -0
  110. package/dist/events/components/ProposedChangeDiff.js.map +1 -0
  111. package/dist/events/components/format.d.ts +11 -0
  112. package/dist/events/components/format.d.ts.map +1 -0
  113. package/dist/events/components/format.js +26 -0
  114. package/dist/events/components/format.js.map +1 -0
  115. package/dist/events/components/index.d.ts +6 -0
  116. package/dist/events/components/index.d.ts.map +1 -0
  117. package/dist/events/components/index.js +6 -0
  118. package/dist/events/components/index.js.map +1 -0
  119. package/dist/events/digest.d.ts +167 -0
  120. package/dist/events/digest.d.ts.map +1 -0
  121. package/dist/events/digest.js +426 -0
  122. package/dist/events/digest.js.map +1 -0
  123. package/dist/events/hooks/index.d.ts +3 -0
  124. package/dist/events/hooks/index.d.ts.map +1 -0
  125. package/dist/events/hooks/index.js +3 -0
  126. package/dist/events/hooks/index.js.map +1 -0
  127. package/dist/events/hooks/useActivityDigest.d.ts +27 -0
  128. package/dist/events/hooks/useActivityDigest.d.ts.map +1 -0
  129. package/dist/events/hooks/useActivityDigest.js +18 -0
  130. package/dist/events/hooks/useActivityDigest.js.map +1 -0
  131. package/dist/events/hooks/useActivityStream.d.ts +44 -0
  132. package/dist/events/hooks/useActivityStream.d.ts.map +1 -0
  133. package/dist/events/hooks/useActivityStream.js +38 -0
  134. package/dist/events/hooks/useActivityStream.js.map +1 -0
  135. package/dist/events/index.d.ts +15 -0
  136. package/dist/events/index.d.ts.map +1 -0
  137. package/dist/events/index.js +14 -0
  138. package/dist/events/index.js.map +1 -0
  139. package/dist/events/types.d.ts +160 -0
  140. package/dist/events/types.d.ts.map +1 -0
  141. package/dist/events/types.js +21 -0
  142. package/dist/events/types.js.map +1 -0
  143. package/dist/firestore/components/CollectionList.d.ts +22 -0
  144. package/dist/firestore/components/CollectionList.d.ts.map +1 -0
  145. package/dist/firestore/components/CollectionList.js +21 -0
  146. package/dist/firestore/components/CollectionList.js.map +1 -0
  147. package/dist/firestore/components/DeleteWithConfirm.d.ts +38 -0
  148. package/dist/firestore/components/DeleteWithConfirm.d.ts.map +1 -0
  149. package/dist/firestore/components/DeleteWithConfirm.js +33 -0
  150. package/dist/firestore/components/DeleteWithConfirm.js.map +1 -0
  151. package/dist/firestore/components/DocumentEditor.d.ts +47 -0
  152. package/dist/firestore/components/DocumentEditor.d.ts.map +1 -0
  153. package/dist/firestore/components/DocumentEditor.js +176 -0
  154. package/dist/firestore/components/DocumentEditor.js.map +1 -0
  155. package/dist/firestore/components/DocumentList.d.ts +63 -0
  156. package/dist/firestore/components/DocumentList.d.ts.map +1 -0
  157. package/dist/firestore/components/DocumentList.js +53 -0
  158. package/dist/firestore/components/DocumentList.js.map +1 -0
  159. package/dist/firestore/components/DocumentPreview.d.ts +68 -0
  160. package/dist/firestore/components/DocumentPreview.d.ts.map +1 -0
  161. package/dist/firestore/components/DocumentPreview.js +76 -0
  162. package/dist/firestore/components/DocumentPreview.js.map +1 -0
  163. package/dist/firestore/components/FieldRenderer.d.ts +17 -0
  164. package/dist/firestore/components/FieldRenderer.d.ts.map +1 -0
  165. package/dist/firestore/components/FieldRenderer.js +16 -0
  166. package/dist/firestore/components/FieldRenderer.js.map +1 -0
  167. package/dist/firestore/components/QueryBuilder.d.ts +25 -0
  168. package/dist/firestore/components/QueryBuilder.d.ts.map +1 -0
  169. package/dist/firestore/components/QueryBuilder.js +78 -0
  170. package/dist/firestore/components/QueryBuilder.js.map +1 -0
  171. package/dist/firestore/components/ReferencePicker.d.ts +33 -0
  172. package/dist/firestore/components/ReferencePicker.d.ts.map +1 -0
  173. package/dist/firestore/components/ReferencePicker.js +42 -0
  174. package/dist/firestore/components/ReferencePicker.js.map +1 -0
  175. package/dist/firestore/components/TreeEntry.d.ts +15 -0
  176. package/dist/firestore/components/TreeEntry.d.ts.map +1 -0
  177. package/dist/firestore/components/TreeEntry.js +23 -0
  178. package/dist/firestore/components/TreeEntry.js.map +1 -0
  179. package/dist/firestore/components/context.d.ts +18 -0
  180. package/dist/firestore/components/context.d.ts.map +1 -0
  181. package/dist/firestore/components/context.js +7 -0
  182. package/dist/firestore/components/context.js.map +1 -0
  183. package/dist/firestore/fieldEditors/array.d.ts +3 -0
  184. package/dist/firestore/fieldEditors/array.d.ts.map +1 -0
  185. package/dist/firestore/fieldEditors/array.js +16 -0
  186. package/dist/firestore/fieldEditors/array.js.map +1 -0
  187. package/dist/firestore/fieldEditors/boolean.d.ts +3 -0
  188. package/dist/firestore/fieldEditors/boolean.d.ts.map +1 -0
  189. package/dist/firestore/fieldEditors/boolean.js +13 -0
  190. package/dist/firestore/fieldEditors/boolean.js.map +1 -0
  191. package/dist/firestore/fieldEditors/bytes.d.ts +4 -0
  192. package/dist/firestore/fieldEditors/bytes.d.ts.map +1 -0
  193. package/dist/firestore/fieldEditors/bytes.js +31 -0
  194. package/dist/firestore/fieldEditors/bytes.js.map +1 -0
  195. package/dist/firestore/fieldEditors/geopoint.d.ts +4 -0
  196. package/dist/firestore/fieldEditors/geopoint.d.ts.map +1 -0
  197. package/dist/firestore/fieldEditors/geopoint.js +32 -0
  198. package/dist/firestore/fieldEditors/geopoint.js.map +1 -0
  199. package/dist/firestore/fieldEditors/map.d.ts +3 -0
  200. package/dist/firestore/fieldEditors/map.d.ts.map +1 -0
  201. package/dist/firestore/fieldEditors/map.js +19 -0
  202. package/dist/firestore/fieldEditors/map.js.map +1 -0
  203. package/dist/firestore/fieldEditors/null.d.ts +3 -0
  204. package/dist/firestore/fieldEditors/null.d.ts.map +1 -0
  205. package/dist/firestore/fieldEditors/null.js +17 -0
  206. package/dist/firestore/fieldEditors/null.js.map +1 -0
  207. package/dist/firestore/fieldEditors/number.d.ts +3 -0
  208. package/dist/firestore/fieldEditors/number.d.ts.map +1 -0
  209. package/dist/firestore/fieldEditors/number.js +24 -0
  210. package/dist/firestore/fieldEditors/number.js.map +1 -0
  211. package/dist/firestore/fieldEditors/reference.d.ts +4 -0
  212. package/dist/firestore/fieldEditors/reference.d.ts.map +1 -0
  213. package/dist/firestore/fieldEditors/reference.js +49 -0
  214. package/dist/firestore/fieldEditors/reference.js.map +1 -0
  215. package/dist/firestore/fieldEditors/registry.d.ts +16 -0
  216. package/dist/firestore/fieldEditors/registry.d.ts.map +1 -0
  217. package/dist/firestore/fieldEditors/registry.js +42 -0
  218. package/dist/firestore/fieldEditors/registry.js.map +1 -0
  219. package/dist/firestore/fieldEditors/string.d.ts +3 -0
  220. package/dist/firestore/fieldEditors/string.d.ts.map +1 -0
  221. package/dist/firestore/fieldEditors/string.js +13 -0
  222. package/dist/firestore/fieldEditors/string.js.map +1 -0
  223. package/dist/firestore/fieldEditors/timestamp.d.ts +4 -0
  224. package/dist/firestore/fieldEditors/timestamp.d.ts.map +1 -0
  225. package/dist/firestore/fieldEditors/timestamp.js +52 -0
  226. package/dist/firestore/fieldEditors/timestamp.js.map +1 -0
  227. package/dist/firestore/fieldEditors/types.d.ts +64 -0
  228. package/dist/firestore/fieldEditors/types.d.ts.map +1 -0
  229. package/dist/firestore/fieldEditors/types.js +2 -0
  230. package/dist/firestore/fieldEditors/types.js.map +1 -0
  231. package/dist/firestore/fieldEditors/vector.d.ts +29 -0
  232. package/dist/firestore/fieldEditors/vector.d.ts.map +1 -0
  233. package/dist/firestore/fieldEditors/vector.js +93 -0
  234. package/dist/firestore/fieldEditors/vector.js.map +1 -0
  235. package/dist/firestore/firestoreApi.d.ts +35 -0
  236. package/dist/firestore/firestoreApi.d.ts.map +1 -0
  237. package/dist/firestore/firestoreApi.js +29 -0
  238. package/dist/firestore/firestoreApi.js.map +1 -0
  239. package/dist/firestore/hooks/coerceError.d.ts +17 -0
  240. package/dist/firestore/hooks/coerceError.d.ts.map +1 -0
  241. package/dist/firestore/hooks/coerceError.js +41 -0
  242. package/dist/firestore/hooks/coerceError.js.map +1 -0
  243. package/dist/firestore/hooks/index.d.ts +10 -0
  244. package/dist/firestore/hooks/index.d.ts.map +1 -0
  245. package/dist/firestore/hooks/index.js +10 -0
  246. package/dist/firestore/hooks/index.js.map +1 -0
  247. package/dist/firestore/hooks/useCollectionList.d.ts +37 -0
  248. package/dist/firestore/hooks/useCollectionList.d.ts.map +1 -0
  249. package/dist/firestore/hooks/useCollectionList.js +51 -0
  250. package/dist/firestore/hooks/useCollectionList.js.map +1 -0
  251. package/dist/firestore/hooks/useDocumentEditor.d.ts +61 -0
  252. package/dist/firestore/hooks/useDocumentEditor.d.ts.map +1 -0
  253. package/dist/firestore/hooks/useDocumentEditor.js +71 -0
  254. package/dist/firestore/hooks/useDocumentEditor.js.map +1 -0
  255. package/dist/firestore/hooks/useDocumentList.d.ts +50 -0
  256. package/dist/firestore/hooks/useDocumentList.d.ts.map +1 -0
  257. package/dist/firestore/hooks/useDocumentList.js +162 -0
  258. package/dist/firestore/hooks/useDocumentList.js.map +1 -0
  259. package/dist/firestore/hooks/useDocumentSubcollections.d.ts +29 -0
  260. package/dist/firestore/hooks/useDocumentSubcollections.d.ts.map +1 -0
  261. package/dist/firestore/hooks/useDocumentSubcollections.js +48 -0
  262. package/dist/firestore/hooks/useDocumentSubcollections.js.map +1 -0
  263. package/dist/firestore/hooks/useFirestoreCollection.d.ts +14 -0
  264. package/dist/firestore/hooks/useFirestoreCollection.d.ts.map +1 -0
  265. package/dist/firestore/hooks/useFirestoreCollection.js +36 -0
  266. package/dist/firestore/hooks/useFirestoreCollection.js.map +1 -0
  267. package/dist/firestore/hooks/useFirestoreDoc.d.ts +17 -0
  268. package/dist/firestore/hooks/useFirestoreDoc.d.ts.map +1 -0
  269. package/dist/firestore/hooks/useFirestoreDoc.js +35 -0
  270. package/dist/firestore/hooks/useFirestoreDoc.js.map +1 -0
  271. package/dist/firestore/hooks/useQueryBuilder.d.ts +51 -0
  272. package/dist/firestore/hooks/useQueryBuilder.d.ts.map +1 -0
  273. package/dist/firestore/hooks/useQueryBuilder.js +110 -0
  274. package/dist/firestore/hooks/useQueryBuilder.js.map +1 -0
  275. package/dist/firestore/hooks/useRecursiveDelete.d.ts +40 -0
  276. package/dist/firestore/hooks/useRecursiveDelete.d.ts.map +1 -0
  277. package/dist/firestore/hooks/useRecursiveDelete.js +44 -0
  278. package/dist/firestore/hooks/useRecursiveDelete.js.map +1 -0
  279. package/dist/firestore/hooks/useReferencePicker.d.ts +70 -0
  280. package/dist/firestore/hooks/useReferencePicker.d.ts.map +1 -0
  281. package/dist/firestore/hooks/useReferencePicker.js +140 -0
  282. package/dist/firestore/hooks/useReferencePicker.js.map +1 -0
  283. package/dist/firestore/import/parseImport.d.ts +55 -0
  284. package/dist/firestore/import/parseImport.d.ts.map +1 -0
  285. package/dist/firestore/import/parseImport.js +101 -0
  286. package/dist/firestore/import/parseImport.js.map +1 -0
  287. package/dist/firestore/index.d.ts +21 -0
  288. package/dist/firestore/index.d.ts.map +1 -0
  289. package/dist/firestore/index.js +29 -0
  290. package/dist/firestore/index.js.map +1 -0
  291. package/dist/firestore/reducers/defaults.d.ts +10 -0
  292. package/dist/firestore/reducers/defaults.d.ts.map +1 -0
  293. package/dist/firestore/reducers/defaults.js +37 -0
  294. package/dist/firestore/reducers/defaults.js.map +1 -0
  295. package/dist/firestore/reducers/documentEditor.d.ts +23 -0
  296. package/dist/firestore/reducers/documentEditor.d.ts.map +1 -0
  297. package/dist/firestore/reducers/documentEditor.js +201 -0
  298. package/dist/firestore/reducers/documentEditor.js.map +1 -0
  299. package/dist/firestore/reducers/tree.d.ts +28 -0
  300. package/dist/firestore/reducers/tree.d.ts.map +1 -0
  301. package/dist/firestore/reducers/tree.js +129 -0
  302. package/dist/firestore/reducers/tree.js.map +1 -0
  303. package/dist/firestore/reducers/types.d.ts +115 -0
  304. package/dist/firestore/reducers/types.d.ts.map +1 -0
  305. package/dist/firestore/reducers/types.js +2 -0
  306. package/dist/firestore/reducers/types.js.map +1 -0
  307. package/dist/firestore/reducers/validation.d.ts +25 -0
  308. package/dist/firestore/reducers/validation.d.ts.map +1 -0
  309. package/dist/firestore/reducers/validation.js +121 -0
  310. package/dist/firestore/reducers/validation.js.map +1 -0
  311. package/dist/firestore/types.d.ts +77 -0
  312. package/dist/firestore/types.d.ts.map +1 -0
  313. package/dist/firestore/types.js +196 -0
  314. package/dist/firestore/types.js.map +1 -0
  315. package/dist/firestore/validation/ids.d.ts +23 -0
  316. package/dist/firestore/validation/ids.d.ts.map +1 -0
  317. package/dist/firestore/validation/ids.js +46 -0
  318. package/dist/firestore/validation/ids.js.map +1 -0
  319. package/dist/firestore/valueEquality.d.ts +4 -0
  320. package/dist/firestore/valueEquality.d.ts.map +1 -0
  321. package/dist/firestore/valueEquality.js +44 -0
  322. package/dist/firestore/valueEquality.js.map +1 -0
  323. package/dist/index.d.ts +2 -0
  324. package/dist/index.d.ts.map +1 -0
  325. package/dist/index.js +2 -0
  326. package/dist/index.js.map +1 -0
  327. package/dist/primitives/Badge.d.ts +28 -0
  328. package/dist/primitives/Badge.d.ts.map +1 -0
  329. package/dist/primitives/Badge.js +11 -0
  330. package/dist/primitives/Badge.js.map +1 -0
  331. package/dist/primitives/ConfirmDialog.d.ts +42 -0
  332. package/dist/primitives/ConfirmDialog.d.ts.map +1 -0
  333. package/dist/primitives/ConfirmDialog.js +61 -0
  334. package/dist/primitives/ConfirmDialog.js.map +1 -0
  335. package/dist/primitives/CopyButton.d.ts +28 -0
  336. package/dist/primitives/CopyButton.d.ts.map +1 -0
  337. package/dist/primitives/CopyButton.js +27 -0
  338. package/dist/primitives/CopyButton.js.map +1 -0
  339. package/dist/primitives/JsonView.d.ts +29 -0
  340. package/dist/primitives/JsonView.d.ts.map +1 -0
  341. package/dist/primitives/JsonView.js +56 -0
  342. package/dist/primitives/JsonView.js.map +1 -0
  343. package/dist/primitives/SegmentedControl.d.ts +37 -0
  344. package/dist/primitives/SegmentedControl.d.ts.map +1 -0
  345. package/dist/primitives/SegmentedControl.js +18 -0
  346. package/dist/primitives/SegmentedControl.js.map +1 -0
  347. package/dist/primitives/Toast.d.ts +48 -0
  348. package/dist/primitives/Toast.d.ts.map +1 -0
  349. package/dist/primitives/Toast.js +60 -0
  350. package/dist/primitives/Toast.js.map +1 -0
  351. package/dist/primitives/VirtualList.d.ts +37 -0
  352. package/dist/primitives/VirtualList.d.ts.map +1 -0
  353. package/dist/primitives/VirtualList.js +47 -0
  354. package/dist/primitives/VirtualList.js.map +1 -0
  355. package/dist/primitives/hooks/useContainerSize.d.ts +29 -0
  356. package/dist/primitives/hooks/useContainerSize.d.ts.map +1 -0
  357. package/dist/primitives/hooks/useContainerSize.js +45 -0
  358. package/dist/primitives/hooks/useContainerSize.js.map +1 -0
  359. package/dist/primitives/hooks/useUpdateHighlights.d.ts +18 -0
  360. package/dist/primitives/hooks/useUpdateHighlights.d.ts.map +1 -0
  361. package/dist/primitives/hooks/useUpdateHighlights.js +84 -0
  362. package/dist/primitives/hooks/useUpdateHighlights.js.map +1 -0
  363. package/dist/primitives/index.d.ts +11 -0
  364. package/dist/primitives/index.d.ts.map +1 -0
  365. package/dist/primitives/index.js +11 -0
  366. package/dist/primitives/index.js.map +1 -0
  367. package/dist/primitives/useConfirm.d.ts +34 -0
  368. package/dist/primitives/useConfirm.d.ts.map +1 -0
  369. package/dist/primitives/useConfirm.js +63 -0
  370. package/dist/primitives/useConfirm.js.map +1 -0
  371. package/dist/rtdb/components/RtdbPathBar.d.ts +31 -0
  372. package/dist/rtdb/components/RtdbPathBar.d.ts.map +1 -0
  373. package/dist/rtdb/components/RtdbPathBar.js +47 -0
  374. package/dist/rtdb/components/RtdbPathBar.js.map +1 -0
  375. package/dist/rtdb/components/RtdbTree.d.ts +38 -0
  376. package/dist/rtdb/components/RtdbTree.d.ts.map +1 -0
  377. package/dist/rtdb/components/RtdbTree.js +104 -0
  378. package/dist/rtdb/components/RtdbTree.js.map +1 -0
  379. package/dist/rtdb/editor.d.ts +25 -0
  380. package/dist/rtdb/editor.d.ts.map +1 -0
  381. package/dist/rtdb/editor.js +79 -0
  382. package/dist/rtdb/editor.js.map +1 -0
  383. package/dist/rtdb/hooks/useRtdbTree.d.ts +33 -0
  384. package/dist/rtdb/hooks/useRtdbTree.d.ts.map +1 -0
  385. package/dist/rtdb/hooks/useRtdbTree.js +67 -0
  386. package/dist/rtdb/hooks/useRtdbTree.js.map +1 -0
  387. package/dist/rtdb/index.d.ts +17 -0
  388. package/dist/rtdb/index.d.ts.map +1 -0
  389. package/dist/rtdb/index.js +21 -0
  390. package/dist/rtdb/index.js.map +1 -0
  391. package/dist/rtdb/pathInput.d.ts +28 -0
  392. package/dist/rtdb/pathInput.d.ts.map +1 -0
  393. package/dist/rtdb/pathInput.js +40 -0
  394. package/dist/rtdb/pathInput.js.map +1 -0
  395. package/dist/rtdb/reducers/tree.d.ts +86 -0
  396. package/dist/rtdb/reducers/tree.d.ts.map +1 -0
  397. package/dist/rtdb/reducers/tree.js +131 -0
  398. package/dist/rtdb/reducers/tree.js.map +1 -0
  399. package/dist/rtdb/rtdbApi.d.ts +20 -0
  400. package/dist/rtdb/rtdbApi.d.ts.map +1 -0
  401. package/dist/rtdb/rtdbApi.js +2 -0
  402. package/dist/rtdb/rtdbApi.js.map +1 -0
  403. package/dist/rtdb/values.d.ts +50 -0
  404. package/dist/rtdb/values.d.ts.map +1 -0
  405. package/dist/rtdb/values.js +186 -0
  406. package/dist/rtdb/values.js.map +1 -0
  407. package/dist/rules/components/DenialInspector.d.ts +18 -0
  408. package/dist/rules/components/DenialInspector.d.ts.map +1 -0
  409. package/dist/rules/components/DenialInspector.js +58 -0
  410. package/dist/rules/components/DenialInspector.js.map +1 -0
  411. package/dist/rules/components/format.d.ts +56 -0
  412. package/dist/rules/components/format.d.ts.map +1 -0
  413. package/dist/rules/components/format.js +137 -0
  414. package/dist/rules/components/format.js.map +1 -0
  415. package/dist/rules/components/index.d.ts +4 -0
  416. package/dist/rules/components/index.d.ts.map +1 -0
  417. package/dist/rules/components/index.js +4 -0
  418. package/dist/rules/components/index.js.map +1 -0
  419. package/dist/rules/components/scope.d.ts +10 -0
  420. package/dist/rules/components/scope.d.ts.map +1 -0
  421. package/dist/rules/components/scope.js +72 -0
  422. package/dist/rules/components/scope.js.map +1 -0
  423. package/dist/rules/hooks/index.d.ts +2 -0
  424. package/dist/rules/hooks/index.d.ts.map +1 -0
  425. package/dist/rules/hooks/index.js +2 -0
  426. package/dist/rules/hooks/index.js.map +1 -0
  427. package/dist/rules/hooks/useDenialTrace.d.ts +51 -0
  428. package/dist/rules/hooks/useDenialTrace.d.ts.map +1 -0
  429. package/dist/rules/hooks/useDenialTrace.js +58 -0
  430. package/dist/rules/hooks/useDenialTrace.js.map +1 -0
  431. package/dist/rules/index.d.ts +14 -0
  432. package/dist/rules/index.d.ts.map +1 -0
  433. package/dist/rules/index.js +13 -0
  434. package/dist/rules/index.js.map +1 -0
  435. package/dist/rules/types.d.ts +75 -0
  436. package/dist/rules/types.d.ts.map +1 -0
  437. package/dist/rules/types.js +2 -0
  438. package/dist/rules/types.js.map +1 -0
  439. package/dist/storage/collisionRename.d.ts +73 -0
  440. package/dist/storage/collisionRename.d.ts.map +1 -0
  441. package/dist/storage/collisionRename.js +113 -0
  442. package/dist/storage/collisionRename.js.map +1 -0
  443. package/dist/storage/components/DeleteSelectionWithConfirm.d.ts +66 -0
  444. package/dist/storage/components/DeleteSelectionWithConfirm.d.ts.map +1 -0
  445. package/dist/storage/components/DeleteSelectionWithConfirm.js +82 -0
  446. package/dist/storage/components/DeleteSelectionWithConfirm.js.map +1 -0
  447. package/dist/storage/components/ObjectBrowser.d.ts +78 -0
  448. package/dist/storage/components/ObjectBrowser.d.ts.map +1 -0
  449. package/dist/storage/components/ObjectBrowser.js +60 -0
  450. package/dist/storage/components/ObjectBrowser.js.map +1 -0
  451. package/dist/storage/components/ObjectInspector.d.ts +43 -0
  452. package/dist/storage/components/ObjectInspector.d.ts.map +1 -0
  453. package/dist/storage/components/ObjectInspector.js +92 -0
  454. package/dist/storage/components/ObjectInspector.js.map +1 -0
  455. package/dist/storage/components/PathBreadcrumb.d.ts +30 -0
  456. package/dist/storage/components/PathBreadcrumb.d.ts.map +1 -0
  457. package/dist/storage/components/PathBreadcrumb.js +26 -0
  458. package/dist/storage/components/PathBreadcrumb.js.map +1 -0
  459. package/dist/storage/components/UploadDropzone.d.ts +50 -0
  460. package/dist/storage/components/UploadDropzone.d.ts.map +1 -0
  461. package/dist/storage/components/UploadDropzone.js +109 -0
  462. package/dist/storage/components/UploadDropzone.js.map +1 -0
  463. package/dist/storage/folderPlaceholder.d.ts +20 -0
  464. package/dist/storage/folderPlaceholder.d.ts.map +1 -0
  465. package/dist/storage/folderPlaceholder.js +34 -0
  466. package/dist/storage/folderPlaceholder.js.map +1 -0
  467. package/dist/storage/hooks/index.d.ts +9 -0
  468. package/dist/storage/hooks/index.d.ts.map +1 -0
  469. package/dist/storage/hooks/index.js +9 -0
  470. package/dist/storage/hooks/index.js.map +1 -0
  471. package/dist/storage/hooks/useMetadataEditor.d.ts +114 -0
  472. package/dist/storage/hooks/useMetadataEditor.d.ts.map +1 -0
  473. package/dist/storage/hooks/useMetadataEditor.js +193 -0
  474. package/dist/storage/hooks/useMetadataEditor.js.map +1 -0
  475. package/dist/storage/hooks/useObjectUpload.d.ts +105 -0
  476. package/dist/storage/hooks/useObjectUpload.d.ts.map +1 -0
  477. package/dist/storage/hooks/useObjectUpload.js +134 -0
  478. package/dist/storage/hooks/useObjectUpload.js.map +1 -0
  479. package/dist/storage/hooks/usePathState.d.ts +43 -0
  480. package/dist/storage/hooks/usePathState.d.ts.map +1 -0
  481. package/dist/storage/hooks/usePathState.js +42 -0
  482. package/dist/storage/hooks/usePathState.js.map +1 -0
  483. package/dist/storage/hooks/useStorageDelete.d.ts +74 -0
  484. package/dist/storage/hooks/useStorageDelete.d.ts.map +1 -0
  485. package/dist/storage/hooks/useStorageDelete.js +120 -0
  486. package/dist/storage/hooks/useStorageDelete.js.map +1 -0
  487. package/dist/storage/hooks/useStorageList.d.ts +72 -0
  488. package/dist/storage/hooks/useStorageList.d.ts.map +1 -0
  489. package/dist/storage/hooks/useStorageList.js +164 -0
  490. package/dist/storage/hooks/useStorageList.js.map +1 -0
  491. package/dist/storage/hooks/useStorageObject.d.ts +33 -0
  492. package/dist/storage/hooks/useStorageObject.d.ts.map +1 -0
  493. package/dist/storage/hooks/useStorageObject.js +114 -0
  494. package/dist/storage/hooks/useStorageObject.js.map +1 -0
  495. package/dist/storage/hooks/useStorageRulesGate.d.ts +116 -0
  496. package/dist/storage/hooks/useStorageRulesGate.d.ts.map +1 -0
  497. package/dist/storage/hooks/useStorageRulesGate.js +150 -0
  498. package/dist/storage/hooks/useStorageRulesGate.js.map +1 -0
  499. package/dist/storage/hooks/useStorageSelection.d.ts +32 -0
  500. package/dist/storage/hooks/useStorageSelection.d.ts.map +1 -0
  501. package/dist/storage/hooks/useStorageSelection.js +55 -0
  502. package/dist/storage/hooks/useStorageSelection.js.map +1 -0
  503. package/dist/storage/index.d.ts +11 -0
  504. package/dist/storage/index.d.ts.map +1 -0
  505. package/dist/storage/index.js +17 -0
  506. package/dist/storage/index.js.map +1 -0
  507. package/dist/storage/pendingPrefixes.d.ts +77 -0
  508. package/dist/storage/pendingPrefixes.d.ts.map +1 -0
  509. package/dist/storage/pendingPrefixes.js +104 -0
  510. package/dist/storage/pendingPrefixes.js.map +1 -0
  511. package/dist/storage/previews.d.ts +51 -0
  512. package/dist/storage/previews.d.ts.map +1 -0
  513. package/dist/storage/previews.js +73 -0
  514. package/dist/storage/previews.js.map +1 -0
  515. package/dist/storage/storageApi.d.ts +30 -0
  516. package/dist/storage/storageApi.d.ts.map +1 -0
  517. package/dist/storage/storageApi.js +20 -0
  518. package/dist/storage/storageApi.js.map +1 -0
  519. package/dist/traffic/components/RuleHeatmap.d.ts +34 -0
  520. package/dist/traffic/components/RuleHeatmap.d.ts.map +1 -0
  521. package/dist/traffic/components/RuleHeatmap.js +40 -0
  522. package/dist/traffic/components/RuleHeatmap.js.map +1 -0
  523. package/dist/traffic/components/TrafficDetail.d.ts +33 -0
  524. package/dist/traffic/components/TrafficDetail.d.ts.map +1 -0
  525. package/dist/traffic/components/TrafficDetail.js +28 -0
  526. package/dist/traffic/components/TrafficDetail.js.map +1 -0
  527. package/dist/traffic/components/TrafficGroupRow.d.ts +28 -0
  528. package/dist/traffic/components/TrafficGroupRow.d.ts.map +1 -0
  529. package/dist/traffic/components/TrafficGroupRow.js +25 -0
  530. package/dist/traffic/components/TrafficGroupRow.js.map +1 -0
  531. package/dist/traffic/components/TrafficLineChart.d.ts +37 -0
  532. package/dist/traffic/components/TrafficLineChart.d.ts.map +1 -0
  533. package/dist/traffic/components/TrafficLineChart.js +49 -0
  534. package/dist/traffic/components/TrafficLineChart.js.map +1 -0
  535. package/dist/traffic/components/TrafficLog.d.ts +52 -0
  536. package/dist/traffic/components/TrafficLog.d.ts.map +1 -0
  537. package/dist/traffic/components/TrafficLog.js +34 -0
  538. package/dist/traffic/components/TrafficLog.js.map +1 -0
  539. package/dist/traffic/components/TrafficMetricCards.d.ts +26 -0
  540. package/dist/traffic/components/TrafficMetricCards.d.ts.map +1 -0
  541. package/dist/traffic/components/TrafficMetricCards.js +24 -0
  542. package/dist/traffic/components/TrafficMetricCards.js.map +1 -0
  543. package/dist/traffic/components/TrafficRow.d.ts +40 -0
  544. package/dist/traffic/components/TrafficRow.d.ts.map +1 -0
  545. package/dist/traffic/components/TrafficRow.js +27 -0
  546. package/dist/traffic/components/TrafficRow.js.map +1 -0
  547. package/dist/traffic/components/TrafficStats.d.ts +18 -0
  548. package/dist/traffic/components/TrafficStats.d.ts.map +1 -0
  549. package/dist/traffic/components/TrafficStats.js +19 -0
  550. package/dist/traffic/components/TrafficStats.js.map +1 -0
  551. package/dist/traffic/components/TrafficTimeline.d.ts +88 -0
  552. package/dist/traffic/components/TrafficTimeline.d.ts.map +1 -0
  553. package/dist/traffic/components/TrafficTimeline.js +86 -0
  554. package/dist/traffic/components/TrafficTimeline.js.map +1 -0
  555. package/dist/traffic/components/format.d.ts +13 -0
  556. package/dist/traffic/components/format.d.ts.map +1 -0
  557. package/dist/traffic/components/format.js +24 -0
  558. package/dist/traffic/components/format.js.map +1 -0
  559. package/dist/traffic/components/index.d.ts +11 -0
  560. package/dist/traffic/components/index.d.ts.map +1 -0
  561. package/dist/traffic/components/index.js +11 -0
  562. package/dist/traffic/components/index.js.map +1 -0
  563. package/dist/traffic/hooks/index.d.ts +8 -0
  564. package/dist/traffic/hooks/index.d.ts.map +1 -0
  565. package/dist/traffic/hooks/index.js +8 -0
  566. package/dist/traffic/hooks/index.js.map +1 -0
  567. package/dist/traffic/hooks/useRuleHeatmap.d.ts +33 -0
  568. package/dist/traffic/hooks/useRuleHeatmap.d.ts.map +1 -0
  569. package/dist/traffic/hooks/useRuleHeatmap.js +54 -0
  570. package/dist/traffic/hooks/useRuleHeatmap.js.map +1 -0
  571. package/dist/traffic/hooks/useTrafficBuckets.d.ts +71 -0
  572. package/dist/traffic/hooks/useTrafficBuckets.d.ts.map +1 -0
  573. package/dist/traffic/hooks/useTrafficBuckets.js +74 -0
  574. package/dist/traffic/hooks/useTrafficBuckets.js.map +1 -0
  575. package/dist/traffic/hooks/useTrafficFilter.d.ts +40 -0
  576. package/dist/traffic/hooks/useTrafficFilter.d.ts.map +1 -0
  577. package/dist/traffic/hooks/useTrafficFilter.js +33 -0
  578. package/dist/traffic/hooks/useTrafficFilter.js.map +1 -0
  579. package/dist/traffic/hooks/useTrafficGroups.d.ts +47 -0
  580. package/dist/traffic/hooks/useTrafficGroups.d.ts.map +1 -0
  581. package/dist/traffic/hooks/useTrafficGroups.js +73 -0
  582. package/dist/traffic/hooks/useTrafficGroups.js.map +1 -0
  583. package/dist/traffic/hooks/useTrafficMetrics.d.ts +66 -0
  584. package/dist/traffic/hooks/useTrafficMetrics.d.ts.map +1 -0
  585. package/dist/traffic/hooks/useTrafficMetrics.js +156 -0
  586. package/dist/traffic/hooks/useTrafficMetrics.js.map +1 -0
  587. package/dist/traffic/hooks/useTrafficMonitor.d.ts +56 -0
  588. package/dist/traffic/hooks/useTrafficMonitor.d.ts.map +1 -0
  589. package/dist/traffic/hooks/useTrafficMonitor.js +58 -0
  590. package/dist/traffic/hooks/useTrafficMonitor.js.map +1 -0
  591. package/dist/traffic/hooks/useTrafficStats.d.ts +32 -0
  592. package/dist/traffic/hooks/useTrafficStats.d.ts.map +1 -0
  593. package/dist/traffic/hooks/useTrafficStats.js +45 -0
  594. package/dist/traffic/hooks/useTrafficStats.js.map +1 -0
  595. package/dist/traffic/index.d.ts +4 -0
  596. package/dist/traffic/index.d.ts.map +1 -0
  597. package/dist/traffic/index.js +3 -0
  598. package/dist/traffic/index.js.map +1 -0
  599. package/dist/traffic/types.d.ts +72 -0
  600. package/dist/traffic/types.d.ts.map +1 -0
  601. package/dist/traffic/types.js +10 -0
  602. package/dist/traffic/types.js.map +1 -0
  603. package/package.json +127 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean.d.ts","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/boolean.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAqC,MAAM,YAAY,CAAC;AAkCzF,eAAO,MAAM,aAAa,EAAE,mBAAmB,CAAC,OAAO,CAItD,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ function BooleanDisplay({ value, path }) {
3
+ return (_jsx("span", { "data-pyric-field-type": "boolean", "data-pyric-field-path": path, "data-value": value ? 'true' : 'false', children: value ? 'true' : 'false' }));
4
+ }
5
+ function BooleanEdit({ value, onChange, path }) {
6
+ return (_jsx("span", { "data-pyric-field-type": "boolean", "data-pyric-field-path": path, "data-value": value ? 'true' : 'false', children: _jsxs("select", { value: value ? 'true' : 'false', onChange: (e) => onChange(e.target.value === 'true'), "aria-label": "Boolean value", "data-pyric-boolean-select": true, children: [_jsx("option", { value: "true", children: "true" }), _jsx("option", { value: "false", children: "false" })] }) }));
7
+ }
8
+ export const booleanEditor = {
9
+ type: 'boolean',
10
+ Display: BooleanDisplay,
11
+ Edit: BooleanEdit,
12
+ };
13
+ //# sourceMappingURL=boolean.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/boolean.tsx"],"names":[],"mappings":";AAEA,SAAS,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAA8B;IACjE,OAAO,CACL,wCACwB,SAAS,2BACR,IAAI,gBACf,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,YAEnC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GACpB,CACR,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAA2B;IACrE,OAAO,CACL,wCACwB,SAAS,2BACR,IAAI,gBACf,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,YAEpC,kBACE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,gBACzC,eAAe,gDAG1B,iBAAQ,KAAK,EAAC,MAAM,qBAAc,EAClC,iBAAQ,KAAK,EAAC,OAAO,sBAAe,IAC7B,GACJ,CACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAiC;IACzD,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,cAAc;IACvB,IAAI,EAAE,WAAW;CAClB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Bytes } from 'pyric/firestore';
2
+ import type { FieldEditorContract } from './types.js';
3
+ export declare const bytesEditor: FieldEditorContract<Bytes>;
4
+ //# sourceMappingURL=bytes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/bytes.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,EAAE,mBAAmB,EAAqC,MAAM,YAAY,CAAC;AA+CzF,eAAO,MAAM,WAAW,EAAE,mBAAmB,CAAC,KAAK,CAIlD,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Bytes } from 'pyric/firestore';
3
+ function BytesDisplay({ value, path }) {
4
+ const b64 = value.toBase64();
5
+ return (_jsx("code", { "data-pyric-field-type": "bytes", "data-pyric-field-path": path, "data-byte-length": String(value.toUint8Array().byteLength), children: b64 }));
6
+ }
7
+ /**
8
+ * Base64 textarea. Anything that's not legal base64 produces a
9
+ * thrown error when passed to `Bytes.fromBase64String`; we swallow
10
+ * it and leave the old value in place. The validator surfaces the
11
+ * stale state by not flagging it (the underlying Bytes is still
12
+ * valid), so consumers wanting stricter feedback need to swap the
13
+ * editor.
14
+ */
15
+ function BytesEdit({ value, onChange, error, path }) {
16
+ return (_jsxs("label", { "data-pyric-field-type": "bytes", "data-pyric-field-path": path, "data-pyric-error": error ? '' : undefined, children: [_jsx("textarea", { value: value.toBase64(), onChange: (e) => {
17
+ try {
18
+ onChange(Bytes.fromBase64String(e.target.value));
19
+ }
20
+ catch {
21
+ // Invalid base64 — keep the previous value. The user
22
+ // sees the bad text in the textarea until they fix it.
23
+ }
24
+ }, "aria-invalid": error ? 'true' : undefined }), error ? _jsx("span", { "data-pyric-error-message": true, children: error }) : null] }));
25
+ }
26
+ export const bytesEditor = {
27
+ type: 'bytes',
28
+ Display: BytesDisplay,
29
+ Edit: BytesEdit,
30
+ };
31
+ //# sourceMappingURL=bytes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/bytes.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGxC,SAAS,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAA4B;IAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC7B,OAAO,CACL,wCACwB,OAAO,2BACN,IAAI,sBACT,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,YAExD,GAAG,GACC,CACR,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAyB;IACxE,OAAO,CACL,0CACwB,OAAO,2BACN,IAAI,sBACT,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,aAExC,mBACE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,EACvB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;oBACd,IAAI,CAAC;wBACH,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACnD,CAAC;oBAAC,MAAM,CAAC;wBACP,qDAAqD;wBACrD,uDAAuD;oBACzD,CAAC;gBACH,CAAC,kBACa,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GACxC,EACD,KAAK,CAAC,CAAC,CAAC,2DAAgC,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,IACvD,CACT,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAA+B;IACrD,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,SAAS;CAChB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { GeoPoint } from 'pyric/firestore';
2
+ import type { FieldEditorContract } from './types.js';
3
+ export declare const geopointEditor: FieldEditorContract<GeoPoint>;
4
+ //# sourceMappingURL=geopoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geopoint.d.ts","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/geopoint.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAqC,MAAM,YAAY,CAAC;AAiEzF,eAAO,MAAM,cAAc,EAAE,mBAAmB,CAAC,QAAQ,CAIxD,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { GeoPoint } from 'pyric/firestore';
3
+ function GeoPointDisplay({ value, path }) {
4
+ return (_jsxs("span", { "data-pyric-field-type": "geopoint", "data-pyric-field-path": path, "data-lat": String(value.latitude), "data-lng": String(value.longitude), children: [value.latitude, ", ", value.longitude] }));
5
+ }
6
+ function GeoPointEdit({ value, onChange, error, path }) {
7
+ return (_jsxs("span", { "data-pyric-field-type": "geopoint", "data-pyric-field-path": path, "data-pyric-error": error ? '' : undefined, children: [_jsx("label", { children: _jsx("input", { type: "number", step: "any", min: -90, max: 90, value: value.latitude, onChange: (e) => {
8
+ const lat = parseFloat(e.target.value);
9
+ try {
10
+ onChange(new GeoPoint(lat, value.longitude));
11
+ }
12
+ catch {
13
+ // GeoPoint constructor throws on out-of-range. Leave
14
+ // the previous value in place; the validator will
15
+ // surface the issue on next render.
16
+ }
17
+ }, "aria-label": "Latitude" }) }), _jsx("label", { children: _jsx("input", { type: "number", step: "any", min: -180, max: 180, value: value.longitude, onChange: (e) => {
18
+ const lng = parseFloat(e.target.value);
19
+ try {
20
+ onChange(new GeoPoint(value.latitude, lng));
21
+ }
22
+ catch {
23
+ // see above
24
+ }
25
+ }, "aria-label": "Longitude" }) }), error ? _jsx("span", { "data-pyric-error-message": true, children: error }) : null] }));
26
+ }
27
+ export const geopointEditor = {
28
+ type: 'geopoint',
29
+ Display: GeoPointDisplay,
30
+ Edit: GeoPointEdit,
31
+ };
32
+ //# sourceMappingURL=geopoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geopoint.js","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/geopoint.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3C,SAAS,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAA+B;IACnE,OAAO,CACL,yCACwB,UAAU,2BACT,IAAI,cACjB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,cACtB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,aAEhC,KAAK,CAAC,QAAQ,QAAI,KAAK,CAAC,SAAS,IAC7B,CACR,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAA4B;IAC9E,OAAO,CACL,yCACwB,UAAU,2BACT,IAAI,sBACT,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,aAExC,0BACE,gBACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,EACV,GAAG,EAAE,CAAC,EAAE,EACR,GAAG,EAAE,EAAE,EACP,KAAK,EAAE,KAAK,CAAC,QAAQ,EACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;wBACd,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBACvC,IAAI,CAAC;4BACH,QAAQ,CAAC,IAAI,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;wBAC/C,CAAC;wBAAC,MAAM,CAAC;4BACP,qDAAqD;4BACrD,kDAAkD;4BAClD,oCAAoC;wBACtC,CAAC;oBACH,CAAC,gBACU,UAAU,GACrB,GACI,EACR,0BACE,gBACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,EACV,GAAG,EAAE,CAAC,GAAG,EACT,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,CAAC,SAAS,EACtB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;wBACd,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBACvC,IAAI,CAAC;4BACH,QAAQ,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC9C,CAAC;wBAAC,MAAM,CAAC;4BACP,YAAY;wBACd,CAAC;oBACH,CAAC,gBACU,WAAW,GACtB,GACI,EACP,KAAK,CAAC,CAAC,CAAC,2DAAgC,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,IACxD,CACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAkC;IAC3D,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,eAAe;IACxB,IAAI,EAAE,YAAY;CACnB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FieldEditorContract } from './types.js';
2
+ export declare const mapEditor: FieldEditorContract<Record<string, unknown>>;
3
+ //# sourceMappingURL=map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/map.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAqB,MAAM,YAAY,CAAC;AA4BzE,eAAO,MAAM,SAAS,EAAE,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGlE,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { TreeEntry } from '../components/TreeEntry.js';
3
+ /**
4
+ * Read-only map renderer as an indented tree (not a key/value grid): each entry
5
+ * is `key: value` inline for scalars, or a collapsible disclosure (chevron +
6
+ * key) whose nested tree indents below for maps/arrays. {@link TreeEntry} owns
7
+ * the per-node collapse state + chevron.
8
+ */
9
+ function MapDisplay({ value, path, fieldEditors }) {
10
+ // Lexicographic key order so fields render in a stable sequence regardless of
11
+ // JS object enumeration order (matches firebase-tools-ui).
12
+ const entries = Object.entries(value).sort(([a], [b]) => a.localeCompare(b));
13
+ return (_jsx("ul", { "data-pyric-field-type": "map", "data-pyric-tree": true, "data-pyric-field-path": path, children: entries.map(([key, childValue]) => (_jsx(TreeEntry, { label: key, value: childValue, path: path ? `${path}.${key}` : key, fieldEditors: fieldEditors ?? {}, kind: "key" }, key))) }));
14
+ }
15
+ export const mapEditor = {
16
+ type: 'map',
17
+ Display: MapDisplay,
18
+ };
19
+ //# sourceMappingURL=map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/map.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD;;;;;GAKG;AACH,SAAS,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAA8C;IAC3F,8EAA8E;IAC9E,2DAA2D;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,OAAO,CACL,sCAA0B,KAAK,oDAAwC,IAAI,YACxE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAClC,KAAC,SAAS,IAER,KAAK,EAAE,GAAG,EACV,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EACnC,YAAY,EAAE,YAAY,IAAI,EAAE,EAChC,IAAI,EAAC,KAAK,IALL,GAAG,CAMR,CACH,CAAC,GACC,CACN,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAiD;IACrE,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,UAAU;CACpB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FieldEditorContract } from './types.js';
2
+ export declare const nullEditor: FieldEditorContract<null>;
3
+ //# sourceMappingURL=null.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null.d.ts","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/null.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAqC,MAAM,YAAY,CAAC;AAsBzF,eAAO,MAAM,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAIhD,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ function NullDisplay({ path }) {
3
+ return (_jsx("span", { "data-pyric-field-type": "null", "data-pyric-field-path": path, children: "null" }));
4
+ }
5
+ // `null` has no editable surface — the user changes the type if they
6
+ // want a value. The Edit component renders a placeholder so the
7
+ // editor still emits a slot at the right path. Consumers style it
8
+ // however they like (e.g. ghost text).
9
+ function NullEdit({ path }) {
10
+ return (_jsx("span", { "data-pyric-field-type": "null", "data-pyric-field-path": path, children: "null" }));
11
+ }
12
+ export const nullEditor = {
13
+ type: 'null',
14
+ Display: NullDisplay,
15
+ Edit: NullEdit,
16
+ };
17
+ //# sourceMappingURL=null.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null.js","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/null.tsx"],"names":[],"mappings":";AAEA,SAAS,WAAW,CAAC,EAAE,IAAI,EAA2B;IACpD,OAAO,CACL,wCAA4B,MAAM,2BAAwB,IAAI,qBAEvD,CACR,CAAC;AACJ,CAAC;AAED,qEAAqE;AACrE,gEAAgE;AAChE,kEAAkE;AAClE,uCAAuC;AACvC,SAAS,QAAQ,CAAC,EAAE,IAAI,EAAwB;IAC9C,OAAO,CACL,wCAA4B,MAAM,2BAAwB,IAAI,qBAEvD,CACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAA8B;IACnD,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,QAAQ;CACf,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FieldEditorContract } from './types.js';
2
+ export declare const numberEditor: FieldEditorContract<number>;
3
+ //# sourceMappingURL=number.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/number.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAqC,MAAM,YAAY,CAAC;AAsCzF,eAAO,MAAM,YAAY,EAAE,mBAAmB,CAAC,MAAM,CAIpD,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ function NumberDisplay({ value, path }) {
3
+ return (_jsx("span", { "data-pyric-field-type": "number", "data-pyric-field-path": path, children: String(value) }));
4
+ }
5
+ function NumberEdit({ value, onChange, error, path }) {
6
+ return (_jsxs("label", { "data-pyric-field-type": "number", "data-pyric-field-path": path, "data-pyric-error": error ? '' : undefined, children: [_jsx("input", { type: "number",
7
+ // Render NaN as empty so the input doesn't show literally
8
+ // "NaN" — the underlying value still carries it until the
9
+ // user types something valid.
10
+ value: Number.isFinite(value) ? value : '', onChange: (e) => {
11
+ const raw = e.target.value;
12
+ // Empty input commits NaN so the reducer's validator
13
+ // flags it; this keeps the editor's UI in sync with the
14
+ // underlying value rather than swallowing the change.
15
+ const parsed = raw === '' ? Number.NaN : parseFloat(raw);
16
+ onChange(parsed);
17
+ }, "aria-invalid": error ? 'true' : undefined }), error ? _jsx("span", { "data-pyric-error-message": true, children: error }) : null] }));
18
+ }
19
+ export const numberEditor = {
20
+ type: 'number',
21
+ Display: NumberDisplay,
22
+ Edit: NumberEdit,
23
+ };
24
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/number.tsx"],"names":[],"mappings":";AAEA,SAAS,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAA6B;IAC/D,OAAO,CACL,wCAA4B,QAAQ,2BAAwB,IAAI,YAC7D,MAAM,CAAC,KAAK,CAAC,GACT,CACR,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAA0B;IAC1E,OAAO,CACL,0CACwB,QAAQ,2BACP,IAAI,sBACT,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,aAExC,gBACE,IAAI,EAAC,QAAQ;gBACb,0DAA0D;gBAC1D,0DAA0D;gBAC1D,8BAA8B;gBAC9B,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAC1C,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;oBACd,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC3B,qDAAqD;oBACrD,wDAAwD;oBACxD,sDAAsD;oBACtD,MAAM,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBACzD,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC,kBACa,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GACxC,EACD,KAAK,CAAC,CAAC,CAAC,2DAAgC,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,IACvD,CACT,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAgC;IACvD,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,UAAU;CACjB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { DocumentReference } from 'pyric/firestore';
2
+ import type { FieldEditorContract } from './types.js';
3
+ export declare const referenceEditor: FieldEditorContract<DocumentReference>;
4
+ //# sourceMappingURL=reference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/reference.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAqC,MAAM,YAAY,CAAC;AAiFzF,eAAO,MAAM,eAAe,EAAE,mBAAmB,CAAC,iBAAiB,CAIlE,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useDisplayContext } from '../components/context.js';
3
+ function ReferenceDisplay({ value, path }) {
4
+ // Clickable when a consumer has wired `onReferenceClick` via the
5
+ // `<DocumentPreview onReferenceClick={…}>` prop. Otherwise renders
6
+ // as plain text — staying headless and avoiding fake interactivity.
7
+ const { onReferenceClick } = useDisplayContext();
8
+ if (onReferenceClick) {
9
+ return (_jsx("button", { type: "button", onClick: () => onReferenceClick(value), "data-pyric-field-type": "reference", "data-pyric-field-path": path, "data-target-path": value.path, "data-pyric-clickable": "", children: value.path }));
10
+ }
11
+ return (_jsx("span", { "data-pyric-field-type": "reference", "data-pyric-field-path": path, "data-target-path": value.path, children: value.path }));
12
+ }
13
+ /**
14
+ * Text-input reference editor. M3 only — the M5 `<ReferencePicker>`
15
+ * replaces this with a popover that browses the data plane. The
16
+ * editor commits a "ref-shaped" stand-in object (matching the
17
+ * structural check in `inferType` + `validateLeaf`) so the value
18
+ * flows through the reducer without needing a live Firestore handle
19
+ * at this layer.
20
+ */
21
+ function ReferenceEdit({ value, onChange, error, path }) {
22
+ return (_jsxs("label", { "data-pyric-field-type": "reference", "data-pyric-field-path": path, "data-pyric-error": error ? '' : undefined, children: [_jsx("input", { type: "text", value: value.path, placeholder: "users/alice", onChange: (e) => {
23
+ const nextPath = e.target.value;
24
+ const segments = nextPath.split('/').filter(Boolean);
25
+ const id = segments[segments.length - 1] ?? '';
26
+ // Build a ref-shaped stand-in. Real refs are constructed
27
+ // by `<ReferencePicker>` (M5) once it can talk to a
28
+ // Firestore handle.
29
+ // Preserve the existing firestore handle if the current
30
+ // value already carries one (so it can be wired back when
31
+ // the M5 picker arrives). Cast through `unknown` because
32
+ // the pyric/firestore type union doesn't expose
33
+ // `.firestore` uniformly across chainable + modular.
34
+ const existingFirestore = value.firestore ?? {};
35
+ const stand = {
36
+ path: nextPath,
37
+ id,
38
+ firestore: existingFirestore,
39
+ type: 'document',
40
+ };
41
+ onChange(stand);
42
+ }, "aria-invalid": error ? 'true' : undefined }), error ? _jsx("span", { "data-pyric-error-message": true, children: error }) : null] }));
43
+ }
44
+ export const referenceEditor = {
45
+ type: 'reference',
46
+ Display: ReferenceDisplay,
47
+ Edit: ReferenceEdit,
48
+ };
49
+ //# sourceMappingURL=reference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.js","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/reference.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,SAAS,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAwC;IAC7E,iEAAiE;IACjE,mEAAmE;IACnE,oEAAoE;IACpE,MAAM,EAAE,gBAAgB,EAAE,GAAG,iBAAiB,EAAE,CAAC;IACjD,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,2BAChB,WAAW,2BACV,IAAI,sBACT,KAAK,CAAC,IAAI,0BACP,EAAE,YAEtB,KAAK,CAAC,IAAI,GACJ,CACV,CAAC;IACJ,CAAC;IACD,OAAO,CACL,wCACwB,WAAW,2BACV,IAAI,sBACT,KAAK,CAAC,IAAI,YAE3B,KAAK,CAAC,IAAI,GACN,CACR,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAqC;IACxF,OAAO,CACL,0CACwB,WAAW,2BACV,IAAI,sBACT,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,aAExC,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,KAAK,CAAC,IAAI,EACjB,WAAW,EAAC,aAAa,EACzB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;oBACd,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBACrD,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC/C,yDAAyD;oBACzD,oDAAoD;oBACpD,oBAAoB;oBACpB,wDAAwD;oBACxD,0DAA0D;oBAC1D,yDAAyD;oBACzD,gDAAgD;oBAChD,qDAAqD;oBACrD,MAAM,iBAAiB,GACpB,KAA4C,CAAC,SAAS,IAAI,EAAE,CAAC;oBAChE,MAAM,KAAK,GAAG;wBACZ,IAAI,EAAE,QAAQ;wBACd,EAAE;wBACF,SAAS,EAAE,iBAAiB;wBAC5B,IAAI,EAAE,UAAU;qBACe,CAAC;oBAClC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAClB,CAAC,kBACa,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GACxC,EACD,KAAK,CAAC,CAAC,CAAC,2DAAgC,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,IACvD,CACT,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAA2C;IACrE,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,gBAAgB;IACzB,IAAI,EAAE,aAAa;CACpB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { FieldEditorRegistry } from './types.js';
2
+ /**
3
+ * Default registry. Covers every {@link FieldType}. Consumers extend
4
+ * or override by passing their own (partial) registry into
5
+ * `<DocumentPreview>` / `<FieldRenderer>` — the components merge
6
+ * overrides into these defaults so a consumer can swap just one
7
+ * editor without re-declaring the rest.
8
+ */
9
+ export declare const defaultFieldEditors: FieldEditorRegistry;
10
+ /**
11
+ * Merge a consumer-supplied registry over the defaults. `undefined`
12
+ * input returns the defaults as-is. Used internally by
13
+ * `<DocumentPreview>` so consumers don't have to spread manually.
14
+ */
15
+ export declare function mergeFieldEditors(override: FieldEditorRegistry | undefined): FieldEditorRegistry;
16
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/registry.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,mBAYjC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,mBAAmB,GAAG,SAAS,GACxC,mBAAmB,CAGrB"}
@@ -0,0 +1,42 @@
1
+ import { stringEditor } from './string.js';
2
+ import { numberEditor } from './number.js';
3
+ import { booleanEditor } from './boolean.js';
4
+ import { nullEditor } from './null.js';
5
+ import { timestampEditor } from './timestamp.js';
6
+ import { geopointEditor } from './geopoint.js';
7
+ import { referenceEditor } from './reference.js';
8
+ import { bytesEditor } from './bytes.js';
9
+ import { mapEditor } from './map.js';
10
+ import { arrayEditor } from './array.js';
11
+ import { vectorEditor } from './vector.js';
12
+ /**
13
+ * Default registry. Covers every {@link FieldType}. Consumers extend
14
+ * or override by passing their own (partial) registry into
15
+ * `<DocumentPreview>` / `<FieldRenderer>` — the components merge
16
+ * overrides into these defaults so a consumer can swap just one
17
+ * editor without re-declaring the rest.
18
+ */
19
+ export const defaultFieldEditors = {
20
+ string: stringEditor,
21
+ number: numberEditor,
22
+ boolean: booleanEditor,
23
+ null: nullEditor,
24
+ timestamp: timestampEditor,
25
+ geopoint: geopointEditor,
26
+ reference: referenceEditor,
27
+ bytes: bytesEditor,
28
+ map: mapEditor,
29
+ array: arrayEditor,
30
+ vector: vectorEditor,
31
+ };
32
+ /**
33
+ * Merge a consumer-supplied registry over the defaults. `undefined`
34
+ * input returns the defaults as-is. Used internally by
35
+ * `<DocumentPreview>` so consumers don't have to spread manually.
36
+ */
37
+ export function mergeFieldEditors(override) {
38
+ if (!override)
39
+ return defaultFieldEditors;
40
+ return { ...defaultFieldEditors, ...override };
41
+ }
42
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAwB;IACtD,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,eAAe;IAC1B,QAAQ,EAAE,cAAc;IACxB,SAAS,EAAE,eAAe;IAC1B,KAAK,EAAE,WAAW;IAClB,GAAG,EAAE,SAAS;IACd,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;CACrB,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAyC;IAEzC,IAAI,CAAC,QAAQ;QAAE,OAAO,mBAAmB,CAAC;IAC1C,OAAO,EAAE,GAAG,mBAAmB,EAAE,GAAG,QAAQ,EAAE,CAAC;AACjD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FieldEditorContract } from './types.js';
2
+ export declare const stringEditor: FieldEditorContract<string>;
3
+ //# sourceMappingURL=string.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/string.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAqC,MAAM,YAAY,CAAC;AA4BzF,eAAO,MAAM,YAAY,EAAE,mBAAmB,CAAC,MAAM,CAIpD,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ function StringDisplay({ value, path }) {
3
+ return (_jsx("span", { "data-pyric-field-type": "string", "data-pyric-field-path": path, children: value }));
4
+ }
5
+ function StringEdit({ value, onChange, error, path }) {
6
+ return (_jsxs("label", { "data-pyric-field-type": "string", "data-pyric-field-path": path, "data-pyric-error": error ? '' : undefined, children: [_jsx("input", { type: "text", value: value, onChange: (e) => onChange(e.target.value), "aria-invalid": error ? 'true' : undefined }), error ? _jsx("span", { "data-pyric-error-message": true, children: error }) : null] }));
7
+ }
8
+ export const stringEditor = {
9
+ type: 'string',
10
+ Display: StringDisplay,
11
+ Edit: StringEdit,
12
+ };
13
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/string.tsx"],"names":[],"mappings":";AAEA,SAAS,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAA6B;IAC/D,OAAO,CACL,wCAA4B,QAAQ,2BAAwB,IAAI,YAC7D,KAAK,GACD,CACR,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAA0B;IAC1E,OAAO,CACL,0CACwB,QAAQ,2BACP,IAAI,sBACT,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,aAExC,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,kBAC3B,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GACxC,EACD,KAAK,CAAC,CAAC,CAAC,2DAAgC,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,IACvD,CACT,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAgC;IACvD,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,UAAU;CACjB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Timestamp } from 'pyric/firestore';
2
+ import type { FieldEditorContract } from './types.js';
3
+ export declare const timestampEditor: FieldEditorContract<Timestamp>;
4
+ //# sourceMappingURL=timestamp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timestamp.d.ts","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/timestamp.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAqC,MAAM,YAAY,CAAC;AAqEzF,eAAO,MAAM,eAAe,EAAE,mBAAmB,CAAC,SAAS,CAI1D,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Timestamp } from 'pyric/firestore';
3
+ /**
4
+ * Coerce a Timestamp value to a Date. Real instances use `.toDate()`; a value
5
+ * that crossed a worker / postMessage boundary arrives as a plain
6
+ * `{ seconds, nanoseconds }` (or `{ _seconds, _nanoseconds }`) and is rebuilt
7
+ * here, so the display + editor work in both in-process and served modes.
8
+ */
9
+ function coerceDate(value) {
10
+ if (value instanceof Timestamp)
11
+ return value.toDate();
12
+ const o = value;
13
+ const seconds = o ? (o.seconds ?? o._seconds) : undefined;
14
+ const nanoseconds = o ? (o.nanoseconds ?? o._nanoseconds ?? 0) : 0;
15
+ if (typeof seconds === 'number')
16
+ return new Date(seconds * 1000 + Math.floor(nanoseconds / 1e6));
17
+ return new Date(NaN);
18
+ }
19
+ function TimestampDisplay({ value, path }) {
20
+ const date = coerceDate(value);
21
+ const iso = Number.isNaN(date.getTime()) ? '' : date.toISOString();
22
+ return (_jsx("time", { dateTime: iso, "data-pyric-field-type": "timestamp", "data-pyric-field-path": path, children: iso }));
23
+ }
24
+ /**
25
+ * Native `<input type="datetime-local">` for editing. The element
26
+ * speaks local time (no zone offset); we convert to/from a UTC
27
+ * `Timestamp` at the boundary so the underlying value stays
28
+ * timezone-correct.
29
+ */
30
+ function TimestampEdit({ value, onChange, error, path }) {
31
+ // Convert the value to the `YYYY-MM-DDTHH:MM` shape <input
32
+ // datetime-local> wants. Seconds and millis aren't part of the
33
+ // native input precision; round-trips through this editor lose
34
+ // sub-minute resolution intentionally — consumers needing higher
35
+ // fidelity should swap the editor out via the registry.
36
+ const dt = coerceDate(value);
37
+ const local = new Date(dt.getTime() - dt.getTimezoneOffset() * 60_000);
38
+ const inputValue = Number.isNaN(local.getTime()) ? '' : local.toISOString().slice(0, 16);
39
+ return (_jsxs("label", { "data-pyric-field-type": "timestamp", "data-pyric-field-path": path, "data-pyric-error": error ? '' : undefined, children: [_jsx("input", { type: "datetime-local", value: inputValue, onChange: (e) => {
40
+ const next = e.target.value;
41
+ if (!next)
42
+ return;
43
+ const localDate = new Date(next);
44
+ onChange(Timestamp.fromDate(localDate));
45
+ }, "aria-invalid": error ? 'true' : undefined }), error ? _jsx("span", { "data-pyric-error-message": true, children: error }) : null] }));
46
+ }
47
+ export const timestampEditor = {
48
+ type: 'timestamp',
49
+ Display: TimestampDisplay,
50
+ Edit: TimestampEdit,
51
+ };
52
+ //# sourceMappingURL=timestamp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/timestamp.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C;;;;;GAKG;AACH,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,KAAK,YAAY,SAAS;QAAE,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;IACtD,MAAM,CAAC,GAAG,KAAsC,CAAC;IACjD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC;IACjG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAgC;IACrE,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACnE,OAAO,CACL,eACE,QAAQ,EAAE,GAAG,2BACS,WAAW,2BACV,IAAI,YAE1B,GAAG,GACC,CACR,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAA6B;IAChF,2DAA2D;IAC3D,+DAA+D;IAC/D,+DAA+D;IAC/D,iEAAiE;IACjE,wDAAwD;IACxD,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,GAAG,MAAM,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEzF,OAAO,CACL,0CACwB,WAAW,2BACV,IAAI,sBACT,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,aAExC,gBACE,IAAI,EAAC,gBAAgB,EACrB,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;oBACd,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC5B,IAAI,CAAC,IAAI;wBAAE,OAAO;oBAClB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC1C,CAAC,kBACa,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GACxC,EACD,KAAK,CAAC,CAAC,CAAC,2DAAgC,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,IACvD,CACT,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAmC;IAC7D,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,gBAAgB;IACzB,IAAI,EAAE,aAAa;CACpB,CAAC"}
@@ -0,0 +1,64 @@
1
+ import type { ComponentType } from 'react';
2
+ import type { FieldType } from '../types.js';
3
+ export interface FieldDisplayProps<V = unknown> {
4
+ /** Value to display. The component's `V` generic narrows this. */
5
+ value: V;
6
+ /** Dotted/bracketed path from the document root, e.g. `users.alice`
7
+ * or `tags[0]`. Forwarded so consumer styles can target nested
8
+ * positions via `[data-field-path="users.alice"]`. */
9
+ path?: string;
10
+ /** Recursive editors (Map, Array) need the registry to dispatch
11
+ * on their children. Leaf editors (String, Number, …) can ignore
12
+ * this prop. Required-but-optional because the consumer of the
13
+ * component (`<FieldRenderer>`, `<DocumentPreview>`) always
14
+ * threads it through. */
15
+ fieldEditors?: FieldEditorRegistry;
16
+ }
17
+ /**
18
+ * Props passed to a per-type `Edit` component. The leaf editors
19
+ * (string, number, …) consume this directly. Map/array editing is
20
+ * handled by the `<DocumentEditor>` compound component itself, not
21
+ * by individual editors — Firestore's container shapes are special
22
+ * enough that pushing them through the registry costs more than
23
+ * it's worth.
24
+ */
25
+ export interface FieldEditProps<V = unknown> {
26
+ /** Current value. */
27
+ value: V;
28
+ /** Commit a new value. The hook wires this to the reducer's
29
+ * `setValue` action. */
30
+ onChange: (next: V) => void;
31
+ /** Validation error attached by the reducer. Editors render it
32
+ * inline alongside the input. */
33
+ error?: string;
34
+ /** Dotted/bracketed path from the document root. */
35
+ path?: string;
36
+ }
37
+ /**
38
+ * Contract for one Firestore value type. `Display` (read-mode) is
39
+ * required; `Edit` + `validate` + `defaultValue` are required for
40
+ * leaf types that participate in M3's editor. Map/array contracts
41
+ * supply only `Display` — their edit affordances come from the
42
+ * `<DocumentEditor>` compound component.
43
+ */
44
+ export interface FieldEditorContract<V = unknown> {
45
+ type: FieldType;
46
+ Display: ComponentType<FieldDisplayProps<V>>;
47
+ Edit?: ComponentType<FieldEditProps<V>>;
48
+ }
49
+ /**
50
+ * Map of field-type to editor contract. `Partial<…>` so consumers
51
+ * can override one type without re-supplying the rest — the merge
52
+ * happens at the `<DocumentPreview>` boundary.
53
+ *
54
+ * The stored value type is `FieldEditorContract<any>` rather than
55
+ * `FieldEditorContract<unknown>` because each per-type contract
56
+ * narrows its generic (e.g., `FieldEditorContract<Timestamp>` for
57
+ * timestamp) and TypeScript's `ComponentType` is invariant in
58
+ * props. `any` at the registry layer means the type-safety lives
59
+ * at the per-contract definition site, not in the dispatch map.
60
+ * `FieldRenderer` narrows back from `unknown` -> the right contract
61
+ * via `inferType` at dispatch time.
62
+ */
63
+ export type FieldEditorRegistry = Partial<Record<FieldType, FieldEditorContract<any>>>;
64
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,OAAO;IAC5C,kEAAkE;IAClE,KAAK,EAAE,CAAC,CAAC;IACT;;2DAEuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;8BAI0B;IAC1B,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IACzC,qBAAqB;IACrB,KAAK,EAAE,CAAC,CAAC;IACT;6BACyB;IACzB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC5B;sCACkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,OAAO;IAC9C,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;CACzC;AAED;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import { type VectorView } from '../types.js';
2
+ import type { FieldEditorContract } from './types.js';
3
+ /**
4
+ * Result of parsing the raw-replace textarea. `ok` carries the new
5
+ * wire-sentinel value to commit; otherwise `error` is a human message.
6
+ * Exported (and pure) so the parse/validation contract is unit-testable
7
+ * without the JSDOM text-input event path, which is broken under this
8
+ * repo's bun:test + JSDOM setup (see DocumentEditor.test.tsx note).
9
+ */
10
+ export type ParsedVectorInput = {
11
+ ok: true;
12
+ value: {
13
+ __type__: '__vector__';
14
+ value: number[];
15
+ };
16
+ } | {
17
+ ok: false;
18
+ error: string;
19
+ };
20
+ /**
21
+ * Parse the textarea contents into a wire-sentinel vector, or an error.
22
+ * Accepts only a JSON array of numbers — the whole-value replace
23
+ * contract. Anything else (bad JSON, non-array, non-numeric element)
24
+ * is rejected and the previous value is kept by the caller.
25
+ */
26
+ export declare function parseVectorInput(text: string): ParsedVectorInput;
27
+ export declare const vectorEditor: FieldEditorContract<unknown>;
28
+ export type { VectorView };
29
+ //# sourceMappingURL=vector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../../src/firestore/fieldEditors/vector.tsx"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAqC,MAAM,YAAY,CAAC;AA+CzF;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,GAChE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjC;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAWhE;AA0DD,eAAO,MAAM,YAAY,EAAE,mBAAmB,CAAC,OAAO,CAIrD,CAAC;AAEF,YAAY,EAAE,UAAU,EAAE,CAAC"}