From fbc6354f762d52f7ad06d3865bd2173b2d306504 Mon Sep 17 00:00:00 2001
From: wwwwwwwww <526125649@qq.com>
Date: Fri, 26 Jun 2026 11:11:23 +0800
Subject: [PATCH 1/8] 1
---
.../src/components/Layout/AppLayout.tsx | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/video-gen-app/src/components/Layout/AppLayout.tsx b/video-gen-app/src/components/Layout/AppLayout.tsx
index 5f29ad09..8d9ea393 100644
--- a/video-gen-app/src/components/Layout/AppLayout.tsx
+++ b/video-gen-app/src/components/Layout/AppLayout.tsx
@@ -463,9 +463,9 @@ const AppLayout: React.FC = () => {
item.path && navigate(item.path)} style={{
display: 'flex', alignItems: 'center',
justifyContent: 'flex-start',
- gap: 12,
- padding: depth > 0 ? '8px 14px 8px 36px' : '10px 16px',
- borderRadius: 12, margin: '2px 6px', cursor: 'pointer',
+ gap: 10,
+ padding: depth > 0 ? '6px 12px 6px 32px' : '6px 14px',
+ borderRadius: 12, margin: '1px 4px', cursor: 'pointer',
fontSize: depth > 0 ? 13 : 14, fontWeight: isActive ? 600 : 400,
color: isActive ? '#4f46e5' : '#475569',
background: isActive ? 'linear-gradient(135deg, rgba(99, 102, 241, 0.1) 0%, rgba(139, 92, 246, 0.08) 100%)' : 'transparent',
@@ -495,11 +495,11 @@ const AppLayout: React.FC = () => {
items.push(
- {item.label}
-
+ color: '#94a3b8', fontSize: 12, fontWeight: 600,
+ padding: '10px 14px 4px', letterSpacing: 0.5, textTransform: 'uppercase',
+ }}>
+ {item.label}
+
{children.map(c => renderMenuItem(c, 1))}
);
From 6be98fe3bf57a7d812ca6282dc661ade2d61b11b Mon Sep 17 00:00:00 2001
From: 18610128193 <10574456+chenweiqiang-123@user.noreply.gitee.com>
Date: Fri, 26 Jun 2026 11:13:34 +0800
Subject: [PATCH 2/8] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E7=B4=A0=E6=9D=90?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=A2=9E=E5=8A=A03=E6=AC=A1?=
=?UTF-8?q?=E8=AF=B7=E6=B1=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
video-gen-api/.env | 5 +++--
video-gen-api/app/utils/douyinApi.py | 6 ++++--
video-gen-api/app/utils/redis.py | 2 +-
3 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/video-gen-api/.env b/video-gen-api/.env
index 783ade76..9eea60ef 100644
--- a/video-gen-api/.env
+++ b/video-gen-api/.env
@@ -1,14 +1,15 @@
# App
APP_NAME=VideoGen API
APP_VERSION=1.0.0
-DEBUG=false
+DEBUG=true
SECRET_KEY=local-dev-secret-key-not-for-production
# Database (PostgreSQL)
+#DATABASE_URL=postgresql+asyncpg://videogen_test:Yr7kM7kDj75izCiA@180.184.42.66:5432/videogen_test
DATABASE_URL=postgresql+asyncpg://videogen:7k33pnXdPL62Yyb4@180.184.42.66:5432/videogen
# Redis (leave empty to disable - rate limiting and captcha will use in-memory fallback)
-REDIS_URL=redis://localhost:6379/3
+REDIS_URL=redis://127.0.0.1:6379/0
CELERY_BROKER_URL=redis://localhost:6379/5
CELERY_RESULT_BACKEND=redis://localhost:6379/6
diff --git a/video-gen-api/app/utils/douyinApi.py b/video-gen-api/app/utils/douyinApi.py
index 3fbc53d6..b09212b4 100644
--- a/video-gen-api/app/utils/douyinApi.py
+++ b/video-gen-api/app/utils/douyinApi.py
@@ -34,7 +34,8 @@ class DouyinApi:
oauth_id,
url,
'POST',
- options
+ options,
+ request_count = 3
)
#上传视频素材
@@ -52,7 +53,8 @@ class DouyinApi:
oauth_id,
url,
'POST',
- options
+ options,
+ request_count = 3
)
#获取区域信息
diff --git a/video-gen-api/app/utils/redis.py b/video-gen-api/app/utils/redis.py
index 13ffa65b..75d5fd68 100644
--- a/video-gen-api/app/utils/redis.py
+++ b/video-gen-api/app/utils/redis.py
@@ -9,7 +9,7 @@ async def init_redis() -> None:
return
try:
from redis.asyncio import Redis
- redis_client = Redis.from_url(settings.REDIS_URL, decode_responses=True)
+ redis_client = Redis.from_url(settings.REDIS_URL, decode_responses=True, protocol=2)
await redis_client.ping()
except Exception:
redis_client = None
From e431cb1cafd4640f4f1640a881d2d6468490a715 Mon Sep 17 00:00:00 2001
From: 18610128193 <10574456+chenweiqiang-123@user.noreply.gitee.com>
Date: Fri, 26 Jun 2026 11:19:39 +0800
Subject: [PATCH 3/8] =?UTF-8?q?Revert=20"=E4=B8=8A=E4=BC=A0=E7=B4=A0?=
=?UTF-8?q?=E6=9D=90=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=A2=9E=E5=8A=A03?=
=?UTF-8?q?=E6=AC=A1=E8=AF=B7=E6=B1=82"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reverts commit 6be98fe3bf57a7d812ca6282dc661ade2d61b11b.
---
video-gen-api/.env | 5 ++---
video-gen-api/app/utils/douyinApi.py | 6 ++----
video-gen-api/app/utils/redis.py | 2 +-
3 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/video-gen-api/.env b/video-gen-api/.env
index 9eea60ef..783ade76 100644
--- a/video-gen-api/.env
+++ b/video-gen-api/.env
@@ -1,15 +1,14 @@
# App
APP_NAME=VideoGen API
APP_VERSION=1.0.0
-DEBUG=true
+DEBUG=false
SECRET_KEY=local-dev-secret-key-not-for-production
# Database (PostgreSQL)
-#DATABASE_URL=postgresql+asyncpg://videogen_test:Yr7kM7kDj75izCiA@180.184.42.66:5432/videogen_test
DATABASE_URL=postgresql+asyncpg://videogen:7k33pnXdPL62Yyb4@180.184.42.66:5432/videogen
# Redis (leave empty to disable - rate limiting and captcha will use in-memory fallback)
-REDIS_URL=redis://127.0.0.1:6379/0
+REDIS_URL=redis://localhost:6379/3
CELERY_BROKER_URL=redis://localhost:6379/5
CELERY_RESULT_BACKEND=redis://localhost:6379/6
diff --git a/video-gen-api/app/utils/douyinApi.py b/video-gen-api/app/utils/douyinApi.py
index b09212b4..3fbc53d6 100644
--- a/video-gen-api/app/utils/douyinApi.py
+++ b/video-gen-api/app/utils/douyinApi.py
@@ -34,8 +34,7 @@ class DouyinApi:
oauth_id,
url,
'POST',
- options,
- request_count = 3
+ options
)
#上传视频素材
@@ -53,8 +52,7 @@ class DouyinApi:
oauth_id,
url,
'POST',
- options,
- request_count = 3
+ options
)
#获取区域信息
diff --git a/video-gen-api/app/utils/redis.py b/video-gen-api/app/utils/redis.py
index 75d5fd68..13ffa65b 100644
--- a/video-gen-api/app/utils/redis.py
+++ b/video-gen-api/app/utils/redis.py
@@ -9,7 +9,7 @@ async def init_redis() -> None:
return
try:
from redis.asyncio import Redis
- redis_client = Redis.from_url(settings.REDIS_URL, decode_responses=True, protocol=2)
+ redis_client = Redis.from_url(settings.REDIS_URL, decode_responses=True)
await redis_client.ping()
except Exception:
redis_client = None
From e62956af79ed6ad7959552584b6619b1ca406be6 Mon Sep 17 00:00:00 2001
From: 18610128193 <10574456+chenweiqiang-123@user.noreply.gitee.com>
Date: Fri, 26 Jun 2026 11:28:49 +0800
Subject: [PATCH 4/8] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=8A=E4=BC=A0?=
=?UTF-8?q?=E7=B4=A0=E6=9D=90=E9=87=8D=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
video-gen-api/app/utils/douyinApi.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/video-gen-api/app/utils/douyinApi.py b/video-gen-api/app/utils/douyinApi.py
index 3fbc53d6..b09212b4 100644
--- a/video-gen-api/app/utils/douyinApi.py
+++ b/video-gen-api/app/utils/douyinApi.py
@@ -34,7 +34,8 @@ class DouyinApi:
oauth_id,
url,
'POST',
- options
+ options,
+ request_count = 3
)
#上传视频素材
@@ -52,7 +53,8 @@ class DouyinApi:
oauth_id,
url,
'POST',
- options
+ options,
+ request_count = 3
)
#获取区域信息
From faf31c8141eedc70810239ebc8a110bef55f74ec Mon Sep 17 00:00:00 2001
From: wwwwwwwww <526125649@qq.com>
Date: Fri, 26 Jun 2026 11:49:35 +0800
Subject: [PATCH 5/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8F=B3=E4=B8=8B?=
=?UTF-8?q?=E8=A7=92=E8=81=94=E7=B3=BB=E6=88=91=E4=BB=AC=E6=95=B4=E4=BD=93?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../{index-DAaavCN6.js => index-C1APw6hP.js} | 180 ++++++------
video-gen-admin/dist/index.html | 72 ++---
video-gen-admin/src/App.tsx | 2 +
.../src/pages/AdminContactRequests.tsx | 270 ++++++++++++++++++
video-gen-admin/tsconfig.tsbuildinfo | 2 +-
video-gen-api/app/api/v1/__init__.py | 2 +
video-gen-api/app/api/v1/contact.py | 140 +++++++++
video-gen-api/app/main.py | 1 +
video-gen-api/app/models/contact_request.py | 17 ++
video-gen-api/app/schemas/contact.py | 31 ++
video-gen-api/videogen_api.egg-info/PKG-INFO | 8 +-
.../videogen_api.egg-info/SOURCES.txt | 140 +++++++++
.../videogen_api.egg-info/requires.txt | 11 +-
.../{index-Dm7vTAAt.js => index-Di-nQw13.js} | 188 ++++++------
video-gen-app/dist/index.html | 72 ++---
video-gen-app/src/api/index.ts | 13 +
.../src/components/Layout/AppLayout.tsx | 215 +++++++++++++-
17 files changed, 1104 insertions(+), 260 deletions(-)
rename video-gen-admin/dist/assets/{index-DAaavCN6.js => index-C1APw6hP.js} (80%)
create mode 100644 video-gen-admin/src/pages/AdminContactRequests.tsx
create mode 100644 video-gen-api/app/api/v1/contact.py
create mode 100644 video-gen-api/app/models/contact_request.py
create mode 100644 video-gen-api/app/schemas/contact.py
rename video-gen-app/dist/assets/{index-Dm7vTAAt.js => index-Di-nQw13.js} (75%)
diff --git a/video-gen-admin/dist/assets/index-DAaavCN6.js b/video-gen-admin/dist/assets/index-C1APw6hP.js
similarity index 80%
rename from video-gen-admin/dist/assets/index-DAaavCN6.js
rename to video-gen-admin/dist/assets/index-C1APw6hP.js
index ce4648bf..afcdfcae 100644
--- a/video-gen-admin/dist/assets/index-DAaavCN6.js
+++ b/video-gen-admin/dist/assets/index-C1APw6hP.js
@@ -156,7 +156,7 @@ html body {
& > ${t}-header`]:{borderRadius:`0 0 ${Y(c)} ${Y(c)}`}},[`> ${t}-header`]:{position:`relative`,display:`flex`,flexWrap:`nowrap`,alignItems:`flex-start`,padding:a,color:p,lineHeight:g,cursor:`pointer`,transition:`all ${S}, visibility 0s`,...Qc(e),[`> ${t}-title`]:{flex:`auto`},[`${t}-expand-icon`]:{height:T,display:`flex`,alignItems:`center`,marginInlineEnd:v},[`${t}-arrow`]:{...Yc(),fontSize:C,transition:`transform ${S}`,svg:{transition:`transform ${S}`}},[`${t}-title`]:{marginInlineEnd:`auto`}},[`${t}-collapsible-header`]:{cursor:`default`,[`${t}-title`]:{flex:`none`,cursor:`pointer`},[`${t}-expand-icon`]:{cursor:`pointer`}},[`${t}-collapsible-icon`]:{cursor:`unset`,[`${t}-expand-icon`]:{cursor:`pointer`}}},[`${t}-panel`]:{color:f,backgroundColor:n,borderTop:D,[`& > ${t}-body`]:{padding:w},"&-hidden":{display:`none`}},"&-small":{[`> ${t}-item`]:{[`> ${t}-header`]:{padding:o,paddingInlineStart:x,[`> ${t}-expand-icon`]:{marginInlineStart:e.calc(y).sub(x).equal()}},[`> ${t}-panel > ${t}-body`]:{padding:y}}},"&-large":{[`> ${t}-item`]:{fontSize:h,lineHeight:_,[`> ${t}-header`]:{padding:s,paddingInlineStart:r,[`> ${t}-expand-icon`]:{height:E,marginInlineStart:e.calc(b).sub(r).equal()}},[`> ${t}-panel > ${t}-body`]:{padding:b}}},[`${t}-item:last-child`]:{borderBottom:0,[`> ${t}-panel`]:{borderRadius:`0 0 ${Y(c)} ${Y(c)}`}},[`& ${t}-item-disabled > ${t}-header`]:{"&, & > .arrow":{color:m,cursor:`not-allowed`}},[`&${t}-icon-placement-end`]:{[`& > ${t}-item`]:{[`> ${t}-header`]:{[`${t}-expand-icon`]:{order:1,marginInlineEnd:0,marginInlineStart:v}}}}}}},kg=e=>{let{componentCls:t}=e,n=`> ${t}-item > ${t}-header ${t}-arrow`;return{[`${t}-rtl`]:{[n]:{transform:`rotate(180deg)`}}}},Ag=e=>{let{componentCls:t,headerBg:n,borderlessContentPadding:r,borderlessContentBg:i,colorBorder:a}=e;return{[`${t}-borderless`]:{backgroundColor:n,border:0,[`> ${t}-item`]:{borderBottom:`1px solid ${a}`},[`
> ${t}-item:last-child,
> ${t}-item:last-child ${t}-header
- `]:{borderRadius:0},[`> ${t}-item:last-child`]:{borderBottom:0},[`> ${t}-item > ${t}-panel`]:{backgroundColor:i,borderTop:0},[`> ${t}-item > ${t}-panel > ${t}-body`]:{padding:r}}}},jg=e=>{let{componentCls:t,paddingSM:n}=e;return{[`${t}-ghost`]:{backgroundColor:`transparent`,border:0,[`> ${t}-item`]:{borderBottom:0,[`> ${t}-panel`]:{backgroundColor:`transparent`,border:0,[`> ${t}-body`]:{paddingBlock:n}}}}}},Mg=rl(`Collapse`,e=>{let t=gs(e,{collapseHeaderPaddingSM:`${Y(e.paddingXS)} ${Y(e.paddingSM)}`,collapseHeaderPaddingLG:`${Y(e.padding)} ${Y(e.paddingLG)}`,collapsePanelBorderRadius:e.borderRadiusLG});return[Og(t),Ag(t),jg(t),kg(t),bh(t)]},e=>({headerPadding:`${e.paddingSM}px ${e.padding}px`,headerBg:e.colorFillAlter,contentPadding:`${e.padding}px 16px`,contentBg:e.colorBgContainer,borderlessContentPadding:`${e.paddingXXS}px 16px ${e.padding}px`,borderlessContentBg:`transparent`})),Ng=Object.assign(S.forwardRef((e,t)=>{let{getPrefixCls:n,direction:r,expandIcon:i,className:a,style:o,classNames:s,styles:c}=li(`collapse`),{prefixCls:l,className:u,rootClassName:d,style:f,bordered:p=!0,ghost:m,size:h,expandIconPlacement:g,expandIconPosition:_,children:v,destroyInactivePanel:y,destroyOnHidden:b,expandIcon:x,classNames:C,styles:w}=e,T=th(e=>h??e??`middle`),E=n(`collapse`,l),D=n(),[O,k]=Mg(E),A=g??_??`start`,j={...e,size:T,bordered:p,expandIconPlacement:A},[M,N]=Fd([s,C],[c,w],{props:j}),P=x??i,F=S.useCallback((e={})=>Pp(typeof P==`function`?P(e):S.createElement(mg,{rotate:e.isActive?r===`rtl`?-90:90:void 0,"aria-label":e.isActive?`expanded`:`collapsed`}),e=>({className:J(e.className,`${E}-arrow`)})),[P,E,r]),I=J(`${E}-icon-placement-${A}`,{[`${E}-borderless`]:!p,[`${E}-rtl`]:r===`rtl`,[`${E}-ghost`]:!!m,[`${E}-large`]:T===`large`,[`${E}-small`]:T===`small`},a,u,d,O,k,M.root),L=S.useMemo(()=>({...Wm(D),motionAppear:!1,leavedClassName:`${E}-panel-hidden`}),[D,E]),R=S.useMemo(()=>v?Cr(v).map(e=>e):null,[v]);return S.createElement(Eg,{ref:t,openMotion:L,...Sr(e,[`rootClassName`]),expandIcon:F,prefixCls:E,className:I,style:{...N.root,...o,...f},classNames:M,styles:N,destroyOnHidden:b??y},R)}),{Panel:Dg}),Pg=e=>e instanceof dg?e:new dg(e),Fg=(e,t)=>{let{r:n,g:r,b:i,a}=e.toRgb(),o=new cg(e.toRgbString()).onBackground(t).toHsv();return a<=.5?o.v>.5:n*.299+r*.587+i*.114>192},Ig=e=>{let{paddingInline:t,onlyIconSize:n,borderColorDisabled:r}=e;return gs(e,{buttonPaddingHorizontal:t,buttonPaddingVertical:0,buttonIconOnlyFontSize:n,colorBorderDisabled:r})},Lg=e=>{let t=e.contentFontSize??e.fontSize,n=e.contentFontSizeSM??e.fontSize,r=e.contentFontSizeLG??e.fontSizeLG,i=e.contentLineHeight??Os(t),a=e.contentLineHeightSM??Os(n),o=e.contentLineHeightLG??Os(r),s=Fg(new dg(e.colorBgSolid),`#fff`)?`#000`:`#fff`,c=Ds.reduce((t,n)=>({...t,[`${n}ShadowColor`]:`0 ${Y(e.controlOutlineWidth)} 0 ${Bc(e[`${n}1`],e.colorBgContainer)}`}),{}),l=e.colorBgContainerDisabled,u=e.colorBgContainerDisabled;return{...c,fontWeight:400,iconGap:e.marginXS,defaultShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlTmpOutline}`,primaryShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlOutline}`,dangerShadow:`0 ${e.controlOutlineWidth}px 0 ${e.colorErrorOutline}`,primaryColor:e.colorTextLightSolid,dangerColor:e.colorTextLightSolid,borderColorDisabled:e.colorBorderDisabled,defaultGhostColor:e.colorBgContainer,ghostBg:`transparent`,defaultGhostBorderColor:e.colorBgContainer,paddingInline:e.paddingContentHorizontal-e.lineWidth,paddingInlineLG:e.paddingContentHorizontal-e.lineWidth,paddingInlineSM:8-e.lineWidth,onlyIconSize:`inherit`,onlyIconSizeSM:`inherit`,onlyIconSizeLG:`inherit`,groupBorderColor:e.colorPrimaryHover,linkHoverBg:`transparent`,textTextColor:e.colorText,textTextHoverColor:e.colorText,textTextActiveColor:e.colorText,textHoverBg:e.colorFillTertiary,defaultColor:e.colorText,defaultBg:e.colorBgContainer,defaultBorderColor:e.colorBorder,defaultBorderColorDisabled:e.colorBorder,defaultHoverBg:e.colorBgContainer,defaultHoverColor:e.colorPrimaryHover,defaultHoverBorderColor:e.colorPrimaryHover,defaultActiveBg:e.colorBgContainer,defaultActiveColor:e.colorPrimaryActive,defaultActiveBorderColor:e.colorPrimaryActive,solidTextColor:s,contentFontSize:t,contentFontSizeSM:n,contentFontSizeLG:r,contentLineHeight:i,contentLineHeightSM:a,contentLineHeightLG:o,paddingBlock:Math.max((e.controlHeight-t*i)/2-e.lineWidth,0),paddingBlockSM:Math.max((e.controlHeightSM-n*a)/2-e.lineWidth,0),paddingBlockLG:Math.max((e.controlHeightLG-r*o)/2-e.lineWidth,0),defaultBgDisabled:l,dashedBgDisabled:u}},Rg=e=>{let{componentCls:t,antCls:n,lineWidth:r}=e,[i,a]=ol(n,`btn`);return{[t]:[{[i(`border-width`)]:r,[i(`border-color`)]:`#000`,[i(`border-color-hover`)]:a(`border-color`),[i(`border-color-active`)]:a(`border-color`),[i(`border-color-disabled`)]:a(`border-color`),[i(`border-style`)]:`solid`,[i(`text-color`)]:`#000`,[i(`text-color-hover`)]:a(`text-color`),[i(`text-color-active`)]:a(`text-color`),[i(`text-color-disabled`)]:a(`text-color`),[i(`bg-color`)]:`#ddd`,[i(`bg-color-hover`)]:a(`bg-color`),[i(`bg-color-active`)]:a(`bg-color`),[i(`bg-color-disabled`)]:e.colorBgContainerDisabled,[i(`bg-color-container`)]:e.colorBgContainer,[i(`shadow`)]:`none`},{border:[a(`border-width`),a(`border-style`),a(`border-color`)].join(` `),color:a(`text-color`),backgroundColor:a(`bg-color`),[`&:not(:disabled):not(${t}-disabled)`]:{"&:hover":{border:[a(`border-width`),a(`border-style`),a(`border-color-hover`)].join(` `),color:a(`text-color-hover`),backgroundColor:a(`bg-color-hover`)},"&:active":{border:[a(`border-width`),a(`border-style`),a(`border-color-active`)].join(` `),color:a(`text-color-active`),backgroundColor:a(`bg-color-active`)}}},{[`&${t}-variant-solid`]:{[i(`solid-bg-color`)]:a(`color-base`),[i(`solid-bg-color-hover`)]:a(`color-hover`),[i(`solid-bg-color-active`)]:a(`color-active`),[i(`border-color`)]:`transparent`,[i(`text-color`)]:e.colorTextLightSolid,[i(`bg-color`)]:a(`solid-bg-color`),[i(`bg-color-hover`)]:a(`solid-bg-color-hover`),[i(`bg-color-active`)]:a(`solid-bg-color-active`),boxShadow:a(`shadow`)},[`&${t}-variant-outlined, &${t}-variant-dashed`]:{[i(`border-color`)]:a(`color-base`),[i(`border-color-hover`)]:a(`color-hover`),[i(`border-color-active`)]:a(`color-active`),[i(`bg-color`)]:a(`bg-color-container`),[i(`text-color`)]:a(`color-base`),[i(`text-color-hover`)]:a(`color-hover`),[i(`text-color-active`)]:a(`color-active`),boxShadow:a(`shadow`)},[`&${t}-variant-dashed`]:{[i(`border-style`)]:`dashed`,[i(`bg-color-disabled`)]:e.dashedBgDisabled},[`&${t}-variant-filled`]:{[i(`border-color`)]:`transparent`,[i(`text-color`)]:a(`color-base`),[i(`bg-color`)]:a(`color-light`),[i(`bg-color-hover`)]:a(`color-light-hover`),[i(`bg-color-active`)]:a(`color-light-active`)},[`&${t}-variant-text, &${t}-variant-link`]:{[i(`border-color`)]:`transparent`,[i(`text-color`)]:a(`color-base`),[i(`text-color-hover`)]:a(`color-hover`),[i(`text-color-active`)]:a(`color-active`),[i(`bg-color`)]:`transparent`,[i(`bg-color-hover`)]:`transparent`,[i(`bg-color-active`)]:`transparent`,[`&:disabled, &${e.componentCls}-disabled`]:{background:`transparent`,borderColor:`transparent`}},[`&${t}-variant-text`]:{[i(`bg-color-hover`)]:a(`color-light`),[i(`bg-color-active`)]:a(`color-light-active`)}},{[`&${t}-variant-link`]:{[i(`color-base`)]:e.colorLink,[i(`color-hover`)]:e.colorLinkHover,[i(`color-active`)]:e.colorLinkActive,[i(`bg-color-hover`)]:e.linkHoverBg},[`&${t}-color-primary`]:{[i(`color-base`)]:e.colorPrimary,[i(`color-hover`)]:e.colorPrimaryHover,[i(`color-active`)]:e.colorPrimaryActive,[i(`color-light`)]:e.colorPrimaryBg,[i(`color-light-hover`)]:e.colorPrimaryBgHover,[i(`color-light-active`)]:e.colorPrimaryBorder,[i(`shadow`)]:e.primaryShadow,[`&${t}-variant-solid`]:{[i(`text-color`)]:e.primaryColor,[i(`text-color-hover`)]:a(`text-color`),[i(`text-color-active`)]:a(`text-color`)}},[`&${t}-color-dangerous`]:{[i(`color-base`)]:e.colorError,[i(`color-hover`)]:e.colorErrorHover,[i(`color-active`)]:e.colorErrorActive,[i(`color-light`)]:e.colorErrorBg,[i(`color-light-hover`)]:e.colorErrorBgFilledHover,[i(`color-light-active`)]:e.colorErrorBgActive,[i(`shadow`)]:e.dangerShadow,[`&${t}-variant-solid`]:{[i(`text-color`)]:e.dangerColor,[i(`text-color-hover`)]:a(`text-color`),[i(`text-color-active`)]:a(`text-color`)}},[`&${t}-color-default`]:{[i(`solid-bg-color`)]:e.colorBgSolid,[i(`solid-bg-color-hover`)]:e.colorBgSolidHover,[i(`solid-bg-color-active`)]:e.colorBgSolidActive,[i(`color-base`)]:e.defaultBorderColor,[i(`color-hover`)]:e.defaultHoverBorderColor,[i(`color-active`)]:e.defaultActiveBorderColor,[i(`color-light`)]:e.colorFillTertiary,[i(`color-light-hover`)]:e.colorFillSecondary,[i(`color-light-active`)]:e.colorFill,[i(`text-color`)]:e.defaultColor,[i(`text-color-hover`)]:e.defaultHoverColor,[i(`text-color-active`)]:e.defaultActiveColor,[i(`shadow`)]:e.defaultShadow,[`&${t}-variant-outlined`]:{[i(`bg-color-disabled`)]:e.defaultBgDisabled},[`&${t}-variant-solid`]:{[i(`text-color`)]:e.solidTextColor,[i(`text-color-hover`)]:a(`text-color`),[i(`text-color-active`)]:a(`text-color`)},[`&${t}-variant-filled, &${t}-variant-text`]:{[i(`text-color-hover`)]:a(`text-color`),[i(`text-color-active`)]:a(`text-color`)},[`&${t}-variant-outlined, &${t}-variant-dashed`]:{[i(`text-color`)]:e.defaultColor,[i(`text-color-hover`)]:e.defaultHoverColor,[i(`text-color-active`)]:e.defaultActiveColor,[i(`bg-color-container`)]:e.defaultBg,[i(`bg-color-hover`)]:e.defaultHoverBg,[i(`bg-color-active`)]:e.defaultActiveBg},[`&${t}-variant-text`]:{[i(`text-color`)]:e.textTextColor,[i(`text-color-hover`)]:e.textTextHoverColor,[i(`text-color-active`)]:e.textTextActiveColor,[i(`bg-color-hover`)]:e.textHoverBg},[`&${t}-background-ghost`]:{[`&${t}-variant-outlined, &${t}-variant-dashed`]:{[i(`text-color`)]:e.defaultGhostColor,[i(`border-color`)]:e.defaultGhostBorderColor}}}},Ds.map(n=>{let r=e[`${n}6`],a=e[`${n}1`],o=e[`${n}Hover`],s=e[`${n}2`],c=e[`${n}3`],l=e[`${n}Active`],u=e[`${n}ShadowColor`];return{[`&${t}-color-${n}`]:{[i(`color-base`)]:r,[i(`color-hover`)]:o,[i(`color-active`)]:l,[i(`color-light`)]:a,[i(`color-light-hover`)]:s,[i(`color-light-active`)]:c,[i(`shadow`)]:u}}}),{[`&:disabled, &${e.componentCls}-disabled`]:{cursor:`not-allowed`,borderColor:e.colorBorderDisabled,background:a(`bg-color-disabled`),color:e.colorTextDisabled,boxShadow:`none`}},{[`&${t}-background-ghost`]:{[i(`bg-color`)]:e.ghostBg,[i(`bg-color-hover`)]:e.ghostBg,[i(`bg-color-active`)]:e.ghostBg,[i(`shadow`)]:`none`,[`&${t}-variant-outlined, &${t}-variant-dashed`]:{[i(`bg-color-hover`)]:e.ghostBg,[i(`bg-color-active`)]:e.ghostBg}}}]}},zg=e=>{let{componentCls:t,iconCls:n,fontWeight:r,opacityLoading:i,motionDurationSlow:a,motionEaseInOut:o,iconGap:s,calc:c}=e;return{[t]:{outline:`none`,position:`relative`,display:`inline-flex`,gap:s,alignItems:`center`,justifyContent:`center`,fontWeight:r,whiteSpace:`nowrap`,textAlign:`center`,backgroundImage:`none`,cursor:`pointer`,transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,userSelect:`none`,touchAction:`manipulation`,...Uh(),"&:disabled > *":{pointerEvents:`none`},[`${t}-icon > svg`]:Yc(),"> a":{color:`currentColor`},"&:not(:disabled)":Qc(e),[`&${t}-two-chinese-chars::first-letter`]:{letterSpacing:`0.34em`},[`&${t}-two-chinese-chars > *:not(${n})`]:{marginInlineEnd:`-0.34em`,letterSpacing:`0.34em`},[`&${t}-icon-only`]:{paddingInline:0,[`&${t}-compact-item`]:{flex:`none`}},[`&${t}-loading`]:{opacity:i,cursor:`default`},[`${t}-loading-icon`]:{transition:[`width`,`opacity`,`margin`].map(e=>`${e} ${a} ${o}`).join(`,`)},[`&:not(${t}-icon-end)`]:{[`${t}-loading-icon-motion`]:{"&-appear-start, &-enter-start":{marginInlineEnd:c(s).mul(-1).equal()},"&-appear-active, &-enter-active":{marginInlineEnd:0},"&-leave-start":{marginInlineEnd:0},"&-leave-active":{marginInlineEnd:c(s).mul(-1).equal()}}},"&-icon-end":{flexDirection:`row-reverse`,[`${t}-loading-icon-motion`]:{"&-appear-start, &-enter-start":{marginInlineStart:c(s).mul(-1).equal()},"&-appear-active, &-enter-active":{marginInlineStart:0},"&-leave-start":{marginInlineStart:0},"&-leave-active":{marginInlineStart:c(s).mul(-1).equal()}}}}}},Bg=e=>({minWidth:e.controlHeight,paddingInline:0,borderRadius:`50%`}),Vg=(e,t=``)=>{let{componentCls:n,controlHeight:r,fontSize:i,borderRadius:a,buttonPaddingHorizontal:o,iconCls:s,buttonPaddingVertical:c,buttonIconOnlyFontSize:l}=e;return[{[t]:{fontSize:i,height:r,padding:`${Y(c)} ${Y(o)}`,borderRadius:a,[`&${n}-icon-only`]:{width:r,[s]:{fontSize:l}}}},{[`${n}${n}-circle${t}`]:Bg(e)},{[`${n}${n}-round${t}`]:{borderRadius:e.controlHeight,[`&:not(${n}-icon-only)`]:{paddingInline:e.buttonPaddingHorizontal}}}]},Hg=e=>Vg(gs(e,{fontSize:e.contentFontSize}),e.componentCls),Ug=e=>Vg(gs(e,{controlHeight:e.controlHeightSM,fontSize:e.contentFontSizeSM,padding:e.paddingXS,buttonPaddingHorizontal:e.paddingInlineSM,buttonPaddingVertical:0,borderRadius:e.borderRadiusSM,buttonIconOnlyFontSize:e.onlyIconSizeSM}),`${e.componentCls}-sm`),Wg=e=>Vg(gs(e,{controlHeight:e.controlHeightLG,fontSize:e.contentFontSizeLG,buttonPaddingHorizontal:e.paddingInlineLG,buttonPaddingVertical:0,borderRadius:e.borderRadiusLG,buttonIconOnlyFontSize:e.onlyIconSizeLG}),`${e.componentCls}-lg`),Gg=e=>{let{componentCls:t}=e;return{[t]:{[`&${t}-block`]:{width:`100%`}}}},Kg=rl(`Button`,e=>{let t=Ig(e);return[zg(t),Hg(t),Ug(t),Wg(t),Gg(t),Rg(t),ag(t)]},Lg,{unitless:{fontWeight:!0,contentLineHeight:!0,contentLineHeightSM:!0,contentLineHeightLG:!0}});function qg(e,t,n,r){let{focusElCls:i,focus:a,borderElCls:o}=n,s=o?`> *`:``,c=[`hover`,a?`focus`:null,`active`].filter(Boolean).map(e=>`&:${e} ${s}`).join(`,`);return{[`&-item:not(${t}-last-item)`]:{marginInlineEnd:e.calc(e.lineWidth).mul(-1).equal()},[`&-item:not(${r}-status-success)`]:{zIndex:2},"&-item":{[c]:{zIndex:3},...i?{[`&${i}`]:{zIndex:3}}:{},[`&[disabled] ${s}`]:{zIndex:0}}}}function Jg(e,t,n){let{borderElCls:r}=n,i=r?`> ${r}`:``;return{[`&-item:not(${t}-first-item):not(${t}-last-item) ${i}`]:{borderRadius:0},[`&-item:not(${t}-last-item)${t}-first-item`]:{[`& ${i}, &${e}-sm ${i}, &${e}-lg ${i}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&-item:not(${t}-first-item)${t}-last-item`]:{[`& ${i}, &${e}-sm ${i}, &${e}-lg ${i}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}}function Yg(e,t={focus:!0}){let{componentCls:n}=e,{componentCls:r}=t,i=r||n,a=`${i}-compact`;return{[a]:{...qg(e,a,t,i),...Jg(i,a,t)}}}function Xg(e,t,n){return{[`&-item:not(${t}-last-item)`]:{marginBottom:e.calc(e.lineWidth).mul(-1).equal()},[`&-item:not(${n}-status-success)`]:{zIndex:2},"&-item":{"&:hover,&:focus,&:active":{zIndex:3},"&[disabled]":{zIndex:0}}}}function see(e,t){return{[`&-item:not(${t}-first-item):not(${t}-last-item)`]:{borderRadius:0},[`&-item${t}-first-item:not(${t}-last-item)`]:{[`&, &${e}-sm, &${e}-lg`]:{borderEndEndRadius:0,borderEndStartRadius:0}},[`&-item${t}-last-item:not(${t}-first-item)`]:{[`&, &${e}-sm, &${e}-lg`]:{borderStartStartRadius:0,borderStartEndRadius:0}}}}function cee(e){let t=`${e.componentCls}-compact-vertical`;return{[t]:{...Xg(e,t,e.componentCls),...see(e.componentCls,t)}}}var lee=e=>{let{antCls:t,componentCls:n,lineWidth:r,calc:i,colorBgContainer:a}=e,o=`${n}-variant-solid:not([disabled])`,s=i(r).mul(-1).equal(),[c,l]=ol(t,`btn`),u=e=>({[`${n}-compact${e?`-vertical`:``}-item`]:{[c(`compact-connect-border-color`)]:l(`bg-color-hover`),[`&${o}`]:{transition:`none`,[`& + ${o}:before`]:[{position:`absolute`,backgroundColor:l(`compact-connect-border-color`),content:`""`},e?{top:s,insetInline:s,height:r}:{insetBlock:s,insetInlineStart:s,width:r}],"&:hover:before":{display:`none`}}}});return[u(),u(!0),{[`${o}${n}-color-default`]:{[c(`compact-connect-border-color`)]:`color-mix(in srgb, ${l(`bg-color-hover`)} 75%, ${a})`}}]},uee=al([`Button`,`compact`],e=>{let t=Ig(e);return[Yg(t),cee(t),lee(t)]},Lg);function dee(e){if(hd(e)){let t=e?.delay;return t=pd(t)?t:0,{loading:t<=0,delay:t}}return{loading:!!e,delay:0}}var fee={default:[`default`,`outlined`],primary:[`primary`,`solid`],dashed:[`default`,`dashed`],link:[`link`,`link`],text:[`default`,`text`]},Zg=S.forwardRef((e,t)=>{let{_skipSemantic:n,loading:r=!1,prefixCls:i,color:a,variant:o,type:s,danger:c=!1,shape:l,size:u,disabled:d,className:f,rootClassName:p,children:m,icon:h,iconPosition:g,iconPlacement:_,ghost:v=!1,block:y=!1,htmlType:b=`button`,classNames:x,styles:C,style:w,autoInsertSpace:T,autoFocus:E,...D}=e,O=Cr(m),k=s||`default`,{getPrefixCls:A,direction:j,autoInsertSpace:M,className:N,style:P,classNames:F,styles:I,loadingIcon:L,shape:R,color:z,variant:B}=li(`button`),V=l||R||`default`,[H,U]=(0,S.useMemo)(()=>{if(a&&o)return[a,o];if(s||c){let e=fee[k]||[];return c?[`danger`,e[1]]:e}return z&&B?[z,B]:[`default`,`outlined`]},[a,o,s,c,z,B,k]),[W,ee]=(0,S.useMemo)(()=>v&&U===`solid`?[H,`outlined`]:[H,U],[H,U,v]),te=W===`danger`,ne=te?`dangerous`:W,re=T??M??!0,ie=A(`btn`,i),[ae,G]=Kg(ie),oe=(0,S.useContext)(zp),K=d??oe,se=(0,S.useContext)(ch),ce=(0,S.useMemo)(()=>dee(r),[r]),[q,le]=(0,S.useState)(ce.loading),[ue,de]=(0,S.useState)(!1),fe=(0,S.useRef)(null),pe=er(t,fe),me=O.length===1&&!h&&!ph(ee),he=(0,S.useRef)(!0);S.useEffect(()=>(he.current=!1,()=>{he.current=!0}),[]),zn(()=>{let e=null;ce.delay>0?e=setTimeout(()=>{e=null,le(!0)},ce.delay):le(ce.loading);function t(){e&&=(clearTimeout(e),null)}return t},[ce.delay,ce.loading]),(0,S.useEffect)(()=>{if(!fe.current||!re)return;let e=fe.current.textContent||``;me&&dh(e)?ue||de(!0):ue&&de(!1)}),(0,S.useEffect)(()=>{E&&fe.current&&fe.current.focus()},[]);let ge=S.useCallback(t=>{if(q||K){t.preventDefault();return}e.onClick?.((`href`in e,t))},[e.onClick,q,K]),{compactSize:_e,compactItemClassnames:ve}=ih(ie,j),ye=th(e=>u??_e??se??e),be=q?`loading`:h,xe=_??g??`start`,Se=Sr(D,[`navigate`]),Ce={...e,type:k,color:W,variant:ee,danger:te,shape:V,size:ye,disabled:K,loading:q,iconPlacement:xe},[we,Te]=Fd([n?void 0:F,x],[n?void 0:I,C],{props:Ce}),Ee=J(ie,ae,G,{[`${ie}-${V}`]:V!==`default`&&V!==`square`&&V,[`${ie}-${k}`]:k,[`${ie}-dangerous`]:c,[`${ie}-color-${ne}`]:ne,[`${ie}-variant-${ee}`]:ee,[`${ie}-lg`]:ye===`large`,[`${ie}-sm`]:ye===`small`,[`${ie}-icon-only`]:!m&&m!==0&&!!be,[`${ie}-background-ghost`]:v&&!ph(ee),[`${ie}-loading`]:q,[`${ie}-two-chinese-chars`]:ue&&re&&!q,[`${ie}-block`]:y,[`${ie}-rtl`]:j===`rtl`,[`${ie}-icon-end`]:xe===`end`},ve,f,p,N,we.root),De={...Te.root,...P,...w},Oe={className:we.icon,style:Te.icon},ke=e=>S.createElement(gh,{prefixCls:ie,...Oe},e),Ae=S.createElement(iee,{existIcon:!!h,prefixCls:ie,loading:q,mount:he.current,...Oe}),je=hd(r)&&r.icon||L,Me;Me=h&&!q?ke(h):r&&je?ke(je):Ae;let Ne=fd(m)?hh(m,me&&re,Te.content,we.content):null;if(Se.href!==void 0)return S.createElement(`a`,{...Se,className:J(Ee,{[`${ie}-disabled`]:K}),href:K?void 0:Se.href,style:De,onClick:ge,ref:pe,tabIndex:K?-1:0,"aria-disabled":K},Me,Ne);let Pe=S.createElement(`button`,{...D,type:b,className:Ee,style:De,onClick:ge,disabled:K,ref:pe},Me,Ne,ve&&S.createElement(uee,{prefixCls:ie}));return ph(ee)||(Pe=S.createElement(eh,{component:`Button`,disabled:q},Pe)),Pe});Zg.Group=lh,Zg.__ANT_BUTTON=!0;var Qg=e=>{let{type:t,children:n,prefixCls:r,buttonProps:i,close:a,autoFocus:o,emitEvent:s,isSilent:c,quitOnNullishReturnValue:l,actionFn:u}=e,d=S.useRef(!1),f=S.useRef(null),[p,m]=Vn(!1),h=(...e)=>{a?.(...e)};S.useEffect(()=>{let e=null;return o&&(e=setTimeout(()=>{f.current?.focus({preventScroll:!0})})),()=>{e&&clearTimeout(e)}},[o]);let g=e=>{_d(e)&&(m(!0),e.then((...e)=>{m(!1,!0),h.apply(void 0,e),d.current=!1},e=>{if(m(!1,!0),d.current=!1,!c?.())return Promise.reject(e)}))},_=e=>{if(d.current)return;if(d.current=!0,!u){h();return}let t;if(s){if(t=u(e),l&&!_d(t)){d.current=!1,h(e);return}}else if(u.length)t=u(a),d.current=!1;else if(t=u(),!_d(t)){h();return}g(t)};return S.createElement(Zg,{...fh(t),onClick:_,loading:p,prefixCls:r,...i,ref:f},n)},$g=S.createContext({}),{Provider:e_}=$g,t_=()=>{let{autoFocusButton:e,cancelButtonProps:t,cancelTextLocale:n,isSilent:r,mergedOkCancel:i,rootPrefixCls:a,close:o,onCancel:s,onConfirm:c,onClose:l}=(0,S.useContext)($g);return i?S.createElement(Qg,{isSilent:r,actionFn:s,close:(...e)=>{o?.(...e),c?.(!1),l?.()},autoFocus:e===`cancel`,buttonProps:t,prefixCls:`${a}-btn`},n):null},n_=()=>{let{autoFocusButton:e,close:t,isSilent:n,okButtonProps:r,rootPrefixCls:i,okTextLocale:a,okType:o,onConfirm:s,onOk:c,onClose:l}=(0,S.useContext)($g);return S.createElement(Qg,{isSilent:n,type:o||`primary`,actionFn:c,close:(...e)=>{t?.(...e),s?.(!0),l?.()},autoFocus:e===`ok`,buttonProps:r,prefixCls:`${i}-btn`},a)},r_=S.createContext({});function i_(e,t,n){let r=t;return!r&&n&&(r=`${e}-${n}`),r}function a_(e,t){let n=e[`page${t?`Y`:`X`}Offset`],r=`scroll${t?`Top`:`Left`}`;if(typeof n!=`number`){let t=e.document;n=t.documentElement[r],typeof n!=`number`&&(n=t.body[r])}return n}function o_(e){let t=e.getBoundingClientRect(),n={left:t.left,top:t.top},r=e.ownerDocument,i=r.defaultView||r.parentWindow;return n.left+=a_(i),n.top+=a_(i,!0),n}function s_(e,t=!1){if(cp(e)){let n=e.nodeName.toLowerCase(),r=[`input`,`select`,`textarea`,`button`].includes(n)||e.isContentEditable||n===`a`&&!!e.getAttribute(`href`),i=e.getAttribute(`tabindex`),a=Number(i),o=null;return i&&!Number.isNaN(a)?o=a:r&&o===null&&(o=0),r&&e.disabled&&(o=null),o!==null&&(o>=0||t&&o<0)}return!1}function c_(e,t=!1){let n=[...e.querySelectorAll(`*`)].filter(e=>s_(e,t));return s_(e,t)&&n.unshift(e),n}function l_(e,t){if(!e)return;e.focus(t);let{cursor:n}=t||{};if(n&&(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)){let t=e.value.length;switch(n){case`start`:e.setSelectionRange(0,0);break;case`end`:e.setSelectionRange(t,t);break;default:e.setSelectionRange(0,t)}}}var u_=null,d_=[],f_=new Map,p_=new Map;function m_(){return d_[d_.length-1]}function h_(e){let t=m_();if(e&&t){let n;for(let[e,r]of f_.entries())if(r===t){n=e;break}let r=p_.get(n);return!!r&&(r===e||r.contains(e))}return!1}function g_(e){let{activeElement:t}=document;return e===t||e.contains(t)}function __(){let e=m_(),{activeElement:t}=document;if(!h_(t))if(e&&!g_(e)){let t=c_(e);(t.includes(u_)?u_:t[0])?.focus({preventScroll:!0})}else u_=t}function v_(e){if(e.key===`Tab`){let{activeElement:t}=document,n=c_(m_()),r=n[n.length-1];e.shiftKey&&t===n[0]?u_=r:!e.shiftKey&&t===r&&(u_=n[0])}}function y_(e,t){return e&&(f_.set(t,e),d_=d_.filter(t=>t!==e),d_.push(e),window.addEventListener(`focusin`,__),window.addEventListener(`keydown`,v_,!0),__()),()=>{u_=null,d_=d_.filter(t=>t!==e),f_.delete(t),p_.delete(t),d_.length===0&&(window.removeEventListener(`focusin`,__),window.removeEventListener(`keydown`,v_,!0))}}function b_(e,t){let n=(0,S.useRef)(0),[r,i]=(0,S.useState)(0);(0,S.useEffect)(()=>{n.current=0},t),(0,S.useEffect)(()=>{let[t,r]=e(n.current);return r||(n.current+=1,i(e=>e+1)),t},[...t,r])}function x_(e,t){let n=zf(),r=(0,S.useRef)(t);return r.current=t,b_(t=>{if(!e)return[void 0,!0];let i=r.current();return i?[y_(i,n),!0]:[void 0,t>=1]},[n,e]),[e=>{e&&p_.set(n,e)}]}var S_=S.memo(({children:e})=>e,(e,{shouldUpdate:t})=>!t);function C_(){return C_=Object.assign?Object.assign.bind():function(e){for(var t=1;t