@pyric/ui 0.1.0-alpha.7

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 (594) hide show
  1. package/README.md +79 -0
  2. package/dist/agents/ContextWindowUsage.d.ts +67 -0
  3. package/dist/agents/ContextWindowUsage.d.ts.map +1 -0
  4. package/dist/agents/ContextWindowUsage.js +115 -0
  5. package/dist/agents/ContextWindowUsage.js.map +1 -0
  6. package/dist/agents/EmptyState.d.ts +18 -0
  7. package/dist/agents/EmptyState.d.ts.map +1 -0
  8. package/dist/agents/EmptyState.js +11 -0
  9. package/dist/agents/EmptyState.js.map +1 -0
  10. package/dist/agents/Fold.d.ts +37 -0
  11. package/dist/agents/Fold.d.ts.map +1 -0
  12. package/dist/agents/Fold.js +18 -0
  13. package/dist/agents/Fold.js.map +1 -0
  14. package/dist/agents/Modal.d.ts +25 -0
  15. package/dist/agents/Modal.d.ts.map +1 -0
  16. package/dist/agents/Modal.js +28 -0
  17. package/dist/agents/Modal.js.map +1 -0
  18. package/dist/agents/PulsingDot.d.ts +21 -0
  19. package/dist/agents/PulsingDot.d.ts.map +1 -0
  20. package/dist/agents/PulsingDot.js +18 -0
  21. package/dist/agents/PulsingDot.js.map +1 -0
  22. package/dist/agents/index.d.ts +15 -0
  23. package/dist/agents/index.d.ts.map +1 -0
  24. package/dist/agents/index.js +15 -0
  25. package/dist/agents/index.js.map +1 -0
  26. package/dist/auth/authApi.d.ts +32 -0
  27. package/dist/auth/authApi.d.ts.map +1 -0
  28. package/dist/auth/authApi.js +27 -0
  29. package/dist/auth/authApi.js.map +1 -0
  30. package/dist/auth/claims.d.ts +27 -0
  31. package/dist/auth/claims.d.ts.map +1 -0
  32. package/dist/auth/claims.js +58 -0
  33. package/dist/auth/claims.js.map +1 -0
  34. package/dist/auth/components/AuthProviderToggles.d.ts +31 -0
  35. package/dist/auth/components/AuthProviderToggles.d.ts.map +1 -0
  36. package/dist/auth/components/AuthProviderToggles.js +48 -0
  37. package/dist/auth/components/AuthProviderToggles.js.map +1 -0
  38. package/dist/auth/components/AuthSignInHelper.d.ts +57 -0
  39. package/dist/auth/components/AuthSignInHelper.d.ts.map +1 -0
  40. package/dist/auth/components/AuthSignInHelper.js +69 -0
  41. package/dist/auth/components/AuthSignInHelper.js.map +1 -0
  42. package/dist/auth/components/AuthUserForm.d.ts +84 -0
  43. package/dist/auth/components/AuthUserForm.d.ts.map +1 -0
  44. package/dist/auth/components/AuthUserForm.js +89 -0
  45. package/dist/auth/components/AuthUserForm.js.map +1 -0
  46. package/dist/auth/components/AuthUserList.d.ts +51 -0
  47. package/dist/auth/components/AuthUserList.d.ts.map +1 -0
  48. package/dist/auth/components/AuthUserList.js +46 -0
  49. package/dist/auth/components/AuthUserList.js.map +1 -0
  50. package/dist/auth/components/ClaimsField.d.ts +22 -0
  51. package/dist/auth/components/ClaimsField.d.ts.map +1 -0
  52. package/dist/auth/components/ClaimsField.js +11 -0
  53. package/dist/auth/components/ClaimsField.js.map +1 -0
  54. package/dist/auth/components/confirmActions.d.ts +40 -0
  55. package/dist/auth/components/confirmActions.d.ts.map +1 -0
  56. package/dist/auth/components/confirmActions.js +49 -0
  57. package/dist/auth/components/confirmActions.js.map +1 -0
  58. package/dist/auth/controller.d.ts +73 -0
  59. package/dist/auth/controller.d.ts.map +1 -0
  60. package/dist/auth/controller.js +139 -0
  61. package/dist/auth/controller.js.map +1 -0
  62. package/dist/auth/hooks/index.d.ts +7 -0
  63. package/dist/auth/hooks/index.d.ts.map +1 -0
  64. package/dist/auth/hooks/index.js +7 -0
  65. package/dist/auth/hooks/index.js.map +1 -0
  66. package/dist/auth/hooks/useAuthFlowHelper.d.ts +30 -0
  67. package/dist/auth/hooks/useAuthFlowHelper.d.ts.map +1 -0
  68. package/dist/auth/hooks/useAuthFlowHelper.js +30 -0
  69. package/dist/auth/hooks/useAuthFlowHelper.js.map +1 -0
  70. package/dist/auth/hooks/useAuthProviderConfig.d.ts +37 -0
  71. package/dist/auth/hooks/useAuthProviderConfig.d.ts.map +1 -0
  72. package/dist/auth/hooks/useAuthProviderConfig.js +98 -0
  73. package/dist/auth/hooks/useAuthProviderConfig.js.map +1 -0
  74. package/dist/auth/hooks/useAuthUserEditor.d.ts +30 -0
  75. package/dist/auth/hooks/useAuthUserEditor.d.ts.map +1 -0
  76. package/dist/auth/hooks/useAuthUserEditor.js +27 -0
  77. package/dist/auth/hooks/useAuthUserEditor.js.map +1 -0
  78. package/dist/auth/hooks/useAuthUsers.d.ts +38 -0
  79. package/dist/auth/hooks/useAuthUsers.d.ts.map +1 -0
  80. package/dist/auth/hooks/useAuthUsers.js +111 -0
  81. package/dist/auth/hooks/useAuthUsers.js.map +1 -0
  82. package/dist/auth/index.d.ts +11 -0
  83. package/dist/auth/index.d.ts.map +1 -0
  84. package/dist/auth/index.js +13 -0
  85. package/dist/auth/index.js.map +1 -0
  86. package/dist/auth/providers.d.ts +11 -0
  87. package/dist/auth/providers.d.ts.map +1 -0
  88. package/dist/auth/providers.js +28 -0
  89. package/dist/auth/providers.js.map +1 -0
  90. package/dist/auth/reducers/userEditor.d.ts +55 -0
  91. package/dist/auth/reducers/userEditor.d.ts.map +1 -0
  92. package/dist/auth/reducers/userEditor.js +136 -0
  93. package/dist/auth/reducers/userEditor.js.map +1 -0
  94. package/dist/events/components/ActivityActionItems.d.ts +45 -0
  95. package/dist/events/components/ActivityActionItems.d.ts.map +1 -0
  96. package/dist/events/components/ActivityActionItems.js +68 -0
  97. package/dist/events/components/ActivityActionItems.js.map +1 -0
  98. package/dist/events/components/ActivityGrid.d.ts +65 -0
  99. package/dist/events/components/ActivityGrid.d.ts.map +1 -0
  100. package/dist/events/components/ActivityGrid.js +61 -0
  101. package/dist/events/components/ActivityGrid.js.map +1 -0
  102. package/dist/events/components/ActivityGridRow.d.ts +31 -0
  103. package/dist/events/components/ActivityGridRow.d.ts.map +1 -0
  104. package/dist/events/components/ActivityGridRow.js +23 -0
  105. package/dist/events/components/ActivityGridRow.js.map +1 -0
  106. package/dist/events/components/ProposedChangeDiff.d.ts +46 -0
  107. package/dist/events/components/ProposedChangeDiff.d.ts.map +1 -0
  108. package/dist/events/components/ProposedChangeDiff.js +60 -0
  109. package/dist/events/components/ProposedChangeDiff.js.map +1 -0
  110. package/dist/events/components/format.d.ts +11 -0
  111. package/dist/events/components/format.d.ts.map +1 -0
  112. package/dist/events/components/format.js +26 -0
  113. package/dist/events/components/format.js.map +1 -0
  114. package/dist/events/components/index.d.ts +6 -0
  115. package/dist/events/components/index.d.ts.map +1 -0
  116. package/dist/events/components/index.js +6 -0
  117. package/dist/events/components/index.js.map +1 -0
  118. package/dist/events/digest.d.ts +167 -0
  119. package/dist/events/digest.d.ts.map +1 -0
  120. package/dist/events/digest.js +426 -0
  121. package/dist/events/digest.js.map +1 -0
  122. package/dist/events/hooks/index.d.ts +3 -0
  123. package/dist/events/hooks/index.d.ts.map +1 -0
  124. package/dist/events/hooks/index.js +3 -0
  125. package/dist/events/hooks/index.js.map +1 -0
  126. package/dist/events/hooks/useActivityDigest.d.ts +27 -0
  127. package/dist/events/hooks/useActivityDigest.d.ts.map +1 -0
  128. package/dist/events/hooks/useActivityDigest.js +18 -0
  129. package/dist/events/hooks/useActivityDigest.js.map +1 -0
  130. package/dist/events/hooks/useActivityStream.d.ts +44 -0
  131. package/dist/events/hooks/useActivityStream.d.ts.map +1 -0
  132. package/dist/events/hooks/useActivityStream.js +38 -0
  133. package/dist/events/hooks/useActivityStream.js.map +1 -0
  134. package/dist/events/index.d.ts +15 -0
  135. package/dist/events/index.d.ts.map +1 -0
  136. package/dist/events/index.js +14 -0
  137. package/dist/events/index.js.map +1 -0
  138. package/dist/events/types.d.ts +160 -0
  139. package/dist/events/types.d.ts.map +1 -0
  140. package/dist/events/types.js +21 -0
  141. package/dist/events/types.js.map +1 -0
  142. package/dist/firestore/components/CollectionList.d.ts +22 -0
  143. package/dist/firestore/components/CollectionList.d.ts.map +1 -0
  144. package/dist/firestore/components/CollectionList.js +21 -0
  145. package/dist/firestore/components/CollectionList.js.map +1 -0
  146. package/dist/firestore/components/DeleteWithConfirm.d.ts +38 -0
  147. package/dist/firestore/components/DeleteWithConfirm.d.ts.map +1 -0
  148. package/dist/firestore/components/DeleteWithConfirm.js +33 -0
  149. package/dist/firestore/components/DeleteWithConfirm.js.map +1 -0
  150. package/dist/firestore/components/DocumentEditor.d.ts +47 -0
  151. package/dist/firestore/components/DocumentEditor.d.ts.map +1 -0
  152. package/dist/firestore/components/DocumentEditor.js +176 -0
  153. package/dist/firestore/components/DocumentEditor.js.map +1 -0
  154. package/dist/firestore/components/DocumentList.d.ts +60 -0
  155. package/dist/firestore/components/DocumentList.d.ts.map +1 -0
  156. package/dist/firestore/components/DocumentList.js +39 -0
  157. package/dist/firestore/components/DocumentList.js.map +1 -0
  158. package/dist/firestore/components/DocumentPreview.d.ts +68 -0
  159. package/dist/firestore/components/DocumentPreview.d.ts.map +1 -0
  160. package/dist/firestore/components/DocumentPreview.js +76 -0
  161. package/dist/firestore/components/DocumentPreview.js.map +1 -0
  162. package/dist/firestore/components/FieldRenderer.d.ts +17 -0
  163. package/dist/firestore/components/FieldRenderer.d.ts.map +1 -0
  164. package/dist/firestore/components/FieldRenderer.js +16 -0
  165. package/dist/firestore/components/FieldRenderer.js.map +1 -0
  166. package/dist/firestore/components/QueryBuilder.d.ts +25 -0
  167. package/dist/firestore/components/QueryBuilder.d.ts.map +1 -0
  168. package/dist/firestore/components/QueryBuilder.js +78 -0
  169. package/dist/firestore/components/QueryBuilder.js.map +1 -0
  170. package/dist/firestore/components/ReferencePicker.d.ts +33 -0
  171. package/dist/firestore/components/ReferencePicker.d.ts.map +1 -0
  172. package/dist/firestore/components/ReferencePicker.js +42 -0
  173. package/dist/firestore/components/ReferencePicker.js.map +1 -0
  174. package/dist/firestore/components/TreeEntry.d.ts +15 -0
  175. package/dist/firestore/components/TreeEntry.d.ts.map +1 -0
  176. package/dist/firestore/components/TreeEntry.js +23 -0
  177. package/dist/firestore/components/TreeEntry.js.map +1 -0
  178. package/dist/firestore/components/context.d.ts +18 -0
  179. package/dist/firestore/components/context.d.ts.map +1 -0
  180. package/dist/firestore/components/context.js +7 -0
  181. package/dist/firestore/components/context.js.map +1 -0
  182. package/dist/firestore/fieldEditors/array.d.ts +3 -0
  183. package/dist/firestore/fieldEditors/array.d.ts.map +1 -0
  184. package/dist/firestore/fieldEditors/array.js +16 -0
  185. package/dist/firestore/fieldEditors/array.js.map +1 -0
  186. package/dist/firestore/fieldEditors/boolean.d.ts +3 -0
  187. package/dist/firestore/fieldEditors/boolean.d.ts.map +1 -0
  188. package/dist/firestore/fieldEditors/boolean.js +13 -0
  189. package/dist/firestore/fieldEditors/boolean.js.map +1 -0
  190. package/dist/firestore/fieldEditors/bytes.d.ts +4 -0
  191. package/dist/firestore/fieldEditors/bytes.d.ts.map +1 -0
  192. package/dist/firestore/fieldEditors/bytes.js +31 -0
  193. package/dist/firestore/fieldEditors/bytes.js.map +1 -0
  194. package/dist/firestore/fieldEditors/geopoint.d.ts +4 -0
  195. package/dist/firestore/fieldEditors/geopoint.d.ts.map +1 -0
  196. package/dist/firestore/fieldEditors/geopoint.js +32 -0
  197. package/dist/firestore/fieldEditors/geopoint.js.map +1 -0
  198. package/dist/firestore/fieldEditors/map.d.ts +3 -0
  199. package/dist/firestore/fieldEditors/map.d.ts.map +1 -0
  200. package/dist/firestore/fieldEditors/map.js +19 -0
  201. package/dist/firestore/fieldEditors/map.js.map +1 -0
  202. package/dist/firestore/fieldEditors/null.d.ts +3 -0
  203. package/dist/firestore/fieldEditors/null.d.ts.map +1 -0
  204. package/dist/firestore/fieldEditors/null.js +17 -0
  205. package/dist/firestore/fieldEditors/null.js.map +1 -0
  206. package/dist/firestore/fieldEditors/number.d.ts +3 -0
  207. package/dist/firestore/fieldEditors/number.d.ts.map +1 -0
  208. package/dist/firestore/fieldEditors/number.js +24 -0
  209. package/dist/firestore/fieldEditors/number.js.map +1 -0
  210. package/dist/firestore/fieldEditors/reference.d.ts +4 -0
  211. package/dist/firestore/fieldEditors/reference.d.ts.map +1 -0
  212. package/dist/firestore/fieldEditors/reference.js +49 -0
  213. package/dist/firestore/fieldEditors/reference.js.map +1 -0
  214. package/dist/firestore/fieldEditors/registry.d.ts +16 -0
  215. package/dist/firestore/fieldEditors/registry.d.ts.map +1 -0
  216. package/dist/firestore/fieldEditors/registry.js +42 -0
  217. package/dist/firestore/fieldEditors/registry.js.map +1 -0
  218. package/dist/firestore/fieldEditors/string.d.ts +3 -0
  219. package/dist/firestore/fieldEditors/string.d.ts.map +1 -0
  220. package/dist/firestore/fieldEditors/string.js +13 -0
  221. package/dist/firestore/fieldEditors/string.js.map +1 -0
  222. package/dist/firestore/fieldEditors/timestamp.d.ts +4 -0
  223. package/dist/firestore/fieldEditors/timestamp.d.ts.map +1 -0
  224. package/dist/firestore/fieldEditors/timestamp.js +52 -0
  225. package/dist/firestore/fieldEditors/timestamp.js.map +1 -0
  226. package/dist/firestore/fieldEditors/types.d.ts +64 -0
  227. package/dist/firestore/fieldEditors/types.d.ts.map +1 -0
  228. package/dist/firestore/fieldEditors/types.js +2 -0
  229. package/dist/firestore/fieldEditors/types.js.map +1 -0
  230. package/dist/firestore/fieldEditors/vector.d.ts +29 -0
  231. package/dist/firestore/fieldEditors/vector.d.ts.map +1 -0
  232. package/dist/firestore/fieldEditors/vector.js +93 -0
  233. package/dist/firestore/fieldEditors/vector.js.map +1 -0
  234. package/dist/firestore/firestoreApi.d.ts +35 -0
  235. package/dist/firestore/firestoreApi.d.ts.map +1 -0
  236. package/dist/firestore/firestoreApi.js +28 -0
  237. package/dist/firestore/firestoreApi.js.map +1 -0
  238. package/dist/firestore/hooks/coerceError.d.ts +17 -0
  239. package/dist/firestore/hooks/coerceError.d.ts.map +1 -0
  240. package/dist/firestore/hooks/coerceError.js +41 -0
  241. package/dist/firestore/hooks/coerceError.js.map +1 -0
  242. package/dist/firestore/hooks/index.d.ts +10 -0
  243. package/dist/firestore/hooks/index.d.ts.map +1 -0
  244. package/dist/firestore/hooks/index.js +10 -0
  245. package/dist/firestore/hooks/index.js.map +1 -0
  246. package/dist/firestore/hooks/useCollectionList.d.ts +37 -0
  247. package/dist/firestore/hooks/useCollectionList.d.ts.map +1 -0
  248. package/dist/firestore/hooks/useCollectionList.js +51 -0
  249. package/dist/firestore/hooks/useCollectionList.js.map +1 -0
  250. package/dist/firestore/hooks/useDocumentEditor.d.ts +58 -0
  251. package/dist/firestore/hooks/useDocumentEditor.d.ts.map +1 -0
  252. package/dist/firestore/hooks/useDocumentEditor.js +68 -0
  253. package/dist/firestore/hooks/useDocumentEditor.js.map +1 -0
  254. package/dist/firestore/hooks/useDocumentList.d.ts +45 -0
  255. package/dist/firestore/hooks/useDocumentList.d.ts.map +1 -0
  256. package/dist/firestore/hooks/useDocumentList.js +112 -0
  257. package/dist/firestore/hooks/useDocumentList.js.map +1 -0
  258. package/dist/firestore/hooks/useDocumentSubcollections.d.ts +29 -0
  259. package/dist/firestore/hooks/useDocumentSubcollections.d.ts.map +1 -0
  260. package/dist/firestore/hooks/useDocumentSubcollections.js +48 -0
  261. package/dist/firestore/hooks/useDocumentSubcollections.js.map +1 -0
  262. package/dist/firestore/hooks/useFirestoreCollection.d.ts +14 -0
  263. package/dist/firestore/hooks/useFirestoreCollection.d.ts.map +1 -0
  264. package/dist/firestore/hooks/useFirestoreCollection.js +35 -0
  265. package/dist/firestore/hooks/useFirestoreCollection.js.map +1 -0
  266. package/dist/firestore/hooks/useFirestoreDoc.d.ts +17 -0
  267. package/dist/firestore/hooks/useFirestoreDoc.d.ts.map +1 -0
  268. package/dist/firestore/hooks/useFirestoreDoc.js +34 -0
  269. package/dist/firestore/hooks/useFirestoreDoc.js.map +1 -0
  270. package/dist/firestore/hooks/useQueryBuilder.d.ts +51 -0
  271. package/dist/firestore/hooks/useQueryBuilder.d.ts.map +1 -0
  272. package/dist/firestore/hooks/useQueryBuilder.js +110 -0
  273. package/dist/firestore/hooks/useQueryBuilder.js.map +1 -0
  274. package/dist/firestore/hooks/useRecursiveDelete.d.ts +40 -0
  275. package/dist/firestore/hooks/useRecursiveDelete.d.ts.map +1 -0
  276. package/dist/firestore/hooks/useRecursiveDelete.js +44 -0
  277. package/dist/firestore/hooks/useRecursiveDelete.js.map +1 -0
  278. package/dist/firestore/hooks/useReferencePicker.d.ts +70 -0
  279. package/dist/firestore/hooks/useReferencePicker.d.ts.map +1 -0
  280. package/dist/firestore/hooks/useReferencePicker.js +140 -0
  281. package/dist/firestore/hooks/useReferencePicker.js.map +1 -0
  282. package/dist/firestore/import/parseImport.d.ts +55 -0
  283. package/dist/firestore/import/parseImport.d.ts.map +1 -0
  284. package/dist/firestore/import/parseImport.js +101 -0
  285. package/dist/firestore/import/parseImport.js.map +1 -0
  286. package/dist/firestore/index.d.ts +20 -0
  287. package/dist/firestore/index.d.ts.map +1 -0
  288. package/dist/firestore/index.js +28 -0
  289. package/dist/firestore/index.js.map +1 -0
  290. package/dist/firestore/reducers/defaults.d.ts +10 -0
  291. package/dist/firestore/reducers/defaults.d.ts.map +1 -0
  292. package/dist/firestore/reducers/defaults.js +37 -0
  293. package/dist/firestore/reducers/defaults.js.map +1 -0
  294. package/dist/firestore/reducers/documentEditor.d.ts +23 -0
  295. package/dist/firestore/reducers/documentEditor.d.ts.map +1 -0
  296. package/dist/firestore/reducers/documentEditor.js +199 -0
  297. package/dist/firestore/reducers/documentEditor.js.map +1 -0
  298. package/dist/firestore/reducers/tree.d.ts +28 -0
  299. package/dist/firestore/reducers/tree.d.ts.map +1 -0
  300. package/dist/firestore/reducers/tree.js +129 -0
  301. package/dist/firestore/reducers/tree.js.map +1 -0
  302. package/dist/firestore/reducers/types.d.ts +112 -0
  303. package/dist/firestore/reducers/types.d.ts.map +1 -0
  304. package/dist/firestore/reducers/types.js +2 -0
  305. package/dist/firestore/reducers/types.js.map +1 -0
  306. package/dist/firestore/reducers/validation.d.ts +25 -0
  307. package/dist/firestore/reducers/validation.d.ts.map +1 -0
  308. package/dist/firestore/reducers/validation.js +121 -0
  309. package/dist/firestore/reducers/validation.js.map +1 -0
  310. package/dist/firestore/types.d.ts +77 -0
  311. package/dist/firestore/types.d.ts.map +1 -0
  312. package/dist/firestore/types.js +196 -0
  313. package/dist/firestore/types.js.map +1 -0
  314. package/dist/firestore/validation/ids.d.ts +23 -0
  315. package/dist/firestore/validation/ids.d.ts.map +1 -0
  316. package/dist/firestore/validation/ids.js +46 -0
  317. package/dist/firestore/validation/ids.js.map +1 -0
  318. package/dist/index.d.ts +2 -0
  319. package/dist/index.d.ts.map +1 -0
  320. package/dist/index.js +2 -0
  321. package/dist/index.js.map +1 -0
  322. package/dist/primitives/Badge.d.ts +28 -0
  323. package/dist/primitives/Badge.d.ts.map +1 -0
  324. package/dist/primitives/Badge.js +11 -0
  325. package/dist/primitives/Badge.js.map +1 -0
  326. package/dist/primitives/ConfirmDialog.d.ts +42 -0
  327. package/dist/primitives/ConfirmDialog.d.ts.map +1 -0
  328. package/dist/primitives/ConfirmDialog.js +61 -0
  329. package/dist/primitives/ConfirmDialog.js.map +1 -0
  330. package/dist/primitives/CopyButton.d.ts +28 -0
  331. package/dist/primitives/CopyButton.d.ts.map +1 -0
  332. package/dist/primitives/CopyButton.js +27 -0
  333. package/dist/primitives/CopyButton.js.map +1 -0
  334. package/dist/primitives/JsonView.d.ts +29 -0
  335. package/dist/primitives/JsonView.d.ts.map +1 -0
  336. package/dist/primitives/JsonView.js +56 -0
  337. package/dist/primitives/JsonView.js.map +1 -0
  338. package/dist/primitives/SegmentedControl.d.ts +37 -0
  339. package/dist/primitives/SegmentedControl.d.ts.map +1 -0
  340. package/dist/primitives/SegmentedControl.js +18 -0
  341. package/dist/primitives/SegmentedControl.js.map +1 -0
  342. package/dist/primitives/Toast.d.ts +48 -0
  343. package/dist/primitives/Toast.d.ts.map +1 -0
  344. package/dist/primitives/Toast.js +60 -0
  345. package/dist/primitives/Toast.js.map +1 -0
  346. package/dist/primitives/VirtualList.d.ts +37 -0
  347. package/dist/primitives/VirtualList.d.ts.map +1 -0
  348. package/dist/primitives/VirtualList.js +47 -0
  349. package/dist/primitives/VirtualList.js.map +1 -0
  350. package/dist/primitives/hooks/useContainerSize.d.ts +29 -0
  351. package/dist/primitives/hooks/useContainerSize.d.ts.map +1 -0
  352. package/dist/primitives/hooks/useContainerSize.js +45 -0
  353. package/dist/primitives/hooks/useContainerSize.js.map +1 -0
  354. package/dist/primitives/index.d.ts +10 -0
  355. package/dist/primitives/index.d.ts.map +1 -0
  356. package/dist/primitives/index.js +10 -0
  357. package/dist/primitives/index.js.map +1 -0
  358. package/dist/primitives/useConfirm.d.ts +34 -0
  359. package/dist/primitives/useConfirm.d.ts.map +1 -0
  360. package/dist/primitives/useConfirm.js +63 -0
  361. package/dist/primitives/useConfirm.js.map +1 -0
  362. package/dist/rtdb/components/RtdbPathBar.d.ts +31 -0
  363. package/dist/rtdb/components/RtdbPathBar.d.ts.map +1 -0
  364. package/dist/rtdb/components/RtdbPathBar.js +47 -0
  365. package/dist/rtdb/components/RtdbPathBar.js.map +1 -0
  366. package/dist/rtdb/components/RtdbTree.d.ts +38 -0
  367. package/dist/rtdb/components/RtdbTree.d.ts.map +1 -0
  368. package/dist/rtdb/components/RtdbTree.js +103 -0
  369. package/dist/rtdb/components/RtdbTree.js.map +1 -0
  370. package/dist/rtdb/editor.d.ts +25 -0
  371. package/dist/rtdb/editor.d.ts.map +1 -0
  372. package/dist/rtdb/editor.js +79 -0
  373. package/dist/rtdb/editor.js.map +1 -0
  374. package/dist/rtdb/hooks/useRtdbTree.d.ts +31 -0
  375. package/dist/rtdb/hooks/useRtdbTree.d.ts.map +1 -0
  376. package/dist/rtdb/hooks/useRtdbTree.js +49 -0
  377. package/dist/rtdb/hooks/useRtdbTree.js.map +1 -0
  378. package/dist/rtdb/index.d.ts +17 -0
  379. package/dist/rtdb/index.d.ts.map +1 -0
  380. package/dist/rtdb/index.js +21 -0
  381. package/dist/rtdb/index.js.map +1 -0
  382. package/dist/rtdb/pathInput.d.ts +28 -0
  383. package/dist/rtdb/pathInput.d.ts.map +1 -0
  384. package/dist/rtdb/pathInput.js +40 -0
  385. package/dist/rtdb/pathInput.js.map +1 -0
  386. package/dist/rtdb/reducers/tree.d.ts +86 -0
  387. package/dist/rtdb/reducers/tree.d.ts.map +1 -0
  388. package/dist/rtdb/reducers/tree.js +131 -0
  389. package/dist/rtdb/reducers/tree.js.map +1 -0
  390. package/dist/rtdb/rtdbApi.d.ts +20 -0
  391. package/dist/rtdb/rtdbApi.d.ts.map +1 -0
  392. package/dist/rtdb/rtdbApi.js +2 -0
  393. package/dist/rtdb/rtdbApi.js.map +1 -0
  394. package/dist/rtdb/values.d.ts +44 -0
  395. package/dist/rtdb/values.d.ts.map +1 -0
  396. package/dist/rtdb/values.js +143 -0
  397. package/dist/rtdb/values.js.map +1 -0
  398. package/dist/rules/components/DenialInspector.d.ts +18 -0
  399. package/dist/rules/components/DenialInspector.d.ts.map +1 -0
  400. package/dist/rules/components/DenialInspector.js +58 -0
  401. package/dist/rules/components/DenialInspector.js.map +1 -0
  402. package/dist/rules/components/format.d.ts +56 -0
  403. package/dist/rules/components/format.d.ts.map +1 -0
  404. package/dist/rules/components/format.js +137 -0
  405. package/dist/rules/components/format.js.map +1 -0
  406. package/dist/rules/components/index.d.ts +4 -0
  407. package/dist/rules/components/index.d.ts.map +1 -0
  408. package/dist/rules/components/index.js +4 -0
  409. package/dist/rules/components/index.js.map +1 -0
  410. package/dist/rules/components/scope.d.ts +10 -0
  411. package/dist/rules/components/scope.d.ts.map +1 -0
  412. package/dist/rules/components/scope.js +72 -0
  413. package/dist/rules/components/scope.js.map +1 -0
  414. package/dist/rules/hooks/index.d.ts +2 -0
  415. package/dist/rules/hooks/index.d.ts.map +1 -0
  416. package/dist/rules/hooks/index.js +2 -0
  417. package/dist/rules/hooks/index.js.map +1 -0
  418. package/dist/rules/hooks/useDenialTrace.d.ts +51 -0
  419. package/dist/rules/hooks/useDenialTrace.d.ts.map +1 -0
  420. package/dist/rules/hooks/useDenialTrace.js +58 -0
  421. package/dist/rules/hooks/useDenialTrace.js.map +1 -0
  422. package/dist/rules/index.d.ts +14 -0
  423. package/dist/rules/index.d.ts.map +1 -0
  424. package/dist/rules/index.js +13 -0
  425. package/dist/rules/index.js.map +1 -0
  426. package/dist/rules/types.d.ts +75 -0
  427. package/dist/rules/types.d.ts.map +1 -0
  428. package/dist/rules/types.js +2 -0
  429. package/dist/rules/types.js.map +1 -0
  430. package/dist/storage/collisionRename.d.ts +73 -0
  431. package/dist/storage/collisionRename.d.ts.map +1 -0
  432. package/dist/storage/collisionRename.js +113 -0
  433. package/dist/storage/collisionRename.js.map +1 -0
  434. package/dist/storage/components/DeleteSelectionWithConfirm.d.ts +68 -0
  435. package/dist/storage/components/DeleteSelectionWithConfirm.d.ts.map +1 -0
  436. package/dist/storage/components/DeleteSelectionWithConfirm.js +82 -0
  437. package/dist/storage/components/DeleteSelectionWithConfirm.js.map +1 -0
  438. package/dist/storage/components/ObjectBrowser.d.ts +75 -0
  439. package/dist/storage/components/ObjectBrowser.d.ts.map +1 -0
  440. package/dist/storage/components/ObjectBrowser.js +59 -0
  441. package/dist/storage/components/ObjectBrowser.js.map +1 -0
  442. package/dist/storage/components/ObjectInspector.d.ts +43 -0
  443. package/dist/storage/components/ObjectInspector.d.ts.map +1 -0
  444. package/dist/storage/components/ObjectInspector.js +92 -0
  445. package/dist/storage/components/ObjectInspector.js.map +1 -0
  446. package/dist/storage/components/PathBreadcrumb.d.ts +30 -0
  447. package/dist/storage/components/PathBreadcrumb.d.ts.map +1 -0
  448. package/dist/storage/components/PathBreadcrumb.js +26 -0
  449. package/dist/storage/components/PathBreadcrumb.js.map +1 -0
  450. package/dist/storage/components/UploadDropzone.d.ts +50 -0
  451. package/dist/storage/components/UploadDropzone.d.ts.map +1 -0
  452. package/dist/storage/components/UploadDropzone.js +109 -0
  453. package/dist/storage/components/UploadDropzone.js.map +1 -0
  454. package/dist/storage/folderPlaceholder.d.ts +14 -0
  455. package/dist/storage/folderPlaceholder.d.ts.map +1 -0
  456. package/dist/storage/folderPlaceholder.js +27 -0
  457. package/dist/storage/folderPlaceholder.js.map +1 -0
  458. package/dist/storage/hooks/index.d.ts +9 -0
  459. package/dist/storage/hooks/index.d.ts.map +1 -0
  460. package/dist/storage/hooks/index.js +9 -0
  461. package/dist/storage/hooks/index.js.map +1 -0
  462. package/dist/storage/hooks/useMetadataEditor.d.ts +114 -0
  463. package/dist/storage/hooks/useMetadataEditor.d.ts.map +1 -0
  464. package/dist/storage/hooks/useMetadataEditor.js +193 -0
  465. package/dist/storage/hooks/useMetadataEditor.js.map +1 -0
  466. package/dist/storage/hooks/useObjectUpload.d.ts +109 -0
  467. package/dist/storage/hooks/useObjectUpload.d.ts.map +1 -0
  468. package/dist/storage/hooks/useObjectUpload.js +134 -0
  469. package/dist/storage/hooks/useObjectUpload.js.map +1 -0
  470. package/dist/storage/hooks/usePathState.d.ts +43 -0
  471. package/dist/storage/hooks/usePathState.d.ts.map +1 -0
  472. package/dist/storage/hooks/usePathState.js +42 -0
  473. package/dist/storage/hooks/usePathState.js.map +1 -0
  474. package/dist/storage/hooks/useStorageDelete.d.ts +73 -0
  475. package/dist/storage/hooks/useStorageDelete.d.ts.map +1 -0
  476. package/dist/storage/hooks/useStorageDelete.js +114 -0
  477. package/dist/storage/hooks/useStorageDelete.js.map +1 -0
  478. package/dist/storage/hooks/useStorageList.d.ts +74 -0
  479. package/dist/storage/hooks/useStorageList.d.ts.map +1 -0
  480. package/dist/storage/hooks/useStorageList.js +167 -0
  481. package/dist/storage/hooks/useStorageList.js.map +1 -0
  482. package/dist/storage/hooks/useStorageObject.d.ts +34 -0
  483. package/dist/storage/hooks/useStorageObject.d.ts.map +1 -0
  484. package/dist/storage/hooks/useStorageObject.js +114 -0
  485. package/dist/storage/hooks/useStorageObject.js.map +1 -0
  486. package/dist/storage/hooks/useStorageRulesGate.d.ts +128 -0
  487. package/dist/storage/hooks/useStorageRulesGate.d.ts.map +1 -0
  488. package/dist/storage/hooks/useStorageRulesGate.js +158 -0
  489. package/dist/storage/hooks/useStorageRulesGate.js.map +1 -0
  490. package/dist/storage/hooks/useStorageSelection.d.ts +32 -0
  491. package/dist/storage/hooks/useStorageSelection.d.ts.map +1 -0
  492. package/dist/storage/hooks/useStorageSelection.js +55 -0
  493. package/dist/storage/hooks/useStorageSelection.js.map +1 -0
  494. package/dist/storage/index.d.ts +11 -0
  495. package/dist/storage/index.d.ts.map +1 -0
  496. package/dist/storage/index.js +17 -0
  497. package/dist/storage/index.js.map +1 -0
  498. package/dist/storage/pendingPrefixes.d.ts +73 -0
  499. package/dist/storage/pendingPrefixes.d.ts.map +1 -0
  500. package/dist/storage/pendingPrefixes.js +98 -0
  501. package/dist/storage/pendingPrefixes.js.map +1 -0
  502. package/dist/storage/previews.d.ts +51 -0
  503. package/dist/storage/previews.d.ts.map +1 -0
  504. package/dist/storage/previews.js +73 -0
  505. package/dist/storage/previews.js.map +1 -0
  506. package/dist/storage/storageApi.d.ts +30 -0
  507. package/dist/storage/storageApi.d.ts.map +1 -0
  508. package/dist/storage/storageApi.js +13 -0
  509. package/dist/storage/storageApi.js.map +1 -0
  510. package/dist/traffic/components/RuleHeatmap.d.ts +34 -0
  511. package/dist/traffic/components/RuleHeatmap.d.ts.map +1 -0
  512. package/dist/traffic/components/RuleHeatmap.js +40 -0
  513. package/dist/traffic/components/RuleHeatmap.js.map +1 -0
  514. package/dist/traffic/components/TrafficDetail.d.ts +33 -0
  515. package/dist/traffic/components/TrafficDetail.d.ts.map +1 -0
  516. package/dist/traffic/components/TrafficDetail.js +28 -0
  517. package/dist/traffic/components/TrafficDetail.js.map +1 -0
  518. package/dist/traffic/components/TrafficGroupRow.d.ts +28 -0
  519. package/dist/traffic/components/TrafficGroupRow.d.ts.map +1 -0
  520. package/dist/traffic/components/TrafficGroupRow.js +18 -0
  521. package/dist/traffic/components/TrafficGroupRow.js.map +1 -0
  522. package/dist/traffic/components/TrafficLineChart.d.ts +34 -0
  523. package/dist/traffic/components/TrafficLineChart.d.ts.map +1 -0
  524. package/dist/traffic/components/TrafficLineChart.js +49 -0
  525. package/dist/traffic/components/TrafficLineChart.js.map +1 -0
  526. package/dist/traffic/components/TrafficLog.d.ts +52 -0
  527. package/dist/traffic/components/TrafficLog.d.ts.map +1 -0
  528. package/dist/traffic/components/TrafficLog.js +34 -0
  529. package/dist/traffic/components/TrafficLog.js.map +1 -0
  530. package/dist/traffic/components/TrafficMetricCards.d.ts +26 -0
  531. package/dist/traffic/components/TrafficMetricCards.d.ts.map +1 -0
  532. package/dist/traffic/components/TrafficMetricCards.js +24 -0
  533. package/dist/traffic/components/TrafficMetricCards.js.map +1 -0
  534. package/dist/traffic/components/TrafficRow.d.ts +40 -0
  535. package/dist/traffic/components/TrafficRow.d.ts.map +1 -0
  536. package/dist/traffic/components/TrafficRow.js +27 -0
  537. package/dist/traffic/components/TrafficRow.js.map +1 -0
  538. package/dist/traffic/components/TrafficStats.d.ts +18 -0
  539. package/dist/traffic/components/TrafficStats.d.ts.map +1 -0
  540. package/dist/traffic/components/TrafficStats.js +19 -0
  541. package/dist/traffic/components/TrafficStats.js.map +1 -0
  542. package/dist/traffic/components/TrafficTimeline.d.ts +81 -0
  543. package/dist/traffic/components/TrafficTimeline.d.ts.map +1 -0
  544. package/dist/traffic/components/TrafficTimeline.js +72 -0
  545. package/dist/traffic/components/TrafficTimeline.js.map +1 -0
  546. package/dist/traffic/components/format.d.ts +13 -0
  547. package/dist/traffic/components/format.d.ts.map +1 -0
  548. package/dist/traffic/components/format.js +24 -0
  549. package/dist/traffic/components/format.js.map +1 -0
  550. package/dist/traffic/components/index.d.ts +11 -0
  551. package/dist/traffic/components/index.d.ts.map +1 -0
  552. package/dist/traffic/components/index.js +11 -0
  553. package/dist/traffic/components/index.js.map +1 -0
  554. package/dist/traffic/hooks/index.d.ts +8 -0
  555. package/dist/traffic/hooks/index.d.ts.map +1 -0
  556. package/dist/traffic/hooks/index.js +8 -0
  557. package/dist/traffic/hooks/index.js.map +1 -0
  558. package/dist/traffic/hooks/useRuleHeatmap.d.ts +33 -0
  559. package/dist/traffic/hooks/useRuleHeatmap.d.ts.map +1 -0
  560. package/dist/traffic/hooks/useRuleHeatmap.js +54 -0
  561. package/dist/traffic/hooks/useRuleHeatmap.js.map +1 -0
  562. package/dist/traffic/hooks/useTrafficBuckets.d.ts +71 -0
  563. package/dist/traffic/hooks/useTrafficBuckets.d.ts.map +1 -0
  564. package/dist/traffic/hooks/useTrafficBuckets.js +74 -0
  565. package/dist/traffic/hooks/useTrafficBuckets.js.map +1 -0
  566. package/dist/traffic/hooks/useTrafficFilter.d.ts +40 -0
  567. package/dist/traffic/hooks/useTrafficFilter.d.ts.map +1 -0
  568. package/dist/traffic/hooks/useTrafficFilter.js +33 -0
  569. package/dist/traffic/hooks/useTrafficFilter.js.map +1 -0
  570. package/dist/traffic/hooks/useTrafficGroups.d.ts +47 -0
  571. package/dist/traffic/hooks/useTrafficGroups.d.ts.map +1 -0
  572. package/dist/traffic/hooks/useTrafficGroups.js +73 -0
  573. package/dist/traffic/hooks/useTrafficGroups.js.map +1 -0
  574. package/dist/traffic/hooks/useTrafficMetrics.d.ts +66 -0
  575. package/dist/traffic/hooks/useTrafficMetrics.d.ts.map +1 -0
  576. package/dist/traffic/hooks/useTrafficMetrics.js +156 -0
  577. package/dist/traffic/hooks/useTrafficMetrics.js.map +1 -0
  578. package/dist/traffic/hooks/useTrafficMonitor.d.ts +56 -0
  579. package/dist/traffic/hooks/useTrafficMonitor.d.ts.map +1 -0
  580. package/dist/traffic/hooks/useTrafficMonitor.js +58 -0
  581. package/dist/traffic/hooks/useTrafficMonitor.js.map +1 -0
  582. package/dist/traffic/hooks/useTrafficStats.d.ts +32 -0
  583. package/dist/traffic/hooks/useTrafficStats.d.ts.map +1 -0
  584. package/dist/traffic/hooks/useTrafficStats.js +45 -0
  585. package/dist/traffic/hooks/useTrafficStats.js.map +1 -0
  586. package/dist/traffic/index.d.ts +4 -0
  587. package/dist/traffic/index.d.ts.map +1 -0
  588. package/dist/traffic/index.js +3 -0
  589. package/dist/traffic/index.js.map +1 -0
  590. package/dist/traffic/types.d.ts +72 -0
  591. package/dist/traffic/types.d.ts.map +1 -0
  592. package/dist/traffic/types.js +10 -0
  593. package/dist/traffic/types.js.map +1 -0
  594. package/package.json +116 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrafficLog.js","sourceRoot":"","sources":["../../../src/traffic/components/TrafficLog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { MetricSeries } from '../hooks/useTrafficMetrics.js';
2
+ export interface TrafficMetricCardsProps {
3
+ series: readonly MetricSeries[];
4
+ /** When supplied (with `onToggle`), each card gets a checkbox and
5
+ * doubles as the chart's legend — Console reference semantics
6
+ * ("toggle series visibility"). Omit for a read-only totals strip. */
7
+ visible?: ReadonlySet<string>;
8
+ onToggle?: (key: string) => void;
9
+ formatValue?: (n: number) => string;
10
+ className?: string;
11
+ }
12
+ /**
13
+ * The period-total strip: one card per series, each showing the series'
14
+ * total for the current window. Doubles as BOTH the chart's legend row
15
+ * (pass `visible` + `onToggle` to get the checkbox-toggle semantics) AND
16
+ * the standalone fallback presentation when a chart isn't warranted —
17
+ * this component never depends on {@link TrafficLineChart}.
18
+ *
19
+ * Styling hooks: `[data-pyric-ui="traffic-metric-cards"]`,
20
+ * `[data-pyric-metric-card]` (with `data-pyric-metric-key`,
21
+ * `data-pyric-series-index` — the color channel a chart's lines also
22
+ * key off of, so a card and its line always match), `[data-pyric-metric-hidden]`
23
+ * when toggled off.
24
+ */
25
+ export declare function TrafficMetricCards({ series, visible, onToggle, formatValue, className, }: TrafficMetricCardsProps): import("react").JSX.Element;
26
+ //# sourceMappingURL=TrafficMetricCards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrafficMetricCards.d.ts","sourceRoot":"","sources":["../../../src/traffic/components/TrafficMetricCards.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IAChC;;2EAEuE;IACvE,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,OAAO,EACP,QAAQ,EACR,WAAgC,EAChC,SAAS,GACV,EAAE,uBAAuB,+BA0CzB"}
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ const defaultFormatValue = (n) => String(n);
3
+ /**
4
+ * The period-total strip: one card per series, each showing the series'
5
+ * total for the current window. Doubles as BOTH the chart's legend row
6
+ * (pass `visible` + `onToggle` to get the checkbox-toggle semantics) AND
7
+ * the standalone fallback presentation when a chart isn't warranted —
8
+ * this component never depends on {@link TrafficLineChart}.
9
+ *
10
+ * Styling hooks: `[data-pyric-ui="traffic-metric-cards"]`,
11
+ * `[data-pyric-metric-card]` (with `data-pyric-metric-key`,
12
+ * `data-pyric-series-index` — the color channel a chart's lines also
13
+ * key off of, so a card and its line always match), `[data-pyric-metric-hidden]`
14
+ * when toggled off.
15
+ */
16
+ export function TrafficMetricCards({ series, visible, onToggle, formatValue = defaultFormatValue, className, }) {
17
+ const toggleable = visible !== undefined && onToggle !== undefined;
18
+ return (_jsx("div", { className: className, "data-pyric-ui": "traffic-metric-cards", role: toggleable ? 'group' : undefined, children: series.map((s, index) => {
19
+ const isVisible = visible ? visible.has(s.key) : true;
20
+ const card = (_jsxs(_Fragment, { children: [_jsx("span", { "data-pyric-metric-swatch": "", "aria-hidden": "true" }), _jsx("span", { "data-pyric-metric-label": "", children: s.label }), _jsx("span", { "data-pyric-metric-value": "", children: formatValue(s.total) })] }));
21
+ return toggleable ? (_jsxs("label", { "data-pyric-metric-card": "", "data-pyric-metric-key": s.key, "data-pyric-series-index": index, "data-pyric-metric-hidden": isVisible ? undefined : '', children: [_jsx("input", { type: "checkbox", checked: isVisible, onChange: () => onToggle(s.key), "data-pyric-metric-checkbox": "" }), card] }, s.key)) : (_jsx("span", { "data-pyric-metric-card": "", "data-pyric-metric-key": s.key, "data-pyric-series-index": index, children: card }, s.key));
22
+ }) }));
23
+ }
24
+ //# sourceMappingURL=TrafficMetricCards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrafficMetricCards.js","sourceRoot":"","sources":["../../../src/traffic/components/TrafficMetricCards.tsx"],"names":[],"mappings":";AAaA,MAAM,kBAAkB,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAEpD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,EACjC,MAAM,EACN,OAAO,EACP,QAAQ,EACR,WAAW,GAAG,kBAAkB,EAChC,SAAS,GACe;IACxB,MAAM,UAAU,GAAG,OAAO,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,CAAC;IACnE,OAAO,CACL,cAAK,SAAS,EAAE,SAAS,mBAAgB,sBAAsB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,YACnG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YACvB,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACtD,MAAM,IAAI,GAAG,CACX,8BACE,2CAA+B,EAAE,iBAAa,MAAM,GAAG,EACvD,0CAA8B,EAAE,YAAE,CAAC,CAAC,KAAK,GAAQ,EACjD,0CAA8B,EAAE,YAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,GAAQ,IAC7D,CACJ,CAAC;YACF,OAAO,UAAU,CAAC,CAAC,CAAC,CAClB,2CAEyB,EAAE,2BACF,CAAC,CAAC,GAAG,6BACH,KAAK,8BACJ,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,aAEpD,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAS,CAAC,CAAC,CAAC,GAAG,CAAC,gCACL,EAAE,GAC7B,EACD,IAAI,KAZA,CAAC,CAAC,GAAG,CAaJ,CACT,CAAC,CAAC,CAAC,CACF,yCAEyB,EAAE,2BACF,CAAC,CAAC,GAAG,6BACH,KAAK,YAE7B,IAAI,IALA,CAAC,CAAC,GAAG,CAML,CACR,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { TrafficEvent } from '../types.js';
3
+ export interface TrafficRowProps {
4
+ event: TrafficEvent;
5
+ /** Marks the row as the active selection (`data-pyric-selected`). */
6
+ selected?: boolean;
7
+ onSelect?: (event: TrafficEvent) => void;
8
+ /**
9
+ * Render-prop slot for a consumer-specific classification badge —
10
+ * e.g. the playground's `expected`/`ambiguous`/`unexpected`
11
+ * verdict, which is app-source analysis the library doesn't own.
12
+ * Returns `null` to render nothing.
13
+ */
14
+ renderClassification?: (event: TrafficEvent) => ReactNode;
15
+ /** Override the timestamp rendering. Default is `HH:MM:SS`. */
16
+ formatTime?: (at: number) => string;
17
+ className?: string;
18
+ }
19
+ /**
20
+ * One headless traffic row — timestamp, method badge, path, and an
21
+ * optional consumer classification slot. The raw result is exposed as
22
+ * `data-pyric-result` on the row (for tinting/filtering); rendering a
23
+ * verdict/outcome label is the consumer's job via
24
+ * `renderClassification` — the row itself draws no result chip, so a
25
+ * consumer verdict never collides with a built-in one. Latency is
26
+ * intentionally absent: this is a local simulator, so `evalMs` lives
27
+ * in `<TrafficDetail>` only.
28
+ *
29
+ * Styling hooks:
30
+ * - `[data-pyric-traffic-row]` — the row button, with
31
+ * `data-pyric-result`, `data-pyric-origin`, `data-pyric-method`
32
+ * - `[data-pyric-traffic-row][data-pyric-selected]` — active row
33
+ * - `[data-pyric-traffic-time]` / `[data-pyric-traffic-path]`
34
+ * - `[data-pyric-traffic-service]` — the service label (firestore / rtdb /
35
+ * storage / auth), rendered even when unknown (empty) so fixed-width
36
+ * styling keeps the columns aligned
37
+ * - method renders as `<Badge>` (`data-pyric-badge-kind`)
38
+ */
39
+ export declare function TrafficRow({ event, selected, onSelect, renderClassification, formatTime, className, }: TrafficRowProps): import("react").JSX.Element;
40
+ //# sourceMappingURL=TrafficRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrafficRow.d.ts","sourceRoot":"","sources":["../../../src/traffic/components/TrafficRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACzC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,SAAS,CAAC;IAC1D,+DAA+D;IAC/D,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,oBAAoB,EACpB,UAA8B,EAC9B,SAAS,GACV,EAAE,eAAe,+BAmBjB"}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Badge } from '../../primitives/Badge.js';
3
+ import { defaultFormatTime } from './format.js';
4
+ /**
5
+ * One headless traffic row — timestamp, method badge, path, and an
6
+ * optional consumer classification slot. The raw result is exposed as
7
+ * `data-pyric-result` on the row (for tinting/filtering); rendering a
8
+ * verdict/outcome label is the consumer's job via
9
+ * `renderClassification` — the row itself draws no result chip, so a
10
+ * consumer verdict never collides with a built-in one. Latency is
11
+ * intentionally absent: this is a local simulator, so `evalMs` lives
12
+ * in `<TrafficDetail>` only.
13
+ *
14
+ * Styling hooks:
15
+ * - `[data-pyric-traffic-row]` — the row button, with
16
+ * `data-pyric-result`, `data-pyric-origin`, `data-pyric-method`
17
+ * - `[data-pyric-traffic-row][data-pyric-selected]` — active row
18
+ * - `[data-pyric-traffic-time]` / `[data-pyric-traffic-path]`
19
+ * - `[data-pyric-traffic-service]` — the service label (firestore / rtdb /
20
+ * storage / auth), rendered even when unknown (empty) so fixed-width
21
+ * styling keeps the columns aligned
22
+ * - method renders as `<Badge>` (`data-pyric-badge-kind`)
23
+ */
24
+ export function TrafficRow({ event, selected, onSelect, renderClassification, formatTime = defaultFormatTime, className, }) {
25
+ return (_jsxs("button", { type: "button", onClick: () => onSelect?.(event), className: className, "data-pyric-traffic-row": "", "data-pyric-result": event.result, "data-pyric-origin": event.origin, "data-pyric-method": event.method, "data-pyric-selected": selected ? '' : undefined, children: [_jsx("span", { "data-pyric-traffic-time": "", children: formatTime(event.at) }), _jsx("span", { "data-pyric-traffic-service": event.service ?? '', children: event.service ?? '' }), _jsx(Badge, { kind: event.method, children: event.method }), _jsx("span", { "data-pyric-traffic-path": "", children: event.path }), renderClassification ? renderClassification(event) : null] }));
26
+ }
27
+ //# sourceMappingURL=TrafficRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrafficRow.js","sourceRoot":"","sources":["../../../src/traffic/components/TrafficRow.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAmBhD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,oBAAoB,EACpB,UAAU,GAAG,iBAAiB,EAC9B,SAAS,GACO;IAChB,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAChC,SAAS,EAAE,SAAS,4BACG,EAAE,uBACN,KAAK,CAAC,MAAM,uBACZ,KAAK,CAAC,MAAM,uBACZ,KAAK,CAAC,MAAM,yBACV,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,aAE9C,0CAA8B,EAAE,YAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,GAAQ,EAC9D,6CAAkC,KAAK,CAAC,OAAO,IAAI,EAAE,YAAG,KAAK,CAAC,OAAO,IAAI,EAAE,GAAQ,EACnF,KAAC,KAAK,IAAC,IAAI,EAAE,KAAK,CAAC,MAAM,YAAG,KAAK,CAAC,MAAM,GAAS,EACjD,0CAA8B,EAAE,YAAE,KAAK,CAAC,IAAI,GAAQ,EACnD,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IACnD,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { TrafficStatsSummary } from '../hooks/useTrafficStats.js';
2
+ export interface TrafficStatsProps {
3
+ stats: TrafficStatsSummary;
4
+ className?: string;
5
+ }
6
+ /**
7
+ * Headless aggregation panel. Renders the totals, the deny rate, and
8
+ * count breakdowns by method / origin / path. The deny rate is
9
+ * exposed both as text and as a `--pyric-deny-rate` CSS custom
10
+ * property on the root for a proportional meter.
11
+ *
12
+ * Styling hooks: `[data-pyric-ui="traffic-stats"]`,
13
+ * `[data-pyric-stat]` (with `data-pyric-stat-key`),
14
+ * `[data-pyric-stat-group]` (with `data-pyric-stat-group-label`),
15
+ * `[data-pyric-stat-bucket]`.
16
+ */
17
+ export declare function TrafficStats({ stats, className }: TrafficStatsProps): import("react").JSX.Element;
18
+ //# sourceMappingURL=TrafficStats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrafficStats.d.ts","sourceRoot":"","sources":["../../../src/traffic/components/TrafficStats.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwBD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,iBAAiB,+BAgCnE"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ function BucketList({ label, buckets, }) {
3
+ return (_jsxs("div", { "data-pyric-stat-group": "", "data-pyric-stat-group-label": label, children: [_jsx("h4", { "data-pyric-stat-group-heading": "", children: label }), _jsx("ul", { "data-pyric-stat-buckets": "", children: buckets.map((b) => (_jsxs("li", { "data-pyric-stat-bucket": "", "data-pyric-stat-key": b.key, children: [_jsx("span", { "data-pyric-stat-bucket-label": "", children: b.key }), _jsx("span", { "data-pyric-stat-bucket-count": "", children: b.count })] }, b.key))) })] }));
4
+ }
5
+ /**
6
+ * Headless aggregation panel. Renders the totals, the deny rate, and
7
+ * count breakdowns by method / origin / path. The deny rate is
8
+ * exposed both as text and as a `--pyric-deny-rate` CSS custom
9
+ * property on the root for a proportional meter.
10
+ *
11
+ * Styling hooks: `[data-pyric-ui="traffic-stats"]`,
12
+ * `[data-pyric-stat]` (with `data-pyric-stat-key`),
13
+ * `[data-pyric-stat-group]` (with `data-pyric-stat-group-label`),
14
+ * `[data-pyric-stat-bucket]`.
15
+ */
16
+ export function TrafficStats({ stats, className }) {
17
+ return (_jsxs("div", { className: className, "data-pyric-ui": "traffic-stats", style: { '--pyric-deny-rate': stats.denyRate }, children: [_jsxs("div", { "data-pyric-stat-totals": "", children: [_jsxs("span", { "data-pyric-stat": "", "data-pyric-stat-key": "total", children: [_jsx("span", { "data-pyric-stat-label": "", children: "total" }), _jsx("span", { "data-pyric-stat-value": "", children: stats.total })] }), _jsxs("span", { "data-pyric-stat": "", "data-pyric-stat-key": "allows", children: [_jsx("span", { "data-pyric-stat-label": "", children: "allowed" }), _jsx("span", { "data-pyric-stat-value": "", children: stats.allows })] }), _jsxs("span", { "data-pyric-stat": "", "data-pyric-stat-key": "denies", children: [_jsx("span", { "data-pyric-stat-label": "", children: "denied" }), _jsx("span", { "data-pyric-stat-value": "", children: stats.denies })] }), _jsxs("span", { "data-pyric-stat": "", "data-pyric-stat-key": "deny-rate", children: [_jsx("span", { "data-pyric-stat-label": "", children: "deny rate" }), _jsxs("span", { "data-pyric-stat-value": "", children: [(stats.denyRate * 100).toFixed(0), "%"] })] })] }), _jsx(BucketList, { label: "method", buckets: stats.byMethod }), _jsx(BucketList, { label: "origin", buckets: stats.byOrigin }), _jsx(BucketList, { label: "path", buckets: stats.byPath })] }));
18
+ }
19
+ //# sourceMappingURL=TrafficStats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrafficStats.js","sourceRoot":"","sources":["../../../src/traffic/components/TrafficStats.tsx"],"names":[],"mappings":";AAOA,SAAS,UAAU,CAAC,EAClB,KAAK,EACL,OAAO,GAIR;IACC,OAAO,CACL,wCAA2B,EAAE,iCAA8B,KAAK,aAC9D,8CAAkC,EAAE,YAAE,KAAK,GAAM,EACjD,wCAA4B,EAAE,YAC3B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAClB,wCAAuC,EAAE,yBAAsB,CAAC,CAAC,GAAG,aAClE,+CAAmC,EAAE,YAAE,CAAC,CAAC,GAAG,GAAQ,EACpD,+CAAmC,EAAE,YAAE,CAAC,CAAC,KAAK,GAAQ,KAF/C,CAAC,CAAC,GAAG,CAGT,CACN,CAAC,GACC,IACD,CACP,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAqB;IAClE,OAAO,CACL,eACE,SAAS,EAAE,SAAS,mBACN,eAAe,EAC7B,KAAK,EAAE,EAAE,mBAAmB,EAAE,KAAK,CAAC,QAAQ,EAAyB,aAErE,yCAA4B,EAAE,aAC5B,mCAAsB,EAAE,yBAAqB,OAAO,aAClD,wCAA4B,EAAE,sBAAa,EAC3C,wCAA4B,EAAE,YAAE,KAAK,CAAC,KAAK,GAAQ,IAC9C,EACP,mCAAsB,EAAE,yBAAqB,QAAQ,aACnD,wCAA4B,EAAE,wBAAe,EAC7C,wCAA4B,EAAE,YAAE,KAAK,CAAC,MAAM,GAAQ,IAC/C,EACP,mCAAsB,EAAE,yBAAqB,QAAQ,aACnD,wCAA4B,EAAE,uBAAc,EAC5C,wCAA4B,EAAE,YAAE,KAAK,CAAC,MAAM,GAAQ,IAC/C,EACP,mCAAsB,EAAE,yBAAqB,WAAW,aACtD,wCAA4B,EAAE,0BAAiB,EAC/C,yCAA4B,EAAE,aAC3B,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAC7B,IACF,IACH,EACN,KAAC,UAAU,IAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,GAAI,EACtD,KAAC,UAAU,IAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,GAAI,EACtD,KAAC,UAAU,IAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAE,KAAK,CAAC,MAAM,GAAI,IAC9C,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,81 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { TimeWindow, UseTrafficBucketsResult } from '../hooks/useTrafficBuckets.js';
3
+ import type { TrafficEvent } from '../types.js';
4
+ export interface TrafficTimelineProps {
5
+ /**
6
+ * Raw traffic events to bucket. Ignored when `buckets` is supplied
7
+ * (the consumer pre-bucketed). Exactly one of `events` / `buckets`
8
+ * should drive the histogram.
9
+ */
10
+ events?: TrafficEvent[];
11
+ /**
12
+ * Pre-bucketed counts — the escape hatch when the caller already
13
+ * ran {@link useTrafficBuckets} (or `bucketTraffic`) upstream, e.g.
14
+ * to share one bucketing pass across the timeline + a stats header.
15
+ * Takes precedence over `events`.
16
+ */
17
+ buckets?: UseTrafficBucketsResult;
18
+ /** The time range the histogram spans. */
19
+ window: TimeWindow;
20
+ /** Number of bars. Default 30. Only used on the `events` path. */
21
+ bucketCount?: number;
22
+ /**
23
+ * A brushed sub-range (`[start, end)`) drawn as an overlay over the
24
+ * bars. Position is derived from where it falls inside `window`, so
25
+ * a partly-out-of-window brush clamps to the chart edges.
26
+ */
27
+ brush?: TimeWindow;
28
+ /**
29
+ * Fired when a bar inside the brush region is clicked-through — the
30
+ * component itself is presentation-agnostic about drag, so the
31
+ * primary brush gesture is owned by the consumer. As a built-in
32
+ * affordance, clicking a bucket calls this with a one-bucket-wide
33
+ * window so a bare consumer still gets a working selection.
34
+ */
35
+ onBrush?: (window: TimeWindow) => void;
36
+ /**
37
+ * Where the live edge marker sits, in epoch-ms. Defaults to
38
+ * `window.end` (the right edge = "now"). Omit / pass `null` to hide
39
+ * the marker entirely (e.g. a frozen, non-live window).
40
+ */
41
+ liveAt?: number | null;
42
+ /**
43
+ * Header slot — title, deny summary, live label. Rendered above the
44
+ * bars inside `[data-pyric-timeline-header]`. The mock puts
45
+ * "142 requests · 16 denied · live" here.
46
+ */
47
+ header?: ReactNode;
48
+ /**
49
+ * Axis slot — tick labels below the bars inside
50
+ * `[data-pyric-timeline-axis]`. The mock puts "14m ago · 7m · now"
51
+ * here. Receives the resolved window so labels can be derived.
52
+ */
53
+ axis?: ReactNode | ((window: TimeWindow) => ReactNode);
54
+ emptyState?: ReactNode;
55
+ className?: string;
56
+ }
57
+ /**
58
+ * Headless volume-over-time histogram — the time axis for the traffic
59
+ * lens. Buckets events into N bars; each bar stacks denies (dark, at
60
+ * the base) under the allow remainder, matching the Studio mock.
61
+ *
62
+ * Per-bucket styling channels (on `[data-pyric-bucket]`):
63
+ * - `data-pyric-bucket-count` / `-denies` — raw integers.
64
+ * - `--pyric-bucket-h` — full bar height, 0..1 of the tallest bucket.
65
+ * - `--pyric-bucket-deny-h` — deny sub-stack height, same scale.
66
+ * The deny segment (`[data-pyric-bucket-deny]`) and allow segment
67
+ * (`[data-pyric-bucket-allow]`) are separate children so the consumer
68
+ * colors them independently.
69
+ *
70
+ * A `[data-pyric-brush]` overlay marks a sub-range via
71
+ * `--pyric-brush-left` / `--pyric-brush-right` (0..1 fractions). The
72
+ * `[data-pyric-live]` edge marker sits at `--pyric-live-x`.
73
+ *
74
+ * Styling hooks: `[data-pyric-ui="traffic-timeline"]`,
75
+ * `[data-pyric-timeline-header]`, `[data-pyric-timeline-bars]`,
76
+ * `[data-pyric-bucket]` (with `data-pyric-bucket-index`,
77
+ * `data-pyric-has-denies`), `[data-pyric-brush]`,
78
+ * `[data-pyric-live]`, `[data-pyric-timeline-axis]`.
79
+ */
80
+ export declare function TrafficTimeline({ events, buckets: prebucketed, window, bucketCount, brush, onBrush, liveAt, header, axis, emptyState, className, }: TrafficTimelineProps): import("react").JSX.Element;
81
+ //# sourceMappingURL=TrafficTimeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrafficTimeline.d.ts","sourceRoot":"","sources":["../../../src/traffic/components/TrafficTimeline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EACV,UAAU,EAEV,uBAAuB,EACxB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,0CAA0C;IAC1C,MAAM,EAAE,UAAU,CAAC;IACnB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACvC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC;IACvD,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgBD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,OAAO,EAAE,WAAW,EACpB,MAAM,EACN,WAAgB,EAChB,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,IAAI,EACJ,UAAU,EACV,SAAS,GACV,EAAE,oBAAoB,+BAyEtB"}
@@ -0,0 +1,72 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useTrafficBuckets } from '../hooks/useTrafficBuckets.js';
3
+ /** Clamp a 0..1 fraction. */
4
+ function clamp01(n) {
5
+ if (n < 0)
6
+ return 0;
7
+ if (n > 1)
8
+ return 1;
9
+ return n;
10
+ }
11
+ /** Fraction (0..1) of `t` across `[window.start, window.end)`. */
12
+ function fraction(t, window) {
13
+ const span = window.end - window.start;
14
+ if (span <= 0)
15
+ return 0;
16
+ return clamp01((t - window.start) / span);
17
+ }
18
+ /**
19
+ * Headless volume-over-time histogram — the time axis for the traffic
20
+ * lens. Buckets events into N bars; each bar stacks denies (dark, at
21
+ * the base) under the allow remainder, matching the Studio mock.
22
+ *
23
+ * Per-bucket styling channels (on `[data-pyric-bucket]`):
24
+ * - `data-pyric-bucket-count` / `-denies` — raw integers.
25
+ * - `--pyric-bucket-h` — full bar height, 0..1 of the tallest bucket.
26
+ * - `--pyric-bucket-deny-h` — deny sub-stack height, same scale.
27
+ * The deny segment (`[data-pyric-bucket-deny]`) and allow segment
28
+ * (`[data-pyric-bucket-allow]`) are separate children so the consumer
29
+ * colors them independently.
30
+ *
31
+ * A `[data-pyric-brush]` overlay marks a sub-range via
32
+ * `--pyric-brush-left` / `--pyric-brush-right` (0..1 fractions). The
33
+ * `[data-pyric-live]` edge marker sits at `--pyric-live-x`.
34
+ *
35
+ * Styling hooks: `[data-pyric-ui="traffic-timeline"]`,
36
+ * `[data-pyric-timeline-header]`, `[data-pyric-timeline-bars]`,
37
+ * `[data-pyric-bucket]` (with `data-pyric-bucket-index`,
38
+ * `data-pyric-has-denies`), `[data-pyric-brush]`,
39
+ * `[data-pyric-live]`, `[data-pyric-timeline-axis]`.
40
+ */
41
+ export function TrafficTimeline({ events, buckets: prebucketed, window, bucketCount = 30, brush, onBrush, liveAt, header, axis, emptyState, className, }) {
42
+ // Hook is always called (rules of hooks); its result is discarded
43
+ // when the caller pre-bucketed.
44
+ const computed = useTrafficBuckets({
45
+ events: events ?? [],
46
+ window,
47
+ bucketCount,
48
+ });
49
+ const result = prebucketed ?? computed;
50
+ const { buckets, total } = result;
51
+ if (buckets.length === 0) {
52
+ return (_jsx("div", { className: className, "data-pyric-ui": "traffic-timeline", "data-pyric-empty": "", children: emptyState }));
53
+ }
54
+ const isEmpty = total === 0;
55
+ const livePoint = liveAt === undefined ? window.end : liveAt;
56
+ const liveX = livePoint == null ? null : fraction(livePoint, window);
57
+ const resolvedAxis = typeof axis === 'function' ? axis(window) : axis;
58
+ return (_jsxs("div", { className: className, "data-pyric-ui": "traffic-timeline", "data-pyric-empty": isEmpty ? '' : undefined, children: [header !== undefined && (_jsx("div", { "data-pyric-timeline-header": "", children: header })), _jsxs("div", { "data-pyric-timeline-chart": "", children: [_jsx("div", { "data-pyric-timeline-bars": "", role: "img", "aria-label": "request volume over time", children: buckets.map((bucket) => (_jsx(Bar, { bucket: bucket, window: window, onBrush: onBrush }, bucket.index))) }), brush && (_jsx("div", { "data-pyric-brush": "", "aria-hidden": "true", style: {
59
+ '--pyric-brush-left': fraction(brush.start, window),
60
+ '--pyric-brush-right': 1 - fraction(brush.end, window),
61
+ } })), liveX != null && (_jsx("div", { "data-pyric-live": "", "aria-hidden": "true", style: { '--pyric-live-x': liveX } }))] }), resolvedAxis !== undefined && resolvedAxis !== null && (_jsx("div", { "data-pyric-timeline-axis": "", children: resolvedAxis }))] }));
62
+ }
63
+ function Bar({ bucket, window, onBrush, }) {
64
+ const interactive = onBrush !== undefined;
65
+ return (_jsxs("button", { type: "button", "data-pyric-bucket": "", "data-pyric-bucket-index": bucket.index, "data-pyric-bucket-count": bucket.count, "data-pyric-bucket-denies": bucket.denies, "data-pyric-has-denies": bucket.denies > 0 ? '' : undefined, disabled: !interactive, onClick: interactive
66
+ ? () => onBrush?.({ start: bucket.start, end: bucket.end })
67
+ : undefined, style: {
68
+ '--pyric-bucket-h': bucket.heightRatio,
69
+ '--pyric-bucket-deny-h': bucket.denyHeightRatio,
70
+ }, children: [_jsx("span", { "data-pyric-bucket-allow": "", "aria-hidden": "true" }), _jsx("span", { "data-pyric-bucket-deny": "", "aria-hidden": "true" })] }));
71
+ }
72
+ //# sourceMappingURL=TrafficTimeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrafficTimeline.js","sourceRoot":"","sources":["../../../src/traffic/components/TrafficTimeline.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Default `HH:MM:SS` timestamp formatter. Components accept a
3
+ * `formatTime` prop to override — this is just the fallback so the
4
+ * library has no hard locale dependency.
5
+ */
6
+ export declare function defaultFormatTime(at: number): string;
7
+ /**
8
+ * Classifies a simulator debug line as a deny / allow / neutral
9
+ * verdict so consumers can tint reason rows via
10
+ * `[data-pyric-reason-verdict="…"]`.
11
+ */
12
+ export declare function reasonVerdict(reason: string): 'deny' | 'allow' | 'neutral';
13
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/traffic/components/format.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAK1E"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Default `HH:MM:SS` timestamp formatter. Components accept a
3
+ * `formatTime` prop to override — this is just the fallback so the
4
+ * library has no hard locale dependency.
5
+ */
6
+ export function defaultFormatTime(at) {
7
+ const d = new Date(at);
8
+ const pad = (n) => String(n).padStart(2, '0');
9
+ return `${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;
10
+ }
11
+ /**
12
+ * Classifies a simulator debug line as a deny / allow / neutral
13
+ * verdict so consumers can tint reason rows via
14
+ * `[data-pyric-reason-verdict="…"]`.
15
+ */
16
+ export function reasonVerdict(reason) {
17
+ const lower = reason.toLowerCase();
18
+ if (lower.includes('deny'))
19
+ return 'deny';
20
+ if (lower.includes('allow'))
21
+ return 'allow';
22
+ return 'neutral';
23
+ }
24
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/traffic/components/format.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAU;IAC1C,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACvB,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC5C,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export { TrafficRow, type TrafficRowProps } from './TrafficRow.js';
2
+ export { TrafficLog, type TrafficLogProps } from './TrafficLog.js';
3
+ export { TrafficGroupRow, type TrafficGroupRowProps, } from './TrafficGroupRow.js';
4
+ export { TrafficDetail, type TrafficDetailProps } from './TrafficDetail.js';
5
+ export { RuleHeatmap, type RuleHeatmapProps } from './RuleHeatmap.js';
6
+ export { TrafficStats, type TrafficStatsProps } from './TrafficStats.js';
7
+ export { TrafficTimeline, type TrafficTimelineProps, } from './TrafficTimeline.js';
8
+ export { defaultFormatTime, reasonVerdict } from './format.js';
9
+ export { TrafficMetricCards, type TrafficMetricCardsProps, } from './TrafficMetricCards.js';
10
+ export { TrafficLineChart, type TrafficLineChartProps, } from './TrafficLineChart.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/traffic/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export { TrafficRow } from './TrafficRow.js';
2
+ export { TrafficLog } from './TrafficLog.js';
3
+ export { TrafficGroupRow, } from './TrafficGroupRow.js';
4
+ export { TrafficDetail } from './TrafficDetail.js';
5
+ export { RuleHeatmap } from './RuleHeatmap.js';
6
+ export { TrafficStats } from './TrafficStats.js';
7
+ export { TrafficTimeline, } from './TrafficTimeline.js';
8
+ export { defaultFormatTime, reasonVerdict } from './format.js';
9
+ export { TrafficMetricCards, } from './TrafficMetricCards.js';
10
+ export { TrafficLineChart, } from './TrafficLineChart.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/traffic/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EACL,eAAe,GAEhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAyB,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,YAAY,EAA0B,MAAM,mBAAmB,CAAC;AACzE,OAAO,EACL,eAAe,GAEhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,kBAAkB,GAEnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,gBAAgB,GAEjB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { useTrafficMonitor, type UseTrafficMonitorOptions, type UseTrafficMonitorResult, type TrafficCounts, } from './useTrafficMonitor.js';
2
+ export { useTrafficFilter, type UseTrafficFilterOptions, type UseTrafficFilterResult, type TrafficFilterState, type TrafficOriginFilter, type TrafficResultFilter, } from './useTrafficFilter.js';
3
+ export { useRuleHeatmap, type UseRuleHeatmapOptions, type UseRuleHeatmapResult, type RuleHeatmapEntry, } from './useRuleHeatmap.js';
4
+ export { useTrafficStats, type UseTrafficStatsOptions, type TrafficStatsSummary, type TrafficStatBucket, } from './useTrafficStats.js';
5
+ export { useTrafficGroups, type UseTrafficGroupsOptions, type UseTrafficGroupsResult, type TrafficLogItem, type TrafficGroup, type TrafficSingle, type TrafficGroupKind, } from './useTrafficGroups.js';
6
+ export { useTrafficBuckets, bucketTraffic, type UseTrafficBucketsOptions, type UseTrafficBucketsResult, type TrafficBucket, type TimeWindow, } from './useTrafficBuckets.js';
7
+ export { useBillableMetrics, useRulesMetrics, bucketBillableMetrics, bucketRulesMetrics, classifyBillable, classifyRules, isAdminEvent, BILLABLE_SERIES_DEFS, RULES_SERIES_DEFS, type UseTrafficMetricsOptions, type TrafficMetricsResult, type MetricPoint, type MetricSeries, type BillableSeriesKey, type RulesSeriesKey, } from './useTrafficMetrics.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/traffic/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,aAAa,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAClB,KAAK,UAAU,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { useTrafficMonitor, } from './useTrafficMonitor.js';
2
+ export { useTrafficFilter, } from './useTrafficFilter.js';
3
+ export { useRuleHeatmap, } from './useRuleHeatmap.js';
4
+ export { useTrafficStats, } from './useTrafficStats.js';
5
+ export { useTrafficGroups, } from './useTrafficGroups.js';
6
+ export { useTrafficBuckets, bucketTraffic, } from './useTrafficBuckets.js';
7
+ export { useBillableMetrics, useRulesMetrics, bucketBillableMetrics, bucketRulesMetrics, classifyBillable, classifyRules, isAdminEvent, BILLABLE_SERIES_DEFS, RULES_SERIES_DEFS, } from './useTrafficMetrics.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/traffic/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAIlB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,gBAAgB,GAMjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,GAIf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,GAIhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,gBAAgB,GAOjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,aAAa,GAKd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,GAOlB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { TrafficEvent } from '../types.js';
2
+ export interface RuleHeatmapEntry {
3
+ /** The rule's index in the rules file. */
4
+ ruleIndex: number;
5
+ /** Union of all operations seen matching this rule. */
6
+ operations: string[];
7
+ /** Total events that matched this rule. */
8
+ total: number;
9
+ allows: number;
10
+ denies: number;
11
+ unsupported: number;
12
+ /** `denies / total` — 0 when the rule never denied. */
13
+ denyRatio: number;
14
+ }
15
+ export interface UseRuleHeatmapOptions {
16
+ events: TrafficEvent[];
17
+ }
18
+ export interface UseRuleHeatmapResult {
19
+ /** Per-rule rollup, sorted by `total` descending (busiest first),
20
+ * ties broken by `ruleIndex` ascending. */
21
+ entries: RuleHeatmapEntry[];
22
+ /** Events that matched no rule — counted here, not attributed to
23
+ * any entry. */
24
+ unmatchedCount: number;
25
+ }
26
+ /**
27
+ * Rolls a traffic buffer up by `matchedRule.ruleIndex`: how often
28
+ * each rule fired, and how that split across allow / deny /
29
+ * unsupported. Pure derivation — feed it the filtered or full
30
+ * event list depending on what the heatmap should reflect.
31
+ */
32
+ export declare function useRuleHeatmap({ events, }: UseRuleHeatmapOptions): UseRuleHeatmapResult;
33
+ //# sourceMappingURL=useRuleHeatmap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRuleHeatmap.d.ts","sourceRoot":"","sources":["../../../src/traffic/hooks/useRuleHeatmap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC;gDAC4C;IAC5C,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B;qBACiB;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB;AAWD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,GACP,EAAE,qBAAqB,GAAG,oBAAoB,CA4C9C"}
@@ -0,0 +1,54 @@
1
+ import { useMemo } from 'react';
2
+ /**
3
+ * Rolls a traffic buffer up by `matchedRule.ruleIndex`: how often
4
+ * each rule fired, and how that split across allow / deny /
5
+ * unsupported. Pure derivation — feed it the filtered or full
6
+ * event list depending on what the heatmap should reflect.
7
+ */
8
+ export function useRuleHeatmap({ events, }) {
9
+ return useMemo(() => {
10
+ const byRule = new Map();
11
+ let unmatchedCount = 0;
12
+ for (const event of events) {
13
+ if (!event.matchedRule) {
14
+ unmatchedCount++;
15
+ continue;
16
+ }
17
+ const { ruleIndex, operations } = event.matchedRule;
18
+ let acc = byRule.get(ruleIndex);
19
+ if (!acc) {
20
+ acc = {
21
+ ruleIndex,
22
+ operations: new Set(),
23
+ total: 0,
24
+ allows: 0,
25
+ denies: 0,
26
+ unsupported: 0,
27
+ };
28
+ byRule.set(ruleIndex, acc);
29
+ }
30
+ for (const op of operations)
31
+ acc.operations.add(op);
32
+ acc.total++;
33
+ if (event.result === 'allow')
34
+ acc.allows++;
35
+ else if (event.result === 'deny')
36
+ acc.denies++;
37
+ else
38
+ acc.unsupported++;
39
+ }
40
+ const entries = [...byRule.values()]
41
+ .map((acc) => ({
42
+ ruleIndex: acc.ruleIndex,
43
+ operations: [...acc.operations],
44
+ total: acc.total,
45
+ allows: acc.allows,
46
+ denies: acc.denies,
47
+ unsupported: acc.unsupported,
48
+ denyRatio: acc.total === 0 ? 0 : acc.denies / acc.total,
49
+ }))
50
+ .sort((a, b) => b.total - a.total || a.ruleIndex - b.ruleIndex);
51
+ return { entries, unmatchedCount };
52
+ }, [events]);
53
+ }
54
+ //# sourceMappingURL=useRuleHeatmap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRuleHeatmap.js","sourceRoot":"","sources":["../../../src/traffic/hooks/useRuleHeatmap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAuChC;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,MAAM,GACgB;IACtB,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC9C,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBACvB,cAAc,EAAE,CAAC;gBACjB,SAAS;YACX,CAAC;YACD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC;YACpD,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAChC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,GAAG,GAAG;oBACJ,SAAS;oBACT,UAAU,EAAE,IAAI,GAAG,EAAE;oBACrB,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,CAAC;oBACT,MAAM,EAAE,CAAC;oBACT,WAAW,EAAE,CAAC;iBACf,CAAC;gBACF,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC7B,CAAC;YACD,KAAK,MAAM,EAAE,IAAI,UAAU;gBAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpD,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;gBAAE,GAAG,CAAC,MAAM,EAAE,CAAC;iBACtC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;gBAAE,GAAG,CAAC,MAAM,EAAE,CAAC;;gBAC1C,GAAG,CAAC,WAAW,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,OAAO,GAAuB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;aACrD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACb,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,UAAU,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC;YAC/B,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,SAAS,EAAE,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK;SACxD,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QAElE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IACrC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACf,CAAC"}