diff --git a/assets/creator-studio/README.md b/assets/creator-studio/README.md
index 6983f8a8..d5b09f48 100644
--- a/assets/creator-studio/README.md
+++ b/assets/creator-studio/README.md
@@ -1,6 +1,6 @@
# Jio Creator Studio(前台沉浸式创作工作台)
-面向作者的前台写作体验:Gutenberg 作为内容内核,React + TypeScript 负责工作台与发布抽屉,Jio 服务端继续作为权限、审核、付费与附件交付的唯一权威。
+面向作者的前台写作体验:WordPress TinyMCE 负责 HTML 正文编辑,React + TypeScript 负责单行固定工具栏、写作工作台与发布抽屉,Jio 服务端继续作为权限、审核、付费与附件交付的唯一权威。
## 启动
@@ -37,7 +37,7 @@ define('JIO_PRIVATE_STORAGE_VERIFIED', true);
| 编辑已发布文章 | 写入私有改稿版本(`jio_submission`),线上文章与永久链接保持不变 |
| 审核通过 | 后台「文章 → 改稿审核」一次性应用内容、摘要、分类、标签、封面与付费设置 |
| 自动保存 | 云端 4 秒防抖 + `rev` 版本号;冲突返回 409,不覆盖较新内容 |
-| 本地恢复 | 仅保存标题与序列化正文,恢复前询问用户 |
+| 本地恢复 | 仅保存标题与 TinyMCE HTML 正文,恢复前询问用户 |
| 付费附件 | 上传到私有存储,只保存随机 `asset_key`;下载先取短期令牌,服务端每次复核订单/VIP/配额 |
## 相关代码
@@ -45,7 +45,7 @@ define('JIO_PRIVATE_STORAGE_VERIFIED', true);
- 服务端:`src/Core/CreatorRest.php`、`CreatorStudio.php`、`SubmissionVersion.php`、`PreviewToken.php`
- 安全交付:`src/Content/PrivateAssets.php`、`src/Content/ProtectedDownload.php`
- 原生审核:`src/Admin/Native/SubmissionReview.php`
-- 前端:`assets/creator-studio/src/`(`index.tsx` / `panels/` / `hooks/` / `services/` / `styles/`)
+- 前端:`assets/creator-studio/src/`(`index.tsx` / `components/editor-toolbar.tsx` / `panels/` / `hooks/` / `services/` / `styles/`)
- 契约测试:`tests/widget-system/creator-studio-contract.test.cjs`
## 测试
diff --git a/assets/creator-studio/build/index.asset.php b/assets/creator-studio/build/index.asset.php
index 068483b1..a0efa170 100644
--- a/assets/creator-studio/build/index.asset.php
+++ b/assets/creator-studio/build/index.asset.php
@@ -1 +1 @@
- array('react', 'wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-wordcount'), 'version' => 'a7a69219755aa071c854');
+ array('react', 'wp-element', 'wp-i18n'), 'version' => '7498c793a760249be02b');
diff --git a/assets/creator-studio/build/index.css b/assets/creator-studio/build/index.css
index 03af593a..455fe044 100644
--- a/assets/creator-studio/build/index.css
+++ b/assets/creator-studio/build/index.css
@@ -1 +1 @@
-.jio-page-submit{background:#fafbfa}body.jio-page-submit.has-static-nav,body.jio-page-submit.nav-fixed{padding-top:0!important}.jio-page-submit .float-btn,.jio-page-submit .footer,.jio-page-submit .footer-tabbar,.jio-page-submit .header,.jio-page-submit .jio-float-buttons{display:none!important}.jio-page-submit #main-content.container{max-width:none;padding:0}#jio-creator-studio.is-ready{display:block}.jio-creator{--jc-ink:#243330;--jc-ink-soft:#5c6b66;--jc-paper:#fafbfa;--jc-line:#e2e9e5;--jc-accent:#267665;--jc-accent-strong:#1d5f52;--jc-warn:#b4573f;--jc-bar:60px;-webkit-font-smoothing:antialiased;background:var(--jc-paper);color:var(--jc-ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;min-height:100vh;min-height:100dvh;padding-top:var(--jc-bar)}.jio-creator *,.jio-creator :after,.jio-creator :before{box-sizing:border-box}.jio-creator button{color:inherit;font:inherit}.jio-creator__bar{align-items:center;backdrop-filter:blur(14px);background:rgba(250,251,250,.97);border-bottom:1px solid var(--jc-line);box-shadow:0 2px 8px rgba(27,46,39,.035);display:flex;gap:20px;height:var(--jc-bar);justify-content:space-between;left:0;padding:0 clamp(16px,3vw,34px);position:fixed;right:0;top:0;z-index:300}.jio-creator__bar-actions,.jio-creator__bar-center,.jio-creator__bar-left{align-items:center;display:flex;gap:12px;min-width:0}.jio-creator__bar-left{flex:0 0 auto}.jio-creator__bar-center{flex:1 1 auto;gap:14px;justify-content:center}.jio-creator__bar-actions{flex:0 0 auto;gap:8px}.jio-creator__back{align-items:center;border-radius:7px;color:var(--jc-ink-soft);display:inline-flex;height:30px;justify-content:center;text-decoration:none;width:30px}.jio-creator__back:focus-visible,.jio-creator__back:hover{background:#edf3f0;color:var(--jc-accent);outline:0}.jio-creator__bar-brand{color:var(--jc-accent-strong);font-family:Songti SC,"Noto Serif SC","Source Han Serif SC",serif;font-size:17px;font-weight:700;letter-spacing:-.04em}.jio-creator__bar-divider{background:var(--jc-line);height:18px;width:1px}.jio-creator__bar-mode{color:var(--jc-ink-soft);font-size:13px}.jio-creator__doc-title{color:#65736d;font-size:13px;max-width:min(32vw,360px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jio-creator__icon-btn{align-items:center;background:transparent;border:0;border-radius:7px;color:var(--jc-ink-soft);cursor:pointer;display:inline-flex;height:32px;justify-content:center;width:32px}.jio-creator__icon-btn:focus-visible:not(:disabled),.jio-creator__icon-btn:hover:not(:disabled){background:#edf3f0;color:var(--jc-accent-strong);outline:0}.jio-creator__icon-btn:disabled{color:#c7d0cc;cursor:default}.jio-creator__history{align-items:center;border-right:1px solid var(--jc-line);display:inline-flex;gap:2px;padding-right:8px}.jio-creator__save-draft{background:#fff;border-color:var(--jc-line);color:var(--jc-ink-soft)}.jio-creator__save-draft:focus-visible,.jio-creator__save-draft:hover{background:#f7faf8;border-color:#b7cdc3;color:var(--jc-accent-strong)}.jio-creator__save{align-items:center;color:var(--jc-ink-soft);display:inline-flex;font-size:13px;gap:6px}.jio-creator__save>i{color:var(--jc-line);font-size:7px}.jio-creator__save time{font-variant-numeric:tabular-nums;opacity:.7}.jio-creator__save.is-saved>i{color:var(--jc-accent)}.jio-creator__save.is-conflict,.jio-creator__save.is-conflict>i,.jio-creator__save.is-error,.jio-creator__save.is-error>i{color:var(--jc-warn)}.jio-creator__btn,.jio-creator__ghost,.jio-creator__primary{align-items:center;border:1px solid transparent;border-radius:8px;cursor:pointer;display:inline-flex;font-size:14px;justify-content:center;min-height:36px;padding:0 16px;transition:background .18s ease,border-color .18s ease,color .18s ease}.jio-creator__ghost{background:transparent;border-color:var(--jc-line)}.jio-creator__ghost:focus-visible,.jio-creator__ghost:hover{border-color:var(--jc-accent);color:var(--jc-accent)}.jio-creator__primary{background:var(--jc-accent);color:#fff}.jio-creator__primary:focus-visible,.jio-creator__primary:hover{background:var(--jc-accent-strong)}.jio-creator__primary:disabled{cursor:not-allowed;opacity:.5}.jio-creator__notice{align-items:center;background:#f1f5f2;border-bottom:1px solid var(--jc-line);color:var(--jc-ink-soft);display:flex;font-size:13px;gap:12px;margin:0 auto;max-width:820px;padding:10px 16px}.jio-creator__notice>span{flex:1}.jio-creator__notice button{background:transparent;border:0;color:var(--jc-accent);cursor:pointer}.jio-creator__notice.is-error{background:#fdf2ee;color:var(--jc-warn)}.jio-creator__hint{color:var(--jc-ink-soft);font-size:13px;margin:18px auto 0;max-width:820px;padding:0 clamp(16px,4vw,40px)}.jio-creator__canvas{margin:0 auto;padding:clamp(20px,4vw,44px) clamp(20px,5vw,52px) 140px;width:min(720px,100%)}.jio-creator__title{display:block;margin-bottom:6px}.jio-creator__title textarea{background:transparent;border:0;color:var(--jc-ink);font-family:Songti SC,"Noto Serif SC","Source Han Serif SC",serif;font-size:clamp(23px,2.6vw,27px);font-weight:500;letter-spacing:.01em;line-height:1.4;min-height:50px;padding:0;resize:none;width:100%}.jio-creator__title textarea:focus{outline:0}.jio-creator__title textarea::-moz-placeholder{color:#b7c2bd}.jio-creator__title textarea::placeholder{color:#b7c2bd}.jio-creator__excerpt{display:block;margin-bottom:22px}.jio-creator__excerpt>span{color:#9aa8a2;display:block;font-size:12px;letter-spacing:.02em;margin-bottom:4px}.jio-creator__excerpt textarea{background:transparent;border:0;color:var(--jc-ink-soft);font-family:inherit;font-size:14px;line-height:1.7;padding:6px 0;resize:none;width:100%}.jio-creator__excerpt textarea:focus{outline:0}.jio-creator__editor{min-height:40vh;position:relative}.jio-creator__editor .block-editor-writing-flow{font-size:16px;letter-spacing:.01em;line-height:1.85}.jio-creator__editor .block-editor-default-block-appender textarea.block-editor-default-block-appender__content{color:#b7c2bd}.jio-creator__editor .block-editor-block-list__layout{padding-bottom:40px}.jio-creator__editor .wp-block{max-width:none}.jio-creator__editor .block-editor-block-list__block{margin-bottom:1.1em;margin-top:0}.jio-creator__editor .block-editor-block-list__block[data-type="core/heading"]{margin-top:1.6em}.jio-creator__editor .block-editor-block-list__block.is-hovered:after,.jio-creator__editor .block-editor-block-list__block.is-selected:after{border-radius:3px;box-shadow:0 0 0 1.5px rgba(38,118,101,.35)}.jio-creator__editor .block-editor-block-contextual-toolbar{margin-left:0}.jio-creator__editor .block-editor-block-contextual-toolbar .block-editor-block-toolbar{background:#2b3733;border:0;border-radius:8px;box-shadow:0 6px 20px rgba(20,32,28,.22)}.jio-creator__editor .block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar,.jio-creator__editor .block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar-group{border:0}.jio-creator__editor .block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-button{color:hsla(0,0%,100%,.86)}.jio-creator__editor .block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-button:focus-visible:not(:disabled),.jio-creator__editor .block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-button:hover:not(:disabled){background:hsla(0,0%,100%,.12);color:#fff}.jio-creator__editor .block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-button.is-pressed,.jio-creator__editor .block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-button[aria-pressed=true]{background:hsla(0,0%,100%,.2);color:#fff}.jio-creator__editor .components-popover.block-editor-rich-text__inline-format-toolbar{z-index:650}.jio-creator__editor .components-popover.block-editor-rich-text__inline-format-toolbar .components-popover__content{background:#2b3733;border:0;border-radius:8px;box-shadow:0 6px 20px rgba(20,32,28,.22)}.jio-creator__editor .components-popover.block-editor-rich-text__inline-format-toolbar .components-toolbar,.jio-creator__editor .components-popover.block-editor-rich-text__inline-format-toolbar .components-toolbar-group{background:transparent;border:0}.jio-creator__editor .components-popover.block-editor-rich-text__inline-format-toolbar .components-button{color:hsla(0,0%,100%,.9)}.jio-creator__editor .components-popover.block-editor-rich-text__inline-format-toolbar .components-button.is-pressed,.jio-creator__editor .components-popover.block-editor-rich-text__inline-format-toolbar .components-button:focus-visible:not(:disabled),.jio-creator__editor .components-popover.block-editor-rich-text__inline-format-toolbar .components-button:hover:not(:disabled),.jio-creator__editor .components-popover.block-editor-rich-text__inline-format-toolbar .components-button[aria-pressed=true]{background:hsla(0,0%,100%,.16);color:#fff}.jio-creator__footer{border-top:1px solid var(--jc-line);color:var(--jc-ink-soft);display:flex;font-size:12px;justify-content:space-between;padding-top:20px}.jio-creator__cover{margin-bottom:18px;position:relative}.jio-creator__cover.is-empty{align-items:center;background:transparent;border:1px dashed #d3ded8;border-radius:8px;color:#8c9a94;cursor:pointer;display:inline-flex;font-size:12px;gap:7px;min-height:32px;padding:0 12px;transition:border-color .16s ease,color .16s ease}.jio-creator__cover.is-empty:focus-visible,.jio-creator__cover.is-empty:hover{border-color:var(--jc-accent);color:var(--jc-accent-strong);outline:0}.jio-creator__cover-thumb{background:#eef3f0;border:0;border-radius:10px;cursor:pointer;display:block;overflow:hidden;padding:0;position:relative;width:100%}.jio-creator__cover-thumb img{aspect-ratio:2.35/1;display:block;-o-object-fit:cover;object-fit:cover;width:100%}.jio-creator__cover-thumb:focus-visible{outline:2px solid var(--jc-accent);outline-offset:2px}.jio-creator__cover-edit{align-items:center;background:linear-gradient(0deg,rgba(15,25,22,.62),rgba(15,25,22,0));color:#fff;display:flex;font-size:12px;gap:6px;inset:auto 0 0 0;justify-content:center;opacity:0;padding:8px;position:absolute;transition:opacity .16s ease}.jio-creator__cover-thumb:focus-visible .jio-creator__cover-edit,.jio-creator__cover-thumb:hover .jio-creator__cover-edit{opacity:1}.jio-creator__cover-clear{background:rgba(15,25,22,.55);border:0;border-radius:50%;color:#fff;cursor:pointer;height:28px;position:absolute;right:8px;top:8px;width:28px}.jio-creator__cover-clear:focus-visible,.jio-creator__cover-clear:hover{background:rgba(15,25,22,.78);outline:0}.jio-creator__editor .wp-block-image,.jio-page-submit .entry-content .wp-block-image{margin-left:auto;margin-right:auto}.jio-creator__editor .wp-block-image img,.jio-page-submit .entry-content .wp-block-image img{border-radius:6px;display:block;height:auto;width:100%}.jio-creator__editor .wp-block-image.jio-img-w--half,.jio-page-submit .entry-content .wp-block-image.jio-img-w--half{margin-left:0;margin-right:auto;width:50%}@media(max-width:767px){.jio-creator__editor .wp-block-image.jio-img-w--half,.jio-page-submit .entry-content .wp-block-image.jio-img-w--half{margin-left:auto;width:100%}}.jio-creator__editor .wp-block-image.jio-img-w--medium,.jio-page-submit .entry-content .wp-block-image.jio-img-w--medium{width:72%}.jio-creator__editor .wp-block-image.jio-img-w--wide,.jio-page-submit .entry-content .wp-block-image.jio-img-w--wide{width:100%}.jio-creator__editor .wp-block-image.jio-img-w--full,.jio-page-submit .entry-content .wp-block-image.jio-img-w--full{margin-left:calc(clamp(24px,6vw,64px)/-2);max-width:none;width:calc(100% + clamp(24px,6vw,64px))}@media(max-width:767px){.jio-creator__editor .wp-block-image.jio-img-w--full,.jio-page-submit .entry-content .wp-block-image.jio-img-w--full{margin-left:0;width:100%}}.jio-creator__author{align-items:center;color:#8c9a94;display:flex;font-size:12px;gap:8px;margin:2px 0 20px}.jio-creator__author-avatar{border-radius:50%;flex:0 0 auto;height:24px;-o-object-fit:cover;object-fit:cover;width:24px}.jio-creator__author-avatar.is-placeholder{align-items:center;background:#e3ece7;color:#4a5f57;display:inline-flex;font-size:11px;font-weight:600;justify-content:center}.jio-creator__author-name{color:#4a5f57;font-weight:500}.jio-creator__author-meta{background:#eef5f2;border-radius:4px;color:#3c7d6c;font-size:11px;padding:1px 6px}.jio-creator__author-hint{color:#b0bcb7;margin-left:auto}.jio-creator__insert{align-items:center;background:transparent;border:1px dashed #d3ded8;border-radius:10px;color:#7c8c86;cursor:pointer;display:flex;font-size:14px;gap:8px;justify-content:center;margin:8px 0 26px;min-height:46px;transition:border-color .18s ease,color .18s ease,background .18s ease;width:100%}.jio-creator__insert i{font-size:12px}.jio-creator__insert:focus-visible,.jio-creator__insert:hover{background:#f1f7f4;border-color:var(--jc-accent);color:var(--jc-accent-strong);outline:0}.jio-insert{align-items:center;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:520}.jio-insert__backdrop{background:rgba(23,34,31,.34);border:0;cursor:default;inset:0;position:absolute}.jio-insert__panel{background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(20,32,28,.22);max-height:min(78vh,640px);overflow:hidden auto;position:relative;width:min(560px,100%)}.jio-insert__head{align-items:center;background:#fff;border-bottom:1px solid #e2e9e5;display:flex;justify-content:space-between;padding:18px 22px 12px;position:sticky;top:0;z-index:1}.jio-insert__head h2{font-size:16px;font-weight:600;margin:0}.jio-insert__close{background:transparent;border:0;border-radius:50%;color:#5c6b66;cursor:pointer;height:30px;width:30px}.jio-insert__close:focus-visible,.jio-insert__close:hover{background:#eef3f0;outline:0}.jio-insert__body{padding:16px 22px 24px}.jio-insert__group{margin-bottom:20px}.jio-insert__group h3{color:#9aa8a2;font-size:12px;font-weight:500;letter-spacing:.04em;margin:0 0 12px}.jio-insert__grid{display:grid;gap:8px;grid-template-columns:repeat(6,minmax(0,1fr))}.jio-insert-item{align-items:center;background:#f7f9f8;border:1px solid transparent;border-radius:10px;color:#243330;cursor:pointer;display:flex;flex-direction:column;gap:8px;justify-content:center;padding:14px 4px 10px;transition:background .16s ease,color .16s ease,border-color .16s ease}.jio-insert-item:focus-visible,.jio-insert-item:hover{background:#eef5f2;border-color:var(--jc-accent);color:var(--jc-accent-strong);outline:0}.jio-insert-item__icon{align-items:center;background:#fff;border-radius:8px;display:flex;font-size:15px;height:30px;justify-content:center;width:30px}.jio-insert-item__label{font-size:12px;line-height:1.3;text-align:center}.jio-creator-drawer{display:flex;inset:0;justify-content:flex-end;position:fixed;z-index:500}.jio-creator-drawer__backdrop{background:rgba(23,34,31,.32);border:0;cursor:default;inset:0;position:absolute}.jio-creator-drawer__panel{background:#fff;box-shadow:-20px 0 60px rgba(20,32,28,.16);display:flex;flex-direction:column;height:100%;position:relative;width:min(460px,100%)}.jio-creator-drawer__head{align-items:center;border-bottom:1px solid #e2e9e5;display:flex;justify-content:space-between;padding:20px 24px}.jio-creator-drawer__head h2{font-size:17px;font-weight:600;margin:0}.jio-creator-drawer__close{background:transparent;border:0;color:#5c6b66;cursor:pointer}.jio-creator-drawer__body{flex:1;overflow-y:auto;padding:20px 24px 32px}.jio-creator-drawer__note{background:#f2f7f4;border-left:3px solid #267665;color:#5c6b66;font-size:13px;line-height:1.6;margin:0 0 20px;padding:12px 14px}.jio-creator-drawer__foot{background:#fff;border-top:1px solid #e2e9e5;display:flex;flex-direction:column;gap:12px;padding:16px 24px calc(16px + env(safe-area-inset-bottom))}.jio-creator-drawer__foot .jio-creator-primary{flex:1}.jio-creator-drawer__actions{align-items:center;display:flex;gap:12px}.jio-creator-drawer__captcha{min-height:40px}.jio-creator-field{margin-bottom:26px}.jio-creator-field>h3{color:#243330;font-size:13px;font-weight:600;margin:0 0 10px}.jio-creator-muted{color:#5c6b66;font-size:12px;line-height:1.6;margin:0}.jio-creator-error{color:#b4573f;font-size:12px;margin:8px 0 0}.jio-creator-chips{display:flex;flex-wrap:wrap;gap:8px}.jio-creator-chip{align-items:center;border:1px solid #e2e9e5;border-radius:999px;color:#5c6b66;cursor:pointer;display:inline-flex;font-size:13px;gap:6px;padding:5px 12px}.jio-creator-chip input{clip:rect(0,0,0,0);height:1px;overflow:hidden;position:absolute;width:1px}.jio-creator-chip.is-active{background:#eef5f2;border-color:#267665;color:#1d5f52}.jio-creator-chip button{background:transparent;border:0;color:inherit;cursor:pointer}.jio-creator-inline{display:flex;gap:8px;margin-top:10px}.jio-creator-inline input:not([type]),.jio-creator-inline input[type=text]{border:1px solid #e2e9e5;border-radius:8px;flex:1;height:36px;min-width:0;padding:0 12px}.jio-creator-inline label{align-items:center;display:inline-flex;font-size:13px;gap:6px}.jio-creator-switch{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.jio-creator-switch h3{font-size:13px;margin:0 0 4px}.jio-creator-toggle{flex:0 0 auto;position:relative}.jio-creator-toggle input{height:1px;opacity:0;position:absolute;width:1px}.jio-creator-toggle span{background:#d6dfda;border-radius:999px;display:block;height:24px;transition:background .18s ease;width:42px}.jio-creator-toggle span:after{background:#fff;border-radius:50%;content:"";display:block;height:18px;margin:3px;transition:transform .18s ease;width:18px}.jio-creator-toggle input:checked+span{background:#267665}.jio-creator-toggle input:checked+span:after{transform:translateX(18px)}.jio-creator-toggle input:focus-visible+span{outline:2px solid #267665;outline-offset:2px}.jio-creator-pay{background:#fcfdfc;border:1px solid #e2e9e5;border-radius:10px;margin-top:16px;padding:16px}.jio-creator-input{align-items:center;display:flex;font-size:13px;gap:12px;justify-content:space-between;margin-top:12px}.jio-creator-input input{border:1px solid #e2e9e5;border-radius:8px;height:36px;padding:0 12px;text-align:right;width:140px}.jio-creator-cover{border-radius:10px;overflow:hidden;position:relative}.jio-creator-cover img{aspect-ratio:2/1;display:block;-o-object-fit:cover;object-fit:cover;width:100%}.jio-creator-cover button{background:rgba(0,0,0,.55);border:0;border-radius:50%;color:#fff;cursor:pointer;height:30px;position:absolute;right:8px;top:8px;width:30px}.jio-creator-cover-empty{align-items:center;background:#fafcfb;border:1px dashed #e2e9e5;border-radius:10px;color:#5c6b66;cursor:pointer;display:flex;flex-direction:column;font-size:13px;gap:8px;justify-content:center;min-height:120px}.jio-creator-cover-empty input{height:1px;opacity:0;position:absolute;width:1px}.jio-creator-attachments{border-top:1px solid #e2e9e5;margin-top:18px;padding-top:16px}.jio-creator-attachments__head{align-items:center;display:flex;gap:12px;justify-content:space-between}.jio-creator-attachments__head h4{font-size:13px;margin:0}.jio-creator-upload{align-items:center;border:1px solid #e2e9e5;border-radius:8px;color:#1d5f52;cursor:pointer;display:inline-flex;font-size:12px;min-height:32px;padding:0 12px}.jio-creator-upload input{height:1px;opacity:0;position:absolute;width:1px}.jio-creator-files{list-style:none;margin:12px 0 0;padding:0}.jio-creator-files li{align-items:center;border-bottom:1px solid #f0f4f1;display:flex;font-size:13px;gap:10px;padding:8px 0}.jio-creator-files button{background:transparent;border:0;color:#5c6b66;cursor:pointer;margin-left:auto}.jio-creator-files__name{align-items:center;display:inline-flex;gap:8px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jio-creator-files__name i{color:#267665}.jio-creator-reuse{font-size:13px;margin-top:14px}.jio-creator-reuse summary{color:#5c6b66;cursor:pointer}.jio-creator-reuse ul{list-style:none;margin:10px 0 0;padding:0}.jio-creator-reuse li{align-items:center;display:flex;gap:10px;padding:6px 0}.jio-creator-reuse button{background:#fff;border:1px solid #e2e9e5;border-radius:6px;cursor:pointer;margin-left:auto}.jio-creator-link{background:transparent;border:0;color:var(--jc-ink-soft,#5c6b66);cursor:pointer;font-size:13px;text-decoration:underline}@media(max-width:767px){.jio-creator{--jc-bar:56px}.jio-creator__bar{gap:8px;padding:0 10px}.jio-creator__bar-actions,.jio-creator__bar-center,.jio-creator__bar-left{gap:6px}.jio-creator__bar-brand{font-size:15px}.jio-creator__bar-divider,.jio-creator__bar-mode,.jio-creator__doc-title,.jio-creator__save-draft{display:none}.jio-creator__bar-center{flex:0 0 auto;justify-content:flex-start}.jio-creator__bar-actions{flex:1 1 auto;justify-content:flex-end}.jio-creator__icon-btn{height:30px;width:28px}.jio-creator__history{gap:0;padding-right:4px}.jio-creator__preview{font-size:12px;min-height:32px;padding:0 9px}.jio-creator__primary{font-size:13px;min-height:32px;padding:0 12px}.jio-creator__save time{display:none}.jio-creator__ghost{padding:0 10px}.jio-creator__primary{padding:0 14px}.jio-creator__canvas{padding:20px 16px calc(120px + env(safe-area-inset-bottom))}.jio-creator__title textarea{font-size:24px}.jio-creator__editor .block-editor-writing-flow{font-size:16px;line-height:1.8}.jio-creator__inspector{margin-top:16px}.jio-creator-drawer{display:block}.jio-creator-drawer__backdrop{display:none}.jio-creator-drawer__panel{border-radius:0;box-shadow:none;height:100dvh;width:100%}.jio-creator-drawer__foot{background:#fff;bottom:0;position:sticky}.jio-insert{align-items:flex-end;padding:0}.jio-insert__panel{border-radius:16px 16px 0 0;max-height:76dvh;padding-bottom:env(safe-area-inset-bottom);width:100%}.jio-insert__grid{grid-template-columns:repeat(4,minmax(0,1fr))}.jio-creator__insert{margin-bottom:calc(26px + env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){.jio-creator *{animation:none!important;transition:none!important}}
+.jio-page-submit{background:#fafbfa}body.jio-page-submit.has-static-nav,body.jio-page-submit.nav-fixed{padding-top:0!important}.jio-page-submit .float-btn,.jio-page-submit .footer,.jio-page-submit .footer-tabbar,.jio-page-submit .header,.jio-page-submit .jio-float-buttons{display:none!important}.jio-page-submit #main-content.container{max-width:none;padding:0}#jio-creator-studio.is-ready{display:block}.jio-creator{--jc-ink:#243330;--jc-ink-soft:#5c6b66;--jc-paper:#fafbfa;--jc-line:#e2e9e5;--jc-accent:#267665;--jc-accent-strong:#1d5f52;--jc-warn:#b4573f;--jc-bar:60px;-webkit-font-smoothing:antialiased;background:var(--jc-paper);color:var(--jc-ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;min-height:100vh;min-height:100dvh;padding-top:var(--jc-bar)}.jio-creator *,.jio-creator :after,.jio-creator :before{box-sizing:border-box}.jio-creator button{color:inherit;font:inherit}.jio-creator__bar{align-items:center;background:rgba(250,251,250,.98);border-bottom:1px solid var(--jc-line);box-shadow:0 2px 8px rgba(27,46,39,.035);display:flex;gap:clamp(10px,1.7vw,24px);height:var(--jc-bar);left:0;padding:0 clamp(14px,2.4vw,30px);position:fixed;right:0;top:0;z-index:300}.jio-creator__bar-actions,.jio-creator__bar-left{align-items:center;display:flex;flex:0 0 auto;gap:9px;min-width:0}.jio-creator__bar-left{border-right:1px solid var(--jc-line);padding-right:clamp(10px,1.5vw,20px)}.jio-creator__bar-actions{gap:7px;margin-left:auto}.jio-creator__bar-brand{color:var(--jc-accent-strong);font-family:Songti SC,"Noto Serif SC","Source Han Serif SC",serif;font-size:17px;font-weight:700;letter-spacing:-.04em}.jio-creator__bar-divider{background:var(--jc-line);height:18px;width:1px}.jio-creator__bar-mode{color:var(--jc-ink-soft);font-size:13px;white-space:nowrap}.jio-creator__back{align-items:center;border-radius:7px;color:var(--jc-ink-soft);display:inline-flex;height:30px;justify-content:center;text-decoration:none;width:30px}.jio-creator__back:focus-visible,.jio-creator__back:hover{background:#edf3f0;color:var(--jc-accent);outline:0}.jio-creator__toolbar-tools{align-items:center;display:flex;flex:1 1 auto;gap:7px;min-width:0;overflow-x:auto;scrollbar-width:none}.jio-creator__toolbar-tools::-webkit-scrollbar{display:none}.jio-creator__toolbar-group{align-items:center;display:inline-flex;flex:0 0 auto;gap:2px}.jio-creator__toolbar-divider{background:var(--jc-line);flex:0 0 auto;height:22px;width:1px}.jio-creator__tool-btn{align-items:center;background:transparent;border:0;border-radius:7px;color:var(--jc-ink-soft);cursor:pointer;display:inline-flex;flex:0 0 auto;font-size:13px;gap:7px;height:34px;justify-content:center;min-width:32px;padding:0 8px}.jio-creator__tool-btn:focus-visible:not(:disabled),.jio-creator__tool-btn:hover:not(:disabled){background:#edf3f0;color:var(--jc-accent-strong);outline:0}.jio-creator__tool-btn:disabled{color:#c7d0cc;cursor:default}.jio-creator__tool-labeled span{white-space:nowrap}.jio-creator__format-select{background:transparent;border:1px solid transparent;border-radius:7px;color:var(--jc-ink-soft);flex:0 0 auto;font:inherit;font-size:13px;height:34px;padding:0 8px;width:94px}.jio-creator__format-select:focus-visible,.jio-creator__format-select:hover{background:#fff;border-color:var(--jc-line);outline:0}.jio-creator__format-select:disabled{color:#aebbb5}.jio-creator__save-draft{align-items:center;background:#fff;border:1px solid var(--jc-line);border-radius:7px;color:var(--jc-ink-soft);cursor:pointer;display:inline-flex;flex:0 0 auto;font-size:13px;gap:7px;justify-content:center;min-height:34px;padding:0 10px;white-space:nowrap}.jio-creator__save-draft:focus-visible:not(:disabled),.jio-creator__save-draft:hover:not(:disabled){background:#f7faf8;border-color:#b7cdc3;color:var(--jc-accent-strong);outline:0}.jio-creator__save-draft:disabled{cursor:default;opacity:.55}.jio-creator__save{align-items:center;color:var(--jc-ink-soft);display:inline-flex;flex:0 0 auto;font-size:12px;gap:6px;white-space:nowrap}.jio-creator__save>i{color:var(--jc-line);font-size:7px}.jio-creator__save time{font-variant-numeric:tabular-nums;opacity:.7}.jio-creator__save.is-saved>i{color:var(--jc-accent)}.jio-creator__save.is-conflict,.jio-creator__save.is-conflict>i,.jio-creator__save.is-error,.jio-creator__save.is-error>i{color:var(--jc-warn)}.jio-creator__btn,.jio-creator__ghost,.jio-creator__primary{align-items:center;border:1px solid transparent;border-radius:7px;cursor:pointer;display:inline-flex;font-size:13px;justify-content:center;min-height:34px;padding:0 13px;transition:background .18s ease,border-color .18s ease,color .18s ease;white-space:nowrap}.jio-creator__ghost{background:transparent;border-color:var(--jc-line)}.jio-creator__ghost:focus-visible,.jio-creator__ghost:hover{border-color:var(--jc-accent);color:var(--jc-accent)}.jio-creator__primary{background:var(--jc-accent);color:#fff}.jio-creator__primary:focus-visible,.jio-creator__primary:hover{background:var(--jc-accent-strong)}.jio-creator__primary:disabled{cursor:not-allowed;opacity:.5}.jio-creator__notice{align-items:center;background:#f1f5f2;border-bottom:1px solid var(--jc-line);color:var(--jc-ink-soft);display:flex;font-size:13px;gap:12px;margin:0 auto;max-width:820px;padding:10px 16px}.jio-creator__notice>span{flex:1}.jio-creator__notice button{background:transparent;border:0;color:var(--jc-accent);cursor:pointer}.jio-creator__notice.is-error{background:#fdf2ee;color:var(--jc-warn)}.jio-creator__hint{color:var(--jc-ink-soft);font-size:13px;margin:18px auto 0;max-width:820px;padding:0 clamp(16px,4vw,40px)}.jio-creator__canvas{margin:0 auto;padding:clamp(20px,4vw,44px) clamp(20px,5vw,52px) 140px;width:min(720px,100%)}.jio-creator__title{display:block;margin-bottom:6px}.jio-creator__title textarea{background:transparent;border:0;color:var(--jc-ink);font-family:Songti SC,"Noto Serif SC","Source Han Serif SC",serif;font-size:clamp(23px,2.6vw,27px);font-weight:500;letter-spacing:.01em;line-height:1.4;min-height:50px;padding:0;resize:none;width:100%}.jio-creator__title textarea:focus{outline:0}.jio-creator__title textarea::-moz-placeholder{color:#b7c2bd}.jio-creator__title textarea::placeholder{color:#b7c2bd}.jio-creator__excerpt{display:block;margin-bottom:22px}.jio-creator__excerpt>span{color:#9aa8a2;display:block;font-size:12px;letter-spacing:.02em;margin-bottom:4px}.jio-creator__excerpt textarea{background:transparent;border:0;color:var(--jc-ink-soft);font-family:inherit;font-size:14px;line-height:1.7;padding:6px 0;resize:none;width:100%}.jio-creator__excerpt textarea:focus{outline:0}.jio-creator__editor{margin:12px 0 30px;min-height:50vh;position:relative}.jio-creator__editor .mce-top-part,.jio-creator__editor .quicktags-toolbar,.jio-creator__editor .wp-editor-tabs,.jio-creator__editor .wp-media-buttons{display:none!important}.jio-creator__editor .wp-editor-container,.jio-creator__editor .wp-editor-wrap{background:transparent;border:0;box-shadow:none}.jio-creator__editor .mce-top-part,.jio-creator__editor .tox .tox-editor-header,.jio-creator__editor .tox .tox-statusbar{display:none!important}.jio-creator__editor .mce-tinymce,.jio-creator__editor .tox-tinymce{background:transparent;border:0!important;box-shadow:none!important}.jio-creator__editor .mce-container-body,.jio-creator__editor .mce-edit-area,.jio-creator__editor .tox .tox-edit-area{background:transparent;border:0!important}.jio-creator__editor .mce-edit-area iframe,.jio-creator__editor .tox .tox-edit-area__iframe{min-height:55vh}.jio-creator__editor textarea{background:transparent;border:0;color:var(--jc-ink);font:inherit;font-size:16px;line-height:1.85;min-height:55vh;padding:0;resize:vertical;width:100%}.jio-creator__footer{border-top:1px solid var(--jc-line);color:var(--jc-ink-soft);display:flex;font-size:12px;justify-content:space-between;padding-top:20px}.jio-creator__cover{margin-bottom:18px;position:relative}.jio-creator__cover.is-empty{align-items:center;background:transparent;border:1px dashed #d3ded8;border-radius:8px;color:#8c9a94;cursor:pointer;display:inline-flex;font-size:12px;gap:7px;min-height:32px;padding:0 12px;transition:border-color .16s ease,color .16s ease}.jio-creator__cover.is-empty:focus-visible,.jio-creator__cover.is-empty:hover{border-color:var(--jc-accent);color:var(--jc-accent-strong);outline:0}.jio-creator__cover-thumb{background:#eef3f0;border:0;border-radius:10px;cursor:pointer;display:block;overflow:hidden;padding:0;position:relative;width:100%}.jio-creator__cover-thumb img{aspect-ratio:2.35/1;display:block;-o-object-fit:cover;object-fit:cover;width:100%}.jio-creator__cover-thumb:focus-visible{outline:2px solid var(--jc-accent);outline-offset:2px}.jio-creator__cover-edit{align-items:center;background:linear-gradient(0deg,rgba(15,25,22,.62),rgba(15,25,22,0));color:#fff;display:flex;font-size:12px;gap:6px;inset:auto 0 0 0;justify-content:center;opacity:0;padding:8px;position:absolute;transition:opacity .16s ease}.jio-creator__cover-thumb:focus-visible .jio-creator__cover-edit,.jio-creator__cover-thumb:hover .jio-creator__cover-edit{opacity:1}.jio-creator__cover-clear{background:rgba(15,25,22,.55);border:0;border-radius:50%;color:#fff;cursor:pointer;height:28px;position:absolute;right:8px;top:8px;width:28px}.jio-creator__cover-clear:focus-visible,.jio-creator__cover-clear:hover{background:rgba(15,25,22,.78);outline:0}.jio-creator__author{align-items:center;color:#8c9a94;display:flex;font-size:12px;gap:8px;margin:2px 0 20px}.jio-creator__author-avatar{border-radius:50%;flex:0 0 auto;height:24px;-o-object-fit:cover;object-fit:cover;width:24px}.jio-creator__author-avatar.is-placeholder{align-items:center;background:#e3ece7;color:#4a5f57;display:inline-flex;font-size:11px;font-weight:600;justify-content:center}.jio-creator__author-name{color:#4a5f57;font-weight:500}.jio-creator__author-meta{background:#eef5f2;border-radius:4px;color:#3c7d6c;font-size:11px;padding:1px 6px}.jio-creator__author-hint{color:#b0bcb7;margin-left:auto}.jio-creator-drawer{display:flex;inset:0;justify-content:flex-end;position:fixed;z-index:500}.jio-creator-drawer__backdrop{background:rgba(23,34,31,.32);border:0;cursor:default;inset:0;position:absolute}.jio-creator-drawer__panel{background:#fff;box-shadow:-20px 0 60px rgba(20,32,28,.16);display:flex;flex-direction:column;height:100%;position:relative;width:min(460px,100%)}.jio-creator-drawer__head{align-items:center;border-bottom:1px solid #e2e9e5;display:flex;justify-content:space-between;padding:20px 24px}.jio-creator-drawer__head h2{font-size:17px;font-weight:600;margin:0}.jio-creator-drawer__close{background:transparent;border:0;color:#5c6b66;cursor:pointer}.jio-creator-drawer__body{flex:1;overflow-y:auto;padding:20px 24px 32px}.jio-creator-drawer__note{background:#f2f7f4;border-left:3px solid #267665;color:#5c6b66;font-size:13px;line-height:1.6;margin:0 0 20px;padding:12px 14px}.jio-creator-drawer__foot{background:#fff;border-top:1px solid #e2e9e5;display:flex;flex-direction:column;gap:12px;padding:16px 24px calc(16px + env(safe-area-inset-bottom))}.jio-creator-drawer__foot .jio-creator-primary{flex:1}.jio-creator-drawer__actions{align-items:center;display:flex;gap:12px}.jio-creator-drawer__captcha{min-height:40px}.jio-creator-field{margin-bottom:26px}.jio-creator-field>h3{color:#243330;font-size:13px;font-weight:600;margin:0 0 10px}.jio-creator-muted{color:#5c6b66;font-size:12px;line-height:1.6;margin:0}.jio-creator-error{color:#b4573f;font-size:12px;margin:8px 0 0}.jio-creator-chips{display:flex;flex-wrap:wrap;gap:8px}.jio-creator-chip{align-items:center;border:1px solid #e2e9e5;border-radius:999px;color:#5c6b66;cursor:pointer;display:inline-flex;font-size:13px;gap:6px;padding:5px 12px}.jio-creator-chip input{clip:rect(0,0,0,0);height:1px;overflow:hidden;position:absolute;width:1px}.jio-creator-chip.is-active{background:#eef5f2;border-color:#267665;color:#1d5f52}.jio-creator-chip button{background:transparent;border:0;color:inherit;cursor:pointer}.jio-creator-inline{display:flex;gap:8px;margin-top:10px}.jio-creator-inline input:not([type]),.jio-creator-inline input[type=text]{border:1px solid #e2e9e5;border-radius:8px;flex:1;height:36px;min-width:0;padding:0 12px}.jio-creator-inline label{align-items:center;display:inline-flex;font-size:13px;gap:6px}.jio-creator-switch{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.jio-creator-switch h3{font-size:13px;margin:0 0 4px}.jio-creator-toggle{flex:0 0 auto;position:relative}.jio-creator-toggle input{height:1px;opacity:0;position:absolute;width:1px}.jio-creator-toggle span{background:#d6dfda;border-radius:999px;display:block;height:24px;transition:background .18s ease;width:42px}.jio-creator-toggle span:after{background:#fff;border-radius:50%;content:"";display:block;height:18px;margin:3px;transition:transform .18s ease;width:18px}.jio-creator-toggle input:checked+span{background:#267665}.jio-creator-toggle input:checked+span:after{transform:translateX(18px)}.jio-creator-toggle input:focus-visible+span{outline:2px solid #267665;outline-offset:2px}.jio-creator-pay{background:#fcfdfc;border:1px solid #e2e9e5;border-radius:10px;margin-top:16px;padding:16px}.jio-creator-input{align-items:center;display:flex;font-size:13px;gap:12px;justify-content:space-between;margin-top:12px}.jio-creator-input input{border:1px solid #e2e9e5;border-radius:8px;height:36px;padding:0 12px;text-align:right;width:140px}.jio-creator-cover{border-radius:10px;overflow:hidden;position:relative}.jio-creator-cover img{aspect-ratio:2/1;display:block;-o-object-fit:cover;object-fit:cover;width:100%}.jio-creator-cover button{background:rgba(0,0,0,.55);border:0;border-radius:50%;color:#fff;cursor:pointer;height:30px;position:absolute;right:8px;top:8px;width:30px}.jio-creator-cover-empty{align-items:center;background:#fafcfb;border:1px dashed #e2e9e5;border-radius:10px;color:#5c6b66;cursor:pointer;display:flex;flex-direction:column;font-size:13px;gap:8px;justify-content:center;min-height:120px}.jio-creator-cover-empty input{height:1px;opacity:0;position:absolute;width:1px}.jio-creator-attachments{border-top:1px solid #e2e9e5;margin-top:18px;padding-top:16px}.jio-creator-attachments__head{align-items:center;display:flex;gap:12px;justify-content:space-between}.jio-creator-attachments__head h4{font-size:13px;margin:0}.jio-creator-upload{align-items:center;border:1px solid #e2e9e5;border-radius:8px;color:#1d5f52;cursor:pointer;display:inline-flex;font-size:12px;min-height:32px;padding:0 12px}.jio-creator-upload input{height:1px;opacity:0;position:absolute;width:1px}.jio-creator-files{list-style:none;margin:12px 0 0;padding:0}.jio-creator-files li{align-items:center;border-bottom:1px solid #f0f4f1;display:flex;font-size:13px;gap:10px;padding:8px 0}.jio-creator-files button{background:transparent;border:0;color:#5c6b66;cursor:pointer;margin-left:auto}.jio-creator-files__name{align-items:center;display:inline-flex;gap:8px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jio-creator-files__name i{color:#267665}.jio-creator-reuse{font-size:13px;margin-top:14px}.jio-creator-reuse summary{color:#5c6b66;cursor:pointer}.jio-creator-reuse ul{list-style:none;margin:10px 0 0;padding:0}.jio-creator-reuse li{align-items:center;display:flex;gap:10px;padding:6px 0}.jio-creator-reuse button{background:#fff;border:1px solid #e2e9e5;border-radius:6px;cursor:pointer;margin-left:auto}.jio-creator-link{background:transparent;border:0;color:var(--jc-ink-soft,#5c6b66);cursor:pointer;font-size:13px;text-decoration:underline}@media(max-width:767px){.jio-creator{--jc-bar:56px}.jio-creator__bar{gap:7px;padding:0 8px}.jio-creator__bar-left{gap:5px;padding-right:7px}.jio-creator__bar-divider,.jio-creator__bar-mode{display:none}.jio-creator__bar-brand{font-size:15px}.jio-creator__bar-actions{gap:5px}.jio-creator__toolbar-tools{gap:4px}.jio-creator__toolbar-group{gap:0}.jio-creator__tool-btn{min-width:30px;padding:0 6px}.jio-creator__tool-labeled span{display:none}.jio-creator__format-select{padding:0 5px;width:82px}.jio-creator__bar-actions .jio-creator__save{display:none}.jio-creator__save-draft{font-size:0;min-width:34px;padding:0;width:34px}.jio-creator__save-draft i{font-size:13px}.jio-creator__preview{font-size:12px;min-height:32px;padding:0 8px}.jio-creator__primary{font-size:12px;min-height:32px;padding:0 10px}.jio-creator__ghost{padding:0 8px}.jio-creator__canvas{padding:20px 16px calc(120px + env(safe-area-inset-bottom))}.jio-creator__title textarea{font-size:24px}.jio-creator__editor .mce-edit-area iframe,.jio-creator__editor .tox .tox-edit-area__iframe{min-height:48vh}.jio-creator-drawer{display:block}.jio-creator-drawer__backdrop{display:none}.jio-creator-drawer__panel{border-radius:0;box-shadow:none;height:100dvh;width:100%}.jio-creator-drawer__foot{background:#fff;bottom:0;position:sticky}}@media(prefers-reduced-motion:reduce){.jio-creator *{animation:none!important;transition:none!important}}
diff --git a/assets/creator-studio/build/index.js b/assets/creator-studio/build/index.js
index e374a633..17b062c7 100644
--- a/assets/creator-studio/build/index.js
+++ b/assets/creator-studio/build/index.js
@@ -1 +1 @@
-(()=>{"use strict";const e={n:t=>{const a=t&&t.__esModule?()=>t.default:()=>t;return e.d(a,{a}),a},d:(t,a)=>{for(var r in a)e.o(a,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:a[r]})},o:(e,t)=>Object.hasOwn(e,t)},t=window.React,a=window.wp.element,r=window.wp.blocks,n=window.wp.blockLibrary,o=window.wp.data,i=window.wp.blockEditor,c=window.wp.wordcount,l=window.wp.i18n;function s(e,t){const a=e&&(e.message||e.error)||(401===t?"登录状态已失效,请刷新页面重新登录。":"请求失败,请稍后重试。"),r=new Error(String(a));return r.status=t,r.code=e&&e.code?String(e.code):"",r.data=e,r}async function u(e){try{return await e.json()}catch(e){return null}}async function m(e,t,a){const r=await fetch(e,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json","X-WP-Nonce":a},body:JSON.stringify(t)}),n=await u(r);if(!r.ok)throw s(n,r.status);return n}async function d(e,t,a,r={}){const n=new FormData;n.append("file",t),Object.entries(r).forEach(([e,t])=>n.append(e,t));const o=await fetch(e,{method:"POST",credentials:"same-origin",headers:{"X-WP-Nonce":a},body:n}),i=await u(o);if(!o.ok)throw s(i,o.status);return i}const p=window.wp.apiFetch;var _=e.n(p);const f=window.wp.hooks,b=window.wp.compose,j=window.wp.components,y=[{key:"half",label:(0,l.__)("半屏","jio"),className:"jio-img-w--half"},{key:"medium",label:(0,l.__)("中等","jio"),className:"jio-img-w--medium"},{key:"wide",label:(0,l.__)("通栏","jio"),className:"jio-img-w--wide"},{key:"full",label:(0,l.__)("全宽","jio"),className:"jio-img-w--full"}];function E(e){return a=>{if("core/image"!==a.name)return(0,t.createElement)(e,{...a});const r=String(a.attributes?.className||""),n=function(e){const t=y.find(t=>(e||"").split(/\s+/).includes(t.className));return t?t.key:"wide"}(r);return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(e,{...a}),(0,t.createElement)(i.BlockControls,{group:"inline"},(0,t.createElement)(j.ToolbarGroup,{controls:y.map(e=>({title:e.label,children:e.label,isActive:n===e.key,onClick:()=>(e=>{const t=r.split(/\s+/).filter(e=>e&&!y.some(t=>t.className===e));a.setAttributes({className:[...t,e.className].join(" ")})})(e)}))})))}}const g=window.jioCreatorStudio||{},h=g.nonce||"";function w(e){const{draft:r,setDraft:n,capabilities:o,limits:i,taxonomy:c,isPublishedEdit:s,onClose:u,onSaveDraft:m,onSubmit:p,privateStorage:_,privateUploads:f,saving:b,captcha:j}=e,[y,E]=(0,a.useState)(""),[w,v]=(0,a.useState)(""),[N,k]=(0,a.useState)(!1),C=(0,a.useRef)(null),S=(0,a.useRef)(null),x=(0,a.useRef)(null);(0,a.useEffect)(()=>{const e=x.current,t=document.getElementById("jio-creator-captcha");if(!e||!t)return;const a=t.parentElement;return e.appendChild(t),t.removeAttribute("hidden"),()=>{a&&(a.appendChild(t),t.setAttribute("hidden",""))}},[]);const I=(0,a.useMemo)(()=>(r.title||"").trim().length,[r.title])>=Number(i.titleMin||1),L=()=>{const e=y.trim();if(!e)return;const t=e.split(/[,,\n]+/u).map(e=>e.trim()).filter(Boolean);n({tags:Array.from(new Set([...r.tags,...t]))}),E("")};return(0,t.createElement)("div",{className:"jio-creator-drawer",role:"dialog","aria-modal":"true","aria-labelledby":"jio-creator-publish-title"},(0,t.createElement)("button",{type:"button",className:"jio-creator-drawer__backdrop","aria-label":(0,l.__)("关闭","jio"),onClick:u}),(0,t.createElement)("div",{className:"jio-creator-drawer__panel"},(0,t.createElement)("header",{className:"jio-creator-drawer__head"},(0,t.createElement)("h2",{id:"jio-creator-publish-title"},s?(0,l.__)("提交改稿","jio"):(0,l.__)("发布文章","jio")),(0,t.createElement)("button",{type:"button",className:"jio-creator-drawer__close",onClick:u,"aria-label":(0,l.__)("关闭","jio")},(0,t.createElement)("i",{className:"fa fas fa-times","aria-hidden":"true"}))),(0,t.createElement)("div",{className:"jio-creator-drawer__body"},s&&(0,t.createElement)("p",{className:"jio-creator-drawer__note"},(0,l.__)("审核通过前,读者看到的仍然是当前线上版本。","jio")),(0,t.createElement)("section",{className:"jio-creator-field"},(0,t.createElement)("h3",null,(0,l.__)("封面","jio")),r.featured?.data?.url?(0,t.createElement)("div",{className:"jio-creator-cover"},(0,t.createElement)("img",{src:String(r.featured.data.url),alt:""}),(0,t.createElement)("button",{type:"button",onClick:()=>n({featured:{type:"",data:{}}}),"aria-label":(0,l.__)("移除封面","jio")},(0,t.createElement)("i",{className:"fa fas fa-times","aria-hidden":"true"}))):o.canUploadImage?(0,t.createElement)("label",{className:"jio-creator-cover-empty"},(0,t.createElement)("input",{ref:C,type:"file",accept:"image/*",onChange:()=>{(async()=>{const e=C.current?.files?.[0];if(e&&g.media?.uploadUrl?.image){v(""),k(!0);try{const t=await d(g.media.uploadUrl.image,e,h),a=Number(t.attachment_id||t.id||0),r=String(t.url||"");if(!a||!r)throw new Error((0,l.__)("上传后无法读取图片。","jio"));n({featured:{type:"image",mediaId:a,data:{id:a,url:r}}})}catch(e){v(String(e?.message||(0,l.__)("上传失败","jio")))}finally{k(!1)}}})()},disabled:N}),(0,t.createElement)("i",{className:"fa fas fa-plus","aria-hidden":"true"}),(0,t.createElement)("span",null,N?(0,l.__)("上传中…","jio"):(0,l.__)("上传封面","jio"))):(0,t.createElement)("p",{className:"jio-creator-muted"},(0,l.__)("当前账号不能设置封面。","jio"))),(0,t.createElement)("section",{className:"jio-creator-field"},(0,t.createElement)("h3",null,(0,l.__)("分类","jio")),(0,t.createElement)("div",{className:"jio-creator-chips"},0===c.categories.length&&(0,t.createElement)("span",{className:"jio-creator-muted"},(0,l.__)("暂无可选分类","jio")),c.categories.map(e=>(0,t.createElement)("label",{key:e.id,className:"jio-creator-chip"+(r.categories.includes(e.id)?" is-active":"")},(0,t.createElement)("input",{type:"checkbox",checked:r.categories.includes(e.id),onChange:()=>(e=>{const t=r.categories.includes(e);n({categories:t?r.categories.filter(t=>t!==e):[...r.categories,e]})})(e.id)}),(0,t.createElement)("span",null,e.name))))),c.tags&&(0,t.createElement)("section",{className:"jio-creator-field"},(0,t.createElement)("h3",null,(0,l.__)("标签","jio")),(0,t.createElement)("div",{className:"jio-creator-chips"},r.tags.map(e=>(0,t.createElement)("span",{key:e,className:"jio-creator-chip is-active"},(0,t.createElement)("span",null,e),(0,t.createElement)("button",{type:"button",onClick:()=>n({tags:r.tags.filter(t=>t!==e)}),"aria-label":(0,l.sprintf)((0,l.__)("移除标签 %s","jio"),e)},(0,t.createElement)("i",{className:"fa fas fa-times","aria-hidden":"true"}))))),(0,t.createElement)("div",{className:"jio-creator-inline"},(0,t.createElement)("input",{type:"text",value:y,placeholder:(0,l.__)("输入标签,逗号分隔","jio"),onChange:e=>E(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),L())}}),(0,t.createElement)("button",{type:"button",onClick:L},(0,l.__)("添加","jio")))),c.customDefs.map(e=>(0,t.createElement)("section",{className:"jio-creator-field",key:e.key},(0,t.createElement)("h3",null,e.name),(0,t.createElement)("div",{className:"jio-creator-chips"},e.values.map(a=>{const o=r.custom[e.key]||[],i=o.includes(a.key);return(0,t.createElement)("label",{key:a.key,className:"jio-creator-chip"+(i?" is-active":"")},(0,t.createElement)("input",{type:"checkbox",checked:i,onChange:()=>n({custom:{...r.custom,[e.key]:i?o.filter(e=>e!==a.key):[...o,a.key]}})}),(0,t.createElement)("span",null,a.name))})))),o.canPay&&(0,t.createElement)("section",{className:"jio-creator-field"},(0,t.createElement)("div",{className:"jio-creator-switch"},(0,t.createElement)("div",null,(0,t.createElement)("h3",null,(0,l.__)("付费内容","jio")),(0,t.createElement)("p",{className:"jio-creator-muted"},(0,l.__)("开启后,未购买读者只能看到免费部分。","jio"))),(0,t.createElement)("label",{className:"jio-creator-toggle"},(0,t.createElement)("input",{type:"checkbox",checked:r.pay.enabled,onChange:e=>n({pay:{...r.pay,enabled:e.target.checked}})}),(0,t.createElement)("span",{"aria-hidden":"true"}))),r.pay.enabled&&(0,t.createElement)("div",{className:"jio-creator-pay"},(0,t.createElement)("div",{className:"jio-creator-inline"},(0,t.createElement)("label",null,(0,t.createElement)("input",{type:"radio",checked:"cash"===r.pay.modo,onChange:()=>n({pay:{...r.pay,modo:"cash"}})}),(0,t.createElement)("span",null,(0,l.__)("现金","jio"))),(0,t.createElement)("label",null,(0,t.createElement)("input",{type:"radio",checked:"points"===r.pay.modo,onChange:()=>n({pay:{...r.pay,modo:"points"}})}),(0,t.createElement)("span",null,(0,l.__)("积分","jio")))),"cash"===r.pay.modo?(0,t.createElement)("label",{className:"jio-creator-input"},(0,t.createElement)("span",null,(0,l.__)("价格","jio")),(0,t.createElement)("input",{type:"number",min:Number(i.priceMin||0),step:"0.01",value:r.pay.price,onChange:e=>n({pay:{...r.pay,price:e.target.value}})})):(0,t.createElement)("label",{className:"jio-creator-input"},(0,t.createElement)("span",null,(0,l.__)("积分价格","jio")),(0,t.createElement)("input",{type:"number",min:0,step:"1",value:r.pay.points,onChange:e=>n({pay:{...r.pay,points:Number(e.target.value)||0}})})),o.canPayDownload&&(0,t.createElement)("div",{className:"jio-creator-attachments"},(0,t.createElement)("div",{className:"jio-creator-attachments__head"},(0,t.createElement)("h4",null,(0,l.__)("资料附件","jio")),_?(0,t.createElement)("label",{className:"jio-creator-upload"},(0,t.createElement)("input",{ref:S,type:"file",onChange:()=>{(async()=>{const e=S.current?.files?.[0];if(e){v(""),k(!0);try{const t=await d(g.creator.privateUrl,e,h,{post_id:String(r.postId||0)}),a={type:"protected",assetKey:String(t.asset_key||""),fileName:String(t.name||e.name),sizeBytes:Number(t.size||e.size),sizeLabel:String(t.size_label||""),label:""};n({pay:{...r.pay,enabled:!0,downloads:[...r.pay.downloads,a]}}),S.current&&(S.current.value="")}catch(e){v(String(e?.message||(0,l.__)("资料上传失败","jio")))}finally{k(!1)}}})()},disabled:N}),(0,t.createElement)("span",null,N?(0,l.__)("上传中…","jio"):(0,l.__)("添加 PDF / ZIP","jio"))):(0,t.createElement)("p",{className:"jio-creator-muted"},(0,l.__)("私有附件存储尚未配置,暂时不能上传付费资料。","jio"))),w&&(0,t.createElement)("p",{className:"jio-creator-error"},w),r.pay.downloads.length>0&&(0,t.createElement)("ul",{className:"jio-creator-files"},r.pay.downloads.map((e,a)=>(0,t.createElement)("li",{key:`${e.assetKey||e.url}-${a}`},(0,t.createElement)("span",{className:"jio-creator-files__name"},e.assetKey?(0,t.createElement)(t.Fragment,null,(0,t.createElement)("i",{className:"fa fas fa-lock","aria-hidden":"true"}),e.fileName||e.label||(0,l.__)("受保护资料","jio")):(0,t.createElement)(t.Fragment,null,(0,t.createElement)("i",{className:"fa fas fa-link","aria-hidden":"true"}),e.label||e.url)),e.sizeLabel&&(0,t.createElement)("span",{className:"jio-creator-muted"},e.sizeLabel),(0,t.createElement)("button",{type:"button",onClick:()=>(e=>{n({pay:{...r.pay,downloads:r.pay.downloads.filter((t,a)=>a!==e)}})})(a),"aria-label":(0,l.__)("移除","jio")},(0,t.createElement)("i",{className:"fa fas fa-times","aria-hidden":"true"}))))),f.length>0&&(0,t.createElement)("details",{className:"jio-creator-reuse"},(0,t.createElement)("summary",null,(0,l.__)("从已上传资料中选择","jio")),(0,t.createElement)("ul",null,f.filter(e=>!r.pay.downloads.some(t=>t.assetKey===e.assetKey)).map(e=>(0,t.createElement)("li",{key:e.assetKey},(0,t.createElement)("span",null,e.fileName),(0,t.createElement)("span",{className:"jio-creator-muted"},e.sizeLabel),(0,t.createElement)("button",{type:"button",onClick:()=>n({pay:{...r.pay,enabled:!0,downloads:[...r.pay.downloads,{...e,type:"protected"}]}})},(0,l.__)("使用","jio"))))))))),!o.canPay&&o.canSaveDraft&&(0,t.createElement)("p",{className:"jio-creator-muted"},(0,l.__)("当前账号不能设置付费内容。","jio"))),(0,t.createElement)("footer",{className:"jio-creator-drawer__foot"},j&&(0,t.createElement)("div",{className:"jio-creator-drawer__captcha",ref:x}),(0,t.createElement)("div",{className:"jio-creator-drawer__actions"},(0,t.createElement)("button",{type:"button",className:"jio-creator-ghost",onClick:m,disabled:b},(0,l.__)("保存草稿","jio")),(0,t.createElement)("button",{type:"button",className:"jio-creator-primary",onClick:()=>p(!1),disabled:b||!I},s?(0,l.__)("提交审核","jio"):o.canPublishNow?(0,l.__)("发布","jio"):(0,l.__)("提交审核","jio")),o.canPublishNow&&(0,t.createElement)("button",{type:"button",className:"jio-creator-link",onClick:()=>p(!0),disabled:b||!I},(0,l.__)("立即发布","jio"))))))}function v({featured:e,canEdit:a,onOpen:r,onClear:n}){const o="string"==typeof e?.data?.url?e.data.url:"";return a?o?(0,t.createElement)("div",{className:"jio-creator__cover"},(0,t.createElement)("button",{type:"button",className:"jio-creator__cover-thumb",onClick:r},(0,t.createElement)("img",{src:o,alt:""}),(0,t.createElement)("span",{className:"jio-creator__cover-edit"},(0,t.createElement)("i",{className:"fa fas fa-pen","aria-hidden":"true"}),(0,l.__)("更换封面","jio"))),(0,t.createElement)("button",{type:"button",className:"jio-creator__cover-clear",onClick:n,"aria-label":(0,l.__)("移除封面","jio")},(0,t.createElement)("i",{className:"fa fas fa-times","aria-hidden":"true"}))):(0,t.createElement)("button",{type:"button",className:"jio-creator__cover is-empty",onClick:r},(0,t.createElement)("i",{className:"fa far fa-image","aria-hidden":"true"}),(0,t.createElement)("span",null,(0,l.__)("添加封面","jio"))):null}function N({author:e}){const a="string"==typeof e?.name?e.name.trim():"";if(""===a)return null;const r="string"==typeof e?.avatar?e.avatar:"",n="string"==typeof e?.meta?e.meta:"";return(0,t.createElement)("div",{className:"jio-creator__author"},""!==r?(0,t.createElement)("img",{className:"jio-creator__author-avatar",src:r,alt:"",width:24,height:24}):(0,t.createElement)("span",{className:"jio-creator__author-avatar is-placeholder","aria-hidden":"true"},a.slice(0,1)),(0,t.createElement)("span",{className:"jio-creator__author-name"},a),""!==n&&(0,t.createElement)("span",{className:"jio-creator__author-meta"},n),(0,t.createElement)("span",{className:"jio-creator__author-hint"},(0,l.__)("原创内容","jio")))}function k({groups:e,onInsert:r,onClose:n}){const o=(0,a.useRef)(null),i=(0,a.useRef)(null),c=(0,a.useMemo)(()=>e.flatMap(e=>e.items),[e]);return(0,a.useEffect)(()=>{i.current?.focus();const e=e=>{if("Escape"===e.key)return e.preventDefault(),void n();if(!["ArrowRight","ArrowLeft","ArrowDown","ArrowUp"].includes(e.key))return;const t=Array.from(o.current?.querySelectorAll(".jio-insert-item")||[]),a=t.indexOf(document.activeElement);if(-1===a)return;e.preventDefault();const r=window.innerWidth<=767?4:6,i="ArrowRight"===e.key?1:"ArrowLeft"===e.key?-1:"ArrowDown"===e.key?r:-r,c=Math.min(t.length-1,Math.max(0,a+i));t[c]?.focus()};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[n]),(0,t.createElement)("div",{className:"jio-insert",role:"dialog","aria-modal":"true","aria-label":(0,l.__)("添加内容","jio")},(0,t.createElement)("button",{type:"button",className:"jio-insert__backdrop","aria-label":(0,l.__)("关闭","jio"),onClick:n}),(0,t.createElement)("div",{className:"jio-insert__panel",ref:o},(0,t.createElement)("header",{className:"jio-insert__head"},(0,t.createElement)("h2",null,(0,l.__)("添加内容","jio")),(0,t.createElement)("button",{type:"button",className:"jio-insert__close",onClick:n,ref:i,"aria-label":(0,l.__)("关闭","jio")},(0,t.createElement)("i",{className:"fa fas fa-times","aria-hidden":"true"}))),(0,t.createElement)("div",{className:"jio-insert__body"},e.map(e=>0===e.items.length?null:(0,t.createElement)("section",{className:"jio-insert__group",key:e.label},(0,t.createElement)("h3",null,e.label),(0,t.createElement)("div",{className:"jio-insert__grid"},e.items.map(e=>(0,t.createElement)("button",{key:e.name,type:"button",className:"jio-insert-item",onClick:()=>r(e)},(0,t.createElement)("span",{className:"jio-insert-item__icon","aria-hidden":"true"},(0,t.createElement)("i",{className:e.icon})),(0,t.createElement)("span",{className:"jio-insert-item__label"},e.title)))))),0===c.length&&(0,t.createElement)("p",{className:"jio-creator-muted"},(0,l.__)("当前账号没有可插入的内容类型。","jio")))))}const C={ready:(0,l.__)("尚未保存","jio"),saving:(0,l.__)("保存中…","jio"),saved:(0,l.__)("已保存","jio"),error:(0,l.__)("保存失败","jio"),conflict:(0,l.__)("内容已在别处更新","jio"),submitting:(0,l.__)("提交中…","jio"),submitted:(0,l.__)("已提交","jio")};function S({value:e}){return(0,t.createElement)("span",{className:`jio-creator__save is-${e.state}`,role:"status","aria-live":"polite"},(0,t.createElement)("i",{className:"fa fas fa-circle","aria-hidden":"true"}),(0,t.createElement)("span",null,C[e.state]||C.ready),"saved"===e.state&&e.at?(0,t.createElement)("time",null,e.at):null)}function x(e){return JSON.parse(JSON.stringify(e))}function I(e){const t=x(e);return{value:t,signature:JSON.stringify(t)}}function L(e){const t=(e.downloads||[]).map(e=>{const t="string"==typeof e.assetKey?e.assetKey:"";if(t)return{type:"protected",asset_key:t,label:"string"==typeof e.label?e.label:""};const a="string"==typeof e.url?e.url.trim():"";return a?{type:"direct",url:a,label:"string"==typeof e.label?e.label:"",extract_code:"string"==typeof e.extractCode?e.extractCode:""}:null}).filter(Boolean);return{enabled:!!e.enabled,fields:{pay_type:e.enabled?t.length>0?"download":"reading":"no",pay_modo:"points"===e.modo?"points":"0",price:"points"===e.modo?"0.00":String(e.price||"0.00"),points_price:"points"===e.modo?Math.max(0,Number(e.points)||0):0,vip1_price:"points"===e.modo?"0.00":String(e.vip1Price||"0.00"),vip2_price:"points"===e.modo?"0.00":String(e.vip2Price||"0.00"),pay_limit:Number(e.payLimit)||0,downloads:t}}}window.__jioCoreBlocksRegistered||"function"!=typeof n.registerCoreBlocks||((0,n.registerCoreBlocks)(),window.__jioCoreBlocksRegistered=!0);const M=window.jioCreatorStudio||{},R=M.nonce||"",D=`jio-studio-${M.sourceId||0}`;function P(){const e=M.pay||{},t=M.categories&&M.categories.selected||[],a=M.tags&&M.tags.items||[];return{postId:Number(M.sourceId||0),versionId:Number(M.versionId||0),rev:Number(M.versionRev||0),title:String(M.title||""),excerpt:String(M.excerpt||""),content:String(M.content||""),categories:t.map(Number),tags:a.slice(),custom:M.custom||{},featured:M.featured||{type:"",data:{}},pay:{enabled:!!e.enabled,modo:"points"===e.payModo?"points":"cash",price:String(e.price||"0.00"),points:Number(e.points||0),vip1Price:String(e.vip1Price||"0.00"),vip2Price:String(e.vip2Price||"0.00"),payLimit:Number(e.payLimit||0),downloads:Array.isArray(e.downloads)?e.downloads:[]}}}function U(){const[e,n]=(0,a.useState)(P),[s,u]=(0,a.useState)(()=>(0,r.parse)(e.content||"")),d=(0,a.useRef)(s);d.current=s;const p=(0,a.useRef)(e);p.current=e;const[_,f]=(0,a.useState)(()=>({state:M.sourceId||M.versionId||M.content?"saved":"ready",at:""})),[b,j]=(0,a.useState)(!1),[y,E]=(0,a.useState)(!1),[g,h]=(0,a.useState)(null),[C,U]=(0,a.useState)(null),O=(0,a.useRef)(!1),A=(0,a.useRef)(""),B=(0,a.useCallback)(e=>{O.current=!0,d.current=e.blocks,A.current=(0,r.serialize)(e.blocks),u(e.blocks);const t={...p.current,title:e.title,excerpt:e.excerpt};p.current=t,n(t)},[]),T=function({initial:e,onRestore:t,limit:r=80,mergeDelay:n=450}){const o=(0,a.useRef)({past:[],future:[],present:I(e),pending:null}),i=(0,a.useRef)(null),c=(0,a.useRef)(t);c.current=t;const[l,s]=(0,a.useState)({canUndo:!1,canRedo:!1}),u=(0,a.useCallback)(()=>{s({canUndo:o.current.past.length>0||null!==o.current.pending,canRedo:o.current.future.length>0})},[]),m=(0,a.useCallback)(()=>{null!==i.current&&(window.clearTimeout(i.current),i.current=null);const e=o.current;if(null===e.pending)return;const t=I(e.pending);e.pending=null,t.signature!==e.present.signature?(e.past=[...e.past,e.present].slice(-r),e.present=t,e.future=[],u()):u()},[r,u]),d=(0,a.useCallback)(e=>{o.current.pending=x(e),null!==i.current&&window.clearTimeout(i.current),i.current=window.setTimeout(m,n),u()},[m,n,u]),p=(0,a.useCallback)(()=>{m();const e=o.current;if(!e.past.length)return!1;const t=e.past[e.past.length-1];return e.past=e.past.slice(0,-1),e.future=[e.present,...e.future].slice(0,r),e.present=t,c.current(x(t.value)),u(),!0},[m,r,u]),_=(0,a.useCallback)(()=>{m();const e=o.current;if(!e.future.length)return!1;const t=e.future[0];return e.future=e.future.slice(1),e.past=[...e.past,e.present].slice(-r),e.present=t,c.current(x(t.value)),u(),!0},[m,r,u]);return(0,a.useEffect)(()=>()=>{null!==i.current&&window.clearTimeout(i.current)},[]),{...l,record:d,undo:p,redo:_,flush:m}}({initial:{blocks:s,title:e.title,excerpt:e.excerpt},onRestore:B}),z=(0,a.useRef)(T);z.current=T;const F=(0,a.useCallback)(()=>z.current.undo(),[]),K=(0,a.useCallback)(()=>z.current.redo(),[]);(0,a.useEffect)(()=>{const e=e=>{if(!e.metaKey&&!e.ctrlKey||"z"!==e.key.toLowerCase())return;const t=e.target;t?.closest('input, textarea, [contenteditable="true"]')||(e.preventDefault(),e.shiftKey?K():F())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[K,F]);const J=M.capabilities||{},W={titleMin:Number(M.limits?.titleMin||1),titleMax:Number(M.limits?.titleMax||30),titlePlaceholder:String(M.limits?.titlePlaceholder||(0,l.__)("请输入标题","jio")),priceMin:Number(M.pay?.priceMin||0),priceMax:Number(M.pay?.priceMax||0),pointsMin:Number(M.pay?.pointsMin||0),pointsMax:Number(M.pay?.pointsMax||0)},$=!!M.isPublished,X=(0,a.useCallback)(e=>{O.current=!0;const t={...p.current,...e};p.current=t,("title"in e||"excerpt"in e)&&z.current.record({blocks:d.current,title:t.title,excerpt:t.excerpt}),n(t)},[]),q=(0,a.useCallback)(e=>{O.current=!0,d.current=e;const t=(0,r.serialize)(e);if(""!==A.current&&t===A.current)return A.current="",void u(e);z.current.record({blocks:e,title:p.current.title,excerpt:p.current.excerpt}),u(e)},[]),V=(0,a.useMemo)(()=>(0,r.serialize)(s),[s]),G=(0,a.useMemo)(()=>{const e=V.replace(/<[^>]*>/g," ");return(0,c.count)(e,"characters_excluding_spaces",{})},[V]),H=(0,a.useCallback)((t={})=>({post_id:e.postId,version_id:e.versionId,rev:e.rev,title:e.title,excerpt:e.excerpt,content:V,categories:e.categories,tags:e.tags,custom:e.custom,featured:e.featured,pay:L(e.pay),...t}),[e,V]),Z=(0,a.useCallback)(async(t=!1)=>{if(!O.current&&(e.postId>0||e.versionId>0))return!0;const a=""!==e.title.trim()||""!==V.replace(/<[^>]*>/g,"").trim();if(t&&!a)return!0;f({state:"saving",at:""});try{const a=await m(M.creator.saveUrl,H({autosave:t}),R),r=Number(a.post_id||e.postId||0),o=Number(a.version_id||e.versionId||0),i=Number(a.rev||a.versionRev||e.rev||0);O.current=!1;const c={...p.current,postId:r,versionId:o,rev:i};return p.current=c,n(c),f({state:"saved",at:(new Date).toLocaleTimeString()}),!0}catch(e){return f({state:409===e?.status?"conflict":"error",at:""}),!1}},[H,e.postId,e.versionId,e.rev]),Q=(0,a.useCallback)(async e=>{if(await Z(!1)){f({state:"submitting",at:""});try{let t="";const a=window.JioCaptcha;if(M.captcha?.enabled&&a&&"function"==typeof a.run){const e=await a.run("front_submit");if(null===e)return f({state:"ready",at:""}),void h({tone:"error",text:(0,l.__)("请先完成人机验证","jio")});t=String(e?.jio_captcha_proof||"")}const r=await m(M.creator.submitUrl,H({post_id:p.current.postId,version_id:p.current.versionId,rev:p.current.rev,publish_now:e,captcha_proof:t}),R);O.current=!1,f({state:"submitted",at:""}),h({tone:"ok",text:String(r.message||(0,l.__)("已提交","jio"))}),j(!1);const n=r.url||r.goto||M.urls?.center;n&&window.setTimeout(()=>{window.location.href=n},900)}catch(e){f({state:"error",at:""}),h({tone:"error",text:String(e?.message||(0,l.__)("提交失败","jio"))})}}else h({tone:"error",text:(0,l.__)("内容保存失败,请重试后再提交","jio")})},[H,Z]),Y=(0,a.useCallback)(async()=>{if(await Z(!1))try{const e=await m(M.creator.previewUrl,{post_id:p.current.postId,version_id:p.current.versionId},R);e.url&&window.open(String(e.url),"_blank","noopener")}catch(e){h({tone:"error",text:String(e?.message||(0,l.__)("预览失败","jio"))})}},[e.postId,e.versionId,Z]),{markLocalSaved:ee,clear:te}=function({key:e,snapshot:t,onFound:r}){const n=(0,a.useRef)(t);n.current=t;const o=(0,a.useRef)(!1);return(0,a.useEffect)(()=>{if(!o.current){o.current=!0;try{const a=window.localStorage.getItem(e);if(!a)return;const n=JSON.parse(a),o="string"==typeof n.at?Date.parse(n.at):NaN;if(!Number.isFinite(o)||Date.now()-o>6048e5)return void window.localStorage.removeItem(e);"string"==typeof n.content&&n.content!==t.content&&r(String(n.at))}catch(t){window.localStorage.removeItem(e)}}},[e,r,t.content]),{markLocalSaved:(0,a.useCallback)(()=>{try{window.localStorage.setItem(e,JSON.stringify(n.current))}catch(e){}},[e]),clear:(0,a.useCallback)(()=>{try{window.localStorage.removeItem(e)}catch(e){}},[e])}}({key:D,snapshot:{title:e.title,content:V,at:(new Date).toISOString()},onFound:e=>U({savedAt:e})}),ae=function({enabled:e,onSave:t,onLocal:r,remoteDelay:n=4e3,localDelay:o=1500}){const i=(0,a.useRef)(null),c=(0,a.useRef)(null),l=(0,a.useRef)(!1),s=(0,a.useRef)(t),u=(0,a.useRef)(r);s.current=t,u.current=r;const m=(0,a.useCallback)(()=>{i.current&&(window.clearTimeout(i.current),i.current=null),c.current&&(window.clearTimeout(c.current),c.current=null)},[]),d=(0,a.useCallback)(async()=>{if(!l.current){l.current=!0;try{await s.current()}finally{l.current=!1}}},[]),p=(0,a.useCallback)(()=>{m(),u.current(),e&&(c.current=window.setTimeout(()=>u.current(),o),i.current=window.setTimeout(()=>{d()},n))},[m,e,d,o,n]);return(0,a.useEffect)(()=>{if(!e)return;const t=()=>{"hidden"===document.visibilityState&&d()},a=()=>{d()};return document.addEventListener("visibilitychange",t),window.addEventListener("blur",a),()=>{document.removeEventListener("visibilitychange",t),window.removeEventListener("blur",a),m()}},[m,e,d]),(0,a.useMemo)(()=>({schedule:p,flush:d,cancel:m}),[m,d,p])}({enabled:!!J.isLoggedIn,onSave:async()=>{const e=await Z(!0);return e&&te(),e},onLocal:ee}).schedule;(0,a.useEffect)(()=>{O.current&&ae()},[e,V,ae]),(0,a.useEffect)(()=>{const e=e=>{O.current&&(e.preventDefault(),e.returnValue="")};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[]),(0,a.useEffect)(()=>{const e=e=>{(e.metaKey||e.ctrlKey)&&"s"===e.key.toLowerCase()&&(e.preventDefault(),Z(!1))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[Z]);const re=(0,a.useCallback)(()=>{try{const e=window.localStorage.getItem(D);if(e){const t=JSON.parse(e);"string"==typeof t.title&&X({title:t.title}),"string"==typeof t.content&&q((0,r.parse)(t.content))}}catch(e){}U(null)},[]),ne=(0,o.useSelect)(e=>e("core/block-editor").getBlockCount(),[]),oe=(0,a.useMemo)(()=>function(e){const t={label:(0,l.__)("文字","jio"),items:[{name:"core/paragraph",title:(0,l.__)("正文","jio"),icon:"fa fas fa-align-left"},{name:"core/heading",title:(0,l.__)("标题","jio"),icon:"fa fas fa-heading",attributes:{level:2}},{name:"core/list",title:(0,l.__)("列表","jio"),icon:"fa fas fa-list-ul"},{name:"core/quote",title:(0,l.__)("引用","jio"),icon:"fa fas fa-quote-left"}]},a={label:(0,l.__)("媒体","jio"),items:[]};e.canUploadImage&&a.items.push({name:"core/image",title:(0,l.__)("图片","jio"),icon:"fa far fa-image"}),e.canUploadVideo&&a.items.push({name:"core/video",title:(0,l.__)("视频","jio"),icon:"fa fas fa-video"}),e.canEmbed&&a.items.push({name:"core/embed",title:(0,l.__)("嵌入","jio"),icon:"fa fas fa-code"});const r={label:(0,l.__)("组件","jio"),items:[{name:"core/code",title:(0,l.__)("代码","jio"),icon:"fa fas fa-terminal"},{name:"core/separator",title:(0,l.__)("分隔线","jio"),icon:"fa fas fa-minus"},{name:"core/table",title:(0,l.__)("表格","jio"),icon:"fa fas fa-table"}]};return e.canPay&&r.items.push({name:"jio/paid-fragment",title:(0,l.__)("付费内容","jio"),icon:"fa fas fa-lock"}),[t,a,r]}(J),[J]),ie=(0,a.useCallback)(e=>{E(!1),O.current=!0;const t=[...d.current];let a;a=1!==t.length||"core/paragraph"!==t[0].name||t[0].attributes?.content?[...t,(0,r.createBlock)(e.name,e.attributes||{})]:[(0,r.createBlock)(e.name,e.attributes||{})],d.current=a,z.current.record({blocks:a,title:p.current.title,excerpt:p.current.excerpt}),u(a)},[]);return(0,t.createElement)("div",{className:"jio-creator","data-status":M.status||"","data-blocks":ne},(0,t.createElement)("header",{className:"jio-creator__bar"},(0,t.createElement)("div",{className:"jio-creator__bar-left"},(0,t.createElement)("a",{className:"jio-creator__back",href:M.urls?.center||"/","aria-label":(0,l.__)("返回作者中心","jio")},(0,t.createElement)("i",{className:"fa fas fa-angle-left","aria-hidden":"true"})),(0,t.createElement)("span",{className:"jio-creator__bar-brand"},"Jio"),(0,t.createElement)("span",{className:"jio-creator__bar-divider","aria-hidden":"true"}),(0,t.createElement)("span",{className:"jio-creator__bar-mode"},$?(0,l.__)("修改文章","jio"):(0,l.__)("写文章","jio"))),(0,t.createElement)("div",{className:"jio-creator__bar-center"},(0,t.createElement)("span",{className:"jio-creator__doc-title"},e.title.trim()||(0,l.__)("无标题文章","jio")),(0,t.createElement)(S,{value:_})),(0,t.createElement)("div",{className:"jio-creator__bar-actions"},(0,t.createElement)("div",{className:"jio-creator__history",role:"group","aria-label":(0,l.__)("编辑历史","jio")},(0,t.createElement)("button",{type:"button",className:"jio-creator__icon-btn",onClick:()=>T.undo(),disabled:!T.canUndo,"aria-label":(0,l.__)("撤销","jio"),title:(0,l.__)("撤销","jio")},(0,t.createElement)("i",{className:"fa fas fa-undo","aria-hidden":"true"})),(0,t.createElement)("button",{type:"button",className:"jio-creator__icon-btn",onClick:()=>T.redo(),disabled:!T.canRedo,"aria-label":(0,l.__)("重做","jio"),title:(0,l.__)("重做","jio")},(0,t.createElement)("i",{className:"fa fas fa-redo","aria-hidden":"true"}))),(0,t.createElement)("button",{type:"button",className:"jio-creator__ghost jio-creator__save-draft",onClick:()=>{Z(!1)}},(0,l.__)("保存草稿","jio")),(0,t.createElement)("button",{type:"button",className:"jio-creator__ghost jio-creator__preview",onClick:()=>{Y()}},(0,l.__)("预览","jio")),(0,t.createElement)("button",{type:"button",className:"jio-creator__primary",onClick:()=>j(!0)},$?(0,l.__)("提交改稿","jio"):(0,l.__)("发布","jio")))),C&&(0,t.createElement)("div",{className:"jio-creator__notice",role:"status"},(0,t.createElement)("span",null,(0,l.__)("发现本地未同步的草稿。","jio")),(0,t.createElement)("button",{type:"button",onClick:re},(0,l.__)("恢复","jio")),(0,t.createElement)("button",{type:"button",onClick:()=>U(null)},(0,l.__)("忽略","jio"))),g&&(0,t.createElement)("div",{className:`jio-creator__notice is-${g.tone}`,role:"status"},(0,t.createElement)("span",null,g.text),(0,t.createElement)("button",{type:"button",onClick:()=>h(null),"aria-label":(0,l.__)("关闭","jio")},(0,t.createElement)("i",{className:"fa fas fa-times","aria-hidden":"true"}))),$&&(0,t.createElement)("p",{className:"jio-creator__hint"},(0,l.__)("这篇改稿不会立即覆盖线上文章;审核通过后才会替换。","jio")),(0,t.createElement)("main",{className:"jio-creator__canvas"},(0,t.createElement)(v,{featured:e.featured,canEdit:!!J.canUploadImage,onOpen:()=>j(!0),onClear:()=>X({featured:{type:"",data:{}}})}),(0,t.createElement)("label",{className:"jio-creator__title"},(0,t.createElement)("span",{className:"screen-reader-text"},(0,l.__)("文章标题","jio")),(0,t.createElement)("textarea",{value:e.title,onChange:e=>X({title:e.target.value}),rows:1,placeholder:W.titlePlaceholder||(0,l.__)("请输入标题","jio"),maxLength:4*(Number(W.titleMax)||30)})),(0,t.createElement)("label",{className:"jio-creator__excerpt"},(0,t.createElement)("span",null,(0,l.__)("摘要(可选)","jio")),(0,t.createElement)("textarea",{value:e.excerpt,onChange:e=>X({excerpt:e.target.value}),rows:2,placeholder:(0,l.__)("一句话概括这篇文章","jio")})),(0,t.createElement)(N,{author:M.author||{}}),(0,t.createElement)("div",{className:"jio-creator__editor"},(0,t.createElement)(i.BlockEditorProvider,{value:s,onInput:q,onChange:q,settings:{hasFixedToolbar:!1,supportsLayout:!1,mediaUpload:window.jioCreatorMediaUpload}},(0,t.createElement)(i.BlockTools,null,(0,t.createElement)(i.BlockList,null))),(0,t.createElement)("button",{type:"button",className:"jio-creator__insert",onClick:()=>E(!0),"aria-haspopup":"dialog","aria-expanded":y},(0,t.createElement)("i",{className:"fa fas fa-plus","aria-hidden":"true"}),(0,t.createElement)("span",null,(0,l.__)("添加内容","jio")))),(0,t.createElement)("footer",{className:"jio-creator__footer"},(0,t.createElement)("span",null,(0,l.__)("字数","jio"),":",G),(0,t.createElement)("span",null,(0,l.__)("约","jio")," ",Math.max(1,Math.round(G/400))," ",(0,l.__)("分钟阅读","jio")))),y&&(0,t.createElement)(k,{groups:oe,onInsert:ie,onClose:()=>E(!1)}),b&&(0,t.createElement)(w,{draft:e,setDraft:X,capabilities:J,limits:W,taxonomy:{categories:M.categories&&M.categories.items||[],tags:!!M.tags?.enabled,customDefs:M.customDefs||[]},isPublishedEdit:$,onClose:()=>j(!1),onSaveDraft:()=>{Z(!1)},onSubmit:e=>{Q(e)},privateStorage:!!M.privateStorage,privateUploads:M.privateUploads||[],captcha:!!M.captcha?.enabled,saving:"saving"===_.state||"submitting"===_.state}))}function O(){const e=document.getElementById("jio-creator-studio");e&&(function(e){if(!e||"function"!=typeof _().use)return;if(window.__jioApiFetchNonceInstalled)return;window.__jioApiFetchNonceInstalled=!0;const t=_().createNonceMiddleware;"function"!=typeof t?_().use((t,a)=>(t.headers={...t.headers||{},"X-WP-Nonce":e},a(t))):_().use(t(e))}(R),function(e,t){const a=e?.blocks?.mediaUploadUrl;if(!a)return;const r=Number(e?.media?.maxBytes||0),n=!1!==e?.capabilities?.canUploadImage;window.jioCreatorMediaUpload=e=>{const{file:o,onError:i,onSuccess:c}=e||{};if(!o||"object"==typeof o&&!(o instanceof File))return void i?.("无效的文件");if(!n)return void i?.("当前账号不能上传图片");if(r>0&&o.size>r)return void i?.("图片大小超过限制");const l=new FormData;l.append("file",o),fetch(a,{method:"POST",credentials:"same-origin",headers:{"X-WP-Nonce":t},body:l}).then(e=>e.json().then(t=>{if(!e.ok)throw new Error(t&&t.message||"上传失败");return t})).then(e=>{c?.({id:Number(e.attachment_id||e.id||0),url:String(e.url||""),alt:"",caption:"",title:String(e.title||e.name||""),width:Number(e.width||0),height:Number(e.height||0),sizes:e.sizes||{},mime:String(e.mime||"")})}).catch(e=>{i?.(e?.message||"上传失败")})}}(M,R),window.__jioImageWidthInstalled||(window.__jioImageWidthInstalled=!0,(0,f.addFilter)("editor.BlockEdit","jio/creator-studio/image-width",(0,b.createHigherOrderComponent)(E,"withJioImageWidth"))),e.classList.add("is-ready"),(0,a.createRoot)(e).render((0,t.createElement)(U,null)))}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",O):O()})();
\ No newline at end of file
+(()=>{"use strict";const e=window.React,t=window.wp.element,a=window.wp.i18n;function r(e,t){const a=e&&(e.message||e.error)||(401===t?"登录状态已失效,请刷新页面重新登录。":"请求失败,请稍后重试。"),r=new Error(String(a));return r.status=t,r.code=e&&e.code?String(e.code):"",r.data=e,r}async function n(e){try{return await e.json()}catch(e){return null}}async function o(e,t,a){const o=await fetch(e,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json","X-WP-Nonce":a},body:JSON.stringify(t)}),i=await n(o);if(!o.ok)throw r(i,o.status);return i}async function i(e,t,a,o={}){const i=new FormData;i.append("file",t),Object.entries(o).forEach(([e,t])=>i.append(e,t));const l=await fetch(e,{method:"POST",credentials:"same-origin",headers:{"X-WP-Nonce":a},body:i}),c=await n(l);if(!l.ok)throw r(c,l.status);return c}const l=window.jioCreatorStudio||{},c=l.nonce||"";function s(r){const{draft:n,setDraft:o,capabilities:s,limits:u,taxonomy:m,isPublishedEdit:d,onClose:p,onSaveDraft:_,onSubmit:f,privateStorage:b,privateUploads:y,saving:j,captcha:E}=r,[g,h]=(0,t.useState)(""),[v,N]=(0,t.useState)(""),[w,k]=(0,t.useState)(!1),C=(0,t.useRef)(null),S=(0,t.useRef)(null),x=(0,t.useRef)(null);(0,t.useEffect)(()=>{const e=x.current,t=document.getElementById("jio-creator-captcha");if(!e||!t)return;const a=t.parentElement;return e.appendChild(t),t.removeAttribute("hidden"),()=>{a&&(a.appendChild(t),t.setAttribute("hidden",""))}},[]);const I=(0,t.useMemo)(()=>(n.title||"").trim().length,[n.title])>=Number(u.titleMin||1),M=()=>{const e=g.trim();if(!e)return;const t=e.split(/[,,\n]+/u).map(e=>e.trim()).filter(Boolean);o({tags:Array.from(new Set([...n.tags,...t]))}),h("")};return(0,e.createElement)("div",{className:"jio-creator-drawer",role:"dialog","aria-modal":"true","aria-labelledby":"jio-creator-publish-title"},(0,e.createElement)("button",{type:"button",className:"jio-creator-drawer__backdrop","aria-label":(0,a.__)("关闭","jio"),onClick:p}),(0,e.createElement)("div",{className:"jio-creator-drawer__panel"},(0,e.createElement)("header",{className:"jio-creator-drawer__head"},(0,e.createElement)("h2",{id:"jio-creator-publish-title"},d?(0,a.__)("提交改稿","jio"):(0,a.__)("发布文章","jio")),(0,e.createElement)("button",{type:"button",className:"jio-creator-drawer__close",onClick:p,"aria-label":(0,a.__)("关闭","jio")},(0,e.createElement)("i",{className:"fa fas fa-times","aria-hidden":"true"}))),(0,e.createElement)("div",{className:"jio-creator-drawer__body"},d&&(0,e.createElement)("p",{className:"jio-creator-drawer__note"},(0,a.__)("审核通过前,读者看到的仍然是当前线上版本。","jio")),(0,e.createElement)("section",{className:"jio-creator-field"},(0,e.createElement)("h3",null,(0,a.__)("封面","jio")),n.featured?.data?.url?(0,e.createElement)("div",{className:"jio-creator-cover"},(0,e.createElement)("img",{src:String(n.featured.data.url),alt:""}),(0,e.createElement)("button",{type:"button",onClick:()=>o({featured:{type:"",data:{}}}),"aria-label":(0,a.__)("移除封面","jio")},(0,e.createElement)("i",{className:"fa fas fa-times","aria-hidden":"true"}))):s.canUploadImage?(0,e.createElement)("label",{className:"jio-creator-cover-empty"},(0,e.createElement)("input",{ref:C,type:"file",accept:"image/*",onChange:()=>{(async()=>{const e=C.current?.files?.[0];if(e&&l.media?.uploadUrl?.image){N(""),k(!0);try{const t=await i(l.media.uploadUrl.image,e,c),r=Number(t.attachment_id||t.id||0),n=String(t.url||"");if(!r||!n)throw new Error((0,a.__)("上传后无法读取图片。","jio"));o({featured:{type:"image",mediaId:r,data:{id:r,url:n}}})}catch(e){N(String(e?.message||(0,a.__)("上传失败","jio")))}finally{k(!1)}}})()},disabled:w}),(0,e.createElement)("i",{className:"fa fas fa-plus","aria-hidden":"true"}),(0,e.createElement)("span",null,w?(0,a.__)("上传中…","jio"):(0,a.__)("上传封面","jio"))):(0,e.createElement)("p",{className:"jio-creator-muted"},(0,a.__)("当前账号不能设置封面。","jio"))),(0,e.createElement)("section",{className:"jio-creator-field"},(0,e.createElement)("h3",null,(0,a.__)("分类","jio")),(0,e.createElement)("div",{className:"jio-creator-chips"},0===m.categories.length&&(0,e.createElement)("span",{className:"jio-creator-muted"},(0,a.__)("暂无可选分类","jio")),m.categories.map(t=>(0,e.createElement)("label",{key:t.id,className:"jio-creator-chip"+(n.categories.includes(t.id)?" is-active":"")},(0,e.createElement)("input",{type:"checkbox",checked:n.categories.includes(t.id),onChange:()=>(e=>{const t=n.categories.includes(e);o({categories:t?n.categories.filter(t=>t!==e):[...n.categories,e]})})(t.id)}),(0,e.createElement)("span",null,t.name))))),m.tags&&(0,e.createElement)("section",{className:"jio-creator-field"},(0,e.createElement)("h3",null,(0,a.__)("标签","jio")),(0,e.createElement)("div",{className:"jio-creator-chips"},n.tags.map(t=>(0,e.createElement)("span",{key:t,className:"jio-creator-chip is-active"},(0,e.createElement)("span",null,t),(0,e.createElement)("button",{type:"button",onClick:()=>o({tags:n.tags.filter(e=>e!==t)}),"aria-label":(0,a.sprintf)((0,a.__)("移除标签 %s","jio"),t)},(0,e.createElement)("i",{className:"fa fas fa-times","aria-hidden":"true"}))))),(0,e.createElement)("div",{className:"jio-creator-inline"},(0,e.createElement)("input",{type:"text",value:g,placeholder:(0,a.__)("输入标签,逗号分隔","jio"),onChange:e=>h(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),M())}}),(0,e.createElement)("button",{type:"button",onClick:M},(0,a.__)("添加","jio")))),m.customDefs.map(t=>(0,e.createElement)("section",{className:"jio-creator-field",key:t.key},(0,e.createElement)("h3",null,t.name),(0,e.createElement)("div",{className:"jio-creator-chips"},t.values.map(a=>{const r=n.custom[t.key]||[],i=r.includes(a.key);return(0,e.createElement)("label",{key:a.key,className:"jio-creator-chip"+(i?" is-active":"")},(0,e.createElement)("input",{type:"checkbox",checked:i,onChange:()=>o({custom:{...n.custom,[t.key]:i?r.filter(e=>e!==a.key):[...r,a.key]}})}),(0,e.createElement)("span",null,a.name))})))),s.canPay&&(0,e.createElement)("section",{className:"jio-creator-field"},(0,e.createElement)("div",{className:"jio-creator-switch"},(0,e.createElement)("div",null,(0,e.createElement)("h3",null,(0,a.__)("付费内容","jio")),(0,e.createElement)("p",{className:"jio-creator-muted"},(0,a.__)("开启后,未购买读者只能看到免费部分。","jio"))),(0,e.createElement)("label",{className:"jio-creator-toggle"},(0,e.createElement)("input",{type:"checkbox",checked:n.pay.enabled,onChange:e=>o({pay:{...n.pay,enabled:e.target.checked}})}),(0,e.createElement)("span",{"aria-hidden":"true"}))),n.pay.enabled&&(0,e.createElement)("div",{className:"jio-creator-pay"},(0,e.createElement)("div",{className:"jio-creator-inline"},(0,e.createElement)("label",null,(0,e.createElement)("input",{type:"radio",checked:"cash"===n.pay.modo,onChange:()=>o({pay:{...n.pay,modo:"cash"}})}),(0,e.createElement)("span",null,(0,a.__)("现金","jio"))),(0,e.createElement)("label",null,(0,e.createElement)("input",{type:"radio",checked:"points"===n.pay.modo,onChange:()=>o({pay:{...n.pay,modo:"points"}})}),(0,e.createElement)("span",null,(0,a.__)("积分","jio")))),"cash"===n.pay.modo?(0,e.createElement)("label",{className:"jio-creator-input"},(0,e.createElement)("span",null,(0,a.__)("价格","jio")),(0,e.createElement)("input",{type:"number",min:Number(u.priceMin||0),step:"0.01",value:n.pay.price,onChange:e=>o({pay:{...n.pay,price:e.target.value}})})):(0,e.createElement)("label",{className:"jio-creator-input"},(0,e.createElement)("span",null,(0,a.__)("积分价格","jio")),(0,e.createElement)("input",{type:"number",min:0,step:"1",value:n.pay.points,onChange:e=>o({pay:{...n.pay,points:Number(e.target.value)||0}})})),s.canPayDownload&&(0,e.createElement)("div",{className:"jio-creator-attachments"},(0,e.createElement)("div",{className:"jio-creator-attachments__head"},(0,e.createElement)("h4",null,(0,a.__)("资料附件","jio")),b?(0,e.createElement)("label",{className:"jio-creator-upload"},(0,e.createElement)("input",{ref:S,type:"file",onChange:()=>{(async()=>{const e=S.current?.files?.[0];if(e){N(""),k(!0);try{const t=await i(l.creator.privateUrl,e,c,{post_id:String(n.postId||0)}),a={type:"protected",assetKey:String(t.asset_key||""),fileName:String(t.name||e.name),sizeBytes:Number(t.size||e.size),sizeLabel:String(t.size_label||""),label:""};o({pay:{...n.pay,enabled:!0,downloads:[...n.pay.downloads,a]}}),S.current&&(S.current.value="")}catch(e){N(String(e?.message||(0,a.__)("资料上传失败","jio")))}finally{k(!1)}}})()},disabled:w}),(0,e.createElement)("span",null,w?(0,a.__)("上传中…","jio"):(0,a.__)("添加 PDF / ZIP","jio"))):(0,e.createElement)("p",{className:"jio-creator-muted"},(0,a.__)("私有附件存储尚未配置,暂时不能上传付费资料。","jio"))),v&&(0,e.createElement)("p",{className:"jio-creator-error"},v),n.pay.downloads.length>0&&(0,e.createElement)("ul",{className:"jio-creator-files"},n.pay.downloads.map((t,r)=>(0,e.createElement)("li",{key:`${t.assetKey||t.url}-${r}`},(0,e.createElement)("span",{className:"jio-creator-files__name"},t.assetKey?(0,e.createElement)(e.Fragment,null,(0,e.createElement)("i",{className:"fa fas fa-lock","aria-hidden":"true"}),t.fileName||t.label||(0,a.__)("受保护资料","jio")):(0,e.createElement)(e.Fragment,null,(0,e.createElement)("i",{className:"fa fas fa-link","aria-hidden":"true"}),t.label||t.url)),t.sizeLabel&&(0,e.createElement)("span",{className:"jio-creator-muted"},t.sizeLabel),(0,e.createElement)("button",{type:"button",onClick:()=>(e=>{o({pay:{...n.pay,downloads:n.pay.downloads.filter((t,a)=>a!==e)}})})(r),"aria-label":(0,a.__)("移除","jio")},(0,e.createElement)("i",{className:"fa fas fa-times","aria-hidden":"true"}))))),y.length>0&&(0,e.createElement)("details",{className:"jio-creator-reuse"},(0,e.createElement)("summary",null,(0,a.__)("从已上传资料中选择","jio")),(0,e.createElement)("ul",null,y.filter(e=>!n.pay.downloads.some(t=>t.assetKey===e.assetKey)).map(t=>(0,e.createElement)("li",{key:t.assetKey},(0,e.createElement)("span",null,t.fileName),(0,e.createElement)("span",{className:"jio-creator-muted"},t.sizeLabel),(0,e.createElement)("button",{type:"button",onClick:()=>o({pay:{...n.pay,enabled:!0,downloads:[...n.pay.downloads,{...t,type:"protected"}]}})},(0,a.__)("使用","jio"))))))))),!s.canPay&&s.canSaveDraft&&(0,e.createElement)("p",{className:"jio-creator-muted"},(0,a.__)("当前账号不能设置付费内容。","jio"))),(0,e.createElement)("footer",{className:"jio-creator-drawer__foot"},E&&(0,e.createElement)("div",{className:"jio-creator-drawer__captcha",ref:x}),(0,e.createElement)("div",{className:"jio-creator-drawer__actions"},(0,e.createElement)("button",{type:"button",className:"jio-creator-ghost",onClick:_,disabled:j},(0,a.__)("保存草稿","jio")),(0,e.createElement)("button",{type:"button",className:"jio-creator-primary",onClick:()=>f(!1),disabled:j||!I},d?(0,a.__)("提交审核","jio"):s.canPublishNow?(0,a.__)("发布","jio"):(0,a.__)("提交审核","jio")),s.canPublishNow&&(0,e.createElement)("button",{type:"button",className:"jio-creator-link",onClick:()=>f(!0),disabled:j||!I},(0,a.__)("立即发布","jio"))))))}function u({featured:t,canEdit:r,onOpen:n,onClear:o}){const i="string"==typeof t?.data?.url?t.data.url:"";return r?i?(0,e.createElement)("div",{className:"jio-creator__cover"},(0,e.createElement)("button",{type:"button",className:"jio-creator__cover-thumb",onClick:n},(0,e.createElement)("img",{src:i,alt:""}),(0,e.createElement)("span",{className:"jio-creator__cover-edit"},(0,e.createElement)("i",{className:"fa fas fa-pen","aria-hidden":"true"}),(0,a.__)("更换封面","jio"))),(0,e.createElement)("button",{type:"button",className:"jio-creator__cover-clear",onClick:o,"aria-label":(0,a.__)("移除封面","jio")},(0,e.createElement)("i",{className:"fa fas fa-times","aria-hidden":"true"}))):(0,e.createElement)("button",{type:"button",className:"jio-creator__cover is-empty",onClick:n},(0,e.createElement)("i",{className:"fa far fa-image","aria-hidden":"true"}),(0,e.createElement)("span",null,(0,a.__)("添加封面","jio"))):null}function m({author:t}){const r="string"==typeof t?.name?t.name.trim():"";if(""===r)return null;const n="string"==typeof t?.avatar?t.avatar:"",o="string"==typeof t?.meta?t.meta:"";return(0,e.createElement)("div",{className:"jio-creator__author"},""!==n?(0,e.createElement)("img",{className:"jio-creator__author-avatar",src:n,alt:"",width:24,height:24}):(0,e.createElement)("span",{className:"jio-creator__author-avatar is-placeholder","aria-hidden":"true"},r.slice(0,1)),(0,e.createElement)("span",{className:"jio-creator__author-name"},r),""!==o&&(0,e.createElement)("span",{className:"jio-creator__author-meta"},o),(0,e.createElement)("span",{className:"jio-creator__author-hint"},(0,a.__)("原创内容","jio")))}function d({ready:t,canUndo:r,canRedo:n,formatValue:o,onFormatChange:i,capabilities:l,onCommand:c,onRememberSelection:s,onOpenLink:u,onOpenMedia:m}){return(0,e.createElement)("div",{className:"jio-creator__toolbar-tools",role:"toolbar","aria-label":(0,a.__)("正文编辑工具","jio"),onMouseDown:e=>{s(),e.target.closest("button")&&e.preventDefault()}},(0,e.createElement)("div",{className:"jio-creator__toolbar-group",role:"group","aria-label":(0,a.__)("撤销和重做","jio")},(0,e.createElement)("button",{type:"button",className:"jio-creator__tool-btn",disabled:!r,onClick:()=>c("undo"),title:(0,a.__)("撤销","jio"),"aria-label":(0,a.__)("撤销","jio")},(0,e.createElement)("i",{className:"fa fas fa-undo","aria-hidden":"true"})),(0,e.createElement)("button",{type:"button",className:"jio-creator__tool-btn",disabled:!n,onClick:()=>c("redo"),title:(0,a.__)("重做","jio"),"aria-label":(0,a.__)("重做","jio")},(0,e.createElement)("i",{className:"fa fas fa-redo","aria-hidden":"true"}))),(0,e.createElement)("span",{className:"jio-creator__toolbar-divider","aria-hidden":"true"}),(0,e.createElement)("select",{className:"jio-creator__format-select","aria-label":(0,a.__)("段落样式","jio"),value:o,disabled:!t,onFocus:s,onChange:e=>{i(e.target.value),c("format",e.target.value)}},(0,e.createElement)("option",{value:"p"},(0,a.__)("正文","jio")),(0,e.createElement)("option",{value:"h1"},(0,a.__)("标题 1","jio")),(0,e.createElement)("option",{value:"h2"},(0,a.__)("标题 2","jio")),(0,e.createElement)("option",{value:"h3"},(0,a.__)("标题 3","jio")),(0,e.createElement)("option",{value:"blockquote"},(0,a.__)("引用","jio"))),(0,e.createElement)("span",{className:"jio-creator__toolbar-divider","aria-hidden":"true"}),(0,e.createElement)("div",{className:"jio-creator__toolbar-group",role:"group","aria-label":(0,a.__)("文字格式","jio")},(0,e.createElement)("button",{type:"button",className:"jio-creator__tool-btn",disabled:!t,onClick:()=>c("Bold"),title:(0,a.__)("加粗","jio"),"aria-label":(0,a.__)("加粗","jio")},(0,e.createElement)("i",{className:"fa fas fa-bold","aria-hidden":"true"})),(0,e.createElement)("button",{type:"button",className:"jio-creator__tool-btn",disabled:!t,onClick:()=>c("Italic"),title:(0,a.__)("斜体","jio"),"aria-label":(0,a.__)("斜体","jio")},(0,e.createElement)("i",{className:"fa fas fa-italic","aria-hidden":"true"})),(0,e.createElement)("button",{type:"button",className:"jio-creator__tool-btn",disabled:!t,onClick:()=>c("Underline"),title:(0,a.__)("下划线","jio"),"aria-label":(0,a.__)("下划线","jio")},(0,e.createElement)("i",{className:"fa fas fa-underline","aria-hidden":"true"}))),(0,e.createElement)("span",{className:"jio-creator__toolbar-divider","aria-hidden":"true"}),(0,e.createElement)("div",{className:"jio-creator__toolbar-group",role:"group","aria-label":(0,a.__)("媒体和链接","jio")},l.canUploadImage&&(0,e.createElement)("button",{type:"button",className:"jio-creator__tool-btn jio-creator__tool-labeled",disabled:!t,onClick:()=>m("image"),title:(0,a.__)("插入图片","jio")},(0,e.createElement)("i",{className:"fa far fa-image","aria-hidden":"true"}),(0,e.createElement)("span",null,(0,a.__)("图片","jio"))),(l.canUploadVideo||l.canEmbed)&&(0,e.createElement)("button",{type:"button",className:"jio-creator__tool-btn jio-creator__tool-labeled",disabled:!t,onClick:()=>m("video"),title:(0,a.__)("插入视频","jio")},(0,e.createElement)("i",{className:"fa fas fa-video","aria-hidden":"true"}),(0,e.createElement)("span",null,(0,a.__)("视频","jio"))),(0,e.createElement)("button",{type:"button",className:"jio-creator__tool-btn jio-creator__tool-labeled",disabled:!t,onClick:u,title:(0,a.__)("插入链接","jio")},(0,e.createElement)("i",{className:"fa fas fa-link","aria-hidden":"true"}),(0,e.createElement)("span",null,(0,a.__)("链接","jio")))))}const p={ready:(0,a.__)("尚未保存","jio"),saving:(0,a.__)("保存中…","jio"),saved:(0,a.__)("已保存","jio"),error:(0,a.__)("保存失败","jio"),conflict:(0,a.__)("内容已在别处更新","jio"),submitting:(0,a.__)("提交中…","jio"),submitted:(0,a.__)("已提交","jio")};function _({value:t}){return(0,e.createElement)("span",{className:`jio-creator__save is-${t.state}`,role:"status","aria-live":"polite"},(0,e.createElement)("i",{className:"fa fas fa-circle","aria-hidden":"true"}),(0,e.createElement)("span",null,p[t.state]||p.ready),"saved"===t.state&&t.at?(0,e.createElement)("time",null,t.at):null)}function f(e){const t=(e.downloads||[]).map(e=>{const t="string"==typeof e.assetKey?e.assetKey:"";if(t)return{type:"protected",asset_key:t,label:"string"==typeof e.label?e.label:""};const a="string"==typeof e.url?e.url.trim():"";return a?{type:"direct",url:a,label:"string"==typeof e.label?e.label:"",extract_code:"string"==typeof e.extractCode?e.extractCode:""}:null}).filter(Boolean);return{enabled:!!e.enabled,fields:{pay_type:e.enabled?t.length>0?"download":"reading":"no",pay_modo:"points"===e.modo?"points":"0",price:"points"===e.modo?"0.00":String(e.price||"0.00"),points_price:"points"===e.modo?Math.max(0,Number(e.points)||0):0,vip1_price:"points"===e.modo?"0.00":String(e.vip1Price||"0.00"),vip2_price:"points"===e.modo?"0.00":String(e.vip2Price||"0.00"),pay_limit:Number(e.payLimit)||0,downloads:t}}}const b=window.jioCreatorStudio||{},y=b.nonce||"",j=`jio-studio-${b.sourceId||0}`,E="jio-creator-content";function g(){const e=b.pay||{},t=b.categories&&b.categories.selected||[],a=b.tags&&b.tags.items||[];return{postId:Number(b.sourceId||0),versionId:Number(b.versionId||0),rev:Number(b.versionRev||0),title:String(b.title||""),excerpt:String(b.excerpt||""),content:String(b.content||""),categories:t.map(Number),tags:a.slice(),custom:b.custom||{},featured:b.featured||{type:"",data:{}},pay:{enabled:!!e.enabled,modo:"points"===e.payModo?"points":"cash",price:String(e.price||"0.00"),points:Number(e.points||0),vip1Price:String(e.vip1Price||"0.00"),vip2Price:String(e.vip2Price||"0.00"),payLimit:Number(e.payLimit||0),downloads:Array.isArray(e.downloads)?e.downloads:[]}}}function h(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(//g,">")}function v(e){const t=String(e||"").trim();if(!t)return"";try{const e=new URL(t,window.location.href);return"http:"===e.protocol||"https:"===e.protocol?e.href:""}catch(e){return""}}function N(e){const t=document.createElement("div");return t.innerHTML=e,(t.textContent||"").replace(/\s+/g,"")}function w(){const[r,n]=(0,t.useState)(g),i=(0,t.useRef)(r);i.current=r;const l=(0,t.useRef)(null),c=(0,t.useRef)(null),p=(0,t.useRef)(null),w=(0,t.useRef)(!1),k=(0,t.useRef)(()=>{}),[C,S]=(0,t.useState)(!1),[x,I]=(0,t.useState)({canUndo:!1,canRedo:!1}),[M,L]=(0,t.useState)("p"),[R,D]=(0,t.useState)(()=>({state:b.sourceId||b.versionId||b.content?"saved":"ready",at:""})),[P,U]=(0,t.useState)(!1),[O,$]=(0,t.useState)(null),[F,K]=(0,t.useState)(null),z=(0,t.useRef)(!1),T=(0,t.useRef)(0),A=b.capabilities||{},B={titleMin:Number(b.limits?.titleMin||1),titleMax:Number(b.limits?.titleMax||30),titlePlaceholder:String(b.limits?.titlePlaceholder||(0,a.__)("请输入标题","jio")),priceMin:Number(b.pay?.priceMin||0),priceMax:Number(b.pay?.priceMax||0),pointsMin:Number(b.pay?.pointsMin||0),pointsMax:Number(b.pay?.pointsMax||0)},J=!!b.isPublished,q=(0,t.useCallback)(e=>{z.current=!0,T.current+=1;const t={...i.current,...e};i.current=t,n(t)},[]),V=(0,t.useCallback)(e=>{if(e===i.current.content)return;z.current=!0,T.current+=1;const t={...i.current,content:e};i.current=t,n(t)},[]),H=(0,t.useCallback)(e=>{const t=e?.undoManager;t&&I({canUndo:"function"==typeof t.hasUndo&&t.hasUndo(),canRedo:"function"==typeof t.hasRedo&&t.hasRedo()})},[]),W=(0,t.useCallback)(e=>{const t=e?.selection?.getNode(),a=t?e.dom.getParent(t,"p,h1,h2,h3,blockquote")||t:null,r=a?.nodeName?.toLowerCase()||"p";L(["h1","h2","h3","blockquote"].includes(r)?r:"p")},[]),X=(0,t.useMemo)(()=>Array.from(N(r.content)).length,[r.content]),Y=(0,t.useCallback)((e={})=>{const t=i.current;return{post_id:t.postId,version_id:t.versionId,rev:t.rev,title:t.title,excerpt:t.excerpt,content:t.content,categories:t.categories,tags:t.tags,custom:t.custom,featured:t.featured,pay:f(t.pay),...e}},[]),Z=(0,t.useCallback)(async(e=!1)=>{const t=l.current;t&&!t.removed&&V(t.getContent());const a=i.current;if(!z.current&&(a.postId>0||a.versionId>0))return!0;const r=T.current,c=""!==a.title.trim()||""!==N(a.content).trim();if(e&&!c)return!0;D({state:"saving",at:""});try{const t=await o(b.creator.saveUrl,Y({autosave:e}),y),a={...i.current,postId:Number(t.post_id||i.current.postId||0),versionId:Number(t.version_id||i.current.versionId||0),rev:Number(t.rev||t.versionRev||i.current.rev||0)};window.jioSubmitData&&(window.jioSubmitData.postId=a.postId);const l=T.current===r;return z.current=!l,i.current=a,n(a),D({state:l?"saved":"saving",at:l?(new Date).toLocaleTimeString():""}),l}catch(e){return D({state:409===e?.status?"conflict":"error",at:""}),!1}},[Y]);k.current=()=>{Z(!1)};const G=(0,t.useCallback)(async e=>{if(await Z(!1)){D({state:"submitting",at:""});try{let t="";const r=window.JioCaptcha;if(b.captcha?.enabled&&r&&"function"==typeof r.run){const e=await r.run("front_submit");if(null===e)return D({state:"ready",at:""}),void $({tone:"error",text:(0,a.__)("请先完成人机验证","jio")});t=String(e?.jio_captcha_proof||"")}const n=await o(b.creator.submitUrl,Y({post_id:i.current.postId,version_id:i.current.versionId,rev:i.current.rev,publish_now:e,captcha_proof:t}),y);z.current=!1,D({state:"submitted",at:""}),$({tone:"ok",text:String(n.message||(0,a.__)("已提交","jio"))}),U(!1);const l=n.url||n.goto||b.urls?.center;l&&window.setTimeout(()=>{window.location.href=l},900)}catch(e){D({state:"error",at:""}),$({tone:"error",text:String(e?.message||(0,a.__)("提交失败","jio"))})}}else $({tone:"error",text:(0,a.__)("内容保存失败,请重试后再提交","jio")})},[Y,Z]),Q=(0,t.useCallback)(async()=>{if(await Z(!1))try{const e=await o(b.creator.previewUrl,{post_id:i.current.postId,version_id:i.current.versionId},y);e.url&&window.open(String(e.url),"_blank","noopener")}catch(e){$({tone:"error",text:String(e?.message||(0,a.__)("预览失败","jio"))})}},[Z]),{markLocalSaved:ee,clear:te}=function({key:e,snapshot:a,onFound:r}){const n=(0,t.useRef)(a);n.current=a;const o=(0,t.useRef)(!1);return(0,t.useEffect)(()=>{if(!o.current){o.current=!0;try{const t=window.localStorage.getItem(e);if(!t)return;const n=JSON.parse(t),o="string"==typeof n.at?Date.parse(n.at):NaN;if(!Number.isFinite(o)||Date.now()-o>6048e5)return void window.localStorage.removeItem(e);"string"==typeof n.content&&n.content!==a.content&&r(String(n.at))}catch(t){window.localStorage.removeItem(e)}}},[e,r,a.content]),{markLocalSaved:(0,t.useCallback)(()=>{try{window.localStorage.setItem(e,JSON.stringify(n.current))}catch(e){}},[e]),clear:(0,t.useCallback)(()=>{try{window.localStorage.removeItem(e)}catch(e){}},[e])}}({key:j,snapshot:{title:r.title,content:r.content,at:(new Date).toISOString()},onFound:e=>K({savedAt:e})}),ae=function({enabled:e,onSave:a,onLocal:r,remoteDelay:n=4e3,localDelay:o=1500}){const i=(0,t.useRef)(null),l=(0,t.useRef)(null),c=(0,t.useRef)(!1),s=(0,t.useRef)(a),u=(0,t.useRef)(r);s.current=a,u.current=r;const m=(0,t.useCallback)(()=>{i.current&&(window.clearTimeout(i.current),i.current=null),l.current&&(window.clearTimeout(l.current),l.current=null)},[]),d=(0,t.useCallback)(async()=>{if(!c.current){c.current=!0;try{await s.current()}finally{c.current=!1}}},[]),p=(0,t.useCallback)(()=>{m(),u.current(),e&&(l.current=window.setTimeout(()=>u.current(),o),i.current=window.setTimeout(()=>{d()},n))},[m,e,d,o,n]);return(0,t.useEffect)(()=>{if(!e)return;const t=()=>{"hidden"===document.visibilityState&&d()},a=()=>{d()};return document.addEventListener("visibilitychange",t),window.addEventListener("blur",a),()=>{document.removeEventListener("visibilitychange",t),window.removeEventListener("blur",a),m()}},[m,e,d]),(0,t.useMemo)(()=>({schedule:p,flush:d,cancel:m}),[m,d,p])}({enabled:!!A.isLoggedIn,onSave:async()=>{const e=await Z(!0);return e&&te(),e},onLocal:ee}).schedule;(0,t.useEffect)(()=>{z.current&&ae()},[r,ae]),(0,t.useEffect)(()=>{const e=e=>{z.current&&(e.preventDefault(),e.returnValue="")};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[]),(0,t.useEffect)(()=>{const e=e=>{(e.metaKey||e.ctrlKey)&&"s"===e.key.toLowerCase()&&(e.preventDefault(),Z(!1))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[Z]),(0,t.useEffect)(()=>{const e=window.wp?.editor;if(!e||"function"!=typeof e.initialize)return void $({tone:"error",text:(0,a.__)("TinyMCE 加载失败,请刷新页面后重试。","jio")});const t={quicktags:!1,tinymce:{menubar:!1,statusbar:!1,resize:!1,toolbar1:"",toolbar2:"",toolbar3:"",plugins:"paste,link,lists,wordpress,wplink",wpautop:!0,body_class:"jio-creator__tinymce",content_css:b.creator?.contentCss||"",content_style:'body{margin:0;color:#243330;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.85;letter-spacing:.01em}p{margin:0 0 1.1em}h1,h2,h3,h4,h5,h6{margin:1.5em 0 .65em;line-height:1.4}img,iframe{max-width:100%}img{height:auto}',height:650,placeholder:String(b.limits?.contentPlaceholder||""),setup:e=>{l.current=e,e.on("init",()=>{w.current=!0,S(!0),null!==p.current&&(e.setContent(p.current),p.current=null),H(e),W(e)}),e.on("NodeChange",()=>W(e)),e.on("input change Undo Redo AddUndo",()=>{V(e.getContent()),H(e)}),e.on("keydown",e=>{(e.metaKey||e.ctrlKey)&&83===e.keyCode&&(e.preventDefault(),k.current())})}}};return e.initialize(E,t),()=>{e.remove?.(E),w.current=!1,l.current=null}},[V]);const re=(0,t.useCallback)(()=>{try{const e=window.localStorage.getItem(j);if(e){const t=JSON.parse(e),a={};"string"==typeof t.title&&(a.title=t.title),"string"==typeof t.content&&(a.content=t.content),q(a),"string"==typeof t.content&&(w.current?l.current?.setContent(t.content):p.current=t.content)}}catch(e){}K(null)},[q]),ne=(0,t.useCallback)(()=>{const e=l.current;e&&!e.removed&&(c.current=e.selection.getBookmark(2,!0))},[]),oe=(0,t.useCallback)(()=>{const e=l.current;if(!e||e.removed)return null;if(e.focus(),c.current){try{e.selection.moveToBookmark(c.current)}catch(e){}c.current=null}return e},[]),ie=(0,t.useCallback)((e,t)=>{const a=oe();a&&("undo"===e?a.undoManager.undo():"redo"===e?a.undoManager.redo():"format"===e?("p"===t?a.execCommand("FormatBlock",!1,"p"):a.formatter.toggle(t||"h2"),W(a)):a.execCommand(e),a.nodeChanged())},[oe]),le=(0,t.useCallback)(()=>{const e=oe();if(!e)return;const t=window.wpLink;if(t&&"function"==typeof t.open)return void t.open(e.id);const r=window.prompt((0,a.__)("输入链接地址","jio"),"https://"),n=r?v(r):"";n&&e.execCommand("mceInsertLink",!1,{href:n})},[oe]),ce=(0,t.useCallback)(e=>{const t=l.current,r=window.JioSubmitMedia;t&&r&&"function"==typeof r.open?(ne(),r.open({type:e,multiple:"image"===e&&void 0,onSelect:t=>{const a=Array.isArray(t)?t:[t],r=oe();if(!r)return;const n=a.map(t=>{const a=v(t?.large_url||t?.url);if(!a)return"";const r=Number(t.attachment_id||t.id||0),n=r>0?` data-edit-file-id="${r}"`:"";if("image"===e){const e=v(t?.url||a),r=e?` data-full-url="${h(e)}"`:"";return`
})
`}return``}).join("");n&&(r.insertContent(n),r.nodeChanged(),V(r.getContent()),H(r))},onEmbed:e=>{const t=oe();t&&(t.insertContent(`${e}`),t.nodeChanged(),V(t.getContent()),H(t))}})):$({tone:"error",text:(0,a.__)("媒体工具尚未加载,请刷新页面后重试。","jio")})},[oe,ne]);return(0,e.createElement)("div",{className:"jio-creator","data-status":b.status||"","data-editor-ready":C?"true":"false"},(0,e.createElement)("header",{className:"jio-creator__bar"},(0,e.createElement)("div",{className:"jio-creator__bar-left"},(0,e.createElement)("a",{className:"jio-creator__back",href:b.urls?.center||"/","aria-label":(0,a.__)("返回作者中心","jio")},(0,e.createElement)("i",{className:"fa fas fa-angle-left","aria-hidden":"true"})),(0,e.createElement)("span",{className:"jio-creator__bar-brand"},"Jio"),(0,e.createElement)("span",{className:"jio-creator__bar-divider","aria-hidden":"true"}),(0,e.createElement)("span",{className:"jio-creator__bar-mode"},J?(0,a.__)("修改文章","jio"):(0,a.__)("写文章","jio"))),(0,e.createElement)(d,{ready:C,formatValue:M,onFormatChange:L,canUndo:x.canUndo,canRedo:x.canRedo,capabilities:A,onCommand:ie,onRememberSelection:ne,onOpenLink:le,onOpenMedia:ce}),(0,e.createElement)("div",{className:"jio-creator__bar-actions jio-creator__toolbar-extension","data-toolbar-extension":!0,"aria-label":(0,a.__)("工具扩展区","jio")},(0,e.createElement)(_,{value:R}),(0,e.createElement)("button",{type:"button",className:"jio-creator__save-draft",onClick:()=>{Z(!1)},disabled:!C},(0,e.createElement)("i",{className:"fa fas fa-save","aria-hidden":"true"}),(0,e.createElement)("span",null,(0,a.__)("保存草稿","jio"))),(0,e.createElement)("button",{type:"button",className:"jio-creator__ghost jio-creator__preview",onClick:()=>{Q()}},(0,a.__)("预览","jio")),(0,e.createElement)("button",{type:"button",className:"jio-creator__primary",onClick:()=>U(!0)},J?(0,a.__)("提交改稿","jio"):(0,a.__)("发布","jio")))),F&&(0,e.createElement)("div",{className:"jio-creator__notice",role:"status"},(0,e.createElement)("span",null,(0,a.__)("发现本地未同步的草稿。","jio")),(0,e.createElement)("button",{type:"button",onClick:re},(0,a.__)("恢复","jio")),(0,e.createElement)("button",{type:"button",onClick:()=>K(null)},(0,a.__)("忽略","jio"))),O&&(0,e.createElement)("div",{className:`jio-creator__notice is-${O.tone}`,role:"status"},(0,e.createElement)("span",null,O.text),(0,e.createElement)("button",{type:"button",onClick:()=>$(null),"aria-label":(0,a.__)("关闭","jio")},(0,e.createElement)("i",{className:"fa fas fa-times","aria-hidden":"true"}))),J&&(0,e.createElement)("p",{className:"jio-creator__hint"},(0,a.__)("这篇改稿不会立即覆盖线上文章;审核通过后才会替换。","jio")),(0,e.createElement)("main",{className:"jio-creator__canvas"},(0,e.createElement)(u,{featured:r.featured,canEdit:!!A.canUploadImage,onOpen:()=>U(!0),onClear:()=>q({featured:{type:"",data:{}}})}),(0,e.createElement)("label",{className:"jio-creator__title"},(0,e.createElement)("span",{className:"screen-reader-text"},(0,a.__)("文章标题","jio")),(0,e.createElement)("textarea",{value:r.title,onChange:e=>q({title:e.target.value}),rows:1,placeholder:B.titlePlaceholder||(0,a.__)("请输入标题","jio"),maxLength:4*(Number(B.titleMax)||30)})),(0,e.createElement)("label",{className:"jio-creator__excerpt"},(0,e.createElement)("span",null,(0,a.__)("摘要(可选)","jio")),(0,e.createElement)("textarea",{value:r.excerpt,onChange:e=>q({excerpt:e.target.value}),rows:2,placeholder:(0,a.__)("一句话概括这篇文章","jio")})),(0,e.createElement)(m,{author:b.author||{}}),(0,e.createElement)("div",{className:"jio-creator__editor","data-editor-ready":C?"true":"false"},(0,e.createElement)("textarea",{id:E,defaultValue:r.content,onChange:e=>V(e.target.value),"aria-label":(0,a.__)("文章正文","jio")})),(0,e.createElement)("footer",{className:"jio-creator__footer"},(0,e.createElement)("span",null,(0,a.__)("字数","jio"),":",X),(0,e.createElement)("span",null,(0,a.__)("约","jio")," ",Math.max(1,Math.round(X/400))," ",(0,a.__)("分钟阅读","jio")))),P&&(0,e.createElement)(s,{draft:r,setDraft:q,capabilities:A,limits:B,taxonomy:{categories:b.categories&&b.categories.items||[],tags:!!b.tags?.enabled,customDefs:b.customDefs||[]},isPublishedEdit:J,onClose:()=>U(!1),onSaveDraft:()=>{Z(!1)},onSubmit:e=>{G(e)},privateStorage:!!b.privateStorage,privateUploads:b.privateUploads||[],captcha:!!b.captcha?.enabled,saving:"saving"===R.state||"submitting"===R.state}))}function k(){const a=document.getElementById("jio-creator-studio");a&&(a.classList.add("is-ready"),(0,t.createRoot)(a).render((0,e.createElement)(w,null)))}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",k):k()})();
\ No newline at end of file
diff --git a/assets/creator-studio/package-lock.json b/assets/creator-studio/package-lock.json
index 8f49b491..e99d4d2a 100644
--- a/assets/creator-studio/package-lock.json
+++ b/assets/creator-studio/package-lock.json
@@ -10,63 +10,13 @@
"devDependencies": {
"@types/react": "18.3.31",
"@types/react-dom": "18.3.7",
- "@wordpress/api-fetch": "^6.28.0",
- "@wordpress/block-editor": "11.8.0",
- "@wordpress/block-library": "^8.8.0",
- "@wordpress/blocks": "12.8.0",
- "@wordpress/components": "^23.8.0",
- "@wordpress/compose": "^6.8.0",
- "@wordpress/data": "9.5.0",
"@wordpress/element": "5.8.0",
- "@wordpress/hooks": "^3.31.0",
"@wordpress/i18n": "4.31.0",
"@wordpress/scripts": "26.4.0",
- "@wordpress/wordcount": "3.31.0",
"sass": "1.77.8",
"typescript": "5.4.5"
}
},
- "node_modules/@ariakit/core": {
- "version": "0.3.11",
- "resolved": "https://registry.npmjs.org/@ariakit/core/-/core-0.3.11.tgz",
- "integrity": "sha512-+MnOeqnA4FLI/7vqsZLbZQHHN4ofd9kvkNjz44fNi0gqmD+ZbMWiDkFAvZII75dYnxYw5ZPpWjA4waK22VBWig==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@ariakit/react": {
- "version": "0.3.14",
- "resolved": "https://registry.npmjs.org/@ariakit/react/-/react-0.3.14.tgz",
- "integrity": "sha512-h71BPMZ2eW+E2ESbdYxSAEMR1DozYzd5eHE5IOzGd9Egi5u7EZxqmuW4CXVXZ1Y6vbaDMV3SudgPh7iHS/ArFw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@ariakit/react-core": "0.3.14"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/ariakit"
- },
- "peerDependencies": {
- "react": "^17.0.0 || ^18.0.0",
- "react-dom": "^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@ariakit/react-core": {
- "version": "0.3.14",
- "resolved": "https://registry.npmjs.org/@ariakit/react-core/-/react-core-0.3.14.tgz",
- "integrity": "sha512-16Qj6kDPglpdWtU5roY9q+G66naOjauTY5HvUIaL2aLY0187ATaRrABIKoMMzTtJyhvsud4jFlzivz+/zCQ8yw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@ariakit/core": "0.3.11",
- "@floating-ui/dom": "^1.0.0",
- "use-sync-external-store": "^1.2.0"
- },
- "peerDependencies": {
- "react": "^17.0.0 || ^18.0.0",
- "react-dom": "^17.0.0 || ^18.0.0"
- }
- },
"node_modules/@babel/code-frame": {
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz",
@@ -2073,179 +2023,6 @@
"node": ">=10.0.0"
}
},
- "node_modules/@emotion/babel-plugin": {
- "version": "11.13.5",
- "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz",
- "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-module-imports": "^7.16.7",
- "@babel/runtime": "^7.18.3",
- "@emotion/hash": "^0.9.2",
- "@emotion/memoize": "^0.9.0",
- "@emotion/serialize": "^1.3.3",
- "babel-plugin-macros": "^3.1.0",
- "convert-source-map": "^1.5.0",
- "escape-string-regexp": "^4.0.0",
- "find-root": "^1.1.0",
- "source-map": "^0.5.7",
- "stylis": "4.2.0"
- }
- },
- "node_modules/@emotion/cache": {
- "version": "11.14.0",
- "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz",
- "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@emotion/memoize": "^0.9.0",
- "@emotion/sheet": "^1.4.0",
- "@emotion/utils": "^1.4.2",
- "@emotion/weak-memoize": "^0.4.0",
- "stylis": "4.2.0"
- }
- },
- "node_modules/@emotion/css": {
- "version": "11.13.5",
- "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.13.5.tgz",
- "integrity": "sha512-wQdD0Xhkn3Qy2VNcIzbLP9MR8TafI0MJb7BEAXKp+w4+XqErksWR4OXomuDzPsN4InLdGhVe6EYcn2ZIUCpB8w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@emotion/babel-plugin": "^11.13.5",
- "@emotion/cache": "^11.13.5",
- "@emotion/serialize": "^1.3.3",
- "@emotion/sheet": "^1.4.0",
- "@emotion/utils": "^1.4.2"
- }
- },
- "node_modules/@emotion/hash": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz",
- "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@emotion/is-prop-valid": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz",
- "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@emotion/memoize": "^0.9.0"
- }
- },
- "node_modules/@emotion/memoize": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz",
- "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@emotion/react": {
- "version": "11.14.0",
- "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz",
- "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.18.3",
- "@emotion/babel-plugin": "^11.13.5",
- "@emotion/cache": "^11.14.0",
- "@emotion/serialize": "^1.3.3",
- "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0",
- "@emotion/utils": "^1.4.2",
- "@emotion/weak-memoize": "^0.4.0",
- "hoist-non-react-statics": "^3.3.1"
- },
- "peerDependencies": {
- "react": ">=16.8.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@emotion/serialize": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz",
- "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@emotion/hash": "^0.9.2",
- "@emotion/memoize": "^0.9.0",
- "@emotion/unitless": "^0.10.0",
- "@emotion/utils": "^1.4.2",
- "csstype": "^3.0.2"
- }
- },
- "node_modules/@emotion/sheet": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz",
- "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@emotion/styled": {
- "version": "11.14.1",
- "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.1.tgz",
- "integrity": "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.18.3",
- "@emotion/babel-plugin": "^11.13.5",
- "@emotion/is-prop-valid": "^1.3.0",
- "@emotion/serialize": "^1.3.3",
- "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0",
- "@emotion/utils": "^1.4.2"
- },
- "peerDependencies": {
- "@emotion/react": "^11.0.0-rc.0",
- "react": ">=16.8.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@emotion/unitless": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz",
- "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@emotion/use-insertion-effect-with-fallbacks": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz",
- "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "react": ">=16.8.0"
- }
- },
- "node_modules/@emotion/utils": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz",
- "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@emotion/weak-memoize": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz",
- "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@es-joy/jsdoccomment": {
"version": "0.36.1",
"resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.36.1.tgz",
@@ -2367,48 +2144,6 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
- "node_modules/@floating-ui/core": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.8.0.tgz",
- "integrity": "sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@floating-ui/utils": "^0.2.12"
- }
- },
- "node_modules/@floating-ui/dom": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.8.0.tgz",
- "integrity": "sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@floating-ui/core": "^1.8.0",
- "@floating-ui/utils": "^0.2.12"
- }
- },
- "node_modules/@floating-ui/react-dom": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-1.0.0.tgz",
- "integrity": "sha512-uiOalFKPG937UCLm42RxjESTWUVpbbatvlphQAU6bsv+ence6IoVG8JOUZcy8eW81NkU+Idiwvx10WFLmR4MIg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@floating-ui/dom": "^1.0.0"
- },
- "peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
- }
- },
- "node_modules/@floating-ui/utils": {
- "version": "0.2.12",
- "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.12.tgz",
- "integrity": "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@hapi/hoek": {
"version": "9.3.0",
"resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
@@ -2906,76 +2641,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/@motionone/animation": {
- "version": "10.18.0",
- "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.18.0.tgz",
- "integrity": "sha512-9z2p5GFGCm0gBsZbi8rVMOAJCtw1WqBTIPw3ozk06gDvZInBPIsQcHgYogEJ4yuHJ+akuW8g1SEIOpTOvYs8hw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@motionone/easing": "^10.18.0",
- "@motionone/types": "^10.17.1",
- "@motionone/utils": "^10.18.0",
- "tslib": "^2.3.1"
- }
- },
- "node_modules/@motionone/dom": {
- "version": "10.18.0",
- "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.18.0.tgz",
- "integrity": "sha512-bKLP7E0eyO4B2UaHBBN55tnppwRnaE3KFfh3Ps9HhnAkar3Cb69kUCJY9as8LrccVYKgHA+JY5dOQqJLOPhF5A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@motionone/animation": "^10.18.0",
- "@motionone/generators": "^10.18.0",
- "@motionone/types": "^10.17.1",
- "@motionone/utils": "^10.18.0",
- "hey-listen": "^1.0.8",
- "tslib": "^2.3.1"
- }
- },
- "node_modules/@motionone/easing": {
- "version": "10.18.0",
- "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.18.0.tgz",
- "integrity": "sha512-VcjByo7XpdLS4o9T8t99JtgxkdMcNWD3yHU/n6CLEz3bkmKDRZyYQ/wmSf6daum8ZXqfUAgFeCZSpJZIMxaCzg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@motionone/utils": "^10.18.0",
- "tslib": "^2.3.1"
- }
- },
- "node_modules/@motionone/generators": {
- "version": "10.18.0",
- "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.18.0.tgz",
- "integrity": "sha512-+qfkC2DtkDj4tHPu+AFKVfR/C30O1vYdvsGYaR13W/1cczPrrcjdvYCj0VLFuRMN+lP1xvpNZHCRNM4fBzn1jg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@motionone/types": "^10.17.1",
- "@motionone/utils": "^10.18.0",
- "tslib": "^2.3.1"
- }
- },
- "node_modules/@motionone/types": {
- "version": "10.17.1",
- "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.17.1.tgz",
- "integrity": "sha512-KaC4kgiODDz8hswCrS0btrVrzyU2CSQKO7Ps90ibBVSQmjkrt2teqta6/sOG59v7+dPnKMAg13jyqtMKV2yJ7A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@motionone/utils": {
- "version": "10.18.0",
- "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.18.0.tgz",
- "integrity": "sha512-3XVF7sgyTSI2KWvTf6uLlBJ5iAgRgmvp3bpuOiQJvInd4nZ19ET8lX5unn30SlmRH7hXbBbH+Gxd0m0klJ3Xtw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@motionone/types": "^10.17.1",
- "hey-listen": "^1.0.8",
- "tslib": "^2.3.1"
- }
- },
"node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
"version": "5.1.1-v1",
"resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
@@ -3090,336 +2755,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/@popperjs/core": {
- "version": "2.11.8",
- "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
- "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/popperjs"
- }
- },
- "node_modules/@radix-ui/primitive": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.0.tgz",
- "integrity": "sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.13.10"
- }
- },
- "node_modules/@radix-ui/react-compose-refs": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz",
- "integrity": "sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.13.10"
- },
- "peerDependencies": {
- "react": "^16.8 || ^17.0 || ^18.0"
- }
- },
- "node_modules/@radix-ui/react-context": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.0.tgz",
- "integrity": "sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.13.10"
- },
- "peerDependencies": {
- "react": "^16.8 || ^17.0 || ^18.0"
- }
- },
- "node_modules/@radix-ui/react-dialog": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.0.tgz",
- "integrity": "sha512-Yn9YU+QlHYLWwV1XfKiqnGVpWYWk6MeBVM6x/bcoyPvxgjQGoeT35482viLPctTMWoMw0PoHgqfSox7Ig+957Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/primitive": "1.0.0",
- "@radix-ui/react-compose-refs": "1.0.0",
- "@radix-ui/react-context": "1.0.0",
- "@radix-ui/react-dismissable-layer": "1.0.0",
- "@radix-ui/react-focus-guards": "1.0.0",
- "@radix-ui/react-focus-scope": "1.0.0",
- "@radix-ui/react-id": "1.0.0",
- "@radix-ui/react-portal": "1.0.0",
- "@radix-ui/react-presence": "1.0.0",
- "@radix-ui/react-primitive": "1.0.0",
- "@radix-ui/react-slot": "1.0.0",
- "@radix-ui/react-use-controllable-state": "1.0.0",
- "aria-hidden": "^1.1.1",
- "react-remove-scroll": "2.5.4"
- },
- "peerDependencies": {
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- }
- },
- "node_modules/@radix-ui/react-dismissable-layer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.0.tgz",
- "integrity": "sha512-n7kDRfx+LB1zLueRDvZ1Pd0bxdJWDUZNQ/GWoxDn2prnuJKRdxsjulejX/ePkOsLi2tTm6P24mDqlMSgQpsT6g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/primitive": "1.0.0",
- "@radix-ui/react-compose-refs": "1.0.0",
- "@radix-ui/react-primitive": "1.0.0",
- "@radix-ui/react-use-callback-ref": "1.0.0",
- "@radix-ui/react-use-escape-keydown": "1.0.0"
- },
- "peerDependencies": {
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- }
- },
- "node_modules/@radix-ui/react-focus-guards": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.0.tgz",
- "integrity": "sha512-UagjDk4ijOAnGu4WMUPj9ahi7/zJJqNZ9ZAiGPp7waUWJO0O1aWXi/udPphI0IUjvrhBsZJGSN66dR2dsueLWQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.13.10"
- },
- "peerDependencies": {
- "react": "^16.8 || ^17.0 || ^18.0"
- }
- },
- "node_modules/@radix-ui/react-focus-scope": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.0.tgz",
- "integrity": "sha512-C4SWtsULLGf/2L4oGeIHlvWQx7Rf+7cX/vKOAD2dXW0A1b5QXwi3wWeaEgW+wn+SEVrraMUk05vLU9fZZz5HbQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-compose-refs": "1.0.0",
- "@radix-ui/react-primitive": "1.0.0",
- "@radix-ui/react-use-callback-ref": "1.0.0"
- },
- "peerDependencies": {
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- }
- },
- "node_modules/@radix-ui/react-id": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.0.tgz",
- "integrity": "sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-use-layout-effect": "1.0.0"
- },
- "peerDependencies": {
- "react": "^16.8 || ^17.0 || ^18.0"
- }
- },
- "node_modules/@radix-ui/react-portal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.0.tgz",
- "integrity": "sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-primitive": "1.0.0"
- },
- "peerDependencies": {
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- }
- },
- "node_modules/@radix-ui/react-presence": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.0.tgz",
- "integrity": "sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-compose-refs": "1.0.0",
- "@radix-ui/react-use-layout-effect": "1.0.0"
- },
- "peerDependencies": {
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- }
- },
- "node_modules/@radix-ui/react-primitive": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.0.tgz",
- "integrity": "sha512-EyXe6mnRlHZ8b6f4ilTDrXmkLShICIuOTTj0GX4w1rp+wSxf3+TD05u1UOITC8VsJ2a9nwHvdXtOXEOl0Cw/zQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-slot": "1.0.0"
- },
- "peerDependencies": {
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- }
- },
- "node_modules/@radix-ui/react-slot": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.0.tgz",
- "integrity": "sha512-3mrKauI/tWXo1Ll+gN5dHcxDPdm/Df1ufcDLCecn+pnCIVcdWE7CujXo8QaXOWRJyZyQWWbpB8eFwHzWXlv5mQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-compose-refs": "1.0.0"
- },
- "peerDependencies": {
- "react": "^16.8 || ^17.0 || ^18.0"
- }
- },
- "node_modules/@radix-ui/react-use-callback-ref": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.0.tgz",
- "integrity": "sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.13.10"
- },
- "peerDependencies": {
- "react": "^16.8 || ^17.0 || ^18.0"
- }
- },
- "node_modules/@radix-ui/react-use-controllable-state": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.0.tgz",
- "integrity": "sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-use-callback-ref": "1.0.0"
- },
- "peerDependencies": {
- "react": "^16.8 || ^17.0 || ^18.0"
- }
- },
- "node_modules/@radix-ui/react-use-escape-keydown": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.0.tgz",
- "integrity": "sha512-JwfBCUIfhXRxKExgIqGa4CQsiMemo1Xt0W/B4ei3fpzpvPENKpMKQ8mZSB6Acj3ebrAEgi2xiQvcI1PAAodvyg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-use-callback-ref": "1.0.0"
- },
- "peerDependencies": {
- "react": "^16.8 || ^17.0 || ^18.0"
- }
- },
- "node_modules/@radix-ui/react-use-layout-effect": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.0.tgz",
- "integrity": "sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.13.10"
- },
- "peerDependencies": {
- "react": "^16.8 || ^17.0 || ^18.0"
- }
- },
- "node_modules/@react-spring/animated": {
- "version": "9.7.5",
- "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.5.tgz",
- "integrity": "sha512-Tqrwz7pIlsSDITzxoLS3n/v/YCUHQdOIKtOJf4yL6kYVSDTSmVK1LI1Q3M/uu2Sx4X3pIWF3xLUhlsA6SPNTNg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@react-spring/shared": "~9.7.5",
- "@react-spring/types": "~9.7.5"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@react-spring/core": {
- "version": "9.7.5",
- "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.5.tgz",
- "integrity": "sha512-rmEqcxRcu7dWh7MnCcMXLvrf6/SDlSokLaLTxiPlAYi11nN3B5oiCUAblO72o+9z/87j2uzxa2Inm8UbLjXA+w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@react-spring/animated": "~9.7.5",
- "@react-spring/shared": "~9.7.5",
- "@react-spring/types": "~9.7.5"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/react-spring/donate"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@react-spring/rafz": {
- "version": "9.7.5",
- "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.7.5.tgz",
- "integrity": "sha512-5ZenDQMC48wjUzPAm1EtwQ5Ot3bLIAwwqP2w2owG5KoNdNHpEJV263nGhCeKKmuA3vG2zLLOdu3or6kuDjA6Aw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@react-spring/shared": {
- "version": "9.7.5",
- "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.5.tgz",
- "integrity": "sha512-wdtoJrhUeeyD/PP/zo+np2s1Z820Ohr/BbuVYv+3dVLW7WctoiN7std8rISoYoHpUXtbkpesSKuPIw/6U1w1Pw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@react-spring/rafz": "~9.7.5",
- "@react-spring/types": "~9.7.5"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@react-spring/types": {
- "version": "9.7.5",
- "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.5.tgz",
- "integrity": "sha512-HVj7LrZ4ReHWBimBvu2SKND3cDVUPWKLqRTmWe/fNY6o1owGOX0cAHbdPDTMelgBlVbrTKrre6lFkhqGZErK/g==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@react-spring/web": {
- "version": "9.7.5",
- "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.7.5.tgz",
- "integrity": "sha512-lmvqGwpe+CSttsWNZVr+Dg62adtKhauGwLyGE/RRyZ8AAMLgb9x3NDMA5RMElXo+IMyTkPp7nxTB8ZQlmhb6JQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@react-spring/animated": "~9.7.5",
- "@react-spring/core": "~9.7.5",
- "@react-spring/shared": "~9.7.5",
- "@react-spring/types": "~9.7.5"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
"node_modules/@rtsao/scc": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
@@ -3948,20 +3283,6 @@
"@types/node": "*"
}
},
- "node_modules/@types/gradient-parser": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@types/gradient-parser/-/gradient-parser-0.1.3.tgz",
- "integrity": "sha512-XDbrTSBlQV9nxE1GiDL3FaOPy4G/KaJkhDutBX48Kg8CYZMBARyyDFGCWfWJn4pobmInmwud1xxH7VJMAr0CKQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/highlight-words-core": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@types/highlight-words-core/-/highlight-words-core-1.2.1.tgz",
- "integrity": "sha512-9VZUA5omXBfn+hDxFjUDu1FOJTBM3LmvqfDey+Z6Aa8B8/JmF5SMj6FBrjfgJ/Q3YXOZd3qyTDfJyMZSs/wCUA==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@types/http-errors": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz",
@@ -4053,13 +3374,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/@types/mousetrap": {
- "version": "1.6.15",
- "resolved": "https://registry.npmjs.org/@types/mousetrap/-/mousetrap-1.6.15.tgz",
- "integrity": "sha512-qL0hyIMNPow317QWW/63RvL1x5MVMV+Ru3NaY9f/CuEpCqrmb7WeuK2071ZY5hczOnm38qExWM2i2WtkXLSqFw==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@types/node": {
"version": "26.6.6",
"resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.6.tgz",
@@ -4193,16 +3507,6 @@
"@types/node": "*"
}
},
- "node_modules/@types/simple-peer": {
- "version": "9.11.9",
- "resolved": "https://registry.npmjs.org/@types/simple-peer/-/simple-peer-9.11.9.tgz",
- "integrity": "sha512-6Gdl7TSS5oh9nuwKD4Pl8cSmaxWycYeZz9HLnJBNvIwWjZuGVsmHe9RwW3+9RxfhC1aIR9Z83DvaJoMw6rhkbg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
"node_modules/@types/sockjs": {
"version": "0.3.36",
"resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
@@ -4601,26 +3905,6 @@
"dev": true,
"license": "ISC"
},
- "node_modules/@use-gesture/core": {
- "version": "10.3.1",
- "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.3.1.tgz",
- "integrity": "sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@use-gesture/react": {
- "version": "10.3.1",
- "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.3.1.tgz",
- "integrity": "sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@use-gesture/core": "10.3.1"
- },
- "peerDependencies": {
- "react": ">= 16.8.0"
- }
- },
"node_modules/@webassemblyjs/ast": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
@@ -4821,90 +4105,6 @@
}
}
},
- "node_modules/@wordpress/a11y": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/a11y/-/a11y-3.58.0.tgz",
- "integrity": "sha512-7NnJKl4+pxP6kV/jvXaJcZZCGzW7zaj6YeMnyjUd96cH4ta1ykBIveWgejerFOGsbK+88FnStcxSFj+dbDXs/w==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/dom-ready": "^3.58.0",
- "@wordpress/i18n": "^4.58.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/a11y/node_modules/@wordpress/hooks": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
- "integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/a11y/node_modules/@wordpress/i18n": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
- "integrity": "sha512-VfvS3BWv/RDjRKD6PscIcvYfWKnGJcI/DEqyDgUMhxCM6NRwoL478CsUKTiGJIymeyRodNRfprdcF086DpGKYw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/hooks": "^3.58.0",
- "gettext-parser": "^1.3.1",
- "memize": "^2.1.0",
- "sprintf-js": "^1.1.1",
- "tannin": "^1.2.0"
- },
- "bin": {
- "pot-to-php": "tools/pot-to-php.js"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/a11y/node_modules/memize": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.1.tgz",
- "integrity": "sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@wordpress/api-fetch": {
- "version": "6.28.0",
- "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.28.0.tgz",
- "integrity": "sha512-kEe8zqjEs1paZAS0ZSaUkiLTIrNFBy11ZkdBDYOYgl707zZCQt50HYs/J+zATWegWpp5scd4Tt18cJy1O9dosg==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/i18n": "^4.31.0",
- "@wordpress/url": "^3.32.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/autop": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/autop/-/autop-3.58.0.tgz",
- "integrity": "sha512-RsdUV57A+DTJGU3slq/S9vTOtVkatnT1YyGIK3UDKaEhXkvBPtLTWwd3WR13GCfjFZ5XupH9FAGUQFkOve0eKQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/@wordpress/babel-plugin-import-jsx-pragma": {
"version": "4.41.0",
"resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.41.0.tgz",
@@ -4949,427 +4149,6 @@
"dev": true,
"license": "GPL-2.0-or-later"
},
- "node_modules/@wordpress/blob": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/blob/-/blob-3.58.0.tgz",
- "integrity": "sha512-6L3WqbOWEGFOSs3vLMwJ83YScggCiJ9NvZj1kC7mgeiP302UP2Fxkt4KlfjeTsD350XcvakkD/57wRkHXd819Q==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/block-editor": {
- "version": "11.8.0",
- "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-11.8.0.tgz",
- "integrity": "sha512-rSiDZaIXR9iMAdtRR78ZEYrIxgHop1IrGIUNOwacEc5pDYXFHxGveSZp5MhRlL8n9wkV5UdwZUD8gMAHwYpuyw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@react-spring/web": "^9.4.5",
- "@wordpress/a11y": "^3.31.0",
- "@wordpress/api-fetch": "^6.28.0",
- "@wordpress/blob": "^3.31.0",
- "@wordpress/blocks": "^12.8.0",
- "@wordpress/components": "^23.8.0",
- "@wordpress/compose": "^6.8.0",
- "@wordpress/data": "^9.1.0",
- "@wordpress/date": "^4.31.0",
- "@wordpress/deprecated": "^3.31.0",
- "@wordpress/dom": "^3.31.0",
- "@wordpress/element": "^5.8.0",
- "@wordpress/escape-html": "^2.31.0",
- "@wordpress/hooks": "^3.31.0",
- "@wordpress/html-entities": "^3.31.0",
- "@wordpress/i18n": "^4.31.0",
- "@wordpress/icons": "^9.22.0",
- "@wordpress/is-shallow-equal": "^4.31.0",
- "@wordpress/keyboard-shortcuts": "^4.8.0",
- "@wordpress/keycodes": "^3.31.0",
- "@wordpress/notices": "^3.31.0",
- "@wordpress/preferences": "^3.8.0",
- "@wordpress/private-apis": "^0.13.0",
- "@wordpress/rich-text": "^6.8.0",
- "@wordpress/shortcode": "^3.31.0",
- "@wordpress/style-engine": "^1.14.0",
- "@wordpress/token-list": "^2.31.0",
- "@wordpress/url": "^3.32.0",
- "@wordpress/warning": "^2.31.0",
- "@wordpress/wordcount": "^3.31.0",
- "change-case": "^4.1.2",
- "classnames": "^2.3.1",
- "colord": "^2.7.0",
- "diff": "^4.0.2",
- "dom-scroll-into-view": "^1.2.1",
- "fast-deep-equal": "^3.1.3",
- "inherits": "^2.0.3",
- "lodash": "^4.17.21",
- "react-autosize-textarea": "^7.1.0",
- "react-easy-crop": "^4.5.1",
- "rememo": "^4.0.0",
- "remove-accents": "^0.4.2",
- "traverse": "^0.6.6"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@wordpress/block-editor/node_modules/@wordpress/blocks": {
- "version": "12.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-12.35.0.tgz",
- "integrity": "sha512-BwjMca4aGuttu3C0nLLpt6MBg6IBCogA6ulGTyg+0YdKnwac52k+2wfersqAem8AFgG0hTDwrIpLsWLxpF9dtg==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/autop": "^3.58.0",
- "@wordpress/blob": "^3.58.0",
- "@wordpress/block-serialization-default-parser": "^4.58.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/data": "^9.28.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/hooks": "^3.58.0",
- "@wordpress/html-entities": "^3.58.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/rich-text": "^6.35.0",
- "@wordpress/shortcode": "^3.58.0",
- "change-case": "^4.1.2",
- "colord": "^2.7.0",
- "fast-deep-equal": "^3.1.3",
- "hpq": "^1.3.0",
- "is-plain-object": "^5.0.0",
- "memize": "^2.1.0",
- "react-is": "^18.3.0",
- "remove-accents": "^0.5.0",
- "showdown": "^1.9.1",
- "simple-html-tokenizer": "^0.5.7",
- "uuid": "^9.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/block-editor/node_modules/@wordpress/blocks/node_modules/@wordpress/private-apis": {
- "version": "0.40.0",
- "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-0.40.0.tgz",
- "integrity": "sha512-ZX/9Y8eA3C3K6LOj32bHFj+9tNV819CBd8+chqMmmlvQRcTngiuXbMbnSdZnnAr1gLQgNpH9PJ60dIwJnGSEtQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/block-editor/node_modules/@wordpress/blocks/node_modules/remove-accents": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz",
- "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@wordpress/block-editor/node_modules/@wordpress/compose": {
- "version": "6.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
- "integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/mousetrap": "^1.6.8",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/keycodes": "^3.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/undo-manager": "^0.18.0",
- "change-case": "^4.1.2",
- "clipboard": "^2.0.11",
- "mousetrap": "^1.6.5",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/block-editor/node_modules/@wordpress/data": {
- "version": "9.28.0",
- "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.28.0.tgz",
- "integrity": "sha512-EDPpZdkngdoW7EMzPpGj0BmNcr7syJO67pgTODtN/4XFIdYL2RKzFyn3nlLBKhX17UsE/ALq9WdijacH4QJ9qw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/redux-routine": "^4.58.0",
- "deepmerge": "^4.3.0",
- "equivalent-key-map": "^0.2.2",
- "is-plain-object": "^5.0.0",
- "is-promise": "^4.0.0",
- "redux": "^4.1.2",
- "rememo": "^4.0.2",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/block-editor/node_modules/@wordpress/data/node_modules/@wordpress/private-apis": {
- "version": "0.40.0",
- "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-0.40.0.tgz",
- "integrity": "sha512-ZX/9Y8eA3C3K6LOj32bHFj+9tNV819CBd8+chqMmmlvQRcTngiuXbMbnSdZnnAr1gLQgNpH9PJ60dIwJnGSEtQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/block-editor/node_modules/@wordpress/element": {
- "version": "5.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.35.0.tgz",
- "integrity": "sha512-puswpGcIdS+0A2g28uHriMkZqqRCmzFczue5Tk99VNtzBdehyk7Ae+DZ4xw5yT6GqYai8NTqv6MRwCB78uh5Mw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/react": "^18.2.79",
- "@types/react-dom": "^18.2.25",
- "@wordpress/escape-html": "^2.58.0",
- "change-case": "^4.1.2",
- "is-plain-object": "^5.0.0",
- "react": "^18.3.0",
- "react-dom": "^18.3.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/block-editor/node_modules/@wordpress/hooks": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
- "integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/block-editor/node_modules/@wordpress/i18n": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
- "integrity": "sha512-VfvS3BWv/RDjRKD6PscIcvYfWKnGJcI/DEqyDgUMhxCM6NRwoL478CsUKTiGJIymeyRodNRfprdcF086DpGKYw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/hooks": "^3.58.0",
- "gettext-parser": "^1.3.1",
- "memize": "^2.1.0",
- "sprintf-js": "^1.1.1",
- "tannin": "^1.2.0"
- },
- "bin": {
- "pot-to-php": "tools/pot-to-php.js"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/block-editor/node_modules/memize": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.1.tgz",
- "integrity": "sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@wordpress/block-editor/node_modules/react-is": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
- "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@wordpress/block-editor/node_modules/remove-accents": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.4.tgz",
- "integrity": "sha512-EpFcOa/ISetVHEXqu+VwI96KZBmq+a8LJnGkaeFw45epGlxIZz5dhEEnNZMsQXgORu3qaMoLX4qJCzOik6ytAg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@wordpress/block-editor/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).",
- "dev": true,
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/@wordpress/block-library": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/@wordpress/block-library/-/block-library-8.8.0.tgz",
- "integrity": "sha512-/zu/zHEIlkrpg8YgzMRjE2ZOmqDnnSEaS1D6FRHs0y0AQFfMl60I3c6uBJG9dia7vR1iLqh5Kt/fwGbq/UUTEA==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/a11y": "^3.31.0",
- "@wordpress/api-fetch": "^6.28.0",
- "@wordpress/autop": "^3.31.0",
- "@wordpress/blob": "^3.31.0",
- "@wordpress/block-editor": "^11.8.0",
- "@wordpress/blocks": "^12.8.0",
- "@wordpress/components": "^23.8.0",
- "@wordpress/compose": "^6.8.0",
- "@wordpress/core-data": "^6.8.0",
- "@wordpress/data": "^9.1.0",
- "@wordpress/date": "^4.31.0",
- "@wordpress/deprecated": "^3.31.0",
- "@wordpress/dom": "^3.31.0",
- "@wordpress/element": "^5.8.0",
- "@wordpress/escape-html": "^2.31.0",
- "@wordpress/hooks": "^3.31.0",
- "@wordpress/html-entities": "^3.31.0",
- "@wordpress/i18n": "^4.31.0",
- "@wordpress/icons": "^9.22.0",
- "@wordpress/keycodes": "^3.31.0",
- "@wordpress/notices": "^3.31.0",
- "@wordpress/primitives": "^3.29.0",
- "@wordpress/private-apis": "^0.13.0",
- "@wordpress/reusable-blocks": "^4.8.0",
- "@wordpress/rich-text": "^6.8.0",
- "@wordpress/server-side-render": "^4.8.0",
- "@wordpress/url": "^3.32.0",
- "@wordpress/viewport": "^5.8.0",
- "@wordpress/wordcount": "^3.31.0",
- "change-case": "^4.1.2",
- "classnames": "^2.3.1",
- "colord": "^2.7.0",
- "escape-html": "^1.0.3",
- "fast-average-color": "^9.1.1",
- "fast-deep-equal": "^3.1.3",
- "lodash": "^4.17.21",
- "memize": "^1.1.0",
- "micromodal": "^0.4.10",
- "remove-accents": "^0.4.2"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@wordpress/block-library/node_modules/remove-accents": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.4.tgz",
- "integrity": "sha512-EpFcOa/ISetVHEXqu+VwI96KZBmq+a8LJnGkaeFw45epGlxIZz5dhEEnNZMsQXgORu3qaMoLX4qJCzOik6ytAg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@wordpress/block-serialization-default-parser": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-4.58.0.tgz",
- "integrity": "sha512-++fowmFEJC+1SwiCGuLPO9k+g3rgI2SCAA/p8/Bc1rNgnKB+rowzmQvSIIlRpcUkmOxHOrH5uruOEX27Ksg6uw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/blocks": {
- "version": "12.8.0",
- "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-12.8.0.tgz",
- "integrity": "sha512-tH+Ldp8iD8CHWS/NsXHmK8wwPEj4OnAYTolCNjRmFaX3zy1TWbzsxv2U8fkosjwB8BMwsHrYT9Jp/0M4QUWrgg==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/autop": "^3.31.0",
- "@wordpress/blob": "^3.31.0",
- "@wordpress/block-serialization-default-parser": "^4.31.0",
- "@wordpress/compose": "^6.8.0",
- "@wordpress/data": "^9.1.0",
- "@wordpress/deprecated": "^3.31.0",
- "@wordpress/dom": "^3.31.0",
- "@wordpress/element": "^5.8.0",
- "@wordpress/hooks": "^3.31.0",
- "@wordpress/html-entities": "^3.31.0",
- "@wordpress/i18n": "^4.31.0",
- "@wordpress/is-shallow-equal": "^4.31.0",
- "@wordpress/private-apis": "^0.13.0",
- "@wordpress/shortcode": "^3.31.0",
- "change-case": "^4.1.2",
- "colord": "^2.7.0",
- "fast-deep-equal": "^3.1.3",
- "hpq": "^1.3.0",
- "is-plain-object": "^5.0.0",
- "lodash": "^4.17.21",
- "memize": "^1.1.0",
- "rememo": "^4.0.0",
- "remove-accents": "^0.4.2",
- "showdown": "^1.9.1",
- "simple-html-tokenizer": "^0.5.7",
- "uuid": "^8.3.0"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/blocks/node_modules/remove-accents": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.4.tgz",
- "integrity": "sha512-EpFcOa/ISetVHEXqu+VwI96KZBmq+a8LJnGkaeFw45epGlxIZz5dhEEnNZMsQXgORu3qaMoLX4qJCzOik6ytAg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@wordpress/browserslist-config": {
"version": "5.41.0",
"resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.41.0.tgz",
@@ -5380,961 +4159,6 @@
"node": ">=14"
}
},
- "node_modules/@wordpress/commands": {
- "version": "0.29.0",
- "resolved": "https://registry.npmjs.org/@wordpress/commands/-/commands-0.29.0.tgz",
- "integrity": "sha512-HqTrYfQw/5cdT2hPgmuKW6gugnt1Pqtg9zjRHUa+D4ME7mjR4dYQoHRgnFM+hm8OOuEZRVBsa1kYO3t3041Jew==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/components": "^27.6.0",
- "@wordpress/data": "^9.28.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/icons": "^9.49.0",
- "@wordpress/keyboard-shortcuts": "^4.35.0",
- "@wordpress/private-apis": "^0.40.0",
- "clsx": "^2.1.1",
- "cmdk": "^0.2.0"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@wordpress/commands/node_modules/@floating-ui/react-dom": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.9.tgz",
- "integrity": "sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@floating-ui/dom": "^1.8.0"
- },
- "peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
- }
- },
- "node_modules/@wordpress/commands/node_modules/@wordpress/components": {
- "version": "27.6.0",
- "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-27.6.0.tgz",
- "integrity": "sha512-f+fXENkgrPs5GLo2yu9fEAdVX0KriEatRcjDUyw0+DbNbJR62sCdDtGdhJRW4jPUUoUowxaGO0y4+jvQWxnbyg==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@ariakit/react": "^0.3.12",
- "@babel/runtime": "^7.16.0",
- "@emotion/cache": "^11.7.1",
- "@emotion/css": "^11.7.1",
- "@emotion/react": "^11.7.1",
- "@emotion/serialize": "^1.0.2",
- "@emotion/styled": "^11.6.0",
- "@emotion/utils": "^1.0.0",
- "@floating-ui/react-dom": "^2.0.8",
- "@types/gradient-parser": "0.1.3",
- "@types/highlight-words-core": "1.2.1",
- "@use-gesture/react": "^10.3.1",
- "@wordpress/a11y": "^3.58.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/date": "^4.58.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/escape-html": "^2.58.0",
- "@wordpress/hooks": "^3.58.0",
- "@wordpress/html-entities": "^3.58.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/icons": "^9.49.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/keycodes": "^3.58.0",
- "@wordpress/primitives": "^3.56.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/rich-text": "^6.35.0",
- "@wordpress/warning": "^2.58.0",
- "change-case": "^4.1.2",
- "clsx": "^2.1.1",
- "colord": "^2.7.0",
- "date-fns": "^3.6.0",
- "deepmerge": "^4.3.0",
- "downshift": "^6.0.15",
- "fast-deep-equal": "^3.1.3",
- "framer-motion": "^11.1.9",
- "gradient-parser": "^0.1.5",
- "highlight-words-core": "^1.2.2",
- "is-plain-object": "^5.0.0",
- "memize": "^2.1.0",
- "path-to-regexp": "^6.2.1",
- "re-resizable": "^6.4.0",
- "react-colorful": "^5.3.1",
- "remove-accents": "^0.5.0",
- "use-lilius": "^2.0.5",
- "uuid": "^9.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@wordpress/commands/node_modules/@wordpress/compose": {
- "version": "6.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
- "integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/mousetrap": "^1.6.8",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/keycodes": "^3.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/undo-manager": "^0.18.0",
- "change-case": "^4.1.2",
- "clipboard": "^2.0.11",
- "mousetrap": "^1.6.5",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/commands/node_modules/@wordpress/data": {
- "version": "9.28.0",
- "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.28.0.tgz",
- "integrity": "sha512-EDPpZdkngdoW7EMzPpGj0BmNcr7syJO67pgTODtN/4XFIdYL2RKzFyn3nlLBKhX17UsE/ALq9WdijacH4QJ9qw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/redux-routine": "^4.58.0",
- "deepmerge": "^4.3.0",
- "equivalent-key-map": "^0.2.2",
- "is-plain-object": "^5.0.0",
- "is-promise": "^4.0.0",
- "redux": "^4.1.2",
- "rememo": "^4.0.2",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/commands/node_modules/@wordpress/element": {
- "version": "5.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.35.0.tgz",
- "integrity": "sha512-puswpGcIdS+0A2g28uHriMkZqqRCmzFczue5Tk99VNtzBdehyk7Ae+DZ4xw5yT6GqYai8NTqv6MRwCB78uh5Mw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/react": "^18.2.79",
- "@types/react-dom": "^18.2.25",
- "@wordpress/escape-html": "^2.58.0",
- "change-case": "^4.1.2",
- "is-plain-object": "^5.0.0",
- "react": "^18.3.0",
- "react-dom": "^18.3.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/commands/node_modules/@wordpress/hooks": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
- "integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/commands/node_modules/@wordpress/i18n": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
- "integrity": "sha512-VfvS3BWv/RDjRKD6PscIcvYfWKnGJcI/DEqyDgUMhxCM6NRwoL478CsUKTiGJIymeyRodNRfprdcF086DpGKYw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/hooks": "^3.58.0",
- "gettext-parser": "^1.3.1",
- "memize": "^2.1.0",
- "sprintf-js": "^1.1.1",
- "tannin": "^1.2.0"
- },
- "bin": {
- "pot-to-php": "tools/pot-to-php.js"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/commands/node_modules/@wordpress/private-apis": {
- "version": "0.40.0",
- "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-0.40.0.tgz",
- "integrity": "sha512-ZX/9Y8eA3C3K6LOj32bHFj+9tNV819CBd8+chqMmmlvQRcTngiuXbMbnSdZnnAr1gLQgNpH9PJ60dIwJnGSEtQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/commands/node_modules/date-fns": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz",
- "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/kossnocorp"
- }
- },
- "node_modules/@wordpress/commands/node_modules/memize": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.1.tgz",
- "integrity": "sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@wordpress/commands/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).",
- "dev": true,
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/@wordpress/components": {
- "version": "23.8.0",
- "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-23.8.0.tgz",
- "integrity": "sha512-zVmjP3xEEx48vwGPL9dudQ1zNOjVEl3o2vMlQO80OLqSelYCIMPzP0r+pxajZY9jMyH4ERy7IF6I/CkvnI+Glw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@emotion/cache": "^11.7.1",
- "@emotion/css": "^11.7.1",
- "@emotion/react": "^11.7.1",
- "@emotion/serialize": "^1.0.2",
- "@emotion/styled": "^11.6.0",
- "@emotion/utils": "^1.0.0",
- "@floating-ui/react-dom": "1.0.0",
- "@use-gesture/react": "^10.2.24",
- "@wordpress/a11y": "^3.31.0",
- "@wordpress/compose": "^6.8.0",
- "@wordpress/date": "^4.31.0",
- "@wordpress/deprecated": "^3.31.0",
- "@wordpress/dom": "^3.31.0",
- "@wordpress/element": "^5.8.0",
- "@wordpress/escape-html": "^2.31.0",
- "@wordpress/hooks": "^3.31.0",
- "@wordpress/html-entities": "^3.31.0",
- "@wordpress/i18n": "^4.31.0",
- "@wordpress/icons": "^9.22.0",
- "@wordpress/is-shallow-equal": "^4.31.0",
- "@wordpress/keycodes": "^3.31.0",
- "@wordpress/primitives": "^3.29.0",
- "@wordpress/private-apis": "^0.13.0",
- "@wordpress/rich-text": "^6.8.0",
- "@wordpress/warning": "^2.31.0",
- "change-case": "^4.1.2",
- "classnames": "^2.3.1",
- "colord": "^2.7.0",
- "date-fns": "^2.28.0",
- "deepmerge": "^4.3.0",
- "dom-scroll-into-view": "^1.2.1",
- "downshift": "^6.0.15",
- "fast-deep-equal": "^3.1.3",
- "framer-motion": "^7.6.1",
- "gradient-parser": "^0.1.5",
- "highlight-words-core": "^1.2.2",
- "is-plain-object": "^5.0.0",
- "lodash": "^4.17.21",
- "memize": "^1.1.0",
- "path-to-regexp": "^6.2.1",
- "re-resizable": "^6.4.0",
- "react-colorful": "^5.3.1",
- "reakit": "^1.3.8",
- "remove-accents": "^0.4.2",
- "use-lilius": "^2.0.1",
- "uuid": "^8.3.0",
- "valtio": "1.7.0"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@wordpress/components/node_modules/@emotion/is-prop-valid": {
- "version": "0.8.8",
- "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz",
- "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@emotion/memoize": "0.7.4"
- }
- },
- "node_modules/@wordpress/components/node_modules/@emotion/memoize": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
- "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==",
- "dev": true,
- "license": "MIT",
- "optional": true
- },
- "node_modules/@wordpress/components/node_modules/framer-motion": {
- "version": "7.10.3",
- "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-7.10.3.tgz",
- "integrity": "sha512-k2ccYeZNSpPg//HTaqrU+4pRq9f9ZpaaN7rr0+Rx5zA4wZLbk547wtDzge2db1sB+1mnJ6r59P4xb+aEIi/W+w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@motionone/dom": "^10.15.3",
- "hey-listen": "^1.0.8",
- "tslib": "2.4.0"
- },
- "optionalDependencies": {
- "@emotion/is-prop-valid": "^0.8.2"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@wordpress/components/node_modules/remove-accents": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.4.tgz",
- "integrity": "sha512-EpFcOa/ISetVHEXqu+VwI96KZBmq+a8LJnGkaeFw45epGlxIZz5dhEEnNZMsQXgORu3qaMoLX4qJCzOik6ytAg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@wordpress/components/node_modules/tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
- "dev": true,
- "license": "0BSD"
- },
- "node_modules/@wordpress/compose": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.8.0.tgz",
- "integrity": "sha512-E83cseBNGMhUMBT8IziDS0nn0zAJaJCxA0142NuSn88lLA+3Lihz9kV2djpyZz4kWGl9n2XLvoOtdHxpjJYC+A==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/mousetrap": "^1.6.8",
- "@wordpress/deprecated": "^3.31.0",
- "@wordpress/dom": "^3.31.0",
- "@wordpress/element": "^5.8.0",
- "@wordpress/is-shallow-equal": "^4.31.0",
- "@wordpress/keycodes": "^3.31.0",
- "@wordpress/priority-queue": "^2.31.0",
- "change-case": "^4.1.2",
- "clipboard": "^2.0.8",
- "mousetrap": "^1.6.5",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/core-data": {
- "version": "6.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/core-data/-/core-data-6.35.0.tgz",
- "integrity": "sha512-VnESF55nkAkKHQVwj0Oo8AU6w/yWjg/RQb+wKqJRnDuHEKHDAF5PI+9lYmcAsbXdnAc2yyf3lwBGk4w8m4uxlA==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/api-fetch": "^6.55.0",
- "@wordpress/block-editor": "^12.26.0",
- "@wordpress/blocks": "^12.35.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/data": "^9.28.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/html-entities": "^3.58.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/rich-text": "^6.35.0",
- "@wordpress/sync": "^0.20.0",
- "@wordpress/undo-manager": "^0.18.0",
- "@wordpress/url": "^3.59.0",
- "change-case": "^4.1.2",
- "equivalent-key-map": "^0.2.2",
- "fast-deep-equal": "^3.1.3",
- "memize": "^2.1.0",
- "uuid": "^9.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@wordpress/core-data/node_modules/@floating-ui/react-dom": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.9.tgz",
- "integrity": "sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@floating-ui/dom": "^1.8.0"
- },
- "peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
- }
- },
- "node_modules/@wordpress/core-data/node_modules/@wordpress/api-fetch": {
- "version": "6.55.0",
- "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.55.0.tgz",
- "integrity": "sha512-1HrCUsJdeRY5Y0IjplotINwqMRO81e7O7VhBScuKk7iOuDm/E1ioKv2uLGnPNWziYu+Zf025byxOqVzXDyM2gw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/url": "^3.59.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/core-data/node_modules/@wordpress/block-editor": {
- "version": "12.26.0",
- "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-12.26.0.tgz",
- "integrity": "sha512-wkBP37hB6Fb1AaUIjry6S3LlFrjnVq3Seg8ktZPLozDv2cyODs/ym8+wjv8TR/aiuSWdk0dZZywYMNc+vHEfEg==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@emotion/react": "^11.7.1",
- "@emotion/styled": "^11.6.0",
- "@react-spring/web": "^9.4.5",
- "@wordpress/a11y": "^3.58.0",
- "@wordpress/api-fetch": "^6.55.0",
- "@wordpress/blob": "^3.58.0",
- "@wordpress/blocks": "^12.35.0",
- "@wordpress/commands": "^0.29.0",
- "@wordpress/components": "^27.6.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/data": "^9.28.0",
- "@wordpress/date": "^4.58.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/escape-html": "^2.58.0",
- "@wordpress/hooks": "^3.58.0",
- "@wordpress/html-entities": "^3.58.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/icons": "^9.49.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/keyboard-shortcuts": "^4.35.0",
- "@wordpress/keycodes": "^3.58.0",
- "@wordpress/notices": "^4.26.0",
- "@wordpress/preferences": "^3.35.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/rich-text": "^6.35.0",
- "@wordpress/style-engine": "^1.41.0",
- "@wordpress/token-list": "^2.58.0",
- "@wordpress/url": "^3.59.0",
- "@wordpress/warning": "^2.58.0",
- "@wordpress/wordcount": "^3.58.0",
- "change-case": "^4.1.2",
- "clsx": "^2.1.1",
- "colord": "^2.7.0",
- "deepmerge": "^4.3.0",
- "diff": "^4.0.2",
- "fast-deep-equal": "^3.1.3",
- "memize": "^2.1.0",
- "postcss": "^8.4.21",
- "postcss-prefixwrap": "^1.41.0",
- "postcss-urlrebase": "^1.0.0",
- "react-autosize-textarea": "^7.1.0",
- "react-easy-crop": "^5.0.6",
- "remove-accents": "^0.5.0"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@wordpress/core-data/node_modules/@wordpress/blocks": {
- "version": "12.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-12.35.0.tgz",
- "integrity": "sha512-BwjMca4aGuttu3C0nLLpt6MBg6IBCogA6ulGTyg+0YdKnwac52k+2wfersqAem8AFgG0hTDwrIpLsWLxpF9dtg==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/autop": "^3.58.0",
- "@wordpress/blob": "^3.58.0",
- "@wordpress/block-serialization-default-parser": "^4.58.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/data": "^9.28.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/hooks": "^3.58.0",
- "@wordpress/html-entities": "^3.58.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/rich-text": "^6.35.0",
- "@wordpress/shortcode": "^3.58.0",
- "change-case": "^4.1.2",
- "colord": "^2.7.0",
- "fast-deep-equal": "^3.1.3",
- "hpq": "^1.3.0",
- "is-plain-object": "^5.0.0",
- "memize": "^2.1.0",
- "react-is": "^18.3.0",
- "remove-accents": "^0.5.0",
- "showdown": "^1.9.1",
- "simple-html-tokenizer": "^0.5.7",
- "uuid": "^9.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/core-data/node_modules/@wordpress/components": {
- "version": "27.6.0",
- "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-27.6.0.tgz",
- "integrity": "sha512-f+fXENkgrPs5GLo2yu9fEAdVX0KriEatRcjDUyw0+DbNbJR62sCdDtGdhJRW4jPUUoUowxaGO0y4+jvQWxnbyg==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@ariakit/react": "^0.3.12",
- "@babel/runtime": "^7.16.0",
- "@emotion/cache": "^11.7.1",
- "@emotion/css": "^11.7.1",
- "@emotion/react": "^11.7.1",
- "@emotion/serialize": "^1.0.2",
- "@emotion/styled": "^11.6.0",
- "@emotion/utils": "^1.0.0",
- "@floating-ui/react-dom": "^2.0.8",
- "@types/gradient-parser": "0.1.3",
- "@types/highlight-words-core": "1.2.1",
- "@use-gesture/react": "^10.3.1",
- "@wordpress/a11y": "^3.58.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/date": "^4.58.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/escape-html": "^2.58.0",
- "@wordpress/hooks": "^3.58.0",
- "@wordpress/html-entities": "^3.58.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/icons": "^9.49.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/keycodes": "^3.58.0",
- "@wordpress/primitives": "^3.56.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/rich-text": "^6.35.0",
- "@wordpress/warning": "^2.58.0",
- "change-case": "^4.1.2",
- "clsx": "^2.1.1",
- "colord": "^2.7.0",
- "date-fns": "^3.6.0",
- "deepmerge": "^4.3.0",
- "downshift": "^6.0.15",
- "fast-deep-equal": "^3.1.3",
- "framer-motion": "^11.1.9",
- "gradient-parser": "^0.1.5",
- "highlight-words-core": "^1.2.2",
- "is-plain-object": "^5.0.0",
- "memize": "^2.1.0",
- "path-to-regexp": "^6.2.1",
- "re-resizable": "^6.4.0",
- "react-colorful": "^5.3.1",
- "remove-accents": "^0.5.0",
- "use-lilius": "^2.0.5",
- "uuid": "^9.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@wordpress/core-data/node_modules/@wordpress/compose": {
- "version": "6.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
- "integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/mousetrap": "^1.6.8",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/keycodes": "^3.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/undo-manager": "^0.18.0",
- "change-case": "^4.1.2",
- "clipboard": "^2.0.11",
- "mousetrap": "^1.6.5",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/core-data/node_modules/@wordpress/data": {
- "version": "9.28.0",
- "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.28.0.tgz",
- "integrity": "sha512-EDPpZdkngdoW7EMzPpGj0BmNcr7syJO67pgTODtN/4XFIdYL2RKzFyn3nlLBKhX17UsE/ALq9WdijacH4QJ9qw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/redux-routine": "^4.58.0",
- "deepmerge": "^4.3.0",
- "equivalent-key-map": "^0.2.2",
- "is-plain-object": "^5.0.0",
- "is-promise": "^4.0.0",
- "redux": "^4.1.2",
- "rememo": "^4.0.2",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/core-data/node_modules/@wordpress/element": {
- "version": "5.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.35.0.tgz",
- "integrity": "sha512-puswpGcIdS+0A2g28uHriMkZqqRCmzFczue5Tk99VNtzBdehyk7Ae+DZ4xw5yT6GqYai8NTqv6MRwCB78uh5Mw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/react": "^18.2.79",
- "@types/react-dom": "^18.2.25",
- "@wordpress/escape-html": "^2.58.0",
- "change-case": "^4.1.2",
- "is-plain-object": "^5.0.0",
- "react": "^18.3.0",
- "react-dom": "^18.3.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/core-data/node_modules/@wordpress/hooks": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
- "integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/core-data/node_modules/@wordpress/i18n": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
- "integrity": "sha512-VfvS3BWv/RDjRKD6PscIcvYfWKnGJcI/DEqyDgUMhxCM6NRwoL478CsUKTiGJIymeyRodNRfprdcF086DpGKYw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/hooks": "^3.58.0",
- "gettext-parser": "^1.3.1",
- "memize": "^2.1.0",
- "sprintf-js": "^1.1.1",
- "tannin": "^1.2.0"
- },
- "bin": {
- "pot-to-php": "tools/pot-to-php.js"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/core-data/node_modules/@wordpress/notices": {
- "version": "4.26.0",
- "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-4.26.0.tgz",
- "integrity": "sha512-Lu98xQdtZHgC3d32IFalZbOiIu8aRFWlEQXXfRutD7EhXXp6FIXvnvc054700/Dk1mg9P/bWd0zm/cigkXgfkA==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/a11y": "^3.58.0",
- "@wordpress/data": "^9.28.0"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/core-data/node_modules/@wordpress/private-apis": {
- "version": "0.40.0",
- "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-0.40.0.tgz",
- "integrity": "sha512-ZX/9Y8eA3C3K6LOj32bHFj+9tNV819CBd8+chqMmmlvQRcTngiuXbMbnSdZnnAr1gLQgNpH9PJ60dIwJnGSEtQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/core-data/node_modules/@wordpress/wordcount": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-3.58.0.tgz",
- "integrity": "sha512-cxmOOh8d4VeIC3B9HcqhlTQePmNkNrPeHQLj6xWHfC0Elflj+kYAjsTwkjVQ3tBMC4+mQzva1O8tFSVh02gs7w==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/core-data/node_modules/date-fns": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz",
- "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/kossnocorp"
- }
- },
- "node_modules/@wordpress/core-data/node_modules/memize": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.1.tgz",
- "integrity": "sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@wordpress/core-data/node_modules/react-easy-crop": {
- "version": "5.5.7",
- "resolved": "https://registry.npmjs.org/react-easy-crop/-/react-easy-crop-5.5.7.tgz",
- "integrity": "sha512-kYo4NtMeXFQB7h1U+h5yhUkE46WQbQdq7if54uDlbMdZHdRgNehfvaFrXnFw5NR1PNoUOJIfTwLnWmEx/MaZnA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "normalize-wheel": "^1.0.1",
- "tslib": "^2.0.1"
- },
- "peerDependencies": {
- "react": ">=16.4.0",
- "react-dom": ">=16.4.0"
- }
- },
- "node_modules/@wordpress/core-data/node_modules/react-is": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
- "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@wordpress/core-data/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).",
- "dev": true,
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/@wordpress/data": {
- "version": "9.5.0",
- "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.5.0.tgz",
- "integrity": "sha512-pZ3jBggwABh9PGbQE2xSrKpa2XHJejq+5R++baDngu//nflJcNvWzEVR56oNIy6u8SoGn1pFnka9GES+gw+Hgw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/compose": "^6.12.0",
- "@wordpress/deprecated": "^3.35.0",
- "@wordpress/element": "^5.12.0",
- "@wordpress/is-shallow-equal": "^4.35.0",
- "@wordpress/priority-queue": "^2.35.0",
- "@wordpress/private-apis": "^0.17.0",
- "@wordpress/redux-routine": "^4.35.0",
- "deepmerge": "^4.3.0",
- "equivalent-key-map": "^0.2.2",
- "is-plain-object": "^5.0.0",
- "is-promise": "^4.0.0",
- "redux": "^4.1.2",
- "turbo-combine-reducers": "^1.0.2",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/data/node_modules/@wordpress/compose": {
- "version": "6.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
- "integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/mousetrap": "^1.6.8",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/keycodes": "^3.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/undo-manager": "^0.18.0",
- "change-case": "^4.1.2",
- "clipboard": "^2.0.11",
- "mousetrap": "^1.6.5",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/data/node_modules/@wordpress/element": {
- "version": "5.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.35.0.tgz",
- "integrity": "sha512-puswpGcIdS+0A2g28uHriMkZqqRCmzFczue5Tk99VNtzBdehyk7Ae+DZ4xw5yT6GqYai8NTqv6MRwCB78uh5Mw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/react": "^18.2.79",
- "@types/react-dom": "^18.2.25",
- "@wordpress/escape-html": "^2.58.0",
- "change-case": "^4.1.2",
- "is-plain-object": "^5.0.0",
- "react": "^18.3.0",
- "react-dom": "^18.3.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/data/node_modules/@wordpress/private-apis": {
- "version": "0.17.3",
- "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-0.17.3.tgz",
- "integrity": "sha512-D2qjamJf1OwIIjJHShk+lC+nU9pCRd70+x8qx6ZIbbU7xXT/bl+9IvWseMLoT12QW3ReQNcvzNMP7Uds+tcphw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/date": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/date/-/date-4.58.0.tgz",
- "integrity": "sha512-yFT7DU0H9W0lsDytMaVMmjho08X1LeBMIQMppxdtKB04Ujx58hVh7gtunOsstUQ7pVg23nE2eLaVfx5JOdjzAw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/deprecated": "^3.58.0",
- "moment": "^2.29.4",
- "moment-timezone": "^0.5.40"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/@wordpress/dependency-extraction-webpack-plugin": {
"version": "4.31.0",
"resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-4.31.0.tgz",
@@ -6352,60 +4176,6 @@
"webpack": "^4.8.3 || ^5.0.0"
}
},
- "node_modules/@wordpress/deprecated": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-3.58.0.tgz",
- "integrity": "sha512-knweE2lLEUxWRr6A48sHiO0ww5pPybGe2NVIZVq/y7EaYCMdpy6gYA0ZdVqMKZvtxKKqicJfwigcn+hinsTvUQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/hooks": "^3.58.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/deprecated/node_modules/@wordpress/hooks": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
- "integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/dom": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-3.58.0.tgz",
- "integrity": "sha512-t3xSr/nqekj2qwUGRAqSeGx6116JOBxzI+VBiUfZrjGEnuyKdLelXDEeYtcwbb7etMkj/6F60/NB7GTl5IwizQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/deprecated": "^3.58.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/dom-ready": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-3.58.0.tgz",
- "integrity": "sha512-sDgRPjNBToRKgYrpwvMRv2Yc7/17+sp8hm/rRnbubwb+d/DbGkK4Tc/r4sNLSZCqUAtcBXq9uk1lzvhge3QUSg==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/@wordpress/element": {
"version": "5.8.0",
"resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.8.0.tgz",
@@ -6495,19 +4265,6 @@
"node": ">=12"
}
},
- "node_modules/@wordpress/html-entities": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-3.58.0.tgz",
- "integrity": "sha512-FU7b6QZdwTCuLKq6wCl0IZqqOMcMRxMcekVVytzTse7hYk9dvL1qQL/U4eQ/CNyKqiT9u7fb5NKTQILOzoolVQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/@wordpress/i18n": {
"version": "4.31.0",
"resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.31.0.tgz",
@@ -6529,54 +4286,6 @@
"node": ">=12"
}
},
- "node_modules/@wordpress/icons": {
- "version": "9.49.0",
- "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-9.49.0.tgz",
- "integrity": "sha512-Z8F+ledkfkcKDuS1c/RkM0dEWdfv2AXs6bCgey89p0atJSscf7qYbMJR9zE5rZ5aqXyFfV0DAFKJEgayNqneNQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/primitives": "^3.56.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/icons/node_modules/@wordpress/element": {
- "version": "5.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.35.0.tgz",
- "integrity": "sha512-puswpGcIdS+0A2g28uHriMkZqqRCmzFczue5Tk99VNtzBdehyk7Ae+DZ4xw5yT6GqYai8NTqv6MRwCB78uh5Mw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/react": "^18.2.79",
- "@types/react-dom": "^18.2.25",
- "@wordpress/escape-html": "^2.58.0",
- "change-case": "^4.1.2",
- "is-plain-object": "^5.0.0",
- "react": "^18.3.0",
- "react-dom": "^18.3.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/is-shallow-equal": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-4.58.0.tgz",
- "integrity": "sha512-NH2lbXo/6ix1t4Zu9UBXpXNtoLwSaYmIRSyDH34XNb0ic8a7yjEOhYWVW3LTfSCv9dJVyxlM5TJPtL85q7LdeQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/@wordpress/jest-console": {
"version": "7.29.0",
"resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-7.29.0.tgz",
@@ -6614,186 +4323,6 @@
"jest": ">=29"
}
},
- "node_modules/@wordpress/keyboard-shortcuts": {
- "version": "4.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-4.35.0.tgz",
- "integrity": "sha512-DR+fWhHt67GQT6PlrfMBpSmEYNCep+XvMYA55cnxoQ80LIFN5N5bkr4VeYdbrSatuOSRACm+6cfoQSIMQbdmjw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/data": "^9.28.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/keycodes": "^3.58.0"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/keyboard-shortcuts/node_modules/@wordpress/compose": {
- "version": "6.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
- "integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/mousetrap": "^1.6.8",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/keycodes": "^3.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/undo-manager": "^0.18.0",
- "change-case": "^4.1.2",
- "clipboard": "^2.0.11",
- "mousetrap": "^1.6.5",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/keyboard-shortcuts/node_modules/@wordpress/data": {
- "version": "9.28.0",
- "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.28.0.tgz",
- "integrity": "sha512-EDPpZdkngdoW7EMzPpGj0BmNcr7syJO67pgTODtN/4XFIdYL2RKzFyn3nlLBKhX17UsE/ALq9WdijacH4QJ9qw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/redux-routine": "^4.58.0",
- "deepmerge": "^4.3.0",
- "equivalent-key-map": "^0.2.2",
- "is-plain-object": "^5.0.0",
- "is-promise": "^4.0.0",
- "redux": "^4.1.2",
- "rememo": "^4.0.2",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/keyboard-shortcuts/node_modules/@wordpress/element": {
- "version": "5.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.35.0.tgz",
- "integrity": "sha512-puswpGcIdS+0A2g28uHriMkZqqRCmzFczue5Tk99VNtzBdehyk7Ae+DZ4xw5yT6GqYai8NTqv6MRwCB78uh5Mw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/react": "^18.2.79",
- "@types/react-dom": "^18.2.25",
- "@wordpress/escape-html": "^2.58.0",
- "change-case": "^4.1.2",
- "is-plain-object": "^5.0.0",
- "react": "^18.3.0",
- "react-dom": "^18.3.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/keyboard-shortcuts/node_modules/@wordpress/private-apis": {
- "version": "0.40.0",
- "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-0.40.0.tgz",
- "integrity": "sha512-ZX/9Y8eA3C3K6LOj32bHFj+9tNV819CBd8+chqMmmlvQRcTngiuXbMbnSdZnnAr1gLQgNpH9PJ60dIwJnGSEtQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/keycodes": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.58.0.tgz",
- "integrity": "sha512-Q/LRKpx8ndzuHlkxSQ2BD+NTYYKQPIneNNMng8hTAfyU7RFwXpqj06HpeOFGh4XIdPKCs/8hmucoLJRmmLmZJA==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/i18n": "^4.58.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/keycodes/node_modules/@wordpress/hooks": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
- "integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/keycodes/node_modules/@wordpress/i18n": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
- "integrity": "sha512-VfvS3BWv/RDjRKD6PscIcvYfWKnGJcI/DEqyDgUMhxCM6NRwoL478CsUKTiGJIymeyRodNRfprdcF086DpGKYw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/hooks": "^3.58.0",
- "gettext-parser": "^1.3.1",
- "memize": "^2.1.0",
- "sprintf-js": "^1.1.1",
- "tannin": "^1.2.0"
- },
- "bin": {
- "pot-to-php": "tools/pot-to-php.js"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/keycodes/node_modules/memize": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.1.tgz",
- "integrity": "sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@wordpress/notices": {
- "version": "3.31.0",
- "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-3.31.0.tgz",
- "integrity": "sha512-9WyaFaSr/vQc1K7cZLyPw1xBKqWfjpAKMJzWMzHYjwk1ldibhBWVLukicuolD6Y+9l+97IZHCoESBQwUeFo79Q==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/a11y": "^3.31.0",
- "@wordpress/data": "^9.1.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/@wordpress/npm-package-json-lint-config": {
"version": "4.43.0",
"resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-4.43.0.tgz",
@@ -6824,268 +4353,6 @@
"postcss": "^8.0.0"
}
},
- "node_modules/@wordpress/preferences": {
- "version": "3.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/preferences/-/preferences-3.35.0.tgz",
- "integrity": "sha512-OFzSEiI8Kk5YJtyPFnAauRHXtjuTJHkWapvcagpMoTP0WvwBwGfr5AeIIgV2ONtA3edrfMGgmrJUK7pd61K/1Q==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/a11y": "^3.58.0",
- "@wordpress/components": "^27.6.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/data": "^9.28.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/icons": "^9.49.0",
- "@wordpress/private-apis": "^0.40.0",
- "clsx": "^2.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@wordpress/preferences/node_modules/@floating-ui/react-dom": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.9.tgz",
- "integrity": "sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@floating-ui/dom": "^1.8.0"
- },
- "peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
- }
- },
- "node_modules/@wordpress/preferences/node_modules/@wordpress/components": {
- "version": "27.6.0",
- "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-27.6.0.tgz",
- "integrity": "sha512-f+fXENkgrPs5GLo2yu9fEAdVX0KriEatRcjDUyw0+DbNbJR62sCdDtGdhJRW4jPUUoUowxaGO0y4+jvQWxnbyg==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@ariakit/react": "^0.3.12",
- "@babel/runtime": "^7.16.0",
- "@emotion/cache": "^11.7.1",
- "@emotion/css": "^11.7.1",
- "@emotion/react": "^11.7.1",
- "@emotion/serialize": "^1.0.2",
- "@emotion/styled": "^11.6.0",
- "@emotion/utils": "^1.0.0",
- "@floating-ui/react-dom": "^2.0.8",
- "@types/gradient-parser": "0.1.3",
- "@types/highlight-words-core": "1.2.1",
- "@use-gesture/react": "^10.3.1",
- "@wordpress/a11y": "^3.58.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/date": "^4.58.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/escape-html": "^2.58.0",
- "@wordpress/hooks": "^3.58.0",
- "@wordpress/html-entities": "^3.58.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/icons": "^9.49.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/keycodes": "^3.58.0",
- "@wordpress/primitives": "^3.56.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/rich-text": "^6.35.0",
- "@wordpress/warning": "^2.58.0",
- "change-case": "^4.1.2",
- "clsx": "^2.1.1",
- "colord": "^2.7.0",
- "date-fns": "^3.6.0",
- "deepmerge": "^4.3.0",
- "downshift": "^6.0.15",
- "fast-deep-equal": "^3.1.3",
- "framer-motion": "^11.1.9",
- "gradient-parser": "^0.1.5",
- "highlight-words-core": "^1.2.2",
- "is-plain-object": "^5.0.0",
- "memize": "^2.1.0",
- "path-to-regexp": "^6.2.1",
- "re-resizable": "^6.4.0",
- "react-colorful": "^5.3.1",
- "remove-accents": "^0.5.0",
- "use-lilius": "^2.0.5",
- "uuid": "^9.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@wordpress/preferences/node_modules/@wordpress/compose": {
- "version": "6.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
- "integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/mousetrap": "^1.6.8",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/keycodes": "^3.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/undo-manager": "^0.18.0",
- "change-case": "^4.1.2",
- "clipboard": "^2.0.11",
- "mousetrap": "^1.6.5",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/preferences/node_modules/@wordpress/data": {
- "version": "9.28.0",
- "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.28.0.tgz",
- "integrity": "sha512-EDPpZdkngdoW7EMzPpGj0BmNcr7syJO67pgTODtN/4XFIdYL2RKzFyn3nlLBKhX17UsE/ALq9WdijacH4QJ9qw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/redux-routine": "^4.58.0",
- "deepmerge": "^4.3.0",
- "equivalent-key-map": "^0.2.2",
- "is-plain-object": "^5.0.0",
- "is-promise": "^4.0.0",
- "redux": "^4.1.2",
- "rememo": "^4.0.2",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/preferences/node_modules/@wordpress/element": {
- "version": "5.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.35.0.tgz",
- "integrity": "sha512-puswpGcIdS+0A2g28uHriMkZqqRCmzFczue5Tk99VNtzBdehyk7Ae+DZ4xw5yT6GqYai8NTqv6MRwCB78uh5Mw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/react": "^18.2.79",
- "@types/react-dom": "^18.2.25",
- "@wordpress/escape-html": "^2.58.0",
- "change-case": "^4.1.2",
- "is-plain-object": "^5.0.0",
- "react": "^18.3.0",
- "react-dom": "^18.3.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/preferences/node_modules/@wordpress/hooks": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
- "integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/preferences/node_modules/@wordpress/i18n": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
- "integrity": "sha512-VfvS3BWv/RDjRKD6PscIcvYfWKnGJcI/DEqyDgUMhxCM6NRwoL478CsUKTiGJIymeyRodNRfprdcF086DpGKYw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/hooks": "^3.58.0",
- "gettext-parser": "^1.3.1",
- "memize": "^2.1.0",
- "sprintf-js": "^1.1.1",
- "tannin": "^1.2.0"
- },
- "bin": {
- "pot-to-php": "tools/pot-to-php.js"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/preferences/node_modules/@wordpress/private-apis": {
- "version": "0.40.0",
- "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-0.40.0.tgz",
- "integrity": "sha512-ZX/9Y8eA3C3K6LOj32bHFj+9tNV819CBd8+chqMmmlvQRcTngiuXbMbnSdZnnAr1gLQgNpH9PJ60dIwJnGSEtQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/preferences/node_modules/date-fns": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz",
- "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/kossnocorp"
- }
- },
- "node_modules/@wordpress/preferences/node_modules/memize": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.1.tgz",
- "integrity": "sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@wordpress/preferences/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).",
- "dev": true,
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/@wordpress/prettier-config": {
"version": "2.25.13",
"resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-2.25.13.tgz",
@@ -7099,679 +4366,6 @@
"prettier": ">=2"
}
},
- "node_modules/@wordpress/primitives": {
- "version": "3.56.0",
- "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-3.56.0.tgz",
- "integrity": "sha512-NXBq1ODjl6inMWx/l7KCbATcjdoeIOqYeL9i9alqdAfWeKx1EH9PIvKWylIkqZk7erXxCxldiRkuyjTtwjNBxw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/element": "^5.35.0",
- "clsx": "^2.1.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/primitives/node_modules/@wordpress/element": {
- "version": "5.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.35.0.tgz",
- "integrity": "sha512-puswpGcIdS+0A2g28uHriMkZqqRCmzFczue5Tk99VNtzBdehyk7Ae+DZ4xw5yT6GqYai8NTqv6MRwCB78uh5Mw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/react": "^18.2.79",
- "@types/react-dom": "^18.2.25",
- "@wordpress/escape-html": "^2.58.0",
- "change-case": "^4.1.2",
- "is-plain-object": "^5.0.0",
- "react": "^18.3.0",
- "react-dom": "^18.3.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/priority-queue": {
- "version": "2.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-2.58.0.tgz",
- "integrity": "sha512-W+qCS8HJWsXG8gE6yK/H/IObowcghPrQMM3cQHtfd/U05yFNU1Bd/fbj3AO1fVRztktS47lIpi9m3ll1evPEHA==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "requestidlecallback": "^0.3.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/private-apis": {
- "version": "0.13.0",
- "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-0.13.0.tgz",
- "integrity": "sha512-tGbWnwcDCwmSZcr1EegjOUrm3aXveIrZOEbKbpSOXXa+XfyXsFhfgRJV+NW8taSfV3eltLXp/6S8tBJHMBTh0A==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/redux-routine": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/redux-routine/-/redux-routine-4.58.0.tgz",
- "integrity": "sha512-r0mMWFeJr93yPy2uY/M5+gdUUYj0Zu8+21OFFb5hyQ0z7UHIa3IdgQxzCaTbV1LDA1ZYJrjHeCnA6s4gNHjA2Q==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "is-plain-object": "^5.0.0",
- "is-promise": "^4.0.0",
- "rungen": "^0.3.2"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "redux": ">=4"
- }
- },
- "node_modules/@wordpress/reusable-blocks": {
- "version": "4.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/reusable-blocks/-/reusable-blocks-4.35.0.tgz",
- "integrity": "sha512-vofZGdVCOljSviar11sJWK+8loVAz53fBqPllcC0MbnSWkj4VPF4L6VWFVus1PQyL2MdkHynWRce9MHpKvN1NQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/block-editor": "^12.26.0",
- "@wordpress/blocks": "^12.35.0",
- "@wordpress/components": "^27.6.0",
- "@wordpress/core-data": "^6.35.0",
- "@wordpress/data": "^9.28.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/icons": "^9.49.0",
- "@wordpress/notices": "^4.26.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/url": "^3.59.0"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@wordpress/reusable-blocks/node_modules/@floating-ui/react-dom": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.9.tgz",
- "integrity": "sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@floating-ui/dom": "^1.8.0"
- },
- "peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
- }
- },
- "node_modules/@wordpress/reusable-blocks/node_modules/@wordpress/api-fetch": {
- "version": "6.55.0",
- "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.55.0.tgz",
- "integrity": "sha512-1HrCUsJdeRY5Y0IjplotINwqMRO81e7O7VhBScuKk7iOuDm/E1ioKv2uLGnPNWziYu+Zf025byxOqVzXDyM2gw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/url": "^3.59.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/reusable-blocks/node_modules/@wordpress/block-editor": {
- "version": "12.26.0",
- "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-12.26.0.tgz",
- "integrity": "sha512-wkBP37hB6Fb1AaUIjry6S3LlFrjnVq3Seg8ktZPLozDv2cyODs/ym8+wjv8TR/aiuSWdk0dZZywYMNc+vHEfEg==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@emotion/react": "^11.7.1",
- "@emotion/styled": "^11.6.0",
- "@react-spring/web": "^9.4.5",
- "@wordpress/a11y": "^3.58.0",
- "@wordpress/api-fetch": "^6.55.0",
- "@wordpress/blob": "^3.58.0",
- "@wordpress/blocks": "^12.35.0",
- "@wordpress/commands": "^0.29.0",
- "@wordpress/components": "^27.6.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/data": "^9.28.0",
- "@wordpress/date": "^4.58.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/escape-html": "^2.58.0",
- "@wordpress/hooks": "^3.58.0",
- "@wordpress/html-entities": "^3.58.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/icons": "^9.49.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/keyboard-shortcuts": "^4.35.0",
- "@wordpress/keycodes": "^3.58.0",
- "@wordpress/notices": "^4.26.0",
- "@wordpress/preferences": "^3.35.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/rich-text": "^6.35.0",
- "@wordpress/style-engine": "^1.41.0",
- "@wordpress/token-list": "^2.58.0",
- "@wordpress/url": "^3.59.0",
- "@wordpress/warning": "^2.58.0",
- "@wordpress/wordcount": "^3.58.0",
- "change-case": "^4.1.2",
- "clsx": "^2.1.1",
- "colord": "^2.7.0",
- "deepmerge": "^4.3.0",
- "diff": "^4.0.2",
- "fast-deep-equal": "^3.1.3",
- "memize": "^2.1.0",
- "postcss": "^8.4.21",
- "postcss-prefixwrap": "^1.41.0",
- "postcss-urlrebase": "^1.0.0",
- "react-autosize-textarea": "^7.1.0",
- "react-easy-crop": "^5.0.6",
- "remove-accents": "^0.5.0"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@wordpress/reusable-blocks/node_modules/@wordpress/blocks": {
- "version": "12.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-12.35.0.tgz",
- "integrity": "sha512-BwjMca4aGuttu3C0nLLpt6MBg6IBCogA6ulGTyg+0YdKnwac52k+2wfersqAem8AFgG0hTDwrIpLsWLxpF9dtg==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/autop": "^3.58.0",
- "@wordpress/blob": "^3.58.0",
- "@wordpress/block-serialization-default-parser": "^4.58.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/data": "^9.28.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/hooks": "^3.58.0",
- "@wordpress/html-entities": "^3.58.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/rich-text": "^6.35.0",
- "@wordpress/shortcode": "^3.58.0",
- "change-case": "^4.1.2",
- "colord": "^2.7.0",
- "fast-deep-equal": "^3.1.3",
- "hpq": "^1.3.0",
- "is-plain-object": "^5.0.0",
- "memize": "^2.1.0",
- "react-is": "^18.3.0",
- "remove-accents": "^0.5.0",
- "showdown": "^1.9.1",
- "simple-html-tokenizer": "^0.5.7",
- "uuid": "^9.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/reusable-blocks/node_modules/@wordpress/components": {
- "version": "27.6.0",
- "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-27.6.0.tgz",
- "integrity": "sha512-f+fXENkgrPs5GLo2yu9fEAdVX0KriEatRcjDUyw0+DbNbJR62sCdDtGdhJRW4jPUUoUowxaGO0y4+jvQWxnbyg==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@ariakit/react": "^0.3.12",
- "@babel/runtime": "^7.16.0",
- "@emotion/cache": "^11.7.1",
- "@emotion/css": "^11.7.1",
- "@emotion/react": "^11.7.1",
- "@emotion/serialize": "^1.0.2",
- "@emotion/styled": "^11.6.0",
- "@emotion/utils": "^1.0.0",
- "@floating-ui/react-dom": "^2.0.8",
- "@types/gradient-parser": "0.1.3",
- "@types/highlight-words-core": "1.2.1",
- "@use-gesture/react": "^10.3.1",
- "@wordpress/a11y": "^3.58.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/date": "^4.58.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/escape-html": "^2.58.0",
- "@wordpress/hooks": "^3.58.0",
- "@wordpress/html-entities": "^3.58.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/icons": "^9.49.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/keycodes": "^3.58.0",
- "@wordpress/primitives": "^3.56.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/rich-text": "^6.35.0",
- "@wordpress/warning": "^2.58.0",
- "change-case": "^4.1.2",
- "clsx": "^2.1.1",
- "colord": "^2.7.0",
- "date-fns": "^3.6.0",
- "deepmerge": "^4.3.0",
- "downshift": "^6.0.15",
- "fast-deep-equal": "^3.1.3",
- "framer-motion": "^11.1.9",
- "gradient-parser": "^0.1.5",
- "highlight-words-core": "^1.2.2",
- "is-plain-object": "^5.0.0",
- "memize": "^2.1.0",
- "path-to-regexp": "^6.2.1",
- "re-resizable": "^6.4.0",
- "react-colorful": "^5.3.1",
- "remove-accents": "^0.5.0",
- "use-lilius": "^2.0.5",
- "uuid": "^9.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@wordpress/reusable-blocks/node_modules/@wordpress/compose": {
- "version": "6.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
- "integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/mousetrap": "^1.6.8",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/keycodes": "^3.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/undo-manager": "^0.18.0",
- "change-case": "^4.1.2",
- "clipboard": "^2.0.11",
- "mousetrap": "^1.6.5",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/reusable-blocks/node_modules/@wordpress/data": {
- "version": "9.28.0",
- "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.28.0.tgz",
- "integrity": "sha512-EDPpZdkngdoW7EMzPpGj0BmNcr7syJO67pgTODtN/4XFIdYL2RKzFyn3nlLBKhX17UsE/ALq9WdijacH4QJ9qw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/redux-routine": "^4.58.0",
- "deepmerge": "^4.3.0",
- "equivalent-key-map": "^0.2.2",
- "is-plain-object": "^5.0.0",
- "is-promise": "^4.0.0",
- "redux": "^4.1.2",
- "rememo": "^4.0.2",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/reusable-blocks/node_modules/@wordpress/element": {
- "version": "5.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.35.0.tgz",
- "integrity": "sha512-puswpGcIdS+0A2g28uHriMkZqqRCmzFczue5Tk99VNtzBdehyk7Ae+DZ4xw5yT6GqYai8NTqv6MRwCB78uh5Mw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/react": "^18.2.79",
- "@types/react-dom": "^18.2.25",
- "@wordpress/escape-html": "^2.58.0",
- "change-case": "^4.1.2",
- "is-plain-object": "^5.0.0",
- "react": "^18.3.0",
- "react-dom": "^18.3.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/reusable-blocks/node_modules/@wordpress/hooks": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
- "integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/reusable-blocks/node_modules/@wordpress/i18n": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
- "integrity": "sha512-VfvS3BWv/RDjRKD6PscIcvYfWKnGJcI/DEqyDgUMhxCM6NRwoL478CsUKTiGJIymeyRodNRfprdcF086DpGKYw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/hooks": "^3.58.0",
- "gettext-parser": "^1.3.1",
- "memize": "^2.1.0",
- "sprintf-js": "^1.1.1",
- "tannin": "^1.2.0"
- },
- "bin": {
- "pot-to-php": "tools/pot-to-php.js"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/reusable-blocks/node_modules/@wordpress/notices": {
- "version": "4.26.0",
- "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-4.26.0.tgz",
- "integrity": "sha512-Lu98xQdtZHgC3d32IFalZbOiIu8aRFWlEQXXfRutD7EhXXp6FIXvnvc054700/Dk1mg9P/bWd0zm/cigkXgfkA==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/a11y": "^3.58.0",
- "@wordpress/data": "^9.28.0"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/reusable-blocks/node_modules/@wordpress/private-apis": {
- "version": "0.40.0",
- "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-0.40.0.tgz",
- "integrity": "sha512-ZX/9Y8eA3C3K6LOj32bHFj+9tNV819CBd8+chqMmmlvQRcTngiuXbMbnSdZnnAr1gLQgNpH9PJ60dIwJnGSEtQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/reusable-blocks/node_modules/@wordpress/wordcount": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-3.58.0.tgz",
- "integrity": "sha512-cxmOOh8d4VeIC3B9HcqhlTQePmNkNrPeHQLj6xWHfC0Elflj+kYAjsTwkjVQ3tBMC4+mQzva1O8tFSVh02gs7w==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/reusable-blocks/node_modules/date-fns": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz",
- "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/kossnocorp"
- }
- },
- "node_modules/@wordpress/reusable-blocks/node_modules/memize": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.1.tgz",
- "integrity": "sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@wordpress/reusable-blocks/node_modules/react-easy-crop": {
- "version": "5.5.7",
- "resolved": "https://registry.npmjs.org/react-easy-crop/-/react-easy-crop-5.5.7.tgz",
- "integrity": "sha512-kYo4NtMeXFQB7h1U+h5yhUkE46WQbQdq7if54uDlbMdZHdRgNehfvaFrXnFw5NR1PNoUOJIfTwLnWmEx/MaZnA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "normalize-wheel": "^1.0.1",
- "tslib": "^2.0.1"
- },
- "peerDependencies": {
- "react": ">=16.4.0",
- "react-dom": ">=16.4.0"
- }
- },
- "node_modules/@wordpress/reusable-blocks/node_modules/react-is": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
- "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@wordpress/reusable-blocks/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).",
- "dev": true,
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/@wordpress/rich-text": {
- "version": "6.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-6.35.0.tgz",
- "integrity": "sha512-h6/XftSqo9UQZebuNZyLfOVu+ButBLITW/BILsKeJhSpmM19VNdz8UhVGLp+xQPE+/GPCIMJrhhqipISDfc2Ig==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/a11y": "^3.58.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/data": "^9.28.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/escape-html": "^2.58.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/keycodes": "^3.58.0",
- "memize": "^2.1.0"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/rich-text/node_modules/@wordpress/compose": {
- "version": "6.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
- "integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/mousetrap": "^1.6.8",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/keycodes": "^3.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/undo-manager": "^0.18.0",
- "change-case": "^4.1.2",
- "clipboard": "^2.0.11",
- "mousetrap": "^1.6.5",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/rich-text/node_modules/@wordpress/data": {
- "version": "9.28.0",
- "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.28.0.tgz",
- "integrity": "sha512-EDPpZdkngdoW7EMzPpGj0BmNcr7syJO67pgTODtN/4XFIdYL2RKzFyn3nlLBKhX17UsE/ALq9WdijacH4QJ9qw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/redux-routine": "^4.58.0",
- "deepmerge": "^4.3.0",
- "equivalent-key-map": "^0.2.2",
- "is-plain-object": "^5.0.0",
- "is-promise": "^4.0.0",
- "redux": "^4.1.2",
- "rememo": "^4.0.2",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/rich-text/node_modules/@wordpress/element": {
- "version": "5.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.35.0.tgz",
- "integrity": "sha512-puswpGcIdS+0A2g28uHriMkZqqRCmzFczue5Tk99VNtzBdehyk7Ae+DZ4xw5yT6GqYai8NTqv6MRwCB78uh5Mw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/react": "^18.2.79",
- "@types/react-dom": "^18.2.25",
- "@wordpress/escape-html": "^2.58.0",
- "change-case": "^4.1.2",
- "is-plain-object": "^5.0.0",
- "react": "^18.3.0",
- "react-dom": "^18.3.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/rich-text/node_modules/@wordpress/hooks": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
- "integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/rich-text/node_modules/@wordpress/i18n": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
- "integrity": "sha512-VfvS3BWv/RDjRKD6PscIcvYfWKnGJcI/DEqyDgUMhxCM6NRwoL478CsUKTiGJIymeyRodNRfprdcF086DpGKYw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/hooks": "^3.58.0",
- "gettext-parser": "^1.3.1",
- "memize": "^2.1.0",
- "sprintf-js": "^1.1.1",
- "tannin": "^1.2.0"
- },
- "bin": {
- "pot-to-php": "tools/pot-to-php.js"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/rich-text/node_modules/@wordpress/private-apis": {
- "version": "0.40.0",
- "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-0.40.0.tgz",
- "integrity": "sha512-ZX/9Y8eA3C3K6LOj32bHFj+9tNV819CBd8+chqMmmlvQRcTngiuXbMbnSdZnnAr1gLQgNpH9PJ60dIwJnGSEtQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/rich-text/node_modules/memize": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.1.tgz",
- "integrity": "sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@wordpress/scripts": {
"version": "26.4.0",
"resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-26.4.0.tgz",
@@ -7998,367 +4592,6 @@
"node": ">=6"
}
},
- "node_modules/@wordpress/server-side-render": {
- "version": "4.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/server-side-render/-/server-side-render-4.35.0.tgz",
- "integrity": "sha512-yTbq31iGFc9VaRMtdCLlyZtbwCN+WdiECEqY6MsMXf31/TDmUcdZPxRTORy3Rz2HxEpFfUMjpRz7A8wn1QZmzA==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/api-fetch": "^6.55.0",
- "@wordpress/blocks": "^12.35.0",
- "@wordpress/components": "^27.6.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/data": "^9.28.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/url": "^3.59.0",
- "fast-deep-equal": "^3.1.3"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@wordpress/server-side-render/node_modules/@floating-ui/react-dom": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.9.tgz",
- "integrity": "sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@floating-ui/dom": "^1.8.0"
- },
- "peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
- }
- },
- "node_modules/@wordpress/server-side-render/node_modules/@wordpress/api-fetch": {
- "version": "6.55.0",
- "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.55.0.tgz",
- "integrity": "sha512-1HrCUsJdeRY5Y0IjplotINwqMRO81e7O7VhBScuKk7iOuDm/E1ioKv2uLGnPNWziYu+Zf025byxOqVzXDyM2gw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/url": "^3.59.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/server-side-render/node_modules/@wordpress/blocks": {
- "version": "12.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-12.35.0.tgz",
- "integrity": "sha512-BwjMca4aGuttu3C0nLLpt6MBg6IBCogA6ulGTyg+0YdKnwac52k+2wfersqAem8AFgG0hTDwrIpLsWLxpF9dtg==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/autop": "^3.58.0",
- "@wordpress/blob": "^3.58.0",
- "@wordpress/block-serialization-default-parser": "^4.58.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/data": "^9.28.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/hooks": "^3.58.0",
- "@wordpress/html-entities": "^3.58.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/rich-text": "^6.35.0",
- "@wordpress/shortcode": "^3.58.0",
- "change-case": "^4.1.2",
- "colord": "^2.7.0",
- "fast-deep-equal": "^3.1.3",
- "hpq": "^1.3.0",
- "is-plain-object": "^5.0.0",
- "memize": "^2.1.0",
- "react-is": "^18.3.0",
- "remove-accents": "^0.5.0",
- "showdown": "^1.9.1",
- "simple-html-tokenizer": "^0.5.7",
- "uuid": "^9.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/server-side-render/node_modules/@wordpress/components": {
- "version": "27.6.0",
- "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-27.6.0.tgz",
- "integrity": "sha512-f+fXENkgrPs5GLo2yu9fEAdVX0KriEatRcjDUyw0+DbNbJR62sCdDtGdhJRW4jPUUoUowxaGO0y4+jvQWxnbyg==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@ariakit/react": "^0.3.12",
- "@babel/runtime": "^7.16.0",
- "@emotion/cache": "^11.7.1",
- "@emotion/css": "^11.7.1",
- "@emotion/react": "^11.7.1",
- "@emotion/serialize": "^1.0.2",
- "@emotion/styled": "^11.6.0",
- "@emotion/utils": "^1.0.0",
- "@floating-ui/react-dom": "^2.0.8",
- "@types/gradient-parser": "0.1.3",
- "@types/highlight-words-core": "1.2.1",
- "@use-gesture/react": "^10.3.1",
- "@wordpress/a11y": "^3.58.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/date": "^4.58.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/escape-html": "^2.58.0",
- "@wordpress/hooks": "^3.58.0",
- "@wordpress/html-entities": "^3.58.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/icons": "^9.49.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/keycodes": "^3.58.0",
- "@wordpress/primitives": "^3.56.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/rich-text": "^6.35.0",
- "@wordpress/warning": "^2.58.0",
- "change-case": "^4.1.2",
- "clsx": "^2.1.1",
- "colord": "^2.7.0",
- "date-fns": "^3.6.0",
- "deepmerge": "^4.3.0",
- "downshift": "^6.0.15",
- "fast-deep-equal": "^3.1.3",
- "framer-motion": "^11.1.9",
- "gradient-parser": "^0.1.5",
- "highlight-words-core": "^1.2.2",
- "is-plain-object": "^5.0.0",
- "memize": "^2.1.0",
- "path-to-regexp": "^6.2.1",
- "re-resizable": "^6.4.0",
- "react-colorful": "^5.3.1",
- "remove-accents": "^0.5.0",
- "use-lilius": "^2.0.5",
- "uuid": "^9.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@wordpress/server-side-render/node_modules/@wordpress/compose": {
- "version": "6.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
- "integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/mousetrap": "^1.6.8",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/keycodes": "^3.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/undo-manager": "^0.18.0",
- "change-case": "^4.1.2",
- "clipboard": "^2.0.11",
- "mousetrap": "^1.6.5",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/server-side-render/node_modules/@wordpress/data": {
- "version": "9.28.0",
- "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.28.0.tgz",
- "integrity": "sha512-EDPpZdkngdoW7EMzPpGj0BmNcr7syJO67pgTODtN/4XFIdYL2RKzFyn3nlLBKhX17UsE/ALq9WdijacH4QJ9qw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/redux-routine": "^4.58.0",
- "deepmerge": "^4.3.0",
- "equivalent-key-map": "^0.2.2",
- "is-plain-object": "^5.0.0",
- "is-promise": "^4.0.0",
- "redux": "^4.1.2",
- "rememo": "^4.0.2",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/server-side-render/node_modules/@wordpress/element": {
- "version": "5.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.35.0.tgz",
- "integrity": "sha512-puswpGcIdS+0A2g28uHriMkZqqRCmzFczue5Tk99VNtzBdehyk7Ae+DZ4xw5yT6GqYai8NTqv6MRwCB78uh5Mw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/react": "^18.2.79",
- "@types/react-dom": "^18.2.25",
- "@wordpress/escape-html": "^2.58.0",
- "change-case": "^4.1.2",
- "is-plain-object": "^5.0.0",
- "react": "^18.3.0",
- "react-dom": "^18.3.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/server-side-render/node_modules/@wordpress/hooks": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
- "integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/server-side-render/node_modules/@wordpress/i18n": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
- "integrity": "sha512-VfvS3BWv/RDjRKD6PscIcvYfWKnGJcI/DEqyDgUMhxCM6NRwoL478CsUKTiGJIymeyRodNRfprdcF086DpGKYw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/hooks": "^3.58.0",
- "gettext-parser": "^1.3.1",
- "memize": "^2.1.0",
- "sprintf-js": "^1.1.1",
- "tannin": "^1.2.0"
- },
- "bin": {
- "pot-to-php": "tools/pot-to-php.js"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/server-side-render/node_modules/@wordpress/private-apis": {
- "version": "0.40.0",
- "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-0.40.0.tgz",
- "integrity": "sha512-ZX/9Y8eA3C3K6LOj32bHFj+9tNV819CBd8+chqMmmlvQRcTngiuXbMbnSdZnnAr1gLQgNpH9PJ60dIwJnGSEtQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/server-side-render/node_modules/date-fns": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz",
- "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/kossnocorp"
- }
- },
- "node_modules/@wordpress/server-side-render/node_modules/memize": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.1.tgz",
- "integrity": "sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@wordpress/server-side-render/node_modules/react-is": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
- "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@wordpress/server-side-render/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).",
- "dev": true,
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/@wordpress/shortcode": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/shortcode/-/shortcode-3.58.0.tgz",
- "integrity": "sha512-yM3Y25XqLfz/X6xXowXbrTvk+tslKeALNNESI5nGt1X7wWPsYQDOqyBb1HT9TglSLFgWYlQlNtgEbz07dEiDgQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "memize": "^2.0.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/shortcode/node_modules/memize": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.1.tgz",
- "integrity": "sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@wordpress/style-engine": {
- "version": "1.41.0",
- "resolved": "https://registry.npmjs.org/@wordpress/style-engine/-/style-engine-1.41.0.tgz",
- "integrity": "sha512-aM5bbJn6m8SHRotCoh/fSGuIB0MQJoVFBjpzIDoUDQ1KlO7CbY+fj9daDV1FZPMNv0h0ZEFWZ+y7Gv/CERypMA==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "change-case": "^4.1.2"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/@wordpress/stylelint-config": {
"version": "21.41.0",
"resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-21.41.0.tgz",
@@ -8376,179 +4609,6 @@
"stylelint": "^14.2"
}
},
- "node_modules/@wordpress/sync": {
- "version": "0.20.0",
- "resolved": "https://registry.npmjs.org/@wordpress/sync/-/sync-0.20.0.tgz",
- "integrity": "sha512-nEB2UHiSF0PoU5irAmeuljt4OQbqKHpOlJOb0WMiydbDBGTzquxF6I61ax2mFTbSDntL0AUt8pxi6eT9con1sQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/simple-peer": "^9.11.5",
- "@wordpress/url": "^3.59.0",
- "import-locals": "^2.0.0",
- "lib0": "^0.2.42",
- "simple-peer": "^9.11.0",
- "y-indexeddb": "~9.0.11",
- "y-protocols": "^1.0.5",
- "y-webrtc": "~10.2.5",
- "yjs": "~13.6.6"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/token-list": {
- "version": "2.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/token-list/-/token-list-2.58.0.tgz",
- "integrity": "sha512-xzNGzAZ87GERq7rZvZjMv742nj37tSLFBb8+c7oaLdpUpfn8YTaXQacvphdN2jmtfHvEZHivW7hErwqF9eQW/A==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/undo-manager": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/@wordpress/undo-manager/-/undo-manager-0.18.0.tgz",
- "integrity": "sha512-upbzPEToa095XG+2JXLHaolF1LfXEMFS0lNMYV37myoUS+eZ7/tl9Gx+yU2+OqWy57TMwx33NlWUX/n+ynzPRw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/is-shallow-equal": "^4.58.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/url": {
- "version": "3.59.0",
- "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.59.0.tgz",
- "integrity": "sha512-GxvoMjYCav0w4CiX0i0h3qflrE/9rhLIZg5aPCQjbrBdwTxYR3Exfw0IJYcmVaTKXQOUU8fOxlDxULsbLmKe9w==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "remove-accents": "^0.5.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/viewport": {
- "version": "5.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/viewport/-/viewport-5.35.0.tgz",
- "integrity": "sha512-iCIVbFcA1CzGXEVu5COoi6DRdh3m3zEMWOYKKqF1C7W/LhZnTNRsHOZbHq0tv7MOkwx0Nl7+hDJlPRM0B3fb7A==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/data": "^9.28.0",
- "@wordpress/element": "^5.35.0"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/viewport/node_modules/@wordpress/compose": {
- "version": "6.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
- "integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/mousetrap": "^1.6.8",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/dom": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/keycodes": "^3.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/undo-manager": "^0.18.0",
- "change-case": "^4.1.2",
- "clipboard": "^2.0.11",
- "mousetrap": "^1.6.5",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/viewport/node_modules/@wordpress/data": {
- "version": "9.28.0",
- "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.28.0.tgz",
- "integrity": "sha512-EDPpZdkngdoW7EMzPpGj0BmNcr7syJO67pgTODtN/4XFIdYL2RKzFyn3nlLBKhX17UsE/ALq9WdijacH4QJ9qw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/compose": "^6.35.0",
- "@wordpress/deprecated": "^3.58.0",
- "@wordpress/element": "^5.35.0",
- "@wordpress/is-shallow-equal": "^4.58.0",
- "@wordpress/priority-queue": "^2.58.0",
- "@wordpress/private-apis": "^0.40.0",
- "@wordpress/redux-routine": "^4.58.0",
- "deepmerge": "^4.3.0",
- "equivalent-key-map": "^0.2.2",
- "is-plain-object": "^5.0.0",
- "is-promise": "^4.0.0",
- "redux": "^4.1.2",
- "rememo": "^4.0.2",
- "use-memo-one": "^1.1.1"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react": "^18.0.0"
- }
- },
- "node_modules/@wordpress/viewport/node_modules/@wordpress/element": {
- "version": "5.35.0",
- "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.35.0.tgz",
- "integrity": "sha512-puswpGcIdS+0A2g28uHriMkZqqRCmzFczue5Tk99VNtzBdehyk7Ae+DZ4xw5yT6GqYai8NTqv6MRwCB78uh5Mw==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@types/react": "^18.2.79",
- "@types/react-dom": "^18.2.25",
- "@wordpress/escape-html": "^2.58.0",
- "change-case": "^4.1.2",
- "is-plain-object": "^5.0.0",
- "react": "^18.3.0",
- "react-dom": "^18.3.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@wordpress/viewport/node_modules/@wordpress/private-apis": {
- "version": "0.40.0",
- "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-0.40.0.tgz",
- "integrity": "sha512-ZX/9Y8eA3C3K6LOj32bHFj+9tNV819CBd8+chqMmmlvQRcTngiuXbMbnSdZnnAr1gLQgNpH9PJ60dIwJnGSEtQ==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/@wordpress/warning": {
"version": "2.58.0",
"resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.58.0.tgz",
@@ -8559,19 +4619,6 @@
"node": ">=12"
}
},
- "node_modules/@wordpress/wordcount": {
- "version": "3.31.0",
- "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-3.31.0.tgz",
- "integrity": "sha512-g/qrx/ONQGBQ3u25NDxWVEZG82p25DgH8OhsbCBbu5mA35MUgoadIyMptMEEpSIVgHywmjNS/ymqSNlAYRbB5g==",
- "dev": true,
- "license": "GPL-2.0-or-later",
- "dependencies": {
- "@babel/runtime": "^7.16.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/@xtuc/ieee754": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
@@ -8879,19 +4926,6 @@
"dev": true,
"license": "BSD-3-Clause"
},
- "node_modules/aria-hidden": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz",
- "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/aria-query": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
@@ -9180,13 +5214,6 @@
"postcss": "^8.1.0"
}
},
- "node_modules/autosize": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/autosize/-/autosize-4.0.4.tgz",
- "integrity": "sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/available-typed-arrays": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
@@ -9327,22 +5354,6 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/babel-plugin-macros": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz",
- "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.12.5",
- "cosmiconfig": "^7.0.0",
- "resolve": "^1.19.0"
- },
- "engines": {
- "node": ">=10",
- "npm": ">=6"
- }
- },
"node_modules/babel-plugin-polyfill-corejs2": {
"version": "0.4.17",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz",
@@ -9592,13 +5603,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/body-scroll-lock": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-3.1.5.tgz",
- "integrity": "sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/bonjour-service": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.4.4.tgz",
@@ -9685,31 +5689,6 @@
"node-int64": "^0.4.0"
}
},
- "node_modules/buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
- }
- },
"node_modules/buffer-crc32": {
"version": "0.2.13",
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
@@ -10056,13 +6035,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/classnames": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
- "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/clean-webpack-plugin": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz",
@@ -10080,18 +6052,6 @@
"webpack": "*"
}
},
- "node_modules/clipboard": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz",
- "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "good-listener": "^1.2.2",
- "select": "^1.1.2",
- "tiny-emitter": "^2.0.0"
- }
- },
"node_modules/cliui": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
@@ -10137,30 +6097,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/clsx": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
- "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/cmdk": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-0.2.1.tgz",
- "integrity": "sha512-U6//9lQ6JvT47+6OF6Gi8BvkxYQ8SCRRSKIJkthIMsFsLZRG0cKvTtuTaefyIKMQb8rvvXy0wGdpTNq/jPtm+g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@radix-ui/react-dialog": "1.0.0"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
"node_modules/co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@@ -10307,19 +6243,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/compute-scroll-into-view": {
- "version": "1.0.20",
- "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz",
- "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/computed-style": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/computed-style/-/computed-style-0.1.4.tgz",
- "integrity": "sha512-WpAmaKbMNmS3OProfHIdJiNleNJdgUrJfbKArXua28QF7+0CoZjlLn0lp6vlc+dl5r2/X9GQiQRQQU4BzSa69w==",
- "dev": true
- },
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -10372,13 +6295,6 @@
"node": ">= 0.6"
}
},
- "node_modules/convert-source-map": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
- "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/cookie": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
@@ -10956,23 +6872,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/date-fns": {
- "version": "2.30.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz",
- "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.21.0"
- },
- "engines": {
- "node": ">=0.11"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/date-fns"
- }
- },
"node_modules/debounce": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
@@ -11212,13 +7111,6 @@
"node": ">=0.4.0"
}
},
- "node_modules/delegate": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
- "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
@@ -11257,13 +7149,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/detect-node-es": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz",
- "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/devtools-protocol": {
"version": "0.0.981744",
"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz",
@@ -11271,16 +7156,6 @@
"dev": true,
"license": "BSD-3-Clause"
},
- "node_modules/diff": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz",
- "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.3.1"
- }
- },
"node_modules/diff-sequences": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
@@ -11330,13 +7205,6 @@
"node": ">=6.0.0"
}
},
- "node_modules/dom-scroll-into-view": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-1.2.1.tgz",
- "integrity": "sha512-LwNVg3GJOprWDO+QhLL1Z9MMgWe/KAFLxVWKzjRTxNSPn8/LLDIfmuG71YHznXCqaqTjvHJDYO1MEAgX6XCNbQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/dom-serializer": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
@@ -11431,23 +7299,6 @@
"tslib": "^2.0.3"
}
},
- "node_modules/downshift": {
- "version": "6.1.12",
- "resolved": "https://registry.npmjs.org/downshift/-/downshift-6.1.12.tgz",
- "integrity": "sha512-7XB/iaSJVS4T8wGFT3WRXmSF1UlBHAA40DshZtkrIscIN+VC+Lh363skLxFTvJwtNgHxAMDGEHT4xsyQFWL+UA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.14.8",
- "compute-scroll-into-view": "^1.0.17",
- "prop-types": "^15.7.2",
- "react-is": "^17.0.2",
- "tslib": "^2.3.0"
- },
- "peerDependencies": {
- "react": ">=16.12.0"
- }
- },
"node_modules/dunder-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
@@ -11602,20 +7453,6 @@
"node": ">=4"
}
},
- "node_modules/equivalent-key-map": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/equivalent-key-map/-/equivalent-key-map-0.2.2.tgz",
- "integrity": "sha512-xvHeyCDbZzkpN4VHQj/n+j2lOwL0VWszG30X4cOrc9Y7Tuo2qCdZK/0AMod23Z5dCtNUbaju6p0rwOhHUk05ew==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/err-code": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz",
- "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/error-ex": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz",
@@ -12849,16 +8686,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/fast-average-color": {
- "version": "9.6.0",
- "resolved": "https://registry.npmjs.org/fast-average-color/-/fast-average-color-9.6.0.tgz",
- "integrity": "sha512-ysLmWrUZb0E7WJ0ikJaXrbo0qEHBS3R6zT8aYlSknpiIzd8hJ+O1Gv3Gi4VNl1pO8YZGREC3vjWK7uqk/49ZuA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 12"
- }
- },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -13144,13 +8971,6 @@
"find-process": "bin/find-process.js"
}
},
- "node_modules/find-root": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
- "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/find-up": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
@@ -13315,34 +9135,6 @@
"url": "https://github.com/sponsors/rawify"
}
},
- "node_modules/framer-motion": {
- "version": "11.18.2",
- "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.18.2.tgz",
- "integrity": "sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "motion-dom": "^11.18.1",
- "motion-utils": "^11.18.1",
- "tslib": "^2.4.0"
- },
- "peerDependencies": {
- "@emotion/is-prop-valid": "*",
- "react": "^18.0.0 || ^19.0.0",
- "react-dom": "^18.0.0 || ^19.0.0"
- },
- "peerDependenciesMeta": {
- "@emotion/is-prop-valid": {
- "optional": true
- },
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
- }
- },
"node_modules/fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
@@ -13463,13 +9255,6 @@
"node": ">=6.9.0"
}
},
- "node_modules/get-browser-rtc": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz",
- "integrity": "sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -13505,16 +9290,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/get-nonce": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz",
- "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/get-package-type": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
@@ -13720,16 +9495,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/good-listener": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
- "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "delegate": "^3.1.2"
- }
- },
"node_modules/gopd": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
@@ -13750,15 +9515,6 @@
"dev": true,
"license": "ISC"
},
- "node_modules/gradient-parser": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/gradient-parser/-/gradient-parser-0.1.5.tgz",
- "integrity": "sha512-+uPlcVbjrKOnTzvz0MjTj7BfACj8OmxIa1moIjJV7btvhUMSJk0D47RfDCgDrZE3dYMz9Cf5xKJwnrKLjUq0KQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/graphemer": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
@@ -13904,37 +9660,6 @@
"tslib": "^2.0.3"
}
},
- "node_modules/hey-listen": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz",
- "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/highlight-words-core": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/highlight-words-core/-/highlight-words-core-1.2.3.tgz",
- "integrity": "sha512-m1O9HW3/GNHxzSIXWw1wCNXXsgLlxrP0OI6+ycGUhiUHkikqW3OrwVHz+lxeNBe5yqLESdIcj8PowHQ2zLvUvQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/hoist-non-react-statics": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
- "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "react-is": "^16.7.0"
- }
- },
- "node_modules/hoist-non-react-statics/node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/homedir-polyfill": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
@@ -14034,13 +9759,6 @@
"safe-buffer": "~5.1.0"
}
},
- "node_modules/hpq": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/hpq/-/hpq-1.4.0.tgz",
- "integrity": "sha512-ycJQMRaRPBcfnoT1gS5I1XCvbbw9KO94Y0vkwksuOjcJMqNZtb03MF2tCItLI2mQbkZWSSeFinoRDPmjzv4tKg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/html-encoding-sniffer": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
@@ -14356,13 +10074,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/import-locals": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/import-locals/-/import-locals-2.0.0.tgz",
- "integrity": "sha512-1/bPE89IZhyf7dr5Pkz7b4UyVXy5pEt7PTEfye15UEn3AK8+2zwcDCfKk9Pwun4ltfhOSszOrReSsFcDKw/yoA==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
@@ -14863,13 +10574,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/is-promise": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
- "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/is-regex": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
@@ -15088,17 +10792,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/isomorphic.js": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/isomorphic.js/-/isomorphic.js-0.2.5.tgz",
- "integrity": "sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "GitHub Sponsors ❤",
- "url": "https://github.com/sponsors/dmonad"
- }
- },
"node_modules/istanbul-lib-coverage": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
@@ -16144,28 +11837,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/lib0": {
- "version": "0.2.119",
- "resolved": "https://registry.npmjs.org/lib0/-/lib0-0.2.119.tgz",
- "integrity": "sha512-vh+TiejVy8Xm+hCdnRfn9BthGNvNUZdEXltNjVZL3TzRIKP3s1lnQh8pWd/Q0wCgY0FPAGVVjFF4ZiHUV3LFgA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "isomorphic.js": "^0.2.4"
- },
- "bin": {
- "0ecdsa-generate-keypair": "bin/0ecdsa-generate-keypair.js",
- "0gentesthtml": "bin/gentesthtml.js",
- "0serve": "bin/0serve.js"
- },
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "type": "GitHub Sponsors ❤",
- "url": "https://github.com/sponsors/dmonad"
- }
- },
"node_modules/lilconfig": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
@@ -16176,19 +11847,6 @@
"node": ">=10"
}
},
- "node_modules/line-height": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/line-height/-/line-height-0.3.1.tgz",
- "integrity": "sha512-YExecgqPwnp5gplD2+Y8e8A5+jKpr25+DzMbFdI1/1UAr0FJrTFv4VkHLf8/6B590i1wUPJWMKKldkd/bdQ//w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "computed-style": "~0.1.3"
- },
- "engines": {
- "node": ">= 4.0.0"
- }
- },
"node_modules/lines-and-columns": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
@@ -16692,16 +12350,6 @@
"node": ">=8.6"
}
},
- "node_modules/micromodal": {
- "version": "0.4.10",
- "resolved": "https://registry.npmjs.org/micromodal/-/micromodal-0.4.10.tgz",
- "integrity": "sha512-BUrEnzMPFBwK8nOE4xUDYHLrlGlLULQVjpja99tpJQPSUEWgw3kTLp1n1qv0HmKU29AiHE7Y7sMLiRziDK4ghQ==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
@@ -16968,53 +12616,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/moment": {
- "version": "2.31.0",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.31.0.tgz",
- "integrity": "sha512-0acOTfMiWOheYS4eoWb80yYMb/JLvVv9SHbs2PehaDzfUG0Bw855SKyk0IKTnPGa5+U2bmi3W68l1+sGLX/pvw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/moment-timezone": {
- "version": "0.5.48",
- "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.48.tgz",
- "integrity": "sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "moment": "^2.29.4"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/motion-dom": {
- "version": "11.18.1",
- "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.18.1.tgz",
- "integrity": "sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "motion-utils": "^11.18.1"
- }
- },
- "node_modules/motion-utils": {
- "version": "11.18.1",
- "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.18.1.tgz",
- "integrity": "sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/mousetrap": {
- "version": "1.6.5",
- "resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz",
- "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==",
- "dev": true,
- "license": "Apache-2.0 WITH LLVM-exception"
- },
"node_modules/mrmime": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz",
@@ -17251,13 +12852,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/normalize-wheel": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
- "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==",
- "dev": true,
- "license": "BSD-3-Clause"
- },
"node_modules/npm-bundled": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz",
@@ -18008,13 +13602,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/path-to-regexp": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz",
- "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@@ -18663,16 +14250,6 @@
"postcss": "^8.2.15"
}
},
- "node_modules/postcss-prefixwrap": {
- "version": "1.59.1",
- "resolved": "https://registry.npmjs.org/postcss-prefixwrap/-/postcss-prefixwrap-1.59.1.tgz",
- "integrity": "sha512-WW9sOKX5cNTqQD4n3EIgx+/fboymdOqf5P3mGl2va0vItGhJUEQGk/H3hUK+hFASihOQ79Sa3vyJQC/cxnHmkw==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "postcss": "*"
- }
- },
"node_modules/postcss-reduce-initial": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz",
@@ -18804,19 +14381,6 @@
"postcss": "^8.2.15"
}
},
- "node_modules/postcss-urlrebase": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/postcss-urlrebase/-/postcss-urlrebase-1.4.0.tgz",
- "integrity": "sha512-rRaxMmWvXrn8Rk1PqsxmaJwldRHsr0WbbASKKCZYxXwotHkM/5X/6IrwaEe8pdzpbNGCEY86yhYMN0MhgOkADA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "peerDependencies": {
- "postcss": "^8.3.0"
- }
- },
"node_modules/postcss-value-parser": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
@@ -18977,13 +14541,6 @@
"node": ">= 0.10"
}
},
- "node_modules/proxy-compare": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.3.0.tgz",
- "integrity": "sha512-c3L2CcAi7f7pvlD0D7xsF+2CQIW8C3HaYx2Pfgq8eA4HAl3GAH6/dVYsyBbYF/0XJs2ziGLrzmz5fmzPm6A0pQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
@@ -19241,17 +14798,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/re-resizable": {
- "version": "6.11.2",
- "resolved": "https://registry.npmjs.org/re-resizable/-/re-resizable-6.11.2.tgz",
- "integrity": "sha512-2xI2P3OHs5qw7K0Ud1aLILK6MQxW50TcO+DetD9eIV58j84TqYeHoZcL9H4GXFXXIh7afhH8mv5iUCXII7OW7A==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "react": "^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0",
- "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- }
- },
"node_modules/react": {
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
@@ -19265,33 +14811,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/react-autosize-textarea": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/react-autosize-textarea/-/react-autosize-textarea-7.1.0.tgz",
- "integrity": "sha512-BHpjCDkuOlllZn3nLazY2F8oYO1tS2jHnWhcjTWQdcKiiMU6gHLNt/fzmqMSyerR0eTdKtfSIqtSeTtghNwS+g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "autosize": "^4.0.2",
- "line-height": "^0.3.1",
- "prop-types": "^15.5.6"
- },
- "peerDependencies": {
- "react": "^0.14.0 || ^15.0.0 || ^16.0.0",
- "react-dom": "^0.14.0 || ^15.0.0 || ^16.0.0"
- }
- },
- "node_modules/react-colorful": {
- "version": "5.8.1",
- "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.8.1.tgz",
- "integrity": "sha512-oz68bhsnFWnpDf1ZR8daiQbYpXUnM2h2J6hl9Zg2rTpM/DU6vCqe1E+CpqmqLnJucMZetHZeifSAfJ+geN9lcA==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
- }
- },
"node_modules/react-dom": {
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
@@ -19306,35 +14825,6 @@
"react": "^18.3.1"
}
},
- "node_modules/react-easy-crop": {
- "version": "4.7.5",
- "resolved": "https://registry.npmjs.org/react-easy-crop/-/react-easy-crop-4.7.5.tgz",
- "integrity": "sha512-qKfI4PuhaH1jOLC3DQfQB0cE0z+3N7bfyPkPejQmylXNb8nstfPMH+oHj3gKgpBHLFUiQp/C1rY7sVCVgtjn3Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "normalize-wheel": "^1.0.1",
- "tslib": "2.0.1"
- },
- "peerDependencies": {
- "react": ">=16.4.0",
- "react-dom": ">=16.4.0"
- }
- },
- "node_modules/react-easy-crop/node_modules/tslib": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz",
- "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==",
- "dev": true,
- "license": "0BSD"
- },
- "node_modules/react-is": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/react-refresh": {
"version": "0.10.0",
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.10.0.tgz",
@@ -19345,78 +14835,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/react-remove-scroll": {
- "version": "2.5.4",
- "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.4.tgz",
- "integrity": "sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "react-remove-scroll-bar": "^2.3.3",
- "react-style-singleton": "^2.2.1",
- "tslib": "^2.1.0",
- "use-callback-ref": "^1.3.0",
- "use-sidecar": "^1.1.2"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/react-remove-scroll-bar": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz",
- "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "react-style-singleton": "^2.2.2",
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/react-style-singleton": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz",
- "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "get-nonce": "^1.0.0",
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
"node_modules/read-pkg": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
@@ -19529,66 +14947,6 @@
"node": ">=8.10.0"
}
},
- "node_modules/reakit": {
- "version": "1.3.11",
- "resolved": "https://registry.npmjs.org/reakit/-/reakit-1.3.11.tgz",
- "integrity": "sha512-mYxw2z0fsJNOQKAEn5FJCPTU3rcrY33YZ/HzoWqZX0G7FwySp1wkCYW79WhuYMNIUFQ8s3Baob1RtsEywmZSig==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@popperjs/core": "^2.5.4",
- "body-scroll-lock": "^3.1.5",
- "reakit-system": "^0.15.2",
- "reakit-utils": "^0.15.2",
- "reakit-warning": "^0.6.2"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/ariakit"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0",
- "react-dom": "^16.8.0 || ^17.0.0"
- }
- },
- "node_modules/reakit/node_modules/reakit-system": {
- "version": "0.15.2",
- "resolved": "https://registry.npmjs.org/reakit-system/-/reakit-system-0.15.2.tgz",
- "integrity": "sha512-TvRthEz0DmD0rcJkGamMYx+bATwnGNWJpe/lc8UV2Js8nnPvkaxrHk5fX9cVASFrWbaIyegZHCWUBfxr30bmmA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "reakit-utils": "^0.15.2"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0",
- "react-dom": "^16.8.0 || ^17.0.0"
- }
- },
- "node_modules/reakit/node_modules/reakit-utils": {
- "version": "0.15.2",
- "resolved": "https://registry.npmjs.org/reakit-utils/-/reakit-utils-0.15.2.tgz",
- "integrity": "sha512-i/RYkq+W6hvfFmXw5QW7zvfJJT/K8a4qZ0hjA79T61JAFPGt23DsfxwyBbyK91GZrJ9HMrXFVXWMovsKBc1qEQ==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0",
- "react-dom": "^16.8.0 || ^17.0.0"
- }
- },
- "node_modules/reakit/node_modules/reakit-warning": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/reakit-warning/-/reakit-warning-0.6.2.tgz",
- "integrity": "sha512-z/3fvuc46DJyD3nJAUOto6inz2EbSQTjvI/KBQDqxwB0y02HDyeP8IWOJxvkuAUGkWpeSx+H3QWQFSNiPcHtmw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "reakit-utils": "^0.15.2"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0"
- }
- },
"node_modules/rechoir": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
@@ -19616,16 +14974,6 @@
"node": ">=8"
}
},
- "node_modules/redux": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz",
- "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.9.2"
- }
- },
"node_modules/reflect.getprototypeof": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
@@ -19728,27 +15076,6 @@
"regjsparser": "bin/parser"
}
},
- "node_modules/rememo": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/rememo/-/rememo-4.0.2.tgz",
- "integrity": "sha512-NVfSP9NstE3QPNs/TnegQY0vnJnstKQSpcrsI2kBTB3dB2PkdfKdTa+abbjMIDqpc63fE5LfjLgfMst0ULMFxQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/remove-accents": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz",
- "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/requestidlecallback": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/requestidlecallback/-/requestidlecallback-0.3.0.tgz",
- "integrity": "sha512-TWHFkT7S9p7IxLC5A1hYmAYQx2Eb9w1skrXmQ+dS1URyvR8tenMLl4lHbqEOUnpEYxNKpkVMXUgknVpBZWXXfQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -19769,13 +15096,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
- "dev": true,
- "license": "ISC"
- },
"node_modules/requireindex": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz",
@@ -19957,13 +15277,6 @@
"queue-microtask": "^1.2.2"
}
},
- "node_modules/rungen": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/rungen/-/rungen-0.3.2.tgz",
- "integrity": "sha512-zWl10xu2D7zoR8zSC2U6bg5bYF6T/Wk7rxwp8IPaJH7f0Ge21G03kNHVgHR7tyVkSSfAOG0Rqf/Cl38JftSmtw==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/rxjs": {
"version": "7.8.2",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
@@ -20215,13 +15528,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/select": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
- "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/select-hose": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
@@ -20410,13 +15716,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
- "dev": true,
- "license": "ISC"
- },
"node_modules/set-function-length": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
@@ -20548,245 +15847,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/showdown": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/showdown/-/showdown-1.9.1.tgz",
- "integrity": "sha512-9cGuS382HcvExtf5AHk7Cb4pAeQQ+h0eTr33V1mu+crYWV4KvWAw6el92bDrqGEk5d46Ai/fhbEUwqJ/mTCNEA==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "yargs": "^14.2"
- },
- "bin": {
- "showdown": "bin/showdown.js"
- }
- },
- "node_modules/showdown/node_modules/ansi-regex": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
- "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/showdown/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/showdown/node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/showdown/node_modules/cliui": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
- "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "string-width": "^3.1.0",
- "strip-ansi": "^5.2.0",
- "wrap-ansi": "^5.1.0"
- }
- },
- "node_modules/showdown/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/showdown/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/showdown/node_modules/emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/showdown/node_modules/find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "locate-path": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/showdown/node_modules/is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/showdown/node_modules/locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/showdown/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/showdown/node_modules/p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-limit": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/showdown/node_modules/path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/showdown/node_modules/string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/showdown/node_modules/strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^4.1.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/showdown/node_modules/wrap-ansi": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
- "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^3.2.0",
- "string-width": "^3.0.0",
- "strip-ansi": "^5.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/showdown/node_modules/y18n": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
- "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/showdown/node_modules/yargs": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz",
- "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cliui": "^5.0.0",
- "decamelize": "^1.2.0",
- "find-up": "^3.0.0",
- "get-caller-file": "^2.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^3.0.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^15.0.1"
- }
- },
- "node_modules/showdown/node_modules/yargs-parser": {
- "version": "15.0.3",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.3.tgz",
- "integrity": "sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
- },
"node_modules/side-channel": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz",
@@ -20870,43 +15930,6 @@
"dev": true,
"license": "ISC"
},
- "node_modules/simple-html-tokenizer": {
- "version": "0.5.11",
- "resolved": "https://registry.npmjs.org/simple-html-tokenizer/-/simple-html-tokenizer-0.5.11.tgz",
- "integrity": "sha512-C2WEK/Z3HoSFbYq8tI7ni3eOo/NneSPRoPpcM7WdLjFOArFuyXEjAoCdOC3DgMfRyziZQ1hCNR4mrNdWEvD0og==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/simple-peer": {
- "version": "9.11.1",
- "resolved": "https://registry.npmjs.org/simple-peer/-/simple-peer-9.11.1.tgz",
- "integrity": "sha512-D1SaWpOW8afq1CZGWB8xTfrT3FekjQmPValrqncJMX7QFl8YwhrPTZvMCANLtgBwwdS+7zURyqxDDEmY558tTw==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "buffer": "^6.0.3",
- "debug": "^4.3.2",
- "err-code": "^3.0.1",
- "get-browser-rtc": "^1.1.0",
- "queue-microtask": "^1.2.3",
- "randombytes": "^2.1.0",
- "readable-stream": "^3.6.0"
- }
- },
"node_modules/sirv": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
@@ -20980,16 +16003,6 @@
"websocket-driver": "^0.7.4"
}
},
- "node_modules/source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/source-map-js": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz",
@@ -21614,13 +16627,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/stylis": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz",
- "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -21999,13 +17005,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/tiny-emitter": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
- "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/tmpl": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
@@ -22075,26 +17074,6 @@
"node": ">=12"
}
},
- "node_modules/traverse": {
- "version": "0.6.14",
- "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.14.tgz",
- "integrity": "sha512-CYRAVGfnSSe+4Wlof62oUH6y9fGwo0NNS84hMq76MTZtwXQU7Oqna9SgWfrCGj5JPUtHQudnIEt1BP7PInPkPQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-to-primitive": "^1.3.4",
- "gopd": "^1.2.0",
- "typedarray.prototype.slice": "^1.0.6",
- "which-typed-array": "^1.1.24"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/tree-kill": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
@@ -22204,13 +17183,6 @@
"dev": true,
"license": "0BSD"
},
- "node_modules/turbo-combine-reducers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/turbo-combine-reducers/-/turbo-combine-reducers-1.0.2.tgz",
- "integrity": "sha512-gHbdMZlA6Ym6Ur5pSH/UWrNQMIM9IqTH6SoL1DbHpqEdQ8i+cFunSmSlFykPt0eGQwZ4d/XTHOl74H0/kFBVWw==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -22338,29 +17310,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/typedarray.prototype.slice": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/typedarray.prototype.slice/-/typedarray.prototype.slice-1.0.6.tgz",
- "integrity": "sha512-r+7YvGfM5TkTiDQ5EqWi/Z4L4KP3jUI+YCmTtWg1tmTHUw6xladLJqzR2heMaHBIM0TTFLZmn/EkIaEHYs/bIA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.9",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.24.2",
- "es-errors": "^1.3.0",
- "get-proto": "^1.0.1",
- "math-intrinsics": "^1.1.0",
- "typed-array-buffer": "^1.0.3",
- "typed-array-byte-offset": "^1.0.5"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/typescript": {
"version": "5.4.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
@@ -22627,96 +17576,6 @@
"requires-port": "^1.0.0"
}
},
- "node_modules/use-callback-ref": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz",
- "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/use-lilius": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/use-lilius/-/use-lilius-2.0.5.tgz",
- "integrity": "sha512-IbPjJe4T6B0zQV6ahftVtHvCAxi6RAuDpEcO8TmnHh4nBtx7JbGdpbgXWOUj/9YjrzEbdT/lW7JWcBVbX3MbrA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "date-fns": "^3.6.0"
- },
- "peerDependencies": {
- "react": "*",
- "react-dom": "*"
- }
- },
- "node_modules/use-lilius/node_modules/date-fns": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz",
- "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/kossnocorp"
- }
- },
- "node_modules/use-memo-one": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz",
- "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/use-sidecar": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz",
- "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "detect-node-es": "^1.1.0",
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/use-sync-external-store": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.7.0.tgz",
- "integrity": "sha512-6L+EeigHMQhdaIPNIFUKwfWJSwWFQ8gJbJ2DLOs5sDIegTwR9fRxvnM3uciHKjIZhFz+KAv2emhWMRvDmMcY8A==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- }
- },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -22796,58 +17655,6 @@
"node": "^22.22.2 || ^24.15.0 || >=26.0.0"
}
},
- "node_modules/valtio": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.7.0.tgz",
- "integrity": "sha512-3Tnix66EERwMcrl1rfB3ylcewOcL5L/GiPmC3FlVNreQzqf2jufEeqlNmgnLgSGchkEmH3WYVtS+x6Qw4r+yzQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "proxy-compare": "2.3.0",
- "use-sync-external-store": "1.2.0"
- },
- "engines": {
- "node": ">=12.7.0"
- },
- "peerDependencies": {
- "@babel/helper-module-imports": ">=7.12",
- "@babel/types": ">=7.13",
- "aslemammad-vite-plugin-macro": ">=1.0.0-alpha.1",
- "babel-plugin-macros": ">=3.0",
- "react": ">=16.8",
- "vite": ">=2.8.6"
- },
- "peerDependenciesMeta": {
- "@babel/helper-module-imports": {
- "optional": true
- },
- "@babel/types": {
- "optional": true
- },
- "aslemammad-vite-plugin-macro": {
- "optional": true
- },
- "babel-plugin-macros": {
- "optional": true
- },
- "react": {
- "optional": true
- },
- "vite": {
- "optional": true
- }
- }
- },
- "node_modules/valtio/node_modules/use-sync-external-store": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
- "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
"node_modules/vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
@@ -23489,13 +18296,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/which-module": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
- "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==",
- "dev": true,
- "license": "ISC"
- },
"node_modules/which-typed-array": {
"version": "1.1.24",
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.24.tgz",
@@ -23613,76 +18413,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/y-indexeddb": {
- "version": "9.0.12",
- "resolved": "https://registry.npmjs.org/y-indexeddb/-/y-indexeddb-9.0.12.tgz",
- "integrity": "sha512-9oCFRSPPzBK7/w5vOkJBaVCQZKHXB/v6SIT+WYhnJxlEC61juqG0hBrAf+y3gmSMLFLwICNH9nQ53uscuse6Hg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "lib0": "^0.2.74"
- },
- "engines": {
- "node": ">=16.0.0",
- "npm": ">=8.0.0"
- },
- "funding": {
- "type": "GitHub Sponsors ❤",
- "url": "https://github.com/sponsors/dmonad"
- },
- "peerDependencies": {
- "yjs": "^13.0.0"
- }
- },
- "node_modules/y-protocols": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/y-protocols/-/y-protocols-1.0.7.tgz",
- "integrity": "sha512-YSVsLoXxO67J6eE/nV4AtFtT3QEotZf5sK5BHxFBXso7VDUT3Tx07IfA6hsu5Q5OmBdMkQVmFZ9QOA7fikWvnw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "lib0": "^0.2.85"
- },
- "engines": {
- "node": ">=16.0.0",
- "npm": ">=8.0.0"
- },
- "funding": {
- "type": "GitHub Sponsors ❤",
- "url": "https://github.com/sponsors/dmonad"
- },
- "peerDependencies": {
- "yjs": "^13.0.0"
- }
- },
- "node_modules/y-webrtc": {
- "version": "10.2.6",
- "resolved": "https://registry.npmjs.org/y-webrtc/-/y-webrtc-10.2.6.tgz",
- "integrity": "sha512-1kZ4YYwksFZi8+l8mTebVX9vW6Q5MnqxMkvNU700X5dBE38usurt/JgeXSIQRpK3NwUYYb9y63Jn9FMpMH6/vA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "lib0": "^0.2.42",
- "simple-peer": "^9.11.0",
- "y-protocols": "^1.0.6"
- },
- "bin": {
- "y-webrtc-signaling": "bin/server.js"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "type": "GitHub Sponsors ❤",
- "url": "https://github.com/sponsors/dmonad"
- },
- "optionalDependencies": {
- "ws": "^8.14.2"
- },
- "peerDependencies": {
- "yjs": "^13.6.8"
- }
- },
"node_modules/y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
@@ -23760,24 +18490,6 @@
"fd-slicer": "~1.1.0"
}
},
- "node_modules/yjs": {
- "version": "13.6.33",
- "resolved": "https://registry.npmjs.org/yjs/-/yjs-13.6.33.tgz",
- "integrity": "sha512-q/UYvr1gOk4XII+Cu1CW2dINjYqJJFifTzogEaIARznrvX7uOlHsdTEXcnOBMuIsrCGEEKdNxi74kyMLZlKVfw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "lib0": "^0.2.99"
- },
- "engines": {
- "node": ">=16.0.0",
- "npm": ">=8.0.0"
- },
- "funding": {
- "type": "GitHub Sponsors ❤",
- "url": "https://github.com/sponsors/dmonad"
- }
- },
"node_modules/yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
diff --git a/assets/creator-studio/package.json b/assets/creator-studio/package.json
index e8e9b694..9e8d9dfb 100644
--- a/assets/creator-studio/package.json
+++ b/assets/creator-studio/package.json
@@ -9,18 +9,9 @@
"devDependencies": {
"@types/react": "18.3.31",
"@types/react-dom": "18.3.7",
- "@wordpress/api-fetch": "^6.28.0",
- "@wordpress/block-editor": "11.8.0",
- "@wordpress/block-library": "^8.8.0",
- "@wordpress/blocks": "12.8.0",
- "@wordpress/components": "^23.8.0",
- "@wordpress/compose": "^6.8.0",
- "@wordpress/data": "9.5.0",
"@wordpress/element": "5.8.0",
- "@wordpress/hooks": "^3.31.0",
"@wordpress/i18n": "4.31.0",
"@wordpress/scripts": "26.4.0",
- "@wordpress/wordcount": "3.31.0",
"sass": "1.77.8",
"typescript": "5.4.5"
}
diff --git a/assets/creator-studio/scripts/interact.cjs b/assets/creator-studio/scripts/interact.cjs
index 6d389e12..72b36d71 100644
--- a/assets/creator-studio/scripts/interact.cjs
+++ b/assets/creator-studio/scripts/interact.cjs
@@ -1,5 +1,5 @@
/**
- * 交互冒烟:验证插入面板能打开、能插入区块,封面条存在,
+ * TinyMCE 交互冒烟:验证固定工具栏能够编辑正文格式,
* 并记录无法捕获的 promise 拒绝。
*/
const fs = require('fs');
@@ -22,82 +22,38 @@ const URL = process.argv[2] || 'https://localhost/jio-preview.html';
args: ['--disable-gpu', '--no-sandbox'],
});
const page = await browser.newPage();
- await page.setViewport({ width: 1440, height: 560 });
-
- if (process.env.JIO_USE_WORKTREE_BUILD === '1') {
- await page.setRequestInterception(true);
- page.on('request', (request) => {
- const pathname = new URL(request.url()).pathname;
- const jsSuffix = '/assets/creator-studio/build/index.js';
- const cssSuffix = '/assets/creator-studio/build/index.css';
- if (pathname.endsWith(jsSuffix)) {
- request.respond({
- status: 200,
- contentType: 'application/javascript',
- body: fs.readFileSync(path.join(__dirname, '../build/index.js')),
- });
- } else if (pathname.endsWith(cssSuffix)) {
- request.respond({
- status: 200,
- contentType: 'text/css',
- body: fs.readFileSync(path.join(__dirname, '../build/index.css')),
- });
- } else {
- request.continue();
- }
- });
- }
+ await page.setViewport({ width: 1440, height: 900 });
const errors = [];
- page.on('pageerror', (e) => errors.push('pageerror: ' + e.message));
+ page.on('pageerror', (error) => errors.push('pageerror: ' + error.message));
await page.goto(URL, { waitUntil: 'networkidle2', timeout: 60000 });
- await new Promise((r) => setTimeout(r, 2500));
+ await page.waitForFunction(() => window.tinymce?.get('jio-creator-content'), { timeout: 20000 });
const before = await page.evaluate(() => ({
- blocks: document.querySelectorAll('.block-editor-block-list__block').length,
- hasInsertBtn: !!document.querySelector('.jio-creator__insert'),
- hasCover: !!document.querySelector('.jio-creator__cover'),
- toolbarTop: document.querySelector('.jio-creator__bar')?.getBoundingClientRect().top,
+ fixed: getComputedStyle(document.querySelector('.jio-creator__bar')).position === 'fixed',
+ toolbar: !!document.querySelector('[role="toolbar"]'),
+ editor: !!window.tinymce?.get('jio-creator-content'),
}));
- await page.evaluate(() => window.scrollTo(0, 700));
- await new Promise((r) => setTimeout(r, 300));
- const toolbarAfterScroll = await page.$eval('.jio-creator__bar', (el) => el.getBoundingClientRect().top);
- console.log('BEFORE ' + JSON.stringify({ ...before, toolbarAfterScroll }));
- // 打开插入面板
- await page.click('.jio-creator__insert');
- await new Promise((r) => setTimeout(r, 400));
- const panel = await page.evaluate(() => ({
- open: !!document.querySelector('.jio-insert__panel'),
- items: Array.from(document.querySelectorAll('.jio-insert-item__label')).map((n) => n.textContent),
- }));
- console.log('PANEL ' + JSON.stringify(panel));
-
- // 插入「标题」区块
- const clicked = await page.evaluate(() => {
- const btn = Array.from(document.querySelectorAll('.jio-insert-item')).find(
- (b) => (b.textContent || '').includes('标题')
- );
- if (!btn) return false;
- btn.click();
- return true;
+ await page.evaluate(() => {
+ const editor = window.tinymce.get('jio-creator-content');
+ editor.setContent('Toolbar smoke test
');
+ editor.selection.select(editor.dom.select('p')[0], true);
});
- await new Promise((r) => setTimeout(r, 900));
+ await page.click('.jio-creator__tool-btn[aria-label="加粗"]');
+ const bold = await page.evaluate(() => /<(strong|b)>Toolbar smoke test<\/(strong|b)>/.test(window.tinymce.get('jio-creator-content').getContent()));
- const after = await page.evaluate(() => ({
- panelClosed: !document.querySelector('.jio-insert__panel'),
- blocks: document.querySelectorAll('.block-editor-block-list__block').length,
- hasHeading: !!document.querySelector('[data-type="core/heading"]'),
- }));
- console.log('AFTER ' + JSON.stringify({ clicked, ...after }));
-
- await page.screenshot({ path: 'C:/Users/Xing/Desktop/WP-Date/data/wordpress/shot-insert.png' });
-
- if (errors.length) {
- console.log('--- errors ---');
- errors.slice(0, 10).forEach((e) => console.log(e));
- }
+ await page.evaluate(() => {
+ const editor = window.tinymce.get('jio-creator-content');
+ editor.setContent('Heading smoke test
');
+ editor.selection.select(editor.dom.select('p')[0], true);
+ });
+ await page.select('.jio-creator__format-select', 'h2');
+ const heading = await page.evaluate(() => /]*>Heading smoke test<\/h2>/.test(window.tinymce.get('jio-creator-content').getContent()));
+ console.log('STATE ' + JSON.stringify({ ...before, bold, heading }));
+ if (errors.length) errors.forEach((error) => console.log(error));
+ await page.screenshot({ path: 'C:/Users/Xing/Desktop/WP-Date/data/wordpress/shot-tinymce-toolbar.png' });
await browser.close();
})();
diff --git a/assets/creator-studio/scripts/preview.cjs b/assets/creator-studio/scripts/preview.cjs
index 073142c3..953d71fc 100644
--- a/assets/creator-studio/scripts/preview.cjs
+++ b/assets/creator-studio/scripts/preview.cjs
@@ -21,7 +21,7 @@ const mockBootstrap = {
title: '',
excerpt: '',
content:
- '
这是正文的第一段。微信公众号式的编辑体验强调沉浸感:大面积留白、克制的工具栏、只在需要时才出现的设置面板。
',
+ '这是正文的第一段。微信公众号式的编辑体验强调沉浸感:留白克制,固定工具栏始终可用,发布设置只在需要时打开。
',
permalink: '',
isPublished: false,
categories: {
@@ -81,7 +81,6 @@ const mockBootstrap = {
privateUrl: '#',
bootstrapUrl: '#',
},
- blocks: { mediaUploadUrl: '#', mediaListUrl: '#' },
nonce: 'preview',
};
diff --git a/assets/creator-studio/scripts/shoot.cjs b/assets/creator-studio/scripts/shoot.cjs
index a5d5f0eb..6c290114 100644
--- a/assets/creator-studio/scripts/shoot.cjs
+++ b/assets/creator-studio/scripts/shoot.cjs
@@ -59,8 +59,8 @@ const PREFIX = process.argv[3] || 'C:/Users/Xing/Desktop/WP-Date/data/wordpress/
title: pick('.jio-creator__title textarea'),
excerpt: pick('.jio-creator__excerpt textarea'),
canvas: pick('.jio-creator__canvas'),
- para: pick('.block-editor-block-list__block'),
- appender: pick('.block-editor-default-block-appender'),
+ toolbar: pick('.jio-creator__toolbar-tools'),
+ editor: pick('.jio-creator__editor .mce-edit-area'),
primaryBtn: pick('.jio-creator__primary'),
ghostBtn: pick('.jio-creator__ghost'),
pageBg: getComputedStyle(document.body).backgroundColor,
diff --git a/assets/creator-studio/scripts/smoke.cjs b/assets/creator-studio/scripts/smoke.cjs
index f02df7f4..83d3a8ec 100644
--- a/assets/creator-studio/scripts/smoke.cjs
+++ b/assets/creator-studio/scripts/smoke.cjs
@@ -75,9 +75,12 @@ if (!EDGE) {
const state = await page.evaluate(() => ({
hasBar: !!document.querySelector('.jio-creator__bar'),
- hasCanvas: !!document.querySelector('.jio-creator__canvas'),
- appender: !!document.querySelector('.block-editor-default-block-appender'),
- blocks: document.querySelectorAll('.block-editor-block-list__block').length,
+ hasToolbar: !!document.querySelector('.jio-creator__toolbar-tools'),
+ hasTinyMce: !!window.tinymce?.get('jio-creator-content'),
+ hasEditorFrame: !!document.querySelector('.mce-tinymce iframe, .tox-tinymce iframe'),
+ hasTitle: !!document.querySelector('.jio-creator__title textarea'),
+ hasSaveDraft: !!document.querySelector('.jio-creator__save-draft'),
+ toolbarActions: Array.from(document.querySelectorAll('.jio-creator__toolbar-tools button')).map((button) => button.getAttribute('aria-label') || button.textContent.trim()),
saveText: (document.querySelector('.jio-creator__save') || {}).textContent,
rejections: window.__jioRejections || [],
}));
diff --git a/assets/creator-studio/src/components/editor-toolbar.tsx b/assets/creator-studio/src/components/editor-toolbar.tsx
new file mode 100644
index 00000000..7f8ae794
--- /dev/null
+++ b/assets/creator-studio/src/components/editor-toolbar.tsx
@@ -0,0 +1,96 @@
+import { __ } from '@wordpress/i18n';
+
+type Capabilities = Record;
+
+type Props = {
+ ready: boolean;
+ canUndo: boolean;
+ canRedo: boolean;
+ formatValue: string;
+ onFormatChange: (value: string) => void;
+ capabilities: Capabilities;
+ onCommand: (name: string, value?: string) => void;
+ onRememberSelection: () => void;
+ onOpenLink: () => void;
+ onOpenMedia: (type: 'image' | 'video') => void;
+};
+
+export function EditorToolbar({
+ ready,
+ canUndo,
+ canRedo,
+ formatValue,
+ onFormatChange,
+ capabilities,
+ onCommand,
+ onRememberSelection,
+ onOpenLink,
+ onOpenMedia,
+}: Props) {
+ return (
+ {
+ onRememberSelection();
+ if ((event.target as HTMLElement).closest('button')) event.preventDefault();
+ }}
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {capabilities.canUploadImage && (
+
+ )}
+ {(capabilities.canUploadVideo || capabilities.canEmbed) && (
+
+ )}
+
+
+
+ );
+}
diff --git a/assets/creator-studio/src/extensions/image-width.tsx b/assets/creator-studio/src/extensions/image-width.tsx
deleted file mode 100644
index 03ff528d..00000000
--- a/assets/creator-studio/src/extensions/image-width.tsx
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * 图片宽度预设(公众号式四档)。
- *
- * 通过 block filter 给 core/image 追加「半屏 / 中等 / 通栏 / 全宽」四档宽度,
- * 选中图片时出现在区块工具条里。宽度存进图片区块的 className,序列化到
- * post_content 后由前台样式生效,不需要自定义区块或额外元数据。
- *
- * @package Jio
- */
-
-import { addFilter } from '@wordpress/hooks';
-import { createHigherOrderComponent } from '@wordpress/compose';
-import { BlockControls } from '@wordpress/block-editor';
-import { ToolbarGroup } from '@wordpress/components';
-import { __ } from '@wordpress/i18n';
-const WIDTH_CLASSES = [
- { key: 'half', label: __('半屏', 'jio'), className: 'jio-img-w--half' },
- { key: 'medium', label: __('中等', 'jio'), className: 'jio-img-w--medium' },
- { key: 'wide', label: __('通栏', 'jio'), className: 'jio-img-w--wide' },
- { key: 'full', label: __('全宽', 'jio'), className: 'jio-img-w--full' },
-];
-
-function currentPreset(className: string): string {
- const found = WIDTH_CLASSES.find((w) => (className || '').split(/\s+/).includes(w.className));
- return found ? found.key : 'wide';
-}
-
-function withImageWidthControls(BlockEdit: any) {
- return (props: any) => {
- if (props.name !== 'core/image') {
- return ;
- }
-
- const className = String(props.attributes?.className || '');
- const active = currentPreset(className);
-
- const setPreset = (preset: (typeof WIDTH_CLASSES)[number]) => {
- const rest = className
- .split(/\s+/)
- .filter((c) => c && !WIDTH_CLASSES.some((w) => w.className === c));
- props.setAttributes({ className: [...rest, preset.className].join(' ') });
- };
-
- return (
- <>
-
-
- ({
- title: preset.label,
- // 用文字而不是图标,四档宽度靠标签更易分辨。
- children: preset.label,
- isActive: active === preset.key,
- onClick: () => setPreset(preset),
- }))}
- />
-
- >
- );
- };
-}
-
-export function installImageWidthPresets(): void {
- if ((window as any).__jioImageWidthInstalled) {
- return;
- }
- (window as any).__jioImageWidthInstalled = true;
- addFilter(
- 'editor.BlockEdit',
- 'jio/creator-studio/image-width',
- createHigherOrderComponent(withImageWidthControls, 'withJioImageWidth')
- );
-}
diff --git a/assets/creator-studio/src/hooks/use-editor-history.ts b/assets/creator-studio/src/hooks/use-editor-history.ts
deleted file mode 100644
index ca187a59..00000000
--- a/assets/creator-studio/src/hooks/use-editor-history.ts
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * 工作台级撤销/重做历史。
- *
- * BlockEditorProvider 独立运行时不带 core/editor 的 post history store,
- * 因此为标题、摘要、区块树保存快照。输入以 450ms 合并成一条历史记录,
- * 避免每个字符都占用一步。
- *
- * @package Jio
- */
-
-import { useCallback, useEffect, useRef, useState } from '@wordpress/element';
-
-type Snapshot = { value: T; signature: string };
-type HistoryState = { past: Snapshot[]; future: Snapshot[]; present: Snapshot; pending: T | null };
-
-type Options = {
- initial: T;
- onRestore: (value: T) => void;
- limit?: number;
- mergeDelay?: number;
-};
-
-function copy(value: T): T {
- return JSON.parse(JSON.stringify(value)) as T;
-}
-
-function snapshot(value: T): Snapshot {
- const cloned = copy(value);
- return { value: cloned, signature: JSON.stringify(cloned) };
-}
-
-export function useEditorHistory({ initial, onRestore, limit = 80, mergeDelay = 450 }: Options) {
- const state = useRef>({
- past: [],
- future: [],
- present: snapshot(initial),
- pending: null,
- });
- const timer = useRef(null);
- const restoreRef = useRef(onRestore);
- restoreRef.current = onRestore;
- const [availability, setAvailability] = useState({ canUndo: false, canRedo: false });
-
- const updateAvailability = useCallback(() => {
- setAvailability({
- canUndo: state.current.past.length > 0 || state.current.pending !== null,
- canRedo: state.current.future.length > 0,
- });
- }, []);
-
- const flush = useCallback(() => {
- if (timer.current !== null) {
- window.clearTimeout(timer.current);
- timer.current = null;
- }
- const current = state.current;
- if (current.pending === null) {
- return;
- }
- const next = snapshot(current.pending);
- current.pending = null;
- if (next.signature === current.present.signature) {
- updateAvailability();
- return;
- }
- current.past = [...current.past, current.present].slice(-limit);
- current.present = next;
- current.future = [];
- updateAvailability();
- }, [limit, updateAvailability]);
-
- const record = useCallback(
- (value: T) => {
- state.current.pending = copy(value);
- if (timer.current !== null) {
- window.clearTimeout(timer.current);
- }
- timer.current = window.setTimeout(flush, mergeDelay);
- updateAvailability();
- },
- [flush, mergeDelay, updateAvailability]
- );
-
- const undo = useCallback(() => {
- flush();
- const current = state.current;
- if (!current.past.length) {
- return false;
- }
- const previous = current.past[current.past.length - 1];
- current.past = current.past.slice(0, -1);
- current.future = [current.present, ...current.future].slice(0, limit);
- current.present = previous;
- restoreRef.current(copy(previous.value));
- updateAvailability();
- return true;
- }, [flush, limit, updateAvailability]);
-
- const redo = useCallback(() => {
- flush();
- const current = state.current;
- if (!current.future.length) {
- return false;
- }
- const next = current.future[0];
- current.future = current.future.slice(1);
- current.past = [...current.past, current.present].slice(-limit);
- current.present = next;
- restoreRef.current(copy(next.value));
- updateAvailability();
- return true;
- }, [flush, limit, updateAvailability]);
-
- useEffect(() => () => {
- if (timer.current !== null) {
- window.clearTimeout(timer.current);
- }
- }, []);
-
- return { ...availability, record, undo, redo, flush };
-}
diff --git a/assets/creator-studio/src/index.tsx b/assets/creator-studio/src/index.tsx
index 9833575f..8d9a22a6 100644
--- a/assets/creator-studio/src/index.tsx
+++ b/assets/creator-studio/src/index.tsx
@@ -1,47 +1,30 @@
/**
- * Jio Creator Studio — 前台沉浸式创作界面。
+ * Jio Creator Studio — 前台 TinyMCE 写作工作台。
*
- * Gutenberg 负责区块解析、编辑与序列化;本入口只搭建工作台外壳、发布配置抽屉
- * 与保存/预览/提交编排。所有写入都走 Jio REST(CreatorRest),服务端负责权限、
- * 字段清洗、审核状态与私有附件归属。
+ * TinyMCE 负责文章正文编辑,固定操作栏通过 TinyMCE API 执行排版与媒体命令;
+ * Jio REST 继续负责保存、审核、权限、付费配置与私有附件归属。
*
* @package Jio
*/
import { createRoot, useCallback, useEffect, useMemo, useRef, useState } from '@wordpress/element';
-import { createBlock, parse, serialize } from '@wordpress/blocks';
-import { registerCoreBlocks } from '@wordpress/block-library';
-import { useDispatch, useSelect } from '@wordpress/data';
-import { BlockEditorProvider, BlockList, BlockTools } from '@wordpress/block-editor';
-import { count as countWords } from '@wordpress/wordcount';
import { __ } from '@wordpress/i18n';
import { apiPost } from './services/api';
-import { installApiFetchNonce } from './services/api-fetch';
-import { installMediaUploadBridge } from './services/media';
-import { installImageWidthPresets } from './extensions/image-width';
import { PublishDrawer } from './panels/publish-drawer';
import { CoverStrip } from './components/cover-strip';
import { AuthorRow } from './components/author-row';
-import { InsertPanel, type InsertItem } from './panels/insert-panel';
-import { buildInsertGroups } from './utils/insert-items';
+import { EditorToolbar } from './components/editor-toolbar';
import { SaveState, type SaveStateValue } from './components/save-state';
import { useAutosave } from './hooks/use-autosave';
-import { useEditorHistory } from './hooks/use-editor-history';
import { useLocalRecovery } from './hooks/use-local-recovery';
import { normalizePayForRequest } from './utils/pay';
import './styles/studio.scss';
-// 核心区块注册只做一次;重复调用会触发 "Block type already registered"。
-const coreRegistered = (window as any).__jioCoreBlocksRegistered;
-if (!coreRegistered && typeof registerCoreBlocks === 'function') {
- registerCoreBlocks();
- (window as any).__jioCoreBlocksRegistered = true;
-}
-
const bootstrap: Record = window['jioCreatorStudio'] || {};
const nonce: string = bootstrap.nonce || '';
const STORAGE_KEY = `jio-studio-${bootstrap.sourceId || 0}`;
+const EDITOR_ID = 'jio-creator-content';
type Featured = { type: string; data: Record; mediaId?: number };
type PayState = {
@@ -107,58 +90,50 @@ function initialDraft(): Draft {
};
}
+function escapeAttribute(value: string): string {
+ return value.replace(/&/g, '&').replace(/"/g, '"').replace(//g, '>');
+}
+
+function safeHttpUrl(value: unknown): string {
+ const raw = String(value || '').trim();
+ if (!raw) {
+ return '';
+ }
+ try {
+ const url = new URL(raw, window.location.href);
+ return url.protocol === 'http:' || url.protocol === 'https:' ? url.href : '';
+ } catch (error) {
+ return '';
+ }
+}
+
+function plainText(content: string): string {
+ const container = document.createElement('div');
+ container.innerHTML = content;
+ return (container.textContent || '').replace(/\s+/g, '');
+}
+
function Studio(): JSX.Element {
const [draft, setDraft] = useState(initialDraft);
- const [blocks, setBlocks] = useState(() => parse(draft.content || ''));
- const blocksRef = useRef(blocks);
- blocksRef.current = blocks;
const draftRef = useRef(draft);
draftRef.current = draft;
+ const editorRef = useRef(null);
+ const editorBookmarkRef = useRef(null);
+ const pendingRestoreContentRef = useRef(null);
+ const editorReadyRef = useRef(false);
+ const saveActionRef = useRef<() => void>(() => undefined);
+ const [editorReady, setEditorReady] = useState(false);
+ const [historyAvailability, setHistoryAvailability] = useState({ canUndo: false, canRedo: false });
+ const [formatValue, setFormatValue] = useState('p');
const [saveState, setSaveState] = useState(() => ({
state: bootstrap.sourceId || bootstrap.versionId || bootstrap.content ? 'saved' : 'ready',
at: '',
}));
const [drawerOpen, setDrawerOpen] = useState(false);
- const [insertOpen, setInsertOpen] = useState(false);
const [notice, setNotice] = useState<{ tone: 'ok' | 'error'; text: string } | null>(null);
const [recovery, setRecovery] = useState(null);
const dirtyRef = useRef(false);
- const restoreBlockSignatureRef = useRef('');
-
- const restoreHistory = useCallback((value: { blocks: any[]; title: string; excerpt: string }) => {
- dirtyRef.current = true;
- blocksRef.current = value.blocks;
- restoreBlockSignatureRef.current = serialize(value.blocks);
- setBlocks(value.blocks);
- const next = { ...draftRef.current, title: value.title, excerpt: value.excerpt };
- draftRef.current = next;
- setDraft(next);
- }, []);
- const history = useEditorHistory({
- initial: { blocks, title: draft.title, excerpt: draft.excerpt },
- onRestore: restoreHistory,
- });
- const historyRef = useRef(history);
- historyRef.current = history;
-
- const undo = useCallback(() => historyRef.current.undo(), []);
- const redo = useCallback(() => historyRef.current.redo(), []);
-
- useEffect(() => {
- const onKeyDown = (event: KeyboardEvent) => {
- if (!(event.metaKey || event.ctrlKey) || event.key.toLowerCase() !== 'z') {
- return;
- }
- const target = event.target as HTMLElement | null;
- if (target?.closest('input, textarea, [contenteditable="true"]')) {
- return;
- }
- event.preventDefault();
- event.shiftKey ? redo() : undo();
- };
- window.addEventListener('keydown', onKeyDown);
- return () => window.removeEventListener('keydown', onKeyDown);
- }, [redo, undo]);
+ const editRevisionRef = useRef(0);
const capabilities = bootstrap.capabilities || {};
const limits: Limits = {
@@ -174,97 +149,103 @@ function Studio(): JSX.Element {
const patchDraft = useCallback((patch: Partial) => {
dirtyRef.current = true;
+ editRevisionRef.current += 1;
const next = { ...draftRef.current, ...patch };
draftRef.current = next;
- if ('title' in patch || 'excerpt' in patch) {
- historyRef.current.record({
- blocks: blocksRef.current,
- title: next.title,
- excerpt: next.excerpt,
- });
- }
setDraft(next);
}, []);
- const onChangeBlocks = useCallback((next: any[]) => {
- dirtyRef.current = true;
- blocksRef.current = next;
- const signature = serialize(next);
- if (restoreBlockSignatureRef.current !== '' && signature === restoreBlockSignatureRef.current) {
- restoreBlockSignatureRef.current = '';
- setBlocks(next);
+ const updateContent = useCallback((content: string) => {
+ if (content === draftRef.current.content) {
return;
}
- historyRef.current.record({
- blocks: next,
- title: draftRef.current.title,
- excerpt: draftRef.current.excerpt,
- });
- setBlocks(next);
+ dirtyRef.current = true;
+ editRevisionRef.current += 1;
+ const next = { ...draftRef.current, content };
+ draftRef.current = next;
+ setDraft(next);
}, []);
- const serialized = useMemo(() => serialize(blocks), [blocks]);
+ const updateHistoryAvailability = useCallback((editor: any) => {
+ const manager = editor?.undoManager;
+ if (!manager) return;
+ setHistoryAvailability({
+ canUndo: typeof manager.hasUndo === 'function' && manager.hasUndo(),
+ canRedo: typeof manager.hasRedo === 'function' && manager.hasRedo(),
+ });
+ }, []);
- // 中文没有空格分词,wordcount 的 'words' 会把整段算成 1。
- // 'characters_excluding_spaces' 才是中文场景该用的口径(与前台 TinyMCE 字数一致)。
- const charCount = useMemo(() => {
- const text = serialized.replace(/<[^>]*>/g, ' ');
- return countWords(text, 'characters_excluding_spaces', {});
- }, [serialized]);
+ const updateFormatValue = useCallback((editor: any) => {
+ const node = editor?.selection?.getNode();
+ const block = node ? editor.dom.getParent(node, 'p,h1,h2,h3,blockquote') || node : null;
+ const name = block?.nodeName?.toLowerCase() || 'p';
+ setFormatValue(['h1', 'h2', 'h3', 'blockquote'].includes(name) ? name : 'p');
+ }, []);
- const buildPayload = useCallback(
- (extra: Record = {}) => ({
- post_id: draft.postId,
- version_id: draft.versionId,
- rev: draft.rev,
- title: draft.title,
- excerpt: draft.excerpt,
- content: serialized,
- categories: draft.categories,
- tags: draft.tags,
- custom: draft.custom,
- featured: draft.featured,
- pay: normalizePayForRequest(draft.pay),
+ const charCount = useMemo(() => Array.from(plainText(draft.content)).length, [draft.content]);
+
+ const buildPayload = useCallback((extra: Record = {}) => {
+ const current = draftRef.current;
+ return {
+ post_id: current.postId,
+ version_id: current.versionId,
+ rev: current.rev,
+ title: current.title,
+ excerpt: current.excerpt,
+ content: current.content,
+ categories: current.categories,
+ tags: current.tags,
+ custom: current.custom,
+ featured: current.featured,
+ pay: normalizePayForRequest(current.pay),
...extra,
- }),
- [draft, serialized]
- );
+ };
+ }, []);
const save = useCallback(
async (autosave = false): Promise => {
- if (!dirtyRef.current && (draft.postId > 0 || draft.versionId > 0)) {
+ const editor = editorRef.current;
+ if (editor && !editor.removed) {
+ updateContent(editor.getContent());
+ }
+ const current = draftRef.current;
+ if (!dirtyRef.current && (current.postId > 0 || current.versionId > 0)) {
return true;
}
- // 空文档不触发自动保存:服务端会拒绝无标题/无内容的写入,
- // 保留本地快照即可,避免把“保存失败”当成真的故障。
- const hasDocument = draft.title.trim() !== '' || serialized.replace(/<[^>]*>/g, '').trim() !== '';
+ const requestRevision = editRevisionRef.current;
+ const hasDocument = current.title.trim() !== '' || plainText(current.content).trim() !== '';
if (autosave && !hasDocument) {
return true;
}
setSaveState({ state: 'saving', at: '' });
try {
const response = await apiPost(bootstrap.creator.saveUrl, buildPayload({ autosave }), nonce);
- const savedId = Number(response.post_id || draft.postId || 0);
- const versionId = Number(response.version_id || draft.versionId || 0);
- const rev = Number(response.rev || response.versionRev || draft.rev || 0);
- dirtyRef.current = false;
- const updated = { ...draftRef.current, postId: savedId, versionId, rev };
+ const updated = {
+ ...draftRef.current,
+ postId: Number(response.post_id || draftRef.current.postId || 0),
+ versionId: Number(response.version_id || draftRef.current.versionId || 0),
+ rev: Number(response.rev || response.versionRev || draftRef.current.rev || 0),
+ };
+ if ((window as any).jioSubmitData) {
+ (window as any).jioSubmitData.postId = updated.postId;
+ }
+ const settled = editRevisionRef.current === requestRevision;
+ dirtyRef.current = !settled;
draftRef.current = updated;
setDraft(updated);
- setSaveState({ state: 'saved', at: new Date().toLocaleTimeString() });
- return true;
+ setSaveState({ state: settled ? 'saved' : 'saving', at: settled ? new Date().toLocaleTimeString() : '' });
+ return settled;
} catch (error: any) {
setSaveState({ state: error?.status === 409 ? 'conflict' : 'error', at: '' });
return false;
}
},
- [buildPayload, draft.postId, draft.versionId, draft.rev]
+ [buildPayload]
);
+ saveActionRef.current = () => void save(false);
const submit = useCallback(
async (publishNow: boolean): Promise => {
- // 提交前先落一次草稿:审核 / 立即发布都以服务端最终保存的内容为准,
- // 避免自动保存尚未触发时提交到旧内容。
const persisted = await save(false);
if (!persisted) {
setNotice({ tone: 'error', text: __('内容保存失败,请重试后再提交', 'jio') });
@@ -272,8 +253,6 @@ function Studio(): JSX.Element {
}
setSaveState({ state: 'submitting', at: '' });
try {
- // 站点启用「前台投稿」人机验证时,先完成挑战再提交;
- // 服务端仍会独立校验证明,前端只是把凭证带过去。
let captchaProof = '';
const captcha = (window as any).JioCaptcha;
if (bootstrap.captcha?.enabled && captcha && typeof captcha.run === 'function') {
@@ -331,11 +310,11 @@ function Studio(): JSX.Element {
} catch (error: any) {
setNotice({ tone: 'error', text: String(error?.message || __('预览失败', 'jio')) });
}
- }, [draft.postId, draft.versionId, save]);
+ }, [save]);
const { markLocalSaved, clear } = useLocalRecovery({
key: STORAGE_KEY,
- snapshot: { title: draft.title, content: serialized, at: new Date().toISOString() },
+ snapshot: { title: draft.title, content: draft.content, at: new Date().toISOString() },
onFound: (savedAt: string) => setRecovery({ savedAt }),
});
@@ -357,7 +336,7 @@ function Studio(): JSX.Element {
if (dirtyRef.current) {
autosaveSchedule();
}
- }, [draft, serialized, autosaveSchedule]);
+ }, [draft, autosaveSchedule]);
useEffect(() => {
const beforeUnload = (event: BeforeUnloadEvent) => {
@@ -382,56 +361,198 @@ function Studio(): JSX.Element {
return () => window.removeEventListener('keydown', onKey);
}, [save]);
+ useEffect(() => {
+ const wpEditor = (window as any).wp?.editor;
+ if (!wpEditor || typeof wpEditor.initialize !== 'function') {
+ setNotice({ tone: 'error', text: __('TinyMCE 加载失败,请刷新页面后重试。', 'jio') });
+ return undefined;
+ }
+
+ const editorSettings: Record = {
+ quicktags: false,
+ tinymce: {
+ menubar: false,
+ statusbar: false,
+ resize: false,
+ toolbar1: '',
+ toolbar2: '',
+ toolbar3: '',
+ plugins: 'paste,link,lists,wordpress,wplink',
+ wpautop: true,
+ body_class: 'jio-creator__tinymce',
+ content_css: bootstrap.creator?.contentCss || '',
+ content_style: 'body{margin:0;color:#243330;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.85;letter-spacing:.01em}p{margin:0 0 1.1em}h1,h2,h3,h4,h5,h6{margin:1.5em 0 .65em;line-height:1.4}img,iframe{max-width:100%}img{height:auto}',
+ height: 650,
+ placeholder: String(bootstrap.limits?.contentPlaceholder || ''),
+ setup: (editor: any) => {
+ editorRef.current = editor;
+ editor.on('init', () => {
+ editorReadyRef.current = true;
+ setEditorReady(true);
+ if (pendingRestoreContentRef.current !== null) {
+ editor.setContent(pendingRestoreContentRef.current);
+ pendingRestoreContentRef.current = null;
+ }
+ updateHistoryAvailability(editor);
+ updateFormatValue(editor);
+ });
+ editor.on('NodeChange', () => updateFormatValue(editor));
+ editor.on('input change Undo Redo AddUndo', () => {
+ updateContent(editor.getContent());
+ updateHistoryAvailability(editor);
+ });
+ editor.on('keydown', (event: any) => {
+ if ((event.metaKey || event.ctrlKey) && event.keyCode === 83) {
+ event.preventDefault();
+ saveActionRef.current();
+ }
+ });
+ },
+ },
+ };
+ wpEditor.initialize(EDITOR_ID, editorSettings);
+
+ return () => {
+ wpEditor.remove?.(EDITOR_ID);
+ editorReadyRef.current = false;
+ editorRef.current = null;
+ };
+ }, [updateContent]);
+
const restore = useCallback(() => {
try {
const raw = window.localStorage.getItem(STORAGE_KEY);
if (raw) {
const parsed = JSON.parse(raw);
- if (typeof parsed.title === 'string') {
- patchDraft({ title: parsed.title });
- }
+ const patch: Partial = {};
+ if (typeof parsed.title === 'string') patch.title = parsed.title;
+ if (typeof parsed.content === 'string') patch.content = parsed.content;
+ patchDraft(patch);
if (typeof parsed.content === 'string') {
- onChangeBlocks(parse(parsed.content));
+ if (editorReadyRef.current) {
+ editorRef.current?.setContent(parsed.content);
+ } else {
+ pendingRestoreContentRef.current = parsed.content;
+ }
}
}
} catch (error) {
// 快照损坏时忽略,不影响服务端内容。
}
setRecovery(null);
+ }, [patchDraft]);
+
+ const rememberSelection = useCallback(() => {
+ const editor = editorRef.current;
+ if (editor && !editor.removed) {
+ editorBookmarkRef.current = editor.selection.getBookmark(2, true);
+ }
}, []);
- const selectedBlockCount = useSelect(
- (select: any) => select('core/block-editor').getBlockCount(),
- []
- );
-
- const insertGroups = useMemo(() => buildInsertGroups(capabilities), [capabilities]);
-
- const insertBlock = useCallback(
- (item: InsertItem) => {
- setInsertOpen(false);
- dirtyRef.current = true;
- const current = [...blocksRef.current];
- let next: any[];
- // 空文档时直接替换初始的空白段落,避免留下一个空行。
- if (current.length === 1 && current[0].name === 'core/paragraph' && !current[0].attributes?.content) {
- next = [createBlock(item.name, item.attributes || {})];
- } else {
- next = [...current, createBlock(item.name, item.attributes || {})];
+ const focusEditor = useCallback(() => {
+ const editor = editorRef.current;
+ if (!editor || editor.removed) {
+ return null;
+ }
+ editor.focus();
+ if (editorBookmarkRef.current) {
+ try {
+ editor.selection.moveToBookmark(editorBookmarkRef.current);
+ } catch (error) {
+ // TinyMCE discards invalid bookmarks after content replacement.
}
- blocksRef.current = next;
- historyRef.current.record({
- blocks: next,
- title: draftRef.current.title,
- excerpt: draftRef.current.excerpt,
- });
- setBlocks(next);
- },
- []
- );
+ editorBookmarkRef.current = null;
+ }
+ return editor;
+ }, []);
+
+ const command = useCallback((name: string, value?: string) => {
+ const editor = focusEditor();
+ if (!editor) {
+ return;
+ }
+ if (name === 'undo') {
+ editor.undoManager.undo();
+ } else if (name === 'redo') {
+ editor.undoManager.redo();
+ } else if (name === 'format') {
+ if (value === 'p') {
+ editor.execCommand('FormatBlock', false, 'p');
+ } else {
+ editor.formatter.toggle(value || 'h2');
+ }
+ updateFormatValue(editor);
+ } else {
+ editor.execCommand(name);
+ }
+ editor.nodeChanged();
+ }, [focusEditor]);
+
+ const openLink = useCallback(() => {
+ const editor = focusEditor();
+ if (!editor) {
+ return;
+ }
+ const wpLink = (window as any).wpLink;
+ if (wpLink && typeof wpLink.open === 'function') {
+ wpLink.open(editor.id);
+ return;
+ }
+ const url = window.prompt(__('输入链接地址', 'jio'), 'https://');
+ const safeUrl = url ? safeHttpUrl(url) : '';
+ if (safeUrl) {
+ editor.execCommand('mceInsertLink', false, { href: safeUrl });
+ }
+ }, [focusEditor]);
+
+ const openMedia = useCallback((type: 'image' | 'video') => {
+ const editor = editorRef.current;
+ const media = (window as any).JioSubmitMedia;
+ if (!editor || !media || typeof media.open !== 'function') {
+ setNotice({ tone: 'error', text: __('媒体工具尚未加载,请刷新页面后重试。', 'jio') });
+ return;
+ }
+ rememberSelection();
+ media.open({
+ type,
+ multiple: type === 'image' ? undefined : false,
+ onSelect: (selected: any) => {
+ const items = Array.isArray(selected) ? selected : [selected];
+ const target = focusEditor();
+ if (!target) return;
+ const markup = items.map((item) => {
+ const url = safeHttpUrl(item?.large_url || item?.url);
+ if (!url) return '';
+ const id = Number(item.attachment_id || item.id || 0);
+ const idAttribute = id > 0 ? ` data-edit-file-id="${id}"` : '';
+ if (type === 'image') {
+ const fullUrl = safeHttpUrl(item?.url || url);
+ const fullAttribute = fullUrl ? ` data-full-url="${escapeAttribute(fullUrl)}"` : '';
+ return `})
`;
+ }
+ return ``;
+ }).join('');
+ if (markup) {
+ target.insertContent(markup);
+ target.nodeChanged();
+ updateContent(target.getContent());
+ updateHistoryAvailability(target);
+ }
+ },
+ onEmbed: (html: string) => {
+ const target = focusEditor();
+ if (target) {
+ target.insertContent(`${html}`);
+ target.nodeChanged();
+ updateContent(target.getContent());
+ updateHistoryAvailability(target);
+ }
+ },
+ });
+ }, [focusEditor, rememberSelection]);
return (
-
+
-
-
- {draft.title.trim() || __('无标题文章', 'jio')}
-
+
+
-
-
-
-
-
-
-
-