mdwysiwyg 0.1.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/index.css ADDED
@@ -0,0 +1,423 @@
1
+ /* src/components/MarkdownEditor/MarkdownEditor.module.css */
2
+ .root {
3
+ --mdw-border: #d0d4da;
4
+ --mdw-bg: #ffffff;
5
+ --mdw-fg: #1f2328;
6
+ --mdw-muted: #f6f7f9;
7
+ --mdw-accent: #3d6fd8;
8
+ --mdw-toolbar-gradient-from: #eeeeee;
9
+ --mdw-toolbar-gradient-via: #dcdcdc;
10
+ --mdw-toolbar-gradient-to: #cfcfcf;
11
+ --mdw-toolbar-fg: #222222;
12
+ --mdw-toolbar-font-family: Arial, sans-serif;
13
+ --mdw-content-bg: var(--mdw-bg);
14
+ box-sizing: border-box;
15
+ display: flex;
16
+ flex-direction: column;
17
+ border: 1px solid var(--mdw-border);
18
+ border-radius: 6px;
19
+ background: var(--mdw-bg);
20
+ color: var(--mdw-fg);
21
+ font-family:
22
+ system-ui,
23
+ -apple-system,
24
+ "Segoe UI",
25
+ sans-serif;
26
+ font-size: 14px;
27
+ overflow: hidden;
28
+ }
29
+ .resizable {
30
+ resize: both;
31
+ overflow: auto;
32
+ min-width: 320px;
33
+ min-height: 200px;
34
+ }
35
+ .root *,
36
+ .root *::before,
37
+ .root *::after {
38
+ box-sizing: inherit;
39
+ }
40
+ .content {
41
+ flex: 1;
42
+ min-height: 0;
43
+ overflow: auto;
44
+ display: flex;
45
+ flex-direction: column;
46
+ background: var(--mdw-content-bg);
47
+ }
48
+ .content > div {
49
+ flex: 1;
50
+ display: flex;
51
+ flex-direction: column;
52
+ }
53
+ .content :global(.ProseMirror) {
54
+ flex: 1;
55
+ padding: 12px 16px;
56
+ outline: none;
57
+ white-space: pre-wrap;
58
+ word-wrap: break-word;
59
+ }
60
+ .content :global(.ProseMirror p) {
61
+ margin: 0 0 0.6em;
62
+ }
63
+ .content :global(.ProseMirror pre) {
64
+ background: var(--mdw-muted);
65
+ border: 1px solid var(--mdw-border);
66
+ border-radius: 4px;
67
+ padding: 8px 12px;
68
+ font-family:
69
+ ui-monospace,
70
+ Consolas,
71
+ monospace;
72
+ font-size: 13px;
73
+ overflow-x: auto;
74
+ }
75
+ .content :global(.hljs-keyword),
76
+ .content :global(.hljs-selector-tag),
77
+ .content :global(.hljs-literal) {
78
+ color: #a626a4;
79
+ }
80
+ .content :global(.hljs-string),
81
+ .content :global(.hljs-attr) {
82
+ color: #50a14f;
83
+ }
84
+ .content :global(.hljs-comment),
85
+ .content :global(.hljs-quote) {
86
+ color: #a0a1a7;
87
+ font-style: italic;
88
+ }
89
+ .content :global(.hljs-number),
90
+ .content :global(.hljs-built_in) {
91
+ color: #986801;
92
+ }
93
+ .content :global(.hljs-title),
94
+ .content :global(.hljs-title.function_),
95
+ .content :global(.hljs-title.class_) {
96
+ color: #4078f2;
97
+ }
98
+ .content :global(.ProseMirror table) {
99
+ border-collapse: collapse;
100
+ margin: 0.6em 0;
101
+ }
102
+ .content :global(.ProseMirror th),
103
+ .content :global(.ProseMirror td) {
104
+ border: 1px solid var(--mdw-border);
105
+ padding: 4px 8px;
106
+ min-width: 3em;
107
+ }
108
+ .content :global(.ProseMirror th) {
109
+ background: var(--mdw-muted);
110
+ }
111
+ .content :global(.ProseMirror hr) {
112
+ border: none;
113
+ border-top: 2px solid var(--mdw-border);
114
+ margin: 1em 0;
115
+ }
116
+ .content :global(.ProseMirror img) {
117
+ max-width: 100%;
118
+ }
119
+ .content :global(.ProseMirror blockquote) {
120
+ border-left: 3px solid var(--mdw-border);
121
+ margin: 0.6em 0;
122
+ padding-left: 12px;
123
+ color: #57606a;
124
+ }
125
+ .content :global(.ProseMirror ul[data-type=taskList]) {
126
+ list-style: none;
127
+ padding-left: 0.25em;
128
+ }
129
+ .content :global(.ProseMirror ul[data-type=taskList] li) {
130
+ display: flex;
131
+ gap: 0.5em;
132
+ }
133
+ .content :global(.ProseMirror ul[data-type=taskList] li > div) {
134
+ flex: 1;
135
+ }
136
+ .content :global(.ProseMirror div[data-html-block]) {
137
+ border: 1px dashed var(--mdw-border);
138
+ border-radius: 4px;
139
+ padding: 6px 10px;
140
+ margin: 0.6em 0;
141
+ }
142
+ .source {
143
+ flex: 1;
144
+ width: 100%;
145
+ border: none;
146
+ resize: none;
147
+ outline: none;
148
+ padding: 12px 16px;
149
+ font-family:
150
+ ui-monospace,
151
+ Consolas,
152
+ monospace;
153
+ font-size: 13px;
154
+ line-height: 1.5;
155
+ color: inherit;
156
+ background: transparent;
157
+ }
158
+ .toolbar {
159
+ position: relative;
160
+ display: flex;
161
+ flex-wrap: nowrap;
162
+ align-items: center;
163
+ min-height: 36px;
164
+ padding: 2px 3px;
165
+ gap: 2px;
166
+ background:
167
+ linear-gradient(
168
+ to bottom,
169
+ var(--mdw-toolbar-gradient-from) 0%,
170
+ var(--mdw-toolbar-gradient-via) 45%,
171
+ var(--mdw-toolbar-gradient-to) 100%);
172
+ color: var(--mdw-toolbar-fg);
173
+ font-family: var(--mdw-toolbar-font-family);
174
+ border-bottom: 1px solid #999;
175
+ box-shadow: inset 0 1px 0 #fff, 0 1px 2px rgba(0, 0, 0, 0.15);
176
+ overflow-x: auto;
177
+ overflow-y: visible;
178
+ }
179
+ .readOnlyNotice {
180
+ padding: 0 8px;
181
+ font-size: 13px;
182
+ font-style: italic;
183
+ color: var(--mdw-toolbar-fg);
184
+ font-family: var(--mdw-toolbar-font-family);
185
+ }
186
+ .toolbar > .button,
187
+ .toolbar > .separator {
188
+ flex-shrink: 0;
189
+ }
190
+ .separator {
191
+ width: 1px;
192
+ height: 25px;
193
+ margin: 0 3px;
194
+ background: #aaa;
195
+ box-shadow: 1px 0 0 #fff;
196
+ }
197
+ .spacer {
198
+ flex-shrink: 0;
199
+ margin-left: auto;
200
+ }
201
+ .button {
202
+ display: inline-flex;
203
+ align-items: center;
204
+ justify-content: center;
205
+ width: 29px;
206
+ height: 29px;
207
+ padding: 0;
208
+ border: 1px solid transparent;
209
+ border-radius: 2px;
210
+ background: transparent;
211
+ color: var(--mdw-toolbar-fg);
212
+ font-family: var(--mdw-toolbar-font-family);
213
+ font-size: 15px;
214
+ cursor: pointer;
215
+ }
216
+ .button svg {
217
+ width: 17px;
218
+ height: 17px;
219
+ stroke: currentColor;
220
+ fill: none;
221
+ stroke-width: 1.8;
222
+ stroke-linecap: round;
223
+ stroke-linejoin: round;
224
+ }
225
+ .button:hover:not(:disabled) {
226
+ background:
227
+ linear-gradient(
228
+ to bottom,
229
+ #ffffff,
230
+ #d8d8d8);
231
+ border-color: #999;
232
+ box-shadow: inset 0 1px 0 #fff, 0 1px 1px rgba(0, 0, 0, 0.15);
233
+ }
234
+ .button:active:not(:disabled),
235
+ .button[aria-pressed=true] {
236
+ background: #c8c8c8;
237
+ border-color: #999;
238
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.25);
239
+ }
240
+ .button:focus-visible {
241
+ outline: 2px solid var(--mdw-accent);
242
+ outline-offset: 1px;
243
+ }
244
+ .button:disabled {
245
+ opacity: 0.4;
246
+ cursor: default;
247
+ }
248
+ .textButton {
249
+ width: auto;
250
+ padding: 0 10px;
251
+ font-size: 13px;
252
+ }
253
+ .boldGlyph {
254
+ font-weight: bold;
255
+ font-size: 17px;
256
+ }
257
+ .italicGlyph {
258
+ font-family: Georgia, serif;
259
+ font-style: italic;
260
+ font-weight: bold;
261
+ font-size: 17px;
262
+ }
263
+ .strikeGlyph {
264
+ font-size: 16px;
265
+ text-decoration: line-through;
266
+ }
267
+ .htmlIcon {
268
+ font-family: ui-monospace, monospace;
269
+ font-weight: bold;
270
+ font-size: 11px;
271
+ }
272
+ .headingSelect {
273
+ flex-shrink: 1;
274
+ flex-basis: 118px;
275
+ min-width: 30px;
276
+ width: 118px;
277
+ height: 29px;
278
+ padding: 0 25px 0 9px;
279
+ border: 1px solid #999;
280
+ border-radius: 2px;
281
+ background-color: #e9e9e9;
282
+ background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23222' stroke-width='1.5'/%3E%3C/svg%3E");
283
+ background-repeat: no-repeat;
284
+ background-position: right 8px center;
285
+ color: var(--mdw-toolbar-fg);
286
+ font-family: var(--mdw-toolbar-font-family);
287
+ font-size: 13px;
288
+ cursor: pointer;
289
+ box-shadow: inset 0 1px 0 #fff;
290
+ appearance: none;
291
+ overflow: hidden;
292
+ text-overflow: ellipsis;
293
+ white-space: nowrap;
294
+ }
295
+ .headingSelect:disabled {
296
+ opacity: 0.4;
297
+ cursor: default;
298
+ }
299
+ .dialog {
300
+ display: flex;
301
+ flex-direction: column;
302
+ gap: 8px;
303
+ width: 260px;
304
+ max-width: calc(100vw - 24px);
305
+ padding: 10px 12px;
306
+ border: 1px solid var(--mdw-border);
307
+ border-radius: 6px;
308
+ background: var(--mdw-bg);
309
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
310
+ box-sizing: border-box;
311
+ }
312
+ .dialogField {
313
+ display: flex;
314
+ flex-direction: column;
315
+ gap: 2px;
316
+ font-size: 12px;
317
+ }
318
+ .dialogField input,
319
+ .dialogField textarea,
320
+ .dialogField select {
321
+ width: 100%;
322
+ border: 1px solid var(--mdw-border);
323
+ border-radius: 4px;
324
+ padding: 4px 6px;
325
+ font: inherit;
326
+ font-size: 13px;
327
+ }
328
+ .dialogField textarea {
329
+ resize: vertical;
330
+ font-family:
331
+ ui-monospace,
332
+ Consolas,
333
+ monospace;
334
+ }
335
+ .dialogActions {
336
+ display: flex;
337
+ gap: 6px;
338
+ justify-content: flex-end;
339
+ flex-wrap: nowrap;
340
+ }
341
+ .dialogActions button {
342
+ flex: 0 0 auto;
343
+ white-space: nowrap;
344
+ }
345
+ .tablePicker {
346
+ align-items: center;
347
+ min-width: 0;
348
+ }
349
+ .tablePickerLabel {
350
+ font-size: 12px;
351
+ text-align: center;
352
+ min-height: 1.2em;
353
+ }
354
+ .tablePickerGrid {
355
+ display: grid;
356
+ gap: 2px;
357
+ padding: 2px;
358
+ }
359
+ .tablePickerGrid:focus-visible {
360
+ outline: 2px solid var(--mdw-accent);
361
+ outline-offset: 2px;
362
+ }
363
+ .tablePickerCell {
364
+ width: 16px;
365
+ height: 16px;
366
+ border: 1px solid #999;
367
+ border-radius: 2px;
368
+ background: var(--mdw-bg);
369
+ cursor: pointer;
370
+ }
371
+ .tablePickerCell[data-selected=true] {
372
+ background: #dbe4f8;
373
+ border-color: var(--mdw-accent);
374
+ }
375
+ .menu {
376
+ display: flex;
377
+ flex-direction: column;
378
+ min-width: 190px;
379
+ padding: 4px;
380
+ border: 1px solid var(--mdw-border);
381
+ border-radius: 6px;
382
+ background: var(--mdw-bg);
383
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
384
+ }
385
+ .menuItem {
386
+ text-align: left;
387
+ border: none;
388
+ border-radius: 4px;
389
+ background: transparent;
390
+ color: inherit;
391
+ font: inherit;
392
+ font-size: 13px;
393
+ padding: 6px 8px;
394
+ cursor: pointer;
395
+ }
396
+ .menuItem:hover,
397
+ .menuItem:focus-visible {
398
+ background: #e4e7eb;
399
+ outline: none;
400
+ }
401
+ .menuSeparator {
402
+ height: 1px;
403
+ margin: 4px 2px;
404
+ background: var(--mdw-border);
405
+ border: none;
406
+ }
407
+ .dangerLink {
408
+ align-self: flex-start;
409
+ border: none;
410
+ background: transparent;
411
+ color: #b42318;
412
+ font: inherit;
413
+ font-size: 12px;
414
+ text-decoration: underline;
415
+ cursor: pointer;
416
+ padding: 0;
417
+ }
418
+ .dangerLink:hover,
419
+ .dangerLink:focus-visible {
420
+ color: #8c1c11;
421
+ outline: none;
422
+ }
423
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/MarkdownEditor/MarkdownEditor.module.css"],"sourcesContent":[".root {\n --mdw-border: #d0d4da;\n --mdw-bg: #ffffff;\n --mdw-fg: #1f2328;\n --mdw-muted: #f6f7f9;\n --mdw-accent: #3d6fd8;\n --mdw-toolbar-gradient-from: #eeeeee;\n --mdw-toolbar-gradient-via: #dcdcdc;\n --mdw-toolbar-gradient-to: #cfcfcf;\n --mdw-toolbar-fg: #222222;\n --mdw-toolbar-font-family: Arial, sans-serif;\n --mdw-content-bg: var(--mdw-bg);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n border: 1px solid var(--mdw-border);\n border-radius: 6px;\n background: var(--mdw-bg);\n color: var(--mdw-fg);\n font-family: system-ui, -apple-system, \"Segoe UI\", sans-serif;\n font-size: 14px;\n overflow: hidden;\n}\n\n.resizable {\n resize: both;\n overflow: auto;\n min-width: 320px;\n min-height: 200px;\n}\n\n.root *,\n.root *::before,\n.root *::after {\n box-sizing: inherit;\n}\n\n.content {\n flex: 1;\n min-height: 0;\n overflow: auto;\n display: flex;\n flex-direction: column;\n background: var(--mdw-content-bg);\n}\n\n.content > div {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.content :global(.ProseMirror) {\n flex: 1;\n padding: 12px 16px;\n outline: none;\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n\n.content :global(.ProseMirror p) {\n margin: 0 0 0.6em;\n}\n\n.content :global(.ProseMirror pre) {\n background: var(--mdw-muted);\n border: 1px solid var(--mdw-border);\n border-radius: 4px;\n padding: 8px 12px;\n font-family: ui-monospace, Consolas, monospace;\n font-size: 13px;\n overflow-x: auto;\n}\n\n.content :global(.hljs-keyword),\n.content :global(.hljs-selector-tag),\n.content :global(.hljs-literal) {\n color: #a626a4;\n}\n\n.content :global(.hljs-string),\n.content :global(.hljs-attr) {\n color: #50a14f;\n}\n\n.content :global(.hljs-comment),\n.content :global(.hljs-quote) {\n color: #a0a1a7;\n font-style: italic;\n}\n\n.content :global(.hljs-number),\n.content :global(.hljs-built_in) {\n color: #986801;\n}\n\n.content :global(.hljs-title),\n.content :global(.hljs-title.function_),\n.content :global(.hljs-title.class_) {\n color: #4078f2;\n}\n\n.content :global(.ProseMirror table) {\n border-collapse: collapse;\n margin: 0.6em 0;\n}\n\n.content :global(.ProseMirror th),\n.content :global(.ProseMirror td) {\n border: 1px solid var(--mdw-border);\n padding: 4px 8px;\n min-width: 3em;\n}\n\n.content :global(.ProseMirror th) {\n background: var(--mdw-muted);\n}\n\n.content :global(.ProseMirror hr) {\n border: none;\n border-top: 2px solid var(--mdw-border);\n margin: 1em 0;\n}\n\n.content :global(.ProseMirror img) {\n max-width: 100%;\n}\n\n.content :global(.ProseMirror blockquote) {\n border-left: 3px solid var(--mdw-border);\n margin: 0.6em 0;\n padding-left: 12px;\n color: #57606a;\n}\n\n.content :global(.ProseMirror ul[data-type=\"taskList\"]) {\n list-style: none;\n padding-left: 0.25em;\n}\n\n.content :global(.ProseMirror ul[data-type=\"taskList\"] li) {\n display: flex;\n gap: 0.5em;\n}\n\n.content :global(.ProseMirror ul[data-type=\"taskList\"] li > div) {\n flex: 1;\n}\n\n.content :global(.ProseMirror div[data-html-block]) {\n border: 1px dashed var(--mdw-border);\n border-radius: 4px;\n padding: 6px 10px;\n margin: 0.6em 0;\n}\n\n.source {\n flex: 1;\n width: 100%;\n border: none;\n resize: none;\n outline: none;\n padding: 12px 16px;\n font-family: ui-monospace, Consolas, monospace;\n font-size: 13px;\n line-height: 1.5;\n color: inherit;\n background: transparent;\n}\n\n.toolbar {\n position: relative;\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n min-height: 36px;\n padding: 2px 3px;\n gap: 2px;\n background: linear-gradient(\n to bottom,\n var(--mdw-toolbar-gradient-from) 0%,\n var(--mdw-toolbar-gradient-via) 45%,\n var(--mdw-toolbar-gradient-to) 100%\n );\n color: var(--mdw-toolbar-fg);\n font-family: var(--mdw-toolbar-font-family);\n border-bottom: 1px solid #999;\n box-shadow:\n inset 0 1px 0 #fff,\n 0 1px 2px rgba(0, 0, 0, 0.15);\n overflow-x: auto;\n overflow-y: visible;\n}\n\n.readOnlyNotice {\n padding: 0 8px;\n font-size: 13px;\n font-style: italic;\n color: var(--mdw-toolbar-fg);\n font-family: var(--mdw-toolbar-font-family);\n}\n\n.toolbar > .button,\n.toolbar > .separator {\n flex-shrink: 0;\n}\n\n.separator {\n width: 1px;\n height: 25px;\n margin: 0 3px;\n background: #aaa;\n box-shadow: 1px 0 0 #fff;\n}\n\n.spacer {\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 29px;\n height: 29px;\n padding: 0;\n border: 1px solid transparent;\n border-radius: 2px;\n background: transparent;\n color: var(--mdw-toolbar-fg);\n font-family: var(--mdw-toolbar-font-family);\n font-size: 15px;\n cursor: pointer;\n}\n\n.button svg {\n width: 17px;\n height: 17px;\n stroke: currentColor;\n fill: none;\n stroke-width: 1.8;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n\n.button:hover:not(:disabled) {\n background: linear-gradient(to bottom, #ffffff, #d8d8d8);\n border-color: #999;\n box-shadow:\n inset 0 1px 0 #fff,\n 0 1px 1px rgba(0, 0, 0, 0.15);\n}\n\n.button:active:not(:disabled),\n.button[aria-pressed=\"true\"] {\n background: #c8c8c8;\n border-color: #999;\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.25);\n}\n\n.button:focus-visible {\n outline: 2px solid var(--mdw-accent);\n outline-offset: 1px;\n}\n\n.button:disabled {\n opacity: 0.4;\n cursor: default;\n}\n\n.textButton {\n width: auto;\n padding: 0 10px;\n font-size: 13px;\n}\n\n.boldGlyph {\n font-weight: bold;\n font-size: 17px;\n}\n\n.italicGlyph {\n font-family: Georgia, serif;\n font-style: italic;\n font-weight: bold;\n font-size: 17px;\n}\n\n.strikeGlyph {\n font-size: 16px;\n text-decoration: line-through;\n}\n\n.htmlIcon {\n font-family: ui-monospace, monospace;\n font-weight: bold;\n font-size: 11px;\n}\n\n.headingSelect {\n flex-shrink: 1;\n flex-basis: 118px;\n min-width: 30px;\n width: 118px;\n height: 29px;\n padding: 0 25px 0 9px;\n border: 1px solid #999;\n border-radius: 2px;\n background-color: #e9e9e9;\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23222' stroke-width='1.5'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 8px center;\n color: var(--mdw-toolbar-fg);\n font-family: var(--mdw-toolbar-font-family);\n font-size: 13px;\n cursor: pointer;\n box-shadow: inset 0 1px 0 #fff;\n appearance: none;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.headingSelect:disabled {\n opacity: 0.4;\n cursor: default;\n}\n\n.dialog {\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: 260px;\n max-width: calc(100vw - 24px);\n padding: 10px 12px;\n border: 1px solid var(--mdw-border);\n border-radius: 6px;\n background: var(--mdw-bg);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\n box-sizing: border-box;\n}\n\n.dialogField {\n display: flex;\n flex-direction: column;\n gap: 2px;\n font-size: 12px;\n}\n\n.dialogField input,\n.dialogField textarea,\n.dialogField select {\n width: 100%;\n border: 1px solid var(--mdw-border);\n border-radius: 4px;\n padding: 4px 6px;\n font: inherit;\n font-size: 13px;\n}\n\n.dialogField textarea {\n resize: vertical;\n font-family: ui-monospace, Consolas, monospace;\n}\n\n.dialogActions {\n display: flex;\n gap: 6px;\n justify-content: flex-end;\n flex-wrap: nowrap;\n}\n\n.dialogActions button {\n flex: 0 0 auto;\n white-space: nowrap;\n}\n\n.tablePicker {\n align-items: center;\n min-width: 0;\n}\n\n.tablePickerLabel {\n font-size: 12px;\n text-align: center;\n min-height: 1.2em;\n}\n\n.tablePickerGrid {\n display: grid;\n gap: 2px;\n padding: 2px;\n}\n\n.tablePickerGrid:focus-visible {\n outline: 2px solid var(--mdw-accent);\n outline-offset: 2px;\n}\n\n.tablePickerCell {\n width: 16px;\n height: 16px;\n border: 1px solid #999;\n border-radius: 2px;\n background: var(--mdw-bg);\n cursor: pointer;\n}\n\n.tablePickerCell[data-selected=\"true\"] {\n background: #dbe4f8;\n border-color: var(--mdw-accent);\n}\n\n.menu {\n display: flex;\n flex-direction: column;\n min-width: 190px;\n padding: 4px;\n border: 1px solid var(--mdw-border);\n border-radius: 6px;\n background: var(--mdw-bg);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\n}\n\n.menuItem {\n text-align: left;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: inherit;\n font: inherit;\n font-size: 13px;\n padding: 6px 8px;\n cursor: pointer;\n}\n\n.menuItem:hover,\n.menuItem:focus-visible {\n background: #e4e7eb;\n outline: none;\n}\n\n.menuSeparator {\n height: 1px;\n margin: 4px 2px;\n background: var(--mdw-border);\n border: none;\n}\n\n.dangerLink {\n align-self: flex-start;\n border: none;\n background: transparent;\n color: #b42318;\n font: inherit;\n font-size: 12px;\n text-decoration: underline;\n cursor: pointer;\n padding: 0;\n}\n\n.dangerLink:hover,\n.dangerLink:focus-visible {\n color: #8c1c11;\n outline: none;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,24 @@
1
+ import * as react from 'react';
2
+
3
+ interface MarkdownEditorProps {
4
+ /** Contenido Markdown (GFM) inicial. Vacío por defecto. */
5
+ initialContent?: string;
6
+ /** Notificado con el Markdown actualizado tras cada modificación. */
7
+ onChange?: (markdown: string) => void;
8
+ /** Ancho del componente. Default: 700 (px). */
9
+ width?: number | string;
10
+ /** Alto del componente. Default: 500 (px). */
11
+ height?: number | string;
12
+ /** Sanitiza el HTML embebido antes de renderizarlo. Default: true. */
13
+ sanitizeEmbeddedHtml?: boolean;
14
+ /** Clase CSS adicional para el contenedor raíz. */
15
+ className?: string;
16
+ /** Arranca en modo de solo lectura (sin edición, toolbar reducida). Default: false. */
17
+ onlyView?: boolean;
18
+ /** Permite redimensionar el componente arrastrando su esquina inferior derecha. Default: true. */
19
+ resizable?: boolean;
20
+ }
21
+
22
+ declare function MarkdownEditor({ initialContent, onChange, width, height, sanitizeEmbeddedHtml, className, onlyView, resizable, }: MarkdownEditorProps): react.JSX.Element;
23
+
24
+ export { MarkdownEditor, type MarkdownEditorProps };
@@ -0,0 +1,24 @@
1
+ import * as react from 'react';
2
+
3
+ interface MarkdownEditorProps {
4
+ /** Contenido Markdown (GFM) inicial. Vacío por defecto. */
5
+ initialContent?: string;
6
+ /** Notificado con el Markdown actualizado tras cada modificación. */
7
+ onChange?: (markdown: string) => void;
8
+ /** Ancho del componente. Default: 700 (px). */
9
+ width?: number | string;
10
+ /** Alto del componente. Default: 500 (px). */
11
+ height?: number | string;
12
+ /** Sanitiza el HTML embebido antes de renderizarlo. Default: true. */
13
+ sanitizeEmbeddedHtml?: boolean;
14
+ /** Clase CSS adicional para el contenedor raíz. */
15
+ className?: string;
16
+ /** Arranca en modo de solo lectura (sin edición, toolbar reducida). Default: false. */
17
+ onlyView?: boolean;
18
+ /** Permite redimensionar el componente arrastrando su esquina inferior derecha. Default: true. */
19
+ resizable?: boolean;
20
+ }
21
+
22
+ declare function MarkdownEditor({ initialContent, onChange, width, height, sanitizeEmbeddedHtml, className, onlyView, resizable, }: MarkdownEditorProps): react.JSX.Element;
23
+
24
+ export { MarkdownEditor, type MarkdownEditorProps };