@eightyfourthousand/lib-editing 2026.5.4 → 2026.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/lib/components/editor/EditorBackMatterPage.js +7 -3
  2. package/lib/components/editor/EditorBackMatterPage.js.map +1 -1
  3. package/lib/components/editor/EditorBodyPage.js +7 -3
  4. package/lib/components/editor/EditorBodyPage.js.map +1 -1
  5. package/lib/components/editor/PaginationProvider.d.ts +2 -1
  6. package/lib/components/editor/PaginationProvider.js +40 -13
  7. package/lib/components/editor/PaginationProvider.js.map +1 -1
  8. package/lib/components/editor/TranslationBuilder.d.ts +1 -1
  9. package/lib/components/editor/TranslationBuilder.js +2 -2
  10. package/lib/components/editor/TranslationBuilder.js.map +1 -1
  11. package/lib/components/editor/extensions/DragHandle/DragHandle.d.ts +1 -1
  12. package/lib/components/editor/extensions/DragHandle/DragHandle.js.map +1 -1
  13. package/lib/components/editor/extensions/EndNoteLink/EndNoteLinkMark.js +131 -1
  14. package/lib/components/editor/extensions/EndNoteLink/EndNoteLinkMark.js.map +1 -1
  15. package/lib/components/editor/extensions/Foreign/Foreign.js +1 -1
  16. package/lib/components/editor/extensions/GlobalConfig.d.ts +3 -1
  17. package/lib/components/editor/extensions/Line/LineNode.d.ts +3 -1
  18. package/lib/components/editor/extensions/Line/LineNode.ssr.d.ts +3 -1
  19. package/lib/components/editor/extensions/LineGroup/LineGroupNode.d.ts +6 -1
  20. package/lib/components/editor/extensions/LineGroup/LineGroupNode.ssr.d.ts +6 -1
  21. package/lib/components/editor/extensions/Mantra/Mantra.js +12 -17
  22. package/lib/components/editor/extensions/Mantra/Mantra.js.map +1 -1
  23. package/lib/components/editor/extensions/Mention/Mention.js +5 -1
  24. package/lib/components/editor/extensions/Mention/Mention.js.map +1 -1
  25. package/lib/components/editor/extensions/Mention/Mention.ssr.js +6 -4
  26. package/lib/components/editor/extensions/Mention/Mention.ssr.js.map +1 -1
  27. package/lib/components/editor/extensions/Passage/Passage.js +1 -1
  28. package/lib/components/editor/extensions/Passage/Passage.js.map +1 -1
  29. package/lib/components/editor/extensions/Passage/PassageNode.js +60 -3
  30. package/lib/components/editor/extensions/Passage/PassageNode.js.map +1 -1
  31. package/lib/components/editor/extensions/PipeNotItalic.d.ts +2 -0
  32. package/lib/components/editor/extensions/PipeNotItalic.js +90 -0
  33. package/lib/components/editor/extensions/PipeNotItalic.js.map +1 -0
  34. package/lib/components/editor/extensions/translationSSRExtensions.js +2 -0
  35. package/lib/components/editor/extensions/translationSSRExtensions.js.map +1 -1
  36. package/lib/components/editor/hooks/useTranslationExtensions.d.ts +10 -1
  37. package/lib/components/editor/hooks/useTranslationExtensions.js +2 -0
  38. package/lib/components/editor/hooks/useTranslationExtensions.js.map +1 -1
  39. package/lib/components/editor/menus/EmptyBubbleMenu.js +6 -2
  40. package/lib/components/editor/menus/EmptyBubbleMenu.js.map +1 -1
  41. package/lib/components/editor/menus/MainBubbleMenu.js +6 -2
  42. package/lib/components/editor/menus/MainBubbleMenu.js.map +1 -1
  43. package/lib/components/editor/menus/TranslationBubbleMenu.js +6 -2
  44. package/lib/components/editor/menus/TranslationBubbleMenu.js.map +1 -1
  45. package/lib/components/editor/menus/index.d.ts +1 -0
  46. package/lib/components/editor/menus/index.js +1 -0
  47. package/lib/components/editor/menus/index.js.map +1 -1
  48. package/lib/components/editor/menus/useDismissBubbleMenu.d.ts +8 -0
  49. package/lib/components/editor/menus/useDismissBubbleMenu.js +35 -0
  50. package/lib/components/editor/menus/useDismissBubbleMenu.js.map +1 -0
  51. package/lib/components/reader/ReaderBackMatterPage.js +2 -2
  52. package/lib/components/reader/ReaderBackMatterPage.js.map +1 -1
  53. package/lib/components/reader/ReaderBackMatterPanel.d.ts +3 -1
  54. package/lib/components/reader/ReaderBackMatterPanel.js +3 -3
  55. package/lib/components/reader/ReaderBackMatterPanel.js.map +1 -1
  56. package/lib/components/reader/ReaderBodyPage.js +5 -4
  57. package/lib/components/reader/ReaderBodyPage.js.map +1 -1
  58. package/lib/components/reader/ReaderBodyPanel.d.ts +5 -2
  59. package/lib/components/reader/ReaderBodyPanel.js +24 -5
  60. package/lib/components/reader/ReaderBodyPanel.js.map +1 -1
  61. package/lib/components/reader/ReaderLayout.d.ts +3 -1
  62. package/lib/components/reader/ReaderLayout.js +2 -3
  63. package/lib/components/reader/ReaderLayout.js.map +1 -1
  64. package/lib/components/reader/TranslationReader.d.ts +1 -1
  65. package/lib/components/reader/TranslationReader.js +2 -2
  66. package/lib/components/reader/TranslationReader.js.map +1 -1
  67. package/lib/components/reader/TranslationSSRContent.js +6 -2
  68. package/lib/components/reader/TranslationSSRContent.js.map +1 -1
  69. package/lib/components/shared/BackMatterPanel.d.ts +3 -1
  70. package/lib/components/shared/BackMatterPanel.js +3 -1
  71. package/lib/components/shared/BackMatterPanel.js.map +1 -1
  72. package/lib/components/shared/BodyPanel.d.ts +5 -3
  73. package/lib/components/shared/BodyPanel.js +17 -25
  74. package/lib/components/shared/BodyPanel.js.map +1 -1
  75. package/lib/components/shared/FocusToggleButton.d.ts +1 -0
  76. package/lib/components/shared/FocusToggleButton.js +13 -0
  77. package/lib/components/shared/FocusToggleButton.js.map +1 -0
  78. package/lib/components/shared/NavigationContext.d.ts +2 -0
  79. package/lib/components/shared/NavigationContext.js +2 -0
  80. package/lib/components/shared/NavigationContext.js.map +1 -1
  81. package/lib/components/shared/NavigationProvider.d.ts +3 -1
  82. package/lib/components/shared/NavigationProvider.js +7 -2
  83. package/lib/components/shared/NavigationProvider.js.map +1 -1
  84. package/lib/components/shared/SourceReader.js +249 -27
  85. package/lib/components/shared/SourceReader.js.map +1 -1
  86. package/lib/components/shared/ThreeColumnRenderer.d.ts +2 -1
  87. package/lib/components/shared/ThreeColumnRenderer.js +6 -5
  88. package/lib/components/shared/ThreeColumnRenderer.js.map +1 -1
  89. package/lib/components/shared/TranslationPlaceholder.d.ts +4 -0
  90. package/lib/components/shared/TranslationPlaceholder.js +13 -0
  91. package/lib/components/shared/TranslationPlaceholder.js.map +1 -0
  92. package/lib/components/shared/index.d.ts +1 -0
  93. package/lib/components/shared/index.js +1 -0
  94. package/lib/components/shared/index.js.map +1 -1
  95. package/lib/components/shared/types.d.ts +14 -0
  96. package/lib/components/shared/types.js.map +1 -1
  97. package/lib/exporters/mantra.js +6 -2
  98. package/lib/exporters/mantra.js.map +1 -1
  99. package/package.json +33 -33
@@ -2,12 +2,16 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { BubbleMenu } from '@tiptap/react/menus';
4
4
  import { ScrollArea, Separator, ScrollBar } from '@eightyfourthousand/design-system';
5
+ import { useRef } from 'react';
5
6
  import { NodeSelector, TextAlignSelector, TextButtons } from './selectors';
7
+ import { useDismissBubbleMenu } from './useDismissBubbleMenu';
6
8
  export const MainBubbleMenu = ({ editor }) => {
9
+ const menuRef = useRef(null);
10
+ useDismissBubbleMenu(editor, menuRef);
7
11
  if (!editor) {
8
12
  return null;
9
13
  }
10
- return (_jsx(BubbleMenu, { editor: editor, options: {
14
+ return (_jsx(BubbleMenu, { ref: menuRef, editor: editor, appendTo: () => document.body, options: {
11
15
  placement: 'top',
12
16
  offset: 6,
13
17
  }, shouldShow: ({ editor, state }) => {
@@ -23,6 +27,6 @@ export const MainBubbleMenu = ({ editor }) => {
23
27
  return false;
24
28
  }
25
29
  return true;
26
- }, children: _jsxs(ScrollArea, { className: "max-w-[90vw] rounded-md border bg-popover shadow-xl", children: [_jsxs("div", { className: "flex", children: [_jsx(NodeSelector, { editor: editor }), _jsx(Separator, { orientation: "vertical", className: "h-10" }), _jsx(TextButtons, { editor: editor }), _jsx(Separator, { orientation: "vertical", className: "h-10" }), _jsx(TextAlignSelector, { editor: editor })] }), _jsx(ScrollBar, { orientation: "horizontal" })] }) }));
30
+ }, children: _jsxs(ScrollArea, { className: "max-w-[90vw] rounded-md border bg-popover shadow-xl z-50", children: [_jsxs("div", { className: "flex", children: [_jsx(NodeSelector, { editor: editor }), _jsx(Separator, { orientation: "vertical", className: "h-10" }), _jsx(TextButtons, { editor: editor }), _jsx(Separator, { orientation: "vertical", className: "h-10" }), _jsx(TextAlignSelector, { editor: editor })] }), _jsx(ScrollBar, { orientation: "horizontal" })] }) }));
27
31
  };
28
32
  //# sourceMappingURL=MainBubbleMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MainBubbleMenu.js","sourceRoot":"","sources":["../../../../../../../libs/lib-editing/src/lib/components/editor/menus/MainBubbleMenu.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE3E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,MAAM,EAA6B,EAAE,EAAE;IACtE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,UAAU,IACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;YACP,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,CAAC;SACV,EACD,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;YAChC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;YAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;YAE5B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,YAED,MAAC,UAAU,IAAC,SAAS,EAAC,qDAAqD,aACzE,eAAK,SAAS,EAAC,MAAM,aACnB,KAAC,YAAY,IAAC,MAAM,EAAE,MAAM,GAAI,EAChC,KAAC,SAAS,IAAC,WAAW,EAAC,UAAU,EAAC,SAAS,EAAC,MAAM,GAAG,EACrD,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,GAAI,EAC/B,KAAC,SAAS,IAAC,WAAW,EAAC,UAAU,EAAC,SAAS,EAAC,MAAM,GAAG,EACrD,KAAC,iBAAiB,IAAC,MAAM,EAAE,MAAM,GAAI,IACjC,EACN,KAAC,SAAS,IAAC,WAAW,EAAC,YAAY,GAAG,IAC3B,GACF,CACd,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"MainBubbleMenu.js","sourceRoot":"","sources":["../../../../../../../libs/lib-editing/src/lib/components/editor/menus/MainBubbleMenu.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,MAAM,EAA6B,EAAE,EAAE;IACtE,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,UAAU,IACT,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAC7B,OAAO,EAAE;YACP,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,CAAC;SACV,EACD,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;YAChC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;YAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;YAE5B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,YAED,MAAC,UAAU,IAAC,SAAS,EAAC,0DAA0D,aAC9E,eAAK,SAAS,EAAC,MAAM,aACnB,KAAC,YAAY,IAAC,MAAM,EAAE,MAAM,GAAI,EAChC,KAAC,SAAS,IAAC,WAAW,EAAC,UAAU,EAAC,SAAS,EAAC,MAAM,GAAG,EACrD,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,GAAI,EAC/B,KAAC,SAAS,IAAC,WAAW,EAAC,UAAU,EAAC,SAAS,EAAC,MAAM,GAAG,EACrD,KAAC,iBAAiB,IAAC,MAAM,EAAE,MAAM,GAAI,IACjC,EACN,KAAC,SAAS,IAAC,WAAW,EAAC,YAAY,GAAG,IAC3B,GACF,CACd,CAAC;AACJ,CAAC,CAAC"}
@@ -2,14 +2,18 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { BubbleMenu } from '@tiptap/react/menus';
4
4
  import { ScrollArea, Separator, ScrollBar } from '@eightyfourthousand/design-system';
5
+ import { useRef } from 'react';
5
6
  import { TranslationTextButtons } from './selectors/TranslationTextButtons';
6
7
  import { ParagraphButtons } from './selectors/ParagraphButtons';
7
8
  import { TranslationNodeSelector } from './selectors/TranslationNodeSelector';
9
+ import { useDismissBubbleMenu } from './useDismissBubbleMenu';
8
10
  export const TranslationBubbleMenu = ({ editor, }) => {
11
+ const menuRef = useRef(null);
12
+ useDismissBubbleMenu(editor, menuRef);
9
13
  if (!editor) {
10
14
  return null;
11
15
  }
12
- return (_jsx(BubbleMenu, { editor: editor, options: {
16
+ return (_jsx(BubbleMenu, { ref: menuRef, editor: editor, appendTo: () => document.body, options: {
13
17
  placement: 'top',
14
18
  offset: 6,
15
19
  }, shouldShow: ({ editor, state }) => {
@@ -25,6 +29,6 @@ export const TranslationBubbleMenu = ({ editor, }) => {
25
29
  return false;
26
30
  }
27
31
  return true;
28
- }, children: _jsxs(ScrollArea, { className: "max-w-[90vw] rounded-md border bg-popover shadow-xl z-10", children: [_jsxs("div", { className: "flex", children: [_jsx(TranslationNodeSelector, { editor: editor }), _jsx(Separator, { orientation: "vertical", className: "h-10" }), _jsx(ParagraphButtons, { editor: editor }), _jsx(Separator, { orientation: "vertical", className: "h-10" }), _jsx(TranslationTextButtons, { editor: editor })] }), _jsx(ScrollBar, { orientation: "horizontal" })] }) }));
32
+ }, children: _jsxs(ScrollArea, { className: "max-w-[90vw] rounded-md border bg-popover shadow-xl z-50", children: [_jsxs("div", { className: "flex", children: [_jsx(TranslationNodeSelector, { editor: editor }), _jsx(Separator, { orientation: "vertical", className: "h-10" }), _jsx(ParagraphButtons, { editor: editor }), _jsx(Separator, { orientation: "vertical", className: "h-10" }), _jsx(TranslationTextButtons, { editor: editor })] }), _jsx(ScrollBar, { orientation: "horizontal" })] }) }));
29
33
  };
30
34
  //# sourceMappingURL=TranslationBubbleMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TranslationBubbleMenu.js","sourceRoot":"","sources":["../../../../../../../libs/lib-editing/src/lib/components/editor/menus/TranslationBubbleMenu.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,MAAM,GAGP,EAAE,EAAE;IACH,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,UAAU,IACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;YACP,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,CAAC;SACV,EACD,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;YAChC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;YAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;YAE5B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,YAED,MAAC,UAAU,IAAC,SAAS,EAAC,0DAA0D,aAC9E,eAAK,SAAS,EAAC,MAAM,aACnB,KAAC,uBAAuB,IAAC,MAAM,EAAE,MAAM,GAAI,EAC3C,KAAC,SAAS,IAAC,WAAW,EAAC,UAAU,EAAC,SAAS,EAAC,MAAM,GAAG,EACrD,KAAC,gBAAgB,IAAC,MAAM,EAAE,MAAM,GAAI,EACpC,KAAC,SAAS,IAAC,WAAW,EAAC,UAAU,EAAC,SAAS,EAAC,MAAM,GAAG,EACrD,KAAC,sBAAsB,IAAC,MAAM,EAAE,MAAM,GAAI,IACtC,EACN,KAAC,SAAS,IAAC,WAAW,EAAC,YAAY,GAAG,IAC3B,GACF,CACd,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"TranslationBubbleMenu.js","sourceRoot":"","sources":["../../../../../../../libs/lib-editing/src/lib/components/editor/menus/TranslationBubbleMenu.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,MAAM,GAGP,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,UAAU,IACT,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAC7B,OAAO,EAAE;YACP,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,CAAC;SACV,EACD,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;YAChC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;YAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;YAE5B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,YAED,MAAC,UAAU,IAAC,SAAS,EAAC,0DAA0D,aAC9E,eAAK,SAAS,EAAC,MAAM,aACnB,KAAC,uBAAuB,IAAC,MAAM,EAAE,MAAM,GAAI,EAC3C,KAAC,SAAS,IAAC,WAAW,EAAC,UAAU,EAAC,SAAS,EAAC,MAAM,GAAG,EACrD,KAAC,gBAAgB,IAAC,MAAM,EAAE,MAAM,GAAI,EACpC,KAAC,SAAS,IAAC,WAAW,EAAC,UAAU,EAAC,SAAS,EAAC,MAAM,GAAG,EACrD,KAAC,sBAAsB,IAAC,MAAM,EAAE,MAAM,GAAI,IACtC,EACN,KAAC,SAAS,IAAC,WAAW,EAAC,YAAY,GAAG,IAC3B,GACF,CACd,CAAC;AACJ,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from './EmptyBubbleMenu';
2
2
  export * from './MainBubbleMenu';
3
3
  export * from './TranslationBubbleMenu';
4
+ export * from './useDismissBubbleMenu';
@@ -1,4 +1,5 @@
1
1
  export * from './EmptyBubbleMenu';
2
2
  export * from './MainBubbleMenu';
3
3
  export * from './TranslationBubbleMenu';
4
+ export * from './useDismissBubbleMenu';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/lib-editing/src/lib/components/editor/menus/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/lib-editing/src/lib/components/editor/menus/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Editor } from '@tiptap/core';
2
+ import { RefObject } from 'react';
3
+ /**
4
+ * Collapses the editor selection (dismissing the bubble menu) when the user
5
+ * clicks anywhere outside both the menu and the editor itself. Clicks inside
6
+ * the editor are left alone so native selection handling can run.
7
+ */
8
+ export declare const useDismissBubbleMenu: (editor: Editor | null, menuRef: RefObject<HTMLDivElement | null>) => void;
@@ -0,0 +1,35 @@
1
+ 'use client';
2
+ import { useEffect } from 'react';
3
+ /**
4
+ * Collapses the editor selection (dismissing the bubble menu) when the user
5
+ * clicks anywhere outside both the menu and the editor itself. Clicks inside
6
+ * the editor are left alone so native selection handling can run.
7
+ */
8
+ export const useDismissBubbleMenu = (editor, menuRef) => {
9
+ useEffect(() => {
10
+ if (!editor) {
11
+ return;
12
+ }
13
+ const handlePointerDown = (event) => {
14
+ const target = event.target;
15
+ if (!target) {
16
+ return;
17
+ }
18
+ if (menuRef.current?.contains(target)) {
19
+ return;
20
+ }
21
+ if (editor.view.dom.contains(target)) {
22
+ return;
23
+ }
24
+ if (editor.state.selection.empty) {
25
+ return;
26
+ }
27
+ editor.commands.setTextSelection(editor.state.selection.from);
28
+ };
29
+ document.addEventListener('pointerdown', handlePointerDown);
30
+ return () => {
31
+ document.removeEventListener('pointerdown', handlePointerDown);
32
+ };
33
+ }, [editor, menuRef]);
34
+ };
35
+ //# sourceMappingURL=useDismissBubbleMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDismissBubbleMenu.js","sourceRoot":"","sources":["../../../../../../../libs/lib-editing/src/lib/components/editor/menus/useDismissBubbleMenu.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAa,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,MAAqB,EACrB,OAAyC,EACzC,EAAE;IACF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,MAAM,iBAAiB,GAAG,CAAC,KAAmB,EAAE,EAAE;YAChD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;YAE3C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YAED,IAAI,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,OAAO;YACT,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrC,OAAO;YACT,CAAC;YAED,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBACjC,OAAO;YACT,CAAC;YAED,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QAE5D,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QACjE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC"}
@@ -11,7 +11,7 @@ export const ReaderBackMatterPage = async ({ params, }) => {
11
11
  }
12
12
  const graphqlClient = createBuildGraphQLClient();
13
13
  const withAttestations = isStaticFeatureEnabled('glossary-attestations');
14
- const [{ blocks: endnotes }, { blocks: abbreviations }, glossary, bibliography,] = await Promise.all([
14
+ const [{ blocks: endnotes, hasMoreAfter: endnotesHasMore }, { blocks: abbreviations, hasMoreAfter: abbreviationsHasMore }, glossary, bibliography,] = await Promise.all([
15
15
  getTranslationBlocks({
16
16
  client: graphqlClient,
17
17
  uuid: slug,
@@ -32,6 +32,6 @@ export const ReaderBackMatterPage = async ({ params, }) => {
32
32
  uuid: slug,
33
33
  }),
34
34
  ]);
35
- return (_jsx(ReaderBackMatterPanel, { workUuid: slug, abbreviations: abbreviations, bibliography: bibliography, endnotes: endnotes, glossary: glossary, withAttestations: withAttestations }));
35
+ return (_jsx(ReaderBackMatterPanel, { workUuid: slug, abbreviations: abbreviations, bibliography: bibliography, endnotes: endnotes, glossary: glossary, endnotesHasMore: endnotesHasMore, abbreviationsHasMore: abbreviationsHasMore, withAttestations: withAttestations }));
36
36
  };
37
37
  //# sourceMappingURL=ReaderBackMatterPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReaderBackMatterPage.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/reader/ReaderBackMatterPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,EACzC,MAAM,GAGP,EAAE,EAAE;IACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC;IAE9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,aAAa,GAAG,wBAAwB,EAAE,CAAC;IACjD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,uBAAuB,CAAC,CAAC;IAEzE,MAAM,CACJ,EAAE,MAAM,EAAE,QAAQ,EAAE,EACpB,EAAE,MAAM,EAAE,aAAa,EAAE,EACzB,QAAQ,EACR,YAAY,EACb,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,oBAAoB,CAAC;YACnB,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,UAAU;SACjB,CAAC;QACF,oBAAoB,CAAC;YACnB,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,eAAe;SACtB,CAAC;QACF,oBAAoB,CAAC;YACnB,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,IAAI;YACV,gBAAgB;SACjB,CAAC;QACF,mBAAmB,CAAC;YAClB,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,IAAI;SACX,CAAC;KACH,CAAC,CAAC;IAEH,OAAO,CACL,KAAC,qBAAqB,IACpB,QAAQ,EAAE,IAAI,EACd,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,GAClC,CACH,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ReaderBackMatterPage.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/reader/ReaderBackMatterPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,EACzC,MAAM,GAGP,EAAE,EAAE;IACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC;IAE9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,aAAa,GAAG,wBAAwB,EAAE,CAAC;IACjD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,uBAAuB,CAAC,CAAC;IAEzE,MAAM,CACJ,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,EACnD,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,EAC7D,QAAQ,EACR,YAAY,EACb,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,oBAAoB,CAAC;YACnB,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,UAAU;SACjB,CAAC;QACF,oBAAoB,CAAC;YACnB,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,eAAe;SACtB,CAAC;QACF,oBAAoB,CAAC;YACnB,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,IAAI;YACV,gBAAgB;SACjB,CAAC;QACF,mBAAmB,CAAC;YAClB,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,IAAI;SACX,CAAC;KACH,CAAC,CAAC;IAEH,OAAO,CACL,KAAC,qBAAqB,IACpB,QAAQ,EAAE,IAAI,EACd,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,EAChC,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,gBAAgB,GAClC,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -1,11 +1,13 @@
1
1
  import { BibliographyEntries } from '@eightyfourthousand/data-access';
2
2
  import type { GlossaryTermsPage } from '@eightyfourthousand/client-graphql';
3
3
  import { TranslationEditorContent } from '../editor';
4
- export declare const ReaderBackMatterPanel: ({ workUuid, endnotes, glossary, bibliography, abbreviations, withAttestations, }: {
4
+ export declare const ReaderBackMatterPanel: ({ workUuid, endnotes, glossary, bibliography, abbreviations, endnotesHasMore, abbreviationsHasMore, withAttestations, }: {
5
5
  workUuid: string;
6
6
  endnotes: TranslationEditorContent;
7
7
  glossary: GlossaryTermsPage;
8
8
  bibliography: BibliographyEntries;
9
9
  abbreviations: TranslationEditorContent;
10
+ endnotesHasMore?: boolean;
11
+ abbreviationsHasMore?: boolean;
10
12
  withAttestations?: boolean;
11
13
  }) => import("react/jsx-runtime").JSX.Element;
@@ -3,8 +3,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { useCallback } from 'react';
4
4
  import { BackMatterPanel } from '../shared/BackMatterPanel';
5
5
  import { TranslationReader } from '.';
6
- export const ReaderBackMatterPanel = ({ workUuid, endnotes, glossary, bibliography, abbreviations, withAttestations = false, }) => {
7
- const renderTranslation = useCallback(({ content, name, className }) => (_jsx(TranslationReader, { content: content, name: name, className: className, filter: name, panel: "right" })), []);
8
- return (_jsx(BackMatterPanel, { workUuid: workUuid, endnotes: endnotes, glossary: glossary, bibliography: bibliography, abbreviations: abbreviations, renderTranslation: renderTranslation, withAttestations: withAttestations }));
6
+ export const ReaderBackMatterPanel = ({ workUuid, endnotes, glossary, bibliography, abbreviations, endnotesHasMore, abbreviationsHasMore, withAttestations = false, }) => {
7
+ const renderTranslation = useCallback(({ content, name, className, hasMoreAfter }) => (_jsx(TranslationReader, { content: content, name: name, className: className, filter: name, panel: "right", hasMoreAfter: hasMoreAfter })), []);
8
+ return (_jsx(BackMatterPanel, { workUuid: workUuid, endnotes: endnotes, glossary: glossary, bibliography: bibliography, abbreviations: abbreviations, endnotesHasMore: endnotesHasMore, abbreviationsHasMore: abbreviationsHasMore, renderTranslation: renderTranslation, withAttestations: withAttestations }));
9
9
  };
10
10
  //# sourceMappingURL=ReaderBackMatterPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReaderBackMatterPanel.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/reader/ReaderBackMatterPanel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGpC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAC;AAGtC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,gBAAgB,GAAG,KAAK,GAQzB,EAAE,EAAE;IACH,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAuB,EAAE,EAAE,CAAC,CACrD,KAAC,iBAAiB,IAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,IAAI,EACZ,KAAK,EAAC,OAAO,GACb,CACH,EACD,EAAE,CACH,CAAC;IAEF,OAAO,CACL,KAAC,eAAe,IACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,GAClC,CACH,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ReaderBackMatterPanel.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/reader/ReaderBackMatterPanel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGpC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAC;AAGtC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,gBAAgB,GAAG,KAAK,GAUzB,EAAE,EAAE;IACH,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAuB,EAAE,EAAE,CAAC,CACnE,KAAC,iBAAiB,IAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,IAAI,EACZ,KAAK,EAAC,OAAO,EACb,YAAY,EAAE,YAAY,GAC1B,CACH,EACD,EAAE,CACH,CAAC;IAEF,OAAO,CACL,KAAC,eAAe,IACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,oBAAoB,EAAE,oBAAoB,EAC1C,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,GAClC,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { BODY_MATTER_FILTER, createBuildGraphQLClient, FRONT_MATTER_FILTER, getTranslationBlocks, getTranslationTitles, } from '@eightyfourthousand/client-graphql/ssr';
2
+ import { BODY_MATTER_FILTER, createBuildGraphQLClient, FRONT_MATTER_FILTER, getTranslationBlocks, getTranslationMetadataByUuid, getTranslationTitles, } from '@eightyfourthousand/client-graphql/ssr';
3
3
  import { ReaderBodyPanel } from './ReaderBodyPanel';
4
4
  import { isUuid } from '@eightyfourthousand/lib-utils';
5
5
  import { notFound } from 'next/navigation';
@@ -10,19 +10,20 @@ export const ReaderBodyPage = async ({ params, }) => {
10
10
  return notFound();
11
11
  }
12
12
  const client = createBuildGraphQLClient();
13
- const { blocks: frontMatter } = await getTranslationBlocks({
13
+ const { blocks: frontMatter, hasMoreAfter: frontMatterHasMore } = await getTranslationBlocks({
14
14
  client,
15
15
  uuid: slug,
16
16
  type: FRONT_MATTER_FILTER,
17
17
  maxPassages: INITIAL_PASSAGES,
18
18
  });
19
- const { blocks: body } = await getTranslationBlocks({
19
+ const { blocks: body, hasMoreAfter: bodyHasMore } = await getTranslationBlocks({
20
20
  client,
21
21
  uuid: slug,
22
22
  type: BODY_MATTER_FILTER,
23
23
  maxPassages: INITIAL_PASSAGES,
24
24
  });
25
25
  const titles = await getTranslationTitles({ client, uuid: slug });
26
- return (_jsx(ReaderBodyPanel, { titles: titles, frontMatter: frontMatter, body: body }));
26
+ const work = await getTranslationMetadataByUuid({ client, uuid: slug });
27
+ return (_jsx(ReaderBodyPanel, { titles: titles, frontMatter: frontMatter, body: body, frontMatterHasMore: frontMatterHasMore, bodyHasMore: bodyHasMore, publicationVersion: work?.publicationVersion }));
27
28
  };
28
29
  //# sourceMappingURL=ReaderBodyPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReaderBodyPage.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/reader/ReaderBodyPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,EACnC,MAAM,GAGP,EAAE,EAAE;IACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC;IAE9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,MAAM,GAAG,wBAAwB,EAAE,CAAC;IAE1C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,oBAAoB,CAAC;QACzD,MAAM;QACN,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,gBAAgB;KAC9B,CAAC,CAAC;IAEH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,oBAAoB,CAAC;QAClD,MAAM;QACN,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,gBAAgB;KAC9B,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAElE,OAAO,CACL,KAAC,eAAe,IAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,GAAI,CAC1E,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ReaderBodyPage.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/reader/ReaderBodyPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,EACnC,MAAM,GAGP,EAAE,EAAE;IACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC;IAE9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,MAAM,GAAG,wBAAwB,EAAE,CAAC;IAE1C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,GAC7D,MAAM,oBAAoB,CAAC;QACzB,MAAM;QACN,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,gBAAgB;KAC9B,CAAC,CAAC;IAEL,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,oBAAoB,CAC5E;QACE,MAAM;QACN,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,gBAAgB;KAC9B,CACF,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAElE,MAAM,IAAI,GAAG,MAAM,4BAA4B,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAExE,OAAO,CACL,KAAC,eAAe,IACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,WAAW,EACxB,kBAAkB,EAAE,IAAI,EAAE,kBAAkB,GAC5C,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -1,8 +1,11 @@
1
- import { Titles as TitlesData } from '@eightyfourthousand/data-access';
1
+ import { SemVer, Titles as TitlesData } from '@eightyfourthousand/data-access';
2
2
  import { TranslationEditorContent } from '../editor';
3
- export declare const ReaderBodyPanel: ({ titles, frontMatter, body, }: {
3
+ export declare const ReaderBodyPanel: ({ titles, frontMatter, body, frontMatterHasMore, bodyHasMore, publicationVersion, }: {
4
4
  titles: TitlesData;
5
5
  frontMatter: TranslationEditorContent;
6
6
  body: TranslationEditorContent;
7
+ frontMatterHasMore?: boolean;
8
+ bodyHasMore?: boolean;
7
9
  cursor?: string;
10
+ publicationVersion?: SemVer;
8
11
  }) => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { useCallback } from 'react';
4
- import { BODY_MATTER_FILTER, FRONT_MATTER_FILTER, } from '@eightyfourthousand/data-access';
3
+ import { useCallback, useEffect, useMemo, useState } from 'react';
4
+ import { BODY_MATTER_FILTER, createBrowserClient, FRONT_MATTER_FILTER, getSession, isPublishedVersion, } from '@eightyfourthousand/data-access';
5
5
  import { BodyPanel } from '../shared/BodyPanel';
6
6
  import { Titles } from '../shared/titles';
7
7
  import { TranslationReader } from './TranslationReader';
@@ -11,9 +11,28 @@ const TITLE_VARIANTS_FOR_TABS = {
11
11
  front: 'front',
12
12
  compare: 'comparison',
13
13
  };
14
- export const ReaderBodyPanel = ({ titles, frontMatter, body, }) => {
14
+ export const ReaderBodyPanel = ({ titles, frontMatter, body, frontMatterHasMore, bodyHasMore, publicationVersion, }) => {
15
+ // `undefined` while the role resolves. Gate as a reader until then so
16
+ // unpublished content never flashes before the role is known.
17
+ const [role, setRole] = useState(undefined);
18
+ useEffect(() => {
19
+ (async () => {
20
+ const session = await getSession({ client: createBrowserClient() });
21
+ // Unauthenticated visitors are treated as readers.
22
+ setRole(session?.claims.role ?? 'reader');
23
+ })();
24
+ }, []);
25
+ const translationState = useMemo(() => {
26
+ const isReader = role === undefined || role === 'reader';
27
+ const unpublished = !isPublishedVersion(publicationVersion);
28
+ if (isReader && unpublished) {
29
+ return 'unpublished';
30
+ }
31
+ const bodyEmpty = Array.isArray(body) ? body.length === 0 : !body;
32
+ return bodyEmpty ? 'empty' : 'content';
33
+ }, [role, publicationVersion, body]);
15
34
  const renderTitles = useCallback(({ titles, imprint, name }) => (_jsx(Titles, { titles: titles, imprint: imprint, variant: (TITLE_VARIANTS_FOR_TABS[name] || 'english') })), []);
16
- const renderTranslation = useCallback(({ content, name, className }) => (_jsx(TranslationReader, { content: content, name: name, className: className, filter: name === 'front' ? FRONT_MATTER_FILTER : BODY_MATTER_FILTER, panel: "main" })), []);
17
- return (_jsx(BodyPanel, { titles: titles, frontMatter: frontMatter, body: body, renderTitles: renderTitles, renderTranslation: renderTranslation, limitWhenNoTranslation: true }));
35
+ const renderTranslation = useCallback(({ content, name, className, hasMoreAfter }) => (_jsx(TranslationReader, { content: content, name: name, className: className, filter: name === 'front' ? FRONT_MATTER_FILTER : BODY_MATTER_FILTER, panel: "main", hasMoreAfter: hasMoreAfter })), []);
36
+ return (_jsx(BodyPanel, { titles: titles, frontMatter: frontMatter, body: body, frontMatterHasMore: frontMatterHasMore, bodyHasMore: bodyHasMore, renderTitles: renderTitles, renderTranslation: renderTranslation, translationState: translationState }));
18
37
  };
19
38
  //# sourceMappingURL=ReaderBodyPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReaderBodyPanel.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/reader/ReaderBodyPanel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GAEpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAiB,MAAM,kBAAkB,CAAC;AAGzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,uBAAuB,GAAqC;IAChE,WAAW,EAAE,SAAS;IACtB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,YAAY;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,MAAM,EACN,WAAW,EACX,IAAI,GAML,EAAE,EAAE;IACH,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAkB,EAAE,EAAE,CAAC,CAC7C,KAAC,MAAM,IACL,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EACL,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAkB,GAE/D,CACH,EACD,EAAE,CACH,CAAC;IAEF,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAuB,EAAE,EAAE,CAAC,CACrD,KAAC,iBAAiB,IAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,EACnE,KAAK,EAAC,MAAM,GACZ,CACH,EACD,EAAE,CACH,CAAC;IAEF,OAAO,CACL,KAAC,SAAS,IACR,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,sBAAsB,EAAE,IAAI,GAC5B,CACH,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ReaderBodyPanel.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/reader/ReaderBodyPanel.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
- export declare const ReaderLayout: ({ withHeader, left, main, right, params, initialHasTranslationContent, }: {
2
+ import type { TohokuCatalogEntry } from '@eightyfourthousand/data-access';
3
+ export declare const ReaderLayout: ({ withHeader, left, main, right, params, initialToh, initialHasTranslationContent, }: {
3
4
  withHeader?: boolean;
4
5
  left: ReactNode;
5
6
  main: ReactNode;
@@ -7,5 +8,6 @@ export declare const ReaderLayout: ({ withHeader, left, main, right, params, ini
7
8
  params: Promise<{
8
9
  slug: string;
9
10
  }>;
11
+ initialToh?: TohokuCatalogEntry;
10
12
  initialHasTranslationContent?: boolean;
11
13
  }) => import("react/jsx-runtime").JSX.Element;
@@ -3,9 +3,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { use } from 'react';
4
4
  import { NavigationProvider, ThreeColumnRenderer } from '../shared';
5
5
  import { LeftPanel, MainPanel, MainPanelHeader, RightPanel, } from '@eightyfourthousand/design-system';
6
- import { EditorHeader } from '../editor/EditorHeader';
7
- export const ReaderLayout = ({ withHeader = false, left, main, right, params, initialHasTranslationContent, }) => {
6
+ export const ReaderLayout = ({ withHeader = false, left, main, right, params, initialToh, initialHasTranslationContent, }) => {
8
7
  const { slug } = use(params);
9
- return (_jsx(NavigationProvider, { uuid: slug, initialHasTranslationContent: initialHasTranslationContent, children: _jsxs(ThreeColumnRenderer, { withHeader: withHeader, children: [_jsx(LeftPanel, { children: left }), _jsx(MainPanelHeader, { children: _jsx(EditorHeader, {}) }), _jsx(MainPanel, { children: main }), _jsx(RightPanel, { children: right })] }) }));
8
+ return (_jsx(NavigationProvider, { uuid: slug, initialToh: initialToh, initialHasTranslationContent: initialHasTranslationContent, children: _jsxs(ThreeColumnRenderer, { withHeader: withHeader, withFocusToggle: true, children: [_jsx(LeftPanel, { children: left }), _jsx(MainPanelHeader, { children: _jsx("div", { className: "h-12" }) }), _jsx(MainPanel, { children: main }), _jsx(RightPanel, { children: right })] }) }));
10
9
  };
11
10
  //# sourceMappingURL=ReaderLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReaderLayout.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/reader/ReaderLayout.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAa,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EACL,SAAS,EACT,SAAS,EACT,eAAe,EACf,UAAU,GACX,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,UAAU,GAAG,KAAK,EAClB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,MAAM,EACN,4BAA4B,GAQ7B,EAAE,EAAE;IACH,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,CACL,KAAC,kBAAkB,IACjB,IAAI,EAAE,IAAI,EACV,4BAA4B,EAAE,4BAA4B,YAE1D,MAAC,mBAAmB,IAAC,UAAU,EAAE,UAAU,aACzC,KAAC,SAAS,cAAE,IAAI,GAAa,EAC7B,KAAC,eAAe,cACd,KAAC,YAAY,KAAG,GACA,EAClB,KAAC,SAAS,cAAE,IAAI,GAAa,EAC7B,KAAC,UAAU,cAAE,KAAK,GAAc,IACZ,GACH,CACtB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ReaderLayout.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/reader/ReaderLayout.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAa,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EACL,SAAS,EACT,SAAS,EACT,eAAe,EACf,UAAU,GACX,MAAM,mCAAmC,CAAC;AAI3C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,UAAU,GAAG,KAAK,EAClB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,MAAM,EACN,UAAU,EACV,4BAA4B,GAS7B,EAAE,EAAE;IACH,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,CACL,KAAC,kBAAkB,IACjB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,4BAA4B,EAAE,4BAA4B,YAE1D,MAAC,mBAAmB,IAAC,UAAU,EAAE,UAAU,EAAE,eAAe,mBAC1D,KAAC,SAAS,cAAE,IAAI,GAAa,EAC7B,KAAC,eAAe,cACd,cAAK,SAAS,EAAC,MAAM,GAAG,GACR,EAClB,KAAC,SAAS,cAAE,IAAI,GAAa,EAC7B,KAAC,UAAU,cAAE,KAAK,GAAc,IACZ,GACH,CACtB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
1
  import { TranslationRenderer } from '../shared';
2
- export declare const TranslationReader: ({ content, className, filter, panel, name, }: TranslationRenderer) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const TranslationReader: ({ content, className, filter, panel, name, hasMoreAfter, }: TranslationRenderer) => import("react/jsx-runtime").JSX.Element;
@@ -12,8 +12,8 @@ const ReaderBody = ({ content, className, }) => {
12
12
  }
13
13
  return _jsx(TranslationEditor, { className: className });
14
14
  };
15
- export const TranslationReader = ({ content, className, filter, panel, name, }) => {
15
+ export const TranslationReader = ({ content, className, filter, panel, name, hasMoreAfter, }) => {
16
16
  const { uuid } = useNavigation();
17
- return (_jsx(PaginationProvider, { uuid: uuid, panel: panel, tab: name, filter: filter, content: content, isEditable: false, children: _jsx(ReaderBody, { content: content, className: className }) }));
17
+ return (_jsx(PaginationProvider, { uuid: uuid, panel: panel, tab: name, filter: filter, content: content, isEditable: false, hasMoreAfter: hasMoreAfter, children: _jsx(ReaderBody, { content: content, className: className }) }));
18
18
  };
19
19
  //# sourceMappingURL=TranslationReader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TranslationReader.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/reader/TranslationReader.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,EAAE,EAAE,MAAM,+BAA+B,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAuB,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,MAAM,UAAU,GAAG,CAAC,EAClB,OAAO,EACP,SAAS,GAIV,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAAC;IAElD,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9B,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,YAC1C,cAAK,SAAS,EAAC,sCAAsC,YACnD,KAAC,qBAAqB,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,QAAQ,GAAG,GAC1D,GACF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,KAAC,iBAAiB,IAAC,SAAS,EAAE,SAAS,GAAI,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,OAAO,EACP,SAAS,EACT,MAAM,EACN,KAAK,EACL,IAAI,GACgB,EAAE,EAAE;IACxB,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;IAEjC,OAAO,CACL,KAAC,kBAAkB,IACjB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,IAAI,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,KAAK,YAEjB,KAAC,UAAU,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAI,GACnC,CACtB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"TranslationReader.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/reader/TranslationReader.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,EAAE,EAAE,MAAM,+BAA+B,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAuB,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,MAAM,UAAU,GAAG,CAAC,EAClB,OAAO,EACP,SAAS,GAIV,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAAC;IAElD,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9B,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,YAC1C,cAAK,SAAS,EAAC,sCAAsC,YACnD,KAAC,qBAAqB,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,QAAQ,GAAG,GAC1D,GACF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,KAAC,iBAAiB,IAAC,SAAS,EAAE,SAAS,GAAI,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,OAAO,EACP,SAAS,EACT,MAAM,EACN,KAAK,EACL,IAAI,EACJ,YAAY,GACQ,EAAE,EAAE;IACxB,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;IAEjC,OAAO,CACL,KAAC,kBAAkB,IACjB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,IAAI,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,KAAK,EACjB,YAAY,EAAE,YAAY,YAE1B,KAAC,UAAU,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAI,GACnC,CACtB,CAAC;AACJ,CAAC,CAAC"}
@@ -18,12 +18,16 @@ const renderEndNoteLinkMark = ({ mark, children, }) => {
18
18
  notes.sort((a, b) => (a.label || '').localeCompare(b.label || ''));
19
19
  const supHtml = (n, marginClass) => {
20
20
  const cls = cn('end-note-link', n.toh, marginClass);
21
- const itemLabel = n.label?.split('.').pop() || '';
21
+ const itemLabel = escapeHTML(n.label?.split('.').pop() || '');
22
+ // Glue the marker to the text it's attached to with a word joiner (U+2060)
23
+ // so it never wraps to a new line away from its content: after the text for
24
+ // start notes, before it for end notes.
25
+ const joined = n.location === 'start' ? `${itemLabel}⁠` : `⁠${itemLabel}`;
22
26
  return (`<sup class="${escapeHTMLAttribute(cls)}"` +
23
27
  ` type="endNoteLink"` +
24
28
  ` endNote="${escapeHTMLAttribute(n.endNote)}"` +
25
29
  ` uuid="${escapeHTMLAttribute(n.uuid)}">` +
26
- `${escapeHTML(itemLabel)}</sup>`);
30
+ `${joined}</sup>`);
27
31
  };
28
32
  const start = notes
29
33
  .filter((n) => n.location === 'start')
@@ -1 +1 @@
1
- {"version":3,"file":"TranslationSSRContent.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/reader/TranslationSSRContent.tsx"],"names":[],"mappings":"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"}
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,EAAE,WAAW,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,2EAA2E;QAC3E,4EAA4E;QAC5E,wCAAwC;QACxC,MAAM,MAAM,GACV,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC;QAC7D,OAAO,CACL,eAAe,mBAAmB,CAAC,GAAG,CAAC,GAAG;YAC1C,qBAAqB;YACrB,aAAa,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG;YAC9C,UAAU,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;YACzC,GAAG,MAAM,QAAQ,CAClB,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,KAAK;SAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;SACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;SACjC,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,MAAM,GAAG,GAAG,KAAK;SACd,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;SACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAC1B,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,MAAM,IAAI,GAAI,EAAgB,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE/E,OAAO,SAAS,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC;AAC9C,CAAC,CAAC;AAUF,MAAM,aAAa,GAAG,KAAK,CAAC;AAC5B,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;AACjE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;AAEvD,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAe,EAAE;IAClD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,EAAE,IAAI,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxD,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;IACjE,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACnB,IAAiB,EACjB,SAAsB,EACtB,SAAsB,EACtB,EAAE;IACF,IAAI,IAAI,CAAC,IAAI;QAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI;YAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACvC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,GAAgB,EAAE,UAAsB,EAAE,EAAE;IAClE,4EAA4E;IAC5E,qEAAqE;IACrE,yBAAyB;IACzB,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC;QACpB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAC5B,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;KAC7B,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAExC,MAAM,OAAO,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAC9C,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,0EAA0E,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/F,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,OAAO,EACP,SAAS,EACT,UAAU,GACJ,EAAE,EAAE;IACV,MAAM,IAAI,GAAG,UAAU,IAAI,wBAAwB,CAAC;IACpD,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAE/B,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC1C,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,IAAI,GAAG,kBAAkB,CAAC;YAC9B,OAAO,EAAE,GAAG;YACZ,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,EAAE;SACjE,CAAC,CAAC;QACH,OAAO,CACL,cAAK,SAAS,EAAE,SAAS,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAI,CACzE,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC1C,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,OAAO,CAAC,KAAK,CACX,gEAAgE,EAChE,GAAG,CACJ,CAAC;QACF,OAAO,cAAK,SAAS,EAAE,SAAS,YAAG,gBAAgB,CAAC,GAAG,CAAC,GAAO,CAAC;IAClE,CAAC;AACH,CAAC,CAAC"}
@@ -3,12 +3,14 @@ import { TranslationRenderer } from './types';
3
3
  import { BibliographyEntries } from '@eightyfourthousand/data-access';
4
4
  import type { GlossaryTermsPage } from '@eightyfourthousand/client-graphql';
5
5
  import { ReactElement } from 'react';
6
- export declare const BackMatterPanel: ({ workUuid, endnotes, glossary, bibliography, abbreviations, isEditor, withAttestations, renderTranslation, }: {
6
+ export declare const BackMatterPanel: ({ workUuid, endnotes, glossary, bibliography, abbreviations, endnotesHasMore, abbreviationsHasMore, isEditor, withAttestations, renderTranslation, }: {
7
7
  workUuid: string;
8
8
  endnotes: TranslationEditorContent;
9
9
  glossary: GlossaryTermsPage;
10
10
  bibliography: BibliographyEntries;
11
11
  abbreviations: TranslationEditorContent;
12
+ endnotesHasMore?: boolean;
13
+ abbreviationsHasMore?: boolean;
12
14
  isEditor?: boolean;
13
15
  withAttestations?: boolean;
14
16
  renderTranslation: (params: TranslationRenderer) => ReactElement<TranslationRenderer>;
@@ -7,7 +7,7 @@ import { GlossaryTermList, GlossaryPaginationProvider } from './glossary';
7
7
  import { BibliographyList } from './bibliography';
8
8
  import { cn, useIsMobile } from '@eightyfourthousand/lib-utils';
9
9
  import { useScrollPositionRestore } from './hooks/useScrollPositionRestore';
10
- export const BackMatterPanel = ({ workUuid, endnotes, glossary, bibliography, abbreviations, isEditor = false, withAttestations = false, renderTranslation, }) => {
10
+ export const BackMatterPanel = ({ workUuid, endnotes, glossary, bibliography, abbreviations, endnotesHasMore, abbreviationsHasMore, isEditor = false, withAttestations = false, renderTranslation, }) => {
11
11
  const { panels, updatePanel } = useNavigation();
12
12
  const isMobile = useIsMobile();
13
13
  const scrollContainerRef = useRef(null);
@@ -21,11 +21,13 @@ export const BackMatterPanel = ({ workUuid, endnotes, glossary, bibliography, ab
21
21
  className: 'block',
22
22
  name: 'endnotes',
23
23
  panel: 'right',
24
+ hasMoreAfter: endnotesHasMore,
24
25
  }) })), hasGlossary && (_jsx(TabsContent, { value: "glossary", forceMount: true, className: "pb-8 data-[state=inactive]:hidden", children: _jsx(GlossaryPaginationProvider, { workUuid: workUuid, initialPage: glossary, withAttestations: withAttestations, children: _jsx(GlossaryTermList, { isEditor: isEditor }) }) })), bibliography.length > 0 && (_jsx(TabsContent, { value: "bibliography", forceMount: true, className: "pb-8 data-[state=inactive]:hidden", children: _jsx(BibliographyList, { content: bibliography }) })), abbreviations.length > 0 && (_jsx(TabsContent, { value: "abbreviations", forceMount: true, className: "data-[state=inactive]:hidden", children: renderTranslation({
25
26
  content: abbreviations,
26
27
  className: 'block',
27
28
  name: 'abbreviations',
28
29
  panel: 'right',
30
+ hasMoreAfter: abbreviationsHasMore,
29
31
  }) }))] }) }) })] }));
30
32
  };
31
33
  //# sourceMappingURL=BackMatterPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BackMatterPanel.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/shared/BackMatterPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BackMatterPanel.js","sourceRoot":"","sources":["../../../../../../libs/lib-editing/src/lib/components/shared/BackMatterPanel.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
1
  import { TranslationEditorContent } from '../editor';
2
2
  import { Title } from '@eightyfourthousand/data-access';
3
- import { TitlesRenderer, TranslationRenderer } from './types';
3
+ import { TitlesRenderer, TranslationRenderer, TranslationState } from './types';
4
4
  import { ReactElement } from 'react';
5
- export declare const BodyPanel: ({ titles, frontMatter, body, renderTitles, renderTranslation, limitWhenNoTranslation, }: {
5
+ export declare const BodyPanel: ({ titles, frontMatter, body, frontMatterHasMore, bodyHasMore, renderTitles, renderTranslation, translationState, }: {
6
6
  titles: Title[];
7
7
  frontMatter: TranslationEditorContent;
8
8
  body: TranslationEditorContent;
9
+ frontMatterHasMore?: boolean;
10
+ bodyHasMore?: boolean;
9
11
  renderTitles: (params: TitlesRenderer) => ReactElement<TitlesRenderer>;
10
12
  renderTranslation: (params: TranslationRenderer) => ReactElement<TranslationRenderer>;
11
- limitWhenNoTranslation?: boolean;
13
+ translationState?: TranslationState;
12
14
  }) => import("react/jsx-runtime").JSX.Element;