@ai-stack/payloadcms 3.0.0-beta.95.2 → 3.2.1-beta
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/LICENSE.md +2 -2
- package/README.md +19 -17
- package/dist/ai/models/anthropic/generateRichText.d.ts.map +1 -1
- package/dist/ai/models/anthropic/generateRichText.js +2 -2
- package/dist/ai/models/anthropic/generateRichText.js.map +1 -1
- package/dist/ai/models/anthropic/index.d.ts.map +1 -1
- package/dist/ai/models/anthropic/index.js +8 -32
- package/dist/ai/models/anthropic/index.js.map +1 -1
- package/dist/ai/models/elevenLabs/generateVoice.d.ts +1 -1
- package/dist/ai/models/elevenLabs/index.d.ts.map +1 -1
- package/dist/ai/models/elevenLabs/index.js +4 -3
- package/dist/ai/models/elevenLabs/index.js.map +1 -1
- package/dist/ai/models/openai/generateImage.d.ts +1 -1
- package/dist/ai/models/openai/generateRichText.js +2 -2
- package/dist/ai/models/openai/generateRichText.js.map +1 -1
- package/dist/ai/models/openai/generateVoice.d.ts +1 -1
- package/dist/ai/models/openai/index.d.ts.map +1 -1
- package/dist/ai/models/openai/index.js +9 -35
- package/dist/ai/models/openai/index.js.map +1 -1
- package/dist/ai/prompts.d.ts +1 -1
- package/dist/ai/prompts.d.ts.map +1 -1
- package/dist/ai/prompts.js +6 -3
- package/dist/ai/prompts.js.map +1 -1
- package/dist/ai/schemas/lexicalJsonSchema.d.ts +2 -0
- package/dist/ai/schemas/lexicalJsonSchema.d.ts.map +1 -0
- package/dist/ai/schemas/lexicalJsonSchema.js +317 -0
- package/dist/ai/schemas/lexicalJsonSchema.js.map +1 -0
- package/dist/ai/utils/generateFileNameByPrompt.js.map +1 -1
- package/dist/ai/utils/systemGenerate.d.ts +5 -0
- package/dist/ai/utils/systemGenerate.d.ts.map +1 -0
- package/dist/ai/utils/{generateSeedPrompt.js → systemGenerate.js} +2 -2
- package/dist/ai/utils/systemGenerate.js.map +1 -0
- package/dist/collections/Instructions.d.ts +1 -1
- package/dist/collections/Instructions.d.ts.map +1 -1
- package/dist/collections/Instructions.js +177 -85
- package/dist/collections/Instructions.js.map +1 -1
- package/dist/defaults.d.ts +1 -1
- package/dist/defaults.d.ts.map +1 -1
- package/dist/defaults.js +1 -1
- package/dist/defaults.js.map +1 -1
- package/dist/endpoints/fetchFields.d.ts +3 -0
- package/dist/endpoints/fetchFields.d.ts.map +1 -0
- package/dist/endpoints/fetchFields.js +21 -0
- package/dist/endpoints/fetchFields.js.map +1 -0
- package/dist/endpoints/index.d.ts.map +1 -1
- package/dist/endpoints/index.js +12 -18
- package/dist/endpoints/index.js.map +1 -1
- package/dist/exports/fields.d.ts +2 -1
- package/dist/exports/fields.d.ts.map +1 -1
- package/dist/exports/fields.js +2 -1
- package/dist/exports/fields.js.map +1 -1
- package/dist/fields/ComposeField/ComposeField.d.ts +3 -0
- package/dist/fields/ComposeField/ComposeField.d.ts.map +1 -0
- package/dist/fields/ComposeField/ComposeField.js +24 -0
- package/dist/fields/ComposeField/ComposeField.js.map +1 -0
- package/dist/fields/LexicalEditor/ComposeFeatureComponent.d.ts +2 -0
- package/dist/fields/LexicalEditor/ComposeFeatureComponent.d.ts.map +1 -0
- package/dist/fields/LexicalEditor/ComposeFeatureComponent.js +28 -0
- package/dist/fields/LexicalEditor/ComposeFeatureComponent.js.map +1 -0
- package/dist/fields/LexicalEditor/feature.client.d.ts +4 -1
- package/dist/fields/LexicalEditor/feature.client.d.ts.map +1 -1
- package/dist/fields/LexicalEditor/feature.client.js +15 -7
- package/dist/fields/LexicalEditor/feature.client.js.map +1 -1
- package/dist/fields/PromptEditorField/PromptEditorField.d.ts +2 -2
- package/dist/fields/PromptEditorField/PromptEditorField.d.ts.map +1 -1
- package/dist/fields/PromptEditorField/PromptEditorField.js +4 -8
- package/dist/fields/PromptEditorField/PromptEditorField.js.map +1 -1
- package/dist/fields/SelectField/SelectField.d.ts +3 -2
- package/dist/fields/SelectField/SelectField.d.ts.map +1 -1
- package/dist/fields/SelectField/SelectField.js +2 -3
- package/dist/fields/SelectField/SelectField.js.map +1 -1
- package/dist/index.d.ts +1 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -6
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +2 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +22 -21
- package/dist/init.js.map +1 -1
- package/dist/libraries/autocomplete/AutocompleteTextArea.js +9 -7
- package/dist/libraries/autocomplete/AutocompleteTextArea.js.map +1 -1
- package/dist/libraries/handlebars/asyncHandlebars.js +1 -1
- package/dist/libraries/handlebars/asyncHandlebars.js.map +1 -1
- package/dist/libraries/handlebars/helpers.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +30 -41
- package/dist/plugin.js.map +1 -1
- package/dist/providers/FieldProvider/FieldProvider.d.ts +15 -0
- package/dist/providers/FieldProvider/FieldProvider.d.ts.map +1 -0
- package/dist/providers/FieldProvider/FieldProvider.js +33 -0
- package/dist/providers/FieldProvider/FieldProvider.js.map +1 -0
- package/dist/providers/FieldProvider/useFieldProps.d.ts +6 -0
- package/dist/providers/FieldProvider/useFieldProps.d.ts.map +1 -0
- package/dist/providers/FieldProvider/useFieldProps.js +12 -0
- package/dist/providers/FieldProvider/useFieldProps.js.map +1 -0
- package/dist/providers/InstructionsProvider/InstructionsProvider.d.ts +5 -1
- package/dist/providers/InstructionsProvider/InstructionsProvider.d.ts.map +1 -1
- package/dist/providers/InstructionsProvider/InstructionsProvider.js +12 -7
- package/dist/providers/InstructionsProvider/InstructionsProvider.js.map +1 -1
- package/dist/providers/InstructionsProvider/useInstructions.d.ts +2 -2
- package/dist/providers/InstructionsProvider/useInstructions.d.ts.map +1 -1
- package/dist/providers/InstructionsProvider/useInstructions.js +17 -4
- package/dist/providers/InstructionsProvider/useInstructions.js.map +1 -1
- package/dist/types.d.ts +9 -41
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -4
- package/dist/types.js.map +1 -1
- package/dist/ui/Compose/Compose.d.ts +9 -0
- package/dist/ui/Compose/Compose.d.ts.map +1 -0
- package/dist/ui/{Actions/Actions.js → Compose/Compose.js} +49 -39
- package/dist/ui/Compose/Compose.js.map +1 -0
- package/dist/ui/{Actions → Compose}/UndoRedoActions.d.ts.map +1 -1
- package/dist/ui/{Actions → Compose}/UndoRedoActions.js +15 -2
- package/dist/ui/Compose/UndoRedoActions.js.map +1 -0
- package/dist/ui/{Actions → Compose}/hooks/menu/Item.d.ts +1 -1
- package/dist/ui/{Actions → Compose}/hooks/menu/Item.d.ts.map +1 -1
- package/dist/ui/{Actions → Compose}/hooks/menu/Item.js +2 -2
- package/dist/ui/{Actions → Compose}/hooks/menu/Item.js.map +1 -1
- package/dist/ui/Compose/hooks/menu/TranslateMenu.d.ts.map +1 -0
- package/dist/ui/{Actions → Compose}/hooks/menu/TranslateMenu.js +11 -11
- package/dist/ui/Compose/hooks/menu/TranslateMenu.js.map +1 -0
- package/dist/ui/{Actions → Compose}/hooks/menu/items.d.ts +8 -8
- package/dist/ui/{Actions → Compose}/hooks/menu/items.d.ts.map +1 -1
- package/dist/ui/{Actions → Compose}/hooks/menu/items.js.map +1 -1
- package/dist/ui/{Actions → Compose}/hooks/menu/itemsMap.d.ts +1 -1
- package/dist/ui/Compose/hooks/menu/itemsMap.d.ts.map +1 -0
- package/dist/ui/{Actions → Compose}/hooks/menu/itemsMap.js +1 -2
- package/dist/ui/Compose/hooks/menu/itemsMap.js.map +1 -0
- package/dist/ui/Compose/hooks/menu/useMenu.d.ts.map +1 -0
- package/dist/ui/{Actions → Compose}/hooks/menu/useMenu.js +2 -1
- package/dist/ui/Compose/hooks/menu/useMenu.js.map +1 -0
- package/dist/ui/{Actions → Compose}/hooks/useGenerate.d.ts +3 -1
- package/dist/ui/Compose/hooks/useGenerate.d.ts.map +1 -0
- package/dist/ui/{Actions → Compose}/hooks/useGenerate.js +19 -24
- package/dist/ui/Compose/hooks/useGenerate.js.map +1 -0
- package/dist/ui/Compose/hooks/useHistory.d.ts.map +1 -0
- package/dist/ui/{Actions → Compose}/hooks/useHistory.js +6 -3
- package/dist/ui/Compose/hooks/useHistory.js.map +1 -0
- package/dist/utilities/setSafeLexicalState.d.ts +2 -2
- package/dist/utilities/setSafeLexicalState.d.ts.map +1 -1
- package/dist/utilities/setSafeLexicalState.js +5 -12
- package/dist/utilities/setSafeLexicalState.js.map +1 -1
- package/dist/utilities/updateFieldsConfig.d.ts.map +1 -1
- package/dist/utilities/updateFieldsConfig.js +18 -6
- package/dist/utilities/updateFieldsConfig.js.map +1 -1
- package/package.json +33 -60
- package/dist/ai/schemas/lexical.schema.d.ts +0 -31
- package/dist/ai/schemas/lexical.schema.d.ts.map +0 -1
- package/dist/ai/schemas/lexical.schema.js +0 -102
- package/dist/ai/schemas/lexical.schema.js.map +0 -1
- package/dist/ai/utils/generateSeedPrompt.d.ts +0 -5
- package/dist/ai/utils/generateSeedPrompt.d.ts.map +0 -1
- package/dist/ai/utils/generateSeedPrompt.js.map +0 -1
- package/dist/fields/DescriptionField/DescriptionField.d.ts +0 -4
- package/dist/fields/DescriptionField/DescriptionField.d.ts.map +0 -1
- package/dist/fields/DescriptionField/DescriptionField.js +0 -18
- package/dist/fields/DescriptionField/DescriptionField.js.map +0 -1
- package/dist/fields/LexicalEditor/ActionsFeatureComponent.d.ts +0 -2
- package/dist/fields/LexicalEditor/ActionsFeatureComponent.d.ts.map +0 -1
- package/dist/fields/LexicalEditor/ActionsFeatureComponent.js +0 -15
- package/dist/fields/LexicalEditor/ActionsFeatureComponent.js.map +0 -1
- package/dist/ui/Actions/Actions.d.ts +0 -5
- package/dist/ui/Actions/Actions.d.ts.map +0 -1
- package/dist/ui/Actions/Actions.js.map +0 -1
- package/dist/ui/Actions/UndoRedoActions.js.map +0 -1
- package/dist/ui/Actions/hooks/menu/TranslateMenu.d.ts.map +0 -1
- package/dist/ui/Actions/hooks/menu/TranslateMenu.js.map +0 -1
- package/dist/ui/Actions/hooks/menu/itemsMap.d.ts.map +0 -1
- package/dist/ui/Actions/hooks/menu/itemsMap.js.map +0 -1
- package/dist/ui/Actions/hooks/menu/useMenu.d.ts.map +0 -1
- package/dist/ui/Actions/hooks/menu/useMenu.js.map +0 -1
- package/dist/ui/Actions/hooks/useGenerate.d.ts.map +0 -1
- package/dist/ui/Actions/hooks/useGenerate.js.map +0 -1
- package/dist/ui/Actions/hooks/useHistory.d.ts.map +0 -1
- package/dist/ui/Actions/hooks/useHistory.js.map +0 -1
- package/dist/utilities/jsonToZod.d.ts +0 -3
- package/dist/utilities/jsonToZod.d.ts.map +0 -1
- package/dist/utilities/jsonToZod.js +0 -33
- package/dist/utilities/jsonToZod.js.map +0 -1
- /package/dist/ui/{Actions → Compose}/UndoRedoActions.d.ts +0 -0
- /package/dist/ui/{Actions/actions.module.scss → Compose/compose.module.scss} +0 -0
- /package/dist/ui/{Actions → Compose}/hooks/menu/TranslateMenu.d.ts +0 -0
- /package/dist/ui/{Actions → Compose}/hooks/menu/items.js +0 -0
- /package/dist/ui/{Actions → Compose}/hooks/menu/menu.module.scss +0 -0
- /package/dist/ui/{Actions → Compose}/hooks/menu/useMenu.d.ts +0 -0
- /package/dist/ui/{Actions → Compose}/hooks/useHistory.d.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ui/Actions/Actions.tsx"],"sourcesContent":["'use client'\n\nimport { useEditorConfigContext } from '@payloadcms/richtext-lexical/client'\nimport { FieldDescription, Popup, useDocumentDrawer, useField, useFieldProps } from '@payloadcms/ui'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport { PLUGIN_INSTRUCTIONS_TABLE } from '../../defaults.js'\nimport { setSafeLexicalState } from '../../utilities/setSafeLexicalState.js'\nimport { PluginIcon } from '../Icons/Icons.js'\nimport { UndoRedoActions } from './UndoRedoActions.js'\nimport styles from './actions.module.scss'\nimport { useMenu } from './hooks/menu/useMenu.js'\nimport { useGenerate } from './hooks/useGenerate.js'\n\nfunction findParentWithClass(element, className) {\n // Base case: if the element is null or we've reached the top of the DOM\n if (!element || element === document.body) {\n return null\n }\n\n // Check if the current element has the class we're looking for\n if (element.classList.contains(className)) {\n return element\n }\n\n // Recursively call the function on the parent element\n return findParentWithClass(element.parentElement, className)\n}\n\nexport const Actions = ({ descriptionProps = {}, instructionId }) => {\n const [DocumentDrawer, _, { closeDrawer, openDrawer }] = useDocumentDrawer({\n id: instructionId,\n collectionSlug: PLUGIN_INSTRUCTIONS_TABLE,\n })\n\n const { type: fieldType, path: pathFromContext, schemaPath } = useFieldProps()\n const { editor: lexicalEditor, editorContainerRef } = useEditorConfigContext()\n\n // Below snippet is used to show/hide the actions menu on AI enabled fields\n const [input, setInput] = useState(null)\n const actionsRef = useRef(null)\n\n // Set input element for current field\n useEffect(() => {\n if (!actionsRef.current) return\n\n const fieldId = `field-${pathFromContext.replace(/\\./g, '__')}`\n const inputElement = document.getElementById(fieldId)\n\n if (!inputElement && fieldType === 'richText') {\n setInput(editorContainerRef.current)\n } else {\n actionsRef.current.setAttribute('for', fieldId)\n setInput(inputElement)\n }\n }, [pathFromContext, schemaPath, actionsRef, editorContainerRef])\n\n // Show or hide actions menu on field\n useEffect(() => {\n if (!input || !actionsRef.current) return\n\n actionsRef.current.classList.add(styles.actions_hidden)\n input.addEventListener('click', (event) => {\n document.querySelectorAll('.ai-plugin-active')?.forEach((element) => {\n const actionElement = element.querySelector(`.${styles.actions}`)\n if (actionElement) {\n actionElement.classList.add(styles.actions_hidden)\n element.classList.remove('ai-plugin-active')\n }\n })\n\n actionsRef.current.classList.remove(styles.actions_hidden)\n const parentWithClass = findParentWithClass(event.target, 'field-type')\n parentWithClass.classList.add('ai-plugin-active')\n })\n }, [input, actionsRef])\n\n const [isProcessing, setIsProcessing] = useState(false)\n const { generate, isLoading } = useGenerate()\n\n const { ActiveComponent, Menu } = useMenu({\n onCompose: async () => {\n console.log('Composing...')\n setIsProcessing(true)\n await generate({\n action: 'Compose',\n }).finally(() => {\n setIsProcessing(false)\n })\n },\n onExpand: async () => {\n console.log('Expanding...')\n await generate({\n action: 'Expand',\n })\n },\n onProofread: async () => {\n console.log('Proofreading...')\n await generate({\n action: 'Proofread',\n })\n },\n onRephrase: async () => {\n console.log('Rephrasing...')\n await generate({\n action: 'Rephrase',\n })\n },\n onSettings: openDrawer,\n onSimplify: async () => {\n console.log('Simplifying...')\n await generate({\n action: 'Simplify',\n })\n },\n onSummarize: async () => {\n console.log('Summarizing...')\n await generate({\n action: 'Summarize',\n })\n },\n onTranslate: async (data) => {\n console.log('Translating...', data)\n await generate({\n action: 'Translate',\n params: data,\n })\n },\n })\n\n const { setValue, value } = useField<string>({\n path: pathFromContext,\n })\n\n const setIfValueIsLexicalState = useCallback((val) => {\n if (val.root && lexicalEditor) {\n setSafeLexicalState(JSON.stringify(val), lexicalEditor)\n }\n\n // DO NOT PROVIDE lexicalEditor as a dependency, it freaks out and does not update the editor after first undo/redo\n }, [])\n\n return (\n <React.Fragment>\n <label className={`${styles.actions}`} onClick={(e) => e.preventDefault()} ref={actionsRef}>\n <DocumentDrawer\n onSave={() => {\n closeDrawer()\n }}\n />\n <Popup\n button={<PluginIcon isLoading={isProcessing || isLoading} />}\n render={({ close }) => {\n return <Menu isLoading={isProcessing || isLoading} onClose={close} />\n }}\n verticalAlign=\"bottom\"\n />\n <ActiveComponent isLoading={isProcessing || isLoading} />\n <UndoRedoActions\n onChange={(val) => {\n setValue(val)\n setIfValueIsLexicalState(val)\n }}\n />\n </label>\n {/*<div>*/}\n {/* <FieldDescription {...descriptionProps} />*/}\n {/*</div>*/}\n </React.Fragment>\n )\n}\n"],"names":["useEditorConfigContext","Popup","useDocumentDrawer","useField","useFieldProps","React","useCallback","useEffect","useRef","useState","PLUGIN_INSTRUCTIONS_TABLE","setSafeLexicalState","PluginIcon","UndoRedoActions","styles","useMenu","useGenerate","findParentWithClass","element","className","document","body","classList","contains","parentElement","Actions","descriptionProps","instructionId","DocumentDrawer","_","closeDrawer","openDrawer","id","collectionSlug","type","fieldType","path","pathFromContext","schemaPath","editor","lexicalEditor","editorContainerRef","input","setInput","actionsRef","current","fieldId","replace","inputElement","getElementById","setAttribute","add","actions_hidden","addEventListener","event","querySelectorAll","forEach","actionElement","querySelector","actions","remove","parentWithClass","target","isProcessing","setIsProcessing","generate","isLoading","ActiveComponent","Menu","onCompose","console","log","action","finally","onExpand","onProofread","onRephrase","onSettings","onSimplify","onSummarize","onTranslate","data","params","setValue","value","setIfValueIsLexicalState","val","root","JSON","stringify","Fragment","label","onClick","e","preventDefault","ref","onSave","button","render","close","onClose","verticalAlign","onChange"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ui/Actions/UndoRedoActions.tsx"],"sourcesContent":["import { useHistory } from './hooks/useHistory.js'\nimport React, { MouseEventHandler, useCallback } from 'react'\n\nexport const UndoRedoActions = ({ onChange }: { onChange: (val: unknown) => void }) => {\n const { canRedo, canUndo, redo, undo } = useHistory()\n\n const redoHistoryValue = useCallback<MouseEventHandler>(\n (event) => {\n event.stopPropagation()\n\n const value = redo()\n if (value) {\n onChange(value)\n }\n },\n [redo],\n )\n\n const undoHistoryValue = useCallback<MouseEventHandler>(\n (event) => {\n event.stopPropagation()\n\n const value = undo()\n if (value) {\n onChange(value)\n }\n },\n [undo],\n )\n\n if (!canUndo && !canRedo) return null\n\n return (\n <>\n <button onClick={undoHistoryValue} type=\"button\" disabled={!canUndo}>\n Undo\n </button>\n <button onClick={redoHistoryValue} type=\"button\" disabled={!canRedo}>\n Redo\n </button>\n </>\n )\n}\n"],"names":["useHistory","React","useCallback","UndoRedoActions","onChange","canRedo","canUndo","redo","undo","redoHistoryValue","event","stopPropagation","value","undoHistoryValue","button","onClick","type","disabled"],"mappings":";AAAA,SAASA,UAAU,QAAQ,wBAAuB;AAClD,OAAOC,SAA4BC,WAAW,QAAQ,QAAO;AAE7D,OAAO,MAAMC,kBAAkB,CAAC,EAAEC,QAAQ,EAAwC;IAChF,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAEC,IAAI,EAAEC,IAAI,EAAE,GAAGR;IAEzC,MAAMS,mBAAmBP,YACvB,CAACQ;QACCA,MAAMC,eAAe;QAErB,MAAMC,QAAQL;QACd,IAAIK,OAAO;YACTR,SAASQ;QACX;IACF,GACA;QAACL;KAAK;IAGR,MAAMM,mBAAmBX,YACvB,CAACQ;QACCA,MAAMC,eAAe;QAErB,MAAMC,QAAQJ;QACd,IAAII,OAAO;YACTR,SAASQ;QACX;IACF,GACA;QAACJ;KAAK;IAGR,IAAI,CAACF,WAAW,CAACD,SAAS,OAAO;IAEjC,qBACE;;0BACE,KAACS;gBAAOC,SAASF;gBAAkBG,MAAK;gBAASC,UAAU,CAACX;0BAAS;;0BAGrE,KAACQ;gBAAOC,SAASN;gBAAkBO,MAAK;gBAASC,UAAU,CAACZ;0BAAS;;;;AAK3E,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TranslateMenu.d.ts","sourceRoot":"","sources":["../../../../../src/ui/Actions/hooks/menu/TranslateMenu.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,aAAa;;6CA0EzB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/ui/Actions/hooks/menu/TranslateMenu.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport locales from 'locale-codes'\n\nimport { Translate } from './items.js'\nimport { Item } from './Item.js'\nimport styles from './menu.module.scss'\n\nexport const TranslateMenu = ({ onClick }) => {\n const [show, setShow] = useState(false)\n\n const filteredLocales = locales.all.filter((a) => {\n return a.tag && a.location\n })\n\n const [languages, setLanguages] = useState(filteredLocales)\n const [inputFocus, setInputFocus] = useState(false)\n\n return (\n <div\n className={styles.menu}\n onMouseLeave={() => {\n if (!inputFocus) {\n setShow(false)\n }\n }}\n >\n <Translate\n onClick={() => {\n setShow(!show)\n }}\n onMouseEnter={() => setShow(true)}\n isMenu={true}\n isActive={show}\n ></Translate>\n <div className={styles.hoverMenu} data-show={show}>\n <div className={`${styles.menu} ${styles.subMenu}`}>\n <Item\n onClick={() => {}}\n style={{\n position: 'sticky',\n top: 0,\n padding: '0 0 5px 0',\n background: 'transparent',\n }}\n >\n <input\n className={styles.menuInput}\n placeholder={'Search...'}\n onFocus={() => setInputFocus(true)}\n onBlur={() => setInputFocus(false)}\n onChange={(event) => {\n const value = event.target.value\n setLanguages(\n filteredLocales.filter((l) => {\n const lowerCaseValue = value.toLowerCase()\n return (\n l.name.toLowerCase().startsWith(lowerCaseValue) ||\n l.location.toLowerCase().startsWith(lowerCaseValue) ||\n l.tag.toLowerCase().startsWith(lowerCaseValue)\n )\n }),\n )\n }}\n />\n </Item>\n {languages.map((locale) => {\n return (\n <Item\n key={locale.tag}\n onClick={() => {\n onClick({ locale: locale.tag })\n }}\n >\n <span className={styles.ellipsis}>{`${locale.location} (${locale.tag})`}</span>\n </Item>\n )\n })}\n </div>\n </div>\n </div>\n )\n}\n"],"names":["React","useState","locales","Translate","Item","styles","TranslateMenu","onClick","show","setShow","filteredLocales","all","filter","a","tag","location","languages","setLanguages","inputFocus","setInputFocus","div","className","menu","onMouseLeave","onMouseEnter","isMenu","isActive","hoverMenu","data-show","subMenu","style","position","top","padding","background","input","menuInput","placeholder","onFocus","onBlur","onChange","event","value","target","l","lowerCaseValue","toLowerCase","name","startsWith","map","locale","span","ellipsis"],"mappings":";AAAA,OAAOA,SAASC,QAAQ,QAAQ,QAAO;AACvC,OAAOC,aAAa,eAAc;AAElC,SAASC,SAAS,QAAQ,aAAY;AACtC,SAASC,IAAI,QAAQ,YAAW;AAChC,OAAOC,YAAY,qBAAoB;AAEvC,OAAO,MAAMC,gBAAgB,CAAC,EAAEC,OAAO,EAAE;IACvC,MAAM,CAACC,MAAMC,QAAQ,GAAGR,SAAS;IAEjC,MAAMS,kBAAkBR,QAAQS,GAAG,CAACC,MAAM,CAAC,CAACC;QAC1C,OAAOA,EAAEC,GAAG,IAAID,EAAEE,QAAQ;IAC5B;IAEA,MAAM,CAACC,WAAWC,aAAa,GAAGhB,SAASS;IAC3C,MAAM,CAACQ,YAAYC,cAAc,GAAGlB,SAAS;IAE7C,qBACE,MAACmB;QACCC,WAAWhB,OAAOiB,IAAI;QACtBC,cAAc;YACZ,IAAI,CAACL,YAAY;gBACfT,QAAQ;YACV;QACF;;0BAEA,KAACN;gBACCI,SAAS;oBACPE,QAAQ,CAACD;gBACX;gBACAgB,cAAc,IAAMf,QAAQ;gBAC5BgB,QAAQ;gBACRC,UAAUlB;;0BAEZ,KAACY;gBAAIC,WAAWhB,OAAOsB,SAAS;gBAAEC,aAAWpB;0BAC3C,cAAA,MAACY;oBAAIC,WAAW,CAAC,EAAEhB,OAAOiB,IAAI,CAAC,CAAC,EAAEjB,OAAOwB,OAAO,CAAC,CAAC;;sCAChD,KAACzB;4BACCG,SAAS,KAAO;4BAChBuB,OAAO;gCACLC,UAAU;gCACVC,KAAK;gCACLC,SAAS;gCACTC,YAAY;4BACd;sCAEA,cAAA,KAACC;gCACCd,WAAWhB,OAAO+B,SAAS;gCAC3BC,aAAa;gCACbC,SAAS,IAAMnB,cAAc;gCAC7BoB,QAAQ,IAAMpB,cAAc;gCAC5BqB,UAAU,CAACC;oCACT,MAAMC,QAAQD,MAAME,MAAM,CAACD,KAAK;oCAChCzB,aACEP,gBAAgBE,MAAM,CAAC,CAACgC;wCACtB,MAAMC,iBAAiBH,MAAMI,WAAW;wCACxC,OACEF,EAAEG,IAAI,CAACD,WAAW,GAAGE,UAAU,CAACH,mBAChCD,EAAE7B,QAAQ,CAAC+B,WAAW,GAAGE,UAAU,CAACH,mBACpCD,EAAE9B,GAAG,CAACgC,WAAW,GAAGE,UAAU,CAACH;oCAEnC;gCAEJ;;;wBAGH7B,UAAUiC,GAAG,CAAC,CAACC;4BACd,qBACE,KAAC9C;gCAECG,SAAS;oCACPA,QAAQ;wCAAE2C,QAAQA,OAAOpC,GAAG;oCAAC;gCAC/B;0CAEA,cAAA,KAACqC;oCAAK9B,WAAWhB,OAAO+C,QAAQ;8CAAG,CAAC,EAAEF,OAAOnC,QAAQ,CAAC,EAAE,EAAEmC,OAAOpC,GAAG,CAAC,CAAC,CAAC;;+BALlEoC,OAAOpC,GAAG;wBAQrB;;;;;;AAKV,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"itemsMap.d.ts","sourceRoot":"","sources":["../../../../../src/ui/Actions/hooks/menu/itemsMap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAK1E,KAAK,gBAAgB,GAAG;IACtB,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,eAAe,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,gBAAgB,EAoB1C,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/ui/Actions/hooks/menu/itemsMap.ts"],"sourcesContent":["import React from 'react'\n\nimport type { ActionMenuItems, BaseItemProps } from '../../../../types.js'\n\nimport { Compose, Expand, Proofread, Rephrase, Settings, Simplify, Summarize } from './items.js'\nimport { TranslateMenu } from './TranslateMenu.js'\n\ntype MenuItemsMapType = {\n component: React.FC<BaseItemProps>\n excludedFor?: string[]\n loadingText?: string\n name: ActionMenuItems\n}\n\nexport const menuItemsMap: MenuItemsMapType[] = [\n { name: 'Proofread', component: Proofread, excludedFor: ['upload'], loadingText: 'Proofreading' },\n { name: 'Rephrase', component: Rephrase, excludedFor: ['upload'], loadingText: 'Rephrasing' },\n {\n name: 'Translate',\n component: TranslateMenu,\n excludedFor: ['upload'],\n loadingText: 'Translating',\n },\n { name: 'Expand', component: Expand, excludedFor: ['upload', 'text'], loadingText: 'Expanding' },\n {\n // Turned off - WIP\n name: 'Summarize',\n component: Summarize,\n excludedFor: ['upload', 'text', 'richText'],\n loadingText: 'Summarizing',\n },\n { name: 'Simplify', component: Simplify, excludedFor: ['upload'], loadingText: 'Simplifying' },\n { name: 'Compose', component: Compose, loadingText: 'Composing' },\n { name: 'Settings', component: Settings },\n]\n"],"names":["React","Compose","Expand","Proofread","Rephrase","Settings","Simplify","Summarize","TranslateMenu","menuItemsMap","name","component","excludedFor","loadingText"],"mappings":"AAAA,OAAOA,WAAW,QAAO;AAIzB,SAASC,OAAO,EAAEC,MAAM,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,SAAS,QAAQ,aAAY;AAChG,SAASC,aAAa,QAAQ,qBAAoB;AASlD,OAAO,MAAMC,eAAmC;IAC9C;QAAEC,MAAM;QAAaC,WAAWR;QAAWS,aAAa;YAAC;SAAS;QAAEC,aAAa;IAAe;IAChG;QAAEH,MAAM;QAAYC,WAAWP;QAAUQ,aAAa;YAAC;SAAS;QAAEC,aAAa;IAAa;IAC5F;QACEH,MAAM;QACNC,WAAWH;QACXI,aAAa;YAAC;SAAS;QACvBC,aAAa;IACf;IACA;QAAEH,MAAM;QAAUC,WAAWT;QAAQU,aAAa;YAAC;YAAU;SAAO;QAAEC,aAAa;IAAY;IAC/F;QACE,mBAAmB;QACnBH,MAAM;QACNC,WAAWJ;QACXK,aAAa;YAAC;YAAU;YAAQ;SAAW;QAC3CC,aAAa;IACf;IACA;QAAEH,MAAM;QAAYC,WAAWL;QAAUM,aAAa;YAAC;SAAS;QAAEC,aAAa;IAAc;IAC7F;QAAEH,MAAM;QAAWC,WAAWV;QAASY,aAAa;IAAY;IAChE;QAAEH,MAAM;QAAYC,WAAWN;IAAS;CACzC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useMenu.d.ts","sourceRoot":"","sources":["../../../../../src/ui/Actions/hooks/menu/useMenu.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAmB1E,eAAO,MAAM,OAAO,eAAgB,aAAa;;;;;;;;CAyEhD,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/ui/Actions/hooks/menu/useMenu.tsx"],"sourcesContent":["'use client'\n\nimport { useField, useFieldProps } from '@payloadcms/ui'\nimport React, { useEffect, useMemo, useState } from 'react'\n\nimport type { ActionMenuItems, UseMenuEvents } from '../../../../types.js'\n\nimport { Compose, Proofread, Rephrase } from './items.js'\nimport { menuItemsMap } from './itemsMap.js'\nimport styles from './menu.module.scss'\n\nconst getActiveComponent = (ac) => {\n switch (ac) {\n case 'Proofread':\n return Proofread\n case 'Rephrase':\n return Rephrase\n case 'Compose':\n return Compose\n default:\n return Rephrase\n }\n}\n\nexport const useMenu = (menuEvents: UseMenuEvents) => {\n const { type: fieldType, path: pathFromContext } = useFieldProps()\n const field = useField({ path: pathFromContext })\n const [activeComponent, setActiveComponent] = useState<ActionMenuItems>('Rephrase')\n\n const { initialValue, value } = field\n\n useEffect(() => {\n if (!value) {\n setActiveComponent('Compose')\n return\n }\n\n if (menuItemsMap.some((i) => i.excludedFor?.includes(fieldType))) {\n setActiveComponent('Compose')\n return\n }\n\n if (typeof value === 'string' && value !== initialValue) {\n setActiveComponent('Proofread')\n } else {\n setActiveComponent('Rephrase')\n }\n }, [initialValue, value, fieldType])\n\n const MemoizedActiveComponent = useMemo(() => {\n return ({ isLoading }) => {\n const ActiveComponent = getActiveComponent(activeComponent)\n const activeItem = menuItemsMap.find((i) => i.name === activeComponent)\n return (\n <ActiveComponent disabled={isLoading} hideIcon onClick={menuEvents[`on${activeComponent}`]}>\n {isLoading && activeItem.loadingText}\n </ActiveComponent>\n )\n }\n }, [activeComponent, menuEvents])\n\n const filteredMenuItems = useMemo(\n () =>\n menuItemsMap.filter((i) => i.name !== activeComponent && !i.excludedFor?.includes(fieldType)),\n [activeComponent, fieldType],\n )\n\n const MemoizedMenu = useMemo(() => {\n return ({ isLoading, onClose }) => (\n <div className={styles.menu}>\n {filteredMenuItems.map((i) => {\n const Action = i.component\n return (\n <Action\n disabled={isLoading}\n key={i.name}\n onClick={(data) => {\n if (i.name !== 'Settings') {\n setActiveComponent(i.name)\n }\n\n menuEvents[`on${i.name}`](data)\n onClose()\n }}\n >\n {isLoading && i.loadingText}\n </Action>\n )\n })}\n </div>\n )\n }, [filteredMenuItems, menuEvents])\n\n return {\n ActiveComponent: MemoizedActiveComponent,\n Menu: MemoizedMenu,\n }\n}\n"],"names":["useField","useFieldProps","React","useEffect","useMemo","useState","Compose","Proofread","Rephrase","menuItemsMap","styles","getActiveComponent","ac","useMenu","menuEvents","type","fieldType","path","pathFromContext","field","activeComponent","setActiveComponent","initialValue","value","some","i","excludedFor","includes","MemoizedActiveComponent","isLoading","ActiveComponent","activeItem","find","name","disabled","hideIcon","onClick","loadingText","filteredMenuItems","filter","MemoizedMenu","onClose","div","className","menu","map","Action","component","data","Menu"],"mappings":"AAAA;;AAEA,SAASA,QAAQ,EAAEC,aAAa,QAAQ,iBAAgB;AACxD,OAAOC,SAASC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,QAAO;AAI3D,SAASC,OAAO,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,aAAY;AACzD,SAASC,YAAY,QAAQ,gBAAe;AAC5C,OAAOC,YAAY,qBAAoB;AAEvC,MAAMC,qBAAqB,CAACC;IAC1B,OAAQA;QACN,KAAK;YACH,OAAOL;QACT,KAAK;YACH,OAAOC;QACT,KAAK;YACH,OAAOF;QACT;YACE,OAAOE;IACX;AACF;AAEA,OAAO,MAAMK,UAAU,CAACC;IACtB,MAAM,EAAEC,MAAMC,SAAS,EAAEC,MAAMC,eAAe,EAAE,GAAGjB;IACnD,MAAMkB,QAAQnB,SAAS;QAAEiB,MAAMC;IAAgB;IAC/C,MAAM,CAACE,iBAAiBC,mBAAmB,GAAGhB,SAA0B;IAExE,MAAM,EAAEiB,YAAY,EAAEC,KAAK,EAAE,GAAGJ;IAEhChB,UAAU;QACR,IAAI,CAACoB,OAAO;YACVF,mBAAmB;YACnB;QACF;QAEA,IAAIZ,aAAae,IAAI,CAAC,CAACC,IAAMA,EAAEC,WAAW,EAAEC,SAASX,aAAa;YAChEK,mBAAmB;YACnB;QACF;QAEA,IAAI,OAAOE,UAAU,YAAYA,UAAUD,cAAc;YACvDD,mBAAmB;QACrB,OAAO;YACLA,mBAAmB;QACrB;IACF,GAAG;QAACC;QAAcC;QAAOP;KAAU;IAEnC,MAAMY,0BAA0BxB,QAAQ;QACtC,OAAO,CAAC,EAAEyB,SAAS,EAAE;YACnB,MAAMC,kBAAkBnB,mBAAmBS;YAC3C,MAAMW,aAAatB,aAAauB,IAAI,CAAC,CAACP,IAAMA,EAAEQ,IAAI,KAAKb;YACvD,qBACE,KAACU;gBAAgBI,UAAUL;gBAAWM,QAAQ;gBAACC,SAAStB,UAAU,CAAC,CAAC,EAAE,EAAEM,gBAAgB,CAAC,CAAC;0BACvFS,aAAaE,WAAWM,WAAW;;QAG1C;IACF,GAAG;QAACjB;QAAiBN;KAAW;IAEhC,MAAMwB,oBAAoBlC,QACxB,IACEK,aAAa8B,MAAM,CAAC,CAACd,IAAMA,EAAEQ,IAAI,KAAKb,mBAAmB,CAACK,EAAEC,WAAW,EAAEC,SAASX,aACpF;QAACI;QAAiBJ;KAAU;IAG9B,MAAMwB,eAAepC,QAAQ;QAC3B,OAAO,CAAC,EAAEyB,SAAS,EAAEY,OAAO,EAAE,iBAC5B,KAACC;gBAAIC,WAAWjC,OAAOkC,IAAI;0BACxBN,kBAAkBO,GAAG,CAAC,CAACpB;oBACtB,MAAMqB,SAASrB,EAAEsB,SAAS;oBAC1B,qBACE,KAACD;wBACCZ,UAAUL;wBAEVO,SAAS,CAACY;4BACR,IAAIvB,EAAEQ,IAAI,KAAK,YAAY;gCACzBZ,mBAAmBI,EAAEQ,IAAI;4BAC3B;4BAEAnB,UAAU,CAAC,CAAC,EAAE,EAAEW,EAAEQ,IAAI,CAAC,CAAC,CAAC,CAACe;4BAC1BP;wBACF;kCAECZ,aAAaJ,EAAEY,WAAW;uBAVtBZ,EAAEQ,IAAI;gBAajB;;IAGN,GAAG;QAACK;QAAmBxB;KAAW;IAElC,OAAO;QACLgB,iBAAiBF;QACjBqB,MAAMT;IACR;AACF,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useGenerate.d.ts","sourceRoot":"","sources":["../../../../src/ui/Actions/hooks/useGenerate.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,mBAAmB,CAAA;AAa1E,KAAK,oBAAoB,GAAG;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAGzE,eAAO,MAAM,WAAW;yBAuKH,oBAAoB;;CAoBxC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/ui/Actions/hooks/useGenerate.ts"],"sourcesContent":["import type { ClientCollectionConfig, UploadField } from 'payload'\n\nimport { useEditorConfigContext } from '@payloadcms/richtext-lexical/client'\nimport {\n useConfig,\n useDocumentInfo,\n useField,\n useFieldProps,\n useForm,\n useLocale,\n} from '@payloadcms/ui'\nimport { useCompletion, experimental_useObject as useObject } from 'ai/react'\nimport { useCallback, useEffect } from 'react'\n\nimport type { ActionMenuItems, GenerateTextarea } from '../../../types.js'\n\nimport {\n PLUGIN_API_ENDPOINT_GENERATE,\n PLUGIN_API_ENDPOINT_GENERATE_UPLOAD,\n PLUGIN_INSTRUCTIONS_TABLE,\n} from '../../../defaults.js'\nimport { useInstructions } from '../../../providers/InstructionsProvider/useInstructions.js'\nimport { getFieldBySchemaPath } from '../../../utilities/getFieldBySchemaPath.js'\nimport { jsonSchemaToZod } from '../../../utilities/jsonToZod.js'\nimport { setSafeLexicalState } from '../../../utilities/setSafeLexicalState.js'\nimport { useHistory } from './useHistory.js'\n\ntype ActionCallbackParams = { action: ActionMenuItems; params?: unknown }\n\n//TODO: DONATION IDEA - Add a url to donate in cli when user installs the plugin and uses it for couple of times.\nexport const useGenerate = () => {\n const { type, path: pathFromContext, schemaPath } = useFieldProps()\n\n const editorConfigContext = useEditorConfigContext()\n const { editor } = editorConfigContext\n\n const { docConfig } = useDocumentInfo()\n\n const { setValue } = useField<string>({\n path: pathFromContext,\n })\n\n const { set: setHistory } = useHistory()\n const { id: instructionId } = useInstructions({\n path: schemaPath,\n })\n\n const { getData } = useForm()\n const localFromContext = useLocale()\n const {\n config: { collections },\n } = useConfig()\n const collection = collections.find((collection) => collection.slug === PLUGIN_INSTRUCTIONS_TABLE)\n const { custom: { editorConfig } = {} } = collection.admin\n const { schema: DocumentSchema = {} } = editorConfig || {}\n const lexicalZodSchema = jsonSchemaToZod(DocumentSchema)\n\n const {\n isLoading: loadingObject,\n object,\n stop, // TODO: Implement this function\n submit,\n } = useObject({\n api: `/api${PLUGIN_API_ENDPOINT_GENERATE}`,\n onError: (error) => {\n console.error('Error generating object:', error)\n },\n onFinish: (result) => {\n if (result.object) {\n setHistory(result.object)\n setValue(result.object)\n } else {\n console.log('onFinish: result ', result)\n }\n },\n schema: lexicalZodSchema,\n })\n\n useEffect(() => {\n if (!object) return\n\n requestAnimationFrame(() => {\n if (!editor) {\n setValue(object)\n return\n }\n\n // Currently this is being used as setValue for RichText component does not render new changes right away.\n setSafeLexicalState(object, editor)\n })\n }, [object])\n\n const {\n complete,\n completion,\n isLoading: loadingCompletion,\n } = useCompletion({\n api: `/api${PLUGIN_API_ENDPOINT_GENERATE}`,\n onError: (error) => {\n console.error('Error generating text:', error)\n },\n onFinish: (prompt, result) => {\n setHistory(result)\n },\n streamProtocol: 'data',\n })\n\n useEffect(() => {\n if (!completion) return\n\n requestAnimationFrame(() => {\n setValue(completion)\n })\n }, [completion])\n\n const streamObject = useCallback(\n ({ action = 'Compose', params }: ActionCallbackParams) => {\n const doc = getData()\n const options = {\n action,\n actionParams: params,\n instructionId,\n }\n\n submit({\n doc,\n locale: localFromContext?.code,\n options,\n })\n },\n [getData, localFromContext?.code, instructionId],\n )\n\n const streamText = useCallback(\n async ({ action = 'Compose', params }: ActionCallbackParams) => {\n const doc = getData()\n\n const options = {\n action,\n actionParams: params,\n instructionId,\n }\n\n await complete('', {\n body: {\n doc,\n locale: localFromContext?.code,\n options,\n },\n })\n },\n [getData, localFromContext?.code, instructionId],\n )\n\n const generateUpload = useCallback(async () => {\n const doc = getData()\n\n const fieldInfo = getFieldBySchemaPath(\n docConfig as ClientCollectionConfig,\n schemaPath,\n ) as UploadField\n\n return fetch(`/api${PLUGIN_API_ENDPOINT_GENERATE_UPLOAD}`, {\n body: JSON.stringify({\n doc,\n locale: localFromContext?.code,\n options: {\n instructionId,\n uploadCollectionSlug: fieldInfo.relationTo || 'media',\n },\n } satisfies Parameters<GenerateTextarea>[0]),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n })\n .then(async (uploadResponse) => {\n if (uploadResponse.ok) {\n const { result } = await uploadResponse.json()\n if (!result) throw new Error('generateUpload: Something went wrong')\n\n setValue(result?.id)\n setHistory(result?.id)\n } else {\n const { errors = [] } = await uploadResponse.json()\n const errStr = errors.map((error) => error.message).join(', ')\n throw new Error(errStr)\n }\n return uploadResponse\n })\n .catch((error) => {\n console.error('Error generating your upload', error)\n })\n }, [getData, localFromContext?.code, instructionId, setValue])\n\n const generate = useCallback(\n async (options?: ActionCallbackParams) => {\n if (type === 'richText') {\n return streamObject(options)\n }\n\n if (['text', 'textarea'].includes(type)) {\n return streamText(options)\n }\n\n if (type === 'upload') {\n return generateUpload()\n }\n },\n [generateUpload, streamObject, streamText, type],\n )\n\n return {\n generate,\n isLoading: loadingCompletion || loadingObject,\n }\n}\n"],"names":["useEditorConfigContext","useConfig","useDocumentInfo","useField","useFieldProps","useForm","useLocale","useCompletion","experimental_useObject","useObject","useCallback","useEffect","PLUGIN_API_ENDPOINT_GENERATE","PLUGIN_API_ENDPOINT_GENERATE_UPLOAD","PLUGIN_INSTRUCTIONS_TABLE","useInstructions","getFieldBySchemaPath","jsonSchemaToZod","setSafeLexicalState","useHistory","useGenerate","type","path","pathFromContext","schemaPath","editorConfigContext","editor","docConfig","setValue","set","setHistory","id","instructionId","getData","localFromContext","config","collections","collection","find","slug","custom","editorConfig","admin","schema","DocumentSchema","lexicalZodSchema","isLoading","loadingObject","object","stop","submit","api","onError","error","console","onFinish","result","log","requestAnimationFrame","complete","completion","loadingCompletion","prompt","streamProtocol","streamObject","action","params","doc","options","actionParams","locale","code","streamText","body","generateUpload","fieldInfo","fetch","JSON","stringify","uploadCollectionSlug","relationTo","credentials","headers","method","then","uploadResponse","ok","json","Error","errors","errStr","map","message","join","catch","generate","includes"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useHistory.d.ts","sourceRoot":"","sources":["../../../../src/ui/Actions/hooks/useHistory.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,UAAU;;;;;gBAgEZ,GAAG;;CAoEb,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/ui/Actions/hooks/useHistory.ts"],"sourcesContent":["'use client'\n\nimport { useDocumentInfo, useField, useFieldProps } from '@payloadcms/ui'\nimport { useCallback, useEffect } from 'react'\n\nimport { PLUGIN_NAME } from '../../../defaults.js'\n\nconst STORAGE_KEY = `${PLUGIN_NAME}-fields-history`\n\ninterface HistoryState {\n [path: string]: {\n currentIndex: number\n history: any[]\n }\n}\n\nexport const useHistory = () => {\n const { id } = useDocumentInfo()\n const { path: pathFromContext, schemaPath } = useFieldProps()\n const { value: currentFieldValue } = useField<string>({\n path: pathFromContext,\n })\n\n const fieldKey = `${id}.${schemaPath}`\n\n const getLatestHistory = useCallback((): HistoryState => {\n try {\n // This condition is applied, as it was somehow triggering on server side\n if (typeof localStorage !== 'undefined') {\n return JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}')\n }\n return {}\n } catch (e) {\n console.error('Error parsing history:', e)\n return {}\n }\n }, [])\n\n const saveToLocalStorage = useCallback((newGlobalHistory: HistoryState) => {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(newGlobalHistory))\n }, [])\n\n // Clear previous history\n const clearHistory = useCallback(() => {\n const latestHistory = { ...getLatestHistory() }\n Object.keys(latestHistory).forEach((k) => {\n if (!k.startsWith(id.toString())) {\n delete latestHistory[k]\n }\n })\n saveToLocalStorage(latestHistory)\n }, [id, fieldKey, getLatestHistory, saveToLocalStorage])\n\n useEffect(() => {\n // This is applied to clear out the document history which is not currently in use\n clearHistory()\n\n const latestHistory = getLatestHistory()\n const { currentIndex, history } = latestHistory[fieldKey] || {\n currentIndex: -1,\n history: [],\n }\n\n let newIndex = currentIndex\n if (currentIndex == -1) {\n newIndex = 0\n if (currentFieldValue) {\n history[newIndex] = currentFieldValue\n }\n }\n\n const newGlobalHistory = {\n ...latestHistory,\n [fieldKey]: { currentIndex: newIndex, history },\n }\n\n saveToLocalStorage(newGlobalHistory)\n }, [fieldKey])\n\n const set = useCallback(\n (data: any) => {\n const latestHistory = getLatestHistory()\n const { currentIndex, history } = latestHistory[fieldKey] || {\n currentIndex: -1,\n history: [],\n }\n const newHistory = [...history.slice(0, currentIndex + 1), data]\n const newGlobalHistory = {\n ...latestHistory,\n [fieldKey]: { currentIndex: newHistory.length - 1, history: newHistory },\n }\n saveToLocalStorage(newGlobalHistory)\n return data\n },\n [fieldKey, getLatestHistory, saveToLocalStorage],\n )\n\n const undo = useCallback(() => {\n const latestHistory = getLatestHistory()\n const { currentIndex, history } = latestHistory[fieldKey] || { currentIndex: -1, history: [] }\n if (currentIndex > 0) {\n const newIndex = currentIndex - 1\n const newValue = history[newIndex]\n const newGlobalHistory = {\n ...latestHistory,\n [fieldKey]: { currentIndex: newIndex, history },\n }\n saveToLocalStorage(newGlobalHistory)\n return newValue\n }\n return undefined\n }, [fieldKey, getLatestHistory, saveToLocalStorage])\n\n const redo = useCallback(() => {\n const latestHistory = getLatestHistory()\n const { currentIndex, history } = latestHistory[fieldKey] || { currentIndex: -1, history: [] }\n if (currentIndex < history.length - 1) {\n const newIndex = currentIndex + 1\n const newValue = history[newIndex]\n const newGlobalHistory = {\n ...latestHistory,\n [fieldKey]: { currentIndex: newIndex, history },\n }\n saveToLocalStorage(newGlobalHistory)\n return newValue\n }\n return undefined\n }, [fieldKey, getLatestHistory, saveToLocalStorage])\n\n const getLatestFieldHistory = useCallback(() => {\n const latestHistory = getLatestHistory()\n return latestHistory[fieldKey] || { currentIndex: -1, history: [] }\n }, [getLatestHistory, fieldKey])\n\n const fieldHistory = getLatestFieldHistory()\n\n const canUndo = fieldHistory.currentIndex > 0\n const canRedo = fieldHistory.currentIndex < fieldHistory.history.length - 1\n const currentValue = fieldHistory.history[fieldHistory.currentIndex]\n\n return {\n canRedo,\n canUndo,\n currentValue,\n redo,\n set,\n undo,\n }\n}\n"],"names":["useDocumentInfo","useField","useFieldProps","useCallback","useEffect","PLUGIN_NAME","STORAGE_KEY","useHistory","id","path","pathFromContext","schemaPath","value","currentFieldValue","fieldKey","getLatestHistory","localStorage","JSON","parse","getItem","e","console","error","saveToLocalStorage","newGlobalHistory","setItem","stringify","clearHistory","latestHistory","Object","keys","forEach","k","startsWith","toString","currentIndex","history","newIndex","set","data","newHistory","slice","length","undo","newValue","undefined","redo","getLatestFieldHistory","fieldHistory","canUndo","canRedo","currentValue"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jsonToZod.d.ts","sourceRoot":"","sources":["../../src/utilities/jsonToZod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,wBAAgB,eAAe,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CA6B3D"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export function jsonSchemaToZod(schema) {
|
|
3
|
-
switch(schema.type){
|
|
4
|
-
case 'string':
|
|
5
|
-
return z.string();
|
|
6
|
-
case 'number':
|
|
7
|
-
return z.number();
|
|
8
|
-
case 'integer':
|
|
9
|
-
return z.number().int();
|
|
10
|
-
case 'boolean':
|
|
11
|
-
return z.boolean();
|
|
12
|
-
case 'null':
|
|
13
|
-
return z.null();
|
|
14
|
-
case 'array':
|
|
15
|
-
if (schema.items) {
|
|
16
|
-
return z.array(jsonSchemaToZod(schema.items));
|
|
17
|
-
}
|
|
18
|
-
return z.array(z.any());
|
|
19
|
-
case 'object':
|
|
20
|
-
if (schema.properties) {
|
|
21
|
-
const shape = {};
|
|
22
|
-
for (const [key, value] of Object.entries(schema.properties)){
|
|
23
|
-
shape[key] = jsonSchemaToZod(value);
|
|
24
|
-
}
|
|
25
|
-
return z.object(shape);
|
|
26
|
-
}
|
|
27
|
-
return z.object({});
|
|
28
|
-
default:
|
|
29
|
-
return z.any();
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
//# sourceMappingURL=jsonToZod.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/jsonToZod.ts"],"sourcesContent":["import { z } from 'zod'\n\nexport function jsonSchemaToZod(schema: any): z.ZodType<any> {\n switch (schema.type) {\n case 'string':\n return z.string()\n case 'number':\n return z.number()\n case 'integer':\n return z.number().int()\n case 'boolean':\n return z.boolean()\n case 'null':\n return z.null()\n case 'array':\n if (schema.items) {\n return z.array(jsonSchemaToZod(schema.items))\n }\n return z.array(z.any())\n case 'object':\n if (schema.properties) {\n const shape: { [key: string]: z.ZodType<any> } = {}\n for (const [key, value] of Object.entries(schema.properties)) {\n shape[key] = jsonSchemaToZod(value)\n }\n return z.object(shape)\n }\n return z.object({})\n default:\n return z.any()\n }\n}\n"],"names":["z","jsonSchemaToZod","schema","type","string","number","int","boolean","null","items","array","any","properties","shape","key","value","Object","entries","object"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAK;AAEvB,OAAO,SAASC,gBAAgBC,MAAW;IACzC,OAAQA,OAAOC,IAAI;QACjB,KAAK;YACH,OAAOH,EAAEI,MAAM;QACjB,KAAK;YACH,OAAOJ,EAAEK,MAAM;QACjB,KAAK;YACH,OAAOL,EAAEK,MAAM,GAAGC,GAAG;QACvB,KAAK;YACH,OAAON,EAAEO,OAAO;QAClB,KAAK;YACH,OAAOP,EAAEQ,IAAI;QACf,KAAK;YACH,IAAIN,OAAOO,KAAK,EAAE;gBAChB,OAAOT,EAAEU,KAAK,CAACT,gBAAgBC,OAAOO,KAAK;YAC7C;YACA,OAAOT,EAAEU,KAAK,CAACV,EAAEW,GAAG;QACtB,KAAK;YACH,IAAIT,OAAOU,UAAU,EAAE;gBACrB,MAAMC,QAA2C,CAAC;gBAClD,KAAK,MAAM,CAACC,KAAKC,MAAM,IAAIC,OAAOC,OAAO,CAACf,OAAOU,UAAU,EAAG;oBAC5DC,KAAK,CAACC,IAAI,GAAGb,gBAAgBc;gBAC/B;gBACA,OAAOf,EAAEkB,MAAM,CAACL;YAClB;YACA,OAAOb,EAAEkB,MAAM,CAAC,CAAC;QACnB;YACE,OAAOlB,EAAEW,GAAG;IAChB;AACF"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|