@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
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Cause } from "effect";
|
|
2
|
+
import * as Atom from "effect/reactivity/Atom";
|
|
3
|
+
import type { BrowserClient } from "#client/client.ts";
|
|
4
|
+
import { resolvedDocumentFailure } from "#client/page/resolvedDocumentFailure.ts";
|
|
5
|
+
import { pageQuery } from "./pageQuery.ts";
|
|
6
|
+
|
|
7
|
+
function health(value: { readonly _tag: string; readonly waiting: boolean; readonly cause?: Cause.Cause<unknown> }) {
|
|
8
|
+
return {
|
|
9
|
+
failed: value._tag === "Failure" && !(value.cause && resolvedDocumentFailure(value.cause)),
|
|
10
|
+
pending: value.waiting || value._tag === "Initial",
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function activeRead(client: BrowserClient, kind: string, url: string, baseline: string | null) {
|
|
14
|
+
return pageQuery(client.api, kind, url, baseline).pipe(Atom.map(health));
|
|
15
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Effect, Equal } from "effect";
|
|
2
|
+
import type { QuestionPreview } from "#browser/responses/schema.ts";
|
|
3
|
+
import { session } from "#client/entry.ts";
|
|
4
|
+
import { responseFailure } from "#client/responses/failure.ts";
|
|
5
|
+
import type { ResponseInput, ResponseSubmission } from "#client/responses/formSchema.ts";
|
|
6
|
+
|
|
7
|
+
export function createResponse(
|
|
8
|
+
source: QuestionPreview,
|
|
9
|
+
submission: ResponseSubmission,
|
|
10
|
+
current: () => ResponseInput | undefined,
|
|
11
|
+
setOutcome: (outcome: string) => void,
|
|
12
|
+
setStatus: (status: string) => void,
|
|
13
|
+
) {
|
|
14
|
+
return Effect.tryPromise({
|
|
15
|
+
catch: (error) => error,
|
|
16
|
+
try: async () => {
|
|
17
|
+
const native = session(window);
|
|
18
|
+
setOutcome("pending");
|
|
19
|
+
setStatus("Pending: registering reviewed context, then recording response…");
|
|
20
|
+
try {
|
|
21
|
+
const question = await native.mutate(
|
|
22
|
+
native.responses.registerQuestion.run({ item: source.item, request: source.request, revision: submission.revision }),
|
|
23
|
+
);
|
|
24
|
+
const { answerContext: _answerContext, recovery: _recovery, ...input } = submission;
|
|
25
|
+
await native.mutate(native.responses.recordResponse.run({ ...input, question: question.id }));
|
|
26
|
+
const newer = !Equal.equals(current(), submission);
|
|
27
|
+
setOutcome("saved");
|
|
28
|
+
setStatus(
|
|
29
|
+
`Saved: responses/${submission.id}.md. This records feedback, not acceptance.${newer ? " Your current draft remains unsaved." : ""}`,
|
|
30
|
+
);
|
|
31
|
+
return submission;
|
|
32
|
+
} catch (error) {
|
|
33
|
+
const failure = responseFailure(error);
|
|
34
|
+
setOutcome(failure.outcome);
|
|
35
|
+
setStatus(failure.text);
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import type { CodexLimits, GithubLimits, UsageWindow } from "#browser/diagnostics/schema.ts";
|
|
2
|
+
import { resetLabel } from "#diagnostics/resetLabel.ts";
|
|
3
|
+
export function ObservedTime({ at }: { readonly at: number | null }) {
|
|
4
|
+
return at === null ? (
|
|
5
|
+
"Not reported"
|
|
6
|
+
) : (
|
|
7
|
+
<time dateTime={new Date(at).toISOString()}>
|
|
8
|
+
{new Date(at)
|
|
9
|
+
.toISOString()
|
|
10
|
+
.replace("T", " ")
|
|
11
|
+
.replace(/\.\d{3}Z$/u, " UTC")}
|
|
12
|
+
</time>
|
|
13
|
+
);
|
|
14
|
+
}
|
|
15
|
+
function Reset({ at, now }: { readonly at: number | null; readonly now: number }) {
|
|
16
|
+
return at === null ? (
|
|
17
|
+
"Not reported"
|
|
18
|
+
) : (
|
|
19
|
+
<time data-reset dateTime={new Date(at).toISOString()}>
|
|
20
|
+
{resetLabel(at, now)}
|
|
21
|
+
</time>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
function windowLabel(name: string, minutes: number | null) {
|
|
25
|
+
if (minutes === null) {
|
|
26
|
+
return `${name} — duration not reported`;
|
|
27
|
+
}
|
|
28
|
+
if (minutes === 10_080) {
|
|
29
|
+
return "Weekly";
|
|
30
|
+
}
|
|
31
|
+
for (const [duration, unit] of [
|
|
32
|
+
[1440, "day"],
|
|
33
|
+
[60, "hour"],
|
|
34
|
+
] as const) {
|
|
35
|
+
if (minutes % duration === 0) {
|
|
36
|
+
return `${minutes / duration}-${unit}`;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return `${minutes}-minute`;
|
|
40
|
+
}
|
|
41
|
+
function Usage({ name, window, now }: { readonly name: string; readonly window: UsageWindow | null; readonly now: number }) {
|
|
42
|
+
if (!window) {
|
|
43
|
+
return (
|
|
44
|
+
<li>
|
|
45
|
+
<h3>{name}</h3>
|
|
46
|
+
<p>Window not reported</p>
|
|
47
|
+
</li>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
const label = windowLabel(name, window.windowDurationMins);
|
|
51
|
+
return (
|
|
52
|
+
<li>
|
|
53
|
+
<h3>{label}</h3>
|
|
54
|
+
<p>
|
|
55
|
+
<strong>{window.usedPercent}% used</strong>
|
|
56
|
+
</p>
|
|
57
|
+
<meter aria-label={`${label} percent used`} max={100} min={0} value={Math.min(window.usedPercent, 100)}>
|
|
58
|
+
{window.usedPercent}%
|
|
59
|
+
</meter>
|
|
60
|
+
<p>
|
|
61
|
+
Resets <Reset at={window.resetsAt === null ? null : window.resetsAt * 1000} now={now} />
|
|
62
|
+
</p>
|
|
63
|
+
</li>
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
export function DiagnosticsWindows({ value, now }: { readonly value: CodexLimits; readonly now: number }) {
|
|
67
|
+
return (
|
|
68
|
+
<ul className="diagnostics-windows">
|
|
69
|
+
<Usage name="Primary" now={now} window={value.primary} />
|
|
70
|
+
<Usage name="Secondary" now={now} window={value.secondary} />
|
|
71
|
+
</ul>
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
export function DiagnosticsGithub({ value, now }: { readonly value: GithubLimits; readonly now: number }) {
|
|
75
|
+
const windows = (
|
|
76
|
+
[
|
|
77
|
+
["REST", value.core],
|
|
78
|
+
["GraphQL", value.graphql],
|
|
79
|
+
] as const
|
|
80
|
+
).map(([name, window]) => <GithubWindow key={name} name={name} now={now} window={window} />);
|
|
81
|
+
return (
|
|
82
|
+
<>
|
|
83
|
+
<dl className="diagnostics-metrics">{windows}</dl>
|
|
84
|
+
<p className="diagnostics-freshness">Cached for one minute across all tabs.</p>
|
|
85
|
+
</>
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
function GithubWindow({ name, window, now }: { readonly name: string; readonly window: GithubLimits["core"]; readonly now: number }) {
|
|
89
|
+
return (
|
|
90
|
+
<div>
|
|
91
|
+
<dt>{name}</dt>
|
|
92
|
+
<dd>
|
|
93
|
+
<strong>
|
|
94
|
+
{window.remaining} / {window.limit}
|
|
95
|
+
</strong>{" "}
|
|
96
|
+
remaining
|
|
97
|
+
</dd>
|
|
98
|
+
<dd>
|
|
99
|
+
Resets <Reset at={window.reset * 1000} now={now} />
|
|
100
|
+
</dd>
|
|
101
|
+
</div>
|
|
102
|
+
);
|
|
103
|
+
}
|
|
@@ -78,3 +78,23 @@
|
|
|
78
78
|
@apply bg-background text-foreground;
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
|
+
|
|
82
|
+
.history-controls {
|
|
83
|
+
display: flex;
|
|
84
|
+
flex-wrap: wrap;
|
|
85
|
+
gap: 0.6rem;
|
|
86
|
+
align-items: center;
|
|
87
|
+
}
|
|
88
|
+
.history-change {
|
|
89
|
+
padding: 1rem 0;
|
|
90
|
+
border-top: 1px solid var(--border);
|
|
91
|
+
}
|
|
92
|
+
.history-source {
|
|
93
|
+
max-height: 32rem;
|
|
94
|
+
overflow: auto;
|
|
95
|
+
overflow-wrap: anywhere;
|
|
96
|
+
white-space: pre-wrap;
|
|
97
|
+
}
|
|
98
|
+
.history h2 {
|
|
99
|
+
overflow-wrap: anywhere;
|
|
100
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { RegistryContext } from "@effect/atom-react";
|
|
2
2
|
import { RouterProvider } from "@tanstack/react-router";
|
|
3
3
|
import { createRoot } from "react-dom/client";
|
|
4
|
-
import {
|
|
4
|
+
import { session } from "#client/entry.ts";
|
|
5
5
|
import { boardRouter } from "./boardRouter.ts";
|
|
6
6
|
import "#client/react/entry.css";
|
|
7
7
|
|
|
@@ -10,9 +10,6 @@ const bootstrap = document.querySelector<HTMLTemplateElement>("#board-legacy-pag
|
|
|
10
10
|
if (container && bootstrap) {
|
|
11
11
|
document.querySelector("[data-board-fallback]")?.remove();
|
|
12
12
|
const initial = bootstrap.innerHTML;
|
|
13
|
-
for (const dialog of bootstrap.content.querySelectorAll("dialog")) {
|
|
14
|
-
document.body.append(dialog.cloneNode(true));
|
|
15
|
-
}
|
|
16
13
|
bootstrap.remove();
|
|
17
14
|
const root = createRoot(container);
|
|
18
15
|
let native = session(window);
|
|
@@ -22,22 +19,11 @@ if (container && bootstrap) {
|
|
|
22
19
|
return;
|
|
23
20
|
}
|
|
24
21
|
started = true;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
before: (listener) => {
|
|
28
|
-
router.subscribe("onBeforeNavigate", listener);
|
|
29
|
-
},
|
|
30
|
-
navigate: (url) =>
|
|
31
|
-
url === location.pathname + location.search + location.hash ? router.navigate({ state: true, to: url }) : router.navigate({ to: url }),
|
|
32
|
-
subscribe: (listener) => {
|
|
33
|
-
router.subscribe("onResolved", listener);
|
|
34
|
-
},
|
|
35
|
-
});
|
|
36
|
-
document.documentElement.dataset.boardReady = "true";
|
|
37
|
-
});
|
|
22
|
+
document.documentElement.dataset.boardReady = "true";
|
|
23
|
+
document.documentElement.dataset.js = "true";
|
|
38
24
|
}
|
|
39
25
|
const reading = history.state?.workBoard;
|
|
40
|
-
const router = boardRouter({ api: native.api, initial, ready, registry: native.registry });
|
|
26
|
+
const router = boardRouter({ api: native.api, client: native, initial, reading, ready, registry: native.registry });
|
|
41
27
|
if (reading) {
|
|
42
28
|
history.replaceState({ ...history.state, workBoard: reading }, "");
|
|
43
29
|
}
|
|
@@ -54,7 +40,8 @@ if (container && bootstrap) {
|
|
|
54
40
|
return;
|
|
55
41
|
}
|
|
56
42
|
native = session(window);
|
|
57
|
-
router.update({ context: { shell: { api: native.api, initial, ready, registry: native.registry } } });
|
|
43
|
+
router.update({ context: { shell: { api: native.api, client: native, initial, reading, ready, registry: native.registry } } });
|
|
44
|
+
void router.invalidate();
|
|
58
45
|
render();
|
|
59
46
|
});
|
|
60
47
|
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
const stores = new WeakMap<Document, Map<string, ReturnType<typeof createStore>>>();
|
|
2
|
+
export function historyStore() {
|
|
3
|
+
const key = `work-board:changes:${document.documentElement.dataset.workspace}`;
|
|
4
|
+
let workspace = stores.get(document);
|
|
5
|
+
if (!workspace) {
|
|
6
|
+
workspace = new Map();
|
|
7
|
+
stores.set(document, workspace);
|
|
8
|
+
}
|
|
9
|
+
let store = workspace.get(key);
|
|
10
|
+
if (!store) {
|
|
11
|
+
store = createStore(key);
|
|
12
|
+
workspace.set(key, store);
|
|
13
|
+
}
|
|
14
|
+
return store;
|
|
15
|
+
}
|
|
16
|
+
function createStore(key: string) {
|
|
17
|
+
let memory: string | null | undefined;
|
|
18
|
+
let notice = "";
|
|
19
|
+
function read() {
|
|
20
|
+
if (memory !== undefined) {
|
|
21
|
+
return memory;
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
return window.localStorage.getItem(key);
|
|
25
|
+
} catch {
|
|
26
|
+
memory = null;
|
|
27
|
+
notice = "Browser storage unavailable; history applies to this page only.";
|
|
28
|
+
return memory;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function write(raw: string | null) {
|
|
32
|
+
memory = raw;
|
|
33
|
+
try {
|
|
34
|
+
if (raw === null) {
|
|
35
|
+
window.localStorage.removeItem(key);
|
|
36
|
+
} else {
|
|
37
|
+
window.localStorage.setItem(key, raw);
|
|
38
|
+
}
|
|
39
|
+
memory = undefined;
|
|
40
|
+
notice = "";
|
|
41
|
+
} catch {
|
|
42
|
+
notice =
|
|
43
|
+
raw === null
|
|
44
|
+
? "Cleared for this page, but browser storage could not be cleared. Reload may restore older data."
|
|
45
|
+
: "Snapshot remembered for this page only; browser storage is unavailable.";
|
|
46
|
+
if (raw !== null) {
|
|
47
|
+
try {
|
|
48
|
+
window.localStorage.removeItem(key);
|
|
49
|
+
} catch {
|
|
50
|
+
notice += " Reload may restore older data.";
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return { key, notice: () => notice, read, write };
|
|
56
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
interface LiveState {
|
|
2
|
+
readonly connection: string;
|
|
3
|
+
readonly failed: boolean;
|
|
4
|
+
readonly navigationFailed: boolean;
|
|
5
|
+
readonly paused: boolean;
|
|
6
|
+
readonly pending: number;
|
|
7
|
+
readonly waiting: boolean;
|
|
8
|
+
readonly watching: boolean;
|
|
9
|
+
}
|
|
10
|
+
export function liveStatus(value: LiveState) {
|
|
11
|
+
const failure = failureText(value.failed, value.navigationFailed);
|
|
12
|
+
const state = connectionState(value, failure);
|
|
13
|
+
return {
|
|
14
|
+
state,
|
|
15
|
+
text:
|
|
16
|
+
state === "paused" ? `updates paused · ${value.pending}${value.pending === 256 ? "+" : ""} pending updates` : failure || connectionText(state),
|
|
17
|
+
title: `Connection: ${value.connection}; last observed source watcher: ${value.watching ? "watching" : "unavailable"}; ${readStatus(value, failure)}`,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function failureText(failed: boolean, navigationFailed: boolean) {
|
|
21
|
+
if (failed) {
|
|
22
|
+
return "refresh failed";
|
|
23
|
+
}
|
|
24
|
+
if (navigationFailed) {
|
|
25
|
+
return "navigation refresh failed";
|
|
26
|
+
}
|
|
27
|
+
return "";
|
|
28
|
+
}
|
|
29
|
+
function connectionState(value: LiveState, failure: string) {
|
|
30
|
+
if (value.paused) {
|
|
31
|
+
return "paused";
|
|
32
|
+
}
|
|
33
|
+
if (failure) {
|
|
34
|
+
return "stale";
|
|
35
|
+
}
|
|
36
|
+
if (!value.watching || value.connection !== "live") {
|
|
37
|
+
return "down";
|
|
38
|
+
}
|
|
39
|
+
return value.waiting ? "refreshing" : "live";
|
|
40
|
+
}
|
|
41
|
+
function connectionText(state: string) {
|
|
42
|
+
return state === "down" ? "reconnecting" : state;
|
|
43
|
+
}
|
|
44
|
+
function readStatus(value: LiveState, failure: string) {
|
|
45
|
+
if (value.paused) {
|
|
46
|
+
return "automatic reads paused";
|
|
47
|
+
}
|
|
48
|
+
if (value.waiting) {
|
|
49
|
+
return "reads pending";
|
|
50
|
+
}
|
|
51
|
+
return failure ? "showing retained source" : "reads settled";
|
|
52
|
+
}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import type { LoaderFnContext } from "@tanstack/react-router";
|
|
2
2
|
import { Predicate } from "effect";
|
|
3
|
-
import type * as AtomRegistry from "effect/
|
|
3
|
+
import type * as AtomRegistry from "effect/reactivity/AtomRegistry";
|
|
4
4
|
import { loadQuery } from "@shivaedev/effect-react/router.ts";
|
|
5
|
-
import { documentQuery
|
|
5
|
+
import { documentQuery } from "#client/page/routeQuery.ts";
|
|
6
6
|
import type { ShellOptions } from "./BoardShell.tsx";
|
|
7
7
|
import { documentRoute } from "./documentRoute.ts";
|
|
8
|
+
import { loadProjection } from "./loadProjection.ts";
|
|
9
|
+
import { loadRemaining } from "./loadRemaining.ts";
|
|
10
|
+
import { projectionRoute } from "./projectionRoute.ts";
|
|
11
|
+
import { remainingRoute } from "./remainingRoute.ts";
|
|
8
12
|
|
|
9
13
|
export type RouterShell = ShellOptions & { readonly registry: AtomRegistry.AtomRegistry };
|
|
10
14
|
|
|
@@ -20,19 +24,25 @@ export async function loadBoardPage({
|
|
|
20
24
|
const url = location.pathname + location.searchStr;
|
|
21
25
|
try {
|
|
22
26
|
const navigation = await loadQuery(registry, api.navigation.query({ current: "" }), { abortController });
|
|
27
|
+
const projection = projectionRoute(location.pathname, navigation.home);
|
|
28
|
+
if (projection) {
|
|
29
|
+
await loadProjection(registry, api, projection, url, abortController);
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
23
32
|
if (documentRoute(location.pathname, navigation.home)) {
|
|
24
33
|
try {
|
|
25
34
|
const data = await loadQuery(registry, documentQuery(api, url), { abortController });
|
|
26
|
-
if (
|
|
27
|
-
|
|
35
|
+
if (data.reading?.board) {
|
|
36
|
+
await loadProjection(registry, api, "board", url, abortController);
|
|
28
37
|
}
|
|
38
|
+
return undefined;
|
|
29
39
|
} catch (error) {
|
|
30
40
|
if (!(location.pathname === "/" && Predicate.isTagged(error, "NotFound"))) {
|
|
31
41
|
throw error;
|
|
32
42
|
}
|
|
33
43
|
}
|
|
34
44
|
}
|
|
35
|
-
await
|
|
45
|
+
await loadRemaining(registry, api, remainingRoute(location.pathname) ?? "start", url, abortController);
|
|
36
46
|
return undefined;
|
|
37
47
|
} catch (error) {
|
|
38
48
|
if (abortController.signal.aborted) {
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type * as AtomRegistry from "effect/reactivity/AtomRegistry";
|
|
2
|
+
import { loadQuery } from "@shivaedev/effect-react/router.ts";
|
|
3
|
+
import { routeQueryOptions } from "#client/page/routeQuery.ts";
|
|
4
|
+
import type { ProjectionRoute } from "./projectionRoute.ts";
|
|
5
|
+
import type { ShellApi } from "./ShellApi.ts";
|
|
6
|
+
export function loadProjection(
|
|
7
|
+
registry: AtomRegistry.AtomRegistry,
|
|
8
|
+
api: ShellApi,
|
|
9
|
+
route: ProjectionRoute,
|
|
10
|
+
url: string,
|
|
11
|
+
abortController: AbortController,
|
|
12
|
+
) {
|
|
13
|
+
switch (route) {
|
|
14
|
+
case "board":
|
|
15
|
+
return loadQuery(registry, api.board.query({ url }, routeQueryOptions), { abortController });
|
|
16
|
+
case "work":
|
|
17
|
+
return loadQuery(registry, api.work.query({ url }, routeQueryOptions), { abortController });
|
|
18
|
+
case "overview":
|
|
19
|
+
return loadQuery(registry, api.overview.query(undefined, routeQueryOptions), { abortController });
|
|
20
|
+
case "inbox":
|
|
21
|
+
return loadQuery(registry, api.inbox.query(undefined, routeQueryOptions), { abortController });
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type * as AtomRegistry from "effect/reactivity/AtomRegistry";
|
|
2
|
+
import { loadQuery } from "@shivaedev/effect-react/router.ts";
|
|
3
|
+
import { routeQueryOptions } from "#client/page/routeQuery.ts";
|
|
4
|
+
import type { RemainingRoute } from "./remainingRoute.ts";
|
|
5
|
+
import type { ShellApi } from "./ShellApi.ts";
|
|
6
|
+
export function loadRemaining(
|
|
7
|
+
registry: AtomRegistry.AtomRegistry,
|
|
8
|
+
api: ShellApi,
|
|
9
|
+
route: RemainingRoute,
|
|
10
|
+
url: string,
|
|
11
|
+
abortController: AbortController,
|
|
12
|
+
) {
|
|
13
|
+
switch (route) {
|
|
14
|
+
case "changes":
|
|
15
|
+
return undefined;
|
|
16
|
+
case "start":
|
|
17
|
+
return loadQuery(registry, api.start.query(undefined, routeQueryOptions), { abortController });
|
|
18
|
+
case "diagnostics":
|
|
19
|
+
return loadQuery(registry, api.diagnostics.query(undefined, routeQueryOptions), { abortController });
|
|
20
|
+
case "respond":
|
|
21
|
+
return loadQuery(registry, api.respond.query({ url }, routeQueryOptions), { abortController });
|
|
22
|
+
case "handoff":
|
|
23
|
+
return loadQuery(registry, api.handoff.query({ url }, routeQueryOptions), { abortController });
|
|
24
|
+
case "result":
|
|
25
|
+
return loadQuery(registry, api.result.query({ url }, routeQueryOptions), { abortController });
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface MainLocation {
|
|
2
|
+
readonly file: string;
|
|
3
|
+
readonly view: string;
|
|
4
|
+
}
|
|
5
|
+
export function bootstrapPage(html: string): Document {
|
|
6
|
+
const page = new DOMParser().parseFromString(/<body[^>]*>(?<body>[\s\S]*)<\/body>/iu.exec(html)?.groups?.body ?? html, "text/html");
|
|
7
|
+
const template = page.querySelector<HTMLTemplateElement>("#board-legacy-page");
|
|
8
|
+
if (template) {
|
|
9
|
+
page.body.replaceChildren(template.content.cloneNode(true));
|
|
10
|
+
}
|
|
11
|
+
return page;
|
|
12
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { readingEntry } from "./readingHistory.ts";
|
|
2
|
+
|
|
3
|
+
export function navigationFailure(status: string | undefined) {
|
|
4
|
+
const code = Number(status ?? 200);
|
|
5
|
+
if (code < 400) {
|
|
6
|
+
return "";
|
|
7
|
+
}
|
|
8
|
+
return code === 404 ? "This document is missing or was renamed." : "Could not open this document. Retry the link or reload the page.";
|
|
9
|
+
}
|
|
10
|
+
export function currentEntry(state: object, displayed: string, initial: ReturnType<typeof readingEntry>) {
|
|
11
|
+
const current = readingEntry(Reflect.get(state, "workBoard"));
|
|
12
|
+
return current ?? (displayed === "" ? initial : undefined);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function readingKey(key: string, entry: { readonly id: string } | undefined, aliases: Map<string, string>) {
|
|
16
|
+
if (entry) {
|
|
17
|
+
aliases.set(key, entry.id);
|
|
18
|
+
}
|
|
19
|
+
return aliases.get(key) ?? key;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function sameReadingLocation(
|
|
23
|
+
previous: { readonly route: string; readonly id: string; readonly hash: string },
|
|
24
|
+
next: { readonly route: string; readonly id: string; readonly hash: string },
|
|
25
|
+
) {
|
|
26
|
+
return previous.route === next.route && previous.id === next.id && previous.hash === next.hash;
|
|
27
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type * as AsyncResult from "effect/reactivity/AsyncResult";
|
|
2
|
+
import type * as Atom from "effect/reactivity/Atom";
|
|
3
|
+
import { routeQueryOptions } from "#client/page/routeQuery.ts";
|
|
4
|
+
import type { ShellApi } from "./ShellApi.ts";
|
|
5
|
+
|
|
6
|
+
export function pageQuery(api: ShellApi, kind: string, url: string, baseline: string | null): Atom.Atom<AsyncResult.AsyncResult<unknown, unknown>> {
|
|
7
|
+
if (kind === "changes") {
|
|
8
|
+
return api.history.query({ action: "compare", baseline });
|
|
9
|
+
}
|
|
10
|
+
if (kind === "overview") {
|
|
11
|
+
return api.overview.query(undefined, routeQueryOptions);
|
|
12
|
+
}
|
|
13
|
+
if (kind === "inbox") {
|
|
14
|
+
return api.inbox.query(undefined, routeQueryOptions);
|
|
15
|
+
}
|
|
16
|
+
if (kind === "start") {
|
|
17
|
+
return api.start.query(undefined, routeQueryOptions);
|
|
18
|
+
}
|
|
19
|
+
if (kind === "diagnostics") {
|
|
20
|
+
return api.diagnostics.query(undefined, routeQueryOptions);
|
|
21
|
+
}
|
|
22
|
+
if (kind === "work") {
|
|
23
|
+
return api.work.query({ url }, routeQueryOptions);
|
|
24
|
+
}
|
|
25
|
+
if (kind === "board") {
|
|
26
|
+
return api.board.query({ url }, routeQueryOptions);
|
|
27
|
+
}
|
|
28
|
+
if (kind === "respond") {
|
|
29
|
+
return api.respond.query({ url }, routeQueryOptions);
|
|
30
|
+
}
|
|
31
|
+
if (kind === "handoff") {
|
|
32
|
+
return api.handoff.query({ url }, routeQueryOptions);
|
|
33
|
+
}
|
|
34
|
+
if (kind === "result") {
|
|
35
|
+
return api.result.query({ url }, routeQueryOptions);
|
|
36
|
+
}
|
|
37
|
+
return api.document.query({ url }, routeQueryOptions);
|
|
38
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { matches } from "#client/reconcile/matches.ts";
|
|
2
|
+
import { flash, normalized } from "#client/reconcile/normalized.ts";
|
|
3
|
+
export interface RenderedProjection {
|
|
4
|
+
readonly signatures: readonly string[];
|
|
5
|
+
readonly url: string;
|
|
6
|
+
}
|
|
7
|
+
export function projectionChanges(main: HTMLElement, previous: RenderedProjection | undefined, url: string): RenderedProjection {
|
|
8
|
+
const blocks = [...main.querySelectorAll("article.doc :is(p,li,pre,blockquote,h1,h2,h3,h4,h5,h6), .work-card :is(p,h3)")].filter(
|
|
9
|
+
(element) => !(element.matches("[data-modified]") || element.querySelector("[data-modified]")),
|
|
10
|
+
);
|
|
11
|
+
const signatures = blocks.map(normalized);
|
|
12
|
+
if (previous?.url === url) {
|
|
13
|
+
const kept = new Set(matches(previous.signatures, signatures).map(([, index]) => index));
|
|
14
|
+
for (const [index, element] of blocks.entries()) {
|
|
15
|
+
if (!kept.has(index)) {
|
|
16
|
+
flash(element);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return { signatures, url };
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Navigation } from "#browser/navigation/schema.ts";
|
|
2
|
+
import { fileUrl } from "#files/url.ts";
|
|
3
|
+
export function projectionRoute(pathname: string, home: Navigation["home"]) {
|
|
4
|
+
if (pathname === "/_board/work") {
|
|
5
|
+
return "work";
|
|
6
|
+
}
|
|
7
|
+
if (pathname === "/_board/overview") {
|
|
8
|
+
return "overview";
|
|
9
|
+
}
|
|
10
|
+
if (pathname === "/_board/inbox") {
|
|
11
|
+
return "inbox";
|
|
12
|
+
}
|
|
13
|
+
if (
|
|
14
|
+
home
|
|
15
|
+
&& (pathname === "/" || pathname === fileUrl(home.file) || (home.identity && pathname === `/_board/item/${encodeURIComponent(home.identity)}/`))
|
|
16
|
+
) {
|
|
17
|
+
return "board";
|
|
18
|
+
}
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
export type ProjectionRoute = NonNullable<ReturnType<typeof projectionRoute>>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export function readerLink(target: URL) {
|
|
2
|
+
return (
|
|
3
|
+
target.origin === location.origin
|
|
4
|
+
&& (target.pathname === "/"
|
|
5
|
+
|| /^\/_board\/(?:diagnostics|handoff|result|respond|start|changes|inbox|overview|work)$/u.test(target.pathname)
|
|
6
|
+
|| target.pathname.startsWith("/_board/item/")
|
|
7
|
+
|| /\.md$/iu.test(target.pathname))
|
|
8
|
+
);
|
|
9
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Option, Schema } from "effect";
|
|
2
|
+
import { ReadingState } from "./readingState.ts";
|
|
3
|
+
|
|
4
|
+
const Entries = Schema.Record(Schema.String, ReadingState);
|
|
5
|
+
const Entry = Schema.Struct({ id: Schema.String, reading: Schema.optional(Schema.NullOr(ReadingState)) });
|
|
6
|
+
export function readingEntry(value: unknown) {
|
|
7
|
+
return Option.getOrUndefined(Schema.decodeUnknownOption(Entry)(value));
|
|
8
|
+
}
|
|
9
|
+
export function readingHistory() {
|
|
10
|
+
const key = `work-board:reading:${document.documentElement.dataset.workspace}`;
|
|
11
|
+
let entries: Record<string, ReadingState>;
|
|
12
|
+
try {
|
|
13
|
+
entries = Option.getOrElse(Schema.decodeUnknownOption(Entries)(JSON.parse(sessionStorage.getItem(key) ?? "{}")), () => ({}));
|
|
14
|
+
} catch {
|
|
15
|
+
entries = {};
|
|
16
|
+
}
|
|
17
|
+
return {
|
|
18
|
+
get: (id: string) => entries[id],
|
|
19
|
+
save: (id: string, reading: ReadingState) => {
|
|
20
|
+
delete entries[id];
|
|
21
|
+
entries[id] = reading;
|
|
22
|
+
entries = Object.fromEntries(Object.entries(entries).slice(-30));
|
|
23
|
+
try {
|
|
24
|
+
sessionStorage.setItem(key, JSON.stringify(entries));
|
|
25
|
+
return true;
|
|
26
|
+
} catch {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Option, Schema } from "effect";
|
|
2
|
+
import { createContext } from "react";
|
|
3
|
+
|
|
4
|
+
const Item = Schema.Struct({ file: Schema.NonEmptyString, title: Schema.String });
|
|
5
|
+
export type Item = typeof Item.Type;
|
|
6
|
+
const Saved = Schema.Struct({ favorites: Schema.optional(Schema.Unknown), recents: Schema.optional(Schema.Unknown) });
|
|
7
|
+
function valid(value: unknown): Item[] {
|
|
8
|
+
return Array.isArray(value) ? value.flatMap((entry) => Option.toArray(Schema.decodeUnknownOption(Item)(entry))) : [];
|
|
9
|
+
}
|
|
10
|
+
export function restoreLibrary(key: string) {
|
|
11
|
+
try {
|
|
12
|
+
const saved = Option.getOrUndefined(Schema.decodeUnknownOption(Saved)(JSON.parse(localStorage.getItem(key) ?? "{}")));
|
|
13
|
+
return { favorites: valid(saved?.favorites), notice: "", recents: valid(saved?.recents) };
|
|
14
|
+
} catch {
|
|
15
|
+
return { favorites: [], notice: "Reading history applies to this page only.", recents: [] };
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
interface LibraryState {
|
|
19
|
+
readonly favorites: readonly Item[];
|
|
20
|
+
readonly toggle: (file: string, title: string) => void;
|
|
21
|
+
}
|
|
22
|
+
export const LibraryContext = createContext<LibraryState>({ favorites: [], toggle: () => undefined });
|