@storkspear/post-editor-react 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/LICENSE +21 -0
- package/README.md +12 -0
- package/dist/ColorPicker.d.ts +11 -0
- package/dist/ColorPicker.d.ts.map +1 -0
- package/dist/ColorPicker.js +30 -0
- package/dist/ColorPicker.js.map +1 -0
- package/dist/DrawioModal.d.ts +9 -0
- package/dist/DrawioModal.d.ts.map +1 -0
- package/dist/DrawioModal.js +97 -0
- package/dist/DrawioModal.js.map +1 -0
- package/dist/FontMenu.d.ts +14 -0
- package/dist/FontMenu.d.ts.map +1 -0
- package/dist/FontMenu.js +14 -0
- package/dist/FontMenu.js.map +1 -0
- package/dist/Icon.d.ts +69 -0
- package/dist/Icon.d.ts.map +1 -0
- package/dist/Icon.js +47 -0
- package/dist/Icon.js.map +1 -0
- package/dist/InsertHandle.d.ts +14 -0
- package/dist/InsertHandle.d.ts.map +1 -0
- package/dist/InsertHandle.js +60 -0
- package/dist/InsertHandle.js.map +1 -0
- package/dist/PickMenu.d.ts +61 -0
- package/dist/PickMenu.d.ts.map +1 -0
- package/dist/PickMenu.js +57 -0
- package/dist/PickMenu.js.map +1 -0
- package/dist/Popover.d.ts +20 -0
- package/dist/Popover.d.ts.map +1 -0
- package/dist/Popover.js +22 -0
- package/dist/Popover.js.map +1 -0
- package/dist/PostTitle.d.ts +33 -0
- package/dist/PostTitle.d.ts.map +1 -0
- package/dist/PostTitle.js +171 -0
- package/dist/PostTitle.js.map +1 -0
- package/dist/SelectionBubble.d.ts +6 -0
- package/dist/SelectionBubble.d.ts.map +1 -0
- package/dist/SelectionBubble.js +71 -0
- package/dist/SelectionBubble.js.map +1 -0
- package/dist/TableTools.d.ts +10 -0
- package/dist/TableTools.d.ts.map +1 -0
- package/dist/TableTools.js +200 -0
- package/dist/TableTools.js.map +1 -0
- package/dist/Toolbar.d.ts +17 -0
- package/dist/Toolbar.d.ts.map +1 -0
- package/dist/Toolbar.js +333 -0
- package/dist/Toolbar.js.map +1 -0
- package/dist/UrlPrompt.d.ts +24 -0
- package/dist/UrlPrompt.d.ts.map +1 -0
- package/dist/UrlPrompt.js +53 -0
- package/dist/UrlPrompt.js.map +1 -0
- package/dist/VariantMenu.d.ts +47 -0
- package/dist/VariantMenu.d.ts.map +1 -0
- package/dist/VariantMenu.js +21 -0
- package/dist/VariantMenu.js.map +1 -0
- package/dist/WidthToggle.d.ts +19 -0
- package/dist/WidthToggle.d.ts.map +1 -0
- package/dist/WidthToggle.js +17 -0
- package/dist/WidthToggle.js.map +1 -0
- package/dist/bubbleShows.d.ts +10 -0
- package/dist/bubbleShows.d.ts.map +1 -0
- package/dist/bubbleShows.js +29 -0
- package/dist/bubbleShows.js.map +1 -0
- package/dist/content-baked.d.ts +22 -0
- package/dist/content-baked.d.ts.map +1 -0
- package/dist/content-baked.js +21 -0
- package/dist/content-baked.js.map +1 -0
- package/dist/content.d.ts +29 -0
- package/dist/content.d.ts.map +1 -0
- package/dist/content.js +35 -0
- package/dist/content.js.map +1 -0
- package/dist/extensions/DiagramView.d.ts +26 -0
- package/dist/extensions/DiagramView.d.ts.map +1 -0
- package/dist/extensions/DiagramView.js +146 -0
- package/dist/extensions/DiagramView.js.map +1 -0
- package/dist/extensions/FigureView.d.ts +3 -0
- package/dist/extensions/FigureView.d.ts.map +1 -0
- package/dist/extensions/FigureView.js +108 -0
- package/dist/extensions/FigureView.js.map +1 -0
- package/dist/index.d.ts +100 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +166 -0
- package/dist/index.js.map +1 -0
- package/dist/objects/ObjectFloat.d.ts +11 -0
- package/dist/objects/ObjectFloat.d.ts.map +1 -0
- package/dist/objects/ObjectFloat.js +42 -0
- package/dist/objects/ObjectFloat.js.map +1 -0
- package/dist/objects/ObjectLayer.d.ts +10 -0
- package/dist/objects/ObjectLayer.d.ts.map +1 -0
- package/dist/objects/ObjectLayer.js +20 -0
- package/dist/objects/ObjectLayer.js.map +1 -0
- package/dist/objects/blockSize.d.ts +30 -0
- package/dist/objects/blockSize.d.ts.map +1 -0
- package/dist/objects/blockSize.js +56 -0
- package/dist/objects/blockSize.js.map +1 -0
- package/dist/objects/code.d.ts +3 -0
- package/dist/objects/code.d.ts.map +1 -0
- package/dist/objects/code.js +55 -0
- package/dist/objects/code.js.map +1 -0
- package/dist/objects/diagram.d.ts +21 -0
- package/dist/objects/diagram.d.ts.map +1 -0
- package/dist/objects/diagram.js +109 -0
- package/dist/objects/diagram.js.map +1 -0
- package/dist/objects/diagramGlyphs.d.ts +12 -0
- package/dist/objects/diagramGlyphs.d.ts.map +1 -0
- package/dist/objects/diagramGlyphs.js +49 -0
- package/dist/objects/diagramGlyphs.js.map +1 -0
- package/dist/objects/divider.d.ts +22 -0
- package/dist/objects/divider.d.ts.map +1 -0
- package/dist/objects/divider.js +60 -0
- package/dist/objects/divider.js.map +1 -0
- package/dist/objects/figure.d.ts +3 -0
- package/dist/objects/figure.d.ts.map +1 -0
- package/dist/objects/figure.js +62 -0
- package/dist/objects/figure.js.map +1 -0
- package/dist/objects/imageRow.d.ts +3 -0
- package/dist/objects/imageRow.d.ts.map +1 -0
- package/dist/objects/imageRow.js +29 -0
- package/dist/objects/imageRow.js.map +1 -0
- package/dist/objects/quote.d.ts +6 -0
- package/dist/objects/quote.d.ts.map +1 -0
- package/dist/objects/quote.js +13 -0
- package/dist/objects/quote.js.map +1 -0
- package/dist/objects/quoteGlyphs.d.ts +6 -0
- package/dist/objects/quoteGlyphs.d.ts.map +1 -0
- package/dist/objects/quoteGlyphs.js +28 -0
- package/dist/objects/quoteGlyphs.js.map +1 -0
- package/dist/objects/quoteRow.d.ts +3 -0
- package/dist/objects/quoteRow.d.ts.map +1 -0
- package/dist/objects/quoteRow.js +61 -0
- package/dist/objects/quoteRow.js.map +1 -0
- package/dist/objects/registry.d.ts +60 -0
- package/dist/objects/registry.d.ts.map +1 -0
- package/dist/objects/registry.js +45 -0
- package/dist/objects/registry.js.map +1 -0
- package/dist/objects/table.d.ts +11 -0
- package/dist/objects/table.d.ts.map +1 -0
- package/dist/objects/table.js +136 -0
- package/dist/objects/table.js.map +1 -0
- package/dist/objects/useDomRect.d.ts +14 -0
- package/dist/objects/useDomRect.d.ts.map +1 -0
- package/dist/objects/useDomRect.js +32 -0
- package/dist/objects/useDomRect.js.map +1 -0
- package/dist/objects/useEngaged.d.ts +14 -0
- package/dist/objects/useEngaged.d.ts.map +1 -0
- package/dist/objects/useEngaged.js +41 -0
- package/dist/objects/useEngaged.js.map +1 -0
- package/dist/pickItems.d.ts +36 -0
- package/dist/pickItems.d.ts.map +1 -0
- package/dist/pickItems.js +40 -0
- package/dist/pickItems.js.map +1 -0
- package/dist/recentColors.d.ts +7 -0
- package/dist/recentColors.d.ts.map +1 -0
- package/dist/recentColors.js +30 -0
- package/dist/recentColors.js.map +1 -0
- package/dist/seeds/drawio/aws.d.ts +15 -0
- package/dist/seeds/drawio/aws.d.ts.map +1 -0
- package/dist/seeds/drawio/aws.js +15 -0
- package/dist/seeds/drawio/aws.js.map +1 -0
- package/dist/seeds/drawio/azure.d.ts +14 -0
- package/dist/seeds/drawio/azure.d.ts.map +1 -0
- package/dist/seeds/drawio/azure.js +14 -0
- package/dist/seeds/drawio/azure.js.map +1 -0
- package/dist/seeds/drawio/ec2docker.d.ts +15 -0
- package/dist/seeds/drawio/ec2docker.d.ts.map +1 -0
- package/dist/seeds/drawio/ec2docker.js +15 -0
- package/dist/seeds/drawio/ec2docker.js.map +1 -0
- package/dist/seeds/drawio/userflow.d.ts +21 -0
- package/dist/seeds/drawio/userflow.d.ts.map +1 -0
- package/dist/seeds/drawio/userflow.js +21 -0
- package/dist/seeds/drawio/userflow.js.map +1 -0
- package/dist/seeds/mermaid.d.ts +19 -0
- package/dist/seeds/mermaid.d.ts.map +1 -0
- package/dist/seeds/mermaid.js +82 -0
- package/dist/seeds/mermaid.js.map +1 -0
- package/dist/useAnchoredPos.d.ts +22 -0
- package/dist/useAnchoredPos.d.ts.map +1 -0
- package/dist/useAnchoredPos.js +57 -0
- package/dist/useAnchoredPos.js.map +1 -0
- package/dist/useDismiss.d.ts +17 -0
- package/dist/useDismiss.d.ts.map +1 -0
- package/dist/useDismiss.js +36 -0
- package/dist/useDismiss.js.map +1 -0
- package/dist/useLastVariant.d.ts +9 -0
- package/dist/useLastVariant.d.ts.map +1 -0
- package/dist/useLastVariant.js +33 -0
- package/dist/useLastVariant.js.map +1 -0
- package/dist/useUploadCount.d.ts +3 -0
- package/dist/useUploadCount.d.ts.map +1 -0
- package/dist/useUploadCount.js +9 -0
- package/dist/useUploadCount.js.map +1 -0
- package/package.json +57 -0
- package/src/editor-ui.css +737 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableTools.js","sourceRoot":"","sources":["../src/TableTools.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type Editor } from '@tiptap/react';
|
|
2
|
+
import type { ProseWidth } from '@storkspear/post-editor-core/proseWidth';
|
|
3
|
+
import type { TitleValue } from './PostTitle.js';
|
|
4
|
+
export declare function Toolbar({ editor, title, width, onWidth, stickyTop }: {
|
|
5
|
+
editor: Editor;
|
|
6
|
+
/** 제목 입력칸에 손이 가 있을 때 — 아랫줄이 제목 서식으로 바뀐다 */
|
|
7
|
+
title?: {
|
|
8
|
+
value: TitleValue;
|
|
9
|
+
onChange: (v: TitleValue) => void;
|
|
10
|
+
} | null;
|
|
11
|
+
/** 본문 폭 — 넣기 줄 오른쪽 끝의 고르개가 쓴다. `onWidth` 가 없으면 고르개를 안 그린다. */
|
|
12
|
+
width?: ProseWidth;
|
|
13
|
+
onWidth?: (v: ProseWidth) => void;
|
|
14
|
+
/** 띠가 붙을 자리 — 위에 이미 고정돼 있는 것의 높이 */
|
|
15
|
+
stickyTop?: number | string;
|
|
16
|
+
}): import("react").JSX.Element;
|
|
17
|
+
//# sourceMappingURL=Toolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../src/Toolbar.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,MAAM,EAAE,MAAM,eAAe,CAAA;AAS3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAA;AAOzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAyW7C,wBAAgB,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;IACpE,MAAM,EAAE,MAAM,CAAA;IACd,2CAA2C;IAC3C,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;IACvE,8DAA8D;IAC9D,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;IACjC,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAC5B,+BA+SA"}
|
package/dist/Toolbar.js
ADDED
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useLayoutEffect, useRef, useState } from 'react';
|
|
3
|
+
import { insertImageFiles, pickImageFiles } from '@storkspear/post-editor-core/image';
|
|
4
|
+
import { useEngaged } from './objects/useEngaged.js';
|
|
5
|
+
import { useEditorState } from '@tiptap/react';
|
|
6
|
+
import { Icon } from './Icon.js';
|
|
7
|
+
import { VariantMenu } from './VariantMenu.js';
|
|
8
|
+
import { OBJECTS, findActiveObject } from './objects/registry.js';
|
|
9
|
+
import { DividerExtras, dividerItems } from './objects/divider.js';
|
|
10
|
+
import { quoteItems, QUOTE_LABEL } from './objects/quote.js';
|
|
11
|
+
import { DIVIDER_LABEL } from './objects/divider.js';
|
|
12
|
+
import { WidthToggle } from './WidthToggle.js';
|
|
13
|
+
import { PRESET_LABEL, presetItems } from './objects/table.js';
|
|
14
|
+
import { diagramRows, loadDiagramSeed } from './objects/diagram.js';
|
|
15
|
+
import { useLastVariant } from './useLastVariant.js';
|
|
16
|
+
import { ColorPicker } from './ColorPicker.js';
|
|
17
|
+
import { useRecentColors } from './recentColors.js';
|
|
18
|
+
import { DIVIDER_KINDS, FONT_SIZE_DEFAULT, QUOTE_VARIANTS, TABLE_PRESETS, TITLE_SIZES } from '@storkspear/post-editor-core/vocab';
|
|
19
|
+
import { DIVIDER_TONES, DIVIDER_WEIGHTS } from '@storkspear/post-editor-core/vocab';
|
|
20
|
+
import { IconMenu, PickMenu, Picker } from './PickMenu.js';
|
|
21
|
+
import { UrlPrompt } from './UrlPrompt.js';
|
|
22
|
+
import { ALIGN_ITEMS, BLOCK_ITEMS, LANG_ITEMS, LH_ITEMS, SIZE_ITEMS, fontItems, } from './pickItems.js';
|
|
23
|
+
/** 미리보기는 진짜 목록을 그린다 — 아이콘으로 따로 그리면 실제 렌더와 어긋난다 */
|
|
24
|
+
const listPreview = (tag, marker) => {
|
|
25
|
+
const style = { listStyleType: marker, paddingLeft: '1.1em', fontSize: '0.62rem', lineHeight: 1.5 };
|
|
26
|
+
const items = (_jsxs(_Fragment, { children: [_jsx("li", { children: "\uAC00\uB098\uB2E4" }), _jsx("li", { children: "\uB77C\uB9C8\uBC14" })] }));
|
|
27
|
+
return tag === 'ol' ? _jsx("ol", { style: style, children: items }) : _jsx("ul", { style: style, children: items });
|
|
28
|
+
};
|
|
29
|
+
const BULLET_MARKERS = [
|
|
30
|
+
{ value: 'disc', label: '채운 원', preview: listPreview('ul', 'disc') },
|
|
31
|
+
{ value: 'circle', label: '빈 원', preview: listPreview('ul', 'circle') },
|
|
32
|
+
{ value: 'square', label: '네모', preview: listPreview('ul', 'square') },
|
|
33
|
+
];
|
|
34
|
+
/** 모양 덧줄에 쓰는 글리프 — 36px 칸에 「가나다」를 넣으면 줄이 접혀 못 읽는다 */
|
|
35
|
+
const MARKER_GLYPH = {
|
|
36
|
+
disc: '●', circle: '○', square: '■',
|
|
37
|
+
decimal: '1.', 'lower-alpha': 'a.', 'lower-roman': 'i.',
|
|
38
|
+
};
|
|
39
|
+
const ORDERED_MARKERS = [
|
|
40
|
+
{ value: 'decimal', label: '숫자', preview: listPreview('ol', 'decimal') },
|
|
41
|
+
{ value: 'lower-alpha', label: '알파벳', preview: listPreview('ol', 'lower-alpha') },
|
|
42
|
+
{ value: 'lower-roman', label: '로마자', preview: listPreview('ol', 'lower-roman') },
|
|
43
|
+
];
|
|
44
|
+
const LIST_KINDS = [
|
|
45
|
+
{ value: 'bullet', icon: 'bullet', label: '글머리 기호 목록' },
|
|
46
|
+
{ value: 'ordered', icon: 'ordered', label: '번호 목록' },
|
|
47
|
+
{ value: 'none', icon: 'none', label: '목록 없음' },
|
|
48
|
+
];
|
|
49
|
+
/** 목록 메뉴 — 아이콘 셋을 세로로. 네이버 블로그와 같은 모양. */
|
|
50
|
+
function ListMenu({ editor, anchorRef, kind, marker, onClose }) {
|
|
51
|
+
const c = () => editor.chain().focus();
|
|
52
|
+
const pick = (k) => {
|
|
53
|
+
const bullet = kind === 'bullet', ordered = kind === 'ordered';
|
|
54
|
+
if (k === 'bullet') {
|
|
55
|
+
if (!bullet)
|
|
56
|
+
c().toggleBulletList().run();
|
|
57
|
+
}
|
|
58
|
+
else if (k === 'ordered') {
|
|
59
|
+
if (!ordered)
|
|
60
|
+
c().toggleOrderedList().run();
|
|
61
|
+
}
|
|
62
|
+
else if (bullet)
|
|
63
|
+
c().toggleBulletList().run();
|
|
64
|
+
else if (ordered)
|
|
65
|
+
c().toggleOrderedList().run();
|
|
66
|
+
};
|
|
67
|
+
const markers = kind === 'ordered' ? ORDERED_MARKERS : kind === 'bullet' ? BULLET_MARKERS : [];
|
|
68
|
+
return (_jsx(IconMenu, { ariaLabel: "\uBAA9\uB85D", anchorRef: anchorRef, items: LIST_KINDS, value: kind, onPick: pick, onClose: onClose, footer: markers.length > 0 && (
|
|
69
|
+
/* 모양(● ○ ■ / 1. a. i.)은 우리 것이라 네이버엔 없다. 목록 안일 때만 아래에 덧붙인다. */
|
|
70
|
+
_jsx("div", { className: "tb-listmarkers", children: markers.map((m) => (_jsx("button", { type: "button", title: m.label, "aria-label": m.label, className: marker === m.value ? 'is-on' : '', onMouseDown: (e) => e.preventDefault(), onClick: () => { c().setListMarker(m.value).run(); onClose(); }, children: MARKER_GLYPH[m.value] }, m.value))) })) }));
|
|
71
|
+
}
|
|
72
|
+
const TITLE_SIZE_ITEMS = TITLE_SIZES.map((z) => ({ value: String(z), label: String(z) }));
|
|
73
|
+
/**
|
|
74
|
+
* 제목의 서식줄 — **서체·크기·정렬·색 넷뿐이다.**
|
|
75
|
+
*
|
|
76
|
+
* 굵게·밑줄·취소선·인라인 코드·글자 배경색은 일부러 없다. 제목은 한 덩어리로만 꾸미는 물건이고,
|
|
77
|
+
* 애초에 홑 입력칸이라 부분 서식이 들어갈 자리가 없다.
|
|
78
|
+
* 크기도 본문(11~36)이 아니라 제목용 넷(26·32·38·44)을 쓴다.
|
|
79
|
+
*/
|
|
80
|
+
function TitleRow({ value, onChange }) {
|
|
81
|
+
const [alignMenu, setAlignMenu] = useState(false);
|
|
82
|
+
const alignAnchor = useRef(null);
|
|
83
|
+
const [pick, setPick] = useState(false);
|
|
84
|
+
const colorAnchor = useRef(null);
|
|
85
|
+
const { recent, remember } = useRecentColors();
|
|
86
|
+
// 제목은 양쪽 정렬을 주지 않는다 — 한 줄짜리라 뜻이 없다
|
|
87
|
+
const ALIGN3 = ALIGN_ITEMS.filter((a) => a.value !== 'justify');
|
|
88
|
+
return (_jsxs(_Fragment, { children: [_jsx("span", { className: "tb-hint", children: "\uC81C\uBAA9" }), _jsx("span", { className: "tb-div" }), _jsx(Picker, { title: "\uAE00\uAF34", className: "tb-font", width: 200, items: fontItems(), value: value.font ?? '', style: { fontFamily: value.font || 'var(--font-body)' }, onPick: (v) => onChange({ ...value, font: v || null }) }), _jsx(Picker, { title: "\uC81C\uBAA9 \uD06C\uAE30 (px)", className: "tb-size", width: 78, align: "center", items: TITLE_SIZE_ITEMS, value: String(value.size), onPick: (v) => onChange({ ...value, size: Number(v) }) }), _jsx("span", { className: "tb-div" }), _jsxs("div", { className: "tb-anchor", ref: alignAnchor, children: [_jsx("button", { type: "button", className: `tb-btn${alignMenu ? ' is-on' : ''}`, title: "\uC815\uB82C", "aria-label": "\uC815\uB82C", "aria-haspopup": "menu", "aria-expanded": alignMenu, onMouseDown: (e) => e.preventDefault(), onClick: () => setAlignMenu((v) => !v), children: _jsx(Icon, { name: (ALIGN3.find((a) => a.value === value.align) ?? ALIGN3[0]).icon }) }), alignMenu && (_jsx(IconMenu, { ariaLabel: "\uC815\uB82C", anchorRef: alignAnchor, items: ALIGN3, value: value.align, onPick: (v) => onChange({ ...value, align: v }), onClose: () => setAlignMenu(false) }))] }), _jsxs("div", { className: "tb-anchor", ref: colorAnchor, children: [_jsxs("button", { type: "button", className: "tb-btn tb-color", "aria-label": "\uAE00\uC790\uC0C9", title: "\uAE00\uC790\uC0C9", onMouseDown: (e) => e.preventDefault(), onClick: () => setPick((v) => !v), children: [_jsx("span", { className: "tb-color-swatch", style: { background: value.color || '#1a1a1a' } }), _jsx("b", { className: "tb-color-letter", children: "\uAC00" })] }), pick && (_jsx(ColorPicker, { label: "\uC81C\uBAA9 \uAE00\uC790\uC0C9", value: value.color ?? '', recent: recent, anchorRef: colorAnchor, onPick: (hex) => { remember(hex); onChange({ ...value, color: hex }); }, onClear: () => onChange({ ...value, color: null }), onClose: () => setPick(false) }))] })] }));
|
|
89
|
+
}
|
|
90
|
+
function Btn({ on, active, disabled, title, children }) {
|
|
91
|
+
return (_jsx("button", { type: "button", className: `tb-btn${active ? ' is-on' : ''}`, title: title, "aria-label": title, "aria-pressed": active, disabled: disabled, onMouseDown: (e) => e.preventDefault(), onClick: on, children: children }));
|
|
92
|
+
}
|
|
93
|
+
function Tile({ on, active, title, label, children }) {
|
|
94
|
+
return (_jsxs("button", { type: "button", className: `tb-tile${active ? ' is-on' : ''}`, title: title, "aria-label": title, onMouseDown: (e) => e.preventDefault(), onClick: on, children: [_jsx("span", { className: "tb-tile-ico", children: children }), _jsx("span", { className: "tb-tile-label", children: label })] }));
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* 본체와 ▾ 가 갈린 타일 (네이버 구조).
|
|
98
|
+
* 본체를 누르면 **바로 넣고**, ▾ 를 눌러야 모양 목록이 열린다.
|
|
99
|
+
* 본체만 누르는 사람이 다수라 그쪽을 한 번에 끝내 준다.
|
|
100
|
+
*/
|
|
101
|
+
function SplitTile({ onMain, onCaret, active, open, title, caretTitle, label, children }) {
|
|
102
|
+
return (_jsxs("span", { className: `tb-split${active ? ' is-on' : ''}${open ? ' is-open' : ''}`, children: [_jsxs("button", { type: "button", className: "tb-tile tb-split-main", title: title, "aria-label": title, onMouseDown: (e) => e.preventDefault(), onClick: onMain, children: [_jsx("span", { className: "tb-tile-ico", children: children }), _jsx("span", { className: "tb-tile-label", children: label })] }), _jsx("button", { type: "button", className: "tb-split-caret", title: caretTitle, "aria-label": caretTitle, "aria-haspopup": "menu", "aria-expanded": !!open, onMouseDown: (e) => e.preventDefault(), onClick: onCaret, children: _jsx("i", { className: "tb-caret" }) })] }));
|
|
103
|
+
}
|
|
104
|
+
/** 평소의 아랫줄 — 글자 서식 */
|
|
105
|
+
function TextRow({ editor }) {
|
|
106
|
+
const [listMenu, setListMenu] = useState(false);
|
|
107
|
+
const listAnchor = useRef(null);
|
|
108
|
+
const [alignMenu, setAlignMenu] = useState(false);
|
|
109
|
+
const alignAnchor = useRef(null);
|
|
110
|
+
// 색 고르는 방식을 글자 버블과 **하나로** 맞춘다 — 같은 팔레트, 같은 최근 목록
|
|
111
|
+
const [pick, setPick] = useState(null);
|
|
112
|
+
const colorAnchor = useRef(null);
|
|
113
|
+
const hlAnchor = useRef(null);
|
|
114
|
+
const { recent, remember } = useRecentColors();
|
|
115
|
+
const s = useEditorState({
|
|
116
|
+
editor,
|
|
117
|
+
selector: ({ editor: e }) => ({
|
|
118
|
+
bold: e.isActive('bold'), italic: e.isActive('italic'), underline: e.isActive('underline'),
|
|
119
|
+
strike: e.isActive('strike'), code: e.isActive('code'), hl: e.isActive('highlight'),
|
|
120
|
+
h2: e.isActive('heading', { level: 2 }), h3: e.isActive('heading', { level: 3 }),
|
|
121
|
+
h4: e.isActive('heading', { level: 4 }),
|
|
122
|
+
bullet: e.isActive('bulletList'), ordered: e.isActive('orderedList'),
|
|
123
|
+
marker: (e.getAttributes('bulletList').marker ?? e.getAttributes('orderedList').marker ?? null),
|
|
124
|
+
alignC: e.isActive({ textAlign: 'center' }), alignR: e.isActive({ textAlign: 'right' }),
|
|
125
|
+
alignJ: e.isActive({ textAlign: 'justify' }),
|
|
126
|
+
// 줄 간격은 문단·제목이 나눠 가지므로 둘 다 본다 (지금 커서가 있는 쪽만 값이 있다)
|
|
127
|
+
lh: (e.getAttributes('paragraph').lineHeight ?? e.getAttributes('heading').lineHeight ?? null),
|
|
128
|
+
size: e.getAttributes('textStyle').fontSize ?? '',
|
|
129
|
+
font: e.getAttributes('textStyle').fontFamily ?? '',
|
|
130
|
+
color: e.getAttributes('textStyle').color ?? '',
|
|
131
|
+
hlColor: e.getAttributes('highlight').color ?? '',
|
|
132
|
+
}),
|
|
133
|
+
});
|
|
134
|
+
const c = () => editor.chain().focus();
|
|
135
|
+
const inList = s.bullet || s.ordered;
|
|
136
|
+
const block = s.h2 ? 'h2' : s.h3 ? 'h3' : s.h4 ? 'h4' : 'p';
|
|
137
|
+
// 안 정했으면 왼쪽이다 — 메뉴는 늘 넷 중 하나를 켜 둔다
|
|
138
|
+
const align = s.alignC ? 'center' : s.alignR ? 'right' : s.alignJ ? 'justify' : 'left';
|
|
139
|
+
return (_jsxs(_Fragment, { children: [_jsx(Picker, { title: "\uAE00\uAF34", className: "tb-font", width: 200, items: fontItems(), value: s.font, style: { fontFamily: s.font || 'var(--font-body)' }, onPick: (v) => (v ? c().setFontFamily(v).run() : c().unsetFontFamily().run()) }), _jsx(Picker, { title: "\uBB38\uB2E8 \uC2A4\uD0C0\uC77C", className: "tb-block", width: 132, items: BLOCK_ITEMS, value: block, onPick: (v) => (v === 'p'
|
|
140
|
+
? c().setParagraph().run()
|
|
141
|
+
: c().setHeading({ level: Number(v.slice(1)) }).run()) }), _jsx(Picker, { title: "\uAE00\uC790 \uD06C\uAE30 (px)", className: "tb-size", width: 78, align: "center", items: SIZE_ITEMS, value: String(s.size ? parseInt(s.size, 10) : FONT_SIZE_DEFAULT), onPick: (v) => c().setFontSize(`${v}px`).run() }), _jsx("span", { className: "tb-div" }), _jsx(Btn, { title: "\uAD75\uAC8C", active: s.bold, on: () => c().toggleBold().run(), children: _jsx(Icon, { name: "bold" }) }), _jsx(Btn, { title: "\uAE30\uC6B8\uC784", active: s.italic, on: () => c().toggleItalic().run(), children: _jsx(Icon, { name: "italic" }) }), _jsx(Btn, { title: "\uBC11\uC904", active: s.underline, on: () => c().toggleUnderline().run(), children: _jsx(Icon, { name: "underline" }) }), _jsx(Btn, { title: "\uCDE8\uC18C\uC120", active: s.strike, on: () => c().toggleStrike().run(), children: _jsx(Icon, { name: "strike" }) }), _jsx(Btn, { title: "\uC778\uB77C\uC778 \uCF54\uB4DC", active: s.code, on: () => c().toggleCode().run(), children: _jsx(Icon, { name: "code" }) }), _jsx("span", { className: "tb-div" }), _jsxs("div", { className: "tb-anchor", ref: colorAnchor, children: [_jsxs("button", { type: "button", className: "tb-btn tb-color", title: "\uAE00\uC790\uC0C9", "aria-label": "\uAE00\uC790\uC0C9", onMouseDown: (e) => e.preventDefault(), onClick: () => setPick(pick === 'color' ? null : 'color'), children: [_jsx("span", { className: "tb-color-swatch", style: { background: s.color || '#1a1a1a' } }), _jsx("b", { className: "tb-color-letter", children: "\uAC00" })] }), pick === 'color' && (_jsx(ColorPicker, { label: "\uAE00\uC790\uC0C9", value: s.color, recent: recent, anchorRef: colorAnchor, onPick: (hex) => { remember(hex); c().setColor(hex).run(); }, onClear: () => c().unsetColor().run(), onClose: () => setPick(null) }))] }), _jsxs("div", { className: "tb-anchor", ref: hlAnchor, children: [_jsx("button", { type: "button", className: `tb-btn tb-color${s.hl ? ' is-on' : ''}`, title: "\uAE00\uC790 \uBC30\uACBD\uC0C9", "aria-label": "\uAE00\uC790 \uBC30\uACBD\uC0C9", onMouseDown: (e) => e.preventDefault(), onClick: () => setPick(pick === 'highlight' ? null : 'highlight'), children: _jsx("b", { className: "tb-color-letter tb-hl-letter", style: { background: s.hlColor || '#fff2a8' }, children: "\uAC00" }) }), pick === 'highlight' && (_jsx(ColorPicker, { label: "\uAE00\uC790 \uBC30\uACBD\uC0C9", value: s.hlColor, recent: recent, anchorRef: hlAnchor, onPick: (hex) => { remember(hex); c().setHighlight({ color: hex }).run(); }, onClear: () => c().unsetHighlight().run(), onClose: () => setPick(null) }))] }), _jsx("span", { className: "tb-div" }), _jsxs("div", { className: "tb-anchor", ref: alignAnchor, children: [_jsx("button", { type: "button", className: `tb-btn${alignMenu ? ' is-on' : ''}`, title: "\uC815\uB82C", "aria-label": "\uC815\uB82C", "aria-haspopup": "menu", "aria-expanded": alignMenu, onMouseDown: (e) => e.preventDefault(), onClick: () => setAlignMenu((v) => !v), children: _jsx(Icon, { name: ALIGN_ITEMS.find((a) => a.value === align).icon }) }), alignMenu && (_jsx(IconMenu, { ariaLabel: "\uC815\uB82C", anchorRef: alignAnchor, items: ALIGN_ITEMS, value: align, onPick: (v) => c().setTextAlign(v).run(), onClose: () => setAlignMenu(false) }))] }), _jsx(Picker, { title: "\uC904 \uAC04\uACA9", className: "tb-iconselect", width: 108, align: "center", items: LH_ITEMS, value: s.lh == null ? '' : String(s.lh), onPick: (v) => c().setLineHeight(v ? Number(v) : null).run(), children: _jsx(Icon, { name: "lineHeight" }) }), _jsx("span", { className: "tb-div" }), _jsxs("div", { className: "tb-anchor", ref: listAnchor, children: [_jsx("button", { type: "button", className: `tb-btn${inList || listMenu ? ' is-on' : ''}`, title: "\uBAA9\uB85D", "aria-label": "\uBAA9\uB85D", "aria-haspopup": "menu", "aria-expanded": listMenu, onMouseDown: (e) => e.preventDefault(), onClick: () => setListMenu((v) => !v), children: _jsx(Icon, { name: s.ordered ? 'ordered' : 'bullet' }) }), listMenu && (_jsx(ListMenu, { editor: editor, anchorRef: listAnchor, kind: s.ordered ? 'ordered' : s.bullet ? 'bullet' : 'none', marker: s.marker, onClose: () => setListMenu(false) }))] })] }));
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* 도구 띠가 **뚫고 나가야 할 좌우 여백**을 잰다.
|
|
145
|
+
*
|
|
146
|
+
* 띠는 화면(정확히는 스크롤되는 상자)을 가로지르는 물건인데, 편집기는 보통 좌우 여백이
|
|
147
|
+
* 있는 열 안에 놓인다. 그 차이만큼 음수 마진으로 빠져나가야 띠가 띠로 보인다.
|
|
148
|
+
*
|
|
149
|
+
* 예전엔 `--editor-gutter` 를 소비자가 CSS 로 넣게 했다. 그러면 **변수 이름이 곧 숨은 API** 라,
|
|
150
|
+
* 안 넣은 소비자에게서는 띠가 카드처럼 떠 보인다(실제로 그랬다).
|
|
151
|
+
* 값으로 받지 않고 **재는** 이유: 소비자마다 패딩이 다르고, 창 크기에 따라 변하기도 한다.
|
|
152
|
+
*/
|
|
153
|
+
function useGutter(ref) {
|
|
154
|
+
useLayoutEffect(() => {
|
|
155
|
+
const el = ref.current;
|
|
156
|
+
if (!el)
|
|
157
|
+
return;
|
|
158
|
+
const scroller = (() => {
|
|
159
|
+
let p = el.parentElement;
|
|
160
|
+
while (p && p !== document.body) {
|
|
161
|
+
const o = getComputedStyle(p).overflowY;
|
|
162
|
+
if (o === 'auto' || o === 'scroll')
|
|
163
|
+
return p;
|
|
164
|
+
p = p.parentElement;
|
|
165
|
+
}
|
|
166
|
+
return document.documentElement;
|
|
167
|
+
})();
|
|
168
|
+
/**
|
|
169
|
+
* **재는 것은 자기 자신이 아니라 부모다.**
|
|
170
|
+
* 띠에 음수 마진을 주면 띠의 폭이 변하고, 그 변화가 다시 측정을 바꾼다 —
|
|
171
|
+
* 자기를 재면 「넓어짐 → 여백 0 → 좁아짐 → 여백 56 → …」 로 되먹임이 돌아
|
|
172
|
+
* 0 으로 수렴한다(실제로 그랬다). 부모의 자리는 마진과 무관하게 고정이다.
|
|
173
|
+
*/
|
|
174
|
+
const host = el.parentElement;
|
|
175
|
+
if (!host)
|
|
176
|
+
return;
|
|
177
|
+
const put = () => {
|
|
178
|
+
const a = host.getBoundingClientRect();
|
|
179
|
+
const b = scroller.getBoundingClientRect();
|
|
180
|
+
// 부모의 **패딩 안쪽**이 띠가 원래 서는 자리다. 테두리 상자만 재면 패딩으로 여백을
|
|
181
|
+
// 준 소비자에게서 0 이 나와 띠가 안 펴진다.
|
|
182
|
+
const cs = getComputedStyle(host);
|
|
183
|
+
const left = Math.max(0, Math.round(a.left + parseFloat(cs.paddingLeft || '0') - b.left));
|
|
184
|
+
const right = Math.max(0, Math.round(b.right - (a.right - parseFloat(cs.paddingRight || '0'))));
|
|
185
|
+
// 좌우가 다르면 작은 쪽에 맞춘다 — 한쪽만 튀어나오면 삐뚤어 보인다
|
|
186
|
+
el.style.setProperty('--editor-gutter', `${Math.min(left, right)}px`);
|
|
187
|
+
};
|
|
188
|
+
put();
|
|
189
|
+
const ro = new ResizeObserver(put);
|
|
190
|
+
ro.observe(host);
|
|
191
|
+
ro.observe(scroller);
|
|
192
|
+
return () => ro.disconnect();
|
|
193
|
+
}, [ref]);
|
|
194
|
+
}
|
|
195
|
+
export function Toolbar({ editor, title, width, onWidth, stickyTop }) {
|
|
196
|
+
const [menu, setMenu] = useState(null);
|
|
197
|
+
/** 폰에서 윗줄(넣기)을 시트로 펼쳤는지 */
|
|
198
|
+
const [sheet, setSheet] = useState(false);
|
|
199
|
+
/** 마지막에 고른 모양을 기억해 본체 클릭 한 번으로 넣게 한다 */
|
|
200
|
+
const [lastQuote, rememberQuote] = useLastVariant('quote', 'bar', QUOTE_VARIANTS);
|
|
201
|
+
const [lastDivider, rememberDivider] = useLastVariant('divider', 'short', DIVIDER_KINDS);
|
|
202
|
+
/**
|
|
203
|
+
* 넣기 메뉴에서도 두께·색을 고른다 — 넣고 나서 다시 잡아 고치게 하면 손이 두 번 간다
|
|
204
|
+
*. 모양처럼 **마지막에 고른 값을 기억**해 본체 클릭에도 실린다.
|
|
205
|
+
* `''` 가 「안 정함」이다 — localStorage 는 null 을 못 담는다.
|
|
206
|
+
*/
|
|
207
|
+
const [lastWeight, rememberWeight] = useLastVariant('dividerWeight', '', ['', ...DIVIDER_WEIGHTS]);
|
|
208
|
+
const [lastTone, rememberTone] = useLastVariant('dividerTone', '', ['', ...DIVIDER_TONES]);
|
|
209
|
+
const dividerAttrs = { weight: lastWeight || null, tone: lastTone || null };
|
|
210
|
+
const [lastLang, rememberLang] = useLastVariant('codeLang', '');
|
|
211
|
+
const [lastPreset, rememberPreset] = useLastVariant('tablePreset', 'grid', TABLE_PRESETS);
|
|
212
|
+
const quoteAnchor = useRef(null);
|
|
213
|
+
const dividerAnchor = useRef(null);
|
|
214
|
+
const calloutAnchor = useRef(null);
|
|
215
|
+
const codeAnchor = useRef(null);
|
|
216
|
+
const diagramAnchor = useRef(null);
|
|
217
|
+
const tableAnchor = useRef(null);
|
|
218
|
+
const videoAnchor = useRef(null);
|
|
219
|
+
const linkAnchor = useRef(null);
|
|
220
|
+
const close = () => setMenu(null);
|
|
221
|
+
/**
|
|
222
|
+
* 다이어그램을 넣는다. **빈 것을 넣지 않는다** — 빈 캔버스 앞에서 문법을 떠올리게 하는
|
|
223
|
+
* 것보다, 고칠 수 있는 샘플을 주는 쪽이 낫다. 코드 블록이 언어를 미리 고르게 두는 것과 같다.
|
|
224
|
+
*
|
|
225
|
+
* Draw.io 샘플만 `await` 한다 — 구운 그림을 같이 싣느라 파일이 수십 KB 라 동적 import 로
|
|
226
|
+
* 떼어 놨다. mermaid 는 글자뿐이라 기다릴 것이 없다.
|
|
227
|
+
*/
|
|
228
|
+
const insertDiagram = (seed) => {
|
|
229
|
+
close();
|
|
230
|
+
void loadDiagramSeed(seed).then(({ engine, src, svg }) => {
|
|
231
|
+
c().insertContent({
|
|
232
|
+
type: 'diagram',
|
|
233
|
+
attrs: { engine, src, svg, align: 'center', width: 100, caption: 'below' },
|
|
234
|
+
}).run();
|
|
235
|
+
});
|
|
236
|
+
};
|
|
237
|
+
const rootRef = useRef(null);
|
|
238
|
+
useGutter(rootRef);
|
|
239
|
+
/**
|
|
240
|
+
* 붙을 자리는 **이 요소에만** 건다. 전역(`:root`)에 박으면 한 화면에 편집기가 둘일 때
|
|
241
|
+
* 서로 덮어쓰고, 떠난 뒤에도 값이 남는다.
|
|
242
|
+
*/
|
|
243
|
+
useLayoutEffect(() => {
|
|
244
|
+
const el = rootRef.current;
|
|
245
|
+
if (!el)
|
|
246
|
+
return;
|
|
247
|
+
if (stickyTop == null)
|
|
248
|
+
el.style.removeProperty('--editor-sticky-top');
|
|
249
|
+
else
|
|
250
|
+
el.style.setProperty('--editor-sticky-top', typeof stickyTop === 'number' ? `${stickyTop}px` : stickyTop);
|
|
251
|
+
}, [stickyTop]);
|
|
252
|
+
const s = useEditorState({
|
|
253
|
+
editor,
|
|
254
|
+
selector: ({ editor: e }) => ({
|
|
255
|
+
link: e.isActive('link'), href: e.getAttributes('link').href ?? '',
|
|
256
|
+
quote: e.isActive('blockquote'), pull: e.isActive('pullQuote'),
|
|
257
|
+
lang: e.getAttributes('codeBlock').language ?? '',
|
|
258
|
+
quoteVariant: (e.getAttributes('blockquote').variant ?? null),
|
|
259
|
+
codeBlock: e.isActive('codeBlock'),
|
|
260
|
+
table: e.isActive('table'),
|
|
261
|
+
diagram: e.isActive('diagram'),
|
|
262
|
+
tablePreset: (e.getAttributes('table').preset ?? 'grid'),
|
|
263
|
+
note: e.isActive('callout', { tone: 'note' }), tip: e.isActive('callout', { tone: 'tip' }), warn: e.isActive('callout', { tone: 'warn' }),
|
|
264
|
+
}),
|
|
265
|
+
});
|
|
266
|
+
// 아랫줄 슬롯: 어떤 객체가 잡혀 있는가
|
|
267
|
+
const obj = useEditorState({ editor, selector: () => findActiveObject(editor) });
|
|
268
|
+
const kind = obj ? OBJECTS[obj.kind] : null;
|
|
269
|
+
const engaged = useEngaged(editor);
|
|
270
|
+
/**
|
|
271
|
+
* 편집기 밖(글 제목 입력칸 등)에 손이 가 있으면 **글자 서식줄을 잠근다.**
|
|
272
|
+
*
|
|
273
|
+
* 잠그지 않으면 `chain().focus()` 가 포커스를 편집기로 끌어오면서 아까 잡아 둔 자리로
|
|
274
|
+
* **화면을 통째로 스크롤한다.** 제목을 쓰다 글꼴을 바꿨더니 본문 맨 아래 사진으로
|
|
275
|
+
* 튀어 내려갔다.
|
|
276
|
+
* 게다가 제목은 문서 밖이라 서식이 걸리지도 않는다. 안 되는 일을 조용히 하느니 잠근다.
|
|
277
|
+
*
|
|
278
|
+
* 판단은 `editor.isFocused` 가 아니라 `useEngaged` 로 한다 — 창이 OS 포커스를 잃으면
|
|
279
|
+
* 편집기도 blur 되므로, isFocused 로 잠그면 다른 앱을 봤다 돌아올 때마다 줄이 회색이 된다.
|
|
280
|
+
*/
|
|
281
|
+
const c = () => editor.chain().focus();
|
|
282
|
+
/**
|
|
283
|
+
* 표를 넣고 **바로 스타일을 입힌다.**
|
|
284
|
+
*
|
|
285
|
+
* `insertTable` 은 스타일을 모르므로 넣은 뒤 커서가 든 표에 속성을 얹는다.
|
|
286
|
+
* 한 묶음(chain)으로 해야 실행 취소가 한 번에 되돌린다 — 두 번 나누면
|
|
287
|
+
* ⌘Z 를 두 번 눌러야 표가 사라진다.
|
|
288
|
+
*/
|
|
289
|
+
const insertTable = (preset) => c().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).setTablePreset(preset).run();
|
|
290
|
+
// 진짜 사진을 고른다. 끌어다 놓기·붙여넣기는 Figure 확장이 따로 받는다.
|
|
291
|
+
const addImage = async () => {
|
|
292
|
+
const files = await pickImageFiles();
|
|
293
|
+
if (files.length)
|
|
294
|
+
await insertImageFiles(editor, files);
|
|
295
|
+
};
|
|
296
|
+
return (_jsxs("div", { "data-editor-ui": "", ref: rootRef, className: `toolbar2${sheet ? ' sheet-open' : ''}`, children: [sheet && _jsx("div", { className: "tb-sheet-backdrop", onClick: () => setSheet(false) }), _jsxs("div", { className: "tb-row tb-row-insert", role: "toolbar", "aria-label": "\uB123\uAE30", onClick: () => setSheet(false), children: [_jsx(Tile, { title: "\uC0AC\uC9C4 \uB123\uAE30 \u2014 \uB04C\uC5B4\uB2E4 \uB193\uAC70\uB098 \uBD99\uC5EC\uB123\uC5B4\uB3C4 \uB429\uB2C8\uB2E4", label: "\uC0AC\uC9C4", on: addImage, children: _jsx(Icon, { name: "image", size: 20, stroke: 1.6 }) }), _jsxs("div", { className: "tb-anchor", ref: quoteAnchor, children: [_jsx(SplitTile, { label: "\uC778\uC6A9\uAD6C", active: s.quote || s.pull, open: menu === 'quote', title: `인용 넣기 — ${QUOTE_LABEL[lastQuote]}`, caretTitle: "\uC778\uC6A9 \uBAA8\uC591 \uACE0\uB974\uAE30", onMain: () => c().setQuoteVariant(lastQuote).run(), onCaret: () => setMenu(menu === 'quote' ? null : 'quote'), children: _jsx(Icon, { name: "quote", size: 20, stroke: 1.6 }) }), menu === 'quote' && (_jsx(VariantMenu, { ariaLabel: "\uC778\uC6A9 \uBAA8\uC591", columns: 1, anchorRef: quoteAnchor, items: [
|
|
297
|
+
...quoteItems,
|
|
298
|
+
{ value: 'pull', label: '큰 인용',
|
|
299
|
+
preview: _jsx("p", { "data-pull-quote": "", style: { margin: 0, fontSize: '0.62rem', lineHeight: 1.25 }, children: "\uD55C \uC904" }) },
|
|
300
|
+
], value: s.pull ? 'pull' : s.quoteVariant, onPick: (v) => {
|
|
301
|
+
if (v === 'pull') {
|
|
302
|
+
c().togglePullQuote().run();
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
rememberQuote(v);
|
|
306
|
+
c().setQuoteVariant(v).run();
|
|
307
|
+
}, onClose: close }))] }), _jsxs("div", { className: "tb-anchor", ref: dividerAnchor, children: [_jsx(SplitTile, { label: "\uAD6C\uBD84\uC120", open: menu === 'divider', title: `구분선 넣기 — ${DIVIDER_LABEL[lastDivider]}`, caretTitle: "\uAD6C\uBD84\uC120 \uBAA8\uC591\u00B7\uB450\uAED8\u00B7\uC0C9", onMain: () => c().setDivider({ kind: lastDivider, align: 'center', ...dividerAttrs }).run(), onCaret: () => setMenu(menu === 'divider' ? null : 'divider'), children: _jsx(Icon, { name: "divider", size: 20, stroke: 1.6 }) }), menu === 'divider' && (_jsx(VariantMenu, { ariaLabel: "\uAD6C\uBD84\uC120 \uBAA8\uC591", columns: 4, anchorRef: dividerAnchor, items: dividerItems, value: lastDivider, onPick: (k) => { rememberDivider(k); c().setDivider({ kind: k, align: 'center', ...dividerAttrs }).run(); }, onClose: close, footer:
|
|
308
|
+
/* 두께·색은 고르기만 하고 **닫지 않는다** — 여기서 정해 두고 모양을 눌러 넣는다 */
|
|
309
|
+
_jsx(DividerExtras, { kind: lastDivider, weight: dividerAttrs.weight, tone: dividerAttrs.tone, onWeight: (w) => rememberWeight(w ?? ''), onTone: (t) => rememberTone(t ?? '') }) }))] }), _jsxs("div", { className: "tb-anchor", ref: codeAnchor, children: [_jsx(SplitTile, { label: "\uC18C\uC2A4\uCF54\uB4DC", active: s.codeBlock, open: menu === 'code', title: `소스코드 넣기 — ${LANG_ITEMS.find((l) => l.value === lastLang)?.label ?? '텍스트'}`, caretTitle: "\uC5B8\uC5B4 \uACE0\uB974\uAE30", onMain: () => c().toggleCodeBlock(lastLang ? { language: lastLang } : undefined).run(), onCaret: () => setMenu(menu === 'code' ? null : 'code'), children: _jsx(Icon, { name: "codeBlock", size: 20, stroke: 1.6 }) }), menu === 'code' && (_jsx(PickMenu, { ariaLabel: "\uC5B8\uC5B4", width: 168, items: LANG_ITEMS, value: s.codeBlock ? s.lang : lastLang, anchorRef: codeAnchor, onClose: close, onPick: (v) => {
|
|
310
|
+
rememberLang(v);
|
|
311
|
+
if (s.codeBlock)
|
|
312
|
+
c().setCodeAttrs({ language: v || null }).run();
|
|
313
|
+
else
|
|
314
|
+
c().toggleCodeBlock(v ? { language: v } : undefined).run();
|
|
315
|
+
} }))] }), _jsxs("div", { className: "tb-anchor", ref: calloutAnchor, children: [_jsx(SplitTile, { label: "\uAC15\uC870\uBC15\uC2A4", active: s.note || s.tip || s.warn, open: menu === 'callout', title: "\uAC15\uC870 \uBC15\uC2A4 \uB123\uAE30 (\uCC38\uACE0)", caretTitle: "\uAC15\uC870 \uBC15\uC2A4 \uC885\uB958 \uACE0\uB974\uAE30", onMain: () => c().toggleCallout('note').run(), onCaret: () => setMenu(menu === 'callout' ? null : 'callout'), children: _jsx(Icon, { name: "callout", size: 20, stroke: 1.6 }) }), menu === 'callout' && (_jsx(VariantMenu, { ariaLabel: "\uAC15\uC870 \uBC15\uC2A4 \uC885\uB958", columns: 1, anchorRef: calloutAnchor, items: ['note', 'tip', 'warn'].map((tone) => ({
|
|
316
|
+
value: tone,
|
|
317
|
+
label: tone === 'note' ? '참고' : tone === 'tip' ? '팁' : '주의',
|
|
318
|
+
desc: tone === 'note' ? '차분한 파랑' : tone === 'tip' ? '초록' : '주황',
|
|
319
|
+
preview: (_jsx("aside", { "data-callout": "", "data-tone": tone, style: { fontSize: '0.58rem', padding: '0.4em 0.5em', lineHeight: 1.4 }, children: _jsx("p", { children: "\uAC15\uC870" }) })),
|
|
320
|
+
})), value: s.note ? 'note' : s.tip ? 'tip' : s.warn ? 'warn' : null, onPick: (tone) => c().toggleCallout(tone).run(), onClose: close }))] }), _jsxs("div", { className: "tb-anchor", ref: tableAnchor, children: [_jsx(SplitTile, { label: "\uD45C", active: s.table, open: menu === 'table', title: `표 넣기 (3×3) — ${PRESET_LABEL[lastPreset]}`, caretTitle: "\uD45C \uC2A4\uD0C0\uC77C \uACE0\uB974\uAE30", onMain: () => insertTable(lastPreset), onCaret: () => setMenu(menu === 'table' ? null : 'table'), children: _jsx(Icon, { name: "table", size: 20, stroke: 1.6 }) }), menu === 'table' && (_jsx(VariantMenu, { ariaLabel: "\uD45C \uC2A4\uD0C0\uC77C", columns: 4, anchorRef: tableAnchor, items: presetItems, value: s.table ? s.tablePreset : lastPreset, onPick: (p) => {
|
|
321
|
+
rememberPreset(p);
|
|
322
|
+
// 표 안이면 **새로 넣지 않고** 그 표의 스타일만 바꾼다 — 표 안에 표가 생기면 안 된다
|
|
323
|
+
if (s.table)
|
|
324
|
+
c().setTablePreset(p).run();
|
|
325
|
+
else
|
|
326
|
+
insertTable(p);
|
|
327
|
+
}, onClose: close }))] }), _jsxs("div", { className: "tb-anchor", ref: diagramAnchor, children: [_jsx(SplitTile, { label: "\uB2E4\uC774\uC5B4\uADF8\uB7A8", active: s.diagram, open: menu === 'diagram', title: "\uB2E4\uC774\uC5B4\uADF8\uB7A8 \uB123\uAE30 \u2014 \uC2DC\uD000\uC2A4 (Mermaid)", caretTitle: "\uC885\uB958 \uACE0\uB974\uAE30", onMain: () => insertDiagram('sequence'), onCaret: () => setMenu(menu === 'diagram' ? null : 'diagram'), children: _jsx(Icon, { name: "diagram", size: 20, stroke: 1.6 }) }), menu === 'diagram' && (_jsx(VariantMenu, { ariaLabel: "\uB2E4\uC774\uC5B4\uADF8\uB7A8 \uC0D8\uD50C", columns: 4, anchorRef: diagramAnchor, items: diagramRows, onClose: close, onPick: (v) => insertDiagram(v) }))] }), _jsxs("div", { className: "tb-anchor", ref: linkAnchor, children: [_jsx(Tile, { title: "\uB9C1\uD06C", label: "\uB9C1\uD06C", active: s.link || menu === 'link', on: () => setMenu(menu === 'link' ? null : 'link'), children: _jsx(Icon, { name: "link", size: 20, stroke: 1.6 }) }), menu === 'link' && (_jsx(UrlPrompt, { label: "\uB9C1\uD06C \uC8FC\uC18C", placeholder: "https://", initial: s.href, anchorRef: linkAnchor, hint: s.link ? '비우고 「걸기」를 누르면 링크가 풀립니다' : undefined, submitLabel: "\uAC78\uAE30", onClose: close, onSubmit: (url) => {
|
|
328
|
+
if (url === '')
|
|
329
|
+
return c().unsetLink().run();
|
|
330
|
+
return c().setLink({ href: url }).run();
|
|
331
|
+
} }))] }), _jsxs("div", { className: "tb-anchor", ref: videoAnchor, children: [_jsx(Tile, { title: "YouTube \uC8FC\uC18C\uB85C \uC601\uC0C1 \uB123\uAE30", label: "\uBE44\uB514\uC624 \uB9C1\uD06C", active: menu === 'video', on: () => setMenu(menu === 'video' ? null : 'video'), children: _jsx(Icon, { name: "video", size: 20, stroke: 1.6 }) }), menu === 'video' && (_jsx(UrlPrompt, { label: "YouTube \uC8FC\uC18C", placeholder: "https://www.youtube.com/watch?v=...", hint: "youtube.com \u00B7 youtu.be \uC8FC\uC18C\uB97C \uBD99\uC5EC\uB123\uC73C\uC138\uC694", anchorRef: videoAnchor, onClose: close, onSubmit: (url) => !!url && c().setYoutubeVideo({ src: url }).run() }))] }), onWidth && (_jsx("div", { className: "tb-right", children: _jsx(WidthToggle, { value: width ?? 'measure', onChange: onWidth }) }))] }), _jsxs("div", { className: `tb-row tb-row-format${title || engaged ? '' : ' is-idle'}`, role: "toolbar", "aria-label": "\uC11C\uC2DD", children: [_jsx("button", { type: "button", className: "tb-sheet-btn", title: "\uB123\uAE30", "aria-label": "\uB123\uAE30", "aria-expanded": sheet, onMouseDown: (e) => e.preventDefault(), onClick: () => setSheet((v) => !v), children: _jsx(Icon, { name: "plus", size: 18 }) }), title ? (_jsx(TitleRow, { value: title.value, onChange: title.onChange })) : obj && kind && engaged && !kind.allowsText ? (kind.Row ? _jsx(kind.Row, { editor: editor, m: obj }) : null) : (_jsxs(_Fragment, { children: [_jsx(TextRow, { editor: editor }), obj && kind && engaged && kind.Row && (_jsxs(_Fragment, { children: [_jsx("span", { className: "tb-div" }), _jsx(kind.Row, { editor: editor, m: obj })] }))] }))] })] }));
|
|
332
|
+
}
|
|
333
|
+
//# sourceMappingURL=Toolbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../src/Toolbar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type RefObject } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* 주소를 받는 작은 팝오버 — `window.prompt` 를 대신한다.
|
|
4
|
+
*
|
|
5
|
+
* `prompt()` 를 쓰면 브라우저의 시스템 대화상자가 떠서 편집기와 아무 상관 없는 모양이 되고
|
|
6
|
+
*, 무엇보다 **잘못 넣었을 때 알려 줄 자리가 없다** —
|
|
7
|
+
* 유튜브가 아닌 주소를 넣으면 그냥 아무 일도 안 일어났다.
|
|
8
|
+
*
|
|
9
|
+
* 다른 팝오버와 같은 규약: `data-editor-ui` · 바깥 클릭/Esc 로 닫기 · 여는 버튼 아래 고정.
|
|
10
|
+
* 입력칸이 편집면(.ProseMirror) 밖에 있으므로 한글 조합이 ProseMirror 로 새지 않는다.
|
|
11
|
+
*/
|
|
12
|
+
export declare function UrlPrompt({ label, placeholder, initial, hint, anchorRef, onSubmit, onClose, submitLabel, width, }: {
|
|
13
|
+
label: string;
|
|
14
|
+
placeholder: string;
|
|
15
|
+
initial?: string;
|
|
16
|
+
hint?: string;
|
|
17
|
+
anchorRef: RefObject<HTMLElement | null>;
|
|
18
|
+
/** 참을 돌려주면 닫는다. 거짓이면 열어 둔 채 「주소를 못 읽었다」고 알린다. */
|
|
19
|
+
onSubmit: (value: string) => boolean;
|
|
20
|
+
onClose: () => void;
|
|
21
|
+
submitLabel?: string;
|
|
22
|
+
width?: number;
|
|
23
|
+
}): import("react").JSX.Element;
|
|
24
|
+
//# sourceMappingURL=UrlPrompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UrlPrompt.d.ts","sourceRoot":"","sources":["../src/UrlPrompt.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAKzE;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EAAE,WAAW,EAAE,OAAY,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAkB,EAAE,KAAW,GACtG,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IACxC,iDAAiD;IACjD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;IACpC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,+BAiDA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useLayoutEffect, useRef, useState } from 'react';
|
|
3
|
+
import { useDismiss } from './useDismiss.js';
|
|
4
|
+
import { useAnchoredPos } from './useAnchoredPos.js';
|
|
5
|
+
import { Portal } from './Popover.js';
|
|
6
|
+
/**
|
|
7
|
+
* 주소를 받는 작은 팝오버 — `window.prompt` 를 대신한다.
|
|
8
|
+
*
|
|
9
|
+
* `prompt()` 를 쓰면 브라우저의 시스템 대화상자가 떠서 편집기와 아무 상관 없는 모양이 되고
|
|
10
|
+
*, 무엇보다 **잘못 넣었을 때 알려 줄 자리가 없다** —
|
|
11
|
+
* 유튜브가 아닌 주소를 넣으면 그냥 아무 일도 안 일어났다.
|
|
12
|
+
*
|
|
13
|
+
* 다른 팝오버와 같은 규약: `data-editor-ui` · 바깥 클릭/Esc 로 닫기 · 여는 버튼 아래 고정.
|
|
14
|
+
* 입력칸이 편집면(.ProseMirror) 밖에 있으므로 한글 조합이 ProseMirror 로 새지 않는다.
|
|
15
|
+
*/
|
|
16
|
+
export function UrlPrompt({ label, placeholder, initial = '', hint, anchorRef, onSubmit, onClose, submitLabel = '넣기', width = 330, }) {
|
|
17
|
+
const ref = useRef(null);
|
|
18
|
+
const input = useRef(null);
|
|
19
|
+
const [value, setValue] = useState(initial);
|
|
20
|
+
const [bad, setBad] = useState(false);
|
|
21
|
+
const pos = useAnchoredPos(anchorRef, true, width, ref);
|
|
22
|
+
useDismiss(true, ref, onClose, anchorRef);
|
|
23
|
+
/**
|
|
24
|
+
* 포커스는 **포털로 옮겨간 뒤**에 준다.
|
|
25
|
+
* 첫 렌더에서는 좌표가 없어 제자리에 그려지고, 좌표가 잡히면 body 로 옮겨진다.
|
|
26
|
+
* 옮겨질 때 입력칸 DOM 이 새로 만들어지므로 먼저 준 포커스는 그대로 날아간다.
|
|
27
|
+
*/
|
|
28
|
+
const focused = useRef(false);
|
|
29
|
+
useLayoutEffect(() => {
|
|
30
|
+
if (!pos || focused.current)
|
|
31
|
+
return;
|
|
32
|
+
focused.current = true;
|
|
33
|
+
input.current?.focus();
|
|
34
|
+
input.current?.select();
|
|
35
|
+
}, [pos]);
|
|
36
|
+
const submit = () => {
|
|
37
|
+
if (onSubmit(value.trim()))
|
|
38
|
+
onClose();
|
|
39
|
+
else {
|
|
40
|
+
setBad(true);
|
|
41
|
+
input.current?.focus();
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
return (_jsx(Portal, { active: !!pos, children: _jsxs("div", { "data-editor-ui": "", ref: ref, role: "dialog", "aria-label": label, className: `up${pos ? ' is-fixed' : ''}`, style: { width, ...(pos ? { position: 'fixed', left: pos.left, top: pos.top } : null) }, children: [_jsx("div", { className: "up-head", children: label }), _jsx("input", { ref: input, className: `up-input${bad ? ' is-bad' : ''}`, type: "url", inputMode: "url", placeholder: placeholder, value: value, spellCheck: false, onChange: (e) => { setValue(e.target.value); setBad(false); }, onKeyDown: (e) => {
|
|
45
|
+
if (e.key === 'Enter') {
|
|
46
|
+
e.preventDefault();
|
|
47
|
+
submit();
|
|
48
|
+
}
|
|
49
|
+
// Esc 는 useDismiss 가 받는다. 여기서 멈춰 두지 않으면 편집면까지 흘러간다.
|
|
50
|
+
e.stopPropagation();
|
|
51
|
+
} }), (bad || hint) && (_jsx("p", { className: `up-hint${bad ? ' is-bad' : ''}`, children: bad ? '주소를 읽지 못했습니다. 다시 확인해 주세요.' : hint })), _jsxs("div", { className: "up-foot", children: [_jsx("button", { type: "button", className: "up-cancel", onMouseDown: (e) => e.preventDefault(), onClick: onClose, children: "\uCDE8\uC18C" }), _jsx("button", { type: "button", className: "up-ok", onMouseDown: (e) => e.preventDefault(), onClick: submit, children: submitLabel })] })] }) }));
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=UrlPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UrlPrompt.js","sourceRoot":"","sources":["../src/UrlPrompt.tsx"],"names":[],"mappings":"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"}
|