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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../components/ui/FormField/FormStringListField.tsx"],"sourcesContent":["'use client';\n\nimport { Icon } from '../Icon/Icon';\nimport React, { useCallback, useEffect, useId, useMemo, useRef, useState } from 'react';\n\nimport { cn } from '../../../lib/utils';\nimport { normalizeStringListFromStorage } from '../../../lib/stringListField';\n\nimport { Field } from './Field';\n\ntype Row = { id: string; value: string };\n\ntype FormStringListFieldProps = {\n label: string;\n name: string;\n /** Stored value: `string[]`, or legacy single `string`. */\n value: unknown;\n required?: boolean;\n hint?: string;\n error?: string;\n onClearError?: (name: string) => void;\n};\n\nfunction rowsFromStrings(values: string[], nextId: () => string): Row[] {\n return values.map((value) => ({ id: nextId(), value }));\n}\n\nconst ListRow = ({\n row,\n index,\n onRemove,\n onDragStart,\n onDragOver,\n onDragEnd,\n onDrop,\n}: {\n row: Row;\n index: number;\n onRemove: (index: number) => void;\n onDragStart: (index: number) => void;\n onDragOver: (e: React.DragEvent, _index: number) => void;\n onDragEnd: () => void;\n onDrop: (index: number) => void;\n}) => (\n <div\n draggable\n onDragStart={() => onDragStart(index)}\n onDragOver={(e) => onDragOver(e, index)}\n onDragEnd={onDragEnd}\n onDrop={() => onDrop(index)}\n className=\"octo-ff-list__item\"\n >\n <span className=\"octo-ff-list__item-grip\" aria-hidden>\n <Icon.GripVertical className=\"octo-icon-md\" />\n </span>\n <span className=\"octo-ff-list__item-value\">{row.value}</span>\n <span className=\"octo-ff-list__item-sep\" aria-hidden />\n <button\n type=\"button\"\n onClick={() => onRemove(index)}\n className=\"octo-ff-list__item-remove\"\n aria-label={`Remove ${row.value}`}\n >\n <Icon.X className=\"octo-icon-md\" />\n </button>\n </div>\n);\n\nconst FormStringListField = ({ label, name, value, required, hint, error, onClearError }: FormStringListFieldProps) => {\n const inputId = useId();\n const idCounterRef = useRef(0);\n const nextRowId = useCallback(() => {\n idCounterRef.current += 1;\n return `str-list-${idCounterRef.current}`;\n }, []);\n\n const storageKey = useMemo(() => JSON.stringify(normalizeStringListFromStorage(value)), [value]);\n const [rows, setRows] = useState<Row[]>(() =>\n rowsFromStrings(JSON.parse(storageKey) as string[], () => {\n idCounterRef.current += 1;\n return `str-list-${idCounterRef.current}`;\n }),\n );\n const [draft, setDraft] = useState('');\n const [dragIndex, setDragIndex] = useState<number | null>(null);\n\n useEffect(() => {\n idCounterRef.current = 0;\n setRows(rowsFromStrings(JSON.parse(storageKey) as string[], nextRowId));\n setDraft('');\n }, [storageKey, nextRowId]);\n\n const serializedValue = useMemo(() => JSON.stringify(rows.map((r) => r.value)), [rows]);\n\n const commitDraft = useCallback(() => {\n const next = draft.trim();\n if (!next) return;\n setRows((prev) => [...prev, { id: nextRowId(), value: next }]);\n setDraft('');\n onClearError?.(name);\n }, [draft, name, nextRowId, onClearError]);\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n commitDraft();\n }\n };\n\n const handleRemove = useCallback(\n (index: number) => {\n setRows((prev) => prev.filter((_, i) => i !== index));\n onClearError?.(name);\n },\n [name, onClearError],\n );\n\n const handleDragStart = useCallback((index: number) => {\n setDragIndex(index);\n }, []);\n\n const handleDragOver = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n }, []);\n\n const handleDragEnd = useCallback(() => {\n setDragIndex(null);\n }, []);\n\n const handleDrop = useCallback(\n (targetIndex: number) => {\n if (dragIndex === null || dragIndex === targetIndex) return;\n setRows((prev) => {\n const next = [...prev];\n const [dragged] = next.splice(dragIndex, 1);\n next.splice(targetIndex, 0, dragged);\n return next;\n });\n setDragIndex(null);\n onClearError?.(name);\n },\n [dragIndex, name, onClearError],\n );\n\n return (\n <Field label={label} schema=\"string[]\" required={required} hint={hint} error={error}>\n <input\n id={inputId}\n className={cn('octo-ff-list__add-input', error && 'octo-ff-list__add-input octo-ff-list__add-input--error')}\n type=\"text\"\n value={draft}\n onChange={(e) => setDraft(e.target.value)}\n onKeyDown={handleKeyDown}\n onBlur={() => {\n if (draft.trim()) commitDraft();\n }}\n placeholder=\"Type the value and hit enter\"\n aria-invalid={error ? true : undefined}\n />\n {rows.length > 0 ? (\n <div className=\"octo-ff-list__items\">\n {rows.map((row, i) => (\n <ListRow\n key={row.id}\n row={row}\n index={i}\n onRemove={handleRemove}\n onDragStart={handleDragStart}\n onDragOver={handleDragOver}\n onDragEnd={handleDragEnd}\n onDrop={handleDrop}\n />\n ))}\n </div>\n ) : null}\n <input type=\"hidden\" name={name} value={serializedValue} />\n </Field>\n );\n};\n\nexport default FormStringListField;\n"],"mappings":"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","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormTextField.d.ts","sourceRoot":"","sources":["../../../../components/ui/FormField/FormTextField.tsx"],"names":[],"mappings":"AAWA,KAAK,kBAAkB,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C,CAAC;AAEF,QAAA,MAAM,aAAa,GAAI,oEASpB,kBAAkB,4CAcpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use client";
2
+ import "../../../chunk-B5LE2OEC.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { cn } from "../../../lib/utils";
5
+ import { Field } from "./Field";
6
+ import { FIELD_TEXTAREA_CLASS } from "./FieldShell";
7
+ const DEFAULT_ROWS = 4;
8
+ const FormTextField = ({
9
+ label,
10
+ name,
11
+ value,
12
+ rows = DEFAULT_ROWS,
13
+ required,
14
+ hint,
15
+ error,
16
+ onClearError
17
+ }) => {
18
+ return /* @__PURE__ */ jsx(Field, { label, htmlFor: name, schema: "text", required, hint, error, children: /* @__PURE__ */ jsx(
19
+ "textarea",
20
+ {
21
+ id: name,
22
+ className: cn(FIELD_TEXTAREA_CLASS, error && "octo-textarea octo-textarea--error"),
23
+ name,
24
+ rows,
25
+ defaultValue: value,
26
+ "aria-invalid": error ? true : void 0,
27
+ onChange: () => onClearError == null ? void 0 : onClearError(name)
28
+ }
29
+ ) });
30
+ };
31
+ var FormTextField_default = FormTextField;
32
+ export {
33
+ FormTextField_default as default
34
+ };
35
+ //# sourceMappingURL=FormTextField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../components/ui/FormField/FormTextField.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\n\nimport { cn } from '../../../lib/utils';\n\nimport { Field } from './Field';\nimport { FIELD_TEXTAREA_CLASS } from './FieldShell';\n\nconst DEFAULT_ROWS = 4;\n\ntype FormTextFieldProps = {\n label: string;\n name: string;\n value: string;\n rows?: number;\n required?: boolean;\n hint?: string;\n error?: string;\n onClearError?: (fieldName: string) => void;\n};\n\nconst FormTextField = ({\n label,\n name,\n value,\n rows = DEFAULT_ROWS,\n required,\n hint,\n error,\n onClearError,\n}: FormTextFieldProps) => {\n return (\n <Field label={label} htmlFor={name} schema=\"text\" required={required} hint={hint} error={error}>\n <textarea\n id={name}\n className={cn(FIELD_TEXTAREA_CLASS, error && 'octo-textarea octo-textarea--error')}\n name={name}\n rows={rows}\n defaultValue={value}\n aria-invalid={error ? true : undefined}\n onChange={() => onClearError?.(name)}\n />\n </Field>\n );\n};\n\nexport default FormTextField;\n"],"mappings":";;AAkCM;AA9BN,SAAS,UAAU;AAEnB,SAAS,aAAa;AACtB,SAAS,4BAA4B;AAErC,MAAM,eAAe;AAarB,MAAM,gBAAgB,CAAC;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA0B;AACxB,SACE,oBAAC,SAAM,OAAc,SAAS,MAAM,QAAO,QAAO,UAAoB,MAAY,OAChF;AAAA,IAAC;AAAA;AAAA,MACC,IAAI;AAAA,MACJ,WAAW,GAAG,sBAAsB,SAAS,oCAAoC;AAAA,MACjF;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd,gBAAc,QAAQ,OAAO;AAAA,MAC7B,UAAU,MAAM,6CAAe;AAAA;AAAA,EACjC,GACF;AAEJ;AAEA,IAAO,wBAAQ;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormUrlField.d.ts","sourceRoot":"","sources":["../../../../components/ui/FormField/FormUrlField.tsx"],"names":[],"mappings":"AAOA,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C,CAAC;AAEF,QAAA,MAAM,YAAY,GAAI,6DAA6D,iBAAiB,4CAkBnG,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use client";
2
+ import "../../../chunk-B5LE2OEC.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { Field } from "./Field";
5
+ import { FieldShell, FIELD_INPUT_CLASS } from "./FieldShell";
6
+ const FormUrlField = ({ label, name, value, required, hint, error, onClearError }) => {
7
+ return /* @__PURE__ */ jsx(Field, { label, htmlFor: name, schema: "url", required, hint, error, children: /* @__PURE__ */ jsx(FieldShell, { error: !!error, children: /* @__PURE__ */ jsx(
8
+ "input",
9
+ {
10
+ id: name,
11
+ className: FIELD_INPUT_CLASS,
12
+ type: "text",
13
+ inputMode: "url",
14
+ autoComplete: "url",
15
+ name,
16
+ defaultValue: value,
17
+ "aria-invalid": error ? true : void 0,
18
+ onChange: () => onClearError == null ? void 0 : onClearError(name)
19
+ }
20
+ ) }) });
21
+ };
22
+ var FormUrlField_default = FormUrlField;
23
+ export {
24
+ FormUrlField_default as default
25
+ };
26
+ //# sourceMappingURL=FormUrlField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../components/ui/FormField/FormUrlField.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\n\nimport { Field } from './Field';\nimport { FieldShell, FIELD_INPUT_CLASS } from './FieldShell';\n\ntype FormUrlFieldProps = {\n label: string;\n name: string;\n value: string;\n required?: boolean;\n hint?: string;\n error?: string;\n onClearError?: (fieldName: string) => void;\n};\n\nconst FormUrlField = ({ label, name, value, required, hint, error, onClearError }: FormUrlFieldProps) => {\n return (\n <Field label={label} htmlFor={name} schema=\"url\" required={required} hint={hint} error={error}>\n <FieldShell error={!!error}>\n <input\n id={name}\n className={FIELD_INPUT_CLASS}\n type=\"text\"\n inputMode=\"url\"\n autoComplete=\"url\"\n name={name}\n defaultValue={value}\n aria-invalid={error ? true : undefined}\n onChange={() => onClearError?.(name)}\n />\n </FieldShell>\n </Field>\n );\n};\n\nexport default FormUrlField;\n"],"mappings":";;AAqBQ;AAjBR,SAAS,aAAa;AACtB,SAAS,YAAY,yBAAyB;AAY9C,MAAM,eAAe,CAAC,EAAE,OAAO,MAAM,OAAO,UAAU,MAAM,OAAO,aAAa,MAAyB;AACvG,SACE,oBAAC,SAAM,OAAc,SAAS,MAAM,QAAO,OAAM,UAAoB,MAAY,OAC/E,8BAAC,cAAW,OAAO,CAAC,CAAC,OACnB;AAAA,IAAC;AAAA;AAAA,MACC,IAAI;AAAA,MACJ,WAAW;AAAA,MACX,MAAK;AAAA,MACL,WAAU;AAAA,MACV,cAAa;AAAA,MACb;AAAA,MACA,cAAc;AAAA,MACd,gBAAc,QAAQ,OAAO;AAAA,MAC7B,UAAU,MAAM,6CAAe;AAAA;AAAA,EACjC,GACF,GACF;AAEJ;AAEA,IAAO,uBAAQ;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { JsxEditorProps } from '@mdxeditor/editor';
3
- import type { RichTextComponentDef } from '../../admin/types';
3
+ import type { RichTextComponentDef } from '../../../../admin/types';
4
4
  /**
5
5
  * WYSIWYG editor component for custom JSX components embedded in richtext fields.
6
6
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentEmbedEditor.d.ts","sourceRoot":"","sources":["../../../../../components/ui/FormField/richtext/ComponentEmbedEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,yBAAyB,CAAC;AAE3F;;;;;GAKG;AACH,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAClC,cAAc,GAAG;IAAE,YAAY,EAAE,oBAAoB,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAqE/E,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,165 @@
1
+ "use client";
2
+ import "../../../../chunk-B5LE2OEC.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { useCallback } from "react";
5
+ import { Icon } from "../../Icon/Icon";
6
+ import { useMdastNodeUpdater } from "@mdxeditor/editor";
7
+ const ComponentEmbedEditor = ({ mdastNode, componentDef, componentName: _componentName }) => {
8
+ const updateNode = useMdastNodeUpdater();
9
+ const getAttrValue = useCallback(
10
+ (name) => {
11
+ var _a;
12
+ const attr = (_a = mdastNode.attributes) == null ? void 0 : _a.find((a) => a.type === "mdxJsxAttribute" && a.name === name);
13
+ return typeof (attr == null ? void 0 : attr.value) === "string" ? attr.value : "";
14
+ },
15
+ [mdastNode.attributes]
16
+ );
17
+ const updateProp = useCallback(
18
+ (propName, value) => {
19
+ var _a;
20
+ const existing = ((_a = mdastNode.attributes) != null ? _a : []).filter(
21
+ (a) => a.type === "mdxJsxAttribute" && a.name !== propName
22
+ );
23
+ updateNode({
24
+ attributes: [...existing, { type: "mdxJsxAttribute", name: propName, value }]
25
+ });
26
+ },
27
+ [mdastNode.attributes, updateNode]
28
+ );
29
+ const isBlock = componentDef.kind === "block";
30
+ if (!isBlock) {
31
+ return /* @__PURE__ */ jsxs(
32
+ "span",
33
+ {
34
+ className: "octo-var-embed octo-var-embed--set",
35
+ style: { background: "#78350f", color: "#fef3c7" },
36
+ contentEditable: false,
37
+ children: [
38
+ /* @__PURE__ */ jsx(Icon.Puzzle, { className: "octo-icon-xs octo-u-shrink-0" }),
39
+ /* @__PURE__ */ jsx("span", { children: componentDef.label }),
40
+ componentDef.props.map((prop) => {
41
+ const value = getAttrValue(prop.name);
42
+ if (!value) return null;
43
+ return /* @__PURE__ */ jsxs("span", { style: { color: "#fbbf24" }, children: [
44
+ prop.name,
45
+ '="',
46
+ value,
47
+ '"'
48
+ ] }, prop.name);
49
+ })
50
+ ]
51
+ }
52
+ );
53
+ }
54
+ return /* @__PURE__ */ jsxs("div", { className: "octo-embed-editor", contentEditable: false, children: [
55
+ /* @__PURE__ */ jsxs("div", { className: "octo-embed-editor__header", children: [
56
+ /* @__PURE__ */ jsx("div", { className: "octo-embed-editor__icon octo-embed-editor__icon--component", children: /* @__PURE__ */ jsx(Icon.Puzzle, { style: { width: 16, height: 16, color: "#fcd34d" } }) }),
57
+ /* @__PURE__ */ jsxs("div", { className: "octo-embed-editor__title-wrap", children: [
58
+ /* @__PURE__ */ jsx("span", { className: "octo-embed-editor__subtitle", children: "Component" }),
59
+ /* @__PURE__ */ jsx("span", { className: "octo-embed-editor__title", children: componentDef.label })
60
+ ] })
61
+ ] }),
62
+ /* @__PURE__ */ jsx("div", { className: "octo-embed-editor__body", children: componentDef.props.map((prop) => /* @__PURE__ */ jsx(PropInput, { prop, value: getAttrValue(prop.name), onChange: updateProp }, prop.name)) })
63
+ ] });
64
+ };
65
+ var ComponentEmbedEditor_default = ComponentEmbedEditor;
66
+ function PropInput({ prop, value, onChange }) {
67
+ var _a;
68
+ const handleChange = useCallback(
69
+ (e) => {
70
+ onChange(prop.name, e.target.value);
71
+ },
72
+ [prop.name, onChange]
73
+ );
74
+ const handleCheckbox = useCallback(
75
+ (e) => {
76
+ onChange(prop.name, e.target.checked ? "true" : "false");
77
+ },
78
+ [prop.name, onChange]
79
+ );
80
+ switch (prop.type) {
81
+ case "boolean":
82
+ return /* @__PURE__ */ jsxs("label", { className: "octo-embed-editor__field-checkbox", children: [
83
+ /* @__PURE__ */ jsx(
84
+ "input",
85
+ {
86
+ type: "checkbox",
87
+ checked: value === "true",
88
+ onChange: handleCheckbox,
89
+ className: "octo-embed-editor__input",
90
+ style: { width: "auto" }
91
+ }
92
+ ),
93
+ /* @__PURE__ */ jsxs("span", { className: "octo-embed-editor__field-label", children: [
94
+ prop.label,
95
+ prop.required && /* @__PURE__ */ jsx("span", { className: "octo-embed-editor__field-required", children: "*" })
96
+ ] })
97
+ ] });
98
+ case "number":
99
+ return /* @__PURE__ */ jsxs("label", { className: "octo-embed-editor__field", children: [
100
+ /* @__PURE__ */ jsxs("span", { className: "octo-embed-editor__field-label", children: [
101
+ prop.label,
102
+ prop.required && /* @__PURE__ */ jsx("span", { className: "octo-embed-editor__field-required", children: "*" })
103
+ ] }),
104
+ /* @__PURE__ */ jsx("input", { type: "number", value, onChange: handleChange, className: "octo-embed-editor__input" })
105
+ ] });
106
+ case "select":
107
+ return /* @__PURE__ */ jsxs("label", { className: "octo-embed-editor__field", children: [
108
+ /* @__PURE__ */ jsxs("span", { className: "octo-embed-editor__field-label", children: [
109
+ prop.label,
110
+ prop.required && /* @__PURE__ */ jsx("span", { className: "octo-embed-editor__field-required", children: "*" })
111
+ ] }),
112
+ /* @__PURE__ */ jsxs("select", { value, onChange: handleChange, className: "octo-embed-editor__input", children: [
113
+ !prop.required && /* @__PURE__ */ jsx("option", { value: "", children: "\u2014" }),
114
+ ((_a = prop.options) != null ? _a : []).map((opt) => /* @__PURE__ */ jsx("option", { value: opt.value, children: opt.label }, opt.value))
115
+ ] })
116
+ ] });
117
+ case "url":
118
+ return /* @__PURE__ */ jsxs("label", { className: "octo-embed-editor__field", children: [
119
+ /* @__PURE__ */ jsxs("span", { className: "octo-embed-editor__field-label", children: [
120
+ prop.label,
121
+ prop.required && /* @__PURE__ */ jsx("span", { className: "octo-embed-editor__field-required", children: "*" })
122
+ ] }),
123
+ /* @__PURE__ */ jsx(
124
+ "input",
125
+ {
126
+ type: "url",
127
+ value,
128
+ onChange: handleChange,
129
+ placeholder: "https://\u2026",
130
+ className: "octo-embed-editor__input"
131
+ }
132
+ )
133
+ ] });
134
+ case "image":
135
+ return /* @__PURE__ */ jsxs("label", { className: "octo-embed-editor__field", children: [
136
+ /* @__PURE__ */ jsxs("span", { className: "octo-embed-editor__field-label", children: [
137
+ prop.label,
138
+ prop.required && /* @__PURE__ */ jsx("span", { className: "octo-embed-editor__field-required", children: "*" })
139
+ ] }),
140
+ /* @__PURE__ */ jsx(
141
+ "input",
142
+ {
143
+ type: "text",
144
+ value,
145
+ onChange: handleChange,
146
+ placeholder: "Media UUID",
147
+ className: "octo-embed-editor__input"
148
+ }
149
+ )
150
+ ] });
151
+ case "string":
152
+ default:
153
+ return /* @__PURE__ */ jsxs("label", { className: "octo-embed-editor__field", children: [
154
+ /* @__PURE__ */ jsxs("span", { className: "octo-embed-editor__field-label", children: [
155
+ prop.label,
156
+ prop.required && /* @__PURE__ */ jsx("span", { className: "octo-embed-editor__field-required", children: "*" })
157
+ ] }),
158
+ /* @__PURE__ */ jsx("input", { type: "text", value, onChange: handleChange, className: "octo-embed-editor__input" })
159
+ ] });
160
+ }
161
+ }
162
+ export {
163
+ ComponentEmbedEditor_default as default
164
+ };
165
+ //# sourceMappingURL=ComponentEmbedEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../components/ui/FormField/richtext/ComponentEmbedEditor.tsx"],"sourcesContent":["'use client';\n\nimport React, { useCallback } from 'react';\nimport { Icon } from '../../Icon/Icon';\nimport type { JsxEditorProps } from '@mdxeditor/editor';\nimport { useMdastNodeUpdater } from '@mdxeditor/editor';\n\nimport type { RichTextComponentDef, RichTextComponentProp } from '../../../../admin/types';\n\n/**\n * WYSIWYG editor component for custom JSX components embedded in richtext fields.\n *\n * Renders a card with a dynamic props form generated from the `RichTextComponentDef`\n * configuration. Each prop type maps to an appropriate input control.\n */\nconst ComponentEmbedEditor: React.FC<\n JsxEditorProps & { componentDef: RichTextComponentDef; componentName: string }\n> = ({ mdastNode, componentDef, componentName: _componentName }) => {\n const updateNode = useMdastNodeUpdater();\n\n const getAttrValue = useCallback(\n (name: string): string => {\n const attr = mdastNode.attributes?.find((a: any) => a.type === 'mdxJsxAttribute' && a.name === name);\n return typeof attr?.value === 'string' ? attr.value : '';\n },\n [mdastNode.attributes],\n );\n\n const updateProp = useCallback(\n (propName: string, value: string) => {\n const existing = (mdastNode.attributes ?? []).filter(\n (a: any) => a.type === 'mdxJsxAttribute' && a.name !== propName,\n );\n updateNode({\n attributes: [...existing, { type: 'mdxJsxAttribute', name: propName, value }],\n } as any);\n },\n [mdastNode.attributes, updateNode],\n );\n\n const isBlock = componentDef.kind === 'block';\n\n if (!isBlock) {\n // Inline: compact pill with a popover-style edit on click\n return (\n <span\n className=\"octo-var-embed octo-var-embed--set\"\n style={{ background: '#78350f', color: '#fef3c7' }}\n contentEditable={false}\n >\n <Icon.Puzzle className=\"octo-icon-xs octo-u-shrink-0\" />\n <span>{componentDef.label}</span>\n {componentDef.props.map((prop) => {\n const value = getAttrValue(prop.name);\n if (!value) return null;\n return (\n <span key={prop.name} style={{ color: '#fbbf24' }}>\n {prop.name}=&quot;{value}&quot;\n </span>\n );\n })}\n </span>\n );\n }\n\n // Block: full card with props form\n return (\n <div className=\"octo-embed-editor\" contentEditable={false}>\n <div className=\"octo-embed-editor__header\">\n <div className=\"octo-embed-editor__icon octo-embed-editor__icon--component\">\n <Icon.Puzzle style={{ width: 16, height: 16, color: '#fcd34d' }} />\n </div>\n <div className=\"octo-embed-editor__title-wrap\">\n <span className=\"octo-embed-editor__subtitle\">Component</span>\n <span className=\"octo-embed-editor__title\">{componentDef.label}</span>\n </div>\n </div>\n\n <div className=\"octo-embed-editor__body\">\n {componentDef.props.map((prop) => (\n <PropInput key={prop.name} prop={prop} value={getAttrValue(prop.name)} onChange={updateProp} />\n ))}\n </div>\n </div>\n );\n};\n\nexport default ComponentEmbedEditor;\n\n// ---------------------------------------------------------------------------\n// Individual prop input renderers\n// ---------------------------------------------------------------------------\n\ntype PropInputProps = {\n prop: RichTextComponentProp;\n value: string;\n onChange: (name: string, value: string) => void;\n};\n\nfunction PropInput({ prop, value, onChange }: PropInputProps) {\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement>) => {\n onChange(prop.name, e.target.value);\n },\n [prop.name, onChange],\n );\n\n const handleCheckbox = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(prop.name, e.target.checked ? 'true' : 'false');\n },\n [prop.name, onChange],\n );\n\n switch (prop.type) {\n case 'boolean':\n return (\n <label className=\"octo-embed-editor__field-checkbox\">\n <input\n type=\"checkbox\"\n checked={value === 'true'}\n onChange={handleCheckbox}\n className=\"octo-embed-editor__input\"\n style={{ width: 'auto' }}\n />\n <span className=\"octo-embed-editor__field-label\">\n {prop.label}\n {prop.required && <span className=\"octo-embed-editor__field-required\">*</span>}\n </span>\n </label>\n );\n\n case 'number':\n return (\n <label className=\"octo-embed-editor__field\">\n <span className=\"octo-embed-editor__field-label\">\n {prop.label}\n {prop.required && <span className=\"octo-embed-editor__field-required\">*</span>}\n </span>\n <input type=\"number\" value={value} onChange={handleChange} className=\"octo-embed-editor__input\" />\n </label>\n );\n\n case 'select':\n return (\n <label className=\"octo-embed-editor__field\">\n <span className=\"octo-embed-editor__field-label\">\n {prop.label}\n {prop.required && <span className=\"octo-embed-editor__field-required\">*</span>}\n </span>\n <select value={value} onChange={handleChange} className=\"octo-embed-editor__input\">\n {!prop.required && <option value=\"\">—</option>}\n {(prop.options ?? []).map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </label>\n );\n\n case 'url':\n return (\n <label className=\"octo-embed-editor__field\">\n <span className=\"octo-embed-editor__field-label\">\n {prop.label}\n {prop.required && <span className=\"octo-embed-editor__field-required\">*</span>}\n </span>\n <input\n type=\"url\"\n value={value}\n onChange={handleChange}\n placeholder=\"https://…\"\n className=\"octo-embed-editor__input\"\n />\n </label>\n );\n\n case 'image':\n return (\n <label className=\"octo-embed-editor__field\">\n <span className=\"octo-embed-editor__field-label\">\n {prop.label}\n {prop.required && <span className=\"octo-embed-editor__field-required\">*</span>}\n </span>\n <input\n type=\"text\"\n value={value}\n onChange={handleChange}\n placeholder=\"Media UUID\"\n className=\"octo-embed-editor__input\"\n />\n </label>\n );\n\n case 'string':\n default:\n return (\n <label className=\"octo-embed-editor__field\">\n <span className=\"octo-embed-editor__field-label\">\n {prop.label}\n {prop.required && <span className=\"octo-embed-editor__field-required\">*</span>}\n </span>\n <input type=\"text\" value={value} onChange={handleChange} className=\"octo-embed-editor__input\" />\n </label>\n );\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConditionEmbedEditor.d.ts","sourceRoot":"","sources":["../../../../../components/ui/FormField/richtext/ConditionEmbedEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAG9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD;;;;;;GAMG;AACH,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAmOlD,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  __spreadProps,
4
4
  __spreadValues
5
- } from "../../chunk-B5LE2OEC.js";
5
+ } from "../../../../chunk-B5LE2OEC.js";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  import { useCallback, useMemo, useState } from "react";
8
- import { GitBranch, Plus, Trash2 } from "lucide-react";
8
+ import { Button } from "../../Button/Button";
9
+ import { Icon } from "../../Icon/Icon";
9
10
  import { useMdastNodeUpdater } from "@mdxeditor/editor";
10
- import { Button } from "../ui/button";
11
11
  const ConditionEmbedEditor = ({ mdastNode }) => {
12
12
  var _a, _b, _c;
13
13
  const updateNode = useMdastNodeUpdater();
@@ -126,17 +126,11 @@ const ConditionEmbedEditor = ({ mdastNode }) => {
126
126
  [mdastNode.children, updateNode, activeTab]
127
127
  );
128
128
  const activeBranch = branches.find((b) => b.key === activeTab);
129
- return /* @__PURE__ */ jsxs("div", { className: "my-2 rounded-lg border border-border bg-muted/30 p-3", contentEditable: false, children: [
130
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mb-3", children: [
131
- /* @__PURE__ */ jsx(
132
- "div",
133
- {
134
- className: "w-8 h-8 rounded-lg border border-border bg-teal-900 light:bg-teal-100 flex items-center\n justify-center flex-none",
135
- children: /* @__PURE__ */ jsx(GitBranch, { className: "w-4 h-4 text-teal-300 light:text-teal-700" })
136
- }
137
- ),
138
- /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
139
- /* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-muted-foreground", children: "Condition embed" }),
129
+ return /* @__PURE__ */ jsxs("div", { className: "octo-embed-editor", contentEditable: false, children: [
130
+ /* @__PURE__ */ jsxs("div", { className: "octo-embed-editor__header", children: [
131
+ /* @__PURE__ */ jsx("div", { className: "octo-embed-editor__icon octo-embed-editor__icon--condition", children: /* @__PURE__ */ jsx(Icon.GitBranch, { style: { width: 16, height: 16, color: "#5eead4" } }) }),
132
+ /* @__PURE__ */ jsxs("div", { className: "octo-embed-editor__title-wrap", children: [
133
+ /* @__PURE__ */ jsx("span", { className: "octo-embed-editor__subtitle", children: "Condition embed" }),
140
134
  editingField ? /* @__PURE__ */ jsx(
141
135
  "input",
142
136
  {
@@ -152,7 +146,8 @@ const ConditionEmbedEditor = ({ mdastNode }) => {
152
146
  setEditingField(false);
153
147
  }
154
148
  },
155
- className: "block text-sm font-medium w-full max-w-xs rounded border border-border bg-layout-bg px-1.5\n py-0.5 focus:outline-none",
149
+ className: "octo-embed-editor__input",
150
+ style: { display: "block", maxWidth: 240 },
156
151
  placeholder: "Field name (e.g. promo)"
157
152
  }
158
153
  ) : /* @__PURE__ */ jsx(
@@ -160,38 +155,29 @@ const ConditionEmbedEditor = ({ mdastNode }) => {
160
155
  {
161
156
  type: "button",
162
157
  onClick: () => setEditingField(true),
163
- className: "block text-sm font-medium hover:underline truncate",
158
+ className: "octo-embed-editor__title",
164
159
  title: "Click to edit condition field name",
165
- children: currentField || /* @__PURE__ */ jsx("span", { className: "text-muted-foreground italic", children: "Set field name\u2026" })
160
+ children: currentField || /* @__PURE__ */ jsx("span", { className: "octo-u-text-muted octo-u-italic", children: "Set field name\u2026" })
166
161
  }
167
162
  )
168
163
  ] })
169
164
  ] }),
170
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 border-b border-border mb-2 flex-wrap", children: [
165
+ /* @__PURE__ */ jsxs("div", { className: "octo-embed-editor__tabs", children: [
171
166
  branches.map((branch) => /* @__PURE__ */ jsx(
172
167
  "button",
173
168
  {
174
169
  type: "button",
175
170
  onClick: () => setActiveTab(branch.key),
176
- className: `px-3 py-1.5 text-xs font-medium border-b-2 transition-colors ${activeTab === branch.key ? "border-primary text-primary" : "border-transparent text-muted-foreground hover:text-foreground hover:border-border"}`,
171
+ className: `octo-embed-editor__tab${activeTab === branch.key ? " octo-embed-editor__tab octo-embed-editor__tab--active" : ""}`,
177
172
  children: branch.key
178
173
  },
179
174
  branch.key
180
175
  )),
181
- /* @__PURE__ */ jsx(
182
- "button",
183
- {
184
- type: "button",
185
- onClick: addBranch,
186
- className: "px-2 py-1.5 text-xs text-muted-foreground hover:text-foreground transition-colors",
187
- title: "Add branch",
188
- children: /* @__PURE__ */ jsx(Plus, { className: "w-3.5 h-3.5" })
189
- }
190
- )
176
+ /* @__PURE__ */ jsx("button", { type: "button", onClick: addBranch, className: "octo-embed-editor__tab-add", title: "Add branch", children: /* @__PURE__ */ jsx(Icon.Plus, { className: "octo-icon-sm" }) })
191
177
  ] }),
192
- activeBranch && /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
193
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
194
- /* @__PURE__ */ jsx("label", { htmlFor: `condition-branch-key-${activeBranch.key}`, className: "text-xs text-muted-foreground", children: "Key:" }),
178
+ activeBranch && /* @__PURE__ */ jsxs("div", { className: "octo-embed-editor__body", children: [
179
+ /* @__PURE__ */ jsxs("div", { className: "octo-embed-editor__branch-key-row", children: [
180
+ /* @__PURE__ */ jsx("label", { htmlFor: `condition-branch-key-${activeBranch.key}`, className: "octo-embed-editor__field-label", children: "Key:" }),
195
181
  /* @__PURE__ */ jsx(
196
182
  "input",
197
183
  {
@@ -199,7 +185,8 @@ const ConditionEmbedEditor = ({ mdastNode }) => {
199
185
  type: "text",
200
186
  value: activeBranch.key,
201
187
  onChange: (e) => renameBranch(activeBranch.key, e.target.value),
202
- className: "text-xs rounded border border-border bg-layout-bg px-1.5 py-0.5 w-32 focus:outline-none"
188
+ className: "octo-embed-editor__input",
189
+ style: { width: 128 }
203
190
  }
204
191
  ),
205
192
  branches.length > 1 && /* @__PURE__ */ jsx(
@@ -207,11 +194,10 @@ const ConditionEmbedEditor = ({ mdastNode }) => {
207
194
  {
208
195
  type: "button",
209
196
  variant: "ghost",
210
- size: "sm",
211
197
  onClick: () => removeBranch(activeBranch.key),
212
- className: "h-6 w-6 p-0 text-muted-foreground hover:text-destructive",
198
+ style: { height: 24, width: 24, padding: 0, color: "var(--muted)" },
213
199
  title: "Remove this branch",
214
- children: /* @__PURE__ */ jsx(Trash2, { className: "w-3.5 h-3.5" })
200
+ children: /* @__PURE__ */ jsx(Icon.Trash2, { className: "octo-icon-sm" })
215
201
  }
216
202
  )
217
203
  ] }),
@@ -221,15 +207,15 @@ const ConditionEmbedEditor = ({ mdastNode }) => {
221
207
  value: activeBranch.content,
222
208
  onChange: (e) => updateBranchContent(activeBranch.key, e.target.value),
223
209
  placeholder: "Branch content (markdown)\u2026",
224
- className: "w-full min-h-[80px] text-sm rounded-md border border-border bg-layout-bg px-3 py-2\n resize-y focus:outline-none",
210
+ className: "octo-embed-editor__textarea",
225
211
  rows: 3
226
212
  }
227
213
  )
228
214
  ] }),
229
- branches.length === 0 && /* @__PURE__ */ jsxs("div", { className: "text-center py-4 text-sm text-muted-foreground", children: [
215
+ branches.length === 0 && /* @__PURE__ */ jsxs("div", { className: "octo-embed-editor__empty", children: [
230
216
  "No branches yet.",
231
217
  " ",
232
- /* @__PURE__ */ jsx("button", { type: "button", onClick: addBranch, className: "text-primary hover:underline", children: "Add one" })
218
+ /* @__PURE__ */ jsx("button", { type: "button", onClick: addBranch, className: "octo-embed-editor__empty-link", children: "Add one" })
233
219
  ] })
234
220
  ] });
235
221
  };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../components/ui/FormField/richtext/ConditionEmbedEditor.tsx"],"sourcesContent":["'use client';\n\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { Button } from '../../Button/Button';\nimport { Icon } from '../../Icon/Icon';\nimport type { JsxEditorProps } from '@mdxeditor/editor';\nimport { useMdastNodeUpdater } from '@mdxeditor/editor';\n\n/**\n * WYSIWYG editor component for `<CmsCondition>` JSX embeds inside richtext fields.\n *\n * Renders a tabbed card where each tab is a branch (e.g. \"control\", \"test\").\n * Each branch's content is stored as the text value of a `<CmsBranch key=\"...\">` child element.\n * The `field` attribute identifies this condition (e.g. \"promo\", \"hero\").\n */\nconst ConditionEmbedEditor: React.FC<JsxEditorProps> = ({ mdastNode }) => {\n const updateNode = useMdastNodeUpdater();\n\n // Read `field` attribute\n const fieldAttr = mdastNode.attributes?.find((a: any) => a.type === 'mdxJsxAttribute' && a.name === 'field');\n const currentField = typeof fieldAttr?.value === 'string' ? fieldAttr.value : '';\n\n // Parse CmsBranch children to extract { key, content } pairs\n const branches = useMemo(() => {\n const result: { key: string; content: string }[] = [];\n for (const child of mdastNode.children ?? []) {\n if (child.type === 'mdxJsxFlowElement' && child.name === 'CmsBranch') {\n const keyAttr = (child as any).attributes?.find((a: any) => a.type === 'mdxJsxAttribute' && a.name === 'key');\n const key = typeof keyAttr?.value === 'string' ? keyAttr.value : '';\n // Extract text content from children of CmsBranch\n const content = serializeChildrenToMarkdown((child as any).children ?? []);\n result.push({ key, content });\n }\n }\n return result;\n }, [mdastNode.children]);\n\n const [activeTab, setActiveTab] = useState(branches[0]?.key ?? '');\n const [editingField, setEditingField] = useState(false);\n\n const updateField = useCallback(\n (newField: string) => {\n const existingAttrs = (mdastNode.attributes ?? []).filter(\n (a: any) => a.type === 'mdxJsxAttribute' && a.name !== 'field',\n );\n updateNode({\n attributes: [...existingAttrs, { type: 'mdxJsxAttribute', name: 'field', value: newField }],\n } as any);\n },\n [mdastNode.attributes, updateNode],\n );\n\n const updateBranchContent = useCallback(\n (branchKey: string, newContent: string) => {\n const children = (mdastNode.children ?? []).map((child: any) => {\n if (child.type === 'mdxJsxFlowElement' && child.name === 'CmsBranch') {\n const keyAttr = child.attributes?.find((a: any) => a.type === 'mdxJsxAttribute' && a.name === 'key');\n const key = typeof keyAttr?.value === 'string' ? keyAttr.value : '';\n if (key === branchKey) {\n return {\n ...child,\n children: [{ type: 'text', value: newContent }],\n };\n }\n }\n return child;\n });\n updateNode({ children } as any);\n },\n [mdastNode.children, updateNode],\n );\n\n const addBranch = useCallback(() => {\n const existingKeys = branches.map((b) => b.key);\n let newKey = 'variant';\n let counter = 1;\n while (existingKeys.includes(newKey)) {\n newKey = `variant${counter}`;\n counter++;\n }\n const newChild = {\n type: 'mdxJsxFlowElement',\n name: 'CmsBranch',\n attributes: [{ type: 'mdxJsxAttribute', name: 'key', value: newKey }],\n children: [{ type: 'text', value: '' }],\n };\n updateNode({\n children: [...(mdastNode.children ?? []), newChild],\n } as any);\n setActiveTab(newKey);\n }, [branches, mdastNode.children, updateNode]);\n\n const removeBranch = useCallback(\n (branchKey: string) => {\n if (branches.length <= 1) return; // Must keep at least one branch\n const children = (mdastNode.children ?? []).filter((child: any) => {\n if (child.type === 'mdxJsxFlowElement' && child.name === 'CmsBranch') {\n const keyAttr = child.attributes?.find((a: any) => a.type === 'mdxJsxAttribute' && a.name === 'key');\n const key = typeof keyAttr?.value === 'string' ? keyAttr.value : '';\n return key !== branchKey;\n }\n return true;\n });\n updateNode({ children } as any);\n if (activeTab === branchKey) {\n const remaining = branches.filter((b) => b.key !== branchKey);\n setActiveTab(remaining[0]?.key ?? '');\n }\n },\n [branches, mdastNode.children, updateNode, activeTab],\n );\n\n const renameBranch = useCallback(\n (oldKey: string, newKey: string) => {\n if (!newKey.trim() || oldKey === newKey) return;\n const children = (mdastNode.children ?? []).map((child: any) => {\n if (child.type === 'mdxJsxFlowElement' && child.name === 'CmsBranch') {\n const keyAttr = child.attributes?.find((a: any) => a.type === 'mdxJsxAttribute' && a.name === 'key');\n const key = typeof keyAttr?.value === 'string' ? keyAttr.value : '';\n if (key === oldKey) {\n return {\n ...child,\n attributes: [{ type: 'mdxJsxAttribute', name: 'key', value: newKey }],\n };\n }\n }\n return child;\n });\n updateNode({ children } as any);\n if (activeTab === oldKey) {\n setActiveTab(newKey);\n }\n },\n [mdastNode.children, updateNode, activeTab],\n );\n\n const activeBranch = branches.find((b) => b.key === activeTab);\n\n return (\n <div className=\"octo-embed-editor\" contentEditable={false}>\n {/* Header */}\n <div className=\"octo-embed-editor__header\">\n <div className=\"octo-embed-editor__icon octo-embed-editor__icon--condition\">\n <Icon.GitBranch style={{ width: 16, height: 16, color: '#5eead4' }} />\n </div>\n <div className=\"octo-embed-editor__title-wrap\">\n <span className=\"octo-embed-editor__subtitle\">Condition embed</span>\n {editingField ? (\n <input\n type=\"text\"\n defaultValue={currentField}\n onBlur={(e) => {\n updateField(e.target.value);\n setEditingField(false);\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n updateField((e.target as HTMLInputElement).value);\n setEditingField(false);\n }\n }}\n className=\"octo-embed-editor__input\"\n style={{ display: 'block', maxWidth: 240 }}\n placeholder=\"Field name (e.g. promo)\"\n />\n ) : (\n <button\n type=\"button\"\n onClick={() => setEditingField(true)}\n className=\"octo-embed-editor__title\"\n title=\"Click to edit condition field name\"\n >\n {currentField || <span className=\"octo-u-text-muted octo-u-italic\">Set field name…</span>}\n </button>\n )}\n </div>\n </div>\n\n {/* Tabs */}\n <div className=\"octo-embed-editor__tabs\">\n {branches.map((branch) => (\n <button\n key={branch.key}\n type=\"button\"\n onClick={() => setActiveTab(branch.key)}\n className={`octo-embed-editor__tab${activeTab === branch.key ? ' octo-embed-editor__tab octo-embed-editor__tab--active' : ''}`}\n >\n {branch.key}\n </button>\n ))}\n <button type=\"button\" onClick={addBranch} className=\"octo-embed-editor__tab-add\" title=\"Add branch\">\n <Icon.Plus className=\"octo-icon-sm\" />\n </button>\n </div>\n\n {/* Active branch editor */}\n {activeBranch && (\n <div className=\"octo-embed-editor__body\">\n <div className=\"octo-embed-editor__branch-key-row\">\n <label htmlFor={`condition-branch-key-${activeBranch.key}`} className=\"octo-embed-editor__field-label\">\n Key:\n </label>\n <input\n id={`condition-branch-key-${activeBranch.key}`}\n type=\"text\"\n value={activeBranch.key}\n onChange={(e) => renameBranch(activeBranch.key, e.target.value)}\n className=\"octo-embed-editor__input\"\n style={{ width: 128 }}\n />\n {branches.length > 1 && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n onClick={() => removeBranch(activeBranch.key)}\n style={{ height: 24, width: 24, padding: 0, color: 'var(--muted)' }}\n title=\"Remove this branch\"\n >\n <Icon.Trash2 className=\"octo-icon-sm\" />\n </Button>\n )}\n </div>\n <textarea\n value={activeBranch.content}\n onChange={(e) => updateBranchContent(activeBranch.key, e.target.value)}\n placeholder=\"Branch content (markdown)…\"\n className=\"octo-embed-editor__textarea\"\n rows={3}\n />\n </div>\n )}\n\n {branches.length === 0 && (\n <div className=\"octo-embed-editor__empty\">\n No branches yet.{' '}\n <button type=\"button\" onClick={addBranch} className=\"octo-embed-editor__empty-link\">\n Add one\n </button>\n </div>\n )}\n </div>\n );\n};\n\nexport default ConditionEmbedEditor;\n\n// ---------------------------------------------------------------------------\n// Helper: serialize mdast children to a plain markdown-like text string\n// ---------------------------------------------------------------------------\n\nfunction serializeChildrenToMarkdown(children: any[]): string {\n return children\n .map((child: any) => {\n if (child.type === 'text') return child.value ?? '';\n if (child.type === 'paragraph') return serializeChildrenToMarkdown(child.children ?? []);\n return '';\n })\n .join('');\n}\n"],"mappings":"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","names":["_a","_b","_c"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageEmbedEditor.d.ts","sourceRoot":"","sources":["../../../../../components/ui/FormField/richtext/ImageEmbedEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkE,MAAM,OAAO,CAAC;AAMvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAWxD,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAuR9C,CAAC;AAEF,eAAe,gBAAgB,CAAC"}