octocms 0.4.13 → 0.4.16

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 (796) hide show
  1. package/dist/admin/AdminApp.d.ts +1 -1
  2. package/dist/admin/AdminApp.js +2 -2
  3. package/dist/admin/AdminApp.js.map +1 -1
  4. package/dist/admin/actions/agent.d.ts +3 -3
  5. package/dist/admin/actions/agent.js.map +1 -1
  6. package/dist/admin/actions/media.d.ts.map +1 -1
  7. package/dist/admin/actions/media.js +3 -1
  8. package/dist/admin/actions/media.js.map +1 -1
  9. package/dist/admin/pages/AdminErrorView.d.ts.map +1 -1
  10. package/dist/admin/pages/AdminErrorView.js +9 -9
  11. package/dist/admin/pages/AdminErrorView.js.map +1 -1
  12. package/dist/admin/pages/AdminLayout.d.ts +1 -1
  13. package/dist/admin/pages/AdminLayout.d.ts.map +1 -1
  14. package/dist/admin/pages/AdminLayout.js +2 -2
  15. package/dist/admin/pages/AdminLayout.js.map +1 -1
  16. package/dist/admin/pages/ChatPage.d.ts +3 -3
  17. package/dist/admin/pages/ChatPage.d.ts.map +1 -1
  18. package/dist/admin/pages/ChatPage.js +8 -5
  19. package/dist/admin/pages/ChatPage.js.map +1 -1
  20. package/dist/admin/pages/CollectionPage.d.ts.map +1 -1
  21. package/dist/admin/pages/CollectionPage.js +5 -1
  22. package/dist/admin/pages/CollectionPage.js.map +1 -1
  23. package/dist/admin/pages/ContentModelPage.d.ts.map +1 -1
  24. package/dist/admin/pages/ContentModelPage.js +5 -1
  25. package/dist/admin/pages/ContentModelPage.js.map +1 -1
  26. package/dist/admin/pages/ContentPage.d.ts.map +1 -1
  27. package/dist/admin/pages/ContentPage.js +5 -1
  28. package/dist/admin/pages/ContentPage.js.map +1 -1
  29. package/dist/admin/pages/ContentTypePage.d.ts.map +1 -1
  30. package/dist/admin/pages/ContentTypePage.js +6 -2
  31. package/dist/admin/pages/ContentTypePage.js.map +1 -1
  32. package/dist/admin/pages/EntryPage.d.ts.map +1 -1
  33. package/dist/admin/pages/EntryPage.js +5 -1
  34. package/dist/admin/pages/EntryPage.js.map +1 -1
  35. package/dist/admin/pages/MediaAssetPage.d.ts.map +1 -1
  36. package/dist/admin/pages/MediaAssetPage.js +6 -2
  37. package/dist/admin/pages/MediaAssetPage.js.map +1 -1
  38. package/dist/admin/pages/MediaPage.d.ts.map +1 -1
  39. package/dist/admin/pages/MediaPage.js +6 -2
  40. package/dist/admin/pages/MediaPage.js.map +1 -1
  41. package/dist/admin/theme/toggle.d.ts.map +1 -1
  42. package/dist/admin/theme/toggle.js +27 -27
  43. package/dist/admin/theme/toggle.js.map +1 -1
  44. package/dist/agent/chatSetup.d.ts +19 -0
  45. package/dist/agent/chatSetup.d.ts.map +1 -0
  46. package/dist/agent/chatSetup.js +119 -0
  47. package/dist/agent/chatSetup.js.map +1 -0
  48. package/dist/agent/featureFlag.d.ts +3 -3
  49. package/dist/agent/featureFlag.js.map +1 -1
  50. package/dist/agent/index.cjs +75 -5309
  51. package/dist/agent/index.cjs.map +1 -1
  52. package/dist/{agentDocs-M3R2CPUQ.js → agentDocs-QZ4NOQVH.js} +2 -2
  53. package/dist/{chunk-DCDFWNC6.js → chunk-I7VNI2IG.js} +4 -7
  54. package/dist/{chunk-DCDFWNC6.js.map → chunk-I7VNI2IG.js.map} +1 -1
  55. package/dist/chunk-TOUAHFDW.js +7 -0
  56. package/dist/{chunk-NAHOP7TG.js.map → chunk-TOUAHFDW.js.map} +1 -1
  57. package/dist/cli/index.js +4 -4
  58. package/dist/cli/lib/templates.js +3 -6
  59. package/dist/cli/lib/templates.js.map +1 -1
  60. package/dist/components/Chat/ChatAgentSetup.d.ts +7 -0
  61. package/dist/components/Chat/ChatAgentSetup.d.ts.map +1 -0
  62. package/dist/components/Chat/ChatAgentSetup.js +37 -0
  63. package/dist/components/Chat/ChatAgentSetup.js.map +1 -0
  64. package/dist/components/Chat/ChatPage.d.ts +6 -1
  65. package/dist/components/Chat/ChatPage.d.ts.map +1 -1
  66. package/dist/components/Chat/ChatPage.js +123 -128
  67. package/dist/components/Chat/ChatPage.js.map +1 -1
  68. package/dist/components/Chat/ChatSidebar.d.ts +10 -0
  69. package/dist/components/Chat/ChatSidebar.d.ts.map +1 -0
  70. package/dist/components/Chat/ChatSidebar.js +45 -0
  71. package/dist/components/Chat/ChatSidebar.js.map +1 -0
  72. package/dist/components/Chat/Composer.d.ts.map +1 -1
  73. package/dist/components/Chat/Composer.js +28 -45
  74. package/dist/components/Chat/Composer.js.map +1 -1
  75. package/dist/components/Chat/Message.d.ts.map +1 -1
  76. package/dist/components/Chat/Message.js +40 -39
  77. package/dist/components/Chat/Message.js.map +1 -1
  78. package/dist/components/Chat/ProposalCard.d.ts.map +1 -1
  79. package/dist/components/Chat/ProposalCard.js +56 -67
  80. package/dist/components/Chat/ProposalCard.js.map +1 -1
  81. package/dist/components/Chat/ToolCallCard.d.ts.map +1 -1
  82. package/dist/components/Chat/ToolCallCard.js +29 -38
  83. package/dist/components/Chat/ToolCallCard.js.map +1 -1
  84. package/dist/components/Chat/chatStorage.d.ts +64 -0
  85. package/dist/components/Chat/chatStorage.d.ts.map +1 -0
  86. package/dist/components/Chat/chatStorage.js +154 -0
  87. package/dist/components/Chat/chatStorage.js.map +1 -0
  88. package/dist/components/Chat/useChatHistory.d.ts +12 -0
  89. package/dist/components/Chat/useChatHistory.d.ts.map +1 -0
  90. package/dist/components/Chat/useChatHistory.js +196 -0
  91. package/dist/components/Chat/useChatHistory.js.map +1 -0
  92. package/dist/components/Chat/useChatStream.d.ts +6 -0
  93. package/dist/components/Chat/useChatStream.d.ts.map +1 -1
  94. package/dist/components/Chat/useChatStream.js +31 -2
  95. package/dist/components/Chat/useChatStream.js.map +1 -1
  96. package/dist/components/CommandK/CommandK.d.ts +1 -1
  97. package/dist/components/CommandK/CommandK.d.ts.map +1 -1
  98. package/dist/components/CommandK/CommandK.js +100 -116
  99. package/dist/components/CommandK/CommandK.js.map +1 -1
  100. package/dist/components/CommandK/parts.d.ts.map +1 -1
  101. package/dist/components/CommandK/parts.js +9 -11
  102. package/dist/components/CommandK/parts.js.map +1 -1
  103. package/dist/components/ContentModel/ConditionalBranchesEditor.d.ts.map +1 -1
  104. package/dist/components/ContentModel/ConditionalBranchesEditor.js +40 -45
  105. package/dist/components/ContentModel/ConditionalBranchesEditor.js.map +1 -1
  106. package/dist/components/ContentModel/ContentModelList.d.ts.map +1 -1
  107. package/dist/components/ContentModel/ContentModelList.js +65 -80
  108. package/dist/components/ContentModel/ContentModelList.js.map +1 -1
  109. package/dist/components/ContentModel/ContentTypeDetail.d.ts.map +1 -1
  110. package/dist/components/ContentModel/ContentTypeDetail.js +253 -280
  111. package/dist/components/ContentModel/ContentTypeDetail.js.map +1 -1
  112. package/dist/components/ContentModel/CreateContentTypeDialog.d.ts.map +1 -1
  113. package/dist/components/ContentModel/CreateContentTypeDialog.js +42 -30
  114. package/dist/components/ContentModel/CreateContentTypeDialog.js.map +1 -1
  115. package/dist/components/ContentModel/DeleteContentTypeDialog.d.ts.map +1 -1
  116. package/dist/components/ContentModel/DeleteContentTypeDialog.js +14 -15
  117. package/dist/components/ContentModel/DeleteContentTypeDialog.js.map +1 -1
  118. package/dist/components/ContentModel/DeleteFieldDialog.d.ts.map +1 -1
  119. package/dist/components/ContentModel/DeleteFieldDialog.js +27 -20
  120. package/dist/components/ContentModel/DeleteFieldDialog.js.map +1 -1
  121. package/dist/components/ContentModel/EditContentTypeDialog.d.ts.map +1 -1
  122. package/dist/components/ContentModel/EditContentTypeDialog.js +46 -34
  123. package/dist/components/ContentModel/EditContentTypeDialog.js.map +1 -1
  124. package/dist/components/ContentModel/FieldDialog.d.ts.map +1 -1
  125. package/dist/components/ContentModel/FieldDialog.js +95 -84
  126. package/dist/components/ContentModel/FieldDialog.js.map +1 -1
  127. package/dist/components/ContentModel/RichTextOptionsEditor.d.ts.map +1 -1
  128. package/dist/components/ContentModel/RichTextOptionsEditor.js +90 -81
  129. package/dist/components/ContentModel/RichTextOptionsEditor.js.map +1 -1
  130. package/dist/components/ContentModel/SchemaImpactList.d.ts.map +1 -1
  131. package/dist/components/ContentModel/SchemaImpactList.js +19 -36
  132. package/dist/components/ContentModel/SchemaImpactList.js.map +1 -1
  133. package/dist/components/ContentModel/SchemaOptionFieldInput.d.ts.map +1 -1
  134. package/dist/components/ContentModel/SchemaOptionFieldInput.js +63 -84
  135. package/dist/components/ContentModel/SchemaOptionFieldInput.js.map +1 -1
  136. package/dist/components/ContentModel/skeletons/ContentModelListPageSkeleton.d.ts +3 -0
  137. package/dist/components/ContentModel/skeletons/ContentModelListPageSkeleton.d.ts.map +1 -0
  138. package/dist/components/ContentModel/skeletons/ContentModelListPageSkeleton.js +15 -0
  139. package/dist/components/ContentModel/skeletons/ContentModelListPageSkeleton.js.map +1 -0
  140. package/dist/components/ContentModel/skeletons/ContentTypeDetailPageSkeleton.d.ts +3 -0
  141. package/dist/components/ContentModel/skeletons/ContentTypeDetailPageSkeleton.d.ts.map +1 -0
  142. package/dist/components/ContentModel/skeletons/ContentTypeDetailPageSkeleton.js +11 -0
  143. package/dist/components/ContentModel/skeletons/ContentTypeDetailPageSkeleton.js.map +1 -0
  144. package/dist/components/ContentModel/skeletons/FieldTableSkeleton.js +3 -3
  145. package/dist/components/ContentModel/skeletons/FieldTableSkeleton.js.map +1 -1
  146. package/dist/components/ContentModel/skeletons/SchemaTableSkeleton.d.ts.map +1 -1
  147. package/dist/components/ContentModel/skeletons/SchemaTableSkeleton.js +4 -12
  148. package/dist/components/ContentModel/skeletons/SchemaTableSkeleton.js.map +1 -1
  149. package/dist/components/Dashboard/DashboardContent.d.ts.map +1 -1
  150. package/dist/components/Dashboard/DashboardContent.js +87 -114
  151. package/dist/components/Dashboard/DashboardContent.js.map +1 -1
  152. package/dist/components/Dashboard/RecentPullRequests.d.ts.map +1 -1
  153. package/dist/components/Dashboard/RecentPullRequests.js +33 -45
  154. package/dist/components/Dashboard/RecentPullRequests.js.map +1 -1
  155. package/dist/components/Dashboard/skeletons/ContentPageChromeSkeleton.d.ts +2 -7
  156. package/dist/components/Dashboard/skeletons/ContentPageChromeSkeleton.d.ts.map +1 -1
  157. package/dist/components/Dashboard/skeletons/ContentPageChromeSkeleton.js +5 -20
  158. package/dist/components/Dashboard/skeletons/ContentPageChromeSkeleton.js.map +1 -1
  159. package/dist/components/Dashboard/skeletons/ContentTableSkeleton.js +9 -9
  160. package/dist/components/Dashboard/skeletons/ContentTableSkeleton.js.map +1 -1
  161. package/dist/components/Dashboard/skeletons/DashboardCollectionPageSkeleton.d.ts +3 -0
  162. package/dist/components/Dashboard/skeletons/DashboardCollectionPageSkeleton.d.ts.map +1 -0
  163. package/dist/components/Dashboard/skeletons/DashboardCollectionPageSkeleton.js +10 -0
  164. package/dist/components/Dashboard/skeletons/DashboardCollectionPageSkeleton.js.map +1 -0
  165. package/dist/components/Dashboard/skeletons/DashboardPageSkeleton.d.ts +9 -0
  166. package/dist/components/Dashboard/skeletons/DashboardPageSkeleton.d.ts.map +1 -0
  167. package/dist/components/Dashboard/skeletons/DashboardPageSkeleton.js +16 -0
  168. package/dist/components/Dashboard/skeletons/DashboardPageSkeleton.js.map +1 -0
  169. package/dist/components/Dashboard/skeletons/LeftPanelSkeleton.d.ts.map +1 -1
  170. package/dist/components/Dashboard/skeletons/LeftPanelSkeleton.js +7 -18
  171. package/dist/components/Dashboard/skeletons/LeftPanelSkeleton.js.map +1 -1
  172. package/dist/components/DiffView/DiffHunk.d.ts.map +1 -1
  173. package/dist/components/DiffView/DiffHunk.js +12 -40
  174. package/dist/components/DiffView/DiffHunk.js.map +1 -1
  175. package/dist/components/DiffView/DiffView.d.ts.map +1 -1
  176. package/dist/components/DiffView/DiffView.js +33 -52
  177. package/dist/components/DiffView/DiffView.js.map +1 -1
  178. package/dist/components/EditPost/EditPost.d.ts.map +1 -1
  179. package/dist/components/EditPost/EditPost.js +139 -200
  180. package/dist/components/EditPost/EditPost.js.map +1 -1
  181. package/dist/components/EditPost/skeletons/EditPostPageSkeleton.d.ts +3 -0
  182. package/dist/components/EditPost/skeletons/EditPostPageSkeleton.d.ts.map +1 -0
  183. package/dist/components/EditPost/skeletons/EditPostPageSkeleton.js +21 -0
  184. package/dist/components/EditPost/skeletons/EditPostPageSkeleton.js.map +1 -0
  185. package/dist/components/EditPost/skeletons/EntryFormSkeleton.d.ts.map +1 -1
  186. package/dist/components/EditPost/skeletons/EntryFormSkeleton.js +1 -9
  187. package/dist/components/EditPost/skeletons/EntryFormSkeleton.js.map +1 -1
  188. package/dist/components/EditPost/skeletons/EntrySidebarSkeleton.d.ts.map +1 -1
  189. package/dist/components/EditPost/skeletons/EntrySidebarSkeleton.js +12 -20
  190. package/dist/components/EditPost/skeletons/EntrySidebarSkeleton.js.map +1 -1
  191. package/dist/components/ErrorBoundary/ErrorBoundary.d.ts.map +1 -0
  192. package/dist/components/{ErrorBoundary.js → ErrorBoundary/ErrorBoundary.js} +15 -21
  193. package/dist/components/ErrorBoundary/ErrorBoundary.js.map +1 -0
  194. package/dist/components/HistorySection/HistorySection.d.ts.map +1 -1
  195. package/dist/components/HistorySection/HistorySection.js +23 -42
  196. package/dist/components/HistorySection/HistorySection.js.map +1 -1
  197. package/dist/components/InlineEntryEditor/InlineEntryEditor.d.ts.map +1 -1
  198. package/dist/components/InlineEntryEditor/InlineEntryEditor.js +120 -123
  199. package/dist/components/InlineEntryEditor/InlineEntryEditor.js.map +1 -1
  200. package/dist/components/Layout/BranchSelectorDialog.d.ts +9 -0
  201. package/dist/components/Layout/BranchSelectorDialog.d.ts.map +1 -0
  202. package/dist/components/Layout/BranchSelectorDialog.js +130 -0
  203. package/dist/components/Layout/BranchSelectorDialog.js.map +1 -0
  204. package/dist/components/Layout/CreateBranchDialog.d.ts.map +1 -0
  205. package/dist/components/{CreateBranchDialog.js → Layout/CreateBranchDialog.js} +16 -16
  206. package/dist/components/Layout/CreateBranchDialog.js.map +1 -0
  207. package/dist/components/Layout/Layout.d.ts.map +1 -1
  208. package/dist/components/Layout/Layout.js +18 -26
  209. package/dist/components/Layout/Layout.js.map +1 -1
  210. package/dist/components/Layout/LeftNavItem.d.ts.map +1 -1
  211. package/dist/components/Layout/LeftNavItem.js +7 -7
  212. package/dist/components/Layout/LeftNavItem.js.map +1 -1
  213. package/dist/components/Layout/Page.d.ts +16 -0
  214. package/dist/components/Layout/Page.d.ts.map +1 -0
  215. package/dist/components/Layout/Page.js +47 -0
  216. package/dist/components/Layout/Page.js.map +1 -0
  217. package/dist/components/Layout/TopHeader.d.ts +1 -1
  218. package/dist/components/Layout/TopHeader.d.ts.map +1 -1
  219. package/dist/components/Layout/TopHeader.js +70 -165
  220. package/dist/components/Layout/TopHeader.js.map +1 -1
  221. package/dist/components/Layout/UserAccountDialog.d.ts +12 -0
  222. package/dist/components/Layout/UserAccountDialog.d.ts.map +1 -0
  223. package/dist/components/Layout/UserAccountDialog.js +48 -0
  224. package/dist/components/Layout/UserAccountDialog.js.map +1 -0
  225. package/dist/components/Layout/skeletons/AgentNavSkeleton.js +1 -1
  226. package/dist/components/Layout/skeletons/AgentNavSkeleton.js.map +1 -1
  227. package/dist/components/Layout/skeletons/BranchChipSkeleton.d.ts.map +1 -1
  228. package/dist/components/Layout/skeletons/BranchChipSkeleton.js +1 -8
  229. package/dist/components/Layout/skeletons/BranchChipSkeleton.js.map +1 -1
  230. package/dist/components/Layout/skeletons/NeutralPageSkeleton.d.ts +3 -0
  231. package/dist/components/Layout/skeletons/NeutralPageSkeleton.d.ts.map +1 -0
  232. package/dist/components/Layout/skeletons/NeutralPageSkeleton.js +11 -0
  233. package/dist/components/Layout/skeletons/NeutralPageSkeleton.js.map +1 -0
  234. package/dist/components/Layout/skeletons/PageChromeSkeleton.d.ts +19 -0
  235. package/dist/components/Layout/skeletons/PageChromeSkeleton.d.ts.map +1 -0
  236. package/dist/components/Layout/skeletons/PageChromeSkeleton.js +31 -0
  237. package/dist/components/Layout/skeletons/PageChromeSkeleton.js.map +1 -0
  238. package/dist/components/Layout/skeletons/RouteMainSlotSkeleton.d.ts +9 -0
  239. package/dist/components/Layout/skeletons/RouteMainSlotSkeleton.d.ts.map +1 -0
  240. package/dist/components/Layout/skeletons/RouteMainSlotSkeleton.js +15 -0
  241. package/dist/components/Layout/skeletons/RouteMainSlotSkeleton.js.map +1 -0
  242. package/dist/components/Layout/skeletons/TopHeaderSkeleton.d.ts.map +1 -1
  243. package/dist/components/Layout/skeletons/TopHeaderSkeleton.js +10 -17
  244. package/dist/components/Layout/skeletons/TopHeaderSkeleton.js.map +1 -1
  245. package/dist/components/Layout/skeletons/routeSkeletons.d.ts +16 -0
  246. package/dist/components/Layout/skeletons/routeSkeletons.d.ts.map +1 -0
  247. package/dist/components/Layout/skeletons/routeSkeletons.js +48 -0
  248. package/dist/components/Layout/skeletons/routeSkeletons.js.map +1 -0
  249. package/dist/components/LinkedBySection/LinkedBySection.js +13 -13
  250. package/dist/components/LinkedBySection/LinkedBySection.js.map +1 -1
  251. package/dist/components/MediaAsset/MediaAsset.d.ts +1 -1
  252. package/dist/components/MediaAsset/MediaAsset.d.ts.map +1 -1
  253. package/dist/components/MediaAsset/MediaAsset.js +126 -136
  254. package/dist/components/MediaAsset/MediaAsset.js.map +1 -1
  255. package/dist/components/MediaAsset/skeletons/MediaAssetPageSkeleton.d.ts +3 -0
  256. package/dist/components/MediaAsset/skeletons/MediaAssetPageSkeleton.d.ts.map +1 -0
  257. package/dist/components/MediaAsset/skeletons/MediaAssetPageSkeleton.js +21 -0
  258. package/dist/components/MediaAsset/skeletons/MediaAssetPageSkeleton.js.map +1 -0
  259. package/dist/components/MediaAsset/skeletons/MediaMetadataFormSkeleton.d.ts.map +1 -1
  260. package/dist/components/MediaAsset/skeletons/MediaMetadataFormSkeleton.js +26 -22
  261. package/dist/components/MediaAsset/skeletons/MediaMetadataFormSkeleton.js.map +1 -1
  262. package/dist/components/MediaAsset/skeletons/MediaPreviewSkeleton.d.ts.map +1 -1
  263. package/dist/components/MediaAsset/skeletons/MediaPreviewSkeleton.js +1 -9
  264. package/dist/components/MediaAsset/skeletons/MediaPreviewSkeleton.js.map +1 -1
  265. package/dist/components/MediaManager/CreateFolderDialog.d.ts.map +1 -1
  266. package/dist/components/MediaManager/CreateFolderDialog.js +15 -8
  267. package/dist/components/MediaManager/CreateFolderDialog.js.map +1 -1
  268. package/dist/components/MediaManager/DeleteFolderDialog.d.ts.map +1 -1
  269. package/dist/components/MediaManager/DeleteFolderDialog.js +1 -2
  270. package/dist/components/MediaManager/DeleteFolderDialog.js.map +1 -1
  271. package/dist/components/MediaManager/MarkdownImageEditToolbar.d.ts.map +1 -1
  272. package/dist/components/MediaManager/MarkdownImageEditToolbar.js +7 -9
  273. package/dist/components/MediaManager/MarkdownImageEditToolbar.js.map +1 -1
  274. package/dist/components/MediaManager/MarkdownInsertImageDialog.d.ts.map +1 -1
  275. package/dist/components/MediaManager/MarkdownInsertImageDialog.js +6 -9
  276. package/dist/components/MediaManager/MarkdownInsertImageDialog.js.map +1 -1
  277. package/dist/components/MediaManager/MediaLeftPanel.d.ts.map +1 -1
  278. package/dist/components/MediaManager/MediaLeftPanel.js +21 -23
  279. package/dist/components/MediaManager/MediaLeftPanel.js.map +1 -1
  280. package/dist/components/MediaManager/MediaListTable.d.ts.map +1 -1
  281. package/dist/components/MediaManager/MediaListTable.js +15 -21
  282. package/dist/components/MediaManager/MediaListTable.js.map +1 -1
  283. package/dist/components/MediaManager/MediaManager.d.ts.map +1 -1
  284. package/dist/components/MediaManager/MediaManager.js +101 -151
  285. package/dist/components/MediaManager/MediaManager.js.map +1 -1
  286. package/dist/components/MediaManager/MediaSelectDialog.js +22 -64
  287. package/dist/components/MediaManager/MediaSelectDialog.js.map +1 -1
  288. package/dist/components/MediaManager/MediaUploadBar.d.ts.map +1 -1
  289. package/dist/components/MediaManager/MediaUploadBar.js +9 -10
  290. package/dist/components/MediaManager/MediaUploadBar.js.map +1 -1
  291. package/dist/components/MediaManager/MediaUploadDialog.d.ts.map +1 -1
  292. package/dist/components/MediaManager/MediaUploadDialog.js +18 -11
  293. package/dist/components/MediaManager/MediaUploadDialog.js.map +1 -1
  294. package/dist/components/MediaManager/MediaViewModeSwitcher.d.ts +8 -0
  295. package/dist/components/MediaManager/MediaViewModeSwitcher.d.ts.map +1 -0
  296. package/dist/components/MediaManager/MediaViewModeSwitcher.js +14 -0
  297. package/dist/components/MediaManager/MediaViewModeSwitcher.js.map +1 -0
  298. package/dist/components/MediaManager/skeletons/MediaGridSkeleton.d.ts.map +1 -1
  299. package/dist/components/MediaManager/skeletons/MediaGridSkeleton.js +4 -12
  300. package/dist/components/MediaManager/skeletons/MediaGridSkeleton.js.map +1 -1
  301. package/dist/components/MediaManager/skeletons/MediaLeftPanelSkeleton.d.ts.map +1 -1
  302. package/dist/components/MediaManager/skeletons/MediaLeftPanelSkeleton.js +5 -13
  303. package/dist/components/MediaManager/skeletons/MediaLeftPanelSkeleton.js.map +1 -1
  304. package/dist/components/MediaManager/skeletons/MediaListTableSkeleton.d.ts.map +1 -1
  305. package/dist/components/MediaManager/skeletons/MediaListTableSkeleton.js +7 -15
  306. package/dist/components/MediaManager/skeletons/MediaListTableSkeleton.js.map +1 -1
  307. package/dist/components/MediaManager/skeletons/MediaManagerMainSkeleton.d.ts +3 -0
  308. package/dist/components/MediaManager/skeletons/MediaManagerMainSkeleton.d.ts.map +1 -0
  309. package/dist/components/MediaManager/skeletons/MediaManagerMainSkeleton.js +15 -0
  310. package/dist/components/MediaManager/skeletons/MediaManagerMainSkeleton.js.map +1 -0
  311. package/dist/components/MediaManager/skeletons/MediaManagerPageSkeleton.d.ts +3 -0
  312. package/dist/components/MediaManager/skeletons/MediaManagerPageSkeleton.d.ts.map +1 -0
  313. package/dist/components/MediaManager/skeletons/MediaManagerPageSkeleton.js +21 -0
  314. package/dist/components/MediaManager/skeletons/MediaManagerPageSkeleton.js.map +1 -0
  315. package/dist/components/public/MarkdownContent.d.ts.map +1 -1
  316. package/dist/components/public/MarkdownContent.js +1 -2
  317. package/dist/components/public/MarkdownContent.js.map +1 -1
  318. package/dist/components/public/RichTextContent.d.ts.map +1 -1
  319. package/dist/components/public/RichTextContent.js +19 -8
  320. package/dist/components/public/RichTextContent.js.map +1 -1
  321. package/dist/components/public/SearchBox.d.ts.map +1 -1
  322. package/dist/components/public/SearchBox.js +32 -60
  323. package/dist/components/public/SearchBox.js.map +1 -1
  324. package/dist/components/public/index.cjs +6 -413
  325. package/dist/components/public/index.cjs.map +1 -1
  326. package/dist/components/skeletons/MainSlotSkeleton.d.ts +0 -7
  327. package/dist/components/skeletons/MainSlotSkeleton.d.ts.map +1 -1
  328. package/dist/components/skeletons/MainSlotSkeleton.js +4 -17
  329. package/dist/components/skeletons/MainSlotSkeleton.js.map +1 -1
  330. package/dist/components/skeletons/blocks.d.ts.map +1 -1
  331. package/dist/components/skeletons/blocks.js +15 -7
  332. package/dist/components/skeletons/blocks.js.map +1 -1
  333. package/dist/components/skeletons/index.d.ts +4 -4
  334. package/dist/components/skeletons/index.d.ts.map +1 -1
  335. package/dist/components/skeletons/index.js +1 -2
  336. package/dist/components/skeletons/index.js.map +1 -1
  337. package/dist/components/skeletons/primitives.d.ts +2 -2
  338. package/dist/components/skeletons/primitives.d.ts.map +1 -1
  339. package/dist/components/skeletons/primitives.js +3 -3
  340. package/dist/components/skeletons/primitives.js.map +1 -1
  341. package/dist/components/test/dndTestUtils.d.ts +7 -0
  342. package/dist/components/test/dndTestUtils.d.ts.map +1 -0
  343. package/dist/components/test/dndTestUtils.js +15 -0
  344. package/dist/components/test/dndTestUtils.js.map +1 -0
  345. package/dist/components/ui/Avatar/Avatar.d.ts +5 -0
  346. package/dist/components/ui/Avatar/Avatar.d.ts.map +1 -0
  347. package/dist/components/ui/Avatar/Avatar.js +63 -0
  348. package/dist/components/ui/Avatar/Avatar.js.map +1 -0
  349. package/dist/components/ui/{branch-chip.d.ts → BranchChip/BranchChip.d.ts} +2 -5
  350. package/dist/components/ui/BranchChip/BranchChip.d.ts.map +1 -0
  351. package/dist/components/ui/BranchChip/BranchChip.js +47 -0
  352. package/dist/components/ui/BranchChip/BranchChip.js.map +1 -0
  353. package/dist/components/ui/Button/Button.d.ts +15 -0
  354. package/dist/components/ui/Button/Button.d.ts.map +1 -0
  355. package/dist/components/ui/Button/Button.js +49 -0
  356. package/dist/components/ui/Button/Button.js.map +1 -0
  357. package/dist/components/ui/Card/Card.d.ts +6 -0
  358. package/dist/components/ui/Card/Card.d.ts.map +1 -0
  359. package/dist/components/ui/{card.js → Card/Card.js} +12 -22
  360. package/dist/components/ui/Card/Card.js.map +1 -0
  361. package/dist/components/ui/{chip.d.ts → Chip/Chip.d.ts} +1 -1
  362. package/dist/components/ui/Chip/Chip.d.ts.map +1 -0
  363. package/dist/components/ui/Chip/Chip.js +24 -0
  364. package/dist/components/ui/Chip/Chip.js.map +1 -0
  365. package/dist/components/ui/Dialog/Dialog.d.ts +32 -0
  366. package/dist/components/ui/Dialog/Dialog.d.ts.map +1 -0
  367. package/dist/components/ui/Dialog/Dialog.js +194 -0
  368. package/dist/components/ui/Dialog/Dialog.js.map +1 -0
  369. package/dist/components/ui/DropdownMenu/DropdownMenu.d.ts +66 -0
  370. package/dist/components/ui/DropdownMenu/DropdownMenu.d.ts.map +1 -0
  371. package/dist/components/ui/DropdownMenu/DropdownMenu.js +308 -0
  372. package/dist/components/ui/DropdownMenu/DropdownMenu.js.map +1 -0
  373. package/dist/components/ui/{field.d.ts → FormField/Field.d.ts} +1 -1
  374. package/dist/components/ui/FormField/Field.d.ts.map +1 -0
  375. package/dist/components/ui/FormField/Field.js +41 -0
  376. package/dist/components/ui/FormField/Field.js.map +1 -0
  377. package/dist/components/{FieldShell.d.ts → ui/FormField/FieldShell.d.ts} +2 -2
  378. package/dist/components/ui/FormField/FieldShell.d.ts.map +1 -0
  379. package/dist/components/ui/FormField/FieldShell.js +29 -0
  380. package/dist/components/ui/FormField/FieldShell.js.map +1 -0
  381. package/dist/components/ui/FormField/FormBooleanField.d.ts.map +1 -0
  382. package/dist/components/ui/FormField/FormBooleanField.js +56 -0
  383. package/dist/components/ui/FormField/FormBooleanField.js.map +1 -0
  384. package/dist/components/ui/FormField/FormColorField.d.ts.map +1 -0
  385. package/dist/components/{FormColorField.js → ui/FormField/FormColorField.js} +10 -13
  386. package/dist/components/ui/FormField/FormColorField.js.map +1 -0
  387. package/dist/components/{FormConditionalField.d.ts → ui/FormField/FormConditionalField.d.ts} +1 -1
  388. package/dist/components/ui/FormField/FormConditionalField.d.ts.map +1 -0
  389. package/dist/components/{FormConditionalField.js → ui/FormField/FormConditionalField.js} +61 -58
  390. package/dist/components/ui/FormField/FormConditionalField.js.map +1 -0
  391. package/dist/components/ui/FormField/FormDatetimeField.d.ts.map +1 -0
  392. package/dist/components/ui/FormField/FormDatetimeField.js +48 -0
  393. package/dist/components/ui/FormField/FormDatetimeField.js.map +1 -0
  394. package/dist/components/{FormFields.d.ts → ui/FormField/FormFields.d.ts} +1 -1
  395. package/dist/components/ui/FormField/FormFields.d.ts.map +1 -0
  396. package/dist/components/{FormFields.js → ui/FormField/FormFields.js} +6 -6
  397. package/dist/components/ui/FormField/FormFields.js.map +1 -0
  398. package/dist/components/{FormImageField.d.ts → ui/FormField/FormImageField.d.ts} +1 -1
  399. package/dist/components/ui/FormField/FormImageField.d.ts.map +1 -0
  400. package/dist/components/{FormImageField.js → ui/FormField/FormImageField.js} +25 -30
  401. package/dist/components/ui/FormField/FormImageField.js.map +1 -0
  402. package/dist/components/ui/FormField/FormJsonField.d.ts.map +1 -0
  403. package/dist/components/{FormJsonField.js → ui/FormField/FormJsonField.js} +7 -10
  404. package/dist/components/ui/FormField/FormJsonField.js.map +1 -0
  405. package/dist/components/ui/FormField/FormMarkdownField.d.ts.map +1 -0
  406. package/dist/components/{FormMarkdownField.js → ui/FormField/FormMarkdownField.js} +11 -20
  407. package/dist/components/ui/FormField/FormMarkdownField.js.map +1 -0
  408. package/dist/components/ui/FormField/FormNumberField.d.ts.map +1 -0
  409. package/dist/components/ui/FormField/FormNumberField.js +38 -0
  410. package/dist/components/ui/FormField/FormNumberField.js.map +1 -0
  411. package/dist/components/{FormReferenceField.d.ts → ui/FormField/FormReferenceField.d.ts} +1 -1
  412. package/dist/components/ui/FormField/FormReferenceField.d.ts.map +1 -0
  413. package/dist/components/{FormReferenceField.js → ui/FormField/FormReferenceField.js} +109 -118
  414. package/dist/components/ui/FormField/FormReferenceField.js.map +1 -0
  415. package/dist/components/{FormRichTextField.d.ts → ui/FormField/FormRichTextField.d.ts} +1 -1
  416. package/dist/components/ui/FormField/FormRichTextField.d.ts.map +1 -0
  417. package/dist/components/{FormRichTextField.js → ui/FormField/FormRichTextField.js} +28 -33
  418. package/dist/components/ui/FormField/FormRichTextField.js.map +1 -0
  419. package/dist/components/{FormSelectField.d.ts → ui/FormField/FormSelectField.d.ts} +1 -1
  420. package/dist/components/ui/FormField/FormSelectField.d.ts.map +1 -0
  421. package/dist/components/{FormSelectField.js → ui/FormField/FormSelectField.js} +11 -23
  422. package/dist/components/ui/FormField/FormSelectField.js.map +1 -0
  423. package/dist/components/ui/FormField/FormSlugField.d.ts.map +1 -0
  424. package/dist/components/{FormSlugField.js → ui/FormField/FormSlugField.js} +21 -26
  425. package/dist/components/ui/FormField/FormSlugField.js.map +1 -0
  426. package/dist/components/ui/FormField/FormStringField.d.ts.map +1 -0
  427. package/dist/components/ui/FormField/FormStringField.js +23 -0
  428. package/dist/components/ui/FormField/FormStringField.js.map +1 -0
  429. package/dist/components/ui/FormField/FormStringListField.d.ts.map +1 -0
  430. package/dist/components/{FormStringListField.js → ui/FormField/FormStringListField.js} +14 -25
  431. package/dist/components/ui/FormField/FormStringListField.js.map +1 -0
  432. package/dist/components/ui/FormField/FormTextField.d.ts.map +1 -0
  433. package/dist/components/ui/FormField/FormTextField.js +35 -0
  434. package/dist/components/ui/FormField/FormTextField.js.map +1 -0
  435. package/dist/components/ui/FormField/FormUrlField.d.ts.map +1 -0
  436. package/dist/components/ui/FormField/FormUrlField.js +26 -0
  437. package/dist/components/ui/FormField/FormUrlField.js.map +1 -0
  438. package/dist/components/{richtext → ui/FormField/richtext}/ComponentEmbedEditor.d.ts +1 -1
  439. package/dist/components/ui/FormField/richtext/ComponentEmbedEditor.d.ts.map +1 -0
  440. package/dist/components/ui/FormField/richtext/ComponentEmbedEditor.js +165 -0
  441. package/dist/components/ui/FormField/richtext/ComponentEmbedEditor.js.map +1 -0
  442. package/dist/components/ui/FormField/richtext/ConditionEmbedEditor.d.ts.map +1 -0
  443. package/dist/components/{richtext → ui/FormField/richtext}/ConditionEmbedEditor.js +25 -39
  444. package/dist/components/ui/FormField/richtext/ConditionEmbedEditor.js.map +1 -0
  445. package/dist/components/ui/FormField/richtext/ImageEmbedEditor.d.ts.map +1 -0
  446. package/dist/components/{richtext → ui/FormField/richtext}/ImageEmbedEditor.js +77 -56
  447. package/dist/components/ui/FormField/richtext/ImageEmbedEditor.js.map +1 -0
  448. package/dist/components/ui/FormField/richtext/ReferenceEmbedEditor.d.ts.map +1 -0
  449. package/dist/components/{richtext → ui/FormField/richtext}/ReferenceEmbedEditor.js +55 -43
  450. package/dist/components/ui/FormField/richtext/ReferenceEmbedEditor.js.map +1 -0
  451. package/dist/components/ui/FormField/richtext/SlashCommandMenu.d.ts.map +1 -0
  452. package/dist/components/{richtext → ui/FormField/richtext}/SlashCommandMenu.js +21 -33
  453. package/dist/components/ui/FormField/richtext/SlashCommandMenu.js.map +1 -0
  454. package/dist/components/ui/FormField/richtext/VariableEmbedEditor.d.ts.map +1 -0
  455. package/dist/components/ui/FormField/richtext/VariableEmbedEditor.js +61 -0
  456. package/dist/components/ui/FormField/richtext/VariableEmbedEditor.js.map +1 -0
  457. package/dist/components/ui/Icon/Icon.d.ts +77 -0
  458. package/dist/components/ui/Icon/Icon.d.ts.map +1 -0
  459. package/dist/components/ui/Icon/Icon.js +618 -0
  460. package/dist/components/ui/Icon/Icon.js.map +1 -0
  461. package/dist/components/ui/{input.d.ts → Input/Input.d.ts} +1 -1
  462. package/dist/components/ui/Input/Input.d.ts.map +1 -0
  463. package/dist/components/ui/Input/Input.js +25 -0
  464. package/dist/components/ui/Input/Input.js.map +1 -0
  465. package/dist/components/ui/{kbd.d.ts → Kbd/Kbd.d.ts} +1 -1
  466. package/dist/components/ui/Kbd/Kbd.d.ts.map +1 -0
  467. package/dist/components/ui/Kbd/Kbd.js +19 -0
  468. package/dist/components/ui/Kbd/Kbd.js.map +1 -0
  469. package/dist/components/ui/Label/Label.d.ts +3 -0
  470. package/dist/components/ui/Label/Label.d.ts.map +1 -0
  471. package/dist/components/ui/Label/Label.js +20 -0
  472. package/dist/components/ui/Label/Label.js.map +1 -0
  473. package/dist/components/ui/Portal/Portal.d.ts +8 -0
  474. package/dist/components/ui/Portal/Portal.d.ts.map +1 -0
  475. package/dist/components/ui/Portal/Portal.js +14 -0
  476. package/dist/components/ui/Portal/Portal.js.map +1 -0
  477. package/dist/components/ui/Select/Select.d.ts +33 -0
  478. package/dist/components/ui/Select/Select.d.ts.map +1 -0
  479. package/dist/components/ui/Select/Select.js +280 -0
  480. package/dist/components/ui/Select/Select.js.map +1 -0
  481. package/dist/components/ui/Slot/Slot.d.ts +6 -0
  482. package/dist/components/ui/Slot/Slot.d.ts.map +1 -0
  483. package/dist/components/ui/Slot/Slot.js +39 -0
  484. package/dist/components/ui/Slot/Slot.js.map +1 -0
  485. package/dist/components/ui/{status-badge.d.ts → StatusBadge/StatusBadge.d.ts} +2 -2
  486. package/dist/components/ui/StatusBadge/StatusBadge.d.ts.map +1 -0
  487. package/dist/components/ui/{status-badge.js → StatusBadge/StatusBadge.js} +8 -9
  488. package/dist/components/ui/StatusBadge/StatusBadge.js.map +1 -0
  489. package/dist/components/ui/Switcher/Switcher.d.ts +9 -0
  490. package/dist/components/ui/Switcher/Switcher.d.ts.map +1 -0
  491. package/dist/components/ui/Switcher/Switcher.js +75 -0
  492. package/dist/components/ui/Switcher/Switcher.js.map +1 -0
  493. package/dist/components/ui/{table.d.ts → Table/Table.d.ts} +1 -1
  494. package/dist/components/ui/Table/Table.d.ts.map +1 -0
  495. package/dist/components/ui/{table.js → Table/Table.js} +11 -29
  496. package/dist/components/ui/Table/Table.js.map +1 -0
  497. package/dist/components/ui/Tabs/Tabs.d.ts +16 -0
  498. package/dist/components/ui/Tabs/Tabs.d.ts.map +1 -0
  499. package/dist/components/ui/Tabs/Tabs.js +96 -0
  500. package/dist/components/ui/Tabs/Tabs.js.map +1 -0
  501. package/dist/components/ui/{textarea.d.ts → Textarea/Textarea.d.ts} +1 -1
  502. package/dist/components/ui/Textarea/Textarea.d.ts.map +1 -0
  503. package/dist/components/ui/Textarea/Textarea.js +16 -0
  504. package/dist/components/ui/Textarea/Textarea.js.map +1 -0
  505. package/dist/components/ui/Toast/Toast.d.ts +21 -0
  506. package/dist/components/ui/Toast/Toast.d.ts.map +1 -0
  507. package/dist/components/ui/Toast/Toast.js +98 -0
  508. package/dist/components/ui/Toast/Toast.js.map +1 -0
  509. package/dist/components/ui/{toaster.d.ts → Toaster/Toaster.d.ts} +1 -1
  510. package/dist/components/ui/Toaster/Toaster.d.ts.map +1 -0
  511. package/dist/components/ui/Toaster/Toaster.js +27 -0
  512. package/dist/components/ui/Toaster/Toaster.js.map +1 -0
  513. package/dist/components/ui/index.d.ts +45 -31
  514. package/dist/components/ui/index.d.ts.map +1 -1
  515. package/dist/components/ui/index.js +76 -36
  516. package/dist/components/ui/index.js.map +1 -1
  517. package/dist/config.cjs +4 -99
  518. package/dist/config.cjs.map +1 -1
  519. package/dist/defineConfig.cjs +0 -2
  520. package/dist/defineConfig.cjs.map +1 -1
  521. package/dist/globals.css +9648 -430
  522. package/dist/hooks/useComposedRefs.d.ts +5 -0
  523. package/dist/hooks/useComposedRefs.d.ts.map +1 -0
  524. package/dist/hooks/useComposedRefs.js +23 -0
  525. package/dist/hooks/useComposedRefs.js.map +1 -0
  526. package/dist/hooks/useControllableState.d.ts +8 -0
  527. package/dist/hooks/useControllableState.d.ts.map +1 -0
  528. package/dist/hooks/useControllableState.js +28 -0
  529. package/dist/hooks/useControllableState.js.map +1 -0
  530. package/dist/hooks/usePopoverContent.d.ts +26 -0
  531. package/dist/hooks/usePopoverContent.d.ts.map +1 -0
  532. package/dist/hooks/usePopoverContent.js +44 -0
  533. package/dist/hooks/usePopoverContent.js.map +1 -0
  534. package/dist/hooks/useToast.d.ts +4 -4
  535. package/dist/hooks/useToast.d.ts.map +1 -1
  536. package/dist/hooks/useToast.js +1 -3
  537. package/dist/hooks/useToast.js.map +1 -1
  538. package/dist/index.cjs +11 -9506
  539. package/dist/index.cjs.map +1 -1
  540. package/dist/{init-KWH66PKY.js → init-KNIWQGJL.js} +3 -18
  541. package/dist/init-KNIWQGJL.js.map +1 -0
  542. package/dist/lib/configStore.cjs +1 -3
  543. package/dist/lib/configStore.cjs.map +1 -1
  544. package/dist/lib/slugField.d.ts.map +1 -1
  545. package/dist/lib/slugField.js +3 -3
  546. package/dist/lib/slugField.js.map +1 -1
  547. package/dist/lib/slugify.d.ts +13 -0
  548. package/dist/lib/slugify.d.ts.map +1 -0
  549. package/dist/lib/slugify.js +8 -0
  550. package/dist/lib/slugify.js.map +1 -0
  551. package/dist/lib/utils.d.ts +5 -9
  552. package/dist/lib/utils.d.ts.map +1 -1
  553. package/dist/lib/utils.js +29 -3
  554. package/dist/lib/utils.js.map +1 -1
  555. package/dist/query.cjs +58 -9011
  556. package/dist/query.cjs.map +1 -1
  557. package/dist/types.cjs +0 -2
  558. package/dist/types.cjs.map +1 -1
  559. package/dist/types.d.ts +3 -1
  560. package/dist/types.d.ts.map +1 -1
  561. package/dist/{update-QNJRYPMC.js → update-QALIQG76.js} +2 -2
  562. package/dist/withOctoCMS.cjs +2 -36
  563. package/dist/withOctoCMS.cjs.map +1 -1
  564. package/globals.css +9648 -430
  565. package/package.json +1 -16
  566. package/dist/chunk-NAHOP7TG.js +0 -7
  567. package/dist/components/ContentModel/ContentModelList.skeleton.d.ts +0 -5
  568. package/dist/components/ContentModel/ContentModelList.skeleton.d.ts.map +0 -1
  569. package/dist/components/ContentModel/ContentModelList.skeleton.js +0 -16
  570. package/dist/components/ContentModel/ContentModelList.skeleton.js.map +0 -1
  571. package/dist/components/ContentModel/ContentTypeDetail.skeleton.d.ts +0 -5
  572. package/dist/components/ContentModel/ContentTypeDetail.skeleton.d.ts.map +0 -1
  573. package/dist/components/ContentModel/ContentTypeDetail.skeleton.js +0 -22
  574. package/dist/components/ContentModel/ContentTypeDetail.skeleton.js.map +0 -1
  575. package/dist/components/ContentTypes.d.ts +0 -7
  576. package/dist/components/ContentTypes.d.ts.map +0 -1
  577. package/dist/components/ContentTypes.js +0 -132
  578. package/dist/components/ContentTypes.js.map +0 -1
  579. package/dist/components/CreateBranchDialog.d.ts.map +0 -1
  580. package/dist/components/CreateBranchDialog.js.map +0 -1
  581. package/dist/components/Dashboard/DashboardContent.collection.skeleton.d.ts +0 -3
  582. package/dist/components/Dashboard/DashboardContent.collection.skeleton.d.ts.map +0 -1
  583. package/dist/components/Dashboard/DashboardContent.collection.skeleton.js +0 -10
  584. package/dist/components/Dashboard/DashboardContent.collection.skeleton.js.map +0 -1
  585. package/dist/components/Dashboard/DashboardContent.list.skeleton.d.ts +0 -7
  586. package/dist/components/Dashboard/DashboardContent.list.skeleton.d.ts.map +0 -1
  587. package/dist/components/Dashboard/DashboardContent.list.skeleton.js +0 -22
  588. package/dist/components/Dashboard/DashboardContent.list.skeleton.js.map +0 -1
  589. package/dist/components/Dashboard/DashboardContent.skeleton.d.ts +0 -2
  590. package/dist/components/Dashboard/DashboardContent.skeleton.d.ts.map +0 -1
  591. package/dist/components/Dashboard/DashboardContent.skeleton.js +0 -13
  592. package/dist/components/Dashboard/DashboardContent.skeleton.js.map +0 -1
  593. package/dist/components/EditPost/EditPost.skeleton.d.ts +0 -5
  594. package/dist/components/EditPost/EditPost.skeleton.d.ts.map +0 -1
  595. package/dist/components/EditPost/EditPost.skeleton.js +0 -34
  596. package/dist/components/EditPost/EditPost.skeleton.js.map +0 -1
  597. package/dist/components/ErrorBoundary.d.ts.map +0 -1
  598. package/dist/components/ErrorBoundary.js.map +0 -1
  599. package/dist/components/FieldHintAndError.d.ts +0 -8
  600. package/dist/components/FieldHintAndError.d.ts.map +0 -1
  601. package/dist/components/FieldHintAndError.js +0 -14
  602. package/dist/components/FieldHintAndError.js.map +0 -1
  603. package/dist/components/FieldLabel.d.ts +0 -11
  604. package/dist/components/FieldLabel.d.ts.map +0 -1
  605. package/dist/components/FieldLabel.js +0 -17
  606. package/dist/components/FieldLabel.js.map +0 -1
  607. package/dist/components/FieldShell.d.ts.map +0 -1
  608. package/dist/components/FieldShell.js +0 -29
  609. package/dist/components/FieldShell.js.map +0 -1
  610. package/dist/components/FileExplorer/FileExplorer.d.ts +0 -8
  611. package/dist/components/FileExplorer/FileExplorer.d.ts.map +0 -1
  612. package/dist/components/FileExplorer/FileExplorer.js +0 -68
  613. package/dist/components/FileExplorer/FileExplorer.js.map +0 -1
  614. package/dist/components/FormBooleanField.d.ts.map +0 -1
  615. package/dist/components/FormBooleanField.js +0 -52
  616. package/dist/components/FormBooleanField.js.map +0 -1
  617. package/dist/components/FormColorField.d.ts.map +0 -1
  618. package/dist/components/FormColorField.js.map +0 -1
  619. package/dist/components/FormConditionalField.d.ts.map +0 -1
  620. package/dist/components/FormConditionalField.js.map +0 -1
  621. package/dist/components/FormDatetimeField.d.ts.map +0 -1
  622. package/dist/components/FormDatetimeField.js +0 -42
  623. package/dist/components/FormDatetimeField.js.map +0 -1
  624. package/dist/components/FormFields.d.ts.map +0 -1
  625. package/dist/components/FormFields.js.map +0 -1
  626. package/dist/components/FormImageField.d.ts.map +0 -1
  627. package/dist/components/FormImageField.js.map +0 -1
  628. package/dist/components/FormJsonField.d.ts.map +0 -1
  629. package/dist/components/FormJsonField.js.map +0 -1
  630. package/dist/components/FormMarkdownField.d.ts.map +0 -1
  631. package/dist/components/FormMarkdownField.js.map +0 -1
  632. package/dist/components/FormNumberField.d.ts.map +0 -1
  633. package/dist/components/FormNumberField.js +0 -43
  634. package/dist/components/FormNumberField.js.map +0 -1
  635. package/dist/components/FormReferenceField.d.ts.map +0 -1
  636. package/dist/components/FormReferenceField.js.map +0 -1
  637. package/dist/components/FormRichTextField.d.ts.map +0 -1
  638. package/dist/components/FormRichTextField.js.map +0 -1
  639. package/dist/components/FormSelectField.d.ts.map +0 -1
  640. package/dist/components/FormSelectField.js.map +0 -1
  641. package/dist/components/FormSlugField.d.ts.map +0 -1
  642. package/dist/components/FormSlugField.js.map +0 -1
  643. package/dist/components/FormStringField.d.ts.map +0 -1
  644. package/dist/components/FormStringField.js +0 -28
  645. package/dist/components/FormStringField.js.map +0 -1
  646. package/dist/components/FormStringListField.d.ts.map +0 -1
  647. package/dist/components/FormStringListField.js.map +0 -1
  648. package/dist/components/FormTextField.d.ts.map +0 -1
  649. package/dist/components/FormTextField.js +0 -40
  650. package/dist/components/FormTextField.js.map +0 -1
  651. package/dist/components/FormUrlField.d.ts.map +0 -1
  652. package/dist/components/FormUrlField.js +0 -31
  653. package/dist/components/FormUrlField.js.map +0 -1
  654. package/dist/components/Layout/PageBar.d.ts +0 -10
  655. package/dist/components/Layout/PageBar.d.ts.map +0 -1
  656. package/dist/components/Layout/PageBar.js +0 -43
  657. package/dist/components/Layout/PageBar.js.map +0 -1
  658. package/dist/components/Layout/PageShell.d.ts +0 -30
  659. package/dist/components/Layout/PageShell.d.ts.map +0 -1
  660. package/dist/components/Layout/PageShell.js +0 -33
  661. package/dist/components/Layout/PageShell.js.map +0 -1
  662. package/dist/components/MediaAsset/MediaAsset.skeleton.d.ts +0 -3
  663. package/dist/components/MediaAsset/MediaAsset.skeleton.d.ts.map +0 -1
  664. package/dist/components/MediaAsset/MediaAsset.skeleton.js +0 -42
  665. package/dist/components/MediaAsset/MediaAsset.skeleton.js.map +0 -1
  666. package/dist/components/MediaManager/MediaManager.skeleton.d.ts +0 -3
  667. package/dist/components/MediaManager/MediaManager.skeleton.d.ts.map +0 -1
  668. package/dist/components/MediaManager/MediaManager.skeleton.js +0 -30
  669. package/dist/components/MediaManager/MediaManager.skeleton.js.map +0 -1
  670. package/dist/components/StatusBadge.d.ts +0 -2
  671. package/dist/components/StatusBadge.d.ts.map +0 -1
  672. package/dist/components/StatusBadge.js +0 -7
  673. package/dist/components/StatusBadge.js.map +0 -1
  674. package/dist/components/richtext/ComponentEmbedEditor.d.ts.map +0 -1
  675. package/dist/components/richtext/ComponentEmbedEditor.js +0 -153
  676. package/dist/components/richtext/ComponentEmbedEditor.js.map +0 -1
  677. package/dist/components/richtext/ConditionEmbedEditor.d.ts.map +0 -1
  678. package/dist/components/richtext/ConditionEmbedEditor.js.map +0 -1
  679. package/dist/components/richtext/ImageEmbedEditor.d.ts.map +0 -1
  680. package/dist/components/richtext/ImageEmbedEditor.js.map +0 -1
  681. package/dist/components/richtext/ReferenceEmbedEditor.d.ts.map +0 -1
  682. package/dist/components/richtext/ReferenceEmbedEditor.js.map +0 -1
  683. package/dist/components/richtext/SlashCommandMenu.d.ts.map +0 -1
  684. package/dist/components/richtext/SlashCommandMenu.js.map +0 -1
  685. package/dist/components/richtext/VariableEmbedEditor.d.ts.map +0 -1
  686. package/dist/components/richtext/VariableEmbedEditor.js +0 -58
  687. package/dist/components/richtext/VariableEmbedEditor.js.map +0 -1
  688. package/dist/components/ui/avatar-stack.d.ts +0 -13
  689. package/dist/components/ui/avatar-stack.d.ts.map +0 -1
  690. package/dist/components/ui/avatar-stack.js +0 -27
  691. package/dist/components/ui/avatar-stack.js.map +0 -1
  692. package/dist/components/ui/avatar.d.ts +0 -7
  693. package/dist/components/ui/avatar.d.ts.map +0 -1
  694. package/dist/components/ui/avatar.js +0 -45
  695. package/dist/components/ui/avatar.js.map +0 -1
  696. package/dist/components/ui/banner.d.ts +0 -13
  697. package/dist/components/ui/banner.d.ts.map +0 -1
  698. package/dist/components/ui/banner.js +0 -24
  699. package/dist/components/ui/banner.js.map +0 -1
  700. package/dist/components/ui/branch-chip.d.ts.map +0 -1
  701. package/dist/components/ui/branch-chip.js +0 -58
  702. package/dist/components/ui/branch-chip.js.map +0 -1
  703. package/dist/components/ui/button.d.ts +0 -14
  704. package/dist/components/ui/button.d.ts.map +0 -1
  705. package/dist/components/ui/button.js +0 -65
  706. package/dist/components/ui/button.js.map +0 -1
  707. package/dist/components/ui/card.d.ts +0 -7
  708. package/dist/components/ui/card.d.ts.map +0 -1
  709. package/dist/components/ui/card.js.map +0 -1
  710. package/dist/components/ui/chip.d.ts.map +0 -1
  711. package/dist/components/ui/chip.js +0 -44
  712. package/dist/components/ui/chip.js.map +0 -1
  713. package/dist/components/ui/dialog.d.ts +0 -20
  714. package/dist/components/ui/dialog.d.ts.map +0 -1
  715. package/dist/components/ui/dialog.js +0 -93
  716. package/dist/components/ui/dialog.js.map +0 -1
  717. package/dist/components/ui/dropdown-menu.d.ts +0 -28
  718. package/dist/components/ui/dropdown-menu.d.ts.map +0 -1
  719. package/dist/components/ui/dropdown-menu.js +0 -165
  720. package/dist/components/ui/dropdown-menu.js.map +0 -1
  721. package/dist/components/ui/empty.d.ts +0 -11
  722. package/dist/components/ui/empty.d.ts.map +0 -1
  723. package/dist/components/ui/empty.js +0 -24
  724. package/dist/components/ui/empty.js.map +0 -1
  725. package/dist/components/ui/field.d.ts.map +0 -1
  726. package/dist/components/ui/field.js +0 -52
  727. package/dist/components/ui/field.js.map +0 -1
  728. package/dist/components/ui/input.d.ts.map +0 -1
  729. package/dist/components/ui/input.js +0 -51
  730. package/dist/components/ui/input.js.map +0 -1
  731. package/dist/components/ui/kbd.d.ts.map +0 -1
  732. package/dist/components/ui/kbd.js +0 -30
  733. package/dist/components/ui/kbd.js.map +0 -1
  734. package/dist/components/ui/label.d.ts +0 -6
  735. package/dist/components/ui/label.d.ts.map +0 -1
  736. package/dist/components/ui/label.js +0 -20
  737. package/dist/components/ui/label.js.map +0 -1
  738. package/dist/components/ui/publish-button.d.ts +0 -7
  739. package/dist/components/ui/publish-button.d.ts.map +0 -1
  740. package/dist/components/ui/publish-button.js +0 -50
  741. package/dist/components/ui/publish-button.js.map +0 -1
  742. package/dist/components/ui/select.d.ts +0 -14
  743. package/dist/components/ui/select.d.ts.map +0 -1
  744. package/dist/components/ui/select.js +0 -132
  745. package/dist/components/ui/select.js.map +0 -1
  746. package/dist/components/ui/sonner.d.ts +0 -6
  747. package/dist/components/ui/sonner.d.ts.map +0 -1
  748. package/dist/components/ui/sonner.js +0 -37
  749. package/dist/components/ui/sonner.js.map +0 -1
  750. package/dist/components/ui/status-badge.d.ts.map +0 -1
  751. package/dist/components/ui/status-badge.js.map +0 -1
  752. package/dist/components/ui/table.d.ts.map +0 -1
  753. package/dist/components/ui/table.js.map +0 -1
  754. package/dist/components/ui/tabs-pill.d.ts +0 -17
  755. package/dist/components/ui/tabs-pill.d.ts.map +0 -1
  756. package/dist/components/ui/tabs-pill.js +0 -67
  757. package/dist/components/ui/tabs-pill.js.map +0 -1
  758. package/dist/components/ui/tabs.d.ts +0 -8
  759. package/dist/components/ui/tabs.d.ts.map +0 -1
  760. package/dist/components/ui/tabs.js +0 -59
  761. package/dist/components/ui/tabs.js.map +0 -1
  762. package/dist/components/ui/textarea.d.ts.map +0 -1
  763. package/dist/components/ui/textarea.js +0 -25
  764. package/dist/components/ui/textarea.js.map +0 -1
  765. package/dist/components/ui/toast-card.d.ts +0 -15
  766. package/dist/components/ui/toast-card.d.ts.map +0 -1
  767. package/dist/components/ui/toast-card.js +0 -90
  768. package/dist/components/ui/toast-card.js.map +0 -1
  769. package/dist/components/ui/toast.d.ts +0 -16
  770. package/dist/components/ui/toast.d.ts.map +0 -1
  771. package/dist/components/ui/toast.js +0 -95
  772. package/dist/components/ui/toast.js.map +0 -1
  773. package/dist/components/ui/toaster.d.ts.map +0 -1
  774. package/dist/components/ui/toaster.js +0 -30
  775. package/dist/components/ui/toaster.js.map +0 -1
  776. package/dist/init-KWH66PKY.js.map +0 -1
  777. /package/dist/{agentDocs-M3R2CPUQ.js.map → agentDocs-QZ4NOQVH.js.map} +0 -0
  778. /package/dist/components/{ErrorBoundary.d.ts → ErrorBoundary/ErrorBoundary.d.ts} +0 -0
  779. /package/dist/components/{CreateBranchDialog.d.ts → Layout/CreateBranchDialog.d.ts} +0 -0
  780. /package/dist/components/{FormBooleanField.d.ts → ui/FormField/FormBooleanField.d.ts} +0 -0
  781. /package/dist/components/{FormColorField.d.ts → ui/FormField/FormColorField.d.ts} +0 -0
  782. /package/dist/components/{FormDatetimeField.d.ts → ui/FormField/FormDatetimeField.d.ts} +0 -0
  783. /package/dist/components/{FormJsonField.d.ts → ui/FormField/FormJsonField.d.ts} +0 -0
  784. /package/dist/components/{FormMarkdownField.d.ts → ui/FormField/FormMarkdownField.d.ts} +0 -0
  785. /package/dist/components/{FormNumberField.d.ts → ui/FormField/FormNumberField.d.ts} +0 -0
  786. /package/dist/components/{FormSlugField.d.ts → ui/FormField/FormSlugField.d.ts} +0 -0
  787. /package/dist/components/{FormStringField.d.ts → ui/FormField/FormStringField.d.ts} +0 -0
  788. /package/dist/components/{FormStringListField.d.ts → ui/FormField/FormStringListField.d.ts} +0 -0
  789. /package/dist/components/{FormTextField.d.ts → ui/FormField/FormTextField.d.ts} +0 -0
  790. /package/dist/components/{FormUrlField.d.ts → ui/FormField/FormUrlField.d.ts} +0 -0
  791. /package/dist/components/{richtext → ui/FormField/richtext}/ConditionEmbedEditor.d.ts +0 -0
  792. /package/dist/components/{richtext → ui/FormField/richtext}/ImageEmbedEditor.d.ts +0 -0
  793. /package/dist/components/{richtext → ui/FormField/richtext}/ReferenceEmbedEditor.d.ts +0 -0
  794. /package/dist/components/{richtext → ui/FormField/richtext}/SlashCommandMenu.d.ts +0 -0
  795. /package/dist/components/{richtext → ui/FormField/richtext}/VariableEmbedEditor.d.ts +0 -0
  796. /package/dist/{update-QNJRYPMC.js.map → update-QALIQG76.js.map} +0 -0
@@ -1,27 +1,10 @@
1
1
  "use strict";
2
2
  var __create = Object.create;
3
3
  var __defProp = Object.defineProperty;
4
- var __defProps = Object.defineProperties;
5
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
8
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
6
  var __getProtoOf = Object.getPrototypeOf;
10
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
11
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
- var __spreadValues = (a, b) => {
14
- for (var prop in b || (b = {}))
15
- if (__hasOwnProp.call(b, prop))
16
- __defNormalProp(a, prop, b[prop]);
17
- if (__getOwnPropSymbols)
18
- for (var prop of __getOwnPropSymbols(b)) {
19
- if (__propIsEnum.call(b, prop))
20
- __defNormalProp(a, prop, b[prop]);
21
- }
22
- return a;
23
- };
24
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
8
  var __export = (target, all) => {
26
9
  for (var name in all)
27
10
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -43,406 +26,16 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
43
26
  mod
44
27
  ));
45
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
46
-
47
- // components/public/index.ts
48
29
  var public_exports = {};
49
30
  __export(public_exports, {
50
- MarkdownContent: () => MarkdownContent_default,
51
- RichTextContent: () => RichTextContent_default,
52
- SearchBox: () => SearchBox
31
+ MarkdownContent: () => import_MarkdownContent.default,
32
+ RichTextContent: () => import_RichTextContent.default,
33
+ SearchBox: () => import_SearchBox.default
53
34
  });
54
35
  module.exports = __toCommonJS(public_exports);
55
-
56
- // components/public/MarkdownContent.tsx
57
- var import_react_markdown = __toESM(require("react-markdown"), 1);
58
- var import_rehype_sanitize = __toESM(require("rehype-sanitize"), 1);
59
- var import_remark_gfm = __toESM(require("remark-gfm"), 1);
60
-
61
- // lib/utils.ts
62
- var import_clsx = require("clsx");
63
- var import_tailwind_merge = require("tailwind-merge");
64
- var cn = (...inputs) => (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
65
-
66
- // components/public/MarkdownContent.tsx
67
- var import_jsx_runtime = require("react/jsx-runtime");
68
- var _a, _b, _c;
69
- var sanitizeSchema = __spreadProps(__spreadValues({}, import_rehype_sanitize.defaultSchema), {
70
- tagNames: [
71
- ...(_a = import_rehype_sanitize.defaultSchema.tagNames) != null ? _a : [],
72
- "u"
73
- // underline — not in GitHub default
74
- ],
75
- attributes: __spreadProps(__spreadValues({}, import_rehype_sanitize.defaultSchema.attributes), {
76
- code: [...(_c = (_b = import_rehype_sanitize.defaultSchema.attributes) == null ? void 0 : _b.code) != null ? _c : [], "className"],
77
- img: ["src", "alt", "title"]
78
- })
79
- });
80
- var MarkdownContent = ({ children, className }) => {
81
- if (!children) {
82
- return null;
83
- }
84
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: cn(className), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_markdown.default, { remarkPlugins: [import_remark_gfm.default], rehypePlugins: [[import_rehype_sanitize.default, sanitizeSchema]], children }) });
85
- };
86
- var MarkdownContent_default = MarkdownContent;
87
-
88
- // components/public/RichTextContent.tsx
89
- var import_image = __toESM(require("next/image"), 1);
90
- var import_jsx_runtime2 = require("react/jsx-runtime");
91
- var RichTextContent = ({ document: document2, components, variables, conditions, className }) => {
92
- var _a2;
93
- if (!document2 || !((_a2 = document2.content) == null ? void 0 : _a2.length)) return null;
94
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: cn(className), children: document2.content.map((node, i) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RenderNode, { node, components, variables, conditions }, i)) });
95
- };
96
- var RichTextContent_default = RichTextContent;
97
- function RenderNode({ node, components, variables, conditions }) {
98
- var _a2;
99
- switch (node.type) {
100
- case "paragraph":
101
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RenderChildren, { nodes: node.children, components, variables, conditions }) });
102
- case "heading": {
103
- const Tag = `h${node.level}`;
104
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Tag, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RenderChildren, { nodes: node.children, components, variables, conditions }) });
105
- }
106
- case "blockquote":
107
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("blockquote", { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RenderChildren, { nodes: node.children, components, variables, conditions }) });
108
- case "list":
109
- if (node.ordered) {
110
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("ol", { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
111
- RenderChildren,
112
- {
113
- nodes: node.children,
114
- components,
115
- variables,
116
- conditions
117
- }
118
- ) });
119
- }
120
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("ul", { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RenderChildren, { nodes: node.children, components, variables, conditions }) });
121
- case "listItem":
122
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RenderChildren, { nodes: node.children, components, variables, conditions }) });
123
- case "thematicBreak":
124
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("hr", {});
125
- case "code":
126
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("pre", { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("code", { className: node.lang ? `language-${node.lang}` : void 0, children: node.value }) });
127
- case "text":
128
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RenderText, { node });
129
- case "link":
130
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("a", { href: node.url, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RenderChildren, { nodes: node.children, components, variables, conditions }) });
131
- case "image":
132
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RenderImage, { image: node.image });
133
- case "break":
134
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("br", {});
135
- case "html":
136
- return null;
137
- case "variable": {
138
- const value = variables == null ? void 0 : variables[node.name];
139
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: value != null ? value : `{${node.name}}` });
140
- }
141
- case "component": {
142
- const Component = components == null ? void 0 : components[node.name];
143
- if (!Component) return null;
144
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Component, __spreadProps(__spreadValues({}, node.props), { children: ((_a2 = node.children) == null ? void 0 : _a2.length) ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
145
- RenderChildren,
146
- {
147
- nodes: node.children,
148
- components,
149
- variables,
150
- conditions
151
- }
152
- ) : null }));
153
- }
154
- case "reference":
155
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RenderReference, { node, components });
156
- case "condition":
157
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RenderCondition, { node, components, variables, conditions });
158
- default:
159
- return null;
160
- }
161
- }
162
- function RenderText({ node }) {
163
- let element = node.value;
164
- if (node.marks) {
165
- for (const mark of node.marks) {
166
- switch (mark) {
167
- case "bold":
168
- element = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("strong", { children: element });
169
- break;
170
- case "italic":
171
- element = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("em", { children: element });
172
- break;
173
- case "underline":
174
- element = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("u", { children: element });
175
- break;
176
- case "code":
177
- element = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("code", { children: element });
178
- break;
179
- }
180
- }
181
- }
182
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: element });
183
- }
184
- function RenderImage({ image }) {
185
- if (!image.src) return null;
186
- const hasSize = image.width != null && image.height != null;
187
- if (hasSize) {
188
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
189
- import_image.default,
190
- __spreadValues({
191
- src: image.src,
192
- alt: image.alt,
193
- width: image.width,
194
- height: image.height
195
- }, image.blurDataURL ? { placeholder: "blur", blurDataURL: image.blurDataURL } : {})
196
- );
197
- }
198
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "relative block w-full", style: { aspectRatio: "16/9" }, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
199
- import_image.default,
200
- __spreadValues({
201
- src: image.src,
202
- alt: image.alt,
203
- fill: true,
204
- className: "object-cover"
205
- }, image.blurDataURL ? { placeholder: "blur", blurDataURL: image.blurDataURL } : {})
206
- ) });
207
- }
208
- function RenderReference({
209
- node,
210
- components
211
- }) {
212
- var _a2, _b2;
213
- const entry = node.entry;
214
- if (!entry) return null;
215
- const collectionType = (_a2 = entry.sys) == null ? void 0 : _a2.type;
216
- if (collectionType && (components == null ? void 0 : components[collectionType])) {
217
- const Component = components[collectionType];
218
- return node.display === "inline" ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Component, { entry, display: node.display }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Component, { entry, display: node.display }) });
219
- }
220
- const title = entry.fields ? Object.values(entry.fields).find((v) => typeof v === "string" && v.length > 0) : null;
221
- if (node.display === "inline") {
222
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children: (_b2 = title != null ? title : collectionType) != null ? _b2 : "Reference" });
223
- }
224
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "rounded border border-border p-3 my-2 bg-muted/30", children: [
225
- collectionType && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "text-xs text-muted-foreground block mb-0.5", children: collectionType }),
226
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "text-sm font-medium", children: title != null ? title : "Untitled entry" })
227
- ] });
228
- }
229
- function RenderCondition({
230
- node,
231
- components,
232
- variables,
233
- conditions
234
- }) {
235
- var _a2;
236
- const branches = node.branches;
237
- if (!branches || typeof branches !== "object") return null;
238
- const selectedKey = node.field && conditions ? conditions[node.field] : void 0;
239
- if (selectedKey) {
240
- const doc = branches[selectedKey];
241
- if (!doc || !((_a2 = doc.content) == null ? void 0 : _a2.length)) return null;
242
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: doc.content.map((child, i) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RenderNode, { node: child, components, variables, conditions }, i)) });
243
- }
244
- return null;
245
- }
246
- function RenderChildren({
247
- nodes,
248
- components,
249
- variables,
250
- conditions
251
- }) {
252
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children: nodes.map((child, i) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RenderNode, { node: child, components, variables, conditions }, i)) });
253
- }
254
-
255
- // components/public/SearchBox.tsx
256
- var import_react = require("react");
257
- var import_lucide_react = require("lucide-react");
258
- var import_jsx_runtime3 = require("react/jsx-runtime");
259
- function escapeRegex(s) {
260
- return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
261
- }
262
- function highlightTerms(text, terms) {
263
- const filtered = terms.filter((t) => t.length > 0);
264
- if (filtered.length === 0) return text;
265
- const pattern = filtered.map((t) => escapeRegex(t) + "\\w*").join("|");
266
- const parts = text.split(new RegExp(`(${pattern})`, "gi"));
267
- return parts.map(
268
- (part, i) => i % 2 === 1 ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("mark", { className: "bg-yellow-200 dark:bg-yellow-800 text-inherit rounded-sm px-0.5", children: part }, i) : part
269
- );
270
- }
271
- function SearchBox({ placeholder = "Search...", className = "" }) {
272
- const inputRef = (0, import_react.useRef)(null);
273
- const dropdownRef = (0, import_react.useRef)(null);
274
- const [query, setQuery] = (0, import_react.useState)("");
275
- const [results, setResults] = (0, import_react.useState)([]);
276
- const [isOpen, setIsOpen] = (0, import_react.useState)(false);
277
- const [isSearching, setIsSearching] = (0, import_react.useState)(false);
278
- const [selectedIndex, setSelectedIndex] = (0, import_react.useState)(-1);
279
- const debounceRef = (0, import_react.useRef)(void 0);
280
- const doSearch = (0, import_react.useCallback)(async (q) => {
281
- if (!q.trim()) {
282
- setResults([]);
283
- setIsOpen(false);
284
- setSelectedIndex(-1);
285
- return;
286
- }
287
- setIsSearching(true);
288
- try {
289
- const response = await fetch(`/api/search?q=${encodeURIComponent(q)}&limit=10`);
290
- if (response.ok) {
291
- const data = await response.json();
292
- setResults(data.results || []);
293
- setIsOpen(true);
294
- setSelectedIndex(-1);
295
- } else {
296
- setResults([]);
297
- setIsOpen(false);
298
- }
299
- } catch (e) {
300
- setResults([]);
301
- setIsOpen(false);
302
- } finally {
303
- setIsSearching(false);
304
- }
305
- }, []);
306
- const handleChange = (e) => {
307
- const value = e.target.value;
308
- setQuery(value);
309
- if (debounceRef.current) clearTimeout(debounceRef.current);
310
- debounceRef.current = setTimeout(() => doSearch(value), 300);
311
- };
312
- const handleKeyDown = (e) => {
313
- if (!isOpen || results.length === 0) {
314
- return;
315
- }
316
- switch (e.key) {
317
- case "ArrowDown":
318
- e.preventDefault();
319
- setSelectedIndex((prev) => prev < results.length - 1 ? prev + 1 : 0);
320
- break;
321
- case "ArrowUp":
322
- e.preventDefault();
323
- setSelectedIndex((prev) => prev > 0 ? prev - 1 : results.length - 1);
324
- break;
325
- case "Enter":
326
- e.preventDefault();
327
- if (selectedIndex >= 0 && results[selectedIndex]) {
328
- navigateToResult(results[selectedIndex]);
329
- }
330
- break;
331
- case "Escape":
332
- e.preventDefault();
333
- setIsOpen(false);
334
- setSelectedIndex(-1);
335
- break;
336
- default:
337
- break;
338
- }
339
- };
340
- const navigateToResult = (result) => {
341
- window.location.href = result.url;
342
- };
343
- (0, import_react.useEffect)(() => {
344
- const handleClickOutside = (event) => {
345
- if (dropdownRef.current && !dropdownRef.current.contains(event.target) && inputRef.current && !inputRef.current.contains(event.target)) {
346
- setIsOpen(false);
347
- }
348
- };
349
- document.addEventListener("mousedown", handleClickOutside);
350
- return () => document.removeEventListener("mousedown", handleClickOutside);
351
- }, []);
352
- (0, import_react.useEffect)(() => {
353
- if (selectedIndex >= 0 && dropdownRef.current) {
354
- const items = dropdownRef.current.querySelectorAll("[data-result-item]");
355
- if (items[selectedIndex]) {
356
- items[selectedIndex].scrollIntoView({ block: "nearest" });
357
- }
358
- }
359
- }, [selectedIndex]);
360
- const handleClear = () => {
361
- var _a2;
362
- setQuery("");
363
- setResults([]);
364
- setIsOpen(false);
365
- setSelectedIndex(-1);
366
- (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
367
- };
368
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cn("relative w-full", className), children: [
369
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "relative", children: [
370
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react.Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 text-gray-400", size: 18 }),
371
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
372
- "input",
373
- {
374
- ref: inputRef,
375
- type: "text",
376
- value: query,
377
- onChange: handleChange,
378
- onKeyDown: handleKeyDown,
379
- onFocus: () => {
380
- if (query.trim() && results.length > 0) {
381
- setIsOpen(true);
382
- }
383
- },
384
- placeholder,
385
- className: cn(
386
- "w-full pl-10 pr-10 py-2 text-sm border border-gray-200 rounded-lg",
387
- "bg-white text-gray-900 placeholder-gray-400",
388
- "focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",
389
- "dark:bg-gray-900 dark:border-gray-700 dark:text-gray-100 dark:placeholder-gray-500"
390
- ),
391
- autoComplete: "off"
392
- }
393
- ),
394
- query && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
395
- "button",
396
- {
397
- type: "button",
398
- onClick: handleClear,
399
- className: "absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors",
400
- "aria-label": "Clear search",
401
- children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_lucide_react.X, { size: 18 })
402
- }
403
- )
404
- ] }),
405
- isOpen && (results.length > 0 || isSearching) && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
406
- "div",
407
- {
408
- ref: dropdownRef,
409
- className: cn(
410
- "absolute top-full left-0 right-0 mt-2 bg-white dark:bg-gray-900 border border-gray-200 dark:border-gray-700",
411
- "rounded-lg shadow-lg z-50 max-h-96 overflow-y-auto"
412
- ),
413
- children: [
414
- isSearching && results.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "px-4 py-3 text-sm text-gray-500 dark:text-gray-400 text-center", children: "Searching..." }),
415
- results.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("ul", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: results.map((result, index) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
416
- "li",
417
- {
418
- "data-result-item": true,
419
- className: cn(
420
- "p-0 transition-colors",
421
- index === selectedIndex ? "bg-blue-50 dark:bg-blue-900/30" : "bg-white dark:bg-gray-900 hover:bg-gray-50 dark:hover:bg-gray-800"
422
- ),
423
- children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
424
- "button",
425
- {
426
- type: "button",
427
- onClick: () => navigateToResult(result),
428
- className: "w-full text-left px-4 py-3 flex flex-col gap-1",
429
- children: [
430
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
431
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "font-medium text-gray-900 dark:text-gray-100 truncate text-sm", children: highlightTerms(result.title, Object.keys(result.match)) }),
432
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "shrink-0 text-xs text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-800 px-2 py-0.5 rounded", children: result.typeLabel })
433
- ] }),
434
- Object.values(result.match).flat().includes("content") && result.snippet && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: "text-xs text-gray-500 dark:text-gray-400 line-clamp-2 text-left", children: highlightTerms(result.snippet, Object.keys(result.match)) })
435
- ]
436
- }
437
- )
438
- },
439
- result.id
440
- )) })
441
- ]
442
- }
443
- )
444
- ] });
445
- }
36
+ var import_MarkdownContent = __toESM(require("./MarkdownContent"), 1);
37
+ var import_RichTextContent = __toESM(require("./RichTextContent"), 1);
38
+ var import_SearchBox = __toESM(require("./SearchBox"), 1);
446
39
  // Annotate the CommonJS export names for ESM import in node:
447
40
  0 && (module.exports = {
448
41
  MarkdownContent,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../components/public/index.ts","../../../components/public/MarkdownContent.tsx","../../../lib/utils.ts","../../../components/public/RichTextContent.tsx","../../../components/public/SearchBox.tsx"],"sourcesContent":["export { default as MarkdownContent } from './MarkdownContent';\nexport { default as RichTextContent } from './RichTextContent';\nexport { default as SearchBox } from './SearchBox';\nexport type { SearchBoxProps } from './SearchBox';\n","import React from 'react';\n\nimport Markdown from 'react-markdown';\nimport rehypeSanitize, { defaultSchema } from 'rehype-sanitize';\nimport remarkGfm from 'remark-gfm';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * Sanitization schema: extends the default GitHub-flavoured schema with\n * the same tag/attribute allowlist that was previously applied via sanitize-html.\n */\nconst sanitizeSchema = {\n ...defaultSchema,\n tagNames: [\n ...(defaultSchema.tagNames ?? []),\n 'u', // underline — not in GitHub default\n ],\n attributes: {\n ...defaultSchema.attributes,\n code: [...(defaultSchema.attributes?.code ?? []), 'className'],\n img: ['src', 'alt', 'title'],\n },\n};\n\ntype MarkdownContentProps = {\n children: string | undefined | null;\n className?: string;\n};\n\n/**\n * Renders raw Markdown as React elements using react-markdown with GFM support\n * and HTML sanitization. Replaces the previous `dangerouslySetInnerHTML` approach.\n */\nconst MarkdownContent = ({ children, className }: MarkdownContentProps) => {\n if (!children) {\n return null;\n }\n\n return (\n <div className={cn(className)}>\n <Markdown remarkPlugins={[remarkGfm]} rehypePlugins={[[rehypeSanitize, sanitizeSchema]]}>\n {children}\n </Markdown>\n </div>\n );\n};\n\nexport default MarkdownContent;\n","import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Merge Tailwind classes with clsx — the standard utility for Radix UI + Tailwind components.\n * Handles conditional classes, deduplication, and conflict resolution.\n *\n * @example\n * cn('px-4 py-2', isActive && 'bg-primary text-primary-foreground', className)\n */\nexport const cn = (...inputs: ClassValue[]) => twMerge(clsx(inputs));\n","import React from 'react';\nimport Image from 'next/image';\n\nimport type { RichTextDocument, RichTextNode, ResolvedImageField } from '../../types';\nimport { cn } from '../../lib/utils';\n\ntype RichTextContentProps = {\n document: RichTextDocument | null | undefined;\n /** Map custom component names to React components for rendering `{ type: 'component' }` nodes. */\n components?: Record<string, React.ComponentType<any>>;\n /** Variable substitutions for `{ type: 'variable' }` nodes. */\n variables?: Record<string, string>;\n /** Condition branch selections: map condition field names to the branch key to render. */\n conditions?: Record<string, string>;\n className?: string;\n};\n\n/**\n * Renders a `RichTextDocument` AST to React elements.\n *\n * Standard markdown nodes become HTML elements.\n * `CmsImage` embeds render as `next/image`.\n * Custom components and variables are resolved from the provided props.\n */\nconst RichTextContent = ({ document, components, variables, conditions, className }: RichTextContentProps) => {\n if (!document || !document.content?.length) return null;\n return (\n <div className={cn(className)}>\n {document.content.map((node, i) => (\n <RenderNode key={i} node={node} components={components} variables={variables} conditions={conditions} />\n ))}\n </div>\n );\n};\n\nexport default RichTextContent;\n\n// ---------------------------------------------------------------------------\n// Internal node renderer\n// ---------------------------------------------------------------------------\n\ntype NodeProps = {\n node: RichTextNode;\n components?: Record<string, React.ComponentType<any>>;\n variables?: Record<string, string>;\n conditions?: Record<string, string>;\n};\n\nfunction RenderNode({ node, components, variables, conditions }: NodeProps) {\n switch (node.type) {\n case 'paragraph':\n return (\n <p>\n <RenderChildren nodes={node.children} components={components} variables={variables} conditions={conditions} />\n </p>\n );\n\n case 'heading': {\n const Tag = `h${node.level}` as 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n return (\n <Tag>\n <RenderChildren nodes={node.children} components={components} variables={variables} conditions={conditions} />\n </Tag>\n );\n }\n\n case 'blockquote':\n return (\n <blockquote>\n <RenderChildren nodes={node.children} components={components} variables={variables} conditions={conditions} />\n </blockquote>\n );\n\n case 'list':\n if (node.ordered) {\n return (\n <ol>\n <RenderChildren\n nodes={node.children}\n components={components}\n variables={variables}\n conditions={conditions}\n />\n </ol>\n );\n }\n return (\n <ul>\n <RenderChildren nodes={node.children} components={components} variables={variables} conditions={conditions} />\n </ul>\n );\n\n case 'listItem':\n return (\n <li>\n <RenderChildren nodes={node.children} components={components} variables={variables} conditions={conditions} />\n </li>\n );\n\n case 'thematicBreak':\n return <hr />;\n\n case 'code':\n return (\n <pre>\n <code className={node.lang ? `language-${node.lang}` : undefined}>{node.value}</code>\n </pre>\n );\n\n case 'text':\n return <RenderText node={node} />;\n\n case 'link':\n return (\n <a href={node.url}>\n <RenderChildren nodes={node.children} components={components} variables={variables} conditions={conditions} />\n </a>\n );\n\n case 'image':\n return <RenderImage image={node.image} />;\n\n case 'break':\n return <br />;\n\n case 'html':\n return null;\n\n case 'variable': {\n const value = variables?.[node.name];\n return <>{value ?? `{${node.name}}`}</>;\n }\n\n case 'component': {\n const Component = components?.[node.name];\n if (!Component) return null;\n return (\n <Component {...node.props}>\n {node.children?.length ? (\n <RenderChildren\n nodes={node.children}\n components={components}\n variables={variables}\n conditions={conditions}\n />\n ) : null}\n </Component>\n );\n }\n\n case 'reference':\n return <RenderReference node={node} components={components} />;\n\n case 'condition':\n return <RenderCondition node={node} components={components} variables={variables} conditions={conditions} />;\n\n default:\n return null;\n }\n}\n\n// ---------------------------------------------------------------------------\n// Inline text with marks\n// ---------------------------------------------------------------------------\n\nfunction RenderText({ node }: { node: Extract<RichTextNode, { type: 'text' }> }) {\n let element: React.ReactNode = node.value;\n if (node.marks) {\n for (const mark of node.marks) {\n switch (mark) {\n case 'bold':\n element = <strong>{element}</strong>;\n break;\n case 'italic':\n element = <em>{element}</em>;\n break;\n case 'underline':\n element = <u>{element}</u>;\n break;\n case 'code':\n element = <code>{element}</code>;\n break;\n }\n }\n }\n return <>{element}</>;\n}\n\n// ---------------------------------------------------------------------------\n// Image rendering via next/image\n// ---------------------------------------------------------------------------\n\nfunction RenderImage({ image }: { image: ResolvedImageField }) {\n if (!image.src) return null;\n\n const hasSize = image.width != null && image.height != null;\n\n if (hasSize) {\n return (\n <Image\n src={image.src}\n alt={image.alt}\n width={image.width!}\n height={image.height!}\n {...(image.blurDataURL ? { placeholder: 'blur' as const, blurDataURL: image.blurDataURL } : {})}\n />\n );\n }\n\n // Fallback for images without dimensions — use fill with a container\n return (\n <span className=\"relative block w-full\" style={{ aspectRatio: '16/9' }}>\n <Image\n src={image.src}\n alt={image.alt}\n fill\n className=\"object-cover\"\n {...(image.blurDataURL ? { placeholder: 'blur' as const, blurDataURL: image.blurDataURL } : {})}\n />\n </span>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Reference rendering — embedded entry references\n// ---------------------------------------------------------------------------\n\ntype ReferenceNode = Extract<RichTextNode, { type: 'reference' }>;\n\nfunction RenderReference({\n node,\n components,\n}: {\n node: ReferenceNode;\n components?: Record<string, React.ComponentType<any>>;\n}) {\n const entry = node.entry as { sys?: { type?: string }; fields?: Record<string, unknown> } | null;\n if (!entry) return null;\n\n const collectionType = entry.sys?.type;\n\n // If consumer provided a custom component for this collection type, use it\n if (collectionType && components?.[collectionType]) {\n const Component = components[collectionType];\n return node.display === 'inline' ? (\n <Component entry={entry} display={node.display} />\n ) : (\n <div>\n <Component entry={entry} display={node.display} />\n </div>\n );\n }\n\n // Default fallback: show the entry's title field if available\n const title = entry.fields\n ? (Object.values(entry.fields).find((v) => typeof v === 'string' && v.length > 0) as string | undefined)\n : null;\n\n if (node.display === 'inline') {\n return <span>{title ?? collectionType ?? 'Reference'}</span>;\n }\n\n return (\n <div className=\"rounded border border-border p-3 my-2 bg-muted/30\">\n {collectionType && <span className=\"text-xs text-muted-foreground block mb-0.5\">{collectionType}</span>}\n <span className=\"text-sm font-medium\">{title ?? 'Untitled entry'}</span>\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Condition rendering — select and render the appropriate branch\n// ---------------------------------------------------------------------------\n\ntype ConditionNode = Extract<RichTextNode, { type: 'condition' }>;\n\nfunction RenderCondition({\n node,\n components,\n variables,\n conditions,\n}: {\n node: ConditionNode;\n components?: Record<string, React.ComponentType<any>>;\n variables?: Record<string, string>;\n conditions?: Record<string, string>;\n}) {\n const branches = node.branches;\n if (!branches || typeof branches !== 'object') return null;\n\n // If a condition selection was provided, render only the selected branch\n const selectedKey = node.field && conditions ? conditions[node.field] : undefined;\n\n if (selectedKey) {\n const doc = (branches as Record<string, RichTextDocument>)[selectedKey];\n if (!doc || !doc.content?.length) return null;\n return (\n <>\n {doc.content.map((child, i) => (\n <RenderNode key={i} node={child} components={components} variables={variables} conditions={conditions} />\n ))}\n </>\n );\n }\n\n // No condition provided — render nothing (consumer must specify which branch to show)\n return null;\n}\n\n// ---------------------------------------------------------------------------\n// Helper: render a list of child nodes\n// ---------------------------------------------------------------------------\n\nfunction RenderChildren({\n nodes,\n components,\n variables,\n conditions,\n}: { nodes: RichTextNode[] } & Pick<NodeProps, 'components' | 'variables' | 'conditions'>) {\n return (\n <>\n {nodes.map((child, i) => (\n <RenderNode key={i} node={child} components={components} variables={variables} conditions={conditions} />\n ))}\n </>\n );\n}\n","'use client';\n\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { Search, X } from 'lucide-react';\n\nimport type { SearchResult } from '../../lib/searchIndex';\nimport { cn } from '../../lib/utils';\n\n/** Escape special regex characters in a string. */\nfunction escapeRegex(s: string): string {\n return s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\n/**\n * Split text into alternating non-match/match segments and wrap matches in <mark>.\n * Uses prefix matching (term\\w*) to support MiniSearch's prefix: true behavior.\n */\nfunction highlightTerms(text: string, terms: string[]): React.ReactNode {\n const filtered = terms.filter((t) => t.length > 0);\n if (filtered.length === 0) return text;\n\n const pattern = filtered.map((t) => escapeRegex(t) + '\\\\w*').join('|');\n const parts = text.split(new RegExp(`(${pattern})`, 'gi'));\n\n return parts.map((part, i) =>\n i % 2 === 1 ? (\n <mark key={i} className=\"bg-yellow-200 dark:bg-yellow-800 text-inherit rounded-sm px-0.5\">\n {part}\n </mark>\n ) : (\n part\n ),\n );\n}\n\nexport interface SearchBoxProps {\n placeholder?: string;\n className?: string;\n}\n\nexport default function SearchBox({ placeholder = 'Search...', className = '' }: SearchBoxProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const [query, setQuery] = useState('');\n const [results, setResults] = useState<SearchResult[]>([]);\n const [isOpen, setIsOpen] = useState(false);\n const [isSearching, setIsSearching] = useState(false);\n const [selectedIndex, setSelectedIndex] = useState(-1);\n const debounceRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n // Fetch search results\n const doSearch = useCallback(async (q: string) => {\n if (!q.trim()) {\n setResults([]);\n setIsOpen(false);\n setSelectedIndex(-1);\n return;\n }\n\n setIsSearching(true);\n try {\n const response = await fetch(`/api/search?q=${encodeURIComponent(q)}&limit=10`);\n if (response.ok) {\n const data = await response.json();\n setResults(data.results || []);\n setIsOpen(true);\n setSelectedIndex(-1);\n } else {\n setResults([]);\n setIsOpen(false);\n }\n } catch {\n setResults([]);\n setIsOpen(false);\n } finally {\n setIsSearching(false);\n }\n }, []);\n\n // Handle input change with debounce\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n setQuery(value);\n\n if (debounceRef.current) clearTimeout(debounceRef.current);\n debounceRef.current = setTimeout(() => doSearch(value), 300);\n };\n\n // Handle keyboard navigation\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (!isOpen || results.length === 0) {\n return;\n }\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n setSelectedIndex((prev) => (prev < results.length - 1 ? prev + 1 : 0));\n break;\n case 'ArrowUp':\n e.preventDefault();\n setSelectedIndex((prev) => (prev > 0 ? prev - 1 : results.length - 1));\n break;\n case 'Enter':\n e.preventDefault();\n if (selectedIndex >= 0 && results[selectedIndex]) {\n navigateToResult(results[selectedIndex]);\n }\n break;\n case 'Escape':\n e.preventDefault();\n setIsOpen(false);\n setSelectedIndex(-1);\n break;\n default:\n break;\n }\n };\n\n // Navigate to a result\n const navigateToResult = (result: SearchResult) => {\n window.location.href = result.url;\n };\n\n // Close dropdown when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n dropdownRef.current &&\n !dropdownRef.current.contains(event.target as Node) &&\n inputRef.current &&\n !inputRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n // Scroll selected result into view\n useEffect(() => {\n if (selectedIndex >= 0 && dropdownRef.current) {\n const items = dropdownRef.current.querySelectorAll('[data-result-item]');\n if (items[selectedIndex]) {\n items[selectedIndex].scrollIntoView({ block: 'nearest' });\n }\n }\n }, [selectedIndex]);\n\n const handleClear = () => {\n setQuery('');\n setResults([]);\n setIsOpen(false);\n setSelectedIndex(-1);\n inputRef.current?.focus();\n };\n\n return (\n <div className={cn('relative w-full', className)}>\n <div className=\"relative\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 text-gray-400\" size={18} />\n <input\n ref={inputRef}\n type=\"text\"\n value={query}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onFocus={() => {\n if (query.trim() && results.length > 0) {\n setIsOpen(true);\n }\n }}\n placeholder={placeholder}\n className={cn(\n 'w-full pl-10 pr-10 py-2 text-sm border border-gray-200 rounded-lg',\n 'bg-white text-gray-900 placeholder-gray-400',\n 'focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent',\n 'dark:bg-gray-900 dark:border-gray-700 dark:text-gray-100 dark:placeholder-gray-500',\n )}\n autoComplete=\"off\"\n />\n {query && (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors\"\n aria-label=\"Clear search\"\n >\n <X size={18} />\n </button>\n )}\n </div>\n\n {/* Dropdown results */}\n {isOpen && (results.length > 0 || isSearching) && (\n <div\n ref={dropdownRef}\n className={cn(\n 'absolute top-full left-0 right-0 mt-2 bg-white dark:bg-gray-900 border border-gray-200 dark:border-gray-700',\n 'rounded-lg shadow-lg z-50 max-h-96 overflow-y-auto',\n )}\n >\n {isSearching && results.length === 0 && (\n <div className=\"px-4 py-3 text-sm text-gray-500 dark:text-gray-400 text-center\">Searching...</div>\n )}\n\n {results.length > 0 && (\n <ul className=\"divide-y divide-gray-100 dark:divide-gray-800\">\n {results.map((result, index) => (\n <li\n key={result.id}\n data-result-item\n className={cn(\n 'p-0 transition-colors',\n index === selectedIndex\n ? 'bg-blue-50 dark:bg-blue-900/30'\n : 'bg-white dark:bg-gray-900 hover:bg-gray-50 dark:hover:bg-gray-800',\n )}\n >\n <button\n type=\"button\"\n onClick={() => navigateToResult(result)}\n className=\"w-full text-left px-4 py-3 flex flex-col gap-1\"\n >\n <div className=\"flex items-center justify-between gap-2\">\n <span className=\"font-medium text-gray-900 dark:text-gray-100 truncate text-sm\">\n {highlightTerms(result.title, Object.keys(result.match))}\n </span>\n <span className=\"shrink-0 text-xs text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-800 px-2 py-0.5 rounded\">\n {result.typeLabel}\n </span>\n </div>\n {Object.values(result.match).flat().includes('content') && result.snippet && (\n <p className=\"text-xs text-gray-500 dark:text-gray-400 line-clamp-2 text-left\">\n {highlightTerms(result.snippet, Object.keys(result.match))}\n </p>\n )}\n </button>\n </li>\n ))}\n </ul>\n )}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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","names":["Markdown","remarkGfm","rehypeSanitize","import_jsx_runtime","document","_a","Image","_b","import_jsx_runtime","_a"]}
1
+ {"version":3,"sources":["../../../components/public/index.ts"],"sourcesContent":["export { default as MarkdownContent } from './MarkdownContent';\nexport { default as RichTextContent } from './RichTextContent';\nexport { default as SearchBox } from './SearchBox';\nexport type { SearchBoxProps } from './SearchBox';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAA2C;AAC3C,6BAA2C;AAC3C,uBAAqC;","names":[]}
@@ -1,10 +1,3 @@
1
- /**
2
- * Fills `<main>` while the catch-all `AdminApp` RSC slot suspends (`await params`,
3
- * etc.). `TopHeader` stays mounted above this boundary.
4
- */
5
- export declare function MainSlotSkeleton({ className }: {
6
- className?: string;
7
- }): import("react/jsx-runtime").JSX.Element;
8
1
  /**
9
2
  * Full-viewport shell while `AdminLayoutInner` runs (e.g. `getThemeCookie()`).
10
3
  * No providers are mounted yet — static shimmer only.
@@ -1 +1 @@
1
- {"version":3,"file":"MainSlotSkeleton.d.ts","sourceRoot":"","sources":["../../../components/skeletons/MainSlotSkeleton.tsx"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAUrE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,4CASrC"}
1
+ {"version":3,"file":"MainSlotSkeleton.d.ts","sourceRoot":"","sources":["../../../components/skeletons/MainSlotSkeleton.tsx"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAgB,sBAAsB,4CASrC"}
@@ -1,27 +1,14 @@
1
1
  import "../../chunk-B5LE2OEC.js";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import { ContentPageChromeSkeleton } from "../Dashboard/skeletons/ContentPageChromeSkeleton";
4
3
  import { TopHeaderSkeleton } from "../Layout/skeletons/TopHeaderSkeleton";
5
- import { cn } from "../../lib/utils";
6
- function MainSlotSkeleton({ className }) {
7
- return /* @__PURE__ */ jsx(
8
- "div",
9
- {
10
- className: cn("flex min-h-0 flex-1 flex-col overflow-hidden", className),
11
- role: "status",
12
- "aria-label": "Loading page",
13
- children: /* @__PURE__ */ jsx(ContentPageChromeSkeleton, {})
14
- }
15
- );
16
- }
4
+ import { NeutralPageSkeleton } from "../Layout/skeletons/NeutralPageSkeleton";
17
5
  function AdminBootstrapSkeleton() {
18
- return /* @__PURE__ */ jsxs("div", { className: "flex h-screen flex-col bg-background", role: "status", "aria-label": "Loading CMS", children: [
6
+ return /* @__PURE__ */ jsxs("div", { className: "octo-layout", role: "status", "aria-label": "Loading CMS", children: [
19
7
  /* @__PURE__ */ jsx(TopHeaderSkeleton, {}),
20
- /* @__PURE__ */ jsx("div", { className: "flex min-h-0 flex-1 flex-col", children: /* @__PURE__ */ jsx(ContentPageChromeSkeleton, {}) })
8
+ /* @__PURE__ */ jsx("div", { className: "octo-page-shell octo-page-shell--skel-overflow", children: /* @__PURE__ */ jsx(NeutralPageSkeleton, {}) })
21
9
  ] });
22
10
  }
23
11
  export {
24
- AdminBootstrapSkeleton,
25
- MainSlotSkeleton
12
+ AdminBootstrapSkeleton
26
13
  };
27
14
  //# sourceMappingURL=MainSlotSkeleton.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../components/skeletons/MainSlotSkeleton.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ContentPageChromeSkeleton } from '../Dashboard/skeletons/ContentPageChromeSkeleton';\nimport { TopHeaderSkeleton } from '../Layout/skeletons/TopHeaderSkeleton';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * Fills `<main>` while the catch-all `AdminApp` RSC slot suspends (`await params`,\n * etc.). `TopHeader` stays mounted above this boundary.\n */\nexport function MainSlotSkeleton({ className }: { className?: string }) {\n return (\n <div\n className={cn('flex min-h-0 flex-1 flex-col overflow-hidden', className)}\n role=\"status\"\n aria-label=\"Loading page\"\n >\n <ContentPageChromeSkeleton />\n </div>\n );\n}\n\n/**\n * Full-viewport shell while `AdminLayoutInner` runs (e.g. `getThemeCookie()`).\n * No providers are mounted yet — static shimmer only.\n */\nexport function AdminBootstrapSkeleton() {\n return (\n <div className=\"flex h-screen flex-col bg-background\" role=\"status\" aria-label=\"Loading CMS\">\n <TopHeaderSkeleton />\n <div className=\"flex min-h-0 flex-1 flex-col\">\n <ContentPageChromeSkeleton />\n </div>\n </div>\n );\n}\n"],"mappings":";AAkBM,cAWF,YAXE;AAhBN,SAAS,iCAAiC;AAC1C,SAAS,yBAAyB;AAElC,SAAS,UAAU;AAMZ,SAAS,iBAAiB,EAAE,UAAU,GAA2B;AACtE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,gDAAgD,SAAS;AAAA,MACvE,MAAK;AAAA,MACL,cAAW;AAAA,MAEX,8BAAC,6BAA0B;AAAA;AAAA,EAC7B;AAEJ;AAMO,SAAS,yBAAyB;AACvC,SACE,qBAAC,SAAI,WAAU,wCAAuC,MAAK,UAAS,cAAW,eAC7E;AAAA,wBAAC,qBAAkB;AAAA,IACnB,oBAAC,SAAI,WAAU,gCACb,8BAAC,6BAA0B,GAC7B;AAAA,KACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../components/skeletons/MainSlotSkeleton.tsx"],"sourcesContent":["import React from 'react';\n\nimport { TopHeaderSkeleton } from '../Layout/skeletons/TopHeaderSkeleton';\n\nimport { NeutralPageSkeleton } from '../Layout/skeletons/NeutralPageSkeleton';\n\n/**\n * Full-viewport shell while `AdminLayoutInner` runs (e.g. `getThemeCookie()`).\n * No providers are mounted yet — static shimmer only.\n */\nexport function AdminBootstrapSkeleton() {\n return (\n <div className=\"octo-layout\" role=\"status\" aria-label=\"Loading CMS\">\n <TopHeaderSkeleton />\n <div className=\"octo-page-shell octo-page-shell--skel-overflow\">\n <NeutralPageSkeleton />\n </div>\n </div>\n );\n}\n"],"mappings":";AAYI,SACE,KADF;AAVJ,SAAS,yBAAyB;AAElC,SAAS,2BAA2B;AAM7B,SAAS,yBAAyB;AACvC,SACE,qBAAC,SAAI,WAAU,eAAc,MAAK,UAAS,cAAW,eACpD;AAAA,wBAAC,qBAAkB;AAAA,IACnB,oBAAC,SAAI,WAAU,kDACb,8BAAC,uBAAoB,GACvB;AAAA,KACF;AAEJ;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../components/skeletons/blocks.tsx"],"names":[],"mappings":"AAMA;;;;GAIG;AAEH;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAOtE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAS,EAAE,SAAS,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAe5F"}
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../components/skeletons/blocks.tsx"],"names":[],"mappings":"AAMA;;;;GAIG;AAEH;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAWtE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAS,EAAE,SAAS,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAe5F"}
@@ -3,10 +3,18 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { cn } from "../../lib/utils";
4
4
  import { ShimmerBlock } from "./primitives";
5
5
  function FormFieldSkeleton({ className }) {
6
- return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-1.5", className), role: "status", "aria-label": "Loading field", children: [
7
- /* @__PURE__ */ jsx(ShimmerBlock, { className: "h-3 w-24" }),
8
- /* @__PURE__ */ jsx(ShimmerBlock, { className: "h-9 w-full" })
9
- ] });
6
+ return /* @__PURE__ */ jsxs(
7
+ "div",
8
+ {
9
+ className: cn("octo-field", "octo-field octo-field--skel", className),
10
+ role: "status",
11
+ "aria-label": "Loading field",
12
+ children: [
13
+ /* @__PURE__ */ jsx(ShimmerBlock, { className: "octo-skel-h-3 octo-skel-w-24" }),
14
+ /* @__PURE__ */ jsx(ShimmerBlock, { className: "octo-skel-h-9 octo-skel-w-full" })
15
+ ]
16
+ }
17
+ );
10
18
  }
11
19
  function CardSkeleton({ lines = 3, className }) {
12
20
  return /* @__PURE__ */ jsxs(
@@ -14,10 +22,10 @@ function CardSkeleton({ lines = 3, className }) {
14
22
  {
15
23
  role: "status",
16
24
  "aria-label": "Loading card",
17
- className: cn("flex flex-col gap-3 rounded-xl border border-border bg-[var(--surface-1)] p-4", className),
25
+ className: cn("octo-card", "octo-card octo-card--skel-layout", className),
18
26
  children: [
19
- /* @__PURE__ */ jsx(ShimmerBlock, { className: "h-4 w-1/3" }),
20
- /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2", children: Array.from({ length: lines }, (_, i) => /* @__PURE__ */ jsx(ShimmerBlock, { className: "h-3 w-full" }, i)) })
27
+ /* @__PURE__ */ jsx(ShimmerBlock, { className: "octo-skel-h-4", style: { width: "33%" } }),
28
+ /* @__PURE__ */ jsx("div", { className: "octo-card__skel-lines", children: Array.from({ length: lines }, (_, i) => /* @__PURE__ */ jsx(ShimmerBlock, { className: "octo-skel-h-3 octo-skel-w-full" }, i)) })
21
29
  ]
22
30
  }
23
31
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../components/skeletons/blocks.tsx"],"sourcesContent":["import React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nimport { ShimmerBlock } from './primitives';\n\n/**\n * Cross-cutting block-level skeletons reused across admin pages.\n * Smaller than page skeletons, larger than primitives — sized to drop into\n * a real layout slot so layout shift is minimal when content resolves.\n */\n\n/**\n * Single label + input pair, sized to match a typical form row in the entry\n * editor and content-type detail. Width follows the surrounding container.\n */\nexport function FormFieldSkeleton({ className }: { className?: string }) {\n return (\n <div className={cn('flex flex-col gap-1.5', className)} role=\"status\" aria-label=\"Loading field\">\n <ShimmerBlock className=\"h-3 w-24\" />\n <ShimmerBlock className=\"h-9 w-full\" />\n </div>\n );\n}\n\n/**\n * Generic content card: header line, then `lines` body rows. Used for entry\n * sidebar cards (History, Linked By) and any boxed content slot.\n */\nexport function CardSkeleton({ lines = 3, className }: { lines?: number; className?: string }) {\n return (\n <div\n role=\"status\"\n aria-label=\"Loading card\"\n className={cn('flex flex-col gap-3 rounded-xl border border-border bg-[var(--surface-1)] p-4', className)}\n >\n <ShimmerBlock className=\"h-4 w-1/3\" />\n <div className=\"flex flex-col gap-2\">\n {Array.from({ length: lines }, (_, i) => (\n <ShimmerBlock key={i} className=\"h-3 w-full\" />\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":";AAkBI,SACE,KADF;AAhBJ,SAAS,UAAU;AAEnB,SAAS,oBAAoB;AAYtB,SAAS,kBAAkB,EAAE,UAAU,GAA2B;AACvE,SACE,qBAAC,SAAI,WAAW,GAAG,yBAAyB,SAAS,GAAG,MAAK,UAAS,cAAW,iBAC/E;AAAA,wBAAC,gBAAa,WAAU,YAAW;AAAA,IACnC,oBAAC,gBAAa,WAAU,cAAa;AAAA,KACvC;AAEJ;AAMO,SAAS,aAAa,EAAE,QAAQ,GAAG,UAAU,GAA2C;AAC7F,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAW;AAAA,MACX,WAAW,GAAG,iFAAiF,SAAS;AAAA,MAExG;AAAA,4BAAC,gBAAa,WAAU,aAAY;AAAA,QACpC,oBAAC,SAAI,WAAU,uBACZ,gBAAM,KAAK,EAAE,QAAQ,MAAM,GAAG,CAAC,GAAG,MACjC,oBAAC,gBAAqB,WAAU,gBAAb,CAA0B,CAC9C,GACH;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../components/skeletons/blocks.tsx"],"sourcesContent":["import React from 'react';\n\nimport { cn } from '../../lib/utils';\n\nimport { ShimmerBlock } from './primitives';\n\n/**\n * Cross-cutting block-level skeletons reused across admin pages.\n * Smaller than page skeletons, larger than primitives — sized to drop into\n * a real layout slot so layout shift is minimal when content resolves.\n */\n\n/**\n * Single label + input pair, sized to match a typical form row in the entry\n * editor and content-type detail. Width follows the surrounding container.\n */\nexport function FormFieldSkeleton({ className }: { className?: string }) {\n return (\n <div\n className={cn('octo-field', 'octo-field octo-field--skel', className)}\n role=\"status\"\n aria-label=\"Loading field\"\n >\n <ShimmerBlock className=\"octo-skel-h-3 octo-skel-w-24\" />\n <ShimmerBlock className=\"octo-skel-h-9 octo-skel-w-full\" />\n </div>\n );\n}\n\n/**\n * Generic content card: header line, then `lines` body rows. Used for entry\n * sidebar cards (History, Linked By) and any boxed content slot.\n */\nexport function CardSkeleton({ lines = 3, className }: { lines?: number; className?: string }) {\n return (\n <div\n role=\"status\"\n aria-label=\"Loading card\"\n className={cn('octo-card', 'octo-card octo-card--skel-layout', className)}\n >\n <ShimmerBlock className=\"octo-skel-h-4\" style={{ width: '33%' }} />\n <div className=\"octo-card__skel-lines\">\n {Array.from({ length: lines }, (_, i) => (\n <ShimmerBlock key={i} className=\"octo-skel-h-3 octo-skel-w-full\" />\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":";AAkBI,SAKE,KALF;AAhBJ,SAAS,UAAU;AAEnB,SAAS,oBAAoB;AAYtB,SAAS,kBAAkB,EAAE,UAAU,GAA2B;AACvE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,cAAc,+BAA+B,SAAS;AAAA,MACpE,MAAK;AAAA,MACL,cAAW;AAAA,MAEX;AAAA,4BAAC,gBAAa,WAAU,gCAA+B;AAAA,QACvD,oBAAC,gBAAa,WAAU,kCAAiC;AAAA;AAAA;AAAA,EAC3D;AAEJ;AAMO,SAAS,aAAa,EAAE,QAAQ,GAAG,UAAU,GAA2C;AAC7F,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAW;AAAA,MACX,WAAW,GAAG,aAAa,oCAAoC,SAAS;AAAA,MAExE;AAAA,4BAAC,gBAAa,WAAU,iBAAgB,OAAO,EAAE,OAAO,MAAM,GAAG;AAAA,QACjE,oBAAC,SAAI,WAAU,yBACZ,gBAAM,KAAK,EAAE,QAAQ,MAAM,GAAG,CAAC,GAAG,MACjC,oBAAC,gBAAqB,WAAU,oCAAb,CAA8C,CAClE,GACH;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}