@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,25 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface ModalProps {
3
+ open: boolean;
4
+ onClose: () => void;
5
+ children: ReactNode;
6
+ ariaLabel?: string;
7
+ /** Forwarded to the root wrapper (covers the full viewport). */
8
+ className?: string;
9
+ /** Forwarded to the backdrop element. */
10
+ backdropClassName?: string;
11
+ /** Forwarded to the inner panel. */
12
+ panelClassName?: string;
13
+ }
14
+ /**
15
+ * Headless modal — provides behavior only (Escape-to-close, backdrop
16
+ * click, `aria-modal`). Consumers attach all visual styling via the
17
+ * three `className` slots or by selecting on the emitted data
18
+ * attributes:
19
+ *
20
+ * [data-pyric-ui="modal"] — root viewport wrapper
21
+ * [data-pyric-modal-backdrop] — clickable backdrop
22
+ * [data-pyric-modal-panel] — inner panel containing children
23
+ */
24
+ export declare function Modal({ open, onClose, children, ariaLabel, className, backdropClassName, panelClassName, }: ModalProps): import("react").JSX.Element | null;
25
+ //# sourceMappingURL=Modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../src/agents/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,cAAc,GACf,EAAE,UAAU,sCA+BZ"}
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect } from 'react';
3
+ /**
4
+ * Headless modal — provides behavior only (Escape-to-close, backdrop
5
+ * click, `aria-modal`). Consumers attach all visual styling via the
6
+ * three `className` slots or by selecting on the emitted data
7
+ * attributes:
8
+ *
9
+ * [data-pyric-ui="modal"] — root viewport wrapper
10
+ * [data-pyric-modal-backdrop] — clickable backdrop
11
+ * [data-pyric-modal-panel] — inner panel containing children
12
+ */
13
+ export function Modal({ open, onClose, children, ariaLabel, className, backdropClassName, panelClassName, }) {
14
+ useEffect(() => {
15
+ if (!open)
16
+ return;
17
+ const handler = (e) => {
18
+ if (e.key === 'Escape')
19
+ onClose();
20
+ };
21
+ window.addEventListener('keydown', handler);
22
+ return () => window.removeEventListener('keydown', handler);
23
+ }, [open, onClose]);
24
+ if (!open)
25
+ return null;
26
+ return (_jsxs("div", { role: "dialog", "aria-modal": "true", "aria-label": ariaLabel, "data-pyric-ui": "modal", className: className, children: [_jsx("div", { "data-pyric-modal-backdrop": true, className: backdropClassName, onClick: onClose, "aria-hidden": "true" }), _jsx("div", { "data-pyric-modal-panel": true, className: panelClassName, children: children })] }));
27
+ }
28
+ //# sourceMappingURL=Modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/agents/Modal.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,OAAO,CAAC;AAelD;;;;;;;;;GASG;AACH,MAAM,UAAU,KAAK,CAAC,EACpB,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,cAAc,GACH;IACX,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,OAAO,GAAG,CAAC,CAAgB,EAAE,EAAE;YACnC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;QACpC,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,OAAO,CACL,eACE,IAAI,EAAC,QAAQ,gBACF,MAAM,gBACL,SAAS,mBACP,OAAO,EACrB,SAAS,EAAE,SAAS,aAEpB,iDAEE,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,OAAO,iBACJ,MAAM,GAClB,EACF,8CAA4B,SAAS,EAAE,cAAc,YAClD,QAAQ,GACL,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,21 @@
1
+ export interface PulsingDotProps {
2
+ /** Forwarded to the outer wrapper. Consumers attach all visual
3
+ * styling (size, animation, color) via this hook or by selecting
4
+ * on `[data-pyric-ui="pulsing-dot"]`. */
5
+ className?: string;
6
+ }
7
+ /**
8
+ * Headless "live / streaming" indicator. Ships zero visual styling.
9
+ *
10
+ * Renders three nested spans so consumers can style ring + core
11
+ * independently:
12
+ *
13
+ * <span data-pyric-ui="pulsing-dot">
14
+ * <span data-pyric-pulse-ring />
15
+ * <span data-pyric-pulse-core />
16
+ * </span>
17
+ *
18
+ * Animation, color, and size are entirely consumer-defined.
19
+ */
20
+ export declare function PulsingDot({ className }: PulsingDotProps): import("react").JSX.Element;
21
+ //# sourceMappingURL=PulsingDot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PulsingDot.d.ts","sourceRoot":"","sources":["../../src/agents/PulsingDot.tsx"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B;;8CAE0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE,eAAe,+BAOxD"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Headless "live / streaming" indicator. Ships zero visual styling.
4
+ *
5
+ * Renders three nested spans so consumers can style ring + core
6
+ * independently:
7
+ *
8
+ * <span data-pyric-ui="pulsing-dot">
9
+ * <span data-pyric-pulse-ring />
10
+ * <span data-pyric-pulse-core />
11
+ * </span>
12
+ *
13
+ * Animation, color, and size are entirely consumer-defined.
14
+ */
15
+ export function PulsingDot({ className }) {
16
+ return (_jsxs("span", { "data-pyric-ui": "pulsing-dot", className: className, children: [_jsx("span", { "data-pyric-pulse-ring": true, "aria-hidden": "true" }), _jsx("span", { "data-pyric-pulse-core": true, "aria-hidden": "true" })] }));
17
+ }
18
+ //# sourceMappingURL=PulsingDot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PulsingDot.js","sourceRoot":"","sources":["../../src/agents/PulsingDot.tsx"],"names":[],"mappings":";AAOA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,SAAS,EAAmB;IACvD,OAAO,CACL,iCAAoB,aAAa,EAAC,SAAS,EAAE,SAAS,aACpD,6DAAwC,MAAM,GAAG,EACjD,6DAAwC,MAAM,GAAG,IAC5C,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `@pyric/ui/agents` — headless structural components for agentic UIs
3
+ * (chat surfaces, tool-call drill-ins, streaming state indicators).
4
+ *
5
+ * Matches the rest of `@pyric/ui`: zero shipped CSS. Components emit
6
+ * `data-pyric-*` attributes and accept `className` slots. Consumers
7
+ * bring their own design system (Tailwind, CSS modules, plain CSS)
8
+ * and attach styling via attribute selectors or class names.
9
+ */
10
+ export { Fold, type FoldProps, type FoldTone } from './Fold.js';
11
+ export { Modal, type ModalProps } from './Modal.js';
12
+ export { EmptyState, type EmptyStateProps } from './EmptyState.js';
13
+ export { PulsingDot, type PulsingDotProps } from './PulsingDot.js';
14
+ export { ContextWindowMeter, ContextWindowPanel, ContextWindowRing, RequestUsageTimeline, SessionSpendSummary, TokenUsageInline, type ContextWindowMeterProps, type ContextWindowPanelProps, type ContextWindowRingProps, type RequestUsageTimelineProps, type SessionSpendSummaryProps, type TokenUsageInlineProps, } from './ContextWindowUsage.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,GAC3B,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `@pyric/ui/agents` — headless structural components for agentic UIs
3
+ * (chat surfaces, tool-call drill-ins, streaming state indicators).
4
+ *
5
+ * Matches the rest of `@pyric/ui`: zero shipped CSS. Components emit
6
+ * `data-pyric-*` attributes and accept `className` slots. Consumers
7
+ * bring their own design system (Tailwind, CSS modules, plain CSS)
8
+ * and attach styling via attribute selectors or class names.
9
+ */
10
+ export { Fold } from './Fold.js';
11
+ export { Modal } from './Modal.js';
12
+ export { EmptyState } from './EmptyState.js';
13
+ export { PulsingDot } from './PulsingDot.js';
14
+ export { ContextWindowMeter, ContextWindowPanel, ContextWindowRing, RequestUsageTimeline, SessionSpendSummary, TokenUsageInline, } from './ContextWindowUsage.js';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAiC,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,KAAK,EAAmB,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,GAOjB,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { type ReactNode } from 'react';
2
+ import { sandbox as authSandbox } from 'pyric/auth';
3
+ /**
4
+ * The sandbox auth admin ops `useAuthUsers` drives, as an INJECTABLE bundle.
5
+ *
6
+ * WHY (same rationale as `@pyric/ui/firestore`'s FirestoreApi): the hook defaults
7
+ * to the in-process `pyric/auth` `sandbox` ops, but Pyric Studio's served mode
8
+ * drives the SAME ops over a SharedWorker (a parallel client over a MessagePort).
9
+ * Reading them from this context lets a consumer inject the worker client's fns
10
+ * so the hook operates on the live worker user DB without knowing the backend.
11
+ *
12
+ * The bundle is typed to the in-process signatures; a worker bundle is adapted
13
+ * (cast) at the Studio boundary. NOTE the worker `listUsers` is ASYNC (an RPC)
14
+ * whereas the in-process one is sync, so `useAuthUsers` tolerates a promise (it
15
+ * wraps the result in `Promise.resolve`).
16
+ *
17
+ * Default = the real `pyric/auth` sandbox ops, so every existing consumer is
18
+ * unchanged: no provider needed unless swapping the backend.
19
+ */
20
+ export type AuthApi = Pick<typeof authSandbox, 'listUsers' | 'subscribeUsers' | 'createUser' | 'updateUser' | 'deleteUser' | 'clearUsers' | 'getAuthProviderConfig' | 'setAuthProviderConfig' | 'subscribeAuthProviderConfig'>;
21
+ /** Read the active auth API bundle (defaults to in-process `pyric/auth`). */
22
+ export declare function useAuthApi(): AuthApi;
23
+ /**
24
+ * Provide an auth API bundle to the subtree. Pyric Studio supplies the
25
+ * in-process bundle for dev-seed review and the SharedWorker client bundle under
26
+ * `pyric dev --ui`.
27
+ */
28
+ export declare function AuthApiProvider({ value, children, }: {
29
+ value: AuthApi;
30
+ children: ReactNode;
31
+ }): import("react").FunctionComponentElement<import("react").ProviderProps<AuthApi>>;
32
+ //# sourceMappingURL=authApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authApi.d.ts","sourceRoot":"","sources":["../../src/auth/authApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,OAAO,GAAG,IAAI,CACxB,OAAO,WAAW,EAChB,WAAW,GACX,gBAAgB,GAChB,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,YAAY,GAOZ,uBAAuB,GACvB,uBAAuB,GACvB,6BAA6B,CAChC,CAAC;AAgBF,6EAA6E;AAC7E,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;CACrB,oFAEA"}
@@ -0,0 +1,27 @@
1
+ import { createContext, createElement, useContext } from 'react';
2
+ import { sandbox as authSandbox } from 'pyric/auth';
3
+ const inProcessAuthApi = {
4
+ listUsers: authSandbox.listUsers,
5
+ subscribeUsers: authSandbox.subscribeUsers,
6
+ createUser: authSandbox.createUser,
7
+ updateUser: authSandbox.updateUser,
8
+ deleteUser: authSandbox.deleteUser,
9
+ clearUsers: authSandbox.clearUsers,
10
+ getAuthProviderConfig: authSandbox.getAuthProviderConfig,
11
+ setAuthProviderConfig: authSandbox.setAuthProviderConfig,
12
+ subscribeAuthProviderConfig: authSandbox.subscribeAuthProviderConfig,
13
+ };
14
+ const AuthApiContext = createContext(inProcessAuthApi);
15
+ /** Read the active auth API bundle (defaults to in-process `pyric/auth`). */
16
+ export function useAuthApi() {
17
+ return useContext(AuthApiContext);
18
+ }
19
+ /**
20
+ * Provide an auth API bundle to the subtree. Pyric Studio supplies the
21
+ * in-process bundle for dev-seed review and the SharedWorker client bundle under
22
+ * `pyric dev --ui`.
23
+ */
24
+ export function AuthApiProvider({ value, children, }) {
25
+ return createElement(AuthApiContext.Provider, { value }, children);
26
+ }
27
+ //# sourceMappingURL=authApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authApi.js","sourceRoot":"","sources":["../../src/auth/authApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AAsCpD,MAAM,gBAAgB,GAAY;IAChC,SAAS,EAAE,WAAW,CAAC,SAAS;IAChC,cAAc,EAAE,WAAW,CAAC,cAAc;IAC1C,UAAU,EAAE,WAAW,CAAC,UAAU;IAClC,UAAU,EAAE,WAAW,CAAC,UAAU;IAClC,UAAU,EAAE,WAAW,CAAC,UAAU;IAClC,UAAU,EAAE,WAAW,CAAC,UAAU;IAClC,qBAAqB,EAAE,WAAW,CAAC,qBAAqB;IACxD,qBAAqB,EAAE,WAAW,CAAC,qBAAqB;IACxD,2BAA2B,EAAE,WAAW,CAAC,2BAA2B;CACrE,CAAC;AAEF,MAAM,cAAc,GAAG,aAAa,CAAU,gBAAgB,CAAC,CAAC;AAEhE,6EAA6E;AAC7E,MAAM,UAAU,UAAU;IACxB,OAAO,UAAU,CAAC,cAAc,CAAC,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,GAIT;IACC,OAAO,aAAa,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;AACrE,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Custom-claims validation for the add-account form — same checks and
3
+ * user-facing messages as the Firebase emulator UI (which reuses the
4
+ * Auth emulator's server validation: JSON-object shape, 1000-char cap,
5
+ * reserved-key deny list).
6
+ */
7
+ /** Reserved JWT/OIDC keys the Auth emulator rejects as custom claims.
8
+ * https://firebase.google.com/docs/auth/admin/create-custom-tokens */
9
+ export declare const FORBIDDEN_CUSTOM_CLAIMS: readonly string[];
10
+ /** Serialized-length cap, matching the emulator's `CUSTOM_ATTRIBUTES_MAX_LENGTH`. */
11
+ export declare const CUSTOM_CLAIMS_MAX_LENGTH = 1000;
12
+ export type ClaimsValidationResult =
13
+ /** `claims` is `undefined` when the input was empty/whitespace. */
14
+ {
15
+ ok: true;
16
+ claims: Record<string, unknown> | undefined;
17
+ } | {
18
+ ok: false;
19
+ message: string;
20
+ };
21
+ /**
22
+ * Validate the claims textarea's raw text. Empty input is valid (no
23
+ * claims). Messages match the emulator UI verbatim so users see the
24
+ * same wording in both tools.
25
+ */
26
+ export declare function validateSerializedClaims(text: string): ClaimsValidationResult;
27
+ //# sourceMappingURL=claims.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claims.d.ts","sourceRoot":"","sources":["../../src/auth/claims.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;uEACuE;AACvE,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAiBpD,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,MAAM,MAAM,sBAAsB;AAChC,mEAAmE;AACjE;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CAAE,GACzD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,CAqB7E"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Custom-claims validation for the add-account form — same checks and
3
+ * user-facing messages as the Firebase emulator UI (which reuses the
4
+ * Auth emulator's server validation: JSON-object shape, 1000-char cap,
5
+ * reserved-key deny list).
6
+ */
7
+ /** Reserved JWT/OIDC keys the Auth emulator rejects as custom claims.
8
+ * https://firebase.google.com/docs/auth/admin/create-custom-tokens */
9
+ export const FORBIDDEN_CUSTOM_CLAIMS = [
10
+ 'iss',
11
+ 'aud',
12
+ 'sub',
13
+ 'iat',
14
+ 'exp',
15
+ 'nbf',
16
+ 'jti',
17
+ 'nonce',
18
+ 'azp',
19
+ 'acr',
20
+ 'amr',
21
+ 'cnf',
22
+ 'auth_time',
23
+ 'firebase',
24
+ 'at_hash',
25
+ 'c_hash',
26
+ ];
27
+ /** Serialized-length cap, matching the emulator's `CUSTOM_ATTRIBUTES_MAX_LENGTH`. */
28
+ export const CUSTOM_CLAIMS_MAX_LENGTH = 1000;
29
+ /**
30
+ * Validate the claims textarea's raw text. Empty input is valid (no
31
+ * claims). Messages match the emulator UI verbatim so users see the
32
+ * same wording in both tools.
33
+ */
34
+ export function validateSerializedClaims(text) {
35
+ const trimmed = text.trim();
36
+ if (!trimmed)
37
+ return { ok: true, claims: undefined };
38
+ if (trimmed.length > CUSTOM_CLAIMS_MAX_LENGTH) {
39
+ return { ok: false, message: 'Custom claims length must not exceed 1000 characters' };
40
+ }
41
+ let parsed;
42
+ try {
43
+ parsed = JSON.parse(trimmed);
44
+ }
45
+ catch {
46
+ return { ok: false, message: 'Custom claims must be a valid JSON object' };
47
+ }
48
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
49
+ return { ok: false, message: 'Custom claims must be a valid JSON object' };
50
+ }
51
+ for (const key of FORBIDDEN_CUSTOM_CLAIMS) {
52
+ if (key in parsed) {
53
+ return { ok: false, message: `Custom claims must not have forbidden key: ${key}` };
54
+ }
55
+ }
56
+ return { ok: true, claims: parsed };
57
+ }
58
+ //# sourceMappingURL=claims.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claims.js","sourceRoot":"","sources":["../../src/auth/claims.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;uEACuE;AACvE,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,WAAW;IACX,UAAU;IACV,SAAS;IACT,QAAQ;CACT,CAAC;AAEF,qFAAqF;AACrF,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAO7C;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACrD,IAAI,OAAO,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;QAC9C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,sDAAsD,EAAE,CAAC;IACxF,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;IAC7E,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;IAC7E,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAC1C,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;YAClB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,8CAA8C,GAAG,EAAE,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAiC,EAAE,CAAC;AACjE,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { AuthProviderConfigEntry } from '../hooks/useAuthProviderConfig.js';
2
+ /** Providers always shown as a toggle row, regardless of whether the
3
+ * backend has an explicit entry for them yet (an unconfigured provider
4
+ * simply reads as disabled — same default the sandbox backend applies). */
5
+ export declare const DEFAULT_KNOWN_PROVIDER_IDS: readonly ["password", "anonymous", "google.com", "github.com", "apple.com", "microsoft.com"];
6
+ export interface AuthProviderTogglesProps {
7
+ /** Current config — usually `useAuthProviderConfig(auth).config`. */
8
+ config: AuthProviderConfigEntry[];
9
+ /** Fired when a toggle (known or custom) flips. */
10
+ onToggle: (providerId: string, enabled: boolean) => void;
11
+ /** Always-shown rows, in this order. Default: {@link DEFAULT_KNOWN_PROVIDER_IDS}. */
12
+ knownProviderIds?: readonly string[];
13
+ isLoading?: boolean;
14
+ error?: Error;
15
+ className?: string;
16
+ }
17
+ /**
18
+ * Headless "Sign-in providers" toggle grid — the Authentication → Sign-in
19
+ * method surface. Known providers (password / anonymous / the built-in OAuth
20
+ * set) always render as a row; any OTHER provider already present in
21
+ * `config` (a custom OAuth id a host previously added) also gets a row. A
22
+ * free-text field lets a consumer enable an arbitrary OAuth provider id not
23
+ * in the known set — this is a SECTION, not a dialog: the add row lives
24
+ * inline, no modal.
25
+ *
26
+ * Fully headless: styling hangs off `data-pyric-*`, matching the rest of
27
+ * `@pyric/ui/auth` (`AuthUserList`, `AuthUserForm`, …). Data + mutation come
28
+ * from `useAuthProviderConfig`; this component only renders + fires events.
29
+ */
30
+ export declare function AuthProviderToggles({ config, onToggle, knownProviderIds, isLoading, error, className, }: AuthProviderTogglesProps): import("react").JSX.Element;
31
+ //# sourceMappingURL=AuthProviderToggles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthProviderToggles.d.ts","sourceRoot":"","sources":["../../../src/auth/components/AuthProviderToggles.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAEjF;;4EAE4E;AAC5E,eAAO,MAAM,0BAA0B,8FAO7B,CAAC;AAEX,MAAM,WAAW,wBAAwB;IACvC,qEAAqE;IACrE,MAAM,EAAE,uBAAuB,EAAE,CAAC;IAClC,mDAAmD;IACnD,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,QAAQ,EACR,gBAA6C,EAC7C,SAAS,EACT,KAAK,EACL,SAAS,GACV,EAAE,wBAAwB,+BA2D1B"}
@@ -0,0 +1,48 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { providerLabel } from '../providers.js';
4
+ /** Providers always shown as a toggle row, regardless of whether the
5
+ * backend has an explicit entry for them yet (an unconfigured provider
6
+ * simply reads as disabled — same default the sandbox backend applies). */
7
+ export const DEFAULT_KNOWN_PROVIDER_IDS = [
8
+ 'password',
9
+ 'anonymous',
10
+ 'google.com',
11
+ 'github.com',
12
+ 'apple.com',
13
+ 'microsoft.com',
14
+ ];
15
+ function isEnabled(config, providerId) {
16
+ return config.find((c) => c.providerId === providerId)?.enabled ?? false;
17
+ }
18
+ /**
19
+ * Headless "Sign-in providers" toggle grid — the Authentication → Sign-in
20
+ * method surface. Known providers (password / anonymous / the built-in OAuth
21
+ * set) always render as a row; any OTHER provider already present in
22
+ * `config` (a custom OAuth id a host previously added) also gets a row. A
23
+ * free-text field lets a consumer enable an arbitrary OAuth provider id not
24
+ * in the known set — this is a SECTION, not a dialog: the add row lives
25
+ * inline, no modal.
26
+ *
27
+ * Fully headless: styling hangs off `data-pyric-*`, matching the rest of
28
+ * `@pyric/ui/auth` (`AuthUserList`, `AuthUserForm`, …). Data + mutation come
29
+ * from `useAuthProviderConfig`; this component only renders + fires events.
30
+ */
31
+ export function AuthProviderToggles({ config, onToggle, knownProviderIds = DEFAULT_KNOWN_PROVIDER_IDS, isLoading, error, className, }) {
32
+ const [customId, setCustomId] = useState('');
33
+ const customEntries = config.filter((c) => !knownProviderIds.includes(c.providerId));
34
+ const handleAdd = (e) => {
35
+ e.preventDefault();
36
+ const id = customId.trim();
37
+ if (!id)
38
+ return;
39
+ onToggle(id, true);
40
+ setCustomId('');
41
+ };
42
+ return (_jsxs("div", { className: className, "data-pyric-ui": "auth-provider-toggles", children: [error ? (_jsx("p", { "data-pyric-provider-toggles-error": true, role: "alert", children: error.message })) : null, _jsxs("div", { role: "list", "aria-label": "Sign-in providers", "data-pyric-provider-toggle-list": true, "data-pyric-loading": isLoading ? '' : undefined, children: [knownProviderIds.map((providerId) => (_jsx(ProviderToggleRow, { providerId: providerId, enabled: isEnabled(config, providerId), onToggle: onToggle }, providerId))), customEntries.map((entry) => (_jsx(ProviderToggleRow, { providerId: entry.providerId, enabled: entry.enabled, onToggle: onToggle, custom: true }, entry.providerId)))] }), _jsxs("form", { "data-pyric-add-provider-form": true, onSubmit: handleAdd, children: [_jsxs("label", { "data-pyric-field-label": "custom-provider-id", children: [_jsx("span", { "data-pyric-label-text": true, children: "Add a custom OAuth provider" }), _jsx("input", { type: "text", "data-pyric-field": "custom-provider-id", placeholder: "e.g. yahoo.com", value: customId, onChange: (e) => setCustomId(e.target.value) })] }), _jsx("button", { type: "submit", "data-pyric-add-provider": true, disabled: !customId.trim(), children: "Add" })] })] }));
43
+ }
44
+ function ProviderToggleRow({ providerId, enabled, onToggle, custom, }) {
45
+ const inputId = `auth-provider-toggle-${providerId}`;
46
+ return (_jsx("div", { role: "listitem", "data-pyric-provider-toggle": true, "data-pyric-provider-id": providerId, "data-pyric-provider-enabled": enabled ? '' : undefined, "data-pyric-provider-custom": custom ? '' : undefined, children: _jsxs("label", { htmlFor: inputId, "data-pyric-provider-toggle-label": true, children: [_jsx("input", { id: inputId, type: "checkbox", "data-pyric-field": "enabled", checked: enabled, onChange: (e) => onToggle(providerId, e.target.checked) }), _jsx("span", { "data-pyric-provider-toggle-name": true, children: providerLabel(providerId) }), _jsx("span", { "data-pyric-provider-toggle-id": true, children: providerId })] }) }));
47
+ }
48
+ //# sourceMappingURL=AuthProviderToggles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthProviderToggles.js","sourceRoot":"","sources":["../../../src/auth/components/AuthProviderToggles.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { HelperState, NewIdentitySpec, SandboxIdentity } from '../controller.js';
3
+ export interface AuthSignInHelperProps {
4
+ /** Snapshot from `useAuthFlowHelper`. Renders nothing while
5
+ * `state.request` is null. */
6
+ state: HelperState;
7
+ /** Settle with an existing identity (wire to the hook's `pick`). */
8
+ onPick: (uid: string) => void;
9
+ /** Create + sign in as a new identity (wire to the hook's `add`). */
10
+ onAdd: (spec: NewIdentitySpec) => void;
11
+ /** Dismiss the flow (wire to the hook's `cancel`). Rejects the app's
12
+ * sign-in promise with `auth/popup-closed-by-user`. */
13
+ onCancel: () => void;
14
+ /**
15
+ * Optional renderer for an account row's content. Default renders
16
+ * the display name (or email, or uid) plus the email when both
17
+ * exist. The row button + data attributes stay owned by the
18
+ * component; this slot only fills the button's children.
19
+ */
20
+ renderAccount?: (identity: SandboxIdentity) => ReactNode;
21
+ /** Heading text. Default: `Sign in with <provider label>`. */
22
+ title?: ReactNode;
23
+ /** Optional helper text rendered under the title
24
+ * (`[data-pyric-helper-description]`). Default: none. */
25
+ description?: ReactNode;
26
+ /** Prefill for the add-account form (e.g. a host-suggested email).
27
+ * Read once on mount; `claims` is the raw textarea JSON text. */
28
+ initialValues?: {
29
+ email?: string;
30
+ displayName?: string;
31
+ claims?: string;
32
+ };
33
+ className?: string;
34
+ }
35
+ /**
36
+ * Headless emulator-style sign-in helper: an account picker over the
37
+ * sandbox's known identities plus an add-account form (email, display
38
+ * name, custom-claims JSON with emulator-grade validation messages).
39
+ *
40
+ * Ships zero styling. Structure is addressable via the
41
+ * `data-pyric-*` contract:
42
+ *
43
+ * - root: `[data-pyric-ui="auth-signin-helper"]`,
44
+ * `[data-pyric-provider-id]`, `[data-pyric-auth-type]`
45
+ * - picker: `[data-pyric-account-list]` > `[data-pyric-account-entry]`
46
+ * > `button[data-pyric-account-pick]`
47
+ * - form: `form[data-pyric-add-account-form]`, fields
48
+ * `[data-pyric-field="email" | "display-name" | "claims"]`,
49
+ * `[data-pyric-claims-error]` (role=alert),
50
+ * `button[data-pyric-cancel]`, `button[data-pyric-submit]`
51
+ *
52
+ * Positioning is the consumer's job — render it inside your own modal
53
+ * or panel (the flow is host-UI-agnostic; only `onCancel` carries the
54
+ * popup-closed semantics).
55
+ */
56
+ export declare function AuthSignInHelper({ state, onPick, onAdd, onCancel, renderAccount, title, description, initialValues, className, }: AuthSignInHelperProps): import("react").JSX.Element | null;
57
+ //# sourceMappingURL=AuthSignInHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthSignInHelper.d.ts","sourceRoot":"","sources":["../../../src/auth/components/AuthSignInHelper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAItF,MAAM,WAAW,qBAAqB;IACpC;mCAC+B;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,oEAAoE;IACpE,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,qEAAqE;IACrE,KAAK,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACvC;4DACwD;IACxD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,SAAS,CAAC;IACzD,8DAA8D;IAC9D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;8DAC0D;IAC1D,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;sEACkE;IAClE,aAAa,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,MAAM,EACN,KAAK,EACL,QAAQ,EACR,aAAa,EACb,KAAK,EACL,WAAW,EACX,aAAa,EACb,SAAS,GACV,EAAE,qBAAqB,sCAmIvB"}
@@ -0,0 +1,69 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { validateSerializedClaims } from '../claims.js';
4
+ import { providerLabel } from '../providers.js';
5
+ /**
6
+ * Headless emulator-style sign-in helper: an account picker over the
7
+ * sandbox's known identities plus an add-account form (email, display
8
+ * name, custom-claims JSON with emulator-grade validation messages).
9
+ *
10
+ * Ships zero styling. Structure is addressable via the
11
+ * `data-pyric-*` contract:
12
+ *
13
+ * - root: `[data-pyric-ui="auth-signin-helper"]`,
14
+ * `[data-pyric-provider-id]`, `[data-pyric-auth-type]`
15
+ * - picker: `[data-pyric-account-list]` > `[data-pyric-account-entry]`
16
+ * > `button[data-pyric-account-pick]`
17
+ * - form: `form[data-pyric-add-account-form]`, fields
18
+ * `[data-pyric-field="email" | "display-name" | "claims"]`,
19
+ * `[data-pyric-claims-error]` (role=alert),
20
+ * `button[data-pyric-cancel]`, `button[data-pyric-submit]`
21
+ *
22
+ * Positioning is the consumer's job — render it inside your own modal
23
+ * or panel (the flow is host-UI-agnostic; only `onCancel` carries the
24
+ * popup-closed semantics).
25
+ */
26
+ export function AuthSignInHelper({ state, onPick, onAdd, onCancel, renderAccount, title, description, initialValues, className, }) {
27
+ const [email, setEmail] = useState(initialValues?.email ?? '');
28
+ const [displayName, setDisplayName] = useState(initialValues?.displayName ?? '');
29
+ const [claims, setClaims] = useState(initialValues?.claims ?? '');
30
+ const [claimsError, setClaimsError] = useState(null);
31
+ if (!state.request)
32
+ return null;
33
+ const { providerId, authType } = state.request;
34
+ const label = providerLabel(providerId);
35
+ const reset = () => {
36
+ setEmail('');
37
+ setDisplayName('');
38
+ setClaims('');
39
+ setClaimsError(null);
40
+ };
41
+ const cancel = () => {
42
+ onCancel();
43
+ reset();
44
+ };
45
+ const submit = (e) => {
46
+ e.preventDefault();
47
+ const result = validateSerializedClaims(claims);
48
+ if (!result.ok) {
49
+ setClaimsError(result.message);
50
+ return;
51
+ }
52
+ if (!email.trim())
53
+ return;
54
+ onAdd({
55
+ email: email.trim(),
56
+ displayName: displayName.trim() || undefined,
57
+ customClaims: result.claims,
58
+ });
59
+ reset();
60
+ };
61
+ return (_jsxs("section", { className: className, "data-pyric-ui": "auth-signin-helper", "data-pyric-provider-id": providerId, "data-pyric-auth-type": authType, "aria-label": `Sign in with ${label}`, children: [_jsxs("header", { "data-pyric-helper-header": true, children: [_jsx("h2", { "data-pyric-helper-title": true, children: title ?? `Sign in with ${label}` }), description != null && _jsx("p", { "data-pyric-helper-description": true, children: description })] }), state.identities.length > 0 && (_jsx("ul", { "data-pyric-account-list": true, children: state.identities.map((identity) => (_jsx("li", { "data-pyric-account-entry": true, "data-pyric-account-uid": identity.uid, "data-pyric-provider-id": identity.providerId, children: _jsx("button", { type: "button", "data-pyric-account-pick": true, onClick: () => {
62
+ onPick(identity.uid);
63
+ reset();
64
+ }, children: renderAccount ? (renderAccount(identity)) : (_jsxs(_Fragment, { children: [_jsx("span", { "data-pyric-account-name": true, children: identity.displayName || identity.email || identity.uid }), identity.email && identity.displayName ? (_jsx("span", { "data-pyric-account-email": true, children: identity.email })) : null] })) }) }, identity.uid))) })), _jsxs("form", { "data-pyric-add-account-form": true, onSubmit: submit, children: [_jsx("input", { type: "email", "data-pyric-field": "email", "aria-label": "Email", placeholder: "email@example.com", value: email, onChange: (e) => setEmail(e.target.value) }), _jsx("input", { type: "text", "data-pyric-field": "display-name", "aria-label": "Display name (optional)", placeholder: "Display name (optional)", value: displayName, onChange: (e) => setDisplayName(e.target.value) }), _jsx("textarea", { "data-pyric-field": "claims", "data-pyric-claims-invalid": claimsError != null ? '' : undefined, "aria-label": "Custom claims (optional)", "aria-invalid": claimsError != null || undefined, placeholder: 'Enter valid json, e.g. {"role":"admin"}', value: claims, onChange: (e) => {
65
+ setClaims(e.target.value);
66
+ setClaimsError(null);
67
+ } }), claimsError != null && (_jsx("p", { role: "alert", "data-pyric-claims-error": true, children: claimsError })), _jsxs("footer", { "data-pyric-helper-actions": true, children: [_jsx("button", { type: "button", "data-pyric-cancel": true, onClick: cancel, children: "Cancel" }), _jsx("button", { type: "submit", "data-pyric-submit": true, disabled: !email.trim(), children: "Sign in" })] })] })] }));
68
+ }
69
+ //# sourceMappingURL=AuthSignInHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthSignInHelper.js","sourceRoot":"","sources":["../../../src/auth/components/AuthSignInHelper.tsx"],"names":[],"mappings":"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"}