@jhits/plugin-blog 0.0.9 → 0.0.11
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/package.json +58 -59
- package/src/api/categories.ts +0 -43
- package/src/api/check-title.ts +0 -60
- package/src/api/config-handler.ts +0 -76
- package/src/api/handler.ts +0 -418
- package/src/api/index.ts +0 -33
- package/src/api/route.ts +0 -116
- package/src/api/router.ts +0 -128
- package/src/api-server.ts +0 -11
- package/src/config.ts +0 -161
- package/src/hooks/index.d.ts +0 -8
- package/src/hooks/index.d.ts.map +0 -1
- package/src/hooks/index.js +0 -7
- package/src/hooks/index.ts +0 -9
- package/src/hooks/useBlog.d.ts +0 -31
- package/src/hooks/useBlog.d.ts.map +0 -1
- package/src/hooks/useBlog.js +0 -57
- package/src/hooks/useBlog.ts +0 -85
- package/src/hooks/useBlogs.d.ts +0 -39
- package/src/hooks/useBlogs.d.ts.map +0 -1
- package/src/hooks/useBlogs.js +0 -82
- package/src/hooks/useBlogs.ts +0 -123
- package/src/hooks/useCategories.d.ts +0 -9
- package/src/hooks/useCategories.d.ts.map +0 -1
- package/src/hooks/useCategories.js +0 -70
- package/src/hooks/useCategories.ts +0 -76
- package/src/index.d.ts +0 -55
- package/src/index.d.ts.map +0 -1
- package/src/index.js +0 -228
- package/src/index.server.ts +0 -14
- package/src/index.tsx +0 -335
- package/src/init.d.ts +0 -40
- package/src/init.d.ts.map +0 -1
- package/src/init.js +0 -41
- package/src/init.tsx +0 -63
- package/src/lib/blocks/BlockRenderer.d.ts +0 -54
- package/src/lib/blocks/BlockRenderer.d.ts.map +0 -1
- package/src/lib/blocks/BlockRenderer.js +0 -54
- package/src/lib/blocks/BlockRenderer.tsx +0 -141
- package/src/lib/blocks/index.ts +0 -6
- package/src/lib/config-storage.d.ts +0 -30
- package/src/lib/config-storage.d.ts.map +0 -1
- package/src/lib/config-storage.js +0 -31
- package/src/lib/config-storage.ts +0 -65
- package/src/lib/index.ts +0 -9
- package/src/lib/layouts/blocks/ColumnsBlock.d.ts +0 -25
- package/src/lib/layouts/blocks/ColumnsBlock.d.ts.map +0 -1
- package/src/lib/layouts/blocks/ColumnsBlock.js +0 -182
- package/src/lib/layouts/blocks/ColumnsBlock.tsx +0 -298
- package/src/lib/layouts/blocks/ColumnsBlock.tsx.tmp +0 -81
- package/src/lib/layouts/blocks/SectionBlock.d.ts +0 -25
- package/src/lib/layouts/blocks/SectionBlock.d.ts.map +0 -1
- package/src/lib/layouts/blocks/SectionBlock.js +0 -44
- package/src/lib/layouts/blocks/SectionBlock.tsx +0 -104
- package/src/lib/layouts/blocks/index.ts +0 -8
- package/src/lib/layouts/index.d.ts +0 -23
- package/src/lib/layouts/index.d.ts.map +0 -1
- package/src/lib/layouts/index.js +0 -45
- package/src/lib/layouts/index.ts +0 -52
- package/src/lib/layouts/registerLayoutBlocks.d.ts +0 -9
- package/src/lib/layouts/registerLayoutBlocks.d.ts.map +0 -1
- package/src/lib/layouts/registerLayoutBlocks.js +0 -60
- package/src/lib/layouts/registerLayoutBlocks.ts +0 -64
- package/src/lib/mappers/apiMapper.d.ts +0 -66
- package/src/lib/mappers/apiMapper.d.ts.map +0 -1
- package/src/lib/mappers/apiMapper.js +0 -191
- package/src/lib/mappers/apiMapper.ts +0 -254
- package/src/lib/migration/index.ts +0 -6
- package/src/lib/migration/mapper.ts +0 -140
- package/src/lib/rich-text/RichTextEditor.d.ts +0 -45
- package/src/lib/rich-text/RichTextEditor.d.ts.map +0 -1
- package/src/lib/rich-text/RichTextEditor.js +0 -564
- package/src/lib/rich-text/RichTextEditor.tsx +0 -826
- package/src/lib/rich-text/RichTextPreview.d.ts +0 -16
- package/src/lib/rich-text/RichTextPreview.d.ts.map +0 -1
- package/src/lib/rich-text/RichTextPreview.js +0 -144
- package/src/lib/rich-text/RichTextPreview.tsx +0 -210
- package/src/lib/rich-text/index.d.ts +0 -9
- package/src/lib/rich-text/index.d.ts.map +0 -1
- package/src/lib/rich-text/index.js +0 -6
- package/src/lib/rich-text/index.ts +0 -10
- package/src/lib/utils/blockHelpers.d.ts +0 -23
- package/src/lib/utils/blockHelpers.d.ts.map +0 -1
- package/src/lib/utils/blockHelpers.js +0 -65
- package/src/lib/utils/blockHelpers.ts +0 -72
- package/src/lib/utils/configValidation.d.ts +0 -23
- package/src/lib/utils/configValidation.d.ts.map +0 -1
- package/src/lib/utils/configValidation.js +0 -113
- package/src/lib/utils/configValidation.ts +0 -137
- package/src/lib/utils/index.ts +0 -8
- package/src/lib/utils/slugify.ts +0 -79
- package/src/registry/BlockRegistry.d.ts +0 -62
- package/src/registry/BlockRegistry.d.ts.map +0 -1
- package/src/registry/BlockRegistry.js +0 -112
- package/src/registry/BlockRegistry.ts +0 -139
- package/src/registry/index.d.ts +0 -6
- package/src/registry/index.d.ts.map +0 -1
- package/src/registry/index.js +0 -4
- package/src/registry/index.ts +0 -11
- package/src/state/EditorContext.d.ts +0 -45
- package/src/state/EditorContext.d.ts.map +0 -1
- package/src/state/EditorContext.js +0 -215
- package/src/state/EditorContext.tsx +0 -283
- package/src/state/index.d.ts +0 -7
- package/src/state/index.d.ts.map +0 -1
- package/src/state/index.js +0 -6
- package/src/state/index.ts +0 -8
- package/src/state/reducer.d.ts +0 -11
- package/src/state/reducer.d.ts.map +0 -1
- package/src/state/reducer.js +0 -443
- package/src/state/reducer.ts +0 -694
- package/src/state/types.d.ts +0 -162
- package/src/state/types.d.ts.map +0 -1
- package/src/state/types.js +0 -27
- package/src/state/types.ts +0 -160
- package/src/types/block.d.ts +0 -221
- package/src/types/block.d.ts.map +0 -1
- package/src/types/block.js +0 -6
- package/src/types/block.ts +0 -269
- package/src/types/index.d.ts +0 -8
- package/src/types/index.d.ts.map +0 -1
- package/src/types/index.js +0 -5
- package/src/types/index.ts +0 -17
- package/src/types/post.d.ts +0 -136
- package/src/types/post.d.ts.map +0 -1
- package/src/types/post.js +0 -5
- package/src/types/post.ts +0 -169
- package/src/utils/client.d.ts +0 -48
- package/src/utils/client.d.ts.map +0 -1
- package/src/utils/client.js +0 -77
- package/src/utils/client.ts +0 -122
- package/src/utils/index.ts +0 -7
- package/src/views/CanvasEditor/BlockWrapper.d.ts +0 -16
- package/src/views/CanvasEditor/BlockWrapper.d.ts.map +0 -1
- package/src/views/CanvasEditor/BlockWrapper.js +0 -276
- package/src/views/CanvasEditor/BlockWrapper.tsx +0 -522
- package/src/views/CanvasEditor/CanvasEditorView.d.ts +0 -14
- package/src/views/CanvasEditor/CanvasEditorView.d.ts.map +0 -1
- package/src/views/CanvasEditor/CanvasEditorView.js +0 -209
- package/src/views/CanvasEditor/CanvasEditorView.tsx +0 -337
- package/src/views/CanvasEditor/EditorBody.d.ts +0 -22
- package/src/views/CanvasEditor/EditorBody.d.ts.map +0 -1
- package/src/views/CanvasEditor/EditorBody.js +0 -505
- package/src/views/CanvasEditor/EditorBody.tsx +0 -665
- package/src/views/CanvasEditor/EditorHeader.d.ts +0 -18
- package/src/views/CanvasEditor/EditorHeader.d.ts.map +0 -1
- package/src/views/CanvasEditor/EditorHeader.js +0 -101
- package/src/views/CanvasEditor/EditorHeader.tsx +0 -268
- package/src/views/CanvasEditor/LayoutContainer.d.ts +0 -17
- package/src/views/CanvasEditor/LayoutContainer.d.ts.map +0 -1
- package/src/views/CanvasEditor/LayoutContainer.js +0 -222
- package/src/views/CanvasEditor/LayoutContainer.tsx +0 -322
- package/src/views/CanvasEditor/SaveConfirmationModal.d.ts +0 -13
- package/src/views/CanvasEditor/SaveConfirmationModal.d.ts.map +0 -1
- package/src/views/CanvasEditor/SaveConfirmationModal.js +0 -78
- package/src/views/CanvasEditor/SaveConfirmationModal.tsx +0 -233
- package/src/views/CanvasEditor/components/CustomBlockItem.d.ts +0 -14
- package/src/views/CanvasEditor/components/CustomBlockItem.d.ts.map +0 -1
- package/src/views/CanvasEditor/components/CustomBlockItem.js +0 -44
- package/src/views/CanvasEditor/components/CustomBlockItem.tsx +0 -92
- package/src/views/CanvasEditor/components/EditorCanvas.d.ts +0 -29
- package/src/views/CanvasEditor/components/EditorCanvas.d.ts.map +0 -1
- package/src/views/CanvasEditor/components/EditorCanvas.js +0 -32
- package/src/views/CanvasEditor/components/EditorCanvas.tsx +0 -160
- package/src/views/CanvasEditor/components/EditorLibrary.d.ts +0 -7
- package/src/views/CanvasEditor/components/EditorLibrary.d.ts.map +0 -1
- package/src/views/CanvasEditor/components/EditorLibrary.js +0 -25
- package/src/views/CanvasEditor/components/EditorLibrary.tsx +0 -122
- package/src/views/CanvasEditor/components/EditorSidebar.d.ts +0 -13
- package/src/views/CanvasEditor/components/EditorSidebar.d.ts.map +0 -1
- package/src/views/CanvasEditor/components/EditorSidebar.js +0 -20
- package/src/views/CanvasEditor/components/EditorSidebar.tsx +0 -181
- package/src/views/CanvasEditor/components/ErrorBanner.d.ts +0 -6
- package/src/views/CanvasEditor/components/ErrorBanner.d.ts.map +0 -1
- package/src/views/CanvasEditor/components/ErrorBanner.js +0 -8
- package/src/views/CanvasEditor/components/ErrorBanner.tsx +0 -31
- package/src/views/CanvasEditor/components/FeaturedMediaSection.d.ts +0 -25
- package/src/views/CanvasEditor/components/FeaturedMediaSection.d.ts.map +0 -1
- package/src/views/CanvasEditor/components/FeaturedMediaSection.js +0 -182
- package/src/views/CanvasEditor/components/FeaturedMediaSection.tsx +0 -341
- package/src/views/CanvasEditor/components/LibraryItem.d.ts +0 -14
- package/src/views/CanvasEditor/components/LibraryItem.d.ts.map +0 -1
- package/src/views/CanvasEditor/components/LibraryItem.js +0 -43
- package/src/views/CanvasEditor/components/LibraryItem.tsx +0 -80
- package/src/views/CanvasEditor/components/PrivacySettingsSection.d.ts +0 -15
- package/src/views/CanvasEditor/components/PrivacySettingsSection.d.ts.map +0 -1
- package/src/views/CanvasEditor/components/PrivacySettingsSection.js +0 -63
- package/src/views/CanvasEditor/components/PrivacySettingsSection.tsx +0 -212
- package/src/views/CanvasEditor/components/index.d.ts +0 -21
- package/src/views/CanvasEditor/components/index.d.ts.map +0 -1
- package/src/views/CanvasEditor/components/index.js +0 -12
- package/src/views/CanvasEditor/components/index.ts +0 -28
- package/src/views/CanvasEditor/hooks/index.d.ts +0 -10
- package/src/views/CanvasEditor/hooks/index.d.ts.map +0 -1
- package/src/views/CanvasEditor/hooks/index.js +0 -9
- package/src/views/CanvasEditor/hooks/index.ts +0 -10
- package/src/views/CanvasEditor/hooks/useHeroBlock.d.ts +0 -8
- package/src/views/CanvasEditor/hooks/useHeroBlock.d.ts.map +0 -1
- package/src/views/CanvasEditor/hooks/useHeroBlock.js +0 -79
- package/src/views/CanvasEditor/hooks/useHeroBlock.ts +0 -103
- package/src/views/CanvasEditor/hooks/useKeyboardShortcuts.d.ts +0 -3
- package/src/views/CanvasEditor/hooks/useKeyboardShortcuts.d.ts.map +0 -1
- package/src/views/CanvasEditor/hooks/useKeyboardShortcuts.js +0 -114
- package/src/views/CanvasEditor/hooks/useKeyboardShortcuts.ts +0 -142
- package/src/views/CanvasEditor/hooks/usePostLoader.d.ts +0 -5
- package/src/views/CanvasEditor/hooks/usePostLoader.d.ts.map +0 -1
- package/src/views/CanvasEditor/hooks/usePostLoader.js +0 -32
- package/src/views/CanvasEditor/hooks/usePostLoader.ts +0 -39
- package/src/views/CanvasEditor/hooks/useRegisteredBlocks.d.ts +0 -2
- package/src/views/CanvasEditor/hooks/useRegisteredBlocks.d.ts.map +0 -1
- package/src/views/CanvasEditor/hooks/useRegisteredBlocks.js +0 -47
- package/src/views/CanvasEditor/hooks/useRegisteredBlocks.ts +0 -55
- package/src/views/CanvasEditor/hooks/useUnsavedChanges.d.ts +0 -25
- package/src/views/CanvasEditor/hooks/useUnsavedChanges.d.ts.map +0 -1
- package/src/views/CanvasEditor/hooks/useUnsavedChanges.js +0 -285
- package/src/views/CanvasEditor/hooks/useUnsavedChanges.ts +0 -339
- package/src/views/CanvasEditor/index.d.ts +0 -16
- package/src/views/CanvasEditor/index.d.ts.map +0 -1
- package/src/views/CanvasEditor/index.js +0 -9
- package/src/views/CanvasEditor/index.ts +0 -16
- package/src/views/PostManager/EmptyState.d.ts +0 -10
- package/src/views/PostManager/EmptyState.d.ts.map +0 -1
- package/src/views/PostManager/EmptyState.js +0 -12
- package/src/views/PostManager/EmptyState.tsx +0 -42
- package/src/views/PostManager/PostActionsMenu.d.ts +0 -12
- package/src/views/PostManager/PostActionsMenu.d.ts.map +0 -1
- package/src/views/PostManager/PostActionsMenu.js +0 -58
- package/src/views/PostManager/PostActionsMenu.tsx +0 -112
- package/src/views/PostManager/PostCards.d.ts +0 -15
- package/src/views/PostManager/PostCards.d.ts.map +0 -1
- package/src/views/PostManager/PostCards.js +0 -79
- package/src/views/PostManager/PostCards.tsx +0 -197
- package/src/views/PostManager/PostFilters.d.ts +0 -16
- package/src/views/PostManager/PostFilters.d.ts.map +0 -1
- package/src/views/PostManager/PostFilters.js +0 -10
- package/src/views/PostManager/PostFilters.tsx +0 -95
- package/src/views/PostManager/PostManagerView.d.ts +0 -11
- package/src/views/PostManager/PostManagerView.d.ts.map +0 -1
- package/src/views/PostManager/PostManagerView.js +0 -174
- package/src/views/PostManager/PostManagerView.tsx +0 -289
- package/src/views/PostManager/PostStats.d.ts +0 -11
- package/src/views/PostManager/PostStats.d.ts.map +0 -1
- package/src/views/PostManager/PostStats.js +0 -46
- package/src/views/PostManager/PostStats.tsx +0 -81
- package/src/views/PostManager/PostTable.d.ts +0 -15
- package/src/views/PostManager/PostTable.d.ts.map +0 -1
- package/src/views/PostManager/PostTable.js +0 -79
- package/src/views/PostManager/PostTable.tsx +0 -230
- package/src/views/PostManager/index.d.ts +0 -12
- package/src/views/PostManager/index.d.ts.map +0 -1
- package/src/views/PostManager/index.js +0 -11
- package/src/views/PostManager/index.ts +0 -15
- package/src/views/Preview/PreviewBridgeView.d.ts +0 -12
- package/src/views/Preview/PreviewBridgeView.d.ts.map +0 -1
- package/src/views/Preview/PreviewBridgeView.js +0 -11
- package/src/views/Preview/PreviewBridgeView.tsx +0 -64
- package/src/views/Preview/index.d.ts +0 -6
- package/src/views/Preview/index.d.ts.map +0 -1
- package/src/views/Preview/index.js +0 -4
- package/src/views/Preview/index.ts +0 -7
- package/src/views/Settings/SettingsView.d.ts +0 -10
- package/src/views/Settings/SettingsView.d.ts.map +0 -1
- package/src/views/Settings/SettingsView.js +0 -111
- package/src/views/Settings/SettingsView.tsx +0 -298
- package/src/views/Settings/index.d.ts +0 -6
- package/src/views/Settings/index.d.ts.map +0 -1
- package/src/views/Settings/index.js +0 -4
- package/src/views/Settings/index.ts +0 -7
- package/src/views/SlugSEO/SlugSEOManagerView.d.ts +0 -12
- package/src/views/SlugSEO/SlugSEOManagerView.d.ts.map +0 -1
- package/src/views/SlugSEO/SlugSEOManagerView.js +0 -11
- package/src/views/SlugSEO/SlugSEOManagerView.tsx +0 -94
- package/src/views/SlugSEO/index.d.ts +0 -6
- package/src/views/SlugSEO/index.d.ts.map +0 -1
- package/src/views/SlugSEO/index.js +0 -4
- package/src/views/SlugSEO/index.ts +0 -7
package/src/state/types.d.ts
DELETED
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* State Management Types
|
|
3
|
-
* Types for the editor state management system
|
|
4
|
-
*/
|
|
5
|
-
import { Block } from '../types/block';
|
|
6
|
-
import { BlogPost, PostStatus, SEOMetadata, PostMetadata } from '../types/post';
|
|
7
|
-
/**
|
|
8
|
-
* Editor State
|
|
9
|
-
* Represents the current state of the editor
|
|
10
|
-
*/
|
|
11
|
-
export interface EditorState {
|
|
12
|
-
/** Array of blocks in the editor */
|
|
13
|
-
blocks: Block[];
|
|
14
|
-
/** Post title */
|
|
15
|
-
title: string;
|
|
16
|
-
/** Post slug */
|
|
17
|
-
slug: string;
|
|
18
|
-
/** SEO metadata */
|
|
19
|
-
seo: SEOMetadata;
|
|
20
|
-
/** Post metadata */
|
|
21
|
-
metadata: PostMetadata;
|
|
22
|
-
/** Publication status */
|
|
23
|
-
status: PostStatus;
|
|
24
|
-
/** Whether the post has unsaved changes */
|
|
25
|
-
isDirty: boolean;
|
|
26
|
-
/** Whether the editor is in focus mode */
|
|
27
|
-
focusMode: boolean;
|
|
28
|
-
/** Currently selected block ID */
|
|
29
|
-
selectedBlockId: string | null;
|
|
30
|
-
/** Currently dragged block ID */
|
|
31
|
-
draggedBlockId: string | null;
|
|
32
|
-
/** Post ID (if editing existing post) */
|
|
33
|
-
postId: string | null;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Editor Actions
|
|
37
|
-
* Actions that can be dispatched to modify editor state
|
|
38
|
-
*/
|
|
39
|
-
export type EditorAction = {
|
|
40
|
-
type: 'SET_BLOCKS';
|
|
41
|
-
payload: Block[];
|
|
42
|
-
} | {
|
|
43
|
-
type: 'ADD_BLOCK';
|
|
44
|
-
payload: {
|
|
45
|
-
block: Block;
|
|
46
|
-
index?: number;
|
|
47
|
-
containerId?: string;
|
|
48
|
-
};
|
|
49
|
-
} | {
|
|
50
|
-
type: 'UPDATE_BLOCK';
|
|
51
|
-
payload: {
|
|
52
|
-
id: string;
|
|
53
|
-
data: Partial<Block['data']>;
|
|
54
|
-
};
|
|
55
|
-
} | {
|
|
56
|
-
type: 'DELETE_BLOCK';
|
|
57
|
-
payload: {
|
|
58
|
-
id: string;
|
|
59
|
-
};
|
|
60
|
-
} | {
|
|
61
|
-
type: 'DUPLICATE_BLOCK';
|
|
62
|
-
payload: {
|
|
63
|
-
id: string;
|
|
64
|
-
};
|
|
65
|
-
} | {
|
|
66
|
-
type: 'MOVE_BLOCK';
|
|
67
|
-
payload: {
|
|
68
|
-
id: string;
|
|
69
|
-
newIndex: number;
|
|
70
|
-
containerId?: string;
|
|
71
|
-
};
|
|
72
|
-
} | {
|
|
73
|
-
type: 'SET_TITLE';
|
|
74
|
-
payload: string;
|
|
75
|
-
} | {
|
|
76
|
-
type: 'SET_SLUG';
|
|
77
|
-
payload: string;
|
|
78
|
-
} | {
|
|
79
|
-
type: 'SET_SEO';
|
|
80
|
-
payload: Partial<SEOMetadata>;
|
|
81
|
-
} | {
|
|
82
|
-
type: 'SET_METADATA';
|
|
83
|
-
payload: Partial<PostMetadata>;
|
|
84
|
-
} | {
|
|
85
|
-
type: 'SET_STATUS';
|
|
86
|
-
payload: PostStatus;
|
|
87
|
-
} | {
|
|
88
|
-
type: 'SET_FOCUS_MODE';
|
|
89
|
-
payload: boolean;
|
|
90
|
-
} | {
|
|
91
|
-
type: 'SELECT_BLOCK';
|
|
92
|
-
payload: string | null;
|
|
93
|
-
} | {
|
|
94
|
-
type: 'SET_DRAGGED_BLOCK';
|
|
95
|
-
payload: string | null;
|
|
96
|
-
} | {
|
|
97
|
-
type: 'LOAD_POST';
|
|
98
|
-
payload: BlogPost;
|
|
99
|
-
} | {
|
|
100
|
-
type: 'RESET_EDITOR';
|
|
101
|
-
} | {
|
|
102
|
-
type: 'MARK_CLEAN';
|
|
103
|
-
} | {
|
|
104
|
-
type: 'MARK_DIRTY';
|
|
105
|
-
} | {
|
|
106
|
-
type: 'UNDO';
|
|
107
|
-
} | {
|
|
108
|
-
type: 'REDO';
|
|
109
|
-
} | {
|
|
110
|
-
type: 'SAVE_HISTORY';
|
|
111
|
-
};
|
|
112
|
-
/**
|
|
113
|
-
* Editor Context Value
|
|
114
|
-
* The value provided by the EditorContext
|
|
115
|
-
*/
|
|
116
|
-
export interface EditorContextValue {
|
|
117
|
-
/** Current editor state */
|
|
118
|
-
state: EditorState;
|
|
119
|
-
/** Dispatch an action to modify state */
|
|
120
|
-
dispatch: (action: EditorAction) => void;
|
|
121
|
-
/** Enable dark mode for content area and wrappers */
|
|
122
|
-
darkMode: boolean;
|
|
123
|
-
/** Background colors for the editor */
|
|
124
|
-
backgroundColors?: {
|
|
125
|
-
/** Background color for light mode (REQUIRED) */
|
|
126
|
-
light: string;
|
|
127
|
-
/** Background color for dark mode (optional) */
|
|
128
|
-
dark?: string;
|
|
129
|
-
};
|
|
130
|
-
/** Helper functions for common operations */
|
|
131
|
-
helpers: {
|
|
132
|
-
/** Add a new block (supports nested containers via containerId) */
|
|
133
|
-
addBlock: (type: string, index?: number, containerId?: string) => void;
|
|
134
|
-
/** Update a block's data */
|
|
135
|
-
updateBlock: (id: string, data: Partial<Block['data']>) => void;
|
|
136
|
-
/** Delete a block */
|
|
137
|
-
deleteBlock: (id: string) => void;
|
|
138
|
-
/** Duplicate a block */
|
|
139
|
-
duplicateBlock: (id: string) => void;
|
|
140
|
-
/** Move a block to a new position (supports nested containers via containerId) */
|
|
141
|
-
moveBlock: (id: string, newIndex: number, containerId?: string) => void;
|
|
142
|
-
/** Load a post into the editor */
|
|
143
|
-
loadPost: (post: BlogPost) => void;
|
|
144
|
-
/** Reset editor to initial state */
|
|
145
|
-
resetEditor: () => void;
|
|
146
|
-
/** Save current state (triggers save callback) */
|
|
147
|
-
save: (heroBlock?: Block | null) => Promise<void>;
|
|
148
|
-
/** Undo last action */
|
|
149
|
-
undo: () => void;
|
|
150
|
-
/** Redo last undone action */
|
|
151
|
-
redo: () => void;
|
|
152
|
-
};
|
|
153
|
-
/** Whether undo is available */
|
|
154
|
-
canUndo: boolean;
|
|
155
|
-
/** Whether redo is available */
|
|
156
|
-
canRedo: boolean;
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Initial Editor State
|
|
160
|
-
*/
|
|
161
|
-
export declare const initialEditorState: EditorState;
|
|
162
|
-
//# sourceMappingURL=types.d.ts.map
|
package/src/state/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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"}
|
package/src/state/types.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* State Management Types
|
|
3
|
-
* Types for the editor state management system
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Initial Editor State
|
|
7
|
-
*/
|
|
8
|
-
export const initialEditorState = {
|
|
9
|
-
blocks: [],
|
|
10
|
-
title: '',
|
|
11
|
-
slug: '',
|
|
12
|
-
seo: {
|
|
13
|
-
title: '',
|
|
14
|
-
description: '',
|
|
15
|
-
},
|
|
16
|
-
metadata: {
|
|
17
|
-
categories: [],
|
|
18
|
-
tags: [],
|
|
19
|
-
excerpt: '',
|
|
20
|
-
},
|
|
21
|
-
status: 'draft',
|
|
22
|
-
isDirty: false,
|
|
23
|
-
focusMode: false,
|
|
24
|
-
selectedBlockId: null,
|
|
25
|
-
draggedBlockId: null,
|
|
26
|
-
postId: null,
|
|
27
|
-
};
|
package/src/state/types.ts
DELETED
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* State Management Types
|
|
3
|
-
* Types for the editor state management system
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { Block } from '../types/block';
|
|
7
|
-
import { BlogPost, PostStatus, SEOMetadata, PostMetadata } from '../types/post';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Editor State
|
|
11
|
-
* Represents the current state of the editor
|
|
12
|
-
*/
|
|
13
|
-
export interface EditorState {
|
|
14
|
-
/** Array of blocks in the editor */
|
|
15
|
-
blocks: Block[];
|
|
16
|
-
|
|
17
|
-
/** Post title */
|
|
18
|
-
title: string;
|
|
19
|
-
|
|
20
|
-
/** Post slug */
|
|
21
|
-
slug: string;
|
|
22
|
-
|
|
23
|
-
/** SEO metadata */
|
|
24
|
-
seo: SEOMetadata;
|
|
25
|
-
|
|
26
|
-
/** Post metadata */
|
|
27
|
-
metadata: PostMetadata;
|
|
28
|
-
|
|
29
|
-
/** Publication status */
|
|
30
|
-
status: PostStatus;
|
|
31
|
-
|
|
32
|
-
/** Whether the post has unsaved changes */
|
|
33
|
-
isDirty: boolean;
|
|
34
|
-
|
|
35
|
-
/** Whether the editor is in focus mode */
|
|
36
|
-
focusMode: boolean;
|
|
37
|
-
|
|
38
|
-
/** Currently selected block ID */
|
|
39
|
-
selectedBlockId: string | null;
|
|
40
|
-
|
|
41
|
-
/** Currently dragged block ID */
|
|
42
|
-
draggedBlockId: string | null;
|
|
43
|
-
|
|
44
|
-
/** Post ID (if editing existing post) */
|
|
45
|
-
postId: string | null;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Editor Actions
|
|
50
|
-
* Actions that can be dispatched to modify editor state
|
|
51
|
-
*/
|
|
52
|
-
export type EditorAction =
|
|
53
|
-
| { type: 'SET_BLOCKS'; payload: Block[] }
|
|
54
|
-
| { type: 'ADD_BLOCK'; payload: { block: Block; index?: number; containerId?: string } }
|
|
55
|
-
| { type: 'UPDATE_BLOCK'; payload: { id: string; data: Partial<Block['data']> } }
|
|
56
|
-
| { type: 'DELETE_BLOCK'; payload: { id: string } }
|
|
57
|
-
| { type: 'DUPLICATE_BLOCK'; payload: { id: string } }
|
|
58
|
-
| { type: 'MOVE_BLOCK'; payload: { id: string; newIndex: number; containerId?: string } }
|
|
59
|
-
| { type: 'SET_TITLE'; payload: string }
|
|
60
|
-
| { type: 'SET_SLUG'; payload: string }
|
|
61
|
-
| { type: 'SET_SEO'; payload: Partial<SEOMetadata> }
|
|
62
|
-
| { type: 'SET_METADATA'; payload: Partial<PostMetadata> }
|
|
63
|
-
| { type: 'SET_STATUS'; payload: PostStatus }
|
|
64
|
-
| { type: 'SET_FOCUS_MODE'; payload: boolean }
|
|
65
|
-
| { type: 'SELECT_BLOCK'; payload: string | null }
|
|
66
|
-
| { type: 'SET_DRAGGED_BLOCK'; payload: string | null }
|
|
67
|
-
| { type: 'LOAD_POST'; payload: BlogPost }
|
|
68
|
-
| { type: 'RESET_EDITOR' }
|
|
69
|
-
| { type: 'MARK_CLEAN' }
|
|
70
|
-
| { type: 'MARK_DIRTY' }
|
|
71
|
-
| { type: 'UNDO' }
|
|
72
|
-
| { type: 'REDO' }
|
|
73
|
-
| { type: 'SAVE_HISTORY' };
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Editor Context Value
|
|
77
|
-
* The value provided by the EditorContext
|
|
78
|
-
*/
|
|
79
|
-
export interface EditorContextValue {
|
|
80
|
-
/** Current editor state */
|
|
81
|
-
state: EditorState;
|
|
82
|
-
|
|
83
|
-
/** Dispatch an action to modify state */
|
|
84
|
-
dispatch: (action: EditorAction) => void;
|
|
85
|
-
|
|
86
|
-
/** Enable dark mode for content area and wrappers */
|
|
87
|
-
darkMode: boolean;
|
|
88
|
-
|
|
89
|
-
/** Background colors for the editor */
|
|
90
|
-
backgroundColors?: {
|
|
91
|
-
/** Background color for light mode (REQUIRED) */
|
|
92
|
-
light: string;
|
|
93
|
-
/** Background color for dark mode (optional) */
|
|
94
|
-
dark?: string;
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
/** Helper functions for common operations */
|
|
98
|
-
helpers: {
|
|
99
|
-
/** Add a new block (supports nested containers via containerId) */
|
|
100
|
-
addBlock: (type: string, index?: number, containerId?: string) => void;
|
|
101
|
-
|
|
102
|
-
/** Update a block's data */
|
|
103
|
-
updateBlock: (id: string, data: Partial<Block['data']>) => void;
|
|
104
|
-
|
|
105
|
-
/** Delete a block */
|
|
106
|
-
deleteBlock: (id: string) => void;
|
|
107
|
-
|
|
108
|
-
/** Duplicate a block */
|
|
109
|
-
duplicateBlock: (id: string) => void;
|
|
110
|
-
|
|
111
|
-
/** Move a block to a new position (supports nested containers via containerId) */
|
|
112
|
-
moveBlock: (id: string, newIndex: number, containerId?: string) => void;
|
|
113
|
-
|
|
114
|
-
/** Load a post into the editor */
|
|
115
|
-
loadPost: (post: BlogPost) => void;
|
|
116
|
-
|
|
117
|
-
/** Reset editor to initial state */
|
|
118
|
-
resetEditor: () => void;
|
|
119
|
-
|
|
120
|
-
/** Save current state (triggers save callback) */
|
|
121
|
-
save: (heroBlock?: Block | null) => Promise<void>;
|
|
122
|
-
|
|
123
|
-
/** Undo last action */
|
|
124
|
-
undo: () => void;
|
|
125
|
-
|
|
126
|
-
/** Redo last undone action */
|
|
127
|
-
redo: () => void;
|
|
128
|
-
};
|
|
129
|
-
|
|
130
|
-
/** Whether undo is available */
|
|
131
|
-
canUndo: boolean;
|
|
132
|
-
|
|
133
|
-
/** Whether redo is available */
|
|
134
|
-
canRedo: boolean;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Initial Editor State
|
|
139
|
-
*/
|
|
140
|
-
export const initialEditorState: EditorState = {
|
|
141
|
-
blocks: [],
|
|
142
|
-
title: '',
|
|
143
|
-
slug: '',
|
|
144
|
-
seo: {
|
|
145
|
-
title: '',
|
|
146
|
-
description: '',
|
|
147
|
-
},
|
|
148
|
-
metadata: {
|
|
149
|
-
categories: [],
|
|
150
|
-
tags: [],
|
|
151
|
-
excerpt: '',
|
|
152
|
-
},
|
|
153
|
-
status: 'draft',
|
|
154
|
-
isDirty: false,
|
|
155
|
-
focusMode: false,
|
|
156
|
-
selectedBlockId: null,
|
|
157
|
-
draggedBlockId: null,
|
|
158
|
-
postId: null,
|
|
159
|
-
};
|
|
160
|
-
|
package/src/types/block.d.ts
DELETED
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core Block Types
|
|
3
|
-
* Foundation for the Block-Based Architecture
|
|
4
|
-
* Multi-Tenant Plugin Architecture - Blocks are provided by client applications
|
|
5
|
-
*/
|
|
6
|
-
import React from 'react';
|
|
7
|
-
/**
|
|
8
|
-
* Base Block Interface
|
|
9
|
-
* Every block in the system extends this structure
|
|
10
|
-
*/
|
|
11
|
-
export interface Block {
|
|
12
|
-
/** Unique identifier for the block */
|
|
13
|
-
id: string;
|
|
14
|
-
/** Block type identifier (e.g., 'heading', 'paragraph', 'image', 'plantSpec') */
|
|
15
|
-
type: string;
|
|
16
|
-
/** Block-specific data (varies by type) */
|
|
17
|
-
data: Record<string, unknown>;
|
|
18
|
-
/**
|
|
19
|
-
* Child blocks (for container blocks like Section, Columns)
|
|
20
|
-
* Can be an array of Block IDs (for flat storage) or Block objects (for nested structure)
|
|
21
|
-
*/
|
|
22
|
-
children?: string[] | Block[];
|
|
23
|
-
/** Optional metadata for editor state, styling, etc. */
|
|
24
|
-
meta?: {
|
|
25
|
-
/** Visual order in the editor */
|
|
26
|
-
order?: number;
|
|
27
|
-
/** Whether block is collapsed in editor */
|
|
28
|
-
collapsed?: boolean;
|
|
29
|
-
/** Custom styling overrides */
|
|
30
|
-
style?: Record<string, string>;
|
|
31
|
-
/** Editor-specific flags */
|
|
32
|
-
flags?: string[];
|
|
33
|
-
/** Column index (for column container blocks) */
|
|
34
|
-
columnIndex?: number;
|
|
35
|
-
/** Additional custom metadata */
|
|
36
|
-
[key: string]: unknown;
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Block Edit Component Props
|
|
41
|
-
* Props passed to the Edit component in the dashboard editor
|
|
42
|
-
*/
|
|
43
|
-
export interface BlockEditProps {
|
|
44
|
-
/** The block being edited */
|
|
45
|
-
block: Block;
|
|
46
|
-
/** Update handler - call this to update the block's data */
|
|
47
|
-
onUpdate: (data: Partial<Block['data']>) => void;
|
|
48
|
-
/** Delete handler - call this to remove the block */
|
|
49
|
-
onDelete?: () => void;
|
|
50
|
-
/** Duplicate handler - call this to duplicate the block */
|
|
51
|
-
onDuplicate?: () => void;
|
|
52
|
-
/** Whether the block is currently selected */
|
|
53
|
-
isSelected?: boolean;
|
|
54
|
-
/** Whether the block is currently being dragged */
|
|
55
|
-
isDragging?: boolean;
|
|
56
|
-
/** Focus mode state */
|
|
57
|
-
focusMode?: boolean;
|
|
58
|
-
/** Child blocks (for container blocks like Section, Columns) */
|
|
59
|
-
childBlocks?: Block[];
|
|
60
|
-
/** Add a child block (for container blocks) */
|
|
61
|
-
onChildBlockAdd?: (type: string, index?: number, containerId?: string) => void;
|
|
62
|
-
/** Update a child block (for container blocks) */
|
|
63
|
-
onChildBlockUpdate?: (id: string, data: Partial<Block['data']>, containerId?: string) => void;
|
|
64
|
-
/** Delete a child block (for container blocks) */
|
|
65
|
-
onChildBlockDelete?: (id: string, containerId?: string) => void;
|
|
66
|
-
/** Move a child block (for container blocks) */
|
|
67
|
-
onChildBlockMove?: (id: string, newIndex: number, containerId?: string) => void;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Block Preview Component Props
|
|
71
|
-
* Props passed to the Preview component for headless rendering
|
|
72
|
-
*/
|
|
73
|
-
export interface BlockPreviewProps {
|
|
74
|
-
/** The block to render */
|
|
75
|
-
block: Block;
|
|
76
|
-
/** Additional rendering context */
|
|
77
|
-
context?: {
|
|
78
|
-
/** Site ID */
|
|
79
|
-
siteId?: string;
|
|
80
|
-
/** Locale */
|
|
81
|
-
locale?: string;
|
|
82
|
-
/** Custom render props */
|
|
83
|
-
[key: string]: unknown;
|
|
84
|
-
};
|
|
85
|
-
/** Child blocks (for container blocks like Section, Columns) */
|
|
86
|
-
childBlocks?: Block[];
|
|
87
|
-
/** Render a child block (for container blocks) */
|
|
88
|
-
renderChild?: (childBlock: Block) => React.ReactElement;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Strict Block Component Interface
|
|
92
|
-
* Every client-provided block MUST implement this interface
|
|
93
|
-
*/
|
|
94
|
-
export interface IBlockComponent {
|
|
95
|
-
/**
|
|
96
|
-
* Edit Component - Rendered in the dashboard editor
|
|
97
|
-
* Must use dashboard design system (earth-tone palette, typography)
|
|
98
|
-
*/
|
|
99
|
-
Edit: React.ComponentType<BlockEditProps>;
|
|
100
|
-
/**
|
|
101
|
-
* Preview Component - Rendered in headless/frontend context
|
|
102
|
-
* Can use client's own design system
|
|
103
|
-
*/
|
|
104
|
-
Preview: React.ComponentType<BlockPreviewProps>;
|
|
105
|
-
/**
|
|
106
|
-
* Icon Component - Shown in block palette
|
|
107
|
-
* Should be a simple icon (lucide-react recommended)
|
|
108
|
-
*/
|
|
109
|
-
Icon?: React.ComponentType<{
|
|
110
|
-
className?: string;
|
|
111
|
-
}>;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Block Type Definition
|
|
115
|
-
* Complete definition of a block type for the registry
|
|
116
|
-
*/
|
|
117
|
-
export interface BlockTypeDefinition {
|
|
118
|
-
/** Unique type identifier */
|
|
119
|
-
type: string;
|
|
120
|
-
/** Human-readable name */
|
|
121
|
-
name: string;
|
|
122
|
-
/** Description of the block (shown in tooltips) */
|
|
123
|
-
description: string;
|
|
124
|
-
/** Icon component (React component) - Optional, falls back to block component's Icon */
|
|
125
|
-
icon?: React.ComponentType<{
|
|
126
|
-
className?: string;
|
|
127
|
-
}>;
|
|
128
|
-
/** Default data structure for this block type */
|
|
129
|
-
defaultData: Record<string, unknown>;
|
|
130
|
-
/** Validation schema (optional, for runtime validation) */
|
|
131
|
-
validate?: (data: Record<string, unknown>) => boolean;
|
|
132
|
-
/** Whether this block can contain nested blocks */
|
|
133
|
-
isContainer?: boolean;
|
|
134
|
-
/** Allowed child block types (if container) */
|
|
135
|
-
allowedChildren?: string[];
|
|
136
|
-
/** Category for grouping in block palette */
|
|
137
|
-
category?: 'text' | 'media' | 'layout' | 'interactive' | 'custom';
|
|
138
|
-
/**
|
|
139
|
-
* Block Components - REQUIRED for client-provided blocks
|
|
140
|
-
* Edit and Preview components must be provided
|
|
141
|
-
*/
|
|
142
|
-
components: IBlockComponent;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Rich Text Formatting Configuration
|
|
146
|
-
* Optional configuration for rich text formatting in text blocks
|
|
147
|
-
*/
|
|
148
|
-
export interface RichTextFormattingConfig {
|
|
149
|
-
/** Whether bold formatting is available */
|
|
150
|
-
bold?: boolean;
|
|
151
|
-
/** Whether italic formatting is available */
|
|
152
|
-
italic?: boolean;
|
|
153
|
-
/** Whether underline formatting is available */
|
|
154
|
-
underline?: boolean;
|
|
155
|
-
/** Whether links are available */
|
|
156
|
-
links?: boolean;
|
|
157
|
-
/** Available colors (array of color values or Tailwind classes) */
|
|
158
|
-
colors?: string[];
|
|
159
|
-
/** Custom CSS classes for formatted text */
|
|
160
|
-
styles?: {
|
|
161
|
-
bold?: string;
|
|
162
|
-
italic?: string;
|
|
163
|
-
underline?: string;
|
|
164
|
-
link?: string;
|
|
165
|
-
/** Color classes mapped by color value */
|
|
166
|
-
colorClasses?: Record<string, string>;
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Client Block Definition
|
|
171
|
-
* Simplified interface for client apps to provide blocks
|
|
172
|
-
*/
|
|
173
|
-
export interface ClientBlockDefinition {
|
|
174
|
-
/** Unique type identifier */
|
|
175
|
-
type: string;
|
|
176
|
-
/** Human-readable name */
|
|
177
|
-
name: string;
|
|
178
|
-
/** Description of the block */
|
|
179
|
-
description: string;
|
|
180
|
-
/** Icon component (optional) */
|
|
181
|
-
icon?: React.ComponentType<{
|
|
182
|
-
className?: string;
|
|
183
|
-
}>;
|
|
184
|
-
/** Default data structure */
|
|
185
|
-
defaultData: Record<string, unknown>;
|
|
186
|
-
/** Validation function (optional) */
|
|
187
|
-
validate?: (data: Record<string, unknown>) => boolean;
|
|
188
|
-
/** Whether this block can contain nested blocks */
|
|
189
|
-
isContainer?: boolean;
|
|
190
|
-
/** Allowed child block types (if container) */
|
|
191
|
-
allowedChildren?: string[];
|
|
192
|
-
/** Category for grouping */
|
|
193
|
-
category?: 'text' | 'media' | 'layout' | 'interactive' | 'custom';
|
|
194
|
-
/** Block components - REQUIRED */
|
|
195
|
-
components: IBlockComponent;
|
|
196
|
-
/** Rich text formatting configuration (optional) */
|
|
197
|
-
richTextFormatting?: RichTextFormattingConfig;
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Block Registry Configuration
|
|
201
|
-
* Central registry of all available block types
|
|
202
|
-
*/
|
|
203
|
-
export interface BlockRegistry {
|
|
204
|
-
/** Map of block type to definition */
|
|
205
|
-
types: Map<string, BlockTypeDefinition>;
|
|
206
|
-
/** Register a new block type */
|
|
207
|
-
register(definition: BlockTypeDefinition): void;
|
|
208
|
-
/** Register multiple client blocks at once */
|
|
209
|
-
registerClientBlocks(definitions: ClientBlockDefinition[]): void;
|
|
210
|
-
/** Get block type definition */
|
|
211
|
-
get(type: string): BlockTypeDefinition | undefined;
|
|
212
|
-
/** Get all registered block types */
|
|
213
|
-
getAll(): BlockTypeDefinition[];
|
|
214
|
-
/** Get block types by category */
|
|
215
|
-
getByCategory(category: BlockTypeDefinition['category']): BlockTypeDefinition[];
|
|
216
|
-
/** Check if a block type is registered */
|
|
217
|
-
has(type: string): boolean;
|
|
218
|
-
/** Clear all registered blocks */
|
|
219
|
-
clear(): void;
|
|
220
|
-
}
|
|
221
|
-
//# sourceMappingURL=block.d.ts.map
|
package/src/types/block.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"block.d.ts","sourceRoot":"","sources":["block.ts"],"names":[],"mappings":"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"}
|