@remyxjs/core 1.0.0-beta

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 (105) hide show
  1. package/README.md +2454 -0
  2. package/dist/convertCsv-B8RVtdcs.cjs +2 -0
  3. package/dist/convertCsv-B8RVtdcs.cjs.map +1 -0
  4. package/dist/convertCsv-CKzZjzLJ.js +2 -0
  5. package/dist/convertCsv-CKzZjzLJ.js.map +1 -0
  6. package/dist/convertDocx-4q89XLLv.cjs +2 -0
  7. package/dist/convertDocx-4q89XLLv.cjs.map +1 -0
  8. package/dist/convertDocx-Dmx88twM.js +2 -0
  9. package/dist/convertDocx-Dmx88twM.js.map +1 -0
  10. package/dist/convertHtml-CtYVhiTh.js +2 -0
  11. package/dist/convertHtml-CtYVhiTh.js.map +1 -0
  12. package/dist/convertHtml-DbHrdrD3.cjs +2 -0
  13. package/dist/convertHtml-DbHrdrD3.cjs.map +1 -0
  14. package/dist/convertMarkdown-Di239Gtn.js +2 -0
  15. package/dist/convertMarkdown-Di239Gtn.js.map +1 -0
  16. package/dist/convertMarkdown-eJ9Nkoid.cjs +2 -0
  17. package/dist/convertMarkdown-eJ9Nkoid.cjs.map +1 -0
  18. package/dist/convertPdf-CFA1eNNH.js +2 -0
  19. package/dist/convertPdf-CFA1eNNH.js.map +1 -0
  20. package/dist/convertPdf-CSLmTrB8.cjs +2 -0
  21. package/dist/convertPdf-CSLmTrB8.cjs.map +1 -0
  22. package/dist/convertRtf-08CoScGD.js +2 -0
  23. package/dist/convertRtf-08CoScGD.js.map +1 -0
  24. package/dist/convertRtf-BfiBLMig.cjs +2 -0
  25. package/dist/convertRtf-BfiBLMig.cjs.map +1 -0
  26. package/dist/convertText-BpgzHRuh.cjs +2 -0
  27. package/dist/convertText-BpgzHRuh.cjs.map +1 -0
  28. package/dist/convertText-sa7PxKTe.js +2 -0
  29. package/dist/convertText-sa7PxKTe.js.map +1 -0
  30. package/dist/index-4syk9eEO.js +2 -0
  31. package/dist/index-4syk9eEO.js.map +1 -0
  32. package/dist/index-B25zSs0W.js +2 -0
  33. package/dist/index-B25zSs0W.js.map +1 -0
  34. package/dist/index-B7VT6ZLa.cjs +2 -0
  35. package/dist/index-B7VT6ZLa.cjs.map +1 -0
  36. package/dist/index-BCpytFKJ.js +2 -0
  37. package/dist/index-BCpytFKJ.js.map +1 -0
  38. package/dist/index-BNKANY5i.cjs +2 -0
  39. package/dist/index-BNKANY5i.cjs.map +1 -0
  40. package/dist/index-B_g_579T.cjs +2 -0
  41. package/dist/index-B_g_579T.cjs.map +1 -0
  42. package/dist/index-BvwyeoMb.js +3 -0
  43. package/dist/index-BvwyeoMb.js.map +1 -0
  44. package/dist/index-Bw7mlUQo.js +2 -0
  45. package/dist/index-Bw7mlUQo.js.map +1 -0
  46. package/dist/index-Byatzd-A.js +2 -0
  47. package/dist/index-Byatzd-A.js.map +1 -0
  48. package/dist/index-C0z9eZLm.cjs +2 -0
  49. package/dist/index-C0z9eZLm.cjs.map +1 -0
  50. package/dist/index-C88XPqjX.js +2 -0
  51. package/dist/index-C88XPqjX.js.map +1 -0
  52. package/dist/index-CI6FPF49.cjs +2 -0
  53. package/dist/index-CI6FPF49.cjs.map +1 -0
  54. package/dist/index-CLZF5_GB.cjs +2 -0
  55. package/dist/index-CLZF5_GB.cjs.map +1 -0
  56. package/dist/index-CXSwYlG4.cjs +2 -0
  57. package/dist/index-CXSwYlG4.cjs.map +1 -0
  58. package/dist/index-Ch9gotLk.js +2 -0
  59. package/dist/index-Ch9gotLk.js.map +1 -0
  60. package/dist/index-CifDpN1Y.js +2 -0
  61. package/dist/index-CifDpN1Y.js.map +1 -0
  62. package/dist/index-D5o8VpWJ.cjs +2 -0
  63. package/dist/index-D5o8VpWJ.cjs.map +1 -0
  64. package/dist/index-DKT1bABL.js +2 -0
  65. package/dist/index-DKT1bABL.js.map +1 -0
  66. package/dist/index-DWcn72PW.js +2 -0
  67. package/dist/index-DWcn72PW.js.map +1 -0
  68. package/dist/index-DjCGzPEv.cjs +2 -0
  69. package/dist/index-DjCGzPEv.cjs.map +1 -0
  70. package/dist/index-Dq0Jr1Ae.js +2 -0
  71. package/dist/index-Dq0Jr1Ae.js.map +1 -0
  72. package/dist/index-Dw0MVypb.cjs +2 -0
  73. package/dist/index-Dw0MVypb.cjs.map +1 -0
  74. package/dist/index-FEo3LShh.cjs +2 -0
  75. package/dist/index-FEo3LShh.cjs.map +1 -0
  76. package/dist/index-O1hzAUzi.cjs +2 -0
  77. package/dist/index-O1hzAUzi.cjs.map +1 -0
  78. package/dist/index-T1ZyLzeF.cjs +2 -0
  79. package/dist/index-T1ZyLzeF.cjs.map +1 -0
  80. package/dist/index-iRikoCdK.cjs +2 -0
  81. package/dist/index-iRikoCdK.cjs.map +1 -0
  82. package/dist/index-l6Yddj6x.js +2 -0
  83. package/dist/index-l6Yddj6x.js.map +1 -0
  84. package/dist/index-rD8LZENp.js +2 -0
  85. package/dist/index-rD8LZENp.js.map +1 -0
  86. package/dist/remyx-core.cjs +2 -0
  87. package/dist/remyx-core.cjs.map +1 -0
  88. package/dist/remyx-core.css +1 -0
  89. package/dist/remyx-core.js +2 -0
  90. package/dist/remyx-core.js.map +1 -0
  91. package/dist/themes/callouts.css +79 -0
  92. package/dist/themes/collaboration.css +117 -0
  93. package/dist/themes/comments.css +198 -0
  94. package/dist/themes/dark.css +109 -0
  95. package/dist/themes/forest.css +109 -0
  96. package/dist/themes/light.css +4 -0
  97. package/dist/themes/links.css +115 -0
  98. package/dist/themes/math-toc-analytics.css +129 -0
  99. package/dist/themes/ocean.css +109 -0
  100. package/dist/themes/rose.css +109 -0
  101. package/dist/themes/spellcheck.css +173 -0
  102. package/dist/themes/sunset.css +109 -0
  103. package/dist/themes/templates.css +87 -0
  104. package/dist/themes/variables.css +3222 -0
  105. package/package.json +80 -0
@@ -0,0 +1,109 @@
1
+ /* ====== Remyx Editor - Dark Theme ====== */
2
+
3
+ .rmx-editor.rmx-theme-dark {
4
+ --rmx-bg: #09090b;
5
+ --rmx-text: #e2e8f0;
6
+ --rmx-text-secondary: #94a3b8;
7
+ --rmx-border: #1e293b;
8
+ --rmx-border-subtle: #1e293b;
9
+
10
+ /* Toolbar */
11
+ --rmx-toolbar-bg: #0f0f12;
12
+ --rmx-toolbar-border: #1e293b;
13
+ --rmx-toolbar-button-hover: #1e293b;
14
+ --rmx-toolbar-button-active: #312e81;
15
+ --rmx-toolbar-icon: #94a3b8;
16
+ --rmx-toolbar-icon-active: #a5b4fc;
17
+
18
+ /* Accent / Primary */
19
+ --rmx-primary: #818cf8;
20
+ --rmx-primary-hover: #6366f1;
21
+ --rmx-primary-light: rgba(99, 102, 241, 0.15);
22
+ --rmx-focus-ring: #818cf8;
23
+ --rmx-selection: #312e81;
24
+
25
+ /* Feedback */
26
+ --rmx-danger: #f87171;
27
+ --rmx-danger-light: rgba(248, 113, 113, 0.1);
28
+
29
+ /* UI */
30
+ --rmx-placeholder: #475569;
31
+ --rmx-modal-bg: #111113;
32
+ --rmx-modal-overlay: rgba(0, 0, 0, 0.65);
33
+ --rmx-statusbar-bg: #0f0f12;
34
+ --rmx-statusbar-text: #64748b;
35
+
36
+ /* Shadows */
37
+ --rmx-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
38
+ --rmx-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.35), 0 1px 3px rgba(0, 0, 0, 0.2);
39
+ --rmx-shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.45), 0 4px 12px rgba(0, 0, 0, 0.25);
40
+ --rmx-shadow-float: 0 8px 30px rgba(0, 0, 0, 0.4), 0 2px 8px rgba(0, 0, 0, 0.2);
41
+
42
+ /* Content overrides (Item 12) */
43
+ --rmx-pre-bg: #111113;
44
+ --rmx-code-bg: rgba(129, 140, 248, 0.1);
45
+ --rmx-blockquote-bg: linear-gradient(135deg, rgba(129, 140, 248, 0.06), rgba(129, 140, 248, 0.03));
46
+ --rmx-table-th-bg: #111113;
47
+ --rmx-find-highlight-bg: #854d0e;
48
+ --rmx-find-highlight-text: #fef3c7;
49
+ --rmx-find-current-bg: #f97316;
50
+ --rmx-find-current-text: #09090b;
51
+ --rmx-link-decoration: rgba(129, 140, 248, 0.35);
52
+ --rmx-code-editor-bg: #09090b;
53
+ --rmx-code-gutter-bg: #0f0f12;
54
+ --rmx-code-gutter-border: #1e293b;
55
+ --rmx-code-caret: #e2e8f0;
56
+ }
57
+
58
+ /* Item 12: Content overrides consolidated via CSS variables */
59
+
60
+ /* ---- Dark Code Editor ---- */
61
+ .rmx-editor.rmx-theme-dark .rmx-code-editor {
62
+ background: #09090b;
63
+ }
64
+
65
+ .rmx-editor.rmx-theme-dark .rmx-code-gutter {
66
+ background: #0f0f12;
67
+ border-right-color: #1e293b;
68
+ }
69
+
70
+ .rmx-editor.rmx-theme-dark .rmx-code-input {
71
+ caret-color: #e2e8f0;
72
+ }
73
+
74
+ /* Dark syntax tokens — HTML */
75
+ .rmx-editor.rmx-theme-dark .rmx-syn-tag { color: #7ee787; }
76
+ .rmx-editor.rmx-theme-dark .rmx-syn-attr-name { color: #d2a8ff; }
77
+ .rmx-editor.rmx-theme-dark .rmx-syn-attr-value { color: #a5d6ff; }
78
+ .rmx-editor.rmx-theme-dark .rmx-syn-comment { color: #8b949e; font-style: italic; }
79
+ .rmx-editor.rmx-theme-dark .rmx-syn-entity { color: #a5d6ff; }
80
+ .rmx-editor.rmx-theme-dark .rmx-syn-doctype { color: #8b949e; }
81
+
82
+ /* Dark syntax tokens — Markdown */
83
+ .rmx-editor.rmx-theme-dark .rmx-syn-heading { color: #7ee787; font-weight: 600; }
84
+ .rmx-editor.rmx-theme-dark .rmx-syn-bold { color: #e2e8f0; }
85
+ .rmx-editor.rmx-theme-dark .rmx-syn-italic { color: #e2e8f0; }
86
+ .rmx-editor.rmx-theme-dark .rmx-syn-code { color: #ffa657; background: rgba(255, 255, 255, 0.06); }
87
+ .rmx-editor.rmx-theme-dark .rmx-syn-code-fence { color: #8b949e; }
88
+ .rmx-editor.rmx-theme-dark .rmx-syn-link { color: #58a6ff; }
89
+ .rmx-editor.rmx-theme-dark .rmx-syn-url { color: #a5d6ff; }
90
+ .rmx-editor.rmx-theme-dark .rmx-syn-image { color: #d2a8ff; }
91
+ .rmx-editor.rmx-theme-dark .rmx-syn-list-marker { color: #ffa657; font-weight: 600; }
92
+ .rmx-editor.rmx-theme-dark .rmx-syn-blockquote { color: #8b949e; }
93
+ .rmx-editor.rmx-theme-dark .rmx-syn-hr { color: #6e7681; }
94
+
95
+ /* Programming language tokens */
96
+ .rmx-editor.rmx-theme-dark .rmx-syn-keyword { color: #ff7b72; }
97
+ .rmx-editor.rmx-theme-dark .rmx-syn-string { color: #a5d6ff; }
98
+ .rmx-editor.rmx-theme-dark .rmx-syn-number { color: #79c0ff; }
99
+ .rmx-editor.rmx-theme-dark .rmx-syn-function { color: #d2a8ff; }
100
+ .rmx-editor.rmx-theme-dark .rmx-syn-operator { color: #ff7b72; }
101
+ .rmx-editor.rmx-theme-dark .rmx-syn-punctuation { color: #c9d1d9; }
102
+ .rmx-editor.rmx-theme-dark .rmx-syn-builtin { color: #79c0ff; }
103
+ .rmx-editor.rmx-theme-dark .rmx-syn-property { color: #79c0ff; }
104
+ .rmx-editor.rmx-theme-dark .rmx-syn-regex { color: #a5d6ff; }
105
+ .rmx-editor.rmx-theme-dark .rmx-syn-decorator { color: #ffa657; }
106
+ .rmx-editor.rmx-theme-dark .rmx-syn-type { color: #7ee787; }
107
+ .rmx-editor.rmx-theme-dark .rmx-syn-selector { color: #7ee787; }
108
+ .rmx-editor.rmx-theme-dark .rmx-syn-atrule { color: #ff7b72; }
109
+ .rmx-editor.rmx-theme-dark .rmx-syn-variable { color: #ffa657; }
@@ -0,0 +1,109 @@
1
+ /* ====== Remyx Editor - Forest Theme ====== */
2
+
3
+ .rmx-editor.rmx-theme-forest {
4
+ --rmx-bg: #14201a;
5
+ --rmx-text: #d1e7dd;
6
+ --rmx-text-secondary: #8fbc8f;
7
+ --rmx-border: #2d4a3e;
8
+ --rmx-border-subtle: #2d4a3e;
9
+
10
+ /* Toolbar */
11
+ --rmx-toolbar-bg: #0f1a14;
12
+ --rmx-toolbar-border: #2d4a3e;
13
+ --rmx-toolbar-button-hover: #2d4a3e;
14
+ --rmx-toolbar-button-active: #1a5c3a;
15
+ --rmx-toolbar-icon: #8fbc8f;
16
+ --rmx-toolbar-icon-active: #4ade80;
17
+
18
+ /* Accent / Primary */
19
+ --rmx-primary: #22c55e;
20
+ --rmx-primary-hover: #16a34a;
21
+ --rmx-primary-light: rgba(34, 197, 94, 0.15);
22
+ --rmx-focus-ring: #22c55e;
23
+ --rmx-selection: #14532d;
24
+
25
+ /* Feedback */
26
+ --rmx-danger: #f87171;
27
+ --rmx-danger-light: rgba(248, 113, 113, 0.1);
28
+
29
+ /* UI */
30
+ --rmx-placeholder: #4a7c5f;
31
+ --rmx-modal-bg: #0f1a14;
32
+ --rmx-modal-overlay: rgba(0, 0, 0, 0.6);
33
+ --rmx-statusbar-bg: #0f1a14;
34
+ --rmx-statusbar-text: #4a7c5f;
35
+
36
+ /* Shadows */
37
+ --rmx-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
38
+ --rmx-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.35), 0 1px 3px rgba(0, 0, 0, 0.2);
39
+ --rmx-shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.45), 0 4px 12px rgba(0, 0, 0, 0.25);
40
+ --rmx-shadow-float: 0 8px 30px rgba(0, 0, 0, 0.4), 0 2px 8px rgba(0, 0, 0, 0.2);
41
+
42
+ /* Content overrides (Item 12) */
43
+ --rmx-pre-bg: #0f1a14;
44
+ --rmx-code-bg: rgba(34, 197, 94, 0.1);
45
+ --rmx-blockquote-bg: linear-gradient(135deg, rgba(34, 197, 94, 0.06), rgba(34, 197, 94, 0.03));
46
+ --rmx-table-th-bg: #0f1a14;
47
+ --rmx-find-highlight-bg: #854d0e;
48
+ --rmx-find-highlight-text: #fef3c7;
49
+ --rmx-find-current-bg: #f97316;
50
+ --rmx-find-current-text: #14201a;
51
+ --rmx-link-decoration: rgba(34, 197, 94, 0.35);
52
+ --rmx-code-editor-bg: #14201a;
53
+ --rmx-code-gutter-bg: #0f1a14;
54
+ --rmx-code-gutter-border: #2d4a3e;
55
+ --rmx-code-caret: #d1e7dd;
56
+ }
57
+
58
+ /* Item 12: Content overrides consolidated via CSS variables */
59
+
60
+ /* ---- Forest Code Editor ---- */
61
+ .rmx-editor.rmx-theme-forest .rmx-code-editor {
62
+ background: #14201a;
63
+ }
64
+
65
+ .rmx-editor.rmx-theme-forest .rmx-code-gutter {
66
+ background: #0f1a14;
67
+ border-right-color: #2d4a3e;
68
+ }
69
+
70
+ .rmx-editor.rmx-theme-forest .rmx-code-input {
71
+ caret-color: #d1e7dd;
72
+ }
73
+
74
+ /* Forest syntax tokens — HTML */
75
+ .rmx-editor.rmx-theme-forest .rmx-syn-tag { color: #4ade80; }
76
+ .rmx-editor.rmx-theme-forest .rmx-syn-attr-name { color: #86efac; }
77
+ .rmx-editor.rmx-theme-forest .rmx-syn-attr-value { color: #a7f3d0; }
78
+ .rmx-editor.rmx-theme-forest .rmx-syn-comment { color: #4a7c5f; font-style: italic; }
79
+ .rmx-editor.rmx-theme-forest .rmx-syn-entity { color: #a7f3d0; }
80
+ .rmx-editor.rmx-theme-forest .rmx-syn-doctype { color: #4a7c5f; }
81
+
82
+ /* Forest syntax tokens — Markdown */
83
+ .rmx-editor.rmx-theme-forest .rmx-syn-heading { color: #4ade80; font-weight: 600; }
84
+ .rmx-editor.rmx-theme-forest .rmx-syn-bold { color: #d1e7dd; }
85
+ .rmx-editor.rmx-theme-forest .rmx-syn-italic { color: #d1e7dd; }
86
+ .rmx-editor.rmx-theme-forest .rmx-syn-code { color: #86efac; background: rgba(255, 255, 255, 0.06); }
87
+ .rmx-editor.rmx-theme-forest .rmx-syn-code-fence { color: #4a7c5f; }
88
+ .rmx-editor.rmx-theme-forest .rmx-syn-link { color: #4ade80; }
89
+ .rmx-editor.rmx-theme-forest .rmx-syn-url { color: #a7f3d0; }
90
+ .rmx-editor.rmx-theme-forest .rmx-syn-image { color: #86efac; }
91
+ .rmx-editor.rmx-theme-forest .rmx-syn-list-marker { color: #86efac; font-weight: 600; }
92
+ .rmx-editor.rmx-theme-forest .rmx-syn-blockquote { color: #4a7c5f; }
93
+ .rmx-editor.rmx-theme-forest .rmx-syn-hr { color: #2d4a3e; }
94
+
95
+ /* Programming language tokens */
96
+ .rmx-editor.rmx-theme-forest .rmx-syn-keyword { color: #f97583; }
97
+ .rmx-editor.rmx-theme-forest .rmx-syn-string { color: #a7f3d0; }
98
+ .rmx-editor.rmx-theme-forest .rmx-syn-number { color: #4ade80; }
99
+ .rmx-editor.rmx-theme-forest .rmx-syn-function { color: #86efac; }
100
+ .rmx-editor.rmx-theme-forest .rmx-syn-operator { color: #f97583; }
101
+ .rmx-editor.rmx-theme-forest .rmx-syn-punctuation { color: #d1e7dd; }
102
+ .rmx-editor.rmx-theme-forest .rmx-syn-builtin { color: #4ade80; }
103
+ .rmx-editor.rmx-theme-forest .rmx-syn-property { color: #4ade80; }
104
+ .rmx-editor.rmx-theme-forest .rmx-syn-regex { color: #a7f3d0; }
105
+ .rmx-editor.rmx-theme-forest .rmx-syn-decorator { color: #fbbf24; }
106
+ .rmx-editor.rmx-theme-forest .rmx-syn-type { color: #86efac; }
107
+ .rmx-editor.rmx-theme-forest .rmx-syn-selector { color: #86efac; }
108
+ .rmx-editor.rmx-theme-forest .rmx-syn-atrule { color: #f97583; }
109
+ .rmx-editor.rmx-theme-forest .rmx-syn-variable { color: #fbbf24; }
@@ -0,0 +1,4 @@
1
+ /* Light theme is the default - variables.css already defines light theme values */
2
+ .rmx-editor.rmx-theme-light {
3
+ /* Light theme uses default variables */
4
+ }
@@ -0,0 +1,115 @@
1
+ /* ====== Advanced Link Management ====== */
2
+
3
+ /* --- Link preview tooltip --- */
4
+ .rmx-link-preview {
5
+ z-index: 1000;
6
+ background: var(--rmx-modal-bg, #ffffff);
7
+ border: 1px solid var(--rmx-border, #e2e8f0);
8
+ border-radius: 8px;
9
+ box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
10
+ max-width: 320px;
11
+ overflow: hidden;
12
+ font-size: 12px;
13
+ line-height: 1.4;
14
+ animation: rmx-preview-fadein 0.15s ease;
15
+ }
16
+
17
+ @keyframes rmx-preview-fadein {
18
+ from { opacity: 0; transform: translateY(-4px); }
19
+ to { opacity: 1; transform: translateY(0); }
20
+ }
21
+
22
+ .rmx-link-preview-img {
23
+ width: 100%;
24
+ height: 120px;
25
+ object-fit: cover;
26
+ display: block;
27
+ }
28
+
29
+ .rmx-link-preview-text {
30
+ padding: 8px 10px;
31
+ }
32
+
33
+ .rmx-link-preview-title {
34
+ font-weight: 600;
35
+ font-size: 13px;
36
+ color: var(--rmx-text, #1e293b);
37
+ margin-bottom: 2px;
38
+ overflow: hidden;
39
+ text-overflow: ellipsis;
40
+ white-space: nowrap;
41
+ }
42
+
43
+ .rmx-link-preview-desc {
44
+ color: var(--rmx-text-secondary, #64748b);
45
+ font-size: 12px;
46
+ margin-bottom: 4px;
47
+ display: -webkit-box;
48
+ -webkit-line-clamp: 2;
49
+ -webkit-box-orient: vertical;
50
+ overflow: hidden;
51
+ }
52
+
53
+ .rmx-link-preview-url {
54
+ color: var(--rmx-primary, #6366f1);
55
+ font-size: 11px;
56
+ overflow: hidden;
57
+ text-overflow: ellipsis;
58
+ white-space: nowrap;
59
+ }
60
+
61
+ /* --- Broken link indicator --- */
62
+ .rmx-link-broken,
63
+ a[data-link-broken="true"] {
64
+ text-decoration: line-through wavy var(--rmx-danger, #ef4444);
65
+ opacity: 0.75;
66
+ position: relative;
67
+ }
68
+
69
+ .rmx-link-broken::after {
70
+ content: '\26A0';
71
+ font-size: 10px;
72
+ margin-left: 2px;
73
+ color: var(--rmx-danger, #ef4444);
74
+ vertical-align: super;
75
+ }
76
+
77
+ /* --- Bookmark anchor --- */
78
+ .rmx-bookmark {
79
+ display: inline-block;
80
+ background: var(--rmx-primary-light, #e0e7ff);
81
+ color: var(--rmx-primary, #6366f1);
82
+ padding: 1px 6px;
83
+ border-radius: 3px;
84
+ font-size: 12px;
85
+ font-weight: 500;
86
+ text-decoration: none;
87
+ cursor: default;
88
+ user-select: none;
89
+ vertical-align: baseline;
90
+ }
91
+
92
+ .rmx-bookmark:hover {
93
+ background: var(--rmx-selection, #c7d2fe);
94
+ }
95
+
96
+ /* --- Internal link --- */
97
+ .rmx-internal-link {
98
+ text-decoration-style: dashed;
99
+ }
100
+
101
+ /* --- Dark theme --- */
102
+ .rmx-theme-dark .rmx-link-preview {
103
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
104
+ }
105
+
106
+ /* --- Print --- */
107
+ @media print {
108
+ .rmx-link-preview { display: none !important; }
109
+ .rmx-bookmark {
110
+ background: none;
111
+ color: inherit;
112
+ padding: 0;
113
+ border: 1px dashed #999;
114
+ }
115
+ }
@@ -0,0 +1,129 @@
1
+ /* ====== Math & Equations ====== */
2
+
3
+ .rmx-math { display: inline-block; vertical-align: middle; }
4
+ .rmx-math-block {
5
+ display: block;
6
+ text-align: center;
7
+ margin: 16px 0;
8
+ padding: 12px;
9
+ position: relative;
10
+ }
11
+ .rmx-math-inline { padding: 0 2px; }
12
+ .rmx-math-latex {
13
+ font-family: 'Computer Modern', 'Latin Modern Math', 'STIX Two Math', serif;
14
+ font-size: 1.1em;
15
+ color: var(--rmx-text, #1e293b);
16
+ background: rgba(99, 102, 241, 0.04);
17
+ padding: 2px 6px;
18
+ border-radius: 3px;
19
+ }
20
+ .rmx-math-block .rmx-math-latex { font-size: 1.3em; }
21
+ .rmx-equation-number {
22
+ position: absolute;
23
+ right: 8px;
24
+ top: 50%;
25
+ transform: translateY(-50%);
26
+ font-size: 13px;
27
+ color: var(--rmx-text-secondary, #64748b);
28
+ }
29
+
30
+ /* ====== Table of Contents ====== */
31
+
32
+ .rmx-toc {
33
+ border: 1px solid var(--rmx-border, #e2e8f0);
34
+ border-radius: 6px;
35
+ padding: 12px 16px;
36
+ margin: 12px 0;
37
+ background: var(--rmx-statusbar-bg, #f8fafc);
38
+ }
39
+ .rmx-toc::before {
40
+ content: 'Table of Contents';
41
+ display: block;
42
+ font-weight: 600;
43
+ font-size: 14px;
44
+ margin-bottom: 8px;
45
+ color: var(--rmx-text, #1e293b);
46
+ }
47
+ .rmx-toc ul {
48
+ list-style: none;
49
+ padding-left: 16px;
50
+ margin: 0;
51
+ }
52
+ .rmx-toc > ul { padding-left: 0; }
53
+ .rmx-toc li { margin: 3px 0; }
54
+ .rmx-toc-link {
55
+ text-decoration: none;
56
+ color: var(--rmx-primary, #6366f1);
57
+ font-size: 13px;
58
+ transition: color 0.1s;
59
+ }
60
+ .rmx-toc-link:hover { color: var(--rmx-primary-hover, #4f46e5); text-decoration: underline; }
61
+ .rmx-toc-number {
62
+ color: var(--rmx-text-secondary, #64748b);
63
+ font-size: 12px;
64
+ font-weight: 500;
65
+ }
66
+
67
+ /* Outline sidebar panel */
68
+ .rmx-outline-panel {
69
+ border-left: 1px solid var(--rmx-border, #e2e8f0);
70
+ background: var(--rmx-modal-bg, #ffffff);
71
+ padding: 12px;
72
+ min-width: 220px;
73
+ max-width: 280px;
74
+ overflow-y: auto;
75
+ font-size: 13px;
76
+ }
77
+ .rmx-outline-panel-title {
78
+ font-weight: 600;
79
+ font-size: 14px;
80
+ margin-bottom: 8px;
81
+ color: var(--rmx-text, #1e293b);
82
+ }
83
+ .rmx-outline-item {
84
+ padding: 3px 0;
85
+ cursor: pointer;
86
+ color: var(--rmx-text, #1e293b);
87
+ transition: color 0.1s;
88
+ }
89
+ .rmx-outline-item:hover { color: var(--rmx-primary, #6366f1); }
90
+ .rmx-outline-item-active { color: var(--rmx-primary, #6366f1); font-weight: 600; }
91
+
92
+ /* ====== Analytics ====== */
93
+
94
+ .rmx-analytics-panel {
95
+ border: 1px solid var(--rmx-border, #e2e8f0);
96
+ border-radius: 6px;
97
+ padding: 12px;
98
+ font-size: 12px;
99
+ background: var(--rmx-statusbar-bg, #f8fafc);
100
+ }
101
+ .rmx-analytics-stat {
102
+ display: flex;
103
+ justify-content: space-between;
104
+ padding: 3px 0;
105
+ border-bottom: 1px solid var(--rmx-border-subtle, #f1f5f9);
106
+ }
107
+ .rmx-analytics-stat:last-child { border-bottom: none; }
108
+ .rmx-analytics-label { color: var(--rmx-text-secondary, #64748b); }
109
+ .rmx-analytics-value { font-weight: 600; color: var(--rmx-text, #1e293b); }
110
+ .rmx-analytics-warning { color: var(--rmx-danger, #ef4444); font-size: 11px; margin-top: 4px; }
111
+ .rmx-goal-progress {
112
+ height: 6px;
113
+ background: var(--rmx-border, #e2e8f0);
114
+ border-radius: 3px;
115
+ overflow: hidden;
116
+ margin-top: 4px;
117
+ }
118
+ .rmx-goal-progress-bar {
119
+ height: 100%;
120
+ background: var(--rmx-primary, #6366f1);
121
+ border-radius: 3px;
122
+ transition: width 0.3s ease;
123
+ }
124
+ .rmx-goal-progress-bar.rmx-goal-complete { background: #22c55e; }
125
+
126
+ @media print {
127
+ .rmx-toc { page-break-after: always; }
128
+ .rmx-analytics-panel { display: none; }
129
+ }
@@ -0,0 +1,109 @@
1
+ /* ====== Remyx Editor - Ocean Theme ====== */
2
+
3
+ .rmx-editor.rmx-theme-ocean {
4
+ --rmx-bg: #0f172a;
5
+ --rmx-text: #e2e8f0;
6
+ --rmx-text-secondary: #94a3b8;
7
+ --rmx-border: #1e3a5f;
8
+ --rmx-border-subtle: #1e3a5f;
9
+
10
+ /* Toolbar */
11
+ --rmx-toolbar-bg: #0c1426;
12
+ --rmx-toolbar-border: #1e3a5f;
13
+ --rmx-toolbar-button-hover: #1e3a5f;
14
+ --rmx-toolbar-button-active: #1e4976;
15
+ --rmx-toolbar-icon: #94a3b8;
16
+ --rmx-toolbar-icon-active: #38bdf8;
17
+
18
+ /* Accent / Primary */
19
+ --rmx-primary: #0ea5e9;
20
+ --rmx-primary-hover: #0284c7;
21
+ --rmx-primary-light: rgba(14, 165, 233, 0.15);
22
+ --rmx-focus-ring: #0ea5e9;
23
+ --rmx-selection: #0c4a6e;
24
+
25
+ /* Feedback */
26
+ --rmx-danger: #f87171;
27
+ --rmx-danger-light: rgba(248, 113, 113, 0.1);
28
+
29
+ /* UI */
30
+ --rmx-placeholder: #475569;
31
+ --rmx-modal-bg: #0c1426;
32
+ --rmx-modal-overlay: rgba(0, 0, 0, 0.6);
33
+ --rmx-statusbar-bg: #0c1426;
34
+ --rmx-statusbar-text: #64748b;
35
+
36
+ /* Shadows */
37
+ --rmx-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
38
+ --rmx-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.35), 0 1px 3px rgba(0, 0, 0, 0.2);
39
+ --rmx-shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.45), 0 4px 12px rgba(0, 0, 0, 0.25);
40
+ --rmx-shadow-float: 0 8px 30px rgba(0, 0, 0, 0.4), 0 2px 8px rgba(0, 0, 0, 0.2);
41
+
42
+ /* Content overrides (Item 12) */
43
+ --rmx-pre-bg: #0c1426;
44
+ --rmx-code-bg: rgba(14, 165, 233, 0.1);
45
+ --rmx-blockquote-bg: linear-gradient(135deg, rgba(14, 165, 233, 0.06), rgba(14, 165, 233, 0.03));
46
+ --rmx-table-th-bg: #0c1426;
47
+ --rmx-find-highlight-bg: #854d0e;
48
+ --rmx-find-highlight-text: #fef3c7;
49
+ --rmx-find-current-bg: #f97316;
50
+ --rmx-find-current-text: #0f172a;
51
+ --rmx-link-decoration: rgba(14, 165, 233, 0.35);
52
+ --rmx-code-editor-bg: #0f172a;
53
+ --rmx-code-gutter-bg: #0c1426;
54
+ --rmx-code-gutter-border: #1e3a5f;
55
+ --rmx-code-caret: #e2e8f0;
56
+ }
57
+
58
+ /* Item 12: Content overrides consolidated via CSS variables */
59
+
60
+ /* ---- Ocean Code Editor ---- */
61
+ .rmx-editor.rmx-theme-ocean .rmx-code-editor {
62
+ background: #0f172a;
63
+ }
64
+
65
+ .rmx-editor.rmx-theme-ocean .rmx-code-gutter {
66
+ background: #0c1426;
67
+ border-right-color: #1e3a5f;
68
+ }
69
+
70
+ .rmx-editor.rmx-theme-ocean .rmx-code-input {
71
+ caret-color: #e2e8f0;
72
+ }
73
+
74
+ /* Ocean syntax tokens — HTML */
75
+ .rmx-editor.rmx-theme-ocean .rmx-syn-tag { color: #38bdf8; }
76
+ .rmx-editor.rmx-theme-ocean .rmx-syn-attr-name { color: #a5b4fc; }
77
+ .rmx-editor.rmx-theme-ocean .rmx-syn-attr-value { color: #67e8f9; }
78
+ .rmx-editor.rmx-theme-ocean .rmx-syn-comment { color: #64748b; font-style: italic; }
79
+ .rmx-editor.rmx-theme-ocean .rmx-syn-entity { color: #67e8f9; }
80
+ .rmx-editor.rmx-theme-ocean .rmx-syn-doctype { color: #64748b; }
81
+
82
+ /* Ocean syntax tokens — Markdown */
83
+ .rmx-editor.rmx-theme-ocean .rmx-syn-heading { color: #38bdf8; font-weight: 600; }
84
+ .rmx-editor.rmx-theme-ocean .rmx-syn-bold { color: #e2e8f0; }
85
+ .rmx-editor.rmx-theme-ocean .rmx-syn-italic { color: #e2e8f0; }
86
+ .rmx-editor.rmx-theme-ocean .rmx-syn-code { color: #22d3ee; background: rgba(255, 255, 255, 0.06); }
87
+ .rmx-editor.rmx-theme-ocean .rmx-syn-code-fence { color: #64748b; }
88
+ .rmx-editor.rmx-theme-ocean .rmx-syn-link { color: #38bdf8; }
89
+ .rmx-editor.rmx-theme-ocean .rmx-syn-url { color: #67e8f9; }
90
+ .rmx-editor.rmx-theme-ocean .rmx-syn-image { color: #a5b4fc; }
91
+ .rmx-editor.rmx-theme-ocean .rmx-syn-list-marker { color: #22d3ee; font-weight: 600; }
92
+ .rmx-editor.rmx-theme-ocean .rmx-syn-blockquote { color: #64748b; }
93
+ .rmx-editor.rmx-theme-ocean .rmx-syn-hr { color: #475569; }
94
+
95
+ /* Programming language tokens */
96
+ .rmx-editor.rmx-theme-ocean .rmx-syn-keyword { color: #f472b6; }
97
+ .rmx-editor.rmx-theme-ocean .rmx-syn-string { color: #67e8f9; }
98
+ .rmx-editor.rmx-theme-ocean .rmx-syn-number { color: #38bdf8; }
99
+ .rmx-editor.rmx-theme-ocean .rmx-syn-function { color: #a5b4fc; }
100
+ .rmx-editor.rmx-theme-ocean .rmx-syn-operator { color: #f472b6; }
101
+ .rmx-editor.rmx-theme-ocean .rmx-syn-punctuation { color: #cbd5e1; }
102
+ .rmx-editor.rmx-theme-ocean .rmx-syn-builtin { color: #38bdf8; }
103
+ .rmx-editor.rmx-theme-ocean .rmx-syn-property { color: #38bdf8; }
104
+ .rmx-editor.rmx-theme-ocean .rmx-syn-regex { color: #67e8f9; }
105
+ .rmx-editor.rmx-theme-ocean .rmx-syn-decorator { color: #fb923c; }
106
+ .rmx-editor.rmx-theme-ocean .rmx-syn-type { color: #4ade80; }
107
+ .rmx-editor.rmx-theme-ocean .rmx-syn-selector { color: #4ade80; }
108
+ .rmx-editor.rmx-theme-ocean .rmx-syn-atrule { color: #f472b6; }
109
+ .rmx-editor.rmx-theme-ocean .rmx-syn-variable { color: #fb923c; }
@@ -0,0 +1,109 @@
1
+ /* ====== Remyx Editor - Rose Theme ====== */
2
+
3
+ .rmx-editor.rmx-theme-rose {
4
+ --rmx-bg: #1c1018;
5
+ --rmx-text: #fde2ee;
6
+ --rmx-text-secondary: #d4809f;
7
+ --rmx-border: #5c2848;
8
+ --rmx-border-subtle: #5c2848;
9
+
10
+ /* Toolbar */
11
+ --rmx-toolbar-bg: #18101a;
12
+ --rmx-toolbar-border: #5c2848;
13
+ --rmx-toolbar-button-hover: #5c2848;
14
+ --rmx-toolbar-button-active: #7c2858;
15
+ --rmx-toolbar-icon: #d4809f;
16
+ --rmx-toolbar-icon-active: #fb7185;
17
+
18
+ /* Accent / Primary */
19
+ --rmx-primary: #f43f5e;
20
+ --rmx-primary-hover: #e11d48;
21
+ --rmx-primary-light: rgba(244, 63, 94, 0.15);
22
+ --rmx-focus-ring: #f43f5e;
23
+ --rmx-selection: #881337;
24
+
25
+ /* Feedback */
26
+ --rmx-danger: #f87171;
27
+ --rmx-danger-light: rgba(248, 113, 113, 0.1);
28
+
29
+ /* UI */
30
+ --rmx-placeholder: #8b4766;
31
+ --rmx-modal-bg: #18101a;
32
+ --rmx-modal-overlay: rgba(0, 0, 0, 0.6);
33
+ --rmx-statusbar-bg: #18101a;
34
+ --rmx-statusbar-text: #8b4766;
35
+
36
+ /* Shadows */
37
+ --rmx-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
38
+ --rmx-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.35), 0 1px 3px rgba(0, 0, 0, 0.2);
39
+ --rmx-shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.45), 0 4px 12px rgba(0, 0, 0, 0.25);
40
+ --rmx-shadow-float: 0 8px 30px rgba(0, 0, 0, 0.4), 0 2px 8px rgba(0, 0, 0, 0.2);
41
+
42
+ /* Content overrides (Item 12) */
43
+ --rmx-pre-bg: #18101a;
44
+ --rmx-code-bg: rgba(244, 63, 94, 0.1);
45
+ --rmx-blockquote-bg: linear-gradient(135deg, rgba(244, 63, 94, 0.06), rgba(244, 63, 94, 0.03));
46
+ --rmx-table-th-bg: #18101a;
47
+ --rmx-find-highlight-bg: #854d0e;
48
+ --rmx-find-highlight-text: #fef3c7;
49
+ --rmx-find-current-bg: #f97316;
50
+ --rmx-find-current-text: #1c1018;
51
+ --rmx-link-decoration: rgba(244, 63, 94, 0.35);
52
+ --rmx-code-editor-bg: #1c1018;
53
+ --rmx-code-gutter-bg: #18101a;
54
+ --rmx-code-gutter-border: #5c2848;
55
+ --rmx-code-caret: #fde2ee;
56
+ }
57
+
58
+ /* Item 12: Content overrides consolidated via CSS variables */
59
+
60
+ /* ---- Rose Code Editor ---- */
61
+ .rmx-editor.rmx-theme-rose .rmx-code-editor {
62
+ background: #1c1018;
63
+ }
64
+
65
+ .rmx-editor.rmx-theme-rose .rmx-code-gutter {
66
+ background: #18101a;
67
+ border-right-color: #5c2848;
68
+ }
69
+
70
+ .rmx-editor.rmx-theme-rose .rmx-code-input {
71
+ caret-color: #fde2ee;
72
+ }
73
+
74
+ /* Rose syntax tokens — HTML */
75
+ .rmx-editor.rmx-theme-rose .rmx-syn-tag { color: #fb7185; }
76
+ .rmx-editor.rmx-theme-rose .rmx-syn-attr-name { color: #fda4af; }
77
+ .rmx-editor.rmx-theme-rose .rmx-syn-attr-value { color: #fecdd3; }
78
+ .rmx-editor.rmx-theme-rose .rmx-syn-comment { color: #8b4766; font-style: italic; }
79
+ .rmx-editor.rmx-theme-rose .rmx-syn-entity { color: #fecdd3; }
80
+ .rmx-editor.rmx-theme-rose .rmx-syn-doctype { color: #8b4766; }
81
+
82
+ /* Rose syntax tokens — Markdown */
83
+ .rmx-editor.rmx-theme-rose .rmx-syn-heading { color: #fb7185; font-weight: 600; }
84
+ .rmx-editor.rmx-theme-rose .rmx-syn-bold { color: #fde2ee; }
85
+ .rmx-editor.rmx-theme-rose .rmx-syn-italic { color: #fde2ee; }
86
+ .rmx-editor.rmx-theme-rose .rmx-syn-code { color: #fda4af; background: rgba(255, 255, 255, 0.06); }
87
+ .rmx-editor.rmx-theme-rose .rmx-syn-code-fence { color: #8b4766; }
88
+ .rmx-editor.rmx-theme-rose .rmx-syn-link { color: #fb7185; }
89
+ .rmx-editor.rmx-theme-rose .rmx-syn-url { color: #fecdd3; }
90
+ .rmx-editor.rmx-theme-rose .rmx-syn-image { color: #fda4af; }
91
+ .rmx-editor.rmx-theme-rose .rmx-syn-list-marker { color: #fda4af; font-weight: 600; }
92
+ .rmx-editor.rmx-theme-rose .rmx-syn-blockquote { color: #8b4766; }
93
+ .rmx-editor.rmx-theme-rose .rmx-syn-hr { color: #5c2848; }
94
+
95
+ /* Programming language tokens */
96
+ .rmx-editor.rmx-theme-rose .rmx-syn-keyword { color: #fb7185; }
97
+ .rmx-editor.rmx-theme-rose .rmx-syn-string { color: #fda4af; }
98
+ .rmx-editor.rmx-theme-rose .rmx-syn-number { color: #f472b6; }
99
+ .rmx-editor.rmx-theme-rose .rmx-syn-function { color: #e879f9; }
100
+ .rmx-editor.rmx-theme-rose .rmx-syn-operator { color: #fb7185; }
101
+ .rmx-editor.rmx-theme-rose .rmx-syn-punctuation { color: #fce7f3; }
102
+ .rmx-editor.rmx-theme-rose .rmx-syn-builtin { color: #f472b6; }
103
+ .rmx-editor.rmx-theme-rose .rmx-syn-property { color: #f472b6; }
104
+ .rmx-editor.rmx-theme-rose .rmx-syn-regex { color: #fda4af; }
105
+ .rmx-editor.rmx-theme-rose .rmx-syn-decorator { color: #fb923c; }
106
+ .rmx-editor.rmx-theme-rose .rmx-syn-type { color: #e879f9; }
107
+ .rmx-editor.rmx-theme-rose .rmx-syn-selector { color: #e879f9; }
108
+ .rmx-editor.rmx-theme-rose .rmx-syn-atrule { color: #fb7185; }
109
+ .rmx-editor.rmx-theme-rose .rmx-syn-variable { color: #fb923c; }