@jotx-labs/editor 2.4.136 → 2.4.137

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 (283) hide show
  1. package/dist/bridge 2/BridgeContext.d.ts +14 -0
  2. package/dist/bridge 2/BridgeContext.d.ts.map +1 -0
  3. package/dist/bridge 2/BridgeContext.js +20 -0
  4. package/dist/bridge 2/BridgeContext.js.map +1 -0
  5. package/dist/bridge 2/bridge-utils.d.ts +24 -0
  6. package/dist/bridge 2/bridge-utils.d.ts.map +1 -0
  7. package/dist/bridge 2/bridge-utils.js +77 -0
  8. package/dist/bridge 2/bridge-utils.js.map +1 -0
  9. package/dist/bridge 2/types.d.ts +34 -0
  10. package/dist/bridge 2/types.d.ts.map +1 -0
  11. package/dist/bridge 2/types.js +27 -0
  12. package/dist/bridge 2/types.js.map +1 -0
  13. package/dist/bridge 2/vscode-api.d.ts +13 -0
  14. package/dist/bridge 2/vscode-api.d.ts.map +1 -0
  15. package/dist/bridge 2/vscode-api.js +27 -0
  16. package/dist/bridge 2/vscode-api.js.map +1 -0
  17. package/dist/components 2/AttachBlockNodeView.d.ts +2 -0
  18. package/dist/components 2/AttachBlockNodeView.d.ts.map +1 -0
  19. package/dist/components 2/AttachBlockNodeView.js +37 -0
  20. package/dist/components 2/AttachBlockNodeView.js.map +1 -0
  21. package/dist/components 2/BlockMenu.d.ts +11 -0
  22. package/dist/components 2/BlockMenu.d.ts.map +1 -0
  23. package/dist/components 2/BlockMenu.js +344 -0
  24. package/dist/components 2/BlockMenu.js.map +1 -0
  25. package/dist/components 2/ButtonNodeView.d.ts +17 -0
  26. package/dist/components 2/ButtonNodeView.d.ts.map +1 -0
  27. package/dist/components 2/ButtonNodeView.js +55 -0
  28. package/dist/components 2/ButtonNodeView.js.map +1 -0
  29. package/dist/components 2/CardNodeView.d.ts +18 -0
  30. package/dist/components 2/CardNodeView.d.ts.map +1 -0
  31. package/dist/components 2/CardNodeView.js +46 -0
  32. package/dist/components 2/CardNodeView.js.map +1 -0
  33. package/dist/components 2/ChartNodeView.d.ts +4 -0
  34. package/dist/components 2/ChartNodeView.d.ts.map +1 -0
  35. package/dist/components 2/ChartNodeView.js +247 -0
  36. package/dist/components 2/ChartNodeView.js.map +1 -0
  37. package/dist/components 2/CodeBlockNodeView.d.ts +4 -0
  38. package/dist/components 2/CodeBlockNodeView.d.ts.map +1 -0
  39. package/dist/components 2/CodeBlockNodeView.js +105 -0
  40. package/dist/components 2/CodeBlockNodeView.js.map +1 -0
  41. package/dist/components 2/CodeReferenceNodeView.d.ts +4 -0
  42. package/dist/components 2/CodeReferenceNodeView.d.ts.map +1 -0
  43. package/dist/components 2/CodeReferenceNodeView.js +71 -0
  44. package/dist/components 2/CodeReferenceNodeView.js.map +1 -0
  45. package/dist/components 2/DateTimeNodeView.d.ts +3 -0
  46. package/dist/components 2/DateTimeNodeView.d.ts.map +1 -0
  47. package/dist/components 2/DateTimeNodeView.js +55 -0
  48. package/dist/components 2/DateTimeNodeView.js.map +1 -0
  49. package/dist/components 2/EditorRibbon.d.ts +13 -0
  50. package/dist/components 2/EditorRibbon.d.ts.map +1 -0
  51. package/dist/components 2/EditorRibbon.js +12 -0
  52. package/dist/components 2/EditorRibbon.js.map +1 -0
  53. package/dist/components 2/FloatImageBlockNodeView.d.ts +6 -0
  54. package/dist/components 2/FloatImageBlockNodeView.d.ts.map +1 -0
  55. package/dist/components 2/FloatImageBlockNodeView.js +96 -0
  56. package/dist/components 2/FloatImageBlockNodeView.js.map +1 -0
  57. package/dist/components 2/GridCardNodeView.d.ts +13 -0
  58. package/dist/components 2/GridCardNodeView.d.ts.map +1 -0
  59. package/dist/components 2/GridCardNodeView.js +31 -0
  60. package/dist/components 2/GridCardNodeView.js.map +1 -0
  61. package/dist/components 2/ImageBlockNodeView.d.ts +7 -0
  62. package/dist/components 2/ImageBlockNodeView.d.ts.map +1 -0
  63. package/dist/components 2/ImageBlockNodeView.js +132 -0
  64. package/dist/components 2/ImageBlockNodeView.js.map +1 -0
  65. package/dist/components 2/ImageToolbar.d.ts +6 -0
  66. package/dist/components 2/ImageToolbar.d.ts.map +1 -0
  67. package/dist/components 2/ImageToolbar.js +67 -0
  68. package/dist/components 2/ImageToolbar.js.map +1 -0
  69. package/dist/components 2/JotxEditor.d.ts +17 -0
  70. package/dist/components 2/JotxEditor.d.ts.map +1 -0
  71. package/dist/components 2/JotxEditor.js +1121 -0
  72. package/dist/components 2/JotxEditor.js.map +1 -0
  73. package/dist/components 2/JotxLinkNodeView.d.ts +4 -0
  74. package/dist/components 2/JotxLinkNodeView.d.ts.map +1 -0
  75. package/dist/components 2/JotxLinkNodeView.js +123 -0
  76. package/dist/components 2/JotxLinkNodeView.js.map +1 -0
  77. package/dist/components 2/LinkDialog.d.ts +14 -0
  78. package/dist/components 2/LinkDialog.d.ts.map +1 -0
  79. package/dist/components 2/LinkDialog.js +33 -0
  80. package/dist/components 2/LinkDialog.js.map +1 -0
  81. package/dist/components 2/MathNodeView.d.ts +3 -0
  82. package/dist/components 2/MathNodeView.d.ts.map +1 -0
  83. package/dist/components 2/MathNodeView.js +67 -0
  84. package/dist/components 2/MathNodeView.js.map +1 -0
  85. package/dist/components 2/MermaidNodeView.d.ts +4 -0
  86. package/dist/components 2/MermaidNodeView.d.ts.map +1 -0
  87. package/dist/components 2/MermaidNodeView.js +442 -0
  88. package/dist/components 2/MermaidNodeView.js.map +1 -0
  89. package/dist/components 2/NodePickerDialog.d.ts +12 -0
  90. package/dist/components 2/NodePickerDialog.d.ts.map +1 -0
  91. package/dist/components 2/NodePickerDialog.js +90 -0
  92. package/dist/components 2/NodePickerDialog.js.map +1 -0
  93. package/dist/components 2/ReadonlyBlockRenderer.d.ts +13 -0
  94. package/dist/components 2/ReadonlyBlockRenderer.d.ts.map +1 -0
  95. package/dist/components 2/ReadonlyBlockRenderer.js +78 -0
  96. package/dist/components 2/ReadonlyBlockRenderer.js.map +1 -0
  97. package/dist/components 2/ReadonlyMermaid.d.ts +10 -0
  98. package/dist/components 2/ReadonlyMermaid.d.ts.map +1 -0
  99. package/dist/components 2/ReadonlyMermaid.js +70 -0
  100. package/dist/components 2/ReadonlyMermaid.js.map +1 -0
  101. package/dist/components 2/SearchBar.d.ts +16 -0
  102. package/dist/components 2/SearchBar.d.ts.map +1 -0
  103. package/dist/components 2/SearchBar.js +52 -0
  104. package/dist/components 2/SearchBar.js.map +1 -0
  105. package/dist/components 2/SectionNodeView.d.ts +4 -0
  106. package/dist/components 2/SectionNodeView.d.ts.map +1 -0
  107. package/dist/components 2/SectionNodeView.js +39 -0
  108. package/dist/components 2/SectionNodeView.js.map +1 -0
  109. package/dist/components 2/SlashMenu.d.ts +21 -0
  110. package/dist/components 2/SlashMenu.d.ts.map +1 -0
  111. package/dist/components 2/SlashMenu.js +356 -0
  112. package/dist/components 2/SlashMenu.js.map +1 -0
  113. package/dist/components 2/TableToolbar.d.ts +10 -0
  114. package/dist/components 2/TableToolbar.d.ts.map +1 -0
  115. package/dist/components 2/TableToolbar.js +189 -0
  116. package/dist/components 2/TableToolbar.js.map +1 -0
  117. package/dist/components 2/ToggleNodeView.d.ts +4 -0
  118. package/dist/components 2/ToggleNodeView.d.ts.map +1 -0
  119. package/dist/components 2/ToggleNodeView.js +39 -0
  120. package/dist/components 2/ToggleNodeView.js.map +1 -0
  121. package/dist/components 2/UrlInputDialog.d.ts +13 -0
  122. package/dist/components 2/UrlInputDialog.d.ts.map +1 -0
  123. package/dist/components 2/UrlInputDialog.js +39 -0
  124. package/dist/components 2/UrlInputDialog.js.map +1 -0
  125. package/dist/components 2/VideoBlockNodeView.d.ts +12 -0
  126. package/dist/components 2/VideoBlockNodeView.d.ts.map +1 -0
  127. package/dist/components 2/VideoBlockNodeView.js +97 -0
  128. package/dist/components 2/VideoBlockNodeView.js.map +1 -0
  129. package/dist/contexts 2/NodeManagerContext.d.ts +34 -0
  130. package/dist/contexts 2/NodeManagerContext.d.ts.map +1 -0
  131. package/dist/contexts 2/NodeManagerContext.js +31 -0
  132. package/dist/contexts 2/NodeManagerContext.js.map +1 -0
  133. package/dist/extensions 2/AttachNode.d.ts +7 -0
  134. package/dist/extensions 2/AttachNode.d.ts.map +1 -0
  135. package/dist/extensions 2/AttachNode.js +50 -0
  136. package/dist/extensions 2/AttachNode.js.map +1 -0
  137. package/dist/extensions 2/BlockOpsExtension.d.ts +17 -0
  138. package/dist/extensions 2/BlockOpsExtension.d.ts.map +1 -0
  139. package/dist/extensions 2/BlockOpsExtension.js +248 -0
  140. package/dist/extensions 2/BlockOpsExtension.js.map +1 -0
  141. package/dist/extensions 2/ButtonNode.d.ts +7 -0
  142. package/dist/extensions 2/ButtonNode.d.ts.map +1 -0
  143. package/dist/extensions 2/ButtonNode.js +59 -0
  144. package/dist/extensions 2/ButtonNode.js.map +1 -0
  145. package/dist/extensions 2/CalloutActionsExtension.d.ts +3 -0
  146. package/dist/extensions 2/CalloutActionsExtension.d.ts.map +1 -0
  147. package/dist/extensions 2/CalloutActionsExtension.js +41 -0
  148. package/dist/extensions 2/CalloutActionsExtension.js.map +1 -0
  149. package/dist/extensions 2/CalloutNode.d.ts +7 -0
  150. package/dist/extensions 2/CalloutNode.d.ts.map +1 -0
  151. package/dist/extensions 2/CalloutNode.js +48 -0
  152. package/dist/extensions 2/CalloutNode.js.map +1 -0
  153. package/dist/extensions 2/CardNode.d.ts +7 -0
  154. package/dist/extensions 2/CardNode.d.ts.map +1 -0
  155. package/dist/extensions 2/CardNode.js +64 -0
  156. package/dist/extensions 2/CardNode.js.map +1 -0
  157. package/dist/extensions 2/ChartNode.d.ts +3 -0
  158. package/dist/extensions 2/ChartNode.d.ts.map +1 -0
  159. package/dist/extensions 2/ChartNode.js +60 -0
  160. package/dist/extensions 2/ChartNode.js.map +1 -0
  161. package/dist/extensions 2/CodeBlockNode.d.ts +7 -0
  162. package/dist/extensions 2/CodeBlockNode.d.ts.map +1 -0
  163. package/dist/extensions 2/CodeBlockNode.js +57 -0
  164. package/dist/extensions 2/CodeBlockNode.js.map +1 -0
  165. package/dist/extensions 2/CodeReferenceNode.d.ts +3 -0
  166. package/dist/extensions 2/CodeReferenceNode.d.ts.map +1 -0
  167. package/dist/extensions 2/CodeReferenceNode.js +46 -0
  168. package/dist/extensions 2/CodeReferenceNode.js.map +1 -0
  169. package/dist/extensions 2/DateTimeNode.d.ts +3 -0
  170. package/dist/extensions 2/DateTimeNode.d.ts.map +1 -0
  171. package/dist/extensions 2/DateTimeNode.js +43 -0
  172. package/dist/extensions 2/DateTimeNode.js.map +1 -0
  173. package/dist/extensions 2/FloatImageBlockNode.d.ts +7 -0
  174. package/dist/extensions 2/FloatImageBlockNode.d.ts.map +1 -0
  175. package/dist/extensions 2/FloatImageBlockNode.js +73 -0
  176. package/dist/extensions 2/FloatImageBlockNode.js.map +1 -0
  177. package/dist/extensions 2/GridCardNode.d.ts +7 -0
  178. package/dist/extensions 2/GridCardNode.d.ts.map +1 -0
  179. package/dist/extensions 2/GridCardNode.js +56 -0
  180. package/dist/extensions 2/GridCardNode.js.map +1 -0
  181. package/dist/extensions 2/ImageBlockNode.d.ts +7 -0
  182. package/dist/extensions 2/ImageBlockNode.d.ts.map +1 -0
  183. package/dist/extensions 2/ImageBlockNode.js +76 -0
  184. package/dist/extensions 2/ImageBlockNode.js.map +1 -0
  185. package/dist/extensions 2/ImageNode.d.ts +10 -0
  186. package/dist/extensions 2/ImageNode.d.ts.map +1 -0
  187. package/dist/extensions 2/ImageNode.js +67 -0
  188. package/dist/extensions 2/ImageNode.js.map +1 -0
  189. package/dist/extensions 2/JotxLinkNode.d.ts +3 -0
  190. package/dist/extensions 2/JotxLinkNode.d.ts.map +1 -0
  191. package/dist/extensions 2/JotxLinkNode.js +43 -0
  192. package/dist/extensions 2/JotxLinkNode.js.map +1 -0
  193. package/dist/extensions 2/JotxTable.d.ts +9 -0
  194. package/dist/extensions 2/JotxTable.d.ts.map +1 -0
  195. package/dist/extensions 2/JotxTable.js +40 -0
  196. package/dist/extensions 2/JotxTable.js.map +1 -0
  197. package/dist/extensions 2/LinkNode.d.ts +7 -0
  198. package/dist/extensions 2/LinkNode.d.ts.map +1 -0
  199. package/dist/extensions 2/LinkNode.js +54 -0
  200. package/dist/extensions 2/LinkNode.js.map +1 -0
  201. package/dist/extensions 2/MathNode.d.ts +3 -0
  202. package/dist/extensions 2/MathNode.d.ts.map +1 -0
  203. package/dist/extensions 2/MathNode.js +61 -0
  204. package/dist/extensions 2/MathNode.js.map +1 -0
  205. package/dist/extensions 2/MermaidNode.d.ts +3 -0
  206. package/dist/extensions 2/MermaidNode.d.ts.map +1 -0
  207. package/dist/extensions 2/MermaidNode.js +59 -0
  208. package/dist/extensions 2/MermaidNode.js.map +1 -0
  209. package/dist/extensions 2/SearchExtension.d.ts +40 -0
  210. package/dist/extensions 2/SearchExtension.d.ts.map +1 -0
  211. package/dist/extensions 2/SearchExtension.js +186 -0
  212. package/dist/extensions 2/SearchExtension.js.map +1 -0
  213. package/dist/extensions 2/SectionNode.d.ts +11 -0
  214. package/dist/extensions 2/SectionNode.d.ts.map +1 -0
  215. package/dist/extensions 2/SectionNode.js +58 -0
  216. package/dist/extensions 2/SectionNode.js.map +1 -0
  217. package/dist/extensions 2/SlashMenuExtension.d.ts +17 -0
  218. package/dist/extensions 2/SlashMenuExtension.d.ts.map +1 -0
  219. package/dist/extensions 2/SlashMenuExtension.js +146 -0
  220. package/dist/extensions 2/SlashMenuExtension.js.map +1 -0
  221. package/dist/extensions 2/SpellCheckExtension.d.ts +14 -0
  222. package/dist/extensions 2/SpellCheckExtension.d.ts.map +1 -0
  223. package/dist/extensions 2/SpellCheckExtension.js +278 -0
  224. package/dist/extensions 2/SpellCheckExtension.js.map +1 -0
  225. package/dist/extensions 2/TableFilterExtension.d.ts +12 -0
  226. package/dist/extensions 2/TableFilterExtension.d.ts.map +1 -0
  227. package/dist/extensions 2/TableFilterExtension.js +75 -0
  228. package/dist/extensions 2/TableFilterExtension.js.map +1 -0
  229. package/dist/extensions 2/ToggleNode.d.ts +11 -0
  230. package/dist/extensions 2/ToggleNode.d.ts.map +1 -0
  231. package/dist/extensions 2/ToggleNode.js +58 -0
  232. package/dist/extensions 2/ToggleNode.js.map +1 -0
  233. package/dist/extensions 2/VideoBlockNode.d.ts +7 -0
  234. package/dist/extensions 2/VideoBlockNode.d.ts.map +1 -0
  235. package/dist/extensions 2/VideoBlockNode.js +95 -0
  236. package/dist/extensions 2/VideoBlockNode.js.map +1 -0
  237. package/dist/extensions 2/formatting.d.ts +2 -0
  238. package/dist/extensions 2/formatting.d.ts.map +1 -0
  239. package/dist/extensions 2/formatting.js +10 -0
  240. package/dist/extensions 2/formatting.js.map +1 -0
  241. package/dist/index 2.js +128 -0
  242. package/dist/index.d 2.ts +59 -0
  243. package/dist/index.d.ts 2.map +1 -0
  244. package/dist/index.js 2.map +1 -0
  245. package/dist/services 2/ImageStorage.d.ts +38 -0
  246. package/dist/services 2/ImageStorage.d.ts.map +1 -0
  247. package/dist/services 2/ImageStorage.js +32 -0
  248. package/dist/services 2/ImageStorage.js.map +1 -0
  249. package/dist/services 2/SpellCheckService 2.d.ts +50 -0
  250. package/dist/services 2/SpellCheckService 2.d.ts.map +1 -0
  251. package/dist/services 2/SpellCheckService 2.js +131 -0
  252. package/dist/services 2/SpellCheckService 2.js.map +1 -0
  253. package/dist/services 2/SpellCheckService.d.ts +50 -0
  254. package/dist/services 2/SpellCheckService.d.ts.map +1 -0
  255. package/dist/services 2/SpellCheckService.js +131 -0
  256. package/dist/services 2/SpellCheckService.js.map +1 -0
  257. package/dist/styles 2/BlockMenu.css +111 -0
  258. package/dist/styles 2/ButtonNodeView.css +169 -0
  259. package/dist/styles 2/ChartNodeView.css +99 -0
  260. package/dist/styles 2/CodeBlockNodeView.css +90 -0
  261. package/dist/styles 2/DateTimeNodeView.css +89 -0
  262. package/dist/styles 2/GridCardNodeView.css +231 -0
  263. package/dist/styles 2/ImageToolbar.css +67 -0
  264. package/dist/styles 2/ImageVideoBlocks.css +441 -0
  265. package/dist/styles 2/JotxEditor.css +691 -0
  266. package/dist/styles 2/JotxLinkNodeView.css +149 -0
  267. package/dist/styles 2/LinkDialog.css +118 -0
  268. package/dist/styles 2/MathNodeView.css +97 -0
  269. package/dist/styles 2/MermaidNodeView.css +146 -0
  270. package/dist/styles 2/NodePickerDialog.css +189 -0
  271. package/dist/styles 2/ReadonlyBlockRenderer.css +389 -0
  272. package/dist/styles 2/SearchBar.css +167 -0
  273. package/dist/styles 2/SearchHighlight.css +48 -0
  274. package/dist/styles 2/SectionNodeView.css +90 -0
  275. package/dist/styles 2/SlashMenu.css +135 -0
  276. package/dist/styles 2/SpellCheck.css +16 -0
  277. package/dist/styles 2/TableToolbar.css +137 -0
  278. package/dist/styles 2/ToggleNodeView.css +56 -0
  279. package/dist/utils 2/logger.d.ts +14 -0
  280. package/dist/utils 2/logger.d.ts.map +1 -0
  281. package/dist/utils 2/logger.js +25 -0
  282. package/dist/utils 2/logger.js.map +1 -0
  283. package/package.json +9 -8
@@ -0,0 +1,691 @@
1
+ /**
2
+ * Jotx Editor Styles - Beautiful, Notion-like
3
+ */
4
+
5
+ .jotx-editor {
6
+ width: 100%;
7
+ min-height: calc(100vh - var(--jotx-header-height, 60px));
8
+ padding: var(--jotx-editor-padding, 40px);
9
+ }
10
+
11
+ .jotx-editor-wrapper {
12
+ max-width: var(--jotx-editor-maxWidth, 900px);
13
+ margin: 0 auto;
14
+ position: relative;
15
+ }
16
+
17
+ .jotx-editor-loading {
18
+ display: flex;
19
+ align-items: center;
20
+ justify-content: center;
21
+ min-height: 400px;
22
+ color: var(--jotx-textSecondary);
23
+ font-size: 14px;
24
+ }
25
+
26
+ /* Tiptap Editor Content */
27
+ .jotx-editor-content {
28
+ position: relative;
29
+ outline: none;
30
+ font-size: var(--jotx-editor-fontSize, 16px);
31
+ line-height: var(--jotx-editor-lineHeight, 1.6);
32
+ color: var(--jotx-text);
33
+ }
34
+
35
+ /* Placeholder */
36
+ .jotx-editor-content .is-editor-empty:first-child::before {
37
+ content: attr(data-placeholder);
38
+ float: left;
39
+ color: var(--jotx-textMuted);
40
+ pointer-events: none;
41
+ height: 0;
42
+ }
43
+
44
+ /* Headings */
45
+ .jotx-editor-content h1 {
46
+ font-size: 2em;
47
+ font-weight: 700;
48
+ line-height: 1.2;
49
+ margin: 1.5em 0 0.5em;
50
+ color: var(--jotx-text);
51
+ }
52
+
53
+ .jotx-editor-content h1:first-child {
54
+ margin-top: 0;
55
+ }
56
+
57
+ .jotx-editor-content h2 {
58
+ font-size: 1.5em;
59
+ font-weight: 600;
60
+ line-height: 1.3;
61
+ margin: 1.2em 0 0.4em;
62
+ color: var(--jotx-text);
63
+ }
64
+
65
+ .jotx-editor-content h3 {
66
+ font-size: 1.25em;
67
+ font-weight: 600;
68
+ line-height: 1.4;
69
+ margin: 1em 0 0.3em;
70
+ color: var(--jotx-text);
71
+ }
72
+
73
+ /* Paragraph */
74
+ .jotx-editor-content p {
75
+ margin: 0.75em 0;
76
+ color: var(--jotx-text);
77
+ }
78
+
79
+ .jotx-editor-content p:first-child {
80
+ margin-top: 0;
81
+ }
82
+
83
+ /* Lists */
84
+ .jotx-editor-content ul,
85
+ .jotx-editor-content ol {
86
+ /* Default list indent: one extra level in from paragraph baseline */
87
+ padding-left: 2.25em;
88
+ margin: 0.75em 0;
89
+ position: relative;
90
+ list-style-position: outside;
91
+ }
92
+
93
+ .jotx-editor-content ul {
94
+ list-style: disc;
95
+ }
96
+
97
+ .jotx-editor-content ol {
98
+ list-style: decimal;
99
+ }
100
+
101
+ .jotx-editor-content ul ul {
102
+ list-style: circle;
103
+ }
104
+
105
+ .jotx-editor-content ol ol {
106
+ list-style: lower-alpha;
107
+ }
108
+
109
+ /* Nested lists spacing (no rails; indentation is the visual cue) */
110
+ .jotx-editor-content ul ul,
111
+ .jotx-editor-content ul ol,
112
+ .jotx-editor-content ol ul,
113
+ .jotx-editor-content ol ol {
114
+ margin-top: 0.25em;
115
+ margin-bottom: 0.25em;
116
+ padding-left: 1.75em;
117
+ }
118
+
119
+ .jotx-editor-content li {
120
+ margin: 0.25em 0;
121
+ color: var(--jotx-text);
122
+ }
123
+
124
+ .jotx-editor-content li p {
125
+ margin: 0;
126
+ }
127
+
128
+ /* Task list (Checklist) */
129
+ .jotx-editor-content ul[data-type="taskList"] {
130
+ list-style: none;
131
+ padding-left: 0;
132
+ margin: 0.75em 0;
133
+ position: relative;
134
+ }
135
+
136
+ /* CRITICAL: Force flexbox on task item to keep checkbox and text on same line */
137
+ .jotx-editor-content li[data-type="taskItem"],
138
+ .ProseMirror li[data-type="taskItem"],
139
+ ul[data-type="taskList"]>li {
140
+ display: flex !important;
141
+ flex-direction: row !important;
142
+ flex-wrap: nowrap !important;
143
+ align-items: flex-start !important;
144
+ gap: 0.5em;
145
+ padding: 0.15em 0;
146
+ }
147
+
148
+ /* Checkbox label - must be inline */
149
+ .jotx-editor-content li[data-type="taskItem"]>label,
150
+ .ProseMirror li[data-type="taskItem"]>label {
151
+ position: static !important;
152
+ margin: 0 !important;
153
+ padding: 0;
154
+ line-height: 1.5;
155
+ user-select: none;
156
+ display: inline-flex !important;
157
+ align-items: center;
158
+ flex-shrink: 0;
159
+ margin-top: 2px !important;
160
+ }
161
+
162
+ /* Checkbox input */
163
+ .jotx-editor-content li[data-type="taskItem"]>label input[type="checkbox"],
164
+ .ProseMirror li[data-type="taskItem"]>label input[type="checkbox"] {
165
+ width: 16px;
166
+ height: 16px;
167
+ accent-color: var(--jotx-primary);
168
+ margin: 0;
169
+ flex-shrink: 0;
170
+ }
171
+
172
+ /* Content div - MUST BE INLINE to keep on same line as checkbox */
173
+ .jotx-editor-content li[data-type="taskItem"]>div,
174
+ .ProseMirror li[data-type="taskItem"]>div {
175
+ min-width: 0;
176
+ flex: 1 1 auto;
177
+ display: inline !important;
178
+ /* Changed from block to inline */
179
+ }
180
+
181
+ .jotx-editor-content li[data-type="taskItem"]>div>*,
182
+ .ProseMirror li[data-type="taskItem"]>div>* {
183
+ margin: 0;
184
+ display: inline !important;
185
+ }
186
+
187
+ .jotx-editor-content li[data-type="taskItem"] p,
188
+ .ProseMirror li[data-type="taskItem"] p {
189
+ margin: 0;
190
+ display: inline !important;
191
+ line-height: 1.5;
192
+ }
193
+
194
+ /* Nested task lists spacing (no rails) */
195
+ .jotx-editor-content ul[data-type="taskList"] ul[data-type="taskList"] {
196
+ margin-top: 0.25em;
197
+ margin-bottom: 0.25em;
198
+ padding-left: 1.75em;
199
+ position: relative;
200
+ }
201
+
202
+ /* Blockquote */
203
+ .jotx-editor-content blockquote {
204
+ border-left: 3px solid var(--jotx-primary);
205
+ padding-left: 1em;
206
+ margin: 1em 0;
207
+ color: var(--jotx-textSecondary);
208
+ font-style: italic;
209
+ }
210
+
211
+ /* Code Block */
212
+ .jotx-editor-content pre {
213
+ background-color: var(--jotx-backgroundSecondary);
214
+ border: 1px solid var(--jotx-border);
215
+ border-radius: 6px;
216
+ padding: 1em;
217
+ margin: 1em 0;
218
+ overflow-x: auto;
219
+ font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
220
+ font-size: 0.9em;
221
+ line-height: 1.5;
222
+ }
223
+
224
+ .jotx-editor-content pre code {
225
+ background: none;
226
+ padding: 0;
227
+ border: none;
228
+ color: var(--jotx-text);
229
+ }
230
+
231
+ /* Inline Code */
232
+ .jotx-editor-content code {
233
+ background-color: var(--jotx-backgroundSecondary);
234
+ padding: 0.2em 0.4em;
235
+ border-radius: 3px;
236
+ font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
237
+ font-size: 0.9em;
238
+ color: var(--jotx-text);
239
+ }
240
+
241
+ /* Horizontal Rule */
242
+ .jotx-editor-content hr {
243
+ border: none;
244
+ border-top: 2px solid var(--jotx-border);
245
+ margin: 2em 0;
246
+ }
247
+
248
+ /* Callout */
249
+ .jotx-editor-content div[data-type="callout"] {
250
+ border: 1px solid var(--jotx-border);
251
+ background: var(--jotx-backgroundSecondary);
252
+ border-radius: 10px;
253
+ padding: 12px 14px;
254
+ margin: 1em 0;
255
+ position: relative;
256
+ overflow: hidden;
257
+ }
258
+
259
+ .jotx-callout-toolbar {
260
+ display: flex;
261
+ gap: 6px;
262
+ padding: 6px;
263
+ border-radius: 10px;
264
+ border: 1px solid var(--jotx-border);
265
+ background: var(--jotx-backgroundSecondary);
266
+ }
267
+
268
+ .jotx-callout-toolbar-floating {
269
+ position: fixed;
270
+ z-index: 12000;
271
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
272
+ }
273
+
274
+ .jotx-callout-chip {
275
+ border: 1px solid var(--jotx-border);
276
+ background: transparent;
277
+ color: var(--jotx-textSecondary);
278
+ padding: 4px 8px;
279
+ border-radius: 999px;
280
+ font-size: 11px;
281
+ font-weight: 600;
282
+ text-transform: uppercase;
283
+ cursor: pointer;
284
+ }
285
+
286
+ .jotx-callout-chip[data-variant="info"] {
287
+ border-color: rgba(148, 163, 184, 0.75);
288
+ }
289
+
290
+ .jotx-callout-chip[data-variant="warning"] {
291
+ border-color: rgba(245, 158, 11, 0.75);
292
+ }
293
+
294
+ .jotx-callout-chip[data-variant="success"] {
295
+ border-color: rgba(34, 197, 94, 0.75);
296
+ }
297
+
298
+ .jotx-callout-chip[data-variant="danger"] {
299
+ border-color: rgba(239, 68, 68, 0.75);
300
+ }
301
+
302
+ .jotx-callout-chip.active {
303
+ color: var(--jotx-text);
304
+ box-shadow: inset 0 0 0 1px currentColor;
305
+ }
306
+
307
+ .jotx-callout-chip.active[data-variant="info"] {
308
+ color: rgba(148, 163, 184, 0.95);
309
+ }
310
+
311
+ .jotx-callout-chip.active[data-variant="warning"] {
312
+ color: rgba(245, 158, 11, 0.95);
313
+ }
314
+
315
+ .jotx-callout-chip.active[data-variant="success"] {
316
+ color: rgba(34, 197, 94, 0.95);
317
+ }
318
+
319
+ .jotx-callout-chip.active[data-variant="danger"] {
320
+ color: rgba(239, 68, 68, 0.95);
321
+ }
322
+
323
+ .jotx-callout-chip:hover {
324
+ color: var(--jotx-text);
325
+ background: var(--jotx-backgroundTertiary);
326
+ }
327
+
328
+ .jotx-editor-content div[data-type="callout"]::before {
329
+ content: "";
330
+ position: absolute;
331
+ left: 0;
332
+ top: 0;
333
+ bottom: 0;
334
+ width: 4px;
335
+ background: rgba(148, 163, 184, 0.95);
336
+ /* info = grey */
337
+ opacity: 0.9;
338
+ }
339
+
340
+ .jotx-editor-content div[data-type="callout"][data-variant="info"] {
341
+ background: rgba(148, 163, 184, 0.10);
342
+ }
343
+
344
+ .jotx-editor-content div[data-type="callout"][data-variant="warning"] {
345
+ background: rgba(245, 158, 11, 0.12);
346
+ }
347
+
348
+ .jotx-editor-content div[data-type="callout"][data-variant="danger"] {
349
+ background: rgba(239, 68, 68, 0.12);
350
+ }
351
+
352
+ .jotx-editor-content div[data-type="callout"][data-variant="success"] {
353
+ background: rgba(34, 197, 94, 0.12);
354
+ }
355
+
356
+ .jotx-editor-content div[data-type="callout"][data-variant="warning"]::before {
357
+ background: rgba(245, 158, 11, 0.95);
358
+ }
359
+
360
+ .jotx-editor-content div[data-type="callout"][data-variant="success"]::before {
361
+ background: rgba(34, 197, 94, 0.95);
362
+ }
363
+
364
+ .jotx-editor-content div[data-type="callout"][data-variant="danger"]::before {
365
+ background: rgba(239, 68, 68, 0.95);
366
+ }
367
+
368
+ .jotx-editor-content div[data-type="callout"][data-variant="warning"] {
369
+ border-color: rgba(245, 158, 11, 0.55);
370
+ }
371
+
372
+ .jotx-editor-content div[data-type="callout"][data-variant="danger"] {
373
+ border-color: rgba(239, 68, 68, 0.55);
374
+ }
375
+
376
+ .jotx-editor-content div[data-type="callout"][data-variant="success"] {
377
+ border-color: rgba(34, 197, 94, 0.55);
378
+ }
379
+
380
+ .jotx-editor-content div[data-type="callout"] p {
381
+ margin: 0;
382
+ }
383
+
384
+ /* Link card + Attach card */
385
+ .jotx-editor-content div[data-type="linkCard"],
386
+ .jotx-editor-content div[data-type="attach"] {
387
+ border: 1px solid var(--jotx-border);
388
+ background: var(--jotx-backgroundSecondary);
389
+ border-radius: 10px;
390
+ padding: 10px 12px;
391
+ margin: 1em 0;
392
+ }
393
+
394
+ .jotx-editor-content div[data-type="linkCard"] p,
395
+ .jotx-editor-content div[data-type="attach"] p {
396
+ margin: 0;
397
+ }
398
+
399
+ .jotx-editor-content div[data-type="linkCard"] {
400
+ border-left: 3px solid var(--jotx-primary);
401
+ }
402
+
403
+ .jotx-editor-content div[data-type="attach"] {
404
+ border-left: 3px solid var(--jotx-textSecondary);
405
+ }
406
+
407
+ /* Image */
408
+ .jotx-editor-content img {
409
+ max-width: 100%;
410
+ height: auto;
411
+ border-radius: 10px;
412
+ margin: 1em 0;
413
+ border: 1px solid var(--jotx-border);
414
+ }
415
+
416
+ /* Table */
417
+ .jotx-editor-content table {
418
+ width: 100%;
419
+ border-collapse: separate;
420
+ border-spacing: 0;
421
+ border: 1px solid var(--jotx-border);
422
+ border-radius: 10px;
423
+ overflow: hidden;
424
+ margin: 1em 0;
425
+ background: var(--jotx-background);
426
+ }
427
+
428
+ .jotx-editor-content th,
429
+ .jotx-editor-content td {
430
+ border-right: 1px solid var(--jotx-border);
431
+ border-bottom: 1px solid var(--jotx-border);
432
+ padding: 10px 12px;
433
+ vertical-align: top;
434
+ }
435
+
436
+ .jotx-editor-content tr:last-child td {
437
+ border-bottom: none;
438
+ }
439
+
440
+ .jotx-editor-content th:last-child,
441
+ .jotx-editor-content td:last-child {
442
+ border-right: none;
443
+ }
444
+
445
+ .jotx-editor-content th {
446
+ background: var(--jotx-backgroundSecondary);
447
+ font-weight: 700;
448
+ font-size: 12px;
449
+ color: var(--jotx-textSecondary);
450
+ text-transform: uppercase;
451
+ letter-spacing: 0.5px;
452
+ }
453
+
454
+ .jotx-editor-content table[data-type="properties"] th {
455
+ background: rgba(148, 163, 184, 0.10);
456
+ }
457
+
458
+ /* Table Cell Selection - Tiptap adds .selectedCell class */
459
+ .jotx-editor-content .selectedCell,
460
+ .jotx-editor-content td.selectedCell,
461
+ .jotx-editor-content th.selectedCell,
462
+ .ProseMirror .selectedCell {
463
+ background: rgba(0, 200, 200, 0.3) !important;
464
+ outline: 2px solid var(--jotx-primary, #00c8c8);
465
+ outline-offset: -2px;
466
+ }
467
+
468
+ /* Improve table cell selection cursor */
469
+ .jotx-editor-content table td,
470
+ .jotx-editor-content table th {
471
+ cursor: cell;
472
+ user-select: text;
473
+ }
474
+
475
+ /* Column/Row resize handles */
476
+ .jotx-editor-content .column-resize-handle {
477
+ position: absolute;
478
+ right: -2px;
479
+ top: 0;
480
+ bottom: -2px;
481
+ width: 4px;
482
+ background-color: var(--jotx-primary);
483
+ pointer-events: auto;
484
+ cursor: col-resize;
485
+ }
486
+
487
+ .jotx-editor-content .tableWrapper {
488
+ overflow-x: auto;
489
+ }
490
+
491
+ .jotx-editor-content table.resize-cursor {
492
+ cursor: col-resize;
493
+ }
494
+
495
+ /* Links */
496
+ .jotx-editor-content a {
497
+ color: var(--jotx-primary);
498
+ text-decoration: none;
499
+ border-bottom: 1px solid transparent;
500
+ transition: border-color 0.2s;
501
+ }
502
+
503
+ .jotx-editor-content a:hover {
504
+ border-bottom-color: var(--jotx-primary);
505
+ }
506
+
507
+ /* Inline highlight */
508
+ .jotx-editor-content mark {
509
+ background: rgba(250, 204, 21, 0.35);
510
+ padding: 0.08em 0.2em;
511
+ border-radius: 0.25em;
512
+ }
513
+
514
+ /* Selection */
515
+ .jotx-editor-content ::selection {
516
+ background-color: var(--jotx-primary);
517
+ color: white;
518
+ }
519
+
520
+ /* Focus */
521
+ .jotx-editor-content:focus {
522
+ outline: none;
523
+ }
524
+
525
+ /* Smooth transitions */
526
+ .jotx-editor-content * {
527
+ transition: color 0.2s, background-color 0.2s, border-color 0.2s;
528
+ }
529
+
530
+ /* Empty state */
531
+ .jotx-editor-content:empty::before {
532
+ content: 'Start typing or press \'/\' for commands...';
533
+ color: var(--jotx-textMuted);
534
+ pointer-events: none;
535
+ }
536
+
537
+ /* Link Block */
538
+ .jotx-link-block {
539
+ margin: 0.5em 0;
540
+ padding: 8px 12px;
541
+ border-radius: 4px;
542
+ background-color: var(--jotx-bgSecondary, rgba(0, 0, 0, 0.03));
543
+ border-left: 3px solid var(--jotx-primary, #007bff);
544
+ transition: background-color 0.2s, border-color 0.2s;
545
+ }
546
+
547
+ .jotx-link-block:hover {
548
+ background-color: var(--jotx-bgHover, rgba(0, 0, 0, 0.05));
549
+ }
550
+
551
+ .jotx-link-block-anchor {
552
+ color: var(--jotx-primary, #007bff);
553
+ text-decoration: none;
554
+ font-weight: 500;
555
+ display: inline-flex;
556
+ align-items: center;
557
+ gap: 6px;
558
+ }
559
+
560
+ .jotx-link-block-anchor::before {
561
+ content: '🔗';
562
+ font-size: 1em;
563
+ }
564
+
565
+ .jotx-link-block-anchor:hover {
566
+ text-decoration: underline;
567
+ }
568
+
569
+ /* Template Picker Modal */
570
+ .jotx-modal-overlay {
571
+ position: fixed;
572
+ top: 0;
573
+ left: 0;
574
+ right: 0;
575
+ bottom: 0;
576
+ background-color: rgba(0, 0, 0, 0.6);
577
+ display: flex;
578
+ align-items: center;
579
+ justify-content: center;
580
+ z-index: 10000;
581
+ animation: fadeIn 0.1s ease;
582
+ }
583
+
584
+ @keyframes fadeIn {
585
+ from {
586
+ opacity: 0;
587
+ }
588
+
589
+ to {
590
+ opacity: 1;
591
+ }
592
+ }
593
+
594
+ .jotx-modal-content {
595
+ background-color: var(--vscode-quickInput-background, var(--vscode-editor-background));
596
+ border: 1px solid var(--vscode-quickInput-border, var(--vscode-widget-border));
597
+ border-radius: 6px;
598
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
599
+ max-width: 480px;
600
+ width: 90%;
601
+ max-height: 500px;
602
+ overflow: hidden;
603
+ display: flex;
604
+ flex-direction: column;
605
+ animation: slideUp 0.15s ease;
606
+ }
607
+
608
+ @keyframes slideUp {
609
+ from {
610
+ transform: translateY(10px);
611
+ opacity: 0;
612
+ }
613
+
614
+ to {
615
+ transform: translateY(0);
616
+ opacity: 1;
617
+ }
618
+ }
619
+
620
+ .jotx-modal-header {
621
+ padding: 12px 16px;
622
+ border-bottom: 1px solid var(--vscode-quickInput-border, var(--vscode-widget-border));
623
+ display: flex;
624
+ align-items: center;
625
+ justify-content: space-between;
626
+ }
627
+
628
+ .jotx-modal-header h3 {
629
+ margin: 0;
630
+ font-size: 13px;
631
+ font-weight: 600;
632
+ color: var(--vscode-quickInput-foreground, var(--vscode-foreground));
633
+ }
634
+
635
+ .jotx-modal-close {
636
+ background: none;
637
+ border: none;
638
+ font-size: 16px;
639
+ color: var(--vscode-icon-foreground);
640
+ cursor: pointer;
641
+ padding: 4px;
642
+ line-height: 1;
643
+ transition: opacity 0.2s;
644
+ opacity: 0.7;
645
+ }
646
+
647
+ .jotx-modal-close:hover {
648
+ opacity: 1;
649
+ }
650
+
651
+ .jotx-template-list {
652
+ padding: 8px;
653
+ overflow-y: auto;
654
+ flex: 1;
655
+ }
656
+
657
+ .jotx-template-item {
658
+ display: flex;
659
+ align-items: center;
660
+ gap: 10px;
661
+ padding: 8px 12px;
662
+ margin: 2px 0;
663
+ background: transparent;
664
+ border: 1px solid transparent;
665
+ border-radius: 4px;
666
+ cursor: pointer;
667
+ transition: all 0.1s;
668
+ width: 100%;
669
+ text-align: left;
670
+ font-size: 13px;
671
+ }
672
+
673
+ .jotx-template-item:hover {
674
+ background: var(--vscode-list-hoverBackground);
675
+ border-color: var(--vscode-list-focusOutline, var(--vscode-focusBorder));
676
+ }
677
+
678
+ .jotx-template-item:active {
679
+ background: var(--vscode-list-activeSelectionBackground);
680
+ }
681
+
682
+ .jotx-template-icon {
683
+ font-size: 16px;
684
+ flex-shrink: 0;
685
+ opacity: 0.8;
686
+ }
687
+
688
+ .jotx-template-name {
689
+ font-weight: 400;
690
+ color: var(--vscode-quickInput-foreground, var(--vscode-foreground));
691
+ }