@tnd028/strapi-plugin-tiptap-editor 0.0.1

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 (126) hide show
  1. package/README.md +3 -0
  2. package/dist/_chunks/Alignment-B0f2-LO0.js +135 -0
  3. package/dist/_chunks/Alignment-qMOzO-n2.mjs +133 -0
  4. package/dist/_chunks/Blockquote-9wBGDz3L.mjs +34 -0
  5. package/dist/_chunks/Blockquote-DeGUfK27.js +36 -0
  6. package/dist/_chunks/Bold-C-0g6Ayd.mjs +46 -0
  7. package/dist/_chunks/Bold-ClnPsPHt.js +48 -0
  8. package/dist/_chunks/ColorAndHighlight-BMmtoSpj.js +217 -0
  9. package/dist/_chunks/ColorAndHighlight-t1Ui5tcL.mjs +215 -0
  10. package/dist/_chunks/Emoji-Bm1_vSh5.mjs +263 -0
  11. package/dist/_chunks/Emoji-C-LQZ4Z3.js +265 -0
  12. package/dist/_chunks/Heading-BDJqd1Qw.js +125 -0
  13. package/dist/_chunks/Heading-BycRob5M.mjs +123 -0
  14. package/dist/_chunks/HorizontalRule-CJlDmdma.js +34 -0
  15. package/dist/_chunks/HorizontalRule-CzQCeC3b.mjs +32 -0
  16. package/dist/_chunks/Iframe-DCBWSb0v.mjs +165 -0
  17. package/dist/_chunks/Iframe-Dyn_2cMB.js +167 -0
  18. package/dist/_chunks/ImagePlaceholder-C14kojd5.js +71 -0
  19. package/dist/_chunks/ImagePlaceholder-DtrSuhf_.mjs +69 -0
  20. package/dist/_chunks/Italic-BfpKX0KX.mjs +34 -0
  21. package/dist/_chunks/Italic-DdhVL78v.js +36 -0
  22. package/dist/_chunks/Link-BuYDqSqo.js +61 -0
  23. package/dist/_chunks/Link-DUV5Ybep.mjs +59 -0
  24. package/dist/_chunks/Lists-BKopoFR6.js +107 -0
  25. package/dist/_chunks/Lists-DsKxj3MD.mjs +105 -0
  26. package/dist/_chunks/Redo-1mEX1yOd.js +35 -0
  27. package/dist/_chunks/Redo-Ca3VQxSe.mjs +33 -0
  28. package/dist/_chunks/SearchAndReplace-DmU5DlWv.mjs +347 -0
  29. package/dist/_chunks/SearchAndReplace-DzNdbTWJ.js +349 -0
  30. package/dist/_chunks/Strikethrough-BygxCHak.mjs +121 -0
  31. package/dist/_chunks/Strikethrough-DQfR4OFk.js +123 -0
  32. package/dist/_chunks/Table-BhbZ2Blv.mjs +123 -0
  33. package/dist/_chunks/Table-DLaqBAbz.js +125 -0
  34. package/dist/_chunks/TiptapEditorInput-BDE09h5-.mjs +6802 -0
  35. package/dist/_chunks/TiptapEditorInput-vfLsCt1p.js +6854 -0
  36. package/dist/_chunks/Undo-BuT4OkoE.js +32 -0
  37. package/dist/_chunks/Undo-PL5n4axf.mjs +30 -0
  38. package/dist/_chunks/en-B4KWt_jN.js +4 -0
  39. package/dist/_chunks/en-Byx4XI2L.mjs +4 -0
  40. package/dist/_chunks/index-ku90UbIF.mjs +1397 -0
  41. package/dist/_chunks/index-wYDv8vsJ.js +1398 -0
  42. package/dist/admin/index.js +6 -0
  43. package/dist/admin/index.mjs +6 -0
  44. package/dist/admin/src/components/ContentEditorInput.d.ts +10 -0
  45. package/dist/admin/src/components/GlobalStyling.d.ts +4 -0
  46. package/dist/admin/src/components/Initializer.d.ts +5 -0
  47. package/dist/admin/src/components/MediaLibraryModal.d.ts +27 -0
  48. package/dist/admin/src/components/PluginIcon.d.ts +2 -0
  49. package/dist/admin/src/components/TextEditorInput.d.ts +10 -0
  50. package/dist/admin/src/components/TiptapEditorInput.d.ts +6 -0
  51. package/dist/admin/src/components/editor/BaseEditor.d.ts +22 -0
  52. package/dist/admin/src/components/editor/ContentEditor.d.ts +10 -0
  53. package/dist/admin/src/components/editor/TextEditor.d.ts +10 -0
  54. package/dist/admin/src/components/editor/extensions/Heading.d.ts +2 -0
  55. package/dist/admin/src/components/editor/extensions/Iframe.d.ts +24 -0
  56. package/dist/admin/src/components/editor/extensions/Image.d.ts +3 -0
  57. package/dist/admin/src/components/editor/extensions/ImagePlaceholder.d.ts +15 -0
  58. package/dist/admin/src/components/editor/extensions/custom-component/CustomComponentEditPopover.d.ts +1 -0
  59. package/dist/admin/src/components/editor/extensions/custom-component/CustomComponentExtension.d.ts +3 -0
  60. package/dist/admin/src/components/editor/extensions/custom-component/CustomComponentInsertPopover.d.ts +13 -0
  61. package/dist/admin/src/components/editor/extensions/custom-component/CustomComponentRenderer.d.ts +1 -0
  62. package/dist/admin/src/components/editor/extensions/custom-component/Store.d.ts +20 -0
  63. package/dist/admin/src/components/editor/extensions/custom-component/types.d.ts +33 -0
  64. package/dist/admin/src/components/editor/extensions/fileHandler.d.ts +12 -0
  65. package/dist/admin/src/components/editor/extensions/link.d.ts +1 -0
  66. package/dist/admin/src/components/editor/extensions/noNewLine.d.ts +2 -0
  67. package/dist/admin/src/components/editor/extensions/resetMarksOnEnter.d.ts +2 -0
  68. package/dist/admin/src/components/editor/extensions/searchAndReplace.d.ts +53 -0
  69. package/dist/admin/src/components/editor/partials/EditorProvider.d.ts +13 -0
  70. package/dist/admin/src/components/editor/partials/LinkBubbleMenu.d.ts +5 -0
  71. package/dist/admin/src/components/editor/partials/LinkEditBlock.d.ts +9 -0
  72. package/dist/admin/src/components/editor/partials/LinkPopoverBlock.d.ts +8 -0
  73. package/dist/admin/src/components/editor/partials/ToolbarButton.d.ts +11 -0
  74. package/dist/admin/src/components/editor/partials/ToolbarButtons.d.ts +25 -0
  75. package/dist/admin/src/components/editor/toolbars/Alignment.d.ts +1 -0
  76. package/dist/admin/src/components/editor/toolbars/Blockquote.d.ts +4 -0
  77. package/dist/admin/src/components/editor/toolbars/Bold.d.ts +4 -0
  78. package/dist/admin/src/components/editor/toolbars/BulletList.d.ts +4 -0
  79. package/dist/admin/src/components/editor/toolbars/ColorAndHighlight.d.ts +5 -0
  80. package/dist/admin/src/components/editor/toolbars/Emoji.d.ts +4 -0
  81. package/dist/admin/src/components/editor/toolbars/Heading.d.ts +1 -0
  82. package/dist/admin/src/components/editor/toolbars/HorizontalRule.d.ts +4 -0
  83. package/dist/admin/src/components/editor/toolbars/Iframe.d.ts +3 -0
  84. package/dist/admin/src/components/editor/toolbars/ImagePlaceholder.d.ts +4 -0
  85. package/dist/admin/src/components/editor/toolbars/Italic.d.ts +4 -0
  86. package/dist/admin/src/components/editor/toolbars/Link.d.ts +4 -0
  87. package/dist/admin/src/components/editor/toolbars/Lists.d.ts +1 -0
  88. package/dist/admin/src/components/editor/toolbars/OrderedList.d.ts +4 -0
  89. package/dist/admin/src/components/editor/toolbars/Redo.d.ts +4 -0
  90. package/dist/admin/src/components/editor/toolbars/SearchAndReplace.d.ts +1 -0
  91. package/dist/admin/src/components/editor/toolbars/Strikethrough.d.ts +4 -0
  92. package/dist/admin/src/components/editor/toolbars/Table.d.ts +1 -0
  93. package/dist/admin/src/components/editor/toolbars/Undo.d.ts +4 -0
  94. package/dist/admin/src/components/editor/useEditor.d.ts +18 -0
  95. package/dist/admin/src/components/editor/utils.d.ts +28 -0
  96. package/dist/admin/src/components/ui/button.d.ts +9 -0
  97. package/dist/admin/src/components/ui/dropdown-menu.d.ts +27 -0
  98. package/dist/admin/src/components/ui/input.d.ts +6 -0
  99. package/dist/admin/src/components/ui/label.d.ts +7 -0
  100. package/dist/admin/src/components/ui/separator.d.ts +7 -0
  101. package/dist/admin/src/components/ui/toggle.d.ts +17 -0
  102. package/dist/admin/src/components/ui/tooltip.d.ts +7 -0
  103. package/dist/admin/src/config/index.d.ts +2 -0
  104. package/dist/admin/src/config/pluginConfig.d.ts +20 -0
  105. package/dist/admin/src/config/types.d.ts +109 -0
  106. package/dist/admin/src/errorSlicer.d.ts +4 -0
  107. package/dist/admin/src/exports.d.ts +4 -0
  108. package/dist/admin/src/hooks/useDebounceCallback.d.ts +9 -0
  109. package/dist/admin/src/index.d.ts +25 -0
  110. package/dist/admin/src/pluginId.d.ts +5 -0
  111. package/dist/admin/src/theme/additional.d.ts +1 -0
  112. package/dist/admin/src/theme/colorScheme.d.ts +2 -0
  113. package/dist/admin/src/theme/colors.d.ts +1 -0
  114. package/dist/admin/src/theme/common.d.ts +1 -0
  115. package/dist/admin/src/theme/index.d.ts +2 -0
  116. package/dist/admin/src/types.d.ts +15 -0
  117. package/dist/admin/src/utils/dom.d.ts +7 -0
  118. package/dist/admin/src/utils/getTranslation.d.ts +7 -0
  119. package/dist/admin/src/utils/isImageResponsive.d.ts +8 -0
  120. package/dist/admin/src/utils/localStorage.d.ts +21 -0
  121. package/dist/admin/src/utils/prefixWithBackendUrl.d.ts +6 -0
  122. package/dist/admin/src/utils/utils.d.ts +7 -0
  123. package/dist/server/index.js +15 -0
  124. package/dist/server/index.mjs +16 -0
  125. package/dist/server/src/index.d.ts +7 -0
  126. package/package.json +116 -0
@@ -0,0 +1,123 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { Table2, Table, ArrowUp, ArrowDown, ArrowLeft, ArrowRight, Rows3, Columns3, Trash2 } from "lucide-react";
3
+ import styled from "styled-components";
4
+ import { u as useEditorContext, D as DropdownMenu, a as DropdownMenuTrigger, T as ToolbarButton, b as DropdownMenuContent, c as DropdownMenuGroup, d as DropdownMenuItem, g as TooltipContent } from "./TiptapEditorInput-BDE09h5-.mjs";
5
+ const IconWrapper = styled.span`
6
+ display: flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ width: 20px;
10
+ height: 20px;
11
+ `;
12
+ const DropdownMenuGroupStyled = styled(DropdownMenuGroup)`
13
+ width: 200px;
14
+ `;
15
+ const DropdownMenuItemStyled = styled(DropdownMenuItem)`
16
+ display: flex;
17
+ align-items: center;
18
+ gap: 8px;
19
+ padding: 6px 10px;
20
+ font-size: 14px;
21
+
22
+ &:hover {
23
+ background-color: ${(props) => props.theme.colors.neutral100};
24
+ }
25
+
26
+ &:focus {
27
+ background-color: ${(props) => props.theme.colors.neutral100};
28
+ }
29
+ `;
30
+ styled(TooltipContent)`
31
+ background-color: ${(props) => props.theme.colors.neutral800};
32
+ color: ${(props) => props.theme.colors.neutral0};
33
+ padding: 6px 8px;
34
+ border-radius: 4px;
35
+ font-size: 12px;
36
+ `;
37
+ const OptionIcon = styled.div`
38
+ width: 16px;
39
+ height: 16px;
40
+ display: flex;
41
+ align-items: center;
42
+ justify-content: center;
43
+ `;
44
+ const TableToolbar = () => {
45
+ const { editor } = useEditorContext();
46
+ if (!editor) return null;
47
+ const handleAction = (action) => {
48
+ const chain = editor.chain().focus();
49
+ switch (action) {
50
+ case "insert":
51
+ chain.insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run();
52
+ break;
53
+ case "add-row-before":
54
+ chain.addRowBefore().run();
55
+ break;
56
+ case "add-row-after":
57
+ chain.addRowAfter().run();
58
+ break;
59
+ case "add-col-before":
60
+ chain.addColumnBefore().run();
61
+ break;
62
+ case "add-col-after":
63
+ chain.addColumnAfter().run();
64
+ break;
65
+ case "delete-row":
66
+ chain.deleteRow().run();
67
+ break;
68
+ case "delete-col":
69
+ chain.deleteColumn().run();
70
+ break;
71
+ case "delete-table":
72
+ chain.deleteTable().run();
73
+ break;
74
+ }
75
+ };
76
+ const tableActions = [
77
+ { label: "Insert Table", value: "insert", icon: /* @__PURE__ */ jsx(Table, { width: 16, height: 16 }) },
78
+ { label: "Add Row Before", value: "add-row-before", icon: /* @__PURE__ */ jsx(ArrowUp, { width: 16, height: 16 }) },
79
+ { label: "Add Row After", value: "add-row-after", icon: /* @__PURE__ */ jsx(ArrowDown, { width: 16, height: 16 }) },
80
+ { label: "Add Column Before", value: "add-col-before", icon: /* @__PURE__ */ jsx(ArrowLeft, { width: 16, height: 16 }) },
81
+ { label: "Add Column After", value: "add-col-after", icon: /* @__PURE__ */ jsx(ArrowRight, { width: 16, height: 16 }) },
82
+ { label: "Delete Row", value: "delete-row", icon: /* @__PURE__ */ jsx(Rows3, { width: 16, height: 16 }) },
83
+ { label: "Delete Column", value: "delete-col", icon: /* @__PURE__ */ jsx(Columns3, { width: 16, height: 16 }) },
84
+ { label: "Delete Table", value: "delete-table", icon: /* @__PURE__ */ jsx(Trash2, { width: 16, height: 16 }) }
85
+ ];
86
+ const isTableActive = editor.isActive("table");
87
+ return /* @__PURE__ */ jsxs(DropdownMenu, { children: [
88
+ /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
89
+ ToolbarButton,
90
+ {
91
+ tooltip: "Table Actions",
92
+ "aria-label": "Table Actions",
93
+ hasArrow: true,
94
+ children: /* @__PURE__ */ jsx(IconWrapper, { children: /* @__PURE__ */ jsx(Table2, {}) })
95
+ }
96
+ ) }),
97
+ /* @__PURE__ */ jsx(
98
+ DropdownMenuContent,
99
+ {
100
+ align: "start",
101
+ loop: true,
102
+ onCloseAutoFocus: (e) => {
103
+ e.preventDefault();
104
+ },
105
+ children: /* @__PURE__ */ jsx(DropdownMenuGroupStyled, { children: tableActions.map((action, idx) => /* @__PURE__ */ jsxs(
106
+ DropdownMenuItemStyled,
107
+ {
108
+ onSelect: () => handleAction(action.value),
109
+ disabled: action.value !== "insert" && !isTableActive,
110
+ children: [
111
+ /* @__PURE__ */ jsx(OptionIcon, { children: action.icon }),
112
+ action.label
113
+ ]
114
+ },
115
+ idx
116
+ )) })
117
+ }
118
+ )
119
+ ] });
120
+ };
121
+ export {
122
+ TableToolbar
123
+ };
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const lucideReact = require("lucide-react");
5
+ const styled = require("styled-components");
6
+ const TiptapEditorInput = require("./TiptapEditorInput-vfLsCt1p.js");
7
+ const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
8
+ const styled__default = /* @__PURE__ */ _interopDefault(styled);
9
+ const IconWrapper = styled__default.default.span`
10
+ display: flex;
11
+ align-items: center;
12
+ justify-content: center;
13
+ width: 20px;
14
+ height: 20px;
15
+ `;
16
+ const DropdownMenuGroupStyled = styled__default.default(TiptapEditorInput.DropdownMenuGroup)`
17
+ width: 200px;
18
+ `;
19
+ const DropdownMenuItemStyled = styled__default.default(TiptapEditorInput.DropdownMenuItem)`
20
+ display: flex;
21
+ align-items: center;
22
+ gap: 8px;
23
+ padding: 6px 10px;
24
+ font-size: 14px;
25
+
26
+ &:hover {
27
+ background-color: ${(props) => props.theme.colors.neutral100};
28
+ }
29
+
30
+ &:focus {
31
+ background-color: ${(props) => props.theme.colors.neutral100};
32
+ }
33
+ `;
34
+ styled__default.default(TiptapEditorInput.TooltipContent)`
35
+ background-color: ${(props) => props.theme.colors.neutral800};
36
+ color: ${(props) => props.theme.colors.neutral0};
37
+ padding: 6px 8px;
38
+ border-radius: 4px;
39
+ font-size: 12px;
40
+ `;
41
+ const OptionIcon = styled__default.default.div`
42
+ width: 16px;
43
+ height: 16px;
44
+ display: flex;
45
+ align-items: center;
46
+ justify-content: center;
47
+ `;
48
+ const TableToolbar = () => {
49
+ const { editor } = TiptapEditorInput.useEditorContext();
50
+ if (!editor) return null;
51
+ const handleAction = (action) => {
52
+ const chain = editor.chain().focus();
53
+ switch (action) {
54
+ case "insert":
55
+ chain.insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run();
56
+ break;
57
+ case "add-row-before":
58
+ chain.addRowBefore().run();
59
+ break;
60
+ case "add-row-after":
61
+ chain.addRowAfter().run();
62
+ break;
63
+ case "add-col-before":
64
+ chain.addColumnBefore().run();
65
+ break;
66
+ case "add-col-after":
67
+ chain.addColumnAfter().run();
68
+ break;
69
+ case "delete-row":
70
+ chain.deleteRow().run();
71
+ break;
72
+ case "delete-col":
73
+ chain.deleteColumn().run();
74
+ break;
75
+ case "delete-table":
76
+ chain.deleteTable().run();
77
+ break;
78
+ }
79
+ };
80
+ const tableActions = [
81
+ { label: "Insert Table", value: "insert", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Table, { width: 16, height: 16 }) },
82
+ { label: "Add Row Before", value: "add-row-before", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowUp, { width: 16, height: 16 }) },
83
+ { label: "Add Row After", value: "add-row-after", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowDown, { width: 16, height: 16 }) },
84
+ { label: "Add Column Before", value: "add-col-before", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowLeft, { width: 16, height: 16 }) },
85
+ { label: "Add Column After", value: "add-col-after", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRight, { width: 16, height: 16 }) },
86
+ { label: "Delete Row", value: "delete-row", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Rows3, { width: 16, height: 16 }) },
87
+ { label: "Delete Column", value: "delete-col", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Columns3, { width: 16, height: 16 }) },
88
+ { label: "Delete Table", value: "delete-table", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2, { width: 16, height: 16 }) }
89
+ ];
90
+ const isTableActive = editor.isActive("table");
91
+ return /* @__PURE__ */ jsxRuntime.jsxs(TiptapEditorInput.DropdownMenu, { children: [
92
+ /* @__PURE__ */ jsxRuntime.jsx(TiptapEditorInput.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
93
+ TiptapEditorInput.ToolbarButton,
94
+ {
95
+ tooltip: "Table Actions",
96
+ "aria-label": "Table Actions",
97
+ hasArrow: true,
98
+ children: /* @__PURE__ */ jsxRuntime.jsx(IconWrapper, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Table2, {}) })
99
+ }
100
+ ) }),
101
+ /* @__PURE__ */ jsxRuntime.jsx(
102
+ TiptapEditorInput.DropdownMenuContent,
103
+ {
104
+ align: "start",
105
+ loop: true,
106
+ onCloseAutoFocus: (e) => {
107
+ e.preventDefault();
108
+ },
109
+ children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuGroupStyled, { children: tableActions.map((action, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
110
+ DropdownMenuItemStyled,
111
+ {
112
+ onSelect: () => handleAction(action.value),
113
+ disabled: action.value !== "insert" && !isTableActive,
114
+ children: [
115
+ /* @__PURE__ */ jsxRuntime.jsx(OptionIcon, { children: action.icon }),
116
+ action.label
117
+ ]
118
+ },
119
+ idx
120
+ )) })
121
+ }
122
+ )
123
+ ] });
124
+ };
125
+ exports.TableToolbar = TableToolbar;