@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,133 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
|
|
3
|
+
const Selection = Schema.Struct({ a: Schema.Int, anchor: Schema.Array(Schema.Int), f: Schema.Int, focus: Schema.Array(Schema.Int) });
|
|
4
|
+
export const ReadingState = Schema.Struct({
|
|
5
|
+
context: Schema.optional(Schema.Boolean),
|
|
6
|
+
details: Schema.optional(Schema.Array(Schema.Boolean)),
|
|
7
|
+
keyedDetails: Schema.optional(Schema.Record(Schema.String, Schema.Boolean)),
|
|
8
|
+
scroll: Schema.Tuple([Schema.Finite, Schema.Finite]),
|
|
9
|
+
selection: Schema.NullOr(Selection),
|
|
10
|
+
sidebar: Schema.optional(Schema.Number),
|
|
11
|
+
});
|
|
12
|
+
export type ReadingState = typeof ReadingState.Type;
|
|
13
|
+
const MISSING_PASSAGE = "This passage is no longer in the document.";
|
|
14
|
+
let releaseScroll: (() => void) | undefined;
|
|
15
|
+
function pathOf(node: Node, root: Node) {
|
|
16
|
+
const path: number[] = [];
|
|
17
|
+
for (let child: Node | null = node; child !== root; child = child.parentNode) {
|
|
18
|
+
if (!child?.parentNode) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
const nodes: readonly Node[] = [...child.parentNode.childNodes];
|
|
22
|
+
path.unshift(nodes.indexOf(child));
|
|
23
|
+
}
|
|
24
|
+
return path;
|
|
25
|
+
}
|
|
26
|
+
function nodeAt(path: readonly number[], root: Node): Node | undefined {
|
|
27
|
+
return path.reduce<Node | undefined>((node, index) => node?.childNodes[index], root);
|
|
28
|
+
}
|
|
29
|
+
function details(root: Element) {
|
|
30
|
+
const counts = new Map<string, number>();
|
|
31
|
+
return [...root.querySelectorAll<HTMLDetailsElement>("details:not(.item-context)")].map((detail) => {
|
|
32
|
+
const name = detail.dataset.key || detail.querySelector("summary")?.textContent || "details";
|
|
33
|
+
const occurrence = counts.get(name) ?? 0;
|
|
34
|
+
counts.set(name, occurrence + 1);
|
|
35
|
+
return [`${name}:${occurrence}`, detail] as const;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
function inForm() {
|
|
39
|
+
return document.activeElement?.closest("#response-form, #handoff-form");
|
|
40
|
+
}
|
|
41
|
+
export function captureReading(): ReadingState | undefined {
|
|
42
|
+
const root = document.getElementById("doc");
|
|
43
|
+
if (!root) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
const selection = inForm() ? null : document.getSelection();
|
|
47
|
+
const anchor = selection?.anchorNode && pathOf(selection.anchorNode, root);
|
|
48
|
+
const focus = selection?.focusNode && pathOf(selection.focusNode, root);
|
|
49
|
+
return {
|
|
50
|
+
context: root.querySelector<HTMLDetailsElement>(".item-context")?.open,
|
|
51
|
+
details: details(root).map(([, detail]) => detail.open),
|
|
52
|
+
keyedDetails: Object.fromEntries(details(root).map(([key, detail]) => [key, detail.open])),
|
|
53
|
+
scroll: [scrollX, scrollY],
|
|
54
|
+
selection: anchor && focus && selection ? { a: selection.anchorOffset, anchor, f: selection.focusOffset, focus } : null,
|
|
55
|
+
sidebar: document.getElementById("sidebar")?.scrollTop ?? 0,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export function restoreReading(state: ReadingState) {
|
|
59
|
+
const root = document.getElementById("doc");
|
|
60
|
+
if (!root) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const context = root.querySelector<HTMLDetailsElement>(".item-context");
|
|
64
|
+
if (context && state.context !== undefined) {
|
|
65
|
+
context.open = state.context;
|
|
66
|
+
}
|
|
67
|
+
details(root).forEach(([key, detail], index) => {
|
|
68
|
+
const open = state.keyedDetails ? state.keyedDetails[key] : state.details?.[index];
|
|
69
|
+
if (open !== undefined) {
|
|
70
|
+
detail.open = open;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
const sidebar = document.getElementById("sidebar");
|
|
74
|
+
if (sidebar) {
|
|
75
|
+
sidebar.scrollTop = state.sidebar ?? 0;
|
|
76
|
+
}
|
|
77
|
+
if (state.selection && !inForm()) {
|
|
78
|
+
const { anchor: anchorPath, focus: focusPath, a, f } = state.selection;
|
|
79
|
+
const anchor = nodeAt(anchorPath, root);
|
|
80
|
+
const focus = nodeAt(focusPath, root);
|
|
81
|
+
function limit(node: Node) {
|
|
82
|
+
return node.nodeType === 3 ? (node.textContent?.length ?? 0) : node.childNodes.length;
|
|
83
|
+
}
|
|
84
|
+
if (anchor && focus) {
|
|
85
|
+
document.getSelection()?.setBaseAndExtent(anchor, Math.max(0, Math.min(a, limit(anchor))), focus, Math.max(0, Math.min(f, limit(focus))));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
restoreScroll(state.scroll);
|
|
89
|
+
}
|
|
90
|
+
function restoreScroll(scroll: readonly [number, number]) {
|
|
91
|
+
releaseScroll?.();
|
|
92
|
+
const root = document.documentElement;
|
|
93
|
+
const anchoring = root.style.overflowAnchor;
|
|
94
|
+
// Keep the saved offset while the restored passage status changes layout in this frame.
|
|
95
|
+
root.style.overflowAnchor = "none";
|
|
96
|
+
window.scrollTo(...scroll);
|
|
97
|
+
let frame = requestAnimationFrame(() => {
|
|
98
|
+
frame = requestAnimationFrame(() => releaseScroll?.());
|
|
99
|
+
});
|
|
100
|
+
releaseScroll = () => {
|
|
101
|
+
cancelAnimationFrame(frame);
|
|
102
|
+
root.style.overflowAnchor = anchoring;
|
|
103
|
+
releaseScroll = undefined;
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
export function scrollToPassage(hash: string) {
|
|
107
|
+
if (!hash) {
|
|
108
|
+
window.scrollTo(0, 0);
|
|
109
|
+
return "";
|
|
110
|
+
}
|
|
111
|
+
const target = passageTarget(hash);
|
|
112
|
+
if (!target) {
|
|
113
|
+
return MISSING_PASSAGE;
|
|
114
|
+
}
|
|
115
|
+
for (let parent = target.parentElement; parent; parent = parent.parentElement) {
|
|
116
|
+
if (parent instanceof HTMLDetailsElement) {
|
|
117
|
+
parent.open = true;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
target.scrollIntoView();
|
|
121
|
+
target.focus({ preventScroll: true });
|
|
122
|
+
return "";
|
|
123
|
+
}
|
|
124
|
+
export function passageStatus(hash: string) {
|
|
125
|
+
return !hash || passageTarget(hash) ? "" : MISSING_PASSAGE;
|
|
126
|
+
}
|
|
127
|
+
function passageTarget(hash: string) {
|
|
128
|
+
try {
|
|
129
|
+
return document.getElementById(decodeURIComponent(hash.slice(1)));
|
|
130
|
+
} catch {
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function remainingRoute(pathname: string) {
|
|
2
|
+
switch (pathname) {
|
|
3
|
+
case "/_board/changes":
|
|
4
|
+
return "changes";
|
|
5
|
+
case "/_board/diagnostics":
|
|
6
|
+
return "diagnostics";
|
|
7
|
+
case "/_board/start":
|
|
8
|
+
return "start";
|
|
9
|
+
case "/_board/respond":
|
|
10
|
+
return "respond";
|
|
11
|
+
case "/_board/handoff":
|
|
12
|
+
return "handoff";
|
|
13
|
+
case "/_board/result":
|
|
14
|
+
return "result";
|
|
15
|
+
default:
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export type RemainingRoute = NonNullable<ReturnType<typeof remainingRoute>>;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Option, Schema } from "effect";
|
|
2
|
+
import { useRef, useState } from "react";
|
|
3
|
+
|
|
4
|
+
const Entry = Schema.Struct({ name: Schema.NonEmptyString, url: Schema.String });
|
|
5
|
+
export function localView(value: string) {
|
|
6
|
+
try {
|
|
7
|
+
const url = new URL(value, location.href);
|
|
8
|
+
if (value.length > 8192 || url.origin !== location.origin || url.pathname !== "/_board/work") {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
for (const name of [...url.searchParams.keys()]) {
|
|
12
|
+
if (!["view", "board", "owner", "status", "q", "sort"].includes(name)) {
|
|
13
|
+
url.searchParams.delete(name);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return url.pathname + url.search;
|
|
17
|
+
} catch {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function restore(key: string) {
|
|
22
|
+
const views: (typeof Entry.Type)[] = [];
|
|
23
|
+
try {
|
|
24
|
+
const saved: unknown = JSON.parse(localStorage.getItem(key) ?? "[]");
|
|
25
|
+
if (Array.isArray(saved)) {
|
|
26
|
+
for (const raw of saved) {
|
|
27
|
+
const entry = Option.getOrUndefined(Schema.decodeUnknownOption(Entry)(raw));
|
|
28
|
+
const url = entry && localView(entry.url);
|
|
29
|
+
if (!(entry && url && entry.name.trim()) || entry.name.length > 60 || views.some((view) => view.name === entry.name)) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
views.push({ name: entry.name, url });
|
|
33
|
+
if (views.length === 10) {
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return { notice: "", views };
|
|
39
|
+
} catch {
|
|
40
|
+
return { notice: "Saved views could not be restored; new views apply to this page until saved.", views };
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export function useSavedViews() {
|
|
44
|
+
const key = `work-board:views:${document.documentElement.dataset.workspace}`;
|
|
45
|
+
const [saved, setSaved] = useState(() => restore(key));
|
|
46
|
+
const savedRef = useRef(saved);
|
|
47
|
+
const [selected, select] = useState("");
|
|
48
|
+
function persist(views: typeof saved.views) {
|
|
49
|
+
let notice = "";
|
|
50
|
+
try {
|
|
51
|
+
localStorage.setItem(key, JSON.stringify(views));
|
|
52
|
+
} catch {
|
|
53
|
+
notice = "Saved views apply to this page only; browser storage is unavailable.";
|
|
54
|
+
}
|
|
55
|
+
savedRef.current = { notice, views };
|
|
56
|
+
setSaved(savedRef.current);
|
|
57
|
+
}
|
|
58
|
+
function save(name: string, url: string) {
|
|
59
|
+
const local = localView(url);
|
|
60
|
+
if (!(name && local)) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (savedRef.current.views.length === 10 && !savedRef.current.views.some((view) => view.name === name)) {
|
|
64
|
+
setSaved({ ...saved, notice: "You have 10 saved views. Remove one or update an existing name." });
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
persist([{ name, url: local }, ...savedRef.current.views.filter((view) => view.name !== name)]);
|
|
68
|
+
select(name);
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
...saved,
|
|
72
|
+
clear: () => {
|
|
73
|
+
persist([]);
|
|
74
|
+
select("");
|
|
75
|
+
},
|
|
76
|
+
remove: () => {
|
|
77
|
+
persist(saved.views.filter((view) => view.name !== selected));
|
|
78
|
+
select("");
|
|
79
|
+
},
|
|
80
|
+
save,
|
|
81
|
+
select,
|
|
82
|
+
selected,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { flushSync } from "react-dom";
|
|
2
|
+
import { type captureReading, passageStatus, restoreReading, scrollToPassage } from "./readingState.ts";
|
|
3
|
+
export function scheduleReading(
|
|
4
|
+
doc: HTMLElement,
|
|
5
|
+
reading: ReturnType<typeof captureReading> | null,
|
|
6
|
+
hash: string,
|
|
7
|
+
active: () => boolean,
|
|
8
|
+
setStatus: (status: string) => void,
|
|
9
|
+
focus: boolean,
|
|
10
|
+
) {
|
|
11
|
+
let restored = false;
|
|
12
|
+
function restore() {
|
|
13
|
+
if (restored || !active()) {
|
|
14
|
+
document.removeEventListener("board-reading-ready", restore);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const context = doc.querySelector<HTMLElement>(".item-context");
|
|
18
|
+
if (context && context.dataset.readingReady !== "true") {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
restored = true;
|
|
22
|
+
document.removeEventListener("board-reading-ready", restore);
|
|
23
|
+
if (focus && !document.activeElement?.closest("#response-form, #handoff-form")) {
|
|
24
|
+
doc.focus({ preventScroll: true });
|
|
25
|
+
}
|
|
26
|
+
const passage = hash ? `#${hash}` : "";
|
|
27
|
+
if (reading) {
|
|
28
|
+
restoreReading(reading);
|
|
29
|
+
// Readiness can arrive from a React effect; commit the warning before the next paint.
|
|
30
|
+
queueMicrotask(() => {
|
|
31
|
+
if (active()) {
|
|
32
|
+
flushSync(() => setStatus(passageStatus(passage)));
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
} else {
|
|
36
|
+
setStatus(scrollToPassage(passage));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
document.addEventListener("board-reading-ready", restore);
|
|
40
|
+
requestAnimationFrame(restore);
|
|
41
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface SearchItem {
|
|
2
|
+
readonly command?: string;
|
|
3
|
+
readonly file?: string;
|
|
4
|
+
readonly href?: string;
|
|
5
|
+
readonly kind: string;
|
|
6
|
+
readonly line?: number | undefined;
|
|
7
|
+
readonly snippet?: string;
|
|
8
|
+
readonly title: string;
|
|
9
|
+
}
|
|
10
|
+
export const searchCommands: readonly SearchItem[] = [
|
|
11
|
+
{ href: "/", kind: "command", title: "Open workspace" },
|
|
12
|
+
{ command: "sidebar-toggle", kind: "command", title: "Show or hide files" },
|
|
13
|
+
{ command: "density", kind: "command", title: "Toggle compact density" },
|
|
14
|
+
{ command: "theme", kind: "command", title: "Toggle light or dark theme" },
|
|
15
|
+
];
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export function searchStatus(
|
|
2
|
+
text: string,
|
|
3
|
+
pending: boolean,
|
|
4
|
+
failed: boolean,
|
|
5
|
+
data:
|
|
6
|
+
| {
|
|
7
|
+
readonly total: number;
|
|
8
|
+
readonly results: readonly unknown[];
|
|
9
|
+
readonly unavailable: readonly string[];
|
|
10
|
+
}
|
|
11
|
+
| undefined,
|
|
12
|
+
) {
|
|
13
|
+
if (!text) {
|
|
14
|
+
return "Type to search this workspace, or choose a command.";
|
|
15
|
+
}
|
|
16
|
+
if (failed) {
|
|
17
|
+
return "Search could not be completed. Press Search to retry.";
|
|
18
|
+
}
|
|
19
|
+
if (pending || !data) {
|
|
20
|
+
return "Searching…";
|
|
21
|
+
}
|
|
22
|
+
let message = "No document matches.";
|
|
23
|
+
if (data.total) {
|
|
24
|
+
message = `${data.total > data.results.length ? `Showing ${data.results.length} of ` : ""}${data.total} matches.`;
|
|
25
|
+
}
|
|
26
|
+
if (data.unavailable.length > 0) {
|
|
27
|
+
message += ` Could not read ${data.unavailable.length} files; results are incomplete.`;
|
|
28
|
+
}
|
|
29
|
+
return message;
|
|
30
|
+
}
|
|
@@ -1,19 +1,38 @@
|
|
|
1
1
|
export const shellIds = {
|
|
2
2
|
"breadcrumbs": "breadcrumbs",
|
|
3
|
+
changesContent: "changes-content",
|
|
4
|
+
clearSavedViews: "clear-saved-views",
|
|
3
5
|
"density": "density",
|
|
4
6
|
"doc": "doc",
|
|
5
7
|
"favoriteToggle": "favorite-toggle",
|
|
6
8
|
"files": "files",
|
|
9
|
+
handoffClear: "handoff-clear",
|
|
10
|
+
handoffForm: "handoff-form",
|
|
11
|
+
handoffHistory: "handoff-history",
|
|
12
|
+
handoffPrepared: "handoff-prepared",
|
|
13
|
+
handoffPreview: "handoff-preview",
|
|
14
|
+
handoffPreviewContent: "handoff-preview-content",
|
|
15
|
+
handoffStatus: "handoff-status",
|
|
16
|
+
handoffSubmit: "handoff-submit",
|
|
17
|
+
historyClear: "history-clear",
|
|
18
|
+
historyMark: "history-mark",
|
|
19
|
+
historyStorage: "history-storage",
|
|
7
20
|
"homeOpen": "home-open",
|
|
8
21
|
"inboxCount": "inbox-count",
|
|
9
22
|
"inboxOpen": "inbox-open",
|
|
10
23
|
"inboxTopbar": "inbox-topbar",
|
|
11
24
|
"inboxTopbarCount": "inbox-topbar-count",
|
|
25
|
+
libraryClose: "library-close",
|
|
26
|
+
libraryDialog: "library-dialog",
|
|
12
27
|
"libraryOpen": "library-open",
|
|
28
|
+
libraryTitle: "library-title",
|
|
13
29
|
"live": "live",
|
|
14
30
|
"navigationStatus": "navigation-status",
|
|
31
|
+
openSavedView: "open-saved-view",
|
|
15
32
|
"preferenceStatus": "preference-status",
|
|
16
33
|
"primaryNavigation": "primary-navigation",
|
|
34
|
+
readingLibrary: "reading-library",
|
|
35
|
+
removeSavedView: "remove-saved-view",
|
|
17
36
|
"responseClear": "response-clear",
|
|
18
37
|
"responseDraftRecovery": "response-draft-recovery",
|
|
19
38
|
"responseForm": "response-form",
|
|
@@ -22,11 +41,51 @@ export const shellIds = {
|
|
|
22
41
|
"responsePreviewContent": "response-preview-content",
|
|
23
42
|
"responseStatus": "response-status",
|
|
24
43
|
"responseSubmit": "response-submit",
|
|
44
|
+
resultActions: "result-actions",
|
|
45
|
+
resultCriteria: "result-criteria",
|
|
46
|
+
resultFeedback: "result-feedback",
|
|
47
|
+
resultReport: "result-report",
|
|
48
|
+
savedView: "saved-view",
|
|
49
|
+
savedViewStatus: "saved-view-status",
|
|
50
|
+
savedWorkViews: "saved-work-views",
|
|
51
|
+
saveWorkView: "save-work-view",
|
|
52
|
+
searchClose: "search-close",
|
|
53
|
+
searchDialog: "search-dialog",
|
|
54
|
+
searchForm: "search-form",
|
|
25
55
|
"searchOpen": "search-open",
|
|
56
|
+
searchQuery: "search-query",
|
|
57
|
+
searchResults: "search-results",
|
|
58
|
+
searchStatus: "search-status",
|
|
59
|
+
searchTitle: "search-title",
|
|
26
60
|
"sidebar": "sidebar",
|
|
27
61
|
"sidebarBackdrop": "sidebar-backdrop",
|
|
28
62
|
"sidebarToggle": "sidebar-toggle",
|
|
29
63
|
"startOpen": "start-open",
|
|
30
64
|
"theme": "theme",
|
|
31
65
|
"updatesToggle": "updates-toggle",
|
|
66
|
+
viewName: "view-name",
|
|
67
|
+
visualActual: "visual-actual",
|
|
68
|
+
visualClose: "visual-close",
|
|
69
|
+
visualContent: "visual-content",
|
|
70
|
+
visualContext: "visual-context",
|
|
71
|
+
visualDialog: "visual-dialog",
|
|
72
|
+
visualDownload: "visual-download",
|
|
73
|
+
visualFit: "visual-fit",
|
|
74
|
+
visualFullscreen: "visual-fullscreen",
|
|
75
|
+
visualIn: "visual-in",
|
|
76
|
+
visualNext: "visual-next",
|
|
77
|
+
visualOut: "visual-out",
|
|
78
|
+
visualPrevious: "visual-previous",
|
|
79
|
+
visualStage: "visual-stage",
|
|
80
|
+
visualStatus: "visual-status",
|
|
81
|
+
visualTitle: "visual-title",
|
|
82
|
+
visualViewport: "visual-viewport",
|
|
83
|
+
workBoard: "work-board",
|
|
84
|
+
workDetail: "work-detail",
|
|
85
|
+
workFilters: "work-filters",
|
|
86
|
+
workOwner: "work-owner",
|
|
87
|
+
workQuery: "work-query",
|
|
88
|
+
workResults: "work-results",
|
|
89
|
+
workSort: "work-sort",
|
|
90
|
+
workStatus: "work-status",
|
|
32
91
|
} as const;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Option, Schema } from "effect";
|
|
2
|
+
import { useEffect, useRef, useState } from "react";
|
|
3
|
+
import { useMedia } from "./useMedia.ts";
|
|
4
|
+
|
|
5
|
+
const Appearance = Schema.Struct({
|
|
6
|
+
closed: Schema.optional(Schema.Unknown),
|
|
7
|
+
density: Schema.optional(Schema.Unknown),
|
|
8
|
+
theme: Schema.optional(Schema.Unknown),
|
|
9
|
+
});
|
|
10
|
+
function restore(key: string) {
|
|
11
|
+
try {
|
|
12
|
+
const saved = Option.getOrUndefined(Schema.decodeUnknownOption(Appearance)(JSON.parse(localStorage.getItem(key) ?? "{}")));
|
|
13
|
+
return {
|
|
14
|
+
closed: saved?.closed === true,
|
|
15
|
+
density: saved?.density === "compact" ? "compact" : "comfortable",
|
|
16
|
+
notice: "",
|
|
17
|
+
theme: saved?.theme === "light" || saved?.theme === "dark" ? saved.theme : "system",
|
|
18
|
+
};
|
|
19
|
+
} catch {
|
|
20
|
+
return { closed: false, density: "comfortable", notice: "Preferences apply to this page only.", theme: "system" };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function useAppearance() {
|
|
24
|
+
const key = `work-board:appearance:${document.documentElement.dataset.workspace}`;
|
|
25
|
+
const [value, setValue] = useState(() => restore(key));
|
|
26
|
+
const valueRef = useRef(value);
|
|
27
|
+
const dark = useMedia("(prefers-color-scheme: dark)");
|
|
28
|
+
const systemScheme = dark ? "dark" : "light";
|
|
29
|
+
const scheme = value.theme === "system" ? systemScheme : value.theme;
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
const root = document.documentElement;
|
|
32
|
+
root.dataset.theme = value.theme;
|
|
33
|
+
root.dataset.density = value.density;
|
|
34
|
+
root.dataset.scheme = scheme;
|
|
35
|
+
const doc = document.getElementById("doc");
|
|
36
|
+
if (doc) {
|
|
37
|
+
doc.dataset.scheme = scheme;
|
|
38
|
+
}
|
|
39
|
+
document.dispatchEvent(new Event("board-theme"));
|
|
40
|
+
}, [value.theme, value.density, scheme]);
|
|
41
|
+
function change(next: Partial<Pick<typeof value, "closed" | "density" | "theme">>) {
|
|
42
|
+
const appearance = { closed: valueRef.current.closed, density: valueRef.current.density, theme: valueRef.current.theme, ...next };
|
|
43
|
+
let notice = "";
|
|
44
|
+
try {
|
|
45
|
+
localStorage.setItem(key, JSON.stringify(appearance));
|
|
46
|
+
} catch {
|
|
47
|
+
notice = "Preferences apply to this page only.";
|
|
48
|
+
}
|
|
49
|
+
valueRef.current = { ...appearance, notice };
|
|
50
|
+
setValue(valueRef.current);
|
|
51
|
+
}
|
|
52
|
+
return { ...value, change };
|
|
53
|
+
}
|
|
54
|
+
export type AppearanceControls = ReturnType<typeof useAppearance>;
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { useRouter } from "@tanstack/react-router";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import type { RouterShell } from "#client/react/loadBoardPage.ts";
|
|
4
|
+
import { currentEntry, navigationFailure, readingKey, sameReadingLocation } from "#client/react/navigationLocation.ts";
|
|
5
|
+
import { pageQuery } from "#client/react/pageQuery.ts";
|
|
6
|
+
import { readerLink } from "#client/react/readerLink.ts";
|
|
7
|
+
import { readingEntry, readingHistory } from "#client/react/readingHistory.ts";
|
|
8
|
+
import { captureReading } from "#client/react/readingState.ts";
|
|
9
|
+
import { scheduleReading } from "#client/react/scheduleReading.ts";
|
|
10
|
+
|
|
11
|
+
export function useBoardNavigation(shell: RouterShell) {
|
|
12
|
+
const router = useRouter();
|
|
13
|
+
const [status, setStatus] = useState("");
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
const readings = readingHistory();
|
|
16
|
+
const initial = readingEntry(shell.reading ?? window.history.state?.workBoard);
|
|
17
|
+
const aliases = new Map<string, string>();
|
|
18
|
+
let displayed = "";
|
|
19
|
+
let route = "";
|
|
20
|
+
let hash = "";
|
|
21
|
+
let failure = "";
|
|
22
|
+
function save() {
|
|
23
|
+
if (!displayed || document.getElementById("doc")?.dataset.route !== route) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const reading = captureReading();
|
|
27
|
+
if (reading) {
|
|
28
|
+
readings.save(displayed, reading);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function page() {
|
|
32
|
+
const location = router.state.resolvedLocation ?? router.state.location;
|
|
33
|
+
const nextRoute = location.pathname + location.searchStr;
|
|
34
|
+
const doc = document.getElementById("doc");
|
|
35
|
+
if (doc?.dataset.route !== nextRoute) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const previousFailure = failure;
|
|
39
|
+
failure = navigationFailure(doc.dataset.status);
|
|
40
|
+
if (failure) {
|
|
41
|
+
setStatus(failure);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
setStatus((current) => (current === previousFailure ? "" : current));
|
|
45
|
+
const key = location.state.key ?? nextRoute;
|
|
46
|
+
const entry = currentEntry(location.state, displayed, initial);
|
|
47
|
+
const id = readingKey(key, entry, aliases);
|
|
48
|
+
if (sameReadingLocation({ hash, id: displayed, route }, { hash: location.hash, id, route: nextRoute })) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const reading = readings.get(id) ?? entry?.reading;
|
|
52
|
+
const focus = displayed !== "";
|
|
53
|
+
displayed = id;
|
|
54
|
+
route = nextRoute;
|
|
55
|
+
hash = location.hash;
|
|
56
|
+
if (shell.client) {
|
|
57
|
+
recordEntry(router, nextRoute, id);
|
|
58
|
+
}
|
|
59
|
+
scheduleReading(doc, reading, hash, () => displayed === id && doc.dataset.route === nextRoute, setStatus, focus);
|
|
60
|
+
}
|
|
61
|
+
async function open(target: URL) {
|
|
62
|
+
save();
|
|
63
|
+
document.dispatchEvent(new Event("board-navigate"));
|
|
64
|
+
const url = target.pathname + target.search + target.hash;
|
|
65
|
+
if (url === router.state.location.href && Number(document.getElementById("doc")?.dataset.status ?? 200) >= 400) {
|
|
66
|
+
const doc = document.getElementById("doc");
|
|
67
|
+
shell.registry.refresh(
|
|
68
|
+
pageQuery(
|
|
69
|
+
shell.api,
|
|
70
|
+
doc?.dataset.projection ?? "document",
|
|
71
|
+
target.pathname + target.search,
|
|
72
|
+
doc?.querySelector<HTMLElement>("[data-baseline]")?.dataset.baseline || null,
|
|
73
|
+
),
|
|
74
|
+
);
|
|
75
|
+
await router.invalidate();
|
|
76
|
+
} else if (url !== router.state.location.href) {
|
|
77
|
+
await router.navigate({ to: url });
|
|
78
|
+
}
|
|
79
|
+
page();
|
|
80
|
+
}
|
|
81
|
+
function click(event: MouseEvent) {
|
|
82
|
+
const link = event.target instanceof Element ? event.target.closest<HTMLAnchorElement>("a[href]") : null;
|
|
83
|
+
if (
|
|
84
|
+
!link
|
|
85
|
+
|| event.defaultPrevented
|
|
86
|
+
|| event.button !== 0
|
|
87
|
+
|| event.ctrlKey
|
|
88
|
+
|| event.metaKey
|
|
89
|
+
|| event.shiftKey
|
|
90
|
+
|| event.altKey
|
|
91
|
+
|| link.hasAttribute("download")
|
|
92
|
+
|| (link.target && link.target !== "_self")
|
|
93
|
+
) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const target = new URL(link.href, location.href);
|
|
97
|
+
if (!readerLink(target)) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
event.preventDefault();
|
|
101
|
+
void open(target);
|
|
102
|
+
}
|
|
103
|
+
function submit(event: SubmitEvent) {
|
|
104
|
+
const form = event.target;
|
|
105
|
+
if (!(form instanceof HTMLFormElement) || form.id !== "work-filters") {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
event.preventDefault();
|
|
109
|
+
const target = new URL(form.action, location.href);
|
|
110
|
+
target.search = new URLSearchParams([...new FormData(form)].map(([key, value]) => [key, String(value)])).toString();
|
|
111
|
+
void open(target);
|
|
112
|
+
}
|
|
113
|
+
document.addEventListener("submit", submit);
|
|
114
|
+
const before = router.subscribe("onBeforeNavigate", save);
|
|
115
|
+
const resolved = router.subscribe("onResolved", page);
|
|
116
|
+
window.history.scrollRestoration = "manual";
|
|
117
|
+
document.addEventListener("click", click);
|
|
118
|
+
document.addEventListener("board-page", page);
|
|
119
|
+
window.addEventListener("pagehide", save);
|
|
120
|
+
page();
|
|
121
|
+
return () => {
|
|
122
|
+
before();
|
|
123
|
+
resolved();
|
|
124
|
+
document.removeEventListener("submit", submit);
|
|
125
|
+
document.removeEventListener("click", click);
|
|
126
|
+
document.removeEventListener("board-page", page);
|
|
127
|
+
window.removeEventListener("pagehide", save);
|
|
128
|
+
};
|
|
129
|
+
}, [router, shell.api, shell.registry, shell.reading, shell.client]);
|
|
130
|
+
return status;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function recordEntry(router: ReturnType<typeof useRouter>, route: string, id: string) {
|
|
134
|
+
router.history.flush?.();
|
|
135
|
+
if (window.location.pathname + window.location.search !== route || window.history.state?.workBoard?.id === id) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
window.history.replaceState({ ...window.history.state, workBoard: { id } }, "");
|
|
139
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { RegistryContext } from "@effect/atom-react";
|
|
2
|
+
import type * as Atom from "effect/reactivity/Atom";
|
|
3
|
+
import { useContext, useEffect } from "react";
|
|
4
|
+
import { session } from "#client/entry.ts";
|
|
5
|
+
|
|
6
|
+
export function useDiagnosticsPolling<A>(atom: Atom.Atom<A>) {
|
|
7
|
+
const registry = useContext(RegistryContext);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
function refresh() {
|
|
10
|
+
const native = session(window);
|
|
11
|
+
if (!(document.hidden || native.registry.get(native.updates.paused))) {
|
|
12
|
+
registry.refresh(atom);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
const timer = setInterval(refresh, 15_000);
|
|
16
|
+
document.addEventListener("board-updates-resumed", refresh);
|
|
17
|
+
document.addEventListener("visibilitychange", refresh);
|
|
18
|
+
return () => {
|
|
19
|
+
clearInterval(timer);
|
|
20
|
+
document.removeEventListener("board-updates-resumed", refresh);
|
|
21
|
+
document.removeEventListener("visibilitychange", refresh);
|
|
22
|
+
};
|
|
23
|
+
}, [atom, registry]);
|
|
24
|
+
}
|
|
@@ -3,7 +3,7 @@ import { flushSync } from "react-dom";
|
|
|
3
3
|
import type { Document } from "#browser/document/schema.ts";
|
|
4
4
|
import { documentSourceId } from "#client/document/layout.ts";
|
|
5
5
|
import { fileUrl } from "#files/url.ts";
|
|
6
|
-
import type { MainLocation } from "./
|
|
6
|
+
import type { MainLocation } from "./mainLocation.ts";
|
|
7
7
|
export function useDocumentPage({
|
|
8
8
|
data,
|
|
9
9
|
pending,
|