@jotx-labs/editor 2.4.193 → 2.4.204

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 (94) hide show
  1. package/dist/components/BlockMenu.d.ts.map +1 -1
  2. package/dist/components/BlockMenu.js +61 -7
  3. package/dist/components/BlockMenu.js.map +1 -1
  4. package/dist/components/ButtonNodeView.d.ts +1 -0
  5. package/dist/components/ButtonNodeView.d.ts.map +1 -1
  6. package/dist/components/ButtonNodeView.js +34 -13
  7. package/dist/components/ButtonNodeView.js.map +1 -1
  8. package/dist/components/ButtonStripNodeView.d.ts +13 -0
  9. package/dist/components/ButtonStripNodeView.d.ts.map +1 -0
  10. package/dist/components/ButtonStripNodeView.js +96 -0
  11. package/dist/components/ButtonStripNodeView.js.map +1 -0
  12. package/dist/components/ChartNodeView.d.ts.map +1 -1
  13. package/dist/components/ChartNodeView.js +504 -203
  14. package/dist/components/ChartNodeView.js.map +1 -1
  15. package/dist/components/ColumnNodeView.d.ts +6 -0
  16. package/dist/components/ColumnNodeView.d.ts.map +1 -0
  17. package/dist/components/ColumnNodeView.js +13 -0
  18. package/dist/components/ColumnNodeView.js.map +1 -0
  19. package/dist/components/ColumnsNodeView.d.ts +14 -0
  20. package/dist/components/ColumnsNodeView.d.ts.map +1 -0
  21. package/dist/components/ColumnsNodeView.js +122 -0
  22. package/dist/components/ColumnsNodeView.js.map +1 -0
  23. package/dist/components/DocumentHeader/DocumentHeader.d.ts.map +1 -1
  24. package/dist/components/DocumentHeader/DocumentHeader.js +1 -0
  25. package/dist/components/DocumentHeader/DocumentHeader.js.map +1 -1
  26. package/dist/components/DocumentHeader/ExportMenu.d.ts +2 -2
  27. package/dist/components/DocumentHeader/ExportMenu.d.ts.map +1 -1
  28. package/dist/components/DocumentHeader/ExportMenu.js +129 -9
  29. package/dist/components/DocumentHeader/ExportMenu.js.map +1 -1
  30. package/dist/components/JotxEditor.d.ts.map +1 -1
  31. package/dist/components/JotxEditor.js +52 -0
  32. package/dist/components/JotxEditor.js.map +1 -1
  33. package/dist/components/MathNodeView.d.ts.map +1 -1
  34. package/dist/components/MathNodeView.js +10 -1
  35. package/dist/components/MathNodeView.js.map +1 -1
  36. package/dist/components/PresentationToolbar.d.ts +13 -0
  37. package/dist/components/PresentationToolbar.d.ts.map +1 -0
  38. package/dist/components/PresentationToolbar.js +14 -0
  39. package/dist/components/PresentationToolbar.js.map +1 -0
  40. package/dist/components/PresentationView.d.ts +18 -0
  41. package/dist/components/PresentationView.d.ts.map +1 -0
  42. package/dist/components/PresentationView.js +77 -0
  43. package/dist/components/PresentationView.js.map +1 -0
  44. package/dist/components/SlashMenu.d.ts.map +1 -1
  45. package/dist/components/SlashMenu.js +16 -0
  46. package/dist/components/SlashMenu.js.map +1 -1
  47. package/dist/components/SlidePropertiesNodeView.d.ts +3 -0
  48. package/dist/components/SlidePropertiesNodeView.d.ts.map +1 -0
  49. package/dist/components/SlidePropertiesNodeView.js +87 -0
  50. package/dist/components/SlidePropertiesNodeView.js.map +1 -0
  51. package/dist/extensions/ButtonNode.d.ts.map +1 -1
  52. package/dist/extensions/ButtonNode.js +13 -9
  53. package/dist/extensions/ButtonNode.js.map +1 -1
  54. package/dist/extensions/ButtonStripNode.d.ts +8 -0
  55. package/dist/extensions/ButtonStripNode.d.ts.map +1 -0
  56. package/dist/extensions/ButtonStripNode.js +51 -0
  57. package/dist/extensions/ButtonStripNode.js.map +1 -0
  58. package/dist/extensions/ColumnNode.d.ts +11 -0
  59. package/dist/extensions/ColumnNode.d.ts.map +1 -0
  60. package/dist/extensions/ColumnNode.js +46 -0
  61. package/dist/extensions/ColumnNode.js.map +1 -0
  62. package/dist/extensions/ColumnsNode.d.ts +7 -0
  63. package/dist/extensions/ColumnsNode.d.ts.map +1 -0
  64. package/dist/extensions/ColumnsNode.js +56 -0
  65. package/dist/extensions/ColumnsNode.js.map +1 -0
  66. package/dist/extensions/SlideMarkerPlugin.d.ts +9 -0
  67. package/dist/extensions/SlideMarkerPlugin.d.ts.map +1 -0
  68. package/dist/extensions/SlideMarkerPlugin.js +78 -0
  69. package/dist/extensions/SlideMarkerPlugin.js.map +1 -0
  70. package/dist/extensions/SlidePropertiesNode.d.ts +8 -0
  71. package/dist/extensions/SlidePropertiesNode.d.ts.map +1 -0
  72. package/dist/extensions/SlidePropertiesNode.js +74 -0
  73. package/dist/extensions/SlidePropertiesNode.js.map +1 -0
  74. package/dist/index.d.ts +6 -0
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +17 -1
  77. package/dist/index.js.map +1 -1
  78. package/dist/styles/ButtonStripNodeView.css +134 -0
  79. package/dist/styles/ChartNodeView.css +9 -1
  80. package/dist/styles/ColumnsNodeView.css +89 -0
  81. package/dist/styles/PresentationToolbar.css +65 -0
  82. package/dist/styles/ReadonlyBlockRenderer.css +5 -5
  83. package/dist/styles/SlidePropertiesNodeView.css +116 -0
  84. package/dist/utils/PresentationConverter.d.ts +41 -0
  85. package/dist/utils/PresentationConverter.d.ts.map +1 -0
  86. package/dist/utils/PresentationConverter.js +1506 -0
  87. package/dist/utils/PresentationConverter.js.map +1 -0
  88. package/package.json +65 -57
  89. package/src/styles/ButtonStripNodeView.css +134 -0
  90. package/src/styles/ChartNodeView.css +9 -1
  91. package/src/styles/ColumnsNodeView.css +89 -0
  92. package/src/styles/PresentationToolbar.css +65 -0
  93. package/src/styles/ReadonlyBlockRenderer.css +5 -5
  94. package/src/styles/SlidePropertiesNodeView.css +116 -0
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SlidePropertiesNodeView = SlidePropertiesNodeView;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const react_2 = require("@tiptap/react");
7
+ const lucide_react_1 = require("lucide-react");
8
+ require("../styles/SlidePropertiesNodeView.css");
9
+ const THEMES = [
10
+ { value: 'dark', label: 'Dark', type: '🌙' },
11
+ { value: 'light', label: 'Light', type: '☀️' },
12
+ { value: 'corporate', label: 'Corporate', type: '🌙' },
13
+ { value: 'minimal', label: 'Minimal', type: '☀️' },
14
+ { value: 'ocean', label: 'Ocean', type: '🌙' },
15
+ { value: 'sunset', label: 'Sunset', type: '🌙' },
16
+ { value: 'forest', label: 'Forest', type: '🌙' },
17
+ { value: 'dracula', label: 'Dracula', type: '🌙' },
18
+ { value: 'neon', label: 'Neon', type: '🌙' },
19
+ { value: 'rose', label: 'Rosé', type: '☀️' },
20
+ { value: 'solarized', label: 'Solarized', type: '☀️' }
21
+ ];
22
+ const TRANSITIONS = [
23
+ { value: 'slide', label: 'Slide' },
24
+ { value: 'fade', label: 'Fade' },
25
+ { value: 'convex', label: 'Convex' },
26
+ { value: 'concave', label: 'Concave' },
27
+ { value: 'zoom', label: 'Zoom' },
28
+ { value: 'none', label: 'None' }
29
+ ];
30
+ const RATIOS = [
31
+ { value: '16:9', label: '16:9 (Widescreen)' },
32
+ { value: '16:10', label: '16:10 (MacBook)' },
33
+ { value: '4:3', label: '4:3 (Standard)' }
34
+ ];
35
+ const FONTS = [
36
+ { value: 'inter', label: 'Inter — Apple-style' },
37
+ { value: 'roboto', label: 'Roboto — Google' },
38
+ { value: 'poppins', label: 'Poppins — Netflix' },
39
+ { value: 'montserrat', label: 'Montserrat — Elegant' },
40
+ { value: 'opensans', label: 'Open Sans — Classic' },
41
+ { value: 'lato', label: 'Lato — Clean' },
42
+ { value: 'playfair', label: 'Playfair — Editorial' },
43
+ { value: 'raleway', label: 'Raleway — Airy' },
44
+ { value: 'outfit', label: 'Outfit — Modern' },
45
+ { value: 'spacegrotesk', label: 'Space Grotesk — Tech' },
46
+ ];
47
+ const LOGO_ALIGNS = [
48
+ { value: 'left', label: 'Left' },
49
+ { value: 'right', label: 'Right' }
50
+ ];
51
+ // Access vscode API already initialized by App.tsx on window.vscodeApi
52
+ const getVsCodeApi = () => window.vscodeApi || null;
53
+ function SlidePropertiesNodeView({ node, updateAttributes }) {
54
+ const [expanded, setExpanded] = (0, react_1.useState)(true);
55
+ const theme = node?.attrs?.theme || 'dark';
56
+ const transition = node?.attrs?.transition || 'slide';
57
+ const footertext = node?.attrs?.footertext || '';
58
+ const footerlogo = node?.attrs?.footerlogo || '';
59
+ const logoalign = node?.attrs?.logoalign || 'left';
60
+ const ratio = node?.attrs?.ratio || '16:9';
61
+ const fontfamily = node?.attrs?.fontfamily || 'inter';
62
+ const autoanimate = node?.attrs?.autoanimate ?? false;
63
+ const shownumbers = node?.attrs?.shownumbers ?? true;
64
+ // Listen for logo file selection response from extension host
65
+ const handleLogoMessage = (0, react_1.useCallback)((event) => {
66
+ const message = event.data;
67
+ if (message.type === 'logoFileSelected' && message.path) {
68
+ updateAttributes({ footerlogo: message.path });
69
+ }
70
+ }, [updateAttributes]);
71
+ (0, react_1.useEffect)(() => {
72
+ window.addEventListener('message', handleLogoMessage);
73
+ return () => window.removeEventListener('message', handleLogoMessage);
74
+ }, [handleLogoMessage]);
75
+ const handlePickLogo = () => {
76
+ const api = getVsCodeApi();
77
+ if (api) {
78
+ api.postMessage({ type: 'pickLogoFile' });
79
+ }
80
+ };
81
+ // Get the filename from the path for display
82
+ const logoDisplay = footerlogo
83
+ ? footerlogo.split('/').pop() || footerlogo
84
+ : '';
85
+ return ((0, jsx_runtime_1.jsxs)(react_2.NodeViewWrapper, { className: "jotx-slideprops", "data-type": "slideproperties", children: [(0, jsx_runtime_1.jsxs)("div", { className: "jotx-slideprops-header", onClick: () => setExpanded(v => !v), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Presentation, { size: 16 }), (0, jsx_runtime_1.jsx)("span", { className: "jotx-slideprops-title", children: "Slide Properties" }), expanded ? (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDown, { size: 14 }) : (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronRight, { size: 14 })] }), expanded && ((0, jsx_runtime_1.jsx)("div", { className: "jotx-slideprops-body", onMouseDown: e => e.stopPropagation(), children: (0, jsx_runtime_1.jsxs)("div", { className: "jotx-slideprops-grid", children: [(0, jsx_runtime_1.jsx)("label", { className: "jotx-slideprops-label", children: "Theme" }), (0, jsx_runtime_1.jsx)("select", { className: "jotx-slideprops-select", value: theme, onChange: e => updateAttributes({ theme: e.target.value }), children: THEMES.map(t => ((0, jsx_runtime_1.jsxs)("option", { value: t.value, children: [t.type, " ", t.label] }, t.value))) }), (0, jsx_runtime_1.jsx)("label", { className: "jotx-slideprops-label", children: "Transition" }), (0, jsx_runtime_1.jsx)("select", { className: "jotx-slideprops-select", value: transition, onChange: e => updateAttributes({ transition: e.target.value }), children: TRANSITIONS.map(t => ((0, jsx_runtime_1.jsx)("option", { value: t.value, children: t.label }, t.value))) }), (0, jsx_runtime_1.jsx)("label", { className: "jotx-slideprops-label", children: "Ratio" }), (0, jsx_runtime_1.jsx)("select", { className: "jotx-slideprops-select", value: ratio, onChange: e => updateAttributes({ ratio: e.target.value }), children: RATIOS.map(r => ((0, jsx_runtime_1.jsx)("option", { value: r.value, children: r.label }, r.value))) }), (0, jsx_runtime_1.jsx)("label", { className: "jotx-slideprops-label", children: "Font" }), (0, jsx_runtime_1.jsx)("select", { className: "jotx-slideprops-select", value: fontfamily, onChange: e => updateAttributes({ fontfamily: e.target.value }), children: FONTS.map(f => ((0, jsx_runtime_1.jsx)("option", { value: f.value, children: f.label }, f.value))) }), (0, jsx_runtime_1.jsx)("label", { className: "jotx-slideprops-label", children: "Footer" }), (0, jsx_runtime_1.jsx)("input", { type: "text", className: "jotx-slideprops-input", placeholder: "Footer text...", value: footertext, onChange: e => updateAttributes({ footertext: e.target.value }) }), (0, jsx_runtime_1.jsx)("label", { className: "jotx-slideprops-label", children: "Logo" }), (0, jsx_runtime_1.jsxs)("div", { className: "jotx-slideprops-logo-row", children: [(0, jsx_runtime_1.jsx)("input", { type: "text", className: "jotx-slideprops-input jotx-slideprops-logo-input", placeholder: "Select a logo image...", value: logoDisplay, readOnly: true, title: footerlogo }), (0, jsx_runtime_1.jsx)("button", { className: "jotx-slideprops-logo-btn", onClick: handlePickLogo, title: "Browse for logo image", children: (0, jsx_runtime_1.jsx)(lucide_react_1.FolderOpen, { size: 14 }) }), footerlogo && ((0, jsx_runtime_1.jsx)("button", { className: "jotx-slideprops-logo-clear", onClick: () => updateAttributes({ footerlogo: '' }), title: "Clear logo", children: "\u00D7" }))] }), footerlogo && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("label", { className: "jotx-slideprops-label", children: "Logo Align" }), (0, jsx_runtime_1.jsx)("select", { className: "jotx-slideprops-select", value: logoalign, onChange: e => updateAttributes({ logoalign: e.target.value }), children: LOGO_ALIGNS.map(a => ((0, jsx_runtime_1.jsx)("option", { value: a.value, children: a.label }, a.value))) })] })), (0, jsx_runtime_1.jsx)("label", { className: "jotx-slideprops-label", children: "Numbers" }), (0, jsx_runtime_1.jsxs)("label", { className: "jotx-slideprops-checkbox-label", children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: shownumbers, onChange: e => updateAttributes({ shownumbers: e.target.checked }) }), "Show slide numbers"] }), (0, jsx_runtime_1.jsx)("label", { className: "jotx-slideprops-label", children: "Animate" }), (0, jsx_runtime_1.jsxs)("label", { className: "jotx-slideprops-checkbox-label", children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: autoanimate, onChange: e => updateAttributes({ autoanimate: e.target.checked }) }), "Animate-in slides"] })] }) }))] }));
86
+ }
87
+ //# sourceMappingURL=SlidePropertiesNodeView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlidePropertiesNodeView.js","sourceRoot":"","sources":["../../src/components/SlidePropertiesNodeView.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonNode.d.ts","sourceRoot":"","sources":["../../src/extensions/ButtonNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAA;AAIpD;;;GAGG;AACH,eAAO,MAAM,UAAU,gBAmDrB,CAAA"}
1
+ {"version":3,"file":"ButtonNode.d.ts","sourceRoot":"","sources":["../../src/extensions/ButtonNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAA;AAIpD;;;GAGG;AACH,eAAO,MAAM,UAAU,gBAuDrB,CAAA"}
@@ -11,15 +11,18 @@ const ButtonNodeView_1 = require("../components/ButtonNodeView");
11
11
  exports.ButtonNode = core_1.Node.create({
12
12
  name: 'button',
13
13
  group: 'block',
14
- content: '',
15
- defining: true,
14
+ atom: true, // Mark as atomic node - ensures onUpdate fires immediately
15
+ isolating: true, // Isolate from surrounding content
16
16
  addAttributes() {
17
17
  return {
18
18
  label: { default: '' },
19
19
  link: { default: '' },
20
20
  style: { default: 'primary' },
21
21
  align: { default: 'left' },
22
- blockId: { default: null }
22
+ blockId: { default: null },
23
+ // CRITICAL: This attribute starts false and gets set to true on mount
24
+ // This pattern (same as Mermaid/Math's showSource) ensures onUpdate fires
25
+ _initialized: { default: false }
23
26
  };
24
27
  },
25
28
  parseHTML() {
@@ -39,17 +42,18 @@ exports.ButtonNode = core_1.Node.create({
39
42
  }
40
43
  ];
41
44
  },
42
- renderHTML({ HTMLAttributes }) {
45
+ renderHTML({ node, HTMLAttributes }) {
46
+ // Don't use 0 (content hole) for atom nodes - render actual content
43
47
  return [
44
48
  'div',
45
49
  (0, core_1.mergeAttributes)(HTMLAttributes, {
46
50
  'data-type': 'button',
47
- 'data-label': HTMLAttributes.label || '',
48
- 'data-link': HTMLAttributes.link || '',
49
- 'data-style': HTMLAttributes.style || 'primary',
50
- 'data-align': HTMLAttributes.align || 'left'
51
+ 'data-label': (node.attrs.label || '').toString(),
52
+ 'data-link': (node.attrs.link || '').toString(),
53
+ 'data-style': (node.attrs.style || 'primary').toString(),
54
+ 'data-align': (node.attrs.align || 'left').toString()
51
55
  }),
52
- 0
56
+ ['span', { 'data-role': 'button-label' }, (node.attrs.label || 'Button').toString()]
53
57
  ];
54
58
  },
55
59
  addNodeView() {
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonNode.js","sourceRoot":"","sources":["../../src/extensions/ButtonNode.ts"],"names":[],"mappings":";;;AAAA,uCAAoD;AACpD,yCAAqD;AACrD,iEAA6D;AAE7D;;;GAGG;AACU,QAAA,UAAU,GAAG,WAAI,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,QAAQ;IAEd,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,IAAI;IAEd,aAAa;QACT,OAAO;YACH,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YACtB,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YACrB,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;YAC7B,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;YAC1B,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SAC7B,CAAA;IACL,CAAC;IAED,SAAS;QACL,OAAO;YACH;gBACI,GAAG,EAAE,yBAAyB;gBAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;oBACf,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC;wBAAE,OAAO,KAAK,CAAA;oBAChD,OAAO;wBACH,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE;wBAC5C,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE;wBAC1C,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,SAAS;wBACnD,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,MAAM;qBACnD,CAAA;gBACL,CAAC;aACJ;SACJ,CAAA;IACL,CAAC;IAED,UAAU,CAAC,EAAE,cAAc,EAAE;QACzB,OAAO;YACH,KAAK;YACL,IAAA,sBAAe,EAAC,cAAc,EAAE;gBAC5B,WAAW,EAAE,QAAQ;gBACrB,YAAY,EAAE,cAAc,CAAC,KAAK,IAAI,EAAE;gBACxC,WAAW,EAAE,cAAc,CAAC,IAAI,IAAI,EAAE;gBACtC,YAAY,EAAE,cAAc,CAAC,KAAK,IAAI,SAAS;gBAC/C,YAAY,EAAE,cAAc,CAAC,KAAK,IAAI,MAAM;aAC/C,CAAC;YACF,CAAC;SACJ,CAAA;IACL,CAAC;IAED,WAAW;QACP,OAAO,IAAA,6BAAqB,EAAC,+BAAc,CAAC,CAAA;IAChD,CAAC;CACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"ButtonNode.js","sourceRoot":"","sources":["../../src/extensions/ButtonNode.ts"],"names":[],"mappings":";;;AAAA,uCAAoD;AACpD,yCAAqD;AACrD,iEAA6D;AAE7D;;;GAGG;AACU,QAAA,UAAU,GAAG,WAAI,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,QAAQ;IAEd,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,IAAI,EAAQ,2DAA2D;IAC7E,SAAS,EAAE,IAAI,EAAG,mCAAmC;IAErD,aAAa;QACT,OAAO;YACH,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YACtB,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YACrB,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;YAC7B,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;YAC1B,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1B,sEAAsE;YACtE,0EAA0E;YAC1E,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;SACnC,CAAA;IACL,CAAC;IAED,SAAS;QACL,OAAO;YACH;gBACI,GAAG,EAAE,yBAAyB;gBAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;oBACf,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC;wBAAE,OAAO,KAAK,CAAA;oBAChD,OAAO;wBACH,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE;wBAC5C,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE;wBAC1C,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,SAAS;wBACnD,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,MAAM;qBACnD,CAAA;gBACL,CAAC;aACJ;SACJ,CAAA;IACL,CAAC;IAED,UAAU,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE;QAC/B,oEAAoE;QACpE,OAAO;YACH,KAAK;YACL,IAAA,sBAAe,EAAC,cAAc,EAAE;gBAC5B,WAAW,EAAE,QAAQ;gBACrB,YAAY,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;gBACjD,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;gBAC/C,YAAY,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,QAAQ,EAAE;gBACxD,YAAY,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,QAAQ,EAAE;aACxD,CAAC;YACF,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;SACvF,CAAA;IACL,CAAC;IAED,WAAW;QACP,OAAO,IAAA,6BAAqB,EAAC,+BAAc,CAAC,CAAA;IAChD,CAAC;CACJ,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { Node } from '@tiptap/core';
2
+ /**
3
+ * ButtonStrip container node
4
+ * Contains 1-3 button children in a horizontal flex layout
5
+ * Width is distributed equally among buttons with gaps
6
+ */
7
+ export declare const ButtonStripNode: Node<any, any>;
8
+ //# sourceMappingURL=ButtonStripNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonStripNode.d.ts","sourceRoot":"","sources":["../../src/extensions/ButtonStripNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAA;AAIpD;;;;GAIG;AACH,eAAO,MAAM,eAAe,gBA2C1B,CAAA"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ButtonStripNode = void 0;
4
+ const core_1 = require("@tiptap/core");
5
+ const react_1 = require("@tiptap/react");
6
+ const ButtonStripNodeView_1 = require("../components/ButtonStripNodeView");
7
+ /**
8
+ * ButtonStrip container node
9
+ * Contains 1-3 button children in a horizontal flex layout
10
+ * Width is distributed equally among buttons with gaps
11
+ */
12
+ exports.ButtonStripNode = core_1.Node.create({
13
+ name: 'buttonstrip',
14
+ group: 'block',
15
+ content: 'button button button', // EXACTLY 3 button children (user requirement)
16
+ defining: true,
17
+ isolating: true, // Treat as single unit for selection/deletion
18
+ draggable: true, // Enable drag handle for the whole strip
19
+ addAttributes() {
20
+ return {
21
+ blockId: {
22
+ default: null
23
+ },
24
+ // Internal flag for initialization (same pattern as button)
25
+ _initialized: {
26
+ default: false
27
+ }
28
+ };
29
+ },
30
+ parseHTML() {
31
+ return [
32
+ {
33
+ tag: 'div[data-type="buttonstrip"]',
34
+ }
35
+ ];
36
+ },
37
+ renderHTML({ HTMLAttributes }) {
38
+ return [
39
+ 'div',
40
+ (0, core_1.mergeAttributes)(HTMLAttributes, {
41
+ 'data-type': 'buttonstrip',
42
+ class: 'buttonstrip-container'
43
+ }),
44
+ 0 // Content hole for children
45
+ ];
46
+ },
47
+ addNodeView() {
48
+ return (0, react_1.ReactNodeViewRenderer)(ButtonStripNodeView_1.ButtonStripNodeView);
49
+ }
50
+ });
51
+ //# sourceMappingURL=ButtonStripNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonStripNode.js","sourceRoot":"","sources":["../../src/extensions/ButtonStripNode.ts"],"names":[],"mappings":";;;AAAA,uCAAoD;AACpD,yCAAqD;AACrD,2EAAuE;AAEvE;;;;GAIG;AACU,QAAA,eAAe,GAAG,WAAI,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,aAAa;IAEnB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,sBAAsB,EAAG,+CAA+C;IACjF,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI,EAAU,8CAA8C;IACvE,SAAS,EAAE,IAAI,EAAU,yCAAyC;IAElE,aAAa;QACT,OAAO;YACH,OAAO,EAAE;gBACL,OAAO,EAAE,IAAI;aAChB;YACD,4DAA4D;YAC5D,YAAY,EAAE;gBACV,OAAO,EAAE,KAAK;aACjB;SACJ,CAAA;IACL,CAAC;IAED,SAAS;QACL,OAAO;YACH;gBACI,GAAG,EAAE,8BAA8B;aACtC;SACJ,CAAA;IACL,CAAC;IAED,UAAU,CAAC,EAAE,cAAc,EAAE;QACzB,OAAO;YACH,KAAK;YACL,IAAA,sBAAe,EAAC,cAAc,EAAE;gBAC5B,WAAW,EAAE,aAAa;gBAC1B,KAAK,EAAE,uBAAuB;aACjC,CAAC;YACF,CAAC,CAAE,4BAA4B;SAClC,CAAA;IACL,CAAC;IAED,WAAW;QACP,OAAO,IAAA,6BAAqB,EAAC,yCAAmB,CAAC,CAAA;IACrD,CAAC;CACJ,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { Node } from '@tiptap/core';
2
+ /**
3
+ * Column node - child of Columns
4
+ * Contains block+ content (paragraphs, lists, code, images, etc.)
5
+ *
6
+ * Uses default HTML rendering (no ReactNodeViewRenderer) so ProseMirror
7
+ * manages content natively — this is critical for cursor placement in
8
+ * multi-column layouts.
9
+ */
10
+ export declare const ColumnNode: Node<any, any>;
11
+ //# sourceMappingURL=ColumnNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnNode.d.ts","sourceRoot":"","sources":["../../src/extensions/ColumnNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAA;AAEpD;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,gBAoCrB,CAAA"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ColumnNode = void 0;
4
+ const core_1 = require("@tiptap/core");
5
+ /**
6
+ * Column node - child of Columns
7
+ * Contains block+ content (paragraphs, lists, code, images, etc.)
8
+ *
9
+ * Uses default HTML rendering (no ReactNodeViewRenderer) so ProseMirror
10
+ * manages content natively — this is critical for cursor placement in
11
+ * multi-column layouts.
12
+ */
13
+ exports.ColumnNode = core_1.Node.create({
14
+ name: 'column',
15
+ // NOT in 'block' group - columns are only children of columns container, not standalone
16
+ content: 'block+',
17
+ defining: true,
18
+ selectable: false,
19
+ draggable: false,
20
+ addAttributes() {
21
+ return {
22
+ blockId: {
23
+ default: null
24
+ }
25
+ };
26
+ },
27
+ parseHTML() {
28
+ return [
29
+ {
30
+ tag: 'div[data-type="column"]'
31
+ }
32
+ ];
33
+ },
34
+ renderHTML({ HTMLAttributes }) {
35
+ return [
36
+ 'div',
37
+ (0, core_1.mergeAttributes)(HTMLAttributes, {
38
+ 'data-type': 'column',
39
+ class: 'column-content',
40
+ style: 'padding: 8px; min-height: 40px;'
41
+ }),
42
+ 0
43
+ ];
44
+ }
45
+ });
46
+ //# sourceMappingURL=ColumnNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnNode.js","sourceRoot":"","sources":["../../src/extensions/ColumnNode.ts"],"names":[],"mappings":";;;AAAA,uCAAoD;AAEpD;;;;;;;GAOG;AACU,QAAA,UAAU,GAAG,WAAI,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,QAAQ;IAEd,wFAAwF;IACxF,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,KAAK;IAEhB,aAAa;QACT,OAAO;YACH,OAAO,EAAE;gBACL,OAAO,EAAE,IAAI;aAChB;SACJ,CAAA;IACL,CAAC;IAED,SAAS;QACL,OAAO;YACH;gBACI,GAAG,EAAE,yBAAyB;aACjC;SACJ,CAAA;IACL,CAAC;IAED,UAAU,CAAC,EAAE,cAAc,EAAE;QACzB,OAAO;YACH,KAAK;YACL,IAAA,sBAAe,EAAC,cAAc,EAAE;gBAC5B,WAAW,EAAE,QAAQ;gBACrB,KAAK,EAAE,gBAAgB;gBACvB,KAAK,EAAE,iCAAiC;aAC3C,CAAC;YACF,CAAC;SACJ,CAAA;IACL,CAAC;CACJ,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { Node } from '@tiptap/core';
2
+ /**
3
+ * Columns container node
4
+ * Contains column children in a CSS grid layout (1-4 columns)
5
+ */
6
+ export declare const ColumnsNode: Node<any, any>;
7
+ //# sourceMappingURL=ColumnsNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnsNode.d.ts","sourceRoot":"","sources":["../../src/extensions/ColumnsNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAA;AAIpD;;;GAGG;AACH,eAAO,MAAM,WAAW,gBAgDtB,CAAA"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ColumnsNode = void 0;
4
+ const core_1 = require("@tiptap/core");
5
+ const react_1 = require("@tiptap/react");
6
+ const ColumnsNodeView_1 = require("../components/ColumnsNodeView");
7
+ /**
8
+ * Columns container node
9
+ * Contains column children in a CSS grid layout (1-4 columns)
10
+ */
11
+ exports.ColumnsNode = core_1.Node.create({
12
+ name: 'columns',
13
+ group: 'block',
14
+ content: 'column+',
15
+ defining: true,
16
+ isolating: true,
17
+ draggable: true,
18
+ addAttributes() {
19
+ return {
20
+ cols: {
21
+ default: 2
22
+ },
23
+ blockId: {
24
+ default: null
25
+ }
26
+ };
27
+ },
28
+ parseHTML() {
29
+ return [
30
+ {
31
+ tag: 'div[data-type="columns"]',
32
+ getAttrs: (node) => {
33
+ if (!(node instanceof HTMLElement))
34
+ return false;
35
+ return {
36
+ cols: parseInt(node.getAttribute('data-cols') || '2') || 2
37
+ };
38
+ }
39
+ }
40
+ ];
41
+ },
42
+ renderHTML({ HTMLAttributes }) {
43
+ return [
44
+ 'div',
45
+ (0, core_1.mergeAttributes)(HTMLAttributes, {
46
+ 'data-type': 'columns',
47
+ 'data-cols': HTMLAttributes.cols || 2
48
+ }),
49
+ 0
50
+ ];
51
+ },
52
+ addNodeView() {
53
+ return (0, react_1.ReactNodeViewRenderer)(ColumnsNodeView_1.ColumnsNodeView);
54
+ }
55
+ });
56
+ //# sourceMappingURL=ColumnsNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnsNode.js","sourceRoot":"","sources":["../../src/extensions/ColumnsNode.ts"],"names":[],"mappings":";;;AAAA,uCAAoD;AACpD,yCAAqD;AACrD,mEAA+D;AAE/D;;;GAGG;AACU,QAAA,WAAW,GAAG,WAAI,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,SAAS;IAEf,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IAEf,aAAa;QACT,OAAO;YACH,IAAI,EAAE;gBACF,OAAO,EAAE,CAAC;aACb;YACD,OAAO,EAAE;gBACL,OAAO,EAAE,IAAI;aAChB;SACJ,CAAA;IACL,CAAC;IAED,SAAS;QACL,OAAO;YACH;gBACI,GAAG,EAAE,0BAA0B;gBAC/B,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;oBACf,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC;wBAAE,OAAO,KAAK,CAAA;oBAChD,OAAO;wBACH,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC;qBAC7D,CAAA;gBACL,CAAC;aACJ;SACJ,CAAA;IACL,CAAC;IAED,UAAU,CAAC,EAAE,cAAc,EAAE;QACzB,OAAO;YACH,KAAK;YACL,IAAA,sBAAe,EAAC,cAAc,EAAE;gBAC5B,WAAW,EAAE,SAAS;gBACtB,WAAW,EAAE,cAAc,CAAC,IAAI,IAAI,CAAC;aACxC,CAAC;YACF,CAAC;SACJ,CAAA;IACL,CAAC;IAED,WAAW;QACP,OAAO,IAAA,6BAAqB,EAAC,iCAAe,CAAC,CAAA;IACjD,CAAC;CACJ,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { PluginKey } from '@tiptap/pm/state';
2
+ import { Extension } from '@tiptap/core';
3
+ /**
4
+ * SlideMarkerPlugin — shows inline "━ Slide N ━" decorations
5
+ * at H1 headings and divider nodes when the document is in presentation mode.
6
+ */
7
+ export declare const slideMarkerPluginKey: PluginKey<any>;
8
+ export declare const SlideMarkerPlugin: Extension<any, any>;
9
+ //# sourceMappingURL=SlideMarkerPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlideMarkerPlugin.d.ts","sourceRoot":"","sources":["../../src/extensions/SlideMarkerPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,gBAA+B,CAAA;AAyChE,eAAO,MAAM,iBAAiB,qBAiC5B,CAAA"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SlideMarkerPlugin = exports.slideMarkerPluginKey = void 0;
4
+ const state_1 = require("@tiptap/pm/state");
5
+ const view_1 = require("@tiptap/pm/view");
6
+ const core_1 = require("@tiptap/core");
7
+ /**
8
+ * SlideMarkerPlugin — shows inline "━ Slide N ━" decorations
9
+ * at H1 headings and divider nodes when the document is in presentation mode.
10
+ */
11
+ exports.slideMarkerPluginKey = new state_1.PluginKey('slideMarker');
12
+ function createSlideMarkers(doc, isPresentation) {
13
+ if (!isPresentation)
14
+ return view_1.DecorationSet.empty;
15
+ const decorations = [];
16
+ let slideNumber = 0;
17
+ doc.descendants((node, pos) => {
18
+ // H1 heading = new slide
19
+ if (node.type.name === 'heading' && node.attrs?.level === 1) {
20
+ slideNumber++;
21
+ const widget = view_1.Decoration.widget(pos, () => {
22
+ const el = document.createElement('div');
23
+ el.className = 'jotx-slide-marker';
24
+ el.setAttribute('contenteditable', 'false');
25
+ el.textContent = `━━━━ Slide ${slideNumber} ━━━━`;
26
+ return el;
27
+ }, { side: -1, key: `slide-${slideNumber}` });
28
+ decorations.push(widget);
29
+ }
30
+ // Divider = explicit slide break
31
+ if (node.type.name === 'divider') {
32
+ slideNumber++;
33
+ const widget = view_1.Decoration.widget(pos, () => {
34
+ const el = document.createElement('div');
35
+ el.className = 'jotx-slide-marker jotx-slide-marker-break';
36
+ el.setAttribute('contenteditable', 'false');
37
+ el.textContent = `━━━━ Slide ${slideNumber} ━━━━`;
38
+ return el;
39
+ }, { side: -1, key: `slide-break-${slideNumber}` });
40
+ decorations.push(widget);
41
+ }
42
+ return true; // Continue traversal
43
+ });
44
+ return view_1.DecorationSet.create(doc, decorations);
45
+ }
46
+ exports.SlideMarkerPlugin = core_1.Extension.create({
47
+ name: 'slideMarker',
48
+ addStorage() {
49
+ return {
50
+ isPresentation: false
51
+ };
52
+ },
53
+ addProseMirrorPlugins() {
54
+ const storage = this.storage;
55
+ return [
56
+ new state_1.Plugin({
57
+ key: exports.slideMarkerPluginKey,
58
+ state: {
59
+ init(_, { doc }) {
60
+ return createSlideMarkers(doc, storage.isPresentation);
61
+ },
62
+ apply(tr, oldSet) {
63
+ if (tr.docChanged || tr.getMeta(exports.slideMarkerPluginKey)) {
64
+ return createSlideMarkers(tr.doc, storage.isPresentation);
65
+ }
66
+ return oldSet.map(tr.mapping, tr.doc);
67
+ }
68
+ },
69
+ props: {
70
+ decorations(state) {
71
+ return this.getState(state);
72
+ }
73
+ }
74
+ })
75
+ ];
76
+ }
77
+ });
78
+ //# sourceMappingURL=SlideMarkerPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlideMarkerPlugin.js","sourceRoot":"","sources":["../../src/extensions/SlideMarkerPlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Node } from '@tiptap/core';
2
+ /**
3
+ * SlideProperties node — presentation configuration block
4
+ * Stores theme, transition, footer, and display settings for Presentation Mode.
5
+ * Renders as a collapsible config panel at the top of the document.
6
+ */
7
+ export declare const SlidePropertiesNode: Node<any, any>;
8
+ //# sourceMappingURL=SlidePropertiesNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlidePropertiesNode.d.ts","sourceRoot":"","sources":["../../src/extensions/SlidePropertiesNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAA;AAIpD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,gBAiE9B,CAAA"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SlidePropertiesNode = void 0;
4
+ const core_1 = require("@tiptap/core");
5
+ const react_1 = require("@tiptap/react");
6
+ const SlidePropertiesNodeView_1 = require("../components/SlidePropertiesNodeView");
7
+ /**
8
+ * SlideProperties node — presentation configuration block
9
+ * Stores theme, transition, footer, and display settings for Presentation Mode.
10
+ * Renders as a collapsible config panel at the top of the document.
11
+ */
12
+ exports.SlidePropertiesNode = core_1.Node.create({
13
+ name: 'slideproperties',
14
+ group: 'block',
15
+ atom: true,
16
+ draggable: true,
17
+ addAttributes() {
18
+ return {
19
+ theme: { default: 'dark' },
20
+ transition: { default: 'slide' },
21
+ footertext: { default: '' },
22
+ footerlogo: { default: '' },
23
+ logoalign: { default: 'left' },
24
+ ratio: { default: '16:9' },
25
+ fontfamily: { default: 'inter' },
26
+ autoanimate: { default: false },
27
+ shownumbers: { default: true },
28
+ blockId: { default: null }
29
+ };
30
+ },
31
+ parseHTML() {
32
+ return [
33
+ {
34
+ tag: 'div[data-type="slideproperties"]',
35
+ getAttrs: (node) => {
36
+ if (!(node instanceof HTMLElement))
37
+ return false;
38
+ return {
39
+ theme: node.getAttribute('data-theme') || 'dark',
40
+ transition: node.getAttribute('data-transition') || 'slide',
41
+ footertext: node.getAttribute('data-footertext') || '',
42
+ footerlogo: node.getAttribute('data-footerlogo') || '',
43
+ logoalign: node.getAttribute('data-logoalign') || 'left',
44
+ ratio: node.getAttribute('data-ratio') || '16:9',
45
+ fontfamily: node.getAttribute('data-fontfamily') || 'inter',
46
+ autoanimate: node.getAttribute('data-autoanimate') === 'true',
47
+ shownumbers: node.getAttribute('data-shownumbers') !== 'false'
48
+ };
49
+ }
50
+ }
51
+ ];
52
+ },
53
+ renderHTML({ HTMLAttributes }) {
54
+ return [
55
+ 'div',
56
+ (0, core_1.mergeAttributes)(HTMLAttributes, {
57
+ 'data-type': 'slideproperties',
58
+ 'data-theme': HTMLAttributes.theme || 'dark',
59
+ 'data-transition': HTMLAttributes.transition || 'slide',
60
+ 'data-footertext': HTMLAttributes.footertext || '',
61
+ 'data-footerlogo': HTMLAttributes.footerlogo || '',
62
+ 'data-logoalign': HTMLAttributes.logoalign || 'left',
63
+ 'data-ratio': HTMLAttributes.ratio || '16:9',
64
+ 'data-fontfamily': HTMLAttributes.fontfamily || 'inter',
65
+ 'data-autoanimate': String(HTMLAttributes.autoanimate ?? false),
66
+ 'data-shownumbers': String(HTMLAttributes.shownumbers ?? true)
67
+ })
68
+ ];
69
+ },
70
+ addNodeView() {
71
+ return (0, react_1.ReactNodeViewRenderer)(SlidePropertiesNodeView_1.SlidePropertiesNodeView);
72
+ }
73
+ });
74
+ //# sourceMappingURL=SlidePropertiesNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlidePropertiesNode.js","sourceRoot":"","sources":["../../src/extensions/SlidePropertiesNode.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -63,4 +63,10 @@ export { ViewOptions } from './components/DocumentHeader/ViewOptions';
63
63
  export { JotxLogo } from './components/Brand/JotxLogo';
64
64
  export { GraphView, type GraphViewProps, type GraphData } from './components/GraphView/GraphView';
65
65
  export { EditorRibbon, type EditorRibbonProps, type EditorContext } from './components/EditorRibbon';
66
+ export { SlidePropertiesNode } from './extensions/SlidePropertiesNode';
67
+ export { SlideMarkerPlugin, slideMarkerPluginKey } from './extensions/SlideMarkerPlugin';
68
+ export { SlidePropertiesNodeView } from './components/SlidePropertiesNodeView';
69
+ export { PresentationToolbar } from './components/PresentationToolbar';
70
+ export { PresentationView } from './components/PresentationView';
71
+ export { splitDocIntoSlides, countSlides, generateRevealHTML, type SlidePropertiesAttrs, type Slide } from './utils/PresentationConverter';
66
72
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}