@flexiui/svelte-rich-text 0.0.24 → 0.0.25

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 (35) hide show
  1. package/dist/AudioPlayerSimple.svelte +7 -0
  2. package/dist/AudioPlayerSimple.svelte.d.ts +25 -0
  3. package/dist/RichText.svelte +110 -5
  4. package/dist/extensions/Audio.d.ts +29 -0
  5. package/dist/extensions/Audio.js +123 -0
  6. package/dist/extensions/AudioPlayer.svelte +622 -0
  7. package/dist/extensions/AudioPlayer.svelte.d.ts +20 -0
  8. package/dist/extensions/AudioPlayerWrapper.svelte +123 -0
  9. package/dist/extensions/AudioPlayerWrapper.svelte.d.ts +21 -0
  10. package/dist/extensions/MediaGrid/MediaGrid.d.ts +2 -0
  11. package/dist/extensions/MediaGrid/MediaGrid.js +90 -0
  12. package/dist/extensions/MediaGrid/MediaGrid.svelte +265 -0
  13. package/dist/extensions/MediaGrid/MediaGrid.svelte.d.ts +14 -0
  14. package/dist/extensions/MediaGrid/MediaGridItem.d.ts +2 -0
  15. package/dist/extensions/MediaGrid/MediaGridItem.js +24 -0
  16. package/dist/extensions/MediaGrid/MediaGridItem.svelte +484 -0
  17. package/dist/extensions/MediaGrid/MediaGridItem.svelte.d.ts +14 -0
  18. package/dist/extensions/MediaGrid/auth-service.d.ts +1 -0
  19. package/dist/extensions/MediaGrid/auth-service.js +11 -0
  20. package/dist/extensions/Table/CustomTableCell.d.ts +19 -0
  21. package/dist/extensions/Table/CustomTableCell.js +86 -0
  22. package/dist/extensions/Table/CustomTableHeader.d.ts +1 -0
  23. package/dist/extensions/Table/CustomTableHeader.js +33 -0
  24. package/dist/extensions/Table/TableCellControls.d.ts +0 -0
  25. package/dist/extensions/Table/TableCellControls.js +0 -0
  26. package/dist/extensions/Table/TableCellNodeView.svelte +576 -0
  27. package/dist/extensions/Table/TableCellNodeView.svelte.d.ts +14 -0
  28. package/dist/extensions/Table/TableCellSelection.d.ts +12 -0
  29. package/dist/extensions/Table/TableCellSelection.js +35 -0
  30. package/dist/extensions/audioStore.d.ts +1 -0
  31. package/dist/extensions/audioStore.js +2 -0
  32. package/dist/extensions/extensions.d.ts +7 -0
  33. package/dist/extensions/extensions.js +86 -0
  34. package/dist/styles.css +182 -0
  35. package/package.json +1 -1
@@ -0,0 +1,86 @@
1
+ import StarterKit from "@tiptap/starter-kit";
2
+ import Highlight from "@tiptap/extension-highlight";
3
+ import TextAlign from "@tiptap/extension-text-align";
4
+ import Image from "@tiptap/extension-image";
5
+ import { ListKit } from "@tiptap/extension-list";
6
+ import { TextStyleKit } from "@tiptap/extension-text-style";
7
+ import { Mathematics } from "@tiptap/extension-mathematics";
8
+ import { Audio } from "./Audio";
9
+ import { NodeLineHeight } from "./NodeLineHeight";
10
+ import { EnhancedLink } from "./EnhancedLink";
11
+ import katex from "katex";
12
+ /**
13
+ * Fuente única de extensiones
14
+ */
15
+ export function createExtensions({ customExtensions = [], editable = true, } = {}) {
16
+ return [
17
+ Highlight.configure({ multicolor: true }),
18
+ TextStyleKit,
19
+ StarterKit.configure({
20
+ trailingNode: false,
21
+ link: false,
22
+ bulletList: false,
23
+ listItem: false,
24
+ orderedList: false,
25
+ listKeymap: false,
26
+ }),
27
+ EnhancedLink,
28
+ Audio.configure({
29
+ HTMLAttributes: { class: "audio-player" },
30
+ }),
31
+ Image.configure({
32
+ inline: true,
33
+ }),
34
+ ListKit,
35
+ TextAlign.configure({
36
+ types: [
37
+ "heading",
38
+ "paragraph",
39
+ "bulletList",
40
+ "taskList",
41
+ "listItem",
42
+ "blockquote",
43
+ ],
44
+ }),
45
+ Mathematics.extend({
46
+ renderHTML({ node }) {
47
+ const latex = node.attrs.latex ?? "";
48
+ return [
49
+ "span",
50
+ {
51
+ class: "math-inline",
52
+ innerHTML: katex.renderToString(latex, {
53
+ throwOnError: false,
54
+ }),
55
+ },
56
+ ];
57
+ },
58
+ }).configure({
59
+ katexOptions: {
60
+ displayMode: false,
61
+ throwOnError: false,
62
+ macros: {
63
+ "\\RR": "\\mathbb{R}",
64
+ "\\ZZ": "\\mathbb{Z}",
65
+ },
66
+ },
67
+ inlineOptions: editable
68
+ ? {
69
+ onClick: (node, pos) => {
70
+ const latex = prompt("Update LaTeX:", node.attrs.latex);
71
+ if (latex) {
72
+ this.editor
73
+ .chain()
74
+ .setNodeSelection(pos)
75
+ .updateInlineMath({ latex })
76
+ .focus()
77
+ .run();
78
+ }
79
+ },
80
+ }
81
+ : {},
82
+ }),
83
+ NodeLineHeight,
84
+ ...customExtensions,
85
+ ];
86
+ }
package/dist/styles.css CHANGED
@@ -172,6 +172,77 @@
172
172
  pointer-events: none;
173
173
  }
174
174
  }
175
+
176
+ /* Table-specific styling */
177
+ .tableWrapper table {
178
+ border-collapse: collapse;
179
+ margin: 0;
180
+ overflow: hidden;
181
+ table-layout: fixed;
182
+ width: calc(100% - 12px);
183
+ margin-left: 12px;
184
+ margin-top: 12px;
185
+ min-width: 100px;
186
+ overflow-y: hidden;
187
+ overflow-x: auto;
188
+
189
+ td,
190
+ th {
191
+ border: 1px solid #6e6e6e;
192
+ box-sizing: border-box;
193
+ min-width: 1em;
194
+ padding: 6px 8px;
195
+ position: relative;
196
+ vertical-align: top;
197
+
198
+ > * {
199
+ margin-bottom: 0;
200
+ }
201
+ }
202
+
203
+ th {
204
+ background-color: #f0f0f030;
205
+ font-weight: bold;
206
+ text-align: left;
207
+ }
208
+
209
+ .selectedCell:after {
210
+ background: #e0e0e024;
211
+ content: '';
212
+ left: 0;
213
+ right: 0;
214
+ top: 0;
215
+ bottom: 0;
216
+ pointer-events: none;
217
+ position: absolute;
218
+ z-index: 2;
219
+ }
220
+
221
+ .column-resize-handle {
222
+ background-color: var(--purple);
223
+ bottom: -2px;
224
+ pointer-events: none;
225
+ position: absolute;
226
+ right: -2px;
227
+ top: 0;
228
+ width: 4px;
229
+ }
230
+ }
231
+
232
+ .fl-table-cell-content > div > * {
233
+ margin-bottom: 0;
234
+ }
235
+
236
+ .tableWrapper {
237
+ overflow-x: auto;
238
+ padding: 0 14px 14px;
239
+ margin: 24px -14px 0px;
240
+ }
241
+
242
+ &.resize-cursor {
243
+ cursor: ew-resize;
244
+ cursor: col-resize;
245
+ }
175
246
  }
176
247
 
177
248
  .fl-rich-text-content {
@@ -452,4 +523,115 @@
452
523
  .fl-range-element-value {
453
524
  padding: 0 6px;
454
525
  font-size: 14px;
526
+ }
527
+
528
+ .ProseMirror-selectednode {
529
+ outline: 2px solid #535bf2;
530
+ }
531
+
532
+
533
+ .media-grid-view-content {
534
+ --fl-grid-cols: 2;
535
+ --fl-grid-gap: 1rem;
536
+ --fl-grid-item-radius: 16px;
537
+
538
+ & > div {
539
+ display: grid;
540
+ grid-template-columns: repeat(var(--fl-grid-cols), 1fr);
541
+ gap: var(--fl-grid-gap);
542
+ }
543
+ }
544
+
545
+ /* .fl-grid {
546
+ --fl-grid-cols: 2;
547
+ --fl-grid-gap: 1rem;
548
+ display: grid;
549
+ grid-template-columns: repeat(var(--fl-grid-cols), 1fr);
550
+ gap: .75rem;
551
+ } */
552
+
553
+ .fl-media-grid-item {
554
+ position: relative;
555
+ display: flex;
556
+ align-items: center;
557
+ justify-content: center;
558
+ border-radius: 16px;
559
+
560
+ & .fl-media-grid-item-content {
561
+ aspect-ratio: 16 / 9;
562
+ }
563
+
564
+ & img {
565
+ object-fit: cover;
566
+ border-radius: var(--fl-grid-item-radius);
567
+ width: 100%;
568
+ }
569
+
570
+ & .fl-grid-indicator {
571
+ position: absolute;
572
+ left: 10px;
573
+ top: 10px;
574
+ width: 24px;
575
+ height: 24px;
576
+ display: flex;
577
+ align-items: center;
578
+ justify-content: center;
579
+ background: #535bf2;
580
+ border-radius: 100%;
581
+ color: #fff;
582
+ font-weight: 600;
583
+ font-size: 14px;
584
+ }
585
+ }
586
+
587
+ .media-grid-item-view-content {
588
+ aspect-ratio: 16 / 9;
589
+ /* outline: 1px dashed #eeeeee3d; */
590
+ width: 100%;
591
+
592
+ a {
593
+ width: 100%;
594
+ }
595
+ }
596
+
597
+ .media-grid-item-view-content > div {
598
+ display: flex;
599
+ height: 100%;
600
+ width: 100%;
601
+ align-items: center;
602
+ justify-content: center;
603
+
604
+ a {
605
+ display: flex;
606
+ }
607
+ }
608
+
609
+
610
+ .node-MediaGridComponent {
611
+ margin: 1.75rem 0;
612
+ }
613
+
614
+ .fl-media-grid {
615
+ display: grid;
616
+ grid-template-columns: repeat(var(--fl-grid-cols), 1fr);
617
+ gap: var(--fl-grid-gap);
618
+ margin: 2rem 0;
619
+
620
+ & .fl-grid-item {
621
+ position: relative;
622
+ display: flex;
623
+ align-items: center;
624
+ justify-content: center;
625
+ border-radius: var(--fl-grid-item-radius);
626
+
627
+ & .fl-grid-item-content {
628
+ aspect-ratio: 16 / 9;
629
+ }
630
+
631
+ & img {
632
+ object-fit: cover;
633
+ border-radius: var(--fl-grid-item-radius);
634
+ width: 100%;
635
+ }
636
+ }
455
637
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flexiui/svelte-rich-text",
3
- "version": "0.0.24",
3
+ "version": "0.0.25",
4
4
  "description": "A lightweight and flexible rich text editor component for Svelte",
5
5
  "keywords": [
6
6
  "svelte",