@shivaedev/work-board 0.12.0 → 0.13.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.
- package/CHANGELOG.md +36 -0
- package/README.md +11 -11
- package/assets/agent.js +27 -31
- package/assets/native.js +34 -69
- package/assets/react.css +1 -1
- package/assets/react.js +39 -34
- package/dist/browser/diagnostics/schema.d.ts +49 -0
- package/dist/browser/diagnostics/schema.d.ts.map +1 -0
- package/dist/browser/diagnostics/schema.js +11 -0
- package/dist/browser/diagnostics/schema.js.map +1 -0
- package/dist/browser/views/ResultProjection.d.ts +245 -0
- package/dist/browser/views/ResultProjection.d.ts.map +1 -0
- package/dist/browser/views/ResultProjection.js +32 -0
- package/dist/browser/views/ResultProjection.js.map +1 -0
- package/dist/browser/views/remaining.d.ts +345 -0
- package/dist/browser/views/remaining.d.ts.map +1 -0
- package/dist/browser/views/remaining.js +21 -0
- package/dist/browser/views/remaining.js.map +1 -0
- package/dist/browser/views/schema.d.ts +715 -0
- package/dist/browser/views/schema.d.ts.map +1 -0
- package/dist/browser/views/schema.js +60 -0
- package/dist/browser/views/schema.js.map +1 -0
- package/dist/browser/views/state.d.ts +15 -0
- package/dist/browser/views/state.d.ts.map +1 -0
- package/dist/browser/views/state.js +45 -0
- package/dist/browser/views/state.js.map +1 -0
- package/dist/client/client.d.ts +5 -5
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +4 -4
- package/dist/client/client.js.map +1 -1
- package/dist/client/document/Mermaid.d.ts.map +1 -1
- package/dist/client/document/Mermaid.js +39 -10
- package/dist/client/document/Mermaid.js.map +1 -1
- package/dist/client/document/View.d.ts +5 -1
- package/dist/client/document/View.d.ts.map +1 -1
- package/dist/client/document/View.js +13 -1
- package/dist/client/document/View.js.map +1 -1
- package/dist/client/document/boardLayout.d.ts +6 -0
- package/dist/client/document/boardLayout.d.ts.map +1 -0
- package/dist/client/document/boardLayout.js +69 -0
- package/dist/client/document/boardLayout.js.map +1 -0
- package/dist/client/entry.d.ts +0 -12
- package/dist/client/entry.d.ts.map +1 -1
- package/dist/client/entry.js +0 -18
- package/dist/client/entry.js.map +1 -1
- package/dist/client/formDraft.d.ts +3 -0
- package/dist/client/formDraft.d.ts.map +1 -0
- package/dist/client/formDraft.js +8 -0
- package/dist/client/formDraft.js.map +1 -0
- package/dist/client/formFocus.d.ts.map +1 -1
- package/dist/client/formFocus.js +5 -0
- package/dist/client/formFocus.js.map +1 -1
- package/dist/client/handoffs/failureStatus.d.ts +2 -0
- package/dist/client/handoffs/failureStatus.d.ts.map +1 -0
- package/dist/client/handoffs/failureStatus.js +7 -0
- package/dist/client/handoffs/failureStatus.js.map +1 -0
- package/dist/client/page/routeQuery.d.ts +2 -7
- package/dist/client/page/routeQuery.d.ts.map +1 -1
- package/dist/client/page/routeQuery.js +0 -3
- package/dist/client/page/routeQuery.js.map +1 -1
- package/dist/client/react/Age.d.ts +9 -0
- package/dist/client/react/Age.d.ts.map +1 -0
- package/dist/client/react/Age.js +32 -0
- package/dist/client/react/Age.js.map +1 -0
- package/dist/client/react/AnswerForm.d.ts +5 -3
- package/dist/client/react/AnswerForm.d.ts.map +1 -1
- package/dist/client/react/AnswerForm.js +21 -11
- package/dist/client/react/AnswerForm.js.map +1 -1
- package/dist/client/react/AnswerPrompts.d.ts +10 -2
- package/dist/client/react/AnswerPrompts.d.ts.map +1 -1
- package/dist/client/react/AnswerPrompts.js +28 -12
- package/dist/client/react/AnswerPrompts.js.map +1 -1
- package/dist/client/react/BoardMain.d.ts +10 -0
- package/dist/client/react/BoardMain.d.ts.map +1 -0
- package/dist/client/react/BoardMain.js +19 -0
- package/dist/client/react/BoardMain.js.map +1 -0
- package/dist/client/react/BoardShell.d.ts +6 -1
- package/dist/client/react/BoardShell.d.ts.map +1 -1
- package/dist/client/react/BoardShell.js +34 -12
- package/dist/client/react/BoardShell.js.map +1 -1
- package/dist/client/react/ChangesMain.d.ts +8 -0
- package/dist/client/react/ChangesMain.d.ts.map +1 -0
- package/dist/client/react/ChangesMain.js +24 -0
- package/dist/client/react/ChangesMain.js.map +1 -0
- package/dist/client/react/DiagnosticsFleet.d.ts +6 -0
- package/dist/client/react/DiagnosticsFleet.d.ts.map +1 -0
- package/dist/client/react/DiagnosticsFleet.js +16 -0
- package/dist/client/react/DiagnosticsFleet.js.map +1 -0
- package/dist/client/react/DiagnosticsMain.d.ts +8 -0
- package/dist/client/react/DiagnosticsMain.d.ts.map +1 -0
- package/dist/client/react/DiagnosticsMain.js +11 -0
- package/dist/client/react/DiagnosticsMain.js.map +1 -0
- package/dist/client/react/DiagnosticsPage.d.ts +5 -0
- package/dist/client/react/DiagnosticsPage.d.ts.map +1 -0
- package/dist/client/react/DiagnosticsPage.js +23 -0
- package/dist/client/react/DiagnosticsPage.js.map +1 -0
- package/dist/client/react/DocumentContext.d.ts.map +1 -1
- package/dist/client/react/DocumentContext.js +23 -3
- package/dist/client/react/DocumentContext.js.map +1 -1
- package/dist/client/react/DocumentMain.d.ts +2 -3
- package/dist/client/react/DocumentMain.d.ts.map +1 -1
- package/dist/client/react/DocumentMain.js +8 -4
- package/dist/client/react/DocumentMain.js.map +1 -1
- package/dist/client/react/Favorite.d.ts +5 -0
- package/dist/client/react/Favorite.d.ts.map +1 -0
- package/dist/client/react/Favorite.js +10 -0
- package/dist/client/react/Favorite.js.map +1 -0
- package/dist/client/react/FormField.d.ts +13 -0
- package/dist/client/react/FormField.d.ts.map +1 -0
- package/dist/client/react/FormField.js +39 -0
- package/dist/client/react/FormField.js.map +1 -0
- package/dist/client/react/HandoffForm.d.ts +5 -0
- package/dist/client/react/HandoffForm.d.ts.map +1 -0
- package/dist/client/react/HandoffForm.js +27 -0
- package/dist/client/react/HandoffForm.js.map +1 -0
- package/dist/client/react/HandoffPage.d.ts +5 -0
- package/dist/client/react/HandoffPage.d.ts.map +1 -0
- package/dist/client/react/HandoffPage.js +15 -0
- package/dist/client/react/HandoffPage.js.map +1 -0
- package/dist/client/react/HandoffPrompt.d.ts +6 -0
- package/dist/client/react/HandoffPrompt.d.ts.map +1 -0
- package/dist/client/react/HandoffPrompt.js +21 -0
- package/dist/client/react/HandoffPrompt.js.map +1 -0
- package/dist/client/react/Header.d.ts +11 -2
- package/dist/client/react/Header.d.ts.map +1 -1
- package/dist/client/react/Header.js +2 -2
- package/dist/client/react/Header.js.map +1 -1
- package/dist/client/react/HistoryComparison.d.ts +5 -0
- package/dist/client/react/HistoryComparison.d.ts.map +1 -0
- package/dist/client/react/HistoryComparison.js +14 -0
- package/dist/client/react/HistoryComparison.js.map +1 -0
- package/dist/client/react/HistoryRetention.d.ts +5 -0
- package/dist/client/react/HistoryRetention.d.ts.map +1 -0
- package/dist/client/react/HistoryRetention.js +28 -0
- package/dist/client/react/HistoryRetention.js.map +1 -0
- package/dist/client/react/HomeBoard.d.ts +5 -0
- package/dist/client/react/HomeBoard.d.ts.map +1 -0
- package/dist/client/react/HomeBoard.js +8 -0
- package/dist/client/react/HomeBoard.js.map +1 -0
- package/dist/client/react/InboxPage.d.ts +5 -0
- package/dist/client/react/InboxPage.d.ts.map +1 -0
- package/dist/client/react/InboxPage.js +18 -0
- package/dist/client/react/InboxPage.js.map +1 -0
- package/dist/client/react/LiveControls.d.ts +8 -0
- package/dist/client/react/LiveControls.d.ts.map +1 -0
- package/dist/client/react/LiveControls.js +51 -0
- package/dist/client/react/LiveControls.js.map +1 -0
- package/dist/client/react/Modal.d.ts +12 -0
- package/dist/client/react/Modal.d.ts.map +1 -0
- package/dist/client/react/Modal.js +62 -0
- package/dist/client/react/Modal.js.map +1 -0
- package/dist/client/react/NavigationTree.d.ts.map +1 -1
- package/dist/client/react/NavigationTree.js +2 -1
- package/dist/client/react/NavigationTree.js.map +1 -1
- package/dist/client/react/OverviewGroups.d.ts +5 -0
- package/dist/client/react/OverviewGroups.d.ts.map +1 -0
- package/dist/client/react/OverviewGroups.js +18 -0
- package/dist/client/react/OverviewGroups.js.map +1 -0
- package/dist/client/react/OverviewPage.d.ts +5 -0
- package/dist/client/react/OverviewPage.d.ts.map +1 -0
- package/dist/client/react/OverviewPage.js +16 -0
- package/dist/client/react/OverviewPage.js.map +1 -0
- package/dist/client/react/ProjectionFrame.d.ts +19 -0
- package/dist/client/react/ProjectionFrame.d.ts.map +1 -0
- package/dist/client/react/ProjectionFrame.js +85 -0
- package/dist/client/react/ProjectionFrame.js.map +1 -0
- package/dist/client/react/ProjectionMain.d.ts +10 -0
- package/dist/client/react/ProjectionMain.d.ts.map +1 -0
- package/dist/client/react/ProjectionMain.js +22 -0
- package/dist/client/react/ProjectionMain.js.map +1 -0
- package/dist/client/react/PromptOption.d.ts +12 -0
- package/dist/client/react/PromptOption.d.ts.map +1 -0
- package/dist/client/react/PromptOption.js +9 -0
- package/dist/client/react/PromptOption.js.map +1 -0
- package/dist/client/react/ReadingLibrary.d.ts +9 -0
- package/dist/client/react/ReadingLibrary.d.ts.map +1 -0
- package/dist/client/react/ReadingLibrary.js +78 -0
- package/dist/client/react/ReadingLibrary.js.map +1 -0
- package/dist/client/react/RemainingMain.d.ts +10 -0
- package/dist/client/react/RemainingMain.d.ts.map +1 -0
- package/dist/client/react/RemainingMain.js +27 -0
- package/dist/client/react/RemainingMain.js.map +1 -0
- package/dist/client/react/RespondPage.d.ts +5 -0
- package/dist/client/react/RespondPage.d.ts.map +1 -0
- package/dist/client/react/RespondPage.js +16 -0
- package/dist/client/react/RespondPage.js.map +1 -0
- package/dist/client/react/ResponseMarkdown.d.ts.map +1 -1
- package/dist/client/react/ResponseMarkdown.js +16 -2
- package/dist/client/react/ResponseMarkdown.js.map +1 -1
- package/dist/client/react/ResultCriteria.d.ts +5 -0
- package/dist/client/react/ResultCriteria.d.ts.map +1 -0
- package/dist/client/react/ResultCriteria.js +33 -0
- package/dist/client/react/ResultCriteria.js.map +1 -0
- package/dist/client/react/ResultFeedback.d.ts +5 -0
- package/dist/client/react/ResultFeedback.d.ts.map +1 -0
- package/dist/client/react/ResultFeedback.js +12 -0
- package/dist/client/react/ResultFeedback.js.map +1 -0
- package/dist/client/react/ResultPage.d.ts +5 -0
- package/dist/client/react/ResultPage.d.ts.map +1 -0
- package/dist/client/react/ResultPage.js +15 -0
- package/dist/client/react/ResultPage.js.map +1 -0
- package/dist/client/react/SavedViews.d.ts +4 -0
- package/dist/client/react/SavedViews.d.ts.map +1 -0
- package/dist/client/react/SavedViews.js +16 -0
- package/dist/client/react/SavedViews.js.map +1 -0
- package/dist/client/react/SearchDialog.d.ts +11 -0
- package/dist/client/react/SearchDialog.d.ts.map +1 -0
- package/dist/client/react/SearchDialog.js +67 -0
- package/dist/client/react/SearchDialog.js.map +1 -0
- package/dist/client/react/SearchResults.d.ts +7 -0
- package/dist/client/react/SearchResults.d.ts.map +1 -0
- package/dist/client/react/SearchResults.js +19 -0
- package/dist/client/react/SearchResults.js.map +1 -0
- package/dist/client/react/ShellApi.d.ts +11 -1
- package/dist/client/react/ShellApi.d.ts.map +1 -1
- package/dist/client/react/Sidebar.d.ts +5 -2
- package/dist/client/react/Sidebar.d.ts.map +1 -1
- package/dist/client/react/Sidebar.js +37 -2
- package/dist/client/react/Sidebar.js.map +1 -1
- package/dist/client/react/StartPage.d.ts +5 -0
- package/dist/client/react/StartPage.d.ts.map +1 -0
- package/dist/client/react/StartPage.js +5 -0
- package/dist/client/react/StartPage.js.map +1 -0
- package/dist/client/react/UpdatesToggle.d.ts +5 -0
- package/dist/client/react/UpdatesToggle.d.ts.map +1 -0
- package/dist/client/react/UpdatesToggle.js +9 -0
- package/dist/client/react/UpdatesToggle.js.map +1 -0
- package/dist/client/react/VisualControls.d.ts +17 -0
- package/dist/client/react/VisualControls.d.ts.map +1 -0
- package/dist/client/react/VisualControls.js +6 -0
- package/dist/client/react/VisualControls.js.map +1 -0
- package/dist/client/react/VisualInspection.d.ts +2 -0
- package/dist/client/react/VisualInspection.d.ts.map +1 -0
- package/dist/client/react/VisualInspection.js +26 -0
- package/dist/client/react/VisualInspection.js.map +1 -0
- package/dist/client/react/VisualViewer.d.ts +6 -0
- package/dist/client/react/VisualViewer.d.ts.map +1 -0
- package/dist/client/react/VisualViewer.js +106 -0
- package/dist/client/react/VisualViewer.js.map +1 -0
- package/dist/client/react/WorkCards.d.ts +5 -0
- package/dist/client/react/WorkCards.d.ts.map +1 -0
- package/dist/client/react/WorkCards.js +13 -0
- package/dist/client/react/WorkCards.js.map +1 -0
- package/dist/client/react/WorkControls.d.ts +5 -0
- package/dist/client/react/WorkControls.d.ts.map +1 -0
- package/dist/client/react/WorkControls.js +18 -0
- package/dist/client/react/WorkControls.js.map +1 -0
- package/dist/client/react/WorkDetail.d.ts +5 -0
- package/dist/client/react/WorkDetail.d.ts.map +1 -0
- package/dist/client/react/WorkDetail.js +12 -0
- package/dist/client/react/WorkDetail.js.map +1 -0
- package/dist/client/react/WorkItemTitle.d.ts +7 -0
- package/dist/client/react/WorkItemTitle.d.ts.map +1 -0
- package/dist/client/react/WorkItemTitle.js +6 -0
- package/dist/client/react/WorkItemTitle.js.map +1 -0
- package/dist/client/react/WorkPage.d.ts +5 -0
- package/dist/client/react/WorkPage.d.ts.map +1 -0
- package/dist/client/react/WorkPage.js +17 -0
- package/dist/client/react/WorkPage.js.map +1 -0
- package/dist/client/react/WorkResults.d.ts +5 -0
- package/dist/client/react/WorkResults.d.ts.map +1 -0
- package/dist/client/react/WorkResults.js +10 -0
- package/dist/client/react/WorkResults.js.map +1 -0
- package/dist/client/react/WorkTable.d.ts +5 -0
- package/dist/client/react/WorkTable.d.ts.map +1 -0
- package/dist/client/react/WorkTable.js +10 -0
- package/dist/client/react/WorkTable.js.map +1 -0
- package/dist/client/react/WorkTools.d.ts +5 -0
- package/dist/client/react/WorkTools.d.ts.map +1 -0
- package/dist/client/react/WorkTools.js +7 -0
- package/dist/client/react/WorkTools.js.map +1 -0
- package/dist/client/react/activeRead.d.ts +7 -0
- package/dist/client/react/activeRead.d.ts.map +1 -0
- package/dist/client/react/activeRead.js +13 -0
- package/dist/client/react/activeRead.js.map +1 -0
- package/dist/client/react/createResponse.d.ts +26 -0
- package/dist/client/react/createResponse.d.ts.map +1 -0
- package/dist/client/react/createResponse.js +29 -0
- package/dist/client/react/createResponse.js.map +1 -0
- package/dist/client/react/diagnosticsValues.d.ts +13 -0
- package/dist/client/react/diagnosticsValues.d.ts.map +1 -0
- package/dist/client/react/diagnosticsValues.js +49 -0
- package/dist/client/react/diagnosticsValues.js.map +1 -0
- package/dist/client/react/entry.js +6 -18
- package/dist/client/react/entry.js.map +1 -1
- package/dist/client/react/historyStore.d.ts +7 -0
- package/dist/client/react/historyStore.d.ts.map +1 -0
- package/dist/client/react/historyStore.js +61 -0
- package/dist/client/react/historyStore.js.map +1 -0
- package/dist/client/react/liveStatus.d.ts +16 -0
- package/dist/client/react/liveStatus.d.ts.map +1 -0
- package/dist/client/react/liveStatus.js +43 -0
- package/dist/client/react/liveStatus.js.map +1 -0
- package/dist/client/react/loadBoardPage.d.ts +1 -1
- package/dist/client/react/loadBoardPage.d.ts.map +1 -1
- package/dist/client/react/loadBoardPage.js +14 -4
- package/dist/client/react/loadBoardPage.js.map +1 -1
- package/dist/client/react/loadProjection.d.ts +674 -0
- package/dist/client/react/loadProjection.d.ts.map +1 -0
- package/dist/client/react/loadProjection.js +15 -0
- package/dist/client/react/loadProjection.js.map +1 -0
- package/dist/client/react/loadRemaining.d.ts +577 -0
- package/dist/client/react/loadRemaining.d.ts.map +1 -0
- package/dist/client/react/loadRemaining.js +19 -0
- package/dist/client/react/loadRemaining.js.map +1 -0
- package/dist/client/react/mainLocation.d.ts +6 -0
- package/dist/client/react/mainLocation.d.ts.map +1 -0
- package/dist/client/react/mainLocation.js +9 -0
- package/dist/client/react/mainLocation.js.map +1 -0
- package/dist/client/react/navigationLocation.d.ts +33 -0
- package/dist/client/react/navigationLocation.d.ts.map +1 -0
- package/dist/client/react/navigationLocation.js +22 -0
- package/dist/client/react/navigationLocation.js.map +1 -0
- package/dist/client/react/pageQuery.d.ts +5 -0
- package/dist/client/react/pageQuery.d.ts.map +1 -0
- package/dist/client/react/pageQuery.js +35 -0
- package/dist/client/react/pageQuery.js.map +1 -0
- package/dist/client/react/projectionChanges.d.ts +6 -0
- package/dist/client/react/projectionChanges.d.ts.map +1 -0
- package/dist/client/react/projectionChanges.js +16 -0
- package/dist/client/react/projectionChanges.js.map +1 -0
- package/dist/client/react/projectionRoute.d.ts +4 -0
- package/dist/client/react/projectionRoute.d.ts.map +1 -0
- package/dist/client/react/projectionRoute.js +18 -0
- package/dist/client/react/projectionRoute.js.map +1 -0
- package/dist/client/react/readerLink.d.ts +2 -0
- package/dist/client/react/readerLink.d.ts.map +1 -0
- package/dist/client/react/readerLink.js +8 -0
- package/dist/client/react/readerLink.js.map +1 -0
- package/dist/client/react/readingHistory.d.ts +38 -0
- package/dist/client/react/readingHistory.d.ts.map +1 -0
- package/dist/client/react/readingHistory.js +33 -0
- package/dist/client/react/readingHistory.js.map +1 -0
- package/dist/client/react/readingLibrary.d.ts +24 -0
- package/dist/client/react/readingLibrary.d.ts.map +1 -0
- package/dist/client/react/readingLibrary.js +18 -0
- package/dist/client/react/readingLibrary.js.map +1 -0
- package/dist/client/react/readingState.d.ts +20 -0
- package/dist/client/react/readingState.d.ts.map +1 -0
- package/dist/client/react/readingState.js +133 -0
- package/dist/client/react/readingState.js.map +1 -0
- package/dist/client/react/remainingRoute.d.ts +3 -0
- package/dist/client/react/remainingRoute.d.ts.map +1 -0
- package/dist/client/react/remainingRoute.js +19 -0
- package/dist/client/react/remainingRoute.js.map +1 -0
- package/dist/client/react/savedViews.d.ts +14 -0
- package/dist/client/react/savedViews.d.ts.map +1 -0
- package/dist/client/react/savedViews.js +87 -0
- package/dist/client/react/savedViews.js.map +1 -0
- package/dist/client/react/scheduleReading.d.ts +3 -0
- package/dist/client/react/scheduleReading.d.ts.map +1 -0
- package/dist/client/react/scheduleReading.js +36 -0
- package/dist/client/react/scheduleReading.js.map +1 -0
- package/dist/client/react/searchCommands.d.ts +11 -0
- package/dist/client/react/searchCommands.d.ts.map +1 -0
- package/dist/client/react/searchCommands.js +7 -0
- package/dist/client/react/searchCommands.js.map +1 -0
- package/dist/client/react/searchStatus.d.ts +6 -0
- package/dist/client/react/searchStatus.d.ts.map +1 -0
- package/dist/client/react/searchStatus.js +20 -0
- package/dist/client/react/searchStatus.js.map +1 -0
- package/dist/client/react/shellIds.d.ts +59 -0
- package/dist/client/react/shellIds.d.ts.map +1 -1
- package/dist/client/react/shellIds.js +59 -0
- package/dist/client/react/shellIds.js.map +1 -1
- package/dist/client/react/useAppearance.d.ts +14 -0
- package/dist/client/react/useAppearance.d.ts.map +1 -0
- package/dist/client/react/useAppearance.js +55 -0
- package/dist/client/react/useAppearance.js.map +1 -0
- package/dist/client/react/useBoardNavigation.d.ts +3 -0
- package/dist/client/react/useBoardNavigation.d.ts.map +1 -0
- package/dist/client/react/useBoardNavigation.js +129 -0
- package/dist/client/react/useBoardNavigation.js.map +1 -0
- package/dist/client/react/useDiagnosticsPolling.d.ts +3 -0
- package/dist/client/react/useDiagnosticsPolling.d.ts.map +1 -0
- package/dist/client/react/useDiagnosticsPolling.js +23 -0
- package/dist/client/react/useDiagnosticsPolling.js.map +1 -0
- package/dist/client/react/useDocumentPage.d.ts +1 -1
- package/dist/client/react/useDocumentPage.d.ts.map +1 -1
- package/dist/client/react/useFormFocus.d.ts +5 -0
- package/dist/client/react/useFormFocus.d.ts.map +1 -0
- package/dist/client/react/useFormFocus.js +46 -0
- package/dist/client/react/useFormFocus.js.map +1 -0
- package/dist/client/react/useHandoffForm.d.ts +69 -0
- package/dist/client/react/useHandoffForm.d.ts.map +1 -0
- package/dist/client/react/useHandoffForm.js +102 -0
- package/dist/client/react/useHandoffForm.js.map +1 -0
- package/dist/client/react/useHistoryComparison.d.ts +33 -0
- package/dist/client/react/useHistoryComparison.d.ts.map +1 -0
- package/dist/client/react/useHistoryComparison.js +146 -0
- package/dist/client/react/useHistoryComparison.js.map +1 -0
- package/dist/client/react/useMedia.d.ts +2 -0
- package/dist/client/react/useMedia.d.ts.map +1 -0
- package/dist/client/react/useMedia.js +19 -0
- package/dist/client/react/useMedia.js.map +1 -0
- package/dist/client/react/useResponseForm.d.ts +107 -0
- package/dist/client/react/useResponseForm.d.ts.map +1 -0
- package/dist/client/react/useResponseForm.js +138 -0
- package/dist/client/react/useResponseForm.js.map +1 -0
- package/dist/client/react/useSearchDialog.d.ts +7 -0
- package/dist/client/react/useSearchDialog.d.ts.map +1 -0
- package/dist/client/react/useSearchDialog.js +26 -0
- package/dist/client/react/useSearchDialog.js.map +1 -0
- package/dist/client/react/useSidebar.d.ts +9 -0
- package/dist/client/react/useSidebar.d.ts.map +1 -0
- package/dist/client/react/useSidebar.js +77 -0
- package/dist/client/react/useSidebar.js.map +1 -0
- package/dist/client/react/visualDimensions.d.ts +3 -0
- package/dist/client/react/visualDimensions.d.ts.map +1 -0
- package/dist/client/react/visualDimensions.js +21 -0
- package/dist/client/react/visualDimensions.js.map +1 -0
- package/dist/client/react/visualSources.d.ts +13 -0
- package/dist/client/react/visualSources.d.ts.map +1 -0
- package/dist/client/react/visualSources.js +92 -0
- package/dist/client/react/visualSources.js.map +1 -0
- package/dist/client/reconcile/normalized.d.ts +3 -0
- package/dist/client/reconcile/normalized.d.ts.map +1 -0
- package/dist/client/reconcile/{signature.js → normalized.js} +1 -37
- package/dist/client/reconcile/normalized.js.map +1 -0
- package/dist/client/responses/answerRecovery.d.ts +14 -0
- package/dist/client/responses/answerRecovery.d.ts.map +1 -0
- package/dist/client/responses/answerRecovery.js +33 -0
- package/dist/client/responses/answerRecovery.js.map +1 -0
- package/dist/client/responses/authorLabel.d.ts +1 -1
- package/dist/client/responses/authorLabel.d.ts.map +1 -1
- package/dist/client/responses/authorLabel.js +2 -2
- package/dist/client/responses/authorLabel.js.map +1 -1
- package/dist/client/responses/failure.d.ts +5 -0
- package/dist/client/responses/failure.d.ts.map +1 -0
- package/dist/client/responses/failure.js +13 -0
- package/dist/client/responses/failure.js.map +1 -0
- package/dist/client/responses/formSchema.d.ts +9 -0
- package/dist/client/responses/formSchema.d.ts.map +1 -1
- package/dist/client/responses/formSchema.js +3 -0
- package/dist/client/responses/formSchema.js.map +1 -1
- package/dist/client/responses/preview.d.ts +2 -2
- package/dist/client/responses/preview.d.ts.map +1 -1
- package/dist/client/responses/preview.js.map +1 -1
- package/dist/client/responses/retainContext.d.ts +6 -0
- package/dist/client/responses/retainContext.d.ts.map +1 -0
- package/dist/client/responses/retainContext.js +12 -0
- package/dist/client/responses/retainContext.js.map +1 -0
- package/dist/client/responses/summary.d.ts +6 -0
- package/dist/client/responses/summary.d.ts.map +1 -0
- package/dist/client/responses/summary.js +21 -0
- package/dist/client/responses/summary.js.map +1 -0
- package/dist/client/sourceChanged.d.ts +2 -0
- package/dist/client/sourceChanged.d.ts.map +1 -0
- package/dist/client/sourceChanged.js +4 -0
- package/dist/client/sourceChanged.js.map +1 -0
- package/dist/diagnostics/daemonContract.d.ts +1 -1
- package/dist/diagnostics/daemonContract.js +1 -1
- package/dist/diagnostics/daemonContract.js.map +1 -1
- package/dist/diagnostics/source.d.ts +14 -24
- package/dist/diagnostics/source.d.ts.map +1 -1
- package/dist/diagnostics/source.js +2 -9
- package/dist/diagnostics/source.js.map +1 -1
- package/dist/history/schema.d.ts +33 -0
- package/dist/history/schema.d.ts.map +1 -1
- package/dist/history/schema.js +12 -0
- package/dist/history/schema.js.map +1 -1
- package/dist/rpc/contract.d.ts +4235 -298
- package/dist/rpc/contract.d.ts.map +1 -1
- package/dist/rpc/contract.js +57 -3
- package/dist/rpc/contract.js.map +1 -1
- package/dist/rpc/handoffContract.d.ts +3 -3
- package/dist/rpc/responseContract.d.ts +5 -5
- package/dist/server/board.d.ts +4 -4
- package/dist/server/board.d.ts.map +1 -1
- package/dist/server/board.js +18 -95
- package/dist/server/board.js.map +1 -1
- package/dist/server/boardRuntime.d.ts +12 -0
- package/dist/server/boardRuntime.d.ts.map +1 -0
- package/dist/server/boardRuntime.js +37 -0
- package/dist/server/boardRuntime.js.map +1 -0
- package/dist/server/diagnostics/daemon.js +3 -3
- package/dist/server/diagnostics/daemon.js.map +1 -1
- package/dist/server/history/html.d.ts +0 -1
- package/dist/server/history/html.d.ts.map +1 -1
- package/dist/server/history/html.js +0 -3
- package/dist/server/history/html.js.map +1 -1
- package/dist/server/history/response.d.ts.map +1 -1
- package/dist/server/history/response.js +14 -1
- package/dist/server/history/response.js.map +1 -1
- package/dist/server/http/assets.d.ts +4 -4
- package/dist/server/http/assets.d.ts.map +1 -1
- package/dist/server/http/assets.js +1 -35
- package/dist/server/http/assets.js.map +1 -1
- package/dist/server/http/attachment.d.ts +2 -2
- package/dist/server/http/attachment.d.ts.map +1 -1
- package/dist/server/http/boardRoutes.d.ts +6 -0
- package/dist/server/http/boardRoutes.d.ts.map +1 -0
- package/dist/server/http/boardRoutes.js +45 -0
- package/dist/server/http/boardRoutes.js.map +1 -0
- package/dist/server/http/identity.d.ts +2 -2
- package/dist/server/http/identity.d.ts.map +1 -1
- package/dist/server/http/inbox.d.ts +1 -1
- package/dist/server/http/inbox.d.ts.map +1 -1
- package/dist/server/http/overview.d.ts +1 -1
- package/dist/server/http/overview.d.ts.map +1 -1
- package/dist/server/http/page.d.ts +2 -2
- package/dist/server/http/page.d.ts.map +1 -1
- package/dist/server/http/page.js +1 -2
- package/dist/server/http/page.js.map +1 -1
- package/dist/server/http/respond.d.ts +1 -1
- package/dist/server/http/respond.d.ts.map +1 -1
- package/dist/server/http/respond.js +1 -1
- package/dist/server/http/respond.js.map +1 -1
- package/dist/server/http/rpcPolicy.d.ts +4 -0
- package/dist/server/http/rpcPolicy.d.ts.map +1 -0
- package/dist/server/http/rpcPolicy.js +11 -0
- package/dist/server/http/rpcPolicy.js.map +1 -0
- package/dist/server/http/work.d.ts +2 -2
- package/dist/server/http/work.d.ts.map +1 -1
- package/dist/server/integration/diagnostics.d.ts +1 -1
- package/dist/server/responses/agent.d.ts +1 -1
- package/dist/server/responses/agent.d.ts.map +1 -1
- package/dist/server/responses/agent.js +2 -2
- package/dist/server/responses/agent.js.map +1 -1
- package/dist/server/responses/composerHtml.js +1 -1
- package/dist/server/responses/composerHtml.js.map +1 -1
- package/dist/server/responses/waitFor.d.ts +1 -1
- package/dist/server/responses/waitFor.d.ts.map +1 -1
- package/dist/server/rpc/HandlerOptions.d.ts +12 -0
- package/dist/server/rpc/HandlerOptions.d.ts.map +1 -0
- package/dist/server/rpc/HandlerOptions.js +2 -0
- package/dist/server/rpc/HandlerOptions.js.map +1 -0
- package/dist/server/rpc/handlers.d.ts +2 -2
- package/dist/server/rpc/handlers.d.ts.map +1 -1
- package/dist/server/rpc/handlers.js +17 -10
- package/dist/server/rpc/handlers.js.map +1 -1
- package/dist/server/serve-cli.js +8 -8
- package/dist/server/serve-cli.js.map +1 -1
- package/dist/server/serve.d.ts +2 -3
- package/dist/server/serve.d.ts.map +1 -1
- package/dist/server/serve.js +20 -9
- package/dist/server/serve.js.map +1 -1
- package/dist/server/views/projectionQueries.d.ts +681 -0
- package/dist/server/views/projectionQueries.d.ts.map +1 -0
- package/dist/server/views/projectionQueries.js +70 -0
- package/dist/server/views/projectionQueries.js.map +1 -0
- package/dist/server/views/remainingQueries.d.ts +679 -0
- package/dist/server/views/remainingQueries.d.ts.map +1 -0
- package/dist/server/views/remainingQueries.js +58 -0
- package/dist/server/views/remainingQueries.js.map +1 -0
- package/dist/server/views/resultProjection.d.ts +420 -0
- package/dist/server/views/resultProjection.d.ts.map +1 -0
- package/dist/server/views/resultProjection.js +35 -0
- package/dist/server/views/resultProjection.js.map +1 -0
- package/dist/server/views/resultTargets.d.ts +6 -0
- package/dist/server/views/resultTargets.d.ts.map +1 -0
- package/dist/server/views/resultTargets.js +31 -0
- package/dist/server/views/resultTargets.js.map +1 -0
- package/dist/server/views/state.d.ts +8 -9
- package/dist/server/views/state.d.ts.map +1 -1
- package/dist/server/views/state.js +5 -38
- package/dist/server/views/state.js.map +1 -1
- package/dist/server/views/workStyle.d.ts.map +1 -1
- package/dist/server/views/workStyle.js +1 -0
- package/dist/server/views/workStyle.js.map +1 -1
- package/docs/delivery/decision-write-examples.md +1 -1
- package/docs/delivery/handoff-examples.md +1 -1
- package/docs/delivery/response-write-examples.md +1 -1
- package/docs/delivery/result-review-examples.md +1 -1
- package/docs/roadmap.md +7 -7
- package/package.json +52 -139
- package/src/browser/diagnostics/schema.ts +18 -0
- package/src/browser/views/ResultProjection.ts +37 -0
- package/src/browser/views/remaining.ts +26 -0
- package/src/browser/views/schema.ts +68 -0
- package/src/browser/views/state.ts +47 -0
- package/src/client/client.ts +8 -8
- package/src/client/document/Mermaid.ts +49 -9
- package/src/client/document/View.ts +14 -1
- package/src/client/document/boardLayout.ts +80 -0
- package/src/client/entry.ts +0 -24
- package/src/client/formDraft.ts +9 -0
- package/src/client/formFocus.ts +5 -0
- package/src/client/handoffs/failureStatus.ts +6 -0
- package/src/client/page/routeQuery.ts +0 -5
- package/src/client/react/Age.tsx +35 -0
- package/src/client/react/AnswerForm.tsx +88 -82
- package/src/client/react/AnswerPrompts.tsx +67 -54
- package/src/client/react/BoardMain.tsx +30 -0
- package/src/client/react/BoardShell.tsx +89 -27
- package/src/client/react/ChangesMain.tsx +68 -0
- package/src/client/react/DiagnosticsFleet.tsx +64 -0
- package/src/client/react/DiagnosticsMain.tsx +29 -0
- package/src/client/react/DiagnosticsPage.tsx +77 -0
- package/src/client/react/DocumentContext.tsx +25 -9
- package/src/client/react/DocumentMain.tsx +8 -6
- package/src/client/react/Favorite.tsx +17 -0
- package/src/client/react/FormField.tsx +68 -0
- package/src/client/react/HandoffForm.tsx +78 -0
- package/src/client/react/HandoffPage.tsx +78 -0
- package/src/client/react/HandoffPrompt.tsx +33 -0
- package/src/client/react/Header.tsx +34 -13
- package/src/client/react/HistoryComparison.tsx +60 -0
- package/src/client/react/HistoryRetention.tsx +29 -0
- package/src/client/react/HomeBoard.tsx +15 -0
- package/src/client/react/InboxPage.tsx +51 -0
- package/src/client/react/LiveControls.tsx +78 -0
- package/src/client/react/Modal.tsx +92 -0
- package/src/client/react/NavigationTree.tsx +2 -1
- package/src/client/react/OverviewGroups.tsx +61 -0
- package/src/client/react/OverviewPage.tsx +68 -0
- package/src/client/react/ProjectionFrame.tsx +140 -0
- package/src/client/react/ProjectionMain.tsx +63 -0
- package/src/client/react/PromptOption.tsx +56 -0
- package/src/client/react/ReadingLibrary.tsx +147 -0
- package/src/client/react/RemainingMain.tsx +66 -0
- package/src/client/react/RespondPage.tsx +41 -0
- package/src/client/react/ResponseMarkdown.tsx +32 -2
- package/src/client/react/ResultCriteria.tsx +78 -0
- package/src/client/react/ResultFeedback.tsx +67 -0
- package/src/client/react/ResultPage.tsx +50 -0
- package/src/client/react/SavedViews.tsx +61 -0
- package/src/client/react/SearchDialog.tsx +136 -0
- package/src/client/react/SearchResults.tsx +48 -0
- package/src/client/react/ShellApi.ts +11 -1
- package/src/client/react/Sidebar.tsx +57 -4
- package/src/client/react/StartPage.tsx +41 -0
- package/src/client/react/UpdatesToggle.tsx +13 -0
- package/src/client/react/VisualControls.tsx +59 -0
- package/src/client/react/VisualInspection.tsx +35 -0
- package/src/client/react/VisualViewer.tsx +147 -0
- package/src/client/react/WorkCards.tsx +39 -0
- package/src/client/react/WorkControls.tsx +73 -0
- package/src/client/react/WorkDetail.tsx +35 -0
- package/src/client/react/WorkItemTitle.tsx +9 -0
- package/src/client/react/WorkPage.tsx +59 -0
- package/src/client/react/WorkResults.tsx +9 -0
- package/src/client/react/WorkTable.tsx +39 -0
- package/src/client/react/WorkTools.tsx +17 -0
- package/src/client/react/activeRead.ts +15 -0
- package/src/client/react/createResponse.ts +40 -0
- package/src/client/react/diagnosticsValues.tsx +103 -0
- package/src/client/react/entry.css +20 -0
- package/src/client/react/entry.tsx +6 -19
- package/src/client/react/historyStore.ts +56 -0
- package/src/client/react/liveStatus.ts +52 -0
- package/src/client/react/loadBoardPage.ts +15 -5
- package/src/client/react/loadProjection.ts +23 -0
- package/src/client/react/loadRemaining.ts +27 -0
- package/src/client/react/mainLocation.ts +12 -0
- package/src/client/react/navigationLocation.ts +27 -0
- package/src/client/react/pageQuery.ts +38 -0
- package/src/client/react/projectionChanges.ts +21 -0
- package/src/client/react/projectionRoute.ts +21 -0
- package/src/client/react/readerLink.ts +9 -0
- package/src/client/react/readingHistory.ts +31 -0
- package/src/client/react/readingLibrary.ts +22 -0
- package/src/client/react/readingState.ts +133 -0
- package/src/client/react/remainingRoute.ts +19 -0
- package/src/client/react/savedViews.ts +84 -0
- package/src/client/react/scheduleReading.ts +41 -0
- package/src/client/react/searchCommands.ts +15 -0
- package/src/client/react/searchStatus.ts +30 -0
- package/src/client/react/shellIds.ts +59 -0
- package/src/client/react/useAppearance.ts +54 -0
- package/src/client/react/useBoardNavigation.ts +139 -0
- package/src/client/react/useDiagnosticsPolling.ts +24 -0
- package/src/client/react/useDocumentPage.ts +1 -1
- package/src/client/react/useFormFocus.ts +46 -0
- package/src/client/react/useHandoffForm.ts +105 -0
- package/src/client/react/useHistoryComparison.ts +142 -0
- package/src/client/react/useMedia.ts +19 -0
- package/src/client/react/useResponseForm.ts +147 -0
- package/src/client/react/useSearchDialog.ts +25 -0
- package/src/client/react/useSidebar.ts +81 -0
- package/src/client/react/visualDimensions.ts +20 -0
- package/src/client/react/visualSources.ts +105 -0
- package/src/client/reconcile/{signature.ts → normalized.ts} +0 -37
- package/src/client/responses/answerRecovery.ts +37 -0
- package/src/client/responses/authorLabel.ts +3 -3
- package/src/client/responses/failure.ts +13 -0
- package/src/client/responses/formSchema.ts +4 -0
- package/src/client/responses/preview.ts +2 -2
- package/src/client/responses/retainContext.ts +15 -0
- package/src/client/responses/summary.ts +25 -0
- package/src/client/sourceChanged.ts +3 -0
- package/src/diagnostics/daemonContract.ts +1 -1
- package/src/diagnostics/source.ts +5 -14
- package/src/history/schema.ts +15 -0
- package/src/rpc/contract.ts +57 -3
- package/src/server/board.ts +24 -126
- package/src/server/boardRuntime.ts +54 -0
- package/src/server/diagnostics/daemon.ts +3 -3
- package/src/server/history/html.ts +0 -3
- package/src/server/history/response.ts +15 -1
- package/src/server/http/assets.ts +2 -36
- package/src/server/http/attachment.ts +1 -1
- package/src/server/http/boardRoutes.ts +62 -0
- package/src/server/http/identity.ts +1 -1
- package/src/server/http/page.ts +2 -3
- package/src/server/http/respond.ts +1 -1
- package/src/server/http/rpcPolicy.ts +16 -0
- package/src/server/http/work.ts +1 -1
- package/src/server/responses/agent.ts +2 -2
- package/src/server/responses/composerHtml.ts +1 -1
- package/src/server/responses/waitFor.ts +1 -1
- package/src/server/rpc/HandlerOptions.ts +12 -0
- package/src/server/rpc/handlers.ts +18 -15
- package/src/server/serve-cli.ts +8 -8
- package/src/server/serve.ts +23 -10
- package/src/server/views/projectionQueries.ts +78 -0
- package/src/server/views/remainingQueries.ts +74 -0
- package/src/server/views/resultProjection.ts +45 -0
- package/src/server/views/resultTargets.ts +34 -0
- package/src/server/views/state.ts +5 -40
- package/src/server/views/workStyle.ts +1 -0
- package/dist/client/diagnostics/script.d.ts +0 -2
- package/dist/client/diagnostics/script.d.ts.map +0 -1
- package/dist/client/diagnostics/script.js +0 -31
- package/dist/client/diagnostics/script.js.map +0 -1
- package/dist/client/fieldFeedback.d.ts +0 -17
- package/dist/client/fieldFeedback.d.ts.map +0 -1
- package/dist/client/fieldFeedback.js +0 -38
- package/dist/client/fieldFeedback.js.map +0 -1
- package/dist/client/handoffs/copy.d.ts +0 -3
- package/dist/client/handoffs/copy.d.ts.map +0 -1
- package/dist/client/handoffs/copy.js +0 -47
- package/dist/client/handoffs/copy.js.map +0 -1
- package/dist/client/handoffs/fields.d.ts +0 -9
- package/dist/client/handoffs/fields.d.ts.map +0 -1
- package/dist/client/handoffs/fields.js +0 -34
- package/dist/client/handoffs/fields.js.map +0 -1
- package/dist/client/handoffs/form.d.ts +0 -36
- package/dist/client/handoffs/form.d.ts.map +0 -1
- package/dist/client/handoffs/form.js +0 -33
- package/dist/client/handoffs/form.js.map +0 -1
- package/dist/client/handoffs/setup.d.ts +0 -2
- package/dist/client/handoffs/setup.d.ts.map +0 -1
- package/dist/client/handoffs/setup.js +0 -125
- package/dist/client/handoffs/setup.js.map +0 -1
- package/dist/client/history/script.d.ts +0 -2
- package/dist/client/history/script.d.ts.map +0 -1
- package/dist/client/history/script.js +0 -128
- package/dist/client/history/script.js.map +0 -1
- package/dist/client/legacyRuntime.d.ts +0 -9
- package/dist/client/legacyRuntime.d.ts.map +0 -1
- package/dist/client/legacyRuntime.js +0 -15
- package/dist/client/legacyRuntime.js.map +0 -1
- package/dist/client/page/ageScript.d.ts +0 -2
- package/dist/client/page/ageScript.d.ts.map +0 -1
- package/dist/client/page/ageScript.js +0 -23
- package/dist/client/page/ageScript.js.map +0 -1
- package/dist/client/page/formReadingScript.d.ts +0 -2
- package/dist/client/page/formReadingScript.d.ts.map +0 -1
- package/dist/client/page/formReadingScript.js +0 -26
- package/dist/client/page/formReadingScript.js.map +0 -1
- package/dist/client/page/itemContextScript.d.ts +0 -2
- package/dist/client/page/itemContextScript.d.ts.map +0 -1
- package/dist/client/page/itemContextScript.js +0 -21
- package/dist/client/page/itemContextScript.js.map +0 -1
- package/dist/client/page/libraryScript.d.ts +0 -2
- package/dist/client/page/libraryScript.d.ts.map +0 -1
- package/dist/client/page/libraryScript.js +0 -85
- package/dist/client/page/libraryScript.js.map +0 -1
- package/dist/client/page/navigationHistoryScript.d.ts +0 -2
- package/dist/client/page/navigationHistoryScript.d.ts.map +0 -1
- package/dist/client/page/navigationHistoryScript.js +0 -47
- package/dist/client/page/navigationHistoryScript.js.map +0 -1
- package/dist/client/page/navigationScript.d.ts +0 -2
- package/dist/client/page/navigationScript.d.ts.map +0 -1
- package/dist/client/page/navigationScript.js +0 -113
- package/dist/client/page/navigationScript.js.map +0 -1
- package/dist/client/page/preferencesScript.d.ts +0 -2
- package/dist/client/page/preferencesScript.d.ts.map +0 -1
- package/dist/client/page/preferencesScript.js +0 -46
- package/dist/client/page/preferencesScript.js.map +0 -1
- package/dist/client/page/reactNavigationScript.d.ts +0 -2
- package/dist/client/page/reactNavigationScript.d.ts.map +0 -1
- package/dist/client/page/reactNavigationScript.js +0 -31
- package/dist/client/page/reactNavigationScript.js.map +0 -1
- package/dist/client/page/readingStateScript.d.ts +0 -2
- package/dist/client/page/readingStateScript.d.ts.map +0 -1
- package/dist/client/page/readingStateScript.js +0 -65
- package/dist/client/page/readingStateScript.js.map +0 -1
- package/dist/client/page/runtime.d.ts +0 -3
- package/dist/client/page/runtime.d.ts.map +0 -1
- package/dist/client/page/runtime.js +0 -111
- package/dist/client/page/runtime.js.map +0 -1
- package/dist/client/page/scripts.d.ts +0 -3
- package/dist/client/page/scripts.d.ts.map +0 -1
- package/dist/client/page/scripts.js +0 -91
- package/dist/client/page/scripts.js.map +0 -1
- package/dist/client/page/searchResultsScript.d.ts +0 -2
- package/dist/client/page/searchResultsScript.d.ts.map +0 -1
- package/dist/client/page/searchResultsScript.js +0 -64
- package/dist/client/page/searchResultsScript.js.map +0 -1
- package/dist/client/page/searchScript.d.ts +0 -2
- package/dist/client/page/searchScript.d.ts.map +0 -1
- package/dist/client/page/searchScript.js +0 -75
- package/dist/client/page/searchScript.js.map +0 -1
- package/dist/client/page/sidebarScript.d.ts +0 -2
- package/dist/client/page/sidebarScript.d.ts.map +0 -1
- package/dist/client/page/sidebarScript.js +0 -87
- package/dist/client/page/sidebarScript.js.map +0 -1
- package/dist/client/page/stateScript.d.ts +0 -2
- package/dist/client/page/stateScript.d.ts.map +0 -1
- package/dist/client/page/stateScript.js +0 -95
- package/dist/client/page/stateScript.js.map +0 -1
- package/dist/client/page/visualScript.d.ts +0 -2
- package/dist/client/page/visualScript.d.ts.map +0 -1
- package/dist/client/page/visualScript.js +0 -42
- package/dist/client/page/visualScript.js.map +0 -1
- package/dist/client/page/visualViewport.d.ts +0 -2
- package/dist/client/page/visualViewport.d.ts.map +0 -1
- package/dist/client/page/visualViewport.js +0 -87
- package/dist/client/page/visualViewport.js.map +0 -1
- package/dist/client/react/AnswerFocus.d.ts +0 -6
- package/dist/client/react/AnswerFocus.d.ts.map +0 -1
- package/dist/client/react/AnswerFocus.js +0 -12
- package/dist/client/react/AnswerFocus.js.map +0 -1
- package/dist/client/react/LegacyMain.d.ts +0 -9
- package/dist/client/react/LegacyMain.d.ts.map +0 -1
- package/dist/client/react/LegacyMain.js +0 -32
- package/dist/client/react/LegacyMain.js.map +0 -1
- package/dist/client/react/legacyPage.d.ts +0 -7
- package/dist/client/react/legacyPage.d.ts.map +0 -1
- package/dist/client/react/legacyPage.js +0 -63
- package/dist/client/react/legacyPage.js.map +0 -1
- package/dist/client/reconcile/patch.d.ts +0 -2
- package/dist/client/reconcile/patch.d.ts.map +0 -1
- package/dist/client/reconcile/patch.js +0 -64
- package/dist/client/reconcile/patch.js.map +0 -1
- package/dist/client/reconcile/signature.d.ts +0 -8
- package/dist/client/reconcile/signature.d.ts.map +0 -1
- package/dist/client/reconcile/signature.js.map +0 -1
- package/dist/client/reconcile/swap.d.ts +0 -2
- package/dist/client/reconcile/swap.d.ts.map +0 -1
- package/dist/client/reconcile/swap.js +0 -36
- package/dist/client/reconcile/swap.js.map +0 -1
- package/dist/client/responses/attach.d.ts +0 -2
- package/dist/client/responses/attach.d.ts.map +0 -1
- package/dist/client/responses/attach.js +0 -133
- package/dist/client/responses/attach.js.map +0 -1
- package/dist/client/responses/binding.d.ts +0 -3
- package/dist/client/responses/binding.d.ts.map +0 -1
- package/dist/client/responses/binding.js +0 -16
- package/dist/client/responses/binding.js.map +0 -1
- package/dist/client/responses/draft.d.ts +0 -13
- package/dist/client/responses/draft.d.ts.map +0 -1
- package/dist/client/responses/draft.js +0 -15
- package/dist/client/responses/draft.js.map +0 -1
- package/dist/client/responses/draftSession.d.ts +0 -8
- package/dist/client/responses/draftSession.d.ts.map +0 -1
- package/dist/client/responses/draftSession.js +0 -105
- package/dist/client/responses/draftSession.js.map +0 -1
- package/dist/client/responses/drafts.d.ts +0 -21
- package/dist/client/responses/drafts.d.ts.map +0 -1
- package/dist/client/responses/drafts.js +0 -68
- package/dist/client/responses/drafts.js.map +0 -1
- package/dist/client/responses/feedback.d.ts +0 -6
- package/dist/client/responses/feedback.d.ts.map +0 -1
- package/dist/client/responses/feedback.js +0 -77
- package/dist/client/responses/feedback.js.map +0 -1
- package/dist/client/responses/fields.d.ts +0 -12
- package/dist/client/responses/fields.d.ts.map +0 -1
- package/dist/client/responses/fields.js +0 -23
- package/dist/client/responses/fields.js.map +0 -1
- package/dist/client/responses/form.d.ts +0 -37
- package/dist/client/responses/form.d.ts.map +0 -1
- package/dist/client/responses/form.js +0 -43
- package/dist/client/responses/form.js.map +0 -1
- package/dist/client/responses/questionnaireControls.d.ts +0 -9
- package/dist/client/responses/questionnaireControls.d.ts.map +0 -1
- package/dist/client/responses/questionnaireControls.js +0 -82
- package/dist/client/responses/questionnaireControls.js.map +0 -1
- package/dist/client/responses/setup.d.ts +0 -2
- package/dist/client/responses/setup.d.ts.map +0 -1
- package/dist/client/responses/setup.js +0 -7
- package/dist/client/responses/setup.js.map +0 -1
- package/dist/client/responses/submit.d.ts +0 -5
- package/dist/client/responses/submit.d.ts.map +0 -1
- package/dist/client/responses/submit.js +0 -33
- package/dist/client/responses/submit.js.map +0 -1
- package/dist/client/views/savedScript.d.ts +0 -2
- package/dist/client/views/savedScript.d.ts.map +0 -1
- package/dist/client/views/savedScript.js +0 -89
- package/dist/client/views/savedScript.js.map +0 -1
- package/dist/server/diagnostics/html.d.ts +0 -8
- package/dist/server/diagnostics/html.d.ts.map +0 -1
- package/dist/server/diagnostics/html.js +0 -79
- package/dist/server/diagnostics/html.js.map +0 -1
- package/dist/server/diagnostics/page.d.ts +0 -55
- package/dist/server/diagnostics/page.d.ts.map +0 -1
- package/dist/server/diagnostics/page.js +0 -11
- package/dist/server/diagnostics/page.js.map +0 -1
- package/dist/server/handoffs/html.d.ts +0 -36
- package/dist/server/handoffs/html.d.ts.map +0 -1
- package/dist/server/handoffs/html.js +0 -31
- package/dist/server/handoffs/html.js.map +0 -1
- package/dist/server/handoffs/page.d.ts +0 -6
- package/dist/server/handoffs/page.d.ts.map +0 -1
- package/dist/server/handoffs/page.js +0 -34
- package/dist/server/handoffs/page.js.map +0 -1
- package/dist/server/http/changesPage.d.ts +0 -5
- package/dist/server/http/changesPage.d.ts.map +0 -1
- package/dist/server/http/changesPage.js +0 -13
- package/dist/server/http/changesPage.js.map +0 -1
- package/dist/server/http/readPage.d.ts +0 -4
- package/dist/server/http/readPage.d.ts.map +0 -1
- package/dist/server/http/readPage.js +0 -9
- package/dist/server/http/readPage.js.map +0 -1
- package/dist/server/http/start.d.ts +0 -5
- package/dist/server/http/start.d.ts.map +0 -1
- package/dist/server/http/start.js +0 -13
- package/dist/server/http/start.js.map +0 -1
- package/dist/server/page/startHtml.d.ts +0 -2
- package/dist/server/page/startHtml.d.ts.map +0 -1
- package/dist/server/page/startHtml.js +0 -10
- package/dist/server/page/startHtml.js.map +0 -1
- package/dist/server/responses/page.d.ts +0 -6
- package/dist/server/responses/page.d.ts.map +0 -1
- package/dist/server/responses/page.js +0 -25
- package/dist/server/responses/page.js.map +0 -1
- package/dist/server/results/criteria.d.ts +0 -3
- package/dist/server/results/criteria.d.ts.map +0 -1
- package/dist/server/results/criteria.js +0 -34
- package/dist/server/results/criteria.js.map +0 -1
- package/dist/server/results/feedback.d.ts +0 -6
- package/dist/server/results/feedback.d.ts.map +0 -1
- package/dist/server/results/feedback.js +0 -32
- package/dist/server/results/feedback.js.map +0 -1
- package/dist/server/results/page.d.ts +0 -6
- package/dist/server/results/page.d.ts.map +0 -1
- package/dist/server/results/page.js +0 -41
- package/dist/server/results/page.js.map +0 -1
- package/dist/server/rpc/transport.d.ts +0 -14
- package/dist/server/rpc/transport.d.ts.map +0 -1
- package/dist/server/rpc/transport.js +0 -15
- package/dist/server/rpc/transport.js.map +0 -1
- package/src/client/diagnostics/script.ts +0 -31
- package/src/client/fieldFeedback.ts +0 -53
- package/src/client/handoffs/copy.ts +0 -45
- package/src/client/handoffs/fields.ts +0 -38
- package/src/client/handoffs/form.ts +0 -41
- package/src/client/handoffs/setup.ts +0 -142
- package/src/client/history/script.ts +0 -127
- package/src/client/legacyRuntime.ts +0 -11
- package/src/client/page/ageScript.ts +0 -22
- package/src/client/page/formReadingScript.ts +0 -25
- package/src/client/page/itemContextScript.ts +0 -20
- package/src/client/page/libraryScript.ts +0 -84
- package/src/client/page/navigationHistoryScript.ts +0 -46
- package/src/client/page/navigationScript.ts +0 -113
- package/src/client/page/preferencesScript.ts +0 -45
- package/src/client/page/reactNavigationScript.ts +0 -30
- package/src/client/page/readingStateScript.ts +0 -64
- package/src/client/page/runtime.ts +0 -111
- package/src/client/page/scripts.ts +0 -91
- package/src/client/page/searchResultsScript.ts +0 -63
- package/src/client/page/searchScript.ts +0 -74
- package/src/client/page/sidebarScript.ts +0 -86
- package/src/client/page/stateScript.ts +0 -95
- package/src/client/page/visualScript.ts +0 -41
- package/src/client/page/visualViewport.ts +0 -86
- package/src/client/react/AnswerFocus.tsx +0 -10
- package/src/client/react/LegacyMain.tsx +0 -46
- package/src/client/react/legacyPage.ts +0 -69
- package/src/client/reconcile/patch.ts +0 -71
- package/src/client/reconcile/swap.ts +0 -37
- package/src/client/responses/attach.ts +0 -150
- package/src/client/responses/binding.ts +0 -16
- package/src/client/responses/draft.ts +0 -20
- package/src/client/responses/draftSession.ts +0 -108
- package/src/client/responses/drafts.ts +0 -82
- package/src/client/responses/feedback.ts +0 -81
- package/src/client/responses/fields.ts +0 -26
- package/src/client/responses/form.ts +0 -58
- package/src/client/responses/questionnaireControls.ts +0 -94
- package/src/client/responses/setup.ts +0 -6
- package/src/client/responses/submit.ts +0 -44
- package/src/client/views/savedScript.ts +0 -88
- package/src/server/diagnostics/html.ts +0 -93
- package/src/server/diagnostics/page.ts +0 -31
- package/src/server/handoffs/html.ts +0 -42
- package/src/server/handoffs/page.ts +0 -51
- package/src/server/http/changesPage.ts +0 -15
- package/src/server/http/readPage.ts +0 -13
- package/src/server/http/start.ts +0 -27
- package/src/server/page/startHtml.ts +0 -10
- package/src/server/responses/page.ts +0 -37
- package/src/server/results/criteria.ts +0 -37
- package/src/server/results/feedback.ts +0 -44
- package/src/server/results/page.ts +0 -63
- package/src/server/rpc/transport.ts +0 -34
|
@@ -1,80 +1,93 @@
|
|
|
1
|
+
import { useAtomValue } from "@effect/atom-react";
|
|
2
|
+
import { useLayoutEffect, useRef } from "react";
|
|
1
3
|
import type { Document } from "#browser/document/schema.ts";
|
|
2
4
|
import type { Prompt } from "#browser/responses/Prompt.ts";
|
|
5
|
+
import type { PromptAnswer } from "#browser/responses/schema.ts";
|
|
6
|
+
import { PromptOption } from "./PromptOption.tsx";
|
|
3
7
|
import { ResponseMarkdown } from "./ResponseMarkdown.tsx";
|
|
4
|
-
|
|
5
|
-
|
|
8
|
+
import type { useResponseForm } from "./useResponseForm.ts";
|
|
9
|
+
|
|
10
|
+
type Model = ReturnType<typeof useResponseForm>["form"];
|
|
11
|
+
interface PromptProps {
|
|
12
|
+
readonly answers: readonly PromptAnswer[];
|
|
13
|
+
readonly document: Document;
|
|
14
|
+
readonly form: Model;
|
|
15
|
+
readonly onEdit: (index: number, answer: PromptAnswer) => void;
|
|
16
|
+
readonly prompts: readonly Prompt[];
|
|
17
|
+
}
|
|
18
|
+
export function AnswerPrompts(props: PromptProps) {
|
|
19
|
+
return props.prompts.map((prompt, index) => <PromptField {...props} index={index} key={prompt.id} prompt={prompt} />);
|
|
6
20
|
}
|
|
7
|
-
function PromptField({ document, prompt, index }:
|
|
21
|
+
function PromptField({ document, prompt, index, answers, form, onEdit }: PromptProps & { readonly prompt: Prompt; readonly index: number }) {
|
|
22
|
+
const answer = answers[index] ?? { prompt: prompt.id, selected: [], text: "" };
|
|
23
|
+
const error = useAtomValue(form.errorAt(["answers", index, "text"]));
|
|
24
|
+
const ref = useRef<HTMLTextAreaElement>(null);
|
|
25
|
+
useLayoutEffect(() => ref.current?.setCustomValidity(error ?? ""), [error]);
|
|
8
26
|
const choices = document.metadata.options;
|
|
27
|
+
|
|
9
28
|
let guidance = "Answer in your own words.";
|
|
10
29
|
if (choices) {
|
|
11
30
|
guidance = "Choose an option or write another answer.";
|
|
12
31
|
} else if (prompt.mode !== "text") {
|
|
13
32
|
guidance = `${prompt.mode === "one" ? "Choose one option" : "Choose any combination"}, or answer in your own words.`;
|
|
14
33
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
34
|
+
function change(next: PromptAnswer) {
|
|
35
|
+
onEdit(index, next);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function choose(id: string, checked: boolean) {
|
|
39
|
+
let selected: readonly string[] = [];
|
|
40
|
+
if (prompt.mode === "one") {
|
|
41
|
+
selected = checked ? [id] : [];
|
|
42
|
+
} else {
|
|
43
|
+
selected = checked ? [...new Set([...answer.selected, id])] : answer.selected.filter((entry) => entry !== id);
|
|
44
|
+
}
|
|
45
|
+
change({ ...answer, selected });
|
|
46
|
+
}
|
|
47
|
+
let message = error;
|
|
48
|
+
if (error && answer.selected.length === 0 && !answer.text.trim()) {
|
|
49
|
+
message = `Unanswered: Question ${index + 1} · ${prompt.id}. Choose an option or answer in your own words.`;
|
|
50
|
+
}
|
|
18
51
|
return (
|
|
19
52
|
<fieldset data-mode={prompt.mode} data-prompt={prompt.id} data-source={prompt.source}>
|
|
20
53
|
<legend>{choices ? "Your answer" : `Question ${index + 1} · ${prompt.id}`}</legend>
|
|
21
54
|
{choices === undefined && <ResponseMarkdown file={document.file} source={prompt.source} />}
|
|
22
55
|
<p>{guidance} Nothing is selected for you.</p>
|
|
23
|
-
<div className={choices ? "question-choices" : undefined}>
|
|
56
|
+
<div className={choices ? "question-choices" : undefined}>
|
|
57
|
+
{prompt.options.map((option, choice) => (
|
|
58
|
+
<PromptOption
|
|
59
|
+
checked={answer.selected.includes(option.id)}
|
|
60
|
+
choice={choice}
|
|
61
|
+
choose={choose}
|
|
62
|
+
document={document}
|
|
63
|
+
index={index}
|
|
64
|
+
key={option.id}
|
|
65
|
+
option={option}
|
|
66
|
+
prompt={prompt}
|
|
67
|
+
/>
|
|
68
|
+
))}
|
|
69
|
+
</div>
|
|
24
70
|
{prompt.mode !== "text" && (
|
|
25
|
-
<button data-clear-choices type="button">
|
|
71
|
+
<button data-clear-choices onClick={() => change({ ...answer, selected: [] })} type="button">
|
|
26
72
|
Clear selections
|
|
27
73
|
</button>
|
|
28
74
|
)}
|
|
29
75
|
<label>
|
|
30
76
|
{choices ? "Another answer / additional text" : "Additional text / another answer"}
|
|
31
|
-
<textarea
|
|
77
|
+
<textarea
|
|
78
|
+
aria-describedby={`answer-${index}-error`}
|
|
79
|
+
aria-invalid={Boolean(error)}
|
|
80
|
+
data-answer-text
|
|
81
|
+
maxLength={8192}
|
|
82
|
+
onInput={(event) => change({ ...answer, text: event.currentTarget.value })}
|
|
83
|
+
ref={ref}
|
|
84
|
+
rows={choices ? 4 : 3}
|
|
85
|
+
value={answer.text}
|
|
86
|
+
/>
|
|
87
|
+
<span className="response-field-error" hidden={!error} id={`answer-${index}-error`}>
|
|
88
|
+
{message}
|
|
89
|
+
</span>
|
|
32
90
|
</label>
|
|
33
91
|
</fieldset>
|
|
34
92
|
);
|
|
35
93
|
}
|
|
36
|
-
function PromptOption({
|
|
37
|
-
document,
|
|
38
|
-
prompt,
|
|
39
|
-
option,
|
|
40
|
-
choice,
|
|
41
|
-
index,
|
|
42
|
-
}: {
|
|
43
|
-
readonly document: Document;
|
|
44
|
-
readonly prompt: Prompt;
|
|
45
|
-
readonly option: Prompt["options"][number];
|
|
46
|
-
readonly choice: number;
|
|
47
|
-
readonly index: number;
|
|
48
|
-
}) {
|
|
49
|
-
const source = document.metadata.options?.[choice];
|
|
50
|
-
if (source) {
|
|
51
|
-
return (
|
|
52
|
-
<div>
|
|
53
|
-
<input data-option-source={option.source} hidden name={`choice-${prompt.id}`} type="radio" value={option.id} />
|
|
54
|
-
<button aria-pressed="false" className="question-choice" data-choice={option.id} type="button">
|
|
55
|
-
<strong>
|
|
56
|
-
{source.label}
|
|
57
|
-
{source.label === document.metadata.recommended && " · Recommended"}
|
|
58
|
-
</strong>
|
|
59
|
-
<small>{source.description}</small>
|
|
60
|
-
</button>
|
|
61
|
-
</div>
|
|
62
|
-
);
|
|
63
|
-
}
|
|
64
|
-
const id = `question-${index}-${choice}`;
|
|
65
|
-
return (
|
|
66
|
-
<div className="question-option">
|
|
67
|
-
<input
|
|
68
|
-
data-option-source={option.source}
|
|
69
|
-
id={id}
|
|
70
|
-
name={`choice-${prompt.id}`}
|
|
71
|
-
type={prompt.mode === "one" ? "radio" : "checkbox"}
|
|
72
|
-
value={option.id}
|
|
73
|
-
/>
|
|
74
|
-
<div>
|
|
75
|
-
<label htmlFor={id}>Option {option.id}</label>
|
|
76
|
-
<ResponseMarkdown file={document.file} source={option.source} />
|
|
77
|
-
</div>
|
|
78
|
-
</div>
|
|
79
|
-
);
|
|
80
|
-
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Navigation } from "#browser/navigation/schema.ts";
|
|
2
|
+
import { DocumentMain } from "./DocumentMain.tsx";
|
|
3
|
+
import { documentRoute } from "./documentRoute.ts";
|
|
4
|
+
import type { MainLocation } from "./mainLocation.ts";
|
|
5
|
+
import { ProjectionMain } from "./ProjectionMain.tsx";
|
|
6
|
+
import { projectionRoute } from "./projectionRoute.ts";
|
|
7
|
+
import { RemainingMain } from "./RemainingMain.tsx";
|
|
8
|
+
import { remainingRoute } from "./remainingRoute.ts";
|
|
9
|
+
import type { ShellApi } from "./ShellApi.ts";
|
|
10
|
+
export function BoardMain({
|
|
11
|
+
api,
|
|
12
|
+
home,
|
|
13
|
+
onPage,
|
|
14
|
+
url,
|
|
15
|
+
}: {
|
|
16
|
+
readonly api: ShellApi;
|
|
17
|
+
readonly home: Navigation["home"];
|
|
18
|
+
readonly onPage: (location: MainLocation) => void;
|
|
19
|
+
readonly url: string;
|
|
20
|
+
}) {
|
|
21
|
+
const pathname = new URL(url, "http://127.0.0.1").pathname;
|
|
22
|
+
const projection = projectionRoute(pathname, home);
|
|
23
|
+
if (projection) {
|
|
24
|
+
return <ProjectionMain api={api} onPage={onPage} route={projection} url={url} />;
|
|
25
|
+
}
|
|
26
|
+
if (documentRoute(pathname, home)) {
|
|
27
|
+
return <DocumentMain api={api} onPage={onPage} url={url} />;
|
|
28
|
+
}
|
|
29
|
+
return <RemainingMain api={api} onPage={onPage} route={remainingRoute(pathname) ?? "start"} url={url} />;
|
|
30
|
+
}
|
|
@@ -1,28 +1,48 @@
|
|
|
1
1
|
import { useRouterState } from "@tanstack/react-router";
|
|
2
2
|
import { Option } from "effect";
|
|
3
|
+
import type * as AtomRegistry from "effect/reactivity/AtomRegistry";
|
|
3
4
|
import { useCallback, useEffect, useState } from "react";
|
|
4
5
|
import { useQuery } from "@shivaedev/effect-react/result-state.ts";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
6
|
+
import type { BrowserClient } from "#client/client.ts";
|
|
7
|
+
import { AgeTicker } from "./Age.tsx";
|
|
8
|
+
import { BoardMain } from "./BoardMain.tsx";
|
|
7
9
|
import { Header } from "./Header.tsx";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
+
import { HistoryRetention } from "./HistoryRetention.tsx";
|
|
11
|
+
import { LiveControls } from "./LiveControls.tsx";
|
|
12
|
+
import { bootstrapPage, type MainLocation } from "./mainLocation.ts";
|
|
13
|
+
import { ReadingLibrary } from "./ReadingLibrary.tsx";
|
|
14
|
+
import { SearchDialog } from "./SearchDialog.tsx";
|
|
10
15
|
import type { ShellApi } from "./ShellApi.ts";
|
|
11
16
|
import { Sidebar } from "./Sidebar.tsx";
|
|
12
17
|
import { shellIds } from "./shellIds.ts";
|
|
18
|
+
import { UpdatesToggle } from "./UpdatesToggle.tsx";
|
|
19
|
+
import { useAppearance } from "./useAppearance.ts";
|
|
20
|
+
import { useBoardNavigation } from "./useBoardNavigation.ts";
|
|
21
|
+
import { useSearchDialog } from "./useSearchDialog.ts";
|
|
22
|
+
import { useSidebar } from "./useSidebar.ts";
|
|
23
|
+
import { VisualInspection } from "./VisualInspection.tsx";
|
|
13
24
|
export interface ShellOptions {
|
|
14
25
|
readonly api: ShellApi;
|
|
26
|
+
readonly client?: BrowserClient;
|
|
15
27
|
readonly initial: string;
|
|
28
|
+
readonly reading?: unknown;
|
|
16
29
|
readonly ready?: () => void;
|
|
30
|
+
readonly registry: AtomRegistry.AtomRegistry;
|
|
17
31
|
}
|
|
18
|
-
export function BoardShell(
|
|
32
|
+
export function BoardShell(options: ShellOptions) {
|
|
33
|
+
const { api, initial, ready, client } = options;
|
|
34
|
+
const appearance = useAppearance();
|
|
35
|
+
const sidebar = useSidebar(appearance);
|
|
36
|
+
const status = useBoardNavigation(options);
|
|
37
|
+
const search = useSearchDialog();
|
|
38
|
+
const [libraryOpen, setLibraryOpen] = useState(false);
|
|
19
39
|
const location = useRouterState({ select: (state) => state.resolvedLocation ?? state.location });
|
|
20
40
|
const [main, setMain] = useState<MainLocation>(() => {
|
|
21
|
-
const doc =
|
|
41
|
+
const doc = bootstrapPage(initial).getElementById("doc");
|
|
22
42
|
return { file: doc?.dataset.file ?? "", view: doc?.dataset.view ?? "" };
|
|
23
43
|
});
|
|
24
44
|
const [bootstrapHome] = useState(() => {
|
|
25
|
-
const doc =
|
|
45
|
+
const doc = bootstrapPage(initial).getElementById("doc");
|
|
26
46
|
return doc?.classList.contains("board-view") ? { file: doc.dataset.file ?? "", identity: doc.dataset.identity } : undefined;
|
|
27
47
|
});
|
|
28
48
|
const query = useQuery(api.navigation.query({ current: main.view ? "" : main.file }), { keepPreviousData: true });
|
|
@@ -33,14 +53,20 @@ export function BoardShell({ api, initial, ready }: ShellOptions) {
|
|
|
33
53
|
);
|
|
34
54
|
useEffect(() => {
|
|
35
55
|
function start() {
|
|
36
|
-
|
|
56
|
+
const doc = document.getElementById("doc");
|
|
57
|
+
const context = doc?.querySelector<HTMLElement>(".item-context");
|
|
58
|
+
if (data && doc?.dataset.route && (!context || context.dataset.readingReady === "true")) {
|
|
37
59
|
ready?.();
|
|
38
60
|
}
|
|
39
61
|
}
|
|
40
62
|
start();
|
|
41
63
|
document.addEventListener("board-page", start);
|
|
42
|
-
|
|
43
|
-
|
|
64
|
+
document.addEventListener("board-reading-ready", start);
|
|
65
|
+
return () => {
|
|
66
|
+
document.removeEventListener("board-page", start);
|
|
67
|
+
document.removeEventListener("board-reading-ready", start);
|
|
68
|
+
};
|
|
69
|
+
}, [ready, data]);
|
|
44
70
|
useEffect(() => {
|
|
45
71
|
function sync() {
|
|
46
72
|
const doc = document.getElementById("doc");
|
|
@@ -56,24 +82,60 @@ export function BoardShell({ api, initial, ready }: ShellOptions) {
|
|
|
56
82
|
document.dispatchEvent(new Event("board-index-change"));
|
|
57
83
|
}
|
|
58
84
|
}, [data]);
|
|
85
|
+
const live = client ? (
|
|
86
|
+
<LiveControls
|
|
87
|
+
client={client}
|
|
88
|
+
current={location.pathname + location.searchStr}
|
|
89
|
+
navigationFailed={Option.isSome(query.cause)}
|
|
90
|
+
navigationPending={query.pending}
|
|
91
|
+
/>
|
|
92
|
+
) : (
|
|
93
|
+
<span className="live" id={shellIds.live} role="status">
|
|
94
|
+
connecting
|
|
95
|
+
</span>
|
|
96
|
+
);
|
|
59
97
|
return (
|
|
60
|
-
|
|
61
|
-
<
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
<
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
98
|
+
<AgeTicker>
|
|
99
|
+
<ReadingLibrary close={() => setLibraryOpen(false)} data={data} open={libraryOpen}>
|
|
100
|
+
<a className="skip" href="#doc">
|
|
101
|
+
Skip to content
|
|
102
|
+
</a>
|
|
103
|
+
<div className="workspace">
|
|
104
|
+
<Sidebar controls={sidebar} data={data} home={location.pathname === "/"} main={main} openLibrary={() => setLibraryOpen(true)} />
|
|
105
|
+
<button
|
|
106
|
+
aria-label="Close files"
|
|
107
|
+
className="sidebar-backdrop"
|
|
108
|
+
hidden={!(sidebar.narrow && sidebar.open)}
|
|
109
|
+
id={shellIds.sidebarBackdrop}
|
|
110
|
+
onClick={() => sidebar.close()}
|
|
111
|
+
type="button"
|
|
112
|
+
/>
|
|
113
|
+
<div className="page" inert={sidebar.narrow && sidebar.open}>
|
|
114
|
+
<Header
|
|
115
|
+
appearance={appearance}
|
|
116
|
+
count={data?.inboxCount ?? null}
|
|
117
|
+
live={live}
|
|
118
|
+
main={main}
|
|
119
|
+
openSearch={search.show}
|
|
120
|
+
sidebar={sidebar}
|
|
121
|
+
status={status}
|
|
122
|
+
updates={client ? <UpdatesToggle client={client} /> : null}
|
|
123
|
+
/>
|
|
124
|
+
<BoardMain api={api} home={data ? data.home : bootstrapHome} onPage={onPage} url={location.pathname + location.searchStr} />
|
|
125
|
+
</div>
|
|
74
126
|
</div>
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
127
|
+
{Option.isSome(query.cause) && <p role="status">Navigation refresh failed. Your displayed files are retained.</p>}
|
|
128
|
+
{main.view !== "changes" && <HistoryRetention api={api} />}
|
|
129
|
+
<VisualInspection />
|
|
130
|
+
<SearchDialog
|
|
131
|
+
api={api}
|
|
132
|
+
appearance={appearance}
|
|
133
|
+
close={search.close}
|
|
134
|
+
open={search.open}
|
|
135
|
+
returnFocus={search.returnFocus}
|
|
136
|
+
toggleSidebar={sidebar.toggle}
|
|
137
|
+
/>
|
|
138
|
+
</ReadingLibrary>
|
|
139
|
+
</AgeTicker>
|
|
78
140
|
);
|
|
79
141
|
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { HistoryOutput } from "#history/schema.ts";
|
|
2
|
+
import { HistoryComparison } from "./HistoryComparison.tsx";
|
|
3
|
+
import type { MainLocation } from "./mainLocation.ts";
|
|
4
|
+
import { ProjectionFrame } from "./ProjectionFrame.tsx";
|
|
5
|
+
import type { ShellApi } from "./ShellApi.ts";
|
|
6
|
+
import { shellIds } from "./shellIds.ts";
|
|
7
|
+
import { useHistoryComparison } from "./useHistoryComparison.ts";
|
|
8
|
+
export function ChangesMain({
|
|
9
|
+
api,
|
|
10
|
+
onPage,
|
|
11
|
+
url,
|
|
12
|
+
}: {
|
|
13
|
+
readonly api: ShellApi;
|
|
14
|
+
readonly onPage: (location: MainLocation) => void;
|
|
15
|
+
readonly url: string;
|
|
16
|
+
}) {
|
|
17
|
+
const history = useHistoryComparison(api);
|
|
18
|
+
return (
|
|
19
|
+
<ProjectionFrame
|
|
20
|
+
atom={history.atom}
|
|
21
|
+
location={() => ({ file: "Changes", status: 200, view: "changes" })}
|
|
22
|
+
onPage={onPage}
|
|
23
|
+
render={(result) => <ChangesPage history={history} result={result} />}
|
|
24
|
+
route="changes"
|
|
25
|
+
url={url}
|
|
26
|
+
/>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
function ChangesPage({ history, result }: { readonly history: ReturnType<typeof useHistoryComparison>; readonly result: HistoryOutput }) {
|
|
30
|
+
const { baseline, busy, clear: handleClear, message, notice, observe, available } = history;
|
|
31
|
+
let content = <p>{result.reason}</p>;
|
|
32
|
+
if (result.comparison) {
|
|
33
|
+
content = <HistoryComparison data={result.comparison} />;
|
|
34
|
+
}
|
|
35
|
+
if (message) {
|
|
36
|
+
content = <p role="status">{message}</p>;
|
|
37
|
+
}
|
|
38
|
+
function handleObserve() {
|
|
39
|
+
void observe();
|
|
40
|
+
}
|
|
41
|
+
return (
|
|
42
|
+
<section className="history" data-baseline={baseline ?? ""}>
|
|
43
|
+
<h1>Changes since seen</h1>
|
|
44
|
+
<p>
|
|
45
|
+
Compare current Markdown with one observation you explicitly remember in this browser. This is an observed source comparison, not an event
|
|
46
|
+
journal, Git history, authorship, or verified acceptance.
|
|
47
|
+
</p>
|
|
48
|
+
<p>
|
|
49
|
+
Remembered source can include old or deleted content. One snapshot per workspace, up to 2 MiB, expires after 30 days and is removed on your
|
|
50
|
+
next workspace visit. Mark seen replaces it; Clear forgets it. No source writes or cloud storage.
|
|
51
|
+
</p>
|
|
52
|
+
<div className="history-controls">
|
|
53
|
+
<button disabled={busy || result.snapshot === null || !available} id={shellIds.historyMark} onClick={handleObserve} type="button">
|
|
54
|
+
{baseline ? "Mark current workspace seen" : "Start remembering changes"}
|
|
55
|
+
</button>
|
|
56
|
+
<button disabled={busy || !baseline} id={shellIds.historyClear} onClick={handleClear} type="button">
|
|
57
|
+
Clear remembered history
|
|
58
|
+
</button>
|
|
59
|
+
<span id={shellIds.historyStorage} role="status">
|
|
60
|
+
{notice}
|
|
61
|
+
</span>
|
|
62
|
+
</div>
|
|
63
|
+
<div aria-live="polite" id={shellIds.changesContent}>
|
|
64
|
+
{content}
|
|
65
|
+
</div>
|
|
66
|
+
</section>
|
|
67
|
+
);
|
|
68
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { FleetHealth } from "#diagnostics/health.ts";
|
|
2
|
+
import { ObservedTime } from "./diagnosticsValues.tsx";
|
|
3
|
+
export function DiagnosticsFleet({ value, now }: { readonly value: FleetHealth; readonly now: number }) {
|
|
4
|
+
let freshness = "Current snapshot";
|
|
5
|
+
if (now < value.observedAt) {
|
|
6
|
+
freshness = "Publisher clock is ahead";
|
|
7
|
+
} else if (now - value.observedAt > value.staleAfterMs) {
|
|
8
|
+
freshness = "Stale snapshot — Fleet has not refreshed its health";
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<>
|
|
13
|
+
<p className="diagnostics-freshness">{freshness}</p>
|
|
14
|
+
<dl className="diagnostics-metrics">
|
|
15
|
+
<div>
|
|
16
|
+
<dt>Running / concurrency cap</dt>
|
|
17
|
+
<dd>
|
|
18
|
+
<strong>
|
|
19
|
+
{value.running} / {value.concurrency}
|
|
20
|
+
</strong>
|
|
21
|
+
</dd>
|
|
22
|
+
</div>
|
|
23
|
+
<div>
|
|
24
|
+
<dt>Queued</dt>
|
|
25
|
+
<dd>
|
|
26
|
+
<strong>{value.queued}</strong>
|
|
27
|
+
</dd>
|
|
28
|
+
</div>
|
|
29
|
+
{Object.entries(value.waiting).map(([owner, count]) => (
|
|
30
|
+
<div key={owner}>
|
|
31
|
+
<dt>Waiting on {owner}</dt>
|
|
32
|
+
<dd>
|
|
33
|
+
<strong>{count}</strong>
|
|
34
|
+
</dd>
|
|
35
|
+
</div>
|
|
36
|
+
))}
|
|
37
|
+
<div>
|
|
38
|
+
<dt>Last scheduler pass</dt>
|
|
39
|
+
<dd>
|
|
40
|
+
<ObservedTime at={value.lastSchedulerPass} />
|
|
41
|
+
</dd>
|
|
42
|
+
</div>
|
|
43
|
+
<div>
|
|
44
|
+
<dt>Last provider capacity rejection</dt>
|
|
45
|
+
<dd>
|
|
46
|
+
<CapacityRejection value={value.lastCapacityRejection} />
|
|
47
|
+
</dd>
|
|
48
|
+
</div>
|
|
49
|
+
</dl>
|
|
50
|
+
</>
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function CapacityRejection({ value }: { readonly value: FleetHealth["lastCapacityRejection"] }) {
|
|
55
|
+
return value === null ? (
|
|
56
|
+
"None observed"
|
|
57
|
+
) : (
|
|
58
|
+
<>
|
|
59
|
+
{value.cause}
|
|
60
|
+
<br />
|
|
61
|
+
<ObservedTime at={value.at} />
|
|
62
|
+
</>
|
|
63
|
+
);
|
|
64
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { routeQueryOptions } from "#client/page/routeQuery.ts";
|
|
2
|
+
import { DiagnosticsPage } from "./DiagnosticsPage.tsx";
|
|
3
|
+
import type { MainLocation } from "./mainLocation.ts";
|
|
4
|
+
import { ProjectionFrame } from "./ProjectionFrame.tsx";
|
|
5
|
+
import type { ShellApi } from "./ShellApi.ts";
|
|
6
|
+
import { useDiagnosticsPolling } from "./useDiagnosticsPolling.ts";
|
|
7
|
+
|
|
8
|
+
export function DiagnosticsMain({
|
|
9
|
+
api,
|
|
10
|
+
onPage,
|
|
11
|
+
url,
|
|
12
|
+
}: {
|
|
13
|
+
readonly api: ShellApi;
|
|
14
|
+
readonly onPage: (location: MainLocation) => void;
|
|
15
|
+
readonly url: string;
|
|
16
|
+
}) {
|
|
17
|
+
const atom = api.diagnostics.query(undefined, routeQueryOptions);
|
|
18
|
+
useDiagnosticsPolling(atom);
|
|
19
|
+
return (
|
|
20
|
+
<ProjectionFrame
|
|
21
|
+
atom={atom}
|
|
22
|
+
location={() => ({ file: "Diagnostics", status: 200, view: "diagnostics" })}
|
|
23
|
+
onPage={onPage}
|
|
24
|
+
render={(data) => <DiagnosticsPage data={data} />}
|
|
25
|
+
route="diagnostics"
|
|
26
|
+
url={url}
|
|
27
|
+
/>
|
|
28
|
+
);
|
|
29
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { Observation } from "#browser/diagnostics/schema.ts";
|
|
3
|
+
import type { DiagnosticsProjection } from "#browser/views/remaining.ts";
|
|
4
|
+
import { DiagnosticsFleet } from "./DiagnosticsFleet.tsx";
|
|
5
|
+
import { DiagnosticsGithub, DiagnosticsWindows, ObservedTime } from "./diagnosticsValues.tsx";
|
|
6
|
+
export function DiagnosticsPage({ data: { sources: data, now } }: { readonly data: DiagnosticsProjection }) {
|
|
7
|
+
const fleet = data.fleet.state === "ready" ? { ...data.fleet, observedAt: data.fleet.value.observedAt } : data.fleet;
|
|
8
|
+
return (
|
|
9
|
+
<div className="diagnostics">
|
|
10
|
+
<h1>Diagnostics</h1>
|
|
11
|
+
<p>Agent usage and Fleet health. Refreshes every 15 seconds while this view is visible; Pause updates holds the current view.</p>
|
|
12
|
+
<div className="diagnostics-grid">
|
|
13
|
+
<Card
|
|
14
|
+
attention={
|
|
15
|
+
data.codex.state === "ready"
|
|
16
|
+
&& [data.codex.value.primary, data.codex.value.secondary].some((window) => window !== null && window.usedPercent >= 90)
|
|
17
|
+
}
|
|
18
|
+
name="Codex"
|
|
19
|
+
render={(value) => <DiagnosticsWindows now={now} value={value} />}
|
|
20
|
+
source={data.codex}
|
|
21
|
+
/>
|
|
22
|
+
<Card
|
|
23
|
+
attention={data.github.state === "ready" && [data.github.value.core, data.github.value.graphql].some((window) => window.remaining === 0)}
|
|
24
|
+
name="GitHub"
|
|
25
|
+
render={(value) => <DiagnosticsGithub now={now} value={value} />}
|
|
26
|
+
source={data.github}
|
|
27
|
+
/>
|
|
28
|
+
<Card
|
|
29
|
+
attention={
|
|
30
|
+
fleet.state === "ready"
|
|
31
|
+
&& (fleet.value.running >= fleet.value.concurrency
|
|
32
|
+
|| Object.values(fleet.value.waiting).some((count) => count > 0)
|
|
33
|
+
|| now < fleet.value.observedAt)
|
|
34
|
+
}
|
|
35
|
+
name="Fleet"
|
|
36
|
+
render={(value) => <DiagnosticsFleet now={now} value={value} />}
|
|
37
|
+
source={fleet}
|
|
38
|
+
stale={fleet.state === "ready" && now - fleet.value.observedAt > fleet.value.staleAfterMs}
|
|
39
|
+
/>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
function Card<A>({
|
|
45
|
+
name,
|
|
46
|
+
source,
|
|
47
|
+
attention,
|
|
48
|
+
stale,
|
|
49
|
+
render,
|
|
50
|
+
}: {
|
|
51
|
+
readonly name: string;
|
|
52
|
+
readonly source: Observation<A>;
|
|
53
|
+
readonly attention: boolean;
|
|
54
|
+
readonly stale?: boolean;
|
|
55
|
+
readonly render: (value: A) => ReactNode;
|
|
56
|
+
}) {
|
|
57
|
+
let state: Observation<A>["state"] | "attention" | "stale" = source.state;
|
|
58
|
+
if (source.state === "ready" && attention) {
|
|
59
|
+
state = "attention";
|
|
60
|
+
}
|
|
61
|
+
if (source.state === "ready" && stale) {
|
|
62
|
+
state = "stale";
|
|
63
|
+
}
|
|
64
|
+
const label = { attention: "Needs attention", error: "Unavailable", "not-configured": "Not configured", ready: "Available", stale: "Stale" }[state];
|
|
65
|
+
return (
|
|
66
|
+
<section aria-labelledby={`diagnostics-${name.toLowerCase()}`} className="diagnostics-card" data-source={name.toLowerCase()} data-state={state}>
|
|
67
|
+
<header>
|
|
68
|
+
<h2 id={`diagnostics-${name.toLowerCase()}`}>{name}</h2>
|
|
69
|
+
<span className="diagnostics-status">{label}</span>
|
|
70
|
+
</header>
|
|
71
|
+
{source.state === "ready" ? render(source.value) : <p role="status">{source.cause}</p>}
|
|
72
|
+
<p className="diagnostics-freshness">
|
|
73
|
+
Observed <ObservedTime at={source.observedAt} />
|
|
74
|
+
</p>
|
|
75
|
+
</section>
|
|
76
|
+
);
|
|
77
|
+
}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
|
-
import { useEffect, useRef, useState } from "react";
|
|
1
|
+
import { useEffect, useLayoutEffect, useRef, useState } from "react";
|
|
2
2
|
import type { Document } from "#browser/document/schema.ts";
|
|
3
|
+
import { Age } from "./Age.tsx";
|
|
3
4
|
import { DocumentMetadata } from "./DocumentMetadata.tsx";
|
|
4
|
-
import {
|
|
5
|
+
import { Favorite } from "./Favorite.tsx";
|
|
6
|
+
import { useMedia } from "./useMedia.ts";
|
|
5
7
|
|
|
6
8
|
export function DocumentContext({ document: data }: { readonly document: Document }) {
|
|
7
9
|
const [headings, setHeadings] = useState<readonly { readonly id: string; readonly title: string; readonly depth: number }[]>([]);
|
|
8
10
|
const contextRef = useRef<HTMLDetailsElement>(null);
|
|
11
|
+
const wide = useMedia("(min-width: 1100px)");
|
|
12
|
+
useLayoutEffect(() => {
|
|
13
|
+
if (contextRef.current) {
|
|
14
|
+
contextRef.current.open = wide;
|
|
15
|
+
}
|
|
16
|
+
}, [wide]);
|
|
9
17
|
useEffect(() => {
|
|
10
18
|
function outline() {
|
|
11
19
|
const entries = [
|
|
@@ -19,21 +27,29 @@ export function DocumentContext({ document: data }: { readonly document: Documen
|
|
|
19
27
|
outline();
|
|
20
28
|
return () => document.removeEventListener("board-page", outline);
|
|
21
29
|
}, []);
|
|
30
|
+
|
|
31
|
+
useLayoutEffect(() => {
|
|
32
|
+
const context = contextRef.current;
|
|
33
|
+
if (!context) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const count = context.closest("main")?.querySelectorAll(".item-introduction h1[id], article.doc :is(h1,h2,h3,h4,h5,h6)[id]").length ?? 0;
|
|
37
|
+
if (count !== headings.length) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
context.dataset.readingReady = "true";
|
|
41
|
+
document.dispatchEvent(new Event("board-reading-ready"));
|
|
42
|
+
}, [headings]);
|
|
22
43
|
return (
|
|
23
44
|
<details className="item-context" data-key="item-context" ref={contextRef}>
|
|
24
45
|
<summary>Context and tools</summary>
|
|
25
46
|
<div className="context-content">
|
|
26
47
|
<p className="meta">
|
|
27
|
-
Source: {data.file} ·{
|
|
28
|
-
<span className="age" data-modified={data.modified}>
|
|
29
|
-
updated
|
|
30
|
-
</span>
|
|
48
|
+
Source: {data.file} · <Age modified={data.modified} />
|
|
31
49
|
</p>
|
|
32
50
|
<DocumentMetadata document={data} />
|
|
33
51
|
<div className="reading-tools">
|
|
34
|
-
<
|
|
35
|
-
Save favorite
|
|
36
|
-
</button>
|
|
52
|
+
<Favorite file={data.file} title={headings.find((heading) => heading.depth === 1)?.title || data.file} />
|
|
37
53
|
<Outline headings={headings} />
|
|
38
54
|
</div>
|
|
39
55
|
</div>
|