@eightyfourthousand/lib-editing 2026.6.1 → 2026.6.2
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/lib/components/editor/EditorProvider.js +1 -1
- package/lib/components/editor/EditorProvider.js.map +1 -1
- package/lib/components/editor/TranslationEditor.js +2 -1
- package/lib/components/editor/TranslationEditor.js.map +1 -1
- package/lib/components/editor/extensions/EndNoteLink/EndNoteLinkMark.js +2 -1
- package/lib/components/editor/extensions/EndNoteLink/EndNoteLinkMark.js.map +1 -1
- package/lib/components/editor/extensions/GlossaryInstance/GlossaryInstanceNode.js +4 -1
- package/lib/components/editor/extensions/GlossaryInstance/GlossaryInstanceNode.js.map +1 -1
- package/lib/components/editor/extensions/GlossaryInstance/GlossaryInstanceNode.ssr.js +3 -1
- package/lib/components/editor/extensions/GlossaryInstance/GlossaryInstanceNode.ssr.js.map +1 -1
- package/lib/components/editor/extensions/InternalLink/InternalLink.js +4 -1
- package/lib/components/editor/extensions/InternalLink/InternalLink.js.map +1 -1
- package/lib/components/editor/extensions/InternalLink/InternalLink.ssr.js +3 -1
- package/lib/components/editor/extensions/InternalLink/InternalLink.ssr.js.map +1 -1
- package/lib/components/editor/extensions/Mention/Mention.js +1 -1
- package/lib/components/editor/extensions/Mention/Mention.js.map +1 -1
- package/lib/components/editor/extensions/Mention/Mention.ssr.js +13 -3
- package/lib/components/editor/extensions/Mention/Mention.ssr.js.map +1 -1
- package/lib/components/editor/extensions/Passage/EditLabel.d.ts +5 -2
- package/lib/components/editor/extensions/Passage/EditLabel.js +5 -5
- package/lib/components/editor/extensions/Passage/EditLabel.js.map +1 -1
- package/lib/components/editor/extensions/Passage/EditorOptions.d.ts +2 -2
- package/lib/components/editor/extensions/Passage/EditorOptions.js +4 -6
- package/lib/components/editor/extensions/Passage/EditorOptions.js.map +1 -1
- package/lib/components/editor/extensions/Passage/PassageMenuOverlay.d.ts +13 -0
- package/lib/components/editor/extensions/Passage/PassageMenuOverlay.js +150 -0
- package/lib/components/editor/extensions/Passage/PassageMenuOverlay.js.map +1 -0
- package/lib/components/editor/extensions/Passage/PassageNode.d.ts +33 -2
- package/lib/components/editor/extensions/Passage/PassageNode.js +294 -107
- package/lib/components/editor/extensions/Passage/PassageNode.js.map +1 -1
- package/lib/components/editor/extensions/Passage/PassageNode.ssr.js +70 -8
- package/lib/components/editor/extensions/Passage/PassageNode.ssr.js.map +1 -1
- package/lib/components/editor/extensions/Passage/ReaderOptions.d.ts +2 -2
- package/lib/components/editor/extensions/Passage/ReaderOptions.js +4 -7
- package/lib/components/editor/extensions/Passage/ReaderOptions.js.map +1 -1
- package/lib/components/editor/extensions/Passage/ShowAnnotations.d.ts +7 -2
- package/lib/components/editor/extensions/Passage/ShowAnnotations.js +10 -7
- package/lib/components/editor/extensions/Passage/ShowAnnotations.js.map +1 -1
- package/lib/components/editor/extensions/WordBreak.d.ts +41 -0
- package/lib/components/editor/extensions/WordBreak.js +59 -0
- package/lib/components/editor/extensions/WordBreak.js.map +1 -0
- package/lib/components/editor/extensions/translationSSRExtensions.js +2 -0
- package/lib/components/editor/extensions/translationSSRExtensions.js.map +1 -1
- package/lib/components/editor/hooks/useDefaultExtensions.d.ts +1 -1
- package/lib/components/editor/hooks/useDefaultExtensions.js +2 -0
- package/lib/components/editor/hooks/useDefaultExtensions.js.map +1 -1
- package/lib/components/editor/hooks/useTranslationExtensions.d.ts +1 -1
- package/lib/components/editor/hooks/useTranslationExtensions.js +2 -0
- package/lib/components/editor/hooks/useTranslationExtensions.js.map +1 -1
- package/lib/components/editor/menus/MainBubbleMenu.js +17 -4
- package/lib/components/editor/menus/MainBubbleMenu.js.map +1 -1
- package/lib/components/editor/menus/TranslationBubbleMenu.js +3 -2
- package/lib/components/editor/menus/TranslationBubbleMenu.js.map +1 -1
- package/lib/components/editor/menus/selectors/TextAlignSelector.d.ts +1 -1
- package/lib/components/editor/menus/selectors/TextAlignSelector.js +33 -24
- package/lib/components/editor/menus/selectors/TextAlignSelector.js.map +1 -1
- package/lib/components/editor/menus/selectors/TranslationNodeSelector.js +1 -1
- package/lib/components/editor/menus/selectors/TranslationNodeSelector.js.map +1 -1
- package/lib/components/editor/menus/selectors/WordBreakSelector.d.ts +4 -0
- package/lib/components/editor/menus/selectors/WordBreakSelector.js +38 -0
- package/lib/components/editor/menus/selectors/WordBreakSelector.js.map +1 -0
- package/lib/components/editor/menus/selectors/index.d.ts +1 -0
- package/lib/components/editor/menus/selectors/index.js +1 -0
- package/lib/components/editor/menus/selectors/index.js.map +1 -1
- package/lib/components/reader/TranslationSSRContent.js +3 -1
- package/lib/components/reader/TranslationSSRContent.js.map +1 -1
- package/lib/components/shared/LeftPanel.js +1 -1
- package/lib/components/shared/LeftPanel.js.map +1 -1
- package/lib/components/shared/hooks/useTohToggle.d.ts +2 -3
- package/lib/components/shared/hooks/useTohToggle.js +31 -30
- package/lib/components/shared/hooks/useTohToggle.js.map +1 -1
- package/lib/exporters/heading.js +3 -0
- package/lib/exporters/heading.js.map +1 -1
- package/lib/exporters/paragraph.js +5 -0
- package/lib/exporters/paragraph.js.map +1 -1
- package/lib/transformers/heading.js +2 -0
- package/lib/transformers/heading.js.map +1 -1
- package/lib/transformers/paragraph.js +3 -1
- package/lib/transformers/paragraph.js.map +1 -1
- package/package.json +7 -7
- package/lib/components/editor/extensions/Passage/Passage.d.ts +0 -3
- package/lib/components/editor/extensions/Passage/Passage.js +0 -86
- package/lib/components/editor/extensions/Passage/Passage.js.map +0 -1
|
@@ -2,41 +2,50 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Button, Popover, PopoverContent, PopoverTrigger, } from '@eightyfourthousand/design-system';
|
|
4
4
|
import { useEditorState } from '@tiptap/react';
|
|
5
|
-
import { AlignCenterIcon, AlignLeftIcon, AlignRightIcon, CheckIcon, ChevronDownIcon, } from 'lucide-react';
|
|
5
|
+
import { AlignCenterIcon, AlignJustifyIcon, AlignLeftIcon, AlignRightIcon, CheckIcon, ChevronDownIcon, } from 'lucide-react';
|
|
6
|
+
// When a block has no explicit alignment, the rendered default style is justify
|
|
7
|
+
// for paragraphs and center for headings (see TextAlign config + base styles).
|
|
8
|
+
const HEADING_DEFAULT_ALIGN = 'center';
|
|
9
|
+
const PARAGRAPH_DEFAULT_ALIGN = 'justify';
|
|
6
10
|
const items = [
|
|
7
|
-
{
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
isActive: (state) => state.isLeft,
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
title: 'Center',
|
|
15
|
-
icon: AlignCenterIcon,
|
|
16
|
-
onClick: (editor) => editor.chain().focus().setTextAlign('center').run(),
|
|
17
|
-
isActive: (state) => state.isCenter,
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
title: 'Right',
|
|
21
|
-
icon: AlignRightIcon,
|
|
22
|
-
onClick: (editor) => {
|
|
23
|
-
editor.chain().focus().setTextAlign('right').run();
|
|
24
|
-
},
|
|
25
|
-
isActive: (state) => state.isRight,
|
|
26
|
-
},
|
|
11
|
+
{ title: 'Left', align: 'left', icon: AlignLeftIcon },
|
|
12
|
+
{ title: 'Center', align: 'center', icon: AlignCenterIcon },
|
|
13
|
+
{ title: 'Right', align: 'right', icon: AlignRightIcon },
|
|
14
|
+
{ title: 'Justify', align: 'justify', icon: AlignJustifyIcon },
|
|
27
15
|
];
|
|
28
16
|
export const TextAlignSelector = ({ editor }) => {
|
|
29
17
|
const editorState = useEditorState({
|
|
30
18
|
editor,
|
|
31
19
|
selector: (instance) => ({
|
|
20
|
+
isParagraph: instance.editor.isActive('paragraph'),
|
|
21
|
+
isHeading: instance.editor.isActive('heading'),
|
|
32
22
|
isLeft: instance.editor.isActive({ textAlign: 'left' }),
|
|
33
23
|
isCenter: instance.editor.isActive({ textAlign: 'center' }),
|
|
34
24
|
isRight: instance.editor.isActive({ textAlign: 'right' }),
|
|
25
|
+
isJustify: instance.editor.isActive({ textAlign: 'justify' }),
|
|
35
26
|
}),
|
|
36
27
|
});
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
28
|
+
// Alignment only applies to paragraph and heading blocks.
|
|
29
|
+
if (!editorState.isParagraph && !editorState.isHeading) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const explicitAlign = editorState.isLeft
|
|
33
|
+
? 'left'
|
|
34
|
+
: editorState.isCenter
|
|
35
|
+
? 'center'
|
|
36
|
+
: editorState.isRight
|
|
37
|
+
? 'right'
|
|
38
|
+
: editorState.isJustify
|
|
39
|
+
? 'justify'
|
|
40
|
+
: undefined;
|
|
41
|
+
// Fall back to the block's default alignment when none is explicitly set.
|
|
42
|
+
const defaultAlign = editorState.isHeading
|
|
43
|
+
? HEADING_DEFAULT_ALIGN
|
|
44
|
+
: PARAGRAPH_DEFAULT_ALIGN;
|
|
45
|
+
const activeAlign = explicitAlign ?? defaultAlign;
|
|
46
|
+
const activeItem = items.find((item) => item.align === activeAlign) ?? items[0];
|
|
47
|
+
return (_jsxs(Popover, { children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { variant: "ghost", className: "rounded-none w-12", children: [_jsx(activeItem.icon, { className: "size-4", strokeWidth: 2.5 }), _jsx(ChevronDownIcon, { className: "size-3" })] }) }), _jsx(PopoverContent, { className: "p-1 shadow-xl w-32", align: "end", noPortal: true, children: items.map((item, i) => {
|
|
48
|
+
return (_jsxs("div", { onClick: () => editor.chain().focus().setTextAlign(item.align).run(), className: "flex space-x-2 items-center rounded-md hover:bg-muted px-2 py-1.5 text-foreground cursor-pointer", children: [_jsx(item.icon, { className: "size-4" }), _jsx("span", { className: "text-sm", children: item.title }), _jsx("div", { className: "flex-1" }), item.align === activeAlign && _jsx(CheckIcon, { className: "size-3.5" })] }, i));
|
|
40
49
|
}) })] }));
|
|
41
50
|
};
|
|
42
51
|
//# sourceMappingURL=TextAlignSelector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextAlignSelector.js","sourceRoot":"","sources":["../../../../../../../../libs/lib-editing/src/lib/components/editor/menus/selectors/TextAlignSelector.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,MAAM,EACN,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"TextAlignSelector.js","sourceRoot":"","sources":["../../../../../../../../libs/lib-editing/src/lib/components/editor/menus/selectors/TextAlignSelector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -67,7 +67,7 @@ export const TranslationNodeSelector = ({ editor }) => {
|
|
|
67
67
|
});
|
|
68
68
|
const activeItems = items.filter((item) => item.isActive(editorState));
|
|
69
69
|
const name = activeItems.length > 1 ? 'Multiple' : (activeItems.pop()?.name ?? 'Text');
|
|
70
|
-
return (_jsxs(Popover, { children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { variant: "ghost", className: "rounded-none", children: [_jsx("span", { className: "whitespace-nowrap text-sm
|
|
70
|
+
return (_jsxs(Popover, { children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { variant: "ghost", className: "rounded-none", children: [_jsx("span", { className: "whitespace-nowrap text-sm", children: name }), _jsx(ChevronDownIcon, { className: "size-3" })] }) }), _jsx(PopoverContent, { className: "w-48 p-1 shadow-xl", align: "start", noPortal: true, children: items.map((item, i) => {
|
|
71
71
|
return (_jsxs("div", { onClick: () => item.onClick(editor), className: "flex items-center text-sm rounded-md hover:bg-muted text-foreground px-2 py-1.5 cursor-pointer", children: [_jsx(item.icon, { className: "size-3.5 me-2" }), _jsx("span", { children: item.name }), _jsx("div", { className: "flex-1" }), item.isActive(editorState) && (_jsx(CheckIcon, { className: "size-3.5 ms-4" }))] }, i));
|
|
72
72
|
}) })] }));
|
|
73
73
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TranslationNodeSelector.js","sourceRoot":"","sources":["../../../../../../../../libs/lib-editing/src/lib/components/editor/menus/selectors/TranslationNodeSelector.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TranslationNodeSelector.js","sourceRoot":"","sources":["../../../../../../../../libs/lib-editing/src/lib/components/editor/menus/selectors/TranslationNodeSelector.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,MAAM,EACN,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,SAAS,EACT,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,WAAW,EACX,aAAa,EAEb,SAAS,GACV,MAAM,cAAc,CAAC;AAmBtB,MAAM,KAAK,GAAe;IACxB;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAClB,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,GAAG,EAAE;QACnE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW;KACvC;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAClB,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;QAC1D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU;KACtC;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAClB,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;QAC1D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU;KACtC;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAClB,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;QAC1D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU;KACtC;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE;QACnE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW;KACvC;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAClB,MAAM;aACH,KAAK,EAAE;aACP,KAAK,EAAE;aACP,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC;aACpC,gBAAgB,EAAE;aAClB,GAAG,EAAE;QACV,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY;KACxC;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE;QACjE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS;KACrC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAE,MAAM,EAAsB,EAAE,EAAE;IACxE,MAAM,WAAW,GAAG,cAAc,CAAiB;QACjD,MAAM;QACN,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACvB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;YAClD,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC7D,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC7D,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC7D,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;YAClD,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;YACpD,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;SAC/C,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IAEvE,MAAM,IAAI,GACR,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,CAAC,CAAC;IAE5E,OAAO,CACL,MAAC,OAAO,eACN,KAAC,cAAc,IAAC,OAAO,kBACrB,MAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,cAAc,aAC9C,eAAM,SAAS,EAAC,2BAA2B,YAAE,IAAI,GAAQ,EACzD,KAAC,eAAe,IAAC,SAAS,EAAC,QAAQ,GAAG,IAC/B,GACM,EACjB,KAAC,cAAc,IAAC,SAAS,EAAC,oBAAoB,EAAC,KAAK,EAAC,OAAO,EAAC,QAAQ,kBAClE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACrB,OAAO,CACL,eAEE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EACnC,SAAS,EAAC,gGAAgG,aAE1G,KAAC,IAAI,CAAC,IAAI,IAAC,SAAS,EAAC,eAAe,GAAG,EACvC,yBAAO,IAAI,CAAC,IAAI,GAAQ,EACxB,cAAK,SAAS,EAAC,QAAQ,GAAO,EAC7B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAC7B,KAAC,SAAS,IAAC,SAAS,EAAC,eAAe,GAAG,CACxC,KATI,CAAC,CAUF,CACP,CAAC;gBACJ,CAAC,CAAC,GACa,IACT,CACX,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Button, Popover, PopoverContent, PopoverTrigger, } from '@eightyfourthousand/design-system';
|
|
4
|
+
import { useEditorState } from '@tiptap/react';
|
|
5
|
+
import { CheckIcon, ChevronDownIcon, ListMinusIcon, WrapTextIcon, } from 'lucide-react';
|
|
6
|
+
// When a paragraph has no explicit word-break, the rendered default is the CSS
|
|
7
|
+
// default `normal`.
|
|
8
|
+
const DEFAULT_WORD_BREAK = 'normal';
|
|
9
|
+
const items = [
|
|
10
|
+
{ title: 'Normal', wordBreak: 'normal', icon: ListMinusIcon },
|
|
11
|
+
{ title: 'Break all', wordBreak: 'break-all', icon: WrapTextIcon },
|
|
12
|
+
];
|
|
13
|
+
export const WordBreakSelector = ({ editor }) => {
|
|
14
|
+
const editorState = useEditorState({
|
|
15
|
+
editor,
|
|
16
|
+
selector: (instance) => ({
|
|
17
|
+
isParagraph: instance.editor.isActive('paragraph'),
|
|
18
|
+
isNormal: instance.editor.isActive({ wordBreak: 'normal' }),
|
|
19
|
+
isBreakAll: instance.editor.isActive({ wordBreak: 'break-all' }),
|
|
20
|
+
}),
|
|
21
|
+
});
|
|
22
|
+
// Word-break only applies to paragraph blocks.
|
|
23
|
+
if (!editorState.isParagraph) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
const explicitWordBreak = editorState.isNormal
|
|
27
|
+
? 'normal'
|
|
28
|
+
: editorState.isBreakAll
|
|
29
|
+
? 'break-all'
|
|
30
|
+
: undefined;
|
|
31
|
+
// Fall back to the block's default word-break when none is explicitly set.
|
|
32
|
+
const activeWordBreak = explicitWordBreak ?? DEFAULT_WORD_BREAK;
|
|
33
|
+
const activeItem = items.find((item) => item.wordBreak === activeWordBreak) ?? items[0];
|
|
34
|
+
return (_jsxs(Popover, { children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { variant: "ghost", className: "rounded-none w-12", children: [_jsx(activeItem.icon, { className: "size-4", strokeWidth: 2.5 }), _jsx(ChevronDownIcon, { className: "size-3" })] }) }), _jsx(PopoverContent, { className: "p-1 shadow-xl w-40", align: "end", noPortal: true, children: items.map((item, i) => {
|
|
35
|
+
return (_jsxs("div", { onClick: () => editor.chain().focus().setWordBreak(item.wordBreak).run(), className: "flex space-x-2 items-center rounded-md hover:bg-muted px-2 py-1.5 text-foreground cursor-pointer", children: [_jsx(item.icon, { className: "size-4" }), _jsx("span", { className: "text-sm", children: item.title }), _jsx("div", { className: "flex-1" }), item.wordBreak === activeWordBreak && (_jsx(CheckIcon, { className: "size-3.5" }))] }, i));
|
|
36
|
+
}) })] }));
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=WordBreakSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WordBreakSelector.js","sourceRoot":"","sources":["../../../../../../../../libs/lib-editing/src/lib/components/editor/menus/selectors/WordBreakSelector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/lib-editing/src/lib/components/editor/menus/selectors/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/lib-editing/src/lib/components/editor/menus/selectors/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC"}
|
|
@@ -17,13 +17,15 @@ const renderEndNoteLinkMark = ({ mark, children, }) => {
|
|
|
17
17
|
const notes = Array.isArray(raw) ? raw.filter(isEndNoteItem) : [];
|
|
18
18
|
notes.sort((a, b) => (a.label || '').localeCompare(b.label || ''));
|
|
19
19
|
const supHtml = (n, marginClass) => {
|
|
20
|
-
const cls = cn('end-note-link',
|
|
20
|
+
const cls = cn('end-note-link', marginClass);
|
|
21
|
+
const tohAttr = n.toh ? ` data-toh="${escapeHTMLAttribute(n.toh)}"` : '';
|
|
21
22
|
const itemLabel = escapeHTML(n.label?.split('.').pop() || '');
|
|
22
23
|
// Glue the marker to the text it's attached to with a word joiner (U+2060)
|
|
23
24
|
// so it never wraps to a new line away from its content: after the text for
|
|
24
25
|
// start notes, before it for end notes.
|
|
25
26
|
const joined = n.location === 'start' ? `${itemLabel}` : `${itemLabel}`;
|
|
26
27
|
return (`<sup class="${escapeHTMLAttribute(cls)}"` +
|
|
28
|
+
tohAttr +
|
|
27
29
|
` type="endNoteLink"` +
|
|
28
30
|
` endNote="${escapeHTMLAttribute(n.endNote)}"` +
|
|
29
31
|
` uuid="${escapeHTMLAttribute(n.uuid)}">` +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TranslationSSRContent.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/reader/TranslationSSRContent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,EAAE,EAAE,MAAM,+BAA+B,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAUvD,MAAM,aAAa,GAAG,CAAC,KAAc,EAAwB,EAAE;IAC7D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,OAAO,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE,CACnC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3E,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAE,EAAE,CAC5C,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAE5C,MAAM,qBAAqB,GAAG,CAAC,EAC7B,IAAI,EACJ,QAAQ,GAIT,EAAU,EAAE;IACX,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC7B,MAAM,KAAK,GAAkB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAEnE,MAAM,OAAO,GAAG,CAAC,CAAc,EAAE,WAAmB,EAAE,EAAE;QACtD,MAAM,GAAG,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"TranslationSSRContent.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/reader/TranslationSSRContent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { cn, useIsMobile } from '@eightyfourthousand/lib-utils';
|
|
|
9
9
|
export const LeftPanel = ({ toc, work, limitWhenNoTranslation = false, }) => {
|
|
10
10
|
const { panels, toh, updatePanel, setToh } = useNavigation();
|
|
11
11
|
const isMobile = useIsMobile();
|
|
12
|
-
useTohToggle({
|
|
12
|
+
useTohToggle({ toh });
|
|
13
13
|
useEffect(() => {
|
|
14
14
|
const currentToh = toh || work.toh[0] || '';
|
|
15
15
|
setToh(currentToh);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LeftPanel.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/shared/LeftPanel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAE7F,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EACxB,GAAG,EACH,IAAI,EACJ,sBAAsB,GAAG,KAAK,GAK/B,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;IAC7D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"LeftPanel.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/shared/LeftPanel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAE7F,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EACxB,GAAG,EACH,IAAI,EACJ,sBAAsB,GAAG,KAAK,GAK/B,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;IAC7D,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAEtB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,CAAC,UAAU,CAAC,CAAC;IACrB,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAE5B,OAAO,CACL,MAAC,IAAI,IACH,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,EAC/B,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE;YACzB,MAAM,GAAG,GAAG,OAAkB,CAAC;YAC/B,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC,EACD,YAAY,EAAC,KAAK,EAClB,SAAS,EAAC,sDAAsD,aAEhE,cAAK,SAAS,EAAC,wFAAwF,YACrG,KAAC,QAAQ,IACP,SAAS,EAAE,EAAE,CACX,6CAA6C,EAC7C,QAAQ,IAAI,OAAO,CACpB,YAED,KAAC,WAAW,IAAC,KAAK,EAAC,KAAK,kCAAgC,GAC/C,GACP,EACN,cAAK,SAAS,EAAC,gBAAgB,YAC7B,cAAK,SAAS,EAAC,iCAAiC,YAC9C,cAAK,SAAS,EAAC,0CAA0C,YACvD,KAAC,WAAW,IAAC,KAAK,EAAC,KAAK,EAAC,SAAS,EAAC,aAAa,YAC9C,KAAC,eAAe,IACd,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,sBAAsB,EAAE,sBAAsB,GAC9C,GACU,GACV,GACF,GACF,IACD,CACR,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { TohokuCatalogEntry
|
|
2
|
-
export declare const useTohToggle: ({ toh
|
|
1
|
+
import { TohokuCatalogEntry } from '@eightyfourthousand/data-access';
|
|
2
|
+
export declare const useTohToggle: ({ toh }: {
|
|
3
3
|
toh?: TohokuCatalogEntry;
|
|
4
|
-
work: Work;
|
|
5
4
|
}) => void;
|
|
@@ -1,35 +1,36 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { useEffect } from 'react';
|
|
3
|
-
export const useTohToggle = ({ toh
|
|
3
|
+
export const useTohToggle = ({ toh }) => {
|
|
4
4
|
useEffect(() => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
5
|
+
let styleEl = document.getElementById('dynamic-visibility-rules');
|
|
6
|
+
if (!styleEl) {
|
|
7
|
+
styleEl = document.createElement('style');
|
|
8
|
+
styleEl.id = 'dynamic-visibility-rules';
|
|
9
|
+
document.head.appendChild(styleEl);
|
|
10
|
+
}
|
|
11
|
+
const sheet = styleEl.sheet;
|
|
12
|
+
if (!sheet) {
|
|
13
|
+
console.warn('Could not find or create stylesheet for dynamic class toggling.');
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
// Clear existing rules
|
|
17
|
+
while (sheet.cssRules.length > 0) {
|
|
18
|
+
sheet.deleteRule(0);
|
|
19
|
+
}
|
|
20
|
+
// A single rule hides every toh-scoped element that doesn't match the
|
|
21
|
+
// active toh. Attribute selectors take a quoted string, so any toh value
|
|
22
|
+
// is safe — unlike class selectors, which require valid CSS identifiers.
|
|
23
|
+
// Only quotes and backslashes need escaping inside the quoted value.
|
|
24
|
+
const escaped = toh?.replace(/["\\]/g, '\\$&');
|
|
25
|
+
const selector = escaped
|
|
26
|
+
? `[data-toh]:not([data-toh="${escaped}"])`
|
|
27
|
+
: '[data-toh]';
|
|
28
|
+
try {
|
|
29
|
+
sheet.insertRule(`${selector} { display: none; }`, 0);
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
console.error('Failed to insert toh visibility rule:', e);
|
|
33
|
+
}
|
|
34
|
+
}, [toh]);
|
|
34
35
|
};
|
|
35
36
|
//# sourceMappingURL=useTohToggle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTohToggle.js","sourceRoot":"","sources":["../../../../../../../libs/lib-editing/src/lib/components/shared/hooks/useTohToggle.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"useTohToggle.js","sourceRoot":"","sources":["../../../../../../../libs/lib-editing/src/lib/components/shared/hooks/useTohToggle.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,GAAG,EAAgC,EAAE,EAAE;IACpE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CACnC,0BAA0B,CACA,CAAC;QAE7B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC1C,OAAO,CAAC,EAAE,GAAG,0BAA0B,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAE5B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CACV,iEAAiE,CAClE,CAAC;YACF,OAAO;QACT,CAAC;QAED,uBAAuB;QACvB,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QAED,sEAAsE;QACtE,yEAAyE;QACzE,yEAAyE;QACzE,qEAAqE;QACrE,MAAM,OAAO,GAAG,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,OAAO;YACtB,CAAC,CAAC,6BAA6B,OAAO,KAAK;YAC3C,CAAC,CAAC,YAAY,CAAC;QACjB,IAAI,CAAC;YACH,KAAK,CAAC,UAAU,CAAC,GAAG,QAAQ,qBAAqB,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC"}
|
package/lib/exporters/heading.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { normalizeAlign, } from '@eightyfourthousand/data-access';
|
|
1
2
|
export const heading = ({ node, start, passageUuid, }) => {
|
|
2
3
|
const textContent = node.textContent;
|
|
3
4
|
const uuid = node.attrs.uuid;
|
|
4
5
|
const level = node.attrs.level || 1;
|
|
5
6
|
const cls = node.attrs.class;
|
|
7
|
+
const align = normalizeAlign(node.attrs.textAlign);
|
|
6
8
|
if (!textContent) {
|
|
7
9
|
console.warn(`Heading node ${uuid} is incomplete`);
|
|
8
10
|
return undefined;
|
|
@@ -15,6 +17,7 @@ export const heading = ({ node, start, passageUuid, }) => {
|
|
|
15
17
|
end: start + textContent.length,
|
|
16
18
|
level,
|
|
17
19
|
class: cls,
|
|
20
|
+
...(align ? { align } : {}),
|
|
18
21
|
};
|
|
19
22
|
};
|
|
20
23
|
//# sourceMappingURL=heading.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heading.js","sourceRoot":"","sources":["../../../../../libs/lib-editing/src/lib/exporters/heading.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"heading.js","sourceRoot":"","sources":["../../../../../libs/lib-editing/src/lib/exporters/heading.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,GACf,MAAM,iCAAiC,CAAC;AAGzC,MAAM,CAAC,MAAM,OAAO,GAAgC,CAAC,EACnD,IAAI,EACJ,KAAK,EACL,WAAW,GACZ,EAAiC,EAAE;IAClC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAC7B,MAAM,KAAK,GAAI,IAAI,CAAC,KAAK,CAAC,KAAgB,IAAI,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC7B,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,CAAC;QACnD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,SAAS;QACf,WAAW;QACX,KAAK;QACL,GAAG,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM;QAC/B,KAAK;QACL,KAAK,EAAE,GAAG;QACV,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5B,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { normalizeAlign, normalizeWordBreak, } from '@eightyfourthousand/data-access';
|
|
1
2
|
export const paragraph = ({ node, parent, start, passageUuid, }) => {
|
|
2
3
|
const uuid = node.attrs.uuid;
|
|
3
4
|
const parentUuid = parent?.attrs.uuid;
|
|
@@ -11,12 +12,16 @@ export const paragraph = ({ node, parent, start, passageUuid, }) => {
|
|
|
11
12
|
console.warn(`Paragraph ${uuid} is empty`);
|
|
12
13
|
return undefined;
|
|
13
14
|
}
|
|
15
|
+
const align = normalizeAlign(node.attrs.textAlign);
|
|
16
|
+
const wordBreak = normalizeWordBreak(node.attrs.wordBreak);
|
|
14
17
|
return {
|
|
15
18
|
uuid,
|
|
16
19
|
type: 'paragraph',
|
|
17
20
|
passageUuid,
|
|
18
21
|
start,
|
|
19
22
|
end: start + textContent.length,
|
|
23
|
+
...(align ? { align } : {}),
|
|
24
|
+
...(wordBreak ? { wordBreak } : {}),
|
|
20
25
|
};
|
|
21
26
|
};
|
|
22
27
|
//# sourceMappingURL=paragraph.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paragraph.js","sourceRoot":"","sources":["../../../../../libs/lib-editing/src/lib/exporters/paragraph.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paragraph.js","sourceRoot":"","sources":["../../../../../libs/lib-editing/src/lib/exporters/paragraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,kBAAkB,GACnB,MAAM,iCAAiC,CAAC;AAGzC,MAAM,CAAC,MAAM,SAAS,GAAkC,CAAC,EACvD,IAAI,EACJ,MAAM,EACN,KAAK,EACL,WAAW,GACZ,EAAmC,EAAE;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAC7B,MAAM,UAAU,GAAG,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;IAEtC,gFAAgF;IAChF,qEAAqE;IACrE,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,WAAW,CAAC,CAAC;QAC3C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE3D,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,WAAW;QACjB,WAAW;QACX,KAAK;QACL,GAAG,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM;QAC/B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -4,6 +4,7 @@ export const heading = ({ root, parent, block, annotation }) => {
|
|
|
4
4
|
const heading = annotation;
|
|
5
5
|
const level = heading.level || 3;
|
|
6
6
|
const cls = heading.class;
|
|
7
|
+
const align = heading.align;
|
|
7
8
|
recurse({
|
|
8
9
|
until: ['heading', 'paragraph'],
|
|
9
10
|
root,
|
|
@@ -18,6 +19,7 @@ export const heading = ({ root, parent, block, annotation }) => {
|
|
|
18
19
|
...item.attrs,
|
|
19
20
|
level,
|
|
20
21
|
class: cls,
|
|
22
|
+
...(align ? { textAlign: align } : {}),
|
|
21
23
|
};
|
|
22
24
|
},
|
|
23
25
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heading.js","sourceRoot":"","sources":["../../../../../libs/lib-editing/src/lib/transformers/heading.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,CAAC,MAAM,OAAO,GAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE;IAC1E,MAAM,OAAO,GAAG,UAA+B,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"heading.js","sourceRoot":"","sources":["../../../../../libs/lib-editing/src/lib/transformers/heading.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,CAAC,MAAM,OAAO,GAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE;IAC1E,MAAM,OAAO,GAAG,UAA+B,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;IAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAE5B,OAAO,CAAC;QACN,KAAK,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;QAC/B,IAAI;QACJ,MAAM;QACN,KAAK;QACL,UAAU;QACV,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CACjB,UAAU,CAAC;YACT,GAAG,GAAG;YACN,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;gBAC7B,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;gBACtB,IAAI,CAAC,KAAK,GAAG;oBACX,GAAG,IAAI,CAAC,KAAK;oBACb,KAAK;oBACL,KAAK,EAAE,GAAG;oBACV,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvC,CAAC;YACJ,CAAC;SACF,CAAC;KACL,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { splitBlock } from './split-block';
|
|
|
2
2
|
import { recurse } from './recurse';
|
|
3
3
|
export const paragraph = (ctx) => {
|
|
4
4
|
const { annotation } = ctx;
|
|
5
|
-
const { start, end, uuid } = annotation || {};
|
|
5
|
+
const { start, end, uuid, align, wordBreak } = annotation || {};
|
|
6
6
|
recurse({
|
|
7
7
|
...ctx,
|
|
8
8
|
until: ['paragraph'],
|
|
@@ -15,6 +15,8 @@ export const paragraph = (ctx) => {
|
|
|
15
15
|
start,
|
|
16
16
|
end,
|
|
17
17
|
uuid,
|
|
18
|
+
...(align ? { textAlign: align } : {}),
|
|
19
|
+
...(wordBreak ? { wordBreak } : {}),
|
|
18
20
|
};
|
|
19
21
|
},
|
|
20
22
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paragraph.js","sourceRoot":"","sources":["../../../../../libs/lib-editing/src/lib/transformers/paragraph.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paragraph.js","sourceRoot":"","sources":["../../../../../libs/lib-editing/src/lib/transformers/paragraph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,CAAC,MAAM,SAAS,GAAgB,CAAC,GAAG,EAAE,EAAE;IAC5C,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC;IAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GACzC,UAAkC,IAAI,EAAE,CAAC;IAE5C,OAAO,CAAC;QACN,GAAG,GAAG;QACN,KAAK,EAAE,CAAC,WAAW,CAAC;QACpB,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CACjB,UAAU,CAAC;YACT,GAAG,GAAG;YACN,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;gBACvB,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;gBACzB,KAAK,CAAC,KAAK,GAAG;oBACZ,GAAG,KAAK,CAAC,KAAK;oBACd,KAAK;oBACL,GAAG;oBACH,IAAI;oBACJ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpC,CAAC;YACJ,CAAC;SACF,CAAC;KACL,CAAC,CAAC;AACL,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eightyfourthousand/lib-editing",
|
|
3
|
-
"version": "2026.6.
|
|
3
|
+
"version": "2026.6.2",
|
|
4
4
|
"description": "Shared editing and reader components for 84000 translation workflows.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"repository": {
|
|
@@ -17,12 +17,12 @@
|
|
|
17
17
|
"access": "public"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@eightyfourthousand/client-graphql": "^2026.6.
|
|
21
|
-
"@eightyfourthousand/data-access": "^2026.6.
|
|
22
|
-
"@eightyfourthousand/design-system": "^2026.6.
|
|
23
|
-
"@eightyfourthousand/lib-instr": "^2026.6.
|
|
24
|
-
"@eightyfourthousand/lib-search": "^2026.6.
|
|
25
|
-
"@eightyfourthousand/lib-utils": "^2026.6.
|
|
20
|
+
"@eightyfourthousand/client-graphql": "^2026.6.2",
|
|
21
|
+
"@eightyfourthousand/data-access": "^2026.6.2",
|
|
22
|
+
"@eightyfourthousand/design-system": "^2026.6.2",
|
|
23
|
+
"@eightyfourthousand/lib-instr": "^2026.6.2",
|
|
24
|
+
"@eightyfourthousand/lib-search": "^2026.6.2",
|
|
25
|
+
"@eightyfourthousand/lib-utils": "^2026.6.2",
|
|
26
26
|
"@floating-ui/react": "^0.27.19",
|
|
27
27
|
"@tanstack/react-table": "^8.21.2",
|
|
28
28
|
"@tiptap/core": "^3.23.6",
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { cn } from '@eightyfourthousand/lib-utils';
|
|
3
|
-
import { NodeViewContent, NodeViewWrapper, } from '@tiptap/react';
|
|
4
|
-
import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DropdownMenu, DropdownMenuContent, DropdownMenuTrigger, } from '@eightyfourthousand/design-system';
|
|
5
|
-
import { EditorOptions } from './EditorOptions';
|
|
6
|
-
import { ReaderOptions } from './ReaderOptions';
|
|
7
|
-
import { memo, useCallback, useMemo, useState } from 'react';
|
|
8
|
-
import { EditLabel } from './EditLabel';
|
|
9
|
-
import { ShowAnnotations } from './ShowAnnotations';
|
|
10
|
-
import { LabeledElement, useNavigation, SuggestRevisionForm, PANEL_FOR_SECTION, TAB_FOR_SECTION, } from '../../../shared';
|
|
11
|
-
import { useBookmark } from '@eightyfourthousand/data-access';
|
|
12
|
-
import { BookmarkIcon } from 'lucide-react';
|
|
13
|
-
import { deleteEndnotePassageNode } from '../EndNoteLink/endnote-utils';
|
|
14
|
-
import { PASSAGE_CONTENT_CLASS, PASSAGE_INNER_CLASS, PASSAGE_LABEL_CLASS, PASSAGE_REFERENCES_CLASS, PASSAGE_WRAPPER_CLASS, } from './classes';
|
|
15
|
-
const PassageComponent = (props) => {
|
|
16
|
-
const { node, editor } = props;
|
|
17
|
-
const [isDialogOpen, setIsDialogOpen] = useState(false);
|
|
18
|
-
const [dialogType, setDialogType] = useState();
|
|
19
|
-
const [showRevisionForm, setShowRevisionForm] = useState(false);
|
|
20
|
-
const [dropdownOpen, setDropdownOpen] = useState(false);
|
|
21
|
-
const textContent = node.textContent || '';
|
|
22
|
-
const excerpt = textContent.slice(0, 100) + (textContent.length > 100 ? '...' : '');
|
|
23
|
-
const { panels, toh, updatePanel, imprint } = useNavigation();
|
|
24
|
-
const workTitle = imprint?.mainTitles?.en ?? toh;
|
|
25
|
-
const { isBookmarked, toggle: toggleBookmark } = useBookmark(node.attrs.uuid, {
|
|
26
|
-
type: 'passage',
|
|
27
|
-
subType: node.attrs.type,
|
|
28
|
-
tab: node.attrs.type ?? '',
|
|
29
|
-
label: node.attrs.label,
|
|
30
|
-
body: excerpt,
|
|
31
|
-
workTitle,
|
|
32
|
-
toh,
|
|
33
|
-
});
|
|
34
|
-
// Compute values directly instead of using effects to avoid re-render loops
|
|
35
|
-
const isCompare = panels.main.open && panels.main.tab === 'compare';
|
|
36
|
-
const { source, compareLeadingSpace } = useMemo(() => {
|
|
37
|
-
if (!isCompare || !toh) {
|
|
38
|
-
return { source: '', compareLeadingSpace: 'md:mt-1' };
|
|
39
|
-
}
|
|
40
|
-
const alignment = node.attrs.alignments?.[toh];
|
|
41
|
-
const source = alignment?.tibetan.trim() || '';
|
|
42
|
-
const firstChild = node.content.firstChild;
|
|
43
|
-
let compareLeadingSpace = 'md:mt-1';
|
|
44
|
-
if (firstChild?.attrs.hasLeadingSpace) {
|
|
45
|
-
compareLeadingSpace = 'md:mt-5';
|
|
46
|
-
}
|
|
47
|
-
else if (['lineGroup', 'list'].includes(firstChild?.type.name || '')) {
|
|
48
|
-
compareLeadingSpace = 'md:mt-2';
|
|
49
|
-
}
|
|
50
|
-
return { source, compareLeadingSpace };
|
|
51
|
-
}, [isCompare, toh, node.attrs.alignments, node.content.firstChild]);
|
|
52
|
-
const references = node.attrs.references;
|
|
53
|
-
const handleReferenceClick = useCallback((passage) => {
|
|
54
|
-
updatePanel({
|
|
55
|
-
name: PANEL_FOR_SECTION[passage.type] || 'main',
|
|
56
|
-
state: {
|
|
57
|
-
open: true,
|
|
58
|
-
tab: TAB_FOR_SECTION[passage.type] || 'translation',
|
|
59
|
-
hash: passage.uuid,
|
|
60
|
-
},
|
|
61
|
-
});
|
|
62
|
-
}, [updatePanel]);
|
|
63
|
-
const handleDeletePassage = useCallback(() => {
|
|
64
|
-
deleteEndnotePassageNode(editor, node.attrs.uuid);
|
|
65
|
-
setIsDialogOpen(false);
|
|
66
|
-
}, [node.attrs.uuid, editor]);
|
|
67
|
-
const className = PASSAGE_LABEL_CLASS;
|
|
68
|
-
const borderClassName = editor.storage.globalConfig.debug && node.attrs.invalid
|
|
69
|
-
? 'after:content-["⚠️"] after:absolute after:top-0 after:-right-5'
|
|
70
|
-
: '';
|
|
71
|
-
return (_jsxs(NodeViewWrapper, { id: node.attrs.uuid, as: "div", className: cn(PASSAGE_WRAPPER_CLASS, node.attrs.toh), children: [_jsx("div", { className: "w-full", children: _jsxs("div", { className: cn(PASSAGE_INNER_CLASS, borderClassName), children: [_jsxs(DropdownMenu, { open: dropdownOpen, onOpenChange: (open) => {
|
|
72
|
-
setDropdownOpen(open);
|
|
73
|
-
if (!open)
|
|
74
|
-
setShowRevisionForm(false);
|
|
75
|
-
}, children: [!editor.isEditable && isBookmarked && (_jsx("div", { className: "absolute -left-15.75 top-6 w-16 flex justify-end", children: _jsx(BookmarkIcon, { className: "text-accent size-3", fill: "currentColor" }) })), _jsx(DropdownMenuTrigger, { className: className, contentEditable: false, children: node.attrs.label || '' }), _jsx(DropdownMenuContent, { align: "start", alignOffset: 48, className: cn(showRevisionForm ? 'w-80' : 'w-64'), children: showRevisionForm ? (_jsx(SuggestRevisionForm, { toh: toh ?? '', type: 'passage', label: node.attrs.label ?? '', onClose: () => {
|
|
76
|
-
setShowRevisionForm(false);
|
|
77
|
-
setDropdownOpen(false);
|
|
78
|
-
} })) : editor.isEditable ? (_jsx(EditorOptions, { ...props, contentType: source ? 'compare' : node.attrs.type, onSelection: (item) => {
|
|
79
|
-
setDialogType(item);
|
|
80
|
-
setIsDialogOpen(true);
|
|
81
|
-
} })) : (_jsx(ReaderOptions, { ...props, contentType: source ? 'compare' : node.attrs.type, isBookmarked: isBookmarked, toggleBookmark: toggleBookmark, onSuggestRevision: () => setShowRevisionForm(true) })) })] }), _jsx(NodeViewContent, { className: PASSAGE_CONTENT_CLASS }), references && references.length > 0 && (_jsx("div", { className: PASSAGE_REFERENCES_CLASS, contentEditable: false, children: references.map((ref, index) => (_jsxs("span", { children: [index > 0 && ', ', _jsx(Button, { variant: "link", className: "p-0 h-6 font-normal hover:cursor-pointer", onClick: () => handleReferenceClick(ref), children: ref.label || ref.uuid.slice(0, 6) })] }, ref.uuid))) })), editor.isEditable && (_jsxs(Dialog, { open: isDialogOpen, onOpenChange: setIsDialogOpen, children: [dialogType === 'label' && (_jsx(EditLabel, { ...props, close: () => setIsDialogOpen(false) })), dialogType === 'attributes' && _jsx(ShowAnnotations, { ...props }), dialogType === 'delete' && (_jsxs(DialogContent, { className: "max-w-readable w-full font-serif", showCloseButton: false, children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: "Delete Passage" }), _jsxs(DialogDescription, { children: ["This will delete passage ", node.attrs.label, node.attrs.type === 'endnotes' &&
|
|
82
|
-
' and remove all links to it in the translation', ". This action cannot be undone after saving."] })] }), _jsxs(DialogFooter, { children: [_jsx(Button, { variant: "outline", onClick: () => setIsDialogOpen(false), children: "Cancel" }), _jsx(Button, { variant: "destructive", onClick: handleDeletePassage, children: "Delete" })] })] }))] }))] }) }), _jsx("div", { className: cn('w-full', source ? '' : 'hidden', compareLeadingSpace), contentEditable: false, "data-compare-source": true, children: _jsx(LabeledElement, { className: "mt-0.5", children: _jsx("div", { className: "leading-7 font-tibetan text-lg whitespace-normal mt-1.5 pb-4 md:pb-2", children: source }) }) })] }));
|
|
83
|
-
};
|
|
84
|
-
export const Passage = memo(PassageComponent);
|
|
85
|
-
export default Passage;
|
|
86
|
-
//# sourceMappingURL=Passage.js.map
|