gw-admin 0.2.0 → 0.2.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.
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project are documented in this file.
|
|
4
4
|
|
|
5
|
+
## 0.2.1 - 2026-08-27
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Migrated the rich-text editor integration to the `gw-rich-text-editor` 0.2
|
|
10
|
+
command and file-attachment APIs.
|
|
11
|
+
|
|
5
12
|
## 0.2.0 - 2026-08-06
|
|
6
13
|
|
|
7
14
|
### Added
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-rich-text-editor.d.ts","sourceRoot":"","sources":["../../src/rich-text/admin-rich-text-editor.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"admin-rich-text-editor.d.ts","sourceRoot":"","sources":["../../src/rich-text/admin-rich-text-editor.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAaL,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAC;AActC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,MAAM,kBAAkB,GAC1B,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,WAAW,GACX,SAAS,GACT,YAAY,GACZ,aAAa,GACb,MAAM,GACN,MAAM,GACN,MAAM,CAAC;AAEX,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IAC7E,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,SAAS,wBAAwB,EAAE,GAAG,KAAK,CAAC;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA+BF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC1E,KAAK,EACL,IAAI,EACJ,WAA4B,EAC5B,OAAe,EACf,WAAW,EACX,MAAM,EACN,KAAK,EACL,KAAK,EACL,OAAwB,EACxB,SAAS,GACV,EAAE,wBAAwB,CAAC,MAAM,CAAC,+BAmHlC"}
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useRef, useState } from "react";
|
|
4
|
-
import {
|
|
4
|
+
import { RichTextEditor, attachFiles, link, redo, toggleBold, toggleBulletList, toggleHeading, toggleItalic, toggleOrderedList, toggleUnderline, undo, } from "gw-rich-text-editor/unstyled";
|
|
5
5
|
import { useStoreController } from "react-store-input";
|
|
6
6
|
import { MdFormatBold, MdFormatItalic, MdFormatListBulleted, MdFormatListNumbered, MdFormatUnderlined, MdLink, MdPhoto, MdRedo, MdTitle, MdUndo, } from "react-icons/md";
|
|
7
|
+
const editorCommands = {
|
|
8
|
+
bold: toggleBold,
|
|
9
|
+
italic: toggleItalic,
|
|
10
|
+
underline: toggleUnderline,
|
|
11
|
+
heading: toggleHeading(2),
|
|
12
|
+
bulletList: toggleBulletList,
|
|
13
|
+
orderedList: toggleOrderedList,
|
|
14
|
+
link: link(),
|
|
15
|
+
undo,
|
|
16
|
+
redo,
|
|
17
|
+
};
|
|
7
18
|
const defaultToolbar = [
|
|
8
19
|
{ command: "attachFile", label: "파일 첨부", icon: MdPhoto },
|
|
9
20
|
{ command: "bold", label: "굵게", icon: MdFormatBold },
|
|
@@ -48,48 +59,16 @@ export function AdminRichTextEditor({ store, name, placeholder = "내용을 입
|
|
|
48
59
|
fileInputRef.current?.click();
|
|
49
60
|
return;
|
|
50
61
|
}
|
|
51
|
-
|
|
52
|
-
if (!commands) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
switch (command) {
|
|
56
|
-
case "bold":
|
|
57
|
-
commands.bold();
|
|
58
|
-
break;
|
|
59
|
-
case "italic":
|
|
60
|
-
commands.italic();
|
|
61
|
-
break;
|
|
62
|
-
case "underline":
|
|
63
|
-
commands.underline();
|
|
64
|
-
break;
|
|
65
|
-
case "heading":
|
|
66
|
-
commands.heading(2);
|
|
67
|
-
break;
|
|
68
|
-
case "bulletList":
|
|
69
|
-
commands.bulletList();
|
|
70
|
-
break;
|
|
71
|
-
case "orderedList":
|
|
72
|
-
commands.orderedList();
|
|
73
|
-
break;
|
|
74
|
-
case "link":
|
|
75
|
-
commands.link();
|
|
76
|
-
break;
|
|
77
|
-
case "undo":
|
|
78
|
-
commands.undo();
|
|
79
|
-
break;
|
|
80
|
-
case "redo":
|
|
81
|
-
commands.redo();
|
|
82
|
-
break;
|
|
83
|
-
}
|
|
62
|
+
editorRef.current?.execute(editorCommands[command]);
|
|
84
63
|
};
|
|
85
|
-
const handleFilesSelected =
|
|
64
|
+
const handleFilesSelected = (event) => {
|
|
86
65
|
const files = Array.from(event.currentTarget.files ?? []);
|
|
87
66
|
event.currentTarget.value = "";
|
|
88
67
|
if (files.length === 0 || !editorRef.current) {
|
|
89
68
|
return;
|
|
90
69
|
}
|
|
91
70
|
setUploadError("");
|
|
92
|
-
|
|
71
|
+
editorRef.current.execute(attachFiles(files));
|
|
93
72
|
};
|
|
94
73
|
const visibleToolbar = toolbar === false
|
|
95
74
|
? []
|
|
@@ -97,6 +76,9 @@ export function AdminRichTextEditor({ store, name, placeholder = "내용을 입
|
|
|
97
76
|
return (_jsxs("div", { className: className, children: [_jsxs("div", { className: "gw-admin-rich-text-editor", "aria-invalid": invalid, "aria-describedby": describedBy, children: [visibleToolbar.length > 0 && (_jsx("div", { className: "gw-admin-rich-text-editor__toolbar", role: "toolbar", "aria-label": "\uBCF8\uBB38 \uC11C\uC2DD", children: visibleToolbar.map((item) => {
|
|
98
77
|
const Icon = item.icon;
|
|
99
78
|
return (_jsx("button", { type: "button", "aria-label": item.label, title: item.label, onClick: () => runCommand(item.command), className: "gw-admin-rich-text-editor__tool", children: Icon ? _jsx(Icon, { "aria-hidden": "true" }) : _jsx("span", { children: item.label }) }, item.command));
|
|
100
|
-
}) })), _jsx(
|
|
79
|
+
}) })), _jsx(RichTextEditor, { ref: editorRef, defaultValue: typeof store.state[name] === "string" ? store.state[name] : "", placeholder: placeholder, ...(nodes ? { nodes } : {}), ...(marks ? { marks } : {}), fileAttachments: {
|
|
80
|
+
...(upload ? { upload } : {}),
|
|
81
|
+
onError: (_error, file) => setUploadError(`${file.name} 업로드에 실패했습니다.`),
|
|
82
|
+
}, onChange: dispatch, className: "gw-admin-rich-text-editor__surface" }), upload && (_jsx("input", { ref: fileInputRef, type: "file", multiple: true, className: "gw-admin-visually-hidden", tabIndex: -1, onChange: handleFilesSelected }))] }), uploadError && (_jsx("p", { role: "alert", className: "gw-admin-field-error", children: uploadError }))] }));
|
|
101
83
|
}
|
|
102
84
|
//# sourceMappingURL=admin-rich-text-editor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-rich-text-editor.js","sourceRoot":"","sources":["../../src/rich-text/admin-rich-text-editor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAoB,MAAM,OAAO,CAAC;AAE3D,OAAO,EACL,UAAU,
|
|
1
|
+
{"version":3,"file":"admin-rich-text-editor.js","sourceRoot":"","sources":["../../src/rich-text/admin-rich-text-editor.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gw-admin",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Composable administration UI for the Next.js App Router and next-headless-crud.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
},
|
|
120
120
|
"peerDependencies": {
|
|
121
121
|
"gw-react-file-input": "^0.1.0",
|
|
122
|
-
"gw-rich-text-editor": "^0.1
|
|
122
|
+
"gw-rich-text-editor": "^0.2.1",
|
|
123
123
|
"gw-store": "^0.1.1",
|
|
124
124
|
"next": ">=15.0.0",
|
|
125
125
|
"next-headless-crud": "^0.1.0",
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
"@types/react": "^19.2.1",
|
|
150
150
|
"@types/react-dom": "^19.2.1",
|
|
151
151
|
"gw-react-file-input": "^0.1.0",
|
|
152
|
-
"gw-rich-text-editor": "^0.1
|
|
152
|
+
"gw-rich-text-editor": "^0.2.1",
|
|
153
153
|
"gw-store": "^0.1.1",
|
|
154
154
|
"next": "^16.2.12",
|
|
155
155
|
"next-headless-crud": "^0.1.0",
|