@shivaedev/work-board 0.14.2 → 0.15.0

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 (196) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +1 -1
  3. package/assets/agent.js +1 -1
  4. package/assets/native.js +25 -25
  5. package/assets/react.js +38 -37
  6. package/dist/browser/diagnostics/schema.d.ts +15 -12
  7. package/dist/browser/diagnostics/schema.d.ts.map +1 -1
  8. package/dist/browser/diagnostics/schema.js +12 -2
  9. package/dist/browser/diagnostics/schema.js.map +1 -1
  10. package/dist/browser/views/remaining.d.ts +20 -12
  11. package/dist/browser/views/remaining.d.ts.map +1 -1
  12. package/dist/client/client.d.ts +1 -0
  13. package/dist/client/client.d.ts.map +1 -1
  14. package/dist/client/client.js +1 -1
  15. package/dist/client/client.js.map +1 -1
  16. package/dist/client/formStatus.d.ts +12 -0
  17. package/dist/client/formStatus.d.ts.map +1 -0
  18. package/dist/client/formStatus.js +27 -0
  19. package/dist/client/formStatus.js.map +1 -0
  20. package/dist/client/react/BoardShell.d.ts.map +1 -1
  21. package/dist/client/react/BoardShell.js +15 -21
  22. package/dist/client/react/BoardShell.js.map +1 -1
  23. package/dist/client/react/DocumentContext.d.ts.map +1 -1
  24. package/dist/client/react/DocumentContext.js +6 -3
  25. package/dist/client/react/DocumentContext.js.map +1 -1
  26. package/dist/client/react/FormContext.d.ts +5 -0
  27. package/dist/client/react/FormContext.d.ts.map +1 -0
  28. package/dist/client/react/FormContext.js +10 -0
  29. package/dist/client/react/FormContext.js.map +1 -0
  30. package/dist/client/react/LiveControls.d.ts +4 -3
  31. package/dist/client/react/LiveControls.d.ts.map +1 -1
  32. package/dist/client/react/LiveControls.js +5 -19
  33. package/dist/client/react/LiveControls.js.map +1 -1
  34. package/dist/client/react/MainLocationContext.d.ts +3 -0
  35. package/dist/client/react/MainLocationContext.d.ts.map +1 -0
  36. package/dist/client/react/MainLocationContext.js +7 -0
  37. package/dist/client/react/MainLocationContext.js.map +1 -0
  38. package/dist/client/react/ProjectionFrame.d.ts +1 -2
  39. package/dist/client/react/ProjectionFrame.d.ts.map +1 -1
  40. package/dist/client/react/ProjectionFrame.js +10 -4
  41. package/dist/client/react/ProjectionFrame.js.map +1 -1
  42. package/dist/client/react/ReadingLibrary.d.ts.map +1 -1
  43. package/dist/client/react/ReadingLibrary.js +7 -8
  44. package/dist/client/react/ReadingLibrary.js.map +1 -1
  45. package/dist/client/react/SystemPage.d.ts.map +1 -1
  46. package/dist/client/react/SystemPage.js +2 -1
  47. package/dist/client/react/SystemPage.js.map +1 -1
  48. package/dist/client/react/TodayOptions.d.ts.map +1 -1
  49. package/dist/client/react/TodayOptions.js +23 -14
  50. package/dist/client/react/TodayOptions.js.map +1 -1
  51. package/dist/client/react/VisualViewer.d.ts.map +1 -1
  52. package/dist/client/react/VisualViewer.js +6 -5
  53. package/dist/client/react/VisualViewer.js.map +1 -1
  54. package/dist/client/react/boardRouter.d.ts +3 -2
  55. package/dist/client/react/boardRouter.d.ts.map +1 -1
  56. package/dist/client/react/boardRouter.js +2 -1
  57. package/dist/client/react/boardRouter.js.map +1 -1
  58. package/dist/client/react/createResponse.d.ts +32 -4
  59. package/dist/client/react/createResponse.d.ts.map +1 -1
  60. package/dist/client/react/createResponse.js +7 -28
  61. package/dist/client/react/createResponse.js.map +1 -1
  62. package/dist/client/react/diagnosticsValues.d.ts.map +1 -1
  63. package/dist/client/react/diagnosticsValues.js +5 -7
  64. package/dist/client/react/diagnosticsValues.js.map +1 -1
  65. package/dist/client/react/entry.d.ts.map +1 -1
  66. package/dist/client/react/entry.js +2 -34
  67. package/dist/client/react/entry.js.map +1 -1
  68. package/dist/client/react/githubLimited.d.ts +3 -0
  69. package/dist/client/react/githubLimited.d.ts.map +1 -0
  70. package/dist/client/react/githubLimited.js +4 -0
  71. package/dist/client/react/githubLimited.js.map +1 -0
  72. package/dist/client/react/loadProjection.d.ts +135 -135
  73. package/dist/client/react/loadRemaining.d.ts +37 -29
  74. package/dist/client/react/loadRemaining.d.ts.map +1 -1
  75. package/dist/client/react/mainLocation.d.ts +4 -2
  76. package/dist/client/react/mainLocation.d.ts.map +1 -1
  77. package/dist/client/react/mainLocation.js +1 -8
  78. package/dist/client/react/mainLocation.js.map +1 -1
  79. package/dist/client/react/mountBoard.d.ts +3 -0
  80. package/dist/client/react/mountBoard.d.ts.map +1 -0
  81. package/dist/client/react/mountBoard.js +45 -0
  82. package/dist/client/react/mountBoard.js.map +1 -0
  83. package/dist/client/react/navigationLocation.d.ts +1 -1
  84. package/dist/client/react/navigationLocation.d.ts.map +1 -1
  85. package/dist/client/react/navigationLocation.js +1 -1
  86. package/dist/client/react/navigationLocation.js.map +1 -1
  87. package/dist/client/react/retryPage.d.ts +2 -1
  88. package/dist/client/react/retryPage.d.ts.map +1 -1
  89. package/dist/client/react/retryPage.js +3 -4
  90. package/dist/client/react/retryPage.js.map +1 -1
  91. package/dist/client/react/useBoardNavigation.d.ts.map +1 -1
  92. package/dist/client/react/useBoardNavigation.js +18 -8
  93. package/dist/client/react/useBoardNavigation.js.map +1 -1
  94. package/dist/client/react/useDocumentPage.d.ts +1 -1
  95. package/dist/client/react/useDocumentPage.d.ts.map +1 -1
  96. package/dist/client/react/useDocumentPage.js +9 -6
  97. package/dist/client/react/useDocumentPage.js.map +1 -1
  98. package/dist/client/react/useHandoffForm.d.ts +56 -30
  99. package/dist/client/react/useHandoffForm.d.ts.map +1 -1
  100. package/dist/client/react/useHandoffForm.js +19 -30
  101. package/dist/client/react/useHandoffForm.js.map +1 -1
  102. package/dist/client/react/useResponseForm.d.ts +72 -43
  103. package/dist/client/react/useResponseForm.d.ts.map +1 -1
  104. package/dist/client/react/useResponseForm.js +20 -17
  105. package/dist/client/react/useResponseForm.js.map +1 -1
  106. package/dist/client/react/visualSources.d.ts.map +1 -1
  107. package/dist/client/react/visualSources.js +10 -8
  108. package/dist/client/react/visualSources.js.map +1 -1
  109. package/dist/client/saveFailure.d.ts +8 -0
  110. package/dist/client/saveFailure.d.ts.map +1 -0
  111. package/dist/client/saveFailure.js +8 -0
  112. package/dist/client/saveFailure.js.map +1 -0
  113. package/dist/diagnostics/daemonContract.d.ts +65 -38
  114. package/dist/diagnostics/daemonContract.d.ts.map +1 -1
  115. package/dist/diagnostics/daemonContract.js +2 -1
  116. package/dist/diagnostics/daemonContract.js.map +1 -1
  117. package/dist/diagnostics/health.d.ts +10 -0
  118. package/dist/diagnostics/health.d.ts.map +1 -1
  119. package/dist/diagnostics/health.js +2 -0
  120. package/dist/diagnostics/health.js.map +1 -1
  121. package/dist/diagnostics/source.d.ts +55 -36
  122. package/dist/diagnostics/source.d.ts.map +1 -1
  123. package/dist/diagnostics/source.js +1 -2
  124. package/dist/diagnostics/source.js.map +1 -1
  125. package/dist/rpc/contract.d.ts +60 -36
  126. package/dist/rpc/contract.d.ts.map +1 -1
  127. package/dist/server/diagnostics/daemon.d.ts +41 -25
  128. package/dist/server/diagnostics/daemon.d.ts.map +1 -1
  129. package/dist/server/diagnostics/fleetHealth.d.ts +10 -0
  130. package/dist/server/diagnostics/fleetHealth.d.ts.map +1 -1
  131. package/dist/server/diagnostics/githubLimits.d.ts +12 -13
  132. package/dist/server/diagnostics/githubLimits.d.ts.map +1 -1
  133. package/dist/server/diagnostics/githubLimits.js +6 -6
  134. package/dist/server/diagnostics/githubLimits.js.map +1 -1
  135. package/dist/server/integration/diagnostics.d.ts +74 -38
  136. package/dist/server/integration/diagnostics.d.ts.map +1 -1
  137. package/dist/server/mcp/client.d.ts +20 -12
  138. package/dist/server/mcp/client.d.ts.map +1 -1
  139. package/dist/server/mcp/queries.d.ts +60 -36
  140. package/dist/server/mcp/queries.d.ts.map +1 -1
  141. package/dist/server/metadata/fields.js +1 -1
  142. package/dist/server/metadata/fields.js.map +1 -1
  143. package/dist/server/packageInfo.d.ts +1 -1
  144. package/dist/server/packageInfo.js +1 -1
  145. package/dist/server/views/remainingQueries.d.ts +20 -12
  146. package/dist/server/views/remainingQueries.d.ts.map +1 -1
  147. package/package.json +7 -6
  148. package/src/browser/diagnostics/schema.ts +12 -2
  149. package/src/client/client.ts +2 -1
  150. package/src/client/formStatus.ts +35 -0
  151. package/src/client/react/BoardShell.tsx +19 -26
  152. package/src/client/react/DocumentContext.tsx +6 -3
  153. package/src/client/react/FormContext.ts +13 -0
  154. package/src/client/react/LiveControls.tsx +5 -25
  155. package/src/client/react/MainLocationContext.ts +8 -0
  156. package/src/client/react/ProjectionFrame.tsx +13 -5
  157. package/src/client/react/ReadingLibrary.tsx +7 -8
  158. package/src/client/react/SystemPage.tsx +2 -1
  159. package/src/client/react/TodayOptions.tsx +40 -33
  160. package/src/client/react/VisualViewer.tsx +6 -6
  161. package/src/client/react/boardRouter.ts +3 -2
  162. package/src/client/react/createResponse.ts +10 -35
  163. package/src/client/react/diagnosticsValues.tsx +20 -12
  164. package/src/client/react/entry.tsx +2 -37
  165. package/src/client/react/githubLimited.ts +5 -0
  166. package/src/client/react/mainLocation.ts +5 -8
  167. package/src/client/react/mountBoard.tsx +49 -0
  168. package/src/client/react/navigationLocation.ts +2 -2
  169. package/src/client/react/retryPage.ts +4 -4
  170. package/src/client/react/useBoardNavigation.ts +20 -8
  171. package/src/client/react/useDocumentPage.ts +12 -6
  172. package/src/client/react/useHandoffForm.ts +25 -33
  173. package/src/client/react/useResponseForm.ts +20 -18
  174. package/src/client/react/visualSources.ts +10 -8
  175. package/src/client/saveFailure.ts +14 -0
  176. package/src/diagnostics/daemonContract.ts +2 -1
  177. package/src/diagnostics/health.ts +2 -0
  178. package/src/diagnostics/source.ts +1 -2
  179. package/src/server/diagnostics/githubLimits.ts +9 -11
  180. package/src/server/metadata/fields.ts +1 -1
  181. package/src/server/packageInfo.ts +1 -1
  182. package/dist/client/handoffs/failureStatus.d.ts +0 -2
  183. package/dist/client/handoffs/failureStatus.d.ts.map +0 -1
  184. package/dist/client/handoffs/failureStatus.js +0 -7
  185. package/dist/client/handoffs/failureStatus.js.map +0 -1
  186. package/dist/client/responses/failure.d.ts +0 -5
  187. package/dist/client/responses/failure.d.ts.map +0 -1
  188. package/dist/client/responses/failure.js +0 -13
  189. package/dist/client/responses/failure.js.map +0 -1
  190. package/dist/server/diagnostics/readCommand.d.ts +0 -4
  191. package/dist/server/diagnostics/readCommand.d.ts.map +0 -1
  192. package/dist/server/diagnostics/readCommand.js +0 -20
  193. package/dist/server/diagnostics/readCommand.js.map +0 -1
  194. package/src/client/handoffs/failureStatus.ts +0 -6
  195. package/src/client/responses/failure.ts +0 -13
  196. package/src/server/diagnostics/readCommand.ts +0 -24
@@ -20,22 +20,25 @@ export declare const CodexLimits: Schema.Struct<{
20
20
  export type CodexLimits = typeof CodexLimits.Type;
21
21
  export declare const GithubWindow: Schema.Struct<{
22
22
  readonly limit: Schema.Int;
23
+ readonly limitedBy: Schema.NullOr<Schema.Literals<readonly ["rate-limit", "reserve"]>>;
24
+ readonly limitedUntil: Schema.NullOr<Schema.Number>;
25
+ readonly observedAt: Schema.Number;
23
26
  readonly remaining: Schema.Int;
24
27
  readonly reset: Schema.Int;
28
+ readonly resource: Schema.String;
29
+ readonly used: Schema.Int;
25
30
  }>;
26
31
  export type GithubWindow = typeof GithubWindow.Type;
27
- export declare const GithubLimits: Schema.Struct<{
28
- readonly core: Schema.Struct<{
29
- readonly limit: Schema.Int;
30
- readonly remaining: Schema.Int;
31
- readonly reset: Schema.Int;
32
- }>;
33
- readonly graphql: Schema.Struct<{
34
- readonly limit: Schema.Int;
35
- readonly remaining: Schema.Int;
36
- readonly reset: Schema.Int;
37
- }>;
38
- }>;
32
+ export declare const GithubLimits: Schema.$Array<Schema.Struct<{
33
+ readonly limit: Schema.Int;
34
+ readonly limitedBy: Schema.NullOr<Schema.Literals<readonly ["rate-limit", "reserve"]>>;
35
+ readonly limitedUntil: Schema.NullOr<Schema.Number>;
36
+ readonly observedAt: Schema.Number;
37
+ readonly remaining: Schema.Int;
38
+ readonly reset: Schema.Int;
39
+ readonly resource: Schema.String;
40
+ readonly used: Schema.Int;
41
+ }>>;
39
42
  export type GithubLimits = typeof GithubLimits.Type;
40
43
  export type Observation<A> = {
41
44
  readonly state: "ready";
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/browser/diagnostics/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,eAAO,MAAM,WAAW;;;;EAItB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;AAClD,eAAO,MAAM,WAAW;;;;;;;;;;;EAAgG,CAAC;AACzH,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;AAElD,eAAO,MAAM,YAAY;;;;EAAuH,CAAC;AACjJ,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC;AACpD,eAAO,MAAM,YAAY;;;;;;;;;;;EAA+D,CAAC;AACzF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC;AAEpD,MAAM,MAAM,WAAW,CAAC,CAAC,IACtB;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAC3E;IAAE,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/browser/diagnostics/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,eAAO,MAAM,WAAW;;;;EAItB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;AAClD,eAAO,MAAM,WAAW;;;;;;;;;;;EAAgG,CAAC;AACzH,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;AAGlD,eAAO,MAAM,YAAY;;;;;;;;;EASvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC;AACpD,eAAO,MAAM,YAAY;;;;;;;;;GAA2D,CAAC;AACrF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC;AAEpD,MAAM,MAAM,WAAW,CAAC,CAAC,IACtB;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAC3E;IAAE,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -6,6 +6,16 @@ export const UsageWindow = Schema.Struct({
6
6
  });
7
7
  export const CodexLimits = Schema.Struct({ primary: Schema.NullOr(UsageWindow), secondary: Schema.NullOr(UsageWindow) });
8
8
  const Count = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0));
9
- export const GithubWindow = Schema.Struct({ limit: Count, remaining: Count, reset: Count.check(Schema.isLessThanOrEqualTo(8_640_000_000_000)) });
10
- export const GithubLimits = Schema.Struct({ core: GithubWindow, graphql: GithubWindow });
9
+ const Timestamp = Schema.Number.check(Schema.isFinite(), Schema.isGreaterThanOrEqualTo(0), Schema.isLessThanOrEqualTo(8_640_000_000_000_000));
10
+ export const GithubWindow = Schema.Struct({
11
+ limit: Count,
12
+ limitedBy: Schema.NullOr(Schema.Literals(["rate-limit", "reserve"])),
13
+ limitedUntil: Schema.NullOr(Timestamp),
14
+ observedAt: Timestamp,
15
+ remaining: Count,
16
+ reset: Count.check(Schema.isLessThanOrEqualTo(8_640_000_000_000)),
17
+ resource: Schema.String.check(Schema.isMinLength(1), Schema.isMaxLength(100)),
18
+ used: Count,
19
+ });
20
+ export const GithubLimits = Schema.Array(GithubWindow).check(Schema.isMaxLength(50));
11
21
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/browser/diagnostics/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC1H,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACrF,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5E,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAEzH,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AAEjJ,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/browser/diagnostics/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC1H,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACrF,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5E,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAEzH,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC9I,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;IACpE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;IACtC,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,KAAK;IAChB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IACjE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7E,IAAI,EAAE,KAAK;CACX,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC"}
@@ -27,6 +27,16 @@ export declare const DiagnosticsProjection: Schema.Struct<{
27
27
  readonly state: Schema.Literal<"ready">;
28
28
  readonly value: Schema.Struct<{
29
29
  readonly concurrency: Schema.Int;
30
+ readonly github: Schema.optional<Schema.$Array<Schema.Struct<{
31
+ readonly limit: Schema.Int;
32
+ readonly limitedBy: Schema.NullOr<Schema.Literals<readonly ["rate-limit", "reserve"]>>;
33
+ readonly limitedUntil: Schema.NullOr<Schema.Number>;
34
+ readonly observedAt: Schema.Number;
35
+ readonly remaining: Schema.Int;
36
+ readonly reset: Schema.Int;
37
+ readonly resource: Schema.String;
38
+ readonly used: Schema.Int;
39
+ }>>>;
30
40
  readonly lastCapacityRejection: Schema.NullOr<Schema.Struct<{
31
41
  readonly at: Schema.Number;
32
42
  readonly cause: Schema.String;
@@ -51,18 +61,16 @@ export declare const DiagnosticsProjection: Schema.Struct<{
51
61
  readonly github: Schema.Union<readonly [Schema.Struct<{
52
62
  readonly observedAt: Schema.Number;
53
63
  readonly state: Schema.Literal<"ready">;
54
- readonly value: Schema.Struct<{
55
- readonly core: Schema.Struct<{
56
- readonly limit: Schema.Int;
57
- readonly remaining: Schema.Int;
58
- readonly reset: Schema.Int;
59
- }>;
60
- readonly graphql: Schema.Struct<{
61
- readonly limit: Schema.Int;
62
- readonly remaining: Schema.Int;
63
- readonly reset: Schema.Int;
64
- }>;
65
- }>;
64
+ readonly value: Schema.$Array<Schema.Struct<{
65
+ readonly limit: Schema.Int;
66
+ readonly limitedBy: Schema.NullOr<Schema.Literals<readonly ["rate-limit", "reserve"]>>;
67
+ readonly limitedUntil: Schema.NullOr<Schema.Number>;
68
+ readonly observedAt: Schema.Number;
69
+ readonly remaining: Schema.Int;
70
+ readonly reset: Schema.Int;
71
+ readonly resource: Schema.String;
72
+ readonly used: Schema.Int;
73
+ }>>;
66
74
  }>, Schema.Struct<{
67
75
  readonly cause: Schema.String;
68
76
  readonly observedAt: Schema.Number;
@@ -1 +1 @@
1
- {"version":3,"file":"remaining.d.ts","sourceRoot":"","sources":["../../../src/browser/views/remaining.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAsE,CAAC;AACzG,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC,IAAI,CAAC;AAEtE,eAAO,MAAM,eAAe;;;;;;;EAG1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAC1D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAkE,CAAC;AACjG,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAC;AAC9D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS5B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"remaining.d.ts","sourceRoot":"","sources":["../../../src/browser/views/remaining.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAsE,CAAC;AACzG,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC,IAAI,CAAC;AAEtE,eAAO,MAAM,eAAe;;;;;;;EAG1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAC1D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAkE,CAAC;AACjG,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAC;AAC9D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS5B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAC"}
@@ -24,6 +24,7 @@ export interface BrowserClient {
24
24
  readonly registry: AtomRegistry.AtomRegistry;
25
25
  readonly responses: BoundContract<typeof responseContract>;
26
26
  readonly run: <A, E>(effect: Effect.Effect<A, E, Reader>, signal?: AbortSignal) => Promise<A>;
27
+ readonly runtime: Atom.AtomRuntime<Reader>;
27
28
  readonly updates: ReturnType<typeof live<Reader, InternalServerError | RpcClientError, never>>;
28
29
  }
29
30
  export declare function browserClient(url: string, options?: ResumeOptions): BrowserClient;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,QAAQ,CAAC;AAEvC,OAAO,KAAK,KAAK,WAAW,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,KAAK,IAAI,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,YAAY,MAAM,gCAAgC,CAAC;AAE/D,OAAO,KAAK,KAAK,UAAU,MAAM,8BAA8B,CAAC;AAEhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,KAAK,KAAK,EAAQ,MAAM,oCAAoC,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,sCAAsC,CAAC;AACxF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAa,YAAY,EAAY,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,WAAW,MAAM;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,MAAM,CAAC;CAC/B;AAED,KAAK,aAAa,CAAC,SAAS,IAC3B,SAAS,SAAS,QAAQ,CAAC,MAAM,KAAK,EAAE,MAAM,QAAQ,EAAE,MAAM,SAAS,EAAE,MAAM,KAAK,EAAE,MAAM,QAAQ,CAAC,GAClG,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,GAC1D,KAAK,CAAC;AACV,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,OAAO,YAAY,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,eAAe,CAAC,CAAC;IACzD,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACzH,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1G,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,YAAY,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAC3D,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9F,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;CAC/F;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,aAAa,CAmDrF"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAS,MAAM,QAAQ,CAAC;AAEvC,OAAO,KAAK,KAAK,WAAW,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,KAAK,IAAI,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,YAAY,MAAM,gCAAgC,CAAC;AAE/D,OAAO,KAAK,KAAK,UAAU,MAAM,8BAA8B,CAAC;AAEhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,KAAK,KAAK,EAAQ,MAAM,oCAAoC,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,sCAAsC,CAAC;AACxF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAa,YAAY,EAAY,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,WAAW,MAAM;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,MAAM,CAAC;CAC/B;AAED,KAAK,aAAa,CAAC,SAAS,IAC3B,SAAS,SAAS,QAAQ,CAAC,MAAM,KAAK,EAAE,MAAM,QAAQ,EAAE,MAAM,SAAS,EAAE,MAAM,KAAK,EAAE,MAAM,QAAQ,CAAC,GAClG,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,GAC1D,KAAK,CAAC;AACV,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,OAAO,YAAY,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,eAAe,CAAC,CAAC;IACzD,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACzH,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1G,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,YAAY,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAC3D,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9F,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;CAC/F;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,aAAa,CAmDrF"}
@@ -59,6 +59,6 @@ export function browserClient(url, options = {}) {
59
59
  return result.success;
60
60
  }
61
61
  const responses = bind(responseContract, Client);
62
- return { api, handoffs: bind(handoffContract, Client), mutate, read, registry, responses, run, updates };
62
+ return { api, handoffs: bind(handoffContract, Client), mutate, read, registry, responses, run, runtime: Client.runtime, updates };
63
63
  }
64
64
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Option } from "effect";
2
+ import type { SaveState } from "@shivaedev/effect-react/save-state.ts";
3
+ import { type SaveFailure } from "./saveFailure.ts";
4
+ export type DraftInteraction = "draft" | "cleared" | "submitted";
5
+ export declare function formStatus<A>(state: Pick<SaveState<SaveFailure>, "saving" | "failure"> & {
6
+ readonly created: Option.Option<A>;
7
+ }, interaction: DraftInteraction, kind: "response" | "handoff", saved: (value: A) => string): {
8
+ readonly outcome: string | undefined;
9
+ readonly text: string;
10
+ };
11
+ export declare function responseSaved(id: string, dirty: boolean): string;
12
+ //# sourceMappingURL=formStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formStatus.d.ts","sourceRoot":"","sources":["../../src/client/formStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,kBAAkB,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;AACjE,wBAAgB,UAAU,CAAC,CAAC,EAC3B,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;CAAE,EAClG,WAAW,EAAE,gBAAgB,EAC7B,IAAI,EAAE,UAAU,GAAG,SAAS,EAC5B,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,GACzB;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAoBjE;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,UAEvD"}
@@ -0,0 +1,27 @@
1
+ import { Option } from "effect";
2
+ import { saveFailure } from "./saveFailure.js";
3
+ export function formStatus(state, interaction, kind, saved) {
4
+ if (state.saving) {
5
+ return {
6
+ outcome: "pending",
7
+ text: kind === "response" ? "Pending: registering reviewed context, then recording response…" : "Pending: preparing the local handoff file…",
8
+ };
9
+ }
10
+ if (interaction === "submitted") {
11
+ if (Option.isSome(state.failure)) {
12
+ return saveFailure(state.failure.value, kind);
13
+ }
14
+ if (Option.isSome(state.created)) {
15
+ return { outcome: "saved", text: saved(state.created.value) };
16
+ }
17
+ }
18
+ const ready = kind === "handoff" ? "Draft ready. Review and preview before preparing the file." : "";
19
+ return {
20
+ outcome: undefined,
21
+ text: interaction === "cleared" ? `Draft cleared. Saved ${kind === "response" ? "responses" : "handoffs"} are unchanged.` : ready,
22
+ };
23
+ }
24
+ export function responseSaved(id, dirty) {
25
+ return `Saved: responses/${id}.md. This records feedback, not acceptance.${dirty ? " Your current draft remains unsaved." : ""}`;
26
+ }
27
+ //# sourceMappingURL=formStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formStatus.js","sourceRoot":"","sources":["../../src/client/formStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAoB,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGjE,MAAM,UAAU,UAAU,CACzB,KAAkG,EAClG,WAA6B,EAC7B,IAA4B,EAC5B,KAA2B;IAE3B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO;YACN,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,iEAAiE,CAAC,CAAC,CAAC,4CAA4C;SAC5I,CAAC;IACH,CAAC;IACD,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,OAAO,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/D,CAAC;IACF,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,4DAA4D,CAAC,CAAC,CAAC,EAAE,CAAC;IACrG,OAAO;QACN,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,wBAAwB,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,iBAAiB,CAAC,CAAC,CAAC,KAAK;KACjI,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAU,EAAE,KAAc;IACvD,OAAO,oBAAoB,EAAE,8CAA8C,KAAK,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAClI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BoardShell.d.ts","sourceRoot":"","sources":["../../../src/client/react/BoardShell.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,YAAY,MAAM,gCAAgC,CAAC;AAGpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAUvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAS9C,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,YAAY,CAAC;CAC7C;AACD,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,+BAwG/C"}
1
+ {"version":3,"file":"BoardShell.d.ts","sourceRoot":"","sources":["../../../src/client/react/BoardShell.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,YAAY,MAAM,gCAAgC,CAAC;AAGpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAYvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAS9C,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,YAAY,CAAC;CAC7C;AACD,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,+BAO/C"}
@@ -1,14 +1,16 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useRouterState } from "@tanstack/react-router";
3
3
  import { Option } from "effect";
4
- import { useCallback, useEffect, useState } from "react";
4
+ import { useEffect, useState } from "react";
5
5
  import { useQuery } from "@shivaedev/effect-react/result-state.ts";
6
6
  import { navigationQuery } from "#client/page/routeQuery.ts";
7
7
  import { AgeTicker } from "./Age.js";
8
8
  import { FleetMain } from "./FleetMain.js";
9
+ import { FormContext } from "./FormContext.js";
9
10
  import { Header } from "./Header.js";
10
11
  import { LiveControls } from "./LiveControls.js";
11
- import { displayedLocation, sameMainLocation } from "./mainLocation.js";
12
+ import { MainLocationContext, useMainLocation } from "./MainLocationContext.js";
13
+ import { emptyMainLocation } from "./mainLocation.js";
12
14
  import { PhoneNavigation } from "./PhoneNavigation.js";
13
15
  import { ReadingLibrary } from "./ReadingLibrary.js";
14
16
  import { SearchDialog } from "./SearchDialog.js";
@@ -21,49 +23,41 @@ import { useSearchDialog } from "./useSearchDialog.js";
21
23
  import { useSidebar } from "./useSidebar.js";
22
24
  import { VisualInspection } from "./VisualInspection.js";
23
25
  export function BoardShell(options) {
24
- const { api, ready, client } = options;
26
+ const [main, onPage] = useState(emptyMainLocation);
27
+ return (_jsx(MainLocationContext.Provider, { value: main, children: _jsx(BoardWorkspace, { ...options, onPage: onPage }) }));
28
+ }
29
+ function BoardWorkspace(options) {
30
+ const { api, ready, client, onPage } = options;
31
+ const main = useMainLocation();
25
32
  const appearance = useAppearance();
26
33
  const sidebar = useSidebar(appearance);
27
34
  const status = useBoardNavigation(options);
28
35
  const search = useSearchDialog();
29
36
  const [libraryOpen, setLibraryOpen] = useState(false);
30
37
  const location = useRouterState({ select: (state) => state.location });
31
- const [main, setMain] = useState({ file: "", view: "" });
32
38
  const query = useQuery(navigationQuery(api), { keepPreviousData: true });
33
39
  const data = Option.getOrUndefined(query.data);
34
- const onPage = useCallback((next) => setMain((previous) => (sameMainLocation(previous, next) ? previous : next)), []);
35
40
  useEffect(() => {
36
41
  function start() {
37
42
  const doc = document.getElementById("doc");
38
43
  const context = doc?.querySelector(".item-context");
39
- if (data && doc?.dataset.route && (!context || context.dataset.readingReady === "true")) {
44
+ if (data && main.route && (!context || context.dataset.readingReady === "true")) {
40
45
  ready?.();
41
46
  }
42
47
  }
43
48
  start();
44
- document.addEventListener("board-page", start);
45
49
  document.addEventListener("board-reading-ready", start);
46
50
  return () => {
47
- document.removeEventListener("board-page", start);
48
51
  document.removeEventListener("board-reading-ready", start);
49
52
  };
50
- }, [ready, data]);
51
- useEffect(() => {
52
- function sync() {
53
- const doc = document.getElementById("doc");
54
- if (doc) {
55
- onPage(displayedLocation(doc));
56
- }
57
- }
58
- document.addEventListener("board-page", sync);
59
- return () => document.removeEventListener("board-page", sync);
60
- }, [onPage]);
53
+ }, [ready, data, main]);
61
54
  useEffect(() => {
62
55
  if (data) {
63
56
  document.dispatchEvent(new Event("board-index-change"));
64
57
  }
65
58
  }, [data]);
66
- const live = client ? (_jsx(LiveControls, { client: client, current: location.pathname + location.searchStr, navigationFailed: Option.isSome(query.cause), navigationPending: query.pending })) : (_jsx("span", { className: "font-mono text-muted-foreground text-xs", id: shellIds.live, role: "status", children: "connecting" }));
67
- return (_jsx(AgeTicker, { children: _jsxs(ReadingLibrary, { api: api, close: () => setLibraryOpen(false), open: libraryOpen, children: [_jsx("a", { className: "sr-only rounded-md bg-background p-3 focus:not-sr-only focus:absolute focus:z-50", href: "#doc", children: "Skip to content" }), _jsxs("div", { className: "grid min-h-dvh grid-cols-1 bg-background text-foreground md:data-[sidebar=open]:grid-cols-[248px_minmax(0,1fr)] print:block", "data-board-workspace": true, "data-sidebar": sidebar.open ? "open" : "closed", children: [_jsx(Sidebar, { api: api, controls: sidebar, data: data, home: location.pathname === "/", main: main, openLibrary: () => setLibraryOpen(true) }), _jsx("button", { "aria-label": "Close files", className: "fixed inset-0 z-30 hidden border-0 bg-black/45 p-0 data-[open=true]:block md:hidden", "data-open": sidebar.narrow && sidebar.open, hidden: !(sidebar.narrow && sidebar.open), id: shellIds.sidebarBackdrop, onClick: () => sidebar.close(), type: "button" }), _jsxs("div", { className: "min-w-0 pb-[calc(4rem+env(safe-area-inset-bottom))] md:pb-0", "data-board-page": true, inert: sidebar.narrow && sidebar.open, children: [_jsx(Header, { appearance: appearance, count: data?.inboxCount ?? null, live: live, main: main, openSearch: search.show, sidebar: sidebar, status: status, updates: client ? _jsx(UpdatesToggle, { client: client }) : null }), _jsx(FleetMain, { api: api, home: data?.home, onPage: onPage, url: location.pathname + location.searchStr }), _jsx(PhoneNavigation, { main: main, openSearch: search.show })] })] }), Option.isSome(query.cause) && _jsx("p", { role: "status", children: "Navigation refresh failed. Your displayed files are retained." }), _jsx(VisualInspection, {}), _jsx(SearchDialog, { api: api, appearance: appearance, close: search.close, open: search.open, returnFocus: search.returnFocus, toggleSidebar: sidebar.toggle })] }) }));
59
+ const live = client ? (_jsx(LiveControls, { client: client, navigationFailed: Option.isSome(query.cause), navigationPending: query.pending })) : (_jsx("span", { className: "font-mono text-muted-foreground text-xs", id: shellIds.live, role: "status", children: "connecting" }));
60
+ const content = (_jsx(AgeTicker, { children: _jsxs(ReadingLibrary, { api: api, close: () => setLibraryOpen(false), open: libraryOpen, children: [_jsx("a", { className: "sr-only rounded-md bg-background p-3 focus:not-sr-only focus:absolute focus:z-50", href: "#doc", children: "Skip to content" }), _jsxs("div", { className: "grid min-h-dvh grid-cols-1 bg-background text-foreground md:data-[sidebar=open]:grid-cols-[248px_minmax(0,1fr)] print:block", "data-board-workspace": true, "data-sidebar": sidebar.open ? "open" : "closed", children: [_jsx(Sidebar, { api: api, controls: sidebar, data: data, home: location.pathname === "/", main: main, openLibrary: () => setLibraryOpen(true) }), _jsx("button", { "aria-label": "Close files", className: "fixed inset-0 z-30 hidden border-0 bg-black/45 p-0 data-[open=true]:block md:hidden", "data-open": sidebar.narrow && sidebar.open, hidden: !(sidebar.narrow && sidebar.open), id: shellIds.sidebarBackdrop, onClick: () => sidebar.close(), type: "button" }), _jsxs("div", { className: "min-w-0 pb-[calc(4rem+env(safe-area-inset-bottom))] md:pb-0", "data-board-page": true, inert: sidebar.narrow && sidebar.open, children: [_jsx(Header, { appearance: appearance, count: data?.inboxCount ?? null, live: live, main: main, openSearch: search.show, sidebar: sidebar, status: status, updates: client ? _jsx(UpdatesToggle, { client: client }) : null }), _jsx(FleetMain, { api: api, home: data?.home, onPage: onPage, url: location.pathname + location.searchStr }), _jsx(PhoneNavigation, { main: main, openSearch: search.show })] })] }), Option.isSome(query.cause) && _jsx("p", { role: "status", children: "Navigation refresh failed. Your displayed files are retained." }), _jsx(VisualInspection, {}), _jsx(SearchDialog, { api: api, appearance: appearance, close: search.close, open: search.open, returnFocus: search.returnFocus, toggleSidebar: sidebar.toggle })] }) }));
61
+ return client ? _jsx(FormContext.Provider, { value: client, children: content }) : content;
68
62
  }
69
63
  //# sourceMappingURL=BoardShell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BoardShell.js","sourceRoot":"","sources":["../../../src/client/react/BoardShell.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BoardShell.js","sourceRoot":"","sources":["../../../src/client/react/BoardShell.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentContext.d.ts","sourceRoot":"","sources":["../../../src/client/react/DocumentContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAM5D,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,+BAoDlF"}
1
+ {"version":3,"file":"DocumentContext.d.ts","sourceRoot":"","sources":["../../../src/client/react/DocumentContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAO5D,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,+BAsDlF"}
@@ -4,11 +4,16 @@ import { Tabs } from "#client/react/components/ui/Tabs.tsx";
4
4
  import { Age } from "./Age.js";
5
5
  import { DocumentMetadata } from "./DocumentMetadata.js";
6
6
  import { DocumentSource } from "./DocumentSource.js";
7
+ import { useMainLocation } from "./MainLocationContext.js";
7
8
  export function DocumentContext({ document: data }) {
9
+ const page = useMainLocation();
8
10
  const [headings, setHeadings] = useState([]);
9
11
  const contextRef = useRef(null);
10
12
  const [tab, setTab] = useState("details");
11
13
  useEffect(() => {
14
+ if (page.route && page.projection === "document" && page.file !== data.file) {
15
+ return;
16
+ }
12
17
  function outline() {
13
18
  const entries = [
14
19
  ...(contextRef.current
@@ -20,10 +25,8 @@ export function DocumentContext({ document: data }) {
20
25
  .map((heading) => ({ depth: Number(heading.tagName.slice(1)), id: heading.id, title: heading.textContent?.replace(/#$/u, "") ?? "" }));
21
26
  setHeadings((current) => (JSON.stringify(current) === JSON.stringify(entries) ? current : entries));
22
27
  }
23
- document.addEventListener("board-page", outline);
24
28
  outline();
25
- return () => document.removeEventListener("board-page", outline);
26
- }, []);
29
+ }, [page, data]);
27
30
  useLayoutEffect(() => {
28
31
  const context = contextRef.current;
29
32
  if (!context) {
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentContext.js","sourceRoot":"","sources":["../../../src/client/react/DocumentContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DocumentContext.js","sourceRoot":"","sources":["../../../src/client/react/DocumentContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErE,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,UAAW,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,UAAU,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAmC;IAClF,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAqF,EAAE,CAAC,CAAC;IACjI,MAAM,UAAU,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC1C,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7E,OAAO;QACR,CAAC;QACD,SAAS,OAAO;YACf,MAAM,OAAO,GAAG;gBACf,GAAG,CAAC,UAAU,CAAC,OAAO;oBACrB,EAAE,OAAO,CAAC,MAAM,CAAC;oBACjB,EAAE,gBAAgB,CAAc,2GAA2G,CAAC;uBACzI,EAAE,CAAC;aACP;iBACC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;iBAC/B,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YACxI,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACrG,CAAC;QACD,OAAO,EAAE,CAAC;IACX,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAEjB,eAAe,CAAC,GAAG,EAAE;QACpB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO;QACR,CAAC;QACD,MAAM,KAAK,GACV,OAAO;aACL,OAAO,CAAC,MAAM,CAAC;YAChB,EAAE,gBAAgB,CAAC,mHAAmH,CAAC,CAAC,MAAM;eAC5I,CAAC,CAAC;QACN,IAAI,KAAK,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO;QACR,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC;QACtC,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC1D,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACf,MAAM,IAAI,GAAG;QACZ,EAAE,OAAO,EAAE,KAAC,OAAO,IAAC,QAAQ,EAAE,QAAQ,GAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;QAChF,EAAE,OAAO,EAAE,KAAC,WAAW,IAAC,QAAQ,EAAE,IAAI,GAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;KAC9E,CAAC;IACF,OAAO,CACN,+BACY,cAAc,EACzB,SAAS,EAAC,uHAAuH,cACxH,cAAc,EACvB,GAAG,EAAE,UAAU,aAEf,KAAC,IAAI,IAAC,KAAK,EAAC,cAAc,EAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,GAAI,EAC5E,KAAC,gBAAgB,IAAC,QAAQ,EAAE,IAAI,GAAI,IAC7B,CACR,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,EAAE,QAAQ,EAA6G;IACvI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACzC,2BAAgB,OAAO,CAAC,KAAK,YAC5B,YAAG,IAAI,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,YAAG,OAAO,CAAC,KAAK,IAAI,SAAS,GAAK,IADxB,OAAO,CAAC,EAAE,CAEzC,CACL,CAAC,CAAC;IACH,OAAO,CACN,mBAAS,SAAS,EAAC,kBAAkB,cAAU,SAAS,aACvD,6CAA+B,EAC/B,4BAAgB,kBAAkB,YACjC,uBAAK,OAAO,GAAM,GACb,IACG,CACV,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,QAAQ,EAAmC;IACjE,OAAO,CACN,8BACC,KAAC,cAAc,IAAC,QAAQ,EAAE,QAAQ,GAAI,EACtC,KAAC,GAAG,IAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAI,IAClC,CACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { BrowserClient } from "#client/client.ts";
2
+ export type FormClient = Pick<BrowserClient, "handoffs" | "responses" | "runtime">;
3
+ export declare const FormContext: import("react").Context<FormClient | undefined>;
4
+ export declare function useFormClient(): FormClient;
5
+ //# sourceMappingURL=FormContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormContext.d.ts","sourceRoot":"","sources":["../../../src/client/react/FormContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC,CAAC;AACnF,eAAO,MAAM,WAAW,iDAAmD,CAAC;AAE5E,wBAAgB,aAAa,eAM5B"}
@@ -0,0 +1,10 @@
1
+ import { createContext, useContext } from "react";
2
+ export const FormContext = createContext(undefined);
3
+ export function useFormClient() {
4
+ const client = useContext(FormContext);
5
+ if (!client) {
6
+ throw new Error("Board forms require the shell's RPC client");
7
+ }
8
+ return client;
9
+ }
10
+ //# sourceMappingURL=FormContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormContext.js","sourceRoot":"","sources":["../../../src/client/react/FormContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAIlD,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAyB,SAAS,CAAC,CAAC;AAE5E,MAAM,UAAU,aAAa;IAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import type { BrowserClient } from "#client/client.ts";
2
- export declare function LiveControls({ client, current, navigationPending, navigationFailed, }: {
3
- readonly client: BrowserClient;
4
- readonly current: string;
2
+ export declare function LiveControls({ client, navigationPending, navigationFailed, }: {
3
+ readonly client: Pick<BrowserClient, "api" | "registry"> & {
4
+ readonly updates: Pick<BrowserClient["updates"], "paused" | "status">;
5
+ };
5
6
  readonly navigationPending: boolean;
6
7
  readonly navigationFailed: boolean;
7
8
  }): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"LiveControls.d.ts","sourceRoot":"","sources":["../../../src/client/react/LiveControls.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAUvD,wBAAgB,YAAY,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,iBAAiB,EACjB,gBAAgB,GAChB,EAAE;IACF,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACnC,+BAwDA"}
1
+ {"version":3,"file":"LiveControls.d.ts","sourceRoot":"","sources":["../../../src/client/react/LiveControls.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAOvD,wBAAgB,YAAY,CAAC,EAC5B,MAAM,EACN,iBAAiB,EACjB,gBAAgB,GAChB,EAAE;IACF,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,UAAU,CAAC,GAAG;QAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAA;KAAE,CAAC;IACrI,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACnC,+BAyCA"}
@@ -2,34 +2,20 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useAtomValue } from "@effect/atom-react";
3
3
  import { Option } from "effect";
4
4
  import * as Atom from "effect/reactivity/Atom";
5
- import { useEffect, useMemo, useState } from "react";
5
+ import { useEffect, useMemo } from "react";
6
6
  import { useQuery } from "@shivaedev/effect-react/result-state.ts";
7
7
  import { activeRead } from "./activeRead.js";
8
8
  import { liveStatus } from "./liveStatus.js";
9
+ import { useMainLocation } from "./MainLocationContext.js";
9
10
  import { shellIds } from "./shellIds.js";
10
11
  const opening = Atom.make({ failed: false, pending: true });
11
- export function LiveControls({ client, current, navigationPending, navigationFailed, }) {
12
+ export function LiveControls({ client, navigationPending, navigationFailed, }) {
12
13
  const status = useAtomValue(client.updates.status);
13
14
  const paused = useAtomValue(client.updates.paused);
14
15
  const watcher = useQuery(client.api.watcher.query());
15
16
  const watching = Option.getOrUndefined(watcher.data)?.watching === true;
16
- const [page, setPage] = useState();
17
- useEffect(() => {
18
- function sync() {
19
- const doc = document.getElementById("doc");
20
- if (doc?.dataset.route !== current) {
21
- return;
22
- }
23
- setPage({
24
- kind: doc?.dataset.projection ?? "document",
25
- url: current,
26
- });
27
- }
28
- sync();
29
- document.addEventListener("board-page", sync);
30
- return () => document.removeEventListener("board-page", sync);
31
- }, [current]);
32
- const atom = useMemo(() => (page ? activeRead(client.api, page.kind, page.url) : opening), [client, page]);
17
+ const page = useMainLocation();
18
+ const atom = useMemo(() => (page.route ? activeRead(client.api, page.projection, page.route) : opening), [client, page.projection, page.route]);
33
19
  const reading = useAtomValue(atom);
34
20
  const displayed = liveStatus({
35
21
  connection: status.connection,
@@ -1 +1 @@
1
- {"version":3,"file":"LiveControls.js","sourceRoot":"","sources":["../../../src/client/react/LiveControls.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiveControls.js","sourceRoot":"","sources":["../../../src/client/react/LiveControls.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5D,MAAM,UAAU,YAAY,CAAC,EAC5B,MAAM,EACN,iBAAiB,EACjB,gBAAgB,GAKhB;IACA,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IACxE,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAChJ,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,UAAU,CAAC;QAC5B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,gBAAgB;QAChB,MAAM;QACN,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,iBAAiB,IAAI,OAAO,CAAC,OAAO;QAC7C,QAAQ;KACR,CAAC,CAAC;IACH,SAAS,CACR,GAAG,EAAE,CACJ,MAAM,CAAC,QAAQ,CAAC,SAAS,CACxB,MAAM,CAAC,OAAO,CAAC,MAAM,EACrB,CAAC,KAAK,EAAE,EAAE;QACT,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC5D,CAAC;IACF,CAAC,EACD,EAAE,SAAS,EAAE,IAAI,EAAE,CACnB,EACF,CAAC,MAAM,CAAC,CACR,CAAC;IACF,OAAO,CACN,eACC,SAAS,EAAC,gHAAgH,gBAC9G,SAAS,CAAC,KAAK,EAC3B,EAAE,EAAE,QAAQ,CAAC,IAAI,EACjB,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,SAAS,CAAC,KAAK,YAErB,SAAS,CAAC,IAAI,GACT,CACP,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const MainLocationContext: import("react").Context<import("./mainLocation.ts").MainLocation>;
2
+ export declare function useMainLocation(): import("./mainLocation.ts").MainLocation;
3
+ //# sourceMappingURL=MainLocationContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MainLocationContext.d.ts","sourceRoot":"","sources":["../../../src/client/react/MainLocationContext.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,mEAAmC,CAAC;AAEpE,wBAAgB,eAAe,6CAE9B"}
@@ -0,0 +1,7 @@
1
+ import { createContext, useContext } from "react";
2
+ import { emptyMainLocation } from "./mainLocation.js";
3
+ export const MainLocationContext = createContext(emptyMainLocation);
4
+ export function useMainLocation() {
5
+ return useContext(MainLocationContext);
6
+ }
7
+ //# sourceMappingURL=MainLocationContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MainLocationContext.js","sourceRoot":"","sources":["../../../src/client/react/MainLocationContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAEpE,MAAM,UAAU,eAAe;IAC9B,OAAO,UAAU,CAAC,mBAAmB,CAAC,CAAC;AACxC,CAAC"}
@@ -6,9 +6,8 @@ import type { ProjectionRoute } from "./projectionRoute.ts";
6
6
  import type { RemainingRoute } from "./remainingRoute.ts";
7
7
  export declare function ProjectionFrame<A, E>({ atom, location, onPage, render, source, route, url, }: {
8
8
  readonly atom: Atom.Atom<AsyncResult.AsyncResult<A, E>>;
9
- readonly location: (data: A) => MainLocation & {
9
+ readonly location: (data: A) => Omit<MainLocation, "route" | "projection"> & {
10
10
  readonly identity?: string | undefined;
11
- readonly status: number;
12
11
  };
13
12
  readonly onPage: (location: MainLocation) => void;
14
13
  readonly render: (data: A) => ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionFrame.d.ts","sourceRoot":"","sources":["../../../src/client/react/ProjectionFrame.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,WAAW,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,KAAK,IAAI,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,KAAK,SAAS,EAA2B,MAAM,OAAO,CAAC;AAGhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,EACrC,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,MAAM,EACN,MAAM,EACN,KAAK,EACL,GAAG,GACH,EAAE;IACF,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,YAAY,GAAG;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACnH,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,cAAc,CAAC;IACjD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACrB,+BA+EA"}
1
+ {"version":3,"file":"ProjectionFrame.d.ts","sourceRoot":"","sources":["../../../src/client/react/ProjectionFrame.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,WAAW,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,KAAK,IAAI,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,KAAK,SAAS,EAA2B,MAAM,OAAO,CAAC;AAGhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,EACrC,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,MAAM,EACN,MAAM,EACN,KAAK,EACL,GAAG,GACH,EAAE;IACF,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,YAAY,CAAC,GAAG;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACxH,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,cAAc,CAAC;IACjD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACrB,+BAuFA"}
@@ -15,7 +15,7 @@ export function ProjectionFrame({ atom, location, onPage, render, source, route,
15
15
  const failed = Option.isSome(query.cause);
16
16
  useLayoutEffect(() => {
17
17
  const element = hostRef.current;
18
- if (element && element.dataset.route !== url) {
18
+ if (element) {
19
19
  delete element.dataset.route;
20
20
  }
21
21
  if (!element || query.pending || (data === undefined && !failed)) {
@@ -33,8 +33,14 @@ export function ProjectionFrame({ atom, location, onPage, render, source, route,
33
33
  }
34
34
  renderedRef.current = projectionChanges(mainElement, renderedRef.current, url);
35
35
  mainElement.dataset.route = url;
36
- flushSync(() => onPage({ file: main.file, title: mainElement.querySelector("h1")?.textContent?.trim(), view: main.view }));
37
- document.dispatchEvent(new Event("board-page"));
36
+ flushSync(() => onPage({
37
+ file: main.file,
38
+ projection: route,
39
+ route: url,
40
+ status: main.status,
41
+ title: mainElement.querySelector("h1")?.textContent?.trim(),
42
+ view: main.view,
43
+ }));
38
44
  });
39
45
  }
40
46
  const observer = new MutationObserver((records) => {
@@ -50,7 +56,7 @@ export function ProjectionFrame({ atom, location, onPage, render, source, route,
50
56
  active = false;
51
57
  observer.disconnect();
52
58
  };
53
- }, [data, failed, query.pending, expectedSource, main.file, main.view, onPage, url]);
59
+ }, [data, failed, query.pending, expectedSource, main.file, main.status, main.view, onPage, route, url]);
54
60
  return (_jsxs(_Fragment, { children: [_jsxs("main", { className: "board-view min-w-0 p-4 md:p-8", "data-file": main.file, "data-identity": "identity" in main ? main.identity : undefined, "data-projection": route, "data-react-projection": true, "data-status": main.status, "data-url": route === "board" ? fileUrl(main.file) : url, "data-view": main.view, id: shellIds.doc, ref: hostRef, tabIndex: -1, children: [data === undefined && (_jsx("p", { className: "empty", role: "status", children: loadingMessage(query.pending, missing, failure) })), _jsx("div", { className: data === undefined ? "hidden" : "contents", hidden: data === undefined, children: content === undefined ? null : render(content) })] }), data !== undefined && Option.isSome(query.cause) && _jsx("p", { role: "status", children: "Refresh failed. Your displayed view is retained." })] }));
55
61
  }
56
62
  function loadingMessage(pending, missing, failure) {