@editora/plugins 1.0.2 → 1.0.5

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 +30 -5
  2. package/dist/a11y-checker.cjs.js +109 -0
  3. package/dist/a11y-checker.esm.js +509 -0
  4. package/dist/anchor.cjs.js +176 -0
  5. package/dist/anchor.esm.js +400 -0
  6. package/dist/background-color.cjs.js +218 -0
  7. package/dist/background-color.esm.js +482 -0
  8. package/dist/blockquote.cjs.js +1 -0
  9. package/dist/blockquote.esm.js +47 -0
  10. package/dist/bold.cjs.js +1 -0
  11. package/dist/bold.esm.js +44 -0
  12. package/dist/capitalization.cjs.js +1 -0
  13. package/dist/capitalization.esm.js +78 -0
  14. package/dist/checklist.cjs.js +1 -0
  15. package/dist/checklist.esm.js +305 -0
  16. package/dist/clear-formatting.cjs.js +1 -0
  17. package/dist/clear-formatting.esm.js +138 -0
  18. package/dist/code-sample.cjs.js +161 -0
  19. package/dist/code-sample.esm.js +381 -0
  20. package/dist/code.cjs.js +606 -0
  21. package/dist/code.esm.js +2164 -0
  22. package/dist/colorSelectionApply-C0iOfMWb.js +1 -0
  23. package/dist/colorSelectionApply-D8r_gV32.mjs +63 -0
  24. package/dist/comments.cjs.js +354 -0
  25. package/dist/comments.esm.js +692 -0
  26. package/dist/direction.cjs.js +1 -0
  27. package/dist/direction.esm.js +129 -0
  28. package/dist/document-manager.cjs.js +1 -0
  29. package/dist/document-manager.esm.js +6 -0
  30. package/dist/{documentManager-CYC9totK.mjs → documentManager-DRUc1-Cs.mjs} +3 -3
  31. package/dist/{documentManager-BGlu3WRB.js → documentManager-_tQQfQi9.js} +3 -3
  32. package/dist/editorContainerHelpers-C7kdWnS0.mjs +26 -0
  33. package/dist/editorContainerHelpers-CFbfiOJI.js +1 -0
  34. package/dist/embed-iframe.cjs.js +361 -0
  35. package/dist/embed-iframe.esm.js +556 -0
  36. package/dist/emojis.cjs.js +284 -0
  37. package/dist/emojis.esm.js +1080 -0
  38. package/dist/font-family.cjs.js +1 -0
  39. package/dist/font-family.esm.js +152 -0
  40. package/dist/font-size.cjs.js +1 -0
  41. package/dist/font-size.esm.js +278 -0
  42. package/dist/footnote.cjs.js +85 -0
  43. package/dist/footnote.esm.js +397 -0
  44. package/dist/fullscreen.cjs.js +1 -0
  45. package/dist/fullscreen.esm.js +73 -0
  46. package/dist/heading.cjs.js +1 -0
  47. package/dist/heading.esm.js +63 -0
  48. package/dist/history.cjs.js +1 -0
  49. package/dist/history.esm.js +246 -0
  50. package/dist/indent.cjs.js +1 -0
  51. package/dist/indent.esm.js +146 -0
  52. package/dist/index-Bskk414V.mjs +145 -0
  53. package/dist/index-D3pJyAsj.js +1 -0
  54. package/dist/index.cjs.js +1 -1
  55. package/dist/{index.es-B-to-4j4.js → index.es-Cz1qItab.js} +1 -1
  56. package/dist/{index.es-BbXJ7tyO.mjs → index.es-DEcRmSTY.mjs} +1 -1
  57. package/dist/index.esm.js +89 -49
  58. package/dist/italic.cjs.js +1 -0
  59. package/dist/italic.esm.js +40 -0
  60. package/dist/line-height.cjs.js +1 -0
  61. package/dist/line-height.esm.js +145 -0
  62. package/dist/link.cjs.js +138 -0
  63. package/dist/link.esm.js +276 -0
  64. package/dist/list.cjs.js +1 -0
  65. package/dist/list.esm.js +102 -0
  66. package/dist/lite.cjs.js +1 -0
  67. package/dist/lite.esm.js +61 -0
  68. package/dist/math.cjs.js +45 -0
  69. package/dist/math.esm.js +249 -0
  70. package/dist/media-manager.cjs.js +619 -0
  71. package/dist/media-manager.esm.js +994 -0
  72. package/dist/merge-tag.cjs.js +93 -0
  73. package/dist/merge-tag.esm.js +412 -0
  74. package/dist/page-break.cjs.js +72 -0
  75. package/dist/page-break.esm.js +295 -0
  76. package/dist/plugins.css +1 -1
  77. package/dist/preview.cjs.js +230 -0
  78. package/dist/preview.esm.js +321 -0
  79. package/dist/print.cjs.js +254 -0
  80. package/dist/print.esm.js +309 -0
  81. package/dist/purify.es-DHhaBdbu.mjs +470 -0
  82. package/dist/purify.es-T2a3nLiC.js +3 -0
  83. package/dist/shared-config.cjs.js +1 -0
  84. package/dist/shared-config.esm.js +30 -0
  85. package/dist/special-characters.cjs.js +257 -0
  86. package/dist/special-characters.esm.js +772 -0
  87. package/dist/spell-check.cjs.js +512 -0
  88. package/dist/spell-check.esm.js +1013 -0
  89. package/dist/strikethrough.cjs.js +1 -0
  90. package/dist/strikethrough.esm.js +71 -0
  91. package/dist/table.cjs.js +35 -0
  92. package/dist/table.esm.js +477 -0
  93. package/dist/template.cjs.js +356 -0
  94. package/dist/template.esm.js +560 -0
  95. package/dist/text-alignment.cjs.js +1 -0
  96. package/dist/text-alignment.esm.js +105 -0
  97. package/dist/text-color.cjs.js +300 -0
  98. package/dist/text-color.esm.js +507 -0
  99. package/dist/underline.cjs.js +1 -0
  100. package/dist/underline.esm.js +34 -0
  101. package/index.d.ts +62 -0
  102. package/package.json +220 -7
  103. package/LICENSE +0 -21
  104. package/dist/index-BbORIHoM.mjs +0 -11763
  105. package/dist/index-C-OCBS_6.js +0 -3753
@@ -0,0 +1,309 @@
1
+ const s = () => `
2
+ * {
3
+ margin: 0;
4
+ padding: 0;
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ html, body {
9
+ background: white;
10
+ color: black;
11
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
12
+ line-height: 1.5;
13
+ }
14
+
15
+ .rte-print {
16
+ background: white;
17
+ color: black;
18
+ }
19
+
20
+ /* Page break handling */
21
+ .rte-page-break {
22
+ page-break-after: always;
23
+ display: block;
24
+ height: 0;
25
+ margin: 0;
26
+ border: none;
27
+ background: none;
28
+ }
29
+
30
+ .rte-page-break::before {
31
+ display: none;
32
+ }
33
+
34
+ /* Code block formatting */
35
+ .rte-code-block,
36
+ pre {
37
+ background: #f5f5f5;
38
+ border: 1px solid #ddd;
39
+ border-radius: 4px;
40
+ padding: 12px;
41
+ margin: 12px 0;
42
+ overflow-x: auto;
43
+ page-break-inside: avoid;
44
+ }
45
+
46
+ .rte-code-block code,
47
+ pre code {
48
+ font-family: 'Courier New', Courier, monospace;
49
+ font-size: 12px;
50
+ line-height: 1.4;
51
+ white-space: pre-wrap;
52
+ word-break: break-word;
53
+ }
54
+
55
+ /* Footnotes */
56
+ .rte-footnotes {
57
+ border-top: 1px solid #ccc;
58
+ margin-top: 40px;
59
+ padding-top: 12px;
60
+ page-break-inside: avoid;
61
+ }
62
+
63
+ .rte-footnotes ol {
64
+ margin-left: 20px;
65
+ }
66
+
67
+ .rte-footnotes li {
68
+ margin: 8px 0;
69
+ font-size: 0.9em;
70
+ }
71
+
72
+ .rte-footnote-ref {
73
+ vertical-align: super;
74
+ font-size: 0.8em;
75
+ }
76
+
77
+ .rte-footnote-backref {
78
+ margin-left: 4px;
79
+ text-decoration: none;
80
+ color: #666;
81
+ }
82
+
83
+ /* Anchors - preserve IDs but hide visual markers */
84
+ .rte-anchor {
85
+ display: none;
86
+ }
87
+
88
+ /* Lists and tables */
89
+ ul, ol {
90
+ margin: 12px 0;
91
+ padding-left: 40px;
92
+ }
93
+
94
+ li {
95
+ margin: 4px 0;
96
+ }
97
+
98
+ table {
99
+ border-collapse: collapse;
100
+ width: 100%;
101
+ margin: 12px 0;
102
+ page-break-inside: avoid;
103
+ }
104
+
105
+ th, td {
106
+ border: 1px solid #ddd;
107
+ padding: 8px;
108
+ text-align: left;
109
+ }
110
+
111
+ th {
112
+ background: #f5f5f5;
113
+ font-weight: bold;
114
+ }
115
+
116
+ /* Heading hierarchy */
117
+ h1 {
118
+ font-size: 2em;
119
+ margin: 20px 0 12px;
120
+ page-break-after: avoid;
121
+ }
122
+
123
+ h2 {
124
+ font-size: 1.5em;
125
+ margin: 16px 0 10px;
126
+ page-break-after: avoid;
127
+ }
128
+
129
+ h3 {
130
+ font-size: 1.25em;
131
+ margin: 14px 0 8px;
132
+ page-break-after: avoid;
133
+ }
134
+
135
+ h4 {
136
+ font-size: 1.1em;
137
+ margin: 12px 0 6px;
138
+ page-break-after: avoid;
139
+ }
140
+
141
+ h5 {
142
+ font-size: 1em;
143
+ margin: 12px 0 6px;
144
+ page-break-after: avoid;
145
+ }
146
+
147
+ h6 {
148
+ font-size: 0.9em;
149
+ margin: 12px 0 6px;
150
+ page-break-after: avoid;
151
+ }
152
+
153
+ p {
154
+ margin: 8px 0;
155
+ }
156
+
157
+ /* Emphasis and strong */
158
+ strong, b {
159
+ font-weight: bold;
160
+ }
161
+
162
+ em, i {
163
+ font-style: italic;
164
+ }
165
+
166
+ u {
167
+ text-decoration: underline;
168
+ }
169
+
170
+ /* Block elements */
171
+ blockquote {
172
+ border-left: 4px solid #ddd;
173
+ margin: 12px 0;
174
+ padding-left: 16px;
175
+ color: #666;
176
+ }
177
+
178
+ hr {
179
+ border: none;
180
+ border-top: 1px solid #ddd;
181
+ margin: 16px 0;
182
+ page-break-after: avoid;
183
+ }
184
+
185
+ /* Images */
186
+ img {
187
+ max-width: 100%;
188
+ height: auto;
189
+ page-break-inside: avoid;
190
+ }
191
+
192
+ /* Links */
193
+ a {
194
+ color: #0066cc;
195
+ text-decoration: underline;
196
+ }
197
+
198
+ /* Merge tags */
199
+ .rte-merge-tag {
200
+ background-color: #e3f2fd;
201
+ border: 1px solid #bbdefb;
202
+ border-radius: 3px;
203
+ padding: 2px 6px;
204
+ margin: 0 2px;
205
+ display: inline-block;
206
+ white-space: nowrap;
207
+ font-weight: 500;
208
+ color: #1976d2;
209
+ font-size: 0.9em;
210
+ }
211
+
212
+ /* Hide selection */
213
+ ::selection {
214
+ background: transparent;
215
+ }
216
+
217
+ /* Print-specific rules */
218
+ @media print {
219
+ body {
220
+ margin: 0;
221
+ padding: 0;
222
+ }
223
+
224
+ .rte-page-break {
225
+ page-break-after: always;
226
+ }
227
+
228
+ h1, h2, h3, h4, h5, h6 {
229
+ page-break-after: avoid;
230
+ page-break-inside: avoid;
231
+ }
232
+
233
+ table, figure, img, pre {
234
+ page-break-inside: avoid;
235
+ }
236
+
237
+ ul, ol, blockquote {
238
+ page-break-inside: avoid;
239
+ }
240
+ }
241
+ `, l = () => {
242
+ if (typeof window > "u") return !1;
243
+ const a = (() => {
244
+ const i = window.getSelection();
245
+ if (i && i.rangeCount > 0) {
246
+ let t = i.getRangeAt(0).startContainer;
247
+ for (; t && t !== document.body; ) {
248
+ if (t.nodeType === Node.ELEMENT_NODE) {
249
+ const d = t;
250
+ if (d.getAttribute("contenteditable") === "true")
251
+ return d;
252
+ }
253
+ t = t.parentNode;
254
+ }
255
+ }
256
+ const n = document.activeElement;
257
+ if (n) {
258
+ if (n.getAttribute("contenteditable") === "true")
259
+ return n;
260
+ const t = n.closest('[contenteditable="true"]');
261
+ if (t) return t;
262
+ }
263
+ return document.querySelector('[contenteditable="true"]');
264
+ })();
265
+ if (!a)
266
+ return console.warn("Editor content not found"), !1;
267
+ const p = a.cloneNode(!0), r = document.createElement("article");
268
+ r.className = "rte-document rte-print", r.appendChild(p);
269
+ const c = `
270
+ <!DOCTYPE html>
271
+ <html>
272
+ <head>
273
+ <meta charset="UTF-8">
274
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
275
+ <title>Print Document</title>
276
+ <style>${s()}</style>
277
+ </head>
278
+ <body>
279
+ ${r.outerHTML}
280
+ </body>
281
+ </html>
282
+ `, e = document.createElement("iframe");
283
+ e.style.position = "absolute", e.style.left = "-9999px", e.style.top = "-9999px", e.style.width = "0", e.style.height = "0", document.body.appendChild(e);
284
+ const o = e.contentDocument || e.contentWindow?.document;
285
+ return o ? (o.open(), o.write(c), o.close(), setTimeout(() => {
286
+ e.contentWindow && (e.contentWindow.print(), setTimeout(() => {
287
+ document.body.removeChild(e);
288
+ }, 100));
289
+ }, 250), !0) : (console.error("Could not access print frame document"), document.body.removeChild(e), !1);
290
+ }, m = () => ({
291
+ name: "print",
292
+ toolbar: [
293
+ {
294
+ label: "Print",
295
+ command: "print",
296
+ icon: '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" focusable="false" aria-hidden="true"><path d="M7 9V4h10v5M6 18h12v-4H6v4Zm0 0v2h12v-2M6 9H5a2 2 0 0 0-2 2v3h3m12-5h1a2 2 0 0 1 2 2v3h-3" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>',
297
+ shortcut: "Mod-p"
298
+ }
299
+ ],
300
+ commands: {
301
+ print: l
302
+ },
303
+ keymap: {
304
+ "Mod-p": () => (l(), !0)
305
+ }
306
+ });
307
+ export {
308
+ m as PrintPlugin
309
+ };