@strapi/content-type-builder 5.25.0 → 5.27.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 (332) hide show
  1. package/dist/admin/components/AIChat/Chat.js +435 -0
  2. package/dist/admin/components/AIChat/Chat.js.map +1 -0
  3. package/dist/admin/components/AIChat/Chat.mjs +433 -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/ContentTypeBuilderNav/ContentTypeBuilderNav.js +165 -161
  158. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -1
  159. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +165 -161
  160. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -1
  161. package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -1
  162. package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -1
  163. package/dist/admin/components/DataManager/reducer.js +48 -6
  164. package/dist/admin/components/DataManager/reducer.js.map +1 -1
  165. package/dist/admin/components/DataManager/reducer.mjs +48 -6
  166. package/dist/admin/components/DataManager/reducer.mjs.map +1 -1
  167. package/dist/admin/components/FormModal/utils/canEditContentType.js.map +1 -1
  168. package/dist/admin/components/FormModal/utils/canEditContentType.mjs.map +1 -1
  169. package/dist/admin/pages/App/index.js +60 -29
  170. package/dist/admin/pages/App/index.js.map +1 -1
  171. package/dist/admin/pages/App/index.mjs +62 -31
  172. package/dist/admin/pages/App/index.mjs.map +1 -1
  173. package/dist/admin/pages/ListView/EmptyState.js +75 -9
  174. package/dist/admin/pages/ListView/EmptyState.js.map +1 -1
  175. package/dist/admin/pages/ListView/EmptyState.mjs +77 -11
  176. package/dist/admin/pages/ListView/EmptyState.mjs.map +1 -1
  177. package/dist/admin/src/components/AIChat/Chat.d.ts +2 -0
  178. package/dist/admin/src/components/AIChat/FeedbackModal.d.ts +13 -0
  179. package/dist/admin/src/components/AIChat/UploadCodeModal.d.ts +12 -0
  180. package/dist/admin/src/components/AIChat/UploadFigmaModal.d.ts +12 -0
  181. package/dist/admin/src/components/AIChat/components/Alert.d.ts +6 -0
  182. package/dist/admin/src/components/AIChat/components/AnimatedBox.d.ts +13 -0
  183. package/dist/admin/src/components/AIChat/components/Attachments/AttachmentPreview.d.ts +9 -0
  184. package/dist/admin/src/components/AIChat/components/Attachments/components/Attachment.d.ts +27 -0
  185. package/dist/admin/src/components/AIChat/components/Base64Image.d.ts +9 -0
  186. package/dist/admin/src/components/AIChat/components/Collapsible.d.ts +18 -0
  187. package/dist/admin/src/components/AIChat/components/Dropzone.d.ts +35 -0
  188. package/dist/admin/src/components/AIChat/components/FloatingPanel.d.ts +34 -0
  189. package/dist/admin/src/components/AIChat/components/FullScreenImage.d.ts +20 -0
  190. package/dist/admin/src/components/AIChat/components/ImagePreview.d.ts +8 -0
  191. package/dist/admin/src/components/AIChat/components/ImagePreviewGroup.d.ts +7 -0
  192. package/dist/admin/src/components/AIChat/components/Input.d.ts +43 -0
  193. package/dist/admin/src/components/AIChat/components/Messages/Marker.d.ts +2 -0
  194. package/dist/admin/src/components/AIChat/components/Messages/Message.d.ts +5 -0
  195. package/dist/admin/src/components/AIChat/components/ResizableTextArea.d.ts +9 -0
  196. package/dist/admin/src/components/AIChat/components/SimpleMenu.d.ts +32 -0
  197. package/dist/admin/src/components/AIChat/components/StepModal.d.ts +37 -0
  198. package/dist/admin/src/components/AIChat/components/animations.d.ts +8 -0
  199. package/dist/admin/src/components/AIChat/components/icons/FigmaIcon.d.ts +5 -0
  200. package/dist/admin/src/components/AIChat/components/icons/StopIcon.d.ts +5 -0
  201. package/dist/admin/src/components/AIChat/hooks/useAIFetch.d.ts +147 -0
  202. package/dist/admin/src/components/AIChat/hooks/useAttachments.d.ts +8 -0
  203. package/dist/admin/src/components/AIChat/hooks/useChatTitle.d.ts +13 -0
  204. package/dist/admin/src/components/AIChat/hooks/useCodeUpload.d.ts +31 -0
  205. package/dist/admin/src/components/AIChat/hooks/useFeedback.d.ts +7 -0
  206. package/dist/admin/src/components/AIChat/hooks/useFigmaUpload.d.ts +61 -0
  207. package/dist/admin/src/components/AIChat/hooks/useLastSeenSchemas.d.ts +10 -0
  208. package/dist/admin/src/components/AIChat/hooks/useTranslations.d.ts +3 -0
  209. package/dist/admin/src/components/AIChat/lib/aiClient.d.ts +32 -0
  210. package/dist/admin/src/components/AIChat/lib/constants.d.ts +12 -0
  211. package/dist/admin/src/components/AIChat/lib/fileToAttachment.d.ts +2 -0
  212. package/dist/admin/src/components/AIChat/lib/misc.d.ts +1 -0
  213. package/dist/admin/src/components/AIChat/lib/transforms/schemas/fromCTB.d.ts +3 -0
  214. package/dist/admin/src/components/AIChat/lib/transforms/schemas/toCTB.d.ts +16 -0
  215. package/dist/admin/src/components/AIChat/lib/types/annotations.d.ts +19 -0
  216. package/dist/admin/src/components/AIChat/lib/types/attachments.d.ts +15 -0
  217. package/dist/admin/src/components/AIChat/lib/types/feedback.d.ts +1 -0
  218. package/dist/admin/src/components/AIChat/lib/types/messages.d.ts +26 -0
  219. package/dist/admin/src/components/AIChat/lib/types/schema.d.ts +20 -0
  220. package/dist/admin/src/components/AIChat/providers/ChatProvider.d.ts +30 -0
  221. package/dist/admin/src/components/AIChat/providers/SchemaProvider.d.ts +10 -0
  222. package/dist/admin/src/components/ComponentList.d.ts +1 -1
  223. package/dist/admin/src/components/DataManager/DataManagerContext.d.ts +1 -1
  224. package/dist/admin/translations/ar.json.js +187 -2
  225. package/dist/admin/translations/ar.json.js.map +1 -1
  226. package/dist/admin/translations/ar.json.mjs +187 -3
  227. package/dist/admin/translations/ar.json.mjs.map +1 -1
  228. package/dist/admin/translations/de.json.js +42 -7
  229. package/dist/admin/translations/de.json.js.map +1 -1
  230. package/dist/admin/translations/de.json.mjs +42 -7
  231. package/dist/admin/translations/de.json.mjs.map +1 -1
  232. package/dist/admin/translations/en.json.js +53 -2
  233. package/dist/admin/translations/en.json.js.map +1 -1
  234. package/dist/admin/translations/en.json.mjs +53 -2
  235. package/dist/admin/translations/en.json.mjs.map +1 -1
  236. package/dist/admin/translations/es.json.js +37 -15
  237. package/dist/admin/translations/es.json.js.map +1 -1
  238. package/dist/admin/translations/es.json.mjs +37 -15
  239. package/dist/admin/translations/es.json.mjs.map +1 -1
  240. package/dist/admin/translations/fr.json.js +165 -3
  241. package/dist/admin/translations/fr.json.js.map +1 -1
  242. package/dist/admin/translations/fr.json.mjs +165 -4
  243. package/dist/admin/translations/fr.json.mjs.map +1 -1
  244. package/dist/admin/translations/id.json.js +93 -23
  245. package/dist/admin/translations/id.json.js.map +1 -1
  246. package/dist/admin/translations/id.json.mjs +93 -23
  247. package/dist/admin/translations/id.json.mjs.map +1 -1
  248. package/dist/admin/translations/it.json.js +75 -6
  249. package/dist/admin/translations/it.json.js.map +1 -1
  250. package/dist/admin/translations/it.json.mjs +75 -6
  251. package/dist/admin/translations/it.json.mjs.map +1 -1
  252. package/dist/admin/translations/ja.json.js +191 -5
  253. package/dist/admin/translations/ja.json.js.map +1 -1
  254. package/dist/admin/translations/ja.json.mjs +191 -6
  255. package/dist/admin/translations/ja.json.mjs.map +1 -1
  256. package/dist/admin/translations/ko.json.js +70 -16
  257. package/dist/admin/translations/ko.json.js.map +1 -1
  258. package/dist/admin/translations/ko.json.mjs +70 -16
  259. package/dist/admin/translations/ko.json.mjs.map +1 -1
  260. package/dist/admin/translations/ms.json.js +104 -31
  261. package/dist/admin/translations/ms.json.js.map +1 -1
  262. package/dist/admin/translations/ms.json.mjs +104 -31
  263. package/dist/admin/translations/ms.json.mjs.map +1 -1
  264. package/dist/admin/translations/nl.json.js +95 -15
  265. package/dist/admin/translations/nl.json.js.map +1 -1
  266. package/dist/admin/translations/nl.json.mjs +95 -15
  267. package/dist/admin/translations/nl.json.mjs.map +1 -1
  268. package/dist/admin/translations/pl.json.js +55 -11
  269. package/dist/admin/translations/pl.json.js.map +1 -1
  270. package/dist/admin/translations/pl.json.mjs +55 -11
  271. package/dist/admin/translations/pl.json.mjs.map +1 -1
  272. package/dist/admin/translations/pt-BR.json.js +54 -10
  273. package/dist/admin/translations/pt-BR.json.js.map +1 -1
  274. package/dist/admin/translations/pt-BR.json.mjs +54 -10
  275. package/dist/admin/translations/pt-BR.json.mjs.map +1 -1
  276. package/dist/admin/translations/pt.json.js +187 -2
  277. package/dist/admin/translations/pt.json.js.map +1 -1
  278. package/dist/admin/translations/pt.json.mjs +187 -3
  279. package/dist/admin/translations/pt.json.mjs.map +1 -1
  280. package/dist/admin/translations/ru.json.js +26 -1
  281. package/dist/admin/translations/ru.json.js.map +1 -1
  282. package/dist/admin/translations/ru.json.mjs +26 -1
  283. package/dist/admin/translations/ru.json.mjs.map +1 -1
  284. package/dist/admin/translations/sk.json.js +21 -1
  285. package/dist/admin/translations/sk.json.js.map +1 -1
  286. package/dist/admin/translations/sk.json.mjs +21 -1
  287. package/dist/admin/translations/sk.json.mjs.map +1 -1
  288. package/dist/admin/translations/sv.json.js +21 -1
  289. package/dist/admin/translations/sv.json.js.map +1 -1
  290. package/dist/admin/translations/sv.json.mjs +21 -1
  291. package/dist/admin/translations/sv.json.mjs.map +1 -1
  292. package/dist/admin/translations/th.json.js +21 -1
  293. package/dist/admin/translations/th.json.js.map +1 -1
  294. package/dist/admin/translations/th.json.mjs +21 -1
  295. package/dist/admin/translations/th.json.mjs.map +1 -1
  296. package/dist/admin/translations/tr.json.js +21 -1
  297. package/dist/admin/translations/tr.json.js.map +1 -1
  298. package/dist/admin/translations/tr.json.mjs +21 -1
  299. package/dist/admin/translations/tr.json.mjs.map +1 -1
  300. package/dist/admin/translations/uk.json.js +21 -2
  301. package/dist/admin/translations/uk.json.js.map +1 -1
  302. package/dist/admin/translations/uk.json.mjs +21 -2
  303. package/dist/admin/translations/uk.json.mjs.map +1 -1
  304. package/dist/admin/translations/zh-Hans.json.js +222 -133
  305. package/dist/admin/translations/zh-Hans.json.js.map +1 -1
  306. package/dist/admin/translations/zh-Hans.json.mjs +222 -133
  307. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -1
  308. package/dist/admin/translations/zh.json.js +21 -1
  309. package/dist/admin/translations/zh.json.js.map +1 -1
  310. package/dist/admin/translations/zh.json.mjs +21 -1
  311. package/dist/admin/translations/zh.json.mjs.map +1 -1
  312. package/dist/server/index.js +2 -0
  313. package/dist/server/index.js.map +1 -1
  314. package/dist/server/index.mjs +2 -0
  315. package/dist/server/index.mjs.map +1 -1
  316. package/dist/server/register.js +98 -0
  317. package/dist/server/register.js.map +1 -0
  318. package/dist/server/register.mjs +96 -0
  319. package/dist/server/register.mjs.map +1 -0
  320. package/dist/server/src/controllers/ai/auth.d.ts +1 -0
  321. package/dist/server/src/controllers/ai/auth.d.ts.map +1 -0
  322. package/dist/server/src/controllers/ai/index.d.ts +1 -0
  323. package/dist/server/src/controllers/ai/index.d.ts.map +1 -0
  324. package/dist/server/src/index.d.ts +1 -0
  325. package/dist/server/src/index.d.ts.map +1 -1
  326. package/dist/server/src/register.d.ts +11 -0
  327. package/dist/server/src/register.d.ts.map +1 -0
  328. package/package.json +12 -5
  329. package/dist/admin/components/DataManager/utils/formatSchemas.js +0 -21
  330. package/dist/admin/components/DataManager/utils/formatSchemas.js.map +0 -1
  331. package/dist/admin/components/DataManager/utils/formatSchemas.mjs +0 -18
  332. package/dist/admin/components/DataManager/utils/formatSchemas.mjs.map +0 -1
@@ -0,0 +1,92 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var designSystem = require('@strapi/design-system');
5
+ var Icons = require('@strapi/icons');
6
+ var styledComponents = require('styled-components');
7
+ var constants = require('../../lib/constants.js');
8
+ var Base64Image = require('../Base64Image.js');
9
+ var FullScreenImage = require('../FullScreenImage.js');
10
+ var Attachment = require('./components/Attachment.js');
11
+
12
+ /* -------------------------------------------------------------------------------------------------
13
+ * Image
14
+ * -----------------------------------------------------------------------------------------------*/ const ImageThumbnail = styledComponents.styled(Base64Image.Base64Img)`
15
+ width: 24px;
16
+ height: 24px;
17
+ object-fit: cover;
18
+ border-radius: ${({ theme })=>theme.borderRadius};
19
+ `;
20
+ const ImageAttachment = ({ attachment, onRemove, ...props })=>{
21
+ return /*#__PURE__*/ jsxRuntime.jsx(FullScreenImage.FullScreenImage.Root, {
22
+ src: attachment.url,
23
+ alt: attachment.filename || 'image',
24
+ children: /*#__PURE__*/ jsxRuntime.jsx(FullScreenImage.FullScreenImage.Trigger, {
25
+ asChild: true,
26
+ children: /*#__PURE__*/ jsxRuntime.jsxs(Attachment.Attachment.Root, {
27
+ ...props,
28
+ children: [
29
+ /*#__PURE__*/ jsxRuntime.jsx(Attachment.Attachment.Preview, {
30
+ children: attachment.status === 'loading' ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Loader, {
31
+ small: true
32
+ }) : /*#__PURE__*/ jsxRuntime.jsx(ImageThumbnail, {
33
+ src: attachment.url,
34
+ alt: attachment.filename
35
+ })
36
+ }),
37
+ /*#__PURE__*/ jsxRuntime.jsx(Attachment.Attachment.Title, {
38
+ children: attachment.filename || 'unknown'
39
+ }),
40
+ onRemove && /*#__PURE__*/ jsxRuntime.jsx(Attachment.Attachment.Remove, {
41
+ onClick: onRemove
42
+ })
43
+ ]
44
+ })
45
+ })
46
+ });
47
+ };
48
+ /* -------------------------------------------------------------------------------------------------
49
+ * Code
50
+ * -----------------------------------------------------------------------------------------------*/ const CodeAttachment = ({ attachment, onRemove, ...props })=>{
51
+ return /*#__PURE__*/ jsxRuntime.jsxs(Attachment.Attachment.Root, {
52
+ ...props,
53
+ children: [
54
+ /*#__PURE__*/ jsxRuntime.jsx(Attachment.Attachment.Preview, {
55
+ children: attachment.status === 'loading' ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Loader, {
56
+ small: true
57
+ }) : /*#__PURE__*/ jsxRuntime.jsx(Icons.Folder, {
58
+ height: 24,
59
+ width: 24
60
+ })
61
+ }),
62
+ /*#__PURE__*/ jsxRuntime.jsx(Attachment.Attachment.Title, {
63
+ children: attachment.filename || 'unknown'
64
+ }),
65
+ onRemove && /*#__PURE__*/ jsxRuntime.jsx(Attachment.Attachment.Remove, {
66
+ onClick: onRemove
67
+ })
68
+ ]
69
+ });
70
+ };
71
+ /* -------------------------------------------------------------------------------------------------
72
+ * Export
73
+ * -----------------------------------------------------------------------------------------------*/ const AttachmentPreview = ({ attachment, onRemove, ...props })=>{
74
+ if (attachment.mediaType?.startsWith('image/')) {
75
+ return /*#__PURE__*/ jsxRuntime.jsx(ImageAttachment, {
76
+ attachment: attachment,
77
+ onRemove: onRemove,
78
+ ...props
79
+ });
80
+ }
81
+ if (attachment.mediaType === constants.STRAPI_CODE_MIME_TYPE) {
82
+ return /*#__PURE__*/ jsxRuntime.jsx(CodeAttachment, {
83
+ attachment: attachment,
84
+ onRemove: onRemove,
85
+ ...props
86
+ });
87
+ }
88
+ return null;
89
+ };
90
+
91
+ exports.AttachmentPreview = AttachmentPreview;
92
+ //# sourceMappingURL=AttachmentPreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentPreview.js","sources":["../../../../../../admin/src/components/AIChat/components/Attachments/AttachmentPreview.tsx"],"sourcesContent":["import { Loader } from '@strapi/design-system';\nimport { Folder } from '@strapi/icons';\nimport { styled } from 'styled-components';\n\nimport { STRAPI_CODE_MIME_TYPE } from '../../lib/constants';\nimport { Attachment as TAttachment } from '../../lib/types/attachments';\nimport { Base64Img } from '../Base64Image';\nimport { FullScreenImage } from '../FullScreenImage';\n\nimport { Attachment, AttachmentRootProps } from './components/Attachment';\n\ninterface AttachmentPreviewProps {\n attachment: TAttachment;\n loading?: boolean;\n onRemove?: () => void;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Image\n * -----------------------------------------------------------------------------------------------*/\n\nconst ImageThumbnail = styled(Base64Img)`\n width: 24px;\n height: 24px;\n object-fit: cover;\n border-radius: ${({ theme }) => theme.borderRadius};\n`;\n\nconst ImageAttachment = ({\n attachment,\n onRemove,\n ...props\n}: AttachmentPreviewProps & Omit<AttachmentRootProps, 'children'>) => {\n return (\n <FullScreenImage.Root src={attachment.url} alt={attachment.filename || 'image'}>\n <FullScreenImage.Trigger asChild>\n <Attachment.Root {...props}>\n <Attachment.Preview>\n {attachment.status === 'loading' ? (\n <Loader small />\n ) : (\n <ImageThumbnail src={attachment.url} alt={attachment.filename} />\n )}\n </Attachment.Preview>\n <Attachment.Title>{attachment.filename || 'unknown'}</Attachment.Title>\n {onRemove && <Attachment.Remove onClick={onRemove} />}\n </Attachment.Root>\n </FullScreenImage.Trigger>\n </FullScreenImage.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Code\n * -----------------------------------------------------------------------------------------------*/\n\nconst CodeAttachment = ({\n attachment,\n onRemove,\n ...props\n}: AttachmentPreviewProps & Omit<AttachmentRootProps, 'children'>) => {\n return (\n <Attachment.Root {...props}>\n <Attachment.Preview>\n {attachment.status === 'loading' ? <Loader small /> : <Folder height={24} width={24} />}\n </Attachment.Preview>\n <Attachment.Title>{attachment.filename || 'unknown'}</Attachment.Title>\n {onRemove && <Attachment.Remove onClick={onRemove} />}\n </Attachment.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Export\n * -----------------------------------------------------------------------------------------------*/\n\nexport const AttachmentPreview = ({\n attachment,\n onRemove,\n ...props\n}: AttachmentPreviewProps & Omit<AttachmentRootProps, 'children'>) => {\n if (attachment.mediaType?.startsWith('image/')) {\n return <ImageAttachment attachment={attachment} onRemove={onRemove} {...props} />;\n }\n\n if (attachment.mediaType === STRAPI_CODE_MIME_TYPE) {\n return <CodeAttachment attachment={attachment} onRemove={onRemove} {...props} />;\n }\n\n return null;\n};\n"],"names":["ImageThumbnail","styled","Base64Img","theme","borderRadius","ImageAttachment","attachment","onRemove","props","_jsx","FullScreenImage","Root","src","url","alt","filename","Trigger","asChild","_jsxs","Attachment","Preview","status","Loader","small","Title","Remove","onClick","CodeAttachment","Folder","height","width","AttachmentPreview","mediaType","startsWith","STRAPI_CODE_MIME_TYPE"],"mappings":";;;;;;;;;;;AAiBA;;AAEkG,qGAElG,MAAMA,cAAAA,GAAiBC,uBAAOC,CAAAA,qBAAAA,CAAU;;;;AAIvB,iBAAA,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAAA,CAAMC,YAAY,CAAC;AACrD,CAAC;AAED,MAAMC,eAAAA,GAAkB,CAAC,EACvBC,UAAU,EACVC,QAAQ,EACR,GAAGC,KAC4D,EAAA,GAAA;IAC/D,qBACEC,cAAA,CAACC,gCAAgBC,IAAI,EAAA;AAACC,QAAAA,GAAAA,EAAKN,WAAWO,GAAG;QAAEC,GAAKR,EAAAA,UAAAA,CAAWS,QAAQ,IAAI,OAAA;gCACrEN,cAAA,CAACC,gCAAgBM,OAAO,EAAA;YAACC,OAAO,EAAA,IAAA;oCAC9BC,eAAA,CAACC,sBAAWR,IAAI,EAAA;AAAE,gBAAA,GAAGH,KAAK;;AACxB,kCAAAC,cAAA,CAACU,sBAAWC,OAAO,EAAA;kCAChBd,UAAWe,CAAAA,MAAM,KAAK,SAAA,iBACrBZ,cAACa,CAAAA,mBAAAA,EAAAA;4BAAOC,KAAK,EAAA;2CAEbd,cAACT,CAAAA,cAAAA,EAAAA;AAAeY,4BAAAA,GAAAA,EAAKN,WAAWO,GAAG;AAAEC,4BAAAA,GAAAA,EAAKR,WAAWS;;;AAGzD,kCAAAN,cAAA,CAACU,sBAAWK,KAAK,EAAA;AAAElB,wBAAAA,QAAAA,EAAAA,UAAAA,CAAWS,QAAQ,IAAI;;oBACzCR,QAAY,kBAAAE,cAAA,CAACU,sBAAWM,MAAM,EAAA;wBAACC,OAASnB,EAAAA;;;;;;AAKnD,CAAA;AAEA;;qGAIA,MAAMoB,iBAAiB,CAAC,EACtBrB,UAAU,EACVC,QAAQ,EACR,GAAGC,KAC4D,EAAA,GAAA;IAC/D,qBACEU,eAAA,CAACC,sBAAWR,IAAI,EAAA;AAAE,QAAA,GAAGH,KAAK;;AACxB,0BAAAC,cAAA,CAACU,sBAAWC,OAAO,EAAA;0BAChBd,UAAWe,CAAAA,MAAM,KAAK,SAAA,iBAAYZ,cAACa,CAAAA,mBAAAA,EAAAA;oBAAOC,KAAK,EAAA;mCAAMd,cAACmB,CAAAA,YAAAA,EAAAA;oBAAOC,MAAQ,EAAA,EAAA;oBAAIC,KAAO,EAAA;;;AAEnF,0BAAArB,cAAA,CAACU,sBAAWK,KAAK,EAAA;AAAElB,gBAAAA,QAAAA,EAAAA,UAAAA,CAAWS,QAAQ,IAAI;;YACzCR,QAAY,kBAAAE,cAAA,CAACU,sBAAWM,MAAM,EAAA;gBAACC,OAASnB,EAAAA;;;;AAG/C,CAAA;AAEA;;qGAIawB,MAAAA,iBAAAA,GAAoB,CAAC,EAChCzB,UAAU,EACVC,QAAQ,EACR,GAAGC,KAC4D,EAAA,GAAA;AAC/D,IAAA,IAAIF,UAAW0B,CAAAA,SAAS,EAAEC,UAAAA,CAAW,QAAW,CAAA,EAAA;AAC9C,QAAA,qBAAOxB,cAACJ,CAAAA,eAAAA,EAAAA;YAAgBC,UAAYA,EAAAA,UAAAA;YAAYC,QAAUA,EAAAA,QAAAA;AAAW,YAAA,GAAGC;;AAC1E;IAEA,IAAIF,UAAAA,CAAW0B,SAAS,KAAKE,+BAAuB,EAAA;AAClD,QAAA,qBAAOzB,cAACkB,CAAAA,cAAAA,EAAAA;YAAerB,UAAYA,EAAAA,UAAAA;YAAYC,QAAUA,EAAAA,QAAAA;AAAW,YAAA,GAAGC;;AACzE;IAEA,OAAO,IAAA;AACT;;;;"}
@@ -0,0 +1,90 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { Loader } from '@strapi/design-system';
3
+ import { Folder } from '@strapi/icons';
4
+ import { styled } from 'styled-components';
5
+ import { STRAPI_CODE_MIME_TYPE } from '../../lib/constants.mjs';
6
+ import { Base64Img } from '../Base64Image.mjs';
7
+ import { FullScreenImage } from '../FullScreenImage.mjs';
8
+ import { Attachment } from './components/Attachment.mjs';
9
+
10
+ /* -------------------------------------------------------------------------------------------------
11
+ * Image
12
+ * -----------------------------------------------------------------------------------------------*/ const ImageThumbnail = styled(Base64Img)`
13
+ width: 24px;
14
+ height: 24px;
15
+ object-fit: cover;
16
+ border-radius: ${({ theme })=>theme.borderRadius};
17
+ `;
18
+ const ImageAttachment = ({ attachment, onRemove, ...props })=>{
19
+ return /*#__PURE__*/ jsx(FullScreenImage.Root, {
20
+ src: attachment.url,
21
+ alt: attachment.filename || 'image',
22
+ children: /*#__PURE__*/ jsx(FullScreenImage.Trigger, {
23
+ asChild: true,
24
+ children: /*#__PURE__*/ jsxs(Attachment.Root, {
25
+ ...props,
26
+ children: [
27
+ /*#__PURE__*/ jsx(Attachment.Preview, {
28
+ children: attachment.status === 'loading' ? /*#__PURE__*/ jsx(Loader, {
29
+ small: true
30
+ }) : /*#__PURE__*/ jsx(ImageThumbnail, {
31
+ src: attachment.url,
32
+ alt: attachment.filename
33
+ })
34
+ }),
35
+ /*#__PURE__*/ jsx(Attachment.Title, {
36
+ children: attachment.filename || 'unknown'
37
+ }),
38
+ onRemove && /*#__PURE__*/ jsx(Attachment.Remove, {
39
+ onClick: onRemove
40
+ })
41
+ ]
42
+ })
43
+ })
44
+ });
45
+ };
46
+ /* -------------------------------------------------------------------------------------------------
47
+ * Code
48
+ * -----------------------------------------------------------------------------------------------*/ const CodeAttachment = ({ attachment, onRemove, ...props })=>{
49
+ return /*#__PURE__*/ jsxs(Attachment.Root, {
50
+ ...props,
51
+ children: [
52
+ /*#__PURE__*/ jsx(Attachment.Preview, {
53
+ children: attachment.status === 'loading' ? /*#__PURE__*/ jsx(Loader, {
54
+ small: true
55
+ }) : /*#__PURE__*/ jsx(Folder, {
56
+ height: 24,
57
+ width: 24
58
+ })
59
+ }),
60
+ /*#__PURE__*/ jsx(Attachment.Title, {
61
+ children: attachment.filename || 'unknown'
62
+ }),
63
+ onRemove && /*#__PURE__*/ jsx(Attachment.Remove, {
64
+ onClick: onRemove
65
+ })
66
+ ]
67
+ });
68
+ };
69
+ /* -------------------------------------------------------------------------------------------------
70
+ * Export
71
+ * -----------------------------------------------------------------------------------------------*/ const AttachmentPreview = ({ attachment, onRemove, ...props })=>{
72
+ if (attachment.mediaType?.startsWith('image/')) {
73
+ return /*#__PURE__*/ jsx(ImageAttachment, {
74
+ attachment: attachment,
75
+ onRemove: onRemove,
76
+ ...props
77
+ });
78
+ }
79
+ if (attachment.mediaType === STRAPI_CODE_MIME_TYPE) {
80
+ return /*#__PURE__*/ jsx(CodeAttachment, {
81
+ attachment: attachment,
82
+ onRemove: onRemove,
83
+ ...props
84
+ });
85
+ }
86
+ return null;
87
+ };
88
+
89
+ export { AttachmentPreview };
90
+ //# sourceMappingURL=AttachmentPreview.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentPreview.mjs","sources":["../../../../../../admin/src/components/AIChat/components/Attachments/AttachmentPreview.tsx"],"sourcesContent":["import { Loader } from '@strapi/design-system';\nimport { Folder } from '@strapi/icons';\nimport { styled } from 'styled-components';\n\nimport { STRAPI_CODE_MIME_TYPE } from '../../lib/constants';\nimport { Attachment as TAttachment } from '../../lib/types/attachments';\nimport { Base64Img } from '../Base64Image';\nimport { FullScreenImage } from '../FullScreenImage';\n\nimport { Attachment, AttachmentRootProps } from './components/Attachment';\n\ninterface AttachmentPreviewProps {\n attachment: TAttachment;\n loading?: boolean;\n onRemove?: () => void;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Image\n * -----------------------------------------------------------------------------------------------*/\n\nconst ImageThumbnail = styled(Base64Img)`\n width: 24px;\n height: 24px;\n object-fit: cover;\n border-radius: ${({ theme }) => theme.borderRadius};\n`;\n\nconst ImageAttachment = ({\n attachment,\n onRemove,\n ...props\n}: AttachmentPreviewProps & Omit<AttachmentRootProps, 'children'>) => {\n return (\n <FullScreenImage.Root src={attachment.url} alt={attachment.filename || 'image'}>\n <FullScreenImage.Trigger asChild>\n <Attachment.Root {...props}>\n <Attachment.Preview>\n {attachment.status === 'loading' ? (\n <Loader small />\n ) : (\n <ImageThumbnail src={attachment.url} alt={attachment.filename} />\n )}\n </Attachment.Preview>\n <Attachment.Title>{attachment.filename || 'unknown'}</Attachment.Title>\n {onRemove && <Attachment.Remove onClick={onRemove} />}\n </Attachment.Root>\n </FullScreenImage.Trigger>\n </FullScreenImage.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Code\n * -----------------------------------------------------------------------------------------------*/\n\nconst CodeAttachment = ({\n attachment,\n onRemove,\n ...props\n}: AttachmentPreviewProps & Omit<AttachmentRootProps, 'children'>) => {\n return (\n <Attachment.Root {...props}>\n <Attachment.Preview>\n {attachment.status === 'loading' ? <Loader small /> : <Folder height={24} width={24} />}\n </Attachment.Preview>\n <Attachment.Title>{attachment.filename || 'unknown'}</Attachment.Title>\n {onRemove && <Attachment.Remove onClick={onRemove} />}\n </Attachment.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Export\n * -----------------------------------------------------------------------------------------------*/\n\nexport const AttachmentPreview = ({\n attachment,\n onRemove,\n ...props\n}: AttachmentPreviewProps & Omit<AttachmentRootProps, 'children'>) => {\n if (attachment.mediaType?.startsWith('image/')) {\n return <ImageAttachment attachment={attachment} onRemove={onRemove} {...props} />;\n }\n\n if (attachment.mediaType === STRAPI_CODE_MIME_TYPE) {\n return <CodeAttachment attachment={attachment} onRemove={onRemove} {...props} />;\n }\n\n return null;\n};\n"],"names":["ImageThumbnail","styled","Base64Img","theme","borderRadius","ImageAttachment","attachment","onRemove","props","_jsx","FullScreenImage","Root","src","url","alt","filename","Trigger","asChild","_jsxs","Attachment","Preview","status","Loader","small","Title","Remove","onClick","CodeAttachment","Folder","height","width","AttachmentPreview","mediaType","startsWith","STRAPI_CODE_MIME_TYPE"],"mappings":";;;;;;;;;AAiBA;;AAEkG,qGAElG,MAAMA,cAAAA,GAAiBC,MAAOC,CAAAA,SAAAA,CAAU;;;;AAIvB,iBAAA,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAAA,CAAMC,YAAY,CAAC;AACrD,CAAC;AAED,MAAMC,eAAAA,GAAkB,CAAC,EACvBC,UAAU,EACVC,QAAQ,EACR,GAAGC,KAC4D,EAAA,GAAA;IAC/D,qBACEC,GAAA,CAACC,gBAAgBC,IAAI,EAAA;AAACC,QAAAA,GAAAA,EAAKN,WAAWO,GAAG;QAAEC,GAAKR,EAAAA,UAAAA,CAAWS,QAAQ,IAAI,OAAA;gCACrEN,GAAA,CAACC,gBAAgBM,OAAO,EAAA;YAACC,OAAO,EAAA,IAAA;oCAC9BC,IAAA,CAACC,WAAWR,IAAI,EAAA;AAAE,gBAAA,GAAGH,KAAK;;AACxB,kCAAAC,GAAA,CAACU,WAAWC,OAAO,EAAA;kCAChBd,UAAWe,CAAAA,MAAM,KAAK,SAAA,iBACrBZ,GAACa,CAAAA,MAAAA,EAAAA;4BAAOC,KAAK,EAAA;2CAEbd,GAACT,CAAAA,cAAAA,EAAAA;AAAeY,4BAAAA,GAAAA,EAAKN,WAAWO,GAAG;AAAEC,4BAAAA,GAAAA,EAAKR,WAAWS;;;AAGzD,kCAAAN,GAAA,CAACU,WAAWK,KAAK,EAAA;AAAElB,wBAAAA,QAAAA,EAAAA,UAAAA,CAAWS,QAAQ,IAAI;;oBACzCR,QAAY,kBAAAE,GAAA,CAACU,WAAWM,MAAM,EAAA;wBAACC,OAASnB,EAAAA;;;;;;AAKnD,CAAA;AAEA;;qGAIA,MAAMoB,iBAAiB,CAAC,EACtBrB,UAAU,EACVC,QAAQ,EACR,GAAGC,KAC4D,EAAA,GAAA;IAC/D,qBACEU,IAAA,CAACC,WAAWR,IAAI,EAAA;AAAE,QAAA,GAAGH,KAAK;;AACxB,0BAAAC,GAAA,CAACU,WAAWC,OAAO,EAAA;0BAChBd,UAAWe,CAAAA,MAAM,KAAK,SAAA,iBAAYZ,GAACa,CAAAA,MAAAA,EAAAA;oBAAOC,KAAK,EAAA;mCAAMd,GAACmB,CAAAA,MAAAA,EAAAA;oBAAOC,MAAQ,EAAA,EAAA;oBAAIC,KAAO,EAAA;;;AAEnF,0BAAArB,GAAA,CAACU,WAAWK,KAAK,EAAA;AAAElB,gBAAAA,QAAAA,EAAAA,UAAAA,CAAWS,QAAQ,IAAI;;YACzCR,QAAY,kBAAAE,GAAA,CAACU,WAAWM,MAAM,EAAA;gBAACC,OAASnB,EAAAA;;;;AAG/C,CAAA;AAEA;;qGAIawB,MAAAA,iBAAAA,GAAoB,CAAC,EAChCzB,UAAU,EACVC,QAAQ,EACR,GAAGC,KAC4D,EAAA,GAAA;AAC/D,IAAA,IAAIF,UAAW0B,CAAAA,SAAS,EAAEC,UAAAA,CAAW,QAAW,CAAA,EAAA;AAC9C,QAAA,qBAAOxB,GAACJ,CAAAA,eAAAA,EAAAA;YAAgBC,UAAYA,EAAAA,UAAAA;YAAYC,QAAUA,EAAAA,QAAAA;AAAW,YAAA,GAAGC;;AAC1E;IAEA,IAAIF,UAAAA,CAAW0B,SAAS,KAAKE,qBAAuB,EAAA;AAClD,QAAA,qBAAOzB,GAACkB,CAAAA,cAAAA,EAAAA;YAAerB,UAAYA,EAAAA,UAAAA;YAAYC,QAAUA,EAAAA,QAAAA;AAAW,YAAA,GAAGC;;AACzE;IAEA,OAAO,IAAA;AACT;;;;"}
@@ -0,0 +1,100 @@
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 Icons = require('@strapi/icons');
7
+ var styledComponents = require('styled-components');
8
+
9
+ const AttachmentContext = /*#__PURE__*/ React.createContext({
10
+ error: null
11
+ });
12
+ const useAttachmentContext = ()=>React.useContext(AttachmentContext);
13
+ const StyledRoot = styledComponents.styled(designSystem.Box)`
14
+ &:hover {
15
+ cursor: pointer;
16
+ background: ${({ theme })=>theme.colors.neutral100};
17
+ }
18
+ `;
19
+ // TODO: How to make this a button instead?
20
+ const Root = ({ children, error = null, minWidth, maxWidth })=>{
21
+ return /*#__PURE__*/ jsxRuntime.jsx(AttachmentContext.Provider, {
22
+ value: {
23
+ error
24
+ },
25
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
26
+ direction: "column",
27
+ alignItems: "flex-start",
28
+ gap: 2,
29
+ minWidth: minWidth,
30
+ maxWidth: maxWidth,
31
+ children: [
32
+ /*#__PURE__*/ jsxRuntime.jsx(StyledRoot, {
33
+ background: "neutral0",
34
+ hasRadius: true,
35
+ borderColor: "neutral200",
36
+ borderStyle: "solid",
37
+ borderWidth: "1px",
38
+ padding: 2,
39
+ width: "100%",
40
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
41
+ gap: 2,
42
+ children: children
43
+ })
44
+ }),
45
+ error && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
46
+ variant: "pi",
47
+ textColor: "danger500",
48
+ children: error
49
+ })
50
+ ]
51
+ })
52
+ });
53
+ };
54
+ const Preview = ({ children })=>{
55
+ const { error } = useAttachmentContext();
56
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
57
+ alignItems: "center",
58
+ justifyContent: "center",
59
+ children: error ? /*#__PURE__*/ jsxRuntime.jsx(Icons.WarningCircle, {
60
+ fill: "danger500"
61
+ }) : children
62
+ });
63
+ };
64
+ const Title = ({ children })=>{
65
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
66
+ grow: 1,
67
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
68
+ variant: "omega",
69
+ ellipsis: true,
70
+ style: {
71
+ userSelect: 'none',
72
+ maxWidth: '100px'
73
+ },
74
+ children: children
75
+ })
76
+ });
77
+ };
78
+ const Remove = ({ onClick })=>{
79
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
80
+ alignItems: "center",
81
+ justifyContent: "center",
82
+ shrink: 0,
83
+ onClick: onClick,
84
+ children: /*#__PURE__*/ jsxRuntime.jsx(Icons.Trash, {
85
+ fill: "neutral500"
86
+ })
87
+ });
88
+ };
89
+ /* -------------------------------------------------------------------------------------------------
90
+ * Attachment Compound
91
+ * -----------------------------------------------------------------------------------------------*/ const Attachment = {
92
+ Root,
93
+ Preview,
94
+ Title,
95
+ Remove
96
+ };
97
+
98
+ exports.Attachment = Attachment;
99
+ exports.useAttachmentContext = useAttachmentContext;
100
+ //# sourceMappingURL=Attachment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Attachment.js","sources":["../../../../../../../admin/src/components/AIChat/components/Attachments/components/Attachment.tsx"],"sourcesContent":["import { ReactNode, createContext, useContext } from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { Trash, WarningCircle } from '@strapi/icons';\nimport { styled } from 'styled-components';\n\n/* -------------------------------------------------------------------------------------------------\n * Attachment Context\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AttachmentContextValue {\n error?: string | null;\n}\n\nconst AttachmentContext = createContext<AttachmentContextValue>({ error: null });\n\nconst useAttachmentContext = () => useContext(AttachmentContext);\n\n/* -------------------------------------------------------------------------------------------------\n * Attachment Root\n * -----------------------------------------------------------------------------------------------*/\n\nexport interface AttachmentRootProps {\n children: ReactNode;\n error?: string | null;\n minWidth?: string;\n maxWidth?: string;\n}\n\nconst StyledRoot = styled(Box)`\n &:hover {\n cursor: pointer;\n background: ${({ theme }) => theme.colors.neutral100};\n }\n`;\n\n// TODO: How to make this a button instead?\nconst Root = ({ children, error = null, minWidth, maxWidth }: AttachmentRootProps) => {\n return (\n <AttachmentContext.Provider value={{ error }}>\n <Flex\n direction=\"column\"\n alignItems=\"flex-start\"\n gap={2}\n minWidth={minWidth}\n maxWidth={maxWidth}\n >\n <StyledRoot\n background=\"neutral0\"\n hasRadius\n borderColor=\"neutral200\"\n borderStyle=\"solid\"\n borderWidth=\"1px\"\n padding={2}\n width=\"100%\"\n >\n <Flex gap={2}>{children}</Flex>\n </StyledRoot>\n {error && (\n <Typography variant=\"pi\" textColor=\"danger500\">\n {error}\n </Typography>\n )}\n </Flex>\n </AttachmentContext.Provider>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Attachment Preview\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AttachmentPreviewProps {\n children: ReactNode;\n}\n\nconst Preview = ({ children }: AttachmentPreviewProps) => {\n const { error } = useAttachmentContext();\n\n return (\n <Flex alignItems=\"center\" justifyContent=\"center\">\n {error ? <WarningCircle fill=\"danger500\" /> : children}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Attachment Title\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AttachmentTitleProps {\n children: ReactNode;\n}\n\nconst Title = ({ children }: AttachmentTitleProps) => {\n return (\n <Box grow={1}>\n <Typography variant=\"omega\" ellipsis style={{ userSelect: 'none', maxWidth: '100px' }}>\n {children}\n </Typography>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Attachment Remove\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AttachmentRemoveProps {\n onClick: () => void;\n}\n\nconst Remove = ({ onClick }: AttachmentRemoveProps) => {\n return (\n <Flex alignItems=\"center\" justifyContent=\"center\" shrink={0} onClick={onClick}>\n <Trash fill=\"neutral500\" />\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Attachment Compound\n * -----------------------------------------------------------------------------------------------*/\n\nexport const Attachment = {\n Root,\n Preview,\n Title,\n Remove,\n};\n\nexport { useAttachmentContext };\n"],"names":["AttachmentContext","createContext","error","useAttachmentContext","useContext","StyledRoot","styled","Box","theme","colors","neutral100","Root","children","minWidth","maxWidth","_jsx","Provider","value","_jsxs","Flex","direction","alignItems","gap","background","hasRadius","borderColor","borderStyle","borderWidth","padding","width","Typography","variant","textColor","Preview","justifyContent","WarningCircle","fill","Title","grow","ellipsis","style","userSelect","Remove","onClick","shrink","Trash","Attachment"],"mappings":";;;;;;;;AAcA,MAAMA,kCAAoBC,mBAAsC,CAAA;IAAEC,KAAO,EAAA;AAAK,CAAA,CAAA;AAExEC,MAAAA,oBAAAA,GAAuB,IAAMC,gBAAWJ,CAAAA,iBAAAA;AAa9C,MAAMK,UAAAA,GAAaC,uBAAOC,CAAAA,gBAAAA,CAAI;;;gBAGd,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,UAAU,CAAC;;AAEzD,CAAC;AAED;AACA,MAAMC,IAAAA,GAAO,CAAC,EAAEC,QAAQ,EAAEV,KAAQ,GAAA,IAAI,EAAEW,QAAQ,EAAEC,QAAQ,EAAuB,GAAA;IAC/E,qBACEC,cAAA,CAACf,kBAAkBgB,QAAQ,EAAA;QAACC,KAAO,EAAA;AAAEf,YAAAA;AAAM,SAAA;AACzC,QAAA,QAAA,gBAAAgB,eAACC,CAAAA,iBAAAA,EAAAA;YACCC,SAAU,EAAA,QAAA;YACVC,UAAW,EAAA,YAAA;YACXC,GAAK,EAAA,CAAA;YACLT,QAAUA,EAAAA,QAAAA;YACVC,QAAUA,EAAAA,QAAAA;;8BAEVC,cAACV,CAAAA,UAAAA,EAAAA;oBACCkB,UAAW,EAAA,UAAA;oBACXC,SAAS,EAAA,IAAA;oBACTC,WAAY,EAAA,YAAA;oBACZC,WAAY,EAAA,OAAA;oBACZC,WAAY,EAAA,KAAA;oBACZC,OAAS,EAAA,CAAA;oBACTC,KAAM,EAAA,MAAA;AAEN,oBAAA,QAAA,gBAAAd,cAACI,CAAAA,iBAAAA,EAAAA;wBAAKG,GAAK,EAAA,CAAA;AAAIV,wBAAAA,QAAAA,EAAAA;;;AAEhBV,gBAAAA,KAAAA,kBACCa,cAACe,CAAAA,uBAAAA,EAAAA;oBAAWC,OAAQ,EAAA,IAAA;oBAAKC,SAAU,EAAA,WAAA;AAChC9B,oBAAAA,QAAAA,EAAAA;;;;;AAMb,CAAA;AAUA,MAAM+B,OAAU,GAAA,CAAC,EAAErB,QAAQ,EAA0B,GAAA;IACnD,MAAM,EAAEV,KAAK,EAAE,GAAGC,oBAAAA,EAAAA;AAElB,IAAA,qBACEY,cAACI,CAAAA,iBAAAA,EAAAA;QAAKE,UAAW,EAAA,QAAA;QAASa,cAAe,EAAA,QAAA;AACtChC,QAAAA,QAAAA,EAAAA,KAAAA,iBAAQa,cAACoB,CAAAA,mBAAAA,EAAAA;YAAcC,IAAK,EAAA;AAAiBxB,SAAAA,CAAAA,GAAAA;;AAGpD,CAAA;AAUA,MAAMyB,KAAQ,GAAA,CAAC,EAAEzB,QAAQ,EAAwB,GAAA;AAC/C,IAAA,qBACEG,cAACR,CAAAA,gBAAAA,EAAAA;QAAI+B,IAAM,EAAA,CAAA;AACT,QAAA,QAAA,gBAAAvB,cAACe,CAAAA,uBAAAA,EAAAA;YAAWC,OAAQ,EAAA,OAAA;YAAQQ,QAAQ,EAAA,IAAA;YAACC,KAAO,EAAA;gBAAEC,UAAY,EAAA,MAAA;gBAAQ3B,QAAU,EAAA;AAAQ,aAAA;AACjFF,YAAAA,QAAAA,EAAAA;;;AAIT,CAAA;AAUA,MAAM8B,MAAS,GAAA,CAAC,EAAEC,OAAO,EAAyB,GAAA;AAChD,IAAA,qBACE5B,cAACI,CAAAA,iBAAAA,EAAAA;QAAKE,UAAW,EAAA,QAAA;QAASa,cAAe,EAAA,QAAA;QAASU,MAAQ,EAAA,CAAA;QAAGD,OAASA,EAAAA,OAAAA;AACpE,QAAA,QAAA,gBAAA5B,cAAC8B,CAAAA,WAAAA,EAAAA;YAAMT,IAAK,EAAA;;;AAGlB,CAAA;AAEA;;2GAIaU,UAAa,GAAA;AACxBnC,IAAAA,IAAAA;AACAsB,IAAAA,OAAAA;AACAI,IAAAA,KAAAA;AACAK,IAAAA;AACF;;;;;"}
@@ -0,0 +1,97 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { createContext, useContext } from 'react';
3
+ import { Box, Flex, Typography } from '@strapi/design-system';
4
+ import { WarningCircle, Trash } from '@strapi/icons';
5
+ import { styled } from 'styled-components';
6
+
7
+ const AttachmentContext = /*#__PURE__*/ createContext({
8
+ error: null
9
+ });
10
+ const useAttachmentContext = ()=>useContext(AttachmentContext);
11
+ const StyledRoot = styled(Box)`
12
+ &:hover {
13
+ cursor: pointer;
14
+ background: ${({ theme })=>theme.colors.neutral100};
15
+ }
16
+ `;
17
+ // TODO: How to make this a button instead?
18
+ const Root = ({ children, error = null, minWidth, maxWidth })=>{
19
+ return /*#__PURE__*/ jsx(AttachmentContext.Provider, {
20
+ value: {
21
+ error
22
+ },
23
+ children: /*#__PURE__*/ jsxs(Flex, {
24
+ direction: "column",
25
+ alignItems: "flex-start",
26
+ gap: 2,
27
+ minWidth: minWidth,
28
+ maxWidth: maxWidth,
29
+ children: [
30
+ /*#__PURE__*/ jsx(StyledRoot, {
31
+ background: "neutral0",
32
+ hasRadius: true,
33
+ borderColor: "neutral200",
34
+ borderStyle: "solid",
35
+ borderWidth: "1px",
36
+ padding: 2,
37
+ width: "100%",
38
+ children: /*#__PURE__*/ jsx(Flex, {
39
+ gap: 2,
40
+ children: children
41
+ })
42
+ }),
43
+ error && /*#__PURE__*/ jsx(Typography, {
44
+ variant: "pi",
45
+ textColor: "danger500",
46
+ children: error
47
+ })
48
+ ]
49
+ })
50
+ });
51
+ };
52
+ const Preview = ({ children })=>{
53
+ const { error } = useAttachmentContext();
54
+ return /*#__PURE__*/ jsx(Flex, {
55
+ alignItems: "center",
56
+ justifyContent: "center",
57
+ children: error ? /*#__PURE__*/ jsx(WarningCircle, {
58
+ fill: "danger500"
59
+ }) : children
60
+ });
61
+ };
62
+ const Title = ({ children })=>{
63
+ return /*#__PURE__*/ jsx(Box, {
64
+ grow: 1,
65
+ children: /*#__PURE__*/ jsx(Typography, {
66
+ variant: "omega",
67
+ ellipsis: true,
68
+ style: {
69
+ userSelect: 'none',
70
+ maxWidth: '100px'
71
+ },
72
+ children: children
73
+ })
74
+ });
75
+ };
76
+ const Remove = ({ onClick })=>{
77
+ return /*#__PURE__*/ jsx(Flex, {
78
+ alignItems: "center",
79
+ justifyContent: "center",
80
+ shrink: 0,
81
+ onClick: onClick,
82
+ children: /*#__PURE__*/ jsx(Trash, {
83
+ fill: "neutral500"
84
+ })
85
+ });
86
+ };
87
+ /* -------------------------------------------------------------------------------------------------
88
+ * Attachment Compound
89
+ * -----------------------------------------------------------------------------------------------*/ const Attachment = {
90
+ Root,
91
+ Preview,
92
+ Title,
93
+ Remove
94
+ };
95
+
96
+ export { Attachment, useAttachmentContext };
97
+ //# sourceMappingURL=Attachment.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Attachment.mjs","sources":["../../../../../../../admin/src/components/AIChat/components/Attachments/components/Attachment.tsx"],"sourcesContent":["import { ReactNode, createContext, useContext } from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { Trash, WarningCircle } from '@strapi/icons';\nimport { styled } from 'styled-components';\n\n/* -------------------------------------------------------------------------------------------------\n * Attachment Context\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AttachmentContextValue {\n error?: string | null;\n}\n\nconst AttachmentContext = createContext<AttachmentContextValue>({ error: null });\n\nconst useAttachmentContext = () => useContext(AttachmentContext);\n\n/* -------------------------------------------------------------------------------------------------\n * Attachment Root\n * -----------------------------------------------------------------------------------------------*/\n\nexport interface AttachmentRootProps {\n children: ReactNode;\n error?: string | null;\n minWidth?: string;\n maxWidth?: string;\n}\n\nconst StyledRoot = styled(Box)`\n &:hover {\n cursor: pointer;\n background: ${({ theme }) => theme.colors.neutral100};\n }\n`;\n\n// TODO: How to make this a button instead?\nconst Root = ({ children, error = null, minWidth, maxWidth }: AttachmentRootProps) => {\n return (\n <AttachmentContext.Provider value={{ error }}>\n <Flex\n direction=\"column\"\n alignItems=\"flex-start\"\n gap={2}\n minWidth={minWidth}\n maxWidth={maxWidth}\n >\n <StyledRoot\n background=\"neutral0\"\n hasRadius\n borderColor=\"neutral200\"\n borderStyle=\"solid\"\n borderWidth=\"1px\"\n padding={2}\n width=\"100%\"\n >\n <Flex gap={2}>{children}</Flex>\n </StyledRoot>\n {error && (\n <Typography variant=\"pi\" textColor=\"danger500\">\n {error}\n </Typography>\n )}\n </Flex>\n </AttachmentContext.Provider>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Attachment Preview\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AttachmentPreviewProps {\n children: ReactNode;\n}\n\nconst Preview = ({ children }: AttachmentPreviewProps) => {\n const { error } = useAttachmentContext();\n\n return (\n <Flex alignItems=\"center\" justifyContent=\"center\">\n {error ? <WarningCircle fill=\"danger500\" /> : children}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Attachment Title\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AttachmentTitleProps {\n children: ReactNode;\n}\n\nconst Title = ({ children }: AttachmentTitleProps) => {\n return (\n <Box grow={1}>\n <Typography variant=\"omega\" ellipsis style={{ userSelect: 'none', maxWidth: '100px' }}>\n {children}\n </Typography>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Attachment Remove\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AttachmentRemoveProps {\n onClick: () => void;\n}\n\nconst Remove = ({ onClick }: AttachmentRemoveProps) => {\n return (\n <Flex alignItems=\"center\" justifyContent=\"center\" shrink={0} onClick={onClick}>\n <Trash fill=\"neutral500\" />\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Attachment Compound\n * -----------------------------------------------------------------------------------------------*/\n\nexport const Attachment = {\n Root,\n Preview,\n Title,\n Remove,\n};\n\nexport { useAttachmentContext };\n"],"names":["AttachmentContext","createContext","error","useAttachmentContext","useContext","StyledRoot","styled","Box","theme","colors","neutral100","Root","children","minWidth","maxWidth","_jsx","Provider","value","_jsxs","Flex","direction","alignItems","gap","background","hasRadius","borderColor","borderStyle","borderWidth","padding","width","Typography","variant","textColor","Preview","justifyContent","WarningCircle","fill","Title","grow","ellipsis","style","userSelect","Remove","onClick","shrink","Trash","Attachment"],"mappings":";;;;;;AAcA,MAAMA,kCAAoBC,aAAsC,CAAA;IAAEC,KAAO,EAAA;AAAK,CAAA,CAAA;AAExEC,MAAAA,oBAAAA,GAAuB,IAAMC,UAAWJ,CAAAA,iBAAAA;AAa9C,MAAMK,UAAAA,GAAaC,MAAOC,CAAAA,GAAAA,CAAI;;;gBAGd,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,UAAU,CAAC;;AAEzD,CAAC;AAED;AACA,MAAMC,IAAAA,GAAO,CAAC,EAAEC,QAAQ,EAAEV,KAAQ,GAAA,IAAI,EAAEW,QAAQ,EAAEC,QAAQ,EAAuB,GAAA;IAC/E,qBACEC,GAAA,CAACf,kBAAkBgB,QAAQ,EAAA;QAACC,KAAO,EAAA;AAAEf,YAAAA;AAAM,SAAA;AACzC,QAAA,QAAA,gBAAAgB,IAACC,CAAAA,IAAAA,EAAAA;YACCC,SAAU,EAAA,QAAA;YACVC,UAAW,EAAA,YAAA;YACXC,GAAK,EAAA,CAAA;YACLT,QAAUA,EAAAA,QAAAA;YACVC,QAAUA,EAAAA,QAAAA;;8BAEVC,GAACV,CAAAA,UAAAA,EAAAA;oBACCkB,UAAW,EAAA,UAAA;oBACXC,SAAS,EAAA,IAAA;oBACTC,WAAY,EAAA,YAAA;oBACZC,WAAY,EAAA,OAAA;oBACZC,WAAY,EAAA,KAAA;oBACZC,OAAS,EAAA,CAAA;oBACTC,KAAM,EAAA,MAAA;AAEN,oBAAA,QAAA,gBAAAd,GAACI,CAAAA,IAAAA,EAAAA;wBAAKG,GAAK,EAAA,CAAA;AAAIV,wBAAAA,QAAAA,EAAAA;;;AAEhBV,gBAAAA,KAAAA,kBACCa,GAACe,CAAAA,UAAAA,EAAAA;oBAAWC,OAAQ,EAAA,IAAA;oBAAKC,SAAU,EAAA,WAAA;AAChC9B,oBAAAA,QAAAA,EAAAA;;;;;AAMb,CAAA;AAUA,MAAM+B,OAAU,GAAA,CAAC,EAAErB,QAAQ,EAA0B,GAAA;IACnD,MAAM,EAAEV,KAAK,EAAE,GAAGC,oBAAAA,EAAAA;AAElB,IAAA,qBACEY,GAACI,CAAAA,IAAAA,EAAAA;QAAKE,UAAW,EAAA,QAAA;QAASa,cAAe,EAAA,QAAA;AACtChC,QAAAA,QAAAA,EAAAA,KAAAA,iBAAQa,GAACoB,CAAAA,aAAAA,EAAAA;YAAcC,IAAK,EAAA;AAAiBxB,SAAAA,CAAAA,GAAAA;;AAGpD,CAAA;AAUA,MAAMyB,KAAQ,GAAA,CAAC,EAAEzB,QAAQ,EAAwB,GAAA;AAC/C,IAAA,qBACEG,GAACR,CAAAA,GAAAA,EAAAA;QAAI+B,IAAM,EAAA,CAAA;AACT,QAAA,QAAA,gBAAAvB,GAACe,CAAAA,UAAAA,EAAAA;YAAWC,OAAQ,EAAA,OAAA;YAAQQ,QAAQ,EAAA,IAAA;YAACC,KAAO,EAAA;gBAAEC,UAAY,EAAA,MAAA;gBAAQ3B,QAAU,EAAA;AAAQ,aAAA;AACjFF,YAAAA,QAAAA,EAAAA;;;AAIT,CAAA;AAUA,MAAM8B,MAAS,GAAA,CAAC,EAAEC,OAAO,EAAyB,GAAA;AAChD,IAAA,qBACE5B,GAACI,CAAAA,IAAAA,EAAAA;QAAKE,UAAW,EAAA,QAAA;QAASa,cAAe,EAAA,QAAA;QAASU,MAAQ,EAAA,CAAA;QAAGD,OAASA,EAAAA,OAAAA;AACpE,QAAA,QAAA,gBAAA5B,GAAC8B,CAAAA,KAAAA,EAAAA;YAAMT,IAAK,EAAA;;;AAGlB,CAAA;AAEA;;2GAIaU,UAAa,GAAA;AACxBnC,IAAAA,IAAAA;AACAsB,IAAAA,OAAAA;AACAI,IAAAA,KAAAA;AACAK,IAAAA;AACF;;;;"}
@@ -0,0 +1,127 @@
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 Icons = require('@strapi/icons');
7
+
8
+ const blobToBase64 = (blob)=>{
9
+ return new Promise((resolve, reject)=>{
10
+ const reader = new FileReader();
11
+ reader.onloadend = ()=>resolve(reader.result);
12
+ reader.onerror = reject;
13
+ reader.readAsDataURL(blob);
14
+ });
15
+ };
16
+ // Check if a string is already a data URL (base64 image)
17
+ const isBase64Image = (src)=>{
18
+ return src.startsWith('data:image/');
19
+ };
20
+ const Base64Img = ({ src, alt, inferSize = false, onLoad: externalOnLoad, onError: externalOnError, ...rest })=>{
21
+ const [base64Src, setBase64Src] = React.useState(null);
22
+ const [dimensions, setDimensions] = React.useState({});
23
+ const [isLoading, setIsLoading] = React.useState(true);
24
+ const [hasError, setHasError] = React.useState(false);
25
+ React.useEffect(()=>{
26
+ const fetchAndConvert = async ()=>{
27
+ setIsLoading(true);
28
+ setHasError(false);
29
+ // If src is already a base64 string, use it directly
30
+ if (isBase64Image(src)) {
31
+ setBase64Src(src);
32
+ setIsLoading(false);
33
+ return;
34
+ }
35
+ try {
36
+ // TODO: Find a better way of doing this
37
+ // 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
38
+ const url = new URL(src);
39
+ const allowedDomains = [
40
+ 'strapi-ai-staging.s3.us-east-1.amazonaws.com',
41
+ 'strapi-ai-production.s3.us-east-1.amazonaws.com'
42
+ ];
43
+ if (allowedDomains.includes(url.hostname)) {
44
+ setBase64Src(src);
45
+ setIsLoading(false);
46
+ return;
47
+ }
48
+ } catch (e) {
49
+ // If URL parsing fails, continue with the fetch attempt
50
+ }
51
+ try {
52
+ // Only fetch if it's a URL and not already a base64 string
53
+ const response = await fetch(src);
54
+ if (!response.ok) {
55
+ throw new Error(`HTTP error! status: ${response.status}`);
56
+ }
57
+ const blob = await response.blob();
58
+ const dataUrl = await blobToBase64(blob);
59
+ setBase64Src(dataUrl);
60
+ setIsLoading(false);
61
+ } catch (error) {
62
+ console.error('Error converting image to base64:', error);
63
+ setHasError(true);
64
+ setIsLoading(false);
65
+ }
66
+ };
67
+ fetchAndConvert();
68
+ }, [
69
+ src,
70
+ externalOnError
71
+ ]);
72
+ const handleImageLoad = (e)=>{
73
+ if (inferSize) {
74
+ const { naturalWidth, naturalHeight } = e.currentTarget;
75
+ setDimensions({
76
+ width: naturalWidth,
77
+ height: naturalHeight
78
+ });
79
+ }
80
+ if (externalOnLoad) {
81
+ externalOnLoad(e);
82
+ }
83
+ };
84
+ if (isLoading) {
85
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
86
+ direction: "column",
87
+ gap: 2,
88
+ alignItems: "center",
89
+ width: "100%",
90
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Loader, {
91
+ small: true
92
+ })
93
+ });
94
+ }
95
+ if (hasError) {
96
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
97
+ direction: "column",
98
+ gap: 2,
99
+ alignItems: "center",
100
+ width: "100%",
101
+ children: /*#__PURE__*/ jsxRuntime.jsx(Icons.CrossCircle, {
102
+ width: 24,
103
+ height: 24,
104
+ fill: "danger600"
105
+ })
106
+ });
107
+ }
108
+ // Build props for the img element
109
+ const imgProps = {
110
+ src: base64Src || '',
111
+ alt,
112
+ onLoad: handleImageLoad,
113
+ ...rest
114
+ };
115
+ // If inferSize is enabled and width/height weren't explicitly provided,
116
+ // merge the inferred dimensions into the props once available.
117
+ if (inferSize && !rest.width && !rest.height && dimensions.width && dimensions.height) {
118
+ imgProps.width = dimensions.width;
119
+ imgProps.height = dimensions.height;
120
+ }
121
+ return base64Src ? /*#__PURE__*/ jsxRuntime.jsx("img", {
122
+ ...imgProps
123
+ }) : null;
124
+ };
125
+
126
+ exports.Base64Img = Base64Img;
127
+ //# sourceMappingURL=Base64Image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Base64Image.js","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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"}