@morphika/andami 0.2.5 → 0.2.6
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/components/blocks/TextBlockRenderer.tsx +27 -2
- package/components/blocks/TypewriterRichText.tsx +7 -1
- package/components/builder/CanvasToolbar.tsx +11 -17
- package/components/builder/live-preview/LiveTextEditor.tsx +117 -198
- package/components/builder/live-preview/RichTextBubbleMenu.tsx +451 -0
- package/components/builder/live-preview/RichTextEditor.tsx +223 -0
- package/components/builder/live-preview/index.ts +2 -0
- package/lib/editor/index.ts +2 -0
- package/lib/editor/portableToTiptap.ts +156 -0
- package/lib/editor/tiptapToPortable.ts +238 -0
- package/package.json +223 -212
- package/sanity/schemas/blocks/textBlock.ts +13 -0
package/package.json
CHANGED
|
@@ -1,212 +1,223 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@morphika/andami",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "Visual Page Builder — core library. A reusable website builder with visual editing, CMS integration, and asset management.",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"license": "MIT",
|
|
7
|
-
"repository": {
|
|
8
|
-
"type": "git",
|
|
9
|
-
"url": "https://github.com/MorphikaStudio/Morphika_Andami.git"
|
|
10
|
-
},
|
|
11
|
-
"keywords": [
|
|
12
|
-
"visual-builder",
|
|
13
|
-
"website-builder",
|
|
14
|
-
"cms",
|
|
15
|
-
"next.js",
|
|
16
|
-
"sanity",
|
|
17
|
-
"page-builder",
|
|
18
|
-
"morphika"
|
|
19
|
-
],
|
|
20
|
-
"publishConfig": {
|
|
21
|
-
"access": "public"
|
|
22
|
-
},
|
|
23
|
-
"files": [
|
|
24
|
-
"admin/",
|
|
25
|
-
"app/",
|
|
26
|
-
"components/",
|
|
27
|
-
"lib/",
|
|
28
|
-
"sanity/",
|
|
29
|
-
"site/",
|
|
30
|
-
"studio/",
|
|
31
|
-
"styles/",
|
|
32
|
-
"tsconfig.json",
|
|
33
|
-
"LICENSE",
|
|
34
|
-
"!**/__tests__/",
|
|
35
|
-
"!**/*.test.ts",
|
|
36
|
-
"!**/*.test.tsx",
|
|
37
|
-
"!**/*.spec.ts",
|
|
38
|
-
"!**/*.spec.tsx",
|
|
39
|
-
"!**/archive/"
|
|
40
|
-
],
|
|
41
|
-
"scripts": {
|
|
42
|
-
"prepack": "node scripts/prepack.mjs",
|
|
43
|
-
"test": "vitest",
|
|
44
|
-
"test:run": "vitest run",
|
|
45
|
-
"lint": "eslint",
|
|
46
|
-
"typecheck": "tsc --noEmit"
|
|
47
|
-
},
|
|
48
|
-
"exports": {
|
|
49
|
-
"./config": "./lib/config/index.ts",
|
|
50
|
-
"./config/types": "./lib/config/types.ts",
|
|
51
|
-
"./components/blocks": "./components/blocks/index.ts",
|
|
52
|
-
"./components/blocks/*": "./components/blocks/*.tsx",
|
|
53
|
-
"./components/builder": "./components/builder/index.ts",
|
|
54
|
-
"./components/builder/*": "./components/builder/*.tsx",
|
|
55
|
-
"./components/builder/editors/*": "./components/builder/editors/*.tsx",
|
|
56
|
-
"./components/builder/settings-panel": "./components/builder/settings-panel/index.ts",
|
|
57
|
-
"./components/builder/settings-panel/*": "./components/builder/settings-panel/*.tsx",
|
|
58
|
-
"./components/builder/settings-panel/responsive-helpers": "./components/builder/settings-panel/responsive-helpers.ts",
|
|
59
|
-
"./components/builder/asset-browser": "./components/builder/asset-browser/index.ts",
|
|
60
|
-
"./components/builder/asset-browser/*": "./components/builder/asset-browser/*.tsx",
|
|
61
|
-
"./components/builder/asset-browser/helpers": "./components/builder/asset-browser/helpers.ts",
|
|
62
|
-
"./components/builder/asset-browser/types": "./components/builder/asset-browser/types.ts",
|
|
63
|
-
"./components/builder/asset-browser/useAssetBrowser": "./components/builder/asset-browser/useAssetBrowser.ts",
|
|
64
|
-
"./components/builder/asset-browser/useR2DragDrop": "./components/builder/asset-browser/useR2DragDrop.ts",
|
|
65
|
-
"./components/builder/asset-browser/useR2Operations": "./components/builder/asset-browser/useR2Operations.ts",
|
|
66
|
-
"./components/builder/live-preview": "./components/builder/live-preview/index.ts",
|
|
67
|
-
"./components/builder/live-preview/*": "./components/builder/live-preview/*.tsx",
|
|
68
|
-
"./components/admin": "./components/admin/index.ts",
|
|
69
|
-
"./components/admin/*": "./components/admin/*.tsx",
|
|
70
|
-
"./components/admin/nav-builder": "./components/admin/nav-builder/index.ts",
|
|
71
|
-
"./components/admin/nav-builder/*": "./components/admin/nav-builder/*.tsx",
|
|
72
|
-
"./components/admin/nav-builder/nav-builder-utils": "./components/admin/nav-builder/nav-builder-utils.ts",
|
|
73
|
-
"./components/admin/styles": "./components/admin/styles/index.ts",
|
|
74
|
-
"./components/admin/styles/*": "./components/admin/styles/*.tsx",
|
|
75
|
-
"./components/ui/*": "./components/ui/*.tsx",
|
|
76
|
-
"./lib/builder": "./lib/builder/index.ts",
|
|
77
|
-
"./lib/builder/*": "./lib/builder/*.ts",
|
|
78
|
-
"./lib/sanity/client": "./lib/sanity/client.ts",
|
|
79
|
-
"./lib/sanity/writeClient": "./lib/sanity/writeClient.ts",
|
|
80
|
-
"./lib/sanity/queries": "./lib/sanity/queries.ts",
|
|
81
|
-
"./lib/sanity/types": "./lib/sanity/types.ts",
|
|
82
|
-
"./lib/
|
|
83
|
-
"./lib/
|
|
84
|
-
"./lib/
|
|
85
|
-
"./lib/
|
|
86
|
-
"./lib/
|
|
87
|
-
"./lib/
|
|
88
|
-
"./lib/
|
|
89
|
-
"./lib/
|
|
90
|
-
"./lib/
|
|
91
|
-
"./lib/
|
|
92
|
-
"./lib/
|
|
93
|
-
"./lib/
|
|
94
|
-
"./lib/
|
|
95
|
-
"./lib/
|
|
96
|
-
"./lib/
|
|
97
|
-
"./lib/
|
|
98
|
-
"./lib/
|
|
99
|
-
"./lib/
|
|
100
|
-
"./lib/
|
|
101
|
-
"./lib/
|
|
102
|
-
"./lib/
|
|
103
|
-
"./lib/utils": "./lib/utils.ts",
|
|
104
|
-
"./lib/
|
|
105
|
-
"./
|
|
106
|
-
"./
|
|
107
|
-
"./sanity/schemas
|
|
108
|
-
"./sanity/schemas
|
|
109
|
-
"./sanity/schemas/
|
|
110
|
-
"./sanity/
|
|
111
|
-
"./sanity/
|
|
112
|
-
"./
|
|
113
|
-
"./
|
|
114
|
-
"./styles/
|
|
115
|
-
"./styles/
|
|
116
|
-
"./
|
|
117
|
-
"./
|
|
118
|
-
"./site
|
|
119
|
-
"./site/
|
|
120
|
-
"./site/
|
|
121
|
-
"./site/
|
|
122
|
-
"./site/
|
|
123
|
-
"./site/
|
|
124
|
-
"./
|
|
125
|
-
"./
|
|
126
|
-
"./admin
|
|
127
|
-
"./admin/
|
|
128
|
-
"./admin/
|
|
129
|
-
"./admin/
|
|
130
|
-
"./admin/
|
|
131
|
-
"./admin/
|
|
132
|
-
"./admin/
|
|
133
|
-
"./admin/
|
|
134
|
-
"./admin/
|
|
135
|
-
"./admin/
|
|
136
|
-
"./admin/
|
|
137
|
-
"./
|
|
138
|
-
"./
|
|
139
|
-
"./
|
|
140
|
-
"./
|
|
141
|
-
"./
|
|
142
|
-
"./
|
|
143
|
-
"./api/admin/
|
|
144
|
-
"./api/admin/pages
|
|
145
|
-
"./api/admin/pages/
|
|
146
|
-
"./api/admin/
|
|
147
|
-
"./api/admin/
|
|
148
|
-
"./api/admin/assets/
|
|
149
|
-
"./api/admin/assets/
|
|
150
|
-
"./api/admin/assets/
|
|
151
|
-
"./api/admin/assets/
|
|
152
|
-
"./api/admin/assets/
|
|
153
|
-
"./api/admin/
|
|
154
|
-
"./api/admin/
|
|
155
|
-
"./api/admin/r2/
|
|
156
|
-
"./api/admin/r2/
|
|
157
|
-
"./api/admin/r2/
|
|
158
|
-
"./api/admin/r2/
|
|
159
|
-
"./api/admin/
|
|
160
|
-
"./api/admin/
|
|
161
|
-
"./api/admin/
|
|
162
|
-
"./api/admin/
|
|
163
|
-
"./api/admin/
|
|
164
|
-
"./api/admin/
|
|
165
|
-
"./api/admin/
|
|
166
|
-
"./api/admin/
|
|
167
|
-
"./api/admin/
|
|
168
|
-
"./api/admin/
|
|
169
|
-
"./api/admin/
|
|
170
|
-
"./api/
|
|
171
|
-
"./api/
|
|
172
|
-
"./api/
|
|
173
|
-
"./api/
|
|
174
|
-
"./api/
|
|
175
|
-
"./api/
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
"
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
"@
|
|
186
|
-
"@
|
|
187
|
-
"@dnd-kit/
|
|
188
|
-
"
|
|
189
|
-
"
|
|
190
|
-
"
|
|
191
|
-
"
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
"@
|
|
195
|
-
"@
|
|
196
|
-
"@
|
|
197
|
-
"@
|
|
198
|
-
"@
|
|
199
|
-
"
|
|
200
|
-
"
|
|
201
|
-
"
|
|
202
|
-
"
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
"
|
|
206
|
-
"
|
|
207
|
-
"
|
|
208
|
-
"
|
|
209
|
-
"
|
|
210
|
-
"
|
|
211
|
-
|
|
212
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@morphika/andami",
|
|
3
|
+
"version": "0.2.6",
|
|
4
|
+
"description": "Visual Page Builder — core library. A reusable website builder with visual editing, CMS integration, and asset management.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/MorphikaStudio/Morphika_Andami.git"
|
|
10
|
+
},
|
|
11
|
+
"keywords": [
|
|
12
|
+
"visual-builder",
|
|
13
|
+
"website-builder",
|
|
14
|
+
"cms",
|
|
15
|
+
"next.js",
|
|
16
|
+
"sanity",
|
|
17
|
+
"page-builder",
|
|
18
|
+
"morphika"
|
|
19
|
+
],
|
|
20
|
+
"publishConfig": {
|
|
21
|
+
"access": "public"
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"admin/",
|
|
25
|
+
"app/",
|
|
26
|
+
"components/",
|
|
27
|
+
"lib/",
|
|
28
|
+
"sanity/",
|
|
29
|
+
"site/",
|
|
30
|
+
"studio/",
|
|
31
|
+
"styles/",
|
|
32
|
+
"tsconfig.json",
|
|
33
|
+
"LICENSE",
|
|
34
|
+
"!**/__tests__/",
|
|
35
|
+
"!**/*.test.ts",
|
|
36
|
+
"!**/*.test.tsx",
|
|
37
|
+
"!**/*.spec.ts",
|
|
38
|
+
"!**/*.spec.tsx",
|
|
39
|
+
"!**/archive/"
|
|
40
|
+
],
|
|
41
|
+
"scripts": {
|
|
42
|
+
"prepack": "node scripts/prepack.mjs",
|
|
43
|
+
"test": "vitest",
|
|
44
|
+
"test:run": "vitest run",
|
|
45
|
+
"lint": "eslint",
|
|
46
|
+
"typecheck": "tsc --noEmit"
|
|
47
|
+
},
|
|
48
|
+
"exports": {
|
|
49
|
+
"./config": "./lib/config/index.ts",
|
|
50
|
+
"./config/types": "./lib/config/types.ts",
|
|
51
|
+
"./components/blocks": "./components/blocks/index.ts",
|
|
52
|
+
"./components/blocks/*": "./components/blocks/*.tsx",
|
|
53
|
+
"./components/builder": "./components/builder/index.ts",
|
|
54
|
+
"./components/builder/*": "./components/builder/*.tsx",
|
|
55
|
+
"./components/builder/editors/*": "./components/builder/editors/*.tsx",
|
|
56
|
+
"./components/builder/settings-panel": "./components/builder/settings-panel/index.ts",
|
|
57
|
+
"./components/builder/settings-panel/*": "./components/builder/settings-panel/*.tsx",
|
|
58
|
+
"./components/builder/settings-panel/responsive-helpers": "./components/builder/settings-panel/responsive-helpers.ts",
|
|
59
|
+
"./components/builder/asset-browser": "./components/builder/asset-browser/index.ts",
|
|
60
|
+
"./components/builder/asset-browser/*": "./components/builder/asset-browser/*.tsx",
|
|
61
|
+
"./components/builder/asset-browser/helpers": "./components/builder/asset-browser/helpers.ts",
|
|
62
|
+
"./components/builder/asset-browser/types": "./components/builder/asset-browser/types.ts",
|
|
63
|
+
"./components/builder/asset-browser/useAssetBrowser": "./components/builder/asset-browser/useAssetBrowser.ts",
|
|
64
|
+
"./components/builder/asset-browser/useR2DragDrop": "./components/builder/asset-browser/useR2DragDrop.ts",
|
|
65
|
+
"./components/builder/asset-browser/useR2Operations": "./components/builder/asset-browser/useR2Operations.ts",
|
|
66
|
+
"./components/builder/live-preview": "./components/builder/live-preview/index.ts",
|
|
67
|
+
"./components/builder/live-preview/*": "./components/builder/live-preview/*.tsx",
|
|
68
|
+
"./components/admin": "./components/admin/index.ts",
|
|
69
|
+
"./components/admin/*": "./components/admin/*.tsx",
|
|
70
|
+
"./components/admin/nav-builder": "./components/admin/nav-builder/index.ts",
|
|
71
|
+
"./components/admin/nav-builder/*": "./components/admin/nav-builder/*.tsx",
|
|
72
|
+
"./components/admin/nav-builder/nav-builder-utils": "./components/admin/nav-builder/nav-builder-utils.ts",
|
|
73
|
+
"./components/admin/styles": "./components/admin/styles/index.ts",
|
|
74
|
+
"./components/admin/styles/*": "./components/admin/styles/*.tsx",
|
|
75
|
+
"./components/ui/*": "./components/ui/*.tsx",
|
|
76
|
+
"./lib/builder": "./lib/builder/index.ts",
|
|
77
|
+
"./lib/builder/*": "./lib/builder/*.ts",
|
|
78
|
+
"./lib/sanity/client": "./lib/sanity/client.ts",
|
|
79
|
+
"./lib/sanity/writeClient": "./lib/sanity/writeClient.ts",
|
|
80
|
+
"./lib/sanity/queries": "./lib/sanity/queries.ts",
|
|
81
|
+
"./lib/sanity/types": "./lib/sanity/types.ts",
|
|
82
|
+
"./lib/editor": "./lib/editor/index.ts",
|
|
83
|
+
"./lib/editor/*": "./lib/editor/*.ts",
|
|
84
|
+
"./lib/animation/*": "./lib/animation/*.ts",
|
|
85
|
+
"./lib/shader/glsl": "./lib/shader/glsl/index.ts",
|
|
86
|
+
"./lib/storage": "./lib/storage/index.ts",
|
|
87
|
+
"./lib/storage/*": "./lib/storage/*.ts",
|
|
88
|
+
"./lib/contexts/*": "./lib/contexts/*.tsx",
|
|
89
|
+
"./lib/styles/provider": "./lib/styles/provider.tsx",
|
|
90
|
+
"./lib/hooks/*": "./lib/hooks/*.ts",
|
|
91
|
+
"./lib/thumbnails/*": "./lib/thumbnails/*.ts",
|
|
92
|
+
"./lib/assets": "./lib/assets.ts",
|
|
93
|
+
"./lib/auth": "./lib/auth.ts",
|
|
94
|
+
"./lib/auth-token": "./lib/auth-token.ts",
|
|
95
|
+
"./lib/csrf": "./lib/csrf.ts",
|
|
96
|
+
"./lib/csrf-client": "./lib/csrf-client.ts",
|
|
97
|
+
"./lib/security": "./lib/security.ts",
|
|
98
|
+
"./lib/bot-guard": "./lib/bot-guard.ts",
|
|
99
|
+
"./lib/sanitize": "./lib/sanitize.ts",
|
|
100
|
+
"./lib/logger": "./lib/logger.ts",
|
|
101
|
+
"./lib/audit": "./lib/audit.ts",
|
|
102
|
+
"./lib/revalidate": "./lib/revalidate.ts",
|
|
103
|
+
"./lib/color-utils": "./lib/color-utils.ts",
|
|
104
|
+
"./lib/format-utils": "./lib/format-utils.ts",
|
|
105
|
+
"./lib/utils": "./lib/utils.ts",
|
|
106
|
+
"./lib/asset-retry": "./lib/asset-retry.ts",
|
|
107
|
+
"./sanity/schemas": "./sanity/schemas/index.ts",
|
|
108
|
+
"./sanity/schemas/*": "./sanity/schemas/*.ts",
|
|
109
|
+
"./sanity/schemas/blocks": "./sanity/schemas/blocks/index.ts",
|
|
110
|
+
"./sanity/schemas/blocks/*": "./sanity/schemas/blocks/*.ts",
|
|
111
|
+
"./sanity/schemas/objects/*": "./sanity/schemas/objects/*.ts",
|
|
112
|
+
"./sanity/compose": "./sanity/compose.ts",
|
|
113
|
+
"./sanity/config": "./sanity/sanity.config.ts",
|
|
114
|
+
"./styles/base.css": "./styles/base.css",
|
|
115
|
+
"./styles/animations.css": "./styles/animations.css",
|
|
116
|
+
"./styles/admin.css": "./styles/admin.css",
|
|
117
|
+
"./styles/globals.css": "./styles/globals.css",
|
|
118
|
+
"./site": "./site/index.ts",
|
|
119
|
+
"./site/page": "./site/page.ts",
|
|
120
|
+
"./site/work": "./site/work.ts",
|
|
121
|
+
"./site/preview": "./site/preview.ts",
|
|
122
|
+
"./site/not-found": "./site/not-found.ts",
|
|
123
|
+
"./site/error": "./site/error.ts",
|
|
124
|
+
"./site/robots": "./site/robots.ts",
|
|
125
|
+
"./site/sitemap": "./site/sitemap.ts",
|
|
126
|
+
"./admin": "./admin/index.ts",
|
|
127
|
+
"./admin/login": "./admin/login.ts",
|
|
128
|
+
"./admin/pages": "./admin/pages.ts",
|
|
129
|
+
"./admin/pages/editor": "./admin/pages-editor.ts",
|
|
130
|
+
"./admin/projects": "./admin/projects.ts",
|
|
131
|
+
"./admin/projects/editor": "./admin/projects-editor.ts",
|
|
132
|
+
"./admin/styles": "./admin/styles.ts",
|
|
133
|
+
"./admin/navigation": "./admin/navigation.ts",
|
|
134
|
+
"./admin/storage": "./admin/storage.ts",
|
|
135
|
+
"./admin/assets": "./admin/assets.ts",
|
|
136
|
+
"./admin/database": "./admin/database.ts",
|
|
137
|
+
"./admin/settings": "./admin/settings.ts",
|
|
138
|
+
"./admin/setup": "./admin/setup.ts",
|
|
139
|
+
"./components/admin/setup-wizard": "./components/admin/setup-wizard/index.ts",
|
|
140
|
+
"./components/admin/setup-wizard/*": "./components/admin/setup-wizard/*.tsx",
|
|
141
|
+
"./lib/setup/detect": "./lib/setup/detect.ts",
|
|
142
|
+
"./studio": "./studio/index.ts",
|
|
143
|
+
"./api/admin/auth": "./app/api/admin/auth/route.ts",
|
|
144
|
+
"./api/admin/pages": "./app/api/admin/pages/route.ts",
|
|
145
|
+
"./api/admin/pages/slug": "./app/api/admin/pages/[slug]/route.ts",
|
|
146
|
+
"./api/admin/pages/duplicate": "./app/api/admin/pages/[slug]/duplicate/route.ts",
|
|
147
|
+
"./api/admin/pages/set-home": "./app/api/admin/pages/[slug]/set-home/route.ts",
|
|
148
|
+
"./api/admin/assets/scan": "./app/api/admin/assets/scan/route.ts",
|
|
149
|
+
"./api/admin/assets/registry": "./app/api/admin/assets/registry/route.ts",
|
|
150
|
+
"./api/admin/assets/relink": "./app/api/admin/assets/relink/route.ts",
|
|
151
|
+
"./api/admin/assets/relink-confirm": "./app/api/admin/assets/relink/confirm/route.ts",
|
|
152
|
+
"./api/admin/assets/file": "./app/api/admin/assets/file/route.ts",
|
|
153
|
+
"./api/admin/assets/register": "./app/api/admin/assets/register/route.ts",
|
|
154
|
+
"./api/admin/assets/health": "./app/api/admin/assets/health/route.ts",
|
|
155
|
+
"./api/admin/r2/connect": "./app/api/admin/r2/connect/route.ts",
|
|
156
|
+
"./api/admin/r2/disconnect": "./app/api/admin/r2/disconnect/route.ts",
|
|
157
|
+
"./api/admin/r2/status": "./app/api/admin/r2/status/route.ts",
|
|
158
|
+
"./api/admin/r2/upload-url": "./app/api/admin/r2/upload-url/route.ts",
|
|
159
|
+
"./api/admin/r2/delete": "./app/api/admin/r2/delete/route.ts",
|
|
160
|
+
"./api/admin/r2/rename": "./app/api/admin/r2/rename/route.ts",
|
|
161
|
+
"./api/admin/custom-sections": "./app/api/admin/custom-sections/route.ts",
|
|
162
|
+
"./api/admin/custom-sections/slug": "./app/api/admin/custom-sections/[slug]/route.ts",
|
|
163
|
+
"./api/admin/styles": "./app/api/admin/styles/route.ts",
|
|
164
|
+
"./api/admin/styles/fonts": "./app/api/admin/styles/fonts/route.ts",
|
|
165
|
+
"./api/admin/settings": "./app/api/admin/settings/route.ts",
|
|
166
|
+
"./api/admin/database": "./app/api/admin/database/route.ts",
|
|
167
|
+
"./api/admin/setup": "./app/api/admin/setup/route.ts",
|
|
168
|
+
"./api/admin/setup/complete": "./app/api/admin/setup/complete/route.ts",
|
|
169
|
+
"./api/admin/preview": "./app/api/admin/preview/route.ts",
|
|
170
|
+
"./api/admin/revalidate": "./app/api/admin/revalidate/route.ts",
|
|
171
|
+
"./api/admin/storage/switch": "./app/api/admin/storage/switch/route.ts",
|
|
172
|
+
"./api/styles": "./app/api/styles/route.ts",
|
|
173
|
+
"./api/projects": "./app/api/projects/route.ts",
|
|
174
|
+
"./api/assets": "./app/api/assets/[...path]/route.ts",
|
|
175
|
+
"./api/custom-sections": "./app/api/custom-sections/[id]/route.ts",
|
|
176
|
+
"./api/draft-mode/enable": "./app/api/draft-mode/enable/route.ts",
|
|
177
|
+
"./api/draft-mode/disable": "./app/api/draft-mode/disable/route.ts"
|
|
178
|
+
},
|
|
179
|
+
"peerDependencies": {
|
|
180
|
+
"next": ">=16.0.0",
|
|
181
|
+
"react": ">=19.0.0",
|
|
182
|
+
"react-dom": ">=19.0.0"
|
|
183
|
+
},
|
|
184
|
+
"dependencies": {
|
|
185
|
+
"@aws-sdk/client-s3": "^3.1021.0",
|
|
186
|
+
"@aws-sdk/s3-request-presigner": "^3.1021.0",
|
|
187
|
+
"@dnd-kit/core": "^6.3.1",
|
|
188
|
+
"@dnd-kit/sortable": "^10.0.0",
|
|
189
|
+
"@dnd-kit/utilities": "^3.2.2",
|
|
190
|
+
"@tiptap/core": "^2.12.0",
|
|
191
|
+
"@tiptap/extension-bubble-menu": "^2.12.0",
|
|
192
|
+
"@tiptap/extension-color": "^2.27.2",
|
|
193
|
+
"@tiptap/extension-link": "^2.12.0",
|
|
194
|
+
"@tiptap/extension-text-style": "^2.27.2",
|
|
195
|
+
"@tiptap/extension-underline": "^2.12.0",
|
|
196
|
+
"@tiptap/pm": "^2.12.0",
|
|
197
|
+
"@tiptap/react": "^2.12.0",
|
|
198
|
+
"@tiptap/starter-kit": "^2.12.0",
|
|
199
|
+
"next-sanity": "^12.1.5",
|
|
200
|
+
"ogl": "^1.0.8",
|
|
201
|
+
"sanity": "^5.17.1",
|
|
202
|
+
"zustand": "^5.0.12"
|
|
203
|
+
},
|
|
204
|
+
"devDependencies": {
|
|
205
|
+
"@tailwindcss/postcss": "^4",
|
|
206
|
+
"@testing-library/dom": "^10.4.1",
|
|
207
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
208
|
+
"@testing-library/react": "^16.3.0",
|
|
209
|
+
"@testing-library/user-event": "^14.6.1",
|
|
210
|
+
"@types/node": "^20",
|
|
211
|
+
"@types/react": "^19",
|
|
212
|
+
"@types/react-dom": "^19",
|
|
213
|
+
"eslint": "^9",
|
|
214
|
+
"eslint-config-next": "16.2.1",
|
|
215
|
+
"jsdom": "^26.1.0",
|
|
216
|
+
"next": "16.2.1",
|
|
217
|
+
"react": "19.2.4",
|
|
218
|
+
"react-dom": "19.2.4",
|
|
219
|
+
"tailwindcss": "^4",
|
|
220
|
+
"typescript": "^5",
|
|
221
|
+
"vitest": "^4.1.2"
|
|
222
|
+
}
|
|
223
|
+
}
|
|
@@ -48,6 +48,19 @@ export const textBlock = defineType({
|
|
|
48
48
|
}),
|
|
49
49
|
],
|
|
50
50
|
},
|
|
51
|
+
{
|
|
52
|
+
name: "color",
|
|
53
|
+
type: "object",
|
|
54
|
+
title: "Text Color",
|
|
55
|
+
fields: [
|
|
56
|
+
defineField({
|
|
57
|
+
name: "hex",
|
|
58
|
+
type: "string",
|
|
59
|
+
title: "Color",
|
|
60
|
+
validation: (Rule) => Rule.required(),
|
|
61
|
+
}),
|
|
62
|
+
],
|
|
63
|
+
},
|
|
51
64
|
],
|
|
52
65
|
},
|
|
53
66
|
},
|