From cec9d39570aba460d63bc672fb9da736cfbf970a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E6=B4=BE=E5=A4=87=E6=A1=88?= <130886204+modiqi@users.noreply.github.com> Date: Fri, 11 Apr 2025 09:07:18 +0800 Subject: [PATCH] =?UTF-8?q?0.6.0=20=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/admin-icon.svg | 17 +- build/admin.js | 5 +- build/editor.js | 8 +- build/style-admin.css | 4 +- classes/class-admin.php | 4 +- classes/class-ai-api.php | 1144 +++++++++-------- languages/mind-zh_CN.json | 334 +++++ languages/mind-zh_CN.mo | Bin 0 -> 7116 bytes languages/mind-zh_CN.po | 472 +++++++ languages/mind.json | 16 +- languages/mind.pot | 18 +- .../Puc/v5/PucFactory.php | 10 + .../Puc/v5p3/Autoloader.php | 86 ++ .../Puc/v5p3/DebugBar/Extension.php | 199 +++ .../Puc/v5p3/DebugBar/Panel.php | 178 +++ .../Puc/v5p3/DebugBar/PluginExtension.php | 40 + .../Puc/v5p3/DebugBar/PluginPanel.php | 41 + .../Puc/v5p3/DebugBar/ThemePanel.php | 25 + .../Puc/v5p3/InstalledPackage.php | 105 ++ .../Puc/v5p3/Metadata.php | 162 +++ .../Puc/v5p3/OAuthSignature.php | 102 ++ .../Puc/v5p3/Plugin/Package.php | 188 +++ .../Puc/v5p3/Plugin/PluginInfo.php | 136 ++ .../Puc/v5p3/Plugin/Ui.php | 294 +++++ .../Puc/v5p3/Plugin/Update.php | 116 ++ .../Puc/v5p3/Plugin/UpdateChecker.php | 425 ++++++ .../Puc/v5p3/PucFactory.php | 362 ++++++ .../Puc/v5p3/Scheduler.php | 278 ++++ .../Puc/v5p3/StateStore.php | 209 +++ .../Puc/v5p3/Theme/Package.php | 69 + .../Puc/v5p3/Theme/Update.php | 88 ++ .../Puc/v5p3/Theme/UpdateChecker.php | 159 +++ lib/plugin-update-checker/Puc/v5p3/Update.php | 38 + .../Puc/v5p3/UpdateChecker.php | 1007 +++++++++++++++ .../Puc/v5p3/UpgraderStatus.php | 200 +++ lib/plugin-update-checker/Puc/v5p3/Utils.php | 70 + .../Puc/v5p3/Vcs/Api.php | 379 ++++++ .../Puc/v5p3/Vcs/BaseChecker.php | 29 + .../Puc/v5p3/Vcs/BitBucketApi.php | 272 ++++ .../Puc/v5p3/Vcs/GitHubApi.php | 467 +++++++ .../Puc/v5p3/Vcs/GitLabApi.php | 414 ++++++ .../Puc/v5p3/Vcs/PluginUpdateChecker.php | 275 ++++ .../Puc/v5p3/Vcs/Reference.php | 51 + .../Puc/v5p3/Vcs/ReleaseAssetSupport.php | 83 ++ .../Puc/v5p3/Vcs/ReleaseFilteringFeature.php | 108 ++ .../Puc/v5p3/Vcs/ThemeUpdateChecker.php | 83 ++ .../Puc/v5p3/Vcs/VcsCheckerMethods.php | 59 + lib/plugin-update-checker/README.md | 372 ++++++ lib/plugin-update-checker/composer.json | 23 + .../css/puc-debug-bar.css | 70 + .../examples/plugin.json | 52 + lib/plugin-update-checker/examples/theme.json | 5 + lib/plugin-update-checker/js/debug-bar.js | 54 + .../languages/plugin-update-checker-ca.mo | Bin 0 -> 1186 bytes .../languages/plugin-update-checker-ca.po | 48 + .../languages/plugin-update-checker-cs_CZ.mo | Bin 0 -> 1077 bytes .../languages/plugin-update-checker-cs_CZ.po | 45 + .../languages/plugin-update-checker-da_DK.mo | Bin 0 -> 1010 bytes .../languages/plugin-update-checker-da_DK.po | 42 + .../languages/plugin-update-checker-de_DE.mo | Bin 0 -> 980 bytes .../languages/plugin-update-checker-de_DE.po | 38 + .../languages/plugin-update-checker-es_AR.mo | Bin 0 -> 1140 bytes .../languages/plugin-update-checker-es_AR.po | 48 + .../languages/plugin-update-checker-es_CL.mo | Bin 0 -> 1140 bytes .../languages/plugin-update-checker-es_CL.po | 48 + .../languages/plugin-update-checker-es_CO.mo | Bin 0 -> 1140 bytes .../languages/plugin-update-checker-es_CO.po | 48 + .../languages/plugin-update-checker-es_CR.mo | Bin 0 -> 1140 bytes .../languages/plugin-update-checker-es_CR.po | 48 + .../languages/plugin-update-checker-es_DO.mo | Bin 0 -> 1140 bytes .../languages/plugin-update-checker-es_DO.po | 48 + .../languages/plugin-update-checker-es_ES.mo | Bin 0 -> 1140 bytes .../languages/plugin-update-checker-es_ES.po | 48 + .../languages/plugin-update-checker-es_GT.mo | Bin 0 -> 1140 bytes .../languages/plugin-update-checker-es_GT.po | 48 + .../languages/plugin-update-checker-es_HN.mo | Bin 0 -> 1140 bytes .../languages/plugin-update-checker-es_HN.po | 48 + .../languages/plugin-update-checker-es_MX.mo | Bin 0 -> 1140 bytes .../languages/plugin-update-checker-es_MX.po | 48 + .../languages/plugin-update-checker-es_PE.mo | Bin 0 -> 1140 bytes .../languages/plugin-update-checker-es_PE.po | 48 + .../languages/plugin-update-checker-es_PR.mo | Bin 0 -> 1140 bytes .../languages/plugin-update-checker-es_PR.po | 48 + .../languages/plugin-update-checker-es_UY.mo | Bin 0 -> 1140 bytes .../languages/plugin-update-checker-es_UY.po | 48 + .../languages/plugin-update-checker-es_VE.mo | Bin 0 -> 1140 bytes .../languages/plugin-update-checker-es_VE.po | 48 + .../languages/plugin-update-checker-fa_IR.mo | Bin 0 -> 1128 bytes .../languages/plugin-update-checker-fa_IR.po | 38 + .../languages/plugin-update-checker-fr_CA.mo | Bin 0 -> 1208 bytes .../languages/plugin-update-checker-fr_CA.po | 48 + .../languages/plugin-update-checker-fr_FR.mo | Bin 0 -> 1066 bytes .../languages/plugin-update-checker-fr_FR.po | 42 + .../languages/plugin-update-checker-hu_HU.mo | Bin 0 -> 982 bytes .../languages/plugin-update-checker-hu_HU.po | 41 + .../languages/plugin-update-checker-it_IT.mo | Bin 0 -> 1135 bytes .../languages/plugin-update-checker-it_IT.po | 48 + .../languages/plugin-update-checker-ja.mo | Bin 0 -> 1454 bytes .../languages/plugin-update-checker-ja.po | 57 + .../languages/plugin-update-checker-nl_BE.mo | Bin 0 -> 1211 bytes .../languages/plugin-update-checker-nl_BE.po | 48 + .../languages/plugin-update-checker-nl_NL.mo | Bin 0 -> 1211 bytes .../languages/plugin-update-checker-nl_NL.po | 48 + .../languages/plugin-update-checker-pt_BR.mo | Bin 0 -> 1014 bytes .../languages/plugin-update-checker-pt_BR.po | 48 + .../languages/plugin-update-checker-ru_RU.mo | Bin 0 -> 1337 bytes .../languages/plugin-update-checker-ru_RU.po | 48 + .../languages/plugin-update-checker-sl_SI.mo | Bin 0 -> 1203 bytes .../languages/plugin-update-checker-sl_SI.po | 48 + .../languages/plugin-update-checker-sv_SE.mo | Bin 0 -> 1006 bytes .../languages/plugin-update-checker-sv_SE.po | 42 + .../languages/plugin-update-checker-tr_TR.mo | Bin 0 -> 1118 bytes .../languages/plugin-update-checker-tr_TR.po | 48 + .../languages/plugin-update-checker-uk_UA.mo | Bin 0 -> 1309 bytes .../languages/plugin-update-checker-uk_UA.po | 48 + .../languages/plugin-update-checker-zh_CN.mo | Bin 0 -> 1174 bytes .../languages/plugin-update-checker-zh_CN.po | 57 + .../languages/plugin-update-checker.pot | 49 + lib/plugin-update-checker/license.txt | 7 + lib/plugin-update-checker/load-v5p3.php | 34 + .../plugin-update-checker.php | 10 + lib/updatepulse-updater/LICENSE | 674 ++++++++++ lib/updatepulse-updater/README.md | 46 + .../class-updatepulse-updater.php | 1009 +++++++++++++++ lib/updatepulse-updater/js/main.js | 310 +++++ lib/updatepulse-updater/js/main.min.js | 1 + .../languages/updatepulse-updater.pot | 123 ++ .../templates/license-form.php | 17 + .../templates/plugin-page-license-row.php | 10 + .../templates/theme-page-license.php | 11 + readme.txt | 8 +- mind.php => wpmind.php | 27 +- 132 files changed, 12679 insertions(+), 568 deletions(-) create mode 100644 languages/mind-zh_CN.json create mode 100644 languages/mind-zh_CN.mo create mode 100644 languages/mind-zh_CN.po create mode 100644 lib/plugin-update-checker/Puc/v5/PucFactory.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Autoloader.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/DebugBar/Extension.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/DebugBar/Panel.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/DebugBar/PluginExtension.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/DebugBar/PluginPanel.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/DebugBar/ThemePanel.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/InstalledPackage.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Metadata.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/OAuthSignature.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Plugin/Package.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Plugin/PluginInfo.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Plugin/Ui.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Plugin/Update.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Plugin/UpdateChecker.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/PucFactory.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Scheduler.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/StateStore.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Theme/Package.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Theme/Update.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Theme/UpdateChecker.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Update.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/UpdateChecker.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/UpgraderStatus.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Utils.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Vcs/Api.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Vcs/BaseChecker.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Vcs/BitBucketApi.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Vcs/GitHubApi.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Vcs/GitLabApi.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Vcs/PluginUpdateChecker.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Vcs/Reference.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Vcs/ReleaseAssetSupport.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Vcs/ReleaseFilteringFeature.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Vcs/ThemeUpdateChecker.php create mode 100644 lib/plugin-update-checker/Puc/v5p3/Vcs/VcsCheckerMethods.php create mode 100644 lib/plugin-update-checker/README.md create mode 100644 lib/plugin-update-checker/composer.json create mode 100644 lib/plugin-update-checker/css/puc-debug-bar.css create mode 100644 lib/plugin-update-checker/examples/plugin.json create mode 100644 lib/plugin-update-checker/examples/theme.json create mode 100644 lib/plugin-update-checker/js/debug-bar.js create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-ca.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-ca.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-cs_CZ.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-cs_CZ.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-da_DK.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-da_DK.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-de_DE.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-de_DE.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_AR.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_AR.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_CL.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_CL.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_CO.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_CO.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_CR.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_CR.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_DO.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_DO.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_ES.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_ES.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_GT.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_GT.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_HN.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_HN.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_MX.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_MX.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_PE.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_PE.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_PR.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_PR.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_UY.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_UY.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_VE.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-es_VE.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-fa_IR.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-fa_IR.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-fr_CA.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-fr_CA.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-fr_FR.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-fr_FR.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-hu_HU.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-hu_HU.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-it_IT.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-it_IT.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-ja.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-ja.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-nl_BE.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-nl_BE.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-nl_NL.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-nl_NL.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-pt_BR.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-pt_BR.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-ru_RU.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-ru_RU.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-sl_SI.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-sl_SI.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-sv_SE.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-sv_SE.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-tr_TR.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-tr_TR.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-uk_UA.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-uk_UA.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-zh_CN.mo create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker-zh_CN.po create mode 100644 lib/plugin-update-checker/languages/plugin-update-checker.pot create mode 100644 lib/plugin-update-checker/license.txt create mode 100644 lib/plugin-update-checker/load-v5p3.php create mode 100644 lib/plugin-update-checker/plugin-update-checker.php create mode 100644 lib/updatepulse-updater/LICENSE create mode 100644 lib/updatepulse-updater/README.md create mode 100644 lib/updatepulse-updater/class-updatepulse-updater.php create mode 100644 lib/updatepulse-updater/js/main.js create mode 100644 lib/updatepulse-updater/js/main.min.js create mode 100644 lib/updatepulse-updater/languages/updatepulse-updater.pot create mode 100644 lib/updatepulse-updater/templates/license-form.php create mode 100644 lib/updatepulse-updater/templates/plugin-page-license-row.php create mode 100644 lib/updatepulse-updater/templates/theme-page-license.php rename mind.php => wpmind.php (77%) diff --git a/assets/images/admin-icon.svg b/assets/images/admin-icon.svg index 373a2ab..eba6783 100644 --- a/assets/images/admin-icon.svg +++ b/assets/images/admin-icon.svg @@ -1,14 +1,3 @@ - - - - - - \ No newline at end of file + + + diff --git a/build/admin.js b/build/admin.js index 0a271fc..aefad8b 100644 --- a/build/admin.js +++ b/build/admin.js @@ -1,4 +1 @@ -(()=>{"use strict";var e,t={925:(e,t,n)=>{var i={};n.r(i),n.d(i,{setActivePage:()=>Y});var a={};n.r(a),n.d(a,{getActivePage:()=>ee});var r={};n.r(r),n.d(r,{updateSettings:()=>re});var s={};n.r(s),n.d(s,{getError:()=>ce,getSetting:()=>oe,getSettings:()=>se,getUpdating:()=>le});const o=window.wp.element;function l(e){var t,n,i="";if("string"==typeof e||"number"==typeof e)i+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t=0||(a[n]=e[n]);return a}const g=window.ReactDOM;var h=n.n(g);const E=m().createContext(null);var v=function(e){return e.scrollTop},_="unmounted",y="exited",b="entering",x="entered",S="exiting",C=function(e){function t(t,n){var i;i=e.call(this,t,n)||this;var a,r=n&&!n.isMounting?t.enter:t.appear;return i.appearStatus=null,t.in?r?(a=y,i.appearStatus=b):a=x:a=t.unmountOnExit||t.mountOnEnter?_:y,i.state={status:a},i.nextCallback=null,i}u(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===_?{status:y}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==b&&n!==x&&(t=b):n!==b&&n!==x||(t=S)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,i=this.props.timeout;return e=t=n=i,null!=i&&"number"!=typeof i&&(e=i.exit,t=i.enter,n=void 0!==i.appear?i.appear:t),{exit:e,enter:t,appear:n}},n.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t)if(this.cancelNextCallback(),t===b){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:h().findDOMNode(this);n&&v(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===y&&this.setState({status:_})},n.performEnter=function(e){var t=this,n=this.props.enter,i=this.context?this.context.isMounting:e,a=this.props.nodeRef?[i]:[h().findDOMNode(this),i],r=a[0],s=a[1],o=this.getTimeouts(),l=i?o.appear:o.enter;e||n?(this.props.onEnter(r,s),this.safeSetState({status:b},(function(){t.props.onEntering(r,s),t.onTransitionEnd(l,(function(){t.safeSetState({status:x},(function(){t.props.onEntered(r,s)}))}))}))):this.safeSetState({status:x},(function(){t.props.onEntered(r)}))},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),i=this.props.nodeRef?void 0:h().findDOMNode(this);t?(this.props.onExit(i),this.safeSetState({status:S},(function(){e.props.onExiting(i),e.onTransitionEnd(n.exit,(function(){e.safeSetState({status:y},(function(){e.props.onExited(i)}))}))}))):this.safeSetState({status:y},(function(){e.props.onExited(i)}))},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(i){n&&(n=!1,t.nextCallback=null,e(i))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=this.props.nodeRef?this.props.nodeRef.current:h().findDOMNode(this),i=null==e&&!this.props.addEndListener;if(n&&!i){if(this.props.addEndListener){var a=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],r=a[0],s=a[1];this.props.addEndListener(r,s)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},n.render=function(){var e=this.state.status;if(e===_)return null;var t=this.props,n=t.children,i=(t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef,f(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return m().createElement(E.Provider,{value:null},"function"==typeof n?n(e,i):m().cloneElement(m().Children.only(n),i))},t}(m().Component);function k(){}C.contextType=E,C.propTypes={},C.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:k,onEntering:k,onEntered:k,onExit:k,onExiting:k,onExited:k},C.UNMOUNTED=_,C.EXITED=y,C.ENTERING=b,C.ENTERED=x,C.EXITING=S;const N=C;var O,w,P="out-in",T="in-out",A=function(e,t,n){return function(){var i;e.props[t]&&(i=e.props)[t].apply(i,arguments),n()}},D=((O={})[P]=function(e){var t=e.current,n=e.changeState;return m().cloneElement(t,{in:!1,onExited:A(t,"onExited",(function(){n(b,null)}))})},O[T]=function(e){var t=e.current,n=e.changeState,i=e.children;return[t,m().cloneElement(i,{in:!0,onEntered:A(i,"onEntered",(function(){n(b)}))})]},O),I=((w={})[P]=function(e){var t=e.children,n=e.changeState;return m().cloneElement(t,{in:!0,onEntered:A(t,"onEntered",(function(){n(x,m().cloneElement(t,{in:!0}))}))})},w[T]=function(e){var t=e.current,n=e.children,i=e.changeState;return[m().cloneElement(t,{in:!1,onExited:A(t,"onExited",(function(){i(x,m().cloneElement(n,{in:!0}))}))}),m().cloneElement(n,{in:!0})]},w),M=function(e){function t(){for(var t,n=arguments.length,i=new Array(n),a=0;a{Z&&(Z=!1,document.body.classList.add("mind-admin-first-loading-start"),setTimeout((()=>{document.body.classList.remove("mind-admin-first-loading-start","mind-admin-first-loading")}),8e3))}),[]),null}const B=window.lodash;var H,W;function z(){return z=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{getSettings:t}=e("mind/settings");return{settings:t()}})),n=function(e){const t=e.ai_model||"";let n=!1;return t&&("gpt-4o"===t||"gpt-4o-mini"===t?n=!!e?.openai_api_key:e?.anthropic_api_key&&(n=!!e?.anthropic_api_key)),n}(t);return(0,p.createElement)(p.Fragment,null,(0,p.createElement)("p",{dangerouslySetInnerHTML:{__html:(0,q.sprintf)( -// translators: %s - Mind logo. -// translators: %s - Mind logo. -(0,q.__)("Hello, my name is %s","mind"),'')}}),(0,p.createElement)("p",null,(0,q.__)("I am an AI assistant designed to help you in writing content for your blog","mind")),n?(0,p.createElement)("div",{dangerouslySetInnerHTML:{__html:(0,q.__)('To get started, open the page editor and click on the
button in the toolbar',"mind")}}):(0,p.createElement)("div",null,(0,q.__)("To get started,","mind"),(0,p.createElement)("button",{onClick:t=>{t.preventDefault(),e("settings")}},(0,q.__)("select the model and API key →","mind"))),(0,p.createElement)($,null))}},settings:{label:(0,q.__)("Settings","mind"),block:function(){const[e,t]=(0,o.useState)({}),[n,i]=(0,o.useState)(!1),[a,r]=(0,o.useState)(!1),[s,l]=(0,o.useState)(!1),{updateSettings:d}=(0,V.useDispatch)("mind/settings"),{settings:u,updating:m,error:f}=(0,V.useSelect)((e=>{const t=e("mind/settings");return{settings:t.getSettings(),updating:t.getUpdating(),error:t.getError()}}));return(0,o.useEffect)((()=>{t(u)}),[u]),(0,o.useEffect)((()=>{i(!(0,B.isEqual)(u,e))}),[u,e]),(0,p.createElement)(p.Fragment,null,(0,p.createElement)("div",{className:"mind-admin-settings-card"},(0,p.createElement)("div",{className:"mind-admin-settings-card-name"},(0,p.createElement)("label",{htmlFor:"mind-settings-ai-model"},(0,q.__)("Model","mind"))),(0,p.createElement)("div",{className:"mind-admin-settings-card-button-group"},X.map((n=>(0,p.createElement)("button",{key:n.title,onClick:i=>{i.preventDefault(),t({...e,ai_model:n.name})},className:c("mind-admin-settings-card-button",e.ai_model===n.name&&"mind-admin-settings-card-button-active")},n.title,(0,p.createElement)("span",null,n.description)))))),e.ai_model?.includes("claude")&&(0,p.createElement)("div",{className:"mind-admin-settings-card"},(0,p.createElement)("div",{className:"mind-admin-settings-card-name"},(0,p.createElement)("label",{htmlFor:"mind-settings-anthropic-api-key"},(0,q.__)("Anthropic API Key","mind"))),(0,p.createElement)("div",{className:c("mind-admin-settings-card-input",a&&"mind-admin-settings-card-input-error")},(0,p.createElement)("input",{id:"mind-settings-anthropic-api-key",type:"text",placeholder:(0,q.__)("Enter API key","mind"),value:e.anthropic_api_key||"",onChange:n=>{n.preventDefault(),t({...e,anthropic_api_key:n.target.value})}}),a&&(0,p.createElement)("div",{className:"mind-admin-setting-error"},(0,q.__)("Please enter a valid API key","mind"))),(0,p.createElement)("div",{className:"mind-admin-settings-card-description"},(0,q.__)("This setting is required to use Anthropic models.","mind")," ",(0,p.createElement)("a",{href:"https://console.anthropic.com/settings/keys",target:"_blank",rel:"noreferrer"},(0,q.__)("Create API key","mind")))),e.ai_model?.includes("gpt")&&(0,p.createElement)("div",{className:"mind-admin-settings-card"},(0,p.createElement)("div",{className:"mind-admin-settings-card-name"},(0,p.createElement)("label",{htmlFor:"mind-settings-openai-api-key"},(0,q.__)("OpenAI API Key","mind"))),(0,p.createElement)("div",{className:c("mind-admin-settings-card-input",s&&"mind-admin-settings-card-input-error")},(0,p.createElement)("input",{id:"mind-settings-openai-api-key",type:"text",placeholder:(0,q.__)("Enter API key","mind"),value:e.openai_api_key||"",onChange:n=>{n.preventDefault(),t({...e,openai_api_key:n.target.value})}}),s&&(0,p.createElement)("div",{className:"mind-admin-setting-error"},(0,q.__)("Please enter a valid API key","mind"))),(0,p.createElement)("div",{className:"mind-admin-settings-card-description"},(0,q.__)("This setting is required to use OpenAI models.","mind")," ",(0,p.createElement)("a",{href:"https://platform.openai.com/account/api-keys",target:"_blank",rel:"noreferrer"},(0,q.__)("Create API key","mind")))),f&&(0,p.createElement)("div",{className:"mind-admin-settings-error"},f),(0,p.createElement)("div",{className:"mind-admin-settings-actions"},(0,p.createElement)("button",{disabled:!n,onClick:t=>{var n;t.preventDefault(),e.anthropic_api_key&&(n=e.anthropic_api_key,!/^sk-ant-[a-zA-Z0-9]/.test(n))?r(!0):e.openai_api_key&&!function(e){return/^sk-[a-zA-Z0-9]/.test(e)}(e.openai_api_key)?l(!0):(l(!1),r(!1),d(e))}},(0,q.__)("Save Changes","mind"),m&&(0,p.createElement)(K,{viewBox:"0 0 24 24"}))))}},discussions:{label:(0,q.__)("Discussions","mind"),href:"https://github.com/nk-crew/mind/discussions"}},J=[];window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,((e,t,n)=>{J[t]=n}));function Y(e){return{type:"SET_ACTIVE_PAGE",activePage:e}}function ee(e){return e?.activePage||""}const te=(0,V.createReduxStore)("mind/admin",{reducer:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{activePage:J.sub_page||Object.keys(Q)[0]},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"SET_ACTIVE_PAGE"===t.type&&e.activePage!==t.activePage?{...e,activePage:t.activePage}:e},actions:i,selectors:a});(0,V.register)(te);const{settings:ne}=window.mindAdminData,ie=window.wp.apiFetch;var ae=n.n(ie);function re(e){return t=>{let{dispatch:n}=t;if(!e||!Object.keys(e).length)return;n({type:"UPDATE_SETTINGS_PENDING"});const i={settings:e};ae()({path:"/mind/v1/update_settings",method:"POST",data:i}).then((t=>(n({type:"UPDATE_SETTINGS_SUCCESS",settings:e}),t.response))).catch((e=>{n({type:"UPDATE_SETTINGS_ERROR",error:e?.response||e?.error_code||(0,q.__)("Something went wrong, please, try again…","mind")})}))}}function se(e){return e?.settings||{}}function oe(e,t){return e?.settings[t]||""}function le(e){return e?.updating||!1}function ce(e){return e?.error||!1}const de=(0,V.createReduxStore)("mind/settings",{reducer:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{settings:ne,updating:!1,error:""},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};switch(t.type){case"UPDATE_SETTINGS_PENDING":return{...e,updating:!0};case"UPDATE_SETTINGS_SUCCESS":return{...e,updating:!1,settings:{...e.settings,...t.settings}};case"UPDATE_SETTINGS_ERROR":return{...e,updating:!1,error:t.error||""}}return e},actions:r,selectors:s});var ue;function pe(){return pe=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{getActivePage:t}=e("mind/admin");return{activePage:t()}}));(0,o.useEffect)((()=>{document.querySelectorAll(".toplevel_page_mind .current").forEach((e=>{e.classList.remove("current")}));let e=document.querySelectorAll(`.toplevel_page_mind [href="admin.php?page=mind&sub_page=${n}"]`);e&&e.length||(e=document.querySelectorAll('.toplevel_page_mind [href="admin.php?page=mind"]')),e.forEach((e=>{e.parentNode.classList.add("current")})),document.body.classList.forEach((e=>{/mind-admin-page-/.test(e)&&document.body.classList.remove(e)})),document.body.classList.add(`mind-admin-page-${n}`),e&&e.length&&window.history.pushState(document.title,document.title,e[0].href)}),[n]);const i=[];let a="";if(Object.keys(Q).forEach((e=>{i.push((0,o.createElement)("li",{key:e},(0,o.createElement)("a",{href:Q[e]&&Q[e].href||"#",target:Q[e]&&Q[e].href?"_blank":null,rel:"noreferrer",className:c("mind-admin-tabs-button",n===e&&"mind-admin-tabs-button-active"),onClick:n=>{Q[e]&&!Q[e].href&&(n.preventDefault(),t(e))}},Q[e].label)))})),n&&Q[n]){const e=Q[n].block;a=(0,o.createElement)(e,null)}return(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{className:"mind-admin-head"},(0,o.createElement)("div",{className:"mind-admin-head-container"},(0,o.createElement)("div",{className:"mind-admin-head-logo"},(0,o.createElement)(me,null),(0,o.createElement)("h1",null,(0,q.__)("Mind","mind"))),(0,o.createElement)("ul",{className:"mind-admin-tabs"},i))),(0,o.createElement)(R,{mode:"out-in"},(0,o.createElement)(F,{key:n,nodeRef:e,addEndListener:t=>{e.current.addEventListener("transitionend",t,!1)},classNames:"mind-admin-content-transition"},(0,o.createElement)("div",{ref:e,className:c("mind-admin-content",`mind-admin-content-${n}`)},a))))}window.addEventListener("load",(()=>{(0,o.render)((0,o.createElement)(fe,null),document.querySelector(".mind-admin-root"))}))}},n={};function i(e){var a=n[e];if(void 0!==a)return a.exports;var r=n[e]={exports:{}};return t[e](r,r.exports,i),r.exports}i.m=t,e=[],i.O=(t,n,a,r)=>{if(!n){var s=1/0;for(d=0;d=r)&&Object.keys(i.O).every((e=>i.O[e](n[l])))?n.splice(l--,1):(o=!1,r0&&e[d-1][2]>r;d--)e[d]=e[d-1];e[d]=[n,a,r]},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e={884:0,15:0};i.O.j=t=>0===e[t];var t=(t,n)=>{var a,r,s=n[0],o=n[1],l=n[2],c=0;if(s.some((t=>0!==e[t]))){for(a in o)i.o(o,a)&&(i.m[a]=o[a]);if(l)var d=l(i)}for(t&&t(n);ci(925)));a=i.O(a)})(); \ No newline at end of file +(()=>{"use strict";var e,t={925:(e,t,n)=>{var i={};n.r(i),n.d(i,{setActivePage:()=>Y});var a={};n.r(a),n.d(a,{getActivePage:()=>ee});var r={};n.r(r),n.d(r,{updateSettings:()=>re});var s={};n.r(s),n.d(s,{getError:()=>ce,getSetting:()=>oe,getSettings:()=>se,getUpdating:()=>le,});const o=window.wp.element;function l(e){var t,n,i="";if("string"==typeof e||"number"==typeof e)i+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t=0||(a[n]=e[n]);return a}const g=window.ReactDOM;var h=n.n(g);const E=m().createContext(null);var v=function(e){return e.scrollTop},_="unmounted",y="exited",b="entering",x="entered",S="exiting",C=(function(e){function t(t,n){var i;i=e.call(this,t,n)||this;var a,r=n&&!n.isMounting?t.enter:t.appear;return((i.appearStatus=null),t.in?r?((a=y),(i.appearStatus=b)):(a=x):(a=t.unmountOnExit||t.mountOnEnter?_:y),(i.state={status:a}),(i.nextCallback=null),i)}u(t,e),(t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===_?{status:y}:null});var n=t.prototype;return((n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)}),(n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==b&&n!==x&&(t=b):(n!==b&&n!==x)||(t=S)}this.updateStatus(!1,t)}),(n.componentWillUnmount=function(){this.cancelNextCallback()}),(n.getTimeouts=function(){var e,t,n,i=this.props.timeout;return((e=t=n=i),null!=i&&"number"!=typeof i&&((e=i.exit),(t=i.enter),(n=void 0!==i.appear?i.appear:t)),{exit:e,enter:t,appear:n})}),(n.updateStatus=function(e,t){if((void 0===e&&(e=!1),null!==t))if((this.cancelNextCallback(),t===b)){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:h().findDOMNode(this);n&&v(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===y&&this.setState({status:_})}),(n.performEnter=function(e){var t=this,n=this.props.enter,i=this.context?this.context.isMounting:e,a=this.props.nodeRef?[i]:[h().findDOMNode(this),i],r=a[0],s=a[1],o=this.getTimeouts(),l=i?o.appear:o.enter;e||n?(this.props.onEnter(r,s),this.safeSetState({status:b},function(){t.props.onEntering(r,s),t.onTransitionEnd(l,function(){t.safeSetState({status:x},function(){t.props.onEntered(r,s)})})})):this.safeSetState({status:x},function(){t.props.onEntered(r)})}),(n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),i=this.props.nodeRef?void 0:h().findDOMNode(this);t?(this.props.onExit(i),this.safeSetState({status:S},function(){e.props.onExiting(i),e.onTransitionEnd(n.exit,function(){e.safeSetState({status:y},function(){e.props.onExited(i)})})})):this.safeSetState({status:y},function(){e.props.onExited(i)})}),(n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),(this.nextCallback=null))}),(n.safeSetState=function(e,t){(t=this.setNextCallback(t)),this.setState(e,t)}),(n.setNextCallback=function(e){var t=this,n=!0;return((this.nextCallback=function(i){n&&((n=!1),(t.nextCallback=null),e(i))}),(this.nextCallback.cancel=function(){n=!1}),this.nextCallback)}),(n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=this.props.nodeRef?this.props.nodeRef.current:h().findDOMNode(this),i=null==e&&!this.props.addEndListener;if(n&&!i){if(this.props.addEndListener){var a=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],r=a[0],s=a[1];this.props.addEndListener(r,s)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)}),(n.render=function(){var e=this.state.status;if(e===_)return null;var t=this.props,n=t.children,i=(t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef,f(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef",]));return m().createElement(E.Provider,{value:null},"function"==typeof n?n(e,i):m().cloneElement(m().Children.only(n),i),)}),t)})(m().Component);function k(){}(C.contextType=E),(C.propTypes={}),(C.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:k,onEntering:k,onEntered:k,onExit:k,onExiting:k,onExited:k,}),(C.UNMOUNTED=_),(C.EXITED=y),(C.ENTERING=b),(C.ENTERED=x),(C.EXITING=S);const N=C;var O,w,P="out-in",T="in-out",A=function(e,t,n){return function(){var i;e.props[t]&&(i=e.props)[t].apply(i,arguments),n()}},D=((O={}),(O[P]=function(e){var t=e.current,n=e.changeState;return m().cloneElement(t,{in:!1,onExited:A(t,"onExited",function(){n(b,null)}),})}),(O[T]=function(e){var t=e.current,n=e.changeState,i=e.children;return[t,m().cloneElement(i,{in:!0,onEntered:A(i,"onEntered",function(){n(b)}),}),]}),O),I=((w={}),(w[P]=function(e){var t=e.children,n=e.changeState;return m().cloneElement(t,{in:!0,onEntered:A(t,"onEntered",function(){n(x,m().cloneElement(t,{in:!0}))}),})}),(w[T]=function(e){var t=e.current,n=e.children,i=e.changeState;return[m().cloneElement(t,{in:!1,onExited:A(t,"onExited",function(){i(x,m().cloneElement(n,{in:!0}))}),}),m().cloneElement(n,{in:!0}),]}),w),M=(function(e){function t(){for(var t,n=arguments.length,i=new Array(n),a=0;a{Z&&((Z=!1),document.body.classList.add("mind-admin-first-loading-start"),setTimeout(()=>{document.body.classList.remove("mind-admin-first-loading-start","mind-admin-first-loading",)},8e3))},[]),null)}const B=window.lodash;var H,W;function z(){return((z=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{getSettings:t}=e("mind/settings");return{settings:t()}}),n=(function(e){const t=e.ai_model||"";let n=!1;return(t&&("gpt-4o"===t?(n=!!e?.openai_api_key):"deepseek"===t?(n=!!e?.deepseek_api_key):e?.anthropic_api_key&&(n=!!e?.anthropic_api_key)),n)})(t);return(0,p.createElement)(p.Fragment,null,(0,p.createElement)("p",{dangerouslySetInnerHTML:{__html:(0,q.sprintf)((0,q.__)("您好,我叫 %s","mind"),'',),},}),(0,p.createElement)("p",null,(0,q.__)("我是一个人工智能助手,旨在帮助您撰写博客、辅助网页设计、翻译文章内容提供创意","mind",),),n?(0,p.createElement)("div",{dangerouslySetInnerHTML:{__html:(0,q.__)('立即使用,请打开页面编辑器,然后点击工具栏中的
按钮',"mind",),},}):(0,p.createElement)("div",null,(0,q.__)("首先,","mind"),(0,p.createElement)("button",{onClick:(t)=>{t.preventDefault(),e("settings")},},(0,q.__)("选择模型和API密钥→","mind"),),),(0,p.createElement)($,null),)},},settings:{label:(0,q.__)("设置","mind"),block:function(){const[e,t]=(0,o.useState)({}),[n,i]=(0,o.useState)(!1),[a,r]=(0,o.useState)(!1),[s,l]=(0,o.useState)(!1),[d,u]=(0,o.useState)(!1),{updateSettings:m}=(0,V.useDispatch)("mind/settings"),{settings:g,updating:h,error:v,}=(0,V.useSelect)((e)=>{const t=e("mind/settings");return{settings:t.getSettings(),updating:t.getUpdating(),error:t.getError(),}});return((0,o.useEffect)(()=>{t(g)},[g]),(0,o.useEffect)(()=>{i(!(0,B.isEqual)(g,e))},[g,e]),(0,p.createElement)(p.Fragment,null,(0,p.createElement)("div",{className:"mind-admin-settings-card"},(0,p.createElement)("div",{className:"mind-admin-settings-card-name"},(0,p.createElement)("label",{htmlFor:"mind-settings-ai-model"},(0,q.__)("模型","mind"),),),(0,p.createElement)("div",{className:"mind-admin-settings-card-button-group"},X.map((n)=>(0,p.createElement)("button",{key:n.title,onClick:(i)=>{i.preventDefault(),t({...e,ai_model:n.name})},className:c("mind-admin-settings-card-button",e.ai_model===n.name&&"mind-admin-settings-card-button-active",),},n.title,(0,p.createElement)("span",null,n.description),),),),),e.ai_model?.includes("claude")&&(0,p.createElement)("div",{className:"mind-admin-settings-card"},(0,p.createElement)("div",{className:"mind-admin-settings-card-name"},(0,p.createElement)("label",{htmlFor:"mind-settings-anthropic-api-key"},(0,q.__)("Anthropic API 密钥","mind"),),),(0,p.createElement)("div",{className:c("mind-admin-settings-card-input",a&&"mind-admin-settings-card-input-error",),},(0,p.createElement)("input",{id:"mind-settings-anthropic-api-key",type:"text",placeholder:(0,q.__)("输入 API 密钥","mind"),value:e.anthropic_api_key||"",onChange:(n)=>{n.preventDefault(),t({...e,anthropic_api_key:n.target.value})},}),a&&(0,p.createElement)("div",{className:"mind-admin-setting-error"},(0,q.__)("请输入有效的 API 密钥","mind"),),(0,p.createElement)("div",{className:"mind-admin-settings-card-description",},(0,q.__)("使用 Anthropic 模型需要此设置。","mind",)," ",(0,p.createElement)("a",{href:"https://console.anthropic.com/settings/keys",target:"_blank",rel:"noreferrer",},(0,q.__)("创建 API 密钥","mind"),),),),),e.ai_model==="gpt-4o"&&(0,p.createElement)("div",{className:"mind-admin-settings-card"},(0,p.createElement)("div",{className:"mind-admin-settings-card-name"},(0,p.createElement)("label",{htmlFor:"mind-settings-openai-api-key"},(0,q.__)("OpenAI API 密钥","mind"),),),(0,p.createElement)("div",{className:c("mind-admin-settings-card-input",s&&"mind-admin-settings-card-input-error",),},(0,p.createElement)("input",{id:"mind-settings-openai-api-key",type:"text",placeholder:(0,q.__)("输入 API 密钥","mind"),value:e.openai_api_key||"",onChange:(n)=>{n.preventDefault(),t({...e,openai_api_key:n.target.value})},}),s&&(0,p.createElement)("div",{className:"mind-admin-setting-error"},(0,q.__)("请输入有效的 API 密钥","mind"),),(0,p.createElement)("div",{className:"mind-admin-settings-card-description",},(0,q.__)("使用 OpenAI 模型需要此设置。","mind",)," ",(0,p.createElement)("a",{href:"https://platform.openai.com/account/api-keys",target:"_blank",rel:"noreferrer",},(0,q.__)("创建 API 密钥","mind"),),),),),e.ai_model==="deepseek"&&(0,p.createElement)("div",{className:"mind-admin-settings-card"},(0,p.createElement)("div",{className:"mind-admin-settings-card-name"},(0,p.createElement)("label",{htmlFor:"mind-settings-deepseek-api-key"},(0,q.__)("DeepSeek API 密钥","mind"),),),(0,p.createElement)("div",{className:c("mind-admin-settings-card-input",d&&"mind-admin-settings-card-input-error",),},(0,p.createElement)("input",{id:"mind-settings-deepseek-api-key",type:"text",placeholder:(0,q.__)("输入 API 密钥","mind"),value:e.deepseek_api_key||"",onChange:(n)=>{n.preventDefault(),t({...e,deepseek_api_key:n.target.value})},}),d&&(0,p.createElement)("div",{className:"mind-admin-setting-error"},(0,q.__)("请输入有效的 API 密钥","mind"),),(0,p.createElement)("div",{className:"mind-admin-settings-card-description",},(0,q.__)("使用 DeepSeek 模型需要此设置。","mind",)," ",(0,p.createElement)("a",{href:"https://platform.deepseek.com/api_keys",target:"_blank",rel:"noreferrer",},(0,q.__)("创建 API 密钥","mind"),),),),),v&&(0,p.createElement)("div",{className:"mind-admin-settings-error"},v,),(0,p.createElement)("div",{className:"mind-admin-settings-actions"},(0,p.createElement)("button",{disabled:!n,onClick:(t)=>{t.preventDefault();let invalid=false;if(e.anthropic_api_key&&!/^sk-ant-[a-zA-Z0-9]/.test(e.anthropic_api_key)){r(true);invalid=true}else if(e.openai_api_key&&!/^sk-[a-zA-Z0-9]/.test(e.openai_api_key)){l(true);invalid=true}else if(e.deepseek_api_key&&!/^sk-[a-zA-Z0-9]/.test(e.deepseek_api_key)){u(true);invalid=true}if(!invalid){r(false),l(false),u(false),m(e)}},},(0,q.__)("保存更改","mind"),h&&(0,p.createElement)(K,{viewBox:"0 0 24 24"}),),),))},},Document:{label:(0,q.__)("文档","mind"),href:"https://sharecms.com/document/wp-mind",},},J=[];window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,(e,t,n)=>{J[t]=n});function Y(e){return{type:"SET_ACTIVE_PAGE",activePage:e}}function ee(e){return e?.activePage||""}const te=(0,V.createReduxStore)("mind/admin",{reducer:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{activePage:J.sub_page||Object.keys(Q)[0]},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"SET_ACTIVE_PAGE"===t.type&&e.activePage!==t.activePage?{...e,activePage:t.activePage}:e},actions:i,selectors:a,});(0,V.register)(te);const{settings:ne}=window.mindAdminData,ie=window.wp.apiFetch;var ae=n.n(ie);function re(e){return(t)=>{let{dispatch:n}=t;if(!e||!Object.keys(e).length)return;n({type:"UPDATE_SETTINGS_PENDING"});const i={settings:e};ae()({path:"/mind/v1/update_settings",method:"POST",data:i}).then((t)=>(n({type:"UPDATE_SETTINGS_SUCCESS",settings:e}),t.response),).catch((e)=>{n({type:"UPDATE_SETTINGS_ERROR",error:e?.response||e?.error_code||(0,q.__)("出了点问题,请重试...","mind",),})})}}function se(e){return e?.settings||{}}function oe(e,t){return e?.settings[t]||""}function le(e){return e?.updating||!1}function ce(e){return e?.error||!1}const de=(0,V.createReduxStore)("mind/settings",{reducer:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{settings:ne,updating:!1,error:""},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};switch(t.type){case"UPDATE_SETTINGS_PENDING":return{...e,updating:!0};case"UPDATE_SETTINGS_SUCCESS":return{...e,updating:!1,settings:{...e.settings,...t.settings},};case"UPDATE_SETTINGS_ERROR":return{...e,updating:!1,error:t.error||""}}return e},actions:r,selectors:s,});var ue;function pe(){return((pe=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{getActivePage:t}=e("mind/admin");return{activePage:t()}});(0,o.useEffect)(()=>{document.querySelectorAll(".toplevel_page_mind .current").forEach((e)=>{e.classList.remove("current")});let e=document.querySelectorAll(`.toplevel_page_mind[href="admin.php?page=mind&sub_page=${n}"]`,);e&&e.length?e:(e=document.querySelectorAll('.toplevel_page_mind [href="admin.php?page=mind"]',)),e.forEach((e)=>{e.parentNode.classList.add("current")}),document.body.classList.forEach((e)=>{/mind-admin-page-/.test(e)&&document.body.classList.remove(e)}),document.body.classList.add(`mind-admin-page-${n}`),e&&e.length&&window.history.pushState(document.title,document.title,e[0].href,)},[n]);const i=[];let a="";if((Object.keys(Q).forEach((e)=>{i.push((0,o.createElement)("li",{key:e},(0,o.createElement)("a",{href:(Q[e]&&Q[e].href)||"#",target:Q[e]&&Q[e].href?"_blank":null,rel:"noreferrer",className:c("mind-admin-tabs-button",n===e&&"mind-admin-tabs-button-active",),onClick:(n)=>{Q[e]&&!Q[e].href&&(n.preventDefault(),t(e))},},Q[e].label,),),)}),n&&Q[n])){const e=Q[n].block;a=(0,o.createElement)(e,null)}return(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{className:"mind-admin-head"},(0,o.createElement)("div",{className:"mind-admin-head-container"},(0,o.createElement)("div",{className:"mind-admin-head-logo"},(0,o.createElement)(me,null),(0,o.createElement)("h1",null,(0,q.__)("心思","mind")),),(0,o.createElement)("ul",{className:"mind-admin-tabs"},i),),),(0,o.createElement)(R,{mode:"out-in"},(0,o.createElement)(F,{key:n,nodeRef:e,addEndListener:(t)=>{e.current.addEventListener("transitionend",t,!1)},classNames:"mind-admin-content-transition",},(0,o.createElement)("div",{ref:e,className:c("mind-admin-content",`mind-admin-content-${n}`,),},a,),),),)}window.addEventListener("load",()=>{(0,o.render)((0,o.createElement)(fe,null),document.querySelector(".mind-admin-root"),)})},},n={};function i(e){var a=n[e];if(void 0!==a)return a.exports;var r=(n[e]={exports:{}});return t[e](r,r.exports,i),r.exports}(i.m=t),(e=[]),(i.O=(t,n,a,r)=>{if(!n){var s=1/0;for(d=0;d=r)&&Object.keys(i.O).every((e)=>i.O[e](n[l]))?n.splice(l--,1):((o=!1),r0&&e[d-1][2]>r;d--)e[d]=e[d-1];e[d]=[n,a,r]}),(i.n=(e)=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t}),(i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}),(i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)),(i.r=(e)=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}),(()=>{var e={884:0,15:0};i.O.j=(t)=>0===e[t];var t=(t,n)=>{var a,r,s=n[0],o=n[1],l=n[2],c=0;if(s.some((t)=>0!==e[t])){for(a in o)i.o(o,a)&&(i.m[a]=o[a]);if(l)var d=l(i)}for(t&&t(n);ci(925));a=i.O(a)})(); diff --git a/build/editor.js b/build/editor.js index dd1968d..878b74f 100644 --- a/build/editor.js +++ b/build/editor.js @@ -1,7 +1 @@ -(()=>{"use strict";var e,t={43:(e,t,n)=>{var r={};n.r(r),n.d(r,{getSettingsPageURL:()=>p,isConnected:()=>u});var o={};n.r(o),n.d(o,{getHighlightBlocks:()=>h});var s={};n.r(s),n.d(s,{removeHighlightBlocks:()=>f,setHighlightBlocks:()=>g});var i={};n.r(i),n.d(i,{close:()=>N,open:()=>B,requestAI:()=>F,reset:()=>D,setContext:()=>x,setError:()=>A,setInput:()=>j,setInsertionPlace:()=>M,setLoading:()=>R,setResponse:()=>L,setScreen:()=>T,toggle:()=>P});var a={};n.r(a),n.d(a,{getContext:()=>U,getError:()=>W,getInput:()=>G,getInsertionPlace:()=>q,getLoading:()=>K,getProgress:()=>Z,getResponse:()=>V,getScreen:()=>$,isOpen:()=>H});const{connected:c,settingsPageURL:l}=window.mindData;function u(){return"1"===c}function p(){return l}const d=window.wp.data,m=(0,d.createReduxStore)("mind",{selectors:r,reducer:e=>e});(0,d.register)(m);function h(e){return e?.highlightBlocks||[]}function g(e){return{type:"SET_HIGHLIGHT_BLOCKS",highlightBlocks:e}}function f(e){return{type:"REMOVE_HIGHLIGHT_BLOCKS",removeBlocks:e}}const E=(0,d.createReduxStore)("mind/blocks",{reducer:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{highlightBlocks:[]},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};switch(t.type){case"SET_HIGHLIGHT_BLOCKS":if(t.highlightBlocks&&t.highlightBlocks.length)return{...e,highlightBlocks:[...e.highlightBlocks,...t.highlightBlocks]};break;case"REMOVE_HIGHLIGHT_BLOCKS":if(e.highlightBlocks&&e.highlightBlocks.length&&t.removeBlocks&&t.removeBlocks.length)return{...e,highlightBlocks:e.highlightBlocks.filter((e=>!t.removeBlocks.includes(e)))}}return e},selectors:o,actions:s});(0,d.register)(E);const _={isOpen:!1,input:"",context:["selected-blocks","page"],insertionPlace:"",screen:"",loading:!1,response:"",error:null,progress:{charsProcessed:0,queueSize:0,isComplete:!1}},b=window.wp.i18n,k=window.wp.apiFetch;var v=n.n(k);function w(e){return" \r\n\t".indexOf(e)>=0}const y=window.wp.blocks;class O{constructor(e){this.dispatch=e,this.contentBuffer="",this.decoder=new TextDecoder,this.isJsonStarted=!1,this.jsonBuffer="",this.throttledDispatch=this.throttle(this.performDispatch.bind(this),200)}throttle(e,t){let n;return function(...r){n||(e.apply(this,r),n=!0,setTimeout((()=>n=!1),t))}}async processStream(e){try{for(;;){const{value:t,done:n}=await e.read();if(n)break;await this.processChunk(t)}}catch(e){this.handleError(e)}}async processChunk(e){const t=this.decoder.decode(e,{stream:!0}).split("\n");for(const e of t)if(e.startsWith("data: "))try{const t=e.slice(6),n=JSON.parse(t);if(n.error){this.handleError(n);break}if(!0===n.done)return void(this.jsonBuffer&&await this.parseAndDispatchBlocks(this.jsonBuffer,!0));if(!n.content)continue;await this.processContent(n.content)}catch(e){}}async processContent(e){if(this.contentBuffer+=e,this.isJsonStarted)if(e.includes("```")){const t=e.indexOf("```");this.jsonBuffer+=e.substring(0,t),await this.parseAndDispatchBlocks(this.jsonBuffer,!0),this.isJsonStarted=!1,this.jsonBuffer=""}else this.jsonBuffer+=e,await this.tryParseIncomplete(this.jsonBuffer);else if(this.contentBuffer.includes("```json")){this.isJsonStarted=!0;const[,e]=this.contentBuffer.split("```json");this.jsonBuffer=e||""}}async tryParseIncomplete(e){try{if(!e||!e.trim().startsWith("["))return;const t=function(e){for(var t,n,r,o=["topLevel"],s=0,i=function(e){return o.push(e)},a=function(e){return o[o.length-1]=e},c=function(e){null==t&&(t=s,n=o.length,r=e)},l=function(e){e===r&&(t=void 0,n=void 0,r=void 0)},u=function(){return o.pop()},p=function(){return s--},d=function(e){if("0"<=e&&e<="9")i("number");else switch(e){case'"':return void i("string");case"-":return void i("numberNeedsDigit");case"t":return void i("true");case"f":return void i("false");case"n":return void i("null");case"[":return void i("arrayNeedsValue");case"{":return void i("objectNeedsKey")}},m=e.length;s"9")&&(p(),u());break;case"numberNeedsDigit":a("number");break;case"numberNeedsExponent":a("+"===h||"-"===h?"numberNeedsDigit":"number");break;case"true":case"false":case"null":(h<"a"||h>"z")&&(p(),u());break;case"arrayNeedsValue":"]"===h?u():w(h)||(l("collectionItem"),a("arrayNeedsComma"),d(h));break;case"arrayNeedsComma":"]"===h?u():","===h&&(c("collectionItem"),a("arrayNeedsValue"));break;case"objectNeedsKey":"}"===h?u():'"'===h&&(c("collectionItem"),a("objectNeedsColon"),i("string"));break;case"objectNeedsColon":":"===h&&a("objectNeedsValue");break;case"objectNeedsValue":w(h)||(l("collectionItem"),a("objectNeedsComma"),d(h));break;case"objectNeedsComma":"}"===h?u():","===h&&(c("collectionItem"),a("objectNeedsKey"))}}null!=n&&(o.length=n);for(var g=[null!=t?e.slice(0,t):e],f=function(t){return g.push(t.slice(e.length-e.lastIndexOf(t[0])))},E=o.length-1;E>=0;E--)switch(o[E]){case"string":g.push('"');break;case"numberNeedsDigit":case"numberNeedsExponent":g.push("0");break;case"true":f("true");break;case"false":f("false");break;case"null":f("null");break;case"arrayNeedsValue":case"arrayNeedsComma":g.push("]");break;case"objectNeedsKey":case"objectNeedsColon":case"objectNeedsValue":case"objectNeedsComma":g.push("}")}return g.join("")}(e);if(!t)return;const n=JSON.parse(t);if(Array.isArray(n)&&n.length>0){const e=n.map((e=>this.transformToBlock(e))).filter(Boolean);e.length>0&&await this.dispatchBlocks(e,!1)}}catch(e){}}async parseAndDispatchBlocks(e,t=!1){try{const n=JSON.parse(e),r=Array.isArray(n)?n.map((e=>this.transformToBlock(e))).filter(Boolean):[this.transformToBlock(n)].filter(Boolean);r.length>0&&await this.dispatchBlocks(r,t)}catch(n){t||await this.tryParseIncomplete(e)}}transformToBlock(e){if(!e?.name)return null;try{const t=Array.isArray(e.innerBlocks)?e.innerBlocks.map((e=>this.transformToBlock(e))).filter(Boolean):[],n=e.attributes||{};return(0,y.createBlock)(e.name,n,t)}catch(e){return null}}performDispatch(e,t){this.dispatch({type:t?"REQUEST_AI_SUCCESS":"REQUEST_AI_CHUNK",payload:{response:e,progress:{charsProcessed:this.contentBuffer.length,blocksCount:e.length,isComplete:t}}})}async dispatchBlocks(e,t=!1){t?this.performDispatch(e,!0):this.throttledDispatch(e,!1)}handleError(e){this.dispatch({type:"REQUEST_AI_ERROR",payload:e.message})}}function C(e){e?.attributes?.metadata&&delete e.attributes.metadata,e?.attributes?.patternName&&delete e.attributes.patternName;const t={clientId:e.clientId,name:e.name,attributes:e.attributes,innerBlocks:[]};return e.innerBlocks.length&&e.innerBlocks.forEach((e=>{t.innerBlocks.push(C(e))})),t}function S(e){const{getBlock:t,getSelectedBlockClientIds:n}=wp.data.select("core/block-editor"),r=n(),o=[];return r.forEach((e=>{const n=t(e);n?.name&&n?.attributes&&o.push(C(n))})),e?JSON.stringify(o):o}function I(){const e=S();return!(!e||!e.length||1===e.length&&"core/paragraph"===e[0].name&&!e[0].attributes.content.trim())}function B(){return{type:"OPEN"}}function N(){return{type:"CLOSE"}}function P(){return{type:"TOGGLE"}}function j(e){return{type:"SET_INPUT",input:e}}function x(e){return{type:"SET_CONTEXT",context:e}}function M(e){return{type:"SET_INSERTION_PLACE",insertionPlace:e}}function T(e){return{type:"SET_SCREEN",screen:e}}function R(e){return{type:"SET_LOADING",loading:e}}function L(e){return{type:"SET_RESPONSE",response:e}}function A(e){return{type:"SET_ERROR",error:e}}function D(){return{type:"RESET"}}function F(){return async({dispatch:e,select:t})=>{if(u){if(!t.getLoading())try{e({type:"REQUEST_AI_PENDING"});const n={request:t.getInput()};t.getContext().includes("selected-blocks")&&I()&&(n.selected_blocks=S(!0)),t.getContext().includes("page")&&(n.page_blocks=function(){const{getBlocks:e}=wp.data.select("core/block-editor"),t=e(),n=[];return t.forEach((e=>{e?.name&&e?.attributes&&n.push(C(e))})),JSON.stringify(n)}(),n.page_context=function(){const{getCurrentPost:e}=wp.data.select("core/editor"),t=e(),n={title:t.title,type:t.type,slug:t.slug,link:t.link,status:t.status,date:t.date_gmt,modified:t.modified_gmt,excerpt:t.excerpt};return JSON.stringify(n)}());const r=new O(e),o=await v()({path:"/mind/v1/request_ai",method:"POST",data:n,parse:!1});if(!o.ok){const e=await o.json();throw new Error(e.message||(0,b.__)("Failed to fetch AI response","mind"))}await r.processStream(o.body.getReader())}catch(t){e({type:"REQUEST_AI_ERROR",payload:t.message||(0,b.__)("Failed to fetch AI response","mind")})}}else e(A((0,b.__)("Not connected","mind")))}}function H(e){return e?.isOpen||!1}function G(e){return e?.input||""}function U(e){return e?.context||[]}function q(e){return e?.insertionPlace||""}function $(e){return e?.screen||""}function K(e){return e?.loading||!1}function Z(e){return e?.progress||!1}function V(e){return e?.response||[]}function W(e){return e?.error||!1}const J=(0,d.createReduxStore)("mind/popup",{reducer:function(e=_,t={}){switch(t.type){case"CLOSE":if(e.isOpen)return{...e,isOpen:!1};break;case"OPEN":if(!e.isOpen){const t={...e,isOpen:!0};return t.context.includes("selected-blocks")||(t.context=[...t.context,"selected-blocks"]),t}break;case"TOGGLE":return{...e,isOpen:!e.isOpen};case"SET_INPUT":if(e.input!==t.input)return{...e,input:t.input};break;case"SET_CONTEXT":if(e.context!==t.context)return{...e,context:t.context};break;case"SET_INSERTION_PLACE":if(e.insertionPlace!==t.insertionPlace)return{...e,insertionPlace:t.insertionPlace};break;case"SET_SCREEN":if(e.screen!==t.screen)return{...e,screen:t.screen};break;case"SET_LOADING":if(e.loading!==t.loading)return{...e,loading:t.loading};break;case"SET_RESPONSE":if(e.response!==t.response)return{...e,response:t.response};break;case"SET_ERROR":if(e.error!==t.error)return{...e,error:t.error};break;case"REQUEST_AI_PENDING":return{...e,isOpen:!0,loading:!0,response:[],error:null,screen:"request",progress:_.progress};case"REQUEST_AI_CHUNK":return{...e,loading:!0,response:t.payload.response,progress:t.payload.progress};case"REQUEST_AI_SUCCESS":return{...e,loading:!1,response:t.payload.response,progress:{...t.payload.progress,isComplete:!0}};case"REQUEST_AI_ERROR":return{...e,loading:!1,response:[],error:t.payload||"",progress:_.progress};case"RESET":return{...e,input:"",insertionPlace:"",screen:"",response:!1,error:!1,loading:!1}}return e},actions:i,selectors:a});(0,d.register)(J);const Q=window.React,z=window.wp.element,X=window.wp.components,Y=window.wp.domReady;var ee=n.n(Y);function te(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t{const{isOpen:t,getInput:n,getScreen:r,getLoading:o,getResponse:s}=e("mind/popup");return{isOpen:t(),input:n(),screen:r(),loading:o(),response:s()}})),E=f?.length>0;return(0,z.useEffect)((()=>{p&&!g&&r?.current&&r.current.focus()}),[p,g,r]),(0,z.useEffect)((()=>{""===h&&m&&l("request")}),[h,m,l]),(0,z.useEffect)((()=>{if(r?.current){r.current.style.height="0px";const e=r.current.scrollHeight;r.current.style.height=e+"px"}}),[r,m,g,E,s]),(0,z.useEffect)((()=>{const e=n&&!o.current;if(o.current=n,e){const e=[];return[100,200,300].forEach((t=>{const n=setTimeout((()=>{i((e=>e+1))}),t);e.push(n)})),()=>{e.forEach((e=>clearTimeout(e)))}}}),[n]),(0,Q.createElement)("div",{className:"mind-popup-input"},(0,Q.createElement)(se,null),(0,Q.createElement)("textarea",{ref:r,placeholder:(0,b.__)("Ask AI to build or change blocks…","mind"),value:m,onChange:e=>{c(e.target.value)},onKeyDown:function(e){""===h||"Backspace"!==e.key||e.target.value?f?.length>0&&"Enter"===e.key&&!e.shiftKey?t():"request"!==h||"Enter"!==e.key||e.shiftKey||(e.preventDefault(),m&&u()):a()},disabled:g,rows:1}))}function ae(){return(0,z.createElement)("div",{className:"mind-popup-loading-line"},(0,z.createElement)("span",null))}function ce(e){const{type:t,children:n}=e;return(0,z.createElement)("div",{className:"mind-popup-notice "+(t?`mind-popup-notice-${t}`:"")},n)}const le=window.lodash,ue=window.wp.blockEditor;function pe({response:e}){return(0,Q.createElement)("div",{className:"mind-popup-response__preview"},(0,Q.createElement)(ue.BlockPreview,{blocks:[{name:"core/group",clientId:"a9b75f7e-55c7-4f2b-93bb-00cf24181278",isValid:!0,attributes:{align:"full",layout:{type:"constrained"},className:"alignfull"},innerBlocks:e}],viewportWidth:0,additionalStyles:[{css:"\n\t\t\t\t\t\t\t.is-root-container > div {\n\t\t\t\t\t\t\t\tmargin-top: 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t"}]}))}const de=(0,z.memo)((function({response:e,loading:t}){const[n,r]=(0,z.useState)(1),[o,s]=(0,z.useState)([]),[i,a]=(0,z.useState)([]),c=(0,z.useRef)(null);return(0,z.useEffect)((()=>{if(e.length)return c.current&&clearTimeout(c.current),1===n?a(e):s(e),c.current=setTimeout((()=>{r(1===n?2:1)}),50),()=>{c.current&&clearTimeout(c.current)}}),[e]),e.length||t?(0,Q.createElement)("div",{className:ne("mind-popup-response",`mind-popup-response--${n}`)},(o.length>0||i.length>0)&&(0,Q.createElement)(Q.Fragment,null,(0,Q.createElement)(pe,{response:o}),(0,Q.createElement)(pe,{response:i}))):null}),((e,t)=>(0,le.isEqual)(e.response,t.response)&&e.loading===t.loading));function me(){const e=(0,z.useRef)(),{setScreen:t}=(0,d.useDispatch)("mind/popup"),{isOpen:n,input:r,screen:o,loading:s,response:i,progress:a,error:c}=(0,d.useSelect)((e=>{const{isOpen:t,getInput:n,getScreen:r,getLoading:o,getResponse:s,getProgress:i,getError:a}=e("mind/popup");return{isOpen:t(),input:n(),screen:r(),loading:o(),response:s(),progress:i(),error:a()}}));return(0,z.useEffect)((()=>{n&&!s&&e?.current&&function(){if(e?.current){const t=e.current.querySelector("input");t&&t.focus()}}()}),[n,s,e]),(0,z.useEffect)((()=>{""===o&&r&&t("request")}),[o,r,t]),(0,Q.createElement)("div",{className:"mind-popup-content"},"request"===o&&(0,Q.createElement)("div",{className:"mind-popup-request"},i?.length>0&&(0,Q.createElement)(de,{progress:a,loading:s,response:i}),!s&&c&&(0,Q.createElement)(ce,{type:"error"},c)))}function he(e){return(0,z.createElement)("span",{className:"mind-popup-loading-text"},e.children)}function ge(e){const{onInsert:t}=e,{close:n,reset:r,setContext:o,setError:s,requestAI:i}=(0,d.useDispatch)("mind/popup"),{input:a,context:c,loading:l,response:u,insertionPlace:p}=(0,d.useSelect)((e=>{const{getInput:t,getContext:n,getLoading:r,getResponse:o,getInsertionPlace:s}=e("mind/popup");return{input:t(),context:n(),loading:r(),response:o(),insertionPlace:s()}})),m=[{name:(0,b.__)("Page","mind"),tooltip:(0,b.__)("Provide page context","mind"),value:"page"},!!I()&&{name:(0,b.__)("Blocks","mind"),tooltip:(0,b.__)("Provide selected blocks context","mind"),value:"selected-blocks"}],h=!l&&!u?.length;return(0,Q.createElement)("div",{className:"mind-popup-footer"},(0,Q.createElement)("div",null,(0,Q.createElement)("div",{className:"mind-popup-footer-context"},m.map((e=>e&&(h||c.includes(e.value))?(0,Q.createElement)(X.Tooltip,{delay:500,placement:"top",key:e.value,text:e.tooltip},(0,Q.createElement)("button",{key:e.value,disabled:!h,className:c.includes(e.value)?"active":"",onClick:()=>{c.includes(e.value)?o(c.filter((t=>t!==e.value))):o([...c,e.value])}},e.name,(0,Q.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"14",height:"14",fill:"currentColor"},(0,Q.createElement)("path",{d:"M19 11h-6V5h-2v6H5v2h6v6h2v-6h6z"})))):null)))),(0,Q.createElement)("div",{className:"mind-popup-footer-actions"},!l&&0===u?.length&&(0,Q.createElement)(X.Tooltip,{placement:"top",text:(0,b.__)("Ask AI and get answer","mind")},(0,Q.createElement)(X.Button,{className:"mind-popup-footer-actions-primary mind-popup-footer-actions-icon",onClick:()=>{i()},"aria-label":(0,b.__)("Get Answer","mind"),disabled:!a},"→")),l&&(0,Q.createElement)(X.Button,{className:"mind-popup-footer-actions-primary",disabled:!0},(0,Q.createElement)(he,null,(0,b.__)("Loading","mind"))),u?.length>0&&!l&&(0,Q.createElement)(Q.Fragment,null,(0,Q.createElement)(X.Button,{onClick:()=>{s(""),i()}},(0,b.__)("Regenerate","mind")," ",(0,Q.createElement)("kbd",null,"↻")),(0,Q.createElement)(X.Button,{onClick:()=>{window.navigator.clipboard.writeText((0,y.serialize)(u))}},(0,b.__)("Copy","mind")),"selected-blocks"===p&&I()&&(0,Q.createElement)(X.Button,{onClick:()=>t("insert")},(0,b.__)("Insert","mind")," ",(0,Q.createElement)("kbd",null,"⏎")),(0,Q.createElement)(X.Button,{className:"mind-popup-footer-actions-primary",onClick:t},"selected-blocks"===p&&I()?(0,b.__)("Replace Selected Blocks","mind"):(0,b.__)("Insert","mind")," ",(0,Q.createElement)("kbd",null,"⏎")))))}var fe;function Ee(){return Ee=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{getSettingsPageURL:t}=e("mind");return{settingsPageURL:t()}}));return(0,Q.createElement)("div",{className:"mind-popup-connected-screen"},(0,Q.createElement)("h2",null,(0,Q.createElement)(_e,null),(0,b.__)("AI API Key","mind")),(0,Q.createElement)("div",null,(0,Q.createElement)("p",null,(0,b.__)("In order to use Mind, you will need to provide your Anthropic or OpenAI API key. Please insert your API key in the plugin settings to get started.","mind"))),(0,Q.createElement)("div",null,(0,Q.createElement)("a",{className:"mind-popup-connected-screen-button",href:e,target:"_blank",rel:"noreferrer"},(0,b.__)("Go to Settings","mind"))))}const ke="mind-popup-container";function ve(){const{setHighlightBlocks:e}=(0,d.useDispatch)("mind/blocks"),{close:t,reset:n}=(0,d.useDispatch)("mind/popup"),[r,o]=(0,z.useState)(!1),[s,i]=(0,z.useState)(null),{connected:a,isOpen:c,insertionPlace:l,loading:u,response:p}=(0,d.useSelect)((e=>{const{isConnected:t}=e("mind"),{isOpen:n,getInsertionPlace:r,getLoading:o,getResponse:s}=e("mind/popup");return{connected:t(),isOpen:n(),insertionPlace:r(),loading:o(),response:s()}})),{selectedClientIds:m}=(0,d.useSelect)((e=>{const{getSelectedBlockClientIds:t}=e("core/block-editor");return{selectedClientIds:t()}}),[]),h=(0,z.useRef)();(0,z.useEffect)((()=>{if(!c||!h.current)return;if((!u&&!p?.length||r||s)&&(u||p?.length||!r||s))return;const{height:e}=h.current.children[0].getBoundingClientRect();i({height:`${e}px`}),setTimeout((()=>{i(null),o(!r)}),10)}),[r,u,p,c,s]);const{insertBlocks:g,replaceBlocks:f}=(0,d.useDispatch)("core/block-editor");function E(){p.length&&("selected-blocks"===l&&m&&m.length?f(m,p):g(p),e(p.map((e=>e.clientId)))),n(),t(),o(!1)}return c?(0,Q.createElement)(X.Modal,{ref:h,title:!1,className:ne("mind-popup",!a&&"mind-popup-not-connected"),overlayClassName:"mind-popup-overlay",onRequestClose:()=>{n(),t(),o(!1)},isFullScreen:r,style:s,__experimentalHideHeader:!0},a?(0,Q.createElement)(Q.Fragment,null,(0,Q.createElement)(ie,{onInsert:E,isFullscreen:r}),u&&(0,Q.createElement)(ae,null),(0,Q.createElement)(me,null),(0,Q.createElement)(ge,{onInsert:E})):(0,Q.createElement)(be,null)):null}ee()((()=>{if(document.querySelector(`.${ke}`))return;const e=document.querySelector(".block-editor");if(!e)return;const t=document.createElement("div");t.classList.add(ke),e.appendChild(t),(0,z.createRoot)(t).render((0,Q.createElement)(ve,null))}));const we=window.wp.hooks,ye=window.wp.compose;var Oe;function Ce(){return Ce=Object.assign?Object.assign.bind():function(e){for(var t=1;t