12 Commits

Author SHA1 Message Date
Codex c1c7cb3cc7 fix ecommerce preview and module compatibility 2026-06-15 22:00:00 +08:00
Codex b67f2e7601 Merge branch 'main' of http://118.145.251.184:3000/OmniAI/omniai-ds-code-package into codex/main-latest-20260615-030000 2026-06-15 21:56:00 +08:00
Codex f056547160 fix: align hot clone reference upload UI 2026-06-15 19:59:00 +08:00
Codex de3eb1d06a merge main and adjust clone mode tabs 2026-06-15 18:25:38 +08:00
stringadmin f929be30ed Merge pull request 'feat: 优化记录详情对话面板布局与视觉层次' (#17) from feat/ecommerce-chat-polish into main
Reviewed-on: #17
2026-06-15 10:24:35 +00:00
stringadmin a2875738ce Merge branch 'main' into feat/ecommerce-chat-polish 2026-06-15 10:24:30 +00:00
ludan 85adcdceef feat: 优化记录详情对话面板布局与视觉层次
本次修改聚焦于电商记录详情页的对话面板体验打磨:

一、对话顺序优化(EcommercePage.tsx):
- 将"新需求"跟进消息从AI回复之前移至AI回复之后
- 调整后的对话时间线:用户历史需求 → AI回复 → 用户新需求,逻辑更符合真实对话流程

二、对话面板视觉升级(ecommerce-standalone.css):
- 对话面板宽度采用CSS变量动态控制(408-440px),视觉更宽敞
- 消息气泡区分明确:
  · 用户消息:左侧缩进26-36px,蓝色调渐变背景,青色边框
  · AI消息:右侧缩进26-36px,蓝调边框,中性背景
  · 跟进消息:独特高亮样式,更强边框(0.24透明度)和投影
- 排版细节打磨:
  · 消息标签字号12px/权重820
  · 正文13px/行高1.64
  · 气泡内间距15px、圆角20px、投影加深
- 元信息标签(emo)精修:28px高度、圆角胶囊样式
- 素材缩略图:46x46px、圆角14px
- 响应式适配:≤900px面板收窄至92vw,≤480px去除消息缩进

变更文件:
- src/features/ecommerce/EcommercePage.tsx (+20/-20)
- src/styles/ecommerce-standalone.css (+121)
2026-06-15 18:23:36 +08:00
Codex 66b761314b chore: re-trigger push 2026-06-15 16:52:15 +08:00
stringadmin ab99e3bf2f Merge pull request 'feat: 完善电商记录详情页,支持触摸手势交互、对话式需求面板与画布节点拖拽' (#16) from feat/ecommerce-record-detail-polish into main
Reviewed-on: #16
2026-06-15 08:38:41 +00:00
Codex 9a9c7eb86d feat: optimize ecommerce hot clone UI 2026-06-15 15:26:49 +08:00
Codex 48262d6233 chore: 新增 .gitattributes 统一换行符为 LF 2026-06-15 10:52:03 +08:00
Codex 062c8b3445 feat: 临时下线智能抠图与图片翻译入口 2026-06-15 10:42:33 +08:00
35 changed files with 1491 additions and 219 deletions
+43
View File
@@ -0,0 +1,43 @@
# 自动检测文本文件并统一换行符
* text=auto eol=lf
# 源码强制使用 LF(跨平台一致)
*.ts text eol=lf
*.tsx text eol=lf
*.js text eol=lf
*.jsx text eol=lf
*.mjs text eol=lf
*.cjs text eol=lf
*.json text eol=lf
*.css text eol=lf
*.html text eol=lf
*.md text eol=lf
*.svg text eol=lf
# 配置类(统一 LF
*.yml text eol=lf
*.yaml text eol=lf
*.toml text eol=lf
*.conf text eol=lf
# Windows 专用脚本保持 CRLF
*.bat text eol=crlf
*.cmd text eol=crlf
# 二进制文件,不做换行符转换
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.webp binary
*.ico binary
*.woff binary
*.woff2 binary
*.ttf binary
*.eot binary
*.otf binary
*.mp4 binary
*.mp3 binary
*.pdf binary
*.zip binary
*.gz binary
+1
View File
@@ -0,0 +1 @@
export * from "./aiGenerationClient.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./apiErrorUtils.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./generationRecordClient.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./serverConnection.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./taskSubscription.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./webGenerationGateway.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./toastStore.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./ossAssets.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./workflows.ts";
+2
View File
@@ -0,0 +1,2 @@
export { default } from "./EcommercePage.tsx";
export * from "./EcommercePage.tsx";
File diff suppressed because it is too large Load Diff
@@ -0,0 +1 @@
export * from "./ecommerceGenerationPersistence.ts";
@@ -0,0 +1 @@
export * from "./ecommerceImageValidation.ts";
@@ -0,0 +1 @@
export * from "./ecommerceTemplates.ts";
@@ -381,108 +381,6 @@ export default function EcommerceClonePanel({
</section>
) : null}
{cloneOutput === "hot" ? (
<section className="clone-ai-replicate-panel" aria-label="爆款图复刻设置">
<div className="clone-ai-dynamic-head">
<strong></strong>
<span></span>
</div>
<div className="clone-ai-replicate-section">
<span className="clone-ai-replicate-title"></span>
<div className="clone-ai-replicate-tabs" role="tablist" aria-label="参考内容来源">
<button
type="button"
className={cloneReferenceMode === "upload" ? "is-active" : ""}
aria-selected={cloneReferenceMode === "upload"}
onClick={() => setCloneReferenceMode("upload")}
>
</button>
<button
type="button"
className={cloneReferenceMode === "link" ? "is-active" : ""}
aria-selected={cloneReferenceMode === "link"}
onClick={() => setCloneReferenceMode("link")}
>
</button>
</div>
{cloneReferenceMode === "upload" ? (
<button
type="button"
className={`clone-ai-replicate-upload${isCloneReferenceDragging ? " is-dragging" : ""}${cloneReferenceImages.length ? " has-files" : ""}`}
onClick={() => cloneReferenceInputRef.current?.click()}
onDragOver={handleCloneReferenceDragOver}
onDragLeave={handleCloneReferenceDragLeave}
onDrop={handleCloneReferenceDrop}
>
{cloneReferenceImages.length ? (
<>
<div className="clone-ai-replicate-files">
{cloneReferenceImages.map((item) => (
<figure
key={item.id}
className="clone-ai-replicate-file"
onMouseEnter={(e) => handleFileMouseEnter(item.src, e)}
onMouseLeave={handleFileMouseLeave}
>
<img src={item.src} alt="" />
</figure>
))}
</div>
<span className="clone-ai-replicate-add-more">
<CloudUploadOutlined />
</span>
</>
) : (
<span>
<CloudUploadOutlined />
<span className="clone-ai-replicate-upload-text"></span>
</span>
)}
<em>{cloneReferenceImages.length ? `已选 ${cloneReferenceImages.length}/${maxCloneReferenceImages}` : `最多 ${maxCloneReferenceImages}`}</em>
{isCloneReferenceDragging ? (
<div className="clone-ai-replicate-upload-overlay">
<CloudUploadOutlined />
<span></span>
</div>
) : null}
</button>
) : (
<label className="clone-ai-replicate-link">
<input placeholder="粘贴商品图或详情页链接" />
</label>
)}
<input
ref={cloneReferenceInputRef}
type="file"
accept="image/jpeg,image/png,image/webp"
multiple
onChange={handleCloneReferenceUpload}
aria-label="上传参考图片"
/>
</div>
<div className="clone-ai-replicate-section">
<span className="clone-ai-replicate-title"></span>
<div className="clone-ai-replicate-levels" role="toolbar" aria-label="复刻程度">
{cloneReplicateLevelOptions.map((option) => (
<button
key={option.key}
type="button"
className={cloneReplicateLevel === option.key ? "is-active" : ""}
aria-pressed={cloneReplicateLevel === option.key}
onClick={() => setCloneReplicateLevel(option.key)}
>
<strong>{option.title}</strong>
<span>{option.desc}</span>
</button>
))}
</div>
</div>
</section>
) : null}
{cloneOutput === "set" ? (
<section className="clone-ai-count-panel" aria-label="套图图片数量">
<div className="clone-ai-dynamic-head">
@@ -0,0 +1 @@
export * from "./workbenchDownload.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./useGenerationTasks.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./useTypewriter.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./backgroundTaskRunner.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./index.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./useAppStore.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./useGenerationStore.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./useProjectStore.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./useSessionStore.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./useTaskStore.ts";
+733 -9
View File
@@ -4537,6 +4537,275 @@
display: none !important;
}
.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page {
display: block !important;
height: 100% !important;
min-height: calc(100vh - 58px) !important;
overflow: hidden !important;
background: #f3f5f8 !important;
}
.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .product-clone-shell {
display: block !important;
width: 100% !important;
height: 100% !important;
padding: 0 !important;
}
.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .product-clone-rail,
.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .product-clone-panel,
.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .clone-ai-settings-toggle,
.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-command-history {
display: none !important;
}
/* ── Hot Clone: requirement input in left panel ── */
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-requirement {
display: flex !important;
flex-direction: column !important;
gap: 8px !important;
margin-top: 2px !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-requirement__head {
display: flex !important;
align-items: center !important;
justify-content: space-between !important;
gap: 8px !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-requirement__head > strong {
font-size: 13px !important;
font-weight: 800 !important;
color: #1a2b3c !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-requirement__input {
position: relative !important;
min-height: 158px !important;
border: 1px dashed rgba(30, 189, 219, 0.34) !important;
border-radius: 8px !important;
background: linear-gradient(180deg, rgba(237, 248, 255, 0.72), rgba(255, 255, 255, 0.94)) !important;
overflow: hidden !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-requirement__input textarea {
display: block !important;
width: 100% !important;
min-height: 140px !important;
max-height: 240px !important;
resize: none !important;
border: 0 !important;
outline: none !important;
padding: 14px 14px 24px !important;
color: #172636 !important;
background: transparent !important;
font-size: 13px !important;
font-weight: 700 !important;
line-height: 1.6 !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-requirement__input textarea::placeholder {
color: #9badb9 !important;
font-weight: 500 !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-requirement__input > span {
position: absolute !important;
right: 12px !important;
bottom: 6px !important;
color: #9badb9 !important;
font-size: 11px !important;
font-weight: 600 !important;
pointer-events: none !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-requirement__ai {
padding: 3px 12px !important;
border: 1.5px solid rgba(16, 115, 204, 0.18) !important;
border-radius: 20px !important;
background: linear-gradient(135deg, rgba(16, 115, 204, 0.06), rgba(25, 173, 200, 0.06)) !important;
color: #1073cc !important;
font-size: 11px !important;
font-weight: 800 !important;
cursor: pointer !important;
white-space: nowrap !important;
flex-shrink: 0 !important;
transition: background 160ms ease, border-color 160ms ease !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-requirement__ai:hover {
background: linear-gradient(135deg, rgba(16, 115, 204, 0.12), rgba(25, 173, 200, 0.12)) !important;
border-color: rgba(16, 115, 204, 0.3) !important;
}
/* ── Hot Clone: material upload with images ── */
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-material.has-images {
display: flex !important;
flex-wrap: wrap !important;
align-items: flex-start !important;
justify-content: flex-start !important;
gap: 10px !important;
padding: 12px !important;
place-items: unset !important;
background: #f9fafa !important;
border: 1px solid rgba(30, 189, 219, 0.22) !important;
border-style: solid !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-material.has-images .ecom-quick-upload-thumbs {
display: contents !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-material.has-images .ecom-quick-upload-thumbs figure {
position: relative !important;
width: 80px !important;
height: 80px !important;
margin: 0 !important;
border: 1px solid #e8edf0 !important;
border-radius: 10px !important;
overflow: hidden !important;
background: #fff !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-material.has-images .ecom-quick-upload-thumbs figure > img {
display: block !important;
width: 100% !important;
height: 100% !important;
object-fit: cover !important;
border-radius: 9px !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-material.has-images .ecom-quick-upload-thumbs figure > button {
position: absolute !important;
top: 4px !important;
right: 4px !important;
width: 20px !important;
height: 20px !important;
border: none !important;
border-radius: 50% !important;
background: rgba(0, 0, 0, 0.48) !important;
color: #fff !important;
font-size: 11px !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
cursor: pointer !important;
opacity: 0 !important;
transition: opacity 140ms ease, background 140ms ease !important;
padding: 0 !important;
z-index: 3 !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-material.has-images .ecom-quick-upload-thumbs figure:hover > button {
opacity: 1 !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-material.has-images .ecom-quick-upload-thumbs figure > button:hover {
background: rgba(220, 53, 69, 0.85) !important;
}
/* Hide old CSS zoom in material section (portal replaces it) */
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-material.has-images .ecom-command-asset-zoom {
display: none !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-add-btn {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
width: 80px !important;
height: 80px !important;
border: 1px solid #e8edf0 !important;
border-radius: 10px !important;
color: #3a4555 !important;
background: #f5f5f5 !important;
font-size: 22px !important;
cursor: pointer !important;
transition: background 160ms ease, border-color 160ms ease, color 160ms ease !important;
flex-shrink: 0 !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-add-btn:hover {
color: #ffffff !important;
background: linear-gradient(135deg, #1073cc, #1ebddb) !important;
border-color: #1073cc !important;
}
/* ── Hot Clone: sticky bottom action buttons ── */
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-actions {
position: sticky !important;
bottom: 0 !important;
z-index: 5 !important;
display: flex !important;
flex-direction: column !important;
gap: 8px !important;
margin: 0 -14px -86px -14px !important;
padding: 14px 14px 16px !important;
background: linear-gradient(to top, #feffff 60%, rgba(254, 255, 255, 0.92) 80%, transparent) !important;
backdrop-filter: blur(6px) !important;
flex-shrink: 0 !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-actions .ecom-quick-set-primary {
position: static !important;
left: auto !important;
right: auto !important;
bottom: auto !important;
width: 100% !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-actions .ecom-quick-set-primary--cancel.is-disabled {
color: #c0ccd4 !important;
background: #f0f3f5 !important;
border-color: #e4e9ec !important;
cursor: not-allowed !important;
opacity: 0.55 !important;
}
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-hot-actions .ecom-quick-set-primary--cancel.is-disabled:hover {
color: #c0ccd4 !important;
background: #f0f3f5 !important;
border-color: #e4e9ec !important;
}
/* ── Hot Clone: stage fills space without prompt ── */
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-set-stage {
grid-template-rows: auto minmax(0, 1fr) !important;
}
/* ── Hot Clone: portal zoom preview (avoids overflow clipping) ── */
.ecom-hot-material-zoom-portal {
position: fixed !important;
z-index: 2147483647 !important;
width: min(280px, calc(100vw - 24px)) !important;
max-height: 340px !important;
border: 1px solid rgba(30, 189, 219, 0.2) !important;
border-radius: 14px !important;
background: #ffffff !important;
padding: 8px !important;
box-shadow: 0 22px 48px rgba(20, 80, 100, 0.22) !important;
pointer-events: none !important;
isolation: isolate !important;
}
.ecom-hot-material-zoom-portal.is-above {
transform: translate(-50%, -100%) !important;
}
.ecom-hot-material-zoom-portal.is-below {
transform: translate(-50%, 0) !important;
}
.ecom-hot-material-zoom-portal img {
display: block !important;
width: 100% !important;
height: auto !important;
max-height: 324px !important;
border-radius: 8px !important;
object-fit: contain !important;
}
.ecommerce-standalone .product-clone-page[data-tool="clone"].is-watermark-page {
display: block !important;
height: 100% !important;
@@ -6783,31 +7052,36 @@
background: rgba(16, 115, 204, 0.28) !important;
}
.ecommerce-standalone .ecom-quick-detail-page .ecom-quick-set-panel {
.ecommerce-standalone .ecom-quick-detail-page .ecom-quick-set-panel,
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-set-panel {
overflow-y: auto !important;
padding-bottom: 16px !important;
scrollbar-width: auto !important;
scrollbar-color: rgba(16, 115, 204, 0.56) rgba(16, 115, 204, 0.08) !important;
}
.ecommerce-standalone .ecom-quick-detail-page .ecom-quick-set-panel::-webkit-scrollbar {
.ecommerce-standalone .ecom-quick-detail-page .ecom-quick-set-panel::-webkit-scrollbar,
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-set-panel::-webkit-scrollbar {
display: block !important;
width: 14px !important;
height: 14px !important;
}
.ecommerce-standalone .ecom-quick-detail-page .ecom-quick-set-panel::-webkit-scrollbar-track {
.ecommerce-standalone .ecom-quick-detail-page .ecom-quick-set-panel::-webkit-scrollbar-track,
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-set-panel::-webkit-scrollbar-track {
border-radius: 999px !important;
background: rgba(16, 115, 204, 0.08) !important;
}
.ecommerce-standalone .ecom-quick-detail-page .ecom-quick-set-panel::-webkit-scrollbar-thumb {
.ecommerce-standalone .ecom-quick-detail-page .ecom-quick-set-panel::-webkit-scrollbar-thumb,
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-set-panel::-webkit-scrollbar-thumb {
border: 3px solid rgba(248, 249, 250, 0.95) !important;
border-radius: 999px !important;
background: rgba(16, 115, 204, 0.56) !important;
}
.ecommerce-standalone .ecom-quick-detail-page .ecom-quick-set-panel::-webkit-scrollbar-thumb:hover {
.ecommerce-standalone .ecom-quick-detail-page .ecom-quick-set-panel::-webkit-scrollbar-thumb:hover,
.ecommerce-standalone .ecom-quick-hot-page .ecom-quick-set-panel::-webkit-scrollbar-thumb:hover {
background: rgba(16, 115, 204, 0.72) !important;
}
@@ -8766,6 +9040,56 @@
z-index: 0 !important;
}
.ecommerce-standalone .product-clone-page[data-tool="clone"] .ecom-command-template-strip {
display: grid !important;
grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
gap: 12px !important;
width: 100% !important;
margin: 14px 0 10px !important;
}
.ecommerce-standalone .product-clone-page[data-tool="clone"] .ecom-command-template-card {
position: relative !important;
display: block !important;
width: 100% !important;
aspect-ratio: 1.46 / 1 !important;
min-height: 92px !important;
padding: 0 !important;
border: 1px solid rgba(30, 189, 219, 0.18) !important;
border-radius: 16px !important;
background:
linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(246, 251, 253, 0.98)),
#ffffff !important;
box-shadow:
0 16px 34px rgba(16, 115, 204, 0.08),
inset 0 1px 0 rgba(255, 255, 255, 0.94) !important;
overflow: hidden !important;
cursor: pointer !important;
transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease, background 180ms ease !important;
}
.ecommerce-standalone .product-clone-page[data-tool="clone"] .ecom-command-template-card:hover {
transform: translateY(-1px) !important;
border-color: rgba(30, 189, 219, 0.34) !important;
box-shadow:
0 20px 42px rgba(16, 115, 204, 0.11),
0 0 0 1px rgba(30, 189, 219, 0.12) inset !important;
}
.ecommerce-standalone .product-clone-page[data-tool="clone"] .ecom-command-template-card:focus-visible {
outline: none !important;
border-color: rgba(30, 189, 219, 0.48) !important;
box-shadow:
0 0 0 3px rgba(30, 189, 219, 0.15),
0 20px 42px rgba(16, 115, 204, 0.11) !important;
}
.ecommerce-standalone .product-clone-page[data-tool="clone"] .ecom-command-template-card__blank {
display: block !important;
width: 100% !important;
height: 100% !important;
}
.ecommerce-standalone .product-clone-page[data-tool="clone"] .clone-ai-preview {
background: #f8f9fa !important;
transition: padding-top 520ms cubic-bezier(0.16, 1, 0.3, 1),
@@ -8984,6 +9308,10 @@
min-height: 224px !important;
}
.ecommerce-standalone .product-clone-page[data-tool="clone"] .ecom-command-template-strip {
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
.ecommerce-standalone .product-clone-page[data-tool="clone"] .ecom-command-quick-board button:not(:nth-child(6n + 1))::before {
content: none !important;
}
@@ -11773,6 +12101,15 @@ html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[d
--quick-text: #164e63;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"] .ecom-command-quick-board .ecom-command-quick-card--hot {
--quick-accent: #e8590c;
--quick-bg: #fff4e6;
--quick-text: #5c2d0e;
--quick-icon: #d9480f;
--quick-border: rgba(232, 89, 12, 0.12);
--quick-shadow: rgba(232, 89, 12, 0.1);
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"] .ecom-command-quick-board,
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"] .ecom-command-quick-board button,
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"] .ecom-command-quick-board button > span,
@@ -13172,6 +13509,7 @@ html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[d
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"] .ecom-command-quick-board .ecom-command-quick-card--detail,
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"] .ecom-command-quick-board .ecom-command-quick-card--hot,
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"] .ecom-command-quick-board .ecom-command-quick-card--edit,
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"] .ecom-command-quick-board .ecom-command-quick-card--cutout,
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"] .ecom-command-quick-board .ecom-command-quick-card--watermark {
@@ -13397,6 +13735,16 @@ html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[d
--quick-shadow: rgba(122, 90, 248, 0.1) !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"] .ecom-command-quick-board .ecom-command-quick-card--hot {
--quick-accent: #e8590c !important;
--quick-bg: #fff4e6 !important;
--quick-text: #5c2d0e !important;
--quick-icon: #d9480f !important;
--quick-icon-bg: rgba(232, 89, 12, 0.13) !important;
--quick-border: rgba(232, 89, 12, 0.12) !important;
--quick-shadow: rgba(232, 89, 12, 0.1) !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"] .ecom-command-quick-board .ecom-command-quick-card--edit {
--quick-accent: #cc6b14 !important;
--quick-bg: #fff2e5 !important;
@@ -13492,7 +13840,7 @@ html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[d
/* #/imageWorkbench quick actions: soften each action so the tones blend into the page. */
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"] .ecom-command-composer-wrap.ecom-command-composer-wrap:has(.ecom-inspiration-lab) .ecom-command-quick-board {
background: rgba(255, 255, 255, 0.3) !important;
background: transparent !important;
box-shadow: none !important;
}
@@ -13600,7 +13948,7 @@ html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[d
/* #/imageWorkbench composer redesign: mode tabs outside, settings and assets inside. */
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"] .ecom-command-mode-tabs {
display: grid !important;
grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
gap: 8px !important;
width: min(100%, 760px) !important;
margin: 0 auto 12px !important;
@@ -13887,7 +14235,7 @@ html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[d
@media (max-width: 900px) {
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"] .ecom-command-mode-tabs {
grid-template-columns: repeat(5, minmax(94px, 1fr)) !important;
grid-template-columns: repeat(4, minmax(104px, 1fr)) !important;
width: 100% !important;
overflow-x: auto !important;
overscroll-behavior-x: contain !important;
@@ -13901,7 +14249,7 @@ html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[d
@media (max-width: 640px) {
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"] .ecom-command-mode-tabs {
grid-template-columns: repeat(5, minmax(88px, 1fr)) !important;
grid-template-columns: repeat(4, minmax(92px, 1fr)) !important;
margin-bottom: 10px !important;
}
@@ -14082,6 +14430,261 @@ html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[d
font-size: 22px !important;
}
/* Hot clone uploaded material thumbnails: compact grid and consistent delete control. */
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-set-upload.has-images {
display: flex !important;
flex-wrap: wrap !important;
align-items: flex-start !important;
justify-content: flex-start !important;
align-content: flex-start !important;
gap: 10px !important;
width: 100% !important;
min-height: 0 !important;
height: auto !important;
padding: 10px !important;
border: 1px solid #e8edf0 !important;
border-radius: 8px !important;
background: #ffffff !important;
box-shadow: none !important;
transform: none !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-set-upload.has-images:hover,
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-set-upload.has-images:focus-visible,
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-set-upload.has-images.is-dragging {
border-color: rgba(30, 189, 219, 0.42) !important;
background: #fbfdff !important;
box-shadow: 0 10px 24px rgba(16, 115, 204, 0.08) !important;
transform: none !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-set-upload.has-images .ecom-quick-upload-thumbs {
display: contents !important;
width: auto !important;
max-width: none !important;
padding: 0 !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-set-upload.has-images .ecom-command-asset-thumb.ecom-quick-upload-thumb {
position: relative !important;
flex: 0 0 64px !important;
width: 64px !important;
height: 64px !important;
min-width: 64px !important;
min-height: 64px !important;
margin: 0 !important;
overflow: hidden !important;
border: 1px solid #e8edf0 !important;
border-radius: 8px !important;
background: #f6f8fa !important;
box-shadow: none !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-set-upload.has-images .ecom-command-asset-thumb.ecom-quick-upload-thumb > img {
display: block !important;
width: 100% !important;
height: 100% !important;
border-radius: 7px !important;
object-fit: cover !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-set-upload.has-images .ecom-command-asset-thumb.ecom-quick-upload-thumb > button {
position: absolute !important;
top: 4px !important;
right: 4px !important;
z-index: 6 !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
width: 22px !important;
height: 22px !important;
min-width: 22px !important;
min-height: 22px !important;
padding: 0 !important;
border: 1px solid rgba(239, 68, 68, 0.42) !important;
border-radius: 999px !important;
color: #ef4444 !important;
background: rgba(255, 255, 255, 0.92) !important;
box-shadow: 0 8px 18px rgba(239, 68, 68, 0.16) !important;
cursor: pointer !important;
opacity: 0 !important;
pointer-events: none !important;
transform: scale(0.92) !important;
visibility: hidden !important;
transition:
opacity 150ms ease,
transform 150ms ease,
background 150ms ease,
box-shadow 150ms ease,
visibility 150ms ease !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-set-upload.has-images .ecom-command-asset-thumb.ecom-quick-upload-thumb:hover > button,
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-set-upload.has-images .ecom-command-asset-thumb.ecom-quick-upload-thumb:focus-within > button {
opacity: 1 !important;
pointer-events: auto !important;
transform: scale(1) !important;
visibility: visible !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-set-upload.has-images .ecom-command-asset-thumb.ecom-quick-upload-thumb > button:hover {
border-color: rgba(220, 38, 38, 0.72) !important;
color: #dc2626 !important;
background: #fff1f2 !important;
box-shadow: 0 10px 22px rgba(220, 38, 38, 0.22) !important;
transform: scale(1.04) !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-set-upload.has-images .ecom-command-asset-thumb.ecom-quick-upload-thumb > button .anticon {
display: inline-flex !important;
font-size: 13px !important;
line-height: 1 !important;
color: currentColor !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-set-upload.has-images .ecom-quick-hot-add-btn {
flex: 0 0 64px !important;
width: 64px !important;
height: 64px !important;
min-width: 64px !important;
min-height: 64px !important;
border: 1px solid #e8edf0 !important;
border-radius: 8px !important;
color: #111827 !important;
background: #f3f4f6 !important;
box-shadow: none !important;
font-size: 22px !important;
transform: none !important;
}
/* Keep hot material upload controls visible after files are added. */
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-hot-material.has-images {
display: flex !important;
flex-wrap: wrap !important;
align-items: flex-start !important;
justify-content: flex-start !important;
gap: 10px !important;
min-height: 0 !important;
height: auto !important;
padding: 10px !important;
overflow: visible !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-hot-material.has-images .ecom-quick-upload-thumbs {
display: contents !important;
width: auto !important;
max-width: none !important;
padding: 0 !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-hot-material.has-images .ecom-command-asset-thumb.ecom-quick-upload-thumb {
flex: 0 0 64px !important;
width: 64px !important;
height: 64px !important;
min-width: 64px !important;
min-height: 64px !important;
overflow: visible !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-hot-material.has-images .ecom-command-asset-thumb.ecom-quick-upload-thumb > img {
overflow: hidden !important;
border-radius: 8px !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-hot-material.has-images .ecom-command-asset-thumb.ecom-quick-upload-thumb > button {
top: -7px !important;
right: -7px !important;
width: 22px !important;
height: 22px !important;
min-width: 22px !important;
min-height: 22px !important;
opacity: 1 !important;
visibility: visible !important;
pointer-events: auto !important;
transform: none !important;
color: #ef4444 !important;
background: #ffffff !important;
border: 1px solid rgba(239, 68, 68, 0.5) !important;
box-shadow: 0 8px 18px rgba(239, 68, 68, 0.16) !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-hot-material.has-images .ecom-command-asset-thumb.ecom-quick-upload-thumb > button .anticon,
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-hot-material.has-images .ecom-command-asset-thumb.ecom-quick-upload-thumb > button svg {
display: block !important;
width: 12px !important;
height: 12px !important;
color: currentColor !important;
fill: none !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-hot-material.has-images .ecom-quick-hot-add-btn {
display: inline-flex !important;
flex: 0 0 64px !important;
width: 64px !important;
height: 64px !important;
min-width: 64px !important;
min-height: 64px !important;
margin: 0 !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-hot-material.has-images .ecom-command-asset-thumb.ecom-quick-upload-thumb > button.ecom-hot-material-delete {
position: absolute !important;
top: -8px !important;
right: -8px !important;
z-index: 20 !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
width: 24px !important;
height: 24px !important;
min-width: 24px !important;
min-height: 24px !important;
padding: 0 !important;
overflow: visible !important;
border: 1px solid rgba(239, 68, 68, 0.62) !important;
border-radius: 999px !important;
color: #ef4444 !important;
background: #ffffff !important;
box-shadow: 0 8px 18px rgba(239, 68, 68, 0.16) !important;
cursor: pointer !important;
opacity: 1 !important;
pointer-events: auto !important;
transform: none !important;
visibility: visible !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-hot-material.has-images .ecom-command-asset-thumb.ecom-quick-upload-thumb > button.ecom-hot-material-delete:hover {
border-color: #dc2626 !important;
color: #dc2626 !important;
background: #fff1f2 !important;
box-shadow: 0 10px 22px rgba(220, 38, 38, 0.24) !important;
transform: scale(1.04) !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-hot-material.has-images .ecom-command-asset-thumb.ecom-quick-upload-thumb > button.ecom-hot-material-delete svg {
display: block !important;
width: 14px !important;
height: 14px !important;
stroke: currentColor !important;
stroke-width: 1.9 !important;
stroke-linecap: round !important;
stroke-linejoin: round !important;
fill: none !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-hot-material:not(.has-images) {
min-height: 94px !important;
padding: 12px 14px !important;
gap: 6px !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-hot-reference.has-images > .anticon,
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-hot-reference.has-images > span,
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-hot-reference.has-images > em,
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"].is-hot-clone-page .ecom-quick-hot-page .ecom-quick-hot-reference.has-images > b {
display: none !important;
}
/* Generation record detail workspace: left chat, center canvas, right history drawer. */
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail {
--clone-chat-width: 352px;
@@ -16649,5 +17252,126 @@ html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[d
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-node-drag-handle {
height: 38px !important;
}
}
/* Record detail chat polish: wider drawer and clearer turn-taking. */
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail {
--clone-chat-width: clamp(408px, 30vw, 440px);
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-conversation-panel {
width: var(--clone-chat-width) !important;
min-width: var(--clone-chat-width) !important;
border-right-color: rgba(30, 189, 219, 0.18) !important;
box-shadow:
24px 0 58px rgba(16, 115, 204, 0.09),
inset -1px 0 0 rgba(255, 255, 255, 0.72) !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail.is-conversation-collapsed .clone-ai-conversation-panel {
transform: translateX(calc(-1 * var(--clone-chat-width))) !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-conversation-toggle {
left: var(--clone-chat-width) !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-conversation-head {
padding: 18px 18px 15px !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-conversation-body {
gap: 16px !important;
padding-right: 18px !important;
padding-left: 18px !important;
scroll-padding-bottom: 124px !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-chat-message {
gap: 10px !important;
padding: 15px 16px !important;
border-radius: 20px !important;
box-shadow:
0 14px 34px rgba(16, 115, 204, 0.075),
inset 0 1px 0 rgba(255, 255, 255, 0.92) !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-chat-message--user {
margin-left: clamp(26px, 7%, 36px) !important;
border-color: rgba(30, 189, 219, 0.22) !important;
background:
linear-gradient(180deg, rgba(232, 249, 253, 0.96), rgba(255, 255, 255, 0.94)) !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-chat-message--assistant {
margin-right: clamp(26px, 7%, 36px) !important;
border-color: rgba(16, 115, 204, 0.13) !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-chat-message--followup {
margin-top: 2px !important;
border-color: rgba(30, 189, 219, 0.24) !important;
background:
linear-gradient(180deg, rgba(225, 248, 253, 0.92), rgba(255, 255, 255, 0.95)) !important;
box-shadow:
0 16px 38px rgba(30, 189, 219, 0.1),
inset 0 1px 0 rgba(255, 255, 255, 0.94) !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-chat-message > span {
font-size: 12px !important;
font-weight: 820 !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-chat-message p {
font-size: 13px !important;
line-height: 1.64 !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-chat-meta {
gap: 8px !important;
margin-top: 10px !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-chat-meta em {
min-height: 28px !important;
padding: 7px 11px !important;
border-color: rgba(30, 189, 219, 0.16) !important;
background: rgba(248, 253, 255, 0.98) !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-chat-assets {
gap: 9px !important;
margin-top: 2px !important;
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-chat-assets img,
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-chat-assets em {
width: 46px !important;
height: 46px !important;
border-radius: 14px !important;
}
@media (max-width: 900px) {
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail {
--clone-chat-width: min(92vw, 408px);
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-conversation-body {
padding-right: 14px !important;
padding-left: 14px !important;
}
}
@media (max-width: 480px) {
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail {
--clone-chat-width: min(94vw, 364px);
}
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-chat-message--user,
html body #root .ecommerce-standalone.ecommerce-standalone .product-clone-page[data-tool="clone"][data-tool="clone"].is-history-detail .clone-ai-chat-message--assistant {
margin-right: 0 !important;
margin-left: 0 !important;
}
}
+1
View File
@@ -0,0 +1 @@
export * from "./types.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./enterpriseVideoPolicy.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./happyHorseRouting.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./pixverseRouting.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./resolveVideoModel.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./taskLifecycle.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./translateTaskError.ts";
+1
View File
@@ -0,0 +1 @@
export * from "./viduRouting.ts";