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
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  __spreadProps,
4
4
  __spreadValues
5
- } from "../chunk-B5LE2OEC.js";
5
+ } from "../../../chunk-B5LE2OEC.js";
6
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
7
  import { useCallback, useRef, useEffect, useMemo, useState } from "react";
8
8
  import {
@@ -33,9 +33,9 @@ import {
33
33
  InsertCodeBlock
34
34
  } from "@mdxeditor/editor";
35
35
  import { usePublisher } from "@mdxeditor/gurx";
36
- import { FileText, GitBranch, ImagePlus, Puzzle, Variable } from "lucide-react";
37
- import { cn } from "../lib/utils";
38
- import { FieldHintAndError } from "./FieldHintAndError";
36
+ import { Icon } from "../Icon/Icon";
37
+ import { cn } from "../../../lib/utils";
38
+ import { Field } from "./Field";
39
39
  import ComponentEmbedEditor from "./richtext/ComponentEmbedEditor";
40
40
  import ConditionEmbedEditor from "./richtext/ConditionEmbedEditor";
41
41
  import ImageEmbedEditor from "./richtext/ImageEmbedEditor";
@@ -57,7 +57,7 @@ function InsertCmsImageButton() {
57
57
  props: { mediaId: "" }
58
58
  });
59
59
  },
60
- children: /* @__PURE__ */ jsx(ImagePlus, { className: "w-4 h-4" })
60
+ children: /* @__PURE__ */ jsx(Icon.ImagePlus, { className: "octo-icon-md" })
61
61
  }
62
62
  );
63
63
  }
@@ -76,7 +76,7 @@ function InsertCmsRefButton() {
76
76
  props: { id: "", display: "block" }
77
77
  });
78
78
  },
79
- children: /* @__PURE__ */ jsx(FileText, { className: "w-4 h-4" })
79
+ children: /* @__PURE__ */ jsx(Icon.FileText, { className: "octo-icon-md" })
80
80
  }
81
81
  );
82
82
  }
@@ -96,7 +96,7 @@ function InsertCmsVarButton({ variables }) {
96
96
  props: { name: (_a = variables[0]) != null ? _a : "" }
97
97
  });
98
98
  },
99
- children: /* @__PURE__ */ jsx(Variable, { className: "w-4 h-4" })
99
+ children: /* @__PURE__ */ jsx(Icon.Variable, { className: "octo-icon-md" })
100
100
  }
101
101
  );
102
102
  }
@@ -115,7 +115,7 @@ function InsertCmsConditionButton() {
115
115
  props: { field: "" }
116
116
  });
117
117
  },
118
- children: /* @__PURE__ */ jsx(GitBranch, { className: "w-4 h-4" })
118
+ children: /* @__PURE__ */ jsx(Icon.GitBranch, { className: "octo-icon-md" })
119
119
  }
120
120
  );
121
121
  }
@@ -204,14 +204,14 @@ function InsertCustomComponentButton({ components }) {
204
204
  props: defaultProps
205
205
  });
206
206
  },
207
- children: /* @__PURE__ */ jsx(Puzzle, { className: "w-4 h-4" })
207
+ children: /* @__PURE__ */ jsx(Icon.Puzzle, { className: "octo-icon-md" })
208
208
  }
209
209
  );
210
210
  }
211
- return /* @__PURE__ */ jsx("div", { className: "relative inline-block", children: /* @__PURE__ */ jsxs(
211
+ return /* @__PURE__ */ jsx("div", { className: "octo-richtext-toolbar-select-wrap", children: /* @__PURE__ */ jsxs(
212
212
  "select",
213
213
  {
214
- className: "mdxeditor-toolbar-button appearance-none bg-transparent text-xs cursor-pointer pr-5 pl-1",
214
+ className: "mdxeditor-toolbar-button octo-richtext-toolbar-select",
215
215
  value: "",
216
216
  title: "Insert component",
217
217
  onChange: (e) => {
@@ -274,7 +274,7 @@ const FormRichTextField = ({
274
274
  key: "h1",
275
275
  label: "Heading 1",
276
276
  description: "Large section heading",
277
- icon: /* @__PURE__ */ jsx("span", { className: "text-xs font-bold", children: "H1" }),
277
+ icon: /* @__PURE__ */ jsx("span", { className: "octo-u-text-xs octo-u-font-semibold", children: "H1" }),
278
278
  action: () => {
279
279
  var _a3;
280
280
  return (_a3 = editorRef.current) == null ? void 0 : _a3.insertMarkdown("\n# ");
@@ -285,7 +285,7 @@ const FormRichTextField = ({
285
285
  key: "h2",
286
286
  label: "Heading 2",
287
287
  description: "Medium section heading",
288
- icon: /* @__PURE__ */ jsx("span", { className: "text-xs font-bold", children: "H2" }),
288
+ icon: /* @__PURE__ */ jsx("span", { className: "octo-u-text-xs octo-u-font-semibold", children: "H2" }),
289
289
  action: () => {
290
290
  var _a3;
291
291
  return (_a3 = editorRef.current) == null ? void 0 : _a3.insertMarkdown("\n## ");
@@ -296,7 +296,7 @@ const FormRichTextField = ({
296
296
  key: "h3",
297
297
  label: "Heading 3",
298
298
  description: "Small section heading",
299
- icon: /* @__PURE__ */ jsx("span", { className: "text-xs font-bold", children: "H3" }),
299
+ icon: /* @__PURE__ */ jsx("span", { className: "octo-u-text-xs octo-u-font-semibold", children: "H3" }),
300
300
  action: () => {
301
301
  var _a3;
302
302
  return (_a3 = editorRef.current) == null ? void 0 : _a3.insertMarkdown("\n### ");
@@ -306,7 +306,7 @@ const FormRichTextField = ({
306
306
  items.push({
307
307
  key: "bullet-list",
308
308
  label: "Bullet List",
309
- icon: /* @__PURE__ */ jsx("span", { className: "text-xs", children: "\u2022" }),
309
+ icon: /* @__PURE__ */ jsx("span", { className: "octo-u-text-xs", children: "\u2022" }),
310
310
  action: () => {
311
311
  var _a3;
312
312
  return (_a3 = editorRef.current) == null ? void 0 : _a3.insertMarkdown("\n- ");
@@ -316,7 +316,7 @@ const FormRichTextField = ({
316
316
  items.push({
317
317
  key: "numbered-list",
318
318
  label: "Numbered List",
319
- icon: /* @__PURE__ */ jsx("span", { className: "text-xs", children: "1." }),
319
+ icon: /* @__PURE__ */ jsx("span", { className: "octo-u-text-xs", children: "1." }),
320
320
  action: () => {
321
321
  var _a3;
322
322
  return (_a3 = editorRef.current) == null ? void 0 : _a3.insertMarkdown("\n1. ");
@@ -326,7 +326,7 @@ const FormRichTextField = ({
326
326
  items.push({
327
327
  key: "quote",
328
328
  label: "Quote",
329
- icon: /* @__PURE__ */ jsx("span", { className: "text-xs", children: ">" }),
329
+ icon: /* @__PURE__ */ jsx("span", { className: "octo-u-text-xs", children: ">" }),
330
330
  action: () => {
331
331
  var _a3;
332
332
  return (_a3 = editorRef.current) == null ? void 0 : _a3.insertMarkdown("\n> ");
@@ -336,7 +336,7 @@ const FormRichTextField = ({
336
336
  items.push({
337
337
  key: "code-block",
338
338
  label: "Code Block",
339
- icon: /* @__PURE__ */ jsx("span", { className: "text-xs font-mono", children: "{}" }),
339
+ icon: /* @__PURE__ */ jsx("span", { className: "octo-u-text-xs octo-u-mono", children: "{}" }),
340
340
  action: () => {
341
341
  var _a3;
342
342
  return (_a3 = editorRef.current) == null ? void 0 : _a3.insertMarkdown("\n```\n\n```\n");
@@ -346,7 +346,7 @@ const FormRichTextField = ({
346
346
  items.push({
347
347
  key: "divider",
348
348
  label: "Divider",
349
- icon: /* @__PURE__ */ jsx("span", { className: "text-xs", children: "\u2014" }),
349
+ icon: /* @__PURE__ */ jsx("span", { className: "octo-u-text-xs", children: "\u2014" }),
350
350
  action: () => {
351
351
  var _a3;
352
352
  return (_a3 = editorRef.current) == null ? void 0 : _a3.insertMarkdown("\n---\n");
@@ -356,7 +356,7 @@ const FormRichTextField = ({
356
356
  items.push({
357
357
  key: "table",
358
358
  label: "Table",
359
- icon: /* @__PURE__ */ jsx("span", { className: "text-xs", children: "\u229E" }),
359
+ icon: /* @__PURE__ */ jsx("span", { className: "octo-u-text-xs", children: "\u229E" }),
360
360
  action: () => {
361
361
  var _a3;
362
362
  return (_a3 = editorRef.current) == null ? void 0 : _a3.insertMarkdown("\n| Col 1 | Col 2 |\n| --- | --- |\n| Cell | Cell |\n");
@@ -368,7 +368,7 @@ const FormRichTextField = ({
368
368
  key: "cms-image",
369
369
  label: "CMS Image",
370
370
  description: "Insert from media library",
371
- icon: /* @__PURE__ */ jsx(ImagePlus, { className: "w-4 h-4" }),
371
+ icon: /* @__PURE__ */ jsx(Icon.ImagePlus, { className: "octo-icon-md" }),
372
372
  action: () => {
373
373
  var _a3;
374
374
  return (_a3 = insertJsxRef.current) == null ? void 0 : _a3.call(insertJsxRef, { kind: "flow", name: "CmsImage", props: { mediaId: "" } });
@@ -381,7 +381,7 @@ const FormRichTextField = ({
381
381
  key: "cms-ref",
382
382
  label: "Entry Reference",
383
383
  description: "Embed a content entry",
384
- icon: /* @__PURE__ */ jsx(FileText, { className: "w-4 h-4" }),
384
+ icon: /* @__PURE__ */ jsx(Icon.FileText, { className: "octo-icon-md" }),
385
385
  action: () => {
386
386
  var _a3;
387
387
  return (_a3 = insertJsxRef.current) == null ? void 0 : _a3.call(insertJsxRef, { kind: "flow", name: "CmsRef", props: { id: "", display: "block" } });
@@ -394,7 +394,7 @@ const FormRichTextField = ({
394
394
  key: "cms-condition",
395
395
  label: "Condition Block",
396
396
  description: "A/B content branches",
397
- icon: /* @__PURE__ */ jsx(GitBranch, { className: "w-4 h-4" }),
397
+ icon: /* @__PURE__ */ jsx(Icon.GitBranch, { className: "octo-icon-md" }),
398
398
  action: () => {
399
399
  var _a3;
400
400
  return (_a3 = insertJsxRef.current) == null ? void 0 : _a3.call(insertJsxRef, { kind: "flow", name: "CmsCondition", props: { field: "" } });
@@ -408,7 +408,7 @@ const FormRichTextField = ({
408
408
  key: "cms-var",
409
409
  label: "Template Variable",
410
410
  description: "Dynamic value placeholder",
411
- icon: /* @__PURE__ */ jsx(Variable, { className: "w-4 h-4" }),
411
+ icon: /* @__PURE__ */ jsx(Icon.Variable, { className: "octo-icon-md" }),
412
412
  action: () => {
413
413
  var _a3, _b3;
414
414
  return (_b3 = insertJsxRef.current) == null ? void 0 : _b3.call(insertJsxRef, { kind: "text", name: "CmsVar", props: { name: (_a3 = vars[0]) != null ? _a3 : "" } });
@@ -427,7 +427,7 @@ const FormRichTextField = ({
427
427
  key: `component-${cName}`,
428
428
  label: def.label,
429
429
  description: `Component: ${cName}`,
430
- icon: /* @__PURE__ */ jsx(Puzzle, { className: "w-4 h-4" }),
430
+ icon: /* @__PURE__ */ jsx(Icon.Puzzle, { className: "octo-icon-md" }),
431
431
  action: () => {
432
432
  var _a3;
433
433
  return (_a3 = insertJsxRef.current) == null ? void 0 : _a3.call(insertJsxRef, {
@@ -605,13 +605,9 @@ const FormRichTextField = ({
605
605
  showUndoRedo
606
606
  ]
607
607
  );
608
- return /* @__PURE__ */ jsxs("div", { className: "mb-6", children: [
609
- /* @__PURE__ */ jsxs("div", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: [
610
- label,
611
- required ? /* @__PURE__ */ jsx("span", { className: "text-destructive ml-1", children: "*" }) : null
612
- ] }),
608
+ return /* @__PURE__ */ jsxs(Field, { label, schema: "richtext", required, hint, error, className: "octo-ff-richtext", children: [
613
609
  /* @__PURE__ */ jsx("input", { type: "hidden", ref: hiddenInputRef, name, defaultValue: value }),
614
- /* @__PURE__ */ jsxs("div", { ref: editorWrapRef, className: "relative", children: [
610
+ /* @__PURE__ */ jsxs("div", { ref: editorWrapRef, className: "octo-ff-richtext__editor-wrap", children: [
615
611
  /* @__PURE__ */ jsx(
616
612
  MDXEditor,
617
613
  {
@@ -633,8 +629,7 @@ const FormRichTextField = ({
633
629
  onClose: handleSlashClose
634
630
  }
635
631
  )
636
- ] }),
637
- /* @__PURE__ */ jsx(FieldHintAndError, { hint, error })
632
+ ] })
638
633
  ] });
639
634
  };
640
635
  var FormRichTextField_default = FormRichTextField;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../components/ui/FormField/FormRichTextField.tsx"],"sourcesContent":["'use client';\n\nimport React, { useCallback, useRef, useEffect, useMemo, useState } from 'react';\n\nimport {\n MDXEditorMethods,\n MDXEditor,\n Separator,\n headingsPlugin,\n listsPlugin,\n quotePlugin,\n thematicBreakPlugin,\n linkPlugin,\n linkDialogPlugin,\n imagePlugin,\n tablePlugin,\n codeBlockPlugin,\n markdownShortcutPlugin,\n toolbarPlugin,\n jsxPlugin,\n insertJsx$,\n BoldItalicUnderlineToggles,\n CreateLink,\n ListsToggle,\n BlockTypeSelect,\n InsertTable,\n InsertThematicBreak,\n InsertImage,\n CodeToggle,\n UndoRedo,\n InsertCodeBlock,\n} from '@mdxeditor/editor';\nimport type { JsxComponentDescriptor } from '@mdxeditor/editor';\nimport { usePublisher } from '@mdxeditor/gurx';\nimport { Icon } from '../Icon/Icon';\n\nimport { cn } from '../../../lib/utils';\nimport type { RichTextComponentDef, RichTextFieldConfig } from '../../../admin/types';\n\nimport { Field } from './Field';\nimport ComponentEmbedEditor from './richtext/ComponentEmbedEditor';\nimport ConditionEmbedEditor from './richtext/ConditionEmbedEditor';\nimport ImageEmbedEditor from './richtext/ImageEmbedEditor';\nimport ReferenceEmbedEditor from './richtext/ReferenceEmbedEditor';\nimport { SlashMenuOverlay } from './richtext/SlashCommandMenu';\nimport VariableEmbedEditor from './richtext/VariableEmbedEditor';\n\ntype FormRichTextFieldProps = {\n label: string;\n name: string;\n value: string;\n required?: boolean;\n hint?: string;\n error?: string;\n onClearError?: (name: string) => void;\n richtext?: RichTextFieldConfig;\n};\n\nfunction InsertCmsImageButton() {\n const insertJsx = usePublisher(insertJsx$);\n return (\n <button\n type=\"button\"\n title=\"Insert CMS image\"\n className=\"mdxeditor-toolbar-button\"\n onClick={() => {\n insertJsx({\n kind: 'flow',\n name: 'CmsImage',\n props: { mediaId: '' },\n });\n }}\n >\n <Icon.ImagePlus className=\"octo-icon-md\" />\n </button>\n );\n}\n\nfunction InsertCmsRefButton() {\n const insertJsx = usePublisher(insertJsx$);\n return (\n <button\n type=\"button\"\n title=\"Insert entry reference\"\n className=\"mdxeditor-toolbar-button\"\n onClick={() => {\n insertJsx({\n kind: 'flow',\n name: 'CmsRef',\n props: { id: '', display: 'block' },\n });\n }}\n >\n <Icon.FileText className=\"octo-icon-md\" />\n </button>\n );\n}\n\nfunction InsertCmsVarButton({ variables }: { variables: string[] }) {\n const insertJsx = usePublisher(insertJsx$);\n return (\n <button\n type=\"button\"\n title=\"Insert template variable\"\n className=\"mdxeditor-toolbar-button\"\n onClick={() => {\n insertJsx({\n kind: 'text',\n name: 'CmsVar',\n props: { name: variables[0] ?? '' },\n });\n }}\n >\n <Icon.Variable className=\"octo-icon-md\" />\n </button>\n );\n}\n\nfunction InsertCmsConditionButton() {\n const insertJsx = usePublisher(insertJsx$);\n return (\n <button\n type=\"button\"\n title=\"Insert condition block\"\n className=\"mdxeditor-toolbar-button\"\n onClick={() => {\n insertJsx({\n kind: 'flow',\n name: 'CmsCondition',\n props: { field: '' },\n });\n }}\n >\n <Icon.GitBranch className=\"octo-icon-md\" />\n </button>\n );\n}\n\nconst CMS_IMAGE_DESCRIPTOR: JsxComponentDescriptor = {\n name: 'CmsImage',\n kind: 'flow',\n props: [{ name: 'mediaId', type: 'string', required: true }],\n hasChildren: false,\n Editor: ImageEmbedEditor,\n};\n\nconst CMS_REFERENCE_DESCRIPTOR: JsxComponentDescriptor = {\n name: 'CmsRef',\n kind: 'flow',\n props: [\n { name: 'id', type: 'string', required: true },\n { name: 'display', type: 'string', required: false },\n ],\n hasChildren: false,\n Editor: ReferenceEmbedEditor,\n};\n\nfunction buildCmsVarDescriptor(allowedVariables: string[]): JsxComponentDescriptor {\n return {\n name: 'CmsVar',\n kind: 'text',\n props: [{ name: 'name', type: 'string', required: true }],\n hasChildren: false,\n Editor: (props: any) => <VariableEmbedEditor {...props} allowedVariables={allowedVariables} />,\n };\n}\n\nfunction buildCustomComponentDescriptor(name: string, def: RichTextComponentDef): JsxComponentDescriptor {\n return {\n name,\n kind: def.kind === 'inline' ? 'text' : 'flow',\n props: def.props.map((p) => ({ name: p.name, type: 'string', required: p.required })),\n hasChildren: false,\n Editor: (props: any) => <ComponentEmbedEditor {...props} componentDef={def} componentName={name} />,\n };\n}\n\nconst CMS_CONDITION_DESCRIPTOR: JsxComponentDescriptor = {\n name: 'CmsCondition',\n kind: 'flow',\n props: [{ name: 'field', type: 'string', required: true }],\n hasChildren: true,\n Editor: ConditionEmbedEditor,\n};\n\nconst CMS_BRANCH_DESCRIPTOR: JsxComponentDescriptor = {\n name: 'CmsBranch',\n kind: 'flow',\n props: [{ name: 'key', type: 'string', required: true }],\n hasChildren: true,\n Editor: () => null, // Rendered by the parent CmsCondition editor\n};\n\ntype InsertJsxPayload =\n | { kind: 'text'; name: string; props: Record<string, string> }\n | { kind: 'flow'; name: string; props: Record<string, string> };\n\n/** Syncs insertJsx publisher into a ref — must render under MDXEditor (e.g. toolbar) where RealmContext exists. */\nfunction InsertJsxPublisherBridge({\n targetRef,\n}: {\n targetRef: React.MutableRefObject<((payload: InsertJsxPayload) => void) | null>;\n}) {\n const publish = usePublisher(insertJsx$);\n useEffect(() => {\n targetRef.current = publish as (payload: InsertJsxPayload) => void;\n return () => {\n targetRef.current = null;\n };\n }, [publish, targetRef]);\n return null;\n}\n\nfunction InsertCustomComponentButton({ components }: { components: Record<string, RichTextComponentDef> }) {\n const insertJsx = usePublisher(insertJsx$);\n const entries = Object.entries(components);\n if (entries.length === 0) return null;\n\n if (entries.length === 1) {\n const [name, def] = entries[0];\n const defaultProps: Record<string, string> = {};\n for (const p of def.props) {\n defaultProps[p.name] = p.defaultValue != null ? String(p.defaultValue) : '';\n }\n return (\n <button\n type=\"button\"\n title={`Insert ${def.label}`}\n className=\"mdxeditor-toolbar-button\"\n onClick={() => {\n insertJsx({\n kind: def.kind === 'inline' ? 'text' : 'flow',\n name,\n props: defaultProps,\n });\n }}\n >\n <Icon.Puzzle className=\"octo-icon-md\" />\n </button>\n );\n }\n\n // Multiple components — show a dropdown\n return (\n <div className=\"octo-richtext-toolbar-select-wrap\">\n <select\n className=\"mdxeditor-toolbar-button octo-richtext-toolbar-select\"\n value=\"\"\n title=\"Insert component\"\n onChange={(e) => {\n const name = e.target.value;\n if (!name) return;\n const def = components[name];\n if (!def) return;\n const defaultProps: Record<string, string> = {};\n for (const p of def.props) {\n defaultProps[p.name] = p.defaultValue != null ? String(p.defaultValue) : '';\n }\n insertJsx({\n kind: def.kind === 'inline' ? 'text' : 'flow',\n name,\n props: defaultProps,\n });\n e.target.value = '';\n }}\n >\n <option value=\"\">🧩 Insert…</option>\n {entries.map(([name, def]) => (\n <option key={name} value={name}>\n {def.label}\n </option>\n ))}\n </select>\n </div>\n );\n}\n\nconst FormRichTextField = ({\n label,\n name,\n value,\n required,\n hint,\n error,\n onClearError,\n richtext,\n}: FormRichTextFieldProps) => {\n const editorRef = useRef<MDXEditorMethods>(null);\n const hiddenInputRef = useRef<HTMLInputElement>(null);\n const editorWrapRef = useRef<HTMLDivElement>(null);\n const insertJsxRef = useRef<((payload: InsertJsxPayload) => void) | null>(null);\n\n // Slash command menu state\n const [slashOpen, setSlashOpen] = useState(false);\n const [slashFilter, setSlashFilter] = useState('');\n const [slashPosition, setSlashPosition] = useState<{ top: number; left: number } | null>(null);\n\n const onChange = () => {\n const input = hiddenInputRef.current;\n if (input) {\n input.value = editorRef.current?.getMarkdown() || '';\n }\n onClearError?.(name);\n };\n\n useEffect(() => {\n editorRef.current?.setMarkdown(value);\n }, [value]);\n\n // Build slash command items\n const slashItems = useMemo(() => {\n type SlashItem = {\n key: string;\n label: string;\n description?: string;\n icon: React.ReactNode;\n action: () => void;\n keywords?: string[];\n };\n\n const items: SlashItem[] = [];\n\n items.push({\n key: 'h1',\n label: 'Heading 1',\n description: 'Large section heading',\n icon: <span className=\"octo-u-text-xs octo-u-font-semibold\">H1</span>,\n action: () => editorRef.current?.insertMarkdown('\\n# '),\n keywords: ['heading', 'title'],\n });\n items.push({\n key: 'h2',\n label: 'Heading 2',\n description: 'Medium section heading',\n icon: <span className=\"octo-u-text-xs octo-u-font-semibold\">H2</span>,\n action: () => editorRef.current?.insertMarkdown('\\n## '),\n keywords: ['heading', 'title'],\n });\n items.push({\n key: 'h3',\n label: 'Heading 3',\n description: 'Small section heading',\n icon: <span className=\"octo-u-text-xs octo-u-font-semibold\">H3</span>,\n action: () => editorRef.current?.insertMarkdown('\\n### '),\n keywords: ['heading', 'title'],\n });\n items.push({\n key: 'bullet-list',\n label: 'Bullet List',\n icon: <span className=\"octo-u-text-xs\">•</span>,\n action: () => editorRef.current?.insertMarkdown('\\n- '),\n keywords: ['list', 'bullet', 'unordered'],\n });\n items.push({\n key: 'numbered-list',\n label: 'Numbered List',\n icon: <span className=\"octo-u-text-xs\">1.</span>,\n action: () => editorRef.current?.insertMarkdown('\\n1. '),\n keywords: ['list', 'numbered', 'ordered'],\n });\n items.push({\n key: 'quote',\n label: 'Quote',\n icon: <span className=\"octo-u-text-xs\">&gt;</span>,\n action: () => editorRef.current?.insertMarkdown('\\n> '),\n keywords: ['quote', 'blockquote'],\n });\n items.push({\n key: 'code-block',\n label: 'Code Block',\n icon: <span className=\"octo-u-text-xs octo-u-mono\">{'{}'}</span>,\n action: () => editorRef.current?.insertMarkdown('\\n```\\n\\n```\\n'),\n keywords: ['code', 'block'],\n });\n items.push({\n key: 'divider',\n label: 'Divider',\n icon: <span className=\"octo-u-text-xs\">—</span>,\n action: () => editorRef.current?.insertMarkdown('\\n---\\n'),\n keywords: ['divider', 'hr', 'horizontal', 'rule'],\n });\n items.push({\n key: 'table',\n label: 'Table',\n icon: <span className=\"octo-u-text-xs\">⊞</span>,\n action: () => editorRef.current?.insertMarkdown('\\n| Col 1 | Col 2 |\\n| --- | --- |\\n| Cell | Cell |\\n'),\n keywords: ['table', 'grid'],\n });\n\n if (richtext?.embeds?.images) {\n items.push({\n key: 'cms-image',\n label: 'CMS Image',\n description: 'Insert from media library',\n icon: <Icon.ImagePlus className=\"octo-icon-md\" />,\n action: () => insertJsxRef.current?.({ kind: 'flow', name: 'CmsImage', props: { mediaId: '' } }),\n keywords: ['image', 'media', 'picture', 'photo'],\n });\n }\n\n if (richtext?.embeds?.references) {\n items.push({\n key: 'cms-ref',\n label: 'Entry Reference',\n description: 'Embed a content entry',\n icon: <Icon.FileText className=\"octo-icon-md\" />,\n action: () => insertJsxRef.current?.({ kind: 'flow', name: 'CmsRef', props: { id: '', display: 'block' } }),\n keywords: ['reference', 'entry', 'link', 'embed'],\n });\n }\n\n if (richtext?.embeds?.conditions) {\n items.push({\n key: 'cms-condition',\n label: 'Condition Block',\n description: 'A/B content branches',\n icon: <Icon.GitBranch className=\"octo-icon-md\" />,\n action: () => insertJsxRef.current?.({ kind: 'flow', name: 'CmsCondition', props: { field: '' } }),\n keywords: ['condition', 'branch', 'ab', 'test'],\n });\n }\n\n const vars = richtext?.embeds?.variables;\n if (vars && vars.length > 0) {\n items.push({\n key: 'cms-var',\n label: 'Template Variable',\n description: 'Dynamic value placeholder',\n icon: <Icon.Variable className=\"octo-icon-md\" />,\n action: () => insertJsxRef.current?.({ kind: 'text', name: 'CmsVar', props: { name: vars[0] ?? '' } }),\n keywords: ['variable', 'template', 'dynamic'],\n });\n }\n\n const customComponents = richtext?.embeds?.components;\n if (customComponents) {\n for (const [cName, def] of Object.entries(customComponents)) {\n const defaultProps: Record<string, string> = {};\n for (const p of def.props) {\n defaultProps[p.name] = p.defaultValue != null ? String(p.defaultValue) : '';\n }\n items.push({\n key: `component-${cName}`,\n label: def.label,\n description: `Component: ${cName}`,\n icon: <Icon.Puzzle className=\"octo-icon-md\" />,\n action: () =>\n insertJsxRef.current?.({\n kind: def.kind === 'inline' ? 'text' : 'flow',\n name: cName,\n props: defaultProps,\n }),\n keywords: ['component', cName.toLowerCase(), def.label.toLowerCase()],\n });\n }\n }\n\n return items;\n }, [richtext]);\n\n const filteredSlashItems = slashFilter\n ? slashItems.filter((item) => {\n const q = slashFilter.toLowerCase();\n return (\n item.label.toLowerCase().includes(q) ||\n item.description?.toLowerCase().includes(q) ||\n item.keywords?.some((kw) => kw.includes(q))\n );\n })\n : slashItems;\n\n // Listen for '/' typed in the editor to open the command menu\n useEffect(() => {\n const wrapper = editorWrapRef.current;\n if (!wrapper) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === '/' && !slashOpen) {\n const sel = window.getSelection();\n if (sel && sel.rangeCount > 0) {\n const range = sel.getRangeAt(0);\n if (!wrapper.contains(range.commonAncestorContainer)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n const rect = range.getBoundingClientRect();\n setSlashPosition({ top: rect.bottom + 4, left: rect.left });\n setSlashFilter('');\n setSlashOpen(true);\n }\n } else if (slashOpen) {\n if (e.key === 'Escape') {\n setSlashOpen(false);\n } else if (e.key === 'Backspace') {\n setSlashFilter((prev) => {\n if (prev.length === 0) {\n setSlashOpen(false);\n return '';\n }\n return prev.slice(0, -1);\n });\n e.preventDefault();\n } else if (e.key.length === 1 && !e.ctrlKey && !e.metaKey) {\n setSlashFilter((prev) => prev + e.key);\n e.preventDefault();\n }\n }\n };\n\n wrapper.addEventListener('keydown', handleKeyDown, true);\n return () => wrapper.removeEventListener('keydown', handleKeyDown, true);\n }, [slashOpen]);\n\n const handleSlashSelect = useCallback(\n (item: (typeof slashItems)[number]) => {\n setSlashOpen(false);\n // Remove the '/' and any filter text that was typed\n const md = editorRef.current?.getMarkdown() ?? '';\n const slashPrefix = '/' + slashFilter;\n if (md.endsWith(slashPrefix)) {\n editorRef.current?.setMarkdown(md.slice(0, -slashPrefix.length));\n }\n item.action();\n },\n [slashFilter],\n );\n\n const handleSlashClose = useCallback(() => {\n setSlashOpen(false);\n }, []);\n\n const allowedVariables = useMemo(() => richtext?.embeds?.variables ?? [], [richtext]);\n\n const jsxDescriptors = useMemo(() => {\n const descriptors: JsxComponentDescriptor[] = [];\n if (richtext?.embeds?.images) {\n descriptors.push(CMS_IMAGE_DESCRIPTOR);\n }\n if (richtext?.embeds?.references) {\n descriptors.push(CMS_REFERENCE_DESCRIPTOR);\n }\n if (allowedVariables.length > 0) {\n descriptors.push(buildCmsVarDescriptor(allowedVariables));\n }\n if (richtext?.embeds?.conditions) {\n descriptors.push(CMS_CONDITION_DESCRIPTOR);\n descriptors.push(CMS_BRANCH_DESCRIPTOR);\n }\n const customComponents = richtext?.embeds?.components;\n if (customComponents) {\n for (const [name, def] of Object.entries(customComponents)) {\n descriptors.push(buildCustomComponentDescriptor(name, def));\n }\n }\n return descriptors;\n }, [richtext, allowedVariables]);\n\n const hasImageEmbeds = richtext?.embeds?.images === true;\n const hasReferenceEmbeds = !!richtext?.embeds?.references;\n const hasConditions = richtext?.embeds?.conditions === true;\n const hasVariables = allowedVariables.length > 0;\n const customComponents = richtext?.embeds?.components;\n const hasCustomComponents = !!customComponents && Object.keys(customComponents).length > 0;\n\n // Toolbar config — all buttons shown by default\n const tb = richtext?.toolbar;\n const showFormatting = tb?.formatting !== false;\n const showHeadings = tb?.headings !== false;\n const showLists = tb?.lists !== false;\n const showCode = tb?.code !== false;\n const showCodeBlock = tb?.codeBlock !== false;\n const showLinks = tb?.links !== false;\n const showTables = tb?.tables !== false;\n const showThematicBreak = tb?.thematicBreak !== false;\n const showImages = tb?.images !== false;\n const showUndoRedo = tb?.undoRedo !== false;\n\n const hasAnyEmbeds = hasImageEmbeds || hasReferenceEmbeds || hasConditions || hasVariables || hasCustomComponents;\n\n const plugins = useMemo(\n () => [\n headingsPlugin(),\n listsPlugin(),\n quotePlugin(),\n thematicBreakPlugin(),\n linkPlugin(),\n linkDialogPlugin(),\n imagePlugin(),\n tablePlugin(),\n codeBlockPlugin({ defaultCodeBlockLanguage: '' }),\n markdownShortcutPlugin(),\n ...(jsxDescriptors.length > 0 ? [jsxPlugin({ jsxComponentDescriptors: jsxDescriptors })] : []),\n toolbarPlugin({\n toolbarContents: () => (\n <>\n <InsertJsxPublisherBridge targetRef={insertJsxRef} />\n {showUndoRedo && <UndoRedo />}\n {showFormatting && <BoldItalicUnderlineToggles />}\n {showCode && <CodeToggle />}\n {showLinks && <CreateLink />}\n {showLists && <ListsToggle />}\n {showHeadings && <BlockTypeSelect />}\n {showTables && <InsertTable />}\n {showThematicBreak && <InsertThematicBreak />}\n {showImages && <InsertImage />}\n {showCodeBlock && <InsertCodeBlock />}\n {hasAnyEmbeds && <Separator />}\n {hasImageEmbeds && <InsertCmsImageButton />}\n {hasReferenceEmbeds && <InsertCmsRefButton />}\n {hasConditions && <InsertCmsConditionButton />}\n {hasVariables && <InsertCmsVarButton variables={allowedVariables} />}\n {hasCustomComponents && <InsertCustomComponentButton components={customComponents!} />}\n </>\n ),\n }),\n ],\n [\n jsxDescriptors,\n hasImageEmbeds,\n hasReferenceEmbeds,\n hasConditions,\n hasVariables,\n allowedVariables,\n hasCustomComponents,\n customComponents,\n hasAnyEmbeds,\n showFormatting,\n showHeadings,\n showLists,\n showCode,\n showCodeBlock,\n showLinks,\n showTables,\n showThematicBreak,\n showImages,\n showUndoRedo,\n ],\n );\n\n return (\n <Field label={label} schema=\"richtext\" required={required} hint={hint} error={error} className=\"octo-ff-richtext\">\n <input type=\"hidden\" ref={hiddenInputRef} name={name} defaultValue={value} />\n <div ref={editorWrapRef} className=\"octo-ff-richtext__editor-wrap\">\n <MDXEditor\n markdown={value}\n plugins={plugins}\n ref={editorRef}\n onChange={onChange}\n className={cn('editor-markdown', error && 'editor-markdown--invalid')}\n />\n <SlashMenuOverlay\n items={filteredSlashItems}\n open={slashOpen}\n filter={slashFilter}\n position={slashPosition}\n onSelect={handleSlashSelect}\n onClose={handleSlashClose}\n />\n </div>\n </Field>\n );\n};\n\nexport default FormRichTextField;\n"],"mappings":"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","names":["_a","_b","_c","_d","customComponents","name"]}
@@ -1,4 +1,4 @@
1
- import type { SelectOption } from '../admin/types';
1
+ import type { SelectOption } from '../../../admin/types';
2
2
  type FormSelectFieldProps = {
3
3
  label: string;
4
4
  name: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormSelectField.d.ts","sourceRoot":"","sources":["../../../../components/ui/FormField/FormSelectField.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAsBzD,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,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,eAAe,GAAI,iFAUtB,oBAAoB,4CA6EtB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,10 +1,9 @@
1
1
  "use client";
2
- import "../chunk-B5LE2OEC.js";
2
+ import "../../../chunk-B5LE2OEC.js";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { useEffect, useState } from "react";
5
- import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "./ui/select";
6
- import { FieldHintAndError } from "./FieldHintAndError";
7
- import { FieldLabel } from "./FieldLabel";
5
+ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../Select/Select";
6
+ import { Field } from "./Field";
8
7
  const EMPTY_VALUE = "__cms_select_none__";
9
8
  function normalizeMulti(raw) {
10
9
  if (Array.isArray(raw)) {
@@ -44,28 +43,25 @@ const FormSelectField = ({
44
43
  onClearError == null ? void 0 : onClearError(name);
45
44
  setMulti((prev) => prev.includes(val) ? prev.filter((x) => x !== val) : [...prev, val]);
46
45
  };
47
- return /* @__PURE__ */ jsxs("div", { className: "mb-5", children: [
48
- /* @__PURE__ */ jsx(FieldLabel, { label, type: "select", required }),
46
+ return /* @__PURE__ */ jsxs(Field, { label, schema: "select", required, hint, error, children: [
49
47
  /* @__PURE__ */ jsx("input", { type: "hidden", name, value: JSON.stringify(multi) }),
50
- /* @__PURE__ */ jsx("ul", { className: "mt-1 space-y-2 list-none p-0", children: options.map((o) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("label", { className: "inline-flex cursor-pointer items-center gap-2 text-sm", children: [
48
+ /* @__PURE__ */ jsx("ul", { className: "octo-ff-select__multi", children: options.map((o) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("label", { className: "octo-ff-select__multi-label", children: [
51
49
  /* @__PURE__ */ jsx(
52
50
  "input",
53
51
  {
54
52
  type: "checkbox",
55
53
  checked: multi.includes(o.value),
56
54
  onChange: () => toggle(o.value),
57
- className: "rounded border-border"
55
+ className: "octo-ff-select__multi-checkbox"
58
56
  }
59
57
  ),
60
58
  /* @__PURE__ */ jsx("span", { children: o.label })
61
- ] }) }, o.value)) }),
62
- /* @__PURE__ */ jsx(FieldHintAndError, { hint, error })
59
+ ] }) }, o.value)) })
63
60
  ] });
64
61
  }
65
62
  const allowEmpty = !required;
66
63
  const radixValue = allowEmpty ? single === "" ? EMPTY_VALUE : single : single === "" ? void 0 : single;
67
- return /* @__PURE__ */ jsxs("div", { className: "mb-5", children: [
68
- /* @__PURE__ */ jsx(FieldLabel, { label, type: "select", required }),
64
+ return /* @__PURE__ */ jsxs(Field, { label, schema: "select", required, hint, error, children: [
69
65
  /* @__PURE__ */ jsx("input", { type: "hidden", name, value: single }),
70
66
  /* @__PURE__ */ jsxs(
71
67
  Select,
@@ -76,22 +72,14 @@ const FormSelectField = ({
76
72
  setSingle(v === EMPTY_VALUE ? "" : v);
77
73
  },
78
74
  children: [
79
- /* @__PURE__ */ jsx(
80
- SelectTrigger,
81
- {
82
- className: "field-shell h-10 w-full max-w-md rounded-full border-border bg-card px-4",
83
- "aria-invalid": error ? true : void 0,
84
- children: /* @__PURE__ */ jsx(SelectValue, { placeholder: allowEmpty ? "\u2014" : "Choose\u2026" })
85
- }
86
- ),
75
+ /* @__PURE__ */ jsx(SelectTrigger, { className: "field-shell octo-input octo-input--shell", "aria-invalid": error ? true : void 0, children: /* @__PURE__ */ jsx(SelectValue, { placeholder: allowEmpty ? "\u2014" : "Choose\u2026" }) }),
87
76
  /* @__PURE__ */ jsxs(SelectContent, { children: [
88
- allowEmpty ? /* @__PURE__ */ jsx(SelectItem, { value: EMPTY_VALUE, children: /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "\u2014" }) }) : null,
77
+ allowEmpty ? /* @__PURE__ */ jsx(SelectItem, { value: EMPTY_VALUE, children: /* @__PURE__ */ jsx("span", { className: "octo-field-hint-error__hint", children: "\u2014" }) }) : null,
89
78
  options.map((o) => /* @__PURE__ */ jsx(SelectItem, { value: o.value, children: o.label }, o.value))
90
79
  ] })
91
80
  ]
92
81
  }
93
- ),
94
- /* @__PURE__ */ jsx(FieldHintAndError, { hint, error })
82
+ )
95
83
  ] });
96
84
  };
97
85
  var FormSelectField_default = FormSelectField;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../components/ui/FormField/FormSelectField.tsx"],"sourcesContent":["'use client';\n\nimport React, { useEffect, useState } from 'react';\n\nimport type { SelectOption } from '../../../admin/types';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../Select/Select';\n\nimport { Field } from './Field';\n\nconst EMPTY_VALUE = '__cms_select_none__';\n\nfunction normalizeMulti(raw: unknown): string[] {\n if (Array.isArray(raw)) {\n return raw.map(String);\n }\n if (typeof raw === 'string') {\n try {\n const p = JSON.parse(raw);\n return Array.isArray(p) ? p.map(String) : [];\n } catch {\n return [];\n }\n }\n return [];\n}\n\ntype FormSelectFieldProps = {\n label: string;\n name: string;\n value: unknown;\n options: readonly SelectOption[];\n multiple: boolean;\n required?: boolean;\n hint?: string;\n error?: string;\n onClearError?: (fieldName: string) => void;\n};\n\nconst FormSelectField = ({\n label,\n name,\n value,\n options,\n multiple,\n required,\n hint,\n error,\n onClearError,\n}: FormSelectFieldProps) => {\n const [multi, setMulti] = useState<string[]>(() => normalizeMulti(value));\n const [single, setSingle] = useState(() => (value == null || value === '' ? '' : String(value)));\n\n useEffect(() => {\n setMulti(normalizeMulti(value));\n }, [value]);\n\n useEffect(() => {\n setSingle(value == null || value === '' ? '' : String(value));\n }, [value]);\n\n if (multiple) {\n const toggle = (val: string) => {\n onClearError?.(name);\n setMulti((prev) => (prev.includes(val) ? prev.filter((x) => x !== val) : [...prev, val]));\n };\n\n return (\n <Field label={label} schema=\"select\" required={required} hint={hint} error={error}>\n <input type=\"hidden\" name={name} value={JSON.stringify(multi)} />\n <ul className=\"octo-ff-select__multi\">\n {options.map((o) => (\n <li key={o.value}>\n <label className=\"octo-ff-select__multi-label\">\n <input\n type=\"checkbox\"\n checked={multi.includes(o.value)}\n onChange={() => toggle(o.value)}\n className=\"octo-ff-select__multi-checkbox\"\n />\n <span>{o.label}</span>\n </label>\n </li>\n ))}\n </ul>\n </Field>\n );\n }\n\n const allowEmpty = !required;\n const radixValue: string | undefined = allowEmpty\n ? single === ''\n ? EMPTY_VALUE\n : single\n : single === ''\n ? undefined\n : single;\n\n return (\n <Field label={label} schema=\"select\" required={required} hint={hint} error={error}>\n <input type=\"hidden\" name={name} value={single} />\n <Select\n value={radixValue}\n onValueChange={(v) => {\n onClearError?.(name);\n setSingle(v === EMPTY_VALUE ? '' : v);\n }}\n >\n <SelectTrigger className=\"field-shell octo-input octo-input--shell\" aria-invalid={error ? true : undefined}>\n <SelectValue placeholder={allowEmpty ? '—' : 'Choose…'} />\n </SelectTrigger>\n <SelectContent>\n {allowEmpty ? (\n <SelectItem value={EMPTY_VALUE}>\n <span className=\"octo-field-hint-error__hint\">—</span>\n </SelectItem>\n ) : null}\n {options.map((o) => (\n <SelectItem key={o.value} value={o.value}>\n {o.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </Field>\n );\n};\n\nexport default FormSelectField;\n"],"mappings":"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","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormSlugField.d.ts","sourceRoot":"","sources":["../../../../components/ui/FormField/FormSlugField.tsx"],"names":[],"mappings":"AAUA,KAAK,kBAAkB,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,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,2EASpB,kBAAkB,4CAoFpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,12 +1,11 @@
1
1
  "use client";
2
- import "../chunk-B5LE2OEC.js";
2
+ import "../../../chunk-B5LE2OEC.js";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { useCallback, useEffect, useRef, useState } from "react";
5
- import { sanitizeSlugFieldInputValue, slugifyForUrl } from "../lib/slugField";
6
- import { FieldHintAndError } from "./FieldHintAndError";
7
- import { FieldLabel } from "./FieldLabel";
5
+ import { sanitizeSlugFieldInputValue, slugifyForUrl } from "../../../lib/slugField";
6
+ import { Button } from "../Button/Button";
7
+ import { Field } from "./Field";
8
8
  import { FieldShell, FIELD_INPUT_CLASS } from "./FieldShell";
9
- import { Button } from "./ui/button";
10
9
  const FormSlugField = ({
11
10
  label,
12
11
  name,
@@ -70,27 +69,23 @@ const FormSlugField = ({
70
69
  }
71
70
  onClearError == null ? void 0 : onClearError(name);
72
71
  };
73
- return /* @__PURE__ */ jsxs("div", { className: "mb-5", children: [
74
- /* @__PURE__ */ jsx(FieldLabel, { label, htmlFor: name, type: "slug", required }),
75
- /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [
76
- /* @__PURE__ */ jsx("div", { className: "min-w-[200px] flex-1", children: /* @__PURE__ */ jsx(FieldShell, { error: !!error, children: /* @__PURE__ */ jsx(
77
- "input",
78
- {
79
- ref: inputRef,
80
- id: name,
81
- className: FIELD_INPUT_CLASS,
82
- type: "text",
83
- name,
84
- defaultValue: value,
85
- "aria-invalid": error ? true : void 0,
86
- onInput: onSlugInput,
87
- onChange: onSlugInput
88
- }
89
- ) }) }),
90
- /* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", size: "sm", className: "rounded-full", onClick: onRegenerate, children: "Regenerate from title" })
91
- ] }),
92
- /* @__PURE__ */ jsx(FieldHintAndError, { hint, error })
93
- ] });
72
+ return /* @__PURE__ */ jsx(Field, { label, htmlFor: name, schema: "slug", required, hint, error, children: /* @__PURE__ */ jsxs("div", { className: "octo-ff-slug__row", children: [
73
+ /* @__PURE__ */ jsx("div", { className: "octo-ff-slug__input-wrap", children: /* @__PURE__ */ jsx(FieldShell, { error: !!error, children: /* @__PURE__ */ jsx(
74
+ "input",
75
+ {
76
+ ref: inputRef,
77
+ id: name,
78
+ className: FIELD_INPUT_CLASS,
79
+ type: "text",
80
+ name,
81
+ defaultValue: value,
82
+ "aria-invalid": error ? true : void 0,
83
+ onInput: onSlugInput,
84
+ onChange: onSlugInput
85
+ }
86
+ ) }) }),
87
+ /* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", onClick: onRegenerate, children: "Regenerate from title" })
88
+ ] }) });
94
89
  };
95
90
  var FormSlugField_default = FormSlugField;
96
91
  export {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../components/ui/FormField/FormSlugField.tsx"],"sourcesContent":["'use client';\n\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { sanitizeSlugFieldInputValue, slugifyForUrl } from '../../../lib/slugField';\nimport { Button } from '../Button/Button';\n\nimport { Field } from './Field';\nimport { FieldShell, FIELD_INPUT_CLASS } from './FieldShell';\n\ntype FormSlugFieldProps = {\n label: string;\n name: string;\n value: string;\n sourceField: string;\n required?: boolean;\n hint?: string;\n error?: string;\n onClearError?: (fieldName: string) => void;\n};\n\nconst FormSlugField = ({\n label,\n name,\n value,\n sourceField,\n required,\n hint,\n error,\n onClearError,\n}: FormSlugFieldProps) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const [slugTouched, setSlugTouched] = useState(() => Boolean(value?.trim()));\n\n const applyFromSource = useCallback(\n (sourceText: string) => {\n if (!inputRef.current || slugTouched) {\n return;\n }\n inputRef.current.value = slugifyForUrl(sourceText);\n },\n [slugTouched],\n );\n\n useEffect(() => {\n const input = inputRef.current;\n const form = input?.closest('form');\n if (!form || !input) {\n return undefined;\n }\n\n const onFormInput = (e: Event) => {\n const t = e.target;\n if (!(t instanceof HTMLInputElement) && !(t instanceof HTMLTextAreaElement)) {\n return;\n }\n if (t.name !== sourceField) {\n return;\n }\n applyFromSource(t.value);\n };\n\n form.addEventListener('input', onFormInput);\n return () => form.removeEventListener('input', onFormInput);\n }, [sourceField, applyFromSource]);\n\n const onSlugInput = (e: React.FormEvent<HTMLInputElement>) => {\n const el = e.currentTarget;\n const next = sanitizeSlugFieldInputValue(el.value);\n if (el.value !== next) {\n el.value = next;\n }\n setSlugTouched(true);\n onClearError?.(name);\n };\n\n const onRegenerate = () => {\n const form = inputRef.current?.closest('form');\n if (!form) {\n return;\n }\n const source = form.elements.namedItem(sourceField);\n const raw = source instanceof HTMLInputElement || source instanceof HTMLTextAreaElement ? source.value : '';\n setSlugTouched(false);\n if (inputRef.current) {\n inputRef.current.value = slugifyForUrl(raw);\n }\n onClearError?.(name);\n };\n\n return (\n <Field label={label} htmlFor={name} schema=\"slug\" required={required} hint={hint} error={error}>\n <div className=\"octo-ff-slug__row\">\n <div className=\"octo-ff-slug__input-wrap\">\n <FieldShell error={!!error}>\n <input\n ref={inputRef}\n id={name}\n className={FIELD_INPUT_CLASS}\n type=\"text\"\n name={name}\n defaultValue={value}\n aria-invalid={error ? true : undefined}\n onInput={onSlugInput}\n onChange={onSlugInput}\n />\n </FieldShell>\n </div>\n <Button type=\"button\" variant=\"outline\" onClick={onRegenerate}>\n Regenerate from title\n </Button>\n </div>\n </Field>\n );\n};\n\nexport default FormSlugField;\n"],"mappings":";;AA4FM,SAGM,KAHN;AA1FN,SAAgB,aAAa,WAAW,QAAQ,gBAAgB;AAEhE,SAAS,6BAA6B,qBAAqB;AAC3D,SAAS,cAAc;AAEvB,SAAS,aAAa;AACtB,SAAS,YAAY,yBAAyB;AAa9C,MAAM,gBAAgB,CAAC;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA0B;AACxB,QAAM,WAAW,OAAyB,IAAI;AAC9C,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,MAAM,QAAQ,+BAAO,MAAM,CAAC;AAE3E,QAAM,kBAAkB;AAAA,IACtB,CAAC,eAAuB;AACtB,UAAI,CAAC,SAAS,WAAW,aAAa;AACpC;AAAA,MACF;AACA,eAAS,QAAQ,QAAQ,cAAc,UAAU;AAAA,IACnD;AAAA,IACA,CAAC,WAAW;AAAA,EACd;AAEA,YAAU,MAAM;AACd,UAAM,QAAQ,SAAS;AACvB,UAAM,OAAO,+BAAO,QAAQ;AAC5B,QAAI,CAAC,QAAQ,CAAC,OAAO;AACnB,aAAO;AAAA,IACT;AAEA,UAAM,cAAc,CAAC,MAAa;AAChC,YAAM,IAAI,EAAE;AACZ,UAAI,EAAE,aAAa,qBAAqB,EAAE,aAAa,sBAAsB;AAC3E;AAAA,MACF;AACA,UAAI,EAAE,SAAS,aAAa;AAC1B;AAAA,MACF;AACA,sBAAgB,EAAE,KAAK;AAAA,IACzB;AAEA,SAAK,iBAAiB,SAAS,WAAW;AAC1C,WAAO,MAAM,KAAK,oBAAoB,SAAS,WAAW;AAAA,EAC5D,GAAG,CAAC,aAAa,eAAe,CAAC;AAEjC,QAAM,cAAc,CAAC,MAAyC;AAC5D,UAAM,KAAK,EAAE;AACb,UAAM,OAAO,4BAA4B,GAAG,KAAK;AACjD,QAAI,GAAG,UAAU,MAAM;AACrB,SAAG,QAAQ;AAAA,IACb;AACA,mBAAe,IAAI;AACnB,iDAAe;AAAA,EACjB;AAEA,QAAM,eAAe,MAAM;AA5E7B;AA6EI,UAAM,QAAO,cAAS,YAAT,mBAAkB,QAAQ;AACvC,QAAI,CAAC,MAAM;AACT;AAAA,IACF;AACA,UAAM,SAAS,KAAK,SAAS,UAAU,WAAW;AAClD,UAAM,MAAM,kBAAkB,oBAAoB,kBAAkB,sBAAsB,OAAO,QAAQ;AACzG,mBAAe,KAAK;AACpB,QAAI,SAAS,SAAS;AACpB,eAAS,QAAQ,QAAQ,cAAc,GAAG;AAAA,IAC5C;AACA,iDAAe;AAAA,EACjB;AAEA,SACE,oBAAC,SAAM,OAAc,SAAS,MAAM,QAAO,QAAO,UAAoB,MAAY,OAChF,+BAAC,SAAI,WAAU,qBACb;AAAA,wBAAC,SAAI,WAAU,4BACb,8BAAC,cAAW,OAAO,CAAC,CAAC,OACnB;AAAA,MAAC;AAAA;AAAA,QACC,KAAK;AAAA,QACL,IAAI;AAAA,QACJ,WAAW;AAAA,QACX,MAAK;AAAA,QACL;AAAA,QACA,cAAc;AAAA,QACd,gBAAc,QAAQ,OAAO;AAAA,QAC7B,SAAS;AAAA,QACT,UAAU;AAAA;AAAA,IACZ,GACF,GACF;AAAA,IACA,oBAAC,UAAO,MAAK,UAAS,SAAQ,WAAU,SAAS,cAAc,mCAE/D;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,wBAAQ;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormStringField.d.ts","sourceRoot":"","sources":["../../../../components/ui/FormField/FormStringField.tsx"],"names":[],"mappings":"AAOA,KAAK,oBAAoB,GAAG;IAC1B,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;CAChB,CAAC;AAEF,QAAA,MAAM,eAAe,GAAI,+CAA+C,oBAAoB,4CAe3F,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,23 @@
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 FormStringField = ({ label, name, value, required, hint, error }) => {
7
+ return /* @__PURE__ */ jsx(Field, { label, htmlFor: name, schema: "string", 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
+ name,
14
+ defaultValue: value,
15
+ "aria-invalid": error ? true : void 0
16
+ }
17
+ ) }) });
18
+ };
19
+ var FormStringField_default = FormStringField;
20
+ export {
21
+ FormStringField_default as default
22
+ };
23
+ //# sourceMappingURL=FormStringField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../components/ui/FormField/FormStringField.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\n\nimport { Field } from './Field';\nimport { FieldShell, FIELD_INPUT_CLASS } from './FieldShell';\n\ntype FormStringFieldProps = {\n label: string;\n name: string;\n value: string;\n required?: boolean;\n hint?: string;\n error?: string;\n};\n\nconst FormStringField = ({ label, name, value, required, hint, error }: FormStringFieldProps) => {\n return (\n <Field label={label} htmlFor={name} schema=\"string\" required={required} hint={hint} error={error}>\n <FieldShell error={!!error}>\n <input\n id={name}\n className={FIELD_INPUT_CLASS}\n type=\"text\"\n name={name}\n defaultValue={value}\n aria-invalid={error ? true : undefined}\n />\n </FieldShell>\n </Field>\n );\n};\n\nexport default FormStringField;\n"],"mappings":";;AAoBQ;AAhBR,SAAS,aAAa;AACtB,SAAS,YAAY,yBAAyB;AAW9C,MAAM,kBAAkB,CAAC,EAAE,OAAO,MAAM,OAAO,UAAU,MAAM,MAAM,MAA4B;AAC/F,SACE,oBAAC,SAAM,OAAc,SAAS,MAAM,QAAO,UAAS,UAAoB,MAAY,OAClF,8BAAC,cAAW,OAAO,CAAC,CAAC,OACnB;AAAA,IAAC;AAAA;AAAA,MACC,IAAI;AAAA,MACJ,WAAW;AAAA,MACX,MAAK;AAAA,MACL;AAAA,MACA,cAAc;AAAA,MACd,gBAAc,QAAQ,OAAO;AAAA;AAAA,EAC/B,GACF,GACF;AAEJ;AAEA,IAAO,0BAAQ;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormStringListField.d.ts","sourceRoot":"","sources":["../../../../components/ui/FormField/FormStringListField.tsx"],"names":[],"mappings":"AAYA,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,CAAC;AA+CF,QAAA,MAAM,mBAAmB,GAAI,6DAA6D,wBAAwB,4CA8GjH,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1,11 +1,11 @@
1
1
  "use client";
2
- import "../chunk-B5LE2OEC.js";
2
+ import "../../../chunk-B5LE2OEC.js";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
- import { GripVertical, X } from "lucide-react";
4
+ import { Icon } from "../Icon/Icon";
5
5
  import { useCallback, useEffect, useId, useMemo, useRef, useState } from "react";
6
- import { cn } from "../lib/utils";
7
- import { normalizeStringListFromStorage } from "../lib/stringListField";
8
- import { FieldHintAndError } from "./FieldHintAndError";
6
+ import { cn } from "../../../lib/utils";
7
+ import { normalizeStringListFromStorage } from "../../../lib/stringListField";
8
+ import { Field } from "./Field";
9
9
  function rowsFromStrings(values, nextId) {
10
10
  return values.map((value) => ({ id: nextId(), value }));
11
11
  }
@@ -25,22 +25,19 @@ const ListRow = ({
25
25
  onDragOver: (e) => onDragOver(e, index),
26
26
  onDragEnd,
27
27
  onDrop: () => onDrop(index),
28
- className: cn(
29
- "flex items-center gap-0 rounded-lg border border-border bg-muted/40 text-sm",
30
- "cursor-grab active:cursor-grabbing"
31
- ),
28
+ className: "octo-ff-list__item",
32
29
  children: [
33
- /* @__PURE__ */ jsx("span", { className: "flex-none pl-2 text-muted-foreground", "aria-hidden": true, children: /* @__PURE__ */ jsx(GripVertical, { className: "h-4 w-4" }) }),
34
- /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate px-2 py-2", children: row.value }),
35
- /* @__PURE__ */ jsx("span", { className: "h-6 w-px flex-none bg-border", "aria-hidden": true }),
30
+ /* @__PURE__ */ jsx("span", { className: "octo-ff-list__item-grip", "aria-hidden": true, children: /* @__PURE__ */ jsx(Icon.GripVertical, { className: "octo-icon-md" }) }),
31
+ /* @__PURE__ */ jsx("span", { className: "octo-ff-list__item-value", children: row.value }),
32
+ /* @__PURE__ */ jsx("span", { className: "octo-ff-list__item-sep", "aria-hidden": true }),
36
33
  /* @__PURE__ */ jsx(
37
34
  "button",
38
35
  {
39
36
  type: "button",
40
37
  onClick: () => onRemove(index),
41
- className: "flex-none rounded-r-lg p-2 text-muted-foreground hover:bg-destructive/10 hover:text-destructive",
38
+ className: "octo-ff-list__item-remove",
42
39
  "aria-label": `Remove ${row.value}`,
43
- children: /* @__PURE__ */ jsx(X, { className: "h-4 w-4" })
40
+ children: /* @__PURE__ */ jsx(Icon.X, { className: "octo-icon-md" })
44
41
  }
45
42
  )
46
43
  ]
@@ -111,19 +108,12 @@ const FormStringListField = ({ label, name, value, required, hint, error, onClea
111
108
  },
112
109
  [dragIndex, name, onClearError]
113
110
  );
114
- return /* @__PURE__ */ jsxs("div", { className: "mb-6", children: [
115
- /* @__PURE__ */ jsxs("div", { className: "block text-xs font-medium text-muted-foreground mb-1.5", children: [
116
- label,
117
- required ? /* @__PURE__ */ jsx("span", { className: "text-destructive ml-1", children: "*" }) : null
118
- ] }),
111
+ return /* @__PURE__ */ jsxs(Field, { label, schema: "string[]", required, hint, error, children: [
119
112
  /* @__PURE__ */ jsx(
120
113
  "input",
121
114
  {
122
115
  id: inputId,
123
- className: cn(
124
- "w-full text-sm bg-background text-foreground px-3 py-2 rounded-md border border-border focus:outline-none focus:ring-2 focus:ring-primary/30 transition-colors mb-2",
125
- error && "border-destructive focus:ring-destructive/30"
126
- ),
116
+ className: cn("octo-ff-list__add-input", error && "octo-ff-list__add-input octo-ff-list__add-input--error"),
127
117
  type: "text",
128
118
  value: draft,
129
119
  onChange: (e) => setDraft(e.target.value),
@@ -135,7 +125,7 @@ const FormStringListField = ({ label, name, value, required, hint, error, onClea
135
125
  "aria-invalid": error ? true : void 0
136
126
  }
137
127
  ),
138
- rows.length > 0 ? /* @__PURE__ */ jsx("div", { className: "mb-2 flex flex-col gap-1.5", children: rows.map((row, i) => /* @__PURE__ */ jsx(
128
+ rows.length > 0 ? /* @__PURE__ */ jsx("div", { className: "octo-ff-list__items", children: rows.map((row, i) => /* @__PURE__ */ jsx(
139
129
  ListRow,
140
130
  {
141
131
  row,
@@ -148,7 +138,6 @@ const FormStringListField = ({ label, name, value, required, hint, error, onClea
148
138
  },
149
139
  row.id
150
140
  )) }) : null,
151
- /* @__PURE__ */ jsx(FieldHintAndError, { hint, error }),
152
141
  /* @__PURE__ */ jsx("input", { type: "hidden", name, value: serializedValue })
153
142
  ] });
154
143
  };