@jotx-labs/editor 2.4.130 → 2.4.131

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 (45) hide show
  1. package/dist/styles/BlockMenu.css +111 -0
  2. package/dist/styles/ButtonNodeView.css +169 -0
  3. package/dist/styles/ChartNodeView.css +99 -0
  4. package/dist/styles/CodeBlockNodeView.css +90 -0
  5. package/dist/styles/DateTimeNodeView.css +89 -0
  6. package/dist/styles/GridCardNodeView.css +231 -0
  7. package/dist/styles/ImageToolbar.css +67 -0
  8. package/dist/styles/ImageVideoBlocks.css +441 -0
  9. package/dist/styles/JotxEditor.css +691 -0
  10. package/dist/styles/JotxLinkNodeView.css +149 -0
  11. package/dist/styles/LinkDialog.css +118 -0
  12. package/dist/styles/MathNodeView.css +97 -0
  13. package/dist/styles/MermaidNodeView.css +146 -0
  14. package/dist/styles/NodePickerDialog.css +189 -0
  15. package/dist/styles/ReadonlyBlockRenderer.css +389 -0
  16. package/dist/styles/SearchBar.css +167 -0
  17. package/dist/styles/SearchHighlight.css +48 -0
  18. package/dist/styles/SectionNodeView.css +90 -0
  19. package/dist/styles/SlashMenu.css +135 -0
  20. package/dist/styles/SpellCheck.css +16 -0
  21. package/dist/styles/TableToolbar.css +137 -0
  22. package/dist/styles/ToggleNodeView.css +56 -0
  23. package/package.json +4 -3
  24. package/src/styles/BlockMenu.css +111 -0
  25. package/src/styles/ButtonNodeView.css +169 -0
  26. package/src/styles/ChartNodeView.css +99 -0
  27. package/src/styles/CodeBlockNodeView.css +90 -0
  28. package/src/styles/DateTimeNodeView.css +89 -0
  29. package/src/styles/GridCardNodeView.css +231 -0
  30. package/src/styles/ImageToolbar.css +67 -0
  31. package/src/styles/ImageVideoBlocks.css +441 -0
  32. package/src/styles/JotxEditor.css +691 -0
  33. package/src/styles/JotxLinkNodeView.css +149 -0
  34. package/src/styles/LinkDialog.css +118 -0
  35. package/src/styles/MathNodeView.css +97 -0
  36. package/src/styles/MermaidNodeView.css +146 -0
  37. package/src/styles/NodePickerDialog.css +189 -0
  38. package/src/styles/ReadonlyBlockRenderer.css +389 -0
  39. package/src/styles/SearchBar.css +167 -0
  40. package/src/styles/SearchHighlight.css +48 -0
  41. package/src/styles/SectionNodeView.css +90 -0
  42. package/src/styles/SlashMenu.css +135 -0
  43. package/src/styles/SpellCheck.css +16 -0
  44. package/src/styles/TableToolbar.css +137 -0
  45. package/src/styles/ToggleNodeView.css +56 -0
@@ -0,0 +1,99 @@
1
+ .jotx-chart {
2
+ border: 1px solid var(--jotx-border);
3
+ background: var(--jotx-backgroundSecondary);
4
+ border-radius: 12px;
5
+ padding: 12px;
6
+ margin: 1em 0;
7
+ }
8
+
9
+ .jotx-chart-header {
10
+ display: flex;
11
+ align-items: center;
12
+ justify-content: space-between;
13
+ gap: 10px;
14
+ margin-bottom: 10px;
15
+ }
16
+
17
+ .jotx-chart-title {
18
+ font-size: 12px;
19
+ font-weight: 800;
20
+ letter-spacing: 0.5px;
21
+ text-transform: uppercase;
22
+ color: var(--jotx-textSecondary);
23
+ }
24
+
25
+ .jotx-chart-type {
26
+ display: flex;
27
+ gap: 6px;
28
+ margin-left: auto;
29
+ margin-right: 8px;
30
+ }
31
+
32
+ .jotx-chart-type-btn,
33
+ .jotx-chart-settings {
34
+ width: 32px;
35
+ height: 30px;
36
+ display: inline-flex;
37
+ align-items: center;
38
+ justify-content: center;
39
+ border-radius: 10px;
40
+ border: 1px solid var(--jotx-border);
41
+ background: var(--jotx-background);
42
+ color: var(--jotx-text);
43
+ cursor: pointer;
44
+ }
45
+
46
+ .jotx-chart-type-btn.active {
47
+ border-color: rgba(99, 102, 241, 0.65);
48
+ box-shadow: inset 0 0 0 1px rgba(99, 102, 241, 0.25);
49
+ }
50
+
51
+ .jotx-chart-error {
52
+ color: #ef4444;
53
+ font-size: 12px;
54
+ margin-bottom: 8px;
55
+ }
56
+
57
+ .jotx-chart-canvasWrap {
58
+ height: 260px;
59
+ background: var(--jotx-background);
60
+ border: 1px solid var(--jotx-border);
61
+ border-radius: 10px;
62
+ padding: 8px;
63
+ }
64
+
65
+ /* Radar needs more room for point labels */
66
+ .jotx-chart[data-chart-type="radar"] .jotx-chart-canvasWrap {
67
+ height: 340px;
68
+ padding: 12px;
69
+ }
70
+
71
+ .jotx-chart-editor {
72
+ margin-top: 10px;
73
+ background: var(--jotx-background);
74
+ border: 1px solid var(--jotx-border);
75
+ border-radius: 10px;
76
+ padding: 10px;
77
+ }
78
+
79
+ .jotx-chart-editorHint {
80
+ font-size: 12px;
81
+ color: var(--jotx-textSecondary);
82
+ margin-bottom: 6px;
83
+ }
84
+
85
+ .jotx-chart-editor textarea {
86
+ width: 100%;
87
+ min-height: 160px;
88
+ resize: vertical;
89
+ border: 1px solid var(--jotx-border);
90
+ border-radius: 10px;
91
+ padding: 10px;
92
+ background: var(--jotx-backgroundSecondary);
93
+ color: var(--jotx-text);
94
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
95
+ font-size: 12px;
96
+ line-height: 1.5;
97
+ }
98
+
99
+
@@ -0,0 +1,90 @@
1
+ .jotx-codeblock {
2
+ border: 1px solid var(--jotx-border);
3
+ background: var(--jotx-backgroundSecondary);
4
+ border-radius: 10px;
5
+ margin: 1em 0;
6
+ overflow: hidden;
7
+ }
8
+
9
+ .jotx-codeblock-header {
10
+ display: flex;
11
+ align-items: center;
12
+ justify-content: space-between;
13
+ gap: 10px;
14
+ padding: 8px 10px;
15
+ background: var(--jotx-backgroundTertiary, rgba(148, 163, 184, 0.08));
16
+ border-bottom: 1px solid var(--jotx-border);
17
+ }
18
+
19
+ .jotx-codeblock-lang {
20
+ display: inline-flex;
21
+ align-items: center;
22
+ gap: 8px;
23
+ min-width: 0;
24
+ }
25
+
26
+ .jotx-codeblock-langLabel {
27
+ font-size: 11px;
28
+ font-weight: 800;
29
+ color: var(--jotx-textSecondary);
30
+ text-transform: uppercase;
31
+ letter-spacing: 0.04em;
32
+ }
33
+
34
+ .jotx-codeblock-select {
35
+ height: 28px;
36
+ border-radius: 8px;
37
+ border: 1px solid var(--jotx-border);
38
+ background: var(--jotx-background);
39
+ color: var(--jotx-text);
40
+ padding: 0 8px;
41
+ font-size: 12px;
42
+ outline: none;
43
+ }
44
+
45
+ .jotx-codeblock-actions {
46
+ display: inline-flex;
47
+ align-items: center;
48
+ gap: 6px;
49
+ }
50
+
51
+ .jotx-codeblock-btn {
52
+ width: 32px;
53
+ height: 28px;
54
+ display: inline-flex;
55
+ align-items: center;
56
+ justify-content: center;
57
+ border-radius: 8px;
58
+ border: 1px solid var(--jotx-border);
59
+ background: var(--jotx-background);
60
+ color: var(--jotx-text);
61
+ cursor: pointer;
62
+ }
63
+
64
+ .jotx-codeblock-btn:hover {
65
+ transform: translateY(-1px);
66
+ border-color: rgba(99, 102, 241, 0.35);
67
+ box-shadow: 0 8px 18px rgba(99, 102, 241, 0.12);
68
+ }
69
+
70
+ .jotx-codeblock-pre {
71
+ margin: 0;
72
+ padding: 12px 12px;
73
+ overflow-x: auto;
74
+ font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
75
+ font-size: 0.9em;
76
+ line-height: 1.5;
77
+ background: transparent; /* wrapper already has bg */
78
+ border: none;
79
+ }
80
+
81
+ .jotx-codeblock-pre code {
82
+ background: none;
83
+ padding: 0;
84
+ border: none;
85
+ color: var(--jotx-text);
86
+ font-family: inherit;
87
+ font-size: inherit;
88
+ }
89
+
90
+
@@ -0,0 +1,89 @@
1
+ .jotx-datetime-node {
2
+ margin: 0.75em 0;
3
+ }
4
+
5
+ .jotx-datetime-pill {
6
+ display: inline-flex;
7
+ align-items: center;
8
+ gap: 8px;
9
+ padding: 8px 10px;
10
+ border-radius: 12px;
11
+ border: 1px solid var(--jotx-border);
12
+ background: var(--jotx-backgroundSecondary);
13
+ color: var(--jotx-text);
14
+ cursor: pointer;
15
+ }
16
+
17
+ .jotx-datetime-pill:hover {
18
+ border-color: rgba(99, 102, 241, 0.35);
19
+ box-shadow: 0 10px 22px rgba(99, 102, 241, 0.12);
20
+ transform: translateY(-1px);
21
+ }
22
+
23
+ .jotx-datetime-text {
24
+ font-size: 13px;
25
+ font-weight: 650;
26
+ color: var(--jotx-text);
27
+ }
28
+
29
+ .jotx-datetime-popover {
30
+ margin-top: 8px;
31
+ padding: 10px;
32
+ border: 1px solid var(--jotx-border);
33
+ border-radius: 12px;
34
+ background: var(--jotx-backgroundSecondary);
35
+ box-shadow: 0 12px 34px rgba(0, 0, 0, 0.22);
36
+ width: 360px;
37
+ }
38
+
39
+ .jotx-datetime-row {
40
+ display: flex;
41
+ align-items: center;
42
+ justify-content: space-between;
43
+ gap: 12px;
44
+ margin: 8px 0;
45
+ }
46
+
47
+ .jotx-datetime-label {
48
+ font-size: 12px;
49
+ font-weight: 700;
50
+ color: var(--jotx-textSecondary);
51
+ min-width: 60px;
52
+ }
53
+
54
+ .jotx-datetime-select,
55
+ .jotx-datetime-input {
56
+ flex: 1 1 auto;
57
+ height: 32px;
58
+ border-radius: 10px;
59
+ border: 1px solid var(--jotx-border);
60
+ background: var(--jotx-background);
61
+ color: var(--jotx-text);
62
+ padding: 0 10px;
63
+ outline: none;
64
+ }
65
+
66
+ .jotx-datetime-actions {
67
+ display: flex;
68
+ justify-content: flex-end;
69
+ gap: 8px;
70
+ margin-top: 10px;
71
+ }
72
+
73
+ .jotx-datetime-btn {
74
+ height: 32px;
75
+ padding: 0 12px;
76
+ border-radius: 10px;
77
+ border: 1px solid var(--jotx-border);
78
+ background: var(--jotx-background);
79
+ color: var(--jotx-text);
80
+ cursor: pointer;
81
+ font-weight: 650;
82
+ }
83
+
84
+ .jotx-datetime-btn-primary {
85
+ border-color: rgba(99, 102, 241, 0.6);
86
+ box-shadow: inset 0 0 0 1px rgba(99, 102, 241, 0.25);
87
+ }
88
+
89
+
@@ -0,0 +1,231 @@
1
+ /* Grid Card Styles */
2
+
3
+ .gridcard-wrapper {
4
+ margin: 16px 0;
5
+ }
6
+
7
+ /* Layout Controls - Show on hover */
8
+ .gridcard-controls {
9
+ display: flex;
10
+ justify-content: flex-end;
11
+ margin-bottom: 8px;
12
+ opacity: 0;
13
+ transition: opacity 0.2s ease;
14
+ }
15
+
16
+ .gridcard-wrapper:hover .gridcard-controls,
17
+ .gridcard-wrapper:focus-within .gridcard-controls {
18
+ opacity: 1;
19
+ }
20
+
21
+ .gridcard-layout-select {
22
+ padding: 4px 8px;
23
+ border: 1px solid var(--vscode-panel-border, #3c3c3c);
24
+ border-radius: 4px;
25
+ background: var(--vscode-dropdown-background, #3c3c3c);
26
+ color: var(--vscode-dropdown-foreground, #cccccc);
27
+ font-size: 12px;
28
+ cursor: pointer;
29
+ outline: none;
30
+ }
31
+
32
+ .gridcard-layout-select:hover {
33
+ border-color: var(--vscode-focusBorder, #14b8a6);
34
+ }
35
+
36
+ .gridcard-layout-select:focus {
37
+ border-color: var(--vscode-focusBorder, #14b8a6);
38
+ box-shadow: 0 0 0 1px var(--vscode-focusBorder, #14b8a6);
39
+ }
40
+
41
+ .gridcard {
42
+ display: grid;
43
+ gap: 12px;
44
+ padding: 0;
45
+ align-items: stretch;
46
+ /* Make all cards same height */
47
+ }
48
+
49
+ /* CRITICAL: Make NodeViewContent and card wrappers work with CSS Grid */
50
+ .gridcard-content {
51
+ display: contents;
52
+ }
53
+
54
+ /* The cards are wrapped in NodeViewWrapper divs - style them as grid items */
55
+ .gridcard-content>div {
56
+ display: contents;
57
+ }
58
+
59
+ /* Card Styles - Distinct background from theme */
60
+ .card {
61
+ background: rgba(128, 128, 128, 0.1);
62
+ border: 1px solid var(--vscode-panel-border, #3c3c3c);
63
+ border-radius: 10px;
64
+ padding: 20px;
65
+ cursor: default;
66
+ transition: all 0.2s ease;
67
+ display: flex;
68
+ flex-direction: column;
69
+ align-items: center;
70
+ /* CENTER horizontally */
71
+ justify-content: center;
72
+ /* CENTER vertically */
73
+ text-align: center;
74
+ /* CENTER text */
75
+ gap: 8px;
76
+ min-height: 100px;
77
+ height: 100%;
78
+ /* Stretch to fill grid cell */
79
+ position: relative;
80
+ box-sizing: border-box;
81
+ }
82
+
83
+ .card[data-has-link="true"] {
84
+ cursor: pointer;
85
+ }
86
+
87
+ .card:hover {
88
+ border-color: #14b8a6;
89
+ background: rgba(128, 128, 128, 0.15);
90
+ }
91
+
92
+ .card[data-has-link="true"]:hover {
93
+ transform: translateY(-2px);
94
+ box-shadow: 0 4px 12px rgba(20, 184, 166, 0.2);
95
+ }
96
+
97
+ .card-selected {
98
+ outline: 2px solid #14b8a6;
99
+ outline-offset: 2px;
100
+ }
101
+
102
+ /* Card Color Accents - Left Border */
103
+ .card-color-blue {
104
+ border-left: 4px solid #3b82f6;
105
+ }
106
+
107
+ .card-color-green {
108
+ border-left: 4px solid #22c55e;
109
+ }
110
+
111
+ .card-color-red {
112
+ border-left: 4px solid #ef4444;
113
+ }
114
+
115
+ .card-color-yellow {
116
+ border-left: 4px solid #eab308;
117
+ }
118
+
119
+ .card-color-purple {
120
+ border-left: 4px solid #a855f7;
121
+ }
122
+
123
+ .card-color-teal {
124
+ border-left: 4px solid #14b8a6;
125
+ }
126
+
127
+ .card-color-gray {
128
+ border-left: 4px solid #6b7280;
129
+ }
130
+
131
+ /* Card Content - H1 sizing, centered */
132
+ .card-icon {
133
+ font-size: 2em;
134
+ margin-bottom: 4px;
135
+ }
136
+
137
+ .card-title {
138
+ font-size: 1.5em;
139
+ font-weight: 600;
140
+ color: var(--vscode-foreground);
141
+ line-height: 1.3;
142
+ }
143
+
144
+ .card-value {
145
+ font-size: 2.5em;
146
+ font-weight: 700;
147
+ color: #14b8a6;
148
+ line-height: 1;
149
+ margin-top: 8px;
150
+ }
151
+
152
+ .card-link-indicator {
153
+ font-size: 0.85em;
154
+ color: var(--vscode-descriptionForeground, #888);
155
+ margin-top: auto;
156
+ padding-top: 8px;
157
+ width: 100%;
158
+ border-top: 1px solid var(--vscode-panel-border, #3c3c3c);
159
+ opacity: 0.7;
160
+ }
161
+
162
+ .card-link-clickable {
163
+ cursor: pointer;
164
+ transition: all 0.2s ease;
165
+ }
166
+
167
+ .card-link-clickable:hover {
168
+ opacity: 1;
169
+ color: #14b8a6;
170
+ background: rgba(20, 184, 166, 0.1);
171
+ border-radius: 4px;
172
+ padding: 4px 8px;
173
+ margin: 8px -8px -8px -8px;
174
+ border-top: none;
175
+ }
176
+
177
+ /* Card Edit Form */
178
+ .card-edit-form {
179
+ display: flex;
180
+ flex-direction: column;
181
+ gap: 8px;
182
+ width: 100%;
183
+ text-align: left;
184
+ }
185
+
186
+ .card-edit-row {
187
+ display: flex;
188
+ align-items: center;
189
+ gap: 8px;
190
+ }
191
+
192
+ .card-edit-row label {
193
+ flex: 0 0 50px;
194
+ font-size: 0.85em;
195
+ color: var(--vscode-descriptionForeground, #888);
196
+ }
197
+
198
+ .card-edit-row input,
199
+ .card-edit-row select {
200
+ flex: 1;
201
+ padding: 6px 10px;
202
+ border: 1px solid var(--vscode-input-border, #3c3c3c);
203
+ border-radius: 4px;
204
+ background: var(--vscode-input-background, #1e1e1e);
205
+ color: var(--vscode-input-foreground, #fff);
206
+ font-size: 0.9em;
207
+ caret-color: #14b8a6;
208
+ /* Visible cursor */
209
+ }
210
+
211
+ .card-edit-row input:focus,
212
+ .card-edit-row select:focus {
213
+ outline: none;
214
+ border-color: #14b8a6;
215
+ }
216
+
217
+ .card-edit-done {
218
+ margin-top: 8px;
219
+ padding: 6px 12px;
220
+ background: #14b8a6;
221
+ color: white;
222
+ border: none;
223
+ border-radius: 4px;
224
+ cursor: pointer;
225
+ font-size: 0.85em;
226
+ align-self: flex-end;
227
+ }
228
+
229
+ .card-edit-done:hover {
230
+ background: #0d9488;
231
+ }
@@ -0,0 +1,67 @@
1
+ .jotx-image-toolbar {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: 6px;
5
+ padding: 6px 8px;
6
+ border: 1px solid var(--jotx-border);
7
+ background: var(--jotx-backgroundSecondary);
8
+ border-radius: 12px;
9
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
10
+ }
11
+
12
+ .jotx-image-toolbar-floating {
13
+ position: fixed;
14
+ z-index: 11550; /* above inline toolbar */
15
+ }
16
+
17
+ .jotx-image-toolbar-btn {
18
+ width: 32px;
19
+ height: 30px;
20
+ display: inline-flex;
21
+ align-items: center;
22
+ justify-content: center;
23
+ border-radius: 10px;
24
+ border: 1px solid var(--jotx-border);
25
+ background: var(--jotx-background);
26
+ color: var(--jotx-text);
27
+ cursor: pointer;
28
+ }
29
+
30
+ .jotx-image-toolbar-btn:hover {
31
+ transform: translateY(-1px);
32
+ border-color: rgba(99, 102, 241, 0.35);
33
+ box-shadow: 0 8px 18px rgba(99, 102, 241, 0.12);
34
+ }
35
+
36
+ .jotx-image-toolbar-btn.active {
37
+ border-color: rgba(99, 102, 241, 0.65);
38
+ box-shadow: inset 0 0 0 1px rgba(99, 102, 241, 0.25);
39
+ }
40
+
41
+ .jotx-image-toolbar-sep {
42
+ width: 1px;
43
+ height: 18px;
44
+ background: var(--jotx-border);
45
+ opacity: 0.9;
46
+ margin: 0 2px;
47
+ }
48
+
49
+ .jotx-image-toolbar-size {
50
+ display: inline-flex;
51
+ align-items: center;
52
+ gap: 6px;
53
+ }
54
+
55
+ .jotx-image-toolbar-size input[type="range"] {
56
+ width: 140px;
57
+ }
58
+
59
+ .jotx-image-toolbar-size-label {
60
+ font-size: 11px;
61
+ font-weight: 700;
62
+ color: var(--jotx-textSecondary);
63
+ min-width: 34px;
64
+ text-align: right;
65
+ }
66
+
67
+