@strapi/content-type-builder 5.24.2 → 5.26.0

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 (328) hide show
  1. package/dist/admin/components/AIChat/Chat.js +431 -0
  2. package/dist/admin/components/AIChat/Chat.js.map +1 -0
  3. package/dist/admin/components/AIChat/Chat.mjs +429 -0
  4. package/dist/admin/components/AIChat/Chat.mjs.map +1 -0
  5. package/dist/admin/components/AIChat/FeedbackModal.js +237 -0
  6. package/dist/admin/components/AIChat/FeedbackModal.js.map +1 -0
  7. package/dist/admin/components/AIChat/FeedbackModal.mjs +233 -0
  8. package/dist/admin/components/AIChat/FeedbackModal.mjs.map +1 -0
  9. package/dist/admin/components/AIChat/UploadCodeModal.js +427 -0
  10. package/dist/admin/components/AIChat/UploadCodeModal.js.map +1 -0
  11. package/dist/admin/components/AIChat/UploadCodeModal.mjs +423 -0
  12. package/dist/admin/components/AIChat/UploadCodeModal.mjs.map +1 -0
  13. package/dist/admin/components/AIChat/UploadFigmaModal.js +377 -0
  14. package/dist/admin/components/AIChat/UploadFigmaModal.js.map +1 -0
  15. package/dist/admin/components/AIChat/UploadFigmaModal.mjs +373 -0
  16. package/dist/admin/components/AIChat/UploadFigmaModal.mjs.map +1 -0
  17. package/dist/admin/components/AIChat/components/Alert.js +46 -0
  18. package/dist/admin/components/AIChat/components/Alert.js.map +1 -0
  19. package/dist/admin/components/AIChat/components/Alert.mjs +44 -0
  20. package/dist/admin/components/AIChat/components/Alert.mjs.map +1 -0
  21. package/dist/admin/components/AIChat/components/AnimatedBox.js +34 -0
  22. package/dist/admin/components/AIChat/components/AnimatedBox.js.map +1 -0
  23. package/dist/admin/components/AIChat/components/AnimatedBox.mjs +32 -0
  24. package/dist/admin/components/AIChat/components/AnimatedBox.mjs.map +1 -0
  25. package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.js +92 -0
  26. package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.js.map +1 -0
  27. package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.mjs +90 -0
  28. package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.mjs.map +1 -0
  29. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js +100 -0
  30. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js.map +1 -0
  31. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs +97 -0
  32. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs.map +1 -0
  33. package/dist/admin/components/AIChat/components/Base64Image.js +127 -0
  34. package/dist/admin/components/AIChat/components/Base64Image.js.map +1 -0
  35. package/dist/admin/components/AIChat/components/Base64Image.mjs +125 -0
  36. package/dist/admin/components/AIChat/components/Base64Image.mjs.map +1 -0
  37. package/dist/admin/components/AIChat/components/Collapsible.js +71 -0
  38. package/dist/admin/components/AIChat/components/Collapsible.js.map +1 -0
  39. package/dist/admin/components/AIChat/components/Collapsible.mjs +66 -0
  40. package/dist/admin/components/AIChat/components/Collapsible.mjs.map +1 -0
  41. package/dist/admin/components/AIChat/components/Dropzone.js +172 -0
  42. package/dist/admin/components/AIChat/components/Dropzone.js.map +1 -0
  43. package/dist/admin/components/AIChat/components/Dropzone.mjs +167 -0
  44. package/dist/admin/components/AIChat/components/Dropzone.mjs.map +1 -0
  45. package/dist/admin/components/AIChat/components/FloatingPanel.js +166 -0
  46. package/dist/admin/components/AIChat/components/FloatingPanel.js.map +1 -0
  47. package/dist/admin/components/AIChat/components/FloatingPanel.mjs +163 -0
  48. package/dist/admin/components/AIChat/components/FloatingPanel.mjs.map +1 -0
  49. package/dist/admin/components/AIChat/components/FullScreenImage.js +190 -0
  50. package/dist/admin/components/AIChat/components/FullScreenImage.js.map +1 -0
  51. package/dist/admin/components/AIChat/components/FullScreenImage.mjs +187 -0
  52. package/dist/admin/components/AIChat/components/FullScreenImage.mjs.map +1 -0
  53. package/dist/admin/components/AIChat/components/ImagePreview.js +87 -0
  54. package/dist/admin/components/AIChat/components/ImagePreview.js.map +1 -0
  55. package/dist/admin/components/AIChat/components/ImagePreview.mjs +85 -0
  56. package/dist/admin/components/AIChat/components/ImagePreview.mjs.map +1 -0
  57. package/dist/admin/components/AIChat/components/Input.js +126 -0
  58. package/dist/admin/components/AIChat/components/Input.js.map +1 -0
  59. package/dist/admin/components/AIChat/components/Input.mjs +121 -0
  60. package/dist/admin/components/AIChat/components/Input.mjs.map +1 -0
  61. package/dist/admin/components/AIChat/components/Messages/Marker.js +138 -0
  62. package/dist/admin/components/AIChat/components/Messages/Marker.js.map +1 -0
  63. package/dist/admin/components/AIChat/components/Messages/Marker.mjs +136 -0
  64. package/dist/admin/components/AIChat/components/Messages/Marker.mjs.map +1 -0
  65. package/dist/admin/components/AIChat/components/Messages/Message.js +214 -0
  66. package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -0
  67. package/dist/admin/components/AIChat/components/Messages/Message.mjs +212 -0
  68. package/dist/admin/components/AIChat/components/Messages/Message.mjs.map +1 -0
  69. package/dist/admin/components/AIChat/components/ResizableTextArea.js +78 -0
  70. package/dist/admin/components/AIChat/components/ResizableTextArea.js.map +1 -0
  71. package/dist/admin/components/AIChat/components/ResizableTextArea.mjs +76 -0
  72. package/dist/admin/components/AIChat/components/ResizableTextArea.mjs.map +1 -0
  73. package/dist/admin/components/AIChat/components/SimpleMenu.js +60 -0
  74. package/dist/admin/components/AIChat/components/SimpleMenu.js.map +1 -0
  75. package/dist/admin/components/AIChat/components/SimpleMenu.mjs +35 -0
  76. package/dist/admin/components/AIChat/components/SimpleMenu.mjs.map +1 -0
  77. package/dist/admin/components/AIChat/components/StepModal.js +175 -0
  78. package/dist/admin/components/AIChat/components/StepModal.js.map +1 -0
  79. package/dist/admin/components/AIChat/components/StepModal.mjs +171 -0
  80. package/dist/admin/components/AIChat/components/StepModal.mjs.map +1 -0
  81. package/dist/admin/components/AIChat/components/animations.js +67 -0
  82. package/dist/admin/components/AIChat/components/animations.js.map +1 -0
  83. package/dist/admin/components/AIChat/components/animations.mjs +65 -0
  84. package/dist/admin/components/AIChat/components/animations.mjs.map +1 -0
  85. package/dist/admin/components/AIChat/components/icons/FigmaIcon.js +50 -0
  86. package/dist/admin/components/AIChat/components/icons/FigmaIcon.js.map +1 -0
  87. package/dist/admin/components/AIChat/components/icons/FigmaIcon.mjs +48 -0
  88. package/dist/admin/components/AIChat/components/icons/FigmaIcon.mjs.map +1 -0
  89. package/dist/admin/components/AIChat/components/icons/StopIcon.js +25 -0
  90. package/dist/admin/components/AIChat/components/icons/StopIcon.js.map +1 -0
  91. package/dist/admin/components/AIChat/components/icons/StopIcon.mjs +23 -0
  92. package/dist/admin/components/AIChat/components/icons/StopIcon.mjs.map +1 -0
  93. package/dist/admin/components/AIChat/hooks/useAIFetch.js +107 -0
  94. package/dist/admin/components/AIChat/hooks/useAIFetch.js.map +1 -0
  95. package/dist/admin/components/AIChat/hooks/useAIFetch.mjs +96 -0
  96. package/dist/admin/components/AIChat/hooks/useAIFetch.mjs.map +1 -0
  97. package/dist/admin/components/AIChat/hooks/useAttachments.js +152 -0
  98. package/dist/admin/components/AIChat/hooks/useAttachments.js.map +1 -0
  99. package/dist/admin/components/AIChat/hooks/useAttachments.mjs +150 -0
  100. package/dist/admin/components/AIChat/hooks/useAttachments.mjs.map +1 -0
  101. package/dist/admin/components/AIChat/hooks/useChatTitle.js +47 -0
  102. package/dist/admin/components/AIChat/hooks/useChatTitle.js.map +1 -0
  103. package/dist/admin/components/AIChat/hooks/useChatTitle.mjs +45 -0
  104. package/dist/admin/components/AIChat/hooks/useChatTitle.mjs.map +1 -0
  105. package/dist/admin/components/AIChat/hooks/useCodeUpload.js +212 -0
  106. package/dist/admin/components/AIChat/hooks/useCodeUpload.js.map +1 -0
  107. package/dist/admin/components/AIChat/hooks/useCodeUpload.mjs +207 -0
  108. package/dist/admin/components/AIChat/hooks/useCodeUpload.mjs.map +1 -0
  109. package/dist/admin/components/AIChat/hooks/useFeedback.js +76 -0
  110. package/dist/admin/components/AIChat/hooks/useFeedback.js.map +1 -0
  111. package/dist/admin/components/AIChat/hooks/useFeedback.mjs +74 -0
  112. package/dist/admin/components/AIChat/hooks/useFeedback.mjs.map +1 -0
  113. package/dist/admin/components/AIChat/hooks/useFigmaUpload.js +206 -0
  114. package/dist/admin/components/AIChat/hooks/useFigmaUpload.js.map +1 -0
  115. package/dist/admin/components/AIChat/hooks/useFigmaUpload.mjs +200 -0
  116. package/dist/admin/components/AIChat/hooks/useFigmaUpload.mjs.map +1 -0
  117. package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.js +115 -0
  118. package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.js.map +1 -0
  119. package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.mjs +113 -0
  120. package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.mjs.map +1 -0
  121. package/dist/admin/components/AIChat/hooks/useTranslations.js +19 -0
  122. package/dist/admin/components/AIChat/hooks/useTranslations.js.map +1 -0
  123. package/dist/admin/components/AIChat/hooks/useTranslations.mjs +17 -0
  124. package/dist/admin/components/AIChat/hooks/useTranslations.mjs.map +1 -0
  125. package/dist/admin/components/AIChat/lib/aiClient.js +168 -0
  126. package/dist/admin/components/AIChat/lib/aiClient.js.map +1 -0
  127. package/dist/admin/components/AIChat/lib/aiClient.mjs +161 -0
  128. package/dist/admin/components/AIChat/lib/aiClient.mjs.map +1 -0
  129. package/dist/admin/components/AIChat/lib/constants.js +16 -0
  130. package/dist/admin/components/AIChat/lib/constants.js.map +1 -0
  131. package/dist/admin/components/AIChat/lib/constants.mjs +10 -0
  132. package/dist/admin/components/AIChat/lib/constants.mjs.map +1 -0
  133. package/dist/admin/components/AIChat/lib/misc.js +8 -0
  134. package/dist/admin/components/AIChat/lib/misc.js.map +1 -0
  135. package/dist/admin/components/AIChat/lib/misc.mjs +6 -0
  136. package/dist/admin/components/AIChat/lib/misc.mjs.map +1 -0
  137. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js +46 -0
  138. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js.map +1 -0
  139. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs +44 -0
  140. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs.map +1 -0
  141. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js +151 -0
  142. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js.map +1 -0
  143. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs +148 -0
  144. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs.map +1 -0
  145. package/dist/admin/components/AIChat/providers/ChatProvider.js +191 -0
  146. package/dist/admin/components/AIChat/providers/ChatProvider.js.map +1 -0
  147. package/dist/admin/components/AIChat/providers/ChatProvider.mjs +187 -0
  148. package/dist/admin/components/AIChat/providers/ChatProvider.mjs.map +1 -0
  149. package/dist/admin/components/AIChat/providers/SchemaProvider.js +90 -0
  150. package/dist/admin/components/AIChat/providers/SchemaProvider.js.map +1 -0
  151. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs +88 -0
  152. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs.map +1 -0
  153. package/dist/admin/components/ComponentList.js +1 -0
  154. package/dist/admin/components/ComponentList.js.map +1 -1
  155. package/dist/admin/components/ComponentList.mjs +1 -0
  156. package/dist/admin/components/ComponentList.mjs.map +1 -1
  157. package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -1
  158. package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -1
  159. package/dist/admin/components/DataManager/reducer.js +48 -6
  160. package/dist/admin/components/DataManager/reducer.js.map +1 -1
  161. package/dist/admin/components/DataManager/reducer.mjs +48 -6
  162. package/dist/admin/components/DataManager/reducer.mjs.map +1 -1
  163. package/dist/admin/components/FormModal/utils/canEditContentType.js.map +1 -1
  164. package/dist/admin/components/FormModal/utils/canEditContentType.mjs.map +1 -1
  165. package/dist/admin/pages/App/index.js +60 -29
  166. package/dist/admin/pages/App/index.js.map +1 -1
  167. package/dist/admin/pages/App/index.mjs +62 -31
  168. package/dist/admin/pages/App/index.mjs.map +1 -1
  169. package/dist/admin/pages/ListView/EmptyState.js +75 -9
  170. package/dist/admin/pages/ListView/EmptyState.js.map +1 -1
  171. package/dist/admin/pages/ListView/EmptyState.mjs +77 -11
  172. package/dist/admin/pages/ListView/EmptyState.mjs.map +1 -1
  173. package/dist/admin/src/components/AIChat/Chat.d.ts +2 -0
  174. package/dist/admin/src/components/AIChat/FeedbackModal.d.ts +13 -0
  175. package/dist/admin/src/components/AIChat/UploadCodeModal.d.ts +12 -0
  176. package/dist/admin/src/components/AIChat/UploadFigmaModal.d.ts +12 -0
  177. package/dist/admin/src/components/AIChat/components/Alert.d.ts +6 -0
  178. package/dist/admin/src/components/AIChat/components/AnimatedBox.d.ts +13 -0
  179. package/dist/admin/src/components/AIChat/components/Attachments/AttachmentPreview.d.ts +9 -0
  180. package/dist/admin/src/components/AIChat/components/Attachments/components/Attachment.d.ts +27 -0
  181. package/dist/admin/src/components/AIChat/components/Base64Image.d.ts +9 -0
  182. package/dist/admin/src/components/AIChat/components/Collapsible.d.ts +18 -0
  183. package/dist/admin/src/components/AIChat/components/Dropzone.d.ts +35 -0
  184. package/dist/admin/src/components/AIChat/components/FloatingPanel.d.ts +34 -0
  185. package/dist/admin/src/components/AIChat/components/FullScreenImage.d.ts +20 -0
  186. package/dist/admin/src/components/AIChat/components/ImagePreview.d.ts +8 -0
  187. package/dist/admin/src/components/AIChat/components/ImagePreviewGroup.d.ts +7 -0
  188. package/dist/admin/src/components/AIChat/components/Input.d.ts +43 -0
  189. package/dist/admin/src/components/AIChat/components/Messages/Marker.d.ts +2 -0
  190. package/dist/admin/src/components/AIChat/components/Messages/Message.d.ts +5 -0
  191. package/dist/admin/src/components/AIChat/components/ResizableTextArea.d.ts +9 -0
  192. package/dist/admin/src/components/AIChat/components/SimpleMenu.d.ts +32 -0
  193. package/dist/admin/src/components/AIChat/components/StepModal.d.ts +37 -0
  194. package/dist/admin/src/components/AIChat/components/animations.d.ts +8 -0
  195. package/dist/admin/src/components/AIChat/components/icons/FigmaIcon.d.ts +5 -0
  196. package/dist/admin/src/components/AIChat/components/icons/StopIcon.d.ts +5 -0
  197. package/dist/admin/src/components/AIChat/hooks/useAIFetch.d.ts +147 -0
  198. package/dist/admin/src/components/AIChat/hooks/useAttachments.d.ts +8 -0
  199. package/dist/admin/src/components/AIChat/hooks/useChatTitle.d.ts +13 -0
  200. package/dist/admin/src/components/AIChat/hooks/useCodeUpload.d.ts +31 -0
  201. package/dist/admin/src/components/AIChat/hooks/useFeedback.d.ts +7 -0
  202. package/dist/admin/src/components/AIChat/hooks/useFigmaUpload.d.ts +61 -0
  203. package/dist/admin/src/components/AIChat/hooks/useLastSeenSchemas.d.ts +10 -0
  204. package/dist/admin/src/components/AIChat/hooks/useTranslations.d.ts +3 -0
  205. package/dist/admin/src/components/AIChat/lib/aiClient.d.ts +32 -0
  206. package/dist/admin/src/components/AIChat/lib/constants.d.ts +12 -0
  207. package/dist/admin/src/components/AIChat/lib/fileToAttachment.d.ts +2 -0
  208. package/dist/admin/src/components/AIChat/lib/misc.d.ts +1 -0
  209. package/dist/admin/src/components/AIChat/lib/transforms/schemas/fromCTB.d.ts +3 -0
  210. package/dist/admin/src/components/AIChat/lib/transforms/schemas/toCTB.d.ts +16 -0
  211. package/dist/admin/src/components/AIChat/lib/types/annotations.d.ts +19 -0
  212. package/dist/admin/src/components/AIChat/lib/types/attachments.d.ts +15 -0
  213. package/dist/admin/src/components/AIChat/lib/types/feedback.d.ts +1 -0
  214. package/dist/admin/src/components/AIChat/lib/types/messages.d.ts +26 -0
  215. package/dist/admin/src/components/AIChat/lib/types/schema.d.ts +20 -0
  216. package/dist/admin/src/components/AIChat/providers/ChatProvider.d.ts +30 -0
  217. package/dist/admin/src/components/AIChat/providers/SchemaProvider.d.ts +10 -0
  218. package/dist/admin/src/components/ComponentList.d.ts +1 -1
  219. package/dist/admin/src/components/DataManager/DataManagerContext.d.ts +1 -1
  220. package/dist/admin/translations/ar.json.js +187 -2
  221. package/dist/admin/translations/ar.json.js.map +1 -1
  222. package/dist/admin/translations/ar.json.mjs +187 -3
  223. package/dist/admin/translations/ar.json.mjs.map +1 -1
  224. package/dist/admin/translations/de.json.js +42 -7
  225. package/dist/admin/translations/de.json.js.map +1 -1
  226. package/dist/admin/translations/de.json.mjs +42 -7
  227. package/dist/admin/translations/de.json.mjs.map +1 -1
  228. package/dist/admin/translations/en.json.js +53 -2
  229. package/dist/admin/translations/en.json.js.map +1 -1
  230. package/dist/admin/translations/en.json.mjs +53 -2
  231. package/dist/admin/translations/en.json.mjs.map +1 -1
  232. package/dist/admin/translations/es.json.js +37 -15
  233. package/dist/admin/translations/es.json.js.map +1 -1
  234. package/dist/admin/translations/es.json.mjs +37 -15
  235. package/dist/admin/translations/es.json.mjs.map +1 -1
  236. package/dist/admin/translations/fr.json.js +165 -3
  237. package/dist/admin/translations/fr.json.js.map +1 -1
  238. package/dist/admin/translations/fr.json.mjs +165 -4
  239. package/dist/admin/translations/fr.json.mjs.map +1 -1
  240. package/dist/admin/translations/id.json.js +93 -23
  241. package/dist/admin/translations/id.json.js.map +1 -1
  242. package/dist/admin/translations/id.json.mjs +93 -23
  243. package/dist/admin/translations/id.json.mjs.map +1 -1
  244. package/dist/admin/translations/it.json.js +75 -6
  245. package/dist/admin/translations/it.json.js.map +1 -1
  246. package/dist/admin/translations/it.json.mjs +75 -6
  247. package/dist/admin/translations/it.json.mjs.map +1 -1
  248. package/dist/admin/translations/ja.json.js +191 -5
  249. package/dist/admin/translations/ja.json.js.map +1 -1
  250. package/dist/admin/translations/ja.json.mjs +191 -6
  251. package/dist/admin/translations/ja.json.mjs.map +1 -1
  252. package/dist/admin/translations/ko.json.js +70 -16
  253. package/dist/admin/translations/ko.json.js.map +1 -1
  254. package/dist/admin/translations/ko.json.mjs +70 -16
  255. package/dist/admin/translations/ko.json.mjs.map +1 -1
  256. package/dist/admin/translations/ms.json.js +104 -31
  257. package/dist/admin/translations/ms.json.js.map +1 -1
  258. package/dist/admin/translations/ms.json.mjs +104 -31
  259. package/dist/admin/translations/ms.json.mjs.map +1 -1
  260. package/dist/admin/translations/nl.json.js +95 -15
  261. package/dist/admin/translations/nl.json.js.map +1 -1
  262. package/dist/admin/translations/nl.json.mjs +95 -15
  263. package/dist/admin/translations/nl.json.mjs.map +1 -1
  264. package/dist/admin/translations/pl.json.js +55 -11
  265. package/dist/admin/translations/pl.json.js.map +1 -1
  266. package/dist/admin/translations/pl.json.mjs +55 -11
  267. package/dist/admin/translations/pl.json.mjs.map +1 -1
  268. package/dist/admin/translations/pt-BR.json.js +54 -10
  269. package/dist/admin/translations/pt-BR.json.js.map +1 -1
  270. package/dist/admin/translations/pt-BR.json.mjs +54 -10
  271. package/dist/admin/translations/pt-BR.json.mjs.map +1 -1
  272. package/dist/admin/translations/pt.json.js +187 -2
  273. package/dist/admin/translations/pt.json.js.map +1 -1
  274. package/dist/admin/translations/pt.json.mjs +187 -3
  275. package/dist/admin/translations/pt.json.mjs.map +1 -1
  276. package/dist/admin/translations/ru.json.js +26 -1
  277. package/dist/admin/translations/ru.json.js.map +1 -1
  278. package/dist/admin/translations/ru.json.mjs +26 -1
  279. package/dist/admin/translations/ru.json.mjs.map +1 -1
  280. package/dist/admin/translations/sk.json.js +21 -1
  281. package/dist/admin/translations/sk.json.js.map +1 -1
  282. package/dist/admin/translations/sk.json.mjs +21 -1
  283. package/dist/admin/translations/sk.json.mjs.map +1 -1
  284. package/dist/admin/translations/sv.json.js +21 -1
  285. package/dist/admin/translations/sv.json.js.map +1 -1
  286. package/dist/admin/translations/sv.json.mjs +21 -1
  287. package/dist/admin/translations/sv.json.mjs.map +1 -1
  288. package/dist/admin/translations/th.json.js +21 -1
  289. package/dist/admin/translations/th.json.js.map +1 -1
  290. package/dist/admin/translations/th.json.mjs +21 -1
  291. package/dist/admin/translations/th.json.mjs.map +1 -1
  292. package/dist/admin/translations/tr.json.js +21 -1
  293. package/dist/admin/translations/tr.json.js.map +1 -1
  294. package/dist/admin/translations/tr.json.mjs +21 -1
  295. package/dist/admin/translations/tr.json.mjs.map +1 -1
  296. package/dist/admin/translations/uk.json.js +21 -2
  297. package/dist/admin/translations/uk.json.js.map +1 -1
  298. package/dist/admin/translations/uk.json.mjs +21 -2
  299. package/dist/admin/translations/uk.json.mjs.map +1 -1
  300. package/dist/admin/translations/zh-Hans.json.js +222 -133
  301. package/dist/admin/translations/zh-Hans.json.js.map +1 -1
  302. package/dist/admin/translations/zh-Hans.json.mjs +222 -133
  303. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -1
  304. package/dist/admin/translations/zh.json.js +21 -1
  305. package/dist/admin/translations/zh.json.js.map +1 -1
  306. package/dist/admin/translations/zh.json.mjs +21 -1
  307. package/dist/admin/translations/zh.json.mjs.map +1 -1
  308. package/dist/server/index.js +2 -0
  309. package/dist/server/index.js.map +1 -1
  310. package/dist/server/index.mjs +2 -0
  311. package/dist/server/index.mjs.map +1 -1
  312. package/dist/server/register.js +98 -0
  313. package/dist/server/register.js.map +1 -0
  314. package/dist/server/register.mjs +96 -0
  315. package/dist/server/register.mjs.map +1 -0
  316. package/dist/server/src/controllers/ai/auth.d.ts +1 -0
  317. package/dist/server/src/controllers/ai/auth.d.ts.map +1 -0
  318. package/dist/server/src/controllers/ai/index.d.ts +1 -0
  319. package/dist/server/src/controllers/ai/index.d.ts.map +1 -0
  320. package/dist/server/src/index.d.ts +1 -0
  321. package/dist/server/src/index.d.ts.map +1 -1
  322. package/dist/server/src/register.d.ts +11 -0
  323. package/dist/server/src/register.d.ts.map +1 -0
  324. package/package.json +14 -7
  325. package/dist/admin/components/DataManager/utils/formatSchemas.js +0 -21
  326. package/dist/admin/components/DataManager/utils/formatSchemas.js.map +0 -1
  327. package/dist/admin/components/DataManager/utils/formatSchemas.mjs +0 -18
  328. package/dist/admin/components/DataManager/utils/formatSchemas.mjs.map +0 -1
@@ -5,6 +5,9 @@ var React = require('react');
5
5
  var strapiAdmin = require('@strapi/admin/strapi-admin');
6
6
  var reactIntl = require('react-intl');
7
7
  var reactRouterDom = require('react-router-dom');
8
+ var Chat = require('../../components/AIChat/Chat.js');
9
+ var aiClient = require('../../components/AIChat/lib/aiClient.js');
10
+ var ChatProvider = require('../../components/AIChat/providers/ChatProvider.js');
8
11
  var AutoReloadOverlayBlocker = require('../../components/AutoReloadOverlayBlocker.js');
9
12
  var ContentTypeBuilderNav = require('../../components/ContentTypeBuilderNav/ContentTypeBuilderNav.js');
10
13
  var DataManagerProvider = require('../../components/DataManager/DataManagerProvider.js');
@@ -25,6 +28,31 @@ const App = ()=>{
25
28
  defaultMessage: 'Content Types Builder'
26
29
  });
27
30
  const autoReload = strapiAdmin.useAppInfo('DataManagerProvider', (state)=>state.autoReload);
31
+ const isAIEnabled = strapiAdmin.useAIAvailability();
32
+ const state = strapiAdmin.useGuidedTour('ContentTypeBuilderApp', (s)=>s.state);
33
+ const dispatch = strapiAdmin.useGuidedTour('ContentTypeBuilderApp', (s)=>s.dispatch);
34
+ // Prefetch AI token on initial load
35
+ React.useEffect(()=>{
36
+ aiClient.prefetchAIToken();
37
+ }, []);
38
+ // Set tour type based on AI availability when the app loads
39
+ React.useEffect(()=>{
40
+ const tourType = isAIEnabled ? 'ContentTypeBuilderAI' : 'ContentTypeBuilderNoAI';
41
+ const currentTourType = state.tours.contentTypeBuilder.tourType;
42
+ if (currentTourType !== tourType) {
43
+ dispatch({
44
+ type: 'set_tour_type',
45
+ payload: {
46
+ tourName: 'contentTypeBuilder',
47
+ tourType
48
+ }
49
+ });
50
+ }
51
+ }, [
52
+ isAIEnabled,
53
+ state.tours.contentTypeBuilder.tourType,
54
+ dispatch
55
+ ]);
28
56
  return /*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.Page.Protect, {
29
57
  permissions: constants.PERMISSIONS.main,
30
58
  children: [
@@ -36,36 +64,39 @@ const App = ()=>{
36
64
  children: /*#__PURE__*/ jsxRuntime.jsxs(DataManagerProvider, {
37
65
  children: [
38
66
  /*#__PURE__*/ jsxRuntime.jsx(ExitPrompt.ExitPrompt, {}),
39
- /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
40
- children: [
41
- autoReload && /*#__PURE__*/ jsxRuntime.jsx(FormModal.FormModal, {}),
42
- /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Layouts.Root, {
43
- sideNav: /*#__PURE__*/ jsxRuntime.jsx(ContentTypeBuilderNav.ContentTypeBuilderNav, {}),
44
- children: /*#__PURE__*/ jsxRuntime.jsx(React.Suspense, {
45
- fallback: /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Loading, {}),
46
- children: /*#__PURE__*/ jsxRuntime.jsxs(reactRouterDom.Routes, {
47
- children: [
48
- /*#__PURE__*/ jsxRuntime.jsx(reactRouterDom.Route, {
49
- path: "content-types/create-content-type",
50
- element: /*#__PURE__*/ jsxRuntime.jsx(EmptyState.EmptyState, {})
51
- }),
52
- /*#__PURE__*/ jsxRuntime.jsx(reactRouterDom.Route, {
53
- path: "content-types/:contentTypeUid",
54
- element: /*#__PURE__*/ jsxRuntime.jsx(ListView, {})
55
- }),
56
- /*#__PURE__*/ jsxRuntime.jsx(reactRouterDom.Route, {
57
- path: `component-categories/:categoryUid/:componentUid`,
58
- element: /*#__PURE__*/ jsxRuntime.jsx(ListView, {})
59
- }),
60
- /*#__PURE__*/ jsxRuntime.jsx(reactRouterDom.Route, {
61
- path: "*",
62
- element: /*#__PURE__*/ jsxRuntime.jsx(ListView, {})
63
- })
64
- ]
67
+ /*#__PURE__*/ jsxRuntime.jsx(ChatProvider.ChatProvider, {
68
+ children: /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
69
+ children: [
70
+ autoReload && /*#__PURE__*/ jsxRuntime.jsx(FormModal.FormModal, {}),
71
+ /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Layouts.Root, {
72
+ sideNav: /*#__PURE__*/ jsxRuntime.jsx(ContentTypeBuilderNav.ContentTypeBuilderNav, {}),
73
+ children: /*#__PURE__*/ jsxRuntime.jsx(React.Suspense, {
74
+ fallback: /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Loading, {}),
75
+ children: /*#__PURE__*/ jsxRuntime.jsxs(reactRouterDom.Routes, {
76
+ children: [
77
+ /*#__PURE__*/ jsxRuntime.jsx(reactRouterDom.Route, {
78
+ path: "content-types/create-content-type",
79
+ element: /*#__PURE__*/ jsxRuntime.jsx(EmptyState.EmptyState, {})
80
+ }),
81
+ /*#__PURE__*/ jsxRuntime.jsx(reactRouterDom.Route, {
82
+ path: "content-types/:contentTypeUid",
83
+ element: /*#__PURE__*/ jsxRuntime.jsx(ListView, {})
84
+ }),
85
+ /*#__PURE__*/ jsxRuntime.jsx(reactRouterDom.Route, {
86
+ path: `component-categories/:categoryUid/:componentUid`,
87
+ element: /*#__PURE__*/ jsxRuntime.jsx(ListView, {})
88
+ }),
89
+ /*#__PURE__*/ jsxRuntime.jsx(reactRouterDom.Route, {
90
+ path: "*",
91
+ element: /*#__PURE__*/ jsxRuntime.jsx(ListView, {})
92
+ })
93
+ ]
94
+ })
65
95
  })
66
- })
67
- })
68
- ]
96
+ }),
97
+ /*#__PURE__*/ jsxRuntime.jsx(Chat.Chat, {})
98
+ ]
99
+ })
69
100
  })
70
101
  ]
71
102
  })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../admin/src/pages/App/index.tsx"],"sourcesContent":["/* eslint-disable import/no-default-export */\n/* eslint-disable check-file/filename-naming-convention */\n/* eslint-disable check-file/no-index */\nimport { lazy, Suspense, useEffect, useRef } from 'react';\n\nimport { Page, Layouts, useAppInfo } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { Route, Routes } from 'react-router-dom';\n\nimport { AutoReloadOverlayBlockerProvider } from '../../components/AutoReloadOverlayBlocker';\nimport { ContentTypeBuilderNav } from '../../components/ContentTypeBuilderNav/ContentTypeBuilderNav';\nimport DataManagerProvider from '../../components/DataManager/DataManagerProvider';\nimport { ExitPrompt } from '../../components/ExitPrompt';\nimport { FormModal } from '../../components/FormModal/FormModal';\nimport { FormModalNavigationProvider } from '../../components/FormModalNavigation/FormModalNavigationProvider';\nimport { PERMISSIONS } from '../../constants';\nimport { pluginId } from '../../pluginId';\nimport { EmptyState } from '../ListView/EmptyState';\n\nconst ListView = lazy(() => import('../ListView/ListView'));\n\nconst App = () => {\n const { formatMessage } = useIntl();\n const title = formatMessage({\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Content Types Builder',\n });\n\n const autoReload = useAppInfo('DataManagerProvider', (state) => state.autoReload);\n\n return (\n <Page.Protect permissions={PERMISSIONS.main}>\n <Page.Title>{title}</Page.Title>\n <AutoReloadOverlayBlockerProvider>\n <FormModalNavigationProvider>\n <DataManagerProvider>\n <ExitPrompt />\n <>\n {autoReload && <FormModal />}\n <Layouts.Root sideNav={<ContentTypeBuilderNav />}>\n <Suspense fallback={<Page.Loading />}>\n <Routes>\n <Route path=\"content-types/create-content-type\" element={<EmptyState />} />\n <Route path=\"content-types/:contentTypeUid\" element={<ListView />} />\n <Route\n path={`component-categories/:categoryUid/:componentUid`}\n element={<ListView />}\n />\n <Route path=\"*\" element={<ListView />} />\n </Routes>\n </Suspense>\n </Layouts.Root>\n </>\n </DataManagerProvider>\n </FormModalNavigationProvider>\n </AutoReloadOverlayBlockerProvider>\n </Page.Protect>\n );\n};\n\nexport default App;\n"],"names":["ListView","lazy","App","formatMessage","useIntl","title","id","pluginId","defaultMessage","autoReload","useAppInfo","state","_jsxs","Page","Protect","permissions","PERMISSIONS","main","_jsx","Title","AutoReloadOverlayBlockerProvider","FormModalNavigationProvider","DataManagerProvider","ExitPrompt","_Fragment","FormModal","Layouts","Root","sideNav","ContentTypeBuilderNav","Suspense","fallback","Loading","Routes","Route","path","element","EmptyState"],"mappings":";;;;;;;;;;;;;;;;;;;AAmBA,MAAMA,QAAWC,iBAAAA,UAAAA,CAAK,IAAM,8FAAO,yBAAA,MAAA,CAAA;AAEnC,MAAMC,GAAM,GAAA,IAAA;IACV,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,QAAQF,aAAc,CAAA;AAC1BG,QAAAA,EAAAA,EAAI,CAAC,EAAEC,iBAAS,CAAA,YAAY,CAAC;QAC7BC,cAAgB,EAAA;AAClB,KAAA,CAAA;AAEA,IAAA,MAAMC,aAAaC,sBAAW,CAAA,qBAAA,EAAuB,CAACC,KAAAA,GAAUA,MAAMF,UAAU,CAAA;IAEhF,qBACEG,eAAA,CAACC,iBAAKC,OAAO,EAAA;AAACC,QAAAA,WAAAA,EAAaC,sBAAYC,IAAI;;AACzC,0BAAAC,cAAA,CAACL,iBAAKM,KAAK,EAAA;AAAEd,gBAAAA,QAAAA,EAAAA;;0BACba,cAACE,CAAAA,yDAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAF,cAACG,CAAAA,uDAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAT,eAACU,CAAAA,mBAAAA,EAAAA;;0CACCJ,cAACK,CAAAA,qBAAAA,EAAAA,EAAAA,CAAAA;AACD,0CAAAX,eAAA,CAAAY,mBAAA,EAAA;;AACGf,oCAAAA,UAAAA,kBAAcS,cAACO,CAAAA,mBAAAA,EAAAA,EAAAA,CAAAA;AAChB,kDAAAP,cAAA,CAACQ,oBAAQC,IAAI,EAAA;AAACC,wCAAAA,OAAAA,gBAASV,cAACW,CAAAA,2CAAAA,EAAAA,EAAAA,CAAAA;AACtB,wCAAA,QAAA,gBAAAX,cAACY,CAAAA,cAAAA,EAAAA;4CAASC,QAAU,gBAAAb,cAAA,CAACL,iBAAKmB,OAAO,EAAA,EAAA,CAAA;AAC/B,4CAAA,QAAA,gBAAApB,eAACqB,CAAAA,qBAAAA,EAAAA;;kEACCf,cAACgB,CAAAA,oBAAAA,EAAAA;wDAAMC,IAAK,EAAA,mCAAA;AAAoCC,wDAAAA,OAAAA,gBAASlB,cAACmB,CAAAA,qBAAAA,EAAAA,EAAAA;;kEAC1DnB,cAACgB,CAAAA,oBAAAA,EAAAA;wDAAMC,IAAK,EAAA,+BAAA;AAAgCC,wDAAAA,OAAAA,gBAASlB,cAAClB,CAAAA,QAAAA,EAAAA,EAAAA;;kEACtDkB,cAACgB,CAAAA,oBAAAA,EAAAA;wDACCC,IAAM,EAAA,CAAC,+CAA+C,CAAC;AACvDC,wDAAAA,OAAAA,gBAASlB,cAAClB,CAAAA,QAAAA,EAAAA,EAAAA;;kEAEZkB,cAACgB,CAAAA,oBAAAA,EAAAA;wDAAMC,IAAK,EAAA,GAAA;AAAIC,wDAAAA,OAAAA,gBAASlB,cAAClB,CAAAA,QAAAA,EAAAA,EAAAA;;;;;;;;;;;;;;AAU9C;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../admin/src/pages/App/index.tsx"],"sourcesContent":["/* eslint-disable import/no-default-export */\n/* eslint-disable check-file/filename-naming-convention */\n/* eslint-disable check-file/no-index */\nimport { lazy, Suspense, useEffect } from 'react';\n\nimport {\n Page,\n Layouts,\n useAppInfo,\n useGuidedTour,\n useAIAvailability,\n} from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { Route, Routes } from 'react-router-dom';\n\nimport { Chat } from '../../components/AIChat/Chat';\nimport { prefetchAIToken } from '../../components/AIChat/lib/aiClient';\nimport { ChatProvider } from '../../components/AIChat/providers/ChatProvider';\nimport { AutoReloadOverlayBlockerProvider } from '../../components/AutoReloadOverlayBlocker';\nimport { ContentTypeBuilderNav } from '../../components/ContentTypeBuilderNav/ContentTypeBuilderNav';\nimport DataManagerProvider from '../../components/DataManager/DataManagerProvider';\nimport { ExitPrompt } from '../../components/ExitPrompt';\nimport { FormModal } from '../../components/FormModal/FormModal';\nimport { FormModalNavigationProvider } from '../../components/FormModalNavigation/FormModalNavigationProvider';\nimport { PERMISSIONS } from '../../constants';\nimport { pluginId } from '../../pluginId';\nimport { EmptyState } from '../ListView/EmptyState';\n\nconst ListView = lazy(() => import('../ListView/ListView'));\n\nconst App = () => {\n const { formatMessage } = useIntl();\n const title = formatMessage({\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Content Types Builder',\n });\n\n const autoReload = useAppInfo('DataManagerProvider', (state) => state.autoReload);\n const isAIEnabled = useAIAvailability();\n const state = useGuidedTour('ContentTypeBuilderApp', (s) => s.state);\n const dispatch = useGuidedTour('ContentTypeBuilderApp', (s) => s.dispatch);\n\n // Prefetch AI token on initial load\n useEffect(() => {\n prefetchAIToken();\n }, []);\n\n // Set tour type based on AI availability when the app loads\n useEffect(() => {\n const tourType = isAIEnabled ? 'ContentTypeBuilderAI' : 'ContentTypeBuilderNoAI';\n const currentTourType = state.tours.contentTypeBuilder.tourType;\n\n if (currentTourType !== tourType) {\n dispatch({\n type: 'set_tour_type',\n payload: { tourName: 'contentTypeBuilder', tourType },\n });\n }\n }, [isAIEnabled, state.tours.contentTypeBuilder.tourType, dispatch]);\n\n return (\n <Page.Protect permissions={PERMISSIONS.main}>\n <Page.Title>{title}</Page.Title>\n <AutoReloadOverlayBlockerProvider>\n <FormModalNavigationProvider>\n <DataManagerProvider>\n <ExitPrompt />\n <ChatProvider>\n <>\n {autoReload && <FormModal />}\n <Layouts.Root sideNav={<ContentTypeBuilderNav />}>\n <Suspense fallback={<Page.Loading />}>\n <Routes>\n <Route path=\"content-types/create-content-type\" element={<EmptyState />} />\n <Route path=\"content-types/:contentTypeUid\" element={<ListView />} />\n <Route\n path={`component-categories/:categoryUid/:componentUid`}\n element={<ListView />}\n />\n <Route path=\"*\" element={<ListView />} />\n </Routes>\n </Suspense>\n </Layouts.Root>\n <Chat />\n </>\n </ChatProvider>\n </DataManagerProvider>\n </FormModalNavigationProvider>\n </AutoReloadOverlayBlockerProvider>\n </Page.Protect>\n );\n};\n\nexport default App;\n"],"names":["ListView","lazy","App","formatMessage","useIntl","title","id","pluginId","defaultMessage","autoReload","useAppInfo","state","isAIEnabled","useAIAvailability","useGuidedTour","s","dispatch","useEffect","prefetchAIToken","tourType","currentTourType","tours","contentTypeBuilder","type","payload","tourName","_jsxs","Page","Protect","permissions","PERMISSIONS","main","_jsx","Title","AutoReloadOverlayBlockerProvider","FormModalNavigationProvider","DataManagerProvider","ExitPrompt","ChatProvider","_Fragment","FormModal","Layouts","Root","sideNav","ContentTypeBuilderNav","Suspense","fallback","Loading","Routes","Route","path","element","EmptyState","Chat"],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
- import { Suspense, lazy } from 'react';
3
- import { useAppInfo, Page, Layouts } from '@strapi/admin/strapi-admin';
2
+ import { useEffect, Suspense, lazy } from 'react';
3
+ import { useAppInfo, useAIAvailability, useGuidedTour, Page, Layouts } from '@strapi/admin/strapi-admin';
4
4
  import { useIntl } from 'react-intl';
5
5
  import { Routes, Route } from 'react-router-dom';
6
+ import { Chat } from '../../components/AIChat/Chat.mjs';
7
+ import { prefetchAIToken } from '../../components/AIChat/lib/aiClient.mjs';
8
+ import { ChatProvider } from '../../components/AIChat/providers/ChatProvider.mjs';
6
9
  import { AutoReloadOverlayBlockerProvider } from '../../components/AutoReloadOverlayBlocker.mjs';
7
10
  import { ContentTypeBuilderNav } from '../../components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs';
8
11
  import DataManagerProvider from '../../components/DataManager/DataManagerProvider.mjs';
@@ -21,6 +24,31 @@ const App = ()=>{
21
24
  defaultMessage: 'Content Types Builder'
22
25
  });
23
26
  const autoReload = useAppInfo('DataManagerProvider', (state)=>state.autoReload);
27
+ const isAIEnabled = useAIAvailability();
28
+ const state = useGuidedTour('ContentTypeBuilderApp', (s)=>s.state);
29
+ const dispatch = useGuidedTour('ContentTypeBuilderApp', (s)=>s.dispatch);
30
+ // Prefetch AI token on initial load
31
+ useEffect(()=>{
32
+ prefetchAIToken();
33
+ }, []);
34
+ // Set tour type based on AI availability when the app loads
35
+ useEffect(()=>{
36
+ const tourType = isAIEnabled ? 'ContentTypeBuilderAI' : 'ContentTypeBuilderNoAI';
37
+ const currentTourType = state.tours.contentTypeBuilder.tourType;
38
+ if (currentTourType !== tourType) {
39
+ dispatch({
40
+ type: 'set_tour_type',
41
+ payload: {
42
+ tourName: 'contentTypeBuilder',
43
+ tourType
44
+ }
45
+ });
46
+ }
47
+ }, [
48
+ isAIEnabled,
49
+ state.tours.contentTypeBuilder.tourType,
50
+ dispatch
51
+ ]);
24
52
  return /*#__PURE__*/ jsxs(Page.Protect, {
25
53
  permissions: PERMISSIONS.main,
26
54
  children: [
@@ -32,36 +60,39 @@ const App = ()=>{
32
60
  children: /*#__PURE__*/ jsxs(DataManagerProvider, {
33
61
  children: [
34
62
  /*#__PURE__*/ jsx(ExitPrompt, {}),
35
- /*#__PURE__*/ jsxs(Fragment, {
36
- children: [
37
- autoReload && /*#__PURE__*/ jsx(FormModal, {}),
38
- /*#__PURE__*/ jsx(Layouts.Root, {
39
- sideNav: /*#__PURE__*/ jsx(ContentTypeBuilderNav, {}),
40
- children: /*#__PURE__*/ jsx(Suspense, {
41
- fallback: /*#__PURE__*/ jsx(Page.Loading, {}),
42
- children: /*#__PURE__*/ jsxs(Routes, {
43
- children: [
44
- /*#__PURE__*/ jsx(Route, {
45
- path: "content-types/create-content-type",
46
- element: /*#__PURE__*/ jsx(EmptyState, {})
47
- }),
48
- /*#__PURE__*/ jsx(Route, {
49
- path: "content-types/:contentTypeUid",
50
- element: /*#__PURE__*/ jsx(ListView, {})
51
- }),
52
- /*#__PURE__*/ jsx(Route, {
53
- path: `component-categories/:categoryUid/:componentUid`,
54
- element: /*#__PURE__*/ jsx(ListView, {})
55
- }),
56
- /*#__PURE__*/ jsx(Route, {
57
- path: "*",
58
- element: /*#__PURE__*/ jsx(ListView, {})
59
- })
60
- ]
63
+ /*#__PURE__*/ jsx(ChatProvider, {
64
+ children: /*#__PURE__*/ jsxs(Fragment, {
65
+ children: [
66
+ autoReload && /*#__PURE__*/ jsx(FormModal, {}),
67
+ /*#__PURE__*/ jsx(Layouts.Root, {
68
+ sideNav: /*#__PURE__*/ jsx(ContentTypeBuilderNav, {}),
69
+ children: /*#__PURE__*/ jsx(Suspense, {
70
+ fallback: /*#__PURE__*/ jsx(Page.Loading, {}),
71
+ children: /*#__PURE__*/ jsxs(Routes, {
72
+ children: [
73
+ /*#__PURE__*/ jsx(Route, {
74
+ path: "content-types/create-content-type",
75
+ element: /*#__PURE__*/ jsx(EmptyState, {})
76
+ }),
77
+ /*#__PURE__*/ jsx(Route, {
78
+ path: "content-types/:contentTypeUid",
79
+ element: /*#__PURE__*/ jsx(ListView, {})
80
+ }),
81
+ /*#__PURE__*/ jsx(Route, {
82
+ path: `component-categories/:categoryUid/:componentUid`,
83
+ element: /*#__PURE__*/ jsx(ListView, {})
84
+ }),
85
+ /*#__PURE__*/ jsx(Route, {
86
+ path: "*",
87
+ element: /*#__PURE__*/ jsx(ListView, {})
88
+ })
89
+ ]
90
+ })
61
91
  })
62
- })
63
- })
64
- ]
92
+ }),
93
+ /*#__PURE__*/ jsx(Chat, {})
94
+ ]
95
+ })
65
96
  })
66
97
  ]
67
98
  })
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../admin/src/pages/App/index.tsx"],"sourcesContent":["/* eslint-disable import/no-default-export */\n/* eslint-disable check-file/filename-naming-convention */\n/* eslint-disable check-file/no-index */\nimport { lazy, Suspense, useEffect, useRef } from 'react';\n\nimport { Page, Layouts, useAppInfo } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { Route, Routes } from 'react-router-dom';\n\nimport { AutoReloadOverlayBlockerProvider } from '../../components/AutoReloadOverlayBlocker';\nimport { ContentTypeBuilderNav } from '../../components/ContentTypeBuilderNav/ContentTypeBuilderNav';\nimport DataManagerProvider from '../../components/DataManager/DataManagerProvider';\nimport { ExitPrompt } from '../../components/ExitPrompt';\nimport { FormModal } from '../../components/FormModal/FormModal';\nimport { FormModalNavigationProvider } from '../../components/FormModalNavigation/FormModalNavigationProvider';\nimport { PERMISSIONS } from '../../constants';\nimport { pluginId } from '../../pluginId';\nimport { EmptyState } from '../ListView/EmptyState';\n\nconst ListView = lazy(() => import('../ListView/ListView'));\n\nconst App = () => {\n const { formatMessage } = useIntl();\n const title = formatMessage({\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Content Types Builder',\n });\n\n const autoReload = useAppInfo('DataManagerProvider', (state) => state.autoReload);\n\n return (\n <Page.Protect permissions={PERMISSIONS.main}>\n <Page.Title>{title}</Page.Title>\n <AutoReloadOverlayBlockerProvider>\n <FormModalNavigationProvider>\n <DataManagerProvider>\n <ExitPrompt />\n <>\n {autoReload && <FormModal />}\n <Layouts.Root sideNav={<ContentTypeBuilderNav />}>\n <Suspense fallback={<Page.Loading />}>\n <Routes>\n <Route path=\"content-types/create-content-type\" element={<EmptyState />} />\n <Route path=\"content-types/:contentTypeUid\" element={<ListView />} />\n <Route\n path={`component-categories/:categoryUid/:componentUid`}\n element={<ListView />}\n />\n <Route path=\"*\" element={<ListView />} />\n </Routes>\n </Suspense>\n </Layouts.Root>\n </>\n </DataManagerProvider>\n </FormModalNavigationProvider>\n </AutoReloadOverlayBlockerProvider>\n </Page.Protect>\n );\n};\n\nexport default App;\n"],"names":["ListView","lazy","App","formatMessage","useIntl","title","id","pluginId","defaultMessage","autoReload","useAppInfo","state","_jsxs","Page","Protect","permissions","PERMISSIONS","main","_jsx","Title","AutoReloadOverlayBlockerProvider","FormModalNavigationProvider","DataManagerProvider","ExitPrompt","_Fragment","FormModal","Layouts","Root","sideNav","ContentTypeBuilderNav","Suspense","fallback","Loading","Routes","Route","path","element","EmptyState"],"mappings":";;;;;;;;;;;;;;;AAmBA,MAAMA,QAAWC,iBAAAA,IAAAA,CAAK,IAAM,OAAO,0BAAA,CAAA,CAAA;AAEnC,MAAMC,GAAM,GAAA,IAAA;IACV,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMC,QAAQF,aAAc,CAAA;AAC1BG,QAAAA,EAAAA,EAAI,CAAC,EAAEC,QAAS,CAAA,YAAY,CAAC;QAC7BC,cAAgB,EAAA;AAClB,KAAA,CAAA;AAEA,IAAA,MAAMC,aAAaC,UAAW,CAAA,qBAAA,EAAuB,CAACC,KAAAA,GAAUA,MAAMF,UAAU,CAAA;IAEhF,qBACEG,IAAA,CAACC,KAAKC,OAAO,EAAA;AAACC,QAAAA,WAAAA,EAAaC,YAAYC,IAAI;;AACzC,0BAAAC,GAAA,CAACL,KAAKM,KAAK,EAAA;AAAEd,gBAAAA,QAAAA,EAAAA;;0BACba,GAACE,CAAAA,gCAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAF,GAACG,CAAAA,2BAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAT,IAACU,CAAAA,mBAAAA,EAAAA;;0CACCJ,GAACK,CAAAA,UAAAA,EAAAA,EAAAA,CAAAA;AACD,0CAAAX,IAAA,CAAAY,QAAA,EAAA;;AACGf,oCAAAA,UAAAA,kBAAcS,GAACO,CAAAA,SAAAA,EAAAA,EAAAA,CAAAA;AAChB,kDAAAP,GAAA,CAACQ,QAAQC,IAAI,EAAA;AAACC,wCAAAA,OAAAA,gBAASV,GAACW,CAAAA,qBAAAA,EAAAA,EAAAA,CAAAA;AACtB,wCAAA,QAAA,gBAAAX,GAACY,CAAAA,QAAAA,EAAAA;4CAASC,QAAU,gBAAAb,GAAA,CAACL,KAAKmB,OAAO,EAAA,EAAA,CAAA;AAC/B,4CAAA,QAAA,gBAAApB,IAACqB,CAAAA,MAAAA,EAAAA;;kEACCf,GAACgB,CAAAA,KAAAA,EAAAA;wDAAMC,IAAK,EAAA,mCAAA;AAAoCC,wDAAAA,OAAAA,gBAASlB,GAACmB,CAAAA,UAAAA,EAAAA,EAAAA;;kEAC1DnB,GAACgB,CAAAA,KAAAA,EAAAA;wDAAMC,IAAK,EAAA,+BAAA;AAAgCC,wDAAAA,OAAAA,gBAASlB,GAAClB,CAAAA,QAAAA,EAAAA,EAAAA;;kEACtDkB,GAACgB,CAAAA,KAAAA,EAAAA;wDACCC,IAAM,EAAA,CAAC,+CAA+C,CAAC;AACvDC,wDAAAA,OAAAA,gBAASlB,GAAClB,CAAAA,QAAAA,EAAAA,EAAAA;;kEAEZkB,GAACgB,CAAAA,KAAAA,EAAAA;wDAAMC,IAAK,EAAA,GAAA;AAAIC,wDAAAA,OAAAA,gBAASlB,GAAClB,CAAAA,QAAAA,EAAAA,EAAAA;;;;;;;;;;;;;;AAU9C;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../admin/src/pages/App/index.tsx"],"sourcesContent":["/* eslint-disable import/no-default-export */\n/* eslint-disable check-file/filename-naming-convention */\n/* eslint-disable check-file/no-index */\nimport { lazy, Suspense, useEffect } from 'react';\n\nimport {\n Page,\n Layouts,\n useAppInfo,\n useGuidedTour,\n useAIAvailability,\n} from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { Route, Routes } from 'react-router-dom';\n\nimport { Chat } from '../../components/AIChat/Chat';\nimport { prefetchAIToken } from '../../components/AIChat/lib/aiClient';\nimport { ChatProvider } from '../../components/AIChat/providers/ChatProvider';\nimport { AutoReloadOverlayBlockerProvider } from '../../components/AutoReloadOverlayBlocker';\nimport { ContentTypeBuilderNav } from '../../components/ContentTypeBuilderNav/ContentTypeBuilderNav';\nimport DataManagerProvider from '../../components/DataManager/DataManagerProvider';\nimport { ExitPrompt } from '../../components/ExitPrompt';\nimport { FormModal } from '../../components/FormModal/FormModal';\nimport { FormModalNavigationProvider } from '../../components/FormModalNavigation/FormModalNavigationProvider';\nimport { PERMISSIONS } from '../../constants';\nimport { pluginId } from '../../pluginId';\nimport { EmptyState } from '../ListView/EmptyState';\n\nconst ListView = lazy(() => import('../ListView/ListView'));\n\nconst App = () => {\n const { formatMessage } = useIntl();\n const title = formatMessage({\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Content Types Builder',\n });\n\n const autoReload = useAppInfo('DataManagerProvider', (state) => state.autoReload);\n const isAIEnabled = useAIAvailability();\n const state = useGuidedTour('ContentTypeBuilderApp', (s) => s.state);\n const dispatch = useGuidedTour('ContentTypeBuilderApp', (s) => s.dispatch);\n\n // Prefetch AI token on initial load\n useEffect(() => {\n prefetchAIToken();\n }, []);\n\n // Set tour type based on AI availability when the app loads\n useEffect(() => {\n const tourType = isAIEnabled ? 'ContentTypeBuilderAI' : 'ContentTypeBuilderNoAI';\n const currentTourType = state.tours.contentTypeBuilder.tourType;\n\n if (currentTourType !== tourType) {\n dispatch({\n type: 'set_tour_type',\n payload: { tourName: 'contentTypeBuilder', tourType },\n });\n }\n }, [isAIEnabled, state.tours.contentTypeBuilder.tourType, dispatch]);\n\n return (\n <Page.Protect permissions={PERMISSIONS.main}>\n <Page.Title>{title}</Page.Title>\n <AutoReloadOverlayBlockerProvider>\n <FormModalNavigationProvider>\n <DataManagerProvider>\n <ExitPrompt />\n <ChatProvider>\n <>\n {autoReload && <FormModal />}\n <Layouts.Root sideNav={<ContentTypeBuilderNav />}>\n <Suspense fallback={<Page.Loading />}>\n <Routes>\n <Route path=\"content-types/create-content-type\" element={<EmptyState />} />\n <Route path=\"content-types/:contentTypeUid\" element={<ListView />} />\n <Route\n path={`component-categories/:categoryUid/:componentUid`}\n element={<ListView />}\n />\n <Route path=\"*\" element={<ListView />} />\n </Routes>\n </Suspense>\n </Layouts.Root>\n <Chat />\n </>\n </ChatProvider>\n </DataManagerProvider>\n </FormModalNavigationProvider>\n </AutoReloadOverlayBlockerProvider>\n </Page.Protect>\n );\n};\n\nexport default App;\n"],"names":["ListView","lazy","App","formatMessage","useIntl","title","id","pluginId","defaultMessage","autoReload","useAppInfo","state","isAIEnabled","useAIAvailability","useGuidedTour","s","dispatch","useEffect","prefetchAIToken","tourType","currentTourType","tours","contentTypeBuilder","type","payload","tourName","_jsxs","Page","Protect","permissions","PERMISSIONS","main","_jsx","Title","AutoReloadOverlayBlockerProvider","FormModalNavigationProvider","DataManagerProvider","ExitPrompt","ChatProvider","_Fragment","FormModal","Layouts","Root","sideNav","ContentTypeBuilderNav","Suspense","fallback","Loading","Routes","Route","path","element","EmptyState","Chat"],"mappings":"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"}
@@ -3,35 +3,101 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var strapiAdmin = require('@strapi/admin/strapi-admin');
5
5
  var designSystem = require('@strapi/design-system');
6
+ var Icons = require('@strapi/icons');
7
+ var Symbols = require('@strapi/icons/symbols');
6
8
  var reactIntl = require('react-intl');
9
+ var styledComponents = require('styled-components');
10
+ var FigmaIcon = require('../../components/AIChat/components/icons/FigmaIcon.js');
11
+ var ChatProvider = require('../../components/AIChat/providers/ChatProvider.js');
12
+ var UploadCodeModal = require('../../components/AIChat/UploadCodeModal.js');
13
+ var UploadFigmaModal = require('../../components/AIChat/UploadFigmaModal.js');
7
14
  var getTrad = require('../../utils/getTrad.js');
8
15
 
16
+ // Styled container that implements responsive behavior
17
+ const ResponsiveContainer = styledComponents.styled(designSystem.Flex)`
18
+ @container (max-width: 200px) {
19
+ .hide-on-small {
20
+ display: none;
21
+ }
22
+ }
23
+ container-type: inline-size;
24
+ `;
9
25
  const EmptyState = ()=>{
10
26
  const { formatMessage } = reactIntl.useIntl();
11
27
  const pluginName = formatMessage({
12
- id: getTrad.getTrad('plugin.name'),
13
- defaultMessage: 'Content-Type Builder'
28
+ id: getTrad.getTrad('table.content.create-first-content-type.title'),
29
+ defaultMessage: 'No content types'
14
30
  });
15
- return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
31
+ const { isChatEnabled, openChat } = ChatProvider.useStrapiChat();
32
+ const { openCodeUpload } = UploadCodeModal.useUploadProjectToChat();
33
+ const { openFigmaUpload } = UploadFigmaModal.useUploadFigmaToChat();
34
+ return /*#__PURE__*/ jsxRuntime.jsxs(ResponsiveContainer, {
35
+ justifyContent: "center",
36
+ height: "100%",
37
+ width: '400px',
38
+ maxWidth: "90%",
39
+ margin: "auto",
40
+ direction: "column",
41
+ gap: 6,
16
42
  children: [
43
+ /*#__PURE__*/ jsxRuntime.jsx(Symbols.EmptyDocuments, {
44
+ width: "160px",
45
+ height: "88px"
46
+ }),
17
47
  /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.tours.contentTypeBuilder.Introduction, {
18
48
  children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {})
19
49
  }),
20
50
  /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
21
- justifyContent: "center",
51
+ gap: 2,
22
52
  alignItems: "center",
23
- height: "100%",
24
53
  direction: "column",
25
54
  children: [
26
55
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
27
- variant: "alpha",
56
+ variant: "beta",
57
+ textAlign: "center",
28
58
  children: pluginName
29
59
  }),
30
60
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
31
- variant: "delta",
61
+ variant: "omega",
62
+ textAlign: "center",
63
+ textColor: "neutral600",
64
+ children: formatMessage({
65
+ id: getTrad.getTrad('table.content.create-first-content-type.description'),
66
+ defaultMessage: 'Create collection types, single types and components in order to build your schema.'
67
+ })
68
+ })
69
+ ]
70
+ }),
71
+ isChatEnabled && /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
72
+ gap: 2,
73
+ direction: "column",
74
+ className: "hide-on-small",
75
+ children: [
76
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
77
+ startIcon: /*#__PURE__*/ jsxRuntime.jsx(FigmaIcon.FigmaIcon, {}),
78
+ variant: "tertiary",
79
+ onClick: ()=>openFigmaUpload(true),
80
+ children: formatMessage({
81
+ id: getTrad.getTrad('table.content.create-first-content-type.import-figma'),
82
+ defaultMessage: 'Import from Figma'
83
+ })
84
+ }),
85
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
86
+ startIcon: /*#__PURE__*/ jsxRuntime.jsx(Icons.Paperclip, {}),
87
+ variant: "tertiary",
88
+ onClick: ()=>openCodeUpload(true),
89
+ children: formatMessage({
90
+ id: getTrad.getTrad('table.content.create-first-content-type.import-code'),
91
+ defaultMessage: 'Import from computer'
92
+ })
93
+ }),
94
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
95
+ startIcon: /*#__PURE__*/ jsxRuntime.jsx(Icons.Sparkle, {}),
96
+ variant: "tertiary",
97
+ onClick: openChat,
32
98
  children: formatMessage({
33
- id: getTrad.getTrad('table.content.create-first-content-type'),
34
- defaultMessage: 'Create your first Collection-Type'
99
+ id: getTrad.getTrad('table.content.create-first-content-type.start-with-prompt'),
100
+ defaultMessage: 'Start with a prompt'
35
101
  })
36
102
  })
37
103
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyState.js","sources":["../../../../admin/src/pages/ListView/EmptyState.tsx"],"sourcesContent":["import { tours } from '@strapi/admin/strapi-admin';\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../utils/getTrad';\n\nexport const EmptyState = () => {\n const { formatMessage } = useIntl();\n\n const pluginName = formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Content-Type Builder',\n });\n\n return (\n <>\n <tours.contentTypeBuilder.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentTypeBuilder.Introduction>\n <Flex justifyContent=\"center\" alignItems=\"center\" height=\"100%\" direction=\"column\">\n <Typography variant=\"alpha\">{pluginName}</Typography>\n <Typography variant=\"delta\">\n {formatMessage({\n id: getTrad('table.content.create-first-content-type'),\n defaultMessage: 'Create your first Collection-Type',\n })}\n </Typography>\n </Flex>\n </>\n );\n};\n"],"names":["EmptyState","formatMessage","useIntl","pluginName","id","getTrad","defaultMessage","_jsxs","_Fragment","_jsx","tours","contentTypeBuilder","Introduction","Box","Flex","justifyContent","alignItems","height","direction","Typography","variant"],"mappings":";;;;;;;;MAMaA,UAAa,GAAA,IAAA;IACxB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,MAAMC,aAAaF,aAAc,CAAA;AAC/BG,QAAAA,EAAAA,EAAIC,eAAQ,CAAA,aAAA,CAAA;QACZC,cAAgB,EAAA;AAClB,KAAA,CAAA;IAEA,qBACEC,eAAA,CAAAC,mBAAA,EAAA;;0BACEC,cAACC,CAAAA,iBAAAA,CAAMC,kBAAkB,CAACC,YAAY,EAAA;AAEpC,gBAAA,QAAA,gBAAAH,cAACI,CAAAA,gBAAAA,EAAAA,EAAAA;;0BAEHN,eAACO,CAAAA,iBAAAA,EAAAA;gBAAKC,cAAe,EAAA,QAAA;gBAASC,UAAW,EAAA,QAAA;gBAASC,MAAO,EAAA,MAAA;gBAAOC,SAAU,EAAA,QAAA;;kCACxET,cAACU,CAAAA,uBAAAA,EAAAA;wBAAWC,OAAQ,EAAA,OAAA;AAASjB,wBAAAA,QAAAA,EAAAA;;kCAC7BM,cAACU,CAAAA,uBAAAA,EAAAA;wBAAWC,OAAQ,EAAA,OAAA;kCACjBnB,aAAc,CAAA;AACbG,4BAAAA,EAAAA,EAAIC,eAAQ,CAAA,yCAAA,CAAA;4BACZC,cAAgB,EAAA;AAClB,yBAAA;;;;;;AAKV;;;;"}
1
+ {"version":3,"file":"EmptyState.js","sources":["../../../../admin/src/pages/ListView/EmptyState.tsx"],"sourcesContent":["import { tours } from '@strapi/admin/strapi-admin';\nimport { Button, Box, Flex, Typography } from '@strapi/design-system';\nimport { Sparkle, Paperclip } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { FigmaIcon } from '../../components/AIChat/components/icons/FigmaIcon';\nimport { useStrapiChat } from '../../components/AIChat/providers/ChatProvider';\nimport { useUploadProjectToChat } from '../../components/AIChat/UploadCodeModal';\nimport { useUploadFigmaToChat } from '../../components/AIChat/UploadFigmaModal';\nimport { getTrad } from '../../utils/getTrad';\n\n// Styled container that implements responsive behavior\nconst ResponsiveContainer = styled(Flex)`\n @container (max-width: 200px) {\n .hide-on-small {\n display: none;\n }\n }\n container-type: inline-size;\n`;\n\nexport const EmptyState = () => {\n const { formatMessage } = useIntl();\n\n const pluginName = formatMessage({\n id: getTrad('table.content.create-first-content-type.title'),\n defaultMessage: 'No content types',\n });\n\n const { isChatEnabled, openChat } = useStrapiChat();\n const { openCodeUpload } = useUploadProjectToChat();\n const { openFigmaUpload } = useUploadFigmaToChat();\n\n return (\n <ResponsiveContainer\n justifyContent=\"center\"\n height=\"100%\"\n width={'400px'}\n maxWidth=\"90%\"\n margin=\"auto\"\n direction=\"column\"\n gap={6}\n >\n <EmptyDocuments width=\"160px\" height=\"88px\" />\n <tours.contentTypeBuilder.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentTypeBuilder.Introduction>\n <Flex gap={2} alignItems=\"center\" direction=\"column\">\n <Typography variant=\"beta\" textAlign=\"center\">\n {pluginName}\n </Typography>\n <Typography variant=\"omega\" textAlign=\"center\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('table.content.create-first-content-type.description'),\n defaultMessage:\n 'Create collection types, single types and components in order to build your schema.',\n })}\n </Typography>\n </Flex>\n\n {/* Chat is not available on small screens either way */}\n {isChatEnabled && (\n <Flex gap={2} direction=\"column\" className=\"hide-on-small\">\n <Button\n startIcon={<FigmaIcon />}\n variant=\"tertiary\"\n onClick={() => openFigmaUpload(true)}\n >\n {formatMessage({\n id: getTrad('table.content.create-first-content-type.import-figma'),\n defaultMessage: 'Import from Figma',\n })}\n </Button>\n <Button startIcon={<Paperclip />} variant=\"tertiary\" onClick={() => openCodeUpload(true)}>\n {formatMessage({\n id: getTrad('table.content.create-first-content-type.import-code'),\n defaultMessage: 'Import from computer',\n })}\n </Button>\n <Button startIcon={<Sparkle />} variant=\"tertiary\" onClick={openChat}>\n {formatMessage({\n id: getTrad('table.content.create-first-content-type.start-with-prompt'),\n defaultMessage: 'Start with a prompt',\n })}\n </Button>\n </Flex>\n )}\n </ResponsiveContainer>\n );\n};\n"],"names":["ResponsiveContainer","styled","Flex","EmptyState","formatMessage","useIntl","pluginName","id","getTrad","defaultMessage","isChatEnabled","openChat","useStrapiChat","openCodeUpload","useUploadProjectToChat","openFigmaUpload","useUploadFigmaToChat","_jsxs","justifyContent","height","width","maxWidth","margin","direction","gap","_jsx","EmptyDocuments","tours","contentTypeBuilder","Introduction","Box","alignItems","Typography","variant","textAlign","textColor","className","Button","startIcon","FigmaIcon","onClick","Paperclip","Sparkle"],"mappings":"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"}
@@ -1,35 +1,101 @@
1
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { tours } from '@strapi/admin/strapi-admin';
3
- import { Box, Flex, Typography } from '@strapi/design-system';
3
+ import { Flex, Box, Typography, Button } from '@strapi/design-system';
4
+ import { Paperclip, Sparkle } from '@strapi/icons';
5
+ import { EmptyDocuments } from '@strapi/icons/symbols';
4
6
  import { useIntl } from 'react-intl';
7
+ import { styled } from 'styled-components';
8
+ import { FigmaIcon } from '../../components/AIChat/components/icons/FigmaIcon.mjs';
9
+ import { useStrapiChat } from '../../components/AIChat/providers/ChatProvider.mjs';
10
+ import { useUploadProjectToChat } from '../../components/AIChat/UploadCodeModal.mjs';
11
+ import { useUploadFigmaToChat } from '../../components/AIChat/UploadFigmaModal.mjs';
5
12
  import { getTrad } from '../../utils/getTrad.mjs';
6
13
 
14
+ // Styled container that implements responsive behavior
15
+ const ResponsiveContainer = styled(Flex)`
16
+ @container (max-width: 200px) {
17
+ .hide-on-small {
18
+ display: none;
19
+ }
20
+ }
21
+ container-type: inline-size;
22
+ `;
7
23
  const EmptyState = ()=>{
8
24
  const { formatMessage } = useIntl();
9
25
  const pluginName = formatMessage({
10
- id: getTrad('plugin.name'),
11
- defaultMessage: 'Content-Type Builder'
26
+ id: getTrad('table.content.create-first-content-type.title'),
27
+ defaultMessage: 'No content types'
12
28
  });
13
- return /*#__PURE__*/ jsxs(Fragment, {
29
+ const { isChatEnabled, openChat } = useStrapiChat();
30
+ const { openCodeUpload } = useUploadProjectToChat();
31
+ const { openFigmaUpload } = useUploadFigmaToChat();
32
+ return /*#__PURE__*/ jsxs(ResponsiveContainer, {
33
+ justifyContent: "center",
34
+ height: "100%",
35
+ width: '400px',
36
+ maxWidth: "90%",
37
+ margin: "auto",
38
+ direction: "column",
39
+ gap: 6,
14
40
  children: [
41
+ /*#__PURE__*/ jsx(EmptyDocuments, {
42
+ width: "160px",
43
+ height: "88px"
44
+ }),
15
45
  /*#__PURE__*/ jsx(tours.contentTypeBuilder.Introduction, {
16
46
  children: /*#__PURE__*/ jsx(Box, {})
17
47
  }),
18
48
  /*#__PURE__*/ jsxs(Flex, {
19
- justifyContent: "center",
49
+ gap: 2,
20
50
  alignItems: "center",
21
- height: "100%",
22
51
  direction: "column",
23
52
  children: [
24
53
  /*#__PURE__*/ jsx(Typography, {
25
- variant: "alpha",
54
+ variant: "beta",
55
+ textAlign: "center",
26
56
  children: pluginName
27
57
  }),
28
58
  /*#__PURE__*/ jsx(Typography, {
29
- variant: "delta",
59
+ variant: "omega",
60
+ textAlign: "center",
61
+ textColor: "neutral600",
62
+ children: formatMessage({
63
+ id: getTrad('table.content.create-first-content-type.description'),
64
+ defaultMessage: 'Create collection types, single types and components in order to build your schema.'
65
+ })
66
+ })
67
+ ]
68
+ }),
69
+ isChatEnabled && /*#__PURE__*/ jsxs(Flex, {
70
+ gap: 2,
71
+ direction: "column",
72
+ className: "hide-on-small",
73
+ children: [
74
+ /*#__PURE__*/ jsx(Button, {
75
+ startIcon: /*#__PURE__*/ jsx(FigmaIcon, {}),
76
+ variant: "tertiary",
77
+ onClick: ()=>openFigmaUpload(true),
78
+ children: formatMessage({
79
+ id: getTrad('table.content.create-first-content-type.import-figma'),
80
+ defaultMessage: 'Import from Figma'
81
+ })
82
+ }),
83
+ /*#__PURE__*/ jsx(Button, {
84
+ startIcon: /*#__PURE__*/ jsx(Paperclip, {}),
85
+ variant: "tertiary",
86
+ onClick: ()=>openCodeUpload(true),
87
+ children: formatMessage({
88
+ id: getTrad('table.content.create-first-content-type.import-code'),
89
+ defaultMessage: 'Import from computer'
90
+ })
91
+ }),
92
+ /*#__PURE__*/ jsx(Button, {
93
+ startIcon: /*#__PURE__*/ jsx(Sparkle, {}),
94
+ variant: "tertiary",
95
+ onClick: openChat,
30
96
  children: formatMessage({
31
- id: getTrad('table.content.create-first-content-type'),
32
- defaultMessage: 'Create your first Collection-Type'
97
+ id: getTrad('table.content.create-first-content-type.start-with-prompt'),
98
+ defaultMessage: 'Start with a prompt'
33
99
  })
34
100
  })
35
101
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyState.mjs","sources":["../../../../admin/src/pages/ListView/EmptyState.tsx"],"sourcesContent":["import { tours } from '@strapi/admin/strapi-admin';\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../utils/getTrad';\n\nexport const EmptyState = () => {\n const { formatMessage } = useIntl();\n\n const pluginName = formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Content-Type Builder',\n });\n\n return (\n <>\n <tours.contentTypeBuilder.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentTypeBuilder.Introduction>\n <Flex justifyContent=\"center\" alignItems=\"center\" height=\"100%\" direction=\"column\">\n <Typography variant=\"alpha\">{pluginName}</Typography>\n <Typography variant=\"delta\">\n {formatMessage({\n id: getTrad('table.content.create-first-content-type'),\n defaultMessage: 'Create your first Collection-Type',\n })}\n </Typography>\n </Flex>\n </>\n );\n};\n"],"names":["EmptyState","formatMessage","useIntl","pluginName","id","getTrad","defaultMessage","_jsxs","_Fragment","_jsx","tours","contentTypeBuilder","Introduction","Box","Flex","justifyContent","alignItems","height","direction","Typography","variant"],"mappings":";;;;;;MAMaA,UAAa,GAAA,IAAA;IACxB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,MAAMC,aAAaF,aAAc,CAAA;AAC/BG,QAAAA,EAAAA,EAAIC,OAAQ,CAAA,aAAA,CAAA;QACZC,cAAgB,EAAA;AAClB,KAAA,CAAA;IAEA,qBACEC,IAAA,CAAAC,QAAA,EAAA;;0BACEC,GAACC,CAAAA,KAAAA,CAAMC,kBAAkB,CAACC,YAAY,EAAA;AAEpC,gBAAA,QAAA,gBAAAH,GAACI,CAAAA,GAAAA,EAAAA,EAAAA;;0BAEHN,IAACO,CAAAA,IAAAA,EAAAA;gBAAKC,cAAe,EAAA,QAAA;gBAASC,UAAW,EAAA,QAAA;gBAASC,MAAO,EAAA,MAAA;gBAAOC,SAAU,EAAA,QAAA;;kCACxET,GAACU,CAAAA,UAAAA,EAAAA;wBAAWC,OAAQ,EAAA,OAAA;AAASjB,wBAAAA,QAAAA,EAAAA;;kCAC7BM,GAACU,CAAAA,UAAAA,EAAAA;wBAAWC,OAAQ,EAAA,OAAA;kCACjBnB,aAAc,CAAA;AACbG,4BAAAA,EAAAA,EAAIC,OAAQ,CAAA,yCAAA,CAAA;4BACZC,cAAgB,EAAA;AAClB,yBAAA;;;;;;AAKV;;;;"}
1
+ {"version":3,"file":"EmptyState.mjs","sources":["../../../../admin/src/pages/ListView/EmptyState.tsx"],"sourcesContent":["import { tours } from '@strapi/admin/strapi-admin';\nimport { Button, Box, Flex, Typography } from '@strapi/design-system';\nimport { Sparkle, Paperclip } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { FigmaIcon } from '../../components/AIChat/components/icons/FigmaIcon';\nimport { useStrapiChat } from '../../components/AIChat/providers/ChatProvider';\nimport { useUploadProjectToChat } from '../../components/AIChat/UploadCodeModal';\nimport { useUploadFigmaToChat } from '../../components/AIChat/UploadFigmaModal';\nimport { getTrad } from '../../utils/getTrad';\n\n// Styled container that implements responsive behavior\nconst ResponsiveContainer = styled(Flex)`\n @container (max-width: 200px) {\n .hide-on-small {\n display: none;\n }\n }\n container-type: inline-size;\n`;\n\nexport const EmptyState = () => {\n const { formatMessage } = useIntl();\n\n const pluginName = formatMessage({\n id: getTrad('table.content.create-first-content-type.title'),\n defaultMessage: 'No content types',\n });\n\n const { isChatEnabled, openChat } = useStrapiChat();\n const { openCodeUpload } = useUploadProjectToChat();\n const { openFigmaUpload } = useUploadFigmaToChat();\n\n return (\n <ResponsiveContainer\n justifyContent=\"center\"\n height=\"100%\"\n width={'400px'}\n maxWidth=\"90%\"\n margin=\"auto\"\n direction=\"column\"\n gap={6}\n >\n <EmptyDocuments width=\"160px\" height=\"88px\" />\n <tours.contentTypeBuilder.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentTypeBuilder.Introduction>\n <Flex gap={2} alignItems=\"center\" direction=\"column\">\n <Typography variant=\"beta\" textAlign=\"center\">\n {pluginName}\n </Typography>\n <Typography variant=\"omega\" textAlign=\"center\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('table.content.create-first-content-type.description'),\n defaultMessage:\n 'Create collection types, single types and components in order to build your schema.',\n })}\n </Typography>\n </Flex>\n\n {/* Chat is not available on small screens either way */}\n {isChatEnabled && (\n <Flex gap={2} direction=\"column\" className=\"hide-on-small\">\n <Button\n startIcon={<FigmaIcon />}\n variant=\"tertiary\"\n onClick={() => openFigmaUpload(true)}\n >\n {formatMessage({\n id: getTrad('table.content.create-first-content-type.import-figma'),\n defaultMessage: 'Import from Figma',\n })}\n </Button>\n <Button startIcon={<Paperclip />} variant=\"tertiary\" onClick={() => openCodeUpload(true)}>\n {formatMessage({\n id: getTrad('table.content.create-first-content-type.import-code'),\n defaultMessage: 'Import from computer',\n })}\n </Button>\n <Button startIcon={<Sparkle />} variant=\"tertiary\" onClick={openChat}>\n {formatMessage({\n id: getTrad('table.content.create-first-content-type.start-with-prompt'),\n defaultMessage: 'Start with a prompt',\n })}\n </Button>\n </Flex>\n )}\n </ResponsiveContainer>\n );\n};\n"],"names":["ResponsiveContainer","styled","Flex","EmptyState","formatMessage","useIntl","pluginName","id","getTrad","defaultMessage","isChatEnabled","openChat","useStrapiChat","openCodeUpload","useUploadProjectToChat","openFigmaUpload","useUploadFigmaToChat","_jsxs","justifyContent","height","width","maxWidth","margin","direction","gap","_jsx","EmptyDocuments","tours","contentTypeBuilder","Introduction","Box","alignItems","Typography","variant","textAlign","textColor","className","Button","startIcon","FigmaIcon","onClick","Paperclip","Sparkle"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ declare const Chat: () => import("react/jsx-runtime").JSX.Element | null;
2
+ export { Chat };
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ interface FeedbackModalContextType {
3
+ isFeedbackModalOpen: boolean;
4
+ currentMessageId: string | null;
5
+ openFeedbackModal: (messageId: string) => void;
6
+ closeFeedbackModal: () => void;
7
+ }
8
+ export declare const useFeedbackModal: () => FeedbackModalContextType;
9
+ export declare const FeedbackProvider: ({ children }: {
10
+ children: React.ReactNode;
11
+ }) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const FeedbackModal: React.FC;
13
+ export {};
@@ -0,0 +1,12 @@
1
+ interface UploadProjectContextType {
2
+ isCodeUploadOpen: boolean;
3
+ submitOnFinish: boolean;
4
+ openCodeUpload: (submitOnFinish?: boolean) => void;
5
+ closeCodeUpload: () => void;
6
+ }
7
+ export declare const useUploadProjectToChat: () => UploadProjectContextType;
8
+ export declare const UploadProjectToChatProvider: ({ children }: {
9
+ children: React.ReactNode;
10
+ }) => import("react/jsx-runtime").JSX.Element;
11
+ export declare const UploadCodeModal: () => import("react/jsx-runtime").JSX.Element;
12
+ export {};