@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,111 @@
1
+ /* BlockMenu - Block-level operations */
2
+
3
+ .block-menu-handle {
4
+ position: absolute;
5
+ width: 36px;
6
+ height: 36px;
7
+ display: flex;
8
+ align-items: center;
9
+ justify-content: center;
10
+ cursor: grab;
11
+ opacity: 0.7; /* More visible by default */
12
+ transition: opacity 0.2s ease, background 0.2s ease, transform 0.2s ease;
13
+ color: var(--vscode-foreground);
14
+ border-radius: 6px;
15
+ z-index: 100;
16
+ pointer-events: all;
17
+ padding: 8px; /* Bigger clickable area */
18
+ }
19
+
20
+ /* Extend hover zone with invisible pseudo-element */
21
+ .block-menu-handle::before {
22
+ content: '';
23
+ position: absolute;
24
+ inset: -8px; /* Extend 8px in all directions */
25
+ pointer-events: all;
26
+ }
27
+
28
+ .block-menu-handle:hover {
29
+ opacity: 1;
30
+ background-color: var(--vscode-toolbar-hoverBackground, rgba(90, 93, 94, 0.31));
31
+ transform: scale(1.1); /* Slight scale up for feedback */
32
+ }
33
+
34
+ .block-menu-handle:active {
35
+ opacity: 1;
36
+ cursor: grabbing;
37
+ }
38
+
39
+ .block-menu-popup {
40
+ position: absolute;
41
+ background: var(--vscode-menu-background, #252526);
42
+ border: 1px solid var(--vscode-menu-border, #454545);
43
+ border-radius: 6px;
44
+ padding: 4px;
45
+ min-width: 200px;
46
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
47
+ z-index: 1000;
48
+ animation: fadeIn 0.15s ease-out;
49
+ }
50
+
51
+ @keyframes fadeIn {
52
+ from {
53
+ opacity: 0;
54
+ transform: translateY(-4px);
55
+ }
56
+ to {
57
+ opacity: 1;
58
+ transform: translateY(0);
59
+ }
60
+ }
61
+
62
+ .block-menu-item {
63
+ width: 100%;
64
+ display: flex;
65
+ align-items: center;
66
+ gap: 10px;
67
+ padding: 8px 12px;
68
+ background: transparent;
69
+ border: none;
70
+ border-radius: 4px;
71
+ cursor: pointer;
72
+ font-size: 13px;
73
+ color: var(--vscode-menu-foreground, #cccccc);
74
+ text-align: left;
75
+ transition: background 0.15s ease;
76
+ }
77
+
78
+ .block-menu-item:hover {
79
+ background: var(--vscode-menu-selectionBackground, #04395e);
80
+ color: var(--vscode-menu-selectionForeground, #ffffff);
81
+ }
82
+
83
+ .block-menu-item.danger:hover {
84
+ background: var(--vscode-inputValidation-errorBackground, #5a1d1d);
85
+ color: var(--vscode-errorForeground, #f48771);
86
+ }
87
+
88
+ .block-menu-icon {
89
+ font-size: 16px;
90
+ width: 20px;
91
+ text-align: center;
92
+ flex-shrink: 0;
93
+ }
94
+
95
+ .block-menu-item span:nth-child(2) {
96
+ flex: 1;
97
+ }
98
+
99
+ .block-menu-shortcut {
100
+ font-size: 11px;
101
+ opacity: 0.6;
102
+ font-family: monospace;
103
+ }
104
+
105
+ .block-menu-divider {
106
+ height: 1px;
107
+ background: var(--vscode-menu-separatorBackground, #454545);
108
+ margin: 4px 0;
109
+ }
110
+
111
+
@@ -0,0 +1,169 @@
1
+ /* Button Styles */
2
+
3
+ .button-wrapper {
4
+ margin: 16px 0;
5
+ display: block;
6
+ }
7
+
8
+ /* Alignment */
9
+ .button-align-left {
10
+ text-align: left;
11
+ }
12
+
13
+ .button-align-center {
14
+ text-align: center;
15
+ }
16
+
17
+ .button-align-right {
18
+ text-align: right;
19
+ }
20
+
21
+ .button-selected {
22
+ outline: 2px solid #14b8a6;
23
+ outline-offset: 4px;
24
+ border-radius: 8px;
25
+ }
26
+
27
+ /* Base Button - H3 size (NOT H1) */
28
+ .jotx-button {
29
+ display: inline-flex;
30
+ align-items: center;
31
+ justify-content: center;
32
+ padding: 10px 20px;
33
+ border-radius: 8px;
34
+ font-size: 1em;
35
+ /* H3 equivalent - smaller than H1 */
36
+ font-weight: 600;
37
+ cursor: pointer;
38
+ text-decoration: none;
39
+ border: none;
40
+ transition: all 0.2s ease;
41
+ font-family: inherit;
42
+ }
43
+
44
+ .jotx-button:hover {
45
+ transform: translateY(-1px);
46
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
47
+ }
48
+
49
+ .jotx-button:active {
50
+ transform: translateY(0);
51
+ }
52
+
53
+ /* Primary - Teal branding */
54
+ .jotx-button-primary {
55
+ background: #14b8a6;
56
+ color: white;
57
+ }
58
+
59
+ .jotx-button-primary:hover {
60
+ background: #0d9488;
61
+ }
62
+
63
+ /* Secondary */
64
+ .jotx-button-secondary {
65
+ background: var(--vscode-button-secondaryBackground, #3c3c3c);
66
+ color: var(--vscode-button-secondaryForeground, #ffffff);
67
+ }
68
+
69
+ .jotx-button-secondary:hover {
70
+ background: var(--vscode-button-secondaryHoverBackground, #505050);
71
+ }
72
+
73
+ /* Outline */
74
+ .jotx-button-outline {
75
+ background: transparent;
76
+ color: #14b8a6;
77
+ border: 2px solid #14b8a6;
78
+ }
79
+
80
+ .jotx-button-outline:hover {
81
+ background: rgba(20, 184, 166, 0.1);
82
+ }
83
+
84
+ /* Ghost */
85
+ .jotx-button-ghost {
86
+ background: transparent;
87
+ color: var(--vscode-foreground);
88
+ }
89
+
90
+ .jotx-button-ghost:hover {
91
+ background: var(--vscode-list-hoverBackground, rgba(255, 255, 255, 0.1));
92
+ }
93
+
94
+ /* Button with edit icon container */
95
+ .button-with-edit {
96
+ display: inline-flex;
97
+ align-items: center;
98
+ gap: 8px;
99
+ }
100
+
101
+ .button-edit-icon {
102
+ cursor: pointer;
103
+ opacity: 0.4;
104
+ font-size: 14px;
105
+ transition: opacity 0.2s ease;
106
+ }
107
+
108
+ .button-edit-icon:hover {
109
+ opacity: 1;
110
+ }
111
+
112
+ /* Button Edit Form */
113
+ .button-edit-form {
114
+ display: inline-flex;
115
+ flex-direction: column;
116
+ gap: 8px;
117
+ padding: 16px;
118
+ background: rgba(128, 128, 128, 0.1);
119
+ border: 1px solid var(--vscode-panel-border, #3c3c3c);
120
+ border-radius: 8px;
121
+ min-width: 280px;
122
+ }
123
+
124
+ .button-edit-row {
125
+ display: flex;
126
+ align-items: center;
127
+ gap: 8px;
128
+ }
129
+
130
+ .button-edit-row label {
131
+ flex: 0 0 50px;
132
+ font-size: 0.85em;
133
+ color: var(--vscode-descriptionForeground, #888);
134
+ }
135
+
136
+ .button-edit-row input,
137
+ .button-edit-row select {
138
+ flex: 1;
139
+ padding: 6px 10px;
140
+ border: 1px solid var(--vscode-input-border, #3c3c3c);
141
+ border-radius: 4px;
142
+ background: var(--vscode-input-background, #1e1e1e);
143
+ color: var(--vscode-input-foreground, #fff);
144
+ font-size: 0.9em;
145
+ caret-color: #14b8a6;
146
+ /* Visible cursor */
147
+ }
148
+
149
+ .button-edit-row input:focus,
150
+ .button-edit-row select:focus {
151
+ outline: none;
152
+ border-color: #14b8a6;
153
+ }
154
+
155
+ .button-edit-done {
156
+ margin-top: 8px;
157
+ padding: 6px 12px;
158
+ background: #14b8a6;
159
+ color: white;
160
+ border: none;
161
+ border-radius: 4px;
162
+ cursor: pointer;
163
+ font-size: 0.85em;
164
+ align-self: flex-end;
165
+ }
166
+
167
+ .button-edit-done:hover {
168
+ background: #0d9488;
169
+ }
@@ -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
+