@jhits/plugin-blog 0.0.7 → 0.0.9

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.
Files changed (440) hide show
  1. package/dist/api/categories.d.ts +8 -0
  2. package/dist/api/categories.d.ts.map +1 -0
  3. package/dist/api/categories.js +30 -0
  4. package/dist/api/check-title.d.ts +8 -0
  5. package/dist/api/check-title.d.ts.map +1 -0
  6. package/dist/api/check-title.js +47 -0
  7. package/dist/api/config-handler.d.ts +21 -0
  8. package/dist/api/config-handler.d.ts.map +1 -0
  9. package/dist/api/config-handler.js +46 -0
  10. package/dist/api/handler.d.ts +42 -0
  11. package/dist/api/handler.d.ts.map +1 -0
  12. package/dist/api/handler.js +331 -0
  13. package/dist/api/index.d.ts +12 -0
  14. package/dist/api/index.d.ts.map +1 -0
  15. package/dist/api/index.js +12 -0
  16. package/dist/api/route.d.ts +50 -0
  17. package/dist/api/route.d.ts.map +1 -0
  18. package/dist/api/route.js +69 -0
  19. package/dist/api/router.d.ts +27 -0
  20. package/dist/api/router.d.ts.map +1 -0
  21. package/dist/api/router.js +98 -0
  22. package/dist/api-server.d.ts +9 -0
  23. package/dist/api-server.d.ts.map +1 -0
  24. package/dist/api-server.js +9 -0
  25. package/dist/config.d.ts +14 -0
  26. package/dist/config.d.ts.map +1 -0
  27. package/dist/config.js +156 -0
  28. package/dist/hooks/index.d.ts +8 -0
  29. package/dist/hooks/index.d.ts.map +1 -0
  30. package/dist/hooks/index.js +7 -0
  31. package/dist/hooks/useBlog.d.ts +31 -0
  32. package/dist/hooks/useBlog.d.ts.map +1 -0
  33. package/dist/hooks/useBlog.js +57 -0
  34. package/dist/hooks/useBlogs.d.ts +39 -0
  35. package/dist/hooks/useBlogs.d.ts.map +1 -0
  36. package/dist/hooks/useBlogs.js +82 -0
  37. package/dist/hooks/useCategories.d.ts +9 -0
  38. package/dist/hooks/useCategories.d.ts.map +1 -0
  39. package/dist/hooks/useCategories.js +70 -0
  40. package/dist/index.d.ts +55 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.js +228 -0
  43. package/dist/index.server.d.ts +12 -0
  44. package/dist/index.server.d.ts.map +1 -0
  45. package/dist/index.server.js +10 -0
  46. package/dist/init.d.ts +40 -0
  47. package/dist/init.d.ts.map +1 -0
  48. package/dist/init.js +41 -0
  49. package/dist/lib/blocks/BlockRenderer.d.ts +54 -0
  50. package/dist/lib/blocks/BlockRenderer.d.ts.map +1 -0
  51. package/dist/lib/blocks/BlockRenderer.js +54 -0
  52. package/dist/lib/blocks/index.d.ts +5 -0
  53. package/dist/lib/blocks/index.d.ts.map +1 -0
  54. package/dist/lib/blocks/index.js +4 -0
  55. package/dist/lib/config-storage.d.ts +30 -0
  56. package/dist/lib/config-storage.d.ts.map +1 -0
  57. package/dist/lib/config-storage.js +31 -0
  58. package/dist/lib/index.d.ts +8 -0
  59. package/dist/lib/index.d.ts.map +1 -0
  60. package/dist/lib/index.js +7 -0
  61. package/dist/lib/layouts/blocks/ColumnsBlock.d.ts +25 -0
  62. package/dist/lib/layouts/blocks/ColumnsBlock.d.ts.map +1 -0
  63. package/dist/lib/layouts/blocks/ColumnsBlock.js +186 -0
  64. package/dist/lib/layouts/blocks/SectionBlock.d.ts +25 -0
  65. package/dist/lib/layouts/blocks/SectionBlock.d.ts.map +1 -0
  66. package/dist/lib/layouts/blocks/SectionBlock.js +44 -0
  67. package/dist/lib/layouts/blocks/index.d.ts +7 -0
  68. package/dist/lib/layouts/blocks/index.d.ts.map +1 -0
  69. package/dist/lib/layouts/blocks/index.js +6 -0
  70. package/dist/lib/layouts/index.d.ts +23 -0
  71. package/dist/lib/layouts/index.d.ts.map +1 -0
  72. package/dist/lib/layouts/index.js +45 -0
  73. package/dist/lib/layouts/registerLayoutBlocks.d.ts +9 -0
  74. package/dist/lib/layouts/registerLayoutBlocks.d.ts.map +1 -0
  75. package/dist/lib/layouts/registerLayoutBlocks.js +60 -0
  76. package/dist/lib/mappers/apiMapper.d.ts +66 -0
  77. package/dist/lib/mappers/apiMapper.d.ts.map +1 -0
  78. package/dist/lib/mappers/apiMapper.js +188 -0
  79. package/dist/lib/migration/index.d.ts +5 -0
  80. package/dist/lib/migration/index.d.ts.map +1 -0
  81. package/dist/lib/migration/index.js +4 -0
  82. package/dist/lib/migration/mapper.d.ts +37 -0
  83. package/dist/lib/migration/mapper.d.ts.map +1 -0
  84. package/dist/lib/migration/mapper.js +98 -0
  85. package/dist/lib/rich-text/RichTextEditor.d.ts +45 -0
  86. package/dist/lib/rich-text/RichTextEditor.d.ts.map +1 -0
  87. package/dist/lib/rich-text/RichTextEditor.js +556 -0
  88. package/dist/lib/rich-text/RichTextPreview.d.ts +16 -0
  89. package/dist/lib/rich-text/RichTextPreview.d.ts.map +1 -0
  90. package/dist/lib/rich-text/RichTextPreview.js +144 -0
  91. package/dist/lib/rich-text/index.d.ts +9 -0
  92. package/dist/lib/rich-text/index.d.ts.map +1 -0
  93. package/dist/lib/rich-text/index.js +6 -0
  94. package/dist/lib/utils/blockHelpers.d.ts +23 -0
  95. package/dist/lib/utils/blockHelpers.d.ts.map +1 -0
  96. package/dist/lib/utils/blockHelpers.js +65 -0
  97. package/dist/lib/utils/configValidation.d.ts +23 -0
  98. package/dist/lib/utils/configValidation.d.ts.map +1 -0
  99. package/dist/lib/utils/configValidation.js +111 -0
  100. package/dist/lib/utils/index.d.ts +7 -0
  101. package/dist/lib/utils/index.d.ts.map +1 -0
  102. package/dist/lib/utils/index.js +6 -0
  103. package/dist/lib/utils/slugify.d.ts +25 -0
  104. package/dist/lib/utils/slugify.d.ts.map +1 -0
  105. package/dist/lib/utils/slugify.js +65 -0
  106. package/dist/registry/BlockRegistry.d.ts +62 -0
  107. package/dist/registry/BlockRegistry.d.ts.map +1 -0
  108. package/dist/registry/BlockRegistry.js +112 -0
  109. package/dist/registry/index.d.ts +6 -0
  110. package/dist/registry/index.d.ts.map +1 -0
  111. package/dist/registry/index.js +4 -0
  112. package/dist/state/EditorContext.d.ts +45 -0
  113. package/dist/state/EditorContext.d.ts.map +1 -0
  114. package/dist/state/EditorContext.js +215 -0
  115. package/dist/state/index.d.ts +7 -0
  116. package/dist/state/index.d.ts.map +1 -0
  117. package/dist/state/index.js +6 -0
  118. package/dist/state/reducer.d.ts +11 -0
  119. package/dist/state/reducer.d.ts.map +1 -0
  120. package/dist/state/reducer.js +599 -0
  121. package/dist/state/types.d.ts +162 -0
  122. package/dist/state/types.d.ts.map +1 -0
  123. package/dist/state/types.js +27 -0
  124. package/dist/types/block.d.ts +221 -0
  125. package/dist/types/block.d.ts.map +1 -0
  126. package/dist/types/block.js +6 -0
  127. package/dist/types/index.d.ts +8 -0
  128. package/dist/types/index.d.ts.map +1 -0
  129. package/dist/types/index.js +5 -0
  130. package/dist/types/post.d.ts +136 -0
  131. package/dist/types/post.d.ts.map +1 -0
  132. package/dist/types/post.js +5 -0
  133. package/dist/utils/client.d.ts +48 -0
  134. package/dist/utils/client.d.ts.map +1 -0
  135. package/dist/utils/client.js +77 -0
  136. package/dist/utils/index.d.ts +6 -0
  137. package/dist/utils/index.d.ts.map +1 -0
  138. package/dist/utils/index.js +5 -0
  139. package/dist/views/CanvasEditor/BlockWrapper.d.ts +16 -0
  140. package/dist/views/CanvasEditor/BlockWrapper.d.ts.map +1 -0
  141. package/dist/views/CanvasEditor/BlockWrapper.js +285 -0
  142. package/dist/views/CanvasEditor/CanvasEditorView.d.ts +14 -0
  143. package/dist/views/CanvasEditor/CanvasEditorView.d.ts.map +1 -0
  144. package/dist/views/CanvasEditor/CanvasEditorView.js +215 -0
  145. package/dist/views/CanvasEditor/EditorBody.d.ts +22 -0
  146. package/dist/views/CanvasEditor/EditorBody.d.ts.map +1 -0
  147. package/dist/views/CanvasEditor/EditorBody.js +505 -0
  148. package/dist/views/CanvasEditor/EditorHeader.d.ts +18 -0
  149. package/dist/views/CanvasEditor/EditorHeader.d.ts.map +1 -0
  150. package/dist/views/CanvasEditor/EditorHeader.js +101 -0
  151. package/dist/views/CanvasEditor/LayoutContainer.d.ts +17 -0
  152. package/dist/views/CanvasEditor/LayoutContainer.d.ts.map +1 -0
  153. package/dist/views/CanvasEditor/LayoutContainer.js +222 -0
  154. package/dist/views/CanvasEditor/SaveConfirmationModal.d.ts +13 -0
  155. package/dist/views/CanvasEditor/SaveConfirmationModal.d.ts.map +1 -0
  156. package/dist/views/CanvasEditor/SaveConfirmationModal.js +78 -0
  157. package/dist/views/CanvasEditor/components/CustomBlockItem.d.ts +14 -0
  158. package/dist/views/CanvasEditor/components/CustomBlockItem.d.ts.map +1 -0
  159. package/dist/views/CanvasEditor/components/CustomBlockItem.js +44 -0
  160. package/dist/views/CanvasEditor/components/EditorCanvas.d.ts +29 -0
  161. package/dist/views/CanvasEditor/components/EditorCanvas.d.ts.map +1 -0
  162. package/dist/views/CanvasEditor/components/EditorCanvas.js +32 -0
  163. package/dist/views/CanvasEditor/components/EditorLibrary.d.ts +7 -0
  164. package/dist/views/CanvasEditor/components/EditorLibrary.d.ts.map +1 -0
  165. package/dist/views/CanvasEditor/components/EditorLibrary.js +25 -0
  166. package/dist/views/CanvasEditor/components/EditorSidebar.d.ts +13 -0
  167. package/dist/views/CanvasEditor/components/EditorSidebar.d.ts.map +1 -0
  168. package/dist/views/CanvasEditor/components/EditorSidebar.js +19 -0
  169. package/dist/views/CanvasEditor/components/ErrorBanner.d.ts +6 -0
  170. package/dist/views/CanvasEditor/components/ErrorBanner.d.ts.map +1 -0
  171. package/dist/views/CanvasEditor/components/ErrorBanner.js +8 -0
  172. package/dist/views/CanvasEditor/components/FeaturedMediaSection.d.ts +25 -0
  173. package/dist/views/CanvasEditor/components/FeaturedMediaSection.d.ts.map +1 -0
  174. package/dist/views/CanvasEditor/components/FeaturedMediaSection.js +199 -0
  175. package/dist/views/CanvasEditor/components/LibraryItem.d.ts +14 -0
  176. package/dist/views/CanvasEditor/components/LibraryItem.d.ts.map +1 -0
  177. package/dist/views/CanvasEditor/components/LibraryItem.js +43 -0
  178. package/dist/views/CanvasEditor/components/PrivacySettingsSection.d.ts +15 -0
  179. package/dist/views/CanvasEditor/components/PrivacySettingsSection.d.ts.map +1 -0
  180. package/dist/views/CanvasEditor/components/PrivacySettingsSection.js +70 -0
  181. package/dist/views/CanvasEditor/components/index.d.ts +21 -0
  182. package/dist/views/CanvasEditor/components/index.d.ts.map +1 -0
  183. package/dist/views/CanvasEditor/components/index.js +12 -0
  184. package/dist/views/CanvasEditor/hooks/index.d.ts +10 -0
  185. package/dist/views/CanvasEditor/hooks/index.d.ts.map +1 -0
  186. package/dist/views/CanvasEditor/hooks/index.js +9 -0
  187. package/dist/views/CanvasEditor/hooks/useHeroBlock.d.ts +8 -0
  188. package/dist/views/CanvasEditor/hooks/useHeroBlock.d.ts.map +1 -0
  189. package/dist/views/CanvasEditor/hooks/useHeroBlock.js +90 -0
  190. package/dist/views/CanvasEditor/hooks/useKeyboardShortcuts.d.ts +3 -0
  191. package/dist/views/CanvasEditor/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  192. package/dist/views/CanvasEditor/hooks/useKeyboardShortcuts.js +119 -0
  193. package/dist/views/CanvasEditor/hooks/usePostLoader.d.ts +5 -0
  194. package/dist/views/CanvasEditor/hooks/usePostLoader.d.ts.map +1 -0
  195. package/dist/views/CanvasEditor/hooks/usePostLoader.js +32 -0
  196. package/dist/views/CanvasEditor/hooks/useRegisteredBlocks.d.ts +2 -0
  197. package/dist/views/CanvasEditor/hooks/useRegisteredBlocks.d.ts.map +1 -0
  198. package/dist/views/CanvasEditor/hooks/useRegisteredBlocks.js +47 -0
  199. package/dist/views/CanvasEditor/hooks/useUnsavedChanges.d.ts +25 -0
  200. package/dist/views/CanvasEditor/hooks/useUnsavedChanges.d.ts.map +1 -0
  201. package/dist/views/CanvasEditor/hooks/useUnsavedChanges.js +285 -0
  202. package/dist/views/CanvasEditor/index.d.ts +16 -0
  203. package/dist/views/CanvasEditor/index.d.ts.map +1 -0
  204. package/dist/views/CanvasEditor/index.js +9 -0
  205. package/dist/views/PostManager/EmptyState.d.ts +10 -0
  206. package/dist/views/PostManager/EmptyState.d.ts.map +1 -0
  207. package/dist/views/PostManager/EmptyState.js +12 -0
  208. package/dist/views/PostManager/PostActionsMenu.d.ts +12 -0
  209. package/dist/views/PostManager/PostActionsMenu.d.ts.map +1 -0
  210. package/dist/views/PostManager/PostActionsMenu.js +58 -0
  211. package/dist/views/PostManager/PostCards.d.ts +15 -0
  212. package/dist/views/PostManager/PostCards.d.ts.map +1 -0
  213. package/dist/views/PostManager/PostCards.js +77 -0
  214. package/dist/views/PostManager/PostFilters.d.ts +16 -0
  215. package/dist/views/PostManager/PostFilters.d.ts.map +1 -0
  216. package/dist/views/PostManager/PostFilters.js +10 -0
  217. package/dist/views/PostManager/PostManagerView.d.ts +11 -0
  218. package/dist/views/PostManager/PostManagerView.d.ts.map +1 -0
  219. package/dist/views/PostManager/PostManagerView.js +179 -0
  220. package/dist/views/PostManager/PostStats.d.ts +11 -0
  221. package/dist/views/PostManager/PostStats.d.ts.map +1 -0
  222. package/dist/views/PostManager/PostStats.js +46 -0
  223. package/dist/views/PostManager/PostTable.d.ts +15 -0
  224. package/dist/views/PostManager/PostTable.d.ts.map +1 -0
  225. package/dist/views/PostManager/PostTable.js +77 -0
  226. package/dist/views/PostManager/index.d.ts +12 -0
  227. package/dist/views/PostManager/index.d.ts.map +1 -0
  228. package/dist/views/PostManager/index.js +11 -0
  229. package/dist/views/Preview/PreviewBridgeView.d.ts +12 -0
  230. package/dist/views/Preview/PreviewBridgeView.d.ts.map +1 -0
  231. package/dist/views/Preview/PreviewBridgeView.js +11 -0
  232. package/dist/views/Preview/index.d.ts +6 -0
  233. package/dist/views/Preview/index.d.ts.map +1 -0
  234. package/dist/views/Preview/index.js +4 -0
  235. package/dist/views/Settings/SettingsView.d.ts +10 -0
  236. package/dist/views/Settings/SettingsView.d.ts.map +1 -0
  237. package/dist/views/Settings/SettingsView.js +113 -0
  238. package/dist/views/Settings/index.d.ts +6 -0
  239. package/dist/views/Settings/index.d.ts.map +1 -0
  240. package/dist/views/Settings/index.js +4 -0
  241. package/dist/views/SlugSEO/SlugSEOManagerView.d.ts +12 -0
  242. package/dist/views/SlugSEO/SlugSEOManagerView.d.ts.map +1 -0
  243. package/dist/views/SlugSEO/SlugSEOManagerView.js +11 -0
  244. package/dist/views/SlugSEO/index.d.ts +6 -0
  245. package/dist/views/SlugSEO/index.d.ts.map +1 -0
  246. package/dist/views/SlugSEO/index.js +4 -0
  247. package/package.json +59 -55
  248. package/src/hooks/index.d.ts +8 -0
  249. package/src/hooks/index.d.ts.map +1 -0
  250. package/src/hooks/index.js +7 -0
  251. package/src/hooks/useBlog.d.ts +31 -0
  252. package/src/hooks/useBlog.d.ts.map +1 -0
  253. package/src/hooks/useBlog.js +57 -0
  254. package/src/hooks/useBlogs.d.ts +39 -0
  255. package/src/hooks/useBlogs.d.ts.map +1 -0
  256. package/src/hooks/useBlogs.js +82 -0
  257. package/src/hooks/useCategories.d.ts +9 -0
  258. package/src/hooks/useCategories.d.ts.map +1 -0
  259. package/src/hooks/useCategories.js +70 -0
  260. package/src/index.d.ts +55 -0
  261. package/src/index.d.ts.map +1 -0
  262. package/src/index.js +228 -0
  263. package/src/init.d.ts +40 -0
  264. package/src/init.d.ts.map +1 -0
  265. package/src/init.js +41 -0
  266. package/src/lib/blocks/BlockRenderer.d.ts +54 -0
  267. package/src/lib/blocks/BlockRenderer.d.ts.map +1 -0
  268. package/src/lib/blocks/BlockRenderer.js +54 -0
  269. package/src/lib/config-storage.d.ts +30 -0
  270. package/src/lib/config-storage.d.ts.map +1 -0
  271. package/src/lib/config-storage.js +31 -0
  272. package/src/lib/layouts/blocks/ColumnsBlock.d.ts +25 -0
  273. package/src/lib/layouts/blocks/ColumnsBlock.d.ts.map +1 -0
  274. package/src/lib/layouts/blocks/ColumnsBlock.js +182 -0
  275. package/src/lib/layouts/blocks/SectionBlock.d.ts +25 -0
  276. package/src/lib/layouts/blocks/SectionBlock.d.ts.map +1 -0
  277. package/src/lib/layouts/blocks/SectionBlock.js +44 -0
  278. package/src/lib/layouts/index.d.ts +23 -0
  279. package/src/lib/layouts/index.d.ts.map +1 -0
  280. package/src/lib/layouts/index.js +45 -0
  281. package/src/lib/layouts/registerLayoutBlocks.d.ts +9 -0
  282. package/src/lib/layouts/registerLayoutBlocks.d.ts.map +1 -0
  283. package/src/lib/layouts/registerLayoutBlocks.js +60 -0
  284. package/src/lib/mappers/apiMapper.d.ts +66 -0
  285. package/src/lib/mappers/apiMapper.d.ts.map +1 -0
  286. package/src/lib/mappers/apiMapper.js +191 -0
  287. package/src/lib/rich-text/RichTextEditor.d.ts +45 -0
  288. package/src/lib/rich-text/RichTextEditor.d.ts.map +1 -0
  289. package/src/lib/rich-text/RichTextEditor.js +564 -0
  290. package/src/lib/rich-text/RichTextPreview.d.ts +16 -0
  291. package/src/lib/rich-text/RichTextPreview.d.ts.map +1 -0
  292. package/src/lib/rich-text/RichTextPreview.js +144 -0
  293. package/src/lib/rich-text/index.d.ts +9 -0
  294. package/src/lib/rich-text/index.d.ts.map +1 -0
  295. package/src/lib/rich-text/index.js +6 -0
  296. package/src/lib/utils/blockHelpers.d.ts +23 -0
  297. package/src/lib/utils/blockHelpers.d.ts.map +1 -0
  298. package/src/lib/utils/blockHelpers.js +65 -0
  299. package/src/lib/utils/configValidation.d.ts +23 -0
  300. package/src/lib/utils/configValidation.d.ts.map +1 -0
  301. package/src/lib/utils/configValidation.js +113 -0
  302. package/src/registry/BlockRegistry.d.ts +62 -0
  303. package/src/registry/BlockRegistry.d.ts.map +1 -0
  304. package/src/registry/BlockRegistry.js +112 -0
  305. package/src/registry/index.d.ts +6 -0
  306. package/src/registry/index.d.ts.map +1 -0
  307. package/src/registry/index.js +4 -0
  308. package/src/state/EditorContext.d.ts +45 -0
  309. package/src/state/EditorContext.d.ts.map +1 -0
  310. package/src/state/EditorContext.js +215 -0
  311. package/src/state/index.d.ts +7 -0
  312. package/src/state/index.d.ts.map +1 -0
  313. package/src/state/index.js +6 -0
  314. package/src/state/reducer.d.ts +11 -0
  315. package/src/state/reducer.d.ts.map +1 -0
  316. package/src/state/reducer.js +443 -0
  317. package/src/state/types.d.ts +162 -0
  318. package/src/state/types.d.ts.map +1 -0
  319. package/src/state/types.js +27 -0
  320. package/src/types/block.d.ts +221 -0
  321. package/src/types/block.d.ts.map +1 -0
  322. package/src/types/block.js +6 -0
  323. package/src/types/index.d.ts +8 -0
  324. package/src/types/index.d.ts.map +1 -0
  325. package/src/types/index.js +5 -0
  326. package/src/types/post.d.ts +136 -0
  327. package/src/types/post.d.ts.map +1 -0
  328. package/src/types/post.js +5 -0
  329. package/src/utils/client.d.ts +48 -0
  330. package/src/utils/client.d.ts.map +1 -0
  331. package/src/utils/client.js +77 -0
  332. package/src/utils/index.ts +0 -2
  333. package/src/views/CanvasEditor/BlockWrapper.d.ts +16 -0
  334. package/src/views/CanvasEditor/BlockWrapper.d.ts.map +1 -0
  335. package/src/views/CanvasEditor/BlockWrapper.js +276 -0
  336. package/src/views/CanvasEditor/CanvasEditorView.d.ts +14 -0
  337. package/src/views/CanvasEditor/CanvasEditorView.d.ts.map +1 -0
  338. package/src/views/CanvasEditor/CanvasEditorView.js +209 -0
  339. package/src/views/CanvasEditor/EditorBody.d.ts +22 -0
  340. package/src/views/CanvasEditor/EditorBody.d.ts.map +1 -0
  341. package/src/views/CanvasEditor/EditorBody.js +505 -0
  342. package/src/views/CanvasEditor/EditorHeader.d.ts +18 -0
  343. package/src/views/CanvasEditor/EditorHeader.d.ts.map +1 -0
  344. package/src/views/CanvasEditor/EditorHeader.js +101 -0
  345. package/src/views/CanvasEditor/LayoutContainer.d.ts +17 -0
  346. package/src/views/CanvasEditor/LayoutContainer.d.ts.map +1 -0
  347. package/src/views/CanvasEditor/LayoutContainer.js +222 -0
  348. package/src/views/CanvasEditor/SaveConfirmationModal.d.ts +13 -0
  349. package/src/views/CanvasEditor/SaveConfirmationModal.d.ts.map +1 -0
  350. package/src/views/CanvasEditor/SaveConfirmationModal.js +78 -0
  351. package/src/views/CanvasEditor/components/CustomBlockItem.d.ts +14 -0
  352. package/src/views/CanvasEditor/components/CustomBlockItem.d.ts.map +1 -0
  353. package/src/views/CanvasEditor/components/CustomBlockItem.js +44 -0
  354. package/src/views/CanvasEditor/components/EditorCanvas.d.ts +29 -0
  355. package/src/views/CanvasEditor/components/EditorCanvas.d.ts.map +1 -0
  356. package/src/views/CanvasEditor/components/EditorCanvas.js +32 -0
  357. package/src/views/CanvasEditor/components/EditorLibrary.d.ts +7 -0
  358. package/src/views/CanvasEditor/components/EditorLibrary.d.ts.map +1 -0
  359. package/src/views/CanvasEditor/components/EditorLibrary.js +25 -0
  360. package/src/views/CanvasEditor/components/EditorSidebar.d.ts +13 -0
  361. package/src/views/CanvasEditor/components/EditorSidebar.d.ts.map +1 -0
  362. package/src/views/CanvasEditor/components/EditorSidebar.js +20 -0
  363. package/src/views/CanvasEditor/components/ErrorBanner.d.ts +6 -0
  364. package/src/views/CanvasEditor/components/ErrorBanner.d.ts.map +1 -0
  365. package/src/views/CanvasEditor/components/ErrorBanner.js +8 -0
  366. package/src/views/CanvasEditor/components/FeaturedMediaSection.d.ts +25 -0
  367. package/src/views/CanvasEditor/components/FeaturedMediaSection.d.ts.map +1 -0
  368. package/src/views/CanvasEditor/components/FeaturedMediaSection.js +182 -0
  369. package/src/views/CanvasEditor/components/LibraryItem.d.ts +14 -0
  370. package/src/views/CanvasEditor/components/LibraryItem.d.ts.map +1 -0
  371. package/src/views/CanvasEditor/components/LibraryItem.js +43 -0
  372. package/src/views/CanvasEditor/components/PrivacySettingsSection.d.ts +15 -0
  373. package/src/views/CanvasEditor/components/PrivacySettingsSection.d.ts.map +1 -0
  374. package/src/views/CanvasEditor/components/PrivacySettingsSection.js +63 -0
  375. package/src/views/CanvasEditor/components/index.d.ts +21 -0
  376. package/src/views/CanvasEditor/components/index.d.ts.map +1 -0
  377. package/src/views/CanvasEditor/components/index.js +12 -0
  378. package/src/views/CanvasEditor/hooks/index.d.ts +10 -0
  379. package/src/views/CanvasEditor/hooks/index.d.ts.map +1 -0
  380. package/src/views/CanvasEditor/hooks/index.js +9 -0
  381. package/src/views/CanvasEditor/hooks/useHeroBlock.d.ts +8 -0
  382. package/src/views/CanvasEditor/hooks/useHeroBlock.d.ts.map +1 -0
  383. package/src/views/CanvasEditor/hooks/useHeroBlock.js +79 -0
  384. package/src/views/CanvasEditor/hooks/useKeyboardShortcuts.d.ts +3 -0
  385. package/src/views/CanvasEditor/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  386. package/src/views/CanvasEditor/hooks/useKeyboardShortcuts.js +114 -0
  387. package/src/views/CanvasEditor/hooks/usePostLoader.d.ts +5 -0
  388. package/src/views/CanvasEditor/hooks/usePostLoader.d.ts.map +1 -0
  389. package/src/views/CanvasEditor/hooks/usePostLoader.js +32 -0
  390. package/src/views/CanvasEditor/hooks/useRegisteredBlocks.d.ts +2 -0
  391. package/src/views/CanvasEditor/hooks/useRegisteredBlocks.d.ts.map +1 -0
  392. package/src/views/CanvasEditor/hooks/useRegisteredBlocks.js +47 -0
  393. package/src/views/CanvasEditor/hooks/useUnsavedChanges.d.ts +25 -0
  394. package/src/views/CanvasEditor/hooks/useUnsavedChanges.d.ts.map +1 -0
  395. package/src/views/CanvasEditor/hooks/useUnsavedChanges.js +285 -0
  396. package/src/views/CanvasEditor/index.d.ts +16 -0
  397. package/src/views/CanvasEditor/index.d.ts.map +1 -0
  398. package/src/views/CanvasEditor/index.js +9 -0
  399. package/src/views/PostManager/EmptyState.d.ts +10 -0
  400. package/src/views/PostManager/EmptyState.d.ts.map +1 -0
  401. package/src/views/PostManager/EmptyState.js +12 -0
  402. package/src/views/PostManager/PostActionsMenu.d.ts +12 -0
  403. package/src/views/PostManager/PostActionsMenu.d.ts.map +1 -0
  404. package/src/views/PostManager/PostActionsMenu.js +58 -0
  405. package/src/views/PostManager/PostCards.d.ts +15 -0
  406. package/src/views/PostManager/PostCards.d.ts.map +1 -0
  407. package/src/views/PostManager/PostCards.js +79 -0
  408. package/src/views/PostManager/PostFilters.d.ts +16 -0
  409. package/src/views/PostManager/PostFilters.d.ts.map +1 -0
  410. package/src/views/PostManager/PostFilters.js +10 -0
  411. package/src/views/PostManager/PostManagerView.d.ts +11 -0
  412. package/src/views/PostManager/PostManagerView.d.ts.map +1 -0
  413. package/src/views/PostManager/PostManagerView.js +174 -0
  414. package/src/views/PostManager/PostStats.d.ts +11 -0
  415. package/src/views/PostManager/PostStats.d.ts.map +1 -0
  416. package/src/views/PostManager/PostStats.js +46 -0
  417. package/src/views/PostManager/PostTable.d.ts +15 -0
  418. package/src/views/PostManager/PostTable.d.ts.map +1 -0
  419. package/src/views/PostManager/PostTable.js +79 -0
  420. package/src/views/PostManager/index.d.ts +12 -0
  421. package/src/views/PostManager/index.d.ts.map +1 -0
  422. package/src/views/PostManager/index.js +11 -0
  423. package/src/views/Preview/PreviewBridgeView.d.ts +12 -0
  424. package/src/views/Preview/PreviewBridgeView.d.ts.map +1 -0
  425. package/src/views/Preview/PreviewBridgeView.js +11 -0
  426. package/src/views/Preview/index.d.ts +6 -0
  427. package/src/views/Preview/index.d.ts.map +1 -0
  428. package/src/views/Preview/index.js +4 -0
  429. package/src/views/Settings/SettingsView.d.ts +10 -0
  430. package/src/views/Settings/SettingsView.d.ts.map +1 -0
  431. package/src/views/Settings/SettingsView.js +111 -0
  432. package/src/views/Settings/index.d.ts +6 -0
  433. package/src/views/Settings/index.d.ts.map +1 -0
  434. package/src/views/Settings/index.js +4 -0
  435. package/src/views/SlugSEO/SlugSEOManagerView.d.ts +12 -0
  436. package/src/views/SlugSEO/SlugSEOManagerView.d.ts.map +1 -0
  437. package/src/views/SlugSEO/SlugSEOManagerView.js +11 -0
  438. package/src/views/SlugSEO/index.d.ts +6 -0
  439. package/src/views/SlugSEO/index.d.ts.map +1 -0
  440. package/src/views/SlugSEO/index.js +4 -0
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Columns Block
3
+ * Flex/grid container with configurable column layouts
4
+ */
5
+ import React from 'react';
6
+ import { BlockEditProps, BlockPreviewProps } from '../../../types/block';
7
+ import { Block } from '../../../types/block';
8
+ /**
9
+ * Columns Block Edit Component
10
+ */
11
+ export declare const ColumnsEdit: React.FC<BlockEditProps & {
12
+ childBlocks: Block[];
13
+ onChildBlockAdd: (type: string, index: number, containerId: string) => void;
14
+ onChildBlockUpdate: (id: string, data: Partial<Block['data']>, containerId: string) => void;
15
+ onChildBlockDelete: (id: string, containerId: string) => void;
16
+ onChildBlockMove: (id: string, newIndex: number, containerId: string) => void;
17
+ }>;
18
+ /**
19
+ * Columns Block Preview Component
20
+ */
21
+ export declare const ColumnsPreview: React.FC<BlockPreviewProps & {
22
+ childBlocks?: Block[];
23
+ renderChild?: (block: Block) => React.ReactNode;
24
+ }>;
25
+ //# sourceMappingURL=ColumnsBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnsBlock.d.ts","sourceRoot":"","sources":["ColumnsBlock.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,GAAG;IAChD,WAAW,EAAE,KAAK,EAAE,CAAC;IACrB,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5E,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5F,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACjF,CAyLI,CAAC;AAEN;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,GAAG;IACtD,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC;CACnD,CAgFA,CAAC"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Columns Block
3
+ * Flex/grid container with configurable column layouts
4
+ */
5
+ 'use client';
6
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
7
+ import React from 'react';
8
+ import { Plus, Trash2 } from 'lucide-react';
9
+ import { LayoutContainer } from '../../../views/CanvasEditor/LayoutContainer';
10
+ import { COLUMN_LAYOUTS } from '../index';
11
+ /**
12
+ * Columns Block Edit Component
13
+ */
14
+ export const ColumnsEdit = ({ block, onUpdate, isSelected, childBlocks = [], onChildBlockAdd, onChildBlockUpdate, onChildBlockDelete, onChildBlockMove, }) => {
15
+ // Support both old layout-based system and new dynamic column count
16
+ const columnCount = block.data.columnCount;
17
+ const layout = block.data.layout;
18
+ // Determine number of columns: use columnCount if set, otherwise derive from layout
19
+ let numColumns;
20
+ let gridClass;
21
+ let columnWidths;
22
+ // Grid class mapping for Tailwind (must be explicit for dynamic classes)
23
+ const gridClassMap = {
24
+ 1: 'grid-cols-1',
25
+ 2: 'grid-cols-2',
26
+ 3: 'grid-cols-3',
27
+ 4: 'grid-cols-4',
28
+ 5: 'grid-cols-5',
29
+ 6: 'grid-cols-6',
30
+ };
31
+ if (columnCount !== undefined && columnCount > 0) {
32
+ // Dynamic column system
33
+ numColumns = columnCount;
34
+ // Create equal-width columns
35
+ const widthPercent = Math.floor(100 / numColumns);
36
+ columnWidths = Array(numColumns).fill(widthPercent);
37
+ // Use explicit grid class from map, fallback to inline style if needed
38
+ gridClass = gridClassMap[numColumns] || `grid-cols-${numColumns}`;
39
+ }
40
+ else if (layout && COLUMN_LAYOUTS[layout]) {
41
+ // Legacy layout-based system
42
+ const layoutConfig = COLUMN_LAYOUTS[layout];
43
+ numColumns = layoutConfig.widths.length;
44
+ gridClass = layoutConfig.grid;
45
+ columnWidths = layoutConfig.widths;
46
+ }
47
+ else {
48
+ // Default to 2 columns
49
+ numColumns = 2;
50
+ gridClass = 'grid-cols-2';
51
+ columnWidths = [50, 50];
52
+ }
53
+ // Split child blocks into columns based on columnIndex in meta, or round-robin
54
+ const columns = Array.from({ length: numColumns }, () => []);
55
+ childBlocks.forEach((childBlock) => {
56
+ var _a;
57
+ const columnIndex = (_a = childBlock.meta) === null || _a === void 0 ? void 0 : _a.columnIndex;
58
+ if (typeof columnIndex === 'number' && columnIndex >= 0 && columnIndex < numColumns) {
59
+ columns[columnIndex].push(childBlock);
60
+ }
61
+ else {
62
+ // Fallback to round-robin if no columnIndex specified
63
+ const index = childBlocks.indexOf(childBlock);
64
+ columns[index % numColumns].push(childBlock);
65
+ }
66
+ });
67
+ // Get column widths from data or use equal widths
68
+ const storedWidths = block.data.columnWidths;
69
+ const currentWidths = storedWidths && storedWidths.length === numColumns
70
+ ? storedWidths
71
+ : columnWidths; // Use calculated equal widths if not set
72
+ // Add column handler
73
+ const addColumn = () => {
74
+ if (numColumns >= 4)
75
+ return; // Max 4 columns
76
+ const newColumnCount = numColumns + 1;
77
+ // Calculate new equal widths
78
+ const newWidthPercent = Math.floor(100 / newColumnCount);
79
+ const newWidths = Array(newColumnCount).fill(newWidthPercent);
80
+ onUpdate(Object.assign(Object.assign({}, block.data), { columnCount: newColumnCount, columnWidths: newWidths,
81
+ // Clear layout if using dynamic columns
82
+ layout: undefined }));
83
+ };
84
+ // Delete column handler
85
+ const deleteColumn = (colIndex) => {
86
+ if (numColumns <= 1)
87
+ return; // Don't allow deleting the last column
88
+ // Move blocks from deleted column to the last column (or previous column if deleting last)
89
+ const blocksToMove = columns[colIndex] || [];
90
+ const targetColumnIndex = colIndex === numColumns - 1 ? numColumns - 2 : numColumns - 1;
91
+ const targetColumn = columns[targetColumnIndex] || [];
92
+ // Move each block to the target column using moveBlock (which will update meta.columnIndex)
93
+ blocksToMove.forEach((blockToMove, blockIndex) => {
94
+ const newIndex = targetColumn.length + blockIndex;
95
+ onChildBlockMove(blockToMove.id, newIndex, `${block.id}-col-${targetColumnIndex}`);
96
+ });
97
+ // Update column count and widths after moving blocks
98
+ const newColumnCount = numColumns - 1;
99
+ // Remove the deleted column's width and redistribute
100
+ const newWidths = currentWidths.filter((_, i) => i !== colIndex);
101
+ // Normalize to ensure they sum to 100
102
+ const total = newWidths.reduce((sum, w) => sum + w, 0);
103
+ const normalizedWidths = newWidths.map(w => Math.round((w / total) * 100));
104
+ onUpdate(Object.assign(Object.assign({}, block.data), { columnCount: newColumnCount, columnWidths: normalizedWidths, layout: undefined }));
105
+ };
106
+ return (_jsxs("div", { className: "rounded-xl bg-white relative", children: [_jsx("div", { className: "grid gap-8 p-6", style: {
107
+ gridTemplateColumns: currentWidths.map(w => `${w}%`).join(' '),
108
+ }, children: Array.from({ length: numColumns }).map((_, colIndex) => (_jsx("div", { className: `group/col min-h-[200px] rounded-xl border border-dashed transition-all relative ${isSelected
109
+ ? 'border-primary/20'
110
+ : 'border-gray-200/50'}`, children: _jsxs("div", { className: "p-4", children: [_jsxs("div", { className: "mb-3 flex items-center justify-between", children: [_jsxs("span", { className: "text-[10px] font-black uppercase tracking-widest text-gray-400", children: ["Column ", colIndex + 1] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("span", { className: "text-[9px] text-gray-500", children: [currentWidths[colIndex], "%"] }), numColumns > 1 && (_jsx("button", { onClick: (e) => {
111
+ e.stopPropagation();
112
+ deleteColumn(colIndex);
113
+ }, className: "opacity-0 group-hover/col:opacity-100 p-1 text-neutral-400 hover:text-red-500 transition-all rounded", title: "Delete Column", "aria-label": "Delete Column", children: _jsx(Trash2, { size: 10 }) }))] })] }), _jsx(LayoutContainer, { blocks: columns[colIndex] || [], containerId: `${block.id}-col-${colIndex}`, onBlockAdd: onChildBlockAdd, onBlockUpdate: onChildBlockUpdate, onBlockDelete: onChildBlockDelete, onBlockMove: onChildBlockMove, emptyLabel: `Drop blocks in column ${colIndex + 1}` })] }) }, colIndex))) }), numColumns < 4 && (_jsx("button", { onClick: addColumn, className: "absolute top-0 right-0 h-8 w-8 flex items-center justify-center bg-white border-l border-b border-gray-200 text-primary hover:bg-primary hover:text-white transition-all z-10 rounded-br-xl", title: "Add Column", children: _jsx(Plus, { size: 16 }) }))] }));
114
+ };
115
+ /**
116
+ * Columns Block Preview Component
117
+ */
118
+ export const ColumnsPreview = ({ block, childBlocks = [], renderChild, context }) => {
119
+ // Support both old layout-based system and new dynamic column count
120
+ const columnCount = block.data.columnCount;
121
+ const layout = block.data.layout;
122
+ // Determine number of columns: use columnCount if set, otherwise derive from layout
123
+ let numColumns;
124
+ let gridClass;
125
+ // Grid class mapping for Tailwind (must be explicit for dynamic classes)
126
+ const gridClassMap = {
127
+ 1: 'grid-cols-1',
128
+ 2: 'grid-cols-2',
129
+ 3: 'grid-cols-3',
130
+ 4: 'grid-cols-4',
131
+ 5: 'grid-cols-5',
132
+ 6: 'grid-cols-6',
133
+ };
134
+ // Get column widths
135
+ const storedWidths = block.data.columnWidths;
136
+ if (columnCount !== undefined && columnCount > 0) {
137
+ // Dynamic column system
138
+ numColumns = columnCount;
139
+ gridClass = gridClassMap[numColumns] || `grid-cols-${numColumns}`;
140
+ }
141
+ else if (layout && COLUMN_LAYOUTS[layout]) {
142
+ // Legacy layout-based system
143
+ const layoutConfig = COLUMN_LAYOUTS[layout];
144
+ numColumns = layoutConfig.widths.length;
145
+ gridClass = layoutConfig.grid;
146
+ }
147
+ else {
148
+ // Default to 2 columns
149
+ numColumns = 2;
150
+ gridClass = 'grid-cols-2';
151
+ }
152
+ // Use stored widths if available, otherwise use equal widths
153
+ const columnWidths = storedWidths && storedWidths.length === numColumns
154
+ ? storedWidths
155
+ : Array(numColumns).fill(Math.floor(100 / numColumns));
156
+ // If childBlocks are provided, use them; otherwise get from block.children
157
+ const children = childBlocks.length > 0
158
+ ? childBlocks
159
+ : (block.children && Array.isArray(block.children) && typeof block.children[0] === 'object'
160
+ ? block.children
161
+ : []);
162
+ // Split child blocks into columns based on columnIndex in meta, or round-robin
163
+ const columns = Array.from({ length: numColumns }, () => []);
164
+ children.forEach((childBlock) => {
165
+ var _a;
166
+ const columnIndex = (_a = childBlock.meta) === null || _a === void 0 ? void 0 : _a.columnIndex;
167
+ if (typeof columnIndex === 'number' && columnIndex >= 0 && columnIndex < numColumns) {
168
+ columns[columnIndex].push(childBlock);
169
+ }
170
+ else {
171
+ // Fallback to round-robin if no columnIndex specified
172
+ const index = children.indexOf(childBlock);
173
+ columns[index % numColumns].push(childBlock);
174
+ }
175
+ });
176
+ return (_jsx("div", { className: "grid gap-8 my-8", style: {
177
+ gridTemplateColumns: columnWidths.map(w => `${w}%`).join(' '),
178
+ }, children: Array.from({ length: numColumns }).map((_, colIndex) => {
179
+ var _a;
180
+ return (_jsx("div", { className: "min-h-[100px]", children: (_a = columns[colIndex]) === null || _a === void 0 ? void 0 : _a.map((childBlock) => (_jsx(React.Fragment, { children: renderChild ? renderChild(childBlock) : null }, childBlock.id))) }, colIndex));
181
+ }) }));
182
+ };
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Section Block
3
+ * Full-width wrapper with configurable padding and background
4
+ */
5
+ import React from 'react';
6
+ import { BlockEditProps, BlockPreviewProps } from '../../../types/block';
7
+ import { Block } from '../../../types/block';
8
+ /**
9
+ * Section Block Edit Component
10
+ */
11
+ export declare const SectionEdit: React.FC<BlockEditProps & {
12
+ childBlocks: Block[];
13
+ onChildBlockAdd: (type: string, index: number, containerId: string) => void;
14
+ onChildBlockUpdate: (id: string, data: Partial<Block['data']>, containerId: string) => void;
15
+ onChildBlockDelete: (id: string, containerId: string) => void;
16
+ onChildBlockMove: (id: string, newIndex: number, containerId: string) => void;
17
+ }>;
18
+ /**
19
+ * Section Block Preview Component
20
+ */
21
+ export declare const SectionPreview: React.FC<BlockPreviewProps & {
22
+ childBlocks?: Block[];
23
+ renderChild?: (block: Block) => React.ReactNode;
24
+ }>;
25
+ //# sourceMappingURL=SectionBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionBlock.d.ts","sourceRoot":"","sources":["SectionBlock.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,GAAG;IAChD,WAAW,EAAE,KAAK,EAAE,CAAC;IACrB,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5E,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5F,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACjF,CA+CI,CAAC;AAEN;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,GAAG;IACtD,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC;CACnD,CAyBA,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Section Block
3
+ * Full-width wrapper with configurable padding and background
4
+ */
5
+ 'use client';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ import React from 'react';
8
+ import { LayoutContainer } from '../../../views/CanvasEditor/LayoutContainer';
9
+ import { LAYOUT_BACKGROUNDS } from '../index';
10
+ /**
11
+ * Section Block Edit Component
12
+ */
13
+ export const SectionEdit = ({ block, onUpdate, isSelected, childBlocks = [], onChildBlockAdd, onChildBlockUpdate, onChildBlockDelete, onChildBlockMove, }) => {
14
+ const background = block.data.background || 'DEFAULT';
15
+ return (_jsx("div", { className: `rounded-xl transition-all ${isSelected
16
+ ? 'bg-primary/5'
17
+ : ''} ${LAYOUT_BACKGROUNDS[background]}`, onDragStart: (e) => {
18
+ // Prevent section from being dragged when dragging nested blocks
19
+ // Check if the drag started on a nested block wrapper
20
+ const nestedBlockWrapper = e.target.closest('[data-block-wrapper]');
21
+ if (nestedBlockWrapper) {
22
+ const nestedBlockId = nestedBlockWrapper.getAttribute('data-block-id');
23
+ // If dragging a nested block, prevent the section's drag handler from firing
24
+ if (nestedBlockId && nestedBlockId !== block.id) {
25
+ e.stopPropagation();
26
+ e.preventDefault();
27
+ console.log('[SectionBlock] Preventing section drag, nested block is being dragged:', nestedBlockId);
28
+ }
29
+ }
30
+ }, children: _jsx("div", { className: `px-8 py-4`, children: _jsx(LayoutContainer, { blocks: childBlocks, containerId: block.id, onBlockAdd: onChildBlockAdd, onBlockUpdate: onChildBlockUpdate, onBlockDelete: onChildBlockDelete, onBlockMove: onChildBlockMove, emptyLabel: "Drop blocks into section" }) }) }));
31
+ };
32
+ /**
33
+ * Section Block Preview Component
34
+ */
35
+ export const SectionPreview = ({ block, childBlocks = [], renderChild, context }) => {
36
+ const background = block.data.background || 'DEFAULT';
37
+ // If childBlocks are provided, use them; otherwise get from block.children
38
+ const children = childBlocks.length > 0
39
+ ? childBlocks
40
+ : (block.children && Array.isArray(block.children) && typeof block.children[0] === 'object'
41
+ ? block.children
42
+ : []);
43
+ return (_jsx("section", { className: `w-full ${LAYOUT_BACKGROUNDS[background]}`, children: _jsx("div", { className: `max-w-7xl mx-auto px-6 py-2`, children: children.length > 0 && renderChild ? (children.map((childBlock) => (_jsx(React.Fragment, { children: renderChild(childBlock) }, childBlock.id)))) : (_jsx("div", { className: "text-gray-400 text-sm italic", children: "Empty section" })) }) }));
44
+ };
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Layout System Constants
3
+ * Standardized spacing and styling for layout blocks
4
+ */
5
+ export declare const LAYOUT_CONSTANTS: {
6
+ readonly GUTTER: "2rem";
7
+ readonly SPACING: "4rem";
8
+ readonly SPACING_SM: "2rem";
9
+ readonly SPACING_LG: "6rem";
10
+ readonly BORDER_RADIUS: "2rem";
11
+ };
12
+ export declare const LAYOUT_BACKGROUNDS: {
13
+ readonly DEFAULT: "bg-white";
14
+ readonly NEUTRAL: "bg-neutral-50";
15
+ readonly SAGE: "bg-primary/5";
16
+ readonly CREAM: "bg-amber-50/50";
17
+ };
18
+ export type ColumnLayout = '50-50' | '33-66' | '66-33' | '25-25-25-25' | '25-75' | '75-25';
19
+ export declare const COLUMN_LAYOUTS: Record<ColumnLayout, {
20
+ grid: string;
21
+ widths: number[];
22
+ }>;
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,gBAAgB;;;;;;CAMnB,CAAC;AAGX,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC;AAGX,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,GAAG,OAAO,CAAC;AAE3F,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAyBnF,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Layout System Constants
3
+ * Standardized spacing and styling for layout blocks
4
+ */
5
+ // Spacing Constants (Earth-tone aligned)
6
+ export const LAYOUT_CONSTANTS = {
7
+ GUTTER: '2rem', // 32px - Space between columns
8
+ SPACING: '4rem', // 64px - Vertical padding for sections
9
+ SPACING_SM: '2rem', // 32px - Smaller vertical padding
10
+ SPACING_LG: '6rem', // 96px - Larger vertical padding
11
+ BORDER_RADIUS: '2rem', // 32px - Consistent rounded corners
12
+ };
13
+ // Background Colors (Light mode only - matches client website theme)
14
+ export const LAYOUT_BACKGROUNDS = {
15
+ DEFAULT: 'bg-white',
16
+ NEUTRAL: 'bg-neutral-50',
17
+ SAGE: 'bg-primary/5',
18
+ CREAM: 'bg-amber-50/50',
19
+ };
20
+ export const COLUMN_LAYOUTS = {
21
+ '50-50': {
22
+ grid: 'grid-cols-2',
23
+ widths: [50, 50],
24
+ },
25
+ '33-66': {
26
+ grid: 'grid-cols-3',
27
+ widths: [33, 66],
28
+ },
29
+ '66-33': {
30
+ grid: 'grid-cols-3',
31
+ widths: [66, 33],
32
+ },
33
+ '25-25-25-25': {
34
+ grid: 'grid-cols-4',
35
+ widths: [25, 25, 25, 25],
36
+ },
37
+ '25-75': {
38
+ grid: 'grid-cols-4',
39
+ widths: [25, 75],
40
+ },
41
+ '75-25': {
42
+ grid: 'grid-cols-4',
43
+ widths: [75, 25],
44
+ },
45
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Register Core Layout Blocks
3
+ * Registers Section and Columns blocks in the block registry
4
+ */
5
+ /**
6
+ * Register all core layout blocks
7
+ */
8
+ export declare function registerLayoutBlocks(): void;
9
+ //# sourceMappingURL=registerLayoutBlocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerLayoutBlocks.d.ts","sourceRoot":"","sources":["registerLayoutBlocks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH;;GAEG;AACH,wBAAgB,oBAAoB,SAiDnC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Register Core Layout Blocks
3
+ * Registers Section and Columns blocks in the block registry
4
+ */
5
+ import { blockRegistry } from '../../registry/BlockRegistry';
6
+ import { SectionEdit, SectionPreview } from './blocks/SectionBlock';
7
+ import { ColumnsEdit, ColumnsPreview } from './blocks/ColumnsBlock';
8
+ import { Columns, Square } from 'lucide-react';
9
+ /**
10
+ * Register all core layout blocks
11
+ */
12
+ export function registerLayoutBlocks() {
13
+ // Section Block
14
+ blockRegistry.register({
15
+ type: 'section',
16
+ name: 'Section',
17
+ description: 'Full-width wrapper with configurable padding and background',
18
+ icon: Square,
19
+ defaultData: {
20
+ padding: 'md',
21
+ background: 'DEFAULT',
22
+ },
23
+ category: 'layout',
24
+ isContainer: true,
25
+ validate: (data) => {
26
+ return ['sm', 'md', 'lg'].includes(data.padding) &&
27
+ ['DEFAULT', 'NEUTRAL', 'SAGE', 'CREAM'].includes(data.background);
28
+ },
29
+ components: {
30
+ Edit: SectionEdit,
31
+ Preview: SectionPreview,
32
+ Icon: Square,
33
+ },
34
+ });
35
+ // Columns Block
36
+ blockRegistry.register({
37
+ type: 'columns',
38
+ name: 'Columns',
39
+ description: 'Flex/grid container with configurable column layouts (50/50, 33/66, etc.)',
40
+ icon: Columns,
41
+ defaultData: {
42
+ columnCount: 2, // Start with 2 columns, can be dynamically added/removed
43
+ columnWidths: [50, 50], // Equal width columns by default
44
+ },
45
+ category: 'layout',
46
+ isContainer: true,
47
+ validate: (data) => {
48
+ // Support both new dynamic system (columnCount) and legacy layout system
49
+ if (data.columnCount !== undefined) {
50
+ return typeof data.columnCount === 'number' && data.columnCount > 0 && data.columnCount <= 6;
51
+ }
52
+ return ['50-50', '33-66', '66-33', '25-25-25-25', '25-75', '75-25'].includes(data.layout);
53
+ },
54
+ components: {
55
+ Edit: ColumnsEdit,
56
+ Preview: ColumnsPreview,
57
+ Icon: Columns,
58
+ },
59
+ });
60
+ }
@@ -0,0 +1,66 @@
1
+ /**
2
+ * API Mapper
3
+ * Converts between API format (MongoDB) and BlogPost format
4
+ */
5
+ import { BlogPost, PostStatus, SEOMetadata, PostMetadata } from '../../types/post';
6
+ import { Block } from '../../types/block';
7
+ /**
8
+ * API Blog Document Format (from MongoDB)
9
+ */
10
+ export interface APIBlogDocument {
11
+ _id?: string;
12
+ id?: string;
13
+ title: string;
14
+ slug: string;
15
+ contentBlocks?: Block[];
16
+ content?: any[];
17
+ summary?: string;
18
+ image?: {
19
+ id?: string;
20
+ src?: string;
21
+ alt?: string;
22
+ isCustom?: boolean;
23
+ };
24
+ categoryTags?: {
25
+ category?: string;
26
+ tags?: string[];
27
+ };
28
+ publicationData?: {
29
+ status?: PostStatus | 'concept';
30
+ date?: string | Date;
31
+ };
32
+ seo?: {
33
+ title?: string;
34
+ description?: string;
35
+ keywords?: string[];
36
+ ogImage?: string;
37
+ canonicalUrl?: string;
38
+ };
39
+ authorId?: string;
40
+ createdAt?: string | Date;
41
+ updatedAt?: string | Date;
42
+ }
43
+ /**
44
+ * Convert API document to BlogPost format
45
+ */
46
+ export declare function apiToBlogPost(doc: APIBlogDocument): BlogPost;
47
+ /**
48
+ * Convert BlogPost to API document format
49
+ */
50
+ export declare function blogPostToAPI(post: BlogPost, authorId?: string): Partial<APIBlogDocument>;
51
+ /**
52
+ * Convert EditorState to API format for saving
53
+ * @param state - Editor state
54
+ * @param authorId - Optional author ID
55
+ * @param heroBlock - Optional hero block (stored separately from content blocks)
56
+ */
57
+ export declare function editorStateToAPI(state: {
58
+ title: string;
59
+ slug: string;
60
+ blocks: Block[];
61
+ seo: SEOMetadata;
62
+ metadata: PostMetadata;
63
+ status: PostStatus;
64
+ postId?: string | null;
65
+ }, authorId?: string, heroBlock?: Block | null): Partial<APIBlogDocument>;
66
+ //# sourceMappingURL=apiMapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiMapper.d.ts","sourceRoot":"","sources":["apiMapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QACJ,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,OAAO,CAAC;KAGtB,CAAC;IACF,YAAY,CAAC,EAAE;QACX,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,eAAe,CAAC,EAAE;QACd,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;IACF,GAAG,CAAC,EAAE;QACF,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,GAAG,QAAQ,CAmE5D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAgCzF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAkFxE"}