octocms 0.4.3 → 0.4.4

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 (323) hide show
  1. package/dist/admin/AdminApp.d.ts +5 -5
  2. package/dist/admin/AdminApp.d.ts.map +1 -1
  3. package/dist/admin/AdminApp.js +9 -22
  4. package/dist/admin/AdminApp.js.map +1 -1
  5. package/dist/admin/pages/AdminLayout.d.ts.map +1 -1
  6. package/dist/admin/pages/AdminLayout.js +2 -1
  7. package/dist/admin/pages/AdminLayout.js.map +1 -1
  8. package/dist/admin/pages/CollectionPage.d.ts.map +1 -1
  9. package/dist/admin/pages/CollectionPage.js +1 -13
  10. package/dist/admin/pages/CollectionPage.js.map +1 -1
  11. package/dist/admin/pages/ContentModelPage.d.ts +5 -0
  12. package/dist/admin/pages/ContentModelPage.d.ts.map +1 -1
  13. package/dist/admin/pages/ContentModelPage.js +1 -4
  14. package/dist/admin/pages/ContentModelPage.js.map +1 -1
  15. package/dist/admin/pages/ContentPage.d.ts.map +1 -1
  16. package/dist/admin/pages/ContentPage.js +2 -7
  17. package/dist/admin/pages/ContentPage.js.map +1 -1
  18. package/dist/admin/pages/ContentTypePage.d.ts +4 -0
  19. package/dist/admin/pages/ContentTypePage.d.ts.map +1 -1
  20. package/dist/admin/pages/ContentTypePage.js +1 -5
  21. package/dist/admin/pages/ContentTypePage.js.map +1 -1
  22. package/dist/admin/pages/EntryPage.d.ts +9 -0
  23. package/dist/admin/pages/EntryPage.d.ts.map +1 -1
  24. package/dist/admin/pages/EntryPage.js +6 -10
  25. package/dist/admin/pages/EntryPage.js.map +1 -1
  26. package/dist/admin/pages/MediaAssetPage.d.ts +7 -0
  27. package/dist/admin/pages/MediaAssetPage.d.ts.map +1 -1
  28. package/dist/admin/pages/MediaAssetPage.js +1 -7
  29. package/dist/admin/pages/MediaAssetPage.js.map +1 -1
  30. package/dist/admin/pages/MediaPage.d.ts +5 -0
  31. package/dist/admin/pages/MediaPage.d.ts.map +1 -1
  32. package/dist/admin/pages/MediaPage.js +1 -3
  33. package/dist/admin/pages/MediaPage.js.map +1 -1
  34. package/dist/admin/provider.d.ts.map +1 -1
  35. package/dist/admin/provider.js +2 -1
  36. package/dist/admin/provider.js.map +1 -1
  37. package/dist/admin/query/QueryProvider.d.ts +11 -0
  38. package/dist/admin/query/QueryProvider.d.ts.map +1 -0
  39. package/dist/admin/query/QueryProvider.js +33 -0
  40. package/dist/admin/query/QueryProvider.js.map +1 -0
  41. package/dist/admin/query/hooks/useAgentStatus.d.ts +6 -0
  42. package/dist/admin/query/hooks/useAgentStatus.d.ts.map +1 -0
  43. package/dist/admin/query/hooks/useAgentStatus.js +16 -0
  44. package/dist/admin/query/hooks/useAgentStatus.js.map +1 -0
  45. package/dist/admin/query/hooks/useBranch.d.ts +7 -0
  46. package/dist/admin/query/hooks/useBranch.d.ts.map +1 -0
  47. package/dist/admin/query/hooks/useBranch.js +16 -0
  48. package/dist/admin/query/hooks/useBranch.js.map +1 -0
  49. package/dist/admin/query/hooks/useBranchList.d.ts +10 -0
  50. package/dist/admin/query/hooks/useBranchList.d.ts.map +1 -0
  51. package/dist/admin/query/hooks/useBranchList.js +18 -0
  52. package/dist/admin/query/hooks/useBranchList.js.map +1 -0
  53. package/dist/admin/query/hooks/useBranchMutations.d.ts +16 -0
  54. package/dist/admin/query/hooks/useBranchMutations.d.ts.map +1 -0
  55. package/dist/admin/query/hooks/useBranchMutations.js +39 -0
  56. package/dist/admin/query/hooks/useBranchMutations.js.map +1 -0
  57. package/dist/admin/query/hooks/useEntry.d.ts +9 -0
  58. package/dist/admin/query/hooks/useEntry.d.ts.map +1 -0
  59. package/dist/admin/query/hooks/useEntry.js +16 -0
  60. package/dist/admin/query/hooks/useEntry.js.map +1 -0
  61. package/dist/admin/query/hooks/useEntryBacklinks.d.ts +8 -0
  62. package/dist/admin/query/hooks/useEntryBacklinks.d.ts.map +1 -0
  63. package/dist/admin/query/hooks/useEntryBacklinks.js +17 -0
  64. package/dist/admin/query/hooks/useEntryBacklinks.js.map +1 -0
  65. package/dist/admin/query/hooks/useEntryCommits.d.ts +9 -0
  66. package/dist/admin/query/hooks/useEntryCommits.d.ts.map +1 -0
  67. package/dist/admin/query/hooks/useEntryCommits.js +18 -0
  68. package/dist/admin/query/hooks/useEntryCommits.js.map +1 -0
  69. package/dist/admin/query/hooks/useEntryDiff.d.ts +6 -0
  70. package/dist/admin/query/hooks/useEntryDiff.d.ts.map +1 -0
  71. package/dist/admin/query/hooks/useEntryDiff.js +16 -0
  72. package/dist/admin/query/hooks/useEntryDiff.js.map +1 -0
  73. package/dist/admin/query/hooks/useEntryList.d.ts +10 -0
  74. package/dist/admin/query/hooks/useEntryList.d.ts.map +1 -0
  75. package/dist/admin/query/hooks/useEntryList.js +18 -0
  76. package/dist/admin/query/hooks/useEntryList.js.map +1 -0
  77. package/dist/admin/query/hooks/useEntryMutations.d.ts +38 -0
  78. package/dist/admin/query/hooks/useEntryMutations.d.ts.map +1 -0
  79. package/dist/admin/query/hooks/useEntryMutations.js +149 -0
  80. package/dist/admin/query/hooks/useEntryMutations.js.map +1 -0
  81. package/dist/admin/query/hooks/useHasActiveBranch.d.ts +6 -0
  82. package/dist/admin/query/hooks/useHasActiveBranch.d.ts.map +1 -0
  83. package/dist/admin/query/hooks/useHasActiveBranch.js +16 -0
  84. package/dist/admin/query/hooks/useHasActiveBranch.js.map +1 -0
  85. package/dist/admin/query/hooks/useIsProduction.d.ts +6 -0
  86. package/dist/admin/query/hooks/useIsProduction.d.ts.map +1 -0
  87. package/dist/admin/query/hooks/useIsProduction.js +16 -0
  88. package/dist/admin/query/hooks/useIsProduction.js.map +1 -0
  89. package/dist/admin/query/hooks/useMediaAsset.d.ts +15 -0
  90. package/dist/admin/query/hooks/useMediaAsset.d.ts.map +1 -0
  91. package/dist/admin/query/hooks/useMediaAsset.js +31 -0
  92. package/dist/admin/query/hooks/useMediaAsset.js.map +1 -0
  93. package/dist/admin/query/hooks/useMediaList.d.ts +8 -0
  94. package/dist/admin/query/hooks/useMediaList.d.ts.map +1 -0
  95. package/dist/admin/query/hooks/useMediaList.js +17 -0
  96. package/dist/admin/query/hooks/useMediaList.js.map +1 -0
  97. package/dist/admin/query/hooks/useMediaMutations.d.ts +25 -0
  98. package/dist/admin/query/hooks/useMediaMutations.d.ts.map +1 -0
  99. package/dist/admin/query/hooks/useMediaMutations.js +63 -0
  100. package/dist/admin/query/hooks/useMediaMutations.js.map +1 -0
  101. package/dist/admin/query/hooks/useNewFile.d.ts +18 -0
  102. package/dist/admin/query/hooks/useNewFile.d.ts.map +1 -0
  103. package/dist/admin/query/hooks/useNewFile.js +25 -0
  104. package/dist/admin/query/hooks/useNewFile.js.map +1 -0
  105. package/dist/admin/query/hooks/useSaveSchema.d.ts +19 -0
  106. package/dist/admin/query/hooks/useSaveSchema.d.ts.map +1 -0
  107. package/dist/admin/query/hooks/useSaveSchema.js +33 -0
  108. package/dist/admin/query/hooks/useSaveSchema.js.map +1 -0
  109. package/dist/admin/query/hooks/useSchema.d.ts +7 -0
  110. package/dist/admin/query/hooks/useSchema.d.ts.map +1 -0
  111. package/dist/admin/query/hooks/useSchema.js +16 -0
  112. package/dist/admin/query/hooks/useSchema.js.map +1 -0
  113. package/dist/admin/query/hooks/useSchemaImpactPreview.d.ts +16 -0
  114. package/dist/admin/query/hooks/useSchemaImpactPreview.d.ts.map +1 -0
  115. package/dist/admin/query/hooks/useSchemaImpactPreview.js +13 -0
  116. package/dist/admin/query/hooks/useSchemaImpactPreview.js.map +1 -0
  117. package/dist/admin/query/invalidate.d.ts +52 -0
  118. package/dist/admin/query/invalidate.d.ts.map +1 -0
  119. package/dist/admin/query/invalidate.js +91 -0
  120. package/dist/admin/query/invalidate.js.map +1 -0
  121. package/dist/admin/query/keys.d.ts +40 -0
  122. package/dist/admin/query/keys.d.ts.map +1 -0
  123. package/dist/admin/query/keys.js +36 -0
  124. package/dist/admin/query/keys.js.map +1 -0
  125. package/dist/admin/query/queryClient.d.ts +8 -0
  126. package/dist/admin/query/queryClient.d.ts.map +1 -0
  127. package/dist/admin/query/queryClient.js +28 -0
  128. package/dist/admin/query/queryClient.js.map +1 -0
  129. package/dist/admin/query/test/renderWithQuery.d.ts +24 -0
  130. package/dist/admin/query/test/renderWithQuery.d.ts.map +1 -0
  131. package/dist/admin/query/test/renderWithQuery.js +38 -0
  132. package/dist/admin/query/test/renderWithQuery.js.map +1 -0
  133. package/dist/admin/query/useAdminQuery.d.ts +33 -0
  134. package/dist/admin/query/useAdminQuery.d.ts.map +1 -0
  135. package/dist/admin/query/useAdminQuery.js +23 -0
  136. package/dist/admin/query/useAdminQuery.js.map +1 -0
  137. package/dist/{agentDocs-UXZMZNZK.js → agentDocs-JZRZW7XI.js} +2 -2
  138. package/dist/{chunk-236PKCTR.js → chunk-6D5NU3XR.js} +1 -1
  139. package/dist/chunk-6D5NU3XR.js.map +1 -0
  140. package/dist/cli/index.js +4 -4
  141. package/dist/cli/index.js.map +1 -1
  142. package/dist/components/Chat/ProposalCard.d.ts.map +1 -1
  143. package/dist/components/Chat/ProposalCard.js +7 -26
  144. package/dist/components/Chat/ProposalCard.js.map +1 -1
  145. package/dist/components/Chat/useChatStream.d.ts.map +1 -1
  146. package/dist/components/Chat/useChatStream.js +5 -1
  147. package/dist/components/Chat/useChatStream.js.map +1 -1
  148. package/dist/components/CommandK/CommandK.d.ts.map +1 -1
  149. package/dist/components/CommandK/CommandK.js +32 -1
  150. package/dist/components/CommandK/CommandK.js.map +1 -1
  151. package/dist/components/ContentModel/ContentModelList.d.ts +1 -7
  152. package/dist/components/ContentModel/ContentModelList.d.ts.map +1 -1
  153. package/dist/components/ContentModel/ContentModelList.js +48 -35
  154. package/dist/components/ContentModel/ContentModelList.js.map +1 -1
  155. package/dist/components/ContentModel/ContentTypeDetail.d.ts +1 -4
  156. package/dist/components/ContentModel/ContentTypeDetail.d.ts.map +1 -1
  157. package/dist/components/ContentModel/ContentTypeDetail.js +32 -15
  158. package/dist/components/ContentModel/ContentTypeDetail.js.map +1 -1
  159. package/dist/components/ContentModel/CreateContentTypeDialog.d.ts.map +1 -1
  160. package/dist/components/ContentModel/CreateContentTypeDialog.js +11 -7
  161. package/dist/components/ContentModel/CreateContentTypeDialog.js.map +1 -1
  162. package/dist/components/ContentModel/DeleteContentTypeDialog.d.ts.map +1 -1
  163. package/dist/components/ContentModel/DeleteContentTypeDialog.js +12 -9
  164. package/dist/components/ContentModel/DeleteContentTypeDialog.js.map +1 -1
  165. package/dist/components/ContentModel/DeleteFieldDialog.d.ts.map +1 -1
  166. package/dist/components/ContentModel/DeleteFieldDialog.js +16 -11
  167. package/dist/components/ContentModel/DeleteFieldDialog.js.map +1 -1
  168. package/dist/components/ContentModel/EditContentTypeDialog.d.ts.map +1 -1
  169. package/dist/components/ContentModel/EditContentTypeDialog.js +14 -9
  170. package/dist/components/ContentModel/EditContentTypeDialog.js.map +1 -1
  171. package/dist/components/ContentModel/FieldDialog.d.ts.map +1 -1
  172. package/dist/components/ContentModel/FieldDialog.js +13 -9
  173. package/dist/components/ContentModel/FieldDialog.js.map +1 -1
  174. package/dist/components/ContentModel/skeletons/FieldTableSkeleton.d.ts +8 -0
  175. package/dist/components/ContentModel/skeletons/FieldTableSkeleton.d.ts.map +1 -0
  176. package/dist/components/ContentModel/skeletons/FieldTableSkeleton.js +14 -0
  177. package/dist/components/ContentModel/skeletons/FieldTableSkeleton.js.map +1 -0
  178. package/dist/components/ContentModel/skeletons/SchemaTableSkeleton.d.ts +8 -0
  179. package/dist/components/ContentModel/skeletons/SchemaTableSkeleton.d.ts.map +1 -0
  180. package/dist/components/ContentModel/skeletons/SchemaTableSkeleton.js +22 -0
  181. package/dist/components/ContentModel/skeletons/SchemaTableSkeleton.js.map +1 -0
  182. package/dist/components/Dashboard/DashboardContent.d.ts +1 -6
  183. package/dist/components/Dashboard/DashboardContent.d.ts.map +1 -1
  184. package/dist/components/Dashboard/DashboardContent.js +27 -22
  185. package/dist/components/Dashboard/DashboardContent.js.map +1 -1
  186. package/dist/components/Dashboard/skeletons/ContentTableSkeleton.d.ts +9 -0
  187. package/dist/components/Dashboard/skeletons/ContentTableSkeleton.d.ts.map +1 -0
  188. package/dist/components/Dashboard/skeletons/ContentTableSkeleton.js +21 -0
  189. package/dist/components/Dashboard/skeletons/ContentTableSkeleton.js.map +1 -0
  190. package/dist/components/Dashboard/skeletons/DashboardPageChromeSkeleton.d.ts +8 -0
  191. package/dist/components/Dashboard/skeletons/DashboardPageChromeSkeleton.d.ts.map +1 -0
  192. package/dist/components/Dashboard/skeletons/DashboardPageChromeSkeleton.js +24 -0
  193. package/dist/components/Dashboard/skeletons/DashboardPageChromeSkeleton.js.map +1 -0
  194. package/dist/components/Dashboard/skeletons/LeftPanelSkeleton.d.ts +6 -0
  195. package/dist/components/Dashboard/skeletons/LeftPanelSkeleton.d.ts.map +1 -0
  196. package/dist/components/Dashboard/skeletons/LeftPanelSkeleton.js +27 -0
  197. package/dist/components/Dashboard/skeletons/LeftPanelSkeleton.js.map +1 -0
  198. package/dist/components/DiffView/DiffView.d.ts.map +1 -1
  199. package/dist/components/DiffView/DiffView.js +6 -26
  200. package/dist/components/DiffView/DiffView.js.map +1 -1
  201. package/dist/components/EditPost/EditPost.d.ts +5 -3
  202. package/dist/components/EditPost/EditPost.d.ts.map +1 -1
  203. package/dist/components/EditPost/EditPost.js +146 -113
  204. package/dist/components/EditPost/EditPost.js.map +1 -1
  205. package/dist/components/EditPost/skeletons/EntryFormSkeleton.d.ts +8 -0
  206. package/dist/components/EditPost/skeletons/EntryFormSkeleton.d.ts.map +1 -0
  207. package/dist/components/EditPost/skeletons/EntryFormSkeleton.js +18 -0
  208. package/dist/components/EditPost/skeletons/EntryFormSkeleton.js.map +1 -0
  209. package/dist/components/EditPost/skeletons/EntrySidebarSkeleton.d.ts +6 -0
  210. package/dist/components/EditPost/skeletons/EntrySidebarSkeleton.d.ts.map +1 -0
  211. package/dist/components/EditPost/skeletons/EntrySidebarSkeleton.js +30 -0
  212. package/dist/components/EditPost/skeletons/EntrySidebarSkeleton.js.map +1 -0
  213. package/dist/components/FormImageField.d.ts.map +1 -1
  214. package/dist/components/FormImageField.js +14 -13
  215. package/dist/components/FormImageField.js.map +1 -1
  216. package/dist/components/FormReferenceField.d.ts.map +1 -1
  217. package/dist/components/FormReferenceField.js +30 -19
  218. package/dist/components/FormReferenceField.js.map +1 -1
  219. package/dist/components/HistorySection/HistorySection.d.ts.map +1 -1
  220. package/dist/components/HistorySection/HistorySection.js +22 -31
  221. package/dist/components/HistorySection/HistorySection.js.map +1 -1
  222. package/dist/components/InlineEntryEditor/InlineEntryEditor.d.ts.map +1 -1
  223. package/dist/components/InlineEntryEditor/InlineEntryEditor.js +76 -127
  224. package/dist/components/InlineEntryEditor/InlineEntryEditor.js.map +1 -1
  225. package/dist/components/Layout/Layout.d.ts.map +1 -1
  226. package/dist/components/Layout/Layout.js +2 -2
  227. package/dist/components/Layout/Layout.js.map +1 -1
  228. package/dist/components/Layout/TopHeader.d.ts.map +1 -1
  229. package/dist/components/Layout/TopHeader.js +56 -71
  230. package/dist/components/Layout/TopHeader.js.map +1 -1
  231. package/dist/components/Layout/skeletons/AgentNavSkeleton.d.ts +9 -0
  232. package/dist/components/Layout/skeletons/AgentNavSkeleton.d.ts.map +1 -0
  233. package/dist/components/Layout/skeletons/AgentNavSkeleton.js +9 -0
  234. package/dist/components/Layout/skeletons/AgentNavSkeleton.js.map +1 -0
  235. package/dist/components/Layout/skeletons/BranchChipSkeleton.d.ts +7 -0
  236. package/dist/components/Layout/skeletons/BranchChipSkeleton.d.ts.map +1 -0
  237. package/dist/components/Layout/skeletons/BranchChipSkeleton.js +17 -0
  238. package/dist/components/Layout/skeletons/BranchChipSkeleton.js.map +1 -0
  239. package/dist/components/Layout/skeletons/TopHeaderSkeleton.d.ts +8 -0
  240. package/dist/components/Layout/skeletons/TopHeaderSkeleton.d.ts.map +1 -0
  241. package/dist/components/Layout/skeletons/TopHeaderSkeleton.js +26 -0
  242. package/dist/components/Layout/skeletons/TopHeaderSkeleton.js.map +1 -0
  243. package/dist/components/LinkedBySection/LinkedBySection.d.ts.map +1 -1
  244. package/dist/components/LinkedBySection/LinkedBySection.js +14 -20
  245. package/dist/components/LinkedBySection/LinkedBySection.js.map +1 -1
  246. package/dist/components/MediaAsset/MediaAsset.d.ts +2 -4
  247. package/dist/components/MediaAsset/MediaAsset.d.ts.map +1 -1
  248. package/dist/components/MediaAsset/MediaAsset.js +76 -46
  249. package/dist/components/MediaAsset/MediaAsset.js.map +1 -1
  250. package/dist/components/MediaAsset/skeletons/MediaMetadataFormSkeleton.d.ts +3 -0
  251. package/dist/components/MediaAsset/skeletons/MediaMetadataFormSkeleton.d.ts.map +1 -0
  252. package/dist/components/MediaAsset/skeletons/MediaMetadataFormSkeleton.js +32 -0
  253. package/dist/components/MediaAsset/skeletons/MediaMetadataFormSkeleton.js.map +1 -0
  254. package/dist/components/MediaAsset/skeletons/MediaPreviewSkeleton.d.ts +3 -0
  255. package/dist/components/MediaAsset/skeletons/MediaPreviewSkeleton.d.ts.map +1 -0
  256. package/dist/components/MediaAsset/skeletons/MediaPreviewSkeleton.js +18 -0
  257. package/dist/components/MediaAsset/skeletons/MediaPreviewSkeleton.js.map +1 -0
  258. package/dist/components/MediaManager/MediaManager.d.ts +1 -5
  259. package/dist/components/MediaManager/MediaManager.d.ts.map +1 -1
  260. package/dist/components/MediaManager/MediaManager.js +13 -7
  261. package/dist/components/MediaManager/MediaManager.js.map +1 -1
  262. package/dist/components/MediaManager/MediaSelectDialog.d.ts.map +1 -1
  263. package/dist/components/MediaManager/MediaSelectDialog.js +5 -7
  264. package/dist/components/MediaManager/MediaSelectDialog.js.map +1 -1
  265. package/dist/components/MediaManager/MediaUploadDialog.d.ts.map +1 -1
  266. package/dist/components/MediaManager/MediaUploadDialog.js +7 -5
  267. package/dist/components/MediaManager/MediaUploadDialog.js.map +1 -1
  268. package/dist/components/MediaManager/skeletons/MediaGridSkeleton.d.ts +8 -0
  269. package/dist/components/MediaManager/skeletons/MediaGridSkeleton.d.ts.map +1 -0
  270. package/dist/components/MediaManager/skeletons/MediaGridSkeleton.js +21 -0
  271. package/dist/components/MediaManager/skeletons/MediaGridSkeleton.js.map +1 -0
  272. package/dist/components/MediaManager/skeletons/MediaLeftPanelSkeleton.d.ts +6 -0
  273. package/dist/components/MediaManager/skeletons/MediaLeftPanelSkeleton.d.ts.map +1 -0
  274. package/dist/components/MediaManager/skeletons/MediaLeftPanelSkeleton.js +22 -0
  275. package/dist/components/MediaManager/skeletons/MediaLeftPanelSkeleton.js.map +1 -0
  276. package/dist/components/MediaManager/skeletons/MediaListTableSkeleton.d.ts +8 -0
  277. package/dist/components/MediaManager/skeletons/MediaListTableSkeleton.d.ts.map +1 -0
  278. package/dist/components/MediaManager/skeletons/MediaListTableSkeleton.js +25 -0
  279. package/dist/components/MediaManager/skeletons/MediaListTableSkeleton.js.map +1 -0
  280. package/dist/components/richtext/ImageEmbedEditor.d.ts.map +1 -1
  281. package/dist/components/richtext/ImageEmbedEditor.js +11 -13
  282. package/dist/components/richtext/ImageEmbedEditor.js.map +1 -1
  283. package/dist/components/richtext/ReferenceEmbedEditor.d.ts.map +1 -1
  284. package/dist/components/richtext/ReferenceEmbedEditor.js +14 -16
  285. package/dist/components/richtext/ReferenceEmbedEditor.js.map +1 -1
  286. package/dist/components/skeletons/MainSlotSkeleton.d.ts +13 -0
  287. package/dist/components/skeletons/MainSlotSkeleton.d.ts.map +1 -0
  288. package/dist/components/skeletons/MainSlotSkeleton.js +27 -0
  289. package/dist/components/skeletons/MainSlotSkeleton.js.map +1 -0
  290. package/dist/components/skeletons/blocks.d.ts +21 -0
  291. package/dist/components/skeletons/blocks.d.ts.map +1 -0
  292. package/dist/components/skeletons/blocks.js +29 -0
  293. package/dist/components/skeletons/blocks.js.map +1 -0
  294. package/dist/components/skeletons/index.d.ts +6 -7
  295. package/dist/components/skeletons/index.d.ts.map +1 -1
  296. package/dist/components/skeletons/index.js +7 -6
  297. package/dist/components/skeletons/index.js.map +1 -1
  298. package/dist/components/skeletons/primitives.d.ts +0 -5
  299. package/dist/components/skeletons/primitives.d.ts.map +1 -1
  300. package/dist/components/skeletons/primitives.js +1 -16
  301. package/dist/components/skeletons/primitives.js.map +1 -1
  302. package/dist/hooks/useEntryStack.d.ts.map +1 -1
  303. package/dist/hooks/useEntryStack.js +7 -6
  304. package/dist/hooks/useEntryStack.js.map +1 -1
  305. package/dist/{init-SCYKMP2V.js → init-DTJPSWLO.js} +2 -2
  306. package/dist/{update-XUXSHODB.js → update-CJ3XVFNU.js} +2 -2
  307. package/package.json +11 -4
  308. package/dist/chunk-236PKCTR.js.map +0 -1
  309. package/dist/components/Chat/ChatPage.skeleton.d.ts +0 -3
  310. package/dist/components/Chat/ChatPage.skeleton.d.ts.map +0 -1
  311. package/dist/components/Chat/ChatPage.skeleton.js +0 -22
  312. package/dist/components/Chat/ChatPage.skeleton.js.map +0 -1
  313. package/dist/components/skeletons/AdminGenericSkeleton.d.ts +0 -7
  314. package/dist/components/skeletons/AdminGenericSkeleton.d.ts.map +0 -1
  315. package/dist/components/skeletons/AdminGenericSkeleton.js +0 -14
  316. package/dist/components/skeletons/AdminGenericSkeleton.js.map +0 -1
  317. package/dist/components/skeletons/SectionSkeleton.d.ts +0 -11
  318. package/dist/components/skeletons/SectionSkeleton.d.ts.map +0 -1
  319. package/dist/components/skeletons/SectionSkeleton.js +0 -26
  320. package/dist/components/skeletons/SectionSkeleton.js.map +0 -1
  321. /package/dist/{agentDocs-UXZMZNZK.js.map → agentDocs-JZRZW7XI.js.map} +0 -0
  322. /package/dist/{init-SCYKMP2V.js.map → init-DTJPSWLO.js.map} +0 -0
  323. /package/dist/{update-XUXSHODB.js.map → update-CJ3XVFNU.js.map} +0 -0
@@ -18,11 +18,11 @@ type AdminAppProps = {
18
18
  * /cms/model → ContentModelPage
19
19
  * /cms/model/<type> → ContentTypePage
20
20
  *
21
- * Streaming model: `params` is awaited inside `<AdminAppDispatcher>`, which is
22
- * wrapped in an outer `<Suspense>` so Next.js can start streaming the shell
23
- * immediately. Each dispatched branch adds its own inner `<Suspense>` with the
24
- * matching per-page skeleton.
21
+ * **No `Suspense` in the dispatcher** — `await params` runs in this async RSC; Next.js
22
+ * keeps the previous segment visible during navigation. Thin server shells (`*Page`)
23
+ * hand off to client components that load via TanStack Query and render their own
24
+ * block-level skeletons (`LeftPanelSkeleton`, `ContentTableSkeleton`, etc.).
25
25
  */
26
- export declare function AdminApp({ params }: AdminAppProps): import("react/jsx-runtime").JSX.Element;
26
+ export declare function AdminApp({ params }: AdminAppProps): Promise<import("react/jsx-runtime").JSX.Element>;
27
27
  export {};
28
28
  //# sourceMappingURL=AdminApp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdminApp.d.ts","sourceRoot":"","sources":["../../admin/AdminApp.tsx"],"names":[],"mappings":"AAuBA,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,OAAO,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACtC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,2CAMjD"}
1
+ {"version":3,"file":"AdminApp.d.ts","sourceRoot":"","sources":["../../admin/AdminApp.tsx"],"names":[],"mappings":"AAYA,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,OAAO,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACtC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,oDAyCvD"}
@@ -1,16 +1,6 @@
1
1
  import "../chunk-B5LE2OEC.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
- import { Suspense } from "react";
4
- import { ChatPageSkeleton } from "../components/Chat/ChatPage.skeleton";
5
- import { ContentModelListSkeleton } from "../components/ContentModel/ContentModelList.skeleton";
6
- import { ContentTypeDetailSkeleton } from "../components/ContentModel/ContentTypeDetail.skeleton";
7
- import { DashboardCollectionSkeleton } from "../components/Dashboard/DashboardContent.collection.skeleton";
8
3
  import { DashboardContentSkeleton } from "../components/Dashboard/DashboardContent.skeleton";
9
- import { DashboardListSkeleton } from "../components/Dashboard/DashboardContent.list.skeleton";
10
- import { EditPostSkeleton } from "../components/EditPost/EditPost.skeleton";
11
- import { MediaAssetSkeleton } from "../components/MediaAsset/MediaAsset.skeleton";
12
- import { MediaManagerSkeleton } from "../components/MediaManager/MediaManager.skeleton";
13
- import { AdminGenericSkeleton } from "../components/skeletons/AdminGenericSkeleton";
14
4
  import { ChatPage } from "./pages/ChatPage";
15
5
  import { CollectionPage } from "./pages/CollectionPage";
16
6
  import { ContentModelPage } from "./pages/ContentModelPage";
@@ -20,42 +10,39 @@ import { DashboardPage } from "./pages/DashboardPage";
20
10
  import { EntryPage } from "./pages/EntryPage";
21
11
  import { MediaAssetPage } from "./pages/MediaAssetPage";
22
12
  import { MediaPage } from "./pages/MediaPage";
23
- function AdminApp({ params }) {
24
- return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(AdminGenericSkeleton, {}), children: /* @__PURE__ */ jsx(AdminAppDispatcher, { params }) });
25
- }
26
- async function AdminAppDispatcher({ params }) {
13
+ async function AdminApp({ params }) {
27
14
  const { path } = await params;
28
15
  const segments = path != null ? path : [];
29
16
  if (segments.length === 0) {
30
17
  return /* @__PURE__ */ jsx(DashboardPage, {});
31
18
  }
32
19
  if (segments[0] === "chat") {
33
- return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(ChatPageSkeleton, {}), children: /* @__PURE__ */ jsx(ChatPage, {}) });
20
+ return /* @__PURE__ */ jsx(ChatPage, {});
34
21
  }
35
22
  if (segments[0] === "media") {
36
23
  if (segments.length === 1) {
37
- return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(MediaManagerSkeleton, {}), children: /* @__PURE__ */ jsx(MediaPage, {}) });
24
+ return /* @__PURE__ */ jsx(MediaPage, {});
38
25
  }
39
26
  const id = segments[1];
40
- return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(MediaAssetSkeleton, {}), children: /* @__PURE__ */ jsx(MediaAssetPage, { id }) }, id);
27
+ return /* @__PURE__ */ jsx(MediaAssetPage, { id }, id);
41
28
  }
42
29
  if (segments[0] === "model") {
43
30
  if (segments.length === 1) {
44
- return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(ContentModelListSkeleton, {}), children: /* @__PURE__ */ jsx(ContentModelPage, {}) });
31
+ return /* @__PURE__ */ jsx(ContentModelPage, {});
45
32
  }
46
33
  const [, type] = segments;
47
- return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(ContentTypeDetailSkeleton, {}), children: /* @__PURE__ */ jsx(ContentTypePage, { type }) }, type);
34
+ return /* @__PURE__ */ jsx(ContentTypePage, { type }, type);
48
35
  }
49
36
  if (segments[0] === "content") {
50
37
  if (segments.length === 1) {
51
- return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(DashboardListSkeleton, {}), children: /* @__PURE__ */ jsx(ContentPage, {}) });
38
+ return /* @__PURE__ */ jsx(ContentPage, {});
52
39
  }
53
40
  if (segments.length === 2) {
54
41
  const [, type2] = segments;
55
- return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(DashboardCollectionSkeleton, {}), children: /* @__PURE__ */ jsx(CollectionPage, { params: Promise.resolve({ type: type2 }) }) }, type2);
42
+ return /* @__PURE__ */ jsx(CollectionPage, { params: Promise.resolve({ type: type2 }) }, type2);
56
43
  }
57
44
  const [, type, id] = segments;
58
- return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(EditPostSkeleton, {}), children: /* @__PURE__ */ jsx(EntryPage, { params: Promise.resolve({ type, id }) }) }, `${type}/${id}`);
45
+ return /* @__PURE__ */ jsx(EntryPage, { params: Promise.resolve({ type, id }) }, `${type}/${id}`);
59
46
  }
60
47
  return /* @__PURE__ */ jsx(DashboardContentSkeleton, {});
61
48
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../admin/AdminApp.tsx"],"sourcesContent":["import React, { Suspense } from 'react';\n\nimport { ChatPageSkeleton } from '../components/Chat/ChatPage.skeleton';\nimport { ContentModelListSkeleton } from '../components/ContentModel/ContentModelList.skeleton';\nimport { ContentTypeDetailSkeleton } from '../components/ContentModel/ContentTypeDetail.skeleton';\nimport { DashboardCollectionSkeleton } from '../components/Dashboard/DashboardContent.collection.skeleton';\nimport { DashboardContentSkeleton } from '../components/Dashboard/DashboardContent.skeleton';\nimport { DashboardListSkeleton } from '../components/Dashboard/DashboardContent.list.skeleton';\nimport { EditPostSkeleton } from '../components/EditPost/EditPost.skeleton';\nimport { MediaAssetSkeleton } from '../components/MediaAsset/MediaAsset.skeleton';\nimport { MediaManagerSkeleton } from '../components/MediaManager/MediaManager.skeleton';\nimport { AdminGenericSkeleton } from '../components/skeletons/AdminGenericSkeleton';\n\nimport { ChatPage } from './pages/ChatPage';\nimport { CollectionPage } from './pages/CollectionPage';\nimport { ContentModelPage } from './pages/ContentModelPage';\nimport { ContentPage } from './pages/ContentPage';\nimport { ContentTypePage } from './pages/ContentTypePage';\nimport { DashboardPage } from './pages/DashboardPage';\nimport { EntryPage } from './pages/EntryPage';\nimport { MediaAssetPage } from './pages/MediaAssetPage';\nimport { MediaPage } from './pages/MediaPage';\n\ntype AdminAppProps = {\n params: Promise<{ path?: string[] }>;\n};\n\n/**\n * Catch-all admin router. Mounted via a single `src/app/cms/[[...path]]/page.tsx`\n * file in the user app that re-exports this component as the default.\n *\n * Route segments map to admin pages:\n * /cms → DashboardPage (empty home)\n * /cms/content → ContentPage (all entries)\n * /cms/content/<type> → CollectionPage\n * /cms/content/<type>/<id> → EntryPage\n * /cms/chat → ChatPage (gated on `isAgentEnabled(agentConfig)`)\n * /cms/media → MediaPage (library — grid + folders)\n * /cms/media/<id> → MediaAssetPage (full-page asset editor)\n * /cms/model → ContentModelPage\n * /cms/model/<type> → ContentTypePage\n *\n * Streaming model: `params` is awaited inside `<AdminAppDispatcher>`, which is\n * wrapped in an outer `<Suspense>` so Next.js can start streaming the shell\n * immediately. Each dispatched branch adds its own inner `<Suspense>` with the\n * matching per-page skeleton.\n */\nexport function AdminApp({ params }: AdminAppProps) {\n return (\n <Suspense fallback={<AdminGenericSkeleton />}>\n <AdminAppDispatcher params={params} />\n </Suspense>\n );\n}\n\nasync function AdminAppDispatcher({ params }: AdminAppProps) {\n const { path } = await params;\n const segments = path ?? [];\n\n if (segments.length === 0) {\n return <DashboardPage />;\n }\n\n if (segments[0] === 'chat') {\n return (\n <Suspense fallback={<ChatPageSkeleton />}>\n <ChatPage />\n </Suspense>\n );\n }\n\n if (segments[0] === 'media') {\n if (segments.length === 1) {\n return (\n <Suspense fallback={<MediaManagerSkeleton />}>\n <MediaPage />\n </Suspense>\n );\n }\n const id = segments[1];\n return (\n <Suspense fallback={<MediaAssetSkeleton />} key={id}>\n <MediaAssetPage id={id} />\n </Suspense>\n );\n }\n\n if (segments[0] === 'model') {\n if (segments.length === 1) {\n return (\n <Suspense fallback={<ContentModelListSkeleton />}>\n <ContentModelPage />\n </Suspense>\n );\n }\n const [, type] = segments;\n return (\n <Suspense fallback={<ContentTypeDetailSkeleton />} key={type}>\n <ContentTypePage type={type} />\n </Suspense>\n );\n }\n\n if (segments[0] === 'content') {\n if (segments.length === 1) {\n return (\n <Suspense fallback={<DashboardListSkeleton />}>\n <ContentPage />\n </Suspense>\n );\n }\n if (segments.length === 2) {\n const [, type] = segments;\n return (\n <Suspense fallback={<DashboardCollectionSkeleton />} key={type}>\n <CollectionPage params={Promise.resolve({ type })} />\n </Suspense>\n );\n }\n const [, type, id] = segments;\n return (\n <Suspense fallback={<EditPostSkeleton />} key={`${type}/${id}`}>\n <EntryPage params={Promise.resolve({ type, id })} />\n </Suspense>\n );\n }\n\n return <DashboardContentSkeleton />;\n}\n"],"mappings":";AAiDwB;AAjDxB,SAAgB,gBAAgB;AAEhC,SAAS,wBAAwB;AACjC,SAAS,gCAAgC;AACzC,SAAS,iCAAiC;AAC1C,SAAS,mCAAmC;AAC5C,SAAS,gCAAgC;AACzC,SAAS,6BAA6B;AACtC,SAAS,wBAAwB;AACjC,SAAS,0BAA0B;AACnC,SAAS,4BAA4B;AACrC,SAAS,4BAA4B;AAErC,SAAS,gBAAgB;AACzB,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AACjC,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAChC,SAAS,qBAAqB;AAC9B,SAAS,iBAAiB;AAC1B,SAAS,sBAAsB;AAC/B,SAAS,iBAAiB;AA0BnB,SAAS,SAAS,EAAE,OAAO,GAAkB;AAClD,SACE,oBAAC,YAAS,UAAU,oBAAC,wBAAqB,GACxC,8BAAC,sBAAmB,QAAgB,GACtC;AAEJ;AAEA,eAAe,mBAAmB,EAAE,OAAO,GAAkB;AAC3D,QAAM,EAAE,KAAK,IAAI,MAAM;AACvB,QAAM,WAAW,sBAAQ,CAAC;AAE1B,MAAI,SAAS,WAAW,GAAG;AACzB,WAAO,oBAAC,iBAAc;AAAA,EACxB;AAEA,MAAI,SAAS,CAAC,MAAM,QAAQ;AAC1B,WACE,oBAAC,YAAS,UAAU,oBAAC,oBAAiB,GACpC,8BAAC,YAAS,GACZ;AAAA,EAEJ;AAEA,MAAI,SAAS,CAAC,MAAM,SAAS;AAC3B,QAAI,SAAS,WAAW,GAAG;AACzB,aACE,oBAAC,YAAS,UAAU,oBAAC,wBAAqB,GACxC,8BAAC,aAAU,GACb;AAAA,IAEJ;AACA,UAAM,KAAK,SAAS,CAAC;AACrB,WACE,oBAAC,YAAS,UAAU,oBAAC,sBAAmB,GACtC,8BAAC,kBAAe,IAAQ,KADuB,EAEjD;AAAA,EAEJ;AAEA,MAAI,SAAS,CAAC,MAAM,SAAS;AAC3B,QAAI,SAAS,WAAW,GAAG;AACzB,aACE,oBAAC,YAAS,UAAU,oBAAC,4BAAyB,GAC5C,8BAAC,oBAAiB,GACpB;AAAA,IAEJ;AACA,UAAM,CAAC,EAAE,IAAI,IAAI;AACjB,WACE,oBAAC,YAAS,UAAU,oBAAC,6BAA0B,GAC7C,8BAAC,mBAAgB,MAAY,KADyB,IAExD;AAAA,EAEJ;AAEA,MAAI,SAAS,CAAC,MAAM,WAAW;AAC7B,QAAI,SAAS,WAAW,GAAG;AACzB,aACE,oBAAC,YAAS,UAAU,oBAAC,yBAAsB,GACzC,8BAAC,eAAY,GACf;AAAA,IAEJ;AACA,QAAI,SAAS,WAAW,GAAG;AACzB,YAAM,CAAC,EAAEA,KAAI,IAAI;AACjB,aACE,oBAAC,YAAS,UAAU,oBAAC,+BAA4B,GAC/C,8BAAC,kBAAe,QAAQ,QAAQ,QAAQ,EAAE,MAAAA,MAAK,CAAC,GAAG,KADKA,KAE1D;AAAA,IAEJ;AACA,UAAM,CAAC,EAAE,MAAM,EAAE,IAAI;AACrB,WACE,oBAAC,YAAS,UAAU,oBAAC,oBAAiB,GACpC,8BAAC,aAAU,QAAQ,QAAQ,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,KADL,GAAG,IAAI,IAAI,EAAE,EAE5D;AAAA,EAEJ;AAEA,SAAO,oBAAC,4BAAyB;AACnC;","names":["type"]}
1
+ {"version":3,"sources":["../../admin/AdminApp.tsx"],"sourcesContent":["import { DashboardContentSkeleton } from '../components/Dashboard/DashboardContent.skeleton';\n\nimport { ChatPage } from './pages/ChatPage';\nimport { CollectionPage } from './pages/CollectionPage';\nimport { ContentModelPage } from './pages/ContentModelPage';\nimport { ContentPage } from './pages/ContentPage';\nimport { ContentTypePage } from './pages/ContentTypePage';\nimport { DashboardPage } from './pages/DashboardPage';\nimport { EntryPage } from './pages/EntryPage';\nimport { MediaAssetPage } from './pages/MediaAssetPage';\nimport { MediaPage } from './pages/MediaPage';\n\ntype AdminAppProps = {\n params: Promise<{ path?: string[] }>;\n};\n\n/**\n * Catch-all admin router. Mounted via a single `src/app/cms/[[...path]]/page.tsx`\n * file in the user app that re-exports this component as the default.\n *\n * Route segments map to admin pages:\n * /cms → DashboardPage (empty home)\n * /cms/content → ContentPage (all entries)\n * /cms/content/<type> → CollectionPage\n * /cms/content/<type>/<id> → EntryPage\n * /cms/chat → ChatPage (gated on `isAgentEnabled(agentConfig)`)\n * /cms/media → MediaPage (library — grid + folders)\n * /cms/media/<id> → MediaAssetPage (full-page asset editor)\n * /cms/model → ContentModelPage\n * /cms/model/<type> → ContentTypePage\n *\n * **No `Suspense` in the dispatcher** — `await params` runs in this async RSC; Next.js\n * keeps the previous segment visible during navigation. Thin server shells (`*Page`)\n * hand off to client components that load via TanStack Query and render their own\n * block-level skeletons (`LeftPanelSkeleton`, `ContentTableSkeleton`, etc.).\n */\nexport async function AdminApp({ params }: AdminAppProps) {\n const { path } = await params;\n const segments = path ?? [];\n\n if (segments.length === 0) {\n return <DashboardPage />;\n }\n\n if (segments[0] === 'chat') {\n return <ChatPage />;\n }\n\n if (segments[0] === 'media') {\n if (segments.length === 1) {\n return <MediaPage />;\n }\n const id = segments[1];\n return <MediaAssetPage id={id} key={id} />;\n }\n\n if (segments[0] === 'model') {\n if (segments.length === 1) {\n return <ContentModelPage />;\n }\n const [, type] = segments;\n return <ContentTypePage type={type} key={type} />;\n }\n\n if (segments[0] === 'content') {\n if (segments.length === 1) {\n return <ContentPage />;\n }\n if (segments.length === 2) {\n const [, type] = segments;\n return <CollectionPage params={Promise.resolve({ type })} key={type} />;\n }\n const [, type, id] = segments;\n return <EntryPage params={Promise.resolve({ type, id })} key={`${type}/${id}`} />;\n }\n\n return <DashboardContentSkeleton />;\n}\n"],"mappings":";AAyCW;AAzCX,SAAS,gCAAgC;AAEzC,SAAS,gBAAgB;AACzB,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AACjC,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAChC,SAAS,qBAAqB;AAC9B,SAAS,iBAAiB;AAC1B,SAAS,sBAAsB;AAC/B,SAAS,iBAAiB;AA0B1B,eAAsB,SAAS,EAAE,OAAO,GAAkB;AACxD,QAAM,EAAE,KAAK,IAAI,MAAM;AACvB,QAAM,WAAW,sBAAQ,CAAC;AAE1B,MAAI,SAAS,WAAW,GAAG;AACzB,WAAO,oBAAC,iBAAc;AAAA,EACxB;AAEA,MAAI,SAAS,CAAC,MAAM,QAAQ;AAC1B,WAAO,oBAAC,YAAS;AAAA,EACnB;AAEA,MAAI,SAAS,CAAC,MAAM,SAAS;AAC3B,QAAI,SAAS,WAAW,GAAG;AACzB,aAAO,oBAAC,aAAU;AAAA,IACpB;AACA,UAAM,KAAK,SAAS,CAAC;AACrB,WAAO,oBAAC,kBAAe,MAAa,EAAI;AAAA,EAC1C;AAEA,MAAI,SAAS,CAAC,MAAM,SAAS;AAC3B,QAAI,SAAS,WAAW,GAAG;AACzB,aAAO,oBAAC,oBAAiB;AAAA,IAC3B;AACA,UAAM,CAAC,EAAE,IAAI,IAAI;AACjB,WAAO,oBAAC,mBAAgB,QAAiB,IAAM;AAAA,EACjD;AAEA,MAAI,SAAS,CAAC,MAAM,WAAW;AAC7B,QAAI,SAAS,WAAW,GAAG;AACzB,aAAO,oBAAC,eAAY;AAAA,IACtB;AACA,QAAI,SAAS,WAAW,GAAG;AACzB,YAAM,CAAC,EAAEA,KAAI,IAAI;AACjB,aAAO,oBAAC,kBAAe,QAAQ,QAAQ,QAAQ,EAAE,MAAAA,MAAK,CAAC,KAAQA,KAAM;AAAA,IACvE;AACA,UAAM,CAAC,EAAE,MAAM,EAAE,IAAI;AACrB,WAAO,oBAAC,aAAU,QAAQ,QAAQ,QAAQ,EAAE,MAAM,GAAG,CAAC,KAAQ,GAAG,IAAI,IAAI,EAAE,EAAI;AAAA,EACjF;AAEA,SAAO,oBAAC,4BAAyB;AACnC;","names":["type"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AdminLayout.d.ts","sourceRoot":"","sources":["../../../admin/pages/AdminLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,KAAmB,MAAM,OAAO,CAAC;AAQxC,eAAO,MAAM,QAAQ,EAAE,QAEtB,CAAC;AA6BF;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,cAAc,QAAQ,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAAC,4CAMhF,CAAC"}
1
+ {"version":3,"file":"AdminLayout.d.ts","sourceRoot":"","sources":["../../../admin/pages/AdminLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,KAAmB,MAAM,OAAO,CAAC;AASxC,eAAO,MAAM,QAAQ,EAAE,QAEtB,CAAC;AA2BF;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,cAAc,QAAQ,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAAC,4CAMhF,CAAC"}
@@ -3,6 +3,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import "../../globals.css";
4
4
  import "@mdxeditor/editor/style.css";
5
5
  import { Suspense } from "react";
6
+ import { AdminBootstrapSkeleton } from "../../components/skeletons";
6
7
  import Provider from "../provider";
7
8
  import { Toaster } from "../../components/ui/toaster";
8
9
  import Layout from "../../components/Layout/Layout";
@@ -20,7 +21,7 @@ async function AdminLayoutInner({ children }) {
20
21
  ] });
21
22
  }
22
23
  const AdminLayout = ({ children }) => {
23
- return /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(AdminLayoutInner, { children }) });
24
+ return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(AdminBootstrapSkeleton, {}), children: /* @__PURE__ */ jsx(AdminLayoutInner, { children }) });
24
25
  };
25
26
  export {
26
27
  AdminLayout,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../admin/pages/AdminLayout.tsx"],"sourcesContent":["import '../../globals.css';\nimport '@mdxeditor/editor/style.css';\nimport type { Metadata } from 'next';\nimport React, { Suspense } from 'react';\n\nimport Provider from '../provider';\nimport { Toaster } from '../../components/ui/toaster';\nimport Layout from '../../components/Layout/Layout';\nimport { getThemeCookie } from '../theme/cookie';\nimport { getConfig } from '../../lib/configStore';\n\nexport const metadata: Metadata = {\n title: 'OctoCMS',\n};\n\n/**\n * Async inner component that reads the `cms-theme` cookie.\n *\n * Kept separate from `AdminLayout` so the `cookies()` call (uncached dynamic\n * data) happens inside a `<Suspense>` boundary. This satisfies the\n * `cacheComponents` experimental flag requirement: any uncached data access\n * must be wrapped in Suspense, and avoids the need for `force-dynamic` (which\n * is incompatible with `cacheComponents`).\n */\nasync function AdminLayoutInner({ children }: Readonly<{ children: React.ReactNode }>) {\n const initialTheme = await getThemeCookie();\n const config = getConfig();\n\n // No Suspense around `<Layout>{children}</Layout>` here on purpose: the\n // catch-all page (`AdminApp`) re-suspends on every back/forward navigation,\n // and a Suspense at this level would blank the entire layout chrome\n // (including the TopHeader). Layout itself owns the inner Suspense around\n // `{children}` so the chrome stays mounted and the generic admin skeleton\n // fills the main slot.\n return (\n <Provider config={config}>\n <Layout initialTheme={initialTheme}>{children}</Layout>\n <Toaster />\n </Provider>\n );\n}\n\n/**\n * Synchronous CMS layout shell.\n * Wraps `AdminLayoutInner` in `<Suspense>` so the async cookie read is\n * inside the boundary and does not block the rest of the page.\n */\nexport const AdminLayout = ({ children }: Readonly<{ children: React.ReactNode }>) => {\n return (\n <Suspense fallback={null}>\n <AdminLayoutInner>{children}</AdminLayoutInner>\n </Suspense>\n );\n};\n"],"mappings":";AAmCI,SACE,KADF;AAnCJ,OAAO;AACP,OAAO;AAEP,SAAgB,gBAAgB;AAEhC,OAAO,cAAc;AACrB,SAAS,eAAe;AACxB,OAAO,YAAY;AACnB,SAAS,sBAAsB;AAC/B,SAAS,iBAAiB;AAEnB,MAAM,WAAqB;AAAA,EAChC,OAAO;AACT;AAWA,eAAe,iBAAiB,EAAE,SAAS,GAA4C;AACrF,QAAM,eAAe,MAAM,eAAe;AAC1C,QAAM,SAAS,UAAU;AAQzB,SACE,qBAAC,YAAS,QACR;AAAA,wBAAC,UAAO,cAA6B,UAAS;AAAA,IAC9C,oBAAC,WAAQ;AAAA,KACX;AAEJ;AAOO,MAAM,cAAc,CAAC,EAAE,SAAS,MAA+C;AACpF,SACE,oBAAC,YAAS,UAAU,MAClB,8BAAC,oBAAkB,UAAS,GAC9B;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../admin/pages/AdminLayout.tsx"],"sourcesContent":["import '../../globals.css';\nimport '@mdxeditor/editor/style.css';\nimport type { Metadata } from 'next';\nimport React, { Suspense } from 'react';\n\nimport { AdminBootstrapSkeleton } from '../../components/skeletons';\nimport Provider from '../provider';\nimport { Toaster } from '../../components/ui/toaster';\nimport Layout from '../../components/Layout/Layout';\nimport { getThemeCookie } from '../theme/cookie';\nimport { getConfig } from '../../lib/configStore';\n\nexport const metadata: Metadata = {\n title: 'OctoCMS',\n};\n\n/**\n * Async inner component that reads the `cms-theme` cookie.\n *\n * Kept separate from `AdminLayout` so the `cookies()` call (uncached dynamic\n * data) happens inside a `<Suspense>` boundary. This satisfies the\n * `cacheComponents` experimental flag requirement: any uncached data access\n * must be wrapped in Suspense, and avoids the need for `force-dynamic` (which\n * is incompatible with `cacheComponents`).\n */\nasync function AdminLayoutInner({ children }: Readonly<{ children: React.ReactNode }>) {\n const initialTheme = await getThemeCookie();\n const config = getConfig();\n\n // No Suspense around `<Layout>{children}</Layout>` here: the catch-all page\n // suspends inside the client `Layout` `<main>` boundary so `TopHeader` stays\n // mounted. `AdminLayout`'s outer `<Suspense>` only wraps this async inner\n // (cookie read) and shows `AdminBootstrapSkeleton` until providers mount.\n return (\n <Provider config={config}>\n <Layout initialTheme={initialTheme}>{children}</Layout>\n <Toaster />\n </Provider>\n );\n}\n\n/**\n * Synchronous CMS layout shell.\n * Wraps `AdminLayoutInner` in `<Suspense>` so the async cookie read is\n * inside the boundary and does not block the rest of the page.\n */\nexport const AdminLayout = ({ children }: Readonly<{ children: React.ReactNode }>) => {\n return (\n <Suspense fallback={<AdminBootstrapSkeleton />}>\n <AdminLayoutInner>{children}</AdminLayoutInner>\n </Suspense>\n );\n};\n"],"mappings":";AAkCI,SACE,KADF;AAlCJ,OAAO;AACP,OAAO;AAEP,SAAgB,gBAAgB;AAEhC,SAAS,8BAA8B;AACvC,OAAO,cAAc;AACrB,SAAS,eAAe;AACxB,OAAO,YAAY;AACnB,SAAS,sBAAsB;AAC/B,SAAS,iBAAiB;AAEnB,MAAM,WAAqB;AAAA,EAChC,OAAO;AACT;AAWA,eAAe,iBAAiB,EAAE,SAAS,GAA4C;AACrF,QAAM,eAAe,MAAM,eAAe;AAC1C,QAAM,SAAS,UAAU;AAMzB,SACE,qBAAC,YAAS,QACR;AAAA,wBAAC,UAAO,cAA6B,UAAS;AAAA,IAC9C,oBAAC,WAAQ;AAAA,KACX;AAEJ;AAOO,MAAM,cAAc,CAAC,EAAE,SAAS,MAA+C;AACpF,SACE,oBAAC,YAAS,UAAU,oBAAC,0BAAuB,GAC1C,8BAAC,oBAAkB,UAAS,GAC9B;AAEJ;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"CollectionPage.d.ts","sourceRoot":"","sources":["../../../admin/pages/CollectionPage.tsx"],"names":[],"mappings":"AAUA,wBAAsB,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,2DA2BrF"}
1
+ {"version":3,"file":"CollectionPage.d.ts","sourceRoot":"","sources":["../../../admin/pages/CollectionPage.tsx"],"names":[],"mappings":"AAQA,wBAAsB,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,2DAkBrF"}
@@ -4,8 +4,6 @@ import { redirect } from "next/navigation";
4
4
  import { getServerSession } from "next-auth";
5
5
  import DashboardContent from "../../components/Dashboard/DashboardContent";
6
6
  import { getConfig } from "../../lib/configStore";
7
- import { getEntryList, hasActiveBranch } from "../actions";
8
- import { getBranch } from "../actions/git";
9
7
  import { authOptions } from "../auth";
10
8
  async function CollectionPage({ params }) {
11
9
  const session = await getServerSession(authOptions);
@@ -13,7 +11,6 @@ async function CollectionPage({ params }) {
13
11
  return null;
14
12
  }
15
13
  const { type } = await params;
16
- const [entries, hasBranch, activeBranch] = await Promise.all([getEntryList(), hasActiveBranch(), getBranch()]);
17
14
  const collections = Object.keys(getConfig().collections);
18
15
  if (!type) {
19
16
  redirect(`/cms/content`);
@@ -21,16 +18,7 @@ async function CollectionPage({ params }) {
21
18
  if (!collections.includes(type)) {
22
19
  redirect("/cms/content");
23
20
  }
24
- return /* @__PURE__ */ jsx(
25
- DashboardContent,
26
- {
27
- entries,
28
- collections,
29
- hasBranch,
30
- activeBranch,
31
- selectedType: type
32
- }
33
- );
21
+ return /* @__PURE__ */ jsx(DashboardContent, { selectedType: type });
34
22
  }
35
23
  export {
36
24
  CollectionPage
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../admin/pages/CollectionPage.tsx"],"sourcesContent":["import { redirect } from 'next/navigation';\nimport { getServerSession } from 'next-auth';\nimport React from 'react';\n\nimport DashboardContent from '../../components/Dashboard/DashboardContent';\nimport { getConfig } from '../../lib/configStore';\nimport { getEntryList, hasActiveBranch } from '../actions';\nimport { getBranch } from '../actions/git';\nimport { authOptions } from '../auth';\n\nexport async function CollectionPage({ params }: { params: Promise<{ type: string }> }) {\n const session = await getServerSession(authOptions);\n\n if (!session) {\n return null;\n }\n\n const { type } = await params;\n const [entries, hasBranch, activeBranch] = await Promise.all([getEntryList(), hasActiveBranch(), getBranch()]);\n const collections = Object.keys(getConfig().collections);\n\n if (!type) {\n redirect(`/cms/content`);\n }\n if (!collections.includes(type)) {\n redirect('/cms/content');\n }\n\n return (\n <DashboardContent\n entries={entries}\n collections={collections}\n hasBranch={hasBranch}\n activeBranch={activeBranch}\n selectedType={type}\n />\n );\n}\n"],"mappings":";AA6BI;AA7BJ,SAAS,gBAAgB;AACzB,SAAS,wBAAwB;AAGjC,OAAO,sBAAsB;AAC7B,SAAS,iBAAiB;AAC1B,SAAS,cAAc,uBAAuB;AAC9C,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAE5B,eAAsB,eAAe,EAAE,OAAO,GAA0C;AACtF,QAAM,UAAU,MAAM,iBAAiB,WAAW;AAElD,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,KAAK,IAAI,MAAM;AACvB,QAAM,CAAC,SAAS,WAAW,YAAY,IAAI,MAAM,QAAQ,IAAI,CAAC,aAAa,GAAG,gBAAgB,GAAG,UAAU,CAAC,CAAC;AAC7G,QAAM,cAAc,OAAO,KAAK,UAAU,EAAE,WAAW;AAEvD,MAAI,CAAC,MAAM;AACT,aAAS,cAAc;AAAA,EACzB;AACA,MAAI,CAAC,YAAY,SAAS,IAAI,GAAG;AAC/B,aAAS,cAAc;AAAA,EACzB;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAc;AAAA;AAAA,EAChB;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../admin/pages/CollectionPage.tsx"],"sourcesContent":["import { redirect } from 'next/navigation';\nimport { getServerSession } from 'next-auth';\nimport React from 'react';\n\nimport DashboardContent from '../../components/Dashboard/DashboardContent';\nimport { getConfig } from '../../lib/configStore';\nimport { authOptions } from '../auth';\n\nexport async function CollectionPage({ params }: { params: Promise<{ type: string }> }) {\n const session = await getServerSession(authOptions);\n\n if (!session) {\n return null;\n }\n\n const { type } = await params;\n const collections = Object.keys(getConfig().collections);\n\n if (!type) {\n redirect(`/cms/content`);\n }\n if (!collections.includes(type)) {\n redirect('/cms/content');\n }\n\n return <DashboardContent selectedType={type} />;\n}\n"],"mappings":";AAyBS;AAzBT,SAAS,gBAAgB;AACzB,SAAS,wBAAwB;AAGjC,OAAO,sBAAsB;AAC7B,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAE5B,eAAsB,eAAe,EAAE,OAAO,GAA0C;AACtF,QAAM,UAAU,MAAM,iBAAiB,WAAW;AAElD,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,KAAK,IAAI,MAAM;AACvB,QAAM,cAAc,OAAO,KAAK,UAAU,EAAE,WAAW;AAEvD,MAAI,CAAC,MAAM;AACT,aAAS,cAAc;AAAA,EACzB;AACA,MAAI,CAAC,YAAY,SAAS,IAAI,GAAG;AAC/B,aAAS,cAAc;AAAA,EACzB;AAEA,SAAO,oBAAC,oBAAiB,cAAc,MAAM;AAC/C;","names":[]}
@@ -1,2 +1,7 @@
1
+ /**
2
+ * Auth-gated thin shell. `ContentModelList` fetches its own data via
3
+ * `useSchema` + `useEntryList` and renders block-level skeletons while
4
+ * pending. See `octocms/admin/query/hooks/useSchema.ts`.
5
+ */
1
6
  export declare function ContentModelPage(): Promise<import("react/jsx-runtime").JSX.Element | null>;
2
7
  //# sourceMappingURL=ContentModelPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContentModelPage.d.ts","sourceRoot":"","sources":["../../../admin/pages/ContentModelPage.tsx"],"names":[],"mappings":"AAQA,wBAAsB,gBAAgB,4DAUrC"}
1
+ {"version":3,"file":"ContentModelPage.d.ts","sourceRoot":"","sources":["../../../admin/pages/ContentModelPage.tsx"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,wBAAsB,gBAAgB,4DAQrC"}
@@ -2,16 +2,13 @@ import "../../chunk-B5LE2OEC.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { getServerSession } from "next-auth";
4
4
  import ContentModelList from "../../components/ContentModel/ContentModelList";
5
- import { getEntryList } from "../actions";
6
- import { getSchema } from "../actions/schema";
7
5
  import { authOptions } from "../auth";
8
6
  async function ContentModelPage() {
9
7
  const session = await getServerSession(authOptions);
10
8
  if (!session) {
11
9
  return null;
12
10
  }
13
- const [schema, entries] = await Promise.all([getSchema(), getEntryList()]);
14
- return /* @__PURE__ */ jsx(ContentModelList, { schema, entries });
11
+ return /* @__PURE__ */ jsx(ContentModelList, {});
15
12
  }
16
13
  export {
17
14
  ContentModelPage
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../admin/pages/ContentModelPage.tsx"],"sourcesContent":["import React from 'react';\nimport { getServerSession } from 'next-auth';\n\nimport ContentModelList from '../../components/ContentModel/ContentModelList';\nimport { getEntryList } from '../actions';\nimport { getSchema } from '../actions/schema';\nimport { authOptions } from '../auth';\n\nexport async function ContentModelPage() {\n const session = await getServerSession(authOptions);\n\n if (!session) {\n return null;\n }\n\n const [schema, entries] = await Promise.all([getSchema(), getEntryList()]);\n\n return <ContentModelList schema={schema} entries={entries} />;\n}\n"],"mappings":";AAiBS;AAhBT,SAAS,wBAAwB;AAEjC,OAAO,sBAAsB;AAC7B,SAAS,oBAAoB;AAC7B,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAE5B,eAAsB,mBAAmB;AACvC,QAAM,UAAU,MAAM,iBAAiB,WAAW;AAElD,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,QAAM,CAAC,QAAQ,OAAO,IAAI,MAAM,QAAQ,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC;AAEzE,SAAO,oBAAC,oBAAiB,QAAgB,SAAkB;AAC7D;","names":[]}
1
+ {"version":3,"sources":["../../../admin/pages/ContentModelPage.tsx"],"sourcesContent":["import React from 'react';\nimport { getServerSession } from 'next-auth';\n\nimport ContentModelList from '../../components/ContentModel/ContentModelList';\nimport { authOptions } from '../auth';\n\n/**\n * Auth-gated thin shell. `ContentModelList` fetches its own data via\n * `useSchema` + `useEntryList` and renders block-level skeletons while\n * pending. See `octocms/admin/query/hooks/useSchema.ts`.\n */\nexport async function ContentModelPage() {\n const session = await getServerSession(authOptions);\n\n if (!session) {\n return null;\n }\n\n return <ContentModelList />;\n}\n"],"mappings":";AAkBS;AAjBT,SAAS,wBAAwB;AAEjC,OAAO,sBAAsB;AAC7B,SAAS,mBAAmB;AAO5B,eAAsB,mBAAmB;AACvC,QAAM,UAAU,MAAM,iBAAiB,WAAW;AAElD,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,SAAO,oBAAC,oBAAiB;AAC3B;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ContentPage.d.ts","sourceRoot":"","sources":["../../../admin/pages/ContentPage.tsx"],"names":[],"mappings":"AASA,wBAAsB,WAAW,4DAahC"}
1
+ {"version":3,"file":"ContentPage.d.ts","sourceRoot":"","sources":["../../../admin/pages/ContentPage.tsx"],"names":[],"mappings":"AAMA,wBAAsB,WAAW,4DAQhC"}
@@ -1,19 +1,14 @@
1
1
  import "../../chunk-B5LE2OEC.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { getServerSession } from "next-auth";
4
- import { getConfig } from "../../lib/configStore";
5
- import { authOptions } from "../auth";
6
4
  import DashboardContent from "../../components/Dashboard/DashboardContent";
7
- import { getEntryList, hasActiveBranch } from "../actions";
8
- import { getBranch } from "../actions/git";
5
+ import { authOptions } from "../auth";
9
6
  async function ContentPage() {
10
7
  const session = await getServerSession(authOptions);
11
8
  if (!session) {
12
9
  return null;
13
10
  }
14
- const [entries, hasBranch, activeBranch] = await Promise.all([getEntryList(), hasActiveBranch(), getBranch()]);
15
- const collections = Object.keys(getConfig().collections);
16
- return /* @__PURE__ */ jsx(DashboardContent, { entries, collections, hasBranch, activeBranch });
11
+ return /* @__PURE__ */ jsx(DashboardContent, {});
17
12
  }
18
13
  export {
19
14
  ContentPage
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../admin/pages/ContentPage.tsx"],"sourcesContent":["import React from 'react';\nimport { getServerSession } from 'next-auth';\n\nimport { getConfig } from '../../lib/configStore';\nimport { authOptions } from '../auth';\nimport DashboardContent from '../../components/Dashboard/DashboardContent';\nimport { getEntryList, hasActiveBranch } from '../actions';\nimport { getBranch } from '../actions/git';\n\nexport async function ContentPage() {\n const session = await getServerSession(authOptions);\n\n if (!session) {\n return null;\n }\n\n const [entries, hasBranch, activeBranch] = await Promise.all([getEntryList(), hasActiveBranch(), getBranch()]);\n const collections = Object.keys(getConfig().collections);\n\n return (\n <DashboardContent entries={entries} collections={collections} hasBranch={hasBranch} activeBranch={activeBranch} />\n );\n}\n"],"mappings":";AAoBI;AAnBJ,SAAS,wBAAwB;AAEjC,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAC5B,OAAO,sBAAsB;AAC7B,SAAS,cAAc,uBAAuB;AAC9C,SAAS,iBAAiB;AAE1B,eAAsB,cAAc;AAClC,QAAM,UAAU,MAAM,iBAAiB,WAAW;AAElD,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,QAAM,CAAC,SAAS,WAAW,YAAY,IAAI,MAAM,QAAQ,IAAI,CAAC,aAAa,GAAG,gBAAgB,GAAG,UAAU,CAAC,CAAC;AAC7G,QAAM,cAAc,OAAO,KAAK,UAAU,EAAE,WAAW;AAEvD,SACE,oBAAC,oBAAiB,SAAkB,aAA0B,WAAsB,cAA4B;AAEpH;","names":[]}
1
+ {"version":3,"sources":["../../../admin/pages/ContentPage.tsx"],"sourcesContent":["import React from 'react';\nimport { getServerSession } from 'next-auth';\n\nimport DashboardContent from '../../components/Dashboard/DashboardContent';\nimport { authOptions } from '../auth';\n\nexport async function ContentPage() {\n const session = await getServerSession(authOptions);\n\n if (!session) {\n return null;\n }\n\n return <DashboardContent />;\n}\n"],"mappings":";AAaS;AAZT,SAAS,wBAAwB;AAEjC,OAAO,sBAAsB;AAC7B,SAAS,mBAAmB;AAE5B,eAAsB,cAAc;AAClC,QAAM,UAAU,MAAM,iBAAiB,WAAW;AAElD,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,SAAO,oBAAC,oBAAiB;AAC3B;","names":[]}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Auth-gated thin shell. `ContentTypeDetail` fetches schema + entries via
3
+ * `useSchema` + `useEntryList` and renders block skeletons while pending.
4
+ */
1
5
  export declare function ContentTypePage({ type }: {
2
6
  type: string;
3
7
  }): Promise<import("react/jsx-runtime").JSX.Element | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"ContentTypePage.d.ts","sourceRoot":"","sources":["../../../admin/pages/ContentTypePage.tsx"],"names":[],"mappings":"AASA,wBAAsB,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,2DAe/D"}
1
+ {"version":3,"file":"ContentTypePage.d.ts","sourceRoot":"","sources":["../../../admin/pages/ContentTypePage.tsx"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAsB,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,2DAY/D"}
@@ -3,17 +3,13 @@ import { jsx } from "react/jsx-runtime";
3
3
  import { getServerSession } from "next-auth";
4
4
  import ContentTypeDetail from "../../components/ContentModel/ContentTypeDetail";
5
5
  import { ErrorBoundary } from "../../components/ErrorBoundary";
6
- import { getEntryList } from "../actions";
7
- import { getSchema } from "../actions/schema";
8
6
  import { authOptions } from "../auth";
9
7
  async function ContentTypePage({ type }) {
10
8
  const session = await getServerSession(authOptions);
11
9
  if (!session) {
12
10
  return null;
13
11
  }
14
- const [schema, entries] = await Promise.all([getSchema(), getEntryList(type)]);
15
- const entryCount = entries.filter((e) => e.type === type).length;
16
- return /* @__PURE__ */ jsx(ErrorBoundary, { label: "content type editor", resetKeys: [type], children: /* @__PURE__ */ jsx(ContentTypeDetail, { schema, type, entryCount }) });
12
+ return /* @__PURE__ */ jsx(ErrorBoundary, { label: "content type editor", resetKeys: [type], children: /* @__PURE__ */ jsx(ContentTypeDetail, { type }) });
17
13
  }
18
14
  export {
19
15
  ContentTypePage
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../admin/pages/ContentTypePage.tsx"],"sourcesContent":["import React from 'react';\nimport { getServerSession } from 'next-auth';\n\nimport ContentTypeDetail from '../../components/ContentModel/ContentTypeDetail';\nimport { ErrorBoundary } from '../../components/ErrorBoundary';\nimport { getEntryList } from '../actions';\nimport { getSchema } from '../actions/schema';\nimport { authOptions } from '../auth';\n\nexport async function ContentTypePage({ type }: { type: string }) {\n const session = await getServerSession(authOptions);\n\n if (!session) {\n return null;\n }\n\n const [schema, entries] = await Promise.all([getSchema(), getEntryList(type)]);\n const entryCount = entries.filter((e) => e.type === type).length;\n\n return (\n <ErrorBoundary label=\"content type editor\" resetKeys={[type]}>\n <ContentTypeDetail schema={schema} type={type} entryCount={entryCount} />\n </ErrorBoundary>\n );\n}\n"],"mappings":";AAqBM;AApBN,SAAS,wBAAwB;AAEjC,OAAO,uBAAuB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAE5B,eAAsB,gBAAgB,EAAE,KAAK,GAAqB;AAChE,QAAM,UAAU,MAAM,iBAAiB,WAAW;AAElD,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,QAAM,CAAC,QAAQ,OAAO,IAAI,MAAM,QAAQ,IAAI,CAAC,UAAU,GAAG,aAAa,IAAI,CAAC,CAAC;AAC7E,QAAM,aAAa,QAAQ,OAAO,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE;AAE1D,SACE,oBAAC,iBAAc,OAAM,uBAAsB,WAAW,CAAC,IAAI,GACzD,8BAAC,qBAAkB,QAAgB,MAAY,YAAwB,GACzE;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../admin/pages/ContentTypePage.tsx"],"sourcesContent":["import React from 'react';\nimport { getServerSession } from 'next-auth';\n\nimport ContentTypeDetail from '../../components/ContentModel/ContentTypeDetail';\nimport { ErrorBoundary } from '../../components/ErrorBoundary';\nimport { authOptions } from '../auth';\n\n/**\n * Auth-gated thin shell. `ContentTypeDetail` fetches schema + entries via\n * `useSchema` + `useEntryList` and renders block skeletons while pending.\n */\nexport async function ContentTypePage({ type }: { type: string }) {\n const session = await getServerSession(authOptions);\n\n if (!session) {\n return null;\n }\n\n return (\n <ErrorBoundary label=\"content type editor\" resetKeys={[type]}>\n <ContentTypeDetail type={type} />\n </ErrorBoundary>\n );\n}\n"],"mappings":";AAoBM;AAnBN,SAAS,wBAAwB;AAEjC,OAAO,uBAAuB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAM5B,eAAsB,gBAAgB,EAAE,KAAK,GAAqB;AAChE,QAAM,UAAU,MAAM,iBAAiB,WAAW;AAElD,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,SACE,oBAAC,iBAAc,OAAM,uBAAsB,WAAW,CAAC,IAAI,GACzD,8BAAC,qBAAkB,MAAY,GACjC;AAEJ;","names":[]}
@@ -1,3 +1,12 @@
1
+ /**
2
+ * Auth-gated thin shell. `EditPost` resolves the entry's file path from
3
+ * `type + id`, fetches it via `useEntry`, and renders block-level skeletons
4
+ * (form + sidebar) while pending. Not-found is handled in-component so
5
+ * navigation between entries stays inside the cached SPA.
6
+ *
7
+ * `FileContextProvider` is preserved as a UI-state bus (selectedFile bag)
8
+ * — it no longer carries pre-fetched data.
9
+ */
1
10
  export declare function EntryPage({ params }: {
2
11
  params: Promise<{
3
12
  type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"EntryPage.d.ts","sourceRoot":"","sources":["../../../admin/pages/EntryPage.tsx"],"names":[],"mappings":"AAUA,wBAAsB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,2DAsC5F"}
1
+ {"version":3,"file":"EntryPage.d.ts","sourceRoot":"","sources":["../../../admin/pages/EntryPage.tsx"],"names":[],"mappings":"AASA;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,2DA8B5F"}
@@ -1,11 +1,10 @@
1
1
  import "../../chunk-B5LE2OEC.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
- import { notFound, redirect } from "next/navigation";
3
+ import { redirect } from "next/navigation";
4
4
  import { getServerSession } from "next-auth";
5
5
  import EditPost from "../../components/EditPost/EditPost";
6
6
  import { FileContextProvider } from "../../hooks/useFileState";
7
- import { parseFileName } from "../../utils/parseFileName";
8
- import { getContentFiles, getFile } from "../actions";
7
+ import { getConfig } from "../../lib/configStore";
9
8
  import { authOptions } from "../auth";
10
9
  async function EntryPage({ params }) {
11
10
  const { type, id } = await params;
@@ -19,14 +18,11 @@ async function EntryPage({ params }) {
19
18
  if (!session) {
20
19
  return null;
21
20
  }
22
- const files = await getContentFiles();
23
- const file = files.find((f) => f.includes(id));
24
- const parsedFileName = file ? parseFileName(file) : void 0;
25
- if (!parsedFileName) {
26
- notFound();
21
+ const collections = Object.keys(getConfig().collections);
22
+ if (!collections.includes(type)) {
23
+ redirect("/cms/content");
27
24
  }
28
- const post = await getFile(parsedFileName.path);
29
- return /* @__PURE__ */ jsx(FileContextProvider, { defaultType: type, defaultFile: parsedFileName, children: /* @__PURE__ */ jsx(EditPost, { post }) });
25
+ return /* @__PURE__ */ jsx(FileContextProvider, { defaultType: type, children: /* @__PURE__ */ jsx(EditPost, { type, id }) });
30
26
  }
31
27
  export {
32
28
  EntryPage
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../admin/pages/EntryPage.tsx"],"sourcesContent":["import { notFound, redirect } from 'next/navigation';\nimport { getServerSession } from 'next-auth';\nimport React from 'react';\n\nimport EditPost from '../../components/EditPost/EditPost';\nimport { FileContextProvider } from '../../hooks/useFileState';\nimport { parseFileName } from '../../utils/parseFileName';\nimport { getContentFiles, getFile } from '../actions';\nimport { authOptions } from '../auth';\n\nexport async function EntryPage({ params }: { params: Promise<{ type: string; id: string }> }) {\n const { type, id } = await params;\n\n if (!type) {\n redirect(`/cms/content`);\n }\n\n // Media entries have a dedicated full-page editor at /cms/media/[id].\n // Mounting them through `EditPost` would render an empty form because there\n // is no `media` collection in the user's schema. The destination runs its\n // own auth check, so this redirect is safe to do before authenticating.\n if (type === 'media') {\n redirect(`/cms/media/${id}`);\n }\n\n const session = await getServerSession(authOptions);\n\n if (!session) {\n return null;\n }\n\n const files = await getContentFiles();\n const file = files.find((f) => f.includes(id));\n const parsedFileName = file ? parseFileName(file) : undefined;\n\n if (!parsedFileName) {\n // Unknown id — surface a clear 404 so broken links don't silently bounce\n // the user back to a list page.\n notFound();\n }\n\n const post = await getFile(parsedFileName.path);\n\n return (\n <FileContextProvider defaultType={type} defaultFile={parsedFileName}>\n <EditPost post={post} />\n </FileContextProvider>\n );\n}\n"],"mappings":";AA6CM;AA7CN,SAAS,UAAU,gBAAgB;AACnC,SAAS,wBAAwB;AAGjC,OAAO,cAAc;AACrB,SAAS,2BAA2B;AACpC,SAAS,qBAAqB;AAC9B,SAAS,iBAAiB,eAAe;AACzC,SAAS,mBAAmB;AAE5B,eAAsB,UAAU,EAAE,OAAO,GAAsD;AAC7F,QAAM,EAAE,MAAM,GAAG,IAAI,MAAM;AAE3B,MAAI,CAAC,MAAM;AACT,aAAS,cAAc;AAAA,EACzB;AAMA,MAAI,SAAS,SAAS;AACpB,aAAS,cAAc,EAAE,EAAE;AAAA,EAC7B;AAEA,QAAM,UAAU,MAAM,iBAAiB,WAAW;AAElD,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,MAAM,gBAAgB;AACpC,QAAM,OAAO,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;AAC7C,QAAM,iBAAiB,OAAO,cAAc,IAAI,IAAI;AAEpD,MAAI,CAAC,gBAAgB;AAGnB,aAAS;AAAA,EACX;AAEA,QAAM,OAAO,MAAM,QAAQ,eAAe,IAAI;AAE9C,SACE,oBAAC,uBAAoB,aAAa,MAAM,aAAa,gBACnD,8BAAC,YAAS,MAAY,GACxB;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../admin/pages/EntryPage.tsx"],"sourcesContent":["import { redirect } from 'next/navigation';\nimport { getServerSession } from 'next-auth';\nimport React from 'react';\n\nimport EditPost from '../../components/EditPost/EditPost';\nimport { FileContextProvider } from '../../hooks/useFileState';\nimport { getConfig } from '../../lib/configStore';\nimport { authOptions } from '../auth';\n\n/**\n * Auth-gated thin shell. `EditPost` resolves the entry's file path from\n * `type + id`, fetches it via `useEntry`, and renders block-level skeletons\n * (form + sidebar) while pending. Not-found is handled in-component so\n * navigation between entries stays inside the cached SPA.\n *\n * `FileContextProvider` is preserved as a UI-state bus (selectedFile bag)\n * — it no longer carries pre-fetched data.\n */\nexport async function EntryPage({ params }: { params: Promise<{ type: string; id: string }> }) {\n const { type, id } = await params;\n\n if (!type) {\n redirect(`/cms/content`);\n }\n\n // Media entries have a dedicated full-page editor at /cms/media/[id].\n if (type === 'media') {\n redirect(`/cms/media/${id}`);\n }\n\n const session = await getServerSession(authOptions);\n\n if (!session) {\n return null;\n }\n\n // Validate type is a known collection — surfaces invalid URLs as a redirect\n // rather than confusing client-side empty state.\n const collections = Object.keys(getConfig().collections);\n if (!collections.includes(type)) {\n redirect('/cms/content');\n }\n\n return (\n <FileContextProvider defaultType={type}>\n <EditPost type={type} id={id} />\n </FileContextProvider>\n );\n}\n"],"mappings":";AA6CM;AA7CN,SAAS,gBAAgB;AACzB,SAAS,wBAAwB;AAGjC,OAAO,cAAc;AACrB,SAAS,2BAA2B;AACpC,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAW5B,eAAsB,UAAU,EAAE,OAAO,GAAsD;AAC7F,QAAM,EAAE,MAAM,GAAG,IAAI,MAAM;AAE3B,MAAI,CAAC,MAAM;AACT,aAAS,cAAc;AAAA,EACzB;AAGA,MAAI,SAAS,SAAS;AACpB,aAAS,cAAc,EAAE,EAAE;AAAA,EAC7B;AAEA,QAAM,UAAU,MAAM,iBAAiB,WAAW;AAElD,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAIA,QAAM,cAAc,OAAO,KAAK,UAAU,EAAE,WAAW;AACvD,MAAI,CAAC,YAAY,SAAS,IAAI,GAAG;AAC/B,aAAS,cAAc;AAAA,EACzB;AAEA,SACE,oBAAC,uBAAoB,aAAa,MAChC,8BAAC,YAAS,MAAY,IAAQ,GAChC;AAEJ;","names":[]}
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Auth-gated thin shell. `MediaAsset` fetches the media list via
3
+ * `useMediaAsset(id)` and shares the cache with `/cms/media`. The not-found
4
+ * case is rendered inside the component once the list resolves, instead of
5
+ * triggering a server-side `notFound()` — keeps navigation between assets
6
+ * instant from the warm cache.
7
+ */
1
8
  export declare function MediaAssetPage({ id }: {
2
9
  id: string;
3
10
  }): Promise<import("react/jsx-runtime").JSX.Element | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"MediaAssetPage.d.ts","sourceRoot":"","sources":["../../../admin/pages/MediaAssetPage.tsx"],"names":[],"mappings":"AAUA,wBAAsB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,2DAa1D"}
1
+ {"version":3,"file":"MediaAssetPage.d.ts","sourceRoot":"","sources":["../../../admin/pages/MediaAssetPage.tsx"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,2DAS1D"}
@@ -1,19 +1,13 @@
1
1
  import "../../chunk-B5LE2OEC.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
- import { notFound } from "next/navigation";
4
3
  import { getServerSession } from "next-auth";
5
4
  import { ErrorBoundary } from "../../components/ErrorBoundary";
6
5
  import { MediaAsset } from "../../components/MediaAsset/MediaAsset";
7
- import { findMediaFileByRequestedId } from "../../components/MediaAsset/findMediaFileByRequestedId";
8
- import { getMediaEntries } from "../actions";
9
6
  import { authOptions } from "../auth";
10
7
  async function MediaAssetPage({ id }) {
11
8
  const session = await getServerSession(authOptions);
12
9
  if (!session) return null;
13
- const files = await getMediaEntries();
14
- const file = findMediaFileByRequestedId(id, files);
15
- if (!file) notFound();
16
- return /* @__PURE__ */ jsx(ErrorBoundary, { label: "media asset", children: /* @__PURE__ */ jsx(MediaAsset, { file, allFiles: files }) });
10
+ return /* @__PURE__ */ jsx(ErrorBoundary, { label: "media asset", children: /* @__PURE__ */ jsx(MediaAsset, { id }) });
17
11
  }
18
12
  export {
19
13
  MediaAssetPage
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../admin/pages/MediaAssetPage.tsx"],"sourcesContent":["import React from 'react';\nimport { notFound } from 'next/navigation';\nimport { getServerSession } from 'next-auth';\n\nimport { ErrorBoundary } from '../../components/ErrorBoundary';\nimport { MediaAsset } from '../../components/MediaAsset/MediaAsset';\nimport { findMediaFileByRequestedId } from '../../components/MediaAsset/findMediaFileByRequestedId';\nimport { getMediaEntries } from '../actions';\nimport { authOptions } from '../auth';\n\nexport async function MediaAssetPage({ id }: { id: string }) {\n const session = await getServerSession(authOptions);\n if (!session) return null;\n\n const files = await getMediaEntries();\n const file = findMediaFileByRequestedId(id, files);\n if (!file) notFound();\n\n return (\n <ErrorBoundary label=\"media asset\">\n <MediaAsset file={file} allFiles={files} />\n </ErrorBoundary>\n );\n}\n"],"mappings":";AAoBM;AAnBN,SAAS,gBAAgB;AACzB,SAAS,wBAAwB;AAEjC,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,kCAAkC;AAC3C,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAE5B,eAAsB,eAAe,EAAE,GAAG,GAAmB;AAC3D,QAAM,UAAU,MAAM,iBAAiB,WAAW;AAClD,MAAI,CAAC,QAAS,QAAO;AAErB,QAAM,QAAQ,MAAM,gBAAgB;AACpC,QAAM,OAAO,2BAA2B,IAAI,KAAK;AACjD,MAAI,CAAC,KAAM,UAAS;AAEpB,SACE,oBAAC,iBAAc,OAAM,eACnB,8BAAC,cAAW,MAAY,UAAU,OAAO,GAC3C;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../admin/pages/MediaAssetPage.tsx"],"sourcesContent":["import React from 'react';\nimport { getServerSession } from 'next-auth';\n\nimport { ErrorBoundary } from '../../components/ErrorBoundary';\nimport { MediaAsset } from '../../components/MediaAsset/MediaAsset';\nimport { authOptions } from '../auth';\n\n/**\n * Auth-gated thin shell. `MediaAsset` fetches the media list via\n * `useMediaAsset(id)` and shares the cache with `/cms/media`. The not-found\n * case is rendered inside the component once the list resolves, instead of\n * triggering a server-side `notFound()` — keeps navigation between assets\n * instant from the warm cache.\n */\nexport async function MediaAssetPage({ id }: { id: string }) {\n const session = await getServerSession(authOptions);\n if (!session) return null;\n\n return (\n <ErrorBoundary label=\"media asset\">\n <MediaAsset id={id} />\n </ErrorBoundary>\n );\n}\n"],"mappings":";AAoBM;AAnBN,SAAS,wBAAwB;AAEjC,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAS5B,eAAsB,eAAe,EAAE,GAAG,GAAmB;AAC3D,QAAM,UAAU,MAAM,iBAAiB,WAAW;AAClD,MAAI,CAAC,QAAS,QAAO;AAErB,SACE,oBAAC,iBAAc,OAAM,eACnB,8BAAC,cAAW,IAAQ,GACtB;AAEJ;","names":[]}
@@ -1,2 +1,7 @@
1
+ /**
2
+ * Auth-gated thin shell. `MediaManager` fetches its own data via TanStack
3
+ * Query (`useMediaList`) and renders block-level skeletons for the left panel
4
+ * and grid/list slots. See `octocms/admin/query/hooks/useMediaList.ts`.
5
+ */
1
6
  export declare function MediaPage(): Promise<import("react/jsx-runtime").JSX.Element | null>;
2
7
  //# sourceMappingURL=MediaPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MediaPage.d.ts","sourceRoot":"","sources":["../../../admin/pages/MediaPage.tsx"],"names":[],"mappings":"AAQA,wBAAsB,SAAS,4DAc9B"}
1
+ {"version":3,"file":"MediaPage.d.ts","sourceRoot":"","sources":["../../../admin/pages/MediaPage.tsx"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,wBAAsB,SAAS,4DAY9B"}
@@ -3,15 +3,13 @@ import { jsx } from "react/jsx-runtime";
3
3
  import { getServerSession } from "next-auth";
4
4
  import MediaManager from "../../components/MediaManager/MediaManager";
5
5
  import { ErrorBoundary } from "../../components/ErrorBoundary";
6
- import { getMediaEntries } from "../actions";
7
6
  import { authOptions } from "../auth";
8
7
  async function MediaPage() {
9
8
  const session = await getServerSession(authOptions);
10
9
  if (!session) {
11
10
  return null;
12
11
  }
13
- const files = await getMediaEntries();
14
- return /* @__PURE__ */ jsx(ErrorBoundary, { label: "media library", children: /* @__PURE__ */ jsx(MediaManager, { files }) });
12
+ return /* @__PURE__ */ jsx(ErrorBoundary, { label: "media library", children: /* @__PURE__ */ jsx(MediaManager, {}) });
15
13
  }
16
14
  export {
17
15
  MediaPage
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../admin/pages/MediaPage.tsx"],"sourcesContent":["import React from 'react';\nimport { getServerSession } from 'next-auth';\n\nimport MediaManager from '../../components/MediaManager/MediaManager';\nimport { ErrorBoundary } from '../../components/ErrorBoundary';\nimport { getMediaEntries } from '../actions';\nimport { authOptions } from '../auth';\n\nexport async function MediaPage() {\n const session = await getServerSession(authOptions);\n\n if (!session) {\n return null;\n }\n\n const files = await getMediaEntries();\n\n return (\n <ErrorBoundary label=\"media library\">\n <MediaManager files={files} />\n </ErrorBoundary>\n );\n}\n"],"mappings":";AAmBM;AAlBN,SAAS,wBAAwB;AAEjC,OAAO,kBAAkB;AACzB,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAE5B,eAAsB,YAAY;AAChC,QAAM,UAAU,MAAM,iBAAiB,WAAW;AAElD,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,MAAM,gBAAgB;AAEpC,SACE,oBAAC,iBAAc,OAAM,iBACnB,8BAAC,gBAAa,OAAc,GAC9B;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../admin/pages/MediaPage.tsx"],"sourcesContent":["import React from 'react';\nimport { getServerSession } from 'next-auth';\n\nimport MediaManager from '../../components/MediaManager/MediaManager';\nimport { ErrorBoundary } from '../../components/ErrorBoundary';\nimport { authOptions } from '../auth';\n\n/**\n * Auth-gated thin shell. `MediaManager` fetches its own data via TanStack\n * Query (`useMediaList`) and renders block-level skeletons for the left panel\n * and grid/list slots. See `octocms/admin/query/hooks/useMediaList.ts`.\n */\nexport async function MediaPage() {\n const session = await getServerSession(authOptions);\n\n if (!session) {\n return null;\n }\n\n return (\n <ErrorBoundary label=\"media library\">\n <MediaManager />\n </ErrorBoundary>\n );\n}\n"],"mappings":";AAqBM;AApBN,SAAS,wBAAwB;AAEjC,OAAO,kBAAkB;AACzB,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAO5B,eAAsB,YAAY;AAChC,QAAM,UAAU,MAAM,iBAAiB,WAAW;AAElD,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,SACE,oBAAC,iBAAc,OAAM,iBACnB,8BAAC,gBAAa,GAChB;AAEJ;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../admin/provider.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGvC,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,QAAQ,EACR,OAAO,EACP,MAAM,GACP,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,KAAK,CAAC,SAAS,CAMlB"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../admin/provider.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAKvC,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,QAAQ,EACR,OAAO,EACP,MAAM,GACP,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,KAAK,CAAC,SAAS,CAQlB"}
@@ -3,12 +3,13 @@ import "../chunk-B5LE2OEC.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  import { SessionProvider } from "next-auth/react";
5
5
  import { ConfigProvider } from "../hooks/useConfig";
6
+ import { QueryProvider } from "./query/QueryProvider";
6
7
  function Provider({
7
8
  children,
8
9
  session,
9
10
  config
10
11
  }) {
11
- return /* @__PURE__ */ jsx(SessionProvider, { session, children: /* @__PURE__ */ jsx(ConfigProvider, { config, children }) });
12
+ return /* @__PURE__ */ jsx(SessionProvider, { session, children: /* @__PURE__ */ jsx(ConfigProvider, { config, children: /* @__PURE__ */ jsx(QueryProvider, { children }) }) });
12
13
  }
13
14
  export {
14
15
  Provider as default
@@ -1 +1 @@
1
- {"version":3,"sources":["../../admin/provider.tsx"],"sourcesContent":["'use client';\n\nimport { SessionProvider } from 'next-auth/react';\nimport type { Session } from 'next-auth';\nimport React from 'react';\n\nimport type { Config } from '../types';\nimport { ConfigProvider } from '../hooks/useConfig';\n\nexport default function Provider({\n children,\n session,\n config,\n}: {\n children: React.ReactNode;\n session?: Session | null;\n config: Config;\n}): React.ReactNode {\n return (\n <SessionProvider session={session}>\n <ConfigProvider config={config}>{children}</ConfigProvider>\n </SessionProvider>\n );\n}\n"],"mappings":";;AAoBM;AAlBN,SAAS,uBAAuB;AAKhC,SAAS,sBAAsB;AAEhB,SAAR,SAA0B;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AACF,GAIoB;AAClB,SACE,oBAAC,mBAAgB,SACf,8BAAC,kBAAe,QAAiB,UAAS,GAC5C;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../admin/provider.tsx"],"sourcesContent":["'use client';\n\nimport { SessionProvider } from 'next-auth/react';\nimport type { Session } from 'next-auth';\nimport React from 'react';\n\nimport type { Config } from '../types';\nimport { ConfigProvider } from '../hooks/useConfig';\n\nimport { QueryProvider } from './query/QueryProvider';\n\nexport default function Provider({\n children,\n session,\n config,\n}: {\n children: React.ReactNode;\n session?: Session | null;\n config: Config;\n}): React.ReactNode {\n return (\n <SessionProvider session={session}>\n <ConfigProvider config={config}>\n <QueryProvider>{children}</QueryProvider>\n </ConfigProvider>\n </SessionProvider>\n );\n}\n"],"mappings":";;AAuBQ;AArBR,SAAS,uBAAuB;AAKhC,SAAS,sBAAsB;AAE/B,SAAS,qBAAqB;AAEf,SAAR,SAA0B;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AACF,GAIoB;AAClB,SACE,oBAAC,mBAAgB,SACf,8BAAC,kBAAe,QACd,8BAAC,iBAAe,UAAS,GAC3B,GACF;AAEJ;","names":[]}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ /**
3
+ * Wraps the admin tree in a `QueryClientProvider` and lazily mounts
4
+ * `@tanstack/react-query-devtools` in development. Devtools is an optional
5
+ * peer dep — if it's not installed the dynamic import simply rejects and the
6
+ * provider keeps working.
7
+ */
8
+ export declare function QueryProvider({ children }: {
9
+ children: React.ReactNode;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=QueryProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryProvider.d.ts","sourceRoot":"","sources":["../../../admin/query/QueryProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAMnD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CA6BxE"}
@@ -0,0 +1,33 @@
1
+ "use client";
2
+ import "../../chunk-B5LE2OEC.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { useEffect, useState } from "react";
5
+ import { QueryClientProvider } from "@tanstack/react-query";
6
+ import { attachCrossTabInvalidationListener } from "./invalidate";
7
+ import { getQueryClient } from "./queryClient";
8
+ function QueryProvider({ children }) {
9
+ const [client] = useState(() => getQueryClient());
10
+ const [Devtools, setDevtools] = useState(null);
11
+ useEffect(() => {
12
+ return attachCrossTabInvalidationListener(client);
13
+ }, [client]);
14
+ useEffect(() => {
15
+ if (process.env.NODE_ENV === "production") return;
16
+ let cancelled = false;
17
+ import("@tanstack/react-query-devtools").then((m) => {
18
+ if (!cancelled) setDevtools(() => m.ReactQueryDevtools);
19
+ }).catch(() => {
20
+ });
21
+ return () => {
22
+ cancelled = true;
23
+ };
24
+ }, []);
25
+ return /* @__PURE__ */ jsxs(QueryClientProvider, { client, children: [
26
+ children,
27
+ Devtools ? /* @__PURE__ */ jsx(Devtools, { initialIsOpen: false }) : null
28
+ ] });
29
+ }
30
+ export {
31
+ QueryProvider
32
+ };
33
+ //# sourceMappingURL=QueryProvider.js.map