@actuate-media/cms-admin 0.11.0 → 0.12.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/LICENSE +21 -21
- package/dist/__tests__/components/comment-mark.test.d.ts +2 -0
- package/dist/__tests__/components/comment-mark.test.d.ts.map +1 -0
- package/dist/__tests__/components/comment-mark.test.js +89 -0
- package/dist/__tests__/components/comment-mark.test.js.map +1 -0
- package/dist/__tests__/components/comment-side-panel.test.d.ts +2 -0
- package/dist/__tests__/components/comment-side-panel.test.d.ts.map +1 -0
- package/dist/__tests__/components/comment-side-panel.test.js +291 -0
- package/dist/__tests__/components/comment-side-panel.test.js.map +1 -0
- package/dist/__tests__/components/notification-bell.test.d.ts +2 -0
- package/dist/__tests__/components/notification-bell.test.d.ts.map +1 -0
- package/dist/__tests__/components/notification-bell.test.js +200 -0
- package/dist/__tests__/components/notification-bell.test.js.map +1 -0
- package/dist/__tests__/components/offline-status.test.d.ts +2 -0
- package/dist/__tests__/components/offline-status.test.d.ts.map +1 -0
- package/dist/__tests__/components/offline-status.test.js +56 -0
- package/dist/__tests__/components/offline-status.test.js.map +1 -0
- package/dist/__tests__/components/presence-chips-helpers.test.d.ts +2 -0
- package/dist/__tests__/components/presence-chips-helpers.test.d.ts.map +1 -0
- package/dist/__tests__/components/presence-chips-helpers.test.js +35 -0
- package/dist/__tests__/components/presence-chips-helpers.test.js.map +1 -0
- package/dist/__tests__/fields/component-block-helpers.test.d.ts +7 -0
- package/dist/__tests__/fields/component-block-helpers.test.d.ts.map +1 -0
- package/dist/__tests__/fields/component-block-helpers.test.js +592 -0
- package/dist/__tests__/fields/component-block-helpers.test.js.map +1 -0
- package/dist/__tests__/lib/active-editor.test.d.ts +2 -0
- package/dist/__tests__/lib/active-editor.test.d.ts.map +1 -0
- package/dist/__tests__/lib/active-editor.test.js +57 -0
- package/dist/__tests__/lib/active-editor.test.js.map +1 -0
- package/dist/__tests__/lib/coauthor-client.test.d.ts +2 -0
- package/dist/__tests__/lib/coauthor-client.test.d.ts.map +1 -0
- package/dist/__tests__/lib/coauthor-client.test.js +173 -0
- package/dist/__tests__/lib/coauthor-client.test.js.map +1 -0
- package/dist/__tests__/lib/collaboration-provider.test.d.ts +2 -0
- package/dist/__tests__/lib/collaboration-provider.test.d.ts.map +1 -0
- package/dist/__tests__/lib/collaboration-provider.test.js +335 -0
- package/dist/__tests__/lib/collaboration-provider.test.js.map +1 -0
- package/dist/__tests__/lib/comment-anchor.test.d.ts +2 -0
- package/dist/__tests__/lib/comment-anchor.test.d.ts.map +1 -0
- package/dist/__tests__/lib/comment-anchor.test.js +173 -0
- package/dist/__tests__/lib/comment-anchor.test.js.map +1 -0
- package/dist/__tests__/lib/comments-client.test.d.ts +2 -0
- package/dist/__tests__/lib/comments-client.test.d.ts.map +1 -0
- package/dist/__tests__/lib/comments-client.test.js +202 -0
- package/dist/__tests__/lib/comments-client.test.js.map +1 -0
- package/dist/__tests__/lib/notifications-client.test.d.ts +2 -0
- package/dist/__tests__/lib/notifications-client.test.d.ts.map +1 -0
- package/dist/__tests__/lib/notifications-client.test.js +155 -0
- package/dist/__tests__/lib/notifications-client.test.js.map +1 -0
- package/dist/__tests__/lib/slash-command.test.d.ts +2 -0
- package/dist/__tests__/lib/slash-command.test.d.ts.map +1 -0
- package/dist/__tests__/lib/slash-command.test.js +123 -0
- package/dist/__tests__/lib/slash-command.test.js.map +1 -0
- package/dist/actuate-admin.css +1 -1
- package/dist/components/AICoauthorBubbleMenu.d.ts +18 -0
- package/dist/components/AICoauthorBubbleMenu.d.ts.map +1 -0
- package/dist/components/AICoauthorBubbleMenu.js +113 -0
- package/dist/components/AICoauthorBubbleMenu.js.map +1 -0
- package/dist/components/CoauthorResultPopover.d.ts +28 -0
- package/dist/components/CoauthorResultPopover.d.ts.map +1 -0
- package/dist/components/CoauthorResultPopover.js +42 -0
- package/dist/components/CoauthorResultPopover.js.map +1 -0
- package/dist/components/CommandPalette.d.ts +1 -1
- package/dist/components/CommandPalette.d.ts.map +1 -1
- package/dist/components/CommandPalette.js +138 -40
- package/dist/components/CommandPalette.js.map +1 -1
- package/dist/components/CommentMark.d.ts +54 -0
- package/dist/components/CommentMark.d.ts.map +1 -0
- package/dist/components/CommentMark.js +104 -0
- package/dist/components/CommentMark.js.map +1 -0
- package/dist/components/CommentSidePanel.d.ts +86 -0
- package/dist/components/CommentSidePanel.d.ts.map +1 -0
- package/dist/components/CommentSidePanel.js +165 -0
- package/dist/components/CommentSidePanel.js.map +1 -0
- package/dist/components/LivePreview.d.ts.map +1 -1
- package/dist/components/LivePreview.js +80 -16
- package/dist/components/LivePreview.js.map +1 -1
- package/dist/components/NotificationBell.d.ts +45 -0
- package/dist/components/NotificationBell.d.ts.map +1 -0
- package/dist/components/NotificationBell.js +90 -0
- package/dist/components/NotificationBell.js.map +1 -0
- package/dist/components/OfflineStatus.d.ts +39 -0
- package/dist/components/OfflineStatus.d.ts.map +1 -0
- package/dist/components/OfflineStatus.js +47 -0
- package/dist/components/OfflineStatus.js.map +1 -0
- package/dist/components/PresenceChips.d.ts +31 -0
- package/dist/components/PresenceChips.d.ts.map +1 -0
- package/dist/components/PresenceChips.js +58 -0
- package/dist/components/PresenceChips.js.map +1 -0
- package/dist/components/TipTapEditor.d.ts +61 -1
- package/dist/components/TipTapEditor.d.ts.map +1 -1
- package/dist/components/TipTapEditor.js +211 -8
- package/dist/components/TipTapEditor.js.map +1 -1
- package/dist/components/ui/Badge.d.ts +1 -1
- package/dist/fields/ComponentBlockField.d.ts +25 -0
- package/dist/fields/ComponentBlockField.d.ts.map +1 -0
- package/dist/fields/ComponentBlockField.js +74 -0
- package/dist/fields/ComponentBlockField.js.map +1 -0
- package/dist/fields/FieldRenderer.d.ts +3 -0
- package/dist/fields/FieldRenderer.d.ts.map +1 -1
- package/dist/fields/FieldRenderer.js +3 -1
- package/dist/fields/FieldRenderer.js.map +1 -1
- package/dist/fields/PropInput.d.ts +14 -0
- package/dist/fields/PropInput.d.ts.map +1 -0
- package/dist/fields/PropInput.js +163 -0
- package/dist/fields/PropInput.js.map +1 -0
- package/dist/fields/component-block-helpers.d.ts +96 -0
- package/dist/fields/component-block-helpers.d.ts.map +1 -0
- package/dist/fields/component-block-helpers.js +323 -0
- package/dist/fields/component-block-helpers.js.map +1 -0
- package/dist/fields/index.d.ts +4 -0
- package/dist/fields/index.d.ts.map +1 -1
- package/dist/fields/index.js +2 -0
- package/dist/fields/index.js.map +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/active-editor.d.ts +6 -0
- package/dist/lib/active-editor.d.ts.map +1 -0
- package/dist/lib/active-editor.js +35 -0
- package/dist/lib/active-editor.js.map +1 -0
- package/dist/lib/coauthor-client.d.ts +72 -0
- package/dist/lib/coauthor-client.d.ts.map +1 -0
- package/dist/lib/coauthor-client.js +98 -0
- package/dist/lib/coauthor-client.js.map +1 -0
- package/dist/lib/collaboration-provider.d.ts +142 -0
- package/dist/lib/collaboration-provider.d.ts.map +1 -0
- package/dist/lib/collaboration-provider.js +168 -0
- package/dist/lib/collaboration-provider.js.map +1 -0
- package/dist/lib/comment-anchor.d.ts +86 -0
- package/dist/lib/comment-anchor.d.ts.map +1 -0
- package/dist/lib/comment-anchor.js +139 -0
- package/dist/lib/comment-anchor.js.map +1 -0
- package/dist/lib/comments-client.d.ts +106 -0
- package/dist/lib/comments-client.d.ts.map +1 -0
- package/dist/lib/comments-client.js +138 -0
- package/dist/lib/comments-client.js.map +1 -0
- package/dist/lib/notifications-client.d.ts +68 -0
- package/dist/lib/notifications-client.d.ts.map +1 -0
- package/dist/lib/notifications-client.js +85 -0
- package/dist/lib/notifications-client.js.map +1 -0
- package/dist/lib/slash-command.d.ts +39 -0
- package/dist/lib/slash-command.d.ts.map +1 -0
- package/dist/lib/slash-command.js +50 -0
- package/dist/lib/slash-command.js.map +1 -0
- package/package.json +20 -4
- package/src/__tests__/components/comment-mark.test.ts +99 -0
- package/src/__tests__/components/comment-side-panel.test.tsx +343 -0
- package/src/__tests__/components/notification-bell.test.tsx +213 -0
- package/src/__tests__/components/offline-status.test.tsx +66 -0
- package/src/__tests__/components/presence-chips-helpers.test.ts +44 -0
- package/src/__tests__/fields/component-block-helpers.test.ts +674 -0
- package/src/__tests__/lib/active-editor.test.ts +70 -0
- package/src/__tests__/lib/coauthor-client.test.ts +213 -0
- package/src/__tests__/lib/collaboration-provider.test.ts +425 -0
- package/src/__tests__/lib/comment-anchor.test.ts +188 -0
- package/src/__tests__/lib/comments-client.test.ts +239 -0
- package/src/__tests__/lib/notifications-client.test.ts +195 -0
- package/src/__tests__/lib/slash-command.test.ts +146 -0
- package/src/components/AICoauthorBubbleMenu.tsx +187 -0
- package/src/components/CoauthorResultPopover.tsx +193 -0
- package/src/components/CommandPalette.tsx +397 -209
- package/src/components/CommentMark.ts +138 -0
- package/src/components/CommentSidePanel.tsx +521 -0
- package/src/components/LivePreview.tsx +117 -11
- package/src/components/NotificationBell.tsx +242 -0
- package/src/components/OfflineStatus.tsx +90 -0
- package/src/components/PresenceChips.tsx +150 -0
- package/src/components/TipTapEditor.tsx +310 -12
- package/src/fields/ComponentBlockField.tsx +179 -0
- package/src/fields/FieldRenderer.tsx +8 -0
- package/src/fields/PropInput.tsx +552 -0
- package/src/fields/component-block-helpers.ts +341 -0
- package/src/fields/index.ts +4 -0
- package/src/index.ts +27 -0
- package/src/lib/active-editor.ts +39 -0
- package/src/lib/coauthor-client.ts +160 -0
- package/src/lib/collaboration-provider.ts +306 -0
- package/src/lib/comment-anchor.ts +179 -0
- package/src/lib/comments-client.ts +208 -0
- package/src/lib/notifications-client.ts +146 -0
- package/src/lib/slash-command.ts +67 -0
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useState } from 'react';
|
|
3
|
+
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
4
4
|
import { useEditor, EditorContent } from '@tiptap/react';
|
|
5
5
|
import { MediaPickerModal } from './MediaPickerModal.js';
|
|
6
|
+
import { AICoauthorBubbleMenu } from './AICoauthorBubbleMenu.js';
|
|
7
|
+
import { PresenceChips } from './PresenceChips.js';
|
|
8
|
+
import { OfflineStatus } from './OfflineStatus.js';
|
|
9
|
+
import { CommentMark, COMMENT_MARK_STYLES } from './CommentMark.js';
|
|
10
|
+
import { CommentSidePanel } from './CommentSidePanel.js';
|
|
11
|
+
import { clearActiveEditorIf, setActiveEditor } from '../lib/active-editor.js';
|
|
12
|
+
import { createCollaborationProvider, } from '../lib/collaboration-provider.js';
|
|
13
|
+
import { encodeAnchor } from '../lib/comment-anchor.js';
|
|
14
|
+
import * as Y from 'yjs';
|
|
6
15
|
import StarterKit from '@tiptap/starter-kit';
|
|
7
16
|
import UnderlineExt from '@tiptap/extension-underline';
|
|
8
17
|
import Link from '@tiptap/extension-link';
|
|
@@ -15,6 +24,8 @@ import TextAlign from '@tiptap/extension-text-align';
|
|
|
15
24
|
import Placeholder from '@tiptap/extension-placeholder';
|
|
16
25
|
import CodeBlockLowlight from '@tiptap/extension-code-block-lowlight';
|
|
17
26
|
import HorizontalRule from '@tiptap/extension-horizontal-rule';
|
|
27
|
+
import Collaboration from '@tiptap/extension-collaboration';
|
|
28
|
+
import CollaborationCursor from '@tiptap/extension-collaboration-cursor';
|
|
18
29
|
import { common, createLowlight } from 'lowlight';
|
|
19
30
|
import { Bold, Italic, Underline, Strikethrough, Code, Heading1, Heading2, Heading3, List, ListOrdered, Quote, FileCode, Minus, AlignLeft, AlignCenter, AlignRight, Link as LinkIcon, Image as ImageIcon, Table as TableIcon, Columns, Rows, Trash2, Undo, Redo, } from 'lucide-react';
|
|
20
31
|
const lowlight = createLowlight(common);
|
|
@@ -123,13 +134,63 @@ function Toolbar({ editor, onOpenMediaPicker }) {
|
|
|
123
134
|
const isInTable = editor.isActive('table');
|
|
124
135
|
return (_jsxs("div", { className: "sticky top-0 z-10 flex flex-wrap items-center gap-0.5 border-b border-gray-200 bg-gray-50 p-2", children: [_jsx(ToolbarButton, { onClick: () => editor.chain().focus().toggleBold().run(), isActive: editor.isActive('bold'), title: "Bold (Ctrl+B)", children: _jsx(Bold, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().toggleItalic().run(), isActive: editor.isActive('italic'), title: "Italic (Ctrl+I)", children: _jsx(Italic, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().toggleUnderline().run(), isActive: editor.isActive('underline'), title: "Underline (Ctrl+U)", children: _jsx(Underline, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().toggleStrike().run(), isActive: editor.isActive('strike'), title: "Strikethrough", children: _jsx(Strikethrough, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().toggleCode().run(), isActive: editor.isActive('code'), title: "Inline code", children: _jsx(Code, { className: "h-4 w-4" }) }), _jsx(Divider, {}), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().toggleHeading({ level: 1 }).run(), isActive: editor.isActive('heading', { level: 1 }), title: "Heading 1", children: _jsx(Heading1, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().toggleHeading({ level: 2 }).run(), isActive: editor.isActive('heading', { level: 2 }), title: "Heading 2", children: _jsx(Heading2, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().toggleHeading({ level: 3 }).run(), isActive: editor.isActive('heading', { level: 3 }), title: "Heading 3", children: _jsx(Heading3, { className: "h-4 w-4" }) }), _jsx(Divider, {}), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().toggleBulletList().run(), isActive: editor.isActive('bulletList'), title: "Bullet list", children: _jsx(List, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().toggleOrderedList().run(), isActive: editor.isActive('orderedList'), title: "Ordered list", children: _jsx(ListOrdered, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().toggleBlockquote().run(), isActive: editor.isActive('blockquote'), title: "Blockquote", children: _jsx(Quote, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().toggleCodeBlock().run(), isActive: editor.isActive('codeBlock'), title: "Code block", children: _jsx(FileCode, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().setHorizontalRule().run(), title: "Horizontal rule", children: _jsx(Minus, { className: "h-4 w-4" }) }), _jsx(Divider, {}), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().setTextAlign('left').run(), isActive: editor.isActive({ textAlign: 'left' }), title: "Align left", children: _jsx(AlignLeft, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().setTextAlign('center').run(), isActive: editor.isActive({ textAlign: 'center' }), title: "Align center", children: _jsx(AlignCenter, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().setTextAlign('right').run(), isActive: editor.isActive({ textAlign: 'right' }), title: "Align right", children: _jsx(AlignRight, { className: "h-4 w-4" }) }), _jsx(Divider, {}), _jsx(ToolbarButton, { onClick: addLink, isActive: editor.isActive('link'), title: "Insert link", children: _jsx(LinkIcon, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: onOpenMediaPicker, title: "Insert image", children: _jsx(ImageIcon, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: insertTable, title: "Insert table (3\u00D73)", children: _jsx(TableIcon, { className: "h-4 w-4" }) }), isInTable && (_jsxs(_Fragment, { children: [_jsx(Divider, {}), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().addColumnBefore().run(), title: "Add column before", children: _jsx(Columns, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().addColumnAfter().run(), title: "Add column after", children: _jsx(Columns, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().deleteColumn().run(), title: "Delete column", children: _jsx(Columns, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().addRowBefore().run(), title: "Add row before", children: _jsx(Rows, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().addRowAfter().run(), title: "Add row after", children: _jsx(Rows, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().deleteRow().run(), title: "Delete row", children: _jsx(Rows, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().deleteTable().run(), title: "Delete table", children: _jsx(Trash2, { className: "h-4 w-4" }) })] })), _jsx(Divider, {}), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().undo().run(), disabled: !editor.can().undo(), title: "Undo", children: _jsx(Undo, { className: "h-4 w-4" }) }), _jsx(ToolbarButton, { onClick: () => editor.chain().focus().redo().run(), disabled: !editor.can().redo(), title: "Redo", children: _jsx(Redo, { className: "h-4 w-4" }) })] }));
|
|
125
136
|
}
|
|
126
|
-
export function TipTapEditor({ content, onChange, placeholder, editable = true, className, }) {
|
|
137
|
+
export function TipTapEditor({ content, onChange, placeholder, editable = true, className, enableAI = true, collaboration, comments, }) {
|
|
127
138
|
const [mediaPickerOpen, setMediaPickerOpen] = useState(false);
|
|
128
|
-
|
|
129
|
-
|
|
139
|
+
// The collaboration context is created once per (documentId, url) tuple
|
|
140
|
+
// and torn down on prop changes / unmount. We deliberately key on a
|
|
141
|
+
// stringified tuple so swapping users keeps the same Y.Doc (their seat at
|
|
142
|
+
// the document doesn't drop) while swapping documents creates a new one.
|
|
143
|
+
const collabKey = collaboration ? `${collaboration.documentId}::${collaboration.url}` : null;
|
|
144
|
+
const collabRef = useRef(null);
|
|
145
|
+
const [collabStatus, setCollabStatus] = useState('connecting');
|
|
146
|
+
const [offlineStatus, setOfflineStatus] = useState('pending');
|
|
147
|
+
useEffect(() => {
|
|
148
|
+
if (!collaboration) {
|
|
149
|
+
collabRef.current = null;
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const ctx = createCollaborationProvider({
|
|
153
|
+
documentId: collaboration.documentId,
|
|
154
|
+
url: collaboration.url,
|
|
155
|
+
user: collaboration.user,
|
|
156
|
+
params: collaboration.params,
|
|
157
|
+
onStatus: setCollabStatus,
|
|
158
|
+
onOfflineStatus: setOfflineStatus,
|
|
159
|
+
});
|
|
160
|
+
collabRef.current = ctx;
|
|
161
|
+
return () => {
|
|
162
|
+
ctx.destroy();
|
|
163
|
+
if (collabRef.current === ctx)
|
|
164
|
+
collabRef.current = null;
|
|
165
|
+
};
|
|
166
|
+
// We rely on collabKey to scope effect identity. user / params are
|
|
167
|
+
// tolerated to mutate freely; the Yjs awareness state is updated
|
|
168
|
+
// separately in the awareness-seeding effect below.
|
|
169
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
170
|
+
}, [collabKey]);
|
|
171
|
+
// Keep the local awareness state in sync with user info changes without
|
|
172
|
+
// tearing down the collaboration session.
|
|
173
|
+
useEffect(() => {
|
|
174
|
+
if (!collaboration || !collabRef.current)
|
|
175
|
+
return;
|
|
176
|
+
collabRef.current.awareness.setLocalState({ user: collaboration.user });
|
|
177
|
+
}, [
|
|
178
|
+
collaboration?.user.name,
|
|
179
|
+
collaboration?.user.color,
|
|
180
|
+
collaboration?.user.avatarUrl,
|
|
181
|
+
collaboration?.user.userId,
|
|
182
|
+
collaboration,
|
|
183
|
+
]);
|
|
184
|
+
const extensions = useMemo(() => {
|
|
185
|
+
// The TipTap extension union is hostile to mutation (the inferred
|
|
186
|
+
// element type is too narrow). We collect into `unknown[]` and let
|
|
187
|
+
// `useEditor`'s prop typing carry the contract from the call site.
|
|
188
|
+
const base = [
|
|
130
189
|
StarterKit.configure({
|
|
131
190
|
codeBlock: false,
|
|
132
191
|
horizontalRule: false,
|
|
192
|
+
// History is owned by Yjs when collaboration is enabled.
|
|
193
|
+
history: collaboration ? false : undefined,
|
|
133
194
|
}),
|
|
134
195
|
UnderlineExt,
|
|
135
196
|
Link.configure({
|
|
@@ -150,13 +211,48 @@ export function TipTapEditor({ content, onChange, placeholder, editable = true,
|
|
|
150
211
|
}),
|
|
151
212
|
CodeBlockLowlight.configure({ lowlight }),
|
|
152
213
|
HorizontalRule,
|
|
153
|
-
]
|
|
154
|
-
|
|
214
|
+
];
|
|
215
|
+
if (collaboration && collabRef.current) {
|
|
216
|
+
base.push(Collaboration.configure({ document: collabRef.current.ydoc }), CollaborationCursor.configure({
|
|
217
|
+
provider: collabRef.current.provider,
|
|
218
|
+
user: collaboration.user,
|
|
219
|
+
}));
|
|
220
|
+
}
|
|
221
|
+
if (comments) {
|
|
222
|
+
base.push(CommentMark);
|
|
223
|
+
}
|
|
224
|
+
return base;
|
|
225
|
+
// Re-derive extensions when the collaboration session or comments
|
|
226
|
+
// toggle changes.
|
|
227
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
228
|
+
}, [collabKey, placeholder, comments != null]);
|
|
229
|
+
const editor = useEditor({
|
|
230
|
+
// TipTap's `Extensions` type is the union of every loaded extension's
|
|
231
|
+
// typed shape, which we can't satisfy when we conditionally append
|
|
232
|
+
// collaboration extensions. The runtime contract is correct — TipTap
|
|
233
|
+
// duck-types — so we cast through the narrow `any` slot.
|
|
234
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
235
|
+
extensions: extensions,
|
|
236
|
+
// When collaboration is enabled the Y.Doc is the source of truth; we
|
|
237
|
+
// pass `content: ''` to avoid double-applying the initial HTML.
|
|
238
|
+
content: collaboration ? '' : content,
|
|
155
239
|
editable: editable !== false,
|
|
156
240
|
onUpdate: ({ editor: ed }) => {
|
|
157
241
|
onChange(ed.getHTML());
|
|
158
242
|
},
|
|
159
|
-
|
|
243
|
+
onFocus: ({ editor: ed }) => {
|
|
244
|
+
setActiveEditor(ed);
|
|
245
|
+
},
|
|
246
|
+
},
|
|
247
|
+
// Force re-init when collaboration extensions change.
|
|
248
|
+
[collabKey]);
|
|
249
|
+
useEffect(() => {
|
|
250
|
+
if (!editor)
|
|
251
|
+
return;
|
|
252
|
+
return () => {
|
|
253
|
+
clearActiveEditorIf(editor);
|
|
254
|
+
};
|
|
255
|
+
}, [editor]);
|
|
160
256
|
if (!editor)
|
|
161
257
|
return null;
|
|
162
258
|
const handleImageSelected = (url, alt) => {
|
|
@@ -166,6 +262,113 @@ export function TipTapEditor({ content, onChange, placeholder, editable = true,
|
|
|
166
262
|
.setImage({ src: url, alt: alt ?? '' })
|
|
167
263
|
.run();
|
|
168
264
|
};
|
|
169
|
-
|
|
265
|
+
const awareness = collabRef.current?.awareness ?? null;
|
|
266
|
+
/**
|
|
267
|
+
* Encode an anchor for the current selection. Returns `null` when the
|
|
268
|
+
* selection is empty (the panel falls back to a doc-level comment),
|
|
269
|
+
* or when collaboration isn't enabled (we have no Yjs text node to
|
|
270
|
+
* anchor against — slice 5's anchors are CRDT-relative by design).
|
|
271
|
+
*/
|
|
272
|
+
const composeAnchor = () => {
|
|
273
|
+
if (!collabRef.current)
|
|
274
|
+
return null;
|
|
275
|
+
const sel = editor.state.selection;
|
|
276
|
+
if (sel.empty)
|
|
277
|
+
return null;
|
|
278
|
+
// The Y.Doc shape that TipTap collaboration uses is
|
|
279
|
+
// doc.getXmlFragment('default') → [paragraph, …] → [text, …]
|
|
280
|
+
// We anchor against the first XmlText child of the paragraph that
|
|
281
|
+
// contains the selection start. This is the simple-but-correct
|
|
282
|
+
// single-node case; multi-paragraph selections fall back to a
|
|
283
|
+
// doc-level comment (anchor: null) and the user can re-anchor
|
|
284
|
+
// later.
|
|
285
|
+
const fragment = collabRef.current.ydoc.getXmlFragment('default');
|
|
286
|
+
const yType = findTextNodeForPosition(fragment, sel.from);
|
|
287
|
+
if (!yType)
|
|
288
|
+
return null;
|
|
289
|
+
// The relative offset within the text node mirrors the PM offset
|
|
290
|
+
// minus the paragraph's opening token. For the canonical single-
|
|
291
|
+
// text-child case this is `sel.from - paragraphStart - 1`.
|
|
292
|
+
const offset = computeTextOffset(fragment, sel.from);
|
|
293
|
+
if (offset === null)
|
|
294
|
+
return null;
|
|
295
|
+
return encodeAnchor({
|
|
296
|
+
doc: collabRef.current.ydoc,
|
|
297
|
+
yType,
|
|
298
|
+
from: offset,
|
|
299
|
+
to: offset + (sel.to - sel.from),
|
|
300
|
+
});
|
|
301
|
+
};
|
|
302
|
+
const editorPane = (_jsxs("div", { className: `flex-1 overflow-hidden rounded-lg border border-gray-200 bg-white ${className ?? ''}`, children: [collaboration && awareness && (_jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-gray-100 bg-white px-2 py-1.5", children: [_jsx(PresenceChips, { awareness: awareness, status: collabStatus }), _jsx(OfflineStatus, { connection: collabStatus, offline: offlineStatus })] })), editable && _jsx(Toolbar, { editor: editor, onOpenMediaPicker: () => setMediaPickerOpen(true) }), editable && enableAI && _jsx(AICoauthorBubbleMenu, { editor: editor }), _jsx(EditorContent, { editor: editor }), _jsx("style", { dangerouslySetInnerHTML: { __html: editorStyles + COMMENT_MARK_STYLES } }), _jsx(MediaPickerModal, { open: mediaPickerOpen, onClose: () => setMediaPickerOpen(false), onSelect: handleImageSelected, accept: "image/*" })] }));
|
|
303
|
+
if (!comments)
|
|
304
|
+
return editorPane;
|
|
305
|
+
return (_jsxs("div", { className: "flex h-full gap-3", children: [editorPane, _jsx("div", { className: "w-80 shrink-0", children: _jsx(CommentSidePanel, { documentId: comments.documentId, currentUserId: comments.currentUserId, isAdmin: comments.isAdmin, onComposeAnchor: composeAnchor, onError: comments.onError, onActiveCommentChange: (id) => {
|
|
306
|
+
// When a thread is opened in the panel, paint the matching
|
|
307
|
+
// CommentMark with the active modifier so it stands out in
|
|
308
|
+
// the doc. We do this by toggling a class on the rendered
|
|
309
|
+
// span — purely visual; no doc mutation.
|
|
310
|
+
if (typeof document === 'undefined')
|
|
311
|
+
return;
|
|
312
|
+
document
|
|
313
|
+
.querySelectorAll('span.actuate-comment--active')
|
|
314
|
+
.forEach((el) => el.classList.remove('actuate-comment--active'));
|
|
315
|
+
if (id) {
|
|
316
|
+
document
|
|
317
|
+
.querySelectorAll(`span[data-comment-id="${cssEscape(id)}"]`)
|
|
318
|
+
.forEach((el) => el.classList.add('actuate-comment--active'));
|
|
319
|
+
}
|
|
320
|
+
} }) })] }));
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Walk the XmlFragment's children until we reach the paragraph
|
|
324
|
+
* containing the given ProseMirror position. Return its first XmlText
|
|
325
|
+
* child, or null when the structure is anything other than the canonical
|
|
326
|
+
* `paragraph → [text]` shape we anchor against.
|
|
327
|
+
*
|
|
328
|
+
* This is the *simple-case* mapping — slice 5 anchors to a single text
|
|
329
|
+
* node per comment. Selections that span multiple paragraphs fall back
|
|
330
|
+
* to a document-level comment (anchor: null) and the user can re-anchor
|
|
331
|
+
* later from the side panel. y-prosemirror has a richer mapping we may
|
|
332
|
+
* pull in once slice 5 ships.
|
|
333
|
+
*/
|
|
334
|
+
function findTextNodeForPosition(fragment, pmPos) {
|
|
335
|
+
let walked = 0;
|
|
336
|
+
for (const child of fragment.toArray()) {
|
|
337
|
+
if (!(child instanceof Y.XmlElement))
|
|
338
|
+
continue;
|
|
339
|
+
const textChild = child.firstChild;
|
|
340
|
+
const textLen = textChild instanceof Y.XmlText ? textChild.length : 0;
|
|
341
|
+
// Each paragraph contributes `1 + textLen + 1` PM positions
|
|
342
|
+
// (open token, contents, close token).
|
|
343
|
+
const blockSpan = 2 + textLen;
|
|
344
|
+
if (pmPos <= walked + blockSpan) {
|
|
345
|
+
return textChild instanceof Y.XmlText ? textChild : null;
|
|
346
|
+
}
|
|
347
|
+
walked += blockSpan;
|
|
348
|
+
}
|
|
349
|
+
return null;
|
|
350
|
+
}
|
|
351
|
+
function computeTextOffset(fragment, pmPos) {
|
|
352
|
+
let walked = 0;
|
|
353
|
+
for (const child of fragment.toArray()) {
|
|
354
|
+
if (!(child instanceof Y.XmlElement))
|
|
355
|
+
continue;
|
|
356
|
+
const textChild = child.firstChild;
|
|
357
|
+
const textLen = textChild instanceof Y.XmlText ? textChild.length : 0;
|
|
358
|
+
const blockSpan = 2 + textLen;
|
|
359
|
+
if (pmPos <= walked + blockSpan) {
|
|
360
|
+
// PM positions skip the paragraph's open token (1 char).
|
|
361
|
+
const inside = pmPos - walked - 1;
|
|
362
|
+
if (inside < 0 || inside > textLen)
|
|
363
|
+
return null;
|
|
364
|
+
return inside;
|
|
365
|
+
}
|
|
366
|
+
walked += blockSpan;
|
|
367
|
+
}
|
|
368
|
+
return null;
|
|
369
|
+
}
|
|
370
|
+
/** Cheap CSS attr-value escaper for `data-comment-id` lookups. */
|
|
371
|
+
function cssEscape(value) {
|
|
372
|
+
return value.replace(/(["\\])/g, '\\$1');
|
|
170
373
|
}
|
|
171
374
|
//# sourceMappingURL=TipTapEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TipTapEditor.js","sourceRoot":"","sources":["../../src/components/TipTapEditor.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TipTapEditor.js","sourceRoot":"","sources":["../../src/components/TipTapEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { HTMLAttributes, ReactNode } from 'react';
|
|
2
2
|
import { type VariantProps } from '../../lib/cv.js';
|
|
3
3
|
declare const badge: (props?: ({
|
|
4
|
-
tone?: "primary" | "danger" | "neutral" | "success" | "warning" |
|
|
4
|
+
tone?: "info" | "primary" | "danger" | "neutral" | "success" | "warning" | undefined;
|
|
5
5
|
size?: "sm" | "md" | "lg" | undefined;
|
|
6
6
|
} & {
|
|
7
7
|
class?: string | false | null | undefined;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Manifest } from '@actuate-media/component-blocks';
|
|
2
|
+
export interface ComponentBlockValue {
|
|
3
|
+
component: string;
|
|
4
|
+
props: Record<string, unknown>;
|
|
5
|
+
}
|
|
6
|
+
export interface ComponentBlockFieldProps {
|
|
7
|
+
label?: string;
|
|
8
|
+
manifest: Manifest;
|
|
9
|
+
/** Optional whitelist of component names. */
|
|
10
|
+
allow?: string[];
|
|
11
|
+
/** Default component picked when the field is first used. */
|
|
12
|
+
defaultComponent?: string;
|
|
13
|
+
value?: ComponentBlockValue;
|
|
14
|
+
onChange: (value: ComponentBlockValue) => void;
|
|
15
|
+
/**
|
|
16
|
+
* Optional async validator hook. Receives the proposed value and the
|
|
17
|
+
* field config; should return `true` for ok or a string error.
|
|
18
|
+
* Falls back to a built-in structural validator when not provided —
|
|
19
|
+
* which is what cms-core would do server-side at save time anyway.
|
|
20
|
+
*/
|
|
21
|
+
validate?: (value: ComponentBlockValue) => string | true;
|
|
22
|
+
helpText?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare function ComponentBlockField({ label, manifest, allow, defaultComponent, value, onChange, validate, helpText, }: ComponentBlockFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
//# sourceMappingURL=ComponentBlockField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComponentBlockField.d.ts","sourceRoot":"","sources":["../../src/fields/ComponentBlockField.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAU/D,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,QAAQ,CAAA;IAClB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,mBAAmB,CAAA;IAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAA;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,MAAM,GAAG,IAAI,CAAA;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,KAAK,EACL,gBAAgB,EAChB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,EAAE,wBAAwB,2CAmH1B"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* Top-level admin field for component-aware blocks. Consumes a
|
|
5
|
+
* {@link Manifest} produced by `@actuate-media/component-blocks`,
|
|
6
|
+
* renders a component picker (when more than one component is allowed)
|
|
7
|
+
* and a recursive props form via {@link PropInput}.
|
|
8
|
+
*
|
|
9
|
+
* Storage shape:
|
|
10
|
+
* { component: 'Hero', props: { title: 'Welcome', alignment: 'center' } }
|
|
11
|
+
*
|
|
12
|
+
* Live validation runs through `validateComponentBlockValue` from
|
|
13
|
+
* `@actuate-media/cms-core`. The whole-value error is shown at the top
|
|
14
|
+
* of the form, and the per-prop error map (parsed out of the message
|
|
15
|
+
* string) is forwarded into `PropInput` so each input can render its
|
|
16
|
+
* own inline error.
|
|
17
|
+
*/
|
|
18
|
+
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
19
|
+
import { buildClientValidator, getAllowedComponents, parsePerPropErrors, seedPropsForComponent, } from './component-block-helpers.js';
|
|
20
|
+
import { PropInput } from './PropInput.js';
|
|
21
|
+
export function ComponentBlockField({ label, manifest, allow, defaultComponent, value, onChange, validate, helpText, }) {
|
|
22
|
+
const allowedComponents = useMemo(() => getAllowedComponents(manifest, allow), [manifest, allow]);
|
|
23
|
+
// Track the initial seed application so we don't repeatedly stomp
|
|
24
|
+
// the editor's prop values on every render. The defaultComponent
|
|
25
|
+
// seed only fires once, when value is undefined on mount.
|
|
26
|
+
const seededRef = useRef(false);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (seededRef.current)
|
|
29
|
+
return;
|
|
30
|
+
if (value) {
|
|
31
|
+
seededRef.current = true;
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const picked = allowedComponents.find((c) => c.name === defaultComponent) ?? allowedComponents[0];
|
|
35
|
+
if (!picked)
|
|
36
|
+
return;
|
|
37
|
+
seededRef.current = true;
|
|
38
|
+
onChange({ component: picked.name, props: seedPropsForComponent(picked) });
|
|
39
|
+
}, [allowedComponents, defaultComponent, value, onChange]);
|
|
40
|
+
const currentSpec = (value && manifest.components.find((c) => c.name === value.component)) ?? allowedComponents[0];
|
|
41
|
+
// Pure structural validation when caller didn't provide their own.
|
|
42
|
+
// Keeps the form usable even without a live validator wired in.
|
|
43
|
+
const builtinValidate = useMemo(() => buildClientValidator(manifest, allow), [manifest, allow]);
|
|
44
|
+
const validator = validate ?? builtinValidate;
|
|
45
|
+
const [errorMessage, setErrorMessage] = useState(null);
|
|
46
|
+
const perPropErrors = useMemo(() => parsePerPropErrors(errorMessage), [errorMessage]);
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
if (!value) {
|
|
49
|
+
setErrorMessage(null);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const result = validator(value);
|
|
53
|
+
setErrorMessage(result === true ? null : result);
|
|
54
|
+
}, [value, validator]);
|
|
55
|
+
function handleComponentChange(componentName) {
|
|
56
|
+
const spec = manifest.components.find((c) => c.name === componentName);
|
|
57
|
+
if (!spec)
|
|
58
|
+
return;
|
|
59
|
+
onChange({ component: spec.name, props: seedPropsForComponent(spec) });
|
|
60
|
+
}
|
|
61
|
+
function handlePropChange(propName, next) {
|
|
62
|
+
if (!value)
|
|
63
|
+
return;
|
|
64
|
+
onChange({
|
|
65
|
+
...value,
|
|
66
|
+
props: { ...value.props, [propName]: next },
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
if (!currentSpec) {
|
|
70
|
+
return (_jsx("div", { className: "rounded-md border border-[var(--destructive)] bg-red-50 p-3 text-sm text-[var(--destructive)]", children: "Component block has no components to choose from." }));
|
|
71
|
+
}
|
|
72
|
+
return (_jsxs("div", { className: "space-y-3", children: [label ? _jsx("label", { className: "block text-sm font-medium", children: label }) : null, allowedComponents.length > 1 ? (_jsxs("label", { className: "block text-sm", children: [_jsx("div", { className: "mb-1 text-xs tracking-wide text-[var(--muted-foreground)] uppercase", children: "Component" }), _jsx("select", { value: currentSpec.name, onChange: (e) => handleComponentChange(e.target.value), className: "w-full rounded-md border border-[var(--border)] bg-[var(--input-background)] px-3 py-2 text-sm outline-none focus:ring-2 focus:ring-[var(--ring)]", children: allowedComponents.map((spec) => (_jsx("option", { value: spec.name, children: spec.displayName }, spec.name))) })] })) : null, errorMessage ? (_jsx("div", { className: "rounded-md border border-[var(--destructive)] bg-red-50 px-3 py-2 text-xs text-[var(--destructive)]", children: errorMessage })) : null, _jsxs("fieldset", { className: "rounded-md border border-[var(--border)] bg-[var(--card)] p-4", children: [_jsx("legend", { className: "px-1 text-xs tracking-wide text-[var(--muted-foreground)] uppercase", children: currentSpec.displayName }), currentSpec.description ? (_jsx("p", { className: "mb-3 text-xs text-[var(--muted-foreground)]", children: currentSpec.description })) : null, _jsx("div", { className: "space-y-4", children: currentSpec.props.map((prop) => (_jsx(PropInput, { prop: prop, value: value?.props?.[prop.name], onChange: (next) => handlePropChange(prop.name, next), errors: perPropErrors, path: prop.name }, prop.name))) })] }), helpText ? _jsx("p", { className: "text-xs text-[var(--muted-foreground)]", children: helpText }) : null] }));
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=ComponentBlockField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComponentBlockField.js","sourceRoot":"","sources":["../../src/fields/ComponentBlockField.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldRenderer.d.ts","sourceRoot":"","sources":["../../src/fields/FieldRenderer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FieldRenderer.d.ts","sourceRoot":"","sources":["../../src/fields/FieldRenderer.tsx"],"names":[],"mappings":"AAiBA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,eAAe,EAAE,CAAA;IAC1B,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,eAAe,CAAA;IACtB,KAAK,EAAE,GAAG,CAAA;IACV,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;CAC/B;AAmBD,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CAgC3E"}
|
|
@@ -13,6 +13,7 @@ import { BlockBuilderField } from './BlockBuilderField.js';
|
|
|
13
13
|
import { GroupField } from './GroupField.js';
|
|
14
14
|
import { NavBuilderField } from './NavBuilderField.js';
|
|
15
15
|
import { NumberField } from './NumberField.js';
|
|
16
|
+
import { ComponentBlockField } from './ComponentBlockField.js';
|
|
16
17
|
const FIELD_MAP = {
|
|
17
18
|
text: TextField,
|
|
18
19
|
richText: RichTextField,
|
|
@@ -27,12 +28,13 @@ const FIELD_MAP = {
|
|
|
27
28
|
group: GroupField,
|
|
28
29
|
nav: NavBuilderField,
|
|
29
30
|
number: NumberField,
|
|
31
|
+
componentBlock: ComponentBlockField,
|
|
30
32
|
};
|
|
31
33
|
export function FieldRenderer({ field, value, onChange }) {
|
|
32
34
|
const Component = FIELD_MAP[field.type];
|
|
33
35
|
if (!Component) {
|
|
34
36
|
return (_jsxs("div", { className: "rounded-md border border-[var(--destructive)] bg-red-50 p-3 text-sm text-[var(--destructive)]", children: ["Unknown field type: ", _jsx("code", { children: field.type })] }));
|
|
35
37
|
}
|
|
36
|
-
return (_jsx(Component, { label: field.label, value: value, onChange: onChange, required: field.required, maxLength: field.maxLength, helpText: field.helpText, options: field.options, min: field.min, max: field.max, from: field.from, multi: field.multi, fields: field.fields, blocks: field.blocks, name: field.name }));
|
|
38
|
+
return (_jsx(Component, { label: field.label, value: value, onChange: onChange, required: field.required, maxLength: field.maxLength, helpText: field.helpText, options: field.options, min: field.min, max: field.max, from: field.from, multi: field.multi, fields: field.fields, blocks: field.blocks, name: field.name, manifest: field.manifest, allow: field.allow, defaultComponent: field.defaultComponent }));
|
|
37
39
|
}
|
|
38
40
|
//# sourceMappingURL=FieldRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldRenderer.js","sourceRoot":"","sources":["../../src/fields/FieldRenderer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"FieldRenderer.js","sourceRoot":"","sources":["../../src/fields/FieldRenderer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AA2B9D,MAAM,SAAS,GAA6C;IAC1D,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,aAAa;IACvB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,UAAU;IACjB,YAAY,EAAE,iBAAiB;IAC/B,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,iBAAiB;IACzB,KAAK,EAAE,UAAU;IACjB,GAAG,EAAE,eAAe;IACpB,MAAM,EAAE,WAAW;IACnB,cAAc,EAAE,mBAAmB;CACpC,CAAA;AAED,MAAM,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAsB;IAC1E,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAEvC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CACL,eAAK,SAAS,EAAC,+FAA+F,qCACxF,yBAAO,KAAK,CAAC,IAAI,GAAQ,IACzC,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,KAAC,SAAS,IACR,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,GACxC,CACH,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { PropSpec } from '@actuate-media/component-blocks';
|
|
2
|
+
import { defaultForType } from './component-block-helpers.js';
|
|
3
|
+
export { defaultForType };
|
|
4
|
+
export interface PropInputProps {
|
|
5
|
+
prop: PropSpec;
|
|
6
|
+
value: unknown;
|
|
7
|
+
onChange: (value: unknown) => void;
|
|
8
|
+
/** Map keyed by `propPath` (dot-joined) for nested error display. */
|
|
9
|
+
errors?: Record<string, string>;
|
|
10
|
+
/** Dot-separated path for the field; used as the error map key. */
|
|
11
|
+
path?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function PropInput({ prop, value, onChange, errors, path }: PropInputProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=PropInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropInput.d.ts","sourceRoot":"","sources":["../../src/fields/PropInput.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,iCAAiC,CAAA;AAEzE,OAAO,EACL,cAAc,EAIf,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAClC,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,cAAc,2CAmBhF"}
|