@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.
- package/dist/admin/components/AIChat/Chat.js +435 -0
- package/dist/admin/components/AIChat/Chat.js.map +1 -0
- package/dist/admin/components/AIChat/Chat.mjs +433 -0
- package/dist/admin/components/AIChat/Chat.mjs.map +1 -0
- package/dist/admin/components/AIChat/FeedbackModal.js +237 -0
- package/dist/admin/components/AIChat/FeedbackModal.js.map +1 -0
- package/dist/admin/components/AIChat/FeedbackModal.mjs +233 -0
- package/dist/admin/components/AIChat/FeedbackModal.mjs.map +1 -0
- package/dist/admin/components/AIChat/UploadCodeModal.js +427 -0
- package/dist/admin/components/AIChat/UploadCodeModal.js.map +1 -0
- package/dist/admin/components/AIChat/UploadCodeModal.mjs +423 -0
- package/dist/admin/components/AIChat/UploadCodeModal.mjs.map +1 -0
- package/dist/admin/components/AIChat/UploadFigmaModal.js +377 -0
- package/dist/admin/components/AIChat/UploadFigmaModal.js.map +1 -0
- package/dist/admin/components/AIChat/UploadFigmaModal.mjs +373 -0
- package/dist/admin/components/AIChat/UploadFigmaModal.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/Alert.js +46 -0
- package/dist/admin/components/AIChat/components/Alert.js.map +1 -0
- package/dist/admin/components/AIChat/components/Alert.mjs +44 -0
- package/dist/admin/components/AIChat/components/Alert.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/AnimatedBox.js +34 -0
- package/dist/admin/components/AIChat/components/AnimatedBox.js.map +1 -0
- package/dist/admin/components/AIChat/components/AnimatedBox.mjs +32 -0
- package/dist/admin/components/AIChat/components/AnimatedBox.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.js +92 -0
- package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.js.map +1 -0
- package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.mjs +90 -0
- package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js +100 -0
- package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js.map +1 -0
- package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs +97 -0
- package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/Base64Image.js +127 -0
- package/dist/admin/components/AIChat/components/Base64Image.js.map +1 -0
- package/dist/admin/components/AIChat/components/Base64Image.mjs +125 -0
- package/dist/admin/components/AIChat/components/Base64Image.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/Collapsible.js +71 -0
- package/dist/admin/components/AIChat/components/Collapsible.js.map +1 -0
- package/dist/admin/components/AIChat/components/Collapsible.mjs +66 -0
- package/dist/admin/components/AIChat/components/Collapsible.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/Dropzone.js +172 -0
- package/dist/admin/components/AIChat/components/Dropzone.js.map +1 -0
- package/dist/admin/components/AIChat/components/Dropzone.mjs +167 -0
- package/dist/admin/components/AIChat/components/Dropzone.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/FloatingPanel.js +166 -0
- package/dist/admin/components/AIChat/components/FloatingPanel.js.map +1 -0
- package/dist/admin/components/AIChat/components/FloatingPanel.mjs +163 -0
- package/dist/admin/components/AIChat/components/FloatingPanel.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/FullScreenImage.js +190 -0
- package/dist/admin/components/AIChat/components/FullScreenImage.js.map +1 -0
- package/dist/admin/components/AIChat/components/FullScreenImage.mjs +187 -0
- package/dist/admin/components/AIChat/components/FullScreenImage.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/ImagePreview.js +87 -0
- package/dist/admin/components/AIChat/components/ImagePreview.js.map +1 -0
- package/dist/admin/components/AIChat/components/ImagePreview.mjs +85 -0
- package/dist/admin/components/AIChat/components/ImagePreview.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/Input.js +126 -0
- package/dist/admin/components/AIChat/components/Input.js.map +1 -0
- package/dist/admin/components/AIChat/components/Input.mjs +121 -0
- package/dist/admin/components/AIChat/components/Input.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/Messages/Marker.js +138 -0
- package/dist/admin/components/AIChat/components/Messages/Marker.js.map +1 -0
- package/dist/admin/components/AIChat/components/Messages/Marker.mjs +136 -0
- package/dist/admin/components/AIChat/components/Messages/Marker.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/Messages/Message.js +214 -0
- package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -0
- package/dist/admin/components/AIChat/components/Messages/Message.mjs +212 -0
- package/dist/admin/components/AIChat/components/Messages/Message.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/ResizableTextArea.js +78 -0
- package/dist/admin/components/AIChat/components/ResizableTextArea.js.map +1 -0
- package/dist/admin/components/AIChat/components/ResizableTextArea.mjs +76 -0
- package/dist/admin/components/AIChat/components/ResizableTextArea.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/SimpleMenu.js +60 -0
- package/dist/admin/components/AIChat/components/SimpleMenu.js.map +1 -0
- package/dist/admin/components/AIChat/components/SimpleMenu.mjs +35 -0
- package/dist/admin/components/AIChat/components/SimpleMenu.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/StepModal.js +175 -0
- package/dist/admin/components/AIChat/components/StepModal.js.map +1 -0
- package/dist/admin/components/AIChat/components/StepModal.mjs +171 -0
- package/dist/admin/components/AIChat/components/StepModal.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/animations.js +67 -0
- package/dist/admin/components/AIChat/components/animations.js.map +1 -0
- package/dist/admin/components/AIChat/components/animations.mjs +65 -0
- package/dist/admin/components/AIChat/components/animations.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/icons/FigmaIcon.js +50 -0
- package/dist/admin/components/AIChat/components/icons/FigmaIcon.js.map +1 -0
- package/dist/admin/components/AIChat/components/icons/FigmaIcon.mjs +48 -0
- package/dist/admin/components/AIChat/components/icons/FigmaIcon.mjs.map +1 -0
- package/dist/admin/components/AIChat/components/icons/StopIcon.js +25 -0
- package/dist/admin/components/AIChat/components/icons/StopIcon.js.map +1 -0
- package/dist/admin/components/AIChat/components/icons/StopIcon.mjs +23 -0
- package/dist/admin/components/AIChat/components/icons/StopIcon.mjs.map +1 -0
- package/dist/admin/components/AIChat/hooks/useAIFetch.js +107 -0
- package/dist/admin/components/AIChat/hooks/useAIFetch.js.map +1 -0
- package/dist/admin/components/AIChat/hooks/useAIFetch.mjs +96 -0
- package/dist/admin/components/AIChat/hooks/useAIFetch.mjs.map +1 -0
- package/dist/admin/components/AIChat/hooks/useAttachments.js +152 -0
- package/dist/admin/components/AIChat/hooks/useAttachments.js.map +1 -0
- package/dist/admin/components/AIChat/hooks/useAttachments.mjs +150 -0
- package/dist/admin/components/AIChat/hooks/useAttachments.mjs.map +1 -0
- package/dist/admin/components/AIChat/hooks/useChatTitle.js +47 -0
- package/dist/admin/components/AIChat/hooks/useChatTitle.js.map +1 -0
- package/dist/admin/components/AIChat/hooks/useChatTitle.mjs +45 -0
- package/dist/admin/components/AIChat/hooks/useChatTitle.mjs.map +1 -0
- package/dist/admin/components/AIChat/hooks/useCodeUpload.js +212 -0
- package/dist/admin/components/AIChat/hooks/useCodeUpload.js.map +1 -0
- package/dist/admin/components/AIChat/hooks/useCodeUpload.mjs +207 -0
- package/dist/admin/components/AIChat/hooks/useCodeUpload.mjs.map +1 -0
- package/dist/admin/components/AIChat/hooks/useFeedback.js +76 -0
- package/dist/admin/components/AIChat/hooks/useFeedback.js.map +1 -0
- package/dist/admin/components/AIChat/hooks/useFeedback.mjs +74 -0
- package/dist/admin/components/AIChat/hooks/useFeedback.mjs.map +1 -0
- package/dist/admin/components/AIChat/hooks/useFigmaUpload.js +206 -0
- package/dist/admin/components/AIChat/hooks/useFigmaUpload.js.map +1 -0
- package/dist/admin/components/AIChat/hooks/useFigmaUpload.mjs +200 -0
- package/dist/admin/components/AIChat/hooks/useFigmaUpload.mjs.map +1 -0
- package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.js +115 -0
- package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.js.map +1 -0
- package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.mjs +113 -0
- package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.mjs.map +1 -0
- package/dist/admin/components/AIChat/hooks/useTranslations.js +19 -0
- package/dist/admin/components/AIChat/hooks/useTranslations.js.map +1 -0
- package/dist/admin/components/AIChat/hooks/useTranslations.mjs +17 -0
- package/dist/admin/components/AIChat/hooks/useTranslations.mjs.map +1 -0
- package/dist/admin/components/AIChat/lib/aiClient.js +168 -0
- package/dist/admin/components/AIChat/lib/aiClient.js.map +1 -0
- package/dist/admin/components/AIChat/lib/aiClient.mjs +161 -0
- package/dist/admin/components/AIChat/lib/aiClient.mjs.map +1 -0
- package/dist/admin/components/AIChat/lib/constants.js +16 -0
- package/dist/admin/components/AIChat/lib/constants.js.map +1 -0
- package/dist/admin/components/AIChat/lib/constants.mjs +10 -0
- package/dist/admin/components/AIChat/lib/constants.mjs.map +1 -0
- package/dist/admin/components/AIChat/lib/misc.js +8 -0
- package/dist/admin/components/AIChat/lib/misc.js.map +1 -0
- package/dist/admin/components/AIChat/lib/misc.mjs +6 -0
- package/dist/admin/components/AIChat/lib/misc.mjs.map +1 -0
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js +46 -0
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js.map +1 -0
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs +44 -0
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs.map +1 -0
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js +151 -0
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js.map +1 -0
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs +148 -0
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs.map +1 -0
- package/dist/admin/components/AIChat/providers/ChatProvider.js +191 -0
- package/dist/admin/components/AIChat/providers/ChatProvider.js.map +1 -0
- package/dist/admin/components/AIChat/providers/ChatProvider.mjs +187 -0
- package/dist/admin/components/AIChat/providers/ChatProvider.mjs.map +1 -0
- package/dist/admin/components/AIChat/providers/SchemaProvider.js +90 -0
- package/dist/admin/components/AIChat/providers/SchemaProvider.js.map +1 -0
- package/dist/admin/components/AIChat/providers/SchemaProvider.mjs +88 -0
- package/dist/admin/components/AIChat/providers/SchemaProvider.mjs.map +1 -0
- package/dist/admin/components/ComponentList.js +1 -0
- package/dist/admin/components/ComponentList.js.map +1 -1
- package/dist/admin/components/ComponentList.mjs +1 -0
- package/dist/admin/components/ComponentList.mjs.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js +165 -161
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +165 -161
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -1
- package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -1
- package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -1
- package/dist/admin/components/DataManager/reducer.js +48 -6
- package/dist/admin/components/DataManager/reducer.js.map +1 -1
- package/dist/admin/components/DataManager/reducer.mjs +48 -6
- package/dist/admin/components/DataManager/reducer.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/canEditContentType.js.map +1 -1
- package/dist/admin/components/FormModal/utils/canEditContentType.mjs.map +1 -1
- package/dist/admin/pages/App/index.js +60 -29
- package/dist/admin/pages/App/index.js.map +1 -1
- package/dist/admin/pages/App/index.mjs +62 -31
- package/dist/admin/pages/App/index.mjs.map +1 -1
- package/dist/admin/pages/ListView/EmptyState.js +75 -9
- package/dist/admin/pages/ListView/EmptyState.js.map +1 -1
- package/dist/admin/pages/ListView/EmptyState.mjs +77 -11
- package/dist/admin/pages/ListView/EmptyState.mjs.map +1 -1
- package/dist/admin/src/components/AIChat/Chat.d.ts +2 -0
- package/dist/admin/src/components/AIChat/FeedbackModal.d.ts +13 -0
- package/dist/admin/src/components/AIChat/UploadCodeModal.d.ts +12 -0
- package/dist/admin/src/components/AIChat/UploadFigmaModal.d.ts +12 -0
- package/dist/admin/src/components/AIChat/components/Alert.d.ts +6 -0
- package/dist/admin/src/components/AIChat/components/AnimatedBox.d.ts +13 -0
- package/dist/admin/src/components/AIChat/components/Attachments/AttachmentPreview.d.ts +9 -0
- package/dist/admin/src/components/AIChat/components/Attachments/components/Attachment.d.ts +27 -0
- package/dist/admin/src/components/AIChat/components/Base64Image.d.ts +9 -0
- package/dist/admin/src/components/AIChat/components/Collapsible.d.ts +18 -0
- package/dist/admin/src/components/AIChat/components/Dropzone.d.ts +35 -0
- package/dist/admin/src/components/AIChat/components/FloatingPanel.d.ts +34 -0
- package/dist/admin/src/components/AIChat/components/FullScreenImage.d.ts +20 -0
- package/dist/admin/src/components/AIChat/components/ImagePreview.d.ts +8 -0
- package/dist/admin/src/components/AIChat/components/ImagePreviewGroup.d.ts +7 -0
- package/dist/admin/src/components/AIChat/components/Input.d.ts +43 -0
- package/dist/admin/src/components/AIChat/components/Messages/Marker.d.ts +2 -0
- package/dist/admin/src/components/AIChat/components/Messages/Message.d.ts +5 -0
- package/dist/admin/src/components/AIChat/components/ResizableTextArea.d.ts +9 -0
- package/dist/admin/src/components/AIChat/components/SimpleMenu.d.ts +32 -0
- package/dist/admin/src/components/AIChat/components/StepModal.d.ts +37 -0
- package/dist/admin/src/components/AIChat/components/animations.d.ts +8 -0
- package/dist/admin/src/components/AIChat/components/icons/FigmaIcon.d.ts +5 -0
- package/dist/admin/src/components/AIChat/components/icons/StopIcon.d.ts +5 -0
- package/dist/admin/src/components/AIChat/hooks/useAIFetch.d.ts +147 -0
- package/dist/admin/src/components/AIChat/hooks/useAttachments.d.ts +8 -0
- package/dist/admin/src/components/AIChat/hooks/useChatTitle.d.ts +13 -0
- package/dist/admin/src/components/AIChat/hooks/useCodeUpload.d.ts +31 -0
- package/dist/admin/src/components/AIChat/hooks/useFeedback.d.ts +7 -0
- package/dist/admin/src/components/AIChat/hooks/useFigmaUpload.d.ts +61 -0
- package/dist/admin/src/components/AIChat/hooks/useLastSeenSchemas.d.ts +10 -0
- package/dist/admin/src/components/AIChat/hooks/useTranslations.d.ts +3 -0
- package/dist/admin/src/components/AIChat/lib/aiClient.d.ts +32 -0
- package/dist/admin/src/components/AIChat/lib/constants.d.ts +12 -0
- package/dist/admin/src/components/AIChat/lib/fileToAttachment.d.ts +2 -0
- package/dist/admin/src/components/AIChat/lib/misc.d.ts +1 -0
- package/dist/admin/src/components/AIChat/lib/transforms/schemas/fromCTB.d.ts +3 -0
- package/dist/admin/src/components/AIChat/lib/transforms/schemas/toCTB.d.ts +16 -0
- package/dist/admin/src/components/AIChat/lib/types/annotations.d.ts +19 -0
- package/dist/admin/src/components/AIChat/lib/types/attachments.d.ts +15 -0
- package/dist/admin/src/components/AIChat/lib/types/feedback.d.ts +1 -0
- package/dist/admin/src/components/AIChat/lib/types/messages.d.ts +26 -0
- package/dist/admin/src/components/AIChat/lib/types/schema.d.ts +20 -0
- package/dist/admin/src/components/AIChat/providers/ChatProvider.d.ts +30 -0
- package/dist/admin/src/components/AIChat/providers/SchemaProvider.d.ts +10 -0
- package/dist/admin/src/components/ComponentList.d.ts +1 -1
- package/dist/admin/src/components/DataManager/DataManagerContext.d.ts +1 -1
- package/dist/admin/translations/ar.json.js +187 -2
- package/dist/admin/translations/ar.json.js.map +1 -1
- package/dist/admin/translations/ar.json.mjs +187 -3
- package/dist/admin/translations/ar.json.mjs.map +1 -1
- package/dist/admin/translations/de.json.js +42 -7
- package/dist/admin/translations/de.json.js.map +1 -1
- package/dist/admin/translations/de.json.mjs +42 -7
- package/dist/admin/translations/de.json.mjs.map +1 -1
- package/dist/admin/translations/en.json.js +53 -2
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +53 -2
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/es.json.js +37 -15
- package/dist/admin/translations/es.json.js.map +1 -1
- package/dist/admin/translations/es.json.mjs +37 -15
- package/dist/admin/translations/es.json.mjs.map +1 -1
- package/dist/admin/translations/fr.json.js +165 -3
- package/dist/admin/translations/fr.json.js.map +1 -1
- package/dist/admin/translations/fr.json.mjs +165 -4
- package/dist/admin/translations/fr.json.mjs.map +1 -1
- package/dist/admin/translations/id.json.js +93 -23
- package/dist/admin/translations/id.json.js.map +1 -1
- package/dist/admin/translations/id.json.mjs +93 -23
- package/dist/admin/translations/id.json.mjs.map +1 -1
- package/dist/admin/translations/it.json.js +75 -6
- package/dist/admin/translations/it.json.js.map +1 -1
- package/dist/admin/translations/it.json.mjs +75 -6
- package/dist/admin/translations/it.json.mjs.map +1 -1
- package/dist/admin/translations/ja.json.js +191 -5
- package/dist/admin/translations/ja.json.js.map +1 -1
- package/dist/admin/translations/ja.json.mjs +191 -6
- package/dist/admin/translations/ja.json.mjs.map +1 -1
- package/dist/admin/translations/ko.json.js +70 -16
- package/dist/admin/translations/ko.json.js.map +1 -1
- package/dist/admin/translations/ko.json.mjs +70 -16
- package/dist/admin/translations/ko.json.mjs.map +1 -1
- package/dist/admin/translations/ms.json.js +104 -31
- package/dist/admin/translations/ms.json.js.map +1 -1
- package/dist/admin/translations/ms.json.mjs +104 -31
- package/dist/admin/translations/ms.json.mjs.map +1 -1
- package/dist/admin/translations/nl.json.js +95 -15
- package/dist/admin/translations/nl.json.js.map +1 -1
- package/dist/admin/translations/nl.json.mjs +95 -15
- package/dist/admin/translations/nl.json.mjs.map +1 -1
- package/dist/admin/translations/pl.json.js +55 -11
- package/dist/admin/translations/pl.json.js.map +1 -1
- package/dist/admin/translations/pl.json.mjs +55 -11
- package/dist/admin/translations/pl.json.mjs.map +1 -1
- package/dist/admin/translations/pt-BR.json.js +54 -10
- package/dist/admin/translations/pt-BR.json.js.map +1 -1
- package/dist/admin/translations/pt-BR.json.mjs +54 -10
- package/dist/admin/translations/pt-BR.json.mjs.map +1 -1
- package/dist/admin/translations/pt.json.js +187 -2
- package/dist/admin/translations/pt.json.js.map +1 -1
- package/dist/admin/translations/pt.json.mjs +187 -3
- package/dist/admin/translations/pt.json.mjs.map +1 -1
- package/dist/admin/translations/ru.json.js +26 -1
- package/dist/admin/translations/ru.json.js.map +1 -1
- package/dist/admin/translations/ru.json.mjs +26 -1
- package/dist/admin/translations/ru.json.mjs.map +1 -1
- package/dist/admin/translations/sk.json.js +21 -1
- package/dist/admin/translations/sk.json.js.map +1 -1
- package/dist/admin/translations/sk.json.mjs +21 -1
- package/dist/admin/translations/sk.json.mjs.map +1 -1
- package/dist/admin/translations/sv.json.js +21 -1
- package/dist/admin/translations/sv.json.js.map +1 -1
- package/dist/admin/translations/sv.json.mjs +21 -1
- package/dist/admin/translations/sv.json.mjs.map +1 -1
- package/dist/admin/translations/th.json.js +21 -1
- package/dist/admin/translations/th.json.js.map +1 -1
- package/dist/admin/translations/th.json.mjs +21 -1
- package/dist/admin/translations/th.json.mjs.map +1 -1
- package/dist/admin/translations/tr.json.js +21 -1
- package/dist/admin/translations/tr.json.js.map +1 -1
- package/dist/admin/translations/tr.json.mjs +21 -1
- package/dist/admin/translations/tr.json.mjs.map +1 -1
- package/dist/admin/translations/uk.json.js +21 -2
- package/dist/admin/translations/uk.json.js.map +1 -1
- package/dist/admin/translations/uk.json.mjs +21 -2
- package/dist/admin/translations/uk.json.mjs.map +1 -1
- package/dist/admin/translations/zh-Hans.json.js +222 -133
- package/dist/admin/translations/zh-Hans.json.js.map +1 -1
- package/dist/admin/translations/zh-Hans.json.mjs +222 -133
- package/dist/admin/translations/zh-Hans.json.mjs.map +1 -1
- package/dist/admin/translations/zh.json.js +21 -1
- package/dist/admin/translations/zh.json.js.map +1 -1
- package/dist/admin/translations/zh.json.mjs +21 -1
- package/dist/admin/translations/zh.json.mjs.map +1 -1
- package/dist/server/index.js +2 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +2 -0
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/register.js +98 -0
- package/dist/server/register.js.map +1 -0
- package/dist/server/register.mjs +96 -0
- package/dist/server/register.mjs.map +1 -0
- package/dist/server/src/controllers/ai/auth.d.ts +1 -0
- package/dist/server/src/controllers/ai/auth.d.ts.map +1 -0
- package/dist/server/src/controllers/ai/index.d.ts +1 -0
- package/dist/server/src/controllers/ai/index.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +1 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/register.d.ts +11 -0
- package/dist/server/src/register.d.ts.map +1 -0
- package/package.json +12 -5
- package/dist/admin/components/DataManager/utils/formatSchemas.js +0 -21
- package/dist/admin/components/DataManager/utils/formatSchemas.js.map +0 -1
- package/dist/admin/components/DataManager/utils/formatSchemas.mjs +0 -18
- package/dist/admin/components/DataManager/utils/formatSchemas.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResizableTextArea.mjs","sources":["../../../../../admin/src/components/AIChat/components/ResizableTextArea.tsx"],"sourcesContent":["import { useRef, useEffect, useState } from 'react';\n\nimport { Box } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\ninterface TextAreaProps {\n value: string;\n onChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;\n onSubmit?: (e: React.FormEvent<HTMLFormElement>) => void;\n placeholder?: string;\n}\n\nconst TextAreaElement = styled(Box).attrs({ as: 'textarea' })`\n border: none;\n resize: none;\n background: transparent;\n outline: none !important;\n width: 100%;\n min-height: 44px;\n max-height: 160px;\n line-height: ${({ theme }) => theme.lineHeights[4]};\n font-size: ${({ theme }) => theme.fontSizes[2]};\n color: ${({ theme }) => theme.colors.neutral800};\n padding-bottom: ${({ theme }) => theme.spaces[1]};\n overflow-y: auto;\n\n /* Show partial lines when content exceeds visible area */\n height: ${({ rows, theme }) =>\n rows === 5\n ? `calc(${rows} * ${theme.lineHeights[4]} * 1em + 0.7em)`\n : `calc(${rows} * ${theme.lineHeights[4]} * 1em)`};\n\n &:disabled,\n &::placeholder {\n color: ${({ theme }) => theme.colors.neutral600};\n }\n`;\n\nexport const ResizableTextArea = ({ value, onChange, onSubmit, placeholder }: TextAreaProps) => {\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const [rows, setRows] = useState(1);\n\n const calculateRows = (text: string) => {\n if (!text) return 1;\n // Count newlines in the text\n const lineCount = (text.match(/\\n/g) || []).length + 1;\n // Limit to a maximum of 5 rows\n return Math.min(lineCount, 5);\n };\n\n // Update rows when value changes\n useEffect(() => {\n setRows(calculateRows(value));\n }, [value]);\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (!textareaRef.current?.value.trim()) {\n return;\n }\n\n if (e.key === 'Enter' && !e.shiftKey && onSubmit) {\n e.preventDefault();\n onSubmit(e as unknown as React.FormEvent<HTMLFormElement>);\n // Ensure focus is maintained after submission using a small delay\n // This helps ensure the focus happens after any other effects from submission\n setTimeout(() => {\n textareaRef.current?.focus();\n }, 10);\n }\n };\n\n useEffect(() => {\n textareaRef.current?.focus();\n }, [textareaRef]);\n\n return (\n <TextAreaElement\n ref={textareaRef}\n value={value}\n onChange={onChange}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n rows={rows}\n />\n );\n};\n"],"names":["TextAreaElement","styled","Box","attrs","as","theme","lineHeights","fontSizes","colors","neutral800","spaces","rows","neutral600","ResizableTextArea","value","onChange","onSubmit","placeholder","textareaRef","useRef","setRows","useState","calculateRows","text","lineCount","match","length","Math","min","useEffect","handleKeyDown","e","current","trim","key","shiftKey","preventDefault","setTimeout","focus","_jsx","ref","onKeyDown"],"mappings":";;;;;AAYA,MAAMA,eAAkBC,GAAAA,MAAAA,CAAOC,GAAKC,CAAAA,CAAAA,KAAK,CAAC;IAAEC,EAAI,EAAA;AAAW,CAAA,CAAE;;;;;;;;eAQ9C,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,WAAW,CAAC,CAAA,CAAE,CAAC;aACxC,EAAE,CAAC,EAAED,KAAK,EAAE,GAAKA,KAAME,CAAAA,SAAS,CAAC,CAAA,CAAE,CAAC;SACxC,EAAE,CAAC,EAAEF,KAAK,EAAE,GAAKA,KAAMG,CAAAA,MAAM,CAACC,UAAU,CAAC;kBAChC,EAAE,CAAC,EAAEJ,KAAK,EAAE,GAAKA,KAAMK,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAC;;;;AAIzC,UAAA,EAAE,CAAC,EAAEC,IAAI,EAAEN,KAAK,EAAE,GACxBM,IAAAA,KAAS,CACL,GAAA,CAAC,KAAK,EAAEA,IAAAA,CAAK,GAAG,EAAEN,MAAMC,WAAW,CAAC,CAAE,CAAA,CAAC,eAAe,CAAC,GACvD,CAAC,KAAK,EAAEK,IAAK,CAAA,GAAG,EAAEN,KAAAA,CAAMC,WAAW,CAAC,CAAA,CAAE,CAAC,OAAO,CAAC,CAAC;;;;WAI7C,EAAE,CAAC,EAAED,KAAK,EAAE,GAAKA,KAAMG,CAAAA,MAAM,CAACI,UAAU,CAAC;;AAEpD,CAAC;AAEM,MAAMC,iBAAoB,GAAA,CAAC,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,WAAW,EAAiB,GAAA;AACzF,IAAA,MAAMC,cAAcC,MAA4B,CAAA,IAAA,CAAA;AAChD,IAAA,MAAM,CAACR,IAAAA,EAAMS,OAAQ,CAAA,GAAGC,QAAS,CAAA,CAAA,CAAA;AAEjC,IAAA,MAAMC,gBAAgB,CAACC,IAAAA,GAAAA;QACrB,IAAI,CAACA,MAAM,OAAO,CAAA;;QAElB,MAAMC,SAAAA,GAAY,CAACD,IAAKE,CAAAA,KAAK,CAAC,KAAA,CAAA,IAAU,EAAC,EAAGC,MAAM,GAAG,CAAA;;QAErD,OAAOC,IAAAA,CAAKC,GAAG,CAACJ,SAAW,EAAA,CAAA,CAAA;AAC7B,KAAA;;IAGAK,SAAU,CAAA,IAAA;AACRT,QAAAA,OAAAA,CAAQE,aAAcR,CAAAA,KAAAA,CAAAA,CAAAA;KACrB,EAAA;AAACA,QAAAA;AAAM,KAAA,CAAA;AAEV,IAAA,MAAMgB,gBAAgB,CAACC,CAAAA,GAAAA;AACrB,QAAA,IAAI,CAACb,WAAAA,CAAYc,OAAO,EAAElB,MAAMmB,IAAQ,EAAA,EAAA;AACtC,YAAA;AACF;QAEA,IAAIF,CAAAA,CAAEG,GAAG,KAAK,OAAA,IAAW,CAACH,CAAEI,CAAAA,QAAQ,IAAInB,QAAU,EAAA;AAChDe,YAAAA,CAAAA,CAAEK,cAAc,EAAA;YAChBpB,QAASe,CAAAA,CAAAA,CAAAA;;;YAGTM,UAAW,CAAA,IAAA;AACTnB,gBAAAA,WAAAA,CAAYc,OAAO,EAAEM,KAAAA,EAAAA;aACpB,EAAA,EAAA,CAAA;AACL;AACF,KAAA;IAEAT,SAAU,CAAA,IAAA;AACRX,QAAAA,WAAAA,CAAYc,OAAO,EAAEM,KAAAA,EAAAA;KACpB,EAAA;AAACpB,QAAAA;AAAY,KAAA,CAAA;AAEhB,IAAA,qBACEqB,GAACvC,CAAAA,eAAAA,EAAAA;QACCwC,GAAKtB,EAAAA,WAAAA;QACLJ,KAAOA,EAAAA,KAAAA;QACPC,QAAUA,EAAAA,QAAAA;QACV0B,SAAWX,EAAAA,aAAAA;QACXb,WAAaA,EAAAA,WAAAA;QACbN,IAAMA,EAAAA;;AAGZ;;;;"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var designSystem = require('@strapi/design-system');
|
|
6
|
+
|
|
7
|
+
function _interopNamespaceDefault(e) {
|
|
8
|
+
var n = Object.create(null);
|
|
9
|
+
if (e) {
|
|
10
|
+
Object.keys(e).forEach(function (k) {
|
|
11
|
+
if (k !== 'default') {
|
|
12
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
13
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () { return e[k]; }
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
n.default = e;
|
|
21
|
+
return Object.freeze(n);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
25
|
+
|
|
26
|
+
const SimpleMenu = /*#__PURE__*/ React__namespace.forwardRef(({ children, onOpen, onClose, popoverPlacement, ...props }, forwardedRef)=>{
|
|
27
|
+
const triggerRef = React__namespace.useRef(null);
|
|
28
|
+
const composedRef = designSystem.useComposedRefs(forwardedRef, triggerRef);
|
|
29
|
+
const handleOpenChange = (isOpen)=>{
|
|
30
|
+
if (isOpen && typeof onOpen === 'function') {
|
|
31
|
+
onOpen();
|
|
32
|
+
} else if (!isOpen && typeof onClose === 'function') {
|
|
33
|
+
onClose();
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Menu.Root, {
|
|
37
|
+
onOpenChange: handleOpenChange,
|
|
38
|
+
children: [
|
|
39
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Trigger, {
|
|
40
|
+
ref: composedRef,
|
|
41
|
+
...props,
|
|
42
|
+
children: props.label
|
|
43
|
+
}),
|
|
44
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Content, {
|
|
45
|
+
zIndex: 10000,
|
|
46
|
+
popoverPlacement: popoverPlacement,
|
|
47
|
+
children: children
|
|
48
|
+
})
|
|
49
|
+
]
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
const MenuItem = designSystem.Menu.Item;
|
|
53
|
+
|
|
54
|
+
Object.defineProperty(exports, "Menu", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () { return designSystem.Menu; }
|
|
57
|
+
});
|
|
58
|
+
exports.MenuItem = MenuItem;
|
|
59
|
+
exports.SimpleMenu = SimpleMenu;
|
|
60
|
+
//# sourceMappingURL=SimpleMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleMenu.js","sources":["../../../../../admin/src/components/AIChat/components/SimpleMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Menu, useComposedRefs } from '@strapi/design-system';\n\n/* -------------------------------------------------------------------------------------------------\n * SimpleMenu\n * -----------------------------------------------------------------------------------------------*/\n\ntype SimpleMenuProps = Menu.TriggerProps &\n Pick<Menu.ContentProps, 'popoverPlacement' | 'intersectionId'> & {\n children?: React.ReactNode;\n onOpen?: () => void;\n onClose?: () => void;\n };\n\nconst SimpleMenu = React.forwardRef<HTMLButtonElement, SimpleMenuProps>(\n ({ children, onOpen, onClose, popoverPlacement, ...props }, forwardedRef) => {\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const composedRef = useComposedRefs(forwardedRef, triggerRef);\n\n const handleOpenChange = (isOpen: boolean) => {\n if (isOpen && typeof onOpen === 'function') {\n onOpen();\n } else if (!isOpen && typeof onClose === 'function') {\n onClose();\n }\n };\n\n return (\n <Menu.Root onOpenChange={handleOpenChange}>\n <Menu.Trigger ref={composedRef} {...props}>\n {props.label}\n </Menu.Trigger>\n <Menu.Content zIndex={10000} popoverPlacement={popoverPlacement}>\n {children}\n </Menu.Content>\n </Menu.Root>\n );\n }\n);\n\nconst MenuItem = Menu.Item;\ntype MenuItemProps = Menu.ItemProps;\n\nexport { SimpleMenu, MenuItem, Menu };\nexport type { SimpleMenuProps, MenuItemProps };\n"],"names":["SimpleMenu","React","forwardRef","children","onOpen","onClose","popoverPlacement","props","forwardedRef","triggerRef","useRef","composedRef","useComposedRefs","handleOpenChange","isOpen","_jsxs","Menu","Root","onOpenChange","_jsx","Trigger","ref","label","Content","zIndex","MenuItem","Item"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAMA,2BAAaC,gBAAMC,CAAAA,UAAU,CACjC,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,EAAEC,gBAAgB,EAAE,GAAGC,OAAO,EAAEC,YAAAA,GAAAA;IAC1D,MAAMC,UAAAA,GAAaR,gBAAMS,CAAAA,MAAM,CAAoB,IAAA,CAAA;IACnD,MAAMC,WAAAA,GAAcC,6BAAgBJ,YAAcC,EAAAA,UAAAA,CAAAA;AAElD,IAAA,MAAMI,mBAAmB,CAACC,MAAAA,GAAAA;QACxB,IAAIA,MAAAA,IAAU,OAAOV,MAAAA,KAAW,UAAY,EAAA;AAC1CA,YAAAA,MAAAA,EAAAA;AACF,SAAA,MAAO,IAAI,CAACU,MAAU,IAAA,OAAOT,YAAY,UAAY,EAAA;AACnDA,YAAAA,OAAAA,EAAAA;AACF;AACF,KAAA;IAEA,qBACEU,eAAA,CAACC,kBAAKC,IAAI,EAAA;QAACC,YAAcL,EAAAA,gBAAAA;;AACvB,0BAAAM,cAAA,CAACH,kBAAKI,OAAO,EAAA;gBAACC,GAAKV,EAAAA,WAAAA;AAAc,gBAAA,GAAGJ,KAAK;AACtCA,gBAAAA,QAAAA,EAAAA,KAAAA,CAAMe;;AAET,0BAAAH,cAAA,CAACH,kBAAKO,OAAO,EAAA;gBAACC,MAAQ,EAAA,KAAA;gBAAOlB,gBAAkBA,EAAAA,gBAAAA;AAC5CH,gBAAAA,QAAAA,EAAAA;;;;AAIT,CAAA;AAGIsB,MAAAA,QAAAA,GAAWT,kBAAKU;;;;;;;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Menu, useComposedRefs } from '@strapi/design-system';
|
|
4
|
+
export { Menu } from '@strapi/design-system';
|
|
5
|
+
|
|
6
|
+
const SimpleMenu = /*#__PURE__*/ React.forwardRef(({ children, onOpen, onClose, popoverPlacement, ...props }, forwardedRef)=>{
|
|
7
|
+
const triggerRef = React.useRef(null);
|
|
8
|
+
const composedRef = useComposedRefs(forwardedRef, triggerRef);
|
|
9
|
+
const handleOpenChange = (isOpen)=>{
|
|
10
|
+
if (isOpen && typeof onOpen === 'function') {
|
|
11
|
+
onOpen();
|
|
12
|
+
} else if (!isOpen && typeof onClose === 'function') {
|
|
13
|
+
onClose();
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
return /*#__PURE__*/ jsxs(Menu.Root, {
|
|
17
|
+
onOpenChange: handleOpenChange,
|
|
18
|
+
children: [
|
|
19
|
+
/*#__PURE__*/ jsx(Menu.Trigger, {
|
|
20
|
+
ref: composedRef,
|
|
21
|
+
...props,
|
|
22
|
+
children: props.label
|
|
23
|
+
}),
|
|
24
|
+
/*#__PURE__*/ jsx(Menu.Content, {
|
|
25
|
+
zIndex: 10000,
|
|
26
|
+
popoverPlacement: popoverPlacement,
|
|
27
|
+
children: children
|
|
28
|
+
})
|
|
29
|
+
]
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
const MenuItem = Menu.Item;
|
|
33
|
+
|
|
34
|
+
export { MenuItem, SimpleMenu };
|
|
35
|
+
//# sourceMappingURL=SimpleMenu.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleMenu.mjs","sources":["../../../../../admin/src/components/AIChat/components/SimpleMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Menu, useComposedRefs } from '@strapi/design-system';\n\n/* -------------------------------------------------------------------------------------------------\n * SimpleMenu\n * -----------------------------------------------------------------------------------------------*/\n\ntype SimpleMenuProps = Menu.TriggerProps &\n Pick<Menu.ContentProps, 'popoverPlacement' | 'intersectionId'> & {\n children?: React.ReactNode;\n onOpen?: () => void;\n onClose?: () => void;\n };\n\nconst SimpleMenu = React.forwardRef<HTMLButtonElement, SimpleMenuProps>(\n ({ children, onOpen, onClose, popoverPlacement, ...props }, forwardedRef) => {\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const composedRef = useComposedRefs(forwardedRef, triggerRef);\n\n const handleOpenChange = (isOpen: boolean) => {\n if (isOpen && typeof onOpen === 'function') {\n onOpen();\n } else if (!isOpen && typeof onClose === 'function') {\n onClose();\n }\n };\n\n return (\n <Menu.Root onOpenChange={handleOpenChange}>\n <Menu.Trigger ref={composedRef} {...props}>\n {props.label}\n </Menu.Trigger>\n <Menu.Content zIndex={10000} popoverPlacement={popoverPlacement}>\n {children}\n </Menu.Content>\n </Menu.Root>\n );\n }\n);\n\nconst MenuItem = Menu.Item;\ntype MenuItemProps = Menu.ItemProps;\n\nexport { SimpleMenu, MenuItem, Menu };\nexport type { SimpleMenuProps, MenuItemProps };\n"],"names":["SimpleMenu","React","forwardRef","children","onOpen","onClose","popoverPlacement","props","forwardedRef","triggerRef","useRef","composedRef","useComposedRefs","handleOpenChange","isOpen","_jsxs","Menu","Root","onOpenChange","_jsx","Trigger","ref","label","Content","zIndex","MenuItem","Item"],"mappings":";;;;;AAeA,MAAMA,2BAAaC,KAAMC,CAAAA,UAAU,CACjC,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,EAAEC,gBAAgB,EAAE,GAAGC,OAAO,EAAEC,YAAAA,GAAAA;IAC1D,MAAMC,UAAAA,GAAaR,KAAMS,CAAAA,MAAM,CAAoB,IAAA,CAAA;IACnD,MAAMC,WAAAA,GAAcC,gBAAgBJ,YAAcC,EAAAA,UAAAA,CAAAA;AAElD,IAAA,MAAMI,mBAAmB,CAACC,MAAAA,GAAAA;QACxB,IAAIA,MAAAA,IAAU,OAAOV,MAAAA,KAAW,UAAY,EAAA;AAC1CA,YAAAA,MAAAA,EAAAA;AACF,SAAA,MAAO,IAAI,CAACU,MAAU,IAAA,OAAOT,YAAY,UAAY,EAAA;AACnDA,YAAAA,OAAAA,EAAAA;AACF;AACF,KAAA;IAEA,qBACEU,IAAA,CAACC,KAAKC,IAAI,EAAA;QAACC,YAAcL,EAAAA,gBAAAA;;AACvB,0BAAAM,GAAA,CAACH,KAAKI,OAAO,EAAA;gBAACC,GAAKV,EAAAA,WAAAA;AAAc,gBAAA,GAAGJ,KAAK;AACtCA,gBAAAA,QAAAA,EAAAA,KAAAA,CAAMe;;AAET,0BAAAH,GAAA,CAACH,KAAKO,OAAO,EAAA;gBAACC,MAAQ,EAAA,KAAA;gBAAOlB,gBAAkBA,EAAAA,gBAAAA;AAC5CH,gBAAAA,QAAAA,EAAAA;;;;AAIT,CAAA;AAGIsB,MAAAA,QAAAA,GAAWT,KAAKU;;;;"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var designSystem = require('@strapi/design-system');
|
|
6
|
+
|
|
7
|
+
const StepModalContext = /*#__PURE__*/ React.createContext(null);
|
|
8
|
+
const useStepModal = ()=>{
|
|
9
|
+
const context = React.useContext(StepModalContext);
|
|
10
|
+
if (!context) {
|
|
11
|
+
throw new Error('useStepModal must be used within a StepModal');
|
|
12
|
+
}
|
|
13
|
+
return context;
|
|
14
|
+
};
|
|
15
|
+
const StepModal = ({ open, onOpenChange, title, children, onComplete, onCancel })=>{
|
|
16
|
+
const [currentStep, setCurrentStep] = React.useState(0);
|
|
17
|
+
const [isLoading, setIsLoading] = React.useState(false);
|
|
18
|
+
const [error, setError] = React.useState(null);
|
|
19
|
+
const childrenArray = React.Children.toArray(children).filter((child)=>/*#__PURE__*/ React.isValidElement(child)).map((child)=>child.props);
|
|
20
|
+
const totalSteps = childrenArray.length;
|
|
21
|
+
const isFirstStep = currentStep === 0;
|
|
22
|
+
const isLastStep = currentStep === totalSteps - 1;
|
|
23
|
+
// Reset states when modal opens/closes
|
|
24
|
+
React.useEffect(()=>{
|
|
25
|
+
if (!open) {
|
|
26
|
+
// Reset states when modal is closed
|
|
27
|
+
setCurrentStep(0);
|
|
28
|
+
setIsLoading(false);
|
|
29
|
+
setError(null);
|
|
30
|
+
}
|
|
31
|
+
}, [
|
|
32
|
+
open
|
|
33
|
+
]);
|
|
34
|
+
const resetStates = ()=>{
|
|
35
|
+
setCurrentStep(0);
|
|
36
|
+
setIsLoading(false);
|
|
37
|
+
setError(null);
|
|
38
|
+
};
|
|
39
|
+
const handleCancel = ()=>{
|
|
40
|
+
onCancel?.();
|
|
41
|
+
resetStates();
|
|
42
|
+
onOpenChange(false);
|
|
43
|
+
};
|
|
44
|
+
const handleBack = ()=>{
|
|
45
|
+
setCurrentStep((prev)=>Math.max(0, prev - 1));
|
|
46
|
+
setError(null);
|
|
47
|
+
};
|
|
48
|
+
const nextStep = async ()=>{
|
|
49
|
+
const currentStepProps = childrenArray[currentStep];
|
|
50
|
+
if (currentStepProps.onNext) {
|
|
51
|
+
setIsLoading(true);
|
|
52
|
+
setError(null);
|
|
53
|
+
try {
|
|
54
|
+
if (isLastStep) {
|
|
55
|
+
onComplete?.();
|
|
56
|
+
resetStates();
|
|
57
|
+
onOpenChange(false);
|
|
58
|
+
} else {
|
|
59
|
+
await currentStepProps.onNext();
|
|
60
|
+
setCurrentStep((prev)=>prev + 1);
|
|
61
|
+
}
|
|
62
|
+
return true;
|
|
63
|
+
} catch (err) {
|
|
64
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
65
|
+
return false;
|
|
66
|
+
} finally{
|
|
67
|
+
setIsLoading(false);
|
|
68
|
+
}
|
|
69
|
+
} else {
|
|
70
|
+
// Default behavior: just move to next step
|
|
71
|
+
if (isLastStep) {
|
|
72
|
+
onComplete?.();
|
|
73
|
+
resetStates();
|
|
74
|
+
onOpenChange(false);
|
|
75
|
+
} else {
|
|
76
|
+
setCurrentStep((prev)=>prev + 1);
|
|
77
|
+
}
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
// Handle form submission (triggered by Enter key)
|
|
82
|
+
const handleFormSubmit = (e)=>{
|
|
83
|
+
e.preventDefault();
|
|
84
|
+
if (!isLoading && !childrenArray[currentStep]?.disableNext) {
|
|
85
|
+
nextStep();
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
const contextValue = {
|
|
89
|
+
currentStep,
|
|
90
|
+
goToStep: setCurrentStep,
|
|
91
|
+
nextStep,
|
|
92
|
+
prevStep: handleBack,
|
|
93
|
+
isFirstStep,
|
|
94
|
+
isLastStep,
|
|
95
|
+
totalSteps,
|
|
96
|
+
isLoading,
|
|
97
|
+
error,
|
|
98
|
+
setError
|
|
99
|
+
};
|
|
100
|
+
const currentChild = childrenArray[currentStep];
|
|
101
|
+
return /*#__PURE__*/ jsxRuntime.jsx(StepModalContext.Provider, {
|
|
102
|
+
value: contextValue,
|
|
103
|
+
children: open && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Root, {
|
|
104
|
+
open: true,
|
|
105
|
+
onOpenChange: handleCancel,
|
|
106
|
+
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Modal.Content, {
|
|
107
|
+
children: [
|
|
108
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Header, {
|
|
109
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
110
|
+
variant: "omega",
|
|
111
|
+
fontWeight: "bold",
|
|
112
|
+
children: currentChild?.title || title
|
|
113
|
+
})
|
|
114
|
+
}),
|
|
115
|
+
/*#__PURE__*/ jsxRuntime.jsxs("form", {
|
|
116
|
+
onSubmit: handleFormSubmit,
|
|
117
|
+
children: [
|
|
118
|
+
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Modal.Body, {
|
|
119
|
+
children: [
|
|
120
|
+
React.Children.toArray(children)[currentStep],
|
|
121
|
+
error && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
122
|
+
marginTop: 4,
|
|
123
|
+
padding: 3,
|
|
124
|
+
background: "danger100",
|
|
125
|
+
color: "danger600",
|
|
126
|
+
borderRadius: "4px",
|
|
127
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
128
|
+
variant: "pi",
|
|
129
|
+
children: error.message
|
|
130
|
+
})
|
|
131
|
+
})
|
|
132
|
+
]
|
|
133
|
+
}),
|
|
134
|
+
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Modal.Footer, {
|
|
135
|
+
children: [
|
|
136
|
+
isFirstStep ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
|
|
137
|
+
variant: "tertiary",
|
|
138
|
+
onClick: handleCancel,
|
|
139
|
+
type: "button",
|
|
140
|
+
children: currentChild?.cancelLabel || 'Cancel'
|
|
141
|
+
}) : /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
|
|
142
|
+
variant: "tertiary",
|
|
143
|
+
onClick: handleBack,
|
|
144
|
+
type: "button",
|
|
145
|
+
children: currentChild?.backLabel || 'Back'
|
|
146
|
+
}),
|
|
147
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
|
|
148
|
+
variant: "default",
|
|
149
|
+
type: "submit",
|
|
150
|
+
disabled: isLoading || currentChild?.disableNext,
|
|
151
|
+
loading: isLoading,
|
|
152
|
+
children: currentChild?.nextLabel || (isLastStep ? 'Complete' : 'Next')
|
|
153
|
+
})
|
|
154
|
+
]
|
|
155
|
+
})
|
|
156
|
+
]
|
|
157
|
+
})
|
|
158
|
+
]
|
|
159
|
+
})
|
|
160
|
+
})
|
|
161
|
+
});
|
|
162
|
+
};
|
|
163
|
+
/* -------------------------------------------------------------------------------------------------
|
|
164
|
+
* Step
|
|
165
|
+
* -----------------------------------------------------------------------------------------------*/ const Step = ({ children })=>{
|
|
166
|
+
return /*#__PURE__*/ jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
167
|
+
children: children
|
|
168
|
+
});
|
|
169
|
+
};
|
|
170
|
+
StepModal.Step = Step;
|
|
171
|
+
|
|
172
|
+
exports.Step = Step;
|
|
173
|
+
exports.StepModal = StepModal;
|
|
174
|
+
exports.useStepModal = useStepModal;
|
|
175
|
+
//# sourceMappingURL=StepModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepModal.js","sources":["../../../../../admin/src/components/AIChat/components/StepModal.tsx"],"sourcesContent":["import {\n createContext,\n useContext,\n useState,\n ReactNode,\n Children,\n isValidElement,\n FormEvent,\n useEffect,\n} from 'react';\n\nimport { Modal, Box, Button, Typography } from '@strapi/design-system';\n\n/* -------------------------------------------------------------------------------------------------\n * Context\n * -----------------------------------------------------------------------------------------------*/\n\ninterface StepModalContextType {\n currentStep: number;\n goToStep: (step: number) => void;\n nextStep: () => Promise<boolean>;\n prevStep: () => void;\n isFirstStep: boolean;\n isLastStep: boolean;\n totalSteps: number;\n isLoading: boolean;\n error: Error | null;\n setError: (error: Error | null) => void;\n}\n\nconst StepModalContext = createContext<StepModalContextType | null>(null);\n\nexport const useStepModal = () => {\n const context = useContext(StepModalContext);\n if (!context) {\n throw new Error('useStepModal must be used within a StepModal');\n }\n return context;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * StepModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface StepModalProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title?: string;\n children: ReactNode;\n onComplete?: () => void;\n onCancel?: () => void;\n}\n\ninterface StepProps {\n title?: string;\n children: ReactNode;\n nextLabel?: string;\n cancelLabel?: string;\n backLabel?: string;\n disableNext?: boolean;\n onNext?: () => Promise<boolean> | boolean;\n}\n\nconst StepModal = ({\n open,\n onOpenChange,\n title,\n children,\n onComplete,\n onCancel,\n}: StepModalProps) => {\n const [currentStep, setCurrentStep] = useState(0);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const childrenArray = Children.toArray(children)\n .filter((child): child is React.ReactElement => isValidElement(child))\n .map((child) => child.props);\n\n const totalSteps = childrenArray.length;\n const isFirstStep = currentStep === 0;\n const isLastStep = currentStep === totalSteps - 1;\n\n // Reset states when modal opens/closes\n useEffect(() => {\n if (!open) {\n // Reset states when modal is closed\n setCurrentStep(0);\n setIsLoading(false);\n setError(null);\n }\n }, [open]);\n\n const resetStates = () => {\n setCurrentStep(0);\n setIsLoading(false);\n setError(null);\n };\n\n const handleCancel = () => {\n onCancel?.();\n resetStates();\n onOpenChange(false);\n };\n\n const handleBack = () => {\n setCurrentStep((prev) => Math.max(0, prev - 1));\n setError(null);\n };\n\n const nextStep = async () => {\n const currentStepProps = childrenArray[currentStep];\n\n if (currentStepProps.onNext) {\n setIsLoading(true);\n setError(null);\n\n try {\n if (isLastStep) {\n onComplete?.();\n resetStates();\n onOpenChange(false);\n } else {\n await currentStepProps.onNext();\n setCurrentStep((prev) => prev + 1);\n }\n return true;\n } catch (err) {\n setError(err instanceof Error ? err : new Error(String(err)));\n return false;\n } finally {\n setIsLoading(false);\n }\n } else {\n // Default behavior: just move to next step\n if (isLastStep) {\n onComplete?.();\n resetStates();\n onOpenChange(false);\n } else {\n setCurrentStep((prev) => prev + 1);\n }\n return true;\n }\n };\n\n // Handle form submission (triggered by Enter key)\n const handleFormSubmit = (e: FormEvent) => {\n e.preventDefault();\n if (!isLoading && !childrenArray[currentStep]?.disableNext) {\n nextStep();\n }\n };\n\n const contextValue = {\n currentStep,\n goToStep: setCurrentStep,\n nextStep,\n prevStep: handleBack,\n isFirstStep,\n isLastStep,\n totalSteps,\n isLoading,\n error,\n setError,\n };\n\n const currentChild = childrenArray[currentStep];\n\n return (\n <StepModalContext.Provider value={contextValue}>\n {open && (\n <Modal.Root open onOpenChange={handleCancel}>\n <Modal.Content>\n <Modal.Header>\n <Typography variant=\"omega\" fontWeight=\"bold\">\n {currentChild?.title || title}\n </Typography>\n </Modal.Header>\n\n <form onSubmit={handleFormSubmit}>\n <Modal.Body>\n {Children.toArray(children)[currentStep]}\n\n {error && (\n <Box\n marginTop={4}\n padding={3}\n background=\"danger100\"\n color=\"danger600\"\n borderRadius=\"4px\"\n >\n <Typography variant=\"pi\">{error.message}</Typography>\n </Box>\n )}\n </Modal.Body>\n\n <Modal.Footer>\n {isFirstStep ? (\n <Button variant=\"tertiary\" onClick={handleCancel} type=\"button\">\n {currentChild?.cancelLabel || 'Cancel'}\n </Button>\n ) : (\n <Button variant=\"tertiary\" onClick={handleBack} type=\"button\">\n {currentChild?.backLabel || 'Back'}\n </Button>\n )}\n\n <Button\n variant=\"default\"\n type=\"submit\"\n disabled={isLoading || currentChild?.disableNext}\n loading={isLoading}\n >\n {currentChild?.nextLabel || (isLastStep ? 'Complete' : 'Next')}\n </Button>\n </Modal.Footer>\n </form>\n </Modal.Content>\n </Modal.Root>\n )}\n </StepModalContext.Provider>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Step\n * -----------------------------------------------------------------------------------------------*/\n\nconst Step = ({ children }: StepProps) => {\n return <>{children}</>;\n};\n\nStepModal.Step = Step;\n\nexport { StepModal, Step };\n"],"names":["StepModalContext","createContext","useStepModal","context","useContext","Error","StepModal","open","onOpenChange","title","children","onComplete","onCancel","currentStep","setCurrentStep","useState","isLoading","setIsLoading","error","setError","childrenArray","Children","toArray","filter","child","isValidElement","map","props","totalSteps","length","isFirstStep","isLastStep","useEffect","resetStates","handleCancel","handleBack","prev","Math","max","nextStep","currentStepProps","onNext","err","String","handleFormSubmit","e","preventDefault","disableNext","contextValue","goToStep","prevStep","currentChild","_jsx","Provider","value","Modal","Root","_jsxs","Content","Header","Typography","variant","fontWeight","form","onSubmit","Body","Box","marginTop","padding","background","color","borderRadius","message","Footer","Button","onClick","type","cancelLabel","backLabel","disabled","loading","nextLabel","Step","_Fragment"],"mappings":"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"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { useState, Children, isValidElement, useEffect, createContext, useContext } from 'react';
|
|
3
|
+
import { Modal, Typography, Box, Button } from '@strapi/design-system';
|
|
4
|
+
|
|
5
|
+
const StepModalContext = /*#__PURE__*/ createContext(null);
|
|
6
|
+
const useStepModal = ()=>{
|
|
7
|
+
const context = useContext(StepModalContext);
|
|
8
|
+
if (!context) {
|
|
9
|
+
throw new Error('useStepModal must be used within a StepModal');
|
|
10
|
+
}
|
|
11
|
+
return context;
|
|
12
|
+
};
|
|
13
|
+
const StepModal = ({ open, onOpenChange, title, children, onComplete, onCancel })=>{
|
|
14
|
+
const [currentStep, setCurrentStep] = useState(0);
|
|
15
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
16
|
+
const [error, setError] = useState(null);
|
|
17
|
+
const childrenArray = Children.toArray(children).filter((child)=>/*#__PURE__*/ isValidElement(child)).map((child)=>child.props);
|
|
18
|
+
const totalSteps = childrenArray.length;
|
|
19
|
+
const isFirstStep = currentStep === 0;
|
|
20
|
+
const isLastStep = currentStep === totalSteps - 1;
|
|
21
|
+
// Reset states when modal opens/closes
|
|
22
|
+
useEffect(()=>{
|
|
23
|
+
if (!open) {
|
|
24
|
+
// Reset states when modal is closed
|
|
25
|
+
setCurrentStep(0);
|
|
26
|
+
setIsLoading(false);
|
|
27
|
+
setError(null);
|
|
28
|
+
}
|
|
29
|
+
}, [
|
|
30
|
+
open
|
|
31
|
+
]);
|
|
32
|
+
const resetStates = ()=>{
|
|
33
|
+
setCurrentStep(0);
|
|
34
|
+
setIsLoading(false);
|
|
35
|
+
setError(null);
|
|
36
|
+
};
|
|
37
|
+
const handleCancel = ()=>{
|
|
38
|
+
onCancel?.();
|
|
39
|
+
resetStates();
|
|
40
|
+
onOpenChange(false);
|
|
41
|
+
};
|
|
42
|
+
const handleBack = ()=>{
|
|
43
|
+
setCurrentStep((prev)=>Math.max(0, prev - 1));
|
|
44
|
+
setError(null);
|
|
45
|
+
};
|
|
46
|
+
const nextStep = async ()=>{
|
|
47
|
+
const currentStepProps = childrenArray[currentStep];
|
|
48
|
+
if (currentStepProps.onNext) {
|
|
49
|
+
setIsLoading(true);
|
|
50
|
+
setError(null);
|
|
51
|
+
try {
|
|
52
|
+
if (isLastStep) {
|
|
53
|
+
onComplete?.();
|
|
54
|
+
resetStates();
|
|
55
|
+
onOpenChange(false);
|
|
56
|
+
} else {
|
|
57
|
+
await currentStepProps.onNext();
|
|
58
|
+
setCurrentStep((prev)=>prev + 1);
|
|
59
|
+
}
|
|
60
|
+
return true;
|
|
61
|
+
} catch (err) {
|
|
62
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
63
|
+
return false;
|
|
64
|
+
} finally{
|
|
65
|
+
setIsLoading(false);
|
|
66
|
+
}
|
|
67
|
+
} else {
|
|
68
|
+
// Default behavior: just move to next step
|
|
69
|
+
if (isLastStep) {
|
|
70
|
+
onComplete?.();
|
|
71
|
+
resetStates();
|
|
72
|
+
onOpenChange(false);
|
|
73
|
+
} else {
|
|
74
|
+
setCurrentStep((prev)=>prev + 1);
|
|
75
|
+
}
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
// Handle form submission (triggered by Enter key)
|
|
80
|
+
const handleFormSubmit = (e)=>{
|
|
81
|
+
e.preventDefault();
|
|
82
|
+
if (!isLoading && !childrenArray[currentStep]?.disableNext) {
|
|
83
|
+
nextStep();
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
const contextValue = {
|
|
87
|
+
currentStep,
|
|
88
|
+
goToStep: setCurrentStep,
|
|
89
|
+
nextStep,
|
|
90
|
+
prevStep: handleBack,
|
|
91
|
+
isFirstStep,
|
|
92
|
+
isLastStep,
|
|
93
|
+
totalSteps,
|
|
94
|
+
isLoading,
|
|
95
|
+
error,
|
|
96
|
+
setError
|
|
97
|
+
};
|
|
98
|
+
const currentChild = childrenArray[currentStep];
|
|
99
|
+
return /*#__PURE__*/ jsx(StepModalContext.Provider, {
|
|
100
|
+
value: contextValue,
|
|
101
|
+
children: open && /*#__PURE__*/ jsx(Modal.Root, {
|
|
102
|
+
open: true,
|
|
103
|
+
onOpenChange: handleCancel,
|
|
104
|
+
children: /*#__PURE__*/ jsxs(Modal.Content, {
|
|
105
|
+
children: [
|
|
106
|
+
/*#__PURE__*/ jsx(Modal.Header, {
|
|
107
|
+
children: /*#__PURE__*/ jsx(Typography, {
|
|
108
|
+
variant: "omega",
|
|
109
|
+
fontWeight: "bold",
|
|
110
|
+
children: currentChild?.title || title
|
|
111
|
+
})
|
|
112
|
+
}),
|
|
113
|
+
/*#__PURE__*/ jsxs("form", {
|
|
114
|
+
onSubmit: handleFormSubmit,
|
|
115
|
+
children: [
|
|
116
|
+
/*#__PURE__*/ jsxs(Modal.Body, {
|
|
117
|
+
children: [
|
|
118
|
+
Children.toArray(children)[currentStep],
|
|
119
|
+
error && /*#__PURE__*/ jsx(Box, {
|
|
120
|
+
marginTop: 4,
|
|
121
|
+
padding: 3,
|
|
122
|
+
background: "danger100",
|
|
123
|
+
color: "danger600",
|
|
124
|
+
borderRadius: "4px",
|
|
125
|
+
children: /*#__PURE__*/ jsx(Typography, {
|
|
126
|
+
variant: "pi",
|
|
127
|
+
children: error.message
|
|
128
|
+
})
|
|
129
|
+
})
|
|
130
|
+
]
|
|
131
|
+
}),
|
|
132
|
+
/*#__PURE__*/ jsxs(Modal.Footer, {
|
|
133
|
+
children: [
|
|
134
|
+
isFirstStep ? /*#__PURE__*/ jsx(Button, {
|
|
135
|
+
variant: "tertiary",
|
|
136
|
+
onClick: handleCancel,
|
|
137
|
+
type: "button",
|
|
138
|
+
children: currentChild?.cancelLabel || 'Cancel'
|
|
139
|
+
}) : /*#__PURE__*/ jsx(Button, {
|
|
140
|
+
variant: "tertiary",
|
|
141
|
+
onClick: handleBack,
|
|
142
|
+
type: "button",
|
|
143
|
+
children: currentChild?.backLabel || 'Back'
|
|
144
|
+
}),
|
|
145
|
+
/*#__PURE__*/ jsx(Button, {
|
|
146
|
+
variant: "default",
|
|
147
|
+
type: "submit",
|
|
148
|
+
disabled: isLoading || currentChild?.disableNext,
|
|
149
|
+
loading: isLoading,
|
|
150
|
+
children: currentChild?.nextLabel || (isLastStep ? 'Complete' : 'Next')
|
|
151
|
+
})
|
|
152
|
+
]
|
|
153
|
+
})
|
|
154
|
+
]
|
|
155
|
+
})
|
|
156
|
+
]
|
|
157
|
+
})
|
|
158
|
+
})
|
|
159
|
+
});
|
|
160
|
+
};
|
|
161
|
+
/* -------------------------------------------------------------------------------------------------
|
|
162
|
+
* Step
|
|
163
|
+
* -----------------------------------------------------------------------------------------------*/ const Step = ({ children })=>{
|
|
164
|
+
return /*#__PURE__*/ jsx(Fragment, {
|
|
165
|
+
children: children
|
|
166
|
+
});
|
|
167
|
+
};
|
|
168
|
+
StepModal.Step = Step;
|
|
169
|
+
|
|
170
|
+
export { Step, StepModal, useStepModal };
|
|
171
|
+
//# sourceMappingURL=StepModal.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepModal.mjs","sources":["../../../../../admin/src/components/AIChat/components/StepModal.tsx"],"sourcesContent":["import {\n createContext,\n useContext,\n useState,\n ReactNode,\n Children,\n isValidElement,\n FormEvent,\n useEffect,\n} from 'react';\n\nimport { Modal, Box, Button, Typography } from '@strapi/design-system';\n\n/* -------------------------------------------------------------------------------------------------\n * Context\n * -----------------------------------------------------------------------------------------------*/\n\ninterface StepModalContextType {\n currentStep: number;\n goToStep: (step: number) => void;\n nextStep: () => Promise<boolean>;\n prevStep: () => void;\n isFirstStep: boolean;\n isLastStep: boolean;\n totalSteps: number;\n isLoading: boolean;\n error: Error | null;\n setError: (error: Error | null) => void;\n}\n\nconst StepModalContext = createContext<StepModalContextType | null>(null);\n\nexport const useStepModal = () => {\n const context = useContext(StepModalContext);\n if (!context) {\n throw new Error('useStepModal must be used within a StepModal');\n }\n return context;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * StepModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface StepModalProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title?: string;\n children: ReactNode;\n onComplete?: () => void;\n onCancel?: () => void;\n}\n\ninterface StepProps {\n title?: string;\n children: ReactNode;\n nextLabel?: string;\n cancelLabel?: string;\n backLabel?: string;\n disableNext?: boolean;\n onNext?: () => Promise<boolean> | boolean;\n}\n\nconst StepModal = ({\n open,\n onOpenChange,\n title,\n children,\n onComplete,\n onCancel,\n}: StepModalProps) => {\n const [currentStep, setCurrentStep] = useState(0);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const childrenArray = Children.toArray(children)\n .filter((child): child is React.ReactElement => isValidElement(child))\n .map((child) => child.props);\n\n const totalSteps = childrenArray.length;\n const isFirstStep = currentStep === 0;\n const isLastStep = currentStep === totalSteps - 1;\n\n // Reset states when modal opens/closes\n useEffect(() => {\n if (!open) {\n // Reset states when modal is closed\n setCurrentStep(0);\n setIsLoading(false);\n setError(null);\n }\n }, [open]);\n\n const resetStates = () => {\n setCurrentStep(0);\n setIsLoading(false);\n setError(null);\n };\n\n const handleCancel = () => {\n onCancel?.();\n resetStates();\n onOpenChange(false);\n };\n\n const handleBack = () => {\n setCurrentStep((prev) => Math.max(0, prev - 1));\n setError(null);\n };\n\n const nextStep = async () => {\n const currentStepProps = childrenArray[currentStep];\n\n if (currentStepProps.onNext) {\n setIsLoading(true);\n setError(null);\n\n try {\n if (isLastStep) {\n onComplete?.();\n resetStates();\n onOpenChange(false);\n } else {\n await currentStepProps.onNext();\n setCurrentStep((prev) => prev + 1);\n }\n return true;\n } catch (err) {\n setError(err instanceof Error ? err : new Error(String(err)));\n return false;\n } finally {\n setIsLoading(false);\n }\n } else {\n // Default behavior: just move to next step\n if (isLastStep) {\n onComplete?.();\n resetStates();\n onOpenChange(false);\n } else {\n setCurrentStep((prev) => prev + 1);\n }\n return true;\n }\n };\n\n // Handle form submission (triggered by Enter key)\n const handleFormSubmit = (e: FormEvent) => {\n e.preventDefault();\n if (!isLoading && !childrenArray[currentStep]?.disableNext) {\n nextStep();\n }\n };\n\n const contextValue = {\n currentStep,\n goToStep: setCurrentStep,\n nextStep,\n prevStep: handleBack,\n isFirstStep,\n isLastStep,\n totalSteps,\n isLoading,\n error,\n setError,\n };\n\n const currentChild = childrenArray[currentStep];\n\n return (\n <StepModalContext.Provider value={contextValue}>\n {open && (\n <Modal.Root open onOpenChange={handleCancel}>\n <Modal.Content>\n <Modal.Header>\n <Typography variant=\"omega\" fontWeight=\"bold\">\n {currentChild?.title || title}\n </Typography>\n </Modal.Header>\n\n <form onSubmit={handleFormSubmit}>\n <Modal.Body>\n {Children.toArray(children)[currentStep]}\n\n {error && (\n <Box\n marginTop={4}\n padding={3}\n background=\"danger100\"\n color=\"danger600\"\n borderRadius=\"4px\"\n >\n <Typography variant=\"pi\">{error.message}</Typography>\n </Box>\n )}\n </Modal.Body>\n\n <Modal.Footer>\n {isFirstStep ? (\n <Button variant=\"tertiary\" onClick={handleCancel} type=\"button\">\n {currentChild?.cancelLabel || 'Cancel'}\n </Button>\n ) : (\n <Button variant=\"tertiary\" onClick={handleBack} type=\"button\">\n {currentChild?.backLabel || 'Back'}\n </Button>\n )}\n\n <Button\n variant=\"default\"\n type=\"submit\"\n disabled={isLoading || currentChild?.disableNext}\n loading={isLoading}\n >\n {currentChild?.nextLabel || (isLastStep ? 'Complete' : 'Next')}\n </Button>\n </Modal.Footer>\n </form>\n </Modal.Content>\n </Modal.Root>\n )}\n </StepModalContext.Provider>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Step\n * -----------------------------------------------------------------------------------------------*/\n\nconst Step = ({ children }: StepProps) => {\n return <>{children}</>;\n};\n\nStepModal.Step = Step;\n\nexport { StepModal, Step };\n"],"names":["StepModalContext","createContext","useStepModal","context","useContext","Error","StepModal","open","onOpenChange","title","children","onComplete","onCancel","currentStep","setCurrentStep","useState","isLoading","setIsLoading","error","setError","childrenArray","Children","toArray","filter","child","isValidElement","map","props","totalSteps","length","isFirstStep","isLastStep","useEffect","resetStates","handleCancel","handleBack","prev","Math","max","nextStep","currentStepProps","onNext","err","String","handleFormSubmit","e","preventDefault","disableNext","contextValue","goToStep","prevStep","currentChild","_jsx","Provider","value","Modal","Root","_jsxs","Content","Header","Typography","variant","fontWeight","form","onSubmit","Body","Box","marginTop","padding","background","color","borderRadius","message","Footer","Button","onClick","type","cancelLabel","backLabel","disabled","loading","nextLabel","Step","_Fragment"],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var styledComponents = require('styled-components');
|
|
4
|
+
|
|
5
|
+
const ANIMATIONS = {
|
|
6
|
+
fadeIn: styledComponents.keyframes`
|
|
7
|
+
from {
|
|
8
|
+
opacity: 0;
|
|
9
|
+
}
|
|
10
|
+
to {
|
|
11
|
+
opacity: 1;
|
|
12
|
+
}
|
|
13
|
+
`,
|
|
14
|
+
scaleIn: styledComponents.keyframes`
|
|
15
|
+
from {
|
|
16
|
+
opacity: 0;
|
|
17
|
+
transform: scale(0.7);
|
|
18
|
+
}
|
|
19
|
+
to {
|
|
20
|
+
opacity: 1;
|
|
21
|
+
transform: scale(1);
|
|
22
|
+
}
|
|
23
|
+
`,
|
|
24
|
+
slideUpIn: styledComponents.keyframes`
|
|
25
|
+
from {
|
|
26
|
+
opacity: 0;
|
|
27
|
+
transform: translateY(10px);
|
|
28
|
+
}
|
|
29
|
+
to {
|
|
30
|
+
opacity: 1;
|
|
31
|
+
transform: translateY(0);
|
|
32
|
+
}
|
|
33
|
+
`,
|
|
34
|
+
slideUpOut: styledComponents.keyframes`
|
|
35
|
+
from {
|
|
36
|
+
opacity: 1;
|
|
37
|
+
transform: translateY(0);
|
|
38
|
+
}
|
|
39
|
+
to {
|
|
40
|
+
opacity: 0;
|
|
41
|
+
transform: translateY(10px);
|
|
42
|
+
}
|
|
43
|
+
`,
|
|
44
|
+
slideDownIn: styledComponents.keyframes`
|
|
45
|
+
from {
|
|
46
|
+
opacity: 0;
|
|
47
|
+
transform: translateY(-10px);
|
|
48
|
+
}
|
|
49
|
+
to {
|
|
50
|
+
opacity: 1;
|
|
51
|
+
transform: translateY(0);
|
|
52
|
+
}
|
|
53
|
+
`,
|
|
54
|
+
slideDownOut: styledComponents.keyframes`
|
|
55
|
+
from {
|
|
56
|
+
opacity: 1;
|
|
57
|
+
transform: translateY(0);
|
|
58
|
+
}
|
|
59
|
+
to {
|
|
60
|
+
opacity: 0;
|
|
61
|
+
transform: translateY(-10px);
|
|
62
|
+
}
|
|
63
|
+
`
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
exports.ANIMATIONS = ANIMATIONS;
|
|
67
|
+
//# sourceMappingURL=animations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animations.js","sources":["../../../../../admin/src/components/AIChat/components/animations.ts"],"sourcesContent":["import { keyframes } from 'styled-components';\n\nexport const ANIMATIONS = {\n fadeIn: keyframes`\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n `,\n\n scaleIn: keyframes`\n from {\n opacity: 0;\n transform: scale(0.7);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n `,\n\n slideUpIn: keyframes`\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n `,\n\n slideUpOut: keyframes`\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(10px);\n }\n `,\n\n slideDownIn: keyframes`\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n `,\n\n slideDownOut: keyframes`\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(-10px);\n }\n `,\n};\n"],"names":["ANIMATIONS","fadeIn","keyframes","scaleIn","slideUpIn","slideUpOut","slideDownIn","slideDownOut"],"mappings":";;;;MAEaA,UAAa,GAAA;AACxBC,IAAAA,MAAAA,EAAQC,0BAAS;;;;;;;EAOjB,CAAC;AAEDC,IAAAA,OAAAA,EAASD,0BAAS;;;;;;;;;EASlB,CAAC;AAEDE,IAAAA,SAAAA,EAAWF,0BAAS;;;;;;;;;EASpB,CAAC;AAEDG,IAAAA,UAAAA,EAAYH,0BAAS;;;;;;;;;EASrB,CAAC;AAEDI,IAAAA,WAAAA,EAAaJ,0BAAS;;;;;;;;;EAStB,CAAC;AAEDK,IAAAA,YAAAA,EAAcL,0BAAS;;;;;;;;;EASvB;AACF;;;;"}
|