@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
@@ -0,0 +1,125 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useState, useEffect } from 'react';
3
+ import { Flex, Loader } from '@strapi/design-system';
4
+ import { CrossCircle } from '@strapi/icons';
5
+
6
+ const blobToBase64 = (blob)=>{
7
+ return new Promise((resolve, reject)=>{
8
+ const reader = new FileReader();
9
+ reader.onloadend = ()=>resolve(reader.result);
10
+ reader.onerror = reject;
11
+ reader.readAsDataURL(blob);
12
+ });
13
+ };
14
+ // Check if a string is already a data URL (base64 image)
15
+ const isBase64Image = (src)=>{
16
+ return src.startsWith('data:image/');
17
+ };
18
+ const Base64Img = ({ src, alt, inferSize = false, onLoad: externalOnLoad, onError: externalOnError, ...rest })=>{
19
+ const [base64Src, setBase64Src] = useState(null);
20
+ const [dimensions, setDimensions] = useState({});
21
+ const [isLoading, setIsLoading] = useState(true);
22
+ const [hasError, setHasError] = useState(false);
23
+ useEffect(()=>{
24
+ const fetchAndConvert = async ()=>{
25
+ setIsLoading(true);
26
+ setHasError(false);
27
+ // If src is already a base64 string, use it directly
28
+ if (isBase64Image(src)) {
29
+ setBase64Src(src);
30
+ setIsLoading(false);
31
+ return;
32
+ }
33
+ try {
34
+ // TODO: Find a better way of doing this
35
+ // If url is from strapi-ai-staging.s3.us-east-1.amazonaws.com or strapi-ai-production.s3.us-east-1.amazonaws.com, use it directly
36
+ const url = new URL(src);
37
+ const allowedDomains = [
38
+ 'strapi-ai-staging.s3.us-east-1.amazonaws.com',
39
+ 'strapi-ai-production.s3.us-east-1.amazonaws.com'
40
+ ];
41
+ if (allowedDomains.includes(url.hostname)) {
42
+ setBase64Src(src);
43
+ setIsLoading(false);
44
+ return;
45
+ }
46
+ } catch (e) {
47
+ // If URL parsing fails, continue with the fetch attempt
48
+ }
49
+ try {
50
+ // Only fetch if it's a URL and not already a base64 string
51
+ const response = await fetch(src);
52
+ if (!response.ok) {
53
+ throw new Error(`HTTP error! status: ${response.status}`);
54
+ }
55
+ const blob = await response.blob();
56
+ const dataUrl = await blobToBase64(blob);
57
+ setBase64Src(dataUrl);
58
+ setIsLoading(false);
59
+ } catch (error) {
60
+ console.error('Error converting image to base64:', error);
61
+ setHasError(true);
62
+ setIsLoading(false);
63
+ }
64
+ };
65
+ fetchAndConvert();
66
+ }, [
67
+ src,
68
+ externalOnError
69
+ ]);
70
+ const handleImageLoad = (e)=>{
71
+ if (inferSize) {
72
+ const { naturalWidth, naturalHeight } = e.currentTarget;
73
+ setDimensions({
74
+ width: naturalWidth,
75
+ height: naturalHeight
76
+ });
77
+ }
78
+ if (externalOnLoad) {
79
+ externalOnLoad(e);
80
+ }
81
+ };
82
+ if (isLoading) {
83
+ return /*#__PURE__*/ jsx(Flex, {
84
+ direction: "column",
85
+ gap: 2,
86
+ alignItems: "center",
87
+ width: "100%",
88
+ children: /*#__PURE__*/ jsx(Loader, {
89
+ small: true
90
+ })
91
+ });
92
+ }
93
+ if (hasError) {
94
+ return /*#__PURE__*/ jsx(Flex, {
95
+ direction: "column",
96
+ gap: 2,
97
+ alignItems: "center",
98
+ width: "100%",
99
+ children: /*#__PURE__*/ jsx(CrossCircle, {
100
+ width: 24,
101
+ height: 24,
102
+ fill: "danger600"
103
+ })
104
+ });
105
+ }
106
+ // Build props for the img element
107
+ const imgProps = {
108
+ src: base64Src || '',
109
+ alt,
110
+ onLoad: handleImageLoad,
111
+ ...rest
112
+ };
113
+ // If inferSize is enabled and width/height weren't explicitly provided,
114
+ // merge the inferred dimensions into the props once available.
115
+ if (inferSize && !rest.width && !rest.height && dimensions.width && dimensions.height) {
116
+ imgProps.width = dimensions.width;
117
+ imgProps.height = dimensions.height;
118
+ }
119
+ return base64Src ? /*#__PURE__*/ jsx("img", {
120
+ ...imgProps
121
+ }) : null;
122
+ };
123
+
124
+ export { Base64Img };
125
+ //# sourceMappingURL=Base64Image.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Base64Image.mjs","sources":["../../../../../admin/src/components/AIChat/components/Base64Image.tsx"],"sourcesContent":["import { useState, useEffect, ImgHTMLAttributes } from 'react';\n\nimport { Flex, Loader } from '@strapi/design-system';\nimport { CrossCircle } from '@strapi/icons';\n\nconst blobToBase64 = (blob: Blob): Promise<string | ArrayBuffer | null> => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => resolve(reader.result);\n reader.onerror = reject;\n reader.readAsDataURL(blob);\n });\n};\n\n// Check if a string is already a data URL (base64 image)\nconst isBase64Image = (src: string): boolean => {\n return src.startsWith('data:image/');\n};\n\ninterface Base64ImgProps extends ImgHTMLAttributes<HTMLImageElement> {\n src: string;\n inferSize?: boolean;\n onLoad?: (e: React.SyntheticEvent<HTMLImageElement, Event>) => void;\n onError?: (e: React.SyntheticEvent<HTMLImageElement, Event>) => void;\n}\n\nexport const Base64Img: React.FC<Base64ImgProps> = ({\n src,\n alt,\n inferSize = false,\n onLoad: externalOnLoad,\n onError: externalOnError,\n ...rest\n}) => {\n const [base64Src, setBase64Src] = useState<string | null>(null);\n const [dimensions, setDimensions] = useState<{ width?: number; height?: number }>({});\n const [isLoading, setIsLoading] = useState(true);\n const [hasError, setHasError] = useState(false);\n\n useEffect(() => {\n const fetchAndConvert = async () => {\n setIsLoading(true);\n setHasError(false);\n\n // If src is already a base64 string, use it directly\n if (isBase64Image(src)) {\n setBase64Src(src);\n setIsLoading(false);\n return;\n }\n\n try {\n // TODO: Find a better way of doing this\n // If url is from strapi-ai-staging.s3.us-east-1.amazonaws.com or strapi-ai-production.s3.us-east-1.amazonaws.com, use it directly\n const url = new URL(src);\n const allowedDomains = [\n 'strapi-ai-staging.s3.us-east-1.amazonaws.com',\n 'strapi-ai-production.s3.us-east-1.amazonaws.com',\n ];\n\n if (allowedDomains.includes(url.hostname)) {\n setBase64Src(src);\n setIsLoading(false);\n return;\n }\n } catch (e) {\n // If URL parsing fails, continue with the fetch attempt\n }\n\n try {\n // Only fetch if it's a URL and not already a base64 string\n const response = await fetch(src);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const blob = await response.blob();\n const dataUrl = await blobToBase64(blob);\n setBase64Src(dataUrl as string);\n setIsLoading(false);\n } catch (error) {\n console.error('Error converting image to base64:', error);\n setHasError(true);\n setIsLoading(false);\n }\n };\n\n fetchAndConvert();\n }, [src, externalOnError]);\n\n const handleImageLoad = (e: React.SyntheticEvent<HTMLImageElement, Event>) => {\n if (inferSize) {\n const { naturalWidth, naturalHeight } = e.currentTarget;\n setDimensions({ width: naturalWidth, height: naturalHeight });\n }\n\n if (externalOnLoad) {\n externalOnLoad(e);\n }\n };\n\n if (isLoading) {\n return (\n <Flex direction=\"column\" gap={2} alignItems=\"center\" width=\"100%\">\n <Loader small />\n </Flex>\n );\n }\n\n if (hasError) {\n return (\n <Flex direction=\"column\" gap={2} alignItems=\"center\" width=\"100%\">\n <CrossCircle width={24} height={24} fill=\"danger600\" />\n </Flex>\n );\n }\n\n // Build props for the img element\n const imgProps: ImgHTMLAttributes<HTMLImageElement> = {\n src: base64Src || '',\n alt,\n onLoad: handleImageLoad,\n ...rest,\n };\n\n // If inferSize is enabled and width/height weren't explicitly provided,\n // merge the inferred dimensions into the props once available.\n if (inferSize && !rest.width && !rest.height && dimensions.width && dimensions.height) {\n imgProps.width = dimensions.width;\n imgProps.height = dimensions.height;\n }\n\n return base64Src ? <img {...imgProps} /> : null;\n};\n"],"names":["blobToBase64","blob","Promise","resolve","reject","reader","FileReader","onloadend","result","onerror","readAsDataURL","isBase64Image","src","startsWith","Base64Img","alt","inferSize","onLoad","externalOnLoad","onError","externalOnError","rest","base64Src","setBase64Src","useState","dimensions","setDimensions","isLoading","setIsLoading","hasError","setHasError","useEffect","fetchAndConvert","url","URL","allowedDomains","includes","hostname","e","response","fetch","ok","Error","status","dataUrl","error","console","handleImageLoad","naturalWidth","naturalHeight","currentTarget","width","height","_jsx","Flex","direction","gap","alignItems","Loader","small","CrossCircle","fill","imgProps","img"],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var designSystem = require('@strapi/design-system');
6
+ var styledComponents = require('styled-components');
7
+
8
+ const CollapsibleContext = /*#__PURE__*/ React.createContext(undefined);
9
+ const useCollapsible = ()=>{
10
+ const context = React.useContext(CollapsibleContext);
11
+ if (!context) {
12
+ throw new Error('Collapsible components must be wrapped in <Collapsible />');
13
+ }
14
+ return context;
15
+ };
16
+ const AnimatedContent = styledComponents.styled(designSystem.Box)`
17
+ overflow: hidden;
18
+ transition: height ${({ theme })=>theme.motion.timings['200']}
19
+ ${({ theme })=>theme.motion.easings.easeOutQuad};
20
+ `;
21
+ const Collapsible = ({ children, defaultOpen = false })=>{
22
+ const [open, setOpen] = React.useState(defaultOpen);
23
+ return /*#__PURE__*/ jsxRuntime.jsx(CollapsibleContext.Provider, {
24
+ value: {
25
+ open,
26
+ toggle: ()=>setOpen((prev)=>!prev)
27
+ },
28
+ children: children
29
+ });
30
+ };
31
+ const CollapsibleTrigger = ({ children })=>{
32
+ const { toggle, open } = useCollapsible();
33
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
34
+ onClick: toggle,
35
+ style: {
36
+ cursor: 'pointer'
37
+ },
38
+ children: typeof children === 'function' ? children({
39
+ open
40
+ }) : children
41
+ });
42
+ };
43
+ const CollapsibleContent = ({ children })=>{
44
+ const { open } = useCollapsible();
45
+ const contentRef = React.useRef(null);
46
+ const [height, setHeight] = React.useState(0);
47
+ React.useLayoutEffect(()=>{
48
+ if (contentRef.current) {
49
+ const contentHeight = contentRef.current.scrollHeight;
50
+ setHeight(contentHeight);
51
+ }
52
+ }, [
53
+ children
54
+ ]);
55
+ return /*#__PURE__*/ jsxRuntime.jsx(AnimatedContent, {
56
+ ref: contentRef,
57
+ role: "region",
58
+ "aria-hidden": !open,
59
+ style: {
60
+ height: open ? `${height}px` : 0,
61
+ visibility: height === 0 ? 'hidden' : 'visible'
62
+ },
63
+ children: children
64
+ });
65
+ };
66
+
67
+ exports.Collapsible = Collapsible;
68
+ exports.CollapsibleContent = CollapsibleContent;
69
+ exports.CollapsibleTrigger = CollapsibleTrigger;
70
+ exports.useCollapsible = useCollapsible;
71
+ //# sourceMappingURL=Collapsible.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collapsible.js","sources":["../../../../../admin/src/components/AIChat/components/Collapsible.tsx"],"sourcesContent":["import { useState, createContext, useContext, useRef, useLayoutEffect } from 'react';\n\nimport { Box } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\ninterface CollapsibleContextValue {\n open: boolean;\n toggle: () => void;\n}\n\nconst CollapsibleContext = createContext<CollapsibleContextValue | undefined>(undefined);\n\nexport const useCollapsible = () => {\n const context = useContext(CollapsibleContext);\n if (!context) {\n throw new Error('Collapsible components must be wrapped in <Collapsible />');\n }\n return context;\n};\n\nconst AnimatedContent = styled(Box)`\n overflow: hidden;\n transition: height ${({ theme }) => theme.motion.timings['200']}\n ${({ theme }) => theme.motion.easings.easeOutQuad};\n`;\n\nexport const Collapsible = ({\n children,\n defaultOpen = false,\n}: {\n children: React.ReactNode;\n defaultOpen?: boolean;\n}) => {\n const [open, setOpen] = useState(defaultOpen);\n return (\n <CollapsibleContext.Provider value={{ open, toggle: () => setOpen((prev) => !prev) }}>\n {children}\n </CollapsibleContext.Provider>\n );\n};\n\nexport const CollapsibleTrigger = ({\n children,\n}: {\n children: React.ReactNode | ((props: { open: boolean }) => React.ReactNode);\n}) => {\n const { toggle, open } = useCollapsible();\n return (\n <Box onClick={toggle} style={{ cursor: 'pointer' }}>\n {typeof children === 'function' ? children({ open }) : children}\n </Box>\n );\n};\n\nexport const CollapsibleContent = ({ children }: { children: React.ReactNode }) => {\n const { open } = useCollapsible();\n const contentRef = useRef<HTMLDivElement>(null);\n const [height, setHeight] = useState<number>(0);\n\n useLayoutEffect(() => {\n if (contentRef.current) {\n const contentHeight = contentRef.current.scrollHeight;\n setHeight(contentHeight);\n }\n }, [children]);\n\n return (\n <AnimatedContent\n ref={contentRef}\n role=\"region\"\n aria-hidden={!open}\n style={{\n height: open ? `${height}px` : 0,\n visibility: height === 0 ? 'hidden' : 'visible',\n }}\n >\n {children}\n </AnimatedContent>\n );\n};\n"],"names":["CollapsibleContext","createContext","undefined","useCollapsible","context","useContext","Error","AnimatedContent","styled","Box","theme","motion","timings","easings","easeOutQuad","Collapsible","children","defaultOpen","open","setOpen","useState","_jsx","Provider","value","toggle","prev","CollapsibleTrigger","onClick","style","cursor","CollapsibleContent","contentRef","useRef","height","setHeight","useLayoutEffect","current","contentHeight","scrollHeight","ref","role","aria-hidden","visibility"],"mappings":";;;;;;;AAUA,MAAMA,mCAAqBC,mBAAmDC,CAAAA,SAAAA,CAAAA;MAEjEC,cAAiB,GAAA,IAAA;AAC5B,IAAA,MAAMC,UAAUC,gBAAWL,CAAAA,kBAAAA,CAAAA;AAC3B,IAAA,IAAI,CAACI,OAAS,EAAA;AACZ,QAAA,MAAM,IAAIE,KAAM,CAAA,2DAAA,CAAA;AAClB;IACA,OAAOF,OAAAA;AACT;AAEA,MAAMG,eAAAA,GAAkBC,uBAAOC,CAAAA,gBAAAA,CAAI;;qBAEd,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,OAAO,CAAC,KAAA,CAAM;IAC7D,EAAE,CAAC,EAAEF,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACE,OAAO,CAACC,WAAW,CAAC;AACtD,CAAC;AAEM,MAAMC,cAAc,CAAC,EAC1BC,QAAQ,EACRC,WAAAA,GAAc,KAAK,EAIpB,GAAA;AACC,IAAA,MAAM,CAACC,IAAAA,EAAMC,OAAQ,CAAA,GAAGC,cAASH,CAAAA,WAAAA,CAAAA;IACjC,qBACEI,cAAA,CAACrB,mBAAmBsB,QAAQ,EAAA;QAACC,KAAO,EAAA;AAAEL,YAAAA,IAAAA;AAAMM,YAAAA,MAAAA,EAAQ,IAAML,OAAAA,CAAQ,CAACM,IAAAA,GAAS,CAACA,IAAAA;AAAM,SAAA;AAChFT,QAAAA,QAAAA,EAAAA;;AAGP;AAEaU,MAAAA,kBAAAA,GAAqB,CAAC,EACjCV,QAAQ,EAGT,GAAA;AACC,IAAA,MAAM,EAAEQ,MAAM,EAAEN,IAAI,EAAE,GAAGf,cAAAA,EAAAA;AACzB,IAAA,qBACEkB,cAACZ,CAAAA,gBAAAA,EAAAA;QAAIkB,OAASH,EAAAA,MAAAA;QAAQI,KAAO,EAAA;YAAEC,MAAQ,EAAA;AAAU,SAAA;kBAC9C,OAAOb,QAAAA,KAAa,aAAaA,QAAS,CAAA;AAAEE,YAAAA;SAAUF,CAAAA,GAAAA;;AAG7D;AAEac,MAAAA,kBAAAA,GAAqB,CAAC,EAAEd,QAAQ,EAAiC,GAAA;IAC5E,MAAM,EAAEE,IAAI,EAAE,GAAGf,cAAAA,EAAAA;AACjB,IAAA,MAAM4B,aAAaC,YAAuB,CAAA,IAAA,CAAA;AAC1C,IAAA,MAAM,CAACC,MAAAA,EAAQC,SAAU,CAAA,GAAGd,cAAiB,CAAA,CAAA,CAAA;IAE7Ce,qBAAgB,CAAA,IAAA;QACd,IAAIJ,UAAAA,CAAWK,OAAO,EAAE;AACtB,YAAA,MAAMC,aAAgBN,GAAAA,UAAAA,CAAWK,OAAO,CAACE,YAAY;YACrDJ,SAAUG,CAAAA,aAAAA,CAAAA;AACZ;KACC,EAAA;AAACrB,QAAAA;AAAS,KAAA,CAAA;AAEb,IAAA,qBACEK,cAACd,CAAAA,eAAAA,EAAAA;QACCgC,GAAKR,EAAAA,UAAAA;QACLS,IAAK,EAAA,QAAA;AACLC,QAAAA,aAAAA,EAAa,CAACvB,IAAAA;QACdU,KAAO,EAAA;AACLK,YAAAA,MAAAA,EAAQf,OAAO,CAAC,EAAEe,MAAO,CAAA,EAAE,CAAC,GAAG,CAAA;YAC/BS,UAAYT,EAAAA,MAAAA,KAAW,IAAI,QAAW,GAAA;AACxC,SAAA;AAECjB,QAAAA,QAAAA,EAAAA;;AAGP;;;;;;;"}
@@ -0,0 +1,66 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useState, useRef, useLayoutEffect, createContext, useContext } from 'react';
3
+ import { Box } from '@strapi/design-system';
4
+ import { styled } from 'styled-components';
5
+
6
+ const CollapsibleContext = /*#__PURE__*/ createContext(undefined);
7
+ const useCollapsible = ()=>{
8
+ const context = useContext(CollapsibleContext);
9
+ if (!context) {
10
+ throw new Error('Collapsible components must be wrapped in <Collapsible />');
11
+ }
12
+ return context;
13
+ };
14
+ const AnimatedContent = styled(Box)`
15
+ overflow: hidden;
16
+ transition: height ${({ theme })=>theme.motion.timings['200']}
17
+ ${({ theme })=>theme.motion.easings.easeOutQuad};
18
+ `;
19
+ const Collapsible = ({ children, defaultOpen = false })=>{
20
+ const [open, setOpen] = useState(defaultOpen);
21
+ return /*#__PURE__*/ jsx(CollapsibleContext.Provider, {
22
+ value: {
23
+ open,
24
+ toggle: ()=>setOpen((prev)=>!prev)
25
+ },
26
+ children: children
27
+ });
28
+ };
29
+ const CollapsibleTrigger = ({ children })=>{
30
+ const { toggle, open } = useCollapsible();
31
+ return /*#__PURE__*/ jsx(Box, {
32
+ onClick: toggle,
33
+ style: {
34
+ cursor: 'pointer'
35
+ },
36
+ children: typeof children === 'function' ? children({
37
+ open
38
+ }) : children
39
+ });
40
+ };
41
+ const CollapsibleContent = ({ children })=>{
42
+ const { open } = useCollapsible();
43
+ const contentRef = useRef(null);
44
+ const [height, setHeight] = useState(0);
45
+ useLayoutEffect(()=>{
46
+ if (contentRef.current) {
47
+ const contentHeight = contentRef.current.scrollHeight;
48
+ setHeight(contentHeight);
49
+ }
50
+ }, [
51
+ children
52
+ ]);
53
+ return /*#__PURE__*/ jsx(AnimatedContent, {
54
+ ref: contentRef,
55
+ role: "region",
56
+ "aria-hidden": !open,
57
+ style: {
58
+ height: open ? `${height}px` : 0,
59
+ visibility: height === 0 ? 'hidden' : 'visible'
60
+ },
61
+ children: children
62
+ });
63
+ };
64
+
65
+ export { Collapsible, CollapsibleContent, CollapsibleTrigger, useCollapsible };
66
+ //# sourceMappingURL=Collapsible.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collapsible.mjs","sources":["../../../../../admin/src/components/AIChat/components/Collapsible.tsx"],"sourcesContent":["import { useState, createContext, useContext, useRef, useLayoutEffect } from 'react';\n\nimport { Box } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\ninterface CollapsibleContextValue {\n open: boolean;\n toggle: () => void;\n}\n\nconst CollapsibleContext = createContext<CollapsibleContextValue | undefined>(undefined);\n\nexport const useCollapsible = () => {\n const context = useContext(CollapsibleContext);\n if (!context) {\n throw new Error('Collapsible components must be wrapped in <Collapsible />');\n }\n return context;\n};\n\nconst AnimatedContent = styled(Box)`\n overflow: hidden;\n transition: height ${({ theme }) => theme.motion.timings['200']}\n ${({ theme }) => theme.motion.easings.easeOutQuad};\n`;\n\nexport const Collapsible = ({\n children,\n defaultOpen = false,\n}: {\n children: React.ReactNode;\n defaultOpen?: boolean;\n}) => {\n const [open, setOpen] = useState(defaultOpen);\n return (\n <CollapsibleContext.Provider value={{ open, toggle: () => setOpen((prev) => !prev) }}>\n {children}\n </CollapsibleContext.Provider>\n );\n};\n\nexport const CollapsibleTrigger = ({\n children,\n}: {\n children: React.ReactNode | ((props: { open: boolean }) => React.ReactNode);\n}) => {\n const { toggle, open } = useCollapsible();\n return (\n <Box onClick={toggle} style={{ cursor: 'pointer' }}>\n {typeof children === 'function' ? children({ open }) : children}\n </Box>\n );\n};\n\nexport const CollapsibleContent = ({ children }: { children: React.ReactNode }) => {\n const { open } = useCollapsible();\n const contentRef = useRef<HTMLDivElement>(null);\n const [height, setHeight] = useState<number>(0);\n\n useLayoutEffect(() => {\n if (contentRef.current) {\n const contentHeight = contentRef.current.scrollHeight;\n setHeight(contentHeight);\n }\n }, [children]);\n\n return (\n <AnimatedContent\n ref={contentRef}\n role=\"region\"\n aria-hidden={!open}\n style={{\n height: open ? `${height}px` : 0,\n visibility: height === 0 ? 'hidden' : 'visible',\n }}\n >\n {children}\n </AnimatedContent>\n );\n};\n"],"names":["CollapsibleContext","createContext","undefined","useCollapsible","context","useContext","Error","AnimatedContent","styled","Box","theme","motion","timings","easings","easeOutQuad","Collapsible","children","defaultOpen","open","setOpen","useState","_jsx","Provider","value","toggle","prev","CollapsibleTrigger","onClick","style","cursor","CollapsibleContent","contentRef","useRef","height","setHeight","useLayoutEffect","current","contentHeight","scrollHeight","ref","role","aria-hidden","visibility"],"mappings":";;;;;AAUA,MAAMA,mCAAqBC,aAAmDC,CAAAA,SAAAA,CAAAA;MAEjEC,cAAiB,GAAA,IAAA;AAC5B,IAAA,MAAMC,UAAUC,UAAWL,CAAAA,kBAAAA,CAAAA;AAC3B,IAAA,IAAI,CAACI,OAAS,EAAA;AACZ,QAAA,MAAM,IAAIE,KAAM,CAAA,2DAAA,CAAA;AAClB;IACA,OAAOF,OAAAA;AACT;AAEA,MAAMG,eAAAA,GAAkBC,MAAOC,CAAAA,GAAAA,CAAI;;qBAEd,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,OAAO,CAAC,KAAA,CAAM;IAC7D,EAAE,CAAC,EAAEF,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACE,OAAO,CAACC,WAAW,CAAC;AACtD,CAAC;AAEM,MAAMC,cAAc,CAAC,EAC1BC,QAAQ,EACRC,WAAAA,GAAc,KAAK,EAIpB,GAAA;AACC,IAAA,MAAM,CAACC,IAAAA,EAAMC,OAAQ,CAAA,GAAGC,QAASH,CAAAA,WAAAA,CAAAA;IACjC,qBACEI,GAAA,CAACrB,mBAAmBsB,QAAQ,EAAA;QAACC,KAAO,EAAA;AAAEL,YAAAA,IAAAA;AAAMM,YAAAA,MAAAA,EAAQ,IAAML,OAAAA,CAAQ,CAACM,IAAAA,GAAS,CAACA,IAAAA;AAAM,SAAA;AAChFT,QAAAA,QAAAA,EAAAA;;AAGP;AAEaU,MAAAA,kBAAAA,GAAqB,CAAC,EACjCV,QAAQ,EAGT,GAAA;AACC,IAAA,MAAM,EAAEQ,MAAM,EAAEN,IAAI,EAAE,GAAGf,cAAAA,EAAAA;AACzB,IAAA,qBACEkB,GAACZ,CAAAA,GAAAA,EAAAA;QAAIkB,OAASH,EAAAA,MAAAA;QAAQI,KAAO,EAAA;YAAEC,MAAQ,EAAA;AAAU,SAAA;kBAC9C,OAAOb,QAAAA,KAAa,aAAaA,QAAS,CAAA;AAAEE,YAAAA;SAAUF,CAAAA,GAAAA;;AAG7D;AAEac,MAAAA,kBAAAA,GAAqB,CAAC,EAAEd,QAAQ,EAAiC,GAAA;IAC5E,MAAM,EAAEE,IAAI,EAAE,GAAGf,cAAAA,EAAAA;AACjB,IAAA,MAAM4B,aAAaC,MAAuB,CAAA,IAAA,CAAA;AAC1C,IAAA,MAAM,CAACC,MAAAA,EAAQC,SAAU,CAAA,GAAGd,QAAiB,CAAA,CAAA,CAAA;IAE7Ce,eAAgB,CAAA,IAAA;QACd,IAAIJ,UAAAA,CAAWK,OAAO,EAAE;AACtB,YAAA,MAAMC,aAAgBN,GAAAA,UAAAA,CAAWK,OAAO,CAACE,YAAY;YACrDJ,SAAUG,CAAAA,aAAAA,CAAAA;AACZ;KACC,EAAA;AAACrB,QAAAA;AAAS,KAAA,CAAA;AAEb,IAAA,qBACEK,GAACd,CAAAA,eAAAA,EAAAA;QACCgC,GAAKR,EAAAA,UAAAA;QACLS,IAAK,EAAA,QAAA;AACLC,QAAAA,aAAAA,EAAa,CAACvB,IAAAA;QACdU,KAAO,EAAA;AACLK,YAAAA,MAAAA,EAAQf,OAAO,CAAC,EAAEe,MAAO,CAAA,EAAE,CAAC,GAAG,CAAA;YAC/BS,UAAYT,EAAAA,MAAAA,KAAW,IAAI,QAAW,GAAA;AACxC,SAAA;AAECjB,QAAAA,QAAAA,EAAAA;;AAGP;;;;"}
@@ -0,0 +1,172 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var designSystem = require('@strapi/design-system');
6
+ var reactDropzone = require('react-dropzone');
7
+
8
+ const useClipboardPasteImages = ({ onAddFiles, isEnabled = false })=>{
9
+ const handlePaste = React.useCallback(async (e)=>{
10
+ if (!isEnabled) return;
11
+ // Try to get items from clipboard
12
+ const items = e.clipboardData?.items;
13
+ if (!items || items.length === 0) return;
14
+ const files = [];
15
+ // Process clipboard items
16
+ for (const item of items){
17
+ if (item.kind === 'file') {
18
+ const file = item.getAsFile();
19
+ if (file && file.type.startsWith('image/')) {
20
+ files.push(file);
21
+ }
22
+ }
23
+ }
24
+ if (files.length > 0) {
25
+ onAddFiles(files);
26
+ e.preventDefault(); // Prevent the default paste behavior
27
+ }
28
+ }, [
29
+ isEnabled,
30
+ onAddFiles
31
+ ]);
32
+ // Set up the paste event listener
33
+ React.useEffect(()=>{
34
+ document.addEventListener('paste', handlePaste);
35
+ return ()=>{
36
+ document.removeEventListener('paste', handlePaste);
37
+ };
38
+ }, [
39
+ handlePaste
40
+ ]);
41
+ };
42
+ const DropzoneContext = /*#__PURE__*/ React.createContext({});
43
+ const useDropzoneContext = ()=>React.useContext(DropzoneContext);
44
+ const Root = ({ children, isEnabled = true, onAddFiles = ()=>{}, accept = {
45
+ 'image/*': []
46
+ }, ...props })=>{
47
+ // Use clipboard paste hook for handling clipboard events
48
+ useClipboardPasteImages({
49
+ onAddFiles,
50
+ isEnabled,
51
+ accept
52
+ });
53
+ // Use dropzone for drag and drop functionality
54
+ const { getRootProps, isDragActive } = reactDropzone.useDropzone({
55
+ onDrop: onAddFiles,
56
+ noClick: true,
57
+ noKeyboard: true,
58
+ accept
59
+ });
60
+ return /*#__PURE__*/ jsxRuntime.jsx(DropzoneContext.Provider, {
61
+ value: {
62
+ isEnabled,
63
+ isDragActive,
64
+ onAddFiles
65
+ },
66
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
67
+ direction: "column",
68
+ alignItems: "flex-start",
69
+ width: "100%",
70
+ position: "relative",
71
+ ...getRootProps(),
72
+ ...props,
73
+ children: children
74
+ })
75
+ });
76
+ };
77
+ const Area = ({ error, title, ...props })=>{
78
+ const { isEnabled, isDragActive } = useDropzoneContext();
79
+ // If not dragging, don't render the dropzone area
80
+ if (!isDragActive) {
81
+ return null;
82
+ }
83
+ const displayTitle = title || 'Drop images here';
84
+ return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
85
+ position: "absolute",
86
+ top: 0,
87
+ left: 0,
88
+ right: 0,
89
+ bottom: 0,
90
+ zIndex: 2,
91
+ cursor: isEnabled ? 'pointer' : 'not-allowed',
92
+ width: "100%",
93
+ height: "100%",
94
+ borderStyle: "dashed",
95
+ borderColor: error ? 'danger600' : 'primary500',
96
+ background: error ? 'danger100' : 'primary100',
97
+ hasRadius: true,
98
+ padding: 7,
99
+ justifyContent: "center",
100
+ direction: "column",
101
+ alignItems: "center",
102
+ gap: 2,
103
+ ...props,
104
+ children: [
105
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
106
+ width: "24px",
107
+ height: "24px",
108
+ children: /*#__PURE__*/ jsxRuntime.jsxs("svg", {
109
+ width: "24",
110
+ height: "24",
111
+ viewBox: "0 0 24 24",
112
+ fill: "none",
113
+ xmlns: "http://www.w3.org/2000/svg",
114
+ children: [
115
+ /*#__PURE__*/ jsxRuntime.jsx("path", {
116
+ d: "M19.5 13.572L12 6.072L4.5 13.572",
117
+ stroke: "currentColor",
118
+ strokeWidth: "2",
119
+ strokeLinecap: "round",
120
+ strokeLinejoin: "round"
121
+ }),
122
+ /*#__PURE__*/ jsxRuntime.jsx("path", {
123
+ d: "M12 6.072V20.072",
124
+ stroke: "currentColor",
125
+ strokeWidth: "2",
126
+ strokeLinecap: "round",
127
+ strokeLinejoin: "round"
128
+ }),
129
+ /*#__PURE__*/ jsxRuntime.jsx("path", {
130
+ d: "M3.9998 20.072H20.0001",
131
+ stroke: "currentColor",
132
+ strokeWidth: "2",
133
+ strokeLinecap: "round",
134
+ strokeLinejoin: "round"
135
+ })
136
+ ]
137
+ })
138
+ }),
139
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
140
+ direction: "column",
141
+ alignItems: "center",
142
+ gap: 2,
143
+ children: [
144
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
145
+ variant: "omega",
146
+ textColor: "neutral600",
147
+ textAlign: "center",
148
+ children: displayTitle
149
+ }),
150
+ error && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
151
+ variant: "pi",
152
+ textColor: "danger600",
153
+ children: error
154
+ })
155
+ ]
156
+ })
157
+ ]
158
+ });
159
+ };
160
+ /* -------------------------------------------------------------------------------------------------
161
+ * Dropzone Compound
162
+ * -----------------------------------------------------------------------------------------------*/ const Dropzone = {
163
+ Root,
164
+ Area,
165
+ useDropzoneContext
166
+ };
167
+
168
+ exports.Dropzone = Dropzone;
169
+ exports.Root = Root;
170
+ exports.useClipboardPasteImages = useClipboardPasteImages;
171
+ exports.useDropzoneContext = useDropzoneContext;
172
+ //# sourceMappingURL=Dropzone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dropzone.js","sources":["../../../../../admin/src/components/AIChat/components/Dropzone.tsx"],"sourcesContent":["import { createContext, useCallback, useContext, useEffect } from 'react';\n\nimport { Flex, Box, Typography } from '@strapi/design-system';\nimport { useDropzone } from 'react-dropzone';\n\n/* -------------------------------------------------------------------------------------------------\n * Hooks\n * -----------------------------------------------------------------------------------------------*/\n\ninterface UseClipboardPasteProps {\n onAddFiles: (files: File[]) => void;\n isEnabled?: boolean;\n accept?: {\n [key: string]: string[];\n };\n}\n\nexport const useClipboardPasteImages = ({\n onAddFiles,\n isEnabled = false,\n}: UseClipboardPasteProps) => {\n const handlePaste = useCallback(\n async (e: ClipboardEvent) => {\n if (!isEnabled) return;\n // Try to get items from clipboard\n const items = e.clipboardData?.items;\n\n if (!items || items.length === 0) return;\n\n const files: File[] = [];\n\n // Process clipboard items\n for (const item of items) {\n if (item.kind === 'file') {\n const file = item.getAsFile();\n if (file && file.type.startsWith('image/')) {\n files.push(file);\n }\n }\n }\n\n if (files.length > 0) {\n onAddFiles(files);\n e.preventDefault(); // Prevent the default paste behavior\n }\n },\n [isEnabled, onAddFiles]\n );\n\n // Set up the paste event listener\n useEffect(() => {\n document.addEventListener('paste', handlePaste);\n return () => {\n document.removeEventListener('paste', handlePaste);\n };\n }, [handlePaste]);\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Dropzone Context\n * -----------------------------------------------------------------------------------------------*/\n\nexport interface DropzoneContextValue {\n isEnabled?: boolean;\n isDragActive?: boolean;\n onAddFiles?: (files: File[]) => void;\n}\n\nconst DropzoneContext = createContext<DropzoneContextValue>({});\n\nexport const useDropzoneContext = () => useContext(DropzoneContext);\n\n/* -------------------------------------------------------------------------------------------------\n * Dropzone Root\n * -----------------------------------------------------------------------------------------------*/\n\nexport interface DropzoneRootProps extends React.ComponentPropsWithoutRef<typeof Flex> {\n children: React.ReactNode;\n isEnabled?: boolean;\n onAddFiles?: (files: File[]) => void;\n accept?: {\n [key: string]: string[];\n };\n}\n\nexport const Root = ({\n children,\n isEnabled = true,\n onAddFiles = () => {},\n accept = { 'image/*': [] },\n ...props\n}: DropzoneRootProps) => {\n // Use clipboard paste hook for handling clipboard events\n useClipboardPasteImages({ onAddFiles, isEnabled, accept });\n\n // Use dropzone for drag and drop functionality\n const { getRootProps, isDragActive } = useDropzone({\n onDrop: onAddFiles,\n noClick: true,\n noKeyboard: true,\n accept,\n });\n\n return (\n <DropzoneContext.Provider\n value={{\n isEnabled,\n isDragActive,\n onAddFiles,\n }}\n >\n <Flex\n direction=\"column\"\n alignItems=\"flex-start\"\n width=\"100%\"\n position=\"relative\"\n {...getRootProps()}\n {...props}\n >\n {children}\n </Flex>\n </DropzoneContext.Provider>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Dropzone Area\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DropzoneAreaProps extends React.ComponentPropsWithoutRef<typeof Flex> {\n error?: string | null;\n title?: string;\n}\n\nconst Area = ({ error, title, ...props }: DropzoneAreaProps) => {\n const { isEnabled, isDragActive } = useDropzoneContext();\n\n // If not dragging, don't render the dropzone area\n if (!isDragActive) {\n return null;\n }\n\n const displayTitle = title || 'Drop images here';\n\n return (\n <Flex\n position=\"absolute\"\n top={0}\n left={0}\n right={0}\n bottom={0}\n zIndex={2}\n cursor={isEnabled ? 'pointer' : 'not-allowed'}\n width=\"100%\"\n height=\"100%\"\n borderStyle=\"dashed\"\n borderColor={error ? 'danger600' : 'primary500'}\n background={error ? 'danger100' : 'primary100'}\n hasRadius\n padding={7}\n justifyContent=\"center\"\n direction=\"column\"\n alignItems=\"center\"\n gap={2}\n {...props}\n >\n <Box width=\"24px\" height=\"24px\">\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19.5 13.572L12 6.072L4.5 13.572\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M12 6.072V20.072\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M3.9998 20.072H20.0001\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </Box>\n <Flex direction=\"column\" alignItems=\"center\" gap={2}>\n <Typography variant=\"omega\" textColor=\"neutral600\" textAlign=\"center\">\n {displayTitle}\n </Typography>\n {error && (\n <Typography variant=\"pi\" textColor=\"danger600\">\n {error}\n </Typography>\n )}\n </Flex>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Dropzone Compound\n * -----------------------------------------------------------------------------------------------*/\n\nexport const Dropzone = {\n Root,\n Area,\n useDropzoneContext,\n};\n"],"names":["useClipboardPasteImages","onAddFiles","isEnabled","handlePaste","useCallback","e","items","clipboardData","length","files","item","kind","file","getAsFile","type","startsWith","push","preventDefault","useEffect","document","addEventListener","removeEventListener","DropzoneContext","createContext","useDropzoneContext","useContext","Root","children","accept","props","getRootProps","isDragActive","useDropzone","onDrop","noClick","noKeyboard","_jsx","Provider","value","Flex","direction","alignItems","width","position","Area","error","title","displayTitle","_jsxs","top","left","right","bottom","zIndex","cursor","height","borderStyle","borderColor","background","hasRadius","padding","justifyContent","gap","Box","svg","viewBox","fill","xmlns","path","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","Typography","variant","textColor","textAlign","Dropzone"],"mappings":"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"}