@ai-stack/payloadcms 3.76.0-beta.1 → 3.76.0-beta.3

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 (341) hide show
  1. package/dist/ai/core/generateObject.js +1 -4
  2. package/dist/ai/core/generateObject.js.map +1 -1
  3. package/dist/ai/core/generateText.js +1 -5
  4. package/dist/ai/core/generateText.js.map +1 -1
  5. package/dist/ai/core/media/generateMedia.js +1 -4
  6. package/dist/ai/core/media/generateMedia.js.map +1 -1
  7. package/dist/ai/core/media/image/generateImage.js +4 -14
  8. package/dist/ai/core/media/image/generateImage.js.map +1 -1
  9. package/dist/ai/core/media/image/handlers/multimodal.js +7 -24
  10. package/dist/ai/core/media/image/handlers/multimodal.js.map +1 -1
  11. package/dist/ai/core/media/image/handlers/standard.js +7 -2
  12. package/dist/ai/core/media/image/handlers/standard.js.map +1 -1
  13. package/dist/ai/core/media/speech/generateSpeech.js +2 -3
  14. package/dist/ai/core/media/speech/generateSpeech.js.map +1 -1
  15. package/dist/ai/core/media/types.d.ts +2 -3
  16. package/dist/ai/core/media/types.js.map +1 -1
  17. package/dist/ai/core/streamObject.js +0 -3
  18. package/dist/ai/core/streamObject.js.map +1 -1
  19. package/dist/ai/core/streamText.js +1 -4
  20. package/dist/ai/core/streamText.js.map +1 -1
  21. package/dist/ai/core/types.d.ts +2 -2
  22. package/dist/ai/core/types.js.map +1 -1
  23. package/dist/ai/providers/blocks/anthropic.js +2 -44
  24. package/dist/ai/providers/blocks/anthropic.js.map +1 -1
  25. package/dist/ai/providers/blocks/elevenlabs.js +4 -109
  26. package/dist/ai/providers/blocks/elevenlabs.js.map +1 -1
  27. package/dist/ai/providers/blocks/fal.js +2 -120
  28. package/dist/ai/providers/blocks/fal.js.map +1 -1
  29. package/dist/ai/providers/blocks/google.js +6 -240
  30. package/dist/ai/providers/blocks/google.js.map +1 -1
  31. package/dist/ai/providers/blocks/openai-compatible.js +2 -146
  32. package/dist/ai/providers/blocks/openai-compatible.js.map +1 -1
  33. package/dist/ai/providers/blocks/openai.js +2 -202
  34. package/dist/ai/providers/blocks/openai.js.map +1 -1
  35. package/dist/ai/providers/blocks/xai.js +2 -55
  36. package/dist/ai/providers/blocks/xai.js.map +1 -1
  37. package/dist/ai/providers/index.d.ts +1 -1
  38. package/dist/ai/providers/index.js +0 -2
  39. package/dist/ai/providers/index.js.map +1 -1
  40. package/dist/ai/providers/registry.d.ts +24 -28
  41. package/dist/ai/providers/registry.js +184 -138
  42. package/dist/ai/providers/registry.js.map +1 -1
  43. package/dist/ai/providers/types.d.ts +12 -33
  44. package/dist/ai/providers/types.js +0 -1
  45. package/dist/ai/providers/types.js.map +1 -1
  46. package/dist/ai/schemas/lexicalJsonSchema.js +1 -1
  47. package/dist/ai/schemas/lexicalJsonSchema.js.map +1 -1
  48. package/dist/ai/utilities/filterEditorSchemaByNodes.js.map +1 -0
  49. package/dist/ai/utilities/generateFileNameByPrompt.js.map +1 -0
  50. package/dist/ai/utilities/isObjectSchema.js.map +1 -0
  51. package/dist/ai/{utils → utilities}/nodeToSchemaMap.js +6 -6
  52. package/dist/ai/utilities/nodeToSchemaMap.js.map +1 -0
  53. package/dist/ai/{prompts.d.ts → utilities/prompts.d.ts} +1 -1
  54. package/dist/ai/utilities/prompts.js.map +1 -0
  55. package/dist/ai/utilities/systemGenerate.js.map +1 -0
  56. package/dist/collections/AIJobs.js +3 -12
  57. package/dist/collections/AIJobs.js.map +1 -1
  58. package/dist/collections/AIProviders.js +56 -29
  59. package/dist/collections/AIProviders.js.map +1 -1
  60. package/dist/collections/Instructions.js +91 -59
  61. package/dist/collections/Instructions.js.map +1 -1
  62. package/dist/collections/shared.d.ts +30 -0
  63. package/dist/collections/shared.js +15 -0
  64. package/dist/collections/shared.js.map +1 -0
  65. package/dist/endpoints/fetchFields.js +14 -6
  66. package/dist/endpoints/fetchFields.js.map +1 -1
  67. package/dist/endpoints/fetchVoices.js +1 -1
  68. package/dist/endpoints/fetchVoices.js.map +1 -1
  69. package/dist/endpoints/generate.d.ts +7 -0
  70. package/dist/endpoints/generate.js +268 -0
  71. package/dist/endpoints/generate.js.map +1 -0
  72. package/dist/endpoints/index.js +9 -639
  73. package/dist/endpoints/index.js.map +1 -1
  74. package/dist/endpoints/promptMentions.d.ts +2 -0
  75. package/dist/endpoints/promptMentions.js +166 -0
  76. package/dist/endpoints/promptMentions.js.map +1 -0
  77. package/dist/endpoints/upload.d.ts +7 -0
  78. package/dist/endpoints/upload.js +294 -0
  79. package/dist/endpoints/upload.js.map +1 -0
  80. package/dist/endpoints/videogenWebhook.d.ts +7 -0
  81. package/dist/endpoints/videogenWebhook.js +132 -0
  82. package/dist/endpoints/videogenWebhook.js.map +1 -0
  83. package/dist/exports/client.d.ts +2 -1
  84. package/dist/exports/client.js +2 -1
  85. package/dist/exports/client.js.map +1 -1
  86. package/dist/exports/fields.d.ts +2 -1
  87. package/dist/exports/fields.js +2 -1
  88. package/dist/exports/fields.js.map +1 -1
  89. package/dist/fields/ArrayComposeField/ArrayComposeField.js +1 -1
  90. package/dist/fields/ArrayComposeField/ArrayComposeField.js.map +1 -1
  91. package/dist/fields/ArrayComposeField/ArrayComposeField.jsx +1 -1
  92. package/dist/fields/ComposeField/ComposeField.d.ts +1 -0
  93. package/dist/fields/ComposeField/ComposeField.js +18 -8
  94. package/dist/fields/ComposeField/ComposeField.js.map +1 -1
  95. package/dist/fields/ComposeField/ComposeField.jsx +12 -7
  96. package/dist/fields/LexicalEditor/feature.server.js +1 -1
  97. package/dist/fields/LexicalEditor/feature.server.js.map +1 -1
  98. package/dist/fields/PromptEditorField/feature.client.d.ts +1 -0
  99. package/dist/fields/PromptEditorField/feature.client.js +173 -0
  100. package/dist/fields/PromptEditorField/feature.client.js.map +1 -0
  101. package/dist/fields/PromptEditorField/feature.client.jsx +148 -0
  102. package/dist/fields/PromptEditorField/feature.server.d.ts +1 -0
  103. package/dist/fields/PromptEditorField/feature.server.js +30 -0
  104. package/dist/fields/PromptEditorField/feature.server.js.map +1 -0
  105. package/dist/fields/PromptField.d.ts +4 -0
  106. package/dist/fields/PromptField.js +18 -0
  107. package/dist/fields/PromptField.js.map +1 -0
  108. package/dist/fields/SelectField/SelectField.js +0 -1
  109. package/dist/fields/SelectField/SelectField.js.map +1 -1
  110. package/dist/fields/SelectField/SelectField.jsx +0 -1
  111. package/dist/index.d.ts +4 -3
  112. package/dist/index.js +4 -2
  113. package/dist/index.js.map +1 -1
  114. package/dist/libraries/handlebars/helpers.js +2 -2
  115. package/dist/libraries/handlebars/helpers.js.map +1 -1
  116. package/dist/libraries/handlebars/replacePlaceholders.js +5 -1
  117. package/dist/libraries/handlebars/replacePlaceholders.js.map +1 -1
  118. package/dist/payload-ai.d.ts +5 -19
  119. package/dist/plugin.js +18 -21
  120. package/dist/plugin.js.map +1 -1
  121. package/dist/providers/FieldProvider/FieldProvider.js +11 -20
  122. package/dist/providers/FieldProvider/FieldProvider.js.map +1 -1
  123. package/dist/providers/FieldProvider/FieldProvider.jsx +8 -18
  124. package/dist/providers/InstructionsProvider/InstructionsProvider.js +5 -2
  125. package/dist/providers/InstructionsProvider/InstructionsProvider.js.map +1 -1
  126. package/dist/providers/InstructionsProvider/InstructionsProvider.jsx +5 -2
  127. package/dist/translations/de.json +47 -0
  128. package/dist/translations/en.json +45 -2
  129. package/dist/translations/es.json +45 -2
  130. package/dist/translations/fa.json +45 -2
  131. package/dist/translations/fr.json +46 -3
  132. package/dist/translations/hi.json +47 -0
  133. package/dist/translations/index.d.ts +88 -26
  134. package/dist/translations/index.js +18 -32
  135. package/dist/translations/index.js.map +1 -1
  136. package/dist/translations/ja.json +47 -0
  137. package/dist/translations/nb.json +47 -0
  138. package/dist/translations/nl.json +47 -0
  139. package/dist/translations/pl.json +45 -2
  140. package/dist/translations/pt.json +47 -0
  141. package/dist/translations/ru.json +45 -2
  142. package/dist/translations/th.json +47 -0
  143. package/dist/translations/translation-schema.json +184 -11
  144. package/dist/translations/uk.json +45 -2
  145. package/dist/translations/zh.json +47 -0
  146. package/dist/types.d.ts +64 -28
  147. package/dist/types.js.map +1 -1
  148. package/dist/ui/Compose/Compose.js +42 -79
  149. package/dist/ui/Compose/Compose.js.map +1 -1
  150. package/dist/ui/Compose/Compose.jsx +32 -86
  151. package/dist/ui/Compose/ComposePlaceholder.js +1 -1
  152. package/dist/ui/Compose/ComposePlaceholder.js.map +1 -1
  153. package/dist/ui/Compose/ComposePlaceholder.jsx +1 -1
  154. package/dist/ui/Compose/{compose.module.css → compose.module.scss} +3 -5
  155. package/dist/ui/Compose/hooks/menu/Item.d.ts +1 -1
  156. package/dist/ui/Compose/hooks/menu/Item.js +7 -3
  157. package/dist/ui/Compose/hooks/menu/Item.js.map +1 -1
  158. package/dist/ui/Compose/hooks/menu/Item.jsx +11 -5
  159. package/dist/ui/Compose/hooks/menu/TranslateMenu.js +15 -5
  160. package/dist/ui/Compose/hooks/menu/TranslateMenu.js.map +1 -1
  161. package/dist/ui/Compose/hooks/menu/TranslateMenu.jsx +11 -5
  162. package/dist/ui/Compose/hooks/menu/items.d.ts +8 -8
  163. package/dist/ui/Compose/hooks/menu/itemsMap.d.ts +2 -1
  164. package/dist/ui/Compose/hooks/menu/itemsMap.js.map +1 -1
  165. package/dist/ui/Compose/hooks/menu/types.d.ts +21 -0
  166. package/dist/ui/Compose/hooks/menu/types.js +3 -0
  167. package/dist/ui/Compose/hooks/menu/types.js.map +1 -0
  168. package/dist/ui/Compose/hooks/menu/useMenu.d.ts +2 -2
  169. package/dist/ui/Compose/hooks/menu/useMenu.js +45 -23
  170. package/dist/ui/Compose/hooks/menu/useMenu.js.map +1 -1
  171. package/dist/ui/Compose/hooks/menu/useMenu.jsx +43 -23
  172. package/dist/ui/Compose/hooks/mergeGeneratedValue.d.ts +14 -0
  173. package/dist/ui/Compose/hooks/mergeGeneratedValue.js +38 -0
  174. package/dist/ui/Compose/hooks/mergeGeneratedValue.js.map +1 -0
  175. package/dist/ui/Compose/hooks/useGenerate.js +37 -12
  176. package/dist/ui/Compose/hooks/useGenerate.js.map +1 -1
  177. package/dist/ui/Compose/hooks/useGenerateUpload.js +66 -24
  178. package/dist/ui/Compose/hooks/useGenerateUpload.js.map +1 -1
  179. package/dist/ui/Compose/hooks/useHistory.js +1 -1
  180. package/dist/ui/Compose/hooks/useHistory.js.map +1 -1
  181. package/dist/ui/Compose/hooks/useStreamingUpdate.js +4 -4
  182. package/dist/ui/Compose/hooks/useStreamingUpdate.js.map +1 -1
  183. package/dist/ui/ConfigDashboard/configDashboard.module.css +94 -0
  184. package/dist/ui/ConfigDashboard/index.js +27 -92
  185. package/dist/ui/ConfigDashboard/index.js.map +1 -1
  186. package/dist/ui/ConfigDashboard/index.jsx +24 -77
  187. package/dist/ui/DynamicModelSelect/index.js +6 -27
  188. package/dist/ui/DynamicModelSelect/index.js.map +1 -1
  189. package/dist/ui/DynamicModelSelect/index.jsx +6 -29
  190. package/dist/ui/DynamicProviderSelect/index.js +6 -27
  191. package/dist/ui/DynamicProviderSelect/index.js.map +1 -1
  192. package/dist/ui/DynamicProviderSelect/index.jsx +6 -29
  193. package/dist/ui/DynamicVoiceSelect/index.js +34 -83
  194. package/dist/ui/DynamicVoiceSelect/index.js.map +1 -1
  195. package/dist/ui/DynamicVoiceSelect/index.jsx +16 -53
  196. package/dist/ui/GlobalProviderOptions/index.d.ts +2 -0
  197. package/dist/ui/GlobalProviderOptions/index.js +118 -0
  198. package/dist/ui/GlobalProviderOptions/index.js.map +1 -0
  199. package/dist/ui/GlobalProviderOptions/index.jsx +60 -0
  200. package/dist/ui/Icons/Icons.js +1 -1
  201. package/dist/ui/Icons/Icons.js.map +1 -1
  202. package/dist/ui/Icons/Icons.jsx +1 -1
  203. package/dist/ui/Icons/LottieAnimation.js +1 -1
  204. package/dist/ui/Icons/LottieAnimation.js.map +1 -1
  205. package/dist/ui/Icons/LottieAnimation.jsx +1 -1
  206. package/dist/ui/InstructionProviderOptions/ProviderOptionsTree.d.ts +12 -0
  207. package/dist/ui/InstructionProviderOptions/ProviderOptionsTree.js +166 -0
  208. package/dist/ui/InstructionProviderOptions/ProviderOptionsTree.js.map +1 -0
  209. package/dist/ui/InstructionProviderOptions/ProviderOptionsTree.jsx +83 -0
  210. package/dist/ui/InstructionProviderOptions/index.d.ts +2 -0
  211. package/dist/ui/InstructionProviderOptions/index.js +157 -0
  212. package/dist/ui/InstructionProviderOptions/index.js.map +1 -0
  213. package/dist/ui/InstructionProviderOptions/index.jsx +92 -0
  214. package/dist/ui/VoicesFetcher/index.js.map +1 -1
  215. package/dist/ui/hooks/useAISettings.d.ts +26 -0
  216. package/dist/ui/hooks/useAISettings.js +73 -0
  217. package/dist/ui/hooks/useAISettings.js.map +1 -0
  218. package/dist/ui/providerOptions/updateProviderOptionsValue.d.ts +6 -0
  219. package/dist/ui/providerOptions/updateProviderOptionsValue.js +50 -0
  220. package/dist/ui/providerOptions/updateProviderOptionsValue.js.map +1 -0
  221. package/dist/ui/shared/handleSelectChange.d.ts +5 -0
  222. package/dist/ui/shared/handleSelectChange.js +12 -0
  223. package/dist/ui/shared/handleSelectChange.js.map +1 -0
  224. package/dist/ui/shared/types.d.ts +11 -0
  225. package/dist/ui/shared/types.js +5 -0
  226. package/dist/ui/shared/types.js.map +1 -0
  227. package/dist/utilities/ai/resolveEffectiveInstructionSettings.d.ts +15 -0
  228. package/dist/utilities/ai/resolveEffectiveInstructionSettings.js +136 -0
  229. package/dist/utilities/ai/resolveEffectiveInstructionSettings.js.map +1 -0
  230. package/dist/{endpoints → utilities}/buildPromptUtils.js +14 -5
  231. package/dist/utilities/buildPromptUtils.js.map +1 -0
  232. package/dist/utilities/buildSmartPrompt.js +3 -3
  233. package/dist/utilities/buildSmartPrompt.js.map +1 -1
  234. package/dist/utilities/fields/fieldToJsonSchema.js.map +1 -0
  235. package/dist/utilities/fields/getFieldBySchemaPath.js.map +1 -0
  236. package/dist/utilities/fields/getFieldInfo.js.map +1 -0
  237. package/dist/utilities/{updateFieldsConfig.js → fields/updateFieldsConfig.js} +8 -3
  238. package/dist/utilities/fields/updateFieldsConfig.js.map +1 -0
  239. package/dist/utilities/images/extractImageData.js.map +1 -0
  240. package/dist/utilities/images/extractPromptAttachments.js.map +1 -0
  241. package/dist/utilities/{fetchImages.d.ts → images/fetchImages.d.ts} +1 -1
  242. package/dist/utilities/images/fetchImages.js +49 -0
  243. package/dist/utilities/images/fetchImages.js.map +1 -0
  244. package/dist/utilities/images/resolveImageReferences.js +183 -0
  245. package/dist/utilities/images/resolveImageReferences.js.map +1 -0
  246. package/dist/utilities/init/autoSetupProviders.d.ts +3 -0
  247. package/dist/utilities/init/autoSetupProviders.js +216 -0
  248. package/dist/utilities/init/autoSetupProviders.js.map +1 -0
  249. package/dist/utilities/lexical/editorSchemaValidator.js.map +1 -0
  250. package/dist/utilities/lexical/lexicalToHTML.js.map +1 -0
  251. package/dist/utilities/lexical/lexicalToPromptTemplate.d.ts +2 -0
  252. package/dist/utilities/lexical/lexicalToPromptTemplate.js +50 -0
  253. package/dist/utilities/lexical/lexicalToPromptTemplate.js.map +1 -0
  254. package/dist/utilities/lexical/setSafeLexicalState.js.map +1 -0
  255. package/dist/utilities/lexical/stringToLexicalJSON.d.ts +2 -0
  256. package/dist/utilities/lexical/stringToLexicalJSON.js +39 -0
  257. package/dist/utilities/lexical/stringToLexicalJSON.js.map +1 -0
  258. package/dist/utilities/sanitizeLog.d.ts +1 -0
  259. package/dist/utilities/sanitizeLog.js +39 -0
  260. package/dist/utilities/sanitizeLog.js.map +1 -0
  261. package/dist/utilities/seedProperties.js +54 -22
  262. package/dist/utilities/seedProperties.js.map +1 -1
  263. package/package.json +36 -2
  264. package/dist/ai/analyse.d.ts +0 -1
  265. package/dist/ai/analyse.js +0 -3
  266. package/dist/ai/analyse.js.map +0 -1
  267. package/dist/ai/index.d.ts +0 -11
  268. package/dist/ai/index.js +0 -25
  269. package/dist/ai/index.js.map +0 -1
  270. package/dist/ai/prompts.js.map +0 -1
  271. package/dist/ai/utils/filterEditorSchemaByNodes.js.map +0 -1
  272. package/dist/ai/utils/generateFileNameByPrompt.js.map +0 -1
  273. package/dist/ai/utils/isObjectSchema.js.map +0 -1
  274. package/dist/ai/utils/nodeToSchemaMap.js.map +0 -1
  275. package/dist/ai/utils/systemGenerate.js.map +0 -1
  276. package/dist/endpoints/buildPromptUtils.js.map +0 -1
  277. package/dist/endpoints/chat.d.ts +0 -4
  278. package/dist/fields/PromptEditorField/PromptEditorField.d.ts +0 -3
  279. package/dist/fields/PromptEditorField/PromptEditorField.js +0 -217
  280. package/dist/fields/PromptEditorField/PromptEditorField.js.map +0 -1
  281. package/dist/fields/PromptEditorField/PromptEditorField.jsx +0 -160
  282. package/dist/ui/AIConfigDashboard/index.d.ts +0 -2
  283. package/dist/ui/AIConfigDashboard/index.js +0 -224
  284. package/dist/ui/AIConfigDashboard/index.js.map +0 -1
  285. package/dist/ui/AIConfigDashboard/index.jsx +0 -175
  286. package/dist/ui/ProviderOptionsEditor/index.d.ts +0 -7
  287. package/dist/ui/ProviderOptionsEditor/index.js +0 -291
  288. package/dist/ui/ProviderOptionsEditor/index.js.map +0 -1
  289. package/dist/ui/ProviderOptionsEditor/index.jsx +0 -210
  290. package/dist/utilities/editorSchemaValidator.js.map +0 -1
  291. package/dist/utilities/extractImageData.js.map +0 -1
  292. package/dist/utilities/extractPromptAttachments.js.map +0 -1
  293. package/dist/utilities/fetchImages.js +0 -38
  294. package/dist/utilities/fetchImages.js.map +0 -1
  295. package/dist/utilities/fieldToJsonSchema.js.map +0 -1
  296. package/dist/utilities/getFieldBySchemaPath.js.map +0 -1
  297. package/dist/utilities/getFieldInfo.js.map +0 -1
  298. package/dist/utilities/getProviderOptionsFields.d.ts +0 -16
  299. package/dist/utilities/getProviderOptionsFields.js +0 -80
  300. package/dist/utilities/getProviderOptionsFields.js.map +0 -1
  301. package/dist/utilities/isPluginActivated.d.ts +0 -2
  302. package/dist/utilities/isPluginActivated.js +0 -5
  303. package/dist/utilities/isPluginActivated.js.map +0 -1
  304. package/dist/utilities/lexicalToHTML.js.map +0 -1
  305. package/dist/utilities/resolveImageReferences.js +0 -167
  306. package/dist/utilities/resolveImageReferences.js.map +0 -1
  307. package/dist/utilities/schemaConverter.d.ts +0 -3
  308. package/dist/utilities/schemaConverter.js +0 -93
  309. package/dist/utilities/schemaConverter.js.map +0 -1
  310. package/dist/utilities/setSafeLexicalState.js.map +0 -1
  311. package/dist/utilities/updateFieldsConfig.js.map +0 -1
  312. /package/dist/ai/{utils → utilities}/filterEditorSchemaByNodes.d.ts +0 -0
  313. /package/dist/ai/{utils → utilities}/filterEditorSchemaByNodes.js +0 -0
  314. /package/dist/ai/{utils → utilities}/generateFileNameByPrompt.d.ts +0 -0
  315. /package/dist/ai/{utils → utilities}/generateFileNameByPrompt.js +0 -0
  316. /package/dist/ai/{utils → utilities}/isObjectSchema.d.ts +0 -0
  317. /package/dist/ai/{utils → utilities}/isObjectSchema.js +0 -0
  318. /package/dist/ai/{utils → utilities}/nodeToSchemaMap.d.ts +0 -0
  319. /package/dist/ai/{prompts.js → utilities/prompts.js} +0 -0
  320. /package/dist/ai/{utils → utilities}/systemGenerate.d.ts +0 -0
  321. /package/dist/ai/{utils → utilities}/systemGenerate.js +0 -0
  322. /package/dist/ui/Icons/{icons.module.css → icons.module.scss} +0 -0
  323. /package/dist/{endpoints → utilities}/buildPromptUtils.d.ts +0 -0
  324. /package/dist/utilities/{fieldToJsonSchema.d.ts → fields/fieldToJsonSchema.d.ts} +0 -0
  325. /package/dist/utilities/{fieldToJsonSchema.js → fields/fieldToJsonSchema.js} +0 -0
  326. /package/dist/utilities/{getFieldBySchemaPath.d.ts → fields/getFieldBySchemaPath.d.ts} +0 -0
  327. /package/dist/utilities/{getFieldBySchemaPath.js → fields/getFieldBySchemaPath.js} +0 -0
  328. /package/dist/utilities/{getFieldInfo.d.ts → fields/getFieldInfo.d.ts} +0 -0
  329. /package/dist/utilities/{getFieldInfo.js → fields/getFieldInfo.js} +0 -0
  330. /package/dist/utilities/{updateFieldsConfig.d.ts → fields/updateFieldsConfig.d.ts} +0 -0
  331. /package/dist/utilities/{extractImageData.d.ts → images/extractImageData.d.ts} +0 -0
  332. /package/dist/utilities/{extractImageData.js → images/extractImageData.js} +0 -0
  333. /package/dist/utilities/{extractPromptAttachments.d.ts → images/extractPromptAttachments.d.ts} +0 -0
  334. /package/dist/utilities/{extractPromptAttachments.js → images/extractPromptAttachments.js} +0 -0
  335. /package/dist/utilities/{resolveImageReferences.d.ts → images/resolveImageReferences.d.ts} +0 -0
  336. /package/dist/utilities/{editorSchemaValidator.d.ts → lexical/editorSchemaValidator.d.ts} +0 -0
  337. /package/dist/utilities/{editorSchemaValidator.js → lexical/editorSchemaValidator.js} +0 -0
  338. /package/dist/utilities/{lexicalToHTML.d.ts → lexical/lexicalToHTML.d.ts} +0 -0
  339. /package/dist/utilities/{lexicalToHTML.js → lexical/lexicalToHTML.js} +0 -0
  340. /package/dist/utilities/{setSafeLexicalState.d.ts → lexical/setSafeLexicalState.d.ts} +0 -0
  341. /package/dist/utilities/{setSafeLexicalState.js → lexical/setSafeLexicalState.js} +0 -0
@@ -0,0 +1,60 @@
1
+ 'use client';
2
+ import { useField, useFormFields } from '@payloadcms/ui';
3
+ import * as React from 'react';
4
+ import { useCallback } from 'react';
5
+ import { ProviderOptionsTree } from '../InstructionProviderOptions/ProviderOptionsTree.js';
6
+ import { updateProviderOptionsValue } from '../providerOptions/updateProviderOptionsValue.js';
7
+ function isRecord(value) {
8
+ return !!value && typeof value === 'object' && !Array.isArray(value);
9
+ }
10
+ export const GlobalProviderOptions = ({ path }) => {
11
+ const fieldPath = String(path || '');
12
+ const groupPath = fieldPath.split('.').slice(0, -1).join('.');
13
+ const providerPath = `${groupPath}.provider`;
14
+ const schemaPath = `${groupPath}.schema`;
15
+ const providerField = useFormFields(([fields]) => fields[providerPath]);
16
+ const schemaField = useFormFields(([fields]) => fields[schemaPath]);
17
+ const provider = typeof providerField?.value === 'string' ? providerField.value : undefined;
18
+ const schemaByProvider = isRecord(schemaField?.value) ? schemaField.value : {};
19
+ const schema = provider && isRecord(schemaByProvider[provider]) ? schemaByProvider[provider] : null;
20
+ const { setValue: setProviderOptionsValue, value: providerOptionsValue } = useField({
21
+ path: fieldPath,
22
+ });
23
+ const handleOptionChange = useCallback((keyPath, targetValue) => {
24
+ const nextValue = updateProviderOptionsValue({
25
+ currentValue: providerOptionsValue,
26
+ keyPath,
27
+ provider,
28
+ targetValue,
29
+ });
30
+ setProviderOptionsValue(nextValue);
31
+ }, [provider, providerOptionsValue, setProviderOptionsValue]);
32
+ if (!provider) {
33
+ return (<div className="field-type" style={{ marginTop: '1rem' }}>
34
+ <div className="field-label">Provider Options</div>
35
+ <p style={{ color: 'var(--theme-elevation-500)', margin: 0 }}>
36
+ Select a provider to configure provider options.
37
+ </p>
38
+ </div>);
39
+ }
40
+ if (!schema || Object.keys(schema).length === 0) {
41
+ return (<div className="field-type" style={{ marginTop: '1rem' }}>
42
+ <div className="field-label">Provider Options</div>
43
+ <p style={{ color: 'var(--theme-elevation-500)', margin: 0 }}>
44
+ No provider options schema exists for this provider and capability.
45
+ </p>
46
+ </div>);
47
+ }
48
+ const selectedProviderValues = isRecord(providerOptionsValue) && isRecord(providerOptionsValue[provider])
49
+ ? providerOptionsValue[provider]
50
+ : {};
51
+ return (<div className="field-type" style={{ marginTop: '1rem' }}>
52
+ <div className="field-label">Provider Options</div>
53
+ <p style={{ color: 'var(--theme-elevation-500)', marginBottom: '0.75rem', marginTop: 0 }}>
54
+ Configure default provider options for {provider}.
55
+ </p>
56
+ <div style={{ display: 'flex', flexDirection: 'column' }}>
57
+ <ProviderOptionsTree onChange={handleOptionChange} path={[]} schemaValue={schema} selectedValue={selectedProviderValues}/>
58
+ </div>
59
+ </div>);
60
+ };
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import React from 'react';
3
- import styles from './icons.module.css';
3
+ import styles from './icons.module.scss';
4
4
  import LottieAnimation from './LottieAnimation.js';
5
5
  export const PluginIcon = ({ color = 'white', isLoading })=>{
6
6
  return /*#__PURE__*/ _jsx("span", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/ui/Icons/Icons.tsx"],"sourcesContent":["import React from 'react'\n\nimport styles from './icons.module.css'\nimport LottieAnimation from './LottieAnimation.js'\n\nexport const PluginIcon = ({\n color = 'white',\n isLoading,\n}: {\n color?: string\n isLoading?: boolean\n}) => {\n return (\n <span className={styles.actions_icon}>\n <LottieAnimation isLoading={isLoading} />\n </span>\n )\n}\n\nexport const TuneIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M450-130v-220h60v80h320v60H510v80h-60Zm-320-80v-60h220v60H130Zm160-160v-80H130v-60h160v-80h60v220h-60Zm160-80v-60h380v60H450Zm160-160v-220h60v80h160v60H670v80h-60Zm-480-80v-60h380v60H130Z\" />\n </svg>\n </span>\n )\n}\n\nexport const LocalLibraryIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M480-115.38q-67.38-54.93-148.85-86.7Q249.69-233.85 160-240v-373.85q91.77 5.39 174.38 43.81Q417-531.62 480-474.92q63-56.7 145.62-95.12 82.61-38.42 174.38-43.81V-240q-89.92 6.15-171.27 37.92-81.35 31.77-148.73 86.7Zm0-50.16q63-46.23 134-74.56 71-28.33 146-37.44v-291.38q-78.38 13-149.65 50.57-71.27 37.58-130.35 96.66-59.08-59.08-130.35-96.66-71.27-37.57-149.65-50.57v291.38q75 9.11 146 37.44t134 74.56Zm0-451.38q-53.31 0-91.27-37.96-37.96-37.97-37.96-91.27 0-53.31 37.96-91.27 37.96-37.96 91.27-37.96 53.31 0 91.27 37.96 37.96 37.96 37.96 91.27 0 53.3-37.96 91.27-37.96 37.96-91.27 37.96Zm.03-40q36.82 0 63.01-26.22 26.19-26.22 26.19-63.04t-26.22-63.01q-26.22-26.19-63.04-26.19t-63.01 26.21q-26.19 26.22-26.19 63.04t26.22 63.01q26.22 26.2 63.04 26.2Zm-.03-89.23Zm0 324.46Z\" />\n </svg>\n </span>\n )\n}\n\nexport const SpellCheckIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M564-93.85 407.85-250 450-292.15l114 114 226.77-226.77 42.15 42.15L564-93.85ZM135.39-320l191.69-520h69.38l190.92 520h-68.92l-49.07-142H250.92l-49.84 142h-65.69ZM272-518h178.31L362-765.54h-3.23L272-518Z\" />\n </svg>\n </span>\n )\n}\n\nexport const TranslateIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m476-100 178.15-460h62.46l178.16 460h-63.62l-45.3-122H584.92l-45.31 122H476ZM160.38-217.69l-42.15-42.16 198.92-199.3q-34.61-35-65.8-83.08Q220.15-590.31 200-640h63.61q17.31 36.31 42.12 72.62 24.81 36.3 53.58 66.07 42.61-43 80.61-104.42T493.62-720H67.69v-60H330v-64.61h60V-780h262.31v60h-97.93q-19.46 67.38-62.03 140.88-42.58 73.5-90.89 121.2l98.69 101.07-22.69 61.62-118.15-121.16-198.93 198.7Zm443.77-57.39h162.46l-81.23-218.23-81.23 218.23Z\" />\n </svg>\n </span>\n )\n}\n\nexport const DocsAddOnIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M650-131v-120H530v-60h120v-120h60v120h120v60H710v120h-60ZM170-250v-60h281.85q-1.85 15.8-1.35 30.09t2.35 29.91H170Zm0-160v-60h379.08q-17.23 12.15-31.5 27.15-14.27 15-25.96 32.85H170Zm0-160v-60h580v60H170Zm0-160v-60h580v60H170Z\" />\n </svg>\n </span>\n )\n}\n\nexport const SummarizeIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M320-603.85q15.08 0 25.62-10.53 10.53-10.54 10.53-25.62 0-15.08-10.53-25.62-10.54-10.53-25.62-10.53-15.08 0-25.62 10.53-10.53 10.54-10.53 25.62 0 15.08 10.53 25.62 10.54 10.53 25.62 10.53Zm0 160q15.08 0 25.62-10.53 10.53-10.54 10.53-25.62 0-15.08-10.53-25.62-10.54-10.53-25.62-10.53-15.08 0-25.62 10.53-10.53 10.54-10.53 25.62 0 15.08 10.53 25.62 10.54 10.53 25.62 10.53Zm0 160q15.08 0 25.62-10.53 10.53-10.54 10.53-25.62 0-15.08-10.53-25.62-10.54-10.53-25.62-10.53-15.08 0-25.62 10.53-10.53 10.54-10.53 25.62 0 15.08 10.53 25.62 10.54 10.53 25.62 10.53ZM212.31-140Q182-140 161-161q-21-21-21-51.31v-535.38Q140-778 161-799q21-21 51.31-21h419.23L820-631.54v419.23Q820-182 799-161q-21 21-51.31 21H212.31Zm0-60h535.38q5.39 0 8.85-3.46t3.46-8.85V-600H600v-160H212.31q-5.39 0-8.85 3.46t-3.46 8.85v535.38q0 5.39 3.46 8.85t8.85 3.46ZM200-760v160-160V-200v-560Z\" />\n </svg>\n </span>\n )\n}\n\nexport const SegmentIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M380-254.62v-59.99h440v59.99H380ZM380-450v-60h440v60H380ZM140-645.39v-59.99h680v59.99H140Z\" />\n </svg>\n </span>\n )\n}\n\nexport const StylusNoteIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m487.46-283.15 332.31-332.31q2.69-2.69 2.69-6.54t-2.69-6.54l-38.92-38.92q-2.7-2.69-6.54-2.69-3.85 0-6.54 2.69L435.46-335.15l52 52Zm-251 72.38q-89.23-5-134-39.69-44.77-34.69-44.77-98.16 0-60.76 51-98.57 51-37.81 141.77-45.81 43.62-3.77 65.43-15.77 21.8-12 21.8-33.23 0-29.46-29.5-44.96t-96.73-22.27l5.46-59.62q92.23 8.77 136.5 39.77 44.27 31 44.27 87.08 0 47.61-36.57 75.5-36.58 27.88-106.2 33.5-68.61 5.77-102.92 26.77t-34.31 57.61q0 37.31 28.58 55.51 28.58 18.19 92.65 22.34l-2.46 60Zm260.38 3.15L359.92-344.54l373.54-373.15q17.69-17.69 41.35-17.5 23.65.19 41.34 17.5L870-663.85q17.69 17.7 17.69 41.54 0 23.85-17.69 41.54L496.84-207.62ZM363.23-180q-13.54 3.23-23.84-7.08-10.31-10.31-7.08-23.84l27.61-133.62 136.92 136.92L363.23-180Z\" />\n </svg>\n </span>\n )\n}\n\nexport const EditNoteIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M180-400v-60h280v60H180Zm0-160v-60h440v60H180Zm0-160v-60h440v60H180Zm344.62 540v-105.69l217.15-216.16q7.46-7.46 16.11-10.5 8.65-3.03 17.3-3.03 9.43 0 18.25 3.53 8.82 3.54 16.03 10.62l37 37.38q6.46 7.47 10 16.16Q860-439 860-430.31t-3.23 17.69q-3.23 9-10.31 16.46L630.31-180H524.62Zm287.69-250.31-37-37.38 37 37.38Zm-240 202.62h38l129.84-130.47-18.38-19-18.62-18.76-130.84 130.23v38Zm149.46-149.47-18.62-18.76 37 37.76-18.38-19Z\" />\n </svg>\n </span>\n )\n}\n\nexport const ArrowIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m531.69-480-184-184L376-692.31 588.31-480 376-267.69 347.69-296l184-184Z\" />\n </svg>\n </span>\n )\n}\n"],"names":["React","styles","LottieAnimation","PluginIcon","color","isLoading","span","className","actions_icon","TuneIcon","size","icon","svg","height","viewBox","width","xmlns","path","d","LocalLibraryIcon","SpellCheckIcon","TranslateIcon","DocsAddOnIcon","SummarizeIcon","SegmentIcon","StylusNoteIcon","EditNoteIcon","ArrowIcon"],"mappings":";AAAA,OAAOA,WAAW,QAAO;AAEzB,OAAOC,YAAY,qBAAoB;AACvC,OAAOC,qBAAqB,uBAAsB;AAElD,OAAO,MAAMC,aAAa,CAAC,EACzBC,QAAQ,OAAO,EACfC,SAAS,EAIV;IACC,qBACE,KAACC;QAAKC,WAAWN,OAAOO,YAAY;kBAClC,cAAA,KAACN;YAAgBG,WAAWA;;;AAGlC,EAAC;AAED,OAAO,MAAMI,WAAW,CAAC,EAAEL,QAAQ,OAAO,EAAEM,OAAO,EAAE,EAAE;IACrD,qBACE,KAACJ;QAAKC,WAAWN,OAAOU,IAAI;kBAC1B,cAAA,KAACC;YAAIC,QAAQH;YAAMI,SAAQ;YAAiBC,OAAOL;YAAMM,OAAM;sBAC7D,cAAA,KAACC;gBAAKC,GAAE;;;;AAIhB,EAAC;AAED,OAAO,MAAMC,mBAAmB,CAAC,EAAEf,QAAQ,OAAO,EAAEM,OAAO,EAAE,EAAE;IAC7D,qBACE,KAACJ;QAAKC,WAAWN,OAAOU,IAAI;kBAC1B,cAAA,KAACC;YAAIC,QAAQH;YAAMI,SAAQ;YAAiBC,OAAOL;YAAMM,OAAM;sBAC7D,cAAA,KAACC;gBAAKC,GAAE;;;;AAIhB,EAAC;AAED,OAAO,MAAME,iBAAiB,CAAC,EAAEhB,QAAQ,OAAO,EAAEM,OAAO,EAAE,EAAE;IAC3D,qBACE,KAACJ;QAAKC,WAAWN,OAAOU,IAAI;kBAC1B,cAAA,KAACC;YAAIC,QAAQH;YAAMI,SAAQ;YAAiBC,OAAOL;YAAMM,OAAM;sBAC7D,cAAA,KAACC;gBAAKC,GAAE;;;;AAIhB,EAAC;AAED,OAAO,MAAMG,gBAAgB,CAAC,EAAEjB,QAAQ,OAAO,EAAEM,OAAO,EAAE,EAAE;IAC1D,qBACE,KAACJ;QAAKC,WAAWN,OAAOU,IAAI;kBAC1B,cAAA,KAACC;YAAIC,QAAQH;YAAMI,SAAQ;YAAiBC,OAAOL;YAAMM,OAAM;sBAC7D,cAAA,KAACC;gBAAKC,GAAE;;;;AAIhB,EAAC;AAED,OAAO,MAAMI,gBAAgB,CAAC,EAAElB,QAAQ,OAAO,EAAEM,OAAO,EAAE,EAAE;IAC1D,qBACE,KAACJ;QAAKC,WAAWN,OAAOU,IAAI;kBAC1B,cAAA,KAACC;YAAIC,QAAQH;YAAMI,SAAQ;YAAiBC,OAAOL;YAAMM,OAAM;sBAC7D,cAAA,KAACC;gBAAKC,GAAE;;;;AAIhB,EAAC;AAED,OAAO,MAAMK,gBAAgB,CAAC,EAAEnB,QAAQ,OAAO,EAAEM,OAAO,EAAE,EAAE;IAC1D,qBACE,KAACJ;QAAKC,WAAWN,OAAOU,IAAI;kBAC1B,cAAA,KAACC;YAAIC,QAAQH;YAAMI,SAAQ;YAAiBC,OAAOL;YAAMM,OAAM;sBAC7D,cAAA,KAACC;gBAAKC,GAAE;;;;AAIhB,EAAC;AAED,OAAO,MAAMM,cAAc,CAAC,EAAEpB,QAAQ,OAAO,EAAEM,OAAO,EAAE,EAAE;IACxD,qBACE,KAACJ;QAAKC,WAAWN,OAAOU,IAAI;kBAC1B,cAAA,KAACC;YAAIC,QAAQH;YAAMI,SAAQ;YAAiBC,OAAOL;YAAMM,OAAM;sBAC7D,cAAA,KAACC;gBAAKC,GAAE;;;;AAIhB,EAAC;AAED,OAAO,MAAMO,iBAAiB,CAAC,EAAErB,QAAQ,OAAO,EAAEM,OAAO,EAAE,EAAE;IAC3D,qBACE,KAACJ;QAAKC,WAAWN,OAAOU,IAAI;kBAC1B,cAAA,KAACC;YAAIC,QAAQH;YAAMI,SAAQ;YAAiBC,OAAOL;YAAMM,OAAM;sBAC7D,cAAA,KAACC;gBAAKC,GAAE;;;;AAIhB,EAAC;AAED,OAAO,MAAMQ,eAAe,CAAC,EAAEtB,QAAQ,OAAO,EAAEM,OAAO,EAAE,EAAE;IACzD,qBACE,KAACJ;QAAKC,WAAWN,OAAOU,IAAI;kBAC1B,cAAA,KAACC;YAAIC,QAAQH;YAAMI,SAAQ;YAAiBC,OAAOL;YAAMM,OAAM;sBAC7D,cAAA,KAACC;gBAAKC,GAAE;;;;AAIhB,EAAC;AAED,OAAO,MAAMS,YAAY,CAAC,EAAEvB,QAAQ,OAAO,EAAEM,OAAO,EAAE,EAAE;IACtD,qBACE,KAACJ;QAAKC,WAAWN,OAAOU,IAAI;kBAC1B,cAAA,KAACC;YAAIC,QAAQH;YAAMI,SAAQ;YAAiBC,OAAOL;YAAMM,OAAM;sBAC7D,cAAA,KAACC;gBAAKC,GAAE;;;;AAIhB,EAAC"}
1
+ {"version":3,"sources":["../../../src/ui/Icons/Icons.tsx"],"sourcesContent":["import React from 'react'\n\nimport styles from './icons.module.scss'\nimport LottieAnimation from './LottieAnimation.js'\n\nexport const PluginIcon = ({\n color = 'white',\n isLoading,\n}: {\n color?: string\n isLoading?: boolean\n}) => {\n return (\n <span className={styles.actions_icon}>\n <LottieAnimation isLoading={isLoading} />\n </span>\n )\n}\n\nexport const TuneIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M450-130v-220h60v80h320v60H510v80h-60Zm-320-80v-60h220v60H130Zm160-160v-80H130v-60h160v-80h60v220h-60Zm160-80v-60h380v60H450Zm160-160v-220h60v80h160v60H670v80h-60Zm-480-80v-60h380v60H130Z\" />\n </svg>\n </span>\n )\n}\n\nexport const LocalLibraryIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M480-115.38q-67.38-54.93-148.85-86.7Q249.69-233.85 160-240v-373.85q91.77 5.39 174.38 43.81Q417-531.62 480-474.92q63-56.7 145.62-95.12 82.61-38.42 174.38-43.81V-240q-89.92 6.15-171.27 37.92-81.35 31.77-148.73 86.7Zm0-50.16q63-46.23 134-74.56 71-28.33 146-37.44v-291.38q-78.38 13-149.65 50.57-71.27 37.58-130.35 96.66-59.08-59.08-130.35-96.66-71.27-37.57-149.65-50.57v291.38q75 9.11 146 37.44t134 74.56Zm0-451.38q-53.31 0-91.27-37.96-37.96-37.97-37.96-91.27 0-53.31 37.96-91.27 37.96-37.96 91.27-37.96 53.31 0 91.27 37.96 37.96 37.96 37.96 91.27 0 53.3-37.96 91.27-37.96 37.96-91.27 37.96Zm.03-40q36.82 0 63.01-26.22 26.19-26.22 26.19-63.04t-26.22-63.01q-26.22-26.19-63.04-26.19t-63.01 26.21q-26.19 26.22-26.19 63.04t26.22 63.01q26.22 26.2 63.04 26.2Zm-.03-89.23Zm0 324.46Z\" />\n </svg>\n </span>\n )\n}\n\nexport const SpellCheckIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M564-93.85 407.85-250 450-292.15l114 114 226.77-226.77 42.15 42.15L564-93.85ZM135.39-320l191.69-520h69.38l190.92 520h-68.92l-49.07-142H250.92l-49.84 142h-65.69ZM272-518h178.31L362-765.54h-3.23L272-518Z\" />\n </svg>\n </span>\n )\n}\n\nexport const TranslateIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m476-100 178.15-460h62.46l178.16 460h-63.62l-45.3-122H584.92l-45.31 122H476ZM160.38-217.69l-42.15-42.16 198.92-199.3q-34.61-35-65.8-83.08Q220.15-590.31 200-640h63.61q17.31 36.31 42.12 72.62 24.81 36.3 53.58 66.07 42.61-43 80.61-104.42T493.62-720H67.69v-60H330v-64.61h60V-780h262.31v60h-97.93q-19.46 67.38-62.03 140.88-42.58 73.5-90.89 121.2l98.69 101.07-22.69 61.62-118.15-121.16-198.93 198.7Zm443.77-57.39h162.46l-81.23-218.23-81.23 218.23Z\" />\n </svg>\n </span>\n )\n}\n\nexport const DocsAddOnIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M650-131v-120H530v-60h120v-120h60v120h120v60H710v120h-60ZM170-250v-60h281.85q-1.85 15.8-1.35 30.09t2.35 29.91H170Zm0-160v-60h379.08q-17.23 12.15-31.5 27.15-14.27 15-25.96 32.85H170Zm0-160v-60h580v60H170Zm0-160v-60h580v60H170Z\" />\n </svg>\n </span>\n )\n}\n\nexport const SummarizeIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M320-603.85q15.08 0 25.62-10.53 10.53-10.54 10.53-25.62 0-15.08-10.53-25.62-10.54-10.53-25.62-10.53-15.08 0-25.62 10.53-10.53 10.54-10.53 25.62 0 15.08 10.53 25.62 10.54 10.53 25.62 10.53Zm0 160q15.08 0 25.62-10.53 10.53-10.54 10.53-25.62 0-15.08-10.53-25.62-10.54-10.53-25.62-10.53-15.08 0-25.62 10.53-10.53 10.54-10.53 25.62 0 15.08 10.53 25.62 10.54 10.53 25.62 10.53Zm0 160q15.08 0 25.62-10.53 10.53-10.54 10.53-25.62 0-15.08-10.53-25.62-10.54-10.53-25.62-10.53-15.08 0-25.62 10.53-10.53 10.54-10.53 25.62 0 15.08 10.53 25.62 10.54 10.53 25.62 10.53ZM212.31-140Q182-140 161-161q-21-21-21-51.31v-535.38Q140-778 161-799q21-21 51.31-21h419.23L820-631.54v419.23Q820-182 799-161q-21 21-51.31 21H212.31Zm0-60h535.38q5.39 0 8.85-3.46t3.46-8.85V-600H600v-160H212.31q-5.39 0-8.85 3.46t-3.46 8.85v535.38q0 5.39 3.46 8.85t8.85 3.46ZM200-760v160-160V-200v-560Z\" />\n </svg>\n </span>\n )\n}\n\nexport const SegmentIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M380-254.62v-59.99h440v59.99H380ZM380-450v-60h440v60H380ZM140-645.39v-59.99h680v59.99H140Z\" />\n </svg>\n </span>\n )\n}\n\nexport const StylusNoteIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m487.46-283.15 332.31-332.31q2.69-2.69 2.69-6.54t-2.69-6.54l-38.92-38.92q-2.7-2.69-6.54-2.69-3.85 0-6.54 2.69L435.46-335.15l52 52Zm-251 72.38q-89.23-5-134-39.69-44.77-34.69-44.77-98.16 0-60.76 51-98.57 51-37.81 141.77-45.81 43.62-3.77 65.43-15.77 21.8-12 21.8-33.23 0-29.46-29.5-44.96t-96.73-22.27l5.46-59.62q92.23 8.77 136.5 39.77 44.27 31 44.27 87.08 0 47.61-36.57 75.5-36.58 27.88-106.2 33.5-68.61 5.77-102.92 26.77t-34.31 57.61q0 37.31 28.58 55.51 28.58 18.19 92.65 22.34l-2.46 60Zm260.38 3.15L359.92-344.54l373.54-373.15q17.69-17.69 41.35-17.5 23.65.19 41.34 17.5L870-663.85q17.69 17.7 17.69 41.54 0 23.85-17.69 41.54L496.84-207.62ZM363.23-180q-13.54 3.23-23.84-7.08-10.31-10.31-7.08-23.84l27.61-133.62 136.92 136.92L363.23-180Z\" />\n </svg>\n </span>\n )\n}\n\nexport const EditNoteIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M180-400v-60h280v60H180Zm0-160v-60h440v60H180Zm0-160v-60h440v60H180Zm344.62 540v-105.69l217.15-216.16q7.46-7.46 16.11-10.5 8.65-3.03 17.3-3.03 9.43 0 18.25 3.53 8.82 3.54 16.03 10.62l37 37.38q6.46 7.47 10 16.16Q860-439 860-430.31t-3.23 17.69q-3.23 9-10.31 16.46L630.31-180H524.62Zm287.69-250.31-37-37.38 37 37.38Zm-240 202.62h38l129.84-130.47-18.38-19-18.62-18.76-130.84 130.23v38Zm149.46-149.47-18.62-18.76 37 37.76-18.38-19Z\" />\n </svg>\n </span>\n )\n}\n\nexport const ArrowIcon = ({ color = 'white', size = 24 }) => {\n return (\n <span className={styles.icon}>\n <svg height={size} viewBox=\"0 -960 960 960\" width={size} xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m531.69-480-184-184L376-692.31 588.31-480 376-267.69 347.69-296l184-184Z\" />\n </svg>\n </span>\n )\n}\n"],"names":["React","styles","LottieAnimation","PluginIcon","color","isLoading","span","className","actions_icon","TuneIcon","size","icon","svg","height","viewBox","width","xmlns","path","d","LocalLibraryIcon","SpellCheckIcon","TranslateIcon","DocsAddOnIcon","SummarizeIcon","SegmentIcon","StylusNoteIcon","EditNoteIcon","ArrowIcon"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import styles from './icons.module.css';
2
+ import styles from './icons.module.scss';
3
3
  import LottieAnimation from './LottieAnimation.js';
4
4
  export const PluginIcon = ({ color = 'white', isLoading, }) => {
5
5
  return (<span className={styles.actions_icon}>
@@ -1,7 +1,7 @@
1
1
  // @ts-nocheck
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import React, { useEffect, useRef, useState } from 'react';
4
- import styles from './icons.module.css';
4
+ import styles from './icons.module.scss';
5
5
  const LottieAnimation = ({ isLoading = false })=>{
6
6
  const svgRef = useRef(null);
7
7
  const [animations, setAnimations] = useState([]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/ui/Icons/LottieAnimation.tsx"],"sourcesContent":["// @ts-nocheck\n\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport styles from './icons.module.css'\n\nconst LottieAnimation = ({ isLoading = false }) => {\n const svgRef = useRef(null)\n const [animations, setAnimations] = useState([])\n\n useEffect(() => {\n const svg = svgRef.current\n if (!svg) {return}\n\n const animateTransform = (element, keyframes) => {\n const animation = element.animate(keyframes, {\n direction: 'alternate',\n duration: 1000,\n easing: 'ease-in-out',\n iterations: Infinity,\n })\n return animation\n }\n\n // Animate Group 2 (Rectangle)\n const rectangle = svg.querySelector('#group2')\n const rectangleAnimation = animateTransform(rectangle, [\n { transform: 'translate(0, 0) scale(1)' },\n { transform: 'translate(0, 0) scale(2.54)' },\n { transform: 'translate(0, 0) scale(1)' },\n ])\n\n // Animate Group 3 (Triangle)\n const triangle = svg.querySelector('#group3')\n const triangleAnimation = animateTransform(triangle, [\n { transform: 'translate(-69.5px, 77.5px) scale(1)' },\n { transform: 'translate(-70px, 73px) scale(0.36)' },\n { transform: 'translate(-69.5px, 77.5px) scale(1)' },\n ])\n\n setAnimations([rectangleAnimation, triangleAnimation])\n\n // Clean up animations on unmount\n return () => {\n rectangleAnimation.cancel()\n triangleAnimation.cancel()\n }\n }, [])\n\n useEffect(() => {\n if (isLoading) {\n animations.forEach((animation) => animation.play())\n } else {\n animations.forEach((animation) => animation.pause())\n }\n }, [isLoading, animations])\n\n return (\n <span\n style={{\n left: '3px',\n position: 'relative',\n top: '-6px',\n }}\n >\n <svg height=\"41\" ref={svgRef} viewBox=\"-250 -250 500 500\" width=\"41\">\n <g id=\"group2\">\n <rect className={styles.color_fill} height=\"41\" width=\"41\" x=\"-20.5\" y=\"-20.5\" />\n </g>\n <g id=\"group3\">\n <path className={styles.color_fill} d=\"M48.5 57.5L48.5 -57.5L-49.5 -1.093L48.5 57.5Z\" />\n </g>\n </svg>\n </span>\n )\n}\n\nexport default LottieAnimation\n"],"names":["React","useEffect","useRef","useState","styles","LottieAnimation","isLoading","svgRef","animations","setAnimations","svg","current","animateTransform","element","keyframes","animation","animate","direction","duration","easing","iterations","Infinity","rectangle","querySelector","rectangleAnimation","transform","triangle","triangleAnimation","cancel","forEach","play","pause","span","style","left","position","top","height","ref","viewBox","width","g","id","rect","className","color_fill","x","y","path","d"],"mappings":"AAAA,cAAc;;AAEd,OAAOA,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAO;AAE1D,OAAOC,YAAY,qBAAoB;AAEvC,MAAMC,kBAAkB,CAAC,EAAEC,YAAY,KAAK,EAAE;IAC5C,MAAMC,SAASL,OAAO;IACtB,MAAM,CAACM,YAAYC,cAAc,GAAGN,SAAS,EAAE;IAE/CF,UAAU;QACR,MAAMS,MAAMH,OAAOI,OAAO;QAC1B,IAAI,CAACD,KAAK;YAAC;QAAM;QAEjB,MAAME,mBAAmB,CAACC,SAASC;YACjC,MAAMC,YAAYF,QAAQG,OAAO,CAACF,WAAW;gBAC3CG,WAAW;gBACXC,UAAU;gBACVC,QAAQ;gBACRC,YAAYC;YACd;YACA,OAAON;QACT;QAEA,8BAA8B;QAC9B,MAAMO,YAAYZ,IAAIa,aAAa,CAAC;QACpC,MAAMC,qBAAqBZ,iBAAiBU,WAAW;YACrD;gBAAEG,WAAW;YAA2B;YACxC;gBAAEA,WAAW;YAA8B;YAC3C;gBAAEA,WAAW;YAA2B;SACzC;QAED,6BAA6B;QAC7B,MAAMC,WAAWhB,IAAIa,aAAa,CAAC;QACnC,MAAMI,oBAAoBf,iBAAiBc,UAAU;YACnD;gBAAED,WAAW;YAAsC;YACnD;gBAAEA,WAAW;YAAqC;YAClD;gBAAEA,WAAW;YAAsC;SACpD;QAEDhB,cAAc;YAACe;YAAoBG;SAAkB;QAErD,iCAAiC;QACjC,OAAO;YACLH,mBAAmBI,MAAM;YACzBD,kBAAkBC,MAAM;QAC1B;IACF,GAAG,EAAE;IAEL3B,UAAU;QACR,IAAIK,WAAW;YACbE,WAAWqB,OAAO,CAAC,CAACd,YAAcA,UAAUe,IAAI;QAClD,OAAO;YACLtB,WAAWqB,OAAO,CAAC,CAACd,YAAcA,UAAUgB,KAAK;QACnD;IACF,GAAG;QAACzB;QAAWE;KAAW;IAE1B,qBACE,KAACwB;QACCC,OAAO;YACLC,MAAM;YACNC,UAAU;YACVC,KAAK;QACP;kBAEA,cAAA,MAAC1B;YAAI2B,QAAO;YAAKC,KAAK/B;YAAQgC,SAAQ;YAAoBC,OAAM;;8BAC9D,KAACC;oBAAEC,IAAG;8BACJ,cAAA,KAACC;wBAAKC,WAAWxC,OAAOyC,UAAU;wBAAER,QAAO;wBAAKG,OAAM;wBAAKM,GAAE;wBAAQC,GAAE;;;8BAEzE,KAACN;oBAAEC,IAAG;8BACJ,cAAA,KAACM;wBAAKJ,WAAWxC,OAAOyC,UAAU;wBAAEI,GAAE;;;;;;AAKhD;AAEA,eAAe5C,gBAAe"}
1
+ {"version":3,"sources":["../../../src/ui/Icons/LottieAnimation.tsx"],"sourcesContent":["// @ts-nocheck\n\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport styles from './icons.module.scss'\n\nconst LottieAnimation = ({ isLoading = false }) => {\n const svgRef = useRef(null)\n const [animations, setAnimations] = useState([])\n\n useEffect(() => {\n const svg = svgRef.current\n if (!svg) {return}\n\n const animateTransform = (element, keyframes) => {\n const animation = element.animate(keyframes, {\n direction: 'alternate',\n duration: 1000,\n easing: 'ease-in-out',\n iterations: Infinity,\n })\n return animation\n }\n\n // Animate Group 2 (Rectangle)\n const rectangle = svg.querySelector('#group2')\n const rectangleAnimation = animateTransform(rectangle, [\n { transform: 'translate(0, 0) scale(1)' },\n { transform: 'translate(0, 0) scale(2.54)' },\n { transform: 'translate(0, 0) scale(1)' },\n ])\n\n // Animate Group 3 (Triangle)\n const triangle = svg.querySelector('#group3')\n const triangleAnimation = animateTransform(triangle, [\n { transform: 'translate(-69.5px, 77.5px) scale(1)' },\n { transform: 'translate(-70px, 73px) scale(0.36)' },\n { transform: 'translate(-69.5px, 77.5px) scale(1)' },\n ])\n\n setAnimations([rectangleAnimation, triangleAnimation])\n\n // Clean up animations on unmount\n return () => {\n rectangleAnimation.cancel()\n triangleAnimation.cancel()\n }\n }, [])\n\n useEffect(() => {\n if (isLoading) {\n animations.forEach((animation) => animation.play())\n } else {\n animations.forEach((animation) => animation.pause())\n }\n }, [isLoading, animations])\n\n return (\n <span\n style={{\n left: '3px',\n position: 'relative',\n top: '-6px',\n }}\n >\n <svg height=\"41\" ref={svgRef} viewBox=\"-250 -250 500 500\" width=\"41\">\n <g id=\"group2\">\n <rect className={styles.color_fill} height=\"41\" width=\"41\" x=\"-20.5\" y=\"-20.5\" />\n </g>\n <g id=\"group3\">\n <path className={styles.color_fill} d=\"M48.5 57.5L48.5 -57.5L-49.5 -1.093L48.5 57.5Z\" />\n </g>\n </svg>\n </span>\n )\n}\n\nexport default LottieAnimation\n"],"names":["React","useEffect","useRef","useState","styles","LottieAnimation","isLoading","svgRef","animations","setAnimations","svg","current","animateTransform","element","keyframes","animation","animate","direction","duration","easing","iterations","Infinity","rectangle","querySelector","rectangleAnimation","transform","triangle","triangleAnimation","cancel","forEach","play","pause","span","style","left","position","top","height","ref","viewBox","width","g","id","rect","className","color_fill","x","y","path","d"],"mappings":"AAAA,cAAc;;AAEd,OAAOA,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAO;AAE1D,OAAOC,YAAY,sBAAqB;AAExC,MAAMC,kBAAkB,CAAC,EAAEC,YAAY,KAAK,EAAE;IAC5C,MAAMC,SAASL,OAAO;IACtB,MAAM,CAACM,YAAYC,cAAc,GAAGN,SAAS,EAAE;IAE/CF,UAAU;QACR,MAAMS,MAAMH,OAAOI,OAAO;QAC1B,IAAI,CAACD,KAAK;YAAC;QAAM;QAEjB,MAAME,mBAAmB,CAACC,SAASC;YACjC,MAAMC,YAAYF,QAAQG,OAAO,CAACF,WAAW;gBAC3CG,WAAW;gBACXC,UAAU;gBACVC,QAAQ;gBACRC,YAAYC;YACd;YACA,OAAON;QACT;QAEA,8BAA8B;QAC9B,MAAMO,YAAYZ,IAAIa,aAAa,CAAC;QACpC,MAAMC,qBAAqBZ,iBAAiBU,WAAW;YACrD;gBAAEG,WAAW;YAA2B;YACxC;gBAAEA,WAAW;YAA8B;YAC3C;gBAAEA,WAAW;YAA2B;SACzC;QAED,6BAA6B;QAC7B,MAAMC,WAAWhB,IAAIa,aAAa,CAAC;QACnC,MAAMI,oBAAoBf,iBAAiBc,UAAU;YACnD;gBAAED,WAAW;YAAsC;YACnD;gBAAEA,WAAW;YAAqC;YAClD;gBAAEA,WAAW;YAAsC;SACpD;QAEDhB,cAAc;YAACe;YAAoBG;SAAkB;QAErD,iCAAiC;QACjC,OAAO;YACLH,mBAAmBI,MAAM;YACzBD,kBAAkBC,MAAM;QAC1B;IACF,GAAG,EAAE;IAEL3B,UAAU;QACR,IAAIK,WAAW;YACbE,WAAWqB,OAAO,CAAC,CAACd,YAAcA,UAAUe,IAAI;QAClD,OAAO;YACLtB,WAAWqB,OAAO,CAAC,CAACd,YAAcA,UAAUgB,KAAK;QACnD;IACF,GAAG;QAACzB;QAAWE;KAAW;IAE1B,qBACE,KAACwB;QACCC,OAAO;YACLC,MAAM;YACNC,UAAU;YACVC,KAAK;QACP;kBAEA,cAAA,MAAC1B;YAAI2B,QAAO;YAAKC,KAAK/B;YAAQgC,SAAQ;YAAoBC,OAAM;;8BAC9D,KAACC;oBAAEC,IAAG;8BACJ,cAAA,KAACC;wBAAKC,WAAWxC,OAAOyC,UAAU;wBAAER,QAAO;wBAAKG,OAAM;wBAAKM,GAAE;wBAAQC,GAAE;;;8BAEzE,KAACN;oBAAEC,IAAG;8BACJ,cAAA,KAACM;wBAAKJ,WAAWxC,OAAOyC,UAAU;wBAAEI,GAAE;;;;;;AAKhD;AAEA,eAAe5C,gBAAe"}
@@ -1,6 +1,6 @@
1
1
  // @ts-nocheck
2
2
  import React, { useEffect, useRef, useState } from 'react';
3
- import styles from './icons.module.css';
3
+ import styles from './icons.module.scss';
4
4
  const LottieAnimation = ({ isLoading = false }) => {
5
5
  const svgRef = useRef(null);
6
6
  const [animations, setAnimations] = useState([]);
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ type Primitive = boolean | null | number | string | undefined;
3
+ type PrimitiveArray = number[] | string[];
4
+ type ProviderOptionTreeNodeProps = {
5
+ disabled?: boolean;
6
+ onChange: (path: string[], value: any) => void;
7
+ path: string[];
8
+ schemaValue: Primitive | PrimitiveArray | Record<string, any>;
9
+ selectedValue: any;
10
+ };
11
+ export declare const ProviderOptionsTree: React.FC<ProviderOptionTreeNodeProps>;
12
+ export {};
@@ -0,0 +1,166 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { SelectInput } from '@payloadcms/ui';
4
+ import React from 'react';
5
+ export const ProviderOptionsTree = ({ disabled, onChange, path, schemaValue, selectedValue })=>{
6
+ const nodeKey = path.length > 0 ? path[path.length - 1] : 'root';
7
+ const inputId = `po-${path.join('-')}`;
8
+ // Ensure path is properly passed when nested deeper than 1 level
9
+ if (schemaValue && typeof schemaValue === 'object' && !Array.isArray(schemaValue)) {
10
+ return /*#__PURE__*/ _jsxs("div", {
11
+ className: "provider-options-group",
12
+ style: {
13
+ borderLeft: path.length > 0 ? '1px solid var(--theme-elevation-150)' : 'none',
14
+ display: 'grid',
15
+ gap: '1rem',
16
+ marginLeft: path.length > 0 ? '1rem' : '0',
17
+ paddingLeft: path.length > 0 ? '1rem' : '0'
18
+ },
19
+ children: [
20
+ path.length > 0 && /*#__PURE__*/ _jsx("div", {
21
+ className: "field-label",
22
+ style: {
23
+ fontWeight: 600,
24
+ marginBottom: '-0.5rem'
25
+ },
26
+ children: nodeKey
27
+ }),
28
+ Object.entries(schemaValue).map(([key, childSchema])=>/*#__PURE__*/ _jsx(ProviderOptionsTree, {
29
+ disabled: disabled,
30
+ onChange: onChange,
31
+ path: [
32
+ ...path,
33
+ key
34
+ ],
35
+ schemaValue: childSchema,
36
+ selectedValue: selectedValue?.[key]
37
+ }, key))
38
+ ]
39
+ });
40
+ }
41
+ // Handle Array as Select Menu options
42
+ if (Array.isArray(schemaValue)) {
43
+ const options = schemaValue.map((item)=>({
44
+ label: String(item),
45
+ value: String(item)
46
+ }));
47
+ return /*#__PURE__*/ _jsxs("div", {
48
+ className: "field-type select",
49
+ children: [
50
+ /*#__PURE__*/ _jsx("label", {
51
+ className: "field-label",
52
+ htmlFor: inputId,
53
+ children: nodeKey
54
+ }),
55
+ /*#__PURE__*/ _jsx(SelectInput, {
56
+ isClearable: true,
57
+ name: inputId,
58
+ onChange: (selected)=>{
59
+ if (selected && typeof selected === 'object' && 'value' in selected) {
60
+ onChange(path, selected.value);
61
+ return;
62
+ }
63
+ onChange(path, undefined);
64
+ },
65
+ options: options,
66
+ path: inputId,
67
+ readOnly: disabled,
68
+ value: selectedValue !== undefined ? String(selectedValue) : undefined
69
+ })
70
+ ]
71
+ });
72
+ }
73
+ // Handle Boolean as Select Menu True/False
74
+ if (typeof schemaValue === 'boolean') {
75
+ const booleanOptions = [
76
+ {
77
+ label: 'True',
78
+ value: 'true'
79
+ },
80
+ {
81
+ label: 'False',
82
+ value: 'false'
83
+ }
84
+ ];
85
+ const stringVal = selectedValue === true ? 'true' : selectedValue === false ? 'false' : undefined;
86
+ return /*#__PURE__*/ _jsxs("div", {
87
+ className: "field-type select",
88
+ children: [
89
+ /*#__PURE__*/ _jsx("label", {
90
+ className: "field-label",
91
+ htmlFor: inputId,
92
+ children: nodeKey
93
+ }),
94
+ /*#__PURE__*/ _jsx(SelectInput, {
95
+ isClearable: true,
96
+ name: inputId,
97
+ onChange: (selected)=>{
98
+ if (selected && typeof selected === 'object' && 'value' in selected) {
99
+ onChange(path, selected.value === 'true');
100
+ return;
101
+ }
102
+ onChange(path, undefined);
103
+ },
104
+ options: booleanOptions,
105
+ path: inputId,
106
+ readOnly: disabled,
107
+ value: stringVal
108
+ })
109
+ ]
110
+ });
111
+ }
112
+ // Handle Number Input
113
+ if (typeof schemaValue === 'number') {
114
+ return /*#__PURE__*/ _jsxs("div", {
115
+ className: "field-type number",
116
+ children: [
117
+ /*#__PURE__*/ _jsx("label", {
118
+ className: "field-label",
119
+ htmlFor: inputId,
120
+ children: nodeKey
121
+ }),
122
+ /*#__PURE__*/ _jsx("input", {
123
+ disabled: disabled,
124
+ id: inputId,
125
+ name: inputId,
126
+ onChange: (e)=>{
127
+ const val = e.target.value;
128
+ onChange(path, val === '' ? undefined : Number(val));
129
+ },
130
+ style: {
131
+ width: '100%'
132
+ },
133
+ type: "number",
134
+ value: typeof selectedValue === 'number' && !Number.isNaN(selectedValue) ? Number(selectedValue) : ''
135
+ })
136
+ ]
137
+ });
138
+ }
139
+ // Handle Text Input
140
+ return /*#__PURE__*/ _jsxs("div", {
141
+ className: "field-type text",
142
+ children: [
143
+ /*#__PURE__*/ _jsx("label", {
144
+ className: "field-label",
145
+ htmlFor: inputId,
146
+ children: nodeKey
147
+ }),
148
+ /*#__PURE__*/ _jsx("input", {
149
+ disabled: disabled,
150
+ id: inputId,
151
+ name: inputId,
152
+ onChange: (e)=>{
153
+ const val = e.target.value;
154
+ onChange(path, val.trim() === '' ? undefined : val);
155
+ },
156
+ style: {
157
+ width: '100%'
158
+ },
159
+ type: "text",
160
+ value: typeof selectedValue === 'string' ? selectedValue : ''
161
+ })
162
+ ]
163
+ });
164
+ };
165
+
166
+ //# sourceMappingURL=ProviderOptionsTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/ui/InstructionProviderOptions/ProviderOptionsTree.tsx"],"sourcesContent":["'use client'\n\nimport type { OptionObject } from 'payload'\n\nimport { SelectInput } from '@payloadcms/ui'\nimport React from 'react'\n\ntype Primitive = boolean | null | number | string | undefined\ntype PrimitiveArray = number[] | string[]\n\ntype ProviderOptionTreeNodeProps = {\n disabled?: boolean\n onChange: (path: string[], value: any) => void\n path: string[]\n schemaValue: Primitive | PrimitiveArray | Record<string, any>\n selectedValue: any\n}\n\nexport const ProviderOptionsTree: React.FC<ProviderOptionTreeNodeProps> = ({\n disabled,\n onChange,\n path,\n schemaValue,\n selectedValue,\n}) => {\n const nodeKey = path.length > 0 ? path[path.length - 1] : 'root'\n const inputId = `po-${path.join('-')}`\n\n // Ensure path is properly passed when nested deeper than 1 level\n if (schemaValue && typeof schemaValue === 'object' && !Array.isArray(schemaValue)) {\n return (\n <div className=\"provider-options-group\" style={{ \n borderLeft: path.length > 0 ? '1px solid var(--theme-elevation-150)' : 'none', \n display: 'grid', \n gap: '1rem', \n marginLeft: path.length > 0 ? '1rem' : '0', \n paddingLeft: path.length > 0 ? '1rem' : '0' \n }}>\n {path.length > 0 && <div className=\"field-label\" style={{ fontWeight: 600, marginBottom: '-0.5rem' }}>{nodeKey}</div>}\n {Object.entries(schemaValue).map(([key, childSchema]) => (\n <ProviderOptionsTree\n disabled={disabled}\n key={key}\n onChange={onChange}\n path={[...path, key]}\n schemaValue={childSchema}\n selectedValue={selectedValue?.[key]}\n />\n ))}\n </div>\n )\n }\n\n // Handle Array as Select Menu options\n if (Array.isArray(schemaValue)) {\n const options: OptionObject[] = schemaValue.map((item) => ({\n label: String(item),\n value: String(item),\n }))\n\n return (\n <div className=\"field-type select\">\n <label className=\"field-label\" htmlFor={inputId}>\n {nodeKey}\n </label>\n <SelectInput\n isClearable\n name={inputId}\n onChange={(selected) => {\n if (selected && typeof selected === 'object' && 'value' in selected) {\n onChange(path, (selected as OptionObject).value)\n return\n }\n onChange(path, undefined)\n }}\n options={options}\n path={inputId}\n readOnly={disabled}\n value={selectedValue !== undefined ? String(selectedValue) : undefined}\n />\n </div>\n )\n }\n\n // Handle Boolean as Select Menu True/False\n if (typeof schemaValue === 'boolean') {\n const booleanOptions: OptionObject[] = [\n { label: 'True', value: 'true' },\n { label: 'False', value: 'false' },\n ]\n const stringVal = selectedValue === true ? 'true' : selectedValue === false ? 'false' : undefined\n\n return (\n <div className=\"field-type select\">\n <label className=\"field-label\" htmlFor={inputId}>\n {nodeKey}\n </label>\n <SelectInput\n isClearable\n name={inputId}\n onChange={(selected) => {\n if (selected && typeof selected === 'object' && 'value' in selected) {\n onChange(path, (selected as OptionObject).value === 'true')\n return\n }\n onChange(path, undefined)\n }}\n options={booleanOptions}\n path={inputId}\n readOnly={disabled}\n value={stringVal}\n />\n </div>\n )\n }\n\n // Handle Number Input\n if (typeof schemaValue === 'number') {\n return (\n <div className=\"field-type number\">\n <label className=\"field-label\" htmlFor={inputId}>\n {nodeKey}\n </label>\n <input\n disabled={disabled}\n id={inputId}\n name={inputId}\n onChange={(e) => {\n const val = e.target.value\n onChange(path, val === '' ? undefined : Number(val))\n }}\n style={{ width: '100%' }}\n type=\"number\"\n value={\n typeof selectedValue === 'number' && !Number.isNaN(selectedValue)\n ? Number(selectedValue)\n : ''\n }\n />\n </div>\n )\n }\n\n // Handle Text Input\n return (\n <div className=\"field-type text\">\n <label className=\"field-label\" htmlFor={inputId}>\n {nodeKey}\n </label>\n <input\n disabled={disabled}\n id={inputId}\n name={inputId}\n onChange={(e) => {\n const val = e.target.value\n onChange(path, val.trim() === '' ? undefined : val)\n }}\n style={{ width: '100%' }}\n type=\"text\"\n value={typeof selectedValue === 'string' ? selectedValue : ''}\n />\n </div>\n )\n}\n"],"names":["SelectInput","React","ProviderOptionsTree","disabled","onChange","path","schemaValue","selectedValue","nodeKey","length","inputId","join","Array","isArray","div","className","style","borderLeft","display","gap","marginLeft","paddingLeft","fontWeight","marginBottom","Object","entries","map","key","childSchema","options","item","label","String","value","htmlFor","isClearable","name","selected","undefined","readOnly","booleanOptions","stringVal","input","id","e","val","target","Number","width","type","isNaN","trim"],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ 'use client';
2
+ import { SelectInput } from '@payloadcms/ui';
3
+ import React from 'react';
4
+ export const ProviderOptionsTree = ({ disabled, onChange, path, schemaValue, selectedValue, }) => {
5
+ const nodeKey = path.length > 0 ? path[path.length - 1] : 'root';
6
+ const inputId = `po-${path.join('-')}`;
7
+ // Ensure path is properly passed when nested deeper than 1 level
8
+ if (schemaValue && typeof schemaValue === 'object' && !Array.isArray(schemaValue)) {
9
+ return (<div className="provider-options-group" style={{
10
+ borderLeft: path.length > 0 ? '1px solid var(--theme-elevation-150)' : 'none',
11
+ display: 'grid',
12
+ gap: '1rem',
13
+ marginLeft: path.length > 0 ? '1rem' : '0',
14
+ paddingLeft: path.length > 0 ? '1rem' : '0'
15
+ }}>
16
+ {path.length > 0 && <div className="field-label" style={{ fontWeight: 600, marginBottom: '-0.5rem' }}>{nodeKey}</div>}
17
+ {Object.entries(schemaValue).map(([key, childSchema]) => (<ProviderOptionsTree disabled={disabled} key={key} onChange={onChange} path={[...path, key]} schemaValue={childSchema} selectedValue={selectedValue?.[key]}/>))}
18
+ </div>);
19
+ }
20
+ // Handle Array as Select Menu options
21
+ if (Array.isArray(schemaValue)) {
22
+ const options = schemaValue.map((item) => ({
23
+ label: String(item),
24
+ value: String(item),
25
+ }));
26
+ return (<div className="field-type select">
27
+ <label className="field-label" htmlFor={inputId}>
28
+ {nodeKey}
29
+ </label>
30
+ <SelectInput isClearable name={inputId} onChange={(selected) => {
31
+ if (selected && typeof selected === 'object' && 'value' in selected) {
32
+ onChange(path, selected.value);
33
+ return;
34
+ }
35
+ onChange(path, undefined);
36
+ }} options={options} path={inputId} readOnly={disabled} value={selectedValue !== undefined ? String(selectedValue) : undefined}/>
37
+ </div>);
38
+ }
39
+ // Handle Boolean as Select Menu True/False
40
+ if (typeof schemaValue === 'boolean') {
41
+ const booleanOptions = [
42
+ { label: 'True', value: 'true' },
43
+ { label: 'False', value: 'false' },
44
+ ];
45
+ const stringVal = selectedValue === true ? 'true' : selectedValue === false ? 'false' : undefined;
46
+ return (<div className="field-type select">
47
+ <label className="field-label" htmlFor={inputId}>
48
+ {nodeKey}
49
+ </label>
50
+ <SelectInput isClearable name={inputId} onChange={(selected) => {
51
+ if (selected && typeof selected === 'object' && 'value' in selected) {
52
+ onChange(path, selected.value === 'true');
53
+ return;
54
+ }
55
+ onChange(path, undefined);
56
+ }} options={booleanOptions} path={inputId} readOnly={disabled} value={stringVal}/>
57
+ </div>);
58
+ }
59
+ // Handle Number Input
60
+ if (typeof schemaValue === 'number') {
61
+ return (<div className="field-type number">
62
+ <label className="field-label" htmlFor={inputId}>
63
+ {nodeKey}
64
+ </label>
65
+ <input disabled={disabled} id={inputId} name={inputId} onChange={(e) => {
66
+ const val = e.target.value;
67
+ onChange(path, val === '' ? undefined : Number(val));
68
+ }} style={{ width: '100%' }} type="number" value={typeof selectedValue === 'number' && !Number.isNaN(selectedValue)
69
+ ? Number(selectedValue)
70
+ : ''}/>
71
+ </div>);
72
+ }
73
+ // Handle Text Input
74
+ return (<div className="field-type text">
75
+ <label className="field-label" htmlFor={inputId}>
76
+ {nodeKey}
77
+ </label>
78
+ <input disabled={disabled} id={inputId} name={inputId} onChange={(e) => {
79
+ const val = e.target.value;
80
+ onChange(path, val.trim() === '' ? undefined : val);
81
+ }} style={{ width: '100%' }} type="text" value={typeof selectedValue === 'string' ? selectedValue : ''}/>
82
+ </div>);
83
+ };
@@ -0,0 +1,2 @@
1
+ import type { FieldClientComponent } from 'payload';
2
+ export declare const InstructionProviderOptions: FieldClientComponent;
@@ -0,0 +1,157 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useField, useFormFields } from '@payloadcms/ui';
4
+ import * as React from 'react';
5
+ import { useCallback, useMemo } from 'react';
6
+ import { useAISettings } from '../hooks/useAISettings.js';
7
+ import { updateProviderOptionsValue } from '../providerOptions/updateProviderOptionsValue.js';
8
+ import { ProviderOptionsTree } from './ProviderOptionsTree.js';
9
+ function inferUseCase(fieldPath) {
10
+ const parentName = fieldPath.split('.').slice(-2)[0];
11
+ if (parentName === 'image-settings') {
12
+ return 'image';
13
+ }
14
+ if (parentName === 'tts-settings') {
15
+ return 'tts';
16
+ }
17
+ if (parentName === 'video-settings') {
18
+ return 'video';
19
+ }
20
+ return 'text';
21
+ }
22
+ export const InstructionProviderOptions = ({ path })=>{
23
+ const { data: aiSettings } = useAISettings();
24
+ const fieldPath = path || '';
25
+ const groupPath = fieldPath.split('.').slice(0, -1).join('.');
26
+ const providerPath = `${groupPath}.provider`;
27
+ const useCase = useMemo(()=>inferUseCase(fieldPath), [
28
+ fieldPath
29
+ ]);
30
+ const providerField = useFormFields(([fields])=>fields[providerPath]);
31
+ const provider = providerField?.value;
32
+ const { setValue: setProviderOptionsValues, value: providerOptionsValues } = useField({
33
+ path: fieldPath
34
+ });
35
+ // 1. Find the provider's schema for this use case
36
+ const schema = useMemo(()=>{
37
+ if (!provider || !aiSettings?.defaults) {
38
+ return null;
39
+ }
40
+ const useCaseDefaults = aiSettings.defaults[useCase];
41
+ // We stored the raw schema object directly under schemas[provider] during autoSetup
42
+ const schemas = useCaseDefaults?.schema;
43
+ return schemas?.[provider] || null;
44
+ }, [
45
+ aiSettings,
46
+ provider,
47
+ useCase
48
+ ]);
49
+ const providerLabel = useMemo(()=>{
50
+ if (!provider) {
51
+ return undefined;
52
+ }
53
+ const providers = Array.isArray(aiSettings?.providers) ? aiSettings.providers : [];
54
+ const configuredProvider = providers.find((item)=>item && typeof item === 'object' && 'blockType' in item && item.blockType === provider);
55
+ if (configuredProvider?.providerName) {
56
+ return configuredProvider.providerName;
57
+ }
58
+ return provider;
59
+ }, [
60
+ aiSettings?.providers,
61
+ provider
62
+ ]);
63
+ const handleOptionChange = useCallback((keyPath, targetValue)=>{
64
+ const nextValue = updateProviderOptionsValue({
65
+ currentValue: providerOptionsValues,
66
+ keyPath,
67
+ provider,
68
+ targetValue
69
+ });
70
+ setProviderOptionsValues(nextValue);
71
+ }, [
72
+ providerOptionsValues,
73
+ provider,
74
+ setProviderOptionsValues
75
+ ]);
76
+ if (!provider) {
77
+ return /*#__PURE__*/ _jsxs("div", {
78
+ className: "field-type",
79
+ style: {
80
+ marginTop: '1rem'
81
+ },
82
+ children: [
83
+ /*#__PURE__*/ _jsx("div", {
84
+ className: "field-label",
85
+ children: "Provider Options"
86
+ }),
87
+ /*#__PURE__*/ _jsx("p", {
88
+ style: {
89
+ color: 'var(--theme-elevation-500)',
90
+ margin: 0
91
+ },
92
+ children: "Select a provider to configure provider options."
93
+ })
94
+ ]
95
+ });
96
+ }
97
+ if (!schema || typeof schema !== 'object' || Object.keys(schema).length === 0) {
98
+ return /*#__PURE__*/ _jsxs("div", {
99
+ className: "field-type",
100
+ style: {
101
+ marginTop: '1rem'
102
+ },
103
+ children: [
104
+ /*#__PURE__*/ _jsx("div", {
105
+ className: "field-label",
106
+ children: "Provider Options"
107
+ }),
108
+ /*#__PURE__*/ _jsx("p", {
109
+ style: {
110
+ color: 'var(--theme-elevation-500)',
111
+ margin: 0
112
+ },
113
+ children: "No provider options are configured for this provider and capability."
114
+ })
115
+ ]
116
+ });
117
+ }
118
+ const selectedProviderValues = providerOptionsValues?.[provider] || {};
119
+ return /*#__PURE__*/ _jsxs("div", {
120
+ className: "field-type",
121
+ style: {
122
+ marginTop: '1rem'
123
+ },
124
+ children: [
125
+ /*#__PURE__*/ _jsx("div", {
126
+ className: "field-label",
127
+ children: "Provider Options"
128
+ }),
129
+ /*#__PURE__*/ _jsxs("p", {
130
+ style: {
131
+ color: 'var(--theme-elevation-500)',
132
+ marginBottom: '0.75rem',
133
+ marginTop: 0
134
+ },
135
+ children: [
136
+ "Override ",
137
+ providerLabel || provider,
138
+ " provider options for this field."
139
+ ]
140
+ }),
141
+ /*#__PURE__*/ _jsx("div", {
142
+ style: {
143
+ display: 'flex',
144
+ flexDirection: 'column'
145
+ },
146
+ children: /*#__PURE__*/ _jsx(ProviderOptionsTree, {
147
+ onChange: handleOptionChange,
148
+ path: [],
149
+ schemaValue: schema,
150
+ selectedValue: selectedProviderValues
151
+ })
152
+ })
153
+ ]
154
+ });
155
+ };
156
+
157
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/ui/InstructionProviderOptions/index.tsx"],"sourcesContent":["'use client'\n\nimport type { FieldClientComponent } from 'payload'\n\nimport { useField, useFormFields } from '@payloadcms/ui'\nimport * as React from 'react'\nimport { useCallback, useMemo } from 'react'\n\nimport { useAISettings } from '../hooks/useAISettings.js'\nimport { updateProviderOptionsValue } from '../providerOptions/updateProviderOptionsValue.js'\nimport { ProviderOptionsTree } from './ProviderOptionsTree.js'\n\nfunction inferUseCase(fieldPath: string): 'image' | 'text' | 'tts' | 'video' {\n const parentName = fieldPath.split('.').slice(-2)[0]\n\n if (parentName === 'image-settings') {\n return 'image'\n }\n if (parentName === 'tts-settings') {\n return 'tts'\n }\n if (parentName === 'video-settings') {\n return 'video'\n }\n\n return 'text'\n}\n\nexport const InstructionProviderOptions: FieldClientComponent = ({ path }) => {\n const { data: aiSettings } = useAISettings()\n\n const fieldPath = (path as string) || ''\n const groupPath = fieldPath.split('.').slice(0, -1).join('.')\n const providerPath = `${groupPath}.provider`\n const useCase = useMemo(() => inferUseCase(fieldPath), [fieldPath])\n\n const providerField = useFormFields(([fields]) => fields[providerPath])\n const provider = providerField?.value as string | undefined\n\n const { setValue: setProviderOptionsValues, value: providerOptionsValues } = useField<unknown>({\n path: fieldPath,\n })\n\n // 1. Find the provider's schema for this use case\n const schema = useMemo(() => {\n if (!provider || !aiSettings?.defaults) {\n return null\n }\n const useCaseDefaults = (aiSettings.defaults as Record<string, unknown>)[useCase] as Record<\n string,\n unknown\n >\n // We stored the raw schema object directly under schemas[provider] during autoSetup\n const schemas = useCaseDefaults?.schema as Record<string, unknown> | undefined\n return schemas?.[provider] || null\n }, [aiSettings, provider, useCase])\n\n const providerLabel = useMemo(() => {\n if (!provider) {\n return undefined\n }\n\n const providers = Array.isArray(aiSettings?.providers) ? aiSettings.providers : []\n const configuredProvider = providers.find(\n (item) =>\n item &&\n typeof item === 'object' &&\n 'blockType' in item &&\n (item as { blockType?: unknown }).blockType === provider,\n ) as { providerName?: string } | undefined\n\n if (configuredProvider?.providerName) {\n return configuredProvider.providerName\n }\n\n return provider\n }, [aiSettings?.providers, provider])\n\n const handleOptionChange = useCallback(\n (keyPath: string[], targetValue: unknown) => {\n const nextValue = updateProviderOptionsValue({\n currentValue: providerOptionsValues,\n keyPath,\n provider,\n targetValue,\n })\n setProviderOptionsValues(nextValue)\n },\n [providerOptionsValues, provider, setProviderOptionsValues],\n )\n\n if (!provider) {\n return (\n <div className=\"field-type\" style={{ marginTop: '1rem' }}>\n <div className=\"field-label\">Provider Options</div>\n <p style={{ color: 'var(--theme-elevation-500)', margin: 0 }}>\n Select a provider to configure provider options.\n </p>\n </div>\n )\n }\n\n if (!schema || typeof schema !== 'object' || Object.keys(schema).length === 0) {\n return (\n <div className=\"field-type\" style={{ marginTop: '1rem' }}>\n <div className=\"field-label\">Provider Options</div>\n <p style={{ color: 'var(--theme-elevation-500)', margin: 0 }}>\n No provider options are configured for this provider and capability.\n </p>\n </div>\n )\n }\n\n const selectedProviderValues = (providerOptionsValues as Record<string, any>)?.[provider] || {}\n\n return (\n <div className=\"field-type\" style={{ marginTop: '1rem' }}>\n <div className=\"field-label\">Provider Options</div>\n <p style={{ color: 'var(--theme-elevation-500)', marginBottom: '0.75rem', marginTop: 0 }}>\n Override {providerLabel || provider} provider options for this field.\n </p>\n\n <div style={{ display: 'flex', flexDirection: 'column' }}>\n <ProviderOptionsTree\n onChange={handleOptionChange}\n path={[]}\n schemaValue={schema}\n selectedValue={selectedProviderValues}\n />\n </div>\n </div>\n )\n}\n"],"names":["useField","useFormFields","React","useCallback","useMemo","useAISettings","updateProviderOptionsValue","ProviderOptionsTree","inferUseCase","fieldPath","parentName","split","slice","InstructionProviderOptions","path","data","aiSettings","groupPath","join","providerPath","useCase","providerField","fields","provider","value","setValue","setProviderOptionsValues","providerOptionsValues","schema","defaults","useCaseDefaults","schemas","providerLabel","undefined","providers","Array","isArray","configuredProvider","find","item","blockType","providerName","handleOptionChange","keyPath","targetValue","nextValue","currentValue","div","className","style","marginTop","p","color","margin","Object","keys","length","selectedProviderValues","marginBottom","display","flexDirection","onChange","schemaValue","selectedValue"],"mappings":"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"}