@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
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.GridCardNode = exports.ButtonNode = exports.CardNode = exports.SectionNode = exports.ToggleNode = exports.LinkNode = exports.AttachNode = exports.CalloutNode = exports.JotxLinkNode = exports.DateTimeNode = exports.MathNode = exports.VideoBlockNode = exports.FloatImageBlockNode = exports.ImageBlockNode = exports.ImageNode = exports.CodeReferenceNode = exports.CodeBlockNode = exports.ChartNode = exports.MermaidNode = exports.ReadonlyMermaid = exports.ReadonlyBlockRenderer = exports.CodeReferenceNodeView = exports.GridCardNodeView = exports.ButtonNodeView = exports.CardNodeView = exports.SectionNodeView = exports.ToggleNodeView = exports.JotxLinkNodeView = exports.DateTimeNodeView = exports.MathNodeView = exports.VideoBlockNodeView = exports.FloatImageBlockNodeView = exports.ImageBlockNodeView = exports.CodeBlockNodeView = exports.ChartNodeView = exports.MermaidNodeView = exports.useNodeManager = exports.NodeManagerProvider = exports.NodePickerDialog = exports.LinkDialog = exports.ImageToolbar = exports.TableToolbar = exports.SearchBar = exports.SlashMenu = exports.BlockMenu = exports.JotxEditor = exports.BridgeContext = exports.useBridge = exports.BridgeProvider = exports.defaultBridge = void 0;
9
- exports.EditorRibbon = exports.GraphView = exports.JotxLogo = exports.ViewOptions = exports.ExportMenu = exports.DocumentHeader = exports.searchPluginKey = exports.SearchExtension = exports.slashMenuPluginKey = exports.SlashMenuExtension = exports.FormattingExtensions = exports.CalloutActionsExtension = exports.BlockOpsExtension = exports.TableFilterExtension = exports.JotxTable = void 0;
9
+ exports.generateRevealHTML = exports.countSlides = exports.splitDocIntoSlides = exports.PresentationView = exports.PresentationToolbar = exports.SlidePropertiesNodeView = exports.slideMarkerPluginKey = exports.SlideMarkerPlugin = exports.SlidePropertiesNode = exports.EditorRibbon = exports.GraphView = exports.JotxLogo = exports.ViewOptions = exports.ExportMenu = exports.DocumentHeader = exports.searchPluginKey = exports.SearchExtension = exports.slashMenuPluginKey = exports.SlashMenuExtension = exports.FormattingExtensions = exports.CalloutActionsExtension = exports.BlockOpsExtension = exports.TableFilterExtension = exports.JotxTable = void 0;
10
10
  // Bridge types and context
11
11
  var types_1 = require("./bridge/types");
12
12
  Object.defineProperty(exports, "defaultBridge", { enumerable: true, get: function () { return types_1.defaultBridge; } });
@@ -144,4 +144,20 @@ Object.defineProperty(exports, "GraphView", { enumerable: true, get: function ()
144
144
  // Editor Ribbon (toolbar)
145
145
  var EditorRibbon_1 = require("./components/EditorRibbon");
146
146
  Object.defineProperty(exports, "EditorRibbon", { enumerable: true, get: function () { return EditorRibbon_1.EditorRibbon; } });
147
+ // Presentation mode
148
+ var SlidePropertiesNode_1 = require("./extensions/SlidePropertiesNode");
149
+ Object.defineProperty(exports, "SlidePropertiesNode", { enumerable: true, get: function () { return SlidePropertiesNode_1.SlidePropertiesNode; } });
150
+ var SlideMarkerPlugin_1 = require("./extensions/SlideMarkerPlugin");
151
+ Object.defineProperty(exports, "SlideMarkerPlugin", { enumerable: true, get: function () { return SlideMarkerPlugin_1.SlideMarkerPlugin; } });
152
+ Object.defineProperty(exports, "slideMarkerPluginKey", { enumerable: true, get: function () { return SlideMarkerPlugin_1.slideMarkerPluginKey; } });
153
+ var SlidePropertiesNodeView_1 = require("./components/SlidePropertiesNodeView");
154
+ Object.defineProperty(exports, "SlidePropertiesNodeView", { enumerable: true, get: function () { return SlidePropertiesNodeView_1.SlidePropertiesNodeView; } });
155
+ var PresentationToolbar_1 = require("./components/PresentationToolbar");
156
+ Object.defineProperty(exports, "PresentationToolbar", { enumerable: true, get: function () { return PresentationToolbar_1.PresentationToolbar; } });
157
+ var PresentationView_1 = require("./components/PresentationView");
158
+ Object.defineProperty(exports, "PresentationView", { enumerable: true, get: function () { return PresentationView_1.PresentationView; } });
159
+ var PresentationConverter_1 = require("./utils/PresentationConverter");
160
+ Object.defineProperty(exports, "splitDocIntoSlides", { enumerable: true, get: function () { return PresentationConverter_1.splitDocIntoSlides; } });
161
+ Object.defineProperty(exports, "countSlides", { enumerable: true, get: function () { return PresentationConverter_1.countSlides; } });
162
+ Object.defineProperty(exports, "generateRevealHTML", { enumerable: true, get: function () { return PresentationConverter_1.generateRevealHTML; } });
147
163
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ /* ButtonStrip Container Styles */
2
+ .buttonstrip-wrapper {
3
+ width: 100%;
4
+ margin: 8px 0;
5
+ position: relative;
6
+ }
7
+
8
+ .buttonstrip-wrapper.buttonstrip-selected {
9
+ outline: 2px solid var(--vscode-focusBorder, #007acc);
10
+ border-radius: 6px;
11
+ }
12
+
13
+ /* Grid container for buttons - EXACTLY 3 COLUMNS */
14
+ .buttonstrip-container {
15
+ display: grid !important;
16
+ grid-template-columns: 1fr 1fr 1fr !important;
17
+ gap: 12px;
18
+ width: 100%;
19
+ /* Ensure grid applies to children */
20
+ align-items: stretch;
21
+ }
22
+
23
+ /* CRITICAL: Make NodeViewContent and button wrappers work with CSS Grid */
24
+ .buttonstrip-content {
25
+ display: contents;
26
+ }
27
+
28
+ /* The buttons are wrapped in NodeViewWrapper divs - use display:contents to ignore them */
29
+ .buttonstrip-content>div {
30
+ display: contents;
31
+ }
32
+
33
+ .buttonstrip-wrapper .button-wrapper {
34
+ display: flex !important;
35
+ width: auto !important;
36
+ height: 100%;
37
+ margin: 0 !important;
38
+ }
39
+
40
+ /* Make button fill the wrapper */
41
+ .buttonstrip-wrapper .jotx-button {
42
+ width: 100% !important;
43
+ height: 100%;
44
+ display: flex !important;
45
+ align-items: center;
46
+ justify-content: center;
47
+ text-align: center;
48
+ }
49
+
50
+
51
+ /* EDIT MODE STYLES */
52
+ .buttonstrip-edit-ui {
53
+ padding: 16px;
54
+ background: var(--vscode-editor-background, #1e1e1e);
55
+ border: 1px solid var(--vscode-focusBorder, #007acc);
56
+ border-radius: 6px;
57
+ margin-bottom: 12px;
58
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
59
+ }
60
+
61
+ .buttonstrip-edit-grid {
62
+ display: grid;
63
+ grid-template-columns: 1fr 1fr 1fr;
64
+ gap: 16px;
65
+ }
66
+
67
+ .buttonstrip-edit-column {
68
+ display: flex;
69
+ flex-direction: column;
70
+ gap: 12px;
71
+ padding: 12px;
72
+ background: var(--vscode-list-hoverBackground, rgba(255, 255, 255, 0.05));
73
+ border-radius: 4px;
74
+ }
75
+
76
+ .buttonstrip-edit-column h4 {
77
+ margin: 0;
78
+ font-size: 11px;
79
+ text-transform: uppercase;
80
+ opacity: 0.7;
81
+ text-align: center;
82
+ }
83
+
84
+ .buttonstrip-form-group {
85
+ display: flex;
86
+ flex-direction: column;
87
+ gap: 4px;
88
+ }
89
+
90
+ .buttonstrip-form-group label {
91
+ font-size: 11px;
92
+ color: var(--vscode-descriptionForeground, #888);
93
+ }
94
+
95
+ .buttonstrip-form-group input,
96
+ .buttonstrip-form-group select {
97
+ padding: 4px 8px;
98
+ border: 1px solid var(--vscode-input-border, #3c3c3c);
99
+ background: var(--vscode-input-background, #1e1e1e);
100
+ color: var(--vscode-input-foreground, #cccccc);
101
+ border-radius: 3px;
102
+ font-size: 12px;
103
+ }
104
+
105
+ .buttonstrip-actions {
106
+ display: flex;
107
+ justify-content: flex-end;
108
+ margin-top: 16px;
109
+ padding-top: 12px;
110
+ border-top: 1px solid var(--vscode-panel-border, #3c3c3c);
111
+ }
112
+
113
+ .buttonstrip-done-btn {
114
+ background: var(--vscode-button-background, #0e639c);
115
+ color: white;
116
+ border: none;
117
+ padding: 6px 16px;
118
+ border-radius: 4px;
119
+ cursor: pointer;
120
+ font-size: 12px;
121
+ }
122
+
123
+ .buttonstrip-done-btn:hover {
124
+ background: var(--vscode-button-hoverBackground, #1177bb);
125
+ }
126
+
127
+ /* Responsive */
128
+ @media (max-width: 700px) {
129
+
130
+ .buttonstrip-container,
131
+ .buttonstrip-edit-grid {
132
+ grid-template-columns: 1fr;
133
+ }
134
+ }
@@ -1,4 +1,6 @@
1
1
  .jotx-chart {
2
+ position: relative;
3
+ /* Anchor for overlay */
2
4
  border: 1px solid var(--jotx-border);
3
5
  background: var(--jotx-backgroundSecondary);
4
6
  border-radius: 12px;
@@ -96,4 +98,10 @@
96
98
  line-height: 1.5;
97
99
  }
98
100
 
99
-
101
+ /* ===== Tooltip visibility: force overflow visible up the chain ===== */
102
+ .jotx-chart,
103
+ .jotx-chart-canvasWrap,
104
+ .jotx-chart-canvasWrap>div,
105
+ .jotx-chart-canvasWrap>div>div {
106
+ overflow: visible !important;
107
+ }
@@ -0,0 +1,89 @@
1
+ /* Columns block container */
2
+ .columns-wrapper {
3
+ position: relative;
4
+ border: 1px solid var(--jotx-border, #333);
5
+ border-radius: 8px;
6
+ padding: 12px;
7
+ margin: 8px 0;
8
+ min-height: 60px;
9
+ }
10
+
11
+ /* Control bar — visible on hover */
12
+ .columns-controls {
13
+ position: absolute;
14
+ top: 6px;
15
+ right: 6px;
16
+ display: flex;
17
+ gap: 4px;
18
+ opacity: 0;
19
+ transition: opacity 0.15s ease;
20
+ z-index: 10;
21
+ user-select: none;
22
+ }
23
+
24
+ .columns-wrapper:hover .columns-controls {
25
+ opacity: 1;
26
+ }
27
+
28
+ /* Icon buttons */
29
+ .columns-icon-btn {
30
+ background: none;
31
+ border: 1px solid transparent;
32
+ border-radius: 4px;
33
+ cursor: pointer;
34
+ padding: 4px;
35
+ display: flex;
36
+ align-items: center;
37
+ justify-content: center;
38
+ transition: all 0.15s ease;
39
+ }
40
+
41
+ .columns-icon-btn:hover {
42
+ background: var(--jotx-bg-hover, rgba(255, 255, 255, 0.05));
43
+ border-color: var(--jotx-border, #555);
44
+ }
45
+
46
+ .columns-icon-btn.active {
47
+ background: var(--jotx-bg-active, rgba(20, 184, 166, 0.1));
48
+ border-color: var(--jotx-accent, #14b8a6);
49
+ }
50
+
51
+ /* Grid layout container — wraps NodeViewContent */
52
+ .columns-grid {
53
+ align-items: start;
54
+ }
55
+
56
+ /* CRITICAL: Make NodeViewContent transparent to CSS Grid
57
+ This is the same pattern used by GridCardNodeView.
58
+ `display: contents` removes the element from layout flow,
59
+ so column children become direct grid items. */
60
+ .columns-content {
61
+ display: contents;
62
+ }
63
+
64
+ /* Individual column styling */
65
+ .column-content {
66
+ padding: 8px;
67
+ min-height: 40px;
68
+ border-radius: 4px;
69
+ }
70
+
71
+ /* Column dividers — only for multi-column layouts */
72
+ .column-content+.column-content {
73
+ border-left: 1px solid var(--jotx-border, #333);
74
+ padding-left: 12px;
75
+ }
76
+
77
+ /* Responsive: stack on narrow */
78
+ @media (max-width: 500px) {
79
+ .columns-grid {
80
+ grid-template-columns: 1fr !important;
81
+ }
82
+
83
+ .column-content+.column-content {
84
+ border-left: none;
85
+ border-top: 1px solid var(--jotx-border, #333);
86
+ padding-left: 8px;
87
+ padding-top: 12px;
88
+ }
89
+ }
@@ -0,0 +1,65 @@
1
+ /* Presentation Toolbar Styles */
2
+
3
+ .jotx-presentation-toolbar {
4
+ display: flex;
5
+ align-items: center;
6
+ gap: 8px;
7
+ padding: 6px 16px;
8
+ border-bottom: 1px solid var(--vscode-editorWidget-border, #3c3c3c);
9
+ background: var(--vscode-editorWidget-background, #252526);
10
+ }
11
+
12
+ .jotx-pres-btn {
13
+ display: inline-flex;
14
+ align-items: center;
15
+ gap: 4px;
16
+ padding: 4px 10px;
17
+ font-size: 12px;
18
+ border: 1px solid var(--vscode-button-border, #3c3c3c);
19
+ border-radius: 4px;
20
+ background: var(--vscode-button-secondaryBackground, #3c3c3c);
21
+ color: var(--vscode-button-secondaryForeground, #cccccc);
22
+ cursor: pointer;
23
+ user-select: none;
24
+ transition: background 0.15s;
25
+ }
26
+
27
+ .jotx-pres-btn:hover {
28
+ background: var(--vscode-button-secondaryHoverBackground, #505050);
29
+ }
30
+
31
+ .jotx-pres-btn-primary {
32
+ background: var(--vscode-button-background, #0e639c);
33
+ color: var(--vscode-button-foreground, #ffffff);
34
+ border: none;
35
+ }
36
+
37
+ .jotx-pres-btn-primary:hover {
38
+ background: var(--vscode-button-hoverBackground, #1177bb);
39
+ }
40
+
41
+ .jotx-pres-slide-count {
42
+ margin-left: auto;
43
+ font-size: 11px;
44
+ color: var(--vscode-descriptionForeground, #888888);
45
+ }
46
+
47
+ /* Slide Marker Inline Decorations */
48
+
49
+ .jotx-slide-marker {
50
+ display: flex;
51
+ align-items: center;
52
+ justify-content: center;
53
+ padding: 4px 0;
54
+ margin: 12px 0 4px 0;
55
+ font-size: 11px;
56
+ font-weight: 600;
57
+ letter-spacing: 1px;
58
+ color: var(--vscode-editorLineNumber-foreground, #858585);
59
+ user-select: none;
60
+ pointer-events: none;
61
+ }
62
+
63
+ .jotx-slide-marker-break {
64
+ color: var(--vscode-editorInfo-foreground, #3794ff);
65
+ }
@@ -347,21 +347,21 @@
347
347
 
348
348
  .readonly-block-renderer th,
349
349
  .readonly-block-renderer td {
350
- border: 1px solid var(--vscode-panel-border, hsl(var(--border, 220 13% 30%)));
350
+ border: 1px solid var(--vscode-panel-border, hsl(var(--border, 220 13% 80%)));
351
351
  padding: 8px 12px;
352
352
  text-align: left;
353
353
  vertical-align: top;
354
- color: var(--vscode-foreground, hsl(var(--foreground, 0 0% 95%)));
355
- background: transparent;
354
+ color: var(--vscode-foreground, hsl(var(--foreground, 222 47% 11%)));
355
+ background: var(--vscode-editor-background, hsl(var(--background, 0 0% 100%)));
356
356
  }
357
357
 
358
358
  .readonly-block-renderer th {
359
359
  font-weight: 600;
360
- background: rgba(255, 255, 255, 0.05);
360
+ background: var(--vscode-editor-selectionBackground, hsl(var(--muted, 220 14% 96%)));
361
361
  }
362
362
 
363
363
  .readonly-block-renderer tr:hover td {
364
- background: rgba(255, 255, 255, 0.03);
364
+ background: var(--vscode-list-hoverBackground, hsl(var(--muted, 220 14% 96%) / 0.5));
365
365
  }
366
366
 
367
367
  /* Image block */
@@ -0,0 +1,116 @@
1
+ /* SlideProperties NodeView Styles */
2
+
3
+ .jotx-slideprops {
4
+ margin: 8px 0 16px 0;
5
+ border: 1px solid var(--vscode-editorWidget-border, #3c3c3c);
6
+ border-radius: 8px;
7
+ overflow: hidden;
8
+ background: var(--vscode-editorWidget-background, #252526);
9
+ }
10
+
11
+ .jotx-slideprops-header {
12
+ display: flex;
13
+ align-items: center;
14
+ gap: 8px;
15
+ padding: 8px 12px;
16
+ cursor: pointer;
17
+ user-select: none;
18
+ background: var(--vscode-sideBarSectionHeader-background, #1e1e1e);
19
+ color: var(--vscode-foreground, #cccccc);
20
+ font-size: 13px;
21
+ font-weight: 600;
22
+ }
23
+
24
+ .jotx-slideprops-header:hover {
25
+ background: var(--vscode-list-hoverBackground, #2a2d2e);
26
+ }
27
+
28
+ .jotx-slideprops-title {
29
+ flex: 1;
30
+ }
31
+
32
+ .jotx-slideprops-body {
33
+ padding: 12px;
34
+ border-top: 1px solid var(--vscode-editorWidget-border, #3c3c3c);
35
+ }
36
+
37
+ .jotx-slideprops-grid {
38
+ display: grid;
39
+ grid-template-columns: 80px 1fr;
40
+ gap: 8px 12px;
41
+ align-items: center;
42
+ }
43
+
44
+ .jotx-slideprops-label {
45
+ font-size: 12px;
46
+ color: var(--vscode-descriptionForeground, #888888);
47
+ text-align: right;
48
+ }
49
+
50
+ .jotx-slideprops-select,
51
+ .jotx-slideprops-input {
52
+ font-size: 12px;
53
+ padding: 4px 8px;
54
+ border: 1px solid var(--vscode-input-border, #3c3c3c);
55
+ border-radius: 4px;
56
+ background: var(--vscode-input-background, #1e1e1e);
57
+ color: var(--vscode-input-foreground, #cccccc);
58
+ outline: none;
59
+ }
60
+
61
+ .jotx-slideprops-select:focus,
62
+ .jotx-slideprops-input:focus {
63
+ border-color: var(--vscode-focusBorder, #007acc);
64
+ }
65
+
66
+ .jotx-slideprops-checkbox-label {
67
+ display: flex;
68
+ align-items: center;
69
+ gap: 6px;
70
+ font-size: 12px;
71
+ color: var(--vscode-foreground, #cccccc);
72
+ cursor: pointer;
73
+ }
74
+
75
+ .jotx-slideprops-checkbox-label input[type="checkbox"] {
76
+ accent-color: var(--vscode-focusBorder, #007acc);
77
+ }
78
+
79
+ /* Logo file picker row */
80
+ .jotx-slideprops-logo-row {
81
+ display: flex;
82
+ gap: 4px;
83
+ align-items: center;
84
+ }
85
+
86
+ .jotx-slideprops-logo-input {
87
+ flex: 1;
88
+ min-width: 0;
89
+ cursor: default;
90
+ }
91
+
92
+ .jotx-slideprops-logo-btn,
93
+ .jotx-slideprops-logo-clear {
94
+ display: flex;
95
+ align-items: center;
96
+ justify-content: center;
97
+ padding: 4px 6px;
98
+ border: 1px solid var(--vscode-input-border, #3c3c3c);
99
+ border-radius: 4px;
100
+ background: var(--vscode-button-secondaryBackground, #3a3d41);
101
+ color: var(--vscode-button-secondaryForeground, #cccccc);
102
+ cursor: pointer;
103
+ font-size: 12px;
104
+ line-height: 1;
105
+ }
106
+
107
+ .jotx-slideprops-logo-btn:hover,
108
+ .jotx-slideprops-logo-clear:hover {
109
+ background: var(--vscode-button-secondaryHoverBackground, #45494e);
110
+ }
111
+
112
+ .jotx-slideprops-logo-clear {
113
+ font-size: 14px;
114
+ font-weight: bold;
115
+ padding: 3px 6px;
116
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * PresentationConverter — Converts jotx ProseMirror document to reveal.js HTML
3
+ *
4
+ * This is a PURE LOGIC module with zero platform dependencies.
5
+ * Works in both VS Code webview and web app contexts.
6
+ *
7
+ * IMPORTANT: Uses Tiptap node type names (bulletList, orderedList, taskList,
8
+ * tableRow, tableCell, tableHeader, etc.) — NOT jotx block type names.
9
+ */
10
+ export interface SlidePropertiesAttrs {
11
+ theme: string;
12
+ transition: string;
13
+ footertext: string;
14
+ footerlogo: string;
15
+ logoalign: string;
16
+ ratio: string;
17
+ fontfamily: string;
18
+ autoanimate: boolean;
19
+ shownumbers: boolean;
20
+ }
21
+ export interface Slide {
22
+ title: string;
23
+ html: string;
24
+ isTitle?: boolean;
25
+ }
26
+ /**
27
+ * Walk a ProseMirror JSON document and split into slides at H1/divider boundaries
28
+ */
29
+ export declare function splitDocIntoSlides(doc: any): {
30
+ slides: Slide[];
31
+ properties: SlidePropertiesAttrs;
32
+ };
33
+ /**
34
+ * Count slides in a ProseMirror doc (for the toolbar indicator)
35
+ */
36
+ export declare function countSlides(doc: any): number;
37
+ /**
38
+ * Generate complete reveal.js HTML document from slides
39
+ */
40
+ export declare function generateRevealHTML(slides: Slide[], properties: SlidePropertiesAttrs, revealJsPath?: string, revealCssPath?: string): string;
41
+ //# sourceMappingURL=PresentationConverter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PresentationConverter.d.ts","sourceRoot":"","sources":["../../src/utils/PresentationConverter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;IACpB,WAAW,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,KAAK;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,OAAO,CAAA;CACpB;AAcD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG;IAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAAC,UAAU,EAAE,oBAAoB,CAAA;CAAE,CA2ElG;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAkB5C;AAoBD;;GAEG;AACH,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,KAAK,EAAE,EACf,UAAU,EAAE,oBAAoB,EAChC,YAAY,CAAC,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,MAAM,GACvB,MAAM,CA03BR"}