@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.
- package/LICENSE +216 -0
- package/README.md +79 -0
- package/dist/agents/ContextWindowUsage.d.ts +67 -0
- package/dist/agents/ContextWindowUsage.d.ts.map +1 -0
- package/dist/agents/ContextWindowUsage.js +115 -0
- package/dist/agents/ContextWindowUsage.js.map +1 -0
- package/dist/agents/EmptyState.d.ts +18 -0
- package/dist/agents/EmptyState.d.ts.map +1 -0
- package/dist/agents/EmptyState.js +11 -0
- package/dist/agents/EmptyState.js.map +1 -0
- package/dist/agents/Fold.d.ts +37 -0
- package/dist/agents/Fold.d.ts.map +1 -0
- package/dist/agents/Fold.js +18 -0
- package/dist/agents/Fold.js.map +1 -0
- package/dist/agents/Modal.d.ts +25 -0
- package/dist/agents/Modal.d.ts.map +1 -0
- package/dist/agents/Modal.js +28 -0
- package/dist/agents/Modal.js.map +1 -0
- package/dist/agents/PulsingDot.d.ts +21 -0
- package/dist/agents/PulsingDot.d.ts.map +1 -0
- package/dist/agents/PulsingDot.js +18 -0
- package/dist/agents/PulsingDot.js.map +1 -0
- package/dist/agents/index.d.ts +15 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +15 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/auth/authApi.d.ts +32 -0
- package/dist/auth/authApi.d.ts.map +1 -0
- package/dist/auth/authApi.js +27 -0
- package/dist/auth/authApi.js.map +1 -0
- package/dist/auth/claims.d.ts +27 -0
- package/dist/auth/claims.d.ts.map +1 -0
- package/dist/auth/claims.js +58 -0
- package/dist/auth/claims.js.map +1 -0
- package/dist/auth/components/AuthProviderToggles.d.ts +31 -0
- package/dist/auth/components/AuthProviderToggles.d.ts.map +1 -0
- package/dist/auth/components/AuthProviderToggles.js +48 -0
- package/dist/auth/components/AuthProviderToggles.js.map +1 -0
- package/dist/auth/components/AuthSignInHelper.d.ts +57 -0
- package/dist/auth/components/AuthSignInHelper.d.ts.map +1 -0
- package/dist/auth/components/AuthSignInHelper.js +69 -0
- package/dist/auth/components/AuthSignInHelper.js.map +1 -0
- package/dist/auth/components/AuthUserForm.d.ts +84 -0
- package/dist/auth/components/AuthUserForm.d.ts.map +1 -0
- package/dist/auth/components/AuthUserForm.js +89 -0
- package/dist/auth/components/AuthUserForm.js.map +1 -0
- package/dist/auth/components/AuthUserList.d.ts +62 -0
- package/dist/auth/components/AuthUserList.d.ts.map +1 -0
- package/dist/auth/components/AuthUserList.js +46 -0
- package/dist/auth/components/AuthUserList.js.map +1 -0
- package/dist/auth/components/ClaimsField.d.ts +22 -0
- package/dist/auth/components/ClaimsField.d.ts.map +1 -0
- package/dist/auth/components/ClaimsField.js +11 -0
- package/dist/auth/components/ClaimsField.js.map +1 -0
- package/dist/auth/components/confirmActions.d.ts +40 -0
- package/dist/auth/components/confirmActions.d.ts.map +1 -0
- package/dist/auth/components/confirmActions.js +49 -0
- package/dist/auth/components/confirmActions.js.map +1 -0
- package/dist/auth/controller.d.ts +73 -0
- package/dist/auth/controller.d.ts.map +1 -0
- package/dist/auth/controller.js +139 -0
- package/dist/auth/controller.js.map +1 -0
- package/dist/auth/hooks/index.d.ts +7 -0
- package/dist/auth/hooks/index.d.ts.map +1 -0
- package/dist/auth/hooks/index.js +7 -0
- package/dist/auth/hooks/index.js.map +1 -0
- package/dist/auth/hooks/useAuthFlowHelper.d.ts +30 -0
- package/dist/auth/hooks/useAuthFlowHelper.d.ts.map +1 -0
- package/dist/auth/hooks/useAuthFlowHelper.js +30 -0
- package/dist/auth/hooks/useAuthFlowHelper.js.map +1 -0
- package/dist/auth/hooks/useAuthProviderConfig.d.ts +37 -0
- package/dist/auth/hooks/useAuthProviderConfig.d.ts.map +1 -0
- package/dist/auth/hooks/useAuthProviderConfig.js +98 -0
- package/dist/auth/hooks/useAuthProviderConfig.js.map +1 -0
- package/dist/auth/hooks/useAuthUserEditor.d.ts +30 -0
- package/dist/auth/hooks/useAuthUserEditor.d.ts.map +1 -0
- package/dist/auth/hooks/useAuthUserEditor.js +27 -0
- package/dist/auth/hooks/useAuthUserEditor.js.map +1 -0
- package/dist/auth/hooks/useAuthUsers.d.ts +38 -0
- package/dist/auth/hooks/useAuthUsers.d.ts.map +1 -0
- package/dist/auth/hooks/useAuthUsers.js +111 -0
- package/dist/auth/hooks/useAuthUsers.js.map +1 -0
- package/dist/auth/index.d.ts +11 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +13 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/providers.d.ts +11 -0
- package/dist/auth/providers.d.ts.map +1 -0
- package/dist/auth/providers.js +28 -0
- package/dist/auth/providers.js.map +1 -0
- package/dist/auth/reducers/userEditor.d.ts +55 -0
- package/dist/auth/reducers/userEditor.d.ts.map +1 -0
- package/dist/auth/reducers/userEditor.js +136 -0
- package/dist/auth/reducers/userEditor.js.map +1 -0
- package/dist/events/components/ActivityActionItems.d.ts +45 -0
- package/dist/events/components/ActivityActionItems.d.ts.map +1 -0
- package/dist/events/components/ActivityActionItems.js +68 -0
- package/dist/events/components/ActivityActionItems.js.map +1 -0
- package/dist/events/components/ActivityGrid.d.ts +65 -0
- package/dist/events/components/ActivityGrid.d.ts.map +1 -0
- package/dist/events/components/ActivityGrid.js +61 -0
- package/dist/events/components/ActivityGrid.js.map +1 -0
- package/dist/events/components/ActivityGridRow.d.ts +31 -0
- package/dist/events/components/ActivityGridRow.d.ts.map +1 -0
- package/dist/events/components/ActivityGridRow.js +23 -0
- package/dist/events/components/ActivityGridRow.js.map +1 -0
- package/dist/events/components/ProposedChangeDiff.d.ts +46 -0
- package/dist/events/components/ProposedChangeDiff.d.ts.map +1 -0
- package/dist/events/components/ProposedChangeDiff.js +60 -0
- package/dist/events/components/ProposedChangeDiff.js.map +1 -0
- package/dist/events/components/format.d.ts +11 -0
- package/dist/events/components/format.d.ts.map +1 -0
- package/dist/events/components/format.js +26 -0
- package/dist/events/components/format.js.map +1 -0
- package/dist/events/components/index.d.ts +6 -0
- package/dist/events/components/index.d.ts.map +1 -0
- package/dist/events/components/index.js +6 -0
- package/dist/events/components/index.js.map +1 -0
- package/dist/events/digest.d.ts +167 -0
- package/dist/events/digest.d.ts.map +1 -0
- package/dist/events/digest.js +426 -0
- package/dist/events/digest.js.map +1 -0
- package/dist/events/hooks/index.d.ts +3 -0
- package/dist/events/hooks/index.d.ts.map +1 -0
- package/dist/events/hooks/index.js +3 -0
- package/dist/events/hooks/index.js.map +1 -0
- package/dist/events/hooks/useActivityDigest.d.ts +27 -0
- package/dist/events/hooks/useActivityDigest.d.ts.map +1 -0
- package/dist/events/hooks/useActivityDigest.js +18 -0
- package/dist/events/hooks/useActivityDigest.js.map +1 -0
- package/dist/events/hooks/useActivityStream.d.ts +44 -0
- package/dist/events/hooks/useActivityStream.d.ts.map +1 -0
- package/dist/events/hooks/useActivityStream.js +38 -0
- package/dist/events/hooks/useActivityStream.js.map +1 -0
- package/dist/events/index.d.ts +15 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +14 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/types.d.ts +160 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +21 -0
- package/dist/events/types.js.map +1 -0
- package/dist/firestore/components/CollectionList.d.ts +22 -0
- package/dist/firestore/components/CollectionList.d.ts.map +1 -0
- package/dist/firestore/components/CollectionList.js +21 -0
- package/dist/firestore/components/CollectionList.js.map +1 -0
- package/dist/firestore/components/DeleteWithConfirm.d.ts +38 -0
- package/dist/firestore/components/DeleteWithConfirm.d.ts.map +1 -0
- package/dist/firestore/components/DeleteWithConfirm.js +33 -0
- package/dist/firestore/components/DeleteWithConfirm.js.map +1 -0
- package/dist/firestore/components/DocumentEditor.d.ts +47 -0
- package/dist/firestore/components/DocumentEditor.d.ts.map +1 -0
- package/dist/firestore/components/DocumentEditor.js +176 -0
- package/dist/firestore/components/DocumentEditor.js.map +1 -0
- package/dist/firestore/components/DocumentList.d.ts +63 -0
- package/dist/firestore/components/DocumentList.d.ts.map +1 -0
- package/dist/firestore/components/DocumentList.js +53 -0
- package/dist/firestore/components/DocumentList.js.map +1 -0
- package/dist/firestore/components/DocumentPreview.d.ts +68 -0
- package/dist/firestore/components/DocumentPreview.d.ts.map +1 -0
- package/dist/firestore/components/DocumentPreview.js +76 -0
- package/dist/firestore/components/DocumentPreview.js.map +1 -0
- package/dist/firestore/components/FieldRenderer.d.ts +17 -0
- package/dist/firestore/components/FieldRenderer.d.ts.map +1 -0
- package/dist/firestore/components/FieldRenderer.js +16 -0
- package/dist/firestore/components/FieldRenderer.js.map +1 -0
- package/dist/firestore/components/QueryBuilder.d.ts +25 -0
- package/dist/firestore/components/QueryBuilder.d.ts.map +1 -0
- package/dist/firestore/components/QueryBuilder.js +78 -0
- package/dist/firestore/components/QueryBuilder.js.map +1 -0
- package/dist/firestore/components/ReferencePicker.d.ts +33 -0
- package/dist/firestore/components/ReferencePicker.d.ts.map +1 -0
- package/dist/firestore/components/ReferencePicker.js +42 -0
- package/dist/firestore/components/ReferencePicker.js.map +1 -0
- package/dist/firestore/components/TreeEntry.d.ts +15 -0
- package/dist/firestore/components/TreeEntry.d.ts.map +1 -0
- package/dist/firestore/components/TreeEntry.js +23 -0
- package/dist/firestore/components/TreeEntry.js.map +1 -0
- package/dist/firestore/components/context.d.ts +18 -0
- package/dist/firestore/components/context.d.ts.map +1 -0
- package/dist/firestore/components/context.js +7 -0
- package/dist/firestore/components/context.js.map +1 -0
- package/dist/firestore/fieldEditors/array.d.ts +3 -0
- package/dist/firestore/fieldEditors/array.d.ts.map +1 -0
- package/dist/firestore/fieldEditors/array.js +16 -0
- package/dist/firestore/fieldEditors/array.js.map +1 -0
- package/dist/firestore/fieldEditors/boolean.d.ts +3 -0
- package/dist/firestore/fieldEditors/boolean.d.ts.map +1 -0
- package/dist/firestore/fieldEditors/boolean.js +13 -0
- package/dist/firestore/fieldEditors/boolean.js.map +1 -0
- package/dist/firestore/fieldEditors/bytes.d.ts +4 -0
- package/dist/firestore/fieldEditors/bytes.d.ts.map +1 -0
- package/dist/firestore/fieldEditors/bytes.js +31 -0
- package/dist/firestore/fieldEditors/bytes.js.map +1 -0
- package/dist/firestore/fieldEditors/geopoint.d.ts +4 -0
- package/dist/firestore/fieldEditors/geopoint.d.ts.map +1 -0
- package/dist/firestore/fieldEditors/geopoint.js +32 -0
- package/dist/firestore/fieldEditors/geopoint.js.map +1 -0
- package/dist/firestore/fieldEditors/map.d.ts +3 -0
- package/dist/firestore/fieldEditors/map.d.ts.map +1 -0
- package/dist/firestore/fieldEditors/map.js +19 -0
- package/dist/firestore/fieldEditors/map.js.map +1 -0
- package/dist/firestore/fieldEditors/null.d.ts +3 -0
- package/dist/firestore/fieldEditors/null.d.ts.map +1 -0
- package/dist/firestore/fieldEditors/null.js +17 -0
- package/dist/firestore/fieldEditors/null.js.map +1 -0
- package/dist/firestore/fieldEditors/number.d.ts +3 -0
- package/dist/firestore/fieldEditors/number.d.ts.map +1 -0
- package/dist/firestore/fieldEditors/number.js +24 -0
- package/dist/firestore/fieldEditors/number.js.map +1 -0
- package/dist/firestore/fieldEditors/reference.d.ts +4 -0
- package/dist/firestore/fieldEditors/reference.d.ts.map +1 -0
- package/dist/firestore/fieldEditors/reference.js +49 -0
- package/dist/firestore/fieldEditors/reference.js.map +1 -0
- package/dist/firestore/fieldEditors/registry.d.ts +16 -0
- package/dist/firestore/fieldEditors/registry.d.ts.map +1 -0
- package/dist/firestore/fieldEditors/registry.js +42 -0
- package/dist/firestore/fieldEditors/registry.js.map +1 -0
- package/dist/firestore/fieldEditors/string.d.ts +3 -0
- package/dist/firestore/fieldEditors/string.d.ts.map +1 -0
- package/dist/firestore/fieldEditors/string.js +13 -0
- package/dist/firestore/fieldEditors/string.js.map +1 -0
- package/dist/firestore/fieldEditors/timestamp.d.ts +4 -0
- package/dist/firestore/fieldEditors/timestamp.d.ts.map +1 -0
- package/dist/firestore/fieldEditors/timestamp.js +52 -0
- package/dist/firestore/fieldEditors/timestamp.js.map +1 -0
- package/dist/firestore/fieldEditors/types.d.ts +64 -0
- package/dist/firestore/fieldEditors/types.d.ts.map +1 -0
- package/dist/firestore/fieldEditors/types.js +2 -0
- package/dist/firestore/fieldEditors/types.js.map +1 -0
- package/dist/firestore/fieldEditors/vector.d.ts +29 -0
- package/dist/firestore/fieldEditors/vector.d.ts.map +1 -0
- package/dist/firestore/fieldEditors/vector.js +93 -0
- package/dist/firestore/fieldEditors/vector.js.map +1 -0
- package/dist/firestore/firestoreApi.d.ts +35 -0
- package/dist/firestore/firestoreApi.d.ts.map +1 -0
- package/dist/firestore/firestoreApi.js +29 -0
- package/dist/firestore/firestoreApi.js.map +1 -0
- package/dist/firestore/hooks/coerceError.d.ts +17 -0
- package/dist/firestore/hooks/coerceError.d.ts.map +1 -0
- package/dist/firestore/hooks/coerceError.js +41 -0
- package/dist/firestore/hooks/coerceError.js.map +1 -0
- package/dist/firestore/hooks/index.d.ts +10 -0
- package/dist/firestore/hooks/index.d.ts.map +1 -0
- package/dist/firestore/hooks/index.js +10 -0
- package/dist/firestore/hooks/index.js.map +1 -0
- package/dist/firestore/hooks/useCollectionList.d.ts +37 -0
- package/dist/firestore/hooks/useCollectionList.d.ts.map +1 -0
- package/dist/firestore/hooks/useCollectionList.js +51 -0
- package/dist/firestore/hooks/useCollectionList.js.map +1 -0
- package/dist/firestore/hooks/useDocumentEditor.d.ts +61 -0
- package/dist/firestore/hooks/useDocumentEditor.d.ts.map +1 -0
- package/dist/firestore/hooks/useDocumentEditor.js +71 -0
- package/dist/firestore/hooks/useDocumentEditor.js.map +1 -0
- package/dist/firestore/hooks/useDocumentList.d.ts +50 -0
- package/dist/firestore/hooks/useDocumentList.d.ts.map +1 -0
- package/dist/firestore/hooks/useDocumentList.js +162 -0
- package/dist/firestore/hooks/useDocumentList.js.map +1 -0
- package/dist/firestore/hooks/useDocumentSubcollections.d.ts +29 -0
- package/dist/firestore/hooks/useDocumentSubcollections.d.ts.map +1 -0
- package/dist/firestore/hooks/useDocumentSubcollections.js +48 -0
- package/dist/firestore/hooks/useDocumentSubcollections.js.map +1 -0
- package/dist/firestore/hooks/useFirestoreCollection.d.ts +14 -0
- package/dist/firestore/hooks/useFirestoreCollection.d.ts.map +1 -0
- package/dist/firestore/hooks/useFirestoreCollection.js +36 -0
- package/dist/firestore/hooks/useFirestoreCollection.js.map +1 -0
- package/dist/firestore/hooks/useFirestoreDoc.d.ts +17 -0
- package/dist/firestore/hooks/useFirestoreDoc.d.ts.map +1 -0
- package/dist/firestore/hooks/useFirestoreDoc.js +35 -0
- package/dist/firestore/hooks/useFirestoreDoc.js.map +1 -0
- package/dist/firestore/hooks/useQueryBuilder.d.ts +51 -0
- package/dist/firestore/hooks/useQueryBuilder.d.ts.map +1 -0
- package/dist/firestore/hooks/useQueryBuilder.js +110 -0
- package/dist/firestore/hooks/useQueryBuilder.js.map +1 -0
- package/dist/firestore/hooks/useRecursiveDelete.d.ts +40 -0
- package/dist/firestore/hooks/useRecursiveDelete.d.ts.map +1 -0
- package/dist/firestore/hooks/useRecursiveDelete.js +44 -0
- package/dist/firestore/hooks/useRecursiveDelete.js.map +1 -0
- package/dist/firestore/hooks/useReferencePicker.d.ts +70 -0
- package/dist/firestore/hooks/useReferencePicker.d.ts.map +1 -0
- package/dist/firestore/hooks/useReferencePicker.js +140 -0
- package/dist/firestore/hooks/useReferencePicker.js.map +1 -0
- package/dist/firestore/import/parseImport.d.ts +55 -0
- package/dist/firestore/import/parseImport.d.ts.map +1 -0
- package/dist/firestore/import/parseImport.js +101 -0
- package/dist/firestore/import/parseImport.js.map +1 -0
- package/dist/firestore/index.d.ts +21 -0
- package/dist/firestore/index.d.ts.map +1 -0
- package/dist/firestore/index.js +29 -0
- package/dist/firestore/index.js.map +1 -0
- package/dist/firestore/reducers/defaults.d.ts +10 -0
- package/dist/firestore/reducers/defaults.d.ts.map +1 -0
- package/dist/firestore/reducers/defaults.js +37 -0
- package/dist/firestore/reducers/defaults.js.map +1 -0
- package/dist/firestore/reducers/documentEditor.d.ts +23 -0
- package/dist/firestore/reducers/documentEditor.d.ts.map +1 -0
- package/dist/firestore/reducers/documentEditor.js +201 -0
- package/dist/firestore/reducers/documentEditor.js.map +1 -0
- package/dist/firestore/reducers/tree.d.ts +28 -0
- package/dist/firestore/reducers/tree.d.ts.map +1 -0
- package/dist/firestore/reducers/tree.js +129 -0
- package/dist/firestore/reducers/tree.js.map +1 -0
- package/dist/firestore/reducers/types.d.ts +115 -0
- package/dist/firestore/reducers/types.d.ts.map +1 -0
- package/dist/firestore/reducers/types.js +2 -0
- package/dist/firestore/reducers/types.js.map +1 -0
- package/dist/firestore/reducers/validation.d.ts +25 -0
- package/dist/firestore/reducers/validation.d.ts.map +1 -0
- package/dist/firestore/reducers/validation.js +121 -0
- package/dist/firestore/reducers/validation.js.map +1 -0
- package/dist/firestore/types.d.ts +77 -0
- package/dist/firestore/types.d.ts.map +1 -0
- package/dist/firestore/types.js +196 -0
- package/dist/firestore/types.js.map +1 -0
- package/dist/firestore/validation/ids.d.ts +23 -0
- package/dist/firestore/validation/ids.d.ts.map +1 -0
- package/dist/firestore/validation/ids.js +46 -0
- package/dist/firestore/validation/ids.js.map +1 -0
- package/dist/firestore/valueEquality.d.ts +4 -0
- package/dist/firestore/valueEquality.d.ts.map +1 -0
- package/dist/firestore/valueEquality.js +44 -0
- package/dist/firestore/valueEquality.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/primitives/Badge.d.ts +28 -0
- package/dist/primitives/Badge.d.ts.map +1 -0
- package/dist/primitives/Badge.js +11 -0
- package/dist/primitives/Badge.js.map +1 -0
- package/dist/primitives/ConfirmDialog.d.ts +42 -0
- package/dist/primitives/ConfirmDialog.d.ts.map +1 -0
- package/dist/primitives/ConfirmDialog.js +61 -0
- package/dist/primitives/ConfirmDialog.js.map +1 -0
- package/dist/primitives/CopyButton.d.ts +28 -0
- package/dist/primitives/CopyButton.d.ts.map +1 -0
- package/dist/primitives/CopyButton.js +27 -0
- package/dist/primitives/CopyButton.js.map +1 -0
- package/dist/primitives/JsonView.d.ts +29 -0
- package/dist/primitives/JsonView.d.ts.map +1 -0
- package/dist/primitives/JsonView.js +56 -0
- package/dist/primitives/JsonView.js.map +1 -0
- package/dist/primitives/SegmentedControl.d.ts +37 -0
- package/dist/primitives/SegmentedControl.d.ts.map +1 -0
- package/dist/primitives/SegmentedControl.js +18 -0
- package/dist/primitives/SegmentedControl.js.map +1 -0
- package/dist/primitives/Toast.d.ts +48 -0
- package/dist/primitives/Toast.d.ts.map +1 -0
- package/dist/primitives/Toast.js +60 -0
- package/dist/primitives/Toast.js.map +1 -0
- package/dist/primitives/VirtualList.d.ts +37 -0
- package/dist/primitives/VirtualList.d.ts.map +1 -0
- package/dist/primitives/VirtualList.js +47 -0
- package/dist/primitives/VirtualList.js.map +1 -0
- package/dist/primitives/hooks/useContainerSize.d.ts +29 -0
- package/dist/primitives/hooks/useContainerSize.d.ts.map +1 -0
- package/dist/primitives/hooks/useContainerSize.js +45 -0
- package/dist/primitives/hooks/useContainerSize.js.map +1 -0
- package/dist/primitives/hooks/useUpdateHighlights.d.ts +18 -0
- package/dist/primitives/hooks/useUpdateHighlights.d.ts.map +1 -0
- package/dist/primitives/hooks/useUpdateHighlights.js +84 -0
- package/dist/primitives/hooks/useUpdateHighlights.js.map +1 -0
- package/dist/primitives/index.d.ts +11 -0
- package/dist/primitives/index.d.ts.map +1 -0
- package/dist/primitives/index.js +11 -0
- package/dist/primitives/index.js.map +1 -0
- package/dist/primitives/useConfirm.d.ts +34 -0
- package/dist/primitives/useConfirm.d.ts.map +1 -0
- package/dist/primitives/useConfirm.js +63 -0
- package/dist/primitives/useConfirm.js.map +1 -0
- package/dist/rtdb/components/RtdbPathBar.d.ts +31 -0
- package/dist/rtdb/components/RtdbPathBar.d.ts.map +1 -0
- package/dist/rtdb/components/RtdbPathBar.js +47 -0
- package/dist/rtdb/components/RtdbPathBar.js.map +1 -0
- package/dist/rtdb/components/RtdbTree.d.ts +38 -0
- package/dist/rtdb/components/RtdbTree.d.ts.map +1 -0
- package/dist/rtdb/components/RtdbTree.js +104 -0
- package/dist/rtdb/components/RtdbTree.js.map +1 -0
- package/dist/rtdb/editor.d.ts +25 -0
- package/dist/rtdb/editor.d.ts.map +1 -0
- package/dist/rtdb/editor.js +79 -0
- package/dist/rtdb/editor.js.map +1 -0
- package/dist/rtdb/hooks/useRtdbTree.d.ts +33 -0
- package/dist/rtdb/hooks/useRtdbTree.d.ts.map +1 -0
- package/dist/rtdb/hooks/useRtdbTree.js +67 -0
- package/dist/rtdb/hooks/useRtdbTree.js.map +1 -0
- package/dist/rtdb/index.d.ts +17 -0
- package/dist/rtdb/index.d.ts.map +1 -0
- package/dist/rtdb/index.js +21 -0
- package/dist/rtdb/index.js.map +1 -0
- package/dist/rtdb/pathInput.d.ts +28 -0
- package/dist/rtdb/pathInput.d.ts.map +1 -0
- package/dist/rtdb/pathInput.js +40 -0
- package/dist/rtdb/pathInput.js.map +1 -0
- package/dist/rtdb/reducers/tree.d.ts +86 -0
- package/dist/rtdb/reducers/tree.d.ts.map +1 -0
- package/dist/rtdb/reducers/tree.js +131 -0
- package/dist/rtdb/reducers/tree.js.map +1 -0
- package/dist/rtdb/rtdbApi.d.ts +20 -0
- package/dist/rtdb/rtdbApi.d.ts.map +1 -0
- package/dist/rtdb/rtdbApi.js +2 -0
- package/dist/rtdb/rtdbApi.js.map +1 -0
- package/dist/rtdb/values.d.ts +50 -0
- package/dist/rtdb/values.d.ts.map +1 -0
- package/dist/rtdb/values.js +186 -0
- package/dist/rtdb/values.js.map +1 -0
- package/dist/rules/components/DenialInspector.d.ts +18 -0
- package/dist/rules/components/DenialInspector.d.ts.map +1 -0
- package/dist/rules/components/DenialInspector.js +58 -0
- package/dist/rules/components/DenialInspector.js.map +1 -0
- package/dist/rules/components/format.d.ts +56 -0
- package/dist/rules/components/format.d.ts.map +1 -0
- package/dist/rules/components/format.js +137 -0
- package/dist/rules/components/format.js.map +1 -0
- package/dist/rules/components/index.d.ts +4 -0
- package/dist/rules/components/index.d.ts.map +1 -0
- package/dist/rules/components/index.js +4 -0
- package/dist/rules/components/index.js.map +1 -0
- package/dist/rules/components/scope.d.ts +10 -0
- package/dist/rules/components/scope.d.ts.map +1 -0
- package/dist/rules/components/scope.js +72 -0
- package/dist/rules/components/scope.js.map +1 -0
- package/dist/rules/hooks/index.d.ts +2 -0
- package/dist/rules/hooks/index.d.ts.map +1 -0
- package/dist/rules/hooks/index.js +2 -0
- package/dist/rules/hooks/index.js.map +1 -0
- package/dist/rules/hooks/useDenialTrace.d.ts +51 -0
- package/dist/rules/hooks/useDenialTrace.d.ts.map +1 -0
- package/dist/rules/hooks/useDenialTrace.js +58 -0
- package/dist/rules/hooks/useDenialTrace.js.map +1 -0
- package/dist/rules/index.d.ts +14 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +13 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/types.d.ts +75 -0
- package/dist/rules/types.d.ts.map +1 -0
- package/dist/rules/types.js +2 -0
- package/dist/rules/types.js.map +1 -0
- package/dist/storage/collisionRename.d.ts +73 -0
- package/dist/storage/collisionRename.d.ts.map +1 -0
- package/dist/storage/collisionRename.js +113 -0
- package/dist/storage/collisionRename.js.map +1 -0
- package/dist/storage/components/DeleteSelectionWithConfirm.d.ts +66 -0
- package/dist/storage/components/DeleteSelectionWithConfirm.d.ts.map +1 -0
- package/dist/storage/components/DeleteSelectionWithConfirm.js +82 -0
- package/dist/storage/components/DeleteSelectionWithConfirm.js.map +1 -0
- package/dist/storage/components/ObjectBrowser.d.ts +78 -0
- package/dist/storage/components/ObjectBrowser.d.ts.map +1 -0
- package/dist/storage/components/ObjectBrowser.js +60 -0
- package/dist/storage/components/ObjectBrowser.js.map +1 -0
- package/dist/storage/components/ObjectInspector.d.ts +43 -0
- package/dist/storage/components/ObjectInspector.d.ts.map +1 -0
- package/dist/storage/components/ObjectInspector.js +92 -0
- package/dist/storage/components/ObjectInspector.js.map +1 -0
- package/dist/storage/components/PathBreadcrumb.d.ts +30 -0
- package/dist/storage/components/PathBreadcrumb.d.ts.map +1 -0
- package/dist/storage/components/PathBreadcrumb.js +26 -0
- package/dist/storage/components/PathBreadcrumb.js.map +1 -0
- package/dist/storage/components/UploadDropzone.d.ts +50 -0
- package/dist/storage/components/UploadDropzone.d.ts.map +1 -0
- package/dist/storage/components/UploadDropzone.js +109 -0
- package/dist/storage/components/UploadDropzone.js.map +1 -0
- package/dist/storage/folderPlaceholder.d.ts +20 -0
- package/dist/storage/folderPlaceholder.d.ts.map +1 -0
- package/dist/storage/folderPlaceholder.js +34 -0
- package/dist/storage/folderPlaceholder.js.map +1 -0
- package/dist/storage/hooks/index.d.ts +9 -0
- package/dist/storage/hooks/index.d.ts.map +1 -0
- package/dist/storage/hooks/index.js +9 -0
- package/dist/storage/hooks/index.js.map +1 -0
- package/dist/storage/hooks/useMetadataEditor.d.ts +114 -0
- package/dist/storage/hooks/useMetadataEditor.d.ts.map +1 -0
- package/dist/storage/hooks/useMetadataEditor.js +193 -0
- package/dist/storage/hooks/useMetadataEditor.js.map +1 -0
- package/dist/storage/hooks/useObjectUpload.d.ts +105 -0
- package/dist/storage/hooks/useObjectUpload.d.ts.map +1 -0
- package/dist/storage/hooks/useObjectUpload.js +134 -0
- package/dist/storage/hooks/useObjectUpload.js.map +1 -0
- package/dist/storage/hooks/usePathState.d.ts +43 -0
- package/dist/storage/hooks/usePathState.d.ts.map +1 -0
- package/dist/storage/hooks/usePathState.js +42 -0
- package/dist/storage/hooks/usePathState.js.map +1 -0
- package/dist/storage/hooks/useStorageDelete.d.ts +74 -0
- package/dist/storage/hooks/useStorageDelete.d.ts.map +1 -0
- package/dist/storage/hooks/useStorageDelete.js +120 -0
- package/dist/storage/hooks/useStorageDelete.js.map +1 -0
- package/dist/storage/hooks/useStorageList.d.ts +72 -0
- package/dist/storage/hooks/useStorageList.d.ts.map +1 -0
- package/dist/storage/hooks/useStorageList.js +164 -0
- package/dist/storage/hooks/useStorageList.js.map +1 -0
- package/dist/storage/hooks/useStorageObject.d.ts +33 -0
- package/dist/storage/hooks/useStorageObject.d.ts.map +1 -0
- package/dist/storage/hooks/useStorageObject.js +114 -0
- package/dist/storage/hooks/useStorageObject.js.map +1 -0
- package/dist/storage/hooks/useStorageRulesGate.d.ts +116 -0
- package/dist/storage/hooks/useStorageRulesGate.d.ts.map +1 -0
- package/dist/storage/hooks/useStorageRulesGate.js +150 -0
- package/dist/storage/hooks/useStorageRulesGate.js.map +1 -0
- package/dist/storage/hooks/useStorageSelection.d.ts +32 -0
- package/dist/storage/hooks/useStorageSelection.d.ts.map +1 -0
- package/dist/storage/hooks/useStorageSelection.js +55 -0
- package/dist/storage/hooks/useStorageSelection.js.map +1 -0
- package/dist/storage/index.d.ts +11 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +17 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/pendingPrefixes.d.ts +77 -0
- package/dist/storage/pendingPrefixes.d.ts.map +1 -0
- package/dist/storage/pendingPrefixes.js +104 -0
- package/dist/storage/pendingPrefixes.js.map +1 -0
- package/dist/storage/previews.d.ts +51 -0
- package/dist/storage/previews.d.ts.map +1 -0
- package/dist/storage/previews.js +73 -0
- package/dist/storage/previews.js.map +1 -0
- package/dist/storage/storageApi.d.ts +30 -0
- package/dist/storage/storageApi.d.ts.map +1 -0
- package/dist/storage/storageApi.js +20 -0
- package/dist/storage/storageApi.js.map +1 -0
- package/dist/traffic/components/RuleHeatmap.d.ts +34 -0
- package/dist/traffic/components/RuleHeatmap.d.ts.map +1 -0
- package/dist/traffic/components/RuleHeatmap.js +40 -0
- package/dist/traffic/components/RuleHeatmap.js.map +1 -0
- package/dist/traffic/components/TrafficDetail.d.ts +33 -0
- package/dist/traffic/components/TrafficDetail.d.ts.map +1 -0
- package/dist/traffic/components/TrafficDetail.js +28 -0
- package/dist/traffic/components/TrafficDetail.js.map +1 -0
- package/dist/traffic/components/TrafficGroupRow.d.ts +28 -0
- package/dist/traffic/components/TrafficGroupRow.d.ts.map +1 -0
- package/dist/traffic/components/TrafficGroupRow.js +25 -0
- package/dist/traffic/components/TrafficGroupRow.js.map +1 -0
- package/dist/traffic/components/TrafficLineChart.d.ts +37 -0
- package/dist/traffic/components/TrafficLineChart.d.ts.map +1 -0
- package/dist/traffic/components/TrafficLineChart.js +49 -0
- package/dist/traffic/components/TrafficLineChart.js.map +1 -0
- package/dist/traffic/components/TrafficLog.d.ts +52 -0
- package/dist/traffic/components/TrafficLog.d.ts.map +1 -0
- package/dist/traffic/components/TrafficLog.js +34 -0
- package/dist/traffic/components/TrafficLog.js.map +1 -0
- package/dist/traffic/components/TrafficMetricCards.d.ts +26 -0
- package/dist/traffic/components/TrafficMetricCards.d.ts.map +1 -0
- package/dist/traffic/components/TrafficMetricCards.js +24 -0
- package/dist/traffic/components/TrafficMetricCards.js.map +1 -0
- package/dist/traffic/components/TrafficRow.d.ts +40 -0
- package/dist/traffic/components/TrafficRow.d.ts.map +1 -0
- package/dist/traffic/components/TrafficRow.js +27 -0
- package/dist/traffic/components/TrafficRow.js.map +1 -0
- package/dist/traffic/components/TrafficStats.d.ts +18 -0
- package/dist/traffic/components/TrafficStats.d.ts.map +1 -0
- package/dist/traffic/components/TrafficStats.js +19 -0
- package/dist/traffic/components/TrafficStats.js.map +1 -0
- package/dist/traffic/components/TrafficTimeline.d.ts +88 -0
- package/dist/traffic/components/TrafficTimeline.d.ts.map +1 -0
- package/dist/traffic/components/TrafficTimeline.js +86 -0
- package/dist/traffic/components/TrafficTimeline.js.map +1 -0
- package/dist/traffic/components/format.d.ts +13 -0
- package/dist/traffic/components/format.d.ts.map +1 -0
- package/dist/traffic/components/format.js +24 -0
- package/dist/traffic/components/format.js.map +1 -0
- package/dist/traffic/components/index.d.ts +11 -0
- package/dist/traffic/components/index.d.ts.map +1 -0
- package/dist/traffic/components/index.js +11 -0
- package/dist/traffic/components/index.js.map +1 -0
- package/dist/traffic/hooks/index.d.ts +8 -0
- package/dist/traffic/hooks/index.d.ts.map +1 -0
- package/dist/traffic/hooks/index.js +8 -0
- package/dist/traffic/hooks/index.js.map +1 -0
- package/dist/traffic/hooks/useRuleHeatmap.d.ts +33 -0
- package/dist/traffic/hooks/useRuleHeatmap.d.ts.map +1 -0
- package/dist/traffic/hooks/useRuleHeatmap.js +54 -0
- package/dist/traffic/hooks/useRuleHeatmap.js.map +1 -0
- package/dist/traffic/hooks/useTrafficBuckets.d.ts +71 -0
- package/dist/traffic/hooks/useTrafficBuckets.d.ts.map +1 -0
- package/dist/traffic/hooks/useTrafficBuckets.js +74 -0
- package/dist/traffic/hooks/useTrafficBuckets.js.map +1 -0
- package/dist/traffic/hooks/useTrafficFilter.d.ts +40 -0
- package/dist/traffic/hooks/useTrafficFilter.d.ts.map +1 -0
- package/dist/traffic/hooks/useTrafficFilter.js +33 -0
- package/dist/traffic/hooks/useTrafficFilter.js.map +1 -0
- package/dist/traffic/hooks/useTrafficGroups.d.ts +47 -0
- package/dist/traffic/hooks/useTrafficGroups.d.ts.map +1 -0
- package/dist/traffic/hooks/useTrafficGroups.js +73 -0
- package/dist/traffic/hooks/useTrafficGroups.js.map +1 -0
- package/dist/traffic/hooks/useTrafficMetrics.d.ts +66 -0
- package/dist/traffic/hooks/useTrafficMetrics.d.ts.map +1 -0
- package/dist/traffic/hooks/useTrafficMetrics.js +156 -0
- package/dist/traffic/hooks/useTrafficMetrics.js.map +1 -0
- package/dist/traffic/hooks/useTrafficMonitor.d.ts +56 -0
- package/dist/traffic/hooks/useTrafficMonitor.d.ts.map +1 -0
- package/dist/traffic/hooks/useTrafficMonitor.js +58 -0
- package/dist/traffic/hooks/useTrafficMonitor.js.map +1 -0
- package/dist/traffic/hooks/useTrafficStats.d.ts +32 -0
- package/dist/traffic/hooks/useTrafficStats.d.ts.map +1 -0
- package/dist/traffic/hooks/useTrafficStats.js +45 -0
- package/dist/traffic/hooks/useTrafficStats.js.map +1 -0
- package/dist/traffic/index.d.ts +4 -0
- package/dist/traffic/index.d.ts.map +1 -0
- package/dist/traffic/index.js +3 -0
- package/dist/traffic/index.js.map +1 -0
- package/dist/traffic/types.d.ts +72 -0
- package/dist/traffic/types.d.ts.map +1 -0
- package/dist/traffic/types.js +10 -0
- package/dist/traffic/types.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|