@revealui/core 0.0.1-pre.4 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (622) hide show
  1. package/LICENSE +22 -202
  2. package/README.md +108 -152
  3. package/dist/api/compression.d.ts +83 -0
  4. package/dist/api/compression.d.ts.map +1 -0
  5. package/dist/api/compression.js +233 -0
  6. package/dist/api/payload-optimization.d.ts +138 -0
  7. package/dist/api/payload-optimization.d.ts.map +1 -0
  8. package/dist/api/payload-optimization.js +320 -0
  9. package/dist/api/rate-limit.d.ts +113 -0
  10. package/dist/api/rate-limit.d.ts.map +1 -0
  11. package/dist/api/rate-limit.js +316 -0
  12. package/dist/api/response-cache.d.ts +125 -0
  13. package/dist/api/response-cache.d.ts.map +1 -0
  14. package/dist/api/response-cache.js +335 -0
  15. package/dist/api/rest.d.ts +54 -0
  16. package/dist/api/rest.d.ts.map +1 -0
  17. package/dist/api/rest.js +464 -0
  18. package/dist/auth/access.d.ts +25 -0
  19. package/dist/auth/access.d.ts.map +1 -0
  20. package/dist/auth/access.js +20 -0
  21. package/dist/auth/index.d.ts +2 -0
  22. package/dist/auth/index.d.ts.map +1 -0
  23. package/dist/auth/index.js +2 -0
  24. package/dist/cache/query-cache.d.ts +98 -0
  25. package/dist/cache/query-cache.d.ts.map +1 -0
  26. package/dist/cache/query-cache.js +260 -0
  27. package/dist/caching/app-cache.d.ts +237 -0
  28. package/dist/caching/app-cache.d.ts.map +1 -0
  29. package/dist/caching/app-cache.js +430 -0
  30. package/dist/caching/cdn-config.d.ts +155 -0
  31. package/dist/caching/cdn-config.d.ts.map +1 -0
  32. package/dist/caching/cdn-config.js +411 -0
  33. package/dist/caching/edge-cache.d.ts +177 -0
  34. package/dist/caching/edge-cache.d.ts.map +1 -0
  35. package/dist/caching/edge-cache.js +385 -0
  36. package/dist/caching/service-worker.d.ts +154 -0
  37. package/dist/caching/service-worker.d.ts.map +1 -0
  38. package/dist/caching/service-worker.js +437 -0
  39. package/dist/client/admin/RichText.d.ts +12 -0
  40. package/dist/client/admin/RichText.d.ts.map +1 -0
  41. package/dist/client/admin/RichText.js +5 -0
  42. package/dist/client/admin/components/AdminDashboard.d.ts +7 -0
  43. package/dist/client/admin/components/AdminDashboard.d.ts.map +1 -0
  44. package/dist/client/admin/components/AdminDashboard.js +318 -0
  45. package/dist/client/admin/components/CollectionList.d.ts +16 -0
  46. package/dist/client/admin/components/CollectionList.d.ts.map +1 -0
  47. package/dist/client/admin/components/CollectionList.js +67 -0
  48. package/dist/client/admin/components/DocumentForm.d.ts +11 -0
  49. package/dist/client/admin/components/DocumentForm.d.ts.map +1 -0
  50. package/dist/client/admin/components/DocumentForm.js +99 -0
  51. package/dist/client/admin/components/GlobalForm.d.ts +11 -0
  52. package/dist/client/admin/components/GlobalForm.d.ts.map +1 -0
  53. package/dist/client/admin/components/GlobalForm.js +74 -0
  54. package/dist/client/admin/i18n/en.d.ts +25 -0
  55. package/dist/client/admin/i18n/en.d.ts.map +1 -0
  56. package/dist/client/admin/i18n/en.js +25 -0
  57. package/dist/client/admin/index.d.ts +10 -0
  58. package/dist/client/admin/index.d.ts.map +1 -0
  59. package/dist/client/admin/index.js +10 -0
  60. package/dist/client/admin/layout.d.ts +10 -0
  61. package/dist/client/admin/layout.d.ts.map +1 -0
  62. package/dist/client/admin/layout.js +6 -0
  63. package/dist/client/admin/page.d.ts +38 -0
  64. package/dist/client/admin/page.d.ts.map +1 -0
  65. package/dist/client/admin/page.js +15 -0
  66. package/dist/client/admin/utils/apiClient.d.ts +110 -0
  67. package/dist/client/admin/utils/apiClient.d.ts.map +1 -0
  68. package/dist/client/admin/utils/apiClient.js +220 -0
  69. package/dist/client/admin/utils/auth.d.ts +23 -0
  70. package/dist/client/admin/utils/auth.d.ts.map +1 -0
  71. package/dist/client/admin/utils/auth.js +52 -0
  72. package/dist/client/admin/utils/index.d.ts +6 -0
  73. package/dist/client/admin/utils/index.d.ts.map +1 -0
  74. package/dist/client/admin/utils/index.js +5 -0
  75. package/dist/client/admin/utils/serializeConfig.d.ts +7 -0
  76. package/dist/client/admin/utils/serializeConfig.d.ts.map +1 -0
  77. package/dist/client/admin/utils/serializeConfig.js +35 -0
  78. package/dist/client/hooks.d.ts +18 -0
  79. package/dist/client/hooks.d.ts.map +1 -0
  80. package/dist/client/hooks.js +29 -0
  81. package/dist/client/http/client.d.ts +15 -0
  82. package/dist/client/http/client.d.ts.map +1 -0
  83. package/dist/client/http/client.js +49 -0
  84. package/dist/client/http/fetchBanner.d.ts +18 -0
  85. package/dist/client/http/fetchBanner.d.ts.map +1 -0
  86. package/dist/client/http/fetchBanner.js +44 -0
  87. package/dist/client/http/fetchCard.d.ts +18 -0
  88. package/dist/client/http/fetchCard.d.ts.map +1 -0
  89. package/dist/client/http/fetchCard.js +46 -0
  90. package/dist/client/http/fetchEvents.d.ts +18 -0
  91. package/dist/client/http/fetchEvents.d.ts.map +1 -0
  92. package/dist/client/http/fetchEvents.js +44 -0
  93. package/dist/client/http/fetchHero.d.ts +17 -0
  94. package/dist/client/http/fetchHero.d.ts.map +1 -0
  95. package/dist/client/http/fetchHero.js +55 -0
  96. package/dist/client/http/fetchMainInfos.d.ts +17 -0
  97. package/dist/client/http/fetchMainInfos.d.ts.map +1 -0
  98. package/dist/client/http/fetchMainInfos.js +44 -0
  99. package/dist/client/http/fetchVideos.d.ts +13 -0
  100. package/dist/client/http/fetchVideos.d.ts.map +1 -0
  101. package/dist/client/http/fetchVideos.js +36 -0
  102. package/dist/client/http/index.d.ts +19 -0
  103. package/dist/client/http/index.d.ts.map +1 -0
  104. package/dist/client/http/index.js +11 -0
  105. package/dist/client/index.d.ts +11 -0
  106. package/dist/client/index.d.ts.map +1 -0
  107. package/dist/client/index.js +13 -0
  108. package/dist/client/richtext/RichTextEditor.d.ts +48 -0
  109. package/dist/client/richtext/RichTextEditor.d.ts.map +1 -0
  110. package/dist/client/richtext/RichTextEditor.js +360 -0
  111. package/dist/client/richtext/components/ImageNodeComponent.d.ts +9 -0
  112. package/dist/client/richtext/components/ImageNodeComponent.d.ts.map +1 -0
  113. package/dist/client/richtext/components/ImageNodeComponent.js +99 -0
  114. package/dist/client/richtext/components/ImageUploadButton.d.ts +11 -0
  115. package/dist/client/richtext/components/ImageUploadButton.d.ts.map +1 -0
  116. package/dist/client/richtext/components/ImageUploadButton.js +103 -0
  117. package/dist/client/richtext/index.d.ts +92 -0
  118. package/dist/client/richtext/index.d.ts.map +1 -0
  119. package/dist/client/richtext/index.js +74 -0
  120. package/dist/client/richtext/nodes/DecoratorBlockNode.d.ts +20 -0
  121. package/dist/client/richtext/nodes/DecoratorBlockNode.d.ts.map +1 -0
  122. package/dist/client/richtext/nodes/DecoratorBlockNode.js +29 -0
  123. package/dist/client/richtext/nodes/ImageNode.d.ts +51 -0
  124. package/dist/client/richtext/nodes/ImageNode.d.ts.map +1 -0
  125. package/dist/client/richtext/nodes/ImageNode.js +95 -0
  126. package/dist/client/richtext/plugins/CollaborationPlugin.d.ts +13 -0
  127. package/dist/client/richtext/plugins/CollaborationPlugin.d.ts.map +1 -0
  128. package/dist/client/richtext/plugins/CollaborationPlugin.js +8 -0
  129. package/dist/client/richtext/plugins/CursorsOverlayPlugin.d.ts +4 -0
  130. package/dist/client/richtext/plugins/CursorsOverlayPlugin.d.ts.map +1 -0
  131. package/dist/client/richtext/plugins/CursorsOverlayPlugin.js +50 -0
  132. package/dist/client/richtext/plugins/FloatingToolbarPlugin.d.ts +7 -0
  133. package/dist/client/richtext/plugins/FloatingToolbarPlugin.d.ts.map +1 -0
  134. package/dist/client/richtext/plugins/FloatingToolbarPlugin.js +248 -0
  135. package/dist/client/richtext/plugins/ImagePlugin.d.ts +3 -0
  136. package/dist/client/richtext/plugins/ImagePlugin.d.ts.map +1 -0
  137. package/dist/client/richtext/plugins/ImagePlugin.js +73 -0
  138. package/dist/client/richtext/plugins/PastePlugin.d.ts +2 -0
  139. package/dist/client/richtext/plugins/PastePlugin.d.ts.map +1 -0
  140. package/dist/client/richtext/plugins/PastePlugin.js +36 -0
  141. package/dist/client/richtext/plugins/ToolbarPlugin.d.ts +8 -0
  142. package/dist/client/richtext/plugins/ToolbarPlugin.d.ts.map +1 -0
  143. package/dist/client/richtext/plugins/ToolbarPlugin.js +204 -0
  144. package/dist/client/ui/index.d.ts +111 -0
  145. package/dist/client/ui/index.d.ts.map +1 -0
  146. package/dist/client/ui/index.js +130 -0
  147. package/dist/collections/CollectionOperations.d.ts +27 -0
  148. package/dist/collections/CollectionOperations.d.ts.map +1 -0
  149. package/dist/collections/CollectionOperations.js +34 -0
  150. package/dist/collections/hooks.d.ts +11 -0
  151. package/dist/collections/hooks.d.ts.map +1 -0
  152. package/dist/collections/hooks.js +35 -0
  153. package/dist/collections/index.d.ts +2 -0
  154. package/dist/collections/index.d.ts.map +1 -0
  155. package/dist/collections/index.js +1 -0
  156. package/dist/collections/operations/create.d.ts +10 -0
  157. package/dist/collections/operations/create.d.ts.map +1 -0
  158. package/dist/collections/operations/create.js +101 -0
  159. package/dist/collections/operations/delete.d.ts +10 -0
  160. package/dist/collections/operations/delete.d.ts.map +1 -0
  161. package/dist/collections/operations/delete.js +16 -0
  162. package/dist/collections/operations/fieldHooks.d.ts +21 -0
  163. package/dist/collections/operations/fieldHooks.d.ts.map +1 -0
  164. package/dist/collections/operations/fieldHooks.js +51 -0
  165. package/dist/collections/operations/find.d.ts +10 -0
  166. package/dist/collections/operations/find.d.ts.map +1 -0
  167. package/dist/collections/operations/find.js +124 -0
  168. package/dist/collections/operations/findById.d.ts +15 -0
  169. package/dist/collections/operations/findById.d.ts.map +1 -0
  170. package/dist/collections/operations/findById.js +59 -0
  171. package/dist/collections/operations/update.d.ts +10 -0
  172. package/dist/collections/operations/update.d.ts.map +1 -0
  173. package/dist/collections/operations/update.js +134 -0
  174. package/dist/config/index.d.ts +9 -0
  175. package/dist/config/index.d.ts.map +1 -0
  176. package/dist/config/index.js +61 -0
  177. package/dist/config/runtime.d.ts +22 -0
  178. package/dist/config/runtime.d.ts.map +1 -0
  179. package/dist/config/runtime.js +32 -0
  180. package/dist/config/utils.d.ts +12 -0
  181. package/dist/config/utils.d.ts.map +1 -0
  182. package/dist/config/utils.js +34 -0
  183. package/dist/database/index.d.ts +1 -0
  184. package/dist/database/index.d.ts.map +1 -0
  185. package/dist/database/index.js +6 -0
  186. package/dist/database/safe-parse.d.ts +26 -0
  187. package/dist/database/safe-parse.d.ts.map +1 -0
  188. package/dist/database/safe-parse.js +42 -0
  189. package/dist/database/ssl-config.d.ts +9 -0
  190. package/dist/database/ssl-config.d.ts.map +1 -0
  191. package/dist/database/ssl-config.js +7 -0
  192. package/dist/database/type-adapter.d.ts +113 -0
  193. package/dist/database/type-adapter.d.ts.map +1 -0
  194. package/dist/database/type-adapter.js +97 -0
  195. package/dist/database/universal-postgres.d.ts +45 -0
  196. package/dist/database/universal-postgres.d.ts.map +1 -0
  197. package/dist/database/universal-postgres.js +526 -0
  198. package/dist/dataloader.d.ts +26 -0
  199. package/dist/dataloader.d.ts.map +1 -0
  200. package/dist/dataloader.js +176 -0
  201. package/dist/error-handling/circuit-breaker.d.ts +262 -0
  202. package/dist/error-handling/circuit-breaker.d.ts.map +1 -0
  203. package/dist/error-handling/circuit-breaker.js +542 -0
  204. package/dist/error-handling/error-boundary.d.ts +94 -0
  205. package/dist/error-handling/error-boundary.d.ts.map +1 -0
  206. package/dist/error-handling/error-boundary.js +285 -0
  207. package/dist/error-handling/error-reporter.d.ts +214 -0
  208. package/dist/error-handling/error-reporter.d.ts.map +1 -0
  209. package/dist/error-handling/error-reporter.js +477 -0
  210. package/dist/error-handling/fallback-components.d.ts +131 -0
  211. package/dist/error-handling/fallback-components.d.ts.map +1 -0
  212. package/dist/error-handling/fallback-components.js +371 -0
  213. package/dist/error-handling/index.d.ts +16 -0
  214. package/dist/error-handling/index.d.ts.map +1 -0
  215. package/dist/error-handling/index.js +15 -0
  216. package/dist/error-handling/retry.d.ts +194 -0
  217. package/dist/error-handling/retry.d.ts.map +1 -0
  218. package/dist/error-handling/retry.js +450 -0
  219. package/dist/errors/index.d.ts +23 -0
  220. package/dist/errors/index.d.ts.map +1 -0
  221. package/dist/errors/index.js +40 -0
  222. package/dist/factories/builders.d.ts +50 -0
  223. package/dist/factories/builders.d.ts.map +1 -0
  224. package/dist/factories/builders.js +77 -0
  225. package/dist/factories/index.d.ts +2 -0
  226. package/dist/factories/index.d.ts.map +1 -0
  227. package/dist/factories/index.js +1 -0
  228. package/dist/features.d.ts +86 -0
  229. package/dist/features.d.ts.map +1 -0
  230. package/dist/features.js +92 -0
  231. package/dist/fieldTraversal.d.ts +26 -0
  232. package/dist/fieldTraversal.d.ts.map +1 -0
  233. package/dist/fieldTraversal.js +132 -0
  234. package/dist/fields/config/types.d.ts +48 -0
  235. package/dist/fields/config/types.d.ts.map +1 -0
  236. package/dist/fields/config/types.js +20 -0
  237. package/dist/fields/getDefaultValue.d.ts +16 -0
  238. package/dist/fields/getDefaultValue.d.ts.map +1 -0
  239. package/dist/fields/getDefaultValue.js +20 -0
  240. package/dist/fields/getFieldPaths.d.ts +25 -0
  241. package/dist/fields/getFieldPaths.d.ts.map +1 -0
  242. package/dist/fields/getFieldPaths.js +23 -0
  243. package/dist/fields/hooks/afterRead/index.d.ts +36 -0
  244. package/dist/fields/hooks/afterRead/index.d.ts.map +1 -0
  245. package/dist/fields/hooks/afterRead/index.js +70 -0
  246. package/dist/fields/hooks/afterRead/promise.d.ts +46 -0
  247. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -0
  248. package/dist/fields/hooks/afterRead/promise.js +178 -0
  249. package/dist/fields/hooks/afterRead/traverseFields.d.ts +44 -0
  250. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -0
  251. package/dist/fields/hooks/afterRead/traverseFields.js +37 -0
  252. package/dist/generated/agents/index.d.ts +8 -0
  253. package/dist/generated/agents/index.d.ts.map +1 -0
  254. package/dist/generated/agents/index.js +7 -0
  255. package/dist/generated/components/index.d.ts +8 -0
  256. package/dist/generated/components/index.d.ts.map +1 -0
  257. package/dist/generated/components/index.js +7 -0
  258. package/dist/generated/functions/index.d.ts +8 -0
  259. package/dist/generated/functions/index.d.ts.map +1 -0
  260. package/dist/generated/functions/index.js +7 -0
  261. package/dist/generated/hooks/index.d.ts +8 -0
  262. package/dist/generated/hooks/index.d.ts.map +1 -0
  263. package/dist/generated/hooks/index.js +7 -0
  264. package/dist/generated/index.d.ts +10 -0
  265. package/dist/generated/index.d.ts.map +1 -0
  266. package/dist/generated/index.js +9 -0
  267. package/dist/generated/plans/index.d.ts +8 -0
  268. package/dist/generated/plans/index.d.ts.map +1 -0
  269. package/dist/generated/plans/index.js +7 -0
  270. package/dist/generated/prompts/index.d.ts +8 -0
  271. package/dist/generated/prompts/index.d.ts.map +1 -0
  272. package/dist/generated/prompts/index.js +7 -0
  273. package/dist/generated/tools/index.d.ts +8 -0
  274. package/dist/generated/tools/index.d.ts.map +1 -0
  275. package/dist/generated/tools/index.js +7 -0
  276. package/dist/generated/types/cms.d.ts +1766 -0
  277. package/dist/generated/types/cms.d.ts.map +1 -0
  278. package/dist/generated/types/cms.js +12 -0
  279. package/dist/generated/types/index.d.ts +16 -0
  280. package/dist/generated/types/index.d.ts.map +1 -0
  281. package/dist/generated/types/index.js +21 -0
  282. package/dist/generated/types/neon.d.ts +11 -0
  283. package/dist/generated/types/neon.d.ts.map +1 -0
  284. package/dist/generated/types/neon.js +11 -0
  285. package/dist/generated/types/supabase.d.ts +193 -0
  286. package/dist/generated/types/supabase.d.ts.map +1 -0
  287. package/dist/generated/types/supabase.js +5 -0
  288. package/dist/globals/GlobalOperations.d.ts +24 -0
  289. package/dist/globals/GlobalOperations.d.ts.map +1 -0
  290. package/dist/globals/GlobalOperations.js +149 -0
  291. package/dist/globals/index.d.ts +2 -0
  292. package/dist/globals/index.d.ts.map +1 -0
  293. package/dist/globals/index.js +1 -0
  294. package/dist/index.d.ts +64 -1
  295. package/dist/index.d.ts.map +1 -0
  296. package/dist/index.js +126 -33
  297. package/dist/instance/RevealUIInstance.d.ts +6 -0
  298. package/dist/instance/RevealUIInstance.d.ts.map +1 -0
  299. package/dist/instance/RevealUIInstance.js +306 -0
  300. package/dist/instance/index.d.ts +3 -0
  301. package/dist/instance/index.d.ts.map +1 -0
  302. package/dist/instance/index.js +2 -0
  303. package/dist/instance/logger.d.ts +31 -0
  304. package/dist/instance/logger.d.ts.map +1 -0
  305. package/dist/instance/logger.js +42 -0
  306. package/dist/instance/methods/create.d.ts +10 -0
  307. package/dist/instance/methods/create.d.ts.map +1 -0
  308. package/dist/instance/methods/create.js +41 -0
  309. package/dist/instance/methods/delete.d.ts +10 -0
  310. package/dist/instance/methods/delete.d.ts.map +1 -0
  311. package/dist/instance/methods/delete.js +27 -0
  312. package/dist/instance/methods/find.d.ts +10 -0
  313. package/dist/instance/methods/find.d.ts.map +1 -0
  314. package/dist/instance/methods/find.js +23 -0
  315. package/dist/instance/methods/findById.d.ts +13 -0
  316. package/dist/instance/methods/findById.d.ts.map +1 -0
  317. package/dist/instance/methods/findById.js +23 -0
  318. package/dist/instance/methods/hooks.d.ts +14 -0
  319. package/dist/instance/methods/hooks.d.ts.map +1 -0
  320. package/dist/instance/methods/hooks.js +34 -0
  321. package/dist/instance/methods/update.d.ts +10 -0
  322. package/dist/instance/methods/update.d.ts.map +1 -0
  323. package/dist/instance/methods/update.js +45 -0
  324. package/dist/license.d.ts +82 -0
  325. package/dist/license.d.ts.map +1 -0
  326. package/dist/license.js +193 -0
  327. package/dist/monitoring/alerts.d.ts +118 -0
  328. package/dist/monitoring/alerts.d.ts.map +1 -0
  329. package/dist/monitoring/alerts.js +324 -0
  330. package/dist/monitoring/cleanup-manager.d.ts +71 -0
  331. package/dist/monitoring/cleanup-manager.d.ts.map +1 -0
  332. package/dist/monitoring/cleanup-manager.js +226 -0
  333. package/dist/monitoring/health-monitor.d.ts +22 -0
  334. package/dist/monitoring/health-monitor.d.ts.map +1 -0
  335. package/dist/monitoring/health-monitor.js +142 -0
  336. package/dist/monitoring/index.d.ts +14 -0
  337. package/dist/monitoring/index.d.ts.map +1 -0
  338. package/dist/monitoring/index.js +17 -0
  339. package/dist/monitoring/process-registry.d.ts +97 -0
  340. package/dist/monitoring/process-registry.d.ts.map +1 -0
  341. package/dist/monitoring/process-registry.js +222 -0
  342. package/dist/monitoring/query-monitor.d.ts +153 -0
  343. package/dist/monitoring/query-monitor.d.ts.map +1 -0
  344. package/dist/monitoring/query-monitor.js +209 -0
  345. package/dist/monitoring/types.d.ts +231 -0
  346. package/dist/monitoring/types.d.ts.map +1 -0
  347. package/dist/monitoring/types.js +42 -0
  348. package/dist/monitoring/zombie-detector.d.ts +81 -0
  349. package/dist/monitoring/zombie-detector.d.ts.map +1 -0
  350. package/dist/monitoring/zombie-detector.js +231 -0
  351. package/dist/nextjs/index.d.ts +4 -0
  352. package/dist/nextjs/index.d.ts.map +1 -0
  353. package/dist/nextjs/index.js +3 -0
  354. package/dist/nextjs/utilities.d.ts +5 -0
  355. package/dist/nextjs/utilities.d.ts.map +1 -0
  356. package/dist/nextjs/utilities.js +16 -0
  357. package/dist/nextjs/withRevealUI.d.ts +20 -0
  358. package/dist/nextjs/withRevealUI.d.ts.map +1 -0
  359. package/dist/nextjs/withRevealUI.js +181 -0
  360. package/dist/observability/alerts.d.ts +138 -0
  361. package/dist/observability/alerts.d.ts.map +1 -0
  362. package/dist/observability/alerts.js +390 -0
  363. package/dist/observability/health-check.d.ts +95 -0
  364. package/dist/observability/health-check.d.ts.map +1 -0
  365. package/dist/observability/health-check.js +375 -0
  366. package/dist/observability/index.d.ts +12 -0
  367. package/dist/observability/index.d.ts.map +1 -0
  368. package/dist/observability/index.js +11 -0
  369. package/dist/observability/logger.d.ts +47 -0
  370. package/dist/observability/logger.d.ts.map +1 -0
  371. package/dist/observability/logger.js +140 -0
  372. package/dist/observability/metrics.d.ts +205 -0
  373. package/dist/observability/metrics.d.ts.map +1 -0
  374. package/dist/observability/metrics.js +429 -0
  375. package/dist/observability/tracing.d.ts +149 -0
  376. package/dist/observability/tracing.d.ts.map +1 -0
  377. package/dist/observability/tracing.js +381 -0
  378. package/dist/optimization/asset-optimizer.d.ts +202 -0
  379. package/dist/optimization/asset-optimizer.d.ts.map +1 -0
  380. package/dist/optimization/asset-optimizer.js +312 -0
  381. package/dist/optimization/build-optimizer.d.ts +202 -0
  382. package/dist/optimization/build-optimizer.d.ts.map +1 -0
  383. package/dist/optimization/build-optimizer.js +271 -0
  384. package/dist/optimization/bundle-analyzer.d.ts +98 -0
  385. package/dist/optimization/bundle-analyzer.d.ts.map +1 -0
  386. package/dist/optimization/bundle-analyzer.js +322 -0
  387. package/dist/optimization/code-splitting.d.ts +131 -0
  388. package/dist/optimization/code-splitting.d.ts.map +1 -0
  389. package/dist/optimization/code-splitting.js +277 -0
  390. package/dist/plugin/index.d.ts +12 -0
  391. package/dist/plugin/index.d.ts.map +1 -0
  392. package/dist/plugin/index.js +4 -0
  393. package/dist/plugins/form-builder.d.ts +115 -0
  394. package/dist/plugins/form-builder.d.ts.map +1 -0
  395. package/dist/plugins/form-builder.js +239 -0
  396. package/dist/plugins/index.d.ts +5 -0
  397. package/dist/plugins/index.d.ts.map +1 -0
  398. package/dist/plugins/index.js +4 -0
  399. package/dist/plugins/nested-docs.d.ts +8 -0
  400. package/dist/plugins/nested-docs.d.ts.map +1 -0
  401. package/dist/plugins/nested-docs.js +67 -0
  402. package/dist/plugins/redirects.d.ts +17 -0
  403. package/dist/plugins/redirects.d.ts.map +1 -0
  404. package/dist/plugins/redirects.js +62 -0
  405. package/dist/queries/index.d.ts +2 -0
  406. package/dist/queries/index.d.ts.map +1 -0
  407. package/dist/queries/index.js +1 -0
  408. package/dist/queries/queryBuilder.d.ts +47 -0
  409. package/dist/queries/queryBuilder.d.ts.map +1 -0
  410. package/dist/queries/queryBuilder.js +255 -0
  411. package/dist/relationships/analyzer.d.ts +39 -0
  412. package/dist/relationships/analyzer.d.ts.map +1 -0
  413. package/dist/relationships/analyzer.js +127 -0
  414. package/dist/relationships/index.d.ts +3 -0
  415. package/dist/relationships/index.d.ts.map +1 -0
  416. package/dist/relationships/index.js +2 -0
  417. package/dist/relationships/populate-helpers.d.ts +104 -0
  418. package/dist/relationships/populate-helpers.d.ts.map +1 -0
  419. package/dist/relationships/populate-helpers.js +187 -0
  420. package/dist/relationships/population.d.ts +42 -0
  421. package/dist/relationships/population.d.ts.map +1 -0
  422. package/dist/relationships/population.js +188 -0
  423. package/dist/revealui.d.ts +46 -0
  424. package/dist/revealui.d.ts.map +1 -0
  425. package/dist/revealui.js +92 -0
  426. package/dist/richtext/exports/client/rcc.d.ts +37 -0
  427. package/dist/richtext/exports/client/rcc.d.ts.map +1 -0
  428. package/dist/richtext/exports/client/rcc.js +182 -0
  429. package/dist/richtext/exports/server/rsc.d.ts +117 -0
  430. package/dist/richtext/exports/server/rsc.d.ts.map +1 -0
  431. package/dist/richtext/exports/server/rsc.js +288 -0
  432. package/dist/richtext/index.d.ts +161 -0
  433. package/dist/richtext/index.d.ts.map +1 -0
  434. package/dist/richtext/index.js +243 -0
  435. package/dist/richtext/lexical.d.ts +23 -0
  436. package/dist/richtext/lexical.d.ts.map +1 -0
  437. package/dist/richtext/lexical.js +35 -0
  438. package/dist/security/audit.d.ts +188 -0
  439. package/dist/security/audit.d.ts.map +1 -0
  440. package/dist/security/audit.js +431 -0
  441. package/dist/security/auth.d.ts +241 -0
  442. package/dist/security/auth.d.ts.map +1 -0
  443. package/dist/security/auth.js +476 -0
  444. package/dist/security/authorization.d.ts +235 -0
  445. package/dist/security/authorization.d.ts.map +1 -0
  446. package/dist/security/authorization.js +434 -0
  447. package/dist/security/encryption.d.ts +214 -0
  448. package/dist/security/encryption.d.ts.map +1 -0
  449. package/dist/security/encryption.js +517 -0
  450. package/dist/security/gdpr.d.ts +300 -0
  451. package/dist/security/gdpr.d.ts.map +1 -0
  452. package/dist/security/gdpr.js +465 -0
  453. package/dist/security/headers.d.ts +182 -0
  454. package/dist/security/headers.d.ts.map +1 -0
  455. package/dist/security/headers.js +402 -0
  456. package/dist/security/index.d.ts +19 -0
  457. package/dist/security/index.d.ts.map +1 -0
  458. package/dist/security/index.js +18 -0
  459. package/dist/server/index.d.ts +21 -0
  460. package/dist/server/index.d.ts.map +1 -0
  461. package/dist/server/index.js +28 -0
  462. package/dist/server/renderPage.d.ts +69 -0
  463. package/dist/server/renderPage.d.ts.map +1 -0
  464. package/dist/server/renderPage.js +109 -0
  465. package/dist/storage/index.d.ts +1 -0
  466. package/dist/storage/index.d.ts.map +1 -0
  467. package/dist/storage/index.js +4 -0
  468. package/dist/storage/vercel-blob.d.ts +17 -0
  469. package/dist/storage/vercel-blob.d.ts.map +1 -0
  470. package/dist/storage/vercel-blob.js +83 -0
  471. package/dist/translations/index.d.ts +17 -0
  472. package/dist/translations/index.d.ts.map +1 -0
  473. package/dist/translations/index.js +1 -0
  474. package/dist/types/access.d.ts +67 -0
  475. package/dist/types/access.d.ts.map +1 -0
  476. package/dist/types/access.js +8 -0
  477. package/dist/types/api.d.ts +57 -0
  478. package/dist/types/api.d.ts.map +1 -0
  479. package/dist/types/api.js +8 -0
  480. package/dist/types/cms.d.ts +8 -0
  481. package/dist/types/cms.d.ts.map +1 -0
  482. package/dist/types/cms.js +6 -0
  483. package/dist/types/config.d.ts +152 -0
  484. package/dist/types/config.d.ts.map +1 -0
  485. package/dist/types/config.js +9 -0
  486. package/dist/types/core.d.ts +11 -0
  487. package/dist/types/core.d.ts.map +1 -0
  488. package/dist/types/core.js +9 -0
  489. package/dist/types/extensions.d.ts +116 -0
  490. package/dist/types/extensions.d.ts.map +1 -0
  491. package/dist/types/extensions.js +8 -0
  492. package/dist/types/frontend.d.ts +53 -0
  493. package/dist/types/frontend.d.ts.map +1 -0
  494. package/dist/types/frontend.js +7 -0
  495. package/dist/types/generated.d.ts +12 -0
  496. package/dist/types/generated.d.ts.map +1 -0
  497. package/dist/types/generated.js +10 -0
  498. package/dist/types/hooks.d.ts +53 -0
  499. package/dist/types/hooks.d.ts.map +1 -0
  500. package/dist/types/hooks.js +8 -0
  501. package/dist/types/index.d.ts +49 -0
  502. package/dist/types/index.d.ts.map +1 -0
  503. package/dist/types/index.js +61 -0
  504. package/dist/types/interfaces/app.d.ts +50 -0
  505. package/dist/types/interfaces/app.d.ts.map +1 -0
  506. package/dist/types/interfaces/app.js +5 -0
  507. package/dist/types/jobs.d.ts +112 -0
  508. package/dist/types/jobs.d.ts.map +1 -0
  509. package/dist/types/jobs.js +7 -0
  510. package/dist/types/legacy.d.ts +147 -0
  511. package/dist/types/legacy.d.ts.map +1 -0
  512. package/dist/types/legacy.js +8 -0
  513. package/dist/types/plugins.d.ts +17 -0
  514. package/dist/types/plugins.d.ts.map +1 -0
  515. package/dist/types/plugins.js +8 -0
  516. package/dist/types/query.d.ts +99 -0
  517. package/dist/types/query.d.ts.map +1 -0
  518. package/dist/types/query.js +24 -0
  519. package/dist/types/request.d.ts +40 -0
  520. package/dist/types/request.d.ts.map +1 -0
  521. package/dist/types/request.js +8 -0
  522. package/dist/types/richtext.d.ts +23 -0
  523. package/dist/types/richtext.d.ts.map +1 -0
  524. package/dist/types/richtext.js +8 -0
  525. package/dist/types/runtime.d.ts +216 -0
  526. package/dist/types/runtime.d.ts.map +1 -0
  527. package/dist/types/runtime.js +9 -0
  528. package/dist/types/schema.d.ts +9 -0
  529. package/dist/types/schema.d.ts.map +1 -0
  530. package/dist/types/schema.js +7 -0
  531. package/dist/types/user.d.ts +48 -0
  532. package/dist/types/user.d.ts.map +1 -0
  533. package/dist/types/user.js +8 -0
  534. package/dist/utils/access-conversion.d.ts +17 -0
  535. package/dist/utils/access-conversion.d.ts.map +1 -0
  536. package/dist/utils/access-conversion.js +96 -0
  537. package/dist/utils/api-wrapper.d.ts +63 -0
  538. package/dist/utils/api-wrapper.d.ts.map +1 -0
  539. package/dist/utils/api-wrapper.js +151 -0
  540. package/dist/utils/block-conversion.d.ts +21 -0
  541. package/dist/utils/block-conversion.d.ts.map +1 -0
  542. package/dist/utils/block-conversion.js +109 -0
  543. package/dist/utils/cache.d.ts +86 -0
  544. package/dist/utils/cache.d.ts.map +1 -0
  545. package/dist/utils/cache.js +154 -0
  546. package/dist/utils/deep-clone.d.ts +25 -0
  547. package/dist/utils/deep-clone.d.ts.map +1 -0
  548. package/dist/utils/deep-clone.js +115 -0
  549. package/dist/utils/error-responses.d.ts +57 -0
  550. package/dist/utils/error-responses.d.ts.map +1 -0
  551. package/dist/utils/error-responses.js +96 -0
  552. package/dist/utils/errors.d.ts +97 -0
  553. package/dist/utils/errors.d.ts.map +1 -0
  554. package/dist/utils/errors.js +397 -0
  555. package/dist/utils/field-conversion.d.ts +40 -0
  556. package/dist/utils/field-conversion.d.ts.map +1 -0
  557. package/dist/utils/field-conversion.js +275 -0
  558. package/dist/utils/flattenResult.d.ts +7 -0
  559. package/dist/utils/flattenResult.d.ts.map +1 -0
  560. package/dist/utils/flattenResult.js +23 -0
  561. package/dist/utils/getBlockSelect.d.ts +12 -0
  562. package/dist/utils/getBlockSelect.d.ts.map +1 -0
  563. package/dist/utils/getBlockSelect.js +12 -0
  564. package/dist/utils/getSelectMode.d.ts +8 -0
  565. package/dist/utils/getSelectMode.d.ts.map +1 -0
  566. package/dist/utils/getSelectMode.js +21 -0
  567. package/dist/utils/isValidID.d.ts +5 -0
  568. package/dist/utils/isValidID.d.ts.map +1 -0
  569. package/dist/utils/isValidID.js +13 -0
  570. package/dist/utils/json-parsing.d.ts +48 -0
  571. package/dist/utils/json-parsing.d.ts.map +1 -0
  572. package/dist/utils/json-parsing.js +130 -0
  573. package/dist/utils/jwt-validation.d.ts +14 -0
  574. package/dist/utils/jwt-validation.d.ts.map +1 -0
  575. package/dist/utils/jwt-validation.js +36 -0
  576. package/dist/utils/logger-client.d.ts +32 -0
  577. package/dist/utils/logger-client.d.ts.map +1 -0
  578. package/dist/utils/logger-client.js +55 -0
  579. package/dist/utils/logger-server.d.ts +32 -0
  580. package/dist/utils/logger-server.d.ts.map +1 -0
  581. package/dist/utils/logger-server.js +68 -0
  582. package/dist/utils/logger.d.ts +14 -0
  583. package/dist/utils/logger.d.ts.map +1 -0
  584. package/dist/utils/logger.js +12 -0
  585. package/dist/utils/request-context.d.ts +143 -0
  586. package/dist/utils/request-context.d.ts.map +1 -0
  587. package/dist/utils/request-context.js +168 -0
  588. package/dist/utils/request-headers.d.ts +15 -0
  589. package/dist/utils/request-headers.d.ts.map +1 -0
  590. package/dist/utils/request-headers.js +31 -0
  591. package/dist/utils/stripUnselectedFields.d.ts +10 -0
  592. package/dist/utils/stripUnselectedFields.d.ts.map +1 -0
  593. package/dist/utils/stripUnselectedFields.js +20 -0
  594. package/dist/utils/type-guards.d.ts +33 -0
  595. package/dist/utils/type-guards.d.ts.map +1 -0
  596. package/dist/utils/type-guards.js +63 -0
  597. package/dist/utils/user.d.ts +14 -0
  598. package/dist/utils/user.d.ts.map +1 -0
  599. package/dist/utils/user.js +15 -0
  600. package/package.json +241 -724
  601. package/LICENSE_SUMMARY.md +0 -55
  602. package/NOTICE +0 -34
  603. package/dist/exports/RenderErrorPage.js +0 -3
  604. package/dist/exports/__internal.js +0 -3
  605. package/dist/exports/abort.js +0 -3
  606. package/dist/exports/bin-entry.js +0 -5
  607. package/dist/exports/client.js +0 -3
  608. package/dist/exports/config.js +0 -1
  609. package/dist/exports/helpers.js +0 -1
  610. package/dist/exports/index.js +0 -33
  611. package/dist/exports/plugin.js +0 -3
  612. package/dist/exports/prerender.js +0 -3
  613. package/dist/exports/router.js +0 -3
  614. package/dist/exports/routing.js +0 -3
  615. package/dist/exports/server.js +0 -3
  616. package/dist/exports/setup.js +0 -3
  617. package/dist/exports/types.js +0 -1
  618. package/dist/integration/styles.css +0 -141
  619. package/dist/shared/RenderErrorPage.d.ts +0 -3
  620. package/dist/shared/RenderErrorPage.js +0 -3
  621. package/dist/shared/abort.js +0 -3
  622. package/dist/shared/route/routing.js +0 -3
@@ -0,0 +1,37 @@
1
+ /**
2
+ * RevealUI Rich Text Editor - React Client Components
3
+ *
4
+ * Provides client-side rendering components for Lexical content.
5
+ * Converts Lexical JSON state to React elements without requiring a server.
6
+ */
7
+ import type { SerializedLinkNode } from '@lexical/link';
8
+ import { type SerializedEditorState, type SerializedLexicalNode } from 'lexical';
9
+ import { type JSX } from 'react';
10
+ interface SerializedBlockNode extends SerializedLexicalNode {
11
+ type: 'block';
12
+ fields?: Record<string, unknown>;
13
+ }
14
+ export interface ClientSerializeOptions {
15
+ renderBlock?: (node: SerializedBlockNode, index: number) => JSX.Element | null;
16
+ renderLink?: (node: SerializedLinkNode, children: JSX.Element | null, index: number) => JSX.Element;
17
+ renderImage?: (data: {
18
+ src?: string;
19
+ alt?: string;
20
+ width?: number;
21
+ height?: number;
22
+ caption?: string;
23
+ }, index: number) => JSX.Element | null;
24
+ }
25
+ /**
26
+ * Serialize a Lexical editor state to React elements (client-side)
27
+ */
28
+ export declare function serializeLexicalStateClient(data: SerializedEditorState | null | undefined, options?: ClientSerializeOptions): JSX.Element | null;
29
+ /**
30
+ * Client-side RichText rendering component
31
+ */
32
+ export declare function RichTextContent({ data, className, ...options }: {
33
+ data: SerializedEditorState | null | undefined;
34
+ className?: string;
35
+ } & ClientSerializeOptions): JSX.Element | null;
36
+ export {};
37
+ //# sourceMappingURL=rcc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rcc.d.ts","sourceRoot":"","sources":["../../../../src/richtext/exports/client/rcc.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAA0B,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAQ/E,OAAO,EAQL,KAAK,qBAAqB,EAE1B,KAAK,qBAAqB,EAE3B,MAAM,SAAS,CAAA;AAChB,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,OAAO,CAAA;AA2B1C,UAAU,mBAAoB,SAAQ,qBAAqB;IACzD,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC,OAAO,GAAG,IAAI,CAAA;IAC9E,UAAU,CAAC,EAAE,CACX,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,GAAG,CAAC,OAAO,GAAG,IAAI,EAC5B,KAAK,EAAE,MAAM,KACV,GAAG,CAAC,OAAO,CAAA;IAChB,WAAW,CAAC,EAAE,CACZ,IAAI,EAAE;QACJ,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,EACD,KAAK,EAAE,MAAM,KACV,GAAG,CAAC,OAAO,GAAG,IAAI,CAAA;CACxB;AAwPD;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,qBAAqB,GAAG,IAAI,GAAG,SAAS,EAC9C,OAAO,CAAC,EAAE,sBAAsB,GAC/B,GAAG,CAAC,OAAO,GAAG,IAAI,CAMpB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,SAAS,EACT,GAAG,OAAO,EACX,EAAE;IACD,IAAI,EAAE,qBAAqB,GAAG,IAAI,GAAG,SAAS,CAAA;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,sBAAsB,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAO9C"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * RevealUI Rich Text Editor - React Client Components
3
+ *
4
+ * Provides client-side rendering components for Lexical content.
5
+ * Converts Lexical JSON state to React elements without requiring a server.
6
+ */
7
+ 'use client';
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ import { IS_BOLD, IS_CODE, IS_ITALIC, IS_STRIKETHROUGH, IS_SUBSCRIPT, IS_SUPERSCRIPT, IS_UNDERLINE, } from 'lexical';
10
+ import { Fragment } from 'react';
11
+ // ============================================
12
+ // TEXT SERIALIZATION
13
+ // ============================================
14
+ function serializeTextNode(node, index) {
15
+ let text = _jsx(Fragment, { children: node.text }, index);
16
+ const format = node.format || 0;
17
+ if (format & IS_BOLD) {
18
+ text = _jsx("strong", { children: text }, index);
19
+ }
20
+ if (format & IS_ITALIC) {
21
+ text = _jsx("em", { children: text }, index);
22
+ }
23
+ if (format & IS_UNDERLINE) {
24
+ text = (_jsx("span", { style: { textDecoration: 'underline' }, children: text }, index));
25
+ }
26
+ if (format & IS_STRIKETHROUGH) {
27
+ text = (_jsx("span", { style: { textDecoration: 'line-through' }, children: text }, index));
28
+ }
29
+ if (format & IS_CODE) {
30
+ text = _jsx("code", { children: node.text }, index);
31
+ }
32
+ if (format & IS_SUBSCRIPT) {
33
+ text = _jsx("sub", { children: text }, index);
34
+ }
35
+ if (format & IS_SUPERSCRIPT) {
36
+ text = _jsx("sup", { children: text }, index);
37
+ }
38
+ return text;
39
+ }
40
+ // ============================================
41
+ // RECURSIVE SERIALIZATION
42
+ // ============================================
43
+ function serializeChildren(children, options) {
44
+ if (!children || children.length === 0)
45
+ return null;
46
+ return _jsx(Fragment, { children: children.map((child, index) => serializeNode(child, index, options)) });
47
+ }
48
+ function serializeNode(node, index, options) {
49
+ if (!node)
50
+ return null;
51
+ const n = node;
52
+ // Text node
53
+ if (node.type === 'text') {
54
+ return serializeTextNode(node, index);
55
+ }
56
+ // Linebreak
57
+ if (node.type === 'linebreak') {
58
+ return _jsx("br", {}, index);
59
+ }
60
+ // Tab
61
+ if (node.type === 'tab') {
62
+ return _jsx("span", { children: '{"\t"}' }, index);
63
+ }
64
+ // Paragraph
65
+ if (node.type === 'paragraph') {
66
+ return _jsx("p", { children: serializeChildren(n.children, options) }, index);
67
+ }
68
+ // Heading
69
+ if (node.type === 'heading') {
70
+ const headingNode = node;
71
+ const Tag = (headingNode.tag || 'h1');
72
+ return _jsx(Tag, { children: serializeChildren(n.children, options) }, index);
73
+ }
74
+ // Quote
75
+ if (node.type === 'quote') {
76
+ return _jsx("blockquote", { children: serializeChildren(n.children, options) }, index);
77
+ }
78
+ // List
79
+ if (node.type === 'list') {
80
+ const listNode = node;
81
+ const Tag = listNode.listType === 'number' ? 'ol' : 'ul';
82
+ return _jsx(Tag, { children: serializeChildren(n.children, options) }, index);
83
+ }
84
+ // List item
85
+ if (node.type === 'listitem') {
86
+ const listItemNode = node;
87
+ return (_jsx("li", { value: listItemNode.value, children: serializeChildren(n.children, options) }, index));
88
+ }
89
+ // Link
90
+ if (node.type === 'link') {
91
+ const linkNode = node;
92
+ const children = serializeChildren(n.children, options);
93
+ if (options?.renderLink) {
94
+ return options.renderLink(linkNode, children, index);
95
+ }
96
+ const href = linkNode.url || '#';
97
+ const target = linkNode.target ? '_blank' : undefined;
98
+ const rel = linkNode.target ? 'noopener noreferrer' : undefined;
99
+ return (_jsx("a", { href: href, target: target, rel: rel, children: children }, index));
100
+ }
101
+ // Autolink
102
+ if (node.type === 'autolink') {
103
+ const autoLinkNode = node;
104
+ return (_jsx("a", { href: autoLinkNode.url || '#', children: serializeChildren(n.children, options) }, index));
105
+ }
106
+ // Image
107
+ if (node.type === 'image') {
108
+ const imageNode = node;
109
+ const src = imageNode.fields?.src || imageNode.src || '';
110
+ const alt = imageNode.fields?.alt || imageNode.alt || '';
111
+ const width = imageNode.fields?.width || imageNode.width;
112
+ const height = imageNode.fields?.height || imageNode.height;
113
+ const caption = imageNode.fields?.caption || imageNode.caption;
114
+ if (options?.renderImage) {
115
+ return options.renderImage({ src, alt, width, height, caption }, index);
116
+ }
117
+ return (_jsxs("figure", { style: { margin: '16px 0', textAlign: 'center' }, children: [_jsx("img", { src: src, alt: alt, width: width, height: height, style: { maxWidth: '100%', height: 'auto', display: 'block' } }), caption && (_jsx("figcaption", { style: { marginTop: '8px', fontSize: '14px', color: '#64748b', fontStyle: 'italic' }, children: caption }))] }, index));
118
+ }
119
+ // Horizontal rule
120
+ if (node.type === 'horizontalrule') {
121
+ return _jsx("hr", {}, index);
122
+ }
123
+ // Code block
124
+ if (node.type === 'code') {
125
+ return (_jsx("pre", { children: _jsx("code", { children: serializeChildren(n.children, options) }) }, index));
126
+ }
127
+ // Code highlight
128
+ if (node.type === 'code-highlight') {
129
+ const codeHighlightNode = node;
130
+ return (_jsx("span", { className: codeHighlightNode.highlightType, children: serializeChildren(n.children, options) }, index));
131
+ }
132
+ // Block (custom block types)
133
+ if (node.type === 'block') {
134
+ if (options?.renderBlock) {
135
+ return options.renderBlock(node, index);
136
+ }
137
+ return null;
138
+ }
139
+ // Table
140
+ if (node.type === 'table') {
141
+ return (_jsx("table", { children: _jsx("tbody", { children: serializeChildren(n.children, options) }) }, index));
142
+ }
143
+ // Table row
144
+ if (node.type === 'tablerow') {
145
+ return _jsx("tr", { children: serializeChildren(n.children, options) }, index);
146
+ }
147
+ // Table cell
148
+ if (node.type === 'tablecell') {
149
+ const tableCellNode = node;
150
+ const isHeader = (tableCellNode.headerState ?? 0) !== 0;
151
+ const Tag = isHeader ? 'th' : 'td';
152
+ return (_jsx(Tag, { colSpan: tableCellNode.colSpan, rowSpan: tableCellNode.rowSpan, children: serializeChildren(n.children, options) }, index));
153
+ }
154
+ // Unknown node type — try to render children
155
+ if (n.children) {
156
+ return _jsx(Fragment, { children: serializeChildren(n.children, options) }, index);
157
+ }
158
+ return null;
159
+ }
160
+ // ============================================
161
+ // PUBLIC API
162
+ // ============================================
163
+ /**
164
+ * Serialize a Lexical editor state to React elements (client-side)
165
+ */
166
+ export function serializeLexicalStateClient(data, options) {
167
+ if (!data?.root?.children) {
168
+ return null;
169
+ }
170
+ return serializeChildren(data.root.children, options);
171
+ }
172
+ /**
173
+ * Client-side RichText rendering component
174
+ */
175
+ export function RichTextContent({ data, className, ...options }) {
176
+ if (!data)
177
+ return null;
178
+ const content = serializeLexicalStateClient(data, options);
179
+ if (!content)
180
+ return null;
181
+ return _jsx("div", { className: className, children: content });
182
+ }
@@ -0,0 +1,117 @@
1
+ /**
2
+ * RevealUI Rich Text Editor - React Server Components
3
+ *
4
+ * Provides server-side rendering components for Lexical content.
5
+ * Converts Lexical JSON state to React elements without requiring a browser.
6
+ */
7
+ import type { SerializedEditorState, SerializedLexicalNode } from 'lexical';
8
+ import { type JSX } from 'react';
9
+ export type { SerializedEditorState };
10
+ interface SerializedElementNode extends SerializedLexicalNode {
11
+ type: string;
12
+ children?: SerializedLexicalNode[];
13
+ direction?: 'ltr' | 'rtl' | null;
14
+ format?: string | number;
15
+ indent?: number;
16
+ tag?: string;
17
+ listType?: 'bullet' | 'number' | 'check';
18
+ checked?: boolean;
19
+ value?: number;
20
+ }
21
+ interface SerializedLinkNode extends SerializedElementNode {
22
+ type: 'link';
23
+ fields?: {
24
+ url?: string;
25
+ linkType?: 'custom' | 'internal';
26
+ newTab?: boolean;
27
+ doc?: {
28
+ value: string;
29
+ relationTo: string;
30
+ };
31
+ };
32
+ }
33
+ interface SerializedBlockNode extends SerializedLexicalNode {
34
+ type: 'block';
35
+ fields?: Record<string, unknown>;
36
+ }
37
+ export interface DefaultNodeTypes {
38
+ type: string;
39
+ children?: DefaultNodeTypes[];
40
+ format?: number;
41
+ text?: string;
42
+ tag?: string;
43
+ listType?: string;
44
+ checked?: boolean;
45
+ value?: number;
46
+ fields?: Record<string, unknown>;
47
+ }
48
+ export interface SerializedBlockNodeGeneric<T = Record<string, unknown>> extends SerializedLexicalNode {
49
+ type: 'block';
50
+ fields: T & {
51
+ blockType: string;
52
+ };
53
+ }
54
+ export interface RscEntryLexicalCellProps {
55
+ data?: SerializedEditorState | null;
56
+ className?: string;
57
+ }
58
+ export interface RscEntryLexicalFieldProps {
59
+ data?: SerializedEditorState | null;
60
+ className?: string;
61
+ }
62
+ interface SerializeOptions {
63
+ /** Custom block renderer */
64
+ renderBlock?: (node: SerializedBlockNode, index: number) => JSX.Element | null;
65
+ /** Custom link renderer */
66
+ renderLink?: (node: SerializedLinkNode, children: JSX.Element | null, index: number) => JSX.Element;
67
+ /** Custom image renderer */
68
+ renderImage?: (data: {
69
+ src?: string;
70
+ alt?: string;
71
+ width?: number;
72
+ height?: number;
73
+ caption?: string;
74
+ }, index: number) => JSX.Element | null;
75
+ }
76
+ /**
77
+ * Serialize a Lexical editor state to React elements
78
+ */
79
+ export declare function serializeLexicalState(data: SerializedEditorState | null | undefined, options?: SerializeOptions): JSX.Element | null;
80
+ /**
81
+ * Generate HTML string from Lexical nodes (server-side)
82
+ *
83
+ * @async
84
+ * Uses ReactDOMServer.renderToString to convert React elements to HTML string.
85
+ * Falls back to text extraction if ReactDOMServer is not available (e.g., edge runtime).
86
+ *
87
+ * @param data - Serialized Lexical editor state
88
+ * @returns Promise resolving to HTML string
89
+ */
90
+ export declare function $generateHtmlFromNodes(data: SerializedEditorState | null | undefined): Promise<string>;
91
+ /**
92
+ * Server component for rendering Lexical content in table cells
93
+ */
94
+ export declare function RscEntryLexicalCell({ data, className }: RscEntryLexicalCellProps): import("react/jsx-runtime").JSX.Element | null;
95
+ /**
96
+ * Server component for rendering Lexical content in form fields
97
+ */
98
+ export declare function RscEntryLexicalField({ data, className }: RscEntryLexicalFieldProps): import("react/jsx-runtime").JSX.Element | null;
99
+ /**
100
+ * Generic RSC component for rendering Lexical content
101
+ */
102
+ export interface RichTextContentProps {
103
+ data: SerializedEditorState | null | undefined;
104
+ className?: string;
105
+ renderBlock?: (node: SerializedBlockNode, index: number) => JSX.Element | null;
106
+ renderLink?: (node: SerializedLinkNode, children: JSX.Element | null, index: number) => JSX.Element;
107
+ renderImage?: (data: {
108
+ src?: string;
109
+ alt?: string;
110
+ width?: number;
111
+ height?: number;
112
+ caption?: string;
113
+ }, index: number) => JSX.Element | null;
114
+ }
115
+ export declare function RichTextContent({ data, className, renderBlock, renderLink, renderImage, }: RichTextContentProps): import("react/jsx-runtime").JSX.Element | null;
116
+ export default RichTextContent;
117
+ //# sourceMappingURL=rsc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rsc.d.ts","sourceRoot":"","sources":["../../../../src/richtext/exports/server/rsc.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,288 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Fragment } from 'react';
3
+ // ============================================
4
+ // TEXT FORMAT CONSTANTS
5
+ // ============================================
6
+ const IS_BOLD = 1;
7
+ const IS_ITALIC = 2;
8
+ const IS_STRIKETHROUGH = 4;
9
+ const IS_UNDERLINE = 8;
10
+ const IS_CODE = 16;
11
+ const IS_SUBSCRIPT = 32;
12
+ const IS_SUPERSCRIPT = 64;
13
+ /**
14
+ * Serialize a text node with formatting
15
+ */
16
+ function serializeTextNode(node, index) {
17
+ let text = _jsx(Fragment, { children: node.text }, index);
18
+ const format = node.format || 0;
19
+ if (format & IS_BOLD) {
20
+ text = _jsx("strong", { children: text }, index);
21
+ }
22
+ if (format & IS_ITALIC) {
23
+ text = _jsx("em", { children: text }, index);
24
+ }
25
+ if (format & IS_UNDERLINE) {
26
+ text = (_jsx("span", { style: { textDecoration: 'underline' }, children: text }, index));
27
+ }
28
+ if (format & IS_STRIKETHROUGH) {
29
+ text = (_jsx("span", { style: { textDecoration: 'line-through' }, children: text }, index));
30
+ }
31
+ if (format & IS_CODE) {
32
+ text = _jsx("code", { children: node.text }, index);
33
+ }
34
+ if (format & IS_SUBSCRIPT) {
35
+ text = _jsx("sub", { children: text }, index);
36
+ }
37
+ if (format & IS_SUPERSCRIPT) {
38
+ text = _jsx("sup", { children: text }, index);
39
+ }
40
+ return text;
41
+ }
42
+ /**
43
+ * Serialize children nodes recursively
44
+ */
45
+ function serializeChildren(children, options) {
46
+ if (!children || children.length === 0)
47
+ return null;
48
+ return _jsx(Fragment, { children: children.map((child, index) => serializeNode(child, index, options)) });
49
+ }
50
+ /**
51
+ * Serialize a single Lexical node to React elements
52
+ */
53
+ function serializeNode(node, index, options) {
54
+ if (!node)
55
+ return null;
56
+ // Cast for property access
57
+ const n = node;
58
+ // Text node
59
+ if (node.type === 'text') {
60
+ return serializeTextNode(node, index);
61
+ }
62
+ // Linebreak
63
+ if (node.type === 'linebreak') {
64
+ return _jsx("br", {}, index);
65
+ }
66
+ // Tab
67
+ if (node.type === 'tab') {
68
+ return _jsx("span", { children: '\t' }, index);
69
+ }
70
+ // Paragraph
71
+ if (node.type === 'paragraph') {
72
+ return _jsx("p", { children: serializeChildren(n.children, options) }, index);
73
+ }
74
+ // Heading
75
+ if (node.type === 'heading') {
76
+ const Tag = (n.tag || 'h1');
77
+ return _jsx(Tag, { children: serializeChildren(n.children, options) }, index);
78
+ }
79
+ // Quote
80
+ if (node.type === 'quote') {
81
+ return _jsx("blockquote", { children: serializeChildren(n.children, options) }, index);
82
+ }
83
+ // List
84
+ if (node.type === 'list') {
85
+ const Tag = n.listType === 'number' ? 'ol' : 'ul';
86
+ const listClass = n.listType === 'check' ? 'checklist' : undefined;
87
+ return (_jsx(Tag, { className: listClass, children: serializeChildren(n.children, options) }, index));
88
+ }
89
+ // List item
90
+ if (node.type === 'listitem') {
91
+ if (n.checked !== undefined) {
92
+ // Checklist item
93
+ return (_jsx("li", {
94
+ // role="checkbox"
95
+ // aria-checked={n.checked}
96
+ tabIndex: -1, className: n.checked ? 'checked' : 'unchecked', value: n.value, children: serializeChildren(n.children, options) }, index));
97
+ }
98
+ return (_jsx("li", { value: n.value, children: serializeChildren(n.children, options) }, index));
99
+ }
100
+ // Link
101
+ if (node.type === 'link') {
102
+ const linkNode = node;
103
+ const children = serializeChildren(n.children, options);
104
+ // Allow custom link renderer
105
+ if (options?.renderLink) {
106
+ return options.renderLink(linkNode, children, index);
107
+ }
108
+ // Default link rendering
109
+ const href = linkNode.fields?.url || '#';
110
+ const target = linkNode.fields?.newTab ? '_blank' : undefined;
111
+ const rel = linkNode.fields?.newTab ? 'noopener noreferrer' : undefined;
112
+ return (_jsx("a", { href: href, target: target, rel: rel, children: children }, index));
113
+ }
114
+ // Autolink
115
+ if (node.type === 'autolink') {
116
+ const children = serializeChildren(n.children, options);
117
+ const autoLinkNode = node;
118
+ return (_jsx("a", { href: autoLinkNode.url || '#', children: children }, index));
119
+ }
120
+ // Image (from upload feature)
121
+ if (node.type === 'image') {
122
+ const imageNode = node;
123
+ const src = imageNode.fields?.src || '';
124
+ const alt = imageNode.fields?.alt || '';
125
+ const width = imageNode.fields?.width;
126
+ const height = imageNode.fields?.height;
127
+ const caption = imageNode.fields?.caption;
128
+ // Allow custom image renderer
129
+ if (options?.renderImage) {
130
+ return options.renderImage(imageNode.fields || {}, index);
131
+ }
132
+ // Default image rendering
133
+ return (_jsxs("figure", { style: { margin: '16px 0', textAlign: 'center' }, children: [_jsx("img", { src: src, alt: alt, width: width, height: height, style: {
134
+ maxWidth: '100%',
135
+ height: 'auto',
136
+ display: 'block',
137
+ } }), caption && (_jsx("figcaption", { style: {
138
+ marginTop: '8px',
139
+ fontSize: '14px',
140
+ color: '#64748b',
141
+ fontStyle: 'italic',
142
+ }, children: caption }))] }, index));
143
+ }
144
+ // Horizontal rule
145
+ if (node.type === 'horizontalrule') {
146
+ return _jsx("hr", {}, index);
147
+ }
148
+ // Code block
149
+ if (node.type === 'code') {
150
+ return (_jsx("pre", { children: _jsx("code", { children: serializeChildren(n.children, options) }) }, index));
151
+ }
152
+ // Code highlight
153
+ if (node.type === 'code-highlight') {
154
+ const codeHighlightNode = node;
155
+ return (_jsx("span", { className: codeHighlightNode.highlightType, children: serializeChildren(n.children, options) }, index));
156
+ }
157
+ // Block (custom block types)
158
+ if (node.type === 'block') {
159
+ const blockNode = node;
160
+ if (options?.renderBlock) {
161
+ return options.renderBlock(blockNode, index);
162
+ }
163
+ // Default: render nothing for unknown blocks
164
+ return null;
165
+ }
166
+ // Table
167
+ if (node.type === 'table') {
168
+ return (_jsx("table", { children: _jsx("tbody", { children: serializeChildren(n.children, options) }) }, index));
169
+ }
170
+ // Table row
171
+ if (node.type === 'tablerow') {
172
+ return _jsx("tr", { children: serializeChildren(n.children, options) }, index);
173
+ }
174
+ // Table cell
175
+ if (node.type === 'tablecell') {
176
+ const tableCellNode = node;
177
+ const isHeader = (tableCellNode.headerState ?? 0) !== 0;
178
+ const Tag = isHeader ? 'th' : 'td';
179
+ return (_jsx(Tag, { colSpan: tableCellNode.colSpan, rowSpan: tableCellNode.rowSpan, children: serializeChildren(n.children, options) }, index));
180
+ }
181
+ // Unknown node type - try to render children if available
182
+ if (n.children) {
183
+ return _jsx(Fragment, { children: serializeChildren(n.children, options) }, index);
184
+ }
185
+ return null;
186
+ }
187
+ /**
188
+ * Serialize a Lexical editor state to React elements
189
+ */
190
+ export function serializeLexicalState(data, options) {
191
+ if (!data?.root?.children) {
192
+ return null;
193
+ }
194
+ return serializeChildren(data.root.children, options);
195
+ }
196
+ /**
197
+ * Generate HTML string from Lexical nodes (server-side)
198
+ *
199
+ * @async
200
+ * Uses ReactDOMServer.renderToString to convert React elements to HTML string.
201
+ * Falls back to text extraction if ReactDOMServer is not available (e.g., edge runtime).
202
+ *
203
+ * @param data - Serialized Lexical editor state
204
+ * @returns Promise resolving to HTML string
205
+ */
206
+ export async function $generateHtmlFromNodes(data) {
207
+ if (!data?.root?.children) {
208
+ return '';
209
+ }
210
+ // Serialize to React elements first
211
+ const reactElement = serializeLexicalState(data);
212
+ if (!reactElement) {
213
+ return '';
214
+ }
215
+ // Try to use ReactDOMServer for full HTML rendering
216
+ // This is the proper implementation for server-side HTML generation
217
+ try {
218
+ // Dynamic import to avoid bundling in client code
219
+ const ReactDOMServer = await import('react-dom/server');
220
+ if (ReactDOMServer && typeof ReactDOMServer.renderToString === 'function') {
221
+ return ReactDOMServer.renderToString(reactElement);
222
+ }
223
+ }
224
+ catch {
225
+ // ReactDOMServer not available (e.g., edge runtime, client-side)
226
+ // Fall back to simple text extraction for compatibility
227
+ }
228
+ // Fallback: Extract text content only (for edge runtime compatibility)
229
+ const extractText = (nodes) => {
230
+ return nodes
231
+ .map((node) => {
232
+ if (node.type === 'text') {
233
+ return node.text;
234
+ }
235
+ const elementChildren = node.children;
236
+ if (elementChildren) {
237
+ return extractText(elementChildren);
238
+ }
239
+ return '';
240
+ })
241
+ .join('');
242
+ };
243
+ return extractText(data.root.children);
244
+ }
245
+ // ============================================
246
+ // RSC COMPONENTS
247
+ // ============================================
248
+ /**
249
+ * Server component for rendering Lexical content in table cells
250
+ */
251
+ export function RscEntryLexicalCell({ data, className }) {
252
+ if (!data) {
253
+ return null;
254
+ }
255
+ const content = serializeLexicalState(data);
256
+ if (!content) {
257
+ return null;
258
+ }
259
+ return _jsx("div", { className: className, children: content });
260
+ }
261
+ /**
262
+ * Server component for rendering Lexical content in form fields
263
+ */
264
+ export function RscEntryLexicalField({ data, className }) {
265
+ if (!data) {
266
+ return null;
267
+ }
268
+ const content = serializeLexicalState(data);
269
+ if (!content) {
270
+ return null;
271
+ }
272
+ return _jsx("div", { className: className, children: content });
273
+ }
274
+ export function RichTextContent({ data, className, renderBlock, renderLink, renderImage, }) {
275
+ if (!data) {
276
+ return null;
277
+ }
278
+ const content = serializeLexicalState(data, {
279
+ renderBlock: renderBlock || undefined,
280
+ renderLink: renderLink || undefined,
281
+ renderImage: renderImage || undefined,
282
+ });
283
+ if (!content) {
284
+ return null;
285
+ }
286
+ return _jsx("div", { className: className, children: content });
287
+ }
288
+ export default RichTextContent;