smartrte-react 0.2.8 → 0.3.0

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.
package/dist/theme.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export type SrteTheme = 'light' | 'dark';
2
- export declare const SRTE_DEFAULT_CSS = "\n.srte-editor {\n --srte-bg: #ffffff;\n --srte-text: #111111;\n --srte-text-muted: #4b5563;\n --srte-border: #dddddd;\n --srte-border-light: #eeeeee;\n --srte-toolbar-bg: #ffffff;\n --srte-input-bg: #ffffff;\n --srte-input-text: #111111;\n --srte-input-border: #e5e7eb;\n --srte-modal-backdrop: rgba(0, 0, 0, 0.35);\n --srte-modal-backdrop-filter: blur(2px);\n --srte-modal-bg: #ffffff;\n --srte-modal-text: #000000;\n --srte-menu-bg: #ffffff;\n --srte-menu-text: #111111;\n --srte-menu-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);\n --srte-accent: #1e90ff;\n --srte-accent-bg: rgba(30, 144, 255, 0.15);\n --srte-danger: #dc2626;\n --srte-primary: #2563eb;\n --srte-surface-subtle: #f3f4f6;\n --srte-on-primary: #ffffff;\n --srte-cancel-bg: #f3f4f6;\n}\n.srte-editor.srte-dark {\n --srte-bg: #1e1e1e;\n --srte-text: #e0e0e0;\n --srte-text-muted: #9ca3af;\n --srte-border: #3a3a3a;\n --srte-border-light: #2e2e2e;\n --srte-toolbar-bg: #252525;\n --srte-input-bg: #2a2a2a;\n --srte-input-text: #e0e0e0;\n --srte-input-border: #444444;\n --srte-modal-backdrop: rgba(0, 0, 0, 0.22);\n --srte-modal-backdrop-filter: blur(10px) saturate(0.9);\n --srte-modal-bg: #1e293b;\n --srte-modal-text: #e0e0e0;\n --srte-menu-bg: #1e293b;\n --srte-menu-text: #e0e0e0;\n --srte-menu-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);\n --srte-accent: #3b9eff;\n --srte-accent-bg: rgba(59, 158, 255, 0.2);\n --srte-danger: #ef4444;\n --srte-primary: #3b82f6;\n --srte-surface-subtle: #333333;\n --srte-on-primary: #ffffff;\n --srte-cancel-bg: #333333;\n}\n.srte-editor [contenteditable] blockquote {\n border-left: 4px solid var(--srte-accent);\n margin: 0.75em 0;\n padding: 0.5em 1em;\n background: var(--srte-surface-subtle);\n color: var(--srte-text);\n}\n.srte-editor [contenteditable] p,\n.srte-editor [contenteditable] h1,\n.srte-editor [contenteditable] h2,\n.srte-editor [contenteditable] h3 {\n color: inherit;\n}\n.srte-editor [contenteditable] p {\n display: block;\n margin: 0 0 0.75em;\n font-size: 1em;\n font-weight: 400;\n line-height: 1.6;\n}\n.srte-editor [contenteditable] h1,\n.srte-editor [contenteditable] h2,\n.srte-editor [contenteditable] h3 {\n display: block;\n margin: 0.75em 0 0.4em;\n font-weight: 700;\n line-height: 1.25;\n}\n.srte-editor [contenteditable] h1 {\n font-size: 2em;\n}\n.srte-editor [contenteditable] h2 {\n font-size: 1.5em;\n}\n.srte-editor [contenteditable] h3 {\n font-size: 1.25em;\n}\n.srte-editor [contenteditable] > :first-child {\n margin-top: 0;\n}\n.srte-editor [contenteditable] ul {\n list-style-type: disc;\n list-style-position: outside;\n margin: 0.75em 0;\n padding-left: 1.75em;\n}\n.srte-editor [contenteditable] ol {\n list-style-type: decimal;\n list-style-position: outside;\n margin: 0.75em 0;\n padding-left: 1.75em;\n}\n.srte-editor [contenteditable] li {\n display: list-item;\n margin: 0.25em 0;\n padding-left: 0.25em;\n}\n.srte-editor [contenteditable] li::marker {\n color: currentColor;\n}\n.srte-editor.srte-dark [contenteditable] [style*=\"color\"]:not(td):not(th):not(.srte-preserve-colors):not(.srte-preserve-colors *),\n.srte-editor.srte-dark [contenteditable] [style*=\"background\"]:not(td):not(th):not(.srte-preserve-colors):not(.srte-preserve-colors *) {\n color: var(--srte-text) !important;\n background: transparent !important;\n background-color: transparent !important;\n}\n.srte-editor [contenteditable] sub,\n.srte-editor [contenteditable] sup {\n line-height: 0;\n}\n";
2
+ export declare const SRTE_DEFAULT_CSS = "\n.srte-editor {\n --srte-bg: #ffffff;\n --srte-text: #111111;\n --srte-text-muted: #4b5563;\n --srte-border: #dddddd;\n --srte-border-light: #eeeeee;\n --srte-toolbar-bg: #ffffff;\n --srte-input-bg: #ffffff;\n --srte-input-text: #111111;\n --srte-input-border: #e5e7eb;\n --srte-modal-backdrop: rgba(0, 0, 0, 0.35);\n --srte-modal-backdrop-filter: blur(2px);\n --srte-modal-bg: #ffffff;\n --srte-modal-text: #000000;\n --srte-menu-bg: #ffffff;\n --srte-menu-text: #111111;\n --srte-menu-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);\n --srte-accent: #1e90ff;\n --srte-accent-bg: rgba(30, 144, 255, 0.15);\n --srte-danger: #dc2626;\n --srte-primary: #2563eb;\n --srte-surface-subtle: #f3f4f6;\n --srte-on-primary: #ffffff;\n --srte-cancel-bg: #f3f4f6;\n --srte-code-bg: #f6f8fa;\n --srte-code-text: #24292f;\n}\n.srte-editor.srte-dark {\n --srte-bg: #1e1e1e;\n --srte-text: #e0e0e0;\n --srte-text-muted: #9ca3af;\n --srte-border: #3a3a3a;\n --srte-border-light: #2e2e2e;\n --srte-toolbar-bg: #252525;\n --srte-input-bg: #2a2a2a;\n --srte-input-text: #e0e0e0;\n --srte-input-border: #444444;\n --srte-modal-backdrop: rgba(0, 0, 0, 0.22);\n --srte-modal-backdrop-filter: blur(10px) saturate(0.9);\n --srte-modal-bg: #1e293b;\n --srte-modal-text: #e0e0e0;\n --srte-menu-bg: #1e293b;\n --srte-menu-text: #e0e0e0;\n --srte-menu-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);\n --srte-accent: #3b9eff;\n --srte-accent-bg: rgba(59, 158, 255, 0.2);\n --srte-danger: #ef4444;\n --srte-primary: #3b82f6;\n --srte-surface-subtle: #333333;\n --srte-on-primary: #ffffff;\n --srte-cancel-bg: #333333;\n --srte-code-bg: #111827;\n --srte-code-text: #e5e7eb;\n}\n.srte-editor [contenteditable] blockquote {\n border-left: 4px solid var(--srte-accent);\n margin: 0.75em 0;\n padding: 0.5em 1em;\n background: var(--srte-surface-subtle);\n color: var(--srte-text);\n}\n.srte-editor [contenteditable] p,\n.srte-editor [contenteditable] h1,\n.srte-editor [contenteditable] h2,\n.srte-editor [contenteditable] h3 {\n color: inherit;\n}\n.srte-editor [contenteditable] p {\n display: block;\n margin: 0 0 0.75em;\n font-size: 1em;\n font-weight: 400;\n line-height: 1.6;\n}\n.srte-editor [contenteditable] p[data-srte-caret-boundary=\"true\"] {\n min-height: 1.6em;\n}\n.srte-editor [contenteditable] h1,\n.srte-editor [contenteditable] h2,\n.srte-editor [contenteditable] h3 {\n display: block;\n margin: 0.75em 0 0.4em;\n font-weight: 700;\n line-height: 1.25;\n}\n.srte-editor [contenteditable] h1 {\n font-size: 2em;\n}\n.srte-editor [contenteditable] h2 {\n font-size: 1.5em;\n}\n.srte-editor [contenteditable] h3 {\n font-size: 1.25em;\n}\n.srte-editor [contenteditable] > :first-child {\n margin-top: 0;\n}\n.srte-editor [contenteditable] ul {\n list-style-type: disc;\n list-style-position: outside;\n margin: 0.75em 0;\n padding-left: 1.75em;\n}\n.srte-editor [contenteditable] ol {\n list-style-type: decimal;\n list-style-position: outside;\n margin: 0.75em 0;\n padding-left: 1.75em;\n}\n.srte-editor [contenteditable] li {\n display: list-item;\n margin: 0.25em 0;\n padding-left: 0.25em;\n}\n.srte-editor [contenteditable] li::marker {\n color: currentColor;\n}\n.srte-editor [contenteditable] table {\n width: 100%;\n margin: 0.75em 0;\n border-collapse: collapse;\n}\n.srte-editor [contenteditable] th,\n.srte-editor [contenteditable] td {\n padding: 8px;\n border: 1px solid var(--srte-border);\n vertical-align: top;\n}\n.srte-editor [contenteditable] th {\n background: var(--srte-surface-subtle);\n font-weight: 600;\n text-align: left;\n}\n.srte-editor [contenteditable] td > h1,\n.srte-editor [contenteditable] td > h2,\n.srte-editor [contenteditable] td > h3,\n.srte-editor [contenteditable] th > h1,\n.srte-editor [contenteditable] th > h2,\n.srte-editor [contenteditable] th > h3 {\n margin: 0 0 0.4em;\n overflow-wrap: anywhere;\n}\n.srte-editor [contenteditable] pre {\n display: block;\n margin: 0.75em 0;\n padding: 12px 14px;\n overflow-x: auto;\n border: 1px solid var(--srte-border);\n border-radius: 6px;\n background: var(--srte-code-bg);\n color: var(--srte-code-text);\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", monospace;\n font-size: 0.9em;\n line-height: 1.55;\n white-space: pre-wrap;\n}\n.srte-editor [contenteditable] pre code {\n padding: 0;\n border: 0;\n background: transparent;\n color: inherit;\n font: inherit;\n}\n.srte-editor [contenteditable] code:not(pre code) {\n padding: 0.1em 0.35em;\n border-radius: 3px;\n background: var(--srte-code-bg);\n color: var(--srte-code-text);\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", monospace;\n font-size: 0.9em;\n}\n.srte-editor [contenteditable] a,\n.srte-editor [contenteditable] a:visited {\n color: var(--srte-primary) !important;\n text-decoration: underline !important;\n text-decoration-thickness: 1px !important;\n text-underline-offset: 2px !important;\n cursor: pointer;\n}\n.srte-editor [contenteditable] a:hover {\n color: var(--srte-accent) !important;\n}\n.srte-editor [contenteditable] a:focus-visible {\n outline: 2px solid var(--srte-accent);\n outline-offset: 2px;\n}\n.srte-editor.srte-dark [contenteditable] [style*=\"color\"]:not(td):not(th):not(.srte-preserve-colors):not(.srte-preserve-colors *),\n.srte-editor.srte-dark [contenteditable] [style*=\"background\"]:not(td):not(th):not(.srte-preserve-colors):not(.srte-preserve-colors *) {\n color: var(--srte-text) !important;\n background: transparent !important;\n background-color: transparent !important;\n}\n.srte-editor [contenteditable] sub,\n.srte-editor [contenteditable] sup {\n line-height: 0;\n}\n";
3
3
  export declare function ensureStyleSheet(): void;
package/dist/theme.js CHANGED
@@ -23,6 +23,8 @@ export const SRTE_DEFAULT_CSS = `
23
23
  --srte-surface-subtle: #f3f4f6;
24
24
  --srte-on-primary: #ffffff;
25
25
  --srte-cancel-bg: #f3f4f6;
26
+ --srte-code-bg: #f6f8fa;
27
+ --srte-code-text: #24292f;
26
28
  }
27
29
  .srte-editor.srte-dark {
28
30
  --srte-bg: #1e1e1e;
@@ -48,6 +50,8 @@ export const SRTE_DEFAULT_CSS = `
48
50
  --srte-surface-subtle: #333333;
49
51
  --srte-on-primary: #ffffff;
50
52
  --srte-cancel-bg: #333333;
53
+ --srte-code-bg: #111827;
54
+ --srte-code-text: #e5e7eb;
51
55
  }
52
56
  .srte-editor [contenteditable] blockquote {
53
57
  border-left: 4px solid var(--srte-accent);
@@ -69,6 +73,9 @@ export const SRTE_DEFAULT_CSS = `
69
73
  font-weight: 400;
70
74
  line-height: 1.6;
71
75
  }
76
+ .srte-editor [contenteditable] p[data-srte-caret-boundary="true"] {
77
+ min-height: 1.6em;
78
+ }
72
79
  .srte-editor [contenteditable] h1,
73
80
  .srte-editor [contenteditable] h2,
74
81
  .srte-editor [contenteditable] h3 {
@@ -109,6 +116,75 @@ export const SRTE_DEFAULT_CSS = `
109
116
  .srte-editor [contenteditable] li::marker {
110
117
  color: currentColor;
111
118
  }
119
+ .srte-editor [contenteditable] table {
120
+ width: 100%;
121
+ margin: 0.75em 0;
122
+ border-collapse: collapse;
123
+ }
124
+ .srte-editor [contenteditable] th,
125
+ .srte-editor [contenteditable] td {
126
+ padding: 8px;
127
+ border: 1px solid var(--srte-border);
128
+ vertical-align: top;
129
+ }
130
+ .srte-editor [contenteditable] th {
131
+ background: var(--srte-surface-subtle);
132
+ font-weight: 600;
133
+ text-align: left;
134
+ }
135
+ .srte-editor [contenteditable] td > h1,
136
+ .srte-editor [contenteditable] td > h2,
137
+ .srte-editor [contenteditable] td > h3,
138
+ .srte-editor [contenteditable] th > h1,
139
+ .srte-editor [contenteditable] th > h2,
140
+ .srte-editor [contenteditable] th > h3 {
141
+ margin: 0 0 0.4em;
142
+ overflow-wrap: anywhere;
143
+ }
144
+ .srte-editor [contenteditable] pre {
145
+ display: block;
146
+ margin: 0.75em 0;
147
+ padding: 12px 14px;
148
+ overflow-x: auto;
149
+ border: 1px solid var(--srte-border);
150
+ border-radius: 6px;
151
+ background: var(--srte-code-bg);
152
+ color: var(--srte-code-text);
153
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
154
+ font-size: 0.9em;
155
+ line-height: 1.55;
156
+ white-space: pre-wrap;
157
+ }
158
+ .srte-editor [contenteditable] pre code {
159
+ padding: 0;
160
+ border: 0;
161
+ background: transparent;
162
+ color: inherit;
163
+ font: inherit;
164
+ }
165
+ .srte-editor [contenteditable] code:not(pre code) {
166
+ padding: 0.1em 0.35em;
167
+ border-radius: 3px;
168
+ background: var(--srte-code-bg);
169
+ color: var(--srte-code-text);
170
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
171
+ font-size: 0.9em;
172
+ }
173
+ .srte-editor [contenteditable] a,
174
+ .srte-editor [contenteditable] a:visited {
175
+ color: var(--srte-primary) !important;
176
+ text-decoration: underline !important;
177
+ text-decoration-thickness: 1px !important;
178
+ text-underline-offset: 2px !important;
179
+ cursor: pointer;
180
+ }
181
+ .srte-editor [contenteditable] a:hover {
182
+ color: var(--srte-accent) !important;
183
+ }
184
+ .srte-editor [contenteditable] a:focus-visible {
185
+ outline: 2px solid var(--srte-accent);
186
+ outline-offset: 2px;
187
+ }
112
188
  .srte-editor.srte-dark [contenteditable] [style*="color"]:not(td):not(th):not(.srte-preserve-colors):not(.srte-preserve-colors *),
113
189
  .srte-editor.srte-dark [contenteditable] [style*="background"]:not(td):not(th):not(.srte-preserve-colors):not(.srte-preserve-colors *) {
114
190
  color: var(--srte-text) !important;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "smartrte-react",
3
- "version": "0.2.8",
3
+ "version": "0.3.0",
4
4
  "description": "A powerful, feature-rich Rich Text Editor for React with support for tables, mathematical formulas (LaTeX/KaTeX), and media management",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -8,7 +8,10 @@
8
8
  "types": "dist/index.d.ts",
9
9
  "files": [
10
10
  "dist",
11
- "README.md"
11
+ "!dist/**/*.test.js",
12
+ "!dist/**/*.test.d.ts",
13
+ "README.md",
14
+ "CHANGELOG.md"
12
15
  ],
13
16
  "keywords": [
14
17
  "react",
@@ -40,13 +43,13 @@
40
43
  "license": "MIT",
41
44
  "scripts": {
42
45
  "build": "tsc -p tsconfig.json",
43
- "prepublishOnly": "pnpm run build",
46
+ "prepublishOnly": "npm run build",
44
47
  "dev": "pnpm build",
45
- "lint": "eslint . || true",
46
- "test": "vitest run || true",
48
+ "lint": "tsc -p tsconfig.json --noEmit",
49
+ "test": "vitest run --passWithNoTests",
47
50
  "storybook": "storybook dev -p 6006",
48
51
  "build-storybook": "storybook build",
49
- "e2e": "playwright test || true"
52
+ "e2e": "playwright test --pass-with-no-tests"
50
53
  },
51
54
  "publishConfig": {
52
55
  "access": "public"
@@ -66,6 +69,7 @@
66
69
  "@types/react-dom": "^18.3.0",
67
70
  "react": "18.3.1",
68
71
  "react-dom": "18.3.1",
72
+ "jsdom": "^25.0.1",
69
73
  "storybook": "^8.6.14",
70
74
  "typescript": "^5.6.2",
71
75
  "vite": "^5.4.8",
@@ -74,6 +78,7 @@
74
78
  "dependencies": {
75
79
  "jszip": "^3.10.1",
76
80
  "mammoth": "^1.11.0",
77
- "pdfjs-dist": "^5.4.530"
81
+ "pdfjs-dist": "^5.4.530",
82
+ "smartrte-core": "^0.2.0"
78
83
  }
79
84
  }