@eightyfourthousand/lib-editing 2026.6.5 → 2026.7.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 (76) hide show
  1. package/lib/components/editor/PaginationProvider.js +7 -39
  2. package/lib/components/editor/PaginationProvider.js.map +1 -1
  3. package/lib/components/editor/TranslationBuilder.js +0 -1
  4. package/lib/components/editor/TranslationBuilder.js.map +1 -1
  5. package/lib/components/editor/TranslationEditor.js +2 -1
  6. package/lib/components/editor/TranslationEditor.js.map +1 -1
  7. package/lib/components/editor/extensions/Abbreviation/Abbreviation.js +6 -0
  8. package/lib/components/editor/extensions/Abbreviation/Abbreviation.js.map +1 -1
  9. package/lib/components/editor/extensions/Bold.js +5 -15
  10. package/lib/components/editor/extensions/Bold.js.map +1 -1
  11. package/lib/components/editor/extensions/Foreign/Foreign.js +5 -3
  12. package/lib/components/editor/extensions/Foreign/Foreign.js.map +1 -1
  13. package/lib/components/editor/extensions/GlobalConfig.js +3 -0
  14. package/lib/components/editor/extensions/GlobalConfig.js.map +1 -1
  15. package/lib/components/editor/extensions/GlossaryInstance/GlossaryInstanceNode.ssr.js +9 -2
  16. package/lib/components/editor/extensions/GlossaryInstance/GlossaryInstanceNode.ssr.js.map +1 -1
  17. package/lib/components/editor/extensions/Indent.js +2 -7
  18. package/lib/components/editor/extensions/Indent.js.map +1 -1
  19. package/lib/components/editor/extensions/InternalLink/InternalLink.ssr.js +12 -0
  20. package/lib/components/editor/extensions/InternalLink/InternalLink.ssr.js.map +1 -1
  21. package/lib/components/editor/extensions/Italic.js +5 -15
  22. package/lib/components/editor/extensions/Italic.js.map +1 -1
  23. package/lib/components/editor/extensions/LeadingSpace.js +2 -7
  24. package/lib/components/editor/extensions/LeadingSpace.js.map +1 -1
  25. package/lib/components/editor/extensions/Link/Link.ssr.js +11 -1
  26. package/lib/components/editor/extensions/Link/Link.ssr.js.map +1 -1
  27. package/lib/components/editor/extensions/List.js +11 -20
  28. package/lib/components/editor/extensions/List.js.map +1 -1
  29. package/lib/components/editor/extensions/Mantra/Mantra.js +5 -5
  30. package/lib/components/editor/extensions/Mantra/Mantra.js.map +1 -1
  31. package/lib/components/editor/extensions/Mention/Mention.d.ts +19 -2
  32. package/lib/components/editor/extensions/Mention/Mention.js +29 -2
  33. package/lib/components/editor/extensions/Mention/Mention.js.map +1 -1
  34. package/lib/components/editor/extensions/Mention/Mention.ssr.d.ts +1 -0
  35. package/lib/components/editor/extensions/Mention/Mention.ssr.js +15 -8
  36. package/lib/components/editor/extensions/Mention/Mention.ssr.js.map +1 -1
  37. package/lib/components/editor/extensions/Mention/MentionAdvancedOverlay.d.ts +12 -0
  38. package/lib/components/editor/extensions/Mention/MentionAdvancedOverlay.js +39 -0
  39. package/lib/components/editor/extensions/Mention/MentionAdvancedOverlay.js.map +1 -0
  40. package/lib/components/editor/extensions/Mention/MentionHoverContent.d.ts +7 -0
  41. package/lib/components/editor/extensions/Mention/MentionHoverContent.js +88 -45
  42. package/lib/components/editor/extensions/Mention/MentionHoverContent.js.map +1 -1
  43. package/lib/components/editor/extensions/Mention/MentionList.d.ts +15 -0
  44. package/lib/components/editor/extensions/Mention/MentionList.js +70 -0
  45. package/lib/components/editor/extensions/Mention/MentionList.js.map +1 -0
  46. package/lib/components/editor/extensions/Mention/MentionSearch.d.ts +18 -0
  47. package/lib/components/editor/extensions/Mention/MentionSearch.js +34 -0
  48. package/lib/components/editor/extensions/Mention/MentionSearch.js.map +1 -0
  49. package/lib/components/editor/extensions/Mention/MentionSuggestion.d.ts +10 -0
  50. package/lib/components/editor/extensions/Mention/MentionSuggestion.js +78 -0
  51. package/lib/components/editor/extensions/Mention/MentionSuggestion.js.map +1 -0
  52. package/lib/components/editor/extensions/Mention/useMentionSearch.d.ts +34 -0
  53. package/lib/components/editor/extensions/Mention/useMentionSearch.js +89 -0
  54. package/lib/components/editor/extensions/Mention/useMentionSearch.js.map +1 -0
  55. package/lib/components/editor/extensions/ParagraphIndent.js +4 -9
  56. package/lib/components/editor/extensions/ParagraphIndent.js.map +1 -1
  57. package/lib/components/editor/extensions/Passage/PassageNode.ssr.js +5 -2
  58. package/lib/components/editor/extensions/Passage/PassageNode.ssr.js.map +1 -1
  59. package/lib/components/editor/extensions/SmallCaps.js +5 -14
  60. package/lib/components/editor/extensions/SmallCaps.js.map +1 -1
  61. package/lib/components/editor/extensions/Subscript.js +5 -15
  62. package/lib/components/editor/extensions/Subscript.js.map +1 -1
  63. package/lib/components/editor/extensions/Superscript.js +5 -15
  64. package/lib/components/editor/extensions/Superscript.js.map +1 -1
  65. package/lib/components/editor/extensions/Underline.js +5 -15
  66. package/lib/components/editor/extensions/Underline.js.map +1 -1
  67. package/lib/components/editor/hooks/useBlockEditor.js +1 -0
  68. package/lib/components/editor/hooks/useBlockEditor.js.map +1 -1
  69. package/lib/components/editor/hooks/useTranslationExtensions.d.ts +1 -1
  70. package/lib/components/shared/glossary/GlossaryPaginationProvider.js +5 -8
  71. package/lib/components/shared/glossary/GlossaryPaginationProvider.js.map +1 -1
  72. package/lib/exporters/mention.js +1 -0
  73. package/lib/exporters/mention.js.map +1 -1
  74. package/lib/transformers/mention.js +2 -1
  75. package/lib/transformers/mention.js.map +1 -1
  76. package/package.json +7 -7
@@ -0,0 +1,70 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { cn } from '@eightyfourthousand/lib-utils';
4
+ import { Loader2Icon, SlidersHorizontalIcon } from 'lucide-react';
5
+ import { forwardRef, useEffect, useImperativeHandle, useMemo, useState, } from 'react';
6
+ import { groupMentionResults, useMentionSearch, } from './useMentionSearch';
7
+ /**
8
+ * The `@` mention dropdown. The suggestion plugin supplies the typed `query`;
9
+ * this component owns the debounced search, keyboard navigation, and selection.
10
+ * Results are grouped by entity type (Notion-style) and scoped to the current
11
+ * work; keyboard navigation runs across the flattened, grouped order. The
12
+ * "Advanced" button hands off to a dedicated dialog that can search any work
13
+ * (a focusable field cannot live in this suggestion popup without closing it).
14
+ */
15
+ const MentionList = forwardRef((props, ref) => {
16
+ const { results, loading } = useMentionSearch(props.query);
17
+ const [selectedIndex, setSelectedIndex] = useState(0);
18
+ const openAdvanced = () => {
19
+ const { editor, range, query } = props;
20
+ const pos = range.from;
21
+ // Remove the `@…` trigger so the suggestion exits, then hand off to the
22
+ // stable overlay (which owns its own focus and work scope).
23
+ editor.chain().focus().deleteRange(range).run();
24
+ editor.storage.mention.openAdvanced?.({ pos, query });
25
+ };
26
+ const groups = useMemo(() => groupMentionResults(results), [results]);
27
+ // Flattened, grouped order — what selectedIndex and the arrow keys index into.
28
+ const ordered = useMemo(() => groups.flatMap((g) => g.items), [groups]);
29
+ const indexOf = useMemo(() => {
30
+ const map = new Map();
31
+ ordered.forEach((item, i) => map.set(item, i));
32
+ return map;
33
+ }, [ordered]);
34
+ useEffect(() => {
35
+ setSelectedIndex(0);
36
+ }, [ordered]);
37
+ const selectItem = (index) => {
38
+ const item = ordered[index];
39
+ if (item) {
40
+ props.command(item);
41
+ }
42
+ };
43
+ useImperativeHandle(ref, () => ({
44
+ onKeyDown: ({ event }) => {
45
+ if (ordered.length === 0) {
46
+ return false;
47
+ }
48
+ if (event.key === 'ArrowUp') {
49
+ setSelectedIndex((selectedIndex + ordered.length - 1) % ordered.length);
50
+ return true;
51
+ }
52
+ if (event.key === 'ArrowDown') {
53
+ setSelectedIndex((selectedIndex + 1) % ordered.length);
54
+ return true;
55
+ }
56
+ if (event.key === 'Enter') {
57
+ selectItem(selectedIndex);
58
+ return true;
59
+ }
60
+ return false;
61
+ },
62
+ }));
63
+ return (_jsxs("div", { className: "z-50 bg-popover flex flex-col rounded-md border shadow-md p-1 w-80", children: [_jsx("div", { className: "flex flex-col max-h-[280px] overflow-y-auto", children: ordered.length > 0 ? (groups.map((group) => (_jsxs("div", { className: "flex flex-col", children: [_jsx("div", { className: "px-2 pt-2 pb-1 text-[10px] font-medium uppercase tracking-wide text-muted-foreground", children: group.label }), group.items.map((item) => {
64
+ const index = indexOf.get(item) ?? -1;
65
+ return (_jsxs("div", { className: cn('flex items-baseline gap-2 px-2 py-1.5 rounded-md cursor-pointer text-foreground hover:bg-muted', { 'bg-muted': index === selectedIndex }), onClick: () => props.command(item), children: [_jsx("span", { className: "shrink-0 font-medium text-sm text-accent", children: item.label }), item.text && (_jsx("span", { className: "text-sm truncate text-foreground", children: item.text }))] }, `${item.linkType}:${item.entity}`));
66
+ })] }, group.type)))) : (_jsx("div", { className: "flex items-center gap-2 px-3 py-2 text-sm text-muted-foreground", children: loading ? (_jsxs(_Fragment, { children: [_jsx(Loader2Icon, { className: "size-4 animate-spin" }), "Searching\u2026"] })) : props.query.trim() ? ('No results') : ('Type to search entities…') })) }), _jsx("div", { className: "border-t mt-1 pt-1", children: _jsxs("button", { type: "button", className: "flex w-full items-center gap-2 px-2 py-1.5 rounded-md text-sm text-muted-foreground hover:bg-muted hover:text-foreground", onClick: openAdvanced, children: [_jsx(SlidersHorizontalIcon, { className: "size-4" }), "Advanced search\u2026"] }) })] }));
67
+ });
68
+ MentionList.displayName = 'MentionList';
69
+ export default MentionList;
70
+ //# sourceMappingURL=MentionList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MentionList.js","sourceRoot":"","sources":["../../../../../../../../libs/lib-editing/src/lib/components/editor/extensions/Mention/MentionList.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { MentionLinkType } from './useMentionSearch';
2
+ /**
3
+ * Entity picker used inside the mention hover card (edit mode). Mirrors
4
+ * GlossarySearch: a debounced search input over the entity search. Results are
5
+ * grouped by entity type and scoped to a work (defaults to the current work,
6
+ * re-targetable via the toh field). Selecting a result reports its entity UUID,
7
+ * link type, and label.
8
+ */
9
+ export declare const MentionSearch: ({ initialQuery, autoFocus, onSelect, }: {
10
+ initialQuery?: string;
11
+ autoFocus?: boolean;
12
+ onSelect: (result: {
13
+ entity: string;
14
+ linkType: MentionLinkType;
15
+ label: string;
16
+ isSameWork: boolean;
17
+ }) => void;
18
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,34 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Input } from '@eightyfourthousand/design-system';
4
+ import { Loader2Icon } from 'lucide-react';
5
+ import { useState } from 'react';
6
+ import { useNavigation } from '../../../shared';
7
+ import { groupMentionResults, useMentionSearch, } from './useMentionSearch';
8
+ /**
9
+ * Entity picker used inside the mention hover card (edit mode). Mirrors
10
+ * GlossarySearch: a debounced search input over the entity search. Results are
11
+ * grouped by entity type and scoped to a work (defaults to the current work,
12
+ * re-targetable via the toh field). Selecting a result reports its entity UUID,
13
+ * link type, and label.
14
+ */
15
+ export const MentionSearch = ({ initialQuery = '', autoFocus = true, onSelect, }) => {
16
+ const { toh: navToh } = useNavigation();
17
+ const [query, setQuery] = useState(initialQuery);
18
+ const [toh, setToh] = useState(navToh ?? '');
19
+ const { results, loading } = useMentionSearch(query, toh);
20
+ const groups = groupMentionResults(results);
21
+ // A result is "same work" (in-panel navigation) only when it is a
22
+ // work-internal type AND the searched work is the current document's work.
23
+ const searchingCurrentWork = (toh.trim() || navToh) === navToh;
24
+ return (_jsxs("div", { className: "flex flex-col gap-2 w-72", children: [_jsxs("div", { className: "relative", children: [_jsx(Input, { autoFocus: autoFocus, placeholder: "Search works, passages, folios, glossary\u2026", value: query, onChange: (e) => setQuery(e.target.value) }), loading && (_jsx(Loader2Icon, { className: "absolute right-2 top-1/2 -translate-y-1/2 size-4 animate-spin text-muted-foreground" }))] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "shrink-0 text-xs text-muted-foreground", children: "Work" }), _jsx(Input, { placeholder: "toh\u2026", className: "h-7 text-xs", value: toh, onChange: (e) => setToh(e.target.value) })] }), _jsx("div", { className: "flex flex-col max-h-64 overflow-y-auto", children: groups.length > 0
25
+ ? groups.map((group) => (_jsxs("div", { className: "flex flex-col", children: [_jsx("div", { className: "px-2 pt-2 pb-1 text-[10px] font-medium uppercase tracking-wide text-muted-foreground", children: group.label }), group.items.map((item) => (_jsxs("div", { className: "flex items-baseline gap-2 px-2 py-1.5 rounded-md cursor-pointer text-foreground hover:bg-muted", onClick: () => onSelect({
26
+ entity: item.entity,
27
+ linkType: item.linkType,
28
+ label: item.label,
29
+ isSameWork: item.linkType !== 'work' && searchingCurrentWork,
30
+ }), children: [_jsx("span", { className: "shrink-0 font-medium text-sm text-accent", children: item.label }), item.text && (_jsx("span", { className: "text-sm truncate text-foreground", children: item.text }))] }, `${item.linkType}:${item.entity}`)))] }, group.type)))
31
+ : query.trim() &&
32
+ !loading && (_jsx("div", { className: "px-3 py-2 text-sm text-muted-foreground", children: "No results" })) })] }));
33
+ };
34
+ //# sourceMappingURL=MentionSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MentionSearch.js","sourceRoot":"","sources":["../../../../../../../../libs/lib-editing/src/lib/components/editor/extensions/Mention/MentionSearch.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { PluginKey } from '@tiptap/pm/state';
2
+ import { SuggestionOptions } from '@tiptap/suggestion';
3
+ import { MentionSearchResult } from './useMentionSearch';
4
+ export declare const mentionSuggestionPluginKey: PluginKey<any>;
5
+ /**
6
+ * `@`-triggered suggestion that inserts a Mention referencing a searched entity.
7
+ * Data is fetched inside <MentionList> (debounced lib-search); the items list is
8
+ * intentionally empty here since results are query-driven and async.
9
+ */
10
+ export declare const mentionSuggestion: Omit<SuggestionOptions<MentionSearchResult>, 'editor'>;
@@ -0,0 +1,78 @@
1
+ import { PluginKey } from '@tiptap/pm/state';
2
+ import { ReactRenderer } from '@tiptap/react';
3
+ import tippy from 'tippy.js';
4
+ import MentionList from './MentionList';
5
+ export const mentionSuggestionPluginKey = new PluginKey('mentionSuggestion');
6
+ /**
7
+ * `@`-triggered suggestion that inserts a Mention referencing a searched entity.
8
+ * Data is fetched inside <MentionList> (debounced lib-search); the items list is
9
+ * intentionally empty here since results are query-driven and async.
10
+ */
11
+ export const mentionSuggestion = {
12
+ char: '@',
13
+ pluginKey: mentionSuggestionPluginKey,
14
+ // Entity labels (work titles, glossary terms, etc.) contain spaces, so the
15
+ // query must survive them. Without this, the first space ends the match and
16
+ // closes the popup.
17
+ allowSpaces: true,
18
+ items: () => [],
19
+ command: ({ editor, range, props, }) => {
20
+ // Seed displayText with the picker label for immediate display. It is not
21
+ // persisted, so the canonical label resolves on load (e.g. folios render as
22
+ // "[F.x.y]"); a persisted override can be set via the mention hover card.
23
+ editor
24
+ .chain()
25
+ .focus()
26
+ .deleteRange(range)
27
+ .setMention(props.entity, props.linkType, props.label, props.linkType !== 'work')
28
+ .run();
29
+ },
30
+ render: () => {
31
+ let component;
32
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
33
+ let popup;
34
+ return {
35
+ onStart: (props) => {
36
+ component = new ReactRenderer(MentionList, {
37
+ props,
38
+ editor: props.editor,
39
+ });
40
+ // Use the live clientRect function so the popup tracks the caret from
41
+ // the first frame instead of anchoring to a stale snapshot.
42
+ const getReferenceClientRect = props.clientRect
43
+ ? () => props.clientRect?.() ?? new DOMRect()
44
+ : null;
45
+ popup = tippy('body', {
46
+ getReferenceClientRect,
47
+ content: component.element,
48
+ showOnCreate: true,
49
+ interactive: true,
50
+ trigger: 'manual',
51
+ placement: 'bottom-start',
52
+ appendTo: () => document.body,
53
+ });
54
+ },
55
+ onUpdate(props) {
56
+ component.updateProps(props);
57
+ if (!props.clientRect) {
58
+ return;
59
+ }
60
+ popup[0].setProps({
61
+ getReferenceClientRect: props.clientRect,
62
+ });
63
+ },
64
+ onKeyDown(props) {
65
+ if (props.event.key === 'Escape') {
66
+ popup[0].hide();
67
+ return true;
68
+ }
69
+ return component.ref?.onKeyDown(props) ?? false;
70
+ },
71
+ onExit() {
72
+ component.destroy();
73
+ popup[0].destroy();
74
+ },
75
+ };
76
+ },
77
+ };
78
+ //# sourceMappingURL=MentionSuggestion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MentionSuggestion.js","sourceRoot":"","sources":["../../../../../../../../libs/lib-editing/src/lib/components/editor/extensions/Mention/MentionSuggestion.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAmB,MAAM,UAAU,CAAC;AAC3C,OAAO,WAAkC,MAAM,eAAe,CAAC;AAG/D,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAC;AAE7E;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAG1B;IACF,IAAI,EAAE,GAAG;IACT,SAAS,EAAE,0BAA0B;IACrC,2EAA2E;IAC3E,4EAA4E;IAC5E,oBAAoB;IACpB,WAAW,EAAE,IAAI;IACjB,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;IACf,OAAO,EAAE,CAAC,EACR,MAAM,EACN,KAAK,EACL,KAAK,GAKN,EAAE,EAAE;QACH,0EAA0E;QAC1E,4EAA4E;QAC5E,0EAA0E;QAC1E,MAAM;aACH,KAAK,EAAE;aACP,KAAK,EAAE;aACP,WAAW,CAAC,KAAK,CAAC;aAClB,UAAU,CACT,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,QAAQ,KAAK,MAAM,CAC1B;aACA,GAAG,EAAE,CAAC;IACX,CAAC;IACD,MAAM,EAAE,GAAG,EAAE;QACX,IAAI,SAGH,CAAC;QACF,8DAA8D;QAC9D,IAAI,KAAsB,CAAC;QAE3B,OAAO;YACL,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjB,SAAS,GAAG,IAAI,aAAa,CAAC,WAAW,EAAE;oBACzC,KAAK;oBACL,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAC;gBAEH,sEAAsE;gBACtE,4DAA4D;gBAC5D,MAAM,sBAAsB,GAAG,KAAK,CAAC,UAAU;oBAC7C,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,IAAI,IAAI,OAAO,EAAE;oBAC7C,CAAC,CAAC,IAAI,CAAC;gBACT,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE;oBACpB,sBAAsB;oBACtB,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,YAAY,EAAE,IAAI;oBAClB,WAAW,EAAE,IAAI;oBACjB,OAAO,EAAE,QAAQ;oBACjB,SAAS,EAAE,cAAc;oBACzB,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI;iBAC9B,CAAC,CAAC;YACL,CAAC;YAED,QAAQ,CAAC,KAAK;gBACZ,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAE7B,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;oBACtB,OAAO;gBACT,CAAC;gBAED,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAChB,sBAAsB,EAAE,KAAK,CAAC,UAAU;iBACzC,CAAC,CAAC;YACL,CAAC;YAED,SAAS,CAAC,KAAK;gBACb,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;oBACjC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAChB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;YAClD,CAAC;YAED,MAAM;gBACJ,SAAS,CAAC,OAAO,EAAE,CAAC;gBACpB,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,34 @@
1
+ export type MentionLinkType = 'work' | 'passage' | 'folio' | 'bibliography' | 'glossary';
2
+ export interface MentionSearchResult {
3
+ /** UUID of the linked entity (becomes the mention item's `entity`). */
4
+ entity: string;
5
+ linkType: MentionLinkType;
6
+ /** Short identifier shown as the primary label. */
7
+ label: string;
8
+ /** Secondary descriptive text shown beneath the label. */
9
+ text: string;
10
+ }
11
+ /** Display order and section headings for grouped mention results. */
12
+ export declare const MENTION_TYPE_ORDER: MentionLinkType[];
13
+ export declare const MENTION_TYPE_LABELS: Record<MentionLinkType, string>;
14
+ export interface MentionResultGroup {
15
+ type: MentionLinkType;
16
+ label: string;
17
+ items: MentionSearchResult[];
18
+ }
19
+ /** Group results by entity type, preserving the canonical section order. */
20
+ export declare const groupMentionResults: (results: MentionSearchResult[]) => MentionResultGroup[];
21
+ /**
22
+ * Debounced entity search backed by the top-level GraphQL `search` query
23
+ * (data-access `search_entities`). Returns mention candidates: other works
24
+ * (global) plus passages, folios, bibliographies, and glossary terms scoped to
25
+ * a work.
26
+ *
27
+ * The searched work defaults to the current work but can be re-targeted with a
28
+ * `toh` override. When the toh differs from the current work's, the known
29
+ * workUuid is dropped so the server resolves the work from the toh.
30
+ */
31
+ export declare const useMentionSearch: (query: string, toh?: string) => {
32
+ results: MentionSearchResult[];
33
+ loading: boolean;
34
+ };
@@ -0,0 +1,89 @@
1
+ 'use client';
2
+ import { createGraphQLClient, searchEntities, } from '@eightyfourthousand/client-graphql';
3
+ import { useCallback, useEffect, useRef, useState } from 'react';
4
+ import { useNavigation } from '../../../shared';
5
+ const DEBOUNCE_MS = 300;
6
+ /** Display order and section headings for grouped mention results. */
7
+ export const MENTION_TYPE_ORDER = [
8
+ 'passage',
9
+ 'folio',
10
+ 'work',
11
+ 'glossary',
12
+ 'bibliography',
13
+ ];
14
+ export const MENTION_TYPE_LABELS = {
15
+ work: 'Works',
16
+ passage: 'Passages',
17
+ folio: 'Folios',
18
+ bibliography: 'Bibliography',
19
+ glossary: 'Glossary',
20
+ };
21
+ /** Group results by entity type, preserving the canonical section order. */
22
+ export const groupMentionResults = (results) => MENTION_TYPE_ORDER.map((type) => ({
23
+ type,
24
+ label: MENTION_TYPE_LABELS[type],
25
+ items: results.filter((r) => r.linkType === type),
26
+ })).filter((group) => group.items.length > 0);
27
+ /**
28
+ * Debounced entity search backed by the top-level GraphQL `search` query
29
+ * (data-access `search_entities`). Returns mention candidates: other works
30
+ * (global) plus passages, folios, bibliographies, and glossary terms scoped to
31
+ * a work.
32
+ *
33
+ * The searched work defaults to the current work but can be re-targeted with a
34
+ * `toh` override. When the toh differs from the current work's, the known
35
+ * workUuid is dropped so the server resolves the work from the toh.
36
+ */
37
+ export const useMentionSearch = (query, toh) => {
38
+ const { uuid: navWorkUuid, toh: navToh } = useNavigation();
39
+ const effectiveToh = (toh ?? navToh ?? '').trim() || undefined;
40
+ // Fast path: only pass the known workUuid when searching the current work.
41
+ // Otherwise let the toh resolve the target work server-side.
42
+ const workUuid = effectiveToh === navToh ? navWorkUuid : undefined;
43
+ const [results, setResults] = useState([]);
44
+ const [loading, setLoading] = useState(false);
45
+ const debounceRef = useRef(undefined);
46
+ const requestId = useRef(0);
47
+ const runSearch = useCallback(async (text) => {
48
+ if (!text.trim()) {
49
+ setResults([]);
50
+ setLoading(false);
51
+ return;
52
+ }
53
+ const id = ++requestId.current;
54
+ setLoading(true);
55
+ const client = createGraphQLClient();
56
+ const matches = await searchEntities({
57
+ client,
58
+ query: text.trim(),
59
+ workUuid,
60
+ toh: effectiveToh,
61
+ // Top 5 per category (the SQL applies the limit per entity type).
62
+ limit: 5,
63
+ });
64
+ // Ignore out-of-order responses.
65
+ if (id !== requestId.current) {
66
+ return;
67
+ }
68
+ setResults(matches.map((m) => ({
69
+ entity: m.uuid,
70
+ linkType: m.type,
71
+ label: m.label,
72
+ text: m.text,
73
+ })));
74
+ setLoading(false);
75
+ }, [workUuid, effectiveToh]);
76
+ useEffect(() => {
77
+ if (debounceRef.current) {
78
+ clearTimeout(debounceRef.current);
79
+ }
80
+ debounceRef.current = setTimeout(() => runSearch(query), DEBOUNCE_MS);
81
+ return () => {
82
+ if (debounceRef.current) {
83
+ clearTimeout(debounceRef.current);
84
+ }
85
+ };
86
+ }, [query, runSearch]);
87
+ return { results, loading };
88
+ };
89
+ //# sourceMappingURL=useMentionSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMentionSearch.js","sourceRoot":"","sources":["../../../../../../../../libs/lib-editing/src/lib/components/editor/extensions/Mention/useMentionSearch.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Extension, mergeAttributes } from '@tiptap/core';
1
+ import { Extension } from '@tiptap/core';
2
2
  export const ParagraphIndent = Extension.create({
3
3
  name: 'paragraphIndent',
4
4
  addOptions() {
@@ -15,14 +15,9 @@ export const ParagraphIndent = Extension.create({
15
15
  hasParagraphIndent: {
16
16
  default: this.options.defaultHasParagraphIndent,
17
17
  parseHTML: (element) => element.className.includes('conditional-indent'),
18
- renderHTML: (attributes) => {
19
- if (attributes.hasParagraphIndent) {
20
- return mergeAttributes(attributes, {
21
- class: 'conditional-indent',
22
- });
23
- }
24
- return mergeAttributes(attributes, { class: 'no-indent' });
25
- },
18
+ renderHTML: (attributes) => attributes.hasParagraphIndent
19
+ ? { class: 'conditional-indent' }
20
+ : { class: 'no-indent' },
26
21
  },
27
22
  },
28
23
  },
@@ -1 +1 @@
1
- {"version":3,"file":"ParagraphIndent.js","sourceRoot":"","sources":["../../../../../../../libs/lib-editing/src/lib/components/editor/extensions/ParagraphIndent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AA2B1D,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAyB;IACtE,IAAI,EAAE,iBAAiB;IACvB,UAAU;QACR,OAAO;YACL,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,yBAAyB,EAAE,KAAK;SACjC,CAAC;IACJ,CAAC;IACD,mBAAmB;QACjB,OAAO;YACL;gBACE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;gBACzB,UAAU,EAAE;oBACV,kBAAkB,EAAE;wBAClB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,yBAAyB;wBAC/C,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CACrB,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC;wBAClD,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE;4BACzB,IAAI,UAAU,CAAC,kBAAkB,EAAE,CAAC;gCAClC,OAAO,eAAe,CAAC,UAAU,EAAE;oCACjC,KAAK,EAAE,oBAAoB;iCAC5B,CAAC,CAAC;4BACL,CAAC;4BACD,OAAO,eAAe,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;wBAC7D,CAAC;qBACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,WAAW;QACT,OAAO;YACL,kBAAkB,EAChB,GAAG,EAAE,CACL,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;qBACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAC9D;qBACA,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;YACH,oBAAoB,EAClB,GAAG,EAAE,CACL,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;qBACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;qBACnE,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;YACH,qBAAqB,EACnB,GAAG,EAAE,CACL,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACvB,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;oBAClD,OAAO,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBACzC,CAAC;gBACD,OAAO,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YACvC,CAAC;SACJ,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"ParagraphIndent.js","sourceRoot":"","sources":["../../../../../../../libs/lib-editing/src/lib/components/editor/extensions/ParagraphIndent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA2BzC,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAyB;IACtE,IAAI,EAAE,iBAAiB;IACvB,UAAU;QACR,OAAO;YACL,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,yBAAyB,EAAE,KAAK;SACjC,CAAC;IACJ,CAAC;IACD,mBAAmB;QACjB,OAAO;YACL;gBACE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;gBACzB,UAAU,EAAE;oBACV,kBAAkB,EAAE;wBAClB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,yBAAyB;wBAC/C,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CACrB,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC;wBAClD,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE,CACzB,UAAU,CAAC,kBAAkB;4BAC3B,CAAC,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE;4BACjC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;qBAC7B;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,WAAW;QACT,OAAO;YACL,kBAAkB,EAChB,GAAG,EAAE,CACL,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;qBACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAC9D;qBACA,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;YACH,oBAAoB,EAClB,GAAG,EAAE,CACL,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACf,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;qBACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;qBACnE,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;YACH,qBAAqB,EACnB,GAAG,EAAE,CACL,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACvB,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;oBAClD,OAAO,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBACzC,CAAC;gBACD,OAAO,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YACvC,CAAC;SACJ,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -32,18 +32,21 @@ export const PassageNodeSSR = Node.create({
32
32
  label: {
33
33
  default: null,
34
34
  parseHTML: (element) => element.getAttribute('label'),
35
- renderHTML: (attributes) => mergeAttributes(attributes, { label: attributes.label }),
35
+ renderHTML: (attributes) => attributes.label ? { label: attributes.label } : {},
36
36
  },
37
37
  sort: {
38
38
  default: 0,
39
39
  parseHTML: (element) => element.getAttribute('sort'),
40
- renderHTML: (attributes) => mergeAttributes(attributes, { sort: attributes.sort }),
40
+ renderHTML: (attributes) => ({ sort: attributes.sort }),
41
41
  },
42
+ // Internal editor state — never serialize to the public SSR markup.
42
43
  alignments: {
43
44
  default: {},
45
+ renderHTML: () => ({}),
44
46
  },
45
47
  references: {
46
48
  default: [],
49
+ renderHTML: () => ({}),
47
50
  },
48
51
  };
49
52
  },
@@ -1 +1 @@
1
- {"version":3,"file":"PassageNode.ssr.js","sourceRoot":"","sources":["../../../../../../../../libs/lib-editing/src/lib/components/editor/extensions/Passage/PassageNode.ssr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PassageNode.ssr.js","sourceRoot":"","sources":["../../../../../../../../libs/lib-editing/src/lib/components/editor/extensions/Passage/PassageNode.ssr.ts"],"names":[],"mappings":"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"}
@@ -10,28 +10,19 @@ export const SmallCaps = Mark.create({
10
10
  type: {
11
11
  default: undefined,
12
12
  parseHTML: (element) => element.getAttribute('data-type'),
13
- renderHTML(attributes) {
14
- return mergeAttributes(attributes, { 'data-type': attributes.type });
15
- },
13
+ renderHTML: (attributes) => attributes.type ? { 'data-type': attributes.type } : {},
16
14
  },
17
15
  textStyle: {
18
16
  default: undefined,
19
17
  parseHTML: (element) => element.getAttribute('data-text-style'),
20
- renderHTML(attributes) {
21
- return mergeAttributes(attributes, {
22
- 'data-text-style': attributes.textStyle,
23
- });
24
- },
18
+ renderHTML: (attributes) => attributes.textStyle
19
+ ? { 'data-text-style': attributes.textStyle }
20
+ : {},
25
21
  },
26
22
  lang: {
27
23
  default: undefined,
28
24
  parseHTML: (element) => element.getAttribute('data-lang'),
29
- renderHTML(attributes) {
30
- if (!attributes.lang) {
31
- return attributes;
32
- }
33
- return mergeAttributes(attributes, { 'data-lang': attributes.lang });
34
- },
25
+ renderHTML: (attributes) => attributes.lang ? { 'data-lang': attributes.lang } : {},
35
26
  },
36
27
  };
37
28
  },
@@ -1 +1 @@
1
- {"version":3,"file":"SmallCaps.js","sourceRoot":"","sources":["../../../../../../../libs/lib-editing/src/lib/components/editor/extensions/SmallCaps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SmallCaps.js","sourceRoot":"","sources":["../../../../../../../libs/lib-editing/src/lib/components/editor/extensions/SmallCaps.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { mergeAttributes } from '@tiptap/react';
2
1
  import { Subscript as TipTapSubscript } from '@tiptap/extension-subscript';
3
2
  import { v4 as uuidv4 } from 'uuid';
4
3
  export const Subscript = TipTapSubscript.extend({
@@ -8,28 +7,19 @@ export const Subscript = TipTapSubscript.extend({
8
7
  type: {
9
8
  default: undefined,
10
9
  parseHTML: (element) => element.getAttribute('data-type'),
11
- renderHTML(attributes) {
12
- return mergeAttributes(attributes, { 'data-type': attributes.type });
13
- },
10
+ renderHTML: (attributes) => attributes.type ? { 'data-type': attributes.type } : {},
14
11
  },
15
12
  textStyle: {
16
13
  default: undefined,
17
14
  parseHTML: (element) => element.getAttribute('data-text-style'),
18
- renderHTML(attributes) {
19
- return mergeAttributes(attributes, {
20
- 'data-text-style': attributes.textStyle,
21
- });
22
- },
15
+ renderHTML: (attributes) => attributes.textStyle
16
+ ? { 'data-text-style': attributes.textStyle }
17
+ : {},
23
18
  },
24
19
  lang: {
25
20
  default: undefined,
26
21
  parseHTML: (element) => element.getAttribute('data-lang'),
27
- renderHTML(attributes) {
28
- if (!attributes.lang) {
29
- return attributes;
30
- }
31
- return mergeAttributes(attributes, { 'data-lang': attributes.lang });
32
- },
22
+ renderHTML: (attributes) => attributes.lang ? { 'data-lang': attributes.lang } : {},
33
23
  },
34
24
  };
35
25
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Subscript.js","sourceRoot":"","sources":["../../../../../../../libs/lib-editing/src/lib/components/editor/extensions/Subscript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC;IAC9C,aAAa;QACX,OAAO;YACL,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE;YAClB,IAAI,EAAE;gBACJ,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC;gBACzD,UAAU,CAAC,UAAU;oBACnB,OAAO,eAAe,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvE,CAAC;aACF;YACD,SAAS,EAAE;gBACT,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC;gBAC/D,UAAU,CAAC,UAAU;oBACnB,OAAO,eAAe,CAAC,UAAU,EAAE;wBACjC,iBAAiB,EAAE,UAAU,CAAC,SAAS;qBACxC,CAAC,CAAC;gBACL,CAAC;aACF;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC;gBACzD,UAAU,CAAC,UAAU;oBACnB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;wBACrB,OAAO,UAAU,CAAC;oBACpB,CAAC;oBACD,OAAO,eAAe,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvE,CAAC;aACF;SACF,CAAC;IACJ,CAAC;IACD,WAAW;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,OAAO;YACL,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE;YAClB,YAAY;gBACV,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE;oBAC1B,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;oBAClD,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;oBAC5D,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBACrE,CAAC,CAAC;YACJ,CAAC;YACD,eAAe;gBACb,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE;oBAC1B,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;oBAClD,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;oBAC5D,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBACxE,CAAC,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"Subscript.js","sourceRoot":"","sources":["../../../../../../../libs/lib-editing/src/lib/components/editor/extensions/Subscript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC;IAC9C,aAAa;QACX,OAAO;YACL,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE;YAClB,IAAI,EAAE;gBACJ,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC;gBACzD,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE,CACzB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;aAC1D;YACD,SAAS,EAAE;gBACT,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC;gBAC/D,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE,CACzB,UAAU,CAAC,SAAS;oBAClB,CAAC,CAAC,EAAE,iBAAiB,EAAE,UAAU,CAAC,SAAS,EAAE;oBAC7C,CAAC,CAAC,EAAE;aACT;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC;gBACzD,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE,CACzB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;aAC1D;SACF,CAAC;IACJ,CAAC;IACD,WAAW;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,OAAO;YACL,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE;YAClB,YAAY;gBACV,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE;oBAC1B,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;oBAClD,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;oBAC5D,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBACrE,CAAC,CAAC;YACJ,CAAC;YACD,eAAe;gBACb,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE;oBAC1B,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;oBAClD,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;oBAC5D,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBACxE,CAAC,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -1,4 +1,3 @@
1
- import { mergeAttributes } from '@tiptap/react';
2
1
  import { Superscript as TipTapSuperscript } from '@tiptap/extension-superscript';
3
2
  import { v4 as uuidv4 } from 'uuid';
4
3
  export const Superscript = TipTapSuperscript.extend({
@@ -8,28 +7,19 @@ export const Superscript = TipTapSuperscript.extend({
8
7
  type: {
9
8
  default: undefined,
10
9
  parseHTML: (element) => element.getAttribute('data-type'),
11
- renderHTML(attributes) {
12
- return mergeAttributes(attributes, { 'data-type': attributes.type });
13
- },
10
+ renderHTML: (attributes) => attributes.type ? { 'data-type': attributes.type } : {},
14
11
  },
15
12
  textStyle: {
16
13
  default: undefined,
17
14
  parseHTML: (element) => element.getAttribute('data-text-style'),
18
- renderHTML(attributes) {
19
- return mergeAttributes(attributes, {
20
- 'data-text-style': attributes.textStyle,
21
- });
22
- },
15
+ renderHTML: (attributes) => attributes.textStyle
16
+ ? { 'data-text-style': attributes.textStyle }
17
+ : {},
23
18
  },
24
19
  lang: {
25
20
  default: undefined,
26
21
  parseHTML: (element) => element.getAttribute('data-lang'),
27
- renderHTML(attributes) {
28
- if (!attributes.lang) {
29
- return attributes;
30
- }
31
- return mergeAttributes(attributes, { 'data-lang': attributes.lang });
32
- },
22
+ renderHTML: (attributes) => attributes.lang ? { 'data-lang': attributes.lang } : {},
33
23
  },
34
24
  };
35
25
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Superscript.js","sourceRoot":"","sources":["../../../../../../../libs/lib-editing/src/lib/components/editor/extensions/Superscript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,CAAC,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC;IAClD,aAAa;QACX,OAAO;YACL,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE;YAClB,IAAI,EAAE;gBACJ,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC;gBACzD,UAAU,CAAC,UAAU;oBACnB,OAAO,eAAe,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvE,CAAC;aACF;YACD,SAAS,EAAE;gBACT,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC;gBAC/D,UAAU,CAAC,UAAU;oBACnB,OAAO,eAAe,CAAC,UAAU,EAAE;wBACjC,iBAAiB,EAAE,UAAU,CAAC,SAAS;qBACxC,CAAC,CAAC;gBACL,CAAC;aACF;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC;gBACzD,UAAU,CAAC,UAAU;oBACnB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;wBACrB,OAAO,UAAU,CAAC;oBACpB,CAAC;oBACD,OAAO,eAAe,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvE,CAAC;aACF;SACF,CAAC;IACJ,CAAC;IACD,WAAW;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,OAAO;YACL,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE;YAClB,cAAc;gBACZ,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE;oBAC1B,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;oBAClD,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;oBAC5D,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBACrE,CAAC,CAAC;YACJ,CAAC;YACD,iBAAiB;gBACf,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE;oBAC1B,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;oBAClD,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;oBAC5D,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBACxE,CAAC,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"Superscript.js","sourceRoot":"","sources":["../../../../../../../libs/lib-editing/src/lib/components/editor/extensions/Superscript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,MAAM,CAAC,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC;IAClD,aAAa;QACX,OAAO;YACL,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE;YAClB,IAAI,EAAE;gBACJ,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC;gBACzD,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE,CACzB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;aAC1D;YACD,SAAS,EAAE;gBACT,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC;gBAC/D,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE,CACzB,UAAU,CAAC,SAAS;oBAClB,CAAC,CAAC,EAAE,iBAAiB,EAAE,UAAU,CAAC,SAAS,EAAE;oBAC7C,CAAC,CAAC,EAAE;aACT;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC;gBACzD,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE,CACzB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;aAC1D;SACF,CAAC;IACJ,CAAC;IACD,WAAW;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,OAAO;YACL,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE;YAClB,cAAc;gBACZ,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE;oBAC1B,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;oBAClD,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;oBAC5D,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBACrE,CAAC,CAAC;YACJ,CAAC;YACD,iBAAiB;gBACf,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE;oBAC1B,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;oBAClD,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;oBAC5D,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBACxE,CAAC,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}