@eightyfourthousand/lib-editing 2026.3.1 → 2026.4.1
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/fixtures/basic/json.d.ts +4 -0
- package/fixtures/basic/json.js +393 -0
- package/fixtures/basic/json.js.map +1 -0
- package/fixtures/toh251/json.d.ts +4 -0
- package/fixtures/toh251/json.js +4898 -0
- package/fixtures/toh251/json.js.map +1 -0
- package/fixtures/toh251/passages.d.ts +4 -0
- package/fixtures/toh251/passages.js +2764 -0
- package/fixtures/toh251/passages.js.map +1 -0
- package/fixtures/types.d.ts +6 -0
- package/fixtures/types.js +4 -0
- package/fixtures/types.js.map +1 -0
- package/index.js +5 -0
- package/index.js.map +1 -0
- package/lib/block.d.ts +3 -0
- package/lib/block.js +175 -0
- package/lib/block.js.map +1 -0
- package/lib/components/editor/BlockEditor.d.ts +7 -0
- package/lib/components/editor/BlockEditor.js +18 -0
- package/lib/components/editor/BlockEditor.js.map +1 -0
- package/lib/components/editor/EditorBackMatterPage.d.ts +1 -0
- package/lib/components/editor/EditorBackMatterPage.js +55 -0
- package/lib/components/editor/EditorBackMatterPage.js.map +1 -0
- package/lib/components/editor/EditorBodyPage.d.ts +1 -0
- package/lib/components/editor/EditorBodyPage.js +47 -0
- package/lib/components/editor/EditorBodyPage.js.map +1 -0
- package/lib/components/editor/EditorHeader.d.ts +1 -0
- package/lib/components/editor/EditorHeader.js +12 -0
- package/lib/components/editor/EditorHeader.js.map +1 -0
- package/lib/components/editor/EditorLayout.d.ts +9 -0
- package/lib/components/editor/EditorLayout.js +30 -0
- package/lib/components/editor/EditorLayout.js.map +1 -0
- package/lib/components/editor/EditorLeftPanelPage.d.ts +1 -0
- package/lib/components/editor/EditorLeftPanelPage.js +24 -0
- package/lib/components/editor/EditorLeftPanelPage.js.map +1 -0
- package/lib/components/editor/EditorProvider.d.ts +31 -0
- package/lib/components/editor/EditorProvider.js +353 -0
- package/lib/components/editor/EditorProvider.js.map +1 -0
- package/lib/components/editor/PaginationProvider.d.ts +27 -0
- package/lib/components/editor/PaginationProvider.js +311 -0
- package/lib/components/editor/PaginationProvider.js.map +1 -0
- package/lib/components/editor/TitlesBuilder.d.ts +5 -0
- package/lib/components/editor/TitlesBuilder.js +25 -0
- package/lib/components/editor/TitlesBuilder.js.map +1 -0
- package/lib/components/editor/TranslationBuilder.d.ts +2 -0
- package/lib/components/editor/TranslationBuilder.js +128 -0
- package/lib/components/editor/TranslationBuilder.js.map +1 -0
- package/lib/components/editor/TranslationEditor.d.ts +6 -0
- package/lib/components/editor/TranslationEditor.js +15 -0
- package/lib/components/editor/TranslationEditor.js.map +1 -0
- package/lib/components/editor/extensions/Abbreviation/Abbreviation.d.ts +16 -0
- package/lib/components/editor/extensions/Abbreviation/Abbreviation.js +106 -0
- package/lib/components/editor/extensions/Abbreviation/Abbreviation.js.map +1 -0
- package/lib/components/editor/extensions/Audio/Audio.d.ts +23 -0
- package/lib/components/editor/extensions/Audio/Audio.js +41 -0
- package/lib/components/editor/extensions/Audio/Audio.js.map +1 -0
- package/lib/components/editor/extensions/Bold.d.ts +1 -0
- package/lib/components/editor/extensions/Bold.js +38 -0
- package/lib/components/editor/extensions/Bold.js.map +1 -0
- package/lib/components/editor/extensions/Document.d.ts +2 -0
- package/lib/components/editor/extensions/Document.js +7 -0
- package/lib/components/editor/extensions/Document.js.map +1 -0
- package/lib/components/editor/extensions/DragHandle/DragHandle.d.ts +25 -0
- package/lib/components/editor/extensions/DragHandle/DragHandle.js +312 -0
- package/lib/components/editor/extensions/DragHandle/DragHandle.js.map +1 -0
- package/lib/components/editor/extensions/EndNoteLink/EndNoteLink.d.ts +6 -0
- package/lib/components/editor/extensions/EndNoteLink/EndNoteLink.js +21 -0
- package/lib/components/editor/extensions/EndNoteLink/EndNoteLink.js.map +1 -0
- package/lib/components/editor/extensions/EndNoteLink/EndNoteLinkHoverContent.d.ts +7 -0
- package/lib/components/editor/extensions/EndNoteLink/EndNoteLinkHoverContent.js +76 -0
- package/lib/components/editor/extensions/EndNoteLink/EndNoteLinkHoverContent.js.map +1 -0
- package/lib/components/editor/extensions/EndNoteLink/EndNoteLinkMark.d.ts +13 -0
- package/lib/components/editor/extensions/EndNoteLink/EndNoteLinkMark.js +174 -0
- package/lib/components/editor/extensions/EndNoteLink/EndNoteLinkMark.js.map +1 -0
- package/lib/components/editor/extensions/EndNoteLink/endnote-utils.d.ts +86 -0
- package/lib/components/editor/extensions/EndNoteLink/endnote-utils.js +307 -0
- package/lib/components/editor/extensions/EndNoteLink/endnote-utils.js.map +1 -0
- package/lib/components/editor/extensions/GlobalConfig.d.ts +23 -0
- package/lib/components/editor/extensions/GlobalConfig.js +23 -0
- package/lib/components/editor/extensions/GlobalConfig.js.map +1 -0
- package/lib/components/editor/extensions/GlossaryInstance/GlossaryInput.d.ts +4 -0
- package/lib/components/editor/extensions/GlossaryInstance/GlossaryInput.js +23 -0
- package/lib/components/editor/extensions/GlossaryInstance/GlossaryInput.js.map +1 -0
- package/lib/components/editor/extensions/GlossaryInstance/GlossaryInstance.d.ts +7 -0
- package/lib/components/editor/extensions/GlossaryInstance/GlossaryInstance.js +67 -0
- package/lib/components/editor/extensions/GlossaryInstance/GlossaryInstance.js.map +1 -0
- package/lib/components/editor/extensions/GlossaryInstance/GlossaryInstanceNode.d.ts +13 -0
- package/lib/components/editor/extensions/GlossaryInstance/GlossaryInstanceNode.js +109 -0
- package/lib/components/editor/extensions/GlossaryInstance/GlossaryInstanceNode.js.map +1 -0
- package/lib/components/editor/extensions/Heading/Heading.d.ts +2 -0
- package/lib/components/editor/extensions/Heading/Heading.js +52 -0
- package/lib/components/editor/extensions/Heading/Heading.js.map +1 -0
- package/lib/components/editor/extensions/HoverInputField.d.ts +7 -0
- package/lib/components/editor/extensions/HoverInputField.js +20 -0
- package/lib/components/editor/extensions/HoverInputField.js.map +1 -0
- package/lib/components/editor/extensions/Image.d.ts +2 -0
- package/lib/components/editor/extensions/Image.js +16 -0
- package/lib/components/editor/extensions/Image.js.map +1 -0
- package/lib/components/editor/extensions/Indent.d.ts +24 -0
- package/lib/components/editor/extensions/Indent.js +66 -0
- package/lib/components/editor/extensions/Indent.js.map +1 -0
- package/lib/components/editor/extensions/InternalLink/InternalLink.d.ts +13 -0
- package/lib/components/editor/extensions/InternalLink/InternalLink.js +141 -0
- package/lib/components/editor/extensions/InternalLink/InternalLink.js.map +1 -0
- package/lib/components/editor/extensions/InternalLink/InternalLinkHoverContent.d.ts +8 -0
- package/lib/components/editor/extensions/InternalLink/InternalLinkHoverContent.js +66 -0
- package/lib/components/editor/extensions/InternalLink/InternalLinkHoverContent.js.map +1 -0
- package/lib/components/editor/extensions/InternalLink/InternalLinkInput.d.ts +5 -0
- package/lib/components/editor/extensions/InternalLink/InternalLinkInput.js +32 -0
- package/lib/components/editor/extensions/InternalLink/InternalLinkInput.js.map +1 -0
- package/lib/components/editor/extensions/InternalLink/index.js +2 -0
- package/lib/components/editor/extensions/InternalLink/index.js.map +1 -0
- package/lib/components/editor/extensions/Italic.d.ts +1 -0
- package/lib/components/editor/extensions/Italic.js +44 -0
- package/lib/components/editor/extensions/Italic.js.map +1 -0
- package/lib/components/editor/extensions/LeadingSpace.d.ts +24 -0
- package/lib/components/editor/extensions/LeadingSpace.js +69 -0
- package/lib/components/editor/extensions/LeadingSpace.js.map +1 -0
- package/lib/components/editor/extensions/Line/LineNode.d.ts +2 -0
- package/lib/components/editor/extensions/Line/LineNode.js +32 -0
- package/lib/components/editor/extensions/Line/LineNode.js.map +1 -0
- package/lib/components/editor/extensions/LineGroup/LineGroupNode.d.ts +19 -0
- package/lib/components/editor/extensions/LineGroup/LineGroupNode.js +86 -0
- package/lib/components/editor/extensions/LineGroup/LineGroupNode.js.map +1 -0
- package/lib/components/editor/extensions/Link/Link.d.ts +1 -0
- package/lib/components/editor/extensions/Link/Link.js +51 -0
- package/lib/components/editor/extensions/Link/Link.js.map +1 -0
- package/lib/components/editor/extensions/Link/LinkHoverContent.d.ts +7 -0
- package/lib/components/editor/extensions/Link/LinkHoverContent.js +59 -0
- package/lib/components/editor/extensions/Link/LinkHoverContent.js.map +1 -0
- package/lib/components/editor/extensions/Link/index.js +2 -0
- package/lib/components/editor/extensions/Link/index.js.map +1 -0
- package/lib/components/editor/extensions/List.d.ts +3 -0
- package/lib/components/editor/extensions/List.js +59 -0
- package/lib/components/editor/extensions/List.js.map +1 -0
- package/lib/components/editor/extensions/Mantra/Mantra.d.ts +15 -0
- package/lib/components/editor/extensions/Mantra/Mantra.js +63 -0
- package/lib/components/editor/extensions/Mantra/Mantra.js.map +1 -0
- package/lib/components/editor/extensions/Mention/Mention.d.ts +22 -0
- package/lib/components/editor/extensions/Mention/Mention.js +142 -0
- package/lib/components/editor/extensions/Mention/Mention.js.map +1 -0
- package/lib/components/editor/extensions/Mention/MentionHoverContent.d.ts +8 -0
- package/lib/components/editor/extensions/Mention/MentionHoverContent.js +85 -0
- package/lib/components/editor/extensions/Mention/MentionHoverContent.js.map +1 -0
- package/lib/components/editor/extensions/NodeWrapper.d.ts +18 -0
- package/lib/components/editor/extensions/NodeWrapper.js +14 -0
- package/lib/components/editor/extensions/NodeWrapper.js.map +1 -0
- package/lib/components/editor/extensions/Paragraph/Paragraph.d.ts +2 -0
- package/lib/components/editor/extensions/Paragraph/Paragraph.js +23 -0
- package/lib/components/editor/extensions/Paragraph/Paragraph.js.map +1 -0
- package/lib/components/editor/extensions/ParagraphIndent.d.ts +24 -0
- package/lib/components/editor/extensions/ParagraphIndent.js +52 -0
- package/lib/components/editor/extensions/ParagraphIndent.js.map +1 -0
- package/lib/components/editor/extensions/Passage/EditLabel.d.ts +4 -0
- package/lib/components/editor/extensions/Passage/EditLabel.js +19 -0
- package/lib/components/editor/extensions/Passage/EditLabel.js.map +1 -0
- package/lib/components/editor/extensions/Passage/EditorOptions.d.ts +3 -0
- package/lib/components/editor/extensions/Passage/EditorOptions.js +8 -0
- package/lib/components/editor/extensions/Passage/EditorOptions.js.map +1 -0
- package/lib/components/editor/extensions/Passage/Passage.d.ts +3 -0
- package/lib/components/editor/extensions/Passage/Passage.js +76 -0
- package/lib/components/editor/extensions/Passage/Passage.js.map +1 -0
- package/lib/components/editor/extensions/Passage/PassageNode.d.ts +10 -0
- package/lib/components/editor/extensions/Passage/PassageNode.js +180 -0
- package/lib/components/editor/extensions/Passage/PassageNode.js.map +1 -0
- package/lib/components/editor/extensions/Passage/ReaderOptions.d.ts +8 -0
- package/lib/components/editor/extensions/Passage/ReaderOptions.js +25 -0
- package/lib/components/editor/extensions/Passage/ReaderOptions.js.map +1 -0
- package/lib/components/editor/extensions/Passage/ShowAnnotations.d.ts +2 -0
- package/lib/components/editor/extensions/Passage/ShowAnnotations.js +31 -0
- package/lib/components/editor/extensions/Passage/ShowAnnotations.js.map +1 -0
- package/lib/components/editor/extensions/Passage/index.js +2 -0
- package/lib/components/editor/extensions/Passage/index.js.map +1 -0
- package/lib/components/editor/extensions/Passage/label.d.ts +22 -0
- package/lib/components/editor/extensions/Passage/label.js +37 -0
- package/lib/components/editor/extensions/Passage/label.js.map +1 -0
- package/lib/components/editor/extensions/Placeholder.d.ts +2 -0
- package/lib/components/editor/extensions/Placeholder.js +9 -0
- package/lib/components/editor/extensions/Placeholder.js.map +1 -0
- package/lib/components/editor/extensions/SlashCommand/SlashCommand.d.ts +32 -0
- package/lib/components/editor/extensions/SlashCommand/SlashCommand.js +32 -0
- package/lib/components/editor/extensions/SlashCommand/SlashCommand.js.map +1 -0
- package/lib/components/editor/extensions/SlashCommand/SuggestionList.d.ts +12 -0
- package/lib/components/editor/extensions/SlashCommand/SuggestionList.js +49 -0
- package/lib/components/editor/extensions/SlashCommand/SuggestionList.js.map +1 -0
- package/lib/components/editor/extensions/SlashCommand/Suggestions.d.ts +13 -0
- package/lib/components/editor/extensions/SlashCommand/Suggestions.js +151 -0
- package/lib/components/editor/extensions/SlashCommand/Suggestions.js.map +1 -0
- package/lib/components/editor/extensions/SmallCaps.d.ts +34 -0
- package/lib/components/editor/extensions/SmallCaps.js +68 -0
- package/lib/components/editor/extensions/SmallCaps.js.map +1 -0
- package/lib/components/editor/extensions/StarterKit.d.ts +4 -0
- package/lib/components/editor/extensions/StarterKit.js +31 -0
- package/lib/components/editor/extensions/StarterKit.js.map +1 -0
- package/lib/components/editor/extensions/Subscript.d.ts +1 -0
- package/lib/components/editor/extensions/Subscript.js +38 -0
- package/lib/components/editor/extensions/Subscript.js.map +1 -0
- package/lib/components/editor/extensions/Superscript.d.ts +1 -0
- package/lib/components/editor/extensions/Superscript.js +38 -0
- package/lib/components/editor/extensions/Superscript.js.map +1 -0
- package/lib/components/editor/extensions/Table.d.ts +1 -0
- package/lib/components/editor/extensions/Table.js +27 -0
- package/lib/components/editor/extensions/Table.js.map +1 -0
- package/lib/components/editor/extensions/TextAlign.d.ts +2 -0
- package/lib/components/editor/extensions/TextAlign.js +5 -0
- package/lib/components/editor/extensions/TextAlign.js.map +1 -0
- package/lib/components/editor/extensions/TitleMetadata.d.ts +2 -0
- package/lib/components/editor/extensions/TitleMetadata.js +40 -0
- package/lib/components/editor/extensions/TitleMetadata.js.map +1 -0
- package/lib/components/editor/extensions/TitleNode.d.ts +8 -0
- package/lib/components/editor/extensions/TitleNode.js +94 -0
- package/lib/components/editor/extensions/TitleNode.js.map +1 -0
- package/lib/components/editor/extensions/TitlesNode.d.ts +7 -0
- package/lib/components/editor/extensions/TitlesNode.js +89 -0
- package/lib/components/editor/extensions/TitlesNode.js.map +1 -0
- package/lib/components/editor/extensions/Trailer.d.ts +16 -0
- package/lib/components/editor/extensions/Trailer.js +35 -0
- package/lib/components/editor/extensions/Trailer.js.map +1 -0
- package/lib/components/editor/extensions/TranslationDocument.d.ts +3 -0
- package/lib/components/editor/extensions/TranslationDocument.js +7 -0
- package/lib/components/editor/extensions/TranslationDocument.js.map +1 -0
- package/lib/components/editor/extensions/TranslationMetadata.d.ts +3 -0
- package/lib/components/editor/extensions/TranslationMetadata.js +56 -0
- package/lib/components/editor/extensions/TranslationMetadata.js.map +1 -0
- package/lib/components/editor/extensions/Underline.d.ts +1 -0
- package/lib/components/editor/extensions/Underline.js +38 -0
- package/lib/components/editor/extensions/Underline.js.map +1 -0
- package/lib/components/editor/hooks/index.js +5 -0
- package/lib/components/editor/hooks/index.js.map +1 -0
- package/lib/components/editor/hooks/useBlockEditor.d.ts +13 -0
- package/lib/components/editor/hooks/useBlockEditor.js +23 -0
- package/lib/components/editor/hooks/useBlockEditor.js.map +1 -0
- package/lib/components/editor/hooks/useDefaultExtensions.d.ts +3 -0
- package/lib/components/editor/hooks/useDefaultExtensions.js +38 -0
- package/lib/components/editor/hooks/useDefaultExtensions.js.map +1 -0
- package/lib/components/editor/hooks/useDirtyStore.d.ts +8 -0
- package/lib/components/editor/hooks/useDirtyStore.js +23 -0
- package/lib/components/editor/hooks/useDirtyStore.js.map +1 -0
- package/lib/components/editor/hooks/useTranslationExtensions.d.ts +6 -0
- package/lib/components/editor/hooks/useTranslationExtensions.js +113 -0
- package/lib/components/editor/hooks/useTranslationExtensions.js.map +1 -0
- package/lib/components/editor/index.js +11 -0
- package/lib/components/editor/index.js.map +1 -0
- package/lib/components/editor/menus/EmptyBubbleMenu.d.ts +4 -0
- package/lib/components/editor/menus/EmptyBubbleMenu.js +24 -0
- package/lib/components/editor/menus/EmptyBubbleMenu.js.map +1 -0
- package/lib/components/editor/menus/MainBubbleMenu.d.ts +4 -0
- package/lib/components/editor/menus/MainBubbleMenu.js +28 -0
- package/lib/components/editor/menus/MainBubbleMenu.js.map +1 -0
- package/lib/components/editor/menus/TranslationBubbleMenu.d.ts +4 -0
- package/lib/components/editor/menus/TranslationBubbleMenu.js +30 -0
- package/lib/components/editor/menus/TranslationBubbleMenu.js.map +1 -0
- package/lib/components/editor/menus/index.js +4 -0
- package/lib/components/editor/menus/index.js.map +1 -0
- package/lib/components/editor/menus/selectors/EndNoteSelector.d.ts +4 -0
- package/lib/components/editor/menus/selectors/EndNoteSelector.js +256 -0
- package/lib/components/editor/menus/selectors/EndNoteSelector.js.map +1 -0
- package/lib/components/editor/menus/selectors/GlossarySelector.d.ts +4 -0
- package/lib/components/editor/menus/selectors/GlossarySelector.js +26 -0
- package/lib/components/editor/menus/selectors/GlossarySelector.js.map +1 -0
- package/lib/components/editor/menus/selectors/LinkSelector.d.ts +4 -0
- package/lib/components/editor/menus/selectors/LinkSelector.js +31 -0
- package/lib/components/editor/menus/selectors/LinkSelector.js.map +1 -0
- package/lib/components/editor/menus/selectors/MantraSelector.d.ts +4 -0
- package/lib/components/editor/menus/selectors/MantraSelector.js +63 -0
- package/lib/components/editor/menus/selectors/MantraSelector.js.map +1 -0
- package/lib/components/editor/menus/selectors/NodeSelector.d.ts +4 -0
- package/lib/components/editor/menus/selectors/NodeSelector.js +75 -0
- package/lib/components/editor/menus/selectors/NodeSelector.js.map +1 -0
- package/lib/components/editor/menus/selectors/ParagraphButtons.d.ts +4 -0
- package/lib/components/editor/menus/selectors/ParagraphButtons.js +42 -0
- package/lib/components/editor/menus/selectors/ParagraphButtons.js.map +1 -0
- package/lib/components/editor/menus/selectors/SelectorInputField.d.ts +8 -0
- package/lib/components/editor/menus/selectors/SelectorInputField.js +29 -0
- package/lib/components/editor/menus/selectors/SelectorInputField.js.map +1 -0
- package/lib/components/editor/menus/selectors/TextAlignSelector.d.ts +4 -0
- package/lib/components/editor/menus/selectors/TextAlignSelector.js +43 -0
- package/lib/components/editor/menus/selectors/TextAlignSelector.js.map +1 -0
- package/lib/components/editor/menus/selectors/TextButtons.d.ts +4 -0
- package/lib/components/editor/menus/selectors/TextButtons.js +56 -0
- package/lib/components/editor/menus/selectors/TextButtons.js.map +1 -0
- package/lib/components/editor/menus/selectors/TranslationNodeSelector.d.ts +4 -0
- package/lib/components/editor/menus/selectors/TranslationNodeSelector.js +75 -0
- package/lib/components/editor/menus/selectors/TranslationNodeSelector.js.map +1 -0
- package/lib/components/editor/menus/selectors/TranslationTextButtons.d.ts +4 -0
- package/lib/components/editor/menus/selectors/TranslationTextButtons.js +75 -0
- package/lib/components/editor/menus/selectors/TranslationTextButtons.js.map +1 -0
- package/lib/components/editor/menus/selectors/index.js +6 -0
- package/lib/components/editor/menus/selectors/index.js.map +1 -0
- package/lib/components/editor/save-filter.d.ts +13 -0
- package/lib/components/editor/save-filter.js +15 -0
- package/lib/components/editor/save-filter.js.map +1 -0
- package/lib/components/editor/util.d.ts +98 -0
- package/lib/components/editor/util.js +186 -0
- package/lib/components/editor/util.js.map +1 -0
- package/lib/components/index.js +4 -0
- package/lib/components/index.js.map +1 -0
- package/lib/components/reader/ReaderBackMatterPage.d.ts +5 -0
- package/lib/components/reader/ReaderBackMatterPage.js +38 -0
- package/lib/components/reader/ReaderBackMatterPage.js.map +1 -0
- package/lib/components/reader/ReaderBackMatterPanel.d.ts +11 -0
- package/lib/components/reader/ReaderBackMatterPanel.js +15 -0
- package/lib/components/reader/ReaderBackMatterPanel.js.map +1 -0
- package/lib/components/reader/ReaderBodyPage.d.ts +5 -0
- package/lib/components/reader/ReaderBodyPage.js +29 -0
- package/lib/components/reader/ReaderBodyPage.js.map +1 -0
- package/lib/components/reader/ReaderBodyPanel.d.ts +8 -0
- package/lib/components/reader/ReaderBodyPanel.js +19 -0
- package/lib/components/reader/ReaderBodyPanel.js.map +1 -0
- package/lib/components/reader/ReaderLayout.d.ts +10 -0
- package/lib/components/reader/ReaderLayout.js +11 -0
- package/lib/components/reader/ReaderLayout.js.map +1 -0
- package/lib/components/reader/ReaderLeftPanel.d.ts +5 -0
- package/lib/components/reader/ReaderLeftPanel.js +7 -0
- package/lib/components/reader/ReaderLeftPanel.js.map +1 -0
- package/lib/components/reader/ReaderLeftPanelPage.d.ts +5 -0
- package/lib/components/reader/ReaderLeftPanelPage.js +20 -0
- package/lib/components/reader/ReaderLeftPanelPage.js.map +1 -0
- package/lib/components/reader/TranslationReader.d.ts +2 -0
- package/lib/components/reader/TranslationReader.js +10 -0
- package/lib/components/reader/TranslationReader.js.map +1 -0
- package/lib/components/reader/index.js +3 -0
- package/lib/components/reader/index.js.map +1 -0
- package/lib/components/reader/ssr.js +4 -0
- package/lib/components/reader/ssr.js.map +1 -0
- package/lib/components/shared/AiSummarizerPage.d.ts +1 -0
- package/lib/components/shared/AiSummarizerPage.js +11 -0
- package/lib/components/shared/AiSummarizerPage.js.map +1 -0
- package/lib/components/shared/BackMatterPanel.d.ts +15 -0
- package/lib/components/shared/BackMatterPanel.js +31 -0
- package/lib/components/shared/BackMatterPanel.js.map +1 -0
- package/lib/components/shared/BodyPanel.d.ts +12 -0
- package/lib/components/shared/BodyPanel.js +81 -0
- package/lib/components/shared/BodyPanel.js.map +1 -0
- package/lib/components/shared/HoverCardProvider.d.ts +23 -0
- package/lib/components/shared/HoverCardProvider.js +261 -0
- package/lib/components/shared/HoverCardProvider.js.map +1 -0
- package/lib/components/shared/Imprint.d.ts +4 -0
- package/lib/components/shared/Imprint.js +11 -0
- package/lib/components/shared/Imprint.js.map +1 -0
- package/lib/components/shared/LabeledElement.d.ts +9 -0
- package/lib/components/shared/LabeledElement.js +41 -0
- package/lib/components/shared/LabeledElement.js.map +1 -0
- package/lib/components/shared/LeftPanel.d.ts +6 -0
- package/lib/components/shared/LeftPanel.js +22 -0
- package/lib/components/shared/LeftPanel.js.map +1 -0
- package/lib/components/shared/NavigationContext.d.ts +25 -0
- package/lib/components/shared/NavigationContext.js +31 -0
- package/lib/components/shared/NavigationContext.js.map +1 -0
- package/lib/components/shared/NavigationProvider.d.ts +7 -0
- package/lib/components/shared/NavigationProvider.js +262 -0
- package/lib/components/shared/NavigationProvider.js.map +1 -0
- package/lib/components/shared/OpenGraphImage.d.ts +13 -0
- package/lib/components/shared/OpenGraphImage.js +47 -0
- package/lib/components/shared/OpenGraphImage.js.map +1 -0
- package/lib/components/shared/PassageSkeleton.d.ts +1 -0
- package/lib/components/shared/PassageSkeleton.js +6 -0
- package/lib/components/shared/PassageSkeleton.js.map +1 -0
- package/lib/components/shared/ReaderSearchButton.d.ts +1 -0
- package/lib/components/shared/ReaderSearchButton.js +72 -0
- package/lib/components/shared/ReaderSearchButton.js.map +1 -0
- package/lib/components/shared/RestrictionWarning.d.ts +13 -0
- package/lib/components/shared/RestrictionWarning.js +61 -0
- package/lib/components/shared/RestrictionWarning.js.map +1 -0
- package/lib/components/shared/SearchReplacePanel.d.ts +9 -0
- package/lib/components/shared/SearchReplacePanel.js +136 -0
- package/lib/components/shared/SearchReplacePanel.js.map +1 -0
- package/lib/components/shared/SourceReader.d.ts +1 -0
- package/lib/components/shared/SourceReader.js +49 -0
- package/lib/components/shared/SourceReader.js.map +1 -0
- package/lib/components/shared/SuggestRevisionForm.d.ts +6 -0
- package/lib/components/shared/SuggestRevisionForm.js +44 -0
- package/lib/components/shared/SuggestRevisionForm.js.map +1 -0
- package/lib/components/shared/TableOfContents.d.ts +13 -0
- package/lib/components/shared/TableOfContents.js +135 -0
- package/lib/components/shared/TableOfContents.js.map +1 -0
- package/lib/components/shared/ThreeColumnRenderer.d.ts +5 -0
- package/lib/components/shared/ThreeColumnRenderer.js +28 -0
- package/lib/components/shared/ThreeColumnRenderer.js.map +1 -0
- package/lib/components/shared/TranslationHeader.d.ts +3 -0
- package/lib/components/shared/TranslationHeader.js +11 -0
- package/lib/components/shared/TranslationHeader.js.map +1 -0
- package/lib/components/shared/TranslationHoverCard.d.ts +7 -0
- package/lib/components/shared/TranslationHoverCard.js +41 -0
- package/lib/components/shared/TranslationHoverCard.js.map +1 -0
- package/lib/components/shared/TranslationSkeleton.d.ts +3 -0
- package/lib/components/shared/TranslationSkeleton.js +7 -0
- package/lib/components/shared/TranslationSkeleton.js.map +1 -0
- package/lib/components/shared/TranslationTable.d.ts +4 -0
- package/lib/components/shared/TranslationTable.js +82 -0
- package/lib/components/shared/TranslationTable.js.map +1 -0
- package/lib/components/shared/bibliography/BibliographyBody.d.ts +5 -0
- package/lib/components/shared/bibliography/BibliographyBody.js +11 -0
- package/lib/components/shared/bibliography/BibliographyBody.js.map +1 -0
- package/lib/components/shared/bibliography/BibliographyList.d.ts +5 -0
- package/lib/components/shared/bibliography/BibliographyList.js +15 -0
- package/lib/components/shared/bibliography/BibliographyList.js.map +1 -0
- package/lib/components/shared/bibliography/index.js +2 -0
- package/lib/components/shared/bibliography/index.js.map +1 -0
- package/lib/components/shared/generate-metadata.d.ts +6 -0
- package/lib/components/shared/generate-metadata.js +32 -0
- package/lib/components/shared/generate-metadata.js.map +1 -0
- package/lib/components/shared/glossary/GlossaryInstanceBody.d.ts +6 -0
- package/lib/components/shared/glossary/GlossaryInstanceBody.js +49 -0
- package/lib/components/shared/glossary/GlossaryInstanceBody.js.map +1 -0
- package/lib/components/shared/glossary/GlossaryPaginationProvider.d.ts +19 -0
- package/lib/components/shared/glossary/GlossaryPaginationProvider.js +182 -0
- package/lib/components/shared/glossary/GlossaryPaginationProvider.js.map +1 -0
- package/lib/components/shared/glossary/GlossarySkeleton.d.ts +5 -0
- package/lib/components/shared/glossary/GlossarySkeleton.js +10 -0
- package/lib/components/shared/glossary/GlossarySkeleton.js.map +1 -0
- package/lib/components/shared/glossary/GlossaryTermList.d.ts +4 -0
- package/lib/components/shared/glossary/GlossaryTermList.js +17 -0
- package/lib/components/shared/glossary/GlossaryTermList.js.map +1 -0
- package/lib/components/shared/glossary/index.js +4 -0
- package/lib/components/shared/glossary/index.js.map +1 -0
- package/lib/components/shared/hooks/useGlossaryInstanceListener.d.ts +4 -0
- package/lib/components/shared/hooks/useGlossaryInstanceListener.js +30 -0
- package/lib/components/shared/hooks/useGlossaryInstanceListener.js.map +1 -0
- package/lib/components/shared/hooks/usePaginationLoadTriggers.d.ts +12 -0
- package/lib/components/shared/hooks/usePaginationLoadTriggers.js +94 -0
- package/lib/components/shared/hooks/usePaginationLoadTriggers.js.map +1 -0
- package/lib/components/shared/hooks/useScrollInTab.d.ts +7 -0
- package/lib/components/shared/hooks/useScrollInTab.js +31 -0
- package/lib/components/shared/hooks/useScrollInTab.js.map +1 -0
- package/lib/components/shared/hooks/useScrollPositionRestore.d.ts +44 -0
- package/lib/components/shared/hooks/useScrollPositionRestore.js +219 -0
- package/lib/components/shared/hooks/useScrollPositionRestore.js.map +1 -0
- package/lib/components/shared/hooks/useTohToggle.d.ts +5 -0
- package/lib/components/shared/hooks/useTohToggle.js +36 -0
- package/lib/components/shared/hooks/useTohToggle.js.map +1 -0
- package/lib/components/shared/index.js +12 -0
- package/lib/components/shared/index.js.map +1 -0
- package/lib/components/shared/ssr.js +3 -0
- package/lib/components/shared/ssr.js.map +1 -0
- package/lib/components/shared/titles/FramedCard.d.ts +7 -0
- package/lib/components/shared/titles/FramedCard.js +21 -0
- package/lib/components/shared/titles/FramedCard.js.map +1 -0
- package/lib/components/shared/titles/LongTitle.d.ts +5 -0
- package/lib/components/shared/titles/LongTitle.js +12 -0
- package/lib/components/shared/titles/LongTitle.js.map +1 -0
- package/lib/components/shared/titles/LongTitles.d.ts +4 -0
- package/lib/components/shared/titles/LongTitles.js +14 -0
- package/lib/components/shared/titles/LongTitles.js.map +1 -0
- package/lib/components/shared/titles/Title.d.ts +20 -0
- package/lib/components/shared/titles/Title.js +39 -0
- package/lib/components/shared/titles/Title.js.map +1 -0
- package/lib/components/shared/titles/TitleDetails.d.ts +4 -0
- package/lib/components/shared/titles/TitleDetails.js +14 -0
- package/lib/components/shared/titles/TitleDetails.js.map +1 -0
- package/lib/components/shared/titles/TitleForm.d.ts +5 -0
- package/lib/components/shared/titles/TitleForm.js +14 -0
- package/lib/components/shared/titles/TitleForm.js.map +1 -0
- package/lib/components/shared/titles/Titles.d.ts +8 -0
- package/lib/components/shared/titles/Titles.js +65 -0
- package/lib/components/shared/titles/Titles.js.map +1 -0
- package/lib/components/shared/titles/TitlesCard.d.ts +12 -0
- package/lib/components/shared/titles/TitlesCard.js +10 -0
- package/lib/components/shared/titles/TitlesCard.js.map +1 -0
- package/lib/components/shared/titles/index.js +9 -0
- package/lib/components/shared/titles/index.js.map +1 -0
- package/lib/components/shared/types.d.ts +30 -0
- package/lib/components/shared/types.js +34 -0
- package/lib/components/shared/types.js.map +1 -0
- package/lib/components/ssr.js +3 -0
- package/lib/components/ssr.js.map +1 -0
- package/lib/exporters/abbreviation.d.ts +3 -0
- package/lib/exporters/abbreviation.js +14 -0
- package/lib/exporters/abbreviation.js.map +1 -0
- package/lib/exporters/annotation.d.ts +5 -0
- package/lib/exporters/annotation.js +158 -0
- package/lib/exporters/annotation.js.map +1 -0
- package/lib/exporters/audio.d.ts +3 -0
- package/lib/exporters/audio.js +19 -0
- package/lib/exporters/audio.js.map +1 -0
- package/lib/exporters/blockquote.d.ts +3 -0
- package/lib/exporters/blockquote.js +16 -0
- package/lib/exporters/blockquote.js.map +1 -0
- package/lib/exporters/code.d.ts +3 -0
- package/lib/exporters/code.js +16 -0
- package/lib/exporters/code.js.map +1 -0
- package/lib/exporters/end-note-link.d.ts +3 -0
- package/lib/exporters/end-note-link.js +23 -0
- package/lib/exporters/end-note-link.js.map +1 -0
- package/lib/exporters/export.d.ts +10 -0
- package/lib/exporters/export.js +2 -0
- package/lib/exporters/export.js.map +1 -0
- package/lib/exporters/glossary-instance.d.ts +3 -0
- package/lib/exporters/glossary-instance.js +20 -0
- package/lib/exporters/glossary-instance.js.map +1 -0
- package/lib/exporters/has-abbreviation.d.ts +3 -0
- package/lib/exporters/has-abbreviation.js +14 -0
- package/lib/exporters/has-abbreviation.js.map +1 -0
- package/lib/exporters/heading.d.ts +3 -0
- package/lib/exporters/heading.js +20 -0
- package/lib/exporters/heading.js.map +1 -0
- package/lib/exporters/image.d.ts +3 -0
- package/lib/exporters/image.js +17 -0
- package/lib/exporters/image.js.map +1 -0
- package/lib/exporters/indent.d.ts +3 -0
- package/lib/exporters/indent.js +11 -0
- package/lib/exporters/indent.js.map +1 -0
- package/lib/exporters/index.js +2 -0
- package/lib/exporters/index.js.map +1 -0
- package/lib/exporters/internal-link.d.ts +3 -0
- package/lib/exporters/internal-link.js +24 -0
- package/lib/exporters/internal-link.js.map +1 -0
- package/lib/exporters/italic.d.ts +3 -0
- package/lib/exporters/italic.js +33 -0
- package/lib/exporters/italic.js.map +1 -0
- package/lib/exporters/leading-space.d.ts +3 -0
- package/lib/exporters/leading-space.js +10 -0
- package/lib/exporters/leading-space.js.map +1 -0
- package/lib/exporters/line-group.d.ts +3 -0
- package/lib/exporters/line-group.js +16 -0
- package/lib/exporters/line-group.js.map +1 -0
- package/lib/exporters/line.d.ts +3 -0
- package/lib/exporters/line.js +16 -0
- package/lib/exporters/line.js.map +1 -0
- package/lib/exporters/link.d.ts +4 -0
- package/lib/exporters/link.js +36 -0
- package/lib/exporters/link.js.map +1 -0
- package/lib/exporters/list-item.d.ts +3 -0
- package/lib/exporters/list-item.js +16 -0
- package/lib/exporters/list-item.js.map +1 -0
- package/lib/exporters/list.d.ts +3 -0
- package/lib/exporters/list.js +22 -0
- package/lib/exporters/list.js.map +1 -0
- package/lib/exporters/mantra.d.ts +3 -0
- package/lib/exporters/mantra.js +17 -0
- package/lib/exporters/mantra.js.map +1 -0
- package/lib/exporters/mention.d.ts +3 -0
- package/lib/exporters/mention.js +11 -0
- package/lib/exporters/mention.js.map +1 -0
- package/lib/exporters/paragraph.d.ts +3 -0
- package/lib/exporters/paragraph.js +22 -0
- package/lib/exporters/paragraph.js.map +1 -0
- package/lib/exporters/quote.d.ts +3 -0
- package/lib/exporters/quote.js +16 -0
- package/lib/exporters/quote.js.map +1 -0
- package/lib/exporters/span.d.ts +3 -0
- package/lib/exporters/span.js +29 -0
- package/lib/exporters/span.js.map +1 -0
- package/lib/exporters/table-body-data.d.ts +3 -0
- package/lib/exporters/table-body-data.js +16 -0
- package/lib/exporters/table-body-data.js.map +1 -0
- package/lib/exporters/table-body-header.d.ts +3 -0
- package/lib/exporters/table-body-header.js +16 -0
- package/lib/exporters/table-body-header.js.map +1 -0
- package/lib/exporters/table-body-row.d.ts +3 -0
- package/lib/exporters/table-body-row.js +16 -0
- package/lib/exporters/table-body-row.js.map +1 -0
- package/lib/exporters/table.d.ts +3 -0
- package/lib/exporters/table.js +16 -0
- package/lib/exporters/table.js.map +1 -0
- package/lib/exporters/trailer.d.ts +3 -0
- package/lib/exporters/trailer.js +16 -0
- package/lib/exporters/trailer.js.map +1 -0
- package/lib/exporters/util.d.ts +3 -0
- package/lib/exporters/util.js +49 -0
- package/lib/exporters/util.js.map +1 -0
- package/lib/passage.d.ts +10 -0
- package/lib/passage.js +153 -0
- package/lib/passage.js.map +1 -0
- package/lib/titles.d.ts +3 -0
- package/lib/titles.js +70 -0
- package/lib/titles.js.map +1 -0
- package/lib/transformers/abbreviation.d.ts +2 -0
- package/lib/transformers/abbreviation.js +17 -0
- package/lib/transformers/abbreviation.js.map +1 -0
- package/lib/transformers/annotate.d.ts +8 -0
- package/lib/transformers/annotate.js +98 -0
- package/lib/transformers/annotate.js.map +1 -0
- package/lib/transformers/audio.d.ts +2 -0
- package/lib/transformers/audio.js +17 -0
- package/lib/transformers/audio.js.map +1 -0
- package/lib/transformers/blockquote.d.ts +2 -0
- package/lib/transformers/blockquote.js +27 -0
- package/lib/transformers/blockquote.js.map +1 -0
- package/lib/transformers/code.d.ts +2 -0
- package/lib/transformers/code.js +13 -0
- package/lib/transformers/code.js.map +1 -0
- package/lib/transformers/deprecated.d.ts +2 -0
- package/lib/transformers/deprecated.js +4 -0
- package/lib/transformers/deprecated.js.map +1 -0
- package/lib/transformers/end-note-link.d.ts +2 -0
- package/lib/transformers/end-note-link.js +54 -0
- package/lib/transformers/end-note-link.js.map +1 -0
- package/lib/transformers/glossary-instance.d.ts +2 -0
- package/lib/transformers/glossary-instance.js +28 -0
- package/lib/transformers/glossary-instance.js.map +1 -0
- package/lib/transformers/has-abbreviation.d.ts +2 -0
- package/lib/transformers/has-abbreviation.js +22 -0
- package/lib/transformers/has-abbreviation.js.map +1 -0
- package/lib/transformers/heading.d.ts +2 -0
- package/lib/transformers/heading.js +19 -0
- package/lib/transformers/heading.js.map +1 -0
- package/lib/transformers/image.d.ts +2 -0
- package/lib/transformers/image.js +16 -0
- package/lib/transformers/image.js.map +1 -0
- package/lib/transformers/indent.d.ts +2 -0
- package/lib/transformers/indent.js +8 -0
- package/lib/transformers/indent.js.map +1 -0
- package/lib/transformers/index.js +34 -0
- package/lib/transformers/index.js.map +1 -0
- package/lib/transformers/inline-title.d.ts +2 -0
- package/lib/transformers/inline-title.js +21 -0
- package/lib/transformers/inline-title.js.map +1 -0
- package/lib/transformers/internal-link.d.ts +2 -0
- package/lib/transformers/internal-link.js +37 -0
- package/lib/transformers/internal-link.js.map +1 -0
- package/lib/transformers/italic.d.ts +2 -0
- package/lib/transformers/italic.js +13 -0
- package/lib/transformers/italic.js.map +1 -0
- package/lib/transformers/leading-space.d.ts +2 -0
- package/lib/transformers/leading-space.js +8 -0
- package/lib/transformers/leading-space.js.map +1 -0
- package/lib/transformers/line-group.d.ts +2 -0
- package/lib/transformers/line-group.js +24 -0
- package/lib/transformers/line-group.js.map +1 -0
- package/lib/transformers/line.d.ts +2 -0
- package/lib/transformers/line.js +15 -0
- package/lib/transformers/line.js.map +1 -0
- package/lib/transformers/link.d.ts +2 -0
- package/lib/transformers/link.js +16 -0
- package/lib/transformers/link.js.map +1 -0
- package/lib/transformers/list-item.d.ts +2 -0
- package/lib/transformers/list-item.js +24 -0
- package/lib/transformers/list-item.js.map +1 -0
- package/lib/transformers/list.d.ts +2 -0
- package/lib/transformers/list.js +27 -0
- package/lib/transformers/list.js.map +1 -0
- package/lib/transformers/mantra.d.ts +2 -0
- package/lib/transformers/mantra.js +16 -0
- package/lib/transformers/mantra.js.map +1 -0
- package/lib/transformers/mention.d.ts +2 -0
- package/lib/transformers/mention.js +45 -0
- package/lib/transformers/mention.js.map +1 -0
- package/lib/transformers/paragraph.d.ts +2 -0
- package/lib/transformers/paragraph.js +13 -0
- package/lib/transformers/paragraph.js.map +1 -0
- package/lib/transformers/quote.d.ts +1 -0
- package/lib/transformers/quote.js +3 -0
- package/lib/transformers/quote.js.map +1 -0
- package/lib/transformers/quoted.d.ts +1 -0
- package/lib/transformers/quoted.js +3 -0
- package/lib/transformers/quoted.js.map +1 -0
- package/lib/transformers/recurse.d.ts +13 -0
- package/lib/transformers/recurse.js +54 -0
- package/lib/transformers/recurse.js.map +1 -0
- package/lib/transformers/reference.d.ts +1 -0
- package/lib/transformers/reference.js +3 -0
- package/lib/transformers/reference.js.map +1 -0
- package/lib/transformers/span.d.ts +2 -0
- package/lib/transformers/span.js +54 -0
- package/lib/transformers/span.js.map +1 -0
- package/lib/transformers/split-at.d.ts +5 -0
- package/lib/transformers/split-at.js +41 -0
- package/lib/transformers/split-at.js.map +1 -0
- package/lib/transformers/split-block.d.ts +2 -0
- package/lib/transformers/split-block.js +55 -0
- package/lib/transformers/split-block.js.map +1 -0
- package/lib/transformers/split-content.d.ts +2 -0
- package/lib/transformers/split-content.js +44 -0
- package/lib/transformers/split-content.js.map +1 -0
- package/lib/transformers/split-insert.d.ts +5 -0
- package/lib/transformers/split-insert.js +54 -0
- package/lib/transformers/split-insert.js.map +1 -0
- package/lib/transformers/split-marks.d.ts +19 -0
- package/lib/transformers/split-marks.js +15 -0
- package/lib/transformers/split-marks.js.map +1 -0
- package/lib/transformers/split-node.d.ts +14 -0
- package/lib/transformers/split-node.js +81 -0
- package/lib/transformers/split-node.js.map +1 -0
- package/lib/transformers/table-body-data.d.ts +2 -0
- package/lib/transformers/table-body-data.js +16 -0
- package/lib/transformers/table-body-data.js.map +1 -0
- package/lib/transformers/table-body-header.d.ts +2 -0
- package/lib/transformers/table-body-header.js +16 -0
- package/lib/transformers/table-body-header.js.map +1 -0
- package/lib/transformers/table-body-row.d.ts +2 -0
- package/lib/transformers/table-body-row.js +16 -0
- package/lib/transformers/table-body-row.js.map +1 -0
- package/lib/transformers/table.d.ts +2 -0
- package/lib/transformers/table.js +16 -0
- package/lib/transformers/table.js.map +1 -0
- package/lib/transformers/trailer.d.ts +2 -0
- package/lib/transformers/trailer.js +13 -0
- package/lib/transformers/trailer.js.map +1 -0
- package/lib/transformers/transformer.d.ts +15 -0
- package/lib/transformers/transformer.js +4 -0
- package/lib/transformers/transformer.js.map +1 -0
- package/lib/transformers/unknown.d.ts +2 -0
- package/lib/transformers/unknown.js +5 -0
- package/lib/transformers/unknown.js.map +1 -0
- package/lib/transformers/util.d.ts +3 -0
- package/lib/transformers/util.js +17 -0
- package/lib/transformers/util.js.map +1 -0
- package/lib/types.d.ts +2 -0
- package/lib/types.js +9 -0
- package/lib/types.js.map +1 -0
- package/package.json +54 -8
- package/ssr.js +2 -0
- package/ssr.js.map +1 -0
- package/.babelrc +0 -12
- package/.eslintrc.json +0 -18
- package/README.md +0 -9
- package/jest.config.ts +0 -10
- package/postcss.config.mjs +0 -9
- package/project.json +0 -29
- package/src/fixtures/basic/json.ts +0 -396
- package/src/fixtures/toh251/json.ts +0 -4913
- package/src/fixtures/toh251/passages.ts +0 -2814
- package/src/fixtures/types.ts +0 -8
- package/src/lib/block.ts +0 -226
- package/src/lib/components/editor/BlockEditor.tsx +0 -38
- package/src/lib/components/editor/EditorBackMatterPage.tsx +0 -95
- package/src/lib/components/editor/EditorBodyPage.tsx +0 -87
- package/src/lib/components/editor/EditorHeader.tsx +0 -22
- package/src/lib/components/editor/EditorLayout.tsx +0 -62
- package/src/lib/components/editor/EditorLeftPanelPage.tsx +0 -27
- package/src/lib/components/editor/EditorProvider.tsx +0 -399
- package/src/lib/components/editor/PaginationProvider.tsx +0 -472
- package/src/lib/components/editor/TitlesBuilder.tsx +0 -40
- package/src/lib/components/editor/TranslationBuilder.tsx +0 -171
- package/src/lib/components/editor/TranslationEditor.tsx +0 -32
- package/src/lib/components/editor/extensions/Abbreviation/Abbreviation.ts +0 -133
- package/src/lib/components/editor/extensions/Audio/Audio.ts +0 -69
- package/src/lib/components/editor/extensions/Bold.ts +0 -43
- package/src/lib/components/editor/extensions/Document.ts +0 -8
- package/src/lib/components/editor/extensions/DragHandle/DragHandle.ts +0 -429
- package/src/lib/components/editor/extensions/EndNoteLink/EndNoteLink.tsx +0 -39
- package/src/lib/components/editor/extensions/EndNoteLink/EndNoteLinkHoverContent.tsx +0 -139
- package/src/lib/components/editor/extensions/EndNoteLink/EndNoteLinkMark.ts +0 -236
- package/src/lib/components/editor/extensions/EndNoteLink/endnote-utils.ts +0 -412
- package/src/lib/components/editor/extensions/GlobalConfig.ts +0 -52
- package/src/lib/components/editor/extensions/GlossaryInstance/GlossaryInput.tsx +0 -54
- package/src/lib/components/editor/extensions/GlossaryInstance/GlossaryInstance.tsx +0 -129
- package/src/lib/components/editor/extensions/GlossaryInstance/GlossaryInstanceNode.ts +0 -148
- package/src/lib/components/editor/extensions/Heading/Heading.ts +0 -71
- package/src/lib/components/editor/extensions/HoverInputField.tsx +0 -54
- package/src/lib/components/editor/extensions/Image.ts +0 -18
- package/src/lib/components/editor/extensions/Indent.ts +0 -103
- package/src/lib/components/editor/extensions/InternalLink/InternalLink.ts +0 -173
- package/src/lib/components/editor/extensions/InternalLink/InternalLinkHoverContent.tsx +0 -137
- package/src/lib/components/editor/extensions/InternalLink/InternalLinkInput.tsx +0 -71
- package/src/lib/components/editor/extensions/Italic.ts +0 -50
- package/src/lib/components/editor/extensions/LeadingSpace.ts +0 -106
- package/src/lib/components/editor/extensions/Line/LineNode.ts +0 -41
- package/src/lib/components/editor/extensions/LineGroup/LineGroupNode.ts +0 -124
- package/src/lib/components/editor/extensions/Link/Link.ts +0 -65
- package/src/lib/components/editor/extensions/Link/LinkHoverContent.tsx +0 -124
- package/src/lib/components/editor/extensions/List.ts +0 -74
- package/src/lib/components/editor/extensions/Mantra/Mantra.ts +0 -88
- package/src/lib/components/editor/extensions/Mention/Mention.ts +0 -184
- package/src/lib/components/editor/extensions/Mention/MentionHoverContent.tsx +0 -158
- package/src/lib/components/editor/extensions/NodeWrapper.tsx +0 -57
- package/src/lib/components/editor/extensions/Paragraph/Paragraph.ts +0 -25
- package/src/lib/components/editor/extensions/ParagraphIndent.ts +0 -87
- package/src/lib/components/editor/extensions/Passage/EditLabel.tsx +0 -57
- package/src/lib/components/editor/extensions/Passage/EditorOptions.tsx +0 -29
- package/src/lib/components/editor/extensions/Passage/Passage.tsx +0 -238
- package/src/lib/components/editor/extensions/Passage/PassageNode.ts +0 -223
- package/src/lib/components/editor/extensions/Passage/ReaderOptions.tsx +0 -55
- package/src/lib/components/editor/extensions/Passage/ShowAnnotations.tsx +0 -92
- package/src/lib/components/editor/extensions/Passage/label.spec.ts +0 -118
- package/src/lib/components/editor/extensions/Passage/label.ts +0 -39
- package/src/lib/components/editor/extensions/Placeholder.ts +0 -9
- package/src/lib/components/editor/extensions/SlashCommand/SlashCommand.ts +0 -65
- package/src/lib/components/editor/extensions/SlashCommand/SuggestionList.tsx +0 -109
- package/src/lib/components/editor/extensions/SlashCommand/Suggestions.ts +0 -185
- package/src/lib/components/editor/extensions/SmallCaps.ts +0 -110
- package/src/lib/components/editor/extensions/StarterKit.ts +0 -36
- package/src/lib/components/editor/extensions/Subscript.ts +0 -43
- package/src/lib/components/editor/extensions/Superscript.ts +0 -43
- package/src/lib/components/editor/extensions/Table.ts +0 -32
- package/src/lib/components/editor/extensions/TextAlign.ts +0 -5
- package/src/lib/components/editor/extensions/TitleMetadata.ts +0 -40
- package/src/lib/components/editor/extensions/TitleNode.ts +0 -133
- package/src/lib/components/editor/extensions/TitlesNode.ts +0 -102
- package/src/lib/components/editor/extensions/Trailer.ts +0 -57
- package/src/lib/components/editor/extensions/TranslationDocument.ts +0 -7
- package/src/lib/components/editor/extensions/TranslationMetadata.ts +0 -58
- package/src/lib/components/editor/extensions/Underline.ts +0 -43
- package/src/lib/components/editor/hooks/useBlockEditor.ts +0 -53
- package/src/lib/components/editor/hooks/useDefaultExtensions.ts +0 -39
- package/src/lib/components/editor/hooks/useDirtyStore.ts +0 -33
- package/src/lib/components/editor/hooks/useTranslationExtensions.ts +0 -148
- package/src/lib/components/editor/menus/EmptyBubbleMenu.tsx +0 -42
- package/src/lib/components/editor/menus/MainBubbleMenu.tsx +0 -51
- package/src/lib/components/editor/menus/TranslationBubbleMenu.tsx +0 -57
- package/src/lib/components/editor/menus/selectors/EndNoteSelector.tsx +0 -388
- package/src/lib/components/editor/menus/selectors/GlossarySelector.tsx +0 -63
- package/src/lib/components/editor/menus/selectors/LinkSelector.tsx +0 -68
- package/src/lib/components/editor/menus/selectors/MantraSelector.tsx +0 -119
- package/src/lib/components/editor/menus/selectors/NodeSelector.tsx +0 -144
- package/src/lib/components/editor/menus/selectors/ParagraphButtons.tsx +0 -68
- package/src/lib/components/editor/menus/selectors/SelectorInputField.tsx +0 -68
- package/src/lib/components/editor/menus/selectors/TextAlignSelector.tsx +0 -89
- package/src/lib/components/editor/menus/selectors/TextButtons.tsx +0 -89
- package/src/lib/components/editor/menus/selectors/TranslationNodeSelector.tsx +0 -143
- package/src/lib/components/editor/menus/selectors/TranslationTextButtons.tsx +0 -125
- package/src/lib/components/editor/save-filter.spec.ts +0 -94
- package/src/lib/components/editor/save-filter.ts +0 -27
- package/src/lib/components/editor/util.ts +0 -304
- package/src/lib/components/reader/ReaderBackMatterPage.tsx +0 -62
- package/src/lib/components/reader/ReaderBackMatterPanel.tsx +0 -53
- package/src/lib/components/reader/ReaderBodyPage.tsx +0 -46
- package/src/lib/components/reader/ReaderBodyPanel.tsx +0 -68
- package/src/lib/components/reader/ReaderLayout.tsx +0 -39
- package/src/lib/components/reader/ReaderLeftPanel.tsx +0 -8
- package/src/lib/components/reader/ReaderLeftPanelPage.tsx +0 -31
- package/src/lib/components/reader/TranslationReader.tsx +0 -28
- package/src/lib/components/shared/AiSummarizerPage.tsx +0 -12
- package/src/lib/components/shared/BackMatterPanel.tsx +0 -143
- package/src/lib/components/shared/BodyPanel.tsx +0 -214
- package/src/lib/components/shared/HoverCardProvider.tsx +0 -407
- package/src/lib/components/shared/Imprint.tsx +0 -24
- package/src/lib/components/shared/LabeledElement.tsx +0 -133
- package/src/lib/components/shared/LeftPanel.tsx +0 -65
- package/src/lib/components/shared/NavigationContext.ts +0 -64
- package/src/lib/components/shared/NavigationProvider.tsx +0 -368
- package/src/lib/components/shared/OpenGraphImage.tsx +0 -75
- package/src/lib/components/shared/PassageSkeleton.tsx +0 -10
- package/src/lib/components/shared/RestrictionWarning.tsx +0 -177
- package/src/lib/components/shared/SourceReader.tsx +0 -83
- package/src/lib/components/shared/SuggestRevisionForm.tsx +0 -99
- package/src/lib/components/shared/TableOfContents.tsx +0 -280
- package/src/lib/components/shared/ThreeColumnRenderer.tsx +0 -54
- package/src/lib/components/shared/TranslationHeader.tsx +0 -86
- package/src/lib/components/shared/TranslationHoverCard.tsx +0 -84
- package/src/lib/components/shared/TranslationSkeleton.tsx +0 -16
- package/src/lib/components/shared/TranslationTable.tsx +0 -155
- package/src/lib/components/shared/bibliography/BibliographyBody.tsx +0 -28
- package/src/lib/components/shared/bibliography/BibliographyList.tsx +0 -63
- package/src/lib/components/shared/generate-metadata.ts +0 -44
- package/src/lib/components/shared/glossary/GlossaryInstanceBody.tsx +0 -144
- package/src/lib/components/shared/glossary/GlossaryPaginationProvider.tsx +0 -317
- package/src/lib/components/shared/glossary/GlossarySkeleton.tsx +0 -19
- package/src/lib/components/shared/glossary/GlossaryTermList.tsx +0 -58
- package/src/lib/components/shared/hooks/useGlossaryInstanceListener.tsx +0 -42
- package/src/lib/components/shared/hooks/useScrollInTab.tsx +0 -43
- package/src/lib/components/shared/hooks/useScrollPositionRestore.ts +0 -274
- package/src/lib/components/shared/hooks/useTohToggle.tsx +0 -52
- package/src/lib/components/shared/titles/FramedCard.tsx +0 -132
- package/src/lib/components/shared/titles/LongTitle.tsx +0 -20
- package/src/lib/components/shared/titles/LongTitles.tsx +0 -28
- package/src/lib/components/shared/titles/Title.tsx +0 -54
- package/src/lib/components/shared/titles/TitleDetails.tsx +0 -47
- package/src/lib/components/shared/titles/TitleForm.tsx +0 -37
- package/src/lib/components/shared/titles/Titles.tsx +0 -114
- package/src/lib/components/shared/titles/TitlesCard.tsx +0 -113
- package/src/lib/components/shared/types.ts +0 -79
- package/src/lib/exporters/abbreviation.spec.ts +0 -31
- package/src/lib/exporters/abbreviation.ts +0 -22
- package/src/lib/exporters/annotation.ts +0 -193
- package/src/lib/exporters/audio.spec.ts +0 -77
- package/src/lib/exporters/audio.ts +0 -27
- package/src/lib/exporters/blockquote.spec.ts +0 -48
- package/src/lib/exporters/blockquote.ts +0 -24
- package/src/lib/exporters/code.spec.ts +0 -93
- package/src/lib/exporters/code.ts +0 -26
- package/src/lib/exporters/end-note-link.spec.ts +0 -104
- package/src/lib/exporters/end-note-link.ts +0 -35
- package/src/lib/exporters/export.ts +0 -12
- package/src/lib/exporters/glossary-instance.spec.ts +0 -85
- package/src/lib/exporters/glossary-instance.ts +0 -31
- package/src/lib/exporters/has-abbreviation.spec.ts +0 -31
- package/src/lib/exporters/has-abbreviation.ts +0 -21
- package/src/lib/exporters/heading.spec.ts +0 -80
- package/src/lib/exporters/heading.ts +0 -28
- package/src/lib/exporters/image.spec.ts +0 -48
- package/src/lib/exporters/image.ts +0 -25
- package/src/lib/exporters/indent.spec.ts +0 -58
- package/src/lib/exporters/indent.ts +0 -18
- package/src/lib/exporters/internal-link.spec.ts +0 -90
- package/src/lib/exporters/internal-link.ts +0 -35
- package/src/lib/exporters/italic.spec.ts +0 -84
- package/src/lib/exporters/italic.ts +0 -55
- package/src/lib/exporters/leading-space.spec.ts +0 -28
- package/src/lib/exporters/leading-space.ts +0 -16
- package/src/lib/exporters/line-group.spec.ts +0 -48
- package/src/lib/exporters/line-group.ts +0 -24
- package/src/lib/exporters/line.spec.ts +0 -48
- package/src/lib/exporters/line.ts +0 -24
- package/src/lib/exporters/link.spec.ts +0 -123
- package/src/lib/exporters/link.ts +0 -67
- package/src/lib/exporters/list-item.spec.ts +0 -48
- package/src/lib/exporters/list-item.ts +0 -24
- package/src/lib/exporters/list.spec.ts +0 -82
- package/src/lib/exporters/list.ts +0 -31
- package/src/lib/exporters/mantra.spec.ts +0 -51
- package/src/lib/exporters/mantra.ts +0 -25
- package/src/lib/exporters/mention.ts +0 -41
- package/src/lib/exporters/paragraph.spec.ts +0 -173
- package/src/lib/exporters/paragraph.ts +0 -32
- package/src/lib/exporters/quote.spec.ts +0 -56
- package/src/lib/exporters/quote.ts +0 -25
- package/src/lib/exporters/span.spec.ts +0 -118
- package/src/lib/exporters/span.ts +0 -44
- package/src/lib/exporters/table-body-data.spec.ts +0 -48
- package/src/lib/exporters/table-body-data.ts +0 -24
- package/src/lib/exporters/table-body-header.spec.ts +0 -48
- package/src/lib/exporters/table-body-header.ts +0 -24
- package/src/lib/exporters/table-body-row.spec.ts +0 -48
- package/src/lib/exporters/table-body-row.ts +0 -24
- package/src/lib/exporters/table.spec.ts +0 -48
- package/src/lib/exporters/table.ts +0 -24
- package/src/lib/exporters/trailer.spec.ts +0 -48
- package/src/lib/exporters/trailer.ts +0 -24
- package/src/lib/exporters/util.ts +0 -62
- package/src/lib/passage.ts +0 -182
- package/src/lib/titles.ts +0 -80
- package/src/lib/transformers/abbreviation.spec.ts +0 -87
- package/src/lib/transformers/abbreviation.ts +0 -30
- package/src/lib/transformers/annotate.ts +0 -146
- package/src/lib/transformers/audio.spec.ts +0 -55
- package/src/lib/transformers/audio.ts +0 -29
- package/src/lib/transformers/blockquote.spec.ts +0 -48
- package/src/lib/transformers/blockquote.ts +0 -41
- package/src/lib/transformers/code.spec.ts +0 -52
- package/src/lib/transformers/code.ts +0 -22
- package/src/lib/transformers/deprecated.ts +0 -7
- package/src/lib/transformers/end-note-link.spec.ts +0 -56
- package/src/lib/transformers/end-note-link.ts +0 -76
- package/src/lib/transformers/glossary-instance.spec.ts +0 -55
- package/src/lib/transformers/glossary-instance.ts +0 -40
- package/src/lib/transformers/has-abbreviation.spec.ts +0 -50
- package/src/lib/transformers/has-abbreviation.ts +0 -30
- package/src/lib/transformers/heading.spec.ts +0 -62
- package/src/lib/transformers/heading.ts +0 -30
- package/src/lib/transformers/image.spec.ts +0 -51
- package/src/lib/transformers/image.ts +0 -28
- package/src/lib/transformers/indent.spec.ts +0 -53
- package/src/lib/transformers/indent.ts +0 -17
- package/src/lib/transformers/inline-title.spec.ts +0 -59
- package/src/lib/transformers/inline-title.ts +0 -34
- package/src/lib/transformers/internal-link.spec.ts +0 -67
- package/src/lib/transformers/internal-link.ts +0 -65
- package/src/lib/transformers/italic.ts +0 -22
- package/src/lib/transformers/leading-space.spec.ts +0 -55
- package/src/lib/transformers/leading-space.ts +0 -17
- package/src/lib/transformers/line-group.spec.ts +0 -48
- package/src/lib/transformers/line-group.ts +0 -37
- package/src/lib/transformers/line.spec.ts +0 -54
- package/src/lib/transformers/line.ts +0 -27
- package/src/lib/transformers/link.spec.ts +0 -61
- package/src/lib/transformers/link.ts +0 -27
- package/src/lib/transformers/list-item.spec.ts +0 -48
- package/src/lib/transformers/list-item.ts +0 -37
- package/src/lib/transformers/list.spec.ts +0 -58
- package/src/lib/transformers/list.ts +0 -42
- package/src/lib/transformers/mantra.spec.ts +0 -58
- package/src/lib/transformers/mantra.ts +0 -28
- package/src/lib/transformers/mention.ts +0 -70
- package/src/lib/transformers/paragraph.spec.ts +0 -46
- package/src/lib/transformers/paragraph.ts +0 -26
- package/src/lib/transformers/quote.spec.ts +0 -42
- package/src/lib/transformers/quote.ts +0 -3
- package/src/lib/transformers/quoted.ts +0 -3
- package/src/lib/transformers/recurse.ts +0 -76
- package/src/lib/transformers/reference.ts +0 -3
- package/src/lib/transformers/span.spec.ts +0 -68
- package/src/lib/transformers/span.ts +0 -78
- package/src/lib/transformers/split-at.ts +0 -58
- package/src/lib/transformers/split-block.ts +0 -110
- package/src/lib/transformers/split-content.ts +0 -67
- package/src/lib/transformers/split-insert.ts +0 -76
- package/src/lib/transformers/split-marks.ts +0 -42
- package/src/lib/transformers/split-node.ts +0 -138
- package/src/lib/transformers/table-body-data.spec.ts +0 -44
- package/src/lib/transformers/table-body-data.ts +0 -29
- package/src/lib/transformers/table-body-header.spec.ts +0 -44
- package/src/lib/transformers/table-body-header.ts +0 -29
- package/src/lib/transformers/table-body-row.spec.ts +0 -44
- package/src/lib/transformers/table-body-row.ts +0 -29
- package/src/lib/transformers/table.spec.ts +0 -47
- package/src/lib/transformers/table.ts +0 -29
- package/src/lib/transformers/trailer.spec.ts +0 -43
- package/src/lib/transformers/trailer.ts +0 -26
- package/src/lib/transformers/transformer.ts +0 -25
- package/src/lib/transformers/unknown.ts +0 -8
- package/src/lib/transformers/util.ts +0 -20
- package/src/lib/types.ts +0 -10
- package/tsconfig.json +0 -20
- package/tsconfig.lib.json +0 -29
- package/tsconfig.spec.json +0 -22
- /package/{src/index.ts → index.d.ts} +0 -0
- /package/{src/lib/components/editor/extensions/InternalLink/index.ts → lib/components/editor/extensions/InternalLink/index.d.ts} +0 -0
- /package/{src/lib/components/editor/extensions/Link/index.ts → lib/components/editor/extensions/Link/index.d.ts} +0 -0
- /package/{src/lib/components/editor/extensions/Passage/index.ts → lib/components/editor/extensions/Passage/index.d.ts} +0 -0
- /package/{src/lib/components/editor/hooks/index.ts → lib/components/editor/hooks/index.d.ts} +0 -0
- /package/{src/lib/components/editor/index.ts → lib/components/editor/index.d.ts} +0 -0
- /package/{src/lib/components/editor/menus/index.ts → lib/components/editor/menus/index.d.ts} +0 -0
- /package/{src/lib/components/editor/menus/selectors/index.ts → lib/components/editor/menus/selectors/index.d.ts} +0 -0
- /package/{src/lib/components/index.ts → lib/components/index.d.ts} +0 -0
- /package/{src/lib/components/reader/index.ts → lib/components/reader/index.d.ts} +0 -0
- /package/{src/lib/components/reader/ssr.ts → lib/components/reader/ssr.d.ts} +0 -0
- /package/{src/lib/components/shared/bibliography/index.ts → lib/components/shared/bibliography/index.d.ts} +0 -0
- /package/{src/lib/components/shared/glossary/index.ts → lib/components/shared/glossary/index.d.ts} +0 -0
- /package/{src/lib/components/shared/index.ts → lib/components/shared/index.d.ts} +0 -0
- /package/{src/lib/components/shared/ssr.ts → lib/components/shared/ssr.d.ts} +0 -0
- /package/{src/lib/components/shared/titles/index.ts → lib/components/shared/titles/index.d.ts} +0 -0
- /package/{src/lib/components/ssr.ts → lib/components/ssr.d.ts} +0 -0
- /package/{src/lib/exporters/index.ts → lib/exporters/index.d.ts} +0 -0
- /package/{src/lib/transformers/index.ts → lib/transformers/index.d.ts} +0 -0
- /package/{src/ssr.ts → ssr.d.ts} +0 -0
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { __awaiter } from "tslib";
|
|
3
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { createContext, useContext, useRef, useState, useEffect, useMemo, } from 'react';
|
|
5
|
+
import { useBlockEditor, useTranslationExtensions } from './hooks';
|
|
6
|
+
import { createGraphQLClient, getTranslationBlocks, getTranslationBlocksAround, } from '@eightyfourthousand/client-graphql';
|
|
7
|
+
import { PassageSkeleton } from '../shared/PassageSkeleton';
|
|
8
|
+
import { isUuid, scrollToElement, useIsMobile } from '@eightyfourthousand/lib-utils';
|
|
9
|
+
import { useNavigation } from '../shared';
|
|
10
|
+
import { LotusPond, SHEET_ANIMATION_DURATION } from '@eightyfourthousand/design-system';
|
|
11
|
+
import { useEditorState } from './EditorProvider';
|
|
12
|
+
import { usePaginationLoadTriggers } from '../shared/hooks/usePaginationLoadTriggers';
|
|
13
|
+
const LOADING_SKELETONS_COUNT = 3;
|
|
14
|
+
const CHUNK_SIZE = 25;
|
|
15
|
+
/**
|
|
16
|
+
* Insert content in chunks with yielding to browser to prevent long frame blocking
|
|
17
|
+
*/
|
|
18
|
+
const insertContentChunked = (editor, pos, content) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
|
+
if (!Array.isArray(content) || content.length <= CHUNK_SIZE) {
|
|
20
|
+
// Small content - insert all at once
|
|
21
|
+
editor.commands.insertContentAt(pos, content);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
// Insert in chunks to avoid blocking the main thread
|
|
25
|
+
for (let i = 0; i < content.length; i += CHUNK_SIZE) {
|
|
26
|
+
const chunk = content.slice(i, i + CHUNK_SIZE);
|
|
27
|
+
const insertPos = i === 0 ? pos : editor.state.doc.content.size;
|
|
28
|
+
editor.commands.insertContentAt(insertPos, chunk);
|
|
29
|
+
// Yield to browser between chunks (except after last chunk)
|
|
30
|
+
if (i + CHUNK_SIZE < content.length) {
|
|
31
|
+
yield new Promise((resolve) => requestAnimationFrame(resolve));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
export const PaginationContext = createContext({});
|
|
36
|
+
export const PaginationProvider = ({ uuid, filter, panel, tab, content, fragment, isEditable = true, onCreate, children, }) => {
|
|
37
|
+
var _a, _b, _c, _d, _e, _f;
|
|
38
|
+
const initialEndCursor = Array.isArray(content)
|
|
39
|
+
? (_b = (_a = content.at(-1)) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b.uuid
|
|
40
|
+
: (_c = content === null || content === void 0 ? void 0 : content.attrs) === null || _c === void 0 ? void 0 : _c.uuid;
|
|
41
|
+
const { setNavigating } = useEditorState();
|
|
42
|
+
const [startCursor, setStartCursor] = useState();
|
|
43
|
+
const [endCursor, setEndCursor] = useState(initialEndCursor || undefined);
|
|
44
|
+
const [navCursor, setNavCursor] = useState();
|
|
45
|
+
const processedNavCursorRef = useRef(undefined);
|
|
46
|
+
const isNavigatingRef = useRef(false);
|
|
47
|
+
const [startIsLoading, setStartIsLoading] = useState(false);
|
|
48
|
+
const [endIsLoading, setEndIsLoading] = useState(true);
|
|
49
|
+
const [isEditorReady, setIsEditorReady] = useState(false);
|
|
50
|
+
const childrenDivRef = useRef(null);
|
|
51
|
+
const handledStartLoadRequestRef = useRef(0);
|
|
52
|
+
const handledEndLoadRequestRef = useRef(0);
|
|
53
|
+
const dataClient = useMemo(() => createGraphQLClient(), []);
|
|
54
|
+
const { panels, updatePanel, setShowOuterContent } = useNavigation();
|
|
55
|
+
const isMobile = useIsMobile();
|
|
56
|
+
// Extract hash as a primitive value so we only react to actual hash changes,
|
|
57
|
+
// not to every panels object reference change.
|
|
58
|
+
// When a `tab` is specified, only accept the hash when the panel's active tab
|
|
59
|
+
// matches — this prevents a PaginationProvider for one tab (e.g. endnotes)
|
|
60
|
+
// from reacting to hashes set by a different tab (e.g. glossary).
|
|
61
|
+
const panelHash = !tab || ((_d = panels[panel]) === null || _d === void 0 ? void 0 : _d.tab) === tab || (tab === 'translation' && ((_e = panels[panel]) === null || _e === void 0 ? void 0 : _e.tab) === 'compare')
|
|
62
|
+
? (_f = panels[panel]) === null || _f === void 0 ? void 0 : _f.hash
|
|
63
|
+
: undefined;
|
|
64
|
+
const { extensions } = useTranslationExtensions({
|
|
65
|
+
fragment,
|
|
66
|
+
});
|
|
67
|
+
const { editor } = useBlockEditor({
|
|
68
|
+
extensions,
|
|
69
|
+
content,
|
|
70
|
+
isEditable,
|
|
71
|
+
onCreate: ({ editor }) => {
|
|
72
|
+
setEndIsLoading(false);
|
|
73
|
+
setIsEditorReady(true);
|
|
74
|
+
onCreate === null || onCreate === void 0 ? void 0 : onCreate({ editor });
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
const { loadMoreAtStartRef, loadMoreAtEndRef, startLoadRequest, endLoadRequest, } = usePaginationLoadTriggers({
|
|
78
|
+
enabled: isEditorReady,
|
|
79
|
+
startCursor,
|
|
80
|
+
endCursor,
|
|
81
|
+
startIsLoading,
|
|
82
|
+
endIsLoading,
|
|
83
|
+
});
|
|
84
|
+
useEffect(() => {
|
|
85
|
+
setShowOuterContent(!startCursor);
|
|
86
|
+
}, [startCursor, setShowOuterContent]);
|
|
87
|
+
useEffect(() => {
|
|
88
|
+
const div = childrenDivRef.current;
|
|
89
|
+
if (!div) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
setNavCursor(panelHash);
|
|
93
|
+
}, [panelHash]);
|
|
94
|
+
useEffect(() => {
|
|
95
|
+
const div = childrenDivRef.current;
|
|
96
|
+
if (!div || !navCursor || startIsLoading || endIsLoading) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
// Guard: Don't re-process the same hash
|
|
100
|
+
if (processedNavCursorRef.current === navCursor) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
// Mark as processing IMMEDIATELY (synchronously) to prevent re-entry
|
|
104
|
+
// from effect re-runs while async work is in progress
|
|
105
|
+
processedNavCursorRef.current = navCursor;
|
|
106
|
+
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
107
|
+
isNavigatingRef.current = true;
|
|
108
|
+
setNavigating(true, true, fragment);
|
|
109
|
+
try {
|
|
110
|
+
// On mobile, add a delay to allow panel Sheet animation to complete
|
|
111
|
+
// before attempting to scroll to the element
|
|
112
|
+
if (isMobile) {
|
|
113
|
+
yield new Promise((resolve) => setTimeout(resolve, SHEET_ANIMATION_DURATION));
|
|
114
|
+
}
|
|
115
|
+
let element = div.querySelector(`#${CSS.escape(navCursor)}`);
|
|
116
|
+
if (!element && isUuid(navCursor)) {
|
|
117
|
+
const { blocks, hasMoreBefore, hasMoreAfter, prevCursor, nextCursor, } = yield getTranslationBlocksAround({
|
|
118
|
+
client: dataClient,
|
|
119
|
+
uuid,
|
|
120
|
+
type: filter,
|
|
121
|
+
passageUuid: navCursor,
|
|
122
|
+
});
|
|
123
|
+
// Guard: if the UUID doesn't correspond to any passages for this
|
|
124
|
+
// filter (e.g. a cross-tab UUID leaked through), bail out rather
|
|
125
|
+
// than wiping the editor with an empty setContent([]) call.
|
|
126
|
+
if (!blocks || blocks.length === 0) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
// Wait for editor to finish updating
|
|
130
|
+
yield new Promise((resolve) => {
|
|
131
|
+
const handleUpdate = () => {
|
|
132
|
+
editor === null || editor === void 0 ? void 0 : editor.off('update', handleUpdate);
|
|
133
|
+
requestAnimationFrame(() => resolve());
|
|
134
|
+
};
|
|
135
|
+
editor === null || editor === void 0 ? void 0 : editor.on('update', handleUpdate);
|
|
136
|
+
editor === null || editor === void 0 ? void 0 : editor.chain().clearContent().setContent(blocks).run();
|
|
137
|
+
});
|
|
138
|
+
setStartCursor(hasMoreBefore && prevCursor ? prevCursor : undefined);
|
|
139
|
+
setEndCursor(hasMoreAfter && nextCursor ? nextCursor : undefined);
|
|
140
|
+
// Wait for React to re-render and update the DOM (remove/add skeletons)
|
|
141
|
+
// by waiting until the element's position stabilizes
|
|
142
|
+
yield new Promise((resolve) => {
|
|
143
|
+
let stabilityCount = 0;
|
|
144
|
+
let lastTop = -1;
|
|
145
|
+
const checkStability = () => {
|
|
146
|
+
const el = div.querySelector(`#${CSS.escape(navCursor)}`);
|
|
147
|
+
if (!el) {
|
|
148
|
+
requestAnimationFrame(checkStability);
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
const currentTop = el.getBoundingClientRect().top;
|
|
152
|
+
// Check if position has stabilized (same for 2 consecutive frames)
|
|
153
|
+
if (currentTop === lastTop) {
|
|
154
|
+
stabilityCount++;
|
|
155
|
+
if (stabilityCount >= 2) {
|
|
156
|
+
resolve();
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
stabilityCount = 0;
|
|
162
|
+
}
|
|
163
|
+
lastTop = currentTop;
|
|
164
|
+
requestAnimationFrame(checkStability);
|
|
165
|
+
};
|
|
166
|
+
requestAnimationFrame(checkStability);
|
|
167
|
+
});
|
|
168
|
+
element = div.querySelector(`#${CSS.escape(navCursor)}`);
|
|
169
|
+
}
|
|
170
|
+
if (!element) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
yield scrollToElement({ element });
|
|
174
|
+
updatePanel({
|
|
175
|
+
name: panel,
|
|
176
|
+
state: Object.assign(Object.assign({}, panels[panel]), { hash: undefined }),
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
console.error('Navigation failed:', error);
|
|
181
|
+
}
|
|
182
|
+
finally {
|
|
183
|
+
isNavigatingRef.current = false;
|
|
184
|
+
setNavigating(false);
|
|
185
|
+
}
|
|
186
|
+
}))();
|
|
187
|
+
}, [
|
|
188
|
+
panel,
|
|
189
|
+
uuid,
|
|
190
|
+
filter,
|
|
191
|
+
navCursor,
|
|
192
|
+
startIsLoading,
|
|
193
|
+
endIsLoading,
|
|
194
|
+
// Intentionally excluding `panels` - we only read its current value when clearing hash.
|
|
195
|
+
// Including it causes infinite loops since updatePanel() creates a new panels object.
|
|
196
|
+
editor,
|
|
197
|
+
dataClient,
|
|
198
|
+
updatePanel,
|
|
199
|
+
isMobile,
|
|
200
|
+
]);
|
|
201
|
+
useEffect(() => {
|
|
202
|
+
return () => {
|
|
203
|
+
editor === null || editor === void 0 ? void 0 : editor.destroy();
|
|
204
|
+
};
|
|
205
|
+
}, [editor]);
|
|
206
|
+
useEffect(() => {
|
|
207
|
+
if (endLoadRequest === 0 ||
|
|
208
|
+
handledEndLoadRequestRef.current === endLoadRequest ||
|
|
209
|
+
endIsLoading ||
|
|
210
|
+
!endCursor ||
|
|
211
|
+
isNavigatingRef.current) {
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
handledEndLoadRequestRef.current = endLoadRequest;
|
|
215
|
+
setEndIsLoading(true);
|
|
216
|
+
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
217
|
+
var _a;
|
|
218
|
+
const { blocks, hasMoreAfter: hasMore, nextCursor, } = yield getTranslationBlocks({
|
|
219
|
+
client: dataClient,
|
|
220
|
+
uuid,
|
|
221
|
+
type: filter,
|
|
222
|
+
cursor: endCursor,
|
|
223
|
+
});
|
|
224
|
+
const pos = (_a = editor === null || editor === void 0 ? void 0 : editor.state.doc) === null || _a === void 0 ? void 0 : _a.content.size;
|
|
225
|
+
if (pos >= 0 && blocks.length && editor) {
|
|
226
|
+
setNavigating(true);
|
|
227
|
+
yield insertContentChunked(editor, pos, blocks);
|
|
228
|
+
setNavigating(false);
|
|
229
|
+
}
|
|
230
|
+
setEndCursor(hasMore && nextCursor ? nextCursor : undefined);
|
|
231
|
+
setEndIsLoading(false);
|
|
232
|
+
}))();
|
|
233
|
+
}, [
|
|
234
|
+
uuid,
|
|
235
|
+
filter,
|
|
236
|
+
endIsLoading,
|
|
237
|
+
editor,
|
|
238
|
+
endCursor,
|
|
239
|
+
dataClient,
|
|
240
|
+
endLoadRequest,
|
|
241
|
+
]);
|
|
242
|
+
useEffect(() => {
|
|
243
|
+
if (startLoadRequest === 0 ||
|
|
244
|
+
handledStartLoadRequestRef.current === startLoadRequest ||
|
|
245
|
+
startIsLoading ||
|
|
246
|
+
!startCursor ||
|
|
247
|
+
isNavigatingRef.current) {
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
handledStartLoadRequestRef.current = startLoadRequest;
|
|
251
|
+
setStartIsLoading(true);
|
|
252
|
+
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
253
|
+
var _a;
|
|
254
|
+
const { blocks, hasMoreBefore, prevCursor } = yield getTranslationBlocks({
|
|
255
|
+
client: dataClient,
|
|
256
|
+
uuid,
|
|
257
|
+
type: filter,
|
|
258
|
+
cursor: startCursor,
|
|
259
|
+
direction: 'backward',
|
|
260
|
+
});
|
|
261
|
+
const pos = 0;
|
|
262
|
+
if (blocks.length && ((_a = editor === null || editor === void 0 ? void 0 : editor.view) === null || _a === void 0 ? void 0 : _a.dom)) {
|
|
263
|
+
const editorEl = editor.view.dom;
|
|
264
|
+
const scrollContainer = editorEl.closest('[data-panel]') || editorEl.parentElement;
|
|
265
|
+
const previousScrollHeight = (scrollContainer === null || scrollContainer === void 0 ? void 0 : scrollContainer.scrollHeight) || 0;
|
|
266
|
+
const previousScrollTop = (scrollContainer === null || scrollContainer === void 0 ? void 0 : scrollContainer.scrollTop) || 0;
|
|
267
|
+
// For start insertion, insert all at once to maintain scroll position accuracy.
|
|
268
|
+
// Chunking here would cause scroll jank since we adjust scroll after insertion.
|
|
269
|
+
setNavigating(true);
|
|
270
|
+
editor.commands.insertContentAt(pos, blocks);
|
|
271
|
+
setNavigating(false);
|
|
272
|
+
requestAnimationFrame(() => {
|
|
273
|
+
const newScrollHeight = (scrollContainer === null || scrollContainer === void 0 ? void 0 : scrollContainer.scrollHeight) || 0;
|
|
274
|
+
const deltaHeight = newScrollHeight - previousScrollHeight;
|
|
275
|
+
if (scrollContainer) {
|
|
276
|
+
scrollContainer.scrollTop = previousScrollTop + deltaHeight;
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
else if (blocks.length && editor) {
|
|
281
|
+
// Fallback: insert without scroll preservation when view not ready
|
|
282
|
+
setNavigating(true);
|
|
283
|
+
editor.commands.insertContentAt(pos, blocks);
|
|
284
|
+
setNavigating(false);
|
|
285
|
+
}
|
|
286
|
+
setStartCursor(hasMoreBefore && prevCursor ? prevCursor : undefined);
|
|
287
|
+
setStartIsLoading(false);
|
|
288
|
+
}))();
|
|
289
|
+
}, [
|
|
290
|
+
uuid,
|
|
291
|
+
filter,
|
|
292
|
+
startIsLoading,
|
|
293
|
+
editor,
|
|
294
|
+
startCursor,
|
|
295
|
+
dataClient,
|
|
296
|
+
startLoadRequest,
|
|
297
|
+
]);
|
|
298
|
+
return (_jsxs(PaginationContext.Provider, { value: {
|
|
299
|
+
startCursor,
|
|
300
|
+
endCursor,
|
|
301
|
+
editor,
|
|
302
|
+
}, children: [startCursor && (_jsx("div", { className: "flex flex-col gap-4 pt-6", children: Array.from({ length: LOADING_SKELETONS_COUNT }).map((_, i) => (_jsx(PassageSkeleton, {}, i))) })), _jsx("div", { ref: loadMoreAtStartRef, className: "h-0" }), _jsx("div", { ref: childrenDivRef, children: children }), _jsx("div", { ref: loadMoreAtEndRef, className: "h-0" }), endCursor ? (_jsx("div", { className: "flex flex-col gap-4 pb-8 pt-6", children: Array.from({ length: LOADING_SKELETONS_COUNT }).map((_, i) => (_jsx(PassageSkeleton, {}, i))) })) : (_jsx("div", { className: "w-full pt-16 pb-6 @c/sidebar:pt-8", children: _jsx(LotusPond, { className: "@c/sidebar:hidden mx-auto w-96" }) }))] }));
|
|
303
|
+
};
|
|
304
|
+
export const usePagination = () => {
|
|
305
|
+
const context = useContext(PaginationContext);
|
|
306
|
+
if (!context) {
|
|
307
|
+
throw new Error('usePagination must be used within a PaginationProvider');
|
|
308
|
+
}
|
|
309
|
+
return context;
|
|
310
|
+
};
|
|
311
|
+
//# sourceMappingURL=PaginationProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaginationProvider.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/editor/PaginationProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { __awaiter } from "tslib";
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
import { useEffect, useState } from 'react';
|
|
5
|
+
import { useEditorState } from './EditorProvider';
|
|
6
|
+
import { Titles } from '../shared/titles';
|
|
7
|
+
import { TranslationSkeleton } from '../shared/TranslationSkeleton';
|
|
8
|
+
export const TitlesBuilder = ({ titles, imprint, }) => {
|
|
9
|
+
const [isEditable, setIsEditable] = useState(false);
|
|
10
|
+
const [loading, setLoading] = useState(true);
|
|
11
|
+
const { canEdit } = useEditorState();
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
const checkEditable = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
14
|
+
if (!loading) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const editable = yield canEdit();
|
|
18
|
+
setIsEditable(editable);
|
|
19
|
+
setLoading(false);
|
|
20
|
+
});
|
|
21
|
+
checkEditable();
|
|
22
|
+
}, [loading, canEdit]);
|
|
23
|
+
return !loading ? (_jsx(Titles, { titles: titles, imprint: imprint, canEdit: isEditable })) : (_jsx(TranslationSkeleton, {}));
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=TitlesBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TitlesBuilder.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/editor/TitlesBuilder.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAGb,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,MAAM,EACN,OAAO,GAIR,EAAE,EAAE;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7C,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IAErC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,aAAa,GAAG,GAAS,EAAE;YAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,OAAO,EAAE,CAAC;YAEjC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxB,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAA,CAAC;QACF,aAAa,EAAE,CAAC;IAClB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAChB,KAAC,MAAM,IAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAI,CAClE,CAAC,CAAC,CAAC,CACF,KAAC,mBAAmB,KAAG,CACxB,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { __awaiter } from "tslib";
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
import { useEffect, useRef, useState } from 'react';
|
|
5
|
+
import { useEditorState } from './EditorProvider';
|
|
6
|
+
import { TranslationEditor } from './TranslationEditor';
|
|
7
|
+
import { TranslationSkeleton, useNavigation } from '../shared';
|
|
8
|
+
import { PaginationProvider } from './PaginationProvider';
|
|
9
|
+
import { removeAllEndnoteLinksForPassage, syncEndnoteLinkLabelsAcrossEditors, } from './extensions/EndNoteLink/endnote-utils';
|
|
10
|
+
export const TranslationBuilder = ({ content, name, className, filter, panel, }) => {
|
|
11
|
+
const [fragment, setFragment] = useState();
|
|
12
|
+
const [isObserving, setIsObserving] = useState(false);
|
|
13
|
+
const [isEditable, setIsEditable] = useState(false);
|
|
14
|
+
const { canEdit, setEditor, getEditor, startObserving, getFragment, isNavigating, } = useEditorState();
|
|
15
|
+
const { uuid } = useNavigation();
|
|
16
|
+
// Track known passage UUIDs by passage type so we can detect deletions
|
|
17
|
+
// (backspace, merge, etc.) and clean up related marks in other editors.
|
|
18
|
+
// This ref is independent of the Y.js observer's knownUuidsRef, which
|
|
19
|
+
// can be cleared during navigation.
|
|
20
|
+
const passageUuidsByTypeRef = useRef({});
|
|
21
|
+
const debouncedSyncRef = useRef(undefined);
|
|
22
|
+
const pendingDeletedByTypeRef = useRef({});
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
25
|
+
const isEditable = yield canEdit();
|
|
26
|
+
setIsEditable(isEditable);
|
|
27
|
+
if (isEditable) {
|
|
28
|
+
setFragment(getFragment(name));
|
|
29
|
+
}
|
|
30
|
+
}))();
|
|
31
|
+
}, [name, canEdit, getFragment]);
|
|
32
|
+
return content && fragment ? (_jsx(PaginationProvider, { uuid: uuid, panel: panel, tab: name, filter: filter, content: content, fragment: fragment, isEditable: isEditable, onCreate: ({ editor }) => {
|
|
33
|
+
var _a;
|
|
34
|
+
editor.commands.setDebug(true);
|
|
35
|
+
setEditor(name, editor);
|
|
36
|
+
if (!isObserving) {
|
|
37
|
+
setIsObserving(true);
|
|
38
|
+
startObserving(name);
|
|
39
|
+
}
|
|
40
|
+
if (name === 'endnotes') {
|
|
41
|
+
// Initialize known passage UUIDs grouped by type
|
|
42
|
+
const byType = {};
|
|
43
|
+
const doc = editor.state.doc;
|
|
44
|
+
for (let i = 0; i < doc.childCount; i++) {
|
|
45
|
+
const child = doc.child(i);
|
|
46
|
+
if (child.type.name === 'passage' && child.attrs.uuid) {
|
|
47
|
+
const pType = child.attrs.type || 'unknown';
|
|
48
|
+
((_a = byType[pType]) !== null && _a !== void 0 ? _a : (byType[pType] = new Set())).add(child.attrs.uuid);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
passageUuidsByTypeRef.current = byType;
|
|
52
|
+
editor.on('update', () => {
|
|
53
|
+
var _a, _b;
|
|
54
|
+
var _c;
|
|
55
|
+
// Collect current passage UUIDs grouped by type (cheap)
|
|
56
|
+
const currentByType = {};
|
|
57
|
+
const doc = editor.state.doc;
|
|
58
|
+
for (let i = 0; i < doc.childCount; i++) {
|
|
59
|
+
const child = doc.child(i);
|
|
60
|
+
if (child.type.name === 'passage' && child.attrs.uuid) {
|
|
61
|
+
const pType = child.attrs.type || 'unknown';
|
|
62
|
+
((_a = currentByType[pType]) !== null && _a !== void 0 ? _a : (currentByType[pType] = new Set())).add(child.attrs.uuid);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Detect deleted and added passages per type (skip during
|
|
66
|
+
// navigation to avoid false positives from content replacement)
|
|
67
|
+
const deletedByType = {};
|
|
68
|
+
let hasAdded = false;
|
|
69
|
+
if (!isNavigating()) {
|
|
70
|
+
const prevByType = passageUuidsByTypeRef.current;
|
|
71
|
+
for (const pType of Object.keys(prevByType)) {
|
|
72
|
+
const prev = prevByType[pType];
|
|
73
|
+
const curr = currentByType[pType];
|
|
74
|
+
prev.forEach((uuid) => {
|
|
75
|
+
var _a;
|
|
76
|
+
if (!(curr === null || curr === void 0 ? void 0 : curr.has(uuid))) {
|
|
77
|
+
((_a = deletedByType[pType]) !== null && _a !== void 0 ? _a : (deletedByType[pType] = [])).push(uuid);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
if (!hasAdded) {
|
|
82
|
+
outer: for (const pType of Object.keys(currentByType)) {
|
|
83
|
+
const prev = prevByType[pType];
|
|
84
|
+
for (const uuid of currentByType[pType]) {
|
|
85
|
+
if (!(prev === null || prev === void 0 ? void 0 : prev.has(uuid))) {
|
|
86
|
+
hasAdded = true;
|
|
87
|
+
break outer;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// Always update the baseline so the next diff is accurate
|
|
94
|
+
passageUuidsByTypeRef.current = currentByType;
|
|
95
|
+
const hasDeleted = Object.keys(deletedByType).length > 0;
|
|
96
|
+
// Accumulate deletions and debounce the expensive sync work
|
|
97
|
+
// so rapid keystrokes don't trigger multiple full traversals
|
|
98
|
+
for (const [pType, uuids] of Object.entries(deletedByType)) {
|
|
99
|
+
const pending = ((_b = (_c = pendingDeletedByTypeRef.current)[pType]) !== null && _b !== void 0 ? _b : (_c[pType] = new Set()));
|
|
100
|
+
for (const uuid of uuids) {
|
|
101
|
+
pending.add(uuid);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (hasDeleted || hasAdded) {
|
|
105
|
+
if (debouncedSyncRef.current) {
|
|
106
|
+
clearTimeout(debouncedSyncRef.current);
|
|
107
|
+
}
|
|
108
|
+
debouncedSyncRef.current = setTimeout(() => {
|
|
109
|
+
const pendingEndnotes = pendingDeletedByTypeRef.current['endnotes'];
|
|
110
|
+
if (pendingEndnotes === null || pendingEndnotes === void 0 ? void 0 : pendingEndnotes.size) {
|
|
111
|
+
const frontEditor = getEditor('front');
|
|
112
|
+
const translationEditor = getEditor('translation');
|
|
113
|
+
for (const uuid of pendingEndnotes) {
|
|
114
|
+
if (frontEditor)
|
|
115
|
+
removeAllEndnoteLinksForPassage(frontEditor, uuid);
|
|
116
|
+
if (translationEditor)
|
|
117
|
+
removeAllEndnoteLinksForPassage(translationEditor, uuid);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
pendingDeletedByTypeRef.current = {};
|
|
121
|
+
syncEndnoteLinkLabelsAcrossEditors(editor, getEditor);
|
|
122
|
+
}, 150);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}, children: _jsx(TranslationEditor, { className: className }) })) : (_jsx(TranslationSkeleton, {}));
|
|
127
|
+
};
|
|
128
|
+
//# sourceMappingURL=TranslationBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TranslationBuilder.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/editor/TranslationBuilder.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { TranslationEditorContentItem, TranslationEditorContent } from '@eightyfourthousand/data-access';
|
|
2
|
+
export type { TranslationEditorContentItem, TranslationEditorContent };
|
|
3
|
+
export declare const TranslationEditor: ({ className }: {
|
|
4
|
+
className?: string;
|
|
5
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
6
|
+
export default TranslationEditor;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { EditorContent } from '@tiptap/react';
|
|
4
|
+
import { TranslationBubbleMenu } from './menus';
|
|
5
|
+
import { cn } from '@eightyfourthousand/lib-utils';
|
|
6
|
+
import { usePagination } from './PaginationProvider';
|
|
7
|
+
export const TranslationEditor = ({ className }) => {
|
|
8
|
+
const { editor } = usePagination();
|
|
9
|
+
if (!editor) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
return (_jsx("div", { className: cn('flex h-full', className), children: _jsxs("div", { className: "relative flex flex-col flex-1 h-full", children: [_jsx(EditorContent, { className: "flex-1", editor: editor }), editor.isEditable && _jsx(TranslationBubbleMenu, { editor: editor })] }) }));
|
|
13
|
+
};
|
|
14
|
+
export default TranslationEditor;
|
|
15
|
+
//# sourceMappingURL=TranslationEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TranslationEditor.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/editor/TranslationEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,MAAM,+BAA+B,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AASrD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAE,SAAS,EAA0B,EAAE,EAAE;IACzE,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;IAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,YAC1C,eAAK,SAAS,EAAC,sCAAsC,aACnD,KAAC,aAAa,IAAC,SAAS,EAAC,QAAQ,EAAC,MAAM,EAAE,MAAM,GAAI,EACnD,MAAM,CAAC,UAAU,IAAI,KAAC,qBAAqB,IAAC,MAAM,EAAE,MAAM,GAAI,IAC3D,GACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Extension, Node } from '@tiptap/core';
|
|
2
|
+
import { CommandSuggestionItem } from '../SlashCommand/SuggestionList';
|
|
3
|
+
export interface AbbreviationOptions {
|
|
4
|
+
HTMLAttributes: Record<string, unknown>;
|
|
5
|
+
}
|
|
6
|
+
declare module '@tiptap/core' {
|
|
7
|
+
interface Commands<ReturnType> {
|
|
8
|
+
abbreviationCommand: {
|
|
9
|
+
insertAbbreviation: () => ReturnType;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export declare const AbbreviationCommand: Extension<any, any>;
|
|
14
|
+
export declare const AbbreviationSuggestion: CommandSuggestionItem;
|
|
15
|
+
export declare const Abbreviation: Node<AbbreviationOptions, any>;
|
|
16
|
+
export declare const HasAbbreviation: Node<AbbreviationOptions, any>;
|