@dickpy/dsh-imagegen 1.5.9 → 1.5.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/client.js CHANGED
@@ -466,7 +466,7 @@ window.__ModuleLoader__.load({
466
466
  "entry.newSession": "新会话",
467
467
  "entry.newSessionTooltip": "创建一个新的 DSH 会话",
468
468
  "entry.image": "生图",
469
- "panel.title": "AI 生图",
469
+ "panel.title": "VisioWork",
470
470
  "panel.githubTip": "觉得好用或有建议?欢迎来 GitHub 提 issues、点个 star 支持一下!",
471
471
  "conversation.add": "加入对话",
472
472
  "conversation.adding": "加入中…",
@@ -590,7 +590,7 @@ window.__ModuleLoader__.load({
590
590
  "ecommerce.productName": "商品名称(必填)",
591
591
  "ecommerce.projectName": "项目名称(可选)",
592
592
  "ecommerce.constraints": "卖点与约束",
593
- "ecommerce.sellingPoints": "商品卖点,例如:防水防污 / 大容量 / 便携",
593
+ "ecommerce.sellingPoints": "参考信息:品牌型号、规格(容量/尺寸/克重)、材质工艺、核心卖点、安全认证、配件清单等",
594
594
  "ecommerce.protectedFeatures": "必须保留的特征,例如:颜色、Logo、包装文字、结构",
595
595
  "ecommerce.styleHint": "风格补充,例如:高级感 / 写实 / 自然光",
596
596
  "ecommerce.setStructure": "套图结构",
@@ -598,7 +598,7 @@ window.__ModuleLoader__.load({
598
598
  "ecommerce.planTitle": "预计生成 {count} 张图片",
599
599
  "ecommerce.planSlot": "{count} 张 · {description}",
600
600
  "ecommerce.confirm": "确认生成整套图片",
601
- "ecommerce.uploadRef": "上传商品素材(可选,最多 4 张:主体 / 包装 / 细节 / 风格)",
601
+ "ecommerce.uploadRef": "上传商品图(必选,最多 4 张:主体 / 包装 / 细节)",
602
602
  "ecommerce.uploadShort": "上传素材",
603
603
  "ecommerce.sellingTitle": "商品卖点",
604
604
  "ecommerce.advanced": "高级选项(平台 / 约束)",
@@ -615,7 +615,19 @@ window.__ModuleLoader__.load({
615
615
  "ecommerce.refSettings": "参考图设置(可选)",
616
616
  "ecommerce.styleTitle": "风格 / 补充提示",
617
617
  "ecommerce.protectedLabel": "必须保留的特征(可选)",
618
- "ecommerce.assetsFull": "最多上传 4 张素材",
618
+ "ecommerce.assetsFull": "最多上传 4 张商品图",
619
+ "ecommerce.productRefTitle": "主图参考图",
620
+ "ecommerce.productRefHint": "必选 · 商品主体图,最多 4 张",
621
+ "ecommerce.styleRefTitle": "风格参考图",
622
+ "ecommerce.styleRefBadge": "可选,最多 1 张",
623
+ "ecommerce.styleRefHint": "只传风格、光影、构图、氛围,不能更换商品主体。",
624
+ "ecommerce.styleRefUpload": "上传风格参考图",
625
+ "ecommerce.refInfoTitle": "参数信息",
626
+ "ecommerce.aiWrite": "AI 帮写",
627
+ "ecommerce.aiWriting": "AI 整理中…",
628
+ "ecommerce.aiWriteHint": "根据商品名称与类目自动整理参数信息(提示词)",
629
+ "ecommerce.promptInfoPlaceholder": "选填:品牌型号、规格(容量/尺寸/克重)、材质工艺、核心卖点、安全认证、配件清单、画面要求等,也可以点右上角 AI 帮写",
630
+ "ecommerce.optional": "可选",
619
631
  "ecommerce.refSelect": "该用途使用的参考图",
620
632
  "ecommerce.refNone": "不使用参考图",
621
633
  "ecommerce.role.product": "商品主体",
@@ -968,7 +980,7 @@ window.__ModuleLoader__.load({
968
980
  "entry.newSession": "New session",
969
981
  "entry.newSessionTooltip": "Create a new DSH session",
970
982
  "entry.image": "Image",
971
- "panel.title": "AI Image",
983
+ "panel.title": "VisioWork",
972
984
  "panel.githubTip": "Like it or have suggestions? Head to GitHub to open issues and star us!",
973
985
  "conversation.add": "Add to chat",
974
986
  "conversation.adding": "Adding…",
@@ -1092,7 +1104,7 @@ window.__ModuleLoader__.load({
1092
1104
  "ecommerce.productName": "Product name (required)",
1093
1105
  "ecommerce.projectName": "Project name (optional)",
1094
1106
  "ecommerce.constraints": "Selling points & constraints",
1095
- "ecommerce.sellingPoints": "Selling points, e.g. waterproof / large capacity / portable",
1107
+ "ecommerce.sellingPoints": "Reference info: brand & model, specs (capacity/size/weight), materials, key selling points, certifications, accessories…",
1096
1108
  "ecommerce.protectedFeatures": "Features to preserve: color, logo, packaging text, structure",
1097
1109
  "ecommerce.styleHint": "Style hint, e.g. premium / realistic / natural light",
1098
1110
  "ecommerce.setStructure": "Image set structure",
@@ -1100,7 +1112,7 @@ window.__ModuleLoader__.load({
1100
1112
  "ecommerce.planTitle": "Plan to generate {count} images",
1101
1113
  "ecommerce.planSlot": "{count} images · {description}",
1102
1114
  "ecommerce.confirm": "Confirm and generate set",
1103
- "ecommerce.uploadRef": "Upload product assets (optional, up to 4: product / packaging / detail / style)",
1115
+ "ecommerce.uploadRef": "Upload product images (required, up to 4: product / packaging / detail)",
1104
1116
  "ecommerce.uploadShort": "Upload",
1105
1117
  "ecommerce.sellingTitle": "Selling points",
1106
1118
  "ecommerce.advanced": "Advanced (platform / constraints)",
@@ -1117,7 +1129,19 @@ window.__ModuleLoader__.load({
1117
1129
  "ecommerce.refSettings": "Reference images (optional)",
1118
1130
  "ecommerce.styleTitle": "Style / extra hints",
1119
1131
  "ecommerce.protectedLabel": "Features to preserve (optional)",
1120
- "ecommerce.assetsFull": "Up to 4 assets",
1132
+ "ecommerce.assetsFull": "Up to 4 product images",
1133
+ "ecommerce.productRefTitle": "Product images",
1134
+ "ecommerce.productRefHint": "Required · product shots, up to 4",
1135
+ "ecommerce.styleRefTitle": "Style reference",
1136
+ "ecommerce.styleRefBadge": "optional, 1 max",
1137
+ "ecommerce.styleRefHint": "Style, lighting, composition and mood only — the product itself cannot change.",
1138
+ "ecommerce.styleRefUpload": "Upload style reference",
1139
+ "ecommerce.refInfoTitle": "Product info",
1140
+ "ecommerce.aiWrite": "AI write",
1141
+ "ecommerce.aiWriting": "AI drafting…",
1142
+ "ecommerce.aiWriteHint": "Draft the product info prompt from name and category",
1143
+ "ecommerce.promptInfoPlaceholder": "Optional: brand & model, specs, materials, selling points, certifications, accessories, framing… or use AI write",
1144
+ "ecommerce.optional": "optional",
1121
1145
  "ecommerce.refSelect": "Reference image for this slot",
1122
1146
  "ecommerce.refNone": "No reference",
1123
1147
  "ecommerce.role.product": "Product",
@@ -1471,7 +1495,7 @@ window.__ModuleLoader__.load({
1471
1495
  "entry.newSession": "Новая сессия",
1472
1496
  "entry.newSessionTooltip": "Создать новую сессию DSH",
1473
1497
  "entry.image": "Генерация",
1474
- "panel.title": "ИИ-генерация изображений",
1498
+ "panel.title": "VisioWork",
1475
1499
  "panel.githubTip": "Понравился плагин или есть идеи? Поставьте звезду или откройте issue на GitHub!",
1476
1500
  "conversation.add": "В диалог",
1477
1501
  "conversation.adding": "Добавляем…",
@@ -1595,7 +1619,7 @@ window.__ModuleLoader__.load({
1595
1619
  "ecommerce.productName": "Название товара (обязательно)",
1596
1620
  "ecommerce.projectName": "Название проекта (необязательно)",
1597
1621
  "ecommerce.constraints": "Преимущества и ограничения",
1598
- "ecommerce.sellingPoints": "Преимущества товара, например: водостойкость / большая вместимость / компактность",
1622
+ "ecommerce.sellingPoints": "Доп. информация: бренд и модель, характеристики (объём/размер/вес), материалы, преимущества, сертификация, комплектация…",
1599
1623
  "ecommerce.protectedFeatures": "Что обязательно сохранить: цвет, логотип, текст упаковки, конструкцию",
1600
1624
  "ecommerce.styleHint": "Стиль, например: премиальный / реалистичный / естественный свет",
1601
1625
  "ecommerce.setStructure": "Структура комплекта",
@@ -1603,7 +1627,7 @@ window.__ModuleLoader__.load({
1603
1627
  "ecommerce.planTitle": "Будет сгенерировано изображений: {count}",
1604
1628
  "ecommerce.planSlot": "{count} шт. · {description}",
1605
1629
  "ecommerce.confirm": "Сгенерировать весь комплект",
1606
- "ecommerce.uploadRef": "Материалы товара (необязательно, до 4 шт.: товар / упаковка / детали / стиль)",
1630
+ "ecommerce.uploadRef": "Фото товара (обязательно, до 4 шт.: товар / упаковка / детали)",
1607
1631
  "ecommerce.uploadShort": "Загрузить материалы",
1608
1632
  "ecommerce.sellingTitle": "Преимущества товара",
1609
1633
  "ecommerce.advanced": "Дополнительно (площадка / ограничения)",
@@ -1620,7 +1644,19 @@ window.__ModuleLoader__.load({
1620
1644
  "ecommerce.refSettings": "Настройки референсов (необязательно)",
1621
1645
  "ecommerce.styleTitle": "Стиль / дополнения",
1622
1646
  "ecommerce.protectedLabel": "Обязательно сохранить (необязательно)",
1623
- "ecommerce.assetsFull": "Не более 4 материалов",
1647
+ "ecommerce.assetsFull": "Не более 4 фото товара",
1648
+ "ecommerce.productRefTitle": "Референсы товара",
1649
+ "ecommerce.productRefHint": "Обязательно · фото товара, до 4 шт.",
1650
+ "ecommerce.styleRefTitle": "Референс стиля",
1651
+ "ecommerce.styleRefBadge": "опционально, 1 шт.",
1652
+ "ecommerce.styleRefHint": "Только стиль, свет, композиция и настроение — сам товар заменить нельзя.",
1653
+ "ecommerce.styleRefUpload": "Загрузить референс стиля",
1654
+ "ecommerce.refInfoTitle": "Параметры товара",
1655
+ "ecommerce.aiWrite": "ИИ-заполнить",
1656
+ "ecommerce.aiWriting": "ИИ составляет…",
1657
+ "ecommerce.aiWriteHint": "Составить параметры товара из названия и категории",
1658
+ "ecommerce.promptInfoPlaceholder": "Опционально: бренд и модель, характеристики, материалы, преимущества, сертификация, комплектация… или ИИ-заполнить",
1659
+ "ecommerce.optional": "опционально",
1624
1660
  "ecommerce.refSelect": "Референс для этого назначения",
1625
1661
  "ecommerce.refNone": "Без референса",
1626
1662
  "ecommerce.role.product": "Товар",
@@ -2028,61 +2064,61 @@ window.__ModuleLoader__.load({
2028
2064
  }
2029
2065
  //#endregion
2030
2066
  //#region \0dsh-css:E:\dsh-plugin\src\client\templates.module.css.mjs
2031
- const css$5 = ".o0mAxG_overlay,.o0mAxG_overlay *,.o0mAxG_overlay :before,.o0mAxG_overlay :after{box-sizing:border-box}.o0mAxG_overlay{z-index:130;background:var(--dsw-alias-bg-mask-1);color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-family);justify-content:center;align-items:center;padding:28px;display:flex;position:fixed;inset:0}.o0mAxG_shell{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);border-radius:14px;flex-direction:column;width:min(1180px,100%);height:100%;max-height:100%;display:flex;overflow:hidden;box-shadow:0 18px 60px #00000047}.o0mAxG_header{flex:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px 10px;display:flex}.o0mAxG_heading{align-items:baseline;gap:10px;min-width:0;display:flex}.o0mAxG_title{margin:0;font-size:15px;font-weight:650}.o0mAxG_meta{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:12px}.o0mAxG_headerActions{flex:none;align-items:center;gap:8px;display:inline-flex}.o0mAxG_close{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.o0mAxG_close:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.o0mAxG_sourceTabs{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:6px;padding:0 18px 10px;display:flex}.o0mAxG_sourceTab{height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-bottom:none;border-radius:9px 9px 0 0;align-items:center;gap:6px;padding:0 14px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.o0mAxG_sourceTab:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.o0mAxG_sourceTab[data-active]{border-color:var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-brand-primary);border-radius:9px}.o0mAxG_sourceTabCount{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-tertiary);border-radius:999px;padding:0 6px;font-size:11px;font-weight:500}.o0mAxG_sourceTab[data-active] .o0mAxG_sourceTabCount{color:var(--dsw-alias-label-secondary)}.o0mAxG_toolbar{flex-direction:column;flex:none;gap:10px;padding:0 18px 12px;display:flex}.o0mAxG_search{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);width:100%;height:34px;color:var(--dsw-alias-label-primary);border-radius:9px;outline:none;padding:0 12px;font-family:inherit;font-size:13px}.o0mAxG_search:focus{border-color:var(--dsw-alias-brand-primary)}.o0mAxG_search::placeholder{color:var(--dsw-alias-label-dimmed)}.o0mAxG_categoryRow{flex-wrap:wrap;gap:6px;max-height:64px;display:flex;overflow-y:auto}.o0mAxG_categoryPill{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);height:26px;color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;border-radius:999px;padding:0 11px;font-family:inherit;font-size:12px}.o0mAxG_categoryPill:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.o0mAxG_categoryPill[data-active]{border-color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-brand-primary);color:var(--dsw-alias-bg-base)}.o0mAxG_notice{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-secondary);border-radius:9px;flex:none;margin:0 18px 10px;padding:8px 12px;font-size:12px}.o0mAxG_body{flex:1;min-height:0;padding:2px 18px 14px;overflow-y:auto}.o0mAxG_state{height:100%;min-height:220px;color:var(--dsw-alias-label-tertiary);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:13px;display:flex}.o0mAxG_spinner{border:2px solid var(--dsw-alias-border-l2);border-top-color:var(--dsw-alias-brand-primary);border-radius:50%;width:26px;height:26px;animation:.9s linear infinite o0mAxG_dsh-imagegen-templates-spin}@keyframes o0mAxG_dsh-imagegen-templates-spin{to{transform:rotate(360deg)}}.o0mAxG_grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.o0mAxG_card{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);cursor:pointer;text-align:left;color:var(--dsw-alias-label-primary);border-radius:11px;flex-direction:column;gap:0;padding:0;font-family:inherit;transition:border-color .15s,transform .15s;display:flex;overflow:hidden}.o0mAxG_card:hover{border-color:var(--dsw-alias-brand-primary);transform:translateY(-1px)}.o0mAxG_thumbWrap{aspect-ratio:1;background:var(--dsw-alias-bg-layer-2);width:100%;display:block;position:relative}.o0mAxG_thumb{object-fit:cover;width:100%;height:100%;display:block}.o0mAxG_thumbPlaceholder{width:100%;height:100%;color:var(--dsw-alias-label-dimmed);justify-content:center;align-items:center;display:flex}.o0mAxG_featuredBadge{background:var(--dsw-alias-brand-primary);color:var(--dsw-alias-bg-base);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;position:absolute;top:8px;left:8px}.o0mAxG_favStar{color:#ffffffd9;cursor:pointer;opacity:0;background:#00000059;border:none;border-radius:8px;justify-content:center;align-items:center;width:26px;height:26px;padding:0;transition:opacity .15s;display:inline-flex;position:absolute;top:6px;right:6px}.o0mAxG_card:hover .o0mAxG_favStar,.o0mAxG_favStar:focus-visible,.o0mAxG_favStar[data-active]{opacity:1}.o0mAxG_favStar:hover{color:#fff;background:#0000008c}.o0mAxG_favStar[data-active]{color:#ffb020}@media (hover:none){.o0mAxG_favStar{opacity:1}}.o0mAxG_cardBody{flex-direction:column;gap:4px;min-width:0;padding:9px 11px 10px;display:flex}.o0mAxG_cardTitle{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12.5px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.o0mAxG_cardMeta{min-width:0;color:var(--dsw-alias-label-tertiary);align-items:center;gap:6px;font-size:11px;display:flex}.o0mAxG_cardCategory{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);border-radius:999px;flex:none;padding:1px 7px}.o0mAxG_cardSource{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.o0mAxG_footer{border-top:1px solid var(--dsw-alias-border-l1);flex:none;justify-content:space-between;align-items:center;gap:10px;padding:9px 18px;display:flex}.o0mAxG_attribution{color:var(--dsw-alias-label-dimmed);min-width:0;font-size:11.5px}.o0mAxG_sourceLink{color:var(--dsw-alias-brand-primary);white-space:nowrap;flex:none;font-size:11.5px;font-weight:600;text-decoration:none}.o0mAxG_sourceLink:hover{text-decoration:underline}.o0mAxG_detailOverlay{background:var(--dsw-alias-bg-mask-1);justify-content:center;align-items:center;padding:34px;display:flex;position:absolute;inset:0}.o0mAxG_detail{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);border-radius:14px;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,5fr) minmax(0,4fr);gap:0;width:min(980px,100%);max-height:100%;display:grid;overflow:hidden;box-shadow:0 18px 60px #00000052}.o0mAxG_detailMedia{background:var(--dsw-alias-bg-layer-2);justify-content:center;align-items:center;min-height:0;display:flex;overflow:hidden}.o0mAxG_detailImage{object-fit:contain;width:100%;height:100%;display:block}.o0mAxG_detailInfo{flex-direction:column;gap:10px;min-height:0;padding:18px;display:flex;overflow-y:auto}.o0mAxG_detailTitle{margin:0;font-size:15px;font-weight:650;line-height:1.4}.o0mAxG_detailMeta{color:var(--dsw-alias-label-tertiary);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.o0mAxG_detailLink{color:var(--dsw-alias-brand-primary);text-overflow:ellipsis;white-space:nowrap;text-decoration:none;overflow:hidden}.o0mAxG_detailLink:hover{text-decoration:underline}.o0mAxG_detailPrompt{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-height:0;color:var(--dsw-alias-label-primary);white-space:pre-wrap;word-break:break-word;user-select:text;border-radius:10px;flex:1;margin:0;padding:12px;font-family:inherit;font-size:12.5px;line-height:1.6;overflow-y:auto}.o0mAxG_detailActions{background:var(--dsw-alias-bg-base);border-top:1px solid var(--dsw-alias-border-l1);flex:none;gap:8px;margin:0 -18px -18px;padding:12px 18px;display:flex;position:sticky;bottom:0}@media (width<=760px){.o0mAxG_detail{grid-template-rows:minmax(0,3fr) minmax(0,4fr);grid-template-columns:1fr}}";
2032
- const tagId$5 = "@dickpy/dsh-imagegen/templates.module.css";
2033
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
2067
+ const css$6 = ".o0mAxG_overlay,.o0mAxG_overlay *,.o0mAxG_overlay :before,.o0mAxG_overlay :after{box-sizing:border-box}.o0mAxG_overlay{z-index:130;background:var(--dsw-alias-bg-mask-1);color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-family);justify-content:center;align-items:center;padding:28px;display:flex;position:fixed;inset:0}.o0mAxG_shell{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);border-radius:14px;flex-direction:column;width:min(1180px,100%);height:100%;max-height:100%;display:flex;overflow:hidden;box-shadow:0 18px 60px #00000047}.o0mAxG_header{flex:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px 10px;display:flex}.o0mAxG_heading{align-items:baseline;gap:10px;min-width:0;display:flex}.o0mAxG_title{margin:0;font-size:15px;font-weight:650}.o0mAxG_meta{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:12px}.o0mAxG_headerActions{flex:none;align-items:center;gap:8px;display:inline-flex}.o0mAxG_close{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.o0mAxG_close:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.o0mAxG_sourceTabs{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:6px;padding:0 18px 10px;display:flex}.o0mAxG_sourceTab{height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-bottom:none;border-radius:9px 9px 0 0;align-items:center;gap:6px;padding:0 14px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.o0mAxG_sourceTab:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.o0mAxG_sourceTab[data-active]{border-color:var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-brand-primary);border-radius:9px}.o0mAxG_sourceTabCount{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-tertiary);border-radius:999px;padding:0 6px;font-size:11px;font-weight:500}.o0mAxG_sourceTab[data-active] .o0mAxG_sourceTabCount{color:var(--dsw-alias-label-secondary)}.o0mAxG_toolbar{flex-direction:column;flex:none;gap:10px;padding:0 18px 12px;display:flex}.o0mAxG_search{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);width:100%;height:34px;color:var(--dsw-alias-label-primary);border-radius:9px;outline:none;padding:0 12px;font-family:inherit;font-size:13px}.o0mAxG_search:focus{border-color:var(--dsw-alias-brand-primary)}.o0mAxG_search::placeholder{color:var(--dsw-alias-label-dimmed)}.o0mAxG_categoryRow{flex-wrap:wrap;gap:6px;max-height:64px;display:flex;overflow-y:auto}.o0mAxG_categoryPill{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);height:26px;color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;border-radius:999px;padding:0 11px;font-family:inherit;font-size:12px}.o0mAxG_categoryPill:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.o0mAxG_categoryPill[data-active]{border-color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-brand-primary);color:var(--dsw-alias-bg-base)}.o0mAxG_notice{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-secondary);border-radius:9px;flex:none;margin:0 18px 10px;padding:8px 12px;font-size:12px}.o0mAxG_body{flex:1;min-height:0;padding:2px 18px 14px;overflow-y:auto}.o0mAxG_state{height:100%;min-height:220px;color:var(--dsw-alias-label-tertiary);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:13px;display:flex}.o0mAxG_spinner{border:2px solid var(--dsw-alias-border-l2);border-top-color:var(--dsw-alias-brand-primary);border-radius:50%;width:26px;height:26px;animation:.9s linear infinite o0mAxG_dsh-imagegen-templates-spin}@keyframes o0mAxG_dsh-imagegen-templates-spin{to{transform:rotate(360deg)}}.o0mAxG_grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.o0mAxG_card{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);cursor:pointer;text-align:left;color:var(--dsw-alias-label-primary);border-radius:11px;flex-direction:column;gap:0;padding:0;font-family:inherit;transition:border-color .15s,transform .15s;display:flex;overflow:hidden}.o0mAxG_card:hover{border-color:var(--dsw-alias-brand-primary);transform:translateY(-1px)}.o0mAxG_thumbWrap{aspect-ratio:1;background:var(--dsw-alias-bg-layer-2);width:100%;display:block;position:relative}.o0mAxG_thumb{object-fit:cover;width:100%;height:100%;display:block}.o0mAxG_thumbPlaceholder{width:100%;height:100%;color:var(--dsw-alias-label-dimmed);justify-content:center;align-items:center;display:flex}.o0mAxG_featuredBadge{background:var(--dsw-alias-brand-primary);color:var(--dsw-alias-bg-base);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;position:absolute;top:8px;left:8px}.o0mAxG_favStar{color:#ffffffd9;cursor:pointer;opacity:0;background:#00000059;border:none;border-radius:8px;justify-content:center;align-items:center;width:26px;height:26px;padding:0;transition:opacity .15s;display:inline-flex;position:absolute;top:6px;right:6px}.o0mAxG_card:hover .o0mAxG_favStar,.o0mAxG_favStar:focus-visible,.o0mAxG_favStar[data-active]{opacity:1}.o0mAxG_favStar:hover{color:#fff;background:#0000008c}.o0mAxG_favStar[data-active]{color:#ffb020}@media (hover:none){.o0mAxG_favStar{opacity:1}}.o0mAxG_cardBody{flex-direction:column;gap:4px;min-width:0;padding:9px 11px 10px;display:flex}.o0mAxG_cardTitle{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12.5px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.o0mAxG_cardMeta{min-width:0;color:var(--dsw-alias-label-tertiary);align-items:center;gap:6px;font-size:11px;display:flex}.o0mAxG_cardCategory{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);border-radius:999px;flex:none;padding:1px 7px}.o0mAxG_cardSource{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.o0mAxG_footer{border-top:1px solid var(--dsw-alias-border-l1);flex:none;justify-content:space-between;align-items:center;gap:10px;padding:9px 18px;display:flex}.o0mAxG_attribution{color:var(--dsw-alias-label-dimmed);min-width:0;font-size:11.5px}.o0mAxG_sourceLink{color:var(--dsw-alias-brand-primary);white-space:nowrap;flex:none;font-size:11.5px;font-weight:600;text-decoration:none}.o0mAxG_sourceLink:hover{text-decoration:underline}.o0mAxG_detailOverlay{background:var(--dsw-alias-bg-mask-1);justify-content:center;align-items:center;padding:34px;display:flex;position:absolute;inset:0}.o0mAxG_detail{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);border-radius:14px;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,5fr) minmax(0,4fr);gap:0;width:min(980px,100%);max-height:100%;display:grid;overflow:hidden;box-shadow:0 18px 60px #00000052}.o0mAxG_detailMedia{background:var(--dsw-alias-bg-layer-2);justify-content:center;align-items:center;min-height:0;display:flex;overflow:hidden}.o0mAxG_detailImage{object-fit:contain;width:100%;height:100%;display:block}.o0mAxG_detailInfo{flex-direction:column;gap:10px;min-height:0;padding:18px;display:flex;overflow-y:auto}.o0mAxG_detailTitle{margin:0;font-size:15px;font-weight:650;line-height:1.4}.o0mAxG_detailMeta{color:var(--dsw-alias-label-tertiary);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.o0mAxG_detailLink{color:var(--dsw-alias-brand-primary);text-overflow:ellipsis;white-space:nowrap;text-decoration:none;overflow:hidden}.o0mAxG_detailLink:hover{text-decoration:underline}.o0mAxG_detailPrompt{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-height:0;color:var(--dsw-alias-label-primary);white-space:pre-wrap;word-break:break-word;user-select:text;border-radius:10px;flex:1;margin:0;padding:12px;font-family:inherit;font-size:12.5px;line-height:1.6;overflow-y:auto}.o0mAxG_detailActions{background:var(--dsw-alias-bg-base);border-top:1px solid var(--dsw-alias-border-l1);flex:none;gap:8px;margin:0 -18px -18px;padding:12px 18px;display:flex;position:sticky;bottom:0}@media (width<=760px){.o0mAxG_detail{grid-template-rows:minmax(0,3fr) minmax(0,4fr);grid-template-columns:1fr}}";
2068
+ const tagId$6 = "@dickpy/dsh-imagegen/templates.module.css";
2069
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$6) + "]") === null) {
2034
2070
  const tag = document.createElement("style");
2035
2071
  tag.dataset.plugin = "@dickpy/dsh-imagegen";
2036
- tag.dataset.pluginCss = tagId$5;
2037
- tag.textContent = css$5;
2072
+ tag.dataset.pluginCss = tagId$6;
2073
+ tag.textContent = css$6;
2038
2074
  document.head.appendChild(tag);
2039
2075
  }
2040
2076
  var templates_module_css_default = {
2041
- "detailInfo": "o0mAxG_detailInfo",
2042
- "categoryRow": "o0mAxG_categoryRow",
2043
- "overlay": "o0mAxG_overlay",
2044
- "detailPrompt": "o0mAxG_detailPrompt",
2077
+ "search": "o0mAxG_search",
2078
+ "shell": "o0mAxG_shell",
2079
+ "toolbar": "o0mAxG_toolbar",
2080
+ "thumbPlaceholder": "o0mAxG_thumbPlaceholder",
2081
+ "cardBody": "o0mAxG_cardBody",
2045
2082
  "cardTitle": "o0mAxG_cardTitle",
2046
- "footer": "o0mAxG_footer",
2047
- "state": "o0mAxG_state",
2048
- "meta": "o0mAxG_meta",
2049
- "headerActions": "o0mAxG_headerActions",
2050
- "spinner": "o0mAxG_spinner",
2051
- "dsh-imagegen-templates-spin": "o0mAxG_dsh-imagegen-templates-spin",
2052
- "attribution": "o0mAxG_attribution",
2053
- "sourceLink": "o0mAxG_sourceLink",
2054
- "detailMeta": "o0mAxG_detailMeta",
2055
- "cardCategory": "o0mAxG_cardCategory",
2056
- "close": "o0mAxG_close",
2057
- "body": "o0mAxG_body",
2058
- "cardMeta": "o0mAxG_cardMeta",
2059
- "grid": "o0mAxG_grid",
2083
+ "header": "o0mAxG_header",
2084
+ "thumb": "o0mAxG_thumb",
2085
+ "detailOverlay": "o0mAxG_detailOverlay",
2060
2086
  "detailMedia": "o0mAxG_detailMedia",
2087
+ "detailMeta": "o0mAxG_detailMeta",
2061
2088
  "detailLink": "o0mAxG_detailLink",
2089
+ "detailPrompt": "o0mAxG_detailPrompt",
2090
+ "body": "o0mAxG_body",
2062
2091
  "sourceTabCount": "o0mAxG_sourceTabCount",
2092
+ "dsh-imagegen-templates-spin": "o0mAxG_dsh-imagegen-templates-spin",
2093
+ "sourceTabs": "o0mAxG_sourceTabs",
2094
+ "thumbWrap": "o0mAxG_thumbWrap",
2095
+ "cardCategory": "o0mAxG_cardCategory",
2063
2096
  "cardSource": "o0mAxG_cardSource",
2097
+ "heading": "o0mAxG_heading",
2098
+ "title": "o0mAxG_title",
2064
2099
  "detailImage": "o0mAxG_detailImage",
2065
- "notice": "o0mAxG_notice",
2066
- "detailOverlay": "o0mAxG_detailOverlay",
2067
- "categoryPill": "o0mAxG_categoryPill",
2068
- "featuredBadge": "o0mAxG_featuredBadge",
2069
- "shell": "o0mAxG_shell",
2100
+ "state": "o0mAxG_state",
2101
+ "detailInfo": "o0mAxG_detailInfo",
2070
2102
  "card": "o0mAxG_card",
2071
- "favStar": "o0mAxG_favStar",
2072
- "search": "o0mAxG_search",
2103
+ "overlay": "o0mAxG_overlay",
2104
+ "close": "o0mAxG_close",
2073
2105
  "sourceTab": "o0mAxG_sourceTab",
2074
- "detailTitle": "o0mAxG_detailTitle",
2075
- "sourceTabs": "o0mAxG_sourceTabs",
2106
+ "spinner": "o0mAxG_spinner",
2107
+ "notice": "o0mAxG_notice",
2108
+ "categoryRow": "o0mAxG_categoryRow",
2109
+ "featuredBadge": "o0mAxG_featuredBadge",
2110
+ "cardMeta": "o0mAxG_cardMeta",
2111
+ "headerActions": "o0mAxG_headerActions",
2112
+ "footer": "o0mAxG_footer",
2113
+ "attribution": "o0mAxG_attribution",
2114
+ "meta": "o0mAxG_meta",
2115
+ "sourceLink": "o0mAxG_sourceLink",
2076
2116
  "detail": "o0mAxG_detail",
2117
+ "detailTitle": "o0mAxG_detailTitle",
2077
2118
  "detailActions": "o0mAxG_detailActions",
2078
- "thumb": "o0mAxG_thumb",
2079
- "thumbWrap": "o0mAxG_thumbWrap",
2080
- "header": "o0mAxG_header",
2081
- "thumbPlaceholder": "o0mAxG_thumbPlaceholder",
2082
- "toolbar": "o0mAxG_toolbar",
2083
- "cardBody": "o0mAxG_cardBody",
2084
- "title": "o0mAxG_title",
2085
- "heading": "o0mAxG_heading"
2119
+ "grid": "o0mAxG_grid",
2120
+ "categoryPill": "o0mAxG_categoryPill",
2121
+ "favStar": "o0mAxG_favStar"
2086
2122
  };
2087
2123
  //#endregion
2088
2124
  //#region src/client/TemplateLibrary.tsx
@@ -2699,6 +2735,238 @@ window.__ModuleLoader__.load({
2699
2735
  }), document.body);
2700
2736
  }
2701
2737
  //#endregion
2738
+ //#region src/client/surface-theme.ts
2739
+ /** Walk up from an element to the first opaque surface and decide
2740
+ * light vs dark, so ported reactbits visuals can pick their ink. Non-browser
2741
+ * environments (jsdom smoke) have no computed styles and default to dark. */
2742
+ function detectLightSurface(element) {
2743
+ if (typeof globalThis.getComputedStyle !== "function") return false;
2744
+ let node = element;
2745
+ while (node !== null) {
2746
+ const match = getComputedStyle(node).backgroundColor.match(/rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)(?:[\s,]+([\d.]+))?\s*\)/);
2747
+ if (match !== null) {
2748
+ if ((match[4] !== void 0 ? Number(match[4]) : 1) >= .5) return (.2126 * Number(match[1]) + .7152 * Number(match[2]) + .0722 * Number(match[3])) / 255 > .55;
2749
+ }
2750
+ node = node.parentElement;
2751
+ }
2752
+ return false;
2753
+ }
2754
+ //#endregion
2755
+ //#region \0dsh-css:E:\dsh-plugin\src\client\GooeyNav.module.css.mjs
2756
+ const css$5 = ".n1YSHG_container{--gooey-time:1.5s;--gooey-color-1:#5227ff;--gooey-color-2:#ff9ffc;--gooey-color-3:#b19eef;--gooey-color-4:#22d3ee;--gooey-pill:#17171c;--gooey-pill-ink:#fff;--gooey-ink:#5b5e6b;font-size:13px;position:relative}.n1YSHG_container[data-theme=dark]{--gooey-pill:#fff;--gooey-pill-ink:#17171c;--gooey-ink:#fff}.n1YSHG_gooSvg{width:0;height:0;position:absolute}.n1YSHG_container nav{display:flex;position:relative;transform:translateZ(.01px)}.n1YSHG_container nav ul{z-index:3;gap:6px;margin:0;padding:0 4px;list-style:none;display:flex;position:relative}.n1YSHG_container nav li{color:var(--gooey-ink);border-radius:100vw;transition:background-color .3s,color .3s,box-shadow .3s;position:relative}.n1YSHG_container nav li button{font:inherit;color:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:5px 13px;display:inline-block}.n1YSHG_container nav li.n1YSHG_active{color:var(--gooey-pill-ink)}.n1YSHG_container nav li:after{content:\"\";background:var(--gooey-pill);opacity:0;z-index:-1;border-radius:10px;transition:all .3s;position:absolute;inset:0;transform:scale(0)}.n1YSHG_container nav li.n1YSHG_active:after{opacity:1;transform:scale(1)}.n1YSHG_effect{opacity:1;pointer-events:none;z-index:1;place-items:center;width:0;height:0;display:grid;position:absolute;top:0;left:0}.n1YSHG_effectText{color:var(--gooey-ink);font-size:13px;transition:color .3s}.n1YSHG_effectText.n1YSHG_active{color:var(--gooey-pill-ink)}.n1YSHG_effectFilter{filter:url(#dsh-gooey-nav-goo)}.n1YSHG_effectFilter:after{content:\"\";background:var(--gooey-pill);opacity:0;z-index:-1;border-radius:100vw;position:absolute;inset:0;transform:scale(0)}.n1YSHG_effectFilter.n1YSHG_active:after{animation:.3s both n1YSHG_gooeyPill}@keyframes n1YSHG_gooeyPill{to{opacity:1;transform:scale(1)}}.n1YSHG_particle,.n1YSHG_point{opacity:0;transform-origin:50%;border-radius:100%;width:14px;height:14px;display:block}.n1YSHG_particle{--time:1.5s;animation:n1YSHG_gooeyParticle calc(var(--time)) ease 1 -350ms;position:absolute;top:calc(50% - 7px);left:calc(50% - 7px)}.n1YSHG_point{background:var(--color);opacity:1;animation:n1YSHG_gooeyPoint calc(var(--time)) ease 1 -350ms}@keyframes n1YSHG_gooeyParticle{0%{transform:rotate(0deg) translate(calc(var(--start-x)), calc(var(--start-y)));opacity:1;animation-timing-function:cubic-bezier(.55,0,1,.45)}70%{transform:rotate(calc(var(--rotate) * .5)) translate(calc(var(--end-x) * 1.2), calc(var(--end-y) * 1.2));opacity:1;animation-timing-function:ease}85%{transform:rotate(calc(var(--rotate) * .66)) translate(calc(var(--end-x)), calc(var(--end-y)));opacity:1}to{transform:rotate(calc(var(--rotate) * 1.2)) translate(calc(var(--end-x) * .5), calc(var(--end-y) * .5));opacity:1}}@keyframes n1YSHG_gooeyPoint{0%{opacity:0;animation-timing-function:cubic-bezier(.55,0,1,.45);transform:scale(0)}25%{transform:scale(calc(var(--scale) * .25))}38%{opacity:1}65%{transform:scale(var(--scale));opacity:1;animation-timing-function:ease}85%{transform:scale(var(--scale));opacity:1}to{opacity:0;transform:scale(0)}}@media (prefers-reduced-motion:reduce){.n1YSHG_particle,.n1YSHG_point{animation:none}}";
2757
+ const tagId$5 = "@dickpy/dsh-imagegen/GooeyNav.module.css";
2758
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
2759
+ const tag = document.createElement("style");
2760
+ tag.dataset.plugin = "@dickpy/dsh-imagegen";
2761
+ tag.dataset.pluginCss = tagId$5;
2762
+ tag.textContent = css$5;
2763
+ document.head.appendChild(tag);
2764
+ }
2765
+ var GooeyNav_module_css_default = {
2766
+ "gooeyPoint": "n1YSHG_gooeyPoint",
2767
+ "effectText": "n1YSHG_effectText",
2768
+ "gooeyParticle": "n1YSHG_gooeyParticle",
2769
+ "effectFilter": "n1YSHG_effectFilter",
2770
+ "particle": "n1YSHG_particle",
2771
+ "active": "n1YSHG_active",
2772
+ "gooSvg": "n1YSHG_gooSvg",
2773
+ "container": "n1YSHG_container",
2774
+ "effect": "n1YSHG_effect",
2775
+ "gooeyPill": "n1YSHG_gooeyPill",
2776
+ "point": "n1YSHG_point"
2777
+ };
2778
+ //#endregion
2779
+ //#region src/client/GooeyNav.tsx
2780
+ /** reactbits.dev "GooeyNav" port (controlled, dependency-free): the active
2781
+ * pill merges with a radial burst of gooey particles through a
2782
+ * blur+contrast filter. The original renders white ink on dark surfaces,
2783
+ * so the palette flips per detected surface to stay readable in the host
2784
+ * theme. */
2785
+ const ANIMATION_TIME = 600;
2786
+ const PARTICLE_COUNT = 15;
2787
+ const PARTICLE_DISTANCES = [90, 10];
2788
+ const PARTICLE_R = 100;
2789
+ const TIME_VARIANCE = 300;
2790
+ const COLORS = [
2791
+ 1,
2792
+ 2,
2793
+ 3,
2794
+ 1,
2795
+ 2,
2796
+ 3,
2797
+ 1,
2798
+ 4
2799
+ ];
2800
+ function GooeyNav(props) {
2801
+ const { items, activeIndex, onSelect, ariaLabel } = props;
2802
+ const containerRef = (0, react.useRef)(null);
2803
+ const navRef = (0, react.useRef)(null);
2804
+ const filterRef = (0, react.useRef)(null);
2805
+ const textRef = (0, react.useRef)(null);
2806
+ const burstRef = (0, react.useRef)(() => {});
2807
+ const timersRef = (0, react.useRef)([]);
2808
+ const activeIndexRef = (0, react.useRef)(activeIndex);
2809
+ activeIndexRef.current = activeIndex;
2810
+ const updateEffectPosition = (element) => {
2811
+ const container = containerRef.current;
2812
+ const filter = filterRef.current;
2813
+ const text = textRef.current;
2814
+ if (container === null || filter === null || text === null) return;
2815
+ const containerRect = container.getBoundingClientRect();
2816
+ const pos = element.getBoundingClientRect();
2817
+ const styles = {
2818
+ left: `${pos.x - containerRect.x}px`,
2819
+ top: `${pos.y - containerRect.y}px`,
2820
+ width: `${pos.width}px`,
2821
+ height: `${pos.height}px`
2822
+ };
2823
+ Object.assign(filter.style, styles);
2824
+ Object.assign(text.style, styles);
2825
+ text.textContent = element.textContent;
2826
+ };
2827
+ (0, react.useEffect)(() => {
2828
+ const container = containerRef.current;
2829
+ const filter = filterRef.current;
2830
+ const text = textRef.current;
2831
+ if (container === null || filter === null || text === null) return;
2832
+ container.dataset.theme = detectLightSurface(container) ? "light" : "dark";
2833
+ let disposed = false;
2834
+ const noise = (amount) => amount / 2 - Math.random() * amount;
2835
+ const getXY = (distance, pointIndex, totalPoints) => {
2836
+ const angle = (360 + noise(8)) / totalPoints * pointIndex * (Math.PI / 180);
2837
+ return [distance * Math.cos(angle), distance * Math.sin(angle)];
2838
+ };
2839
+ const makeParticles = (element) => {
2840
+ element.style.setProperty("--time", `1500ms`);
2841
+ for (let i = 0; i < PARTICLE_COUNT; i++) {
2842
+ const time = ANIMATION_TIME * 2 + noise(TIME_VARIANCE * 2);
2843
+ const rotateSeed = noise(PARTICLE_R / 10);
2844
+ const start = getXY(PARTICLE_DISTANCES[0], PARTICLE_COUNT - i, PARTICLE_COUNT);
2845
+ const end = getXY(PARTICLE_DISTANCES[1] + noise(7), PARTICLE_COUNT - i, PARTICLE_COUNT);
2846
+ const scale = 1 + noise(.2);
2847
+ const color = COLORS[Math.floor(Math.random() * COLORS.length)] ?? 1;
2848
+ const rotate = rotateSeed > 0 ? (rotateSeed + PARTICLE_R / 20) * 10 : (rotateSeed - PARTICLE_R / 20) * 10;
2849
+ const timer = window.setTimeout(() => {
2850
+ if (disposed) return;
2851
+ const particle = document.createElement("span");
2852
+ const point = document.createElement("span");
2853
+ particle.className = GooeyNav_module_css_default.particle;
2854
+ point.className = GooeyNav_module_css_default.point;
2855
+ particle.style.setProperty("--start-x", `${start[0]}px`);
2856
+ particle.style.setProperty("--start-y", `${start[1]}px`);
2857
+ particle.style.setProperty("--end-x", `${end[0]}px`);
2858
+ particle.style.setProperty("--end-y", `${end[1]}px`);
2859
+ particle.style.setProperty("--time", `${time}ms`);
2860
+ particle.style.setProperty("--scale", `${scale}`);
2861
+ particle.style.setProperty("--color", `var(--gooey-color-${color}, currentColor)`);
2862
+ particle.style.setProperty("--rotate", `${rotate}deg`);
2863
+ particle.appendChild(point);
2864
+ element.appendChild(particle);
2865
+ if (typeof window.requestAnimationFrame === "function") window.requestAnimationFrame(() => {
2866
+ element.classList.add(GooeyNav_module_css_default.active);
2867
+ });
2868
+ else element.classList.add(GooeyNav_module_css_default.active);
2869
+ const removeTimer = window.setTimeout(() => {
2870
+ particle.remove();
2871
+ }, time);
2872
+ timersRef.current.push(removeTimer);
2873
+ }, 30);
2874
+ timersRef.current.push(timer);
2875
+ }
2876
+ };
2877
+ burstRef.current = (li) => {
2878
+ updateEffectPosition(li);
2879
+ for (const particle of [...filter.querySelectorAll(`.${GooeyNav_module_css_default.particle}`)]) particle.remove();
2880
+ text.classList.remove(GooeyNav_module_css_default.active);
2881
+ text.offsetWidth;
2882
+ text.classList.add(GooeyNav_module_css_default.active);
2883
+ makeParticles(filter);
2884
+ };
2885
+ const positionActive = () => {
2886
+ const activeLi = navRef.current?.querySelectorAll("li")[activeIndexRef.current];
2887
+ if (activeLi) {
2888
+ updateEffectPosition(activeLi);
2889
+ text.classList.add(GooeyNav_module_css_default.active);
2890
+ }
2891
+ };
2892
+ positionActive();
2893
+ const observer = new ResizeObserver(positionActive);
2894
+ observer.observe(container);
2895
+ return () => {
2896
+ disposed = true;
2897
+ for (const timer of timersRef.current) window.clearTimeout(timer);
2898
+ timersRef.current = [];
2899
+ observer.disconnect();
2900
+ };
2901
+ }, []);
2902
+ (0, react.useEffect)(() => {
2903
+ const nav = navRef.current;
2904
+ const text = textRef.current;
2905
+ const activeLi = nav?.querySelectorAll("li")[activeIndex];
2906
+ if (activeLi) {
2907
+ updateEffectPosition(activeLi);
2908
+ text?.classList.add(GooeyNav_module_css_default.active);
2909
+ }
2910
+ }, [activeIndex]);
2911
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
2912
+ className: GooeyNav_module_css_default.container,
2913
+ ref: containerRef,
2914
+ children: [
2915
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
2916
+ className: GooeyNav_module_css_default.gooSvg,
2917
+ "aria-hidden": "true",
2918
+ focusable: "false",
2919
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("defs", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("filter", {
2920
+ id: "dsh-gooey-nav-goo",
2921
+ x: "-150%",
2922
+ y: "-150%",
2923
+ width: "400%",
2924
+ height: "400%",
2925
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("feGaussianBlur", {
2926
+ in: "SourceGraphic",
2927
+ stdDeviation: "6",
2928
+ result: "blur"
2929
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("feColorMatrix", {
2930
+ in: "blur",
2931
+ mode: "matrix",
2932
+ values: "1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 19 -9"
2933
+ })]
2934
+ }) })
2935
+ }),
2936
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("nav", {
2937
+ "aria-label": ariaLabel,
2938
+ role: "tablist",
2939
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
2940
+ ref: navRef,
2941
+ children: items.map((item, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", {
2942
+ className: activeIndex === index ? GooeyNav_module_css_default.active : void 0,
2943
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
2944
+ type: "button",
2945
+ role: "tab",
2946
+ "aria-selected": activeIndex === index,
2947
+ onClick: (event) => {
2948
+ if (index === activeIndex) return;
2949
+ const li = event.currentTarget.closest("li");
2950
+ if (li !== null) burstRef.current(li);
2951
+ onSelect(index);
2952
+ },
2953
+ children: item.label
2954
+ })
2955
+ }, item.key))
2956
+ })
2957
+ }),
2958
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
2959
+ className: `${GooeyNav_module_css_default.effect} ${GooeyNav_module_css_default.effectFilter}`,
2960
+ ref: filterRef
2961
+ }),
2962
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
2963
+ className: `${GooeyNav_module_css_default.effect} ${GooeyNav_module_css_default.effectText}`,
2964
+ ref: textRef
2965
+ })
2966
+ ]
2967
+ });
2968
+ }
2969
+ //#endregion
2702
2970
  //#region \0dsh-css:E:\dsh-plugin\src\client\inspiration.module.css.mjs
2703
2971
  const css$4 = ".IgRnJG_wrap{width:min(880px,100%);font-family:var(--dsw-font-family);flex-direction:column;align-items:center;gap:16px;margin:auto;padding:24px;display:flex}.IgRnJG_title{color:var(--dsw-alias-label-primary);font-size:15px;font-weight:650}.IgRnJG_emptyIcon{color:var(--dsw-alias-label-dimmed);display:inline-flex}.IgRnJG_emptyTitle{color:var(--dsw-alias-label-primary);margin-top:-6px;font-size:15px;font-weight:650}.IgRnJG_emptyHint{color:var(--dsw-alias-label-tertiary);font-size:12.5px}.IgRnJG_grid{grid-template-columns:repeat(4,1fr);gap:12px;width:100%;display:grid}@media (width<=900px){.IgRnJG_grid{grid-template-columns:repeat(3,1fr)}}@media (width<=560px){.IgRnJG_grid{grid-template-columns:repeat(2,1fr)}}.IgRnJG_tile{aspect-ratio:1;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);cursor:pointer;border-radius:12px;width:100%;padding:0;transition:transform .15s,border-color .15s,box-shadow .15s;display:block;position:relative;overflow:hidden}.IgRnJG_tile:hover{border-color:var(--dsw-alias-brand-primary);transform:translateY(-2px);box-shadow:0 6px 18px #0000001f}.IgRnJG_thumbWrap{display:block;position:absolute;inset:0}.IgRnJG_thumb{object-fit:cover;width:100%;height:100%;display:block}.IgRnJG_thumbFallback{background:var(--dsw-alias-bg-layer-2);width:100%;height:100%;color:var(--dsw-alias-label-tertiary);text-align:center;justify-content:center;align-items:center;padding:6px;font-size:11px;line-height:1.4;display:flex;overflow:hidden}.IgRnJG_thumbTitle{text-overflow:ellipsis;white-space:nowrap;color:#fff;text-align:center;opacity:0;pointer-events:none;background:linear-gradient(#0000,#0000008c);padding:14px 8px 6px;font-size:10.5px;transition:opacity .15s;position:absolute;inset:auto 0 0;overflow:hidden}.IgRnJG_tile:hover .IgRnJG_thumbTitle{opacity:1}.IgRnJG_spinner{border:2px solid var(--dsw-alias-border-l2);border-top-color:var(--dsw-alias-brand-primary);border-radius:50%;width:20px;height:20px;animation:.9s linear infinite IgRnJG_dsh-imagegen-inspiration-spin}@keyframes IgRnJG_dsh-imagegen-inspiration-spin{to{transform:rotate(360deg)}}@media (hover:none){.IgRnJG_thumbTitle{opacity:1}}";
2704
2972
  const tagId$4 = "@dickpy/dsh-imagegen/inspiration.module.css";
@@ -2711,18 +2979,18 @@ window.__ModuleLoader__.load({
2711
2979
  }
2712
2980
  var inspiration_module_css_default = {
2713
2981
  "emptyHint": "IgRnJG_emptyHint",
2982
+ "title": "IgRnJG_title",
2714
2983
  "emptyTitle": "IgRnJG_emptyTitle",
2715
2984
  "grid": "IgRnJG_grid",
2716
- "emptyIcon": "IgRnJG_emptyIcon",
2985
+ "thumbWrap": "IgRnJG_thumbWrap",
2717
2986
  "thumb": "IgRnJG_thumb",
2718
- "thumbFallback": "IgRnJG_thumbFallback",
2719
2987
  "spinner": "IgRnJG_spinner",
2988
+ "tile": "IgRnJG_tile",
2720
2989
  "dsh-imagegen-inspiration-spin": "IgRnJG_dsh-imagegen-inspiration-spin",
2721
- "thumbTitle": "IgRnJG_thumbTitle",
2722
- "thumbWrap": "IgRnJG_thumbWrap",
2723
- "title": "IgRnJG_title",
2724
2990
  "wrap": "IgRnJG_wrap",
2725
- "tile": "IgRnJG_tile"
2991
+ "emptyIcon": "IgRnJG_emptyIcon",
2992
+ "thumbFallback": "IgRnJG_thumbFallback",
2993
+ "thumbTitle": "IgRnJG_thumbTitle"
2726
2994
  };
2727
2995
  //#endregion
2728
2996
  //#region src/client/InspirationGallery.tsx
@@ -37993,7 +38261,7 @@ window.__ModuleLoader__.load({
37993
38261
  exports.Wallpaper = Wallpaper;
37994
38262
  exports.X = X;
37995
38263
  })))();
37996
- const css$3 = "._0yZr2a_root{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:100%;min-height:0;color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-family,inherit);user-select:none;border-radius:10px;flex-direction:column;flex:auto;display:flex;position:relative;overflow:hidden}._0yZr2a_selectCursor{cursor:default}._0yZr2a_panCursor{cursor:grab}._0yZr2a_panCursor:active{cursor:grabbing}._0yZr2a_topBar{border-bottom:1px solid var(--dsw-alias-border-l1);z-index:40;background:var(--dsw-alias-bg-layer-1);flex:none;align-items:center;gap:8px;padding:8px 12px;display:flex}._0yZr2a_projectSelect{border:1px solid var(--dsw-alias-border-l1);max-width:180px;height:30px;color:var(--dsw-alias-label-primary);background:0 0;border-radius:8px;padding:0 8px;font-size:12.5px}._0yZr2a_titleButton{height:30px;color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;cursor:text;background:0 0;border:1px solid #0000;border-radius:8px;max-width:260px;padding:0 10px;font-size:13px;font-weight:600;overflow:hidden}._0yZr2a_titleButton:hover{border-color:var(--dsw-alias-border-l1)}._0yZr2a_titleInput{border:1px solid var(--dsw-alias-brand-primary);height:30px;color:var(--dsw-alias-label-primary);background:0 0;border-radius:8px;outline:none;width:240px;padding:0 10px;font-size:13px;font-weight:600}._0yZr2a_topBarSpacer{flex:1}._0yZr2a_saveState{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:11.5px}._0yZr2a_saveState[data-state=error]{color:var(--dsw-alias-label-error)}._0yZr2a_saveState[data-state=saving]{color:var(--dsw-alias-state-warn-primary,var(--dsw-alias-label-secondary))}._0yZr2a_iconButton{width:30px;height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:none;justify-content:center;align-items:center;gap:5px;padding:0;display:inline-flex}._0yZr2a_iconButton:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._0yZr2a_iconButton[data-active]{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 16%, transparent);color:var(--dsw-alias-brand-primary)}._0yZr2a_iconButton:disabled{opacity:.35;cursor:not-allowed}._0yZr2a_iconButton:disabled:hover{color:var(--dsw-alias-label-secondary);background:0 0}._0yZr2a_viewport{touch-action:none;flex:1;min-height:0;position:relative;overflow:hidden}._0yZr2a_grid{pointer-events:none;opacity:.5;position:absolute;inset:0}._0yZr2a_flowCanvas,._0yZr2a_liquidCanvas,._0yZr2a_sceneCanvas{width:100%;height:100%;position:absolute;inset:0}._0yZr2a_grid[data-mode=flow],._0yZr2a_grid[data-mode=liquid],._0yZr2a_grid[data-mode=floatingLines],._0yZr2a_grid[data-mode=galaxy],._0yZr2a_grid[data-mode=silk],._0yZr2a_grid[data-mode=waves],._0yZr2a_grid[data-mode=faultyTerminal],._0yZr2a_grid[data-mode=dotField],._0yZr2a_grid[data-mode=dotGrid],._0yZr2a_grid[data-mode=shapeGrid]{opacity:1}._0yZr2a_grid[data-mode=dots]{background-image:radial-gradient(circle, color-mix(in srgb, var(--dsw-alias-label-primary) 30%, transparent) 1.1px, transparent 1.4px)}._0yZr2a_grid[data-mode=lines]{background-image:linear-gradient(color-mix(in srgb, var(--dsw-alias-label-primary) 9%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--dsw-alias-label-primary) 9%, transparent) 1px, transparent 1px)}._0yZr2a_grid[data-mode=blank],._0yZr2a_grid[data-mode=image]{background-image:none}._0yZr2a_gridScrim{background:var(--dsw-alias-bg-layer-1);opacity:.6;position:absolute;inset:0}._0yZr2a_backgroundMenu{z-index:45;border:1px solid var(--dsw-alias-border-l1);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 96%, transparent);border-radius:11px;flex-direction:column;min-width:168px;padding:5px;display:flex;position:absolute;transform:translate(-50%,-100%);box-shadow:0 16px 40px #0f172a33}._0yZr2a_backgroundMenu button{color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;justify-content:flex-start;align-items:center;padding:7px 10px;font-size:12.5px;display:flex}._0yZr2a_backgroundMenu button:hover{background:var(--dsw-alias-interactive-bg-hover)}._0yZr2a_backgroundMenu button[data-active]{color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 12%, transparent)}._0yZr2a_backgroundMenuDivider{background:var(--dsw-alias-border-l1);height:1px;margin:4px 6px}._0yZr2a_world{transform-origin:0 0;position:absolute;top:0;left:0}._0yZr2a_marquee{z-index:20;border:1px solid var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 8%, transparent);pointer-events:none;border-radius:4px;position:absolute}._0yZr2a_node{border:1.5px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);cursor:grab;touch-action:none;border-radius:14px;flex-direction:column;display:flex;position:absolute;overflow:visible;box-shadow:0 8px 24px #0f172a1f}._0yZr2a_node:active{cursor:grabbing}._0yZr2a_nodeGlow{pointer-events:none;opacity:0;border-radius:18px;transition:opacity .15s;position:absolute;inset:-6px}._0yZr2a_nodeSelected{border-color:var(--dsw-alias-brand-primary);z-index:2}._0yZr2a_nodeSelected ._0yZr2a_nodeGlow{opacity:1;box-shadow:0 0 0 3px color-mix(in srgb, var(--dsw-alias-brand-primary) 22%, transparent)}._0yZr2a_nodeRelated{border-color:color-mix(in srgb, var(--dsw-alias-brand-primary) 45%, transparent)}._0yZr2a_nodeConnectTarget{border-color:var(--dsw-alias-brand-primary);box-shadow:0 0 0 4px color-mix(in srgb, var(--dsw-alias-brand-primary) 26%, transparent)}._0yZr2a_nodeHeader{color:var(--dsw-alias-label-secondary);cursor:inherit;flex:none;align-items:center;gap:6px;padding:7px 12px 5px;font-size:11.5px;display:flex}._0yZr2a_nodeTitle{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}._0yZr2a_nodeSize{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;margin-left:auto;font-size:10.5px}._0yZr2a_nodeSpinner{border:1.5px solid color-mix(in srgb, var(--dsw-alias-brand-primary) 30%, transparent);border-top-color:var(--dsw-alias-brand-primary);border-radius:50%;flex:none;width:11px;height:11px;animation:.8s linear infinite _0yZr2a_canvasSpin}._0yZr2a_nodeBody{background:color-mix(in srgb, var(--dsw-alias-label-primary) 6%, transparent);pointer-events:none;border-radius:9px;flex:1;justify-content:center;align-items:center;min-height:0;margin:0 8px 8px;display:flex;overflow:hidden}._0yZr2a_nodeBody img{object-fit:contain;width:100%;height:100%;display:block}._0yZr2a_imageInfo{z-index:2;background:color-mix(in srgb, var(--dsw-alias-label-primary) 62%, transparent);color:var(--dsw-alias-bg-layer-1);pointer-events:none;backdrop-filter:blur(3px);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;max-width:calc(100% - 90px);padding:3px 8px;font-size:10.5px;line-height:1.4;position:absolute;top:6px;overflow:hidden}._0yZr2a_imageInfoLeft{font-weight:600;left:6px}._0yZr2a_imageInfoRight{font-variant-numeric:tabular-nums;opacity:.85;left:auto;right:6px}._0yZr2a_nodeState,._0yZr2a_nodeStateError{color:var(--dsw-alias-label-secondary);text-align:center;pointer-events:auto;flex-direction:column;align-items:center;gap:8px;padding:12px;font-size:12px;display:flex}._0yZr2a_nodeStateError{color:var(--dsw-alias-label-error)}._0yZr2a_nodeStateError button{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:7px;padding:4px 12px;font-size:12px}._0yZr2a_nodeEmpty{border:1.5px dashed color-mix(in srgb, var(--dsw-alias-label-primary) 24%, transparent);color:var(--dsw-alias-label-tertiary);cursor:pointer;pointer-events:auto;background:0 0;border-radius:9px;flex-direction:column;align-items:center;gap:8px;margin:6px;padding:14px;font-size:12px;display:flex}._0yZr2a_nodeEmpty:hover{border-color:var(--dsw-alias-brand-primary);color:var(--dsw-alias-brand-primary)}._0yZr2a_textNode{cursor:default}._0yZr2a_imageNode ._0yZr2a_nodeBody{margin:6px}._0yZr2a_textArea{resize:none;min-height:0;color:var(--dsw-alias-label-primary);cursor:text;pointer-events:auto;background:0 0;border:none;outline:none;flex:1;margin:0 8px 8px;padding:4px 6px;font-size:13px;line-height:1.55}._0yZr2a_textArea::placeholder{color:var(--dsw-alias-label-tertiary)}._0yZr2a_dock{z-index:30;border:1px solid var(--dsw-alias-border-l1);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 92%, transparent);backdrop-filter:blur(10px);border-radius:13px;align-items:center;gap:2px;padding:6px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0f172a24}._0yZr2a_dock ._0yZr2a_iconButton{width:40px;height:40px;transform:translateY(var(--dock-lift,0px)) scale(var(--dock-scale,1));transform-origin:50% 100%;border-radius:11px;transition:transform .16s cubic-bezier(.33,1,.68,1),background .15s,color .15s,box-shadow .18s;position:relative}._0yZr2a_dock ._0yZr2a_iconButton:not(:disabled):hover{z-index:2;box-shadow:0 6px 14px color-mix(in srgb, var(--dsw-alias-label-primary) 20%, transparent)}._0yZr2a_dock ._0yZr2a_iconButton:not(:disabled):active{transform:translateY(var(--dock-lift,0px)) scale(.94)}._0yZr2a_dock ._0yZr2a_iconButton[data-active],._0yZr2a_dock ._0yZr2a_iconButton[data-active]:hover{background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-layer-1)}._0yZr2a_dockDivider{background:var(--dsw-alias-border-l1);width:1px;height:18px;margin:0 4px}._0yZr2a_composer{z-index:35;border:1px solid var(--dsw-alias-border-l1);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 96%, transparent);backdrop-filter:blur(10px);border-radius:14px;flex-direction:column;gap:8px;width:560px;padding:10px;display:flex;position:absolute;box-shadow:0 16px 44px #0f172a2e}._0yZr2a_composerPrompt{resize:none;width:100%;min-height:38px;max-height:120px;color:var(--dsw-alias-label-primary);cursor:text;background:0 0;border:none;outline:none;padding:2px 4px;font-size:13px;line-height:1.5}._0yZr2a_composerPrompt::placeholder{color:var(--dsw-alias-label-tertiary)}._0yZr2a_composerMeta{display:flex}._0yZr2a_composerChip{border:1px solid color-mix(in srgb, var(--dsw-alias-brand-primary) 45%, transparent);color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 8%, transparent);border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:11px;display:inline-flex}._0yZr2a_composerControls{align-items:center;gap:6px;display:flex}._0yZr2a_composerControls select{border:1px solid var(--dsw-alias-border-l1);height:28px;color:var(--dsw-alias-label-primary);background:0 0;border-radius:999px;min-width:0;max-width:128px;padding:0 8px;font-size:11.5px}._0yZr2a_composerSelect{border:1px solid var(--dsw-alias-border-l1);height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;min-width:0;max-width:138px;padding:0 8px 0 11px;font-size:11.5px;transition:background .15s,border-color .15s;display:inline-flex}._0yZr2a_composerSelect:hover{background:var(--dsw-alias-interactive-bg-hover)}._0yZr2a_composerSelect[data-open]{border-color:var(--dsw-alias-brand-primary);color:var(--dsw-alias-brand-primary)}._0yZr2a_composerSelect svg{opacity:.65;flex:none}._0yZr2a_composerSelect[data-open] svg{opacity:.9}._0yZr2a_composerSelectValue{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._0yZr2a_composerSelectMenu{z-index:95;border:1px solid var(--dsw-alias-border-l1);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 97%, transparent);backdrop-filter:blur(10px);border-radius:11px;max-height:264px;padding:5px;position:fixed;overflow:auto;box-shadow:0 14px 38px #0f172a2e}._0yZr2a_composerSelectMenu button{width:100%;color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:7px;padding:7px 10px;font-size:12.5px;line-height:1.45;display:block}._0yZr2a_composerSelectMenu button:hover{background:var(--dsw-alias-interactive-bg-hover)}._0yZr2a_composerSelectMenu button[data-selected]{color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 12%, transparent)}._0yZr2a_composerSend{background:var(--dsw-alias-label-primary);width:34px;height:34px;color:var(--dsw-alias-bg-layer-1);cursor:pointer;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;margin-left:auto;display:inline-flex}._0yZr2a_composerSend:hover{opacity:.88}._0yZr2a_composerSend:disabled{opacity:.35;cursor:not-allowed}._0yZr2a_configNode{cursor:grab;padding:0 14px 14px}._0yZr2a_configNode ._0yZr2a_nodeHeader{padding:10px 2px 6px;font-size:12px}._0yZr2a_configLinks{flex:none;align-items:center;margin:4px 0 10px;display:flex}._0yZr2a_configLinks ._0yZr2a_composerChip{padding:3px 10px;font-size:11px}._0yZr2a_configHint{min-height:0;color:var(--dsw-alias-label-tertiary);flex:1;margin:0;font-size:11.5px;line-height:1.7;overflow:auto}._0yZr2a_handle{background:var(--dsw-alias-bg-layer-1);border:2px solid var(--dsw-alias-brand-primary);opacity:0;cursor:crosshair;z-index:3;border-radius:50%;width:12px;height:12px;transition:opacity .12s,transform .12s;position:absolute;top:50%;transform:translateY(-50%)scale(.6)}._0yZr2a_handleLeft{left:-7px}._0yZr2a_handleRight{right:-7px}._0yZr2a_node:hover ._0yZr2a_handle,._0yZr2a_nodeSelected ._0yZr2a_handle,._0yZr2a_nodeConnectTarget ._0yZr2a_handle{opacity:1;transform:translateY(-50%)scale(1)}._0yZr2a_handle:hover{background:var(--dsw-alias-brand-primary)}._0yZr2a_handleRight{width:20px;height:20px;color:var(--dsw-alias-brand-primary);justify-content:center;align-items:center;font-size:13px;font-weight:600;line-height:1;display:flex;right:-10px}._0yZr2a_handleRight:after{content:\"+\"}._0yZr2a_handleRight:hover{color:var(--dsw-alias-bg-layer-1);transform:translateY(-50%)scale(1.12)}._0yZr2a_resizeHandle{background:var(--dsw-alias-brand-primary);border:2px solid var(--dsw-alias-bg-layer-1);cursor:nwse-resize;z-index:3;border-radius:4px;width:14px;height:14px;position:absolute;bottom:-5px;right:-5px}._0yZr2a_hoverToolbar{border:1px solid var(--dsw-alias-border-l1);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 92%, transparent);opacity:0;pointer-events:none;z-index:4;border-radius:10px;gap:2px;padding:4px;transition:opacity .12s;display:flex;position:absolute;top:-36px;left:50%;transform:translate(-50%);box-shadow:0 8px 22px #0f172a24}._0yZr2a_node:hover ._0yZr2a_hoverToolbar,._0yZr2a_nodeSelected ._0yZr2a_hoverToolbar{opacity:1;pointer-events:auto}._0yZr2a_connectionLayer{pointer-events:none;z-index:0;position:absolute;overflow:visible}._0yZr2a_connectionPath{fill:none;stroke-width:1.8px;stroke-opacity:.9;pointer-events:none}._0yZr2a_connectionActive{stroke-width:2.6px;stroke-opacity:1;filter:drop-shadow(0 0 6px color-mix(in srgb, var(--dsw-alias-brand-primary) 45%, transparent))}._0yZr2a_connectionPreview{fill:none;stroke:var(--dsw-alias-brand-primary);stroke-width:2px;stroke-dasharray:5 5;pointer-events:none}._0yZr2a_connectionFlow{fill:none;stroke:var(--dsw-alias-brand-primary);stroke-width:2px;stroke-linecap:round;stroke-dasharray:30 90;opacity:.4;pointer-events:none;animation:1.6s linear infinite _0yZr2a_connectionFlow}._0yZr2a_connectionFlowActive{stroke:var(--dsw-alias-brand-primary);opacity:.85}@keyframes _0yZr2a_connectionFlow{to{stroke-dashoffset:-120px}}@media (prefers-reduced-motion:reduce){._0yZr2a_connectionFlow{opacity:.35;animation:none}}._0yZr2a_emptyHint{text-align:center;color:var(--dsw-alias-label-tertiary);pointer-events:none;z-index:5;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}._0yZr2a_emptyHint strong{color:var(--dsw-alias-label-secondary);font-size:16px}._0yZr2a_emptyHint span{max-width:320px;font-size:12.5px;line-height:1.6}._0yZr2a_zoomDock{z-index:30;border:1px solid var(--dsw-alias-border-l1);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 88%, transparent);backdrop-filter:blur(10px);border-radius:12px;align-items:center;gap:6px;padding:6px 8px;display:flex;position:absolute;bottom:14px;left:14px;box-shadow:0 10px 30px #0f172a1f}._0yZr2a_zoomDock input[type=range]{width:96px;accent-color:var(--dsw-alias-brand-primary)}._0yZr2a_zoomValue{text-align:right;width:40px;color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;font-size:11.5px}._0yZr2a_minimap{z-index:30;border:1px solid var(--dsw-alias-border-l1);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 88%, transparent);backdrop-filter:blur(10px);border-radius:12px;width:220px;height:150px;position:absolute;bottom:62px;left:14px;overflow:hidden;box-shadow:0 10px 30px #0f172a1f}._0yZr2a_minimapCanvas{cursor:crosshair;width:100%;height:100%;position:relative}._0yZr2a_minimapNode{opacity:.8;border-radius:2px;position:absolute}._0yZr2a_minimapImage{background:var(--dsw-alias-brand-primary)}._0yZr2a_minimapText{background:color-mix(in srgb, var(--dsw-alias-label-primary) 40%, transparent)}._0yZr2a_minimapSelected{outline:1.5px solid var(--dsw-alias-brand-primary)}._0yZr2a_minimapViewport{border:1.5px solid var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 10%, transparent);pointer-events:none;border-radius:2px;position:absolute}._0yZr2a_inspectorRow{gap:8px;display:flex}._0yZr2a_inspectorRow>*{flex:1;min-width:0}._0yZr2a_contextMenu{z-index:90;border:1px solid var(--dsw-alias-border-l1);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 96%, transparent);border-radius:11px;flex-direction:column;min-width:176px;padding:5px;display:flex;position:fixed;box-shadow:0 16px 40px #0f172a33}._0yZr2a_contextMenu button{color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;align-items:center;gap:8px;padding:7px 10px;font-size:12.5px;display:flex}._0yZr2a_contextMenu button:hover{background:var(--dsw-alias-interactive-bg-hover)}._0yZr2a_contextMenu button[data-danger]{color:var(--dsw-alias-label-error)}._0yZr2a_errorToast{z-index:60;border:1px solid color-mix(in srgb, var(--dsw-alias-label-error) 35%, transparent);background:color-mix(in srgb, var(--dsw-alias-label-error) 12%, var(--dsw-alias-bg-layer-1));max-width:min(560px,80%);color:var(--dsw-alias-label-error);border-radius:10px;align-items:center;gap:10px;padding:9px 12px;font-size:12.5px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #0f172a2e}._0yZr2a_errorToast button{color:inherit;cursor:pointer;background:0 0;border:none;flex:none;padding:2px;display:inline-flex}._0yZr2a_modalBackdrop{z-index:70;background:color-mix(in srgb, var(--dsw-alias-label-primary) 32%, transparent);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._0yZr2a_picker{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:14px;flex-direction:column;width:min(720px,92%);max-height:84%;display:flex;overflow:hidden;box-shadow:0 24px 60px #0f172a42}._0yZr2a_pickerHeader{border-bottom:1px solid var(--dsw-alias-border-l1);justify-content:space-between;align-items:center;padding:12px 14px;font-size:14px;display:flex}._0yZr2a_pickerHeader button{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px}._0yZr2a_pickerTabs{gap:4px;padding:10px 14px 0;display:flex}._0yZr2a_pickerTabs button{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px 8px 0 0;padding:7px 12px;font-size:12.5px}._0yZr2a_pickerTabs button[data-active]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-brand-primary)}._0yZr2a_pickerBody{flex:1;min-height:0;padding:14px;overflow:auto}._0yZr2a_pickerGrid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}._0yZr2a_pickerCard{border:1.5px solid var(--dsw-alias-border-l1);cursor:pointer;text-align:left;color:var(--dsw-alias-label-primary);background:0 0;border-radius:10px;flex-direction:column;gap:6px;padding:6px;display:flex}._0yZr2a_pickerCard[data-selected]{border-color:var(--dsw-alias-brand-primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--dsw-alias-brand-primary) 25%, transparent)}._0yZr2a_pickerCard img{object-fit:cover;border-radius:7px;width:100%;height:110px}._0yZr2a_pickerCardPrompt{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}._0yZr2a_pickerCard small{color:var(--dsw-alias-label-tertiary);font-size:10.5px}._0yZr2a_pickerFooter{color:var(--dsw-alias-label-secondary);justify-content:space-between;align-items:center;padding-top:12px;font-size:12.5px;display:flex}._0yZr2a_pickerFooter button,._0yZr2a_generateForm button{background:var(--dsw-alias-brand-primary);height:32px;color:var(--dsw-alias-bg-base,#fff);cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:0 16px;font-size:12.5px;font-weight:600;display:inline-flex}._0yZr2a_pickerFooter button:disabled,._0yZr2a_generateForm button:disabled{opacity:.45;cursor:not-allowed}._0yZr2a_uploadBox{border:1.5px dashed color-mix(in srgb, var(--dsw-alias-label-primary) 22%, transparent);min-height:220px;color:var(--dsw-alias-label-secondary);cursor:pointer;text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}._0yZr2a_uploadBox:hover{border-color:var(--dsw-alias-brand-primary)}._0yZr2a_uploadBox input{display:none}._0yZr2a_uploadBox small{color:var(--dsw-alias-label-tertiary);font-size:11px}._0yZr2a_uploadIcon{color:var(--dsw-alias-brand-primary)}._0yZr2a_generateForm{flex-direction:column;gap:10px;display:flex}._0yZr2a_generateForm textarea{resize:vertical;border:1px solid var(--dsw-alias-border-l1);min-height:110px;color:var(--dsw-alias-label-primary);background:0 0;border-radius:9px;outline:none;padding:8px 10px;font-size:12.5px}._0yZr2a_generateForm select{border:1px solid var(--dsw-alias-border-l1);height:30px;color:var(--dsw-alias-label-primary);background:0 0;border-radius:8px;padding:0 8px;font-size:12.5px}@keyframes _0yZr2a_canvasSpin{to{transform:rotate(360deg)}}";
38264
+ const css$3 = "._0yZr2a_root{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:100%;min-height:0;color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-family,inherit);user-select:none;border-radius:10px;flex-direction:column;flex:auto;display:flex;position:relative;overflow:hidden}._0yZr2a_selectCursor{cursor:default}._0yZr2a_panCursor{cursor:grab}._0yZr2a_panCursor:active{cursor:grabbing}._0yZr2a_topBar{border-bottom:1px solid var(--dsw-alias-border-l1);z-index:40;background:var(--dsw-alias-bg-layer-1);flex:none;align-items:center;gap:8px;padding:8px 12px;display:flex}._0yZr2a_projectSelect{border:1px solid var(--dsw-alias-border-l1);max-width:180px;height:30px;color:var(--dsw-alias-label-primary);background:0 0;border-radius:8px;padding:0 8px;font-size:12.5px}._0yZr2a_titleButton{height:30px;color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;cursor:text;background:0 0;border:1px solid #0000;border-radius:8px;max-width:260px;padding:0 10px;font-size:13px;font-weight:600;overflow:hidden}._0yZr2a_titleButton:hover{border-color:var(--dsw-alias-border-l1)}._0yZr2a_titleInput{border:1px solid var(--dsw-alias-brand-primary);height:30px;color:var(--dsw-alias-label-primary);background:0 0;border-radius:8px;outline:none;width:240px;padding:0 10px;font-size:13px;font-weight:600}._0yZr2a_topBarSpacer{flex:1}._0yZr2a_saveState{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:11.5px}._0yZr2a_saveState[data-state=error]{color:var(--dsw-alias-label-error)}._0yZr2a_saveState[data-state=saving]{color:var(--dsw-alias-state-warn-primary,var(--dsw-alias-label-secondary))}._0yZr2a_iconButton{width:30px;height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:none;justify-content:center;align-items:center;gap:5px;padding:0;display:inline-flex}._0yZr2a_iconButton:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._0yZr2a_iconButton[data-active]{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 16%, transparent);color:var(--dsw-alias-brand-primary)}._0yZr2a_iconButton:disabled{opacity:.35;cursor:not-allowed}._0yZr2a_iconButton:disabled:hover{color:var(--dsw-alias-label-secondary);background:0 0}._0yZr2a_viewport{touch-action:none;flex:1;min-height:0;position:relative;overflow:hidden}._0yZr2a_grid{pointer-events:none;opacity:.5;position:absolute;inset:0}._0yZr2a_flowCanvas,._0yZr2a_liquidCanvas,._0yZr2a_sceneCanvas{width:100%;height:100%;position:absolute;inset:0}._0yZr2a_grid[data-mode=flow],._0yZr2a_grid[data-mode=liquid],._0yZr2a_grid[data-mode=floatingLines],._0yZr2a_grid[data-mode=galaxy],._0yZr2a_grid[data-mode=silk],._0yZr2a_grid[data-mode=waves],._0yZr2a_grid[data-mode=faultyTerminal],._0yZr2a_grid[data-mode=dotField],._0yZr2a_grid[data-mode=dotGrid],._0yZr2a_grid[data-mode=shapeGrid]{opacity:1}._0yZr2a_grid[data-mode=dots]{background-image:radial-gradient(circle, color-mix(in srgb, var(--dsw-alias-label-primary) 30%, transparent) 1.1px, transparent 1.4px)}._0yZr2a_grid[data-mode=lines]{background-image:linear-gradient(color-mix(in srgb, var(--dsw-alias-label-primary) 9%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--dsw-alias-label-primary) 9%, transparent) 1px, transparent 1px)}._0yZr2a_grid[data-mode=blank],._0yZr2a_grid[data-mode=image]{background-image:none}._0yZr2a_gridScrim{background:var(--dsw-alias-bg-layer-1);opacity:.6;position:absolute;inset:0}._0yZr2a_backgroundMenu{z-index:45;border:1px solid var(--dsw-alias-border-l1);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 96%, transparent);border-radius:11px;flex-direction:column;min-width:168px;padding:5px;display:flex;position:absolute;transform:translate(-50%,-100%);box-shadow:0 16px 40px #0f172a33}._0yZr2a_backgroundMenu button{color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;justify-content:flex-start;align-items:center;padding:7px 10px;font-size:12.5px;display:flex}._0yZr2a_backgroundMenu button:hover{background:var(--dsw-alias-interactive-bg-hover)}._0yZr2a_backgroundMenu button[data-active]{color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 12%, transparent)}._0yZr2a_backgroundMenuDivider{background:var(--dsw-alias-border-l1);height:1px;margin:4px 6px}._0yZr2a_world{transform-origin:0 0;position:absolute;top:0;left:0}._0yZr2a_marquee{z-index:20;border:1px solid var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 8%, transparent);pointer-events:none;border-radius:4px;position:absolute}._0yZr2a_node{border:1.5px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);cursor:grab;touch-action:none;border-radius:14px;flex-direction:column;display:flex;position:absolute;overflow:visible;box-shadow:0 8px 24px #0f172a1f}._0yZr2a_node:active{cursor:grabbing}._0yZr2a_nodeGlow{pointer-events:none;opacity:0;border-radius:18px;transition:opacity .15s;position:absolute;inset:-6px}._0yZr2a_nodeSelected{border-color:var(--dsw-alias-brand-primary);z-index:2}._0yZr2a_nodeSelected ._0yZr2a_nodeGlow{opacity:1;box-shadow:0 0 0 3px color-mix(in srgb, var(--dsw-alias-brand-primary) 22%, transparent)}._0yZr2a_nodeRelated{border-color:color-mix(in srgb, var(--dsw-alias-brand-primary) 45%, transparent)}._0yZr2a_nodeConnectTarget{border-color:var(--dsw-alias-brand-primary);box-shadow:0 0 0 4px color-mix(in srgb, var(--dsw-alias-brand-primary) 26%, transparent)}._0yZr2a_nodeHeader{color:var(--dsw-alias-label-secondary);cursor:inherit;flex:none;align-items:center;gap:6px;padding:7px 12px 5px;font-size:11.5px;display:flex}._0yZr2a_nodeTitle{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}._0yZr2a_nodeSize{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;margin-left:auto;font-size:10.5px}._0yZr2a_nodeSpinner{border:1.5px solid color-mix(in srgb, var(--dsw-alias-brand-primary) 30%, transparent);border-top-color:var(--dsw-alias-brand-primary);border-radius:50%;flex:none;width:11px;height:11px;animation:.8s linear infinite _0yZr2a_canvasSpin}._0yZr2a_nodeBody{background:color-mix(in srgb, var(--dsw-alias-label-primary) 6%, transparent);pointer-events:none;border-radius:9px;flex:1;justify-content:center;align-items:center;min-height:0;margin:0 8px 8px;display:flex;overflow:hidden}._0yZr2a_nodeBody img{object-fit:contain;width:100%;height:100%;display:block}._0yZr2a_imageInfo{z-index:2;background:color-mix(in srgb, var(--dsw-alias-label-primary) 62%, transparent);color:var(--dsw-alias-bg-layer-1);pointer-events:none;backdrop-filter:blur(3px);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;max-width:calc(100% - 90px);padding:3px 8px;font-size:10.5px;line-height:1.4;position:absolute;top:6px;overflow:hidden}._0yZr2a_imageInfoLeft{font-weight:600;left:6px}._0yZr2a_imageInfoRight{font-variant-numeric:tabular-nums;opacity:.85;left:auto;right:6px}._0yZr2a_nodeState,._0yZr2a_nodeStateError{color:var(--dsw-alias-label-secondary);text-align:center;pointer-events:auto;flex-direction:column;align-items:center;gap:8px;padding:12px;font-size:12px;display:flex}._0yZr2a_nodeStateError{color:var(--dsw-alias-label-error)}._0yZr2a_nodeStateError button{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:7px;padding:4px 12px;font-size:12px}._0yZr2a_nodeEmpty{border:1.5px dashed color-mix(in srgb, var(--dsw-alias-label-primary) 24%, transparent);color:var(--dsw-alias-label-tertiary);cursor:pointer;pointer-events:auto;background:0 0;border-radius:9px;flex-direction:column;align-items:center;gap:8px;margin:6px;padding:14px;font-size:12px;display:flex}._0yZr2a_nodeEmpty:hover{border-color:var(--dsw-alias-brand-primary);color:var(--dsw-alias-brand-primary)}._0yZr2a_textNode{cursor:default}._0yZr2a_imageNode ._0yZr2a_nodeBody{margin:6px}._0yZr2a_textArea{resize:none;min-height:0;color:var(--dsw-alias-label-primary);cursor:text;pointer-events:auto;background:0 0;border:none;outline:none;flex:1;margin:0 8px 8px;padding:4px 6px;font-size:13px;line-height:1.55}._0yZr2a_textArea::placeholder{color:var(--dsw-alias-label-tertiary)}._0yZr2a_dockOuter{z-index:30;pointer-events:none;justify-content:center;align-items:flex-end;height:42px;display:flex;position:absolute;bottom:14px;left:0;right:0}._0yZr2a_dock{pointer-events:auto;border:1px solid var(--dsw-alias-border-l1);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 92%, transparent);backdrop-filter:blur(10px);border-radius:15px;align-items:flex-end;gap:6px;padding:0 7px 7px;display:flex;position:relative;box-shadow:0 14px 34px #0f172a29}._0yZr2a_dockItem{cursor:pointer;border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex;position:relative}._0yZr2a_dockItem:hover{background:var(--dsw-alias-interactive-bg-hover)}._0yZr2a_dockItem:after{content:attr(data-label);border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);white-space:nowrap;opacity:0;pointer-events:none;border-radius:6px;padding:2px 8px;font-size:11px;line-height:16px;transition:opacity .15s;position:absolute;top:-26px;left:50%;transform:translate(-50%)}._0yZr2a_dockItem:hover:after{opacity:1}._0yZr2a_dock ._0yZr2a_iconButton{border-radius:10px;width:100%;height:100%}._0yZr2a_dock ._0yZr2a_iconButton:not(:disabled):hover{background:0 0}._0yZr2a_dock ._0yZr2a_iconButton[data-active],._0yZr2a_dock ._0yZr2a_iconButton[data-active]:hover{background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-layer-1)}._0yZr2a_dock ._0yZr2a_iconButton:disabled{opacity:.3;cursor:not-allowed}._0yZr2a_dock ._0yZr2a_iconButton:disabled:hover{color:var(--dsw-alias-label-secondary);background:0 0}._0yZr2a_dockDivider{background:var(--dsw-alias-border-l1);align-self:center;width:1px;height:18px}._0yZr2a_composer{z-index:35;border:1px solid var(--dsw-alias-border-l1);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 96%, transparent);backdrop-filter:blur(10px);border-radius:14px;flex-direction:column;gap:8px;width:560px;padding:10px;display:flex;position:absolute;box-shadow:0 16px 44px #0f172a2e}._0yZr2a_composerPrompt{resize:none;width:100%;min-height:38px;max-height:120px;color:var(--dsw-alias-label-primary);cursor:text;background:0 0;border:none;outline:none;padding:2px 4px;font-size:13px;line-height:1.5}._0yZr2a_composerPrompt::placeholder{color:var(--dsw-alias-label-tertiary)}._0yZr2a_composerMeta{display:flex}._0yZr2a_composerChip{border:1px solid color-mix(in srgb, var(--dsw-alias-brand-primary) 45%, transparent);color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 8%, transparent);border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:11px;display:inline-flex}._0yZr2a_composerControls{align-items:center;gap:6px;display:flex}._0yZr2a_composerControls select{border:1px solid var(--dsw-alias-border-l1);height:28px;color:var(--dsw-alias-label-primary);background:0 0;border-radius:999px;min-width:0;max-width:128px;padding:0 8px;font-size:11.5px}._0yZr2a_composerSelect{border:1px solid var(--dsw-alias-border-l1);height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;min-width:0;max-width:138px;padding:0 8px 0 11px;font-size:11.5px;transition:background .15s,border-color .15s;display:inline-flex}._0yZr2a_composerSelect:hover{background:var(--dsw-alias-interactive-bg-hover)}._0yZr2a_composerSelect[data-open]{border-color:var(--dsw-alias-brand-primary);color:var(--dsw-alias-brand-primary)}._0yZr2a_composerSelect svg{opacity:.65;flex:none}._0yZr2a_composerSelect[data-open] svg{opacity:.9}._0yZr2a_composerSelectValue{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._0yZr2a_composerSelectMenu{z-index:95;border:1px solid var(--dsw-alias-border-l1);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 97%, transparent);backdrop-filter:blur(10px);border-radius:11px;max-height:264px;padding:5px;position:fixed;overflow:auto;box-shadow:0 14px 38px #0f172a2e}._0yZr2a_composerSelectMenu button{width:100%;color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:7px;padding:7px 10px;font-size:12.5px;line-height:1.45;display:block}._0yZr2a_composerSelectMenu button:hover{background:var(--dsw-alias-interactive-bg-hover)}._0yZr2a_composerSelectMenu button[data-selected]{color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 12%, transparent)}._0yZr2a_composerSend{background:var(--dsw-alias-label-primary);width:34px;height:34px;color:var(--dsw-alias-bg-layer-1);cursor:pointer;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;margin-left:auto;display:inline-flex}._0yZr2a_composerSend:hover{opacity:.88}._0yZr2a_composerSend:disabled{opacity:.35;cursor:not-allowed}._0yZr2a_configNode{cursor:grab;padding:0 14px 14px}._0yZr2a_configNode ._0yZr2a_nodeHeader{padding:10px 2px 6px;font-size:12px}._0yZr2a_configLinks{flex:none;align-items:center;margin:4px 0 10px;display:flex}._0yZr2a_configLinks ._0yZr2a_composerChip{padding:3px 10px;font-size:11px}._0yZr2a_configHint{min-height:0;color:var(--dsw-alias-label-tertiary);flex:1;margin:0;font-size:11.5px;line-height:1.7;overflow:auto}._0yZr2a_handle{background:var(--dsw-alias-bg-layer-1);border:2px solid var(--dsw-alias-brand-primary);opacity:0;cursor:crosshair;z-index:3;border-radius:50%;width:12px;height:12px;transition:opacity .12s,transform .12s;position:absolute;top:50%;transform:translateY(-50%)scale(.6)}._0yZr2a_handleLeft{left:-7px}._0yZr2a_handleRight{right:-7px}._0yZr2a_node:hover ._0yZr2a_handle,._0yZr2a_nodeSelected ._0yZr2a_handle,._0yZr2a_nodeConnectTarget ._0yZr2a_handle{opacity:1;transform:translateY(-50%)scale(1)}._0yZr2a_handle:hover{background:var(--dsw-alias-brand-primary)}._0yZr2a_handleRight{width:20px;height:20px;color:var(--dsw-alias-brand-primary);justify-content:center;align-items:center;font-size:13px;font-weight:600;line-height:1;display:flex;right:-10px}._0yZr2a_handleRight:after{content:\"+\"}._0yZr2a_handleRight:hover{color:var(--dsw-alias-bg-layer-1);transform:translateY(-50%)scale(1.12)}._0yZr2a_resizeHandle{background:var(--dsw-alias-brand-primary);border:2px solid var(--dsw-alias-bg-layer-1);cursor:nwse-resize;z-index:3;border-radius:4px;width:14px;height:14px;position:absolute;bottom:-5px;right:-5px}._0yZr2a_hoverToolbar{border:1px solid var(--dsw-alias-border-l1);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 92%, transparent);opacity:0;pointer-events:none;z-index:4;border-radius:10px;gap:2px;padding:4px;transition:opacity .12s;display:flex;position:absolute;top:-36px;left:50%;transform:translate(-50%);box-shadow:0 8px 22px #0f172a24}._0yZr2a_node:hover ._0yZr2a_hoverToolbar,._0yZr2a_nodeSelected ._0yZr2a_hoverToolbar{opacity:1;pointer-events:auto}._0yZr2a_connectionLayer{pointer-events:none;z-index:0;position:absolute;overflow:visible}._0yZr2a_connectionPath{fill:none;stroke-width:1.8px;stroke-opacity:.9;pointer-events:none}._0yZr2a_connectionActive{stroke-width:2.6px;stroke-opacity:1;filter:drop-shadow(0 0 6px color-mix(in srgb, var(--dsw-alias-brand-primary) 45%, transparent))}._0yZr2a_connectionPreview{fill:none;stroke:var(--dsw-alias-brand-primary);stroke-width:2px;stroke-dasharray:5 5;pointer-events:none}._0yZr2a_connectionFlow{fill:none;stroke:var(--dsw-alias-brand-primary);stroke-width:2px;stroke-linecap:round;stroke-dasharray:30 90;opacity:.4;pointer-events:none;animation:1.6s linear infinite _0yZr2a_connectionFlow}._0yZr2a_connectionFlowActive{stroke:var(--dsw-alias-brand-primary);opacity:.85}@keyframes _0yZr2a_connectionFlow{to{stroke-dashoffset:-120px}}@media (prefers-reduced-motion:reduce){._0yZr2a_connectionFlow{opacity:.35;animation:none}}._0yZr2a_emptyHint{text-align:center;color:var(--dsw-alias-label-tertiary);pointer-events:none;z-index:5;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}._0yZr2a_emptyHint strong{color:var(--dsw-alias-label-secondary);font-size:16px}._0yZr2a_emptyHint span{max-width:320px;font-size:12.5px;line-height:1.6}._0yZr2a_zoomDock{z-index:30;border:1px solid var(--dsw-alias-border-l1);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 88%, transparent);backdrop-filter:blur(10px);border-radius:12px;align-items:center;gap:6px;padding:6px 8px;display:flex;position:absolute;bottom:14px;left:14px;box-shadow:0 10px 30px #0f172a1f}._0yZr2a_zoomDock input[type=range]{width:96px;accent-color:var(--dsw-alias-brand-primary)}._0yZr2a_zoomValue{text-align:right;width:40px;color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;font-size:11.5px}._0yZr2a_minimap{z-index:30;border:1px solid var(--dsw-alias-border-l1);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 88%, transparent);backdrop-filter:blur(10px);border-radius:12px;width:220px;height:150px;position:absolute;bottom:62px;left:14px;overflow:hidden;box-shadow:0 10px 30px #0f172a1f}._0yZr2a_minimapCanvas{cursor:crosshair;width:100%;height:100%;position:relative}._0yZr2a_minimapNode{opacity:.8;border-radius:2px;position:absolute}._0yZr2a_minimapImage{background:var(--dsw-alias-brand-primary)}._0yZr2a_minimapText{background:color-mix(in srgb, var(--dsw-alias-label-primary) 40%, transparent)}._0yZr2a_minimapSelected{outline:1.5px solid var(--dsw-alias-brand-primary)}._0yZr2a_minimapViewport{border:1.5px solid var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 10%, transparent);pointer-events:none;border-radius:2px;position:absolute}._0yZr2a_inspectorRow{gap:8px;display:flex}._0yZr2a_inspectorRow>*{flex:1;min-width:0}._0yZr2a_contextMenu{z-index:90;border:1px solid var(--dsw-alias-border-l1);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 96%, transparent);border-radius:11px;flex-direction:column;min-width:176px;padding:5px;display:flex;position:fixed;box-shadow:0 16px 40px #0f172a33}._0yZr2a_contextMenu button{color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;align-items:center;gap:8px;padding:7px 10px;font-size:12.5px;display:flex}._0yZr2a_contextMenu button:hover{background:var(--dsw-alias-interactive-bg-hover)}._0yZr2a_contextMenu button[data-danger]{color:var(--dsw-alias-label-error)}._0yZr2a_errorToast{z-index:60;border:1px solid color-mix(in srgb, var(--dsw-alias-label-error) 35%, transparent);background:color-mix(in srgb, var(--dsw-alias-label-error) 12%, var(--dsw-alias-bg-layer-1));max-width:min(560px,80%);color:var(--dsw-alias-label-error);border-radius:10px;align-items:center;gap:10px;padding:9px 12px;font-size:12.5px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #0f172a2e}._0yZr2a_errorToast button{color:inherit;cursor:pointer;background:0 0;border:none;flex:none;padding:2px;display:inline-flex}._0yZr2a_modalBackdrop{z-index:70;background:color-mix(in srgb, var(--dsw-alias-label-primary) 32%, transparent);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._0yZr2a_picker{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:14px;flex-direction:column;width:min(720px,92%);max-height:84%;display:flex;overflow:hidden;box-shadow:0 24px 60px #0f172a42}._0yZr2a_pickerHeader{border-bottom:1px solid var(--dsw-alias-border-l1);justify-content:space-between;align-items:center;padding:12px 14px;font-size:14px;display:flex}._0yZr2a_pickerHeader button{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px}._0yZr2a_pickerTabs{gap:4px;padding:10px 14px 0;display:flex}._0yZr2a_pickerTabs button{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px 8px 0 0;padding:7px 12px;font-size:12.5px}._0yZr2a_pickerTabs button[data-active]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-brand-primary)}._0yZr2a_pickerBody{flex:1;min-height:0;padding:14px;overflow:auto}._0yZr2a_pickerGrid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}._0yZr2a_pickerCard{border:1.5px solid var(--dsw-alias-border-l1);cursor:pointer;text-align:left;color:var(--dsw-alias-label-primary);background:0 0;border-radius:10px;flex-direction:column;gap:6px;padding:6px;display:flex}._0yZr2a_pickerCard[data-selected]{border-color:var(--dsw-alias-brand-primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--dsw-alias-brand-primary) 25%, transparent)}._0yZr2a_pickerCard img{object-fit:cover;border-radius:7px;width:100%;height:110px}._0yZr2a_pickerCardPrompt{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}._0yZr2a_pickerCard small{color:var(--dsw-alias-label-tertiary);font-size:10.5px}._0yZr2a_pickerFooter{color:var(--dsw-alias-label-secondary);justify-content:space-between;align-items:center;padding-top:12px;font-size:12.5px;display:flex}._0yZr2a_pickerFooter button,._0yZr2a_generateForm button{background:var(--dsw-alias-brand-primary);height:32px;color:var(--dsw-alias-bg-base,#fff);cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:0 16px;font-size:12.5px;font-weight:600;display:inline-flex}._0yZr2a_pickerFooter button:disabled,._0yZr2a_generateForm button:disabled{opacity:.45;cursor:not-allowed}._0yZr2a_uploadBox{border:1.5px dashed color-mix(in srgb, var(--dsw-alias-label-primary) 22%, transparent);min-height:220px;color:var(--dsw-alias-label-secondary);cursor:pointer;text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}._0yZr2a_uploadBox:hover{border-color:var(--dsw-alias-brand-primary)}._0yZr2a_uploadBox input{display:none}._0yZr2a_uploadBox small{color:var(--dsw-alias-label-tertiary);font-size:11px}._0yZr2a_uploadIcon{color:var(--dsw-alias-brand-primary)}._0yZr2a_generateForm{flex-direction:column;gap:10px;display:flex}._0yZr2a_generateForm textarea{resize:vertical;border:1px solid var(--dsw-alias-border-l1);min-height:110px;color:var(--dsw-alias-label-primary);background:0 0;border-radius:9px;outline:none;padding:8px 10px;font-size:12.5px}._0yZr2a_generateForm select{border:1px solid var(--dsw-alias-border-l1);height:30px;color:var(--dsw-alias-label-primary);background:0 0;border-radius:8px;padding:0 8px;font-size:12.5px}@keyframes _0yZr2a_canvasSpin{to{transform:rotate(360deg)}}";
37997
38265
  const tagId$3 = "@dickpy/dsh-imagegen/canvas-workspace.module.css";
37998
38266
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
37999
38267
  const tag = document.createElement("style");
@@ -38003,96 +38271,98 @@ window.__ModuleLoader__.load({
38003
38271
  document.head.appendChild(tag);
38004
38272
  }
38005
38273
  var canvas_workspace_module_css_default = {
38006
- "nodeSelected": "_0yZr2a_nodeSelected",
38007
- "dockDivider": "_0yZr2a_dockDivider",
38008
- "composerSend": "_0yZr2a_composerSend",
38009
- "pickerCardPrompt": "_0yZr2a_pickerCardPrompt",
38010
- "nodeRelated": "_0yZr2a_nodeRelated",
38011
- "liquidCanvas": "_0yZr2a_liquidCanvas",
38012
- "textArea": "_0yZr2a_textArea",
38013
- "topBar": "_0yZr2a_topBar",
38014
- "titleButton": "_0yZr2a_titleButton",
38015
- "backgroundMenu": "_0yZr2a_backgroundMenu",
38016
- "nodeBody": "_0yZr2a_nodeBody",
38017
- "handleRight": "_0yZr2a_handleRight",
38018
- "connectionPreview": "_0yZr2a_connectionPreview",
38019
- "handle": "_0yZr2a_handle",
38020
- "contextMenu": "_0yZr2a_contextMenu",
38274
+ "composerChip": "_0yZr2a_composerChip",
38021
38275
  "canvasSpin": "_0yZr2a_canvasSpin",
38022
- "textNode": "_0yZr2a_textNode",
38276
+ "nodeBody": "_0yZr2a_nodeBody",
38277
+ "nodeState": "_0yZr2a_nodeState",
38023
38278
  "minimapViewport": "_0yZr2a_minimapViewport",
38024
- "uploadBox": "_0yZr2a_uploadBox",
38025
- "sceneCanvas": "_0yZr2a_sceneCanvas",
38026
- "viewport": "_0yZr2a_viewport",
38027
- "root": "_0yZr2a_root",
38028
- "panCursor": "_0yZr2a_panCursor",
38279
+ "flowCanvas": "_0yZr2a_flowCanvas",
38280
+ "configLinks": "_0yZr2a_configLinks",
38281
+ "inspectorRow": "_0yZr2a_inspectorRow",
38282
+ "minimapImage": "_0yZr2a_minimapImage",
38029
38283
  "marquee": "_0yZr2a_marquee",
38030
- "saveState": "_0yZr2a_saveState",
38284
+ "composerControls": "_0yZr2a_composerControls",
38285
+ "imageInfoRight": "_0yZr2a_imageInfoRight",
38286
+ "viewport": "_0yZr2a_viewport",
38287
+ "connectionPreview": "_0yZr2a_connectionPreview",
38288
+ "topBar": "_0yZr2a_topBar",
38031
38289
  "grid": "_0yZr2a_grid",
38032
- "nodeGlow": "_0yZr2a_nodeGlow",
38033
- "iconButton": "_0yZr2a_iconButton",
38034
- "composerPrompt": "_0yZr2a_composerPrompt",
38035
- "composerMeta": "_0yZr2a_composerMeta",
38036
- "nodeConnectTarget": "_0yZr2a_nodeConnectTarget",
38037
38290
  "dock": "_0yZr2a_dock",
38038
- "composerSelectValue": "_0yZr2a_composerSelectValue",
38039
- "world": "_0yZr2a_world",
38040
- "hoverToolbar": "_0yZr2a_hoverToolbar",
38041
- "connectionActive": "_0yZr2a_connectionActive",
38042
- "nodeEmpty": "_0yZr2a_nodeEmpty",
38043
- "configHint": "_0yZr2a_configHint",
38044
- "composerSelect": "_0yZr2a_composerSelect",
38045
- "emptyHint": "_0yZr2a_emptyHint",
38046
- "zoomDock": "_0yZr2a_zoomDock",
38047
- "pickerTabs": "_0yZr2a_pickerTabs",
38048
- "topBarSpacer": "_0yZr2a_topBarSpacer",
38049
- "uploadIcon": "_0yZr2a_uploadIcon",
38050
- "composer": "_0yZr2a_composer",
38051
- "pickerFooter": "_0yZr2a_pickerFooter",
38052
- "picker": "_0yZr2a_picker",
38291
+ "sceneCanvas": "_0yZr2a_sceneCanvas",
38053
38292
  "nodeStateError": "_0yZr2a_nodeStateError",
38054
- "connectionPath": "_0yZr2a_connectionPath",
38055
- "pickerHeader": "_0yZr2a_pickerHeader",
38056
- "nodeSize": "_0yZr2a_nodeSize",
38057
- "imageNode": "_0yZr2a_imageNode",
38058
- "minimapCanvas": "_0yZr2a_minimapCanvas",
38059
- "node": "_0yZr2a_node",
38060
- "connectionLayer": "_0yZr2a_connectionLayer",
38061
- "configLinks": "_0yZr2a_configLinks",
38293
+ "projectSelect": "_0yZr2a_projectSelect",
38294
+ "topBarSpacer": "_0yZr2a_topBarSpacer",
38295
+ "composerSend": "_0yZr2a_composerSend",
38296
+ "nodeConnectTarget": "_0yZr2a_nodeConnectTarget",
38297
+ "handleRight": "_0yZr2a_handleRight",
38298
+ "selectCursor": "_0yZr2a_selectCursor",
38062
38299
  "gridScrim": "_0yZr2a_gridScrim",
38300
+ "backgroundMenu": "_0yZr2a_backgroundMenu",
38301
+ "composerSelectValue": "_0yZr2a_composerSelectValue",
38302
+ "titleButton": "_0yZr2a_titleButton",
38303
+ "imageNode": "_0yZr2a_imageNode",
38063
38304
  "connectionFlow": "_0yZr2a_connectionFlow",
38064
- "nodeState": "_0yZr2a_nodeState",
38305
+ "nodeSize": "_0yZr2a_nodeSize",
38065
38306
  "zoomValue": "_0yZr2a_zoomValue",
38066
- "imageInfo": "_0yZr2a_imageInfo",
38067
- "minimapText": "_0yZr2a_minimapText",
38068
- "resizeHandle": "_0yZr2a_resizeHandle",
38069
- "titleInput": "_0yZr2a_titleInput",
38070
- "minimap": "_0yZr2a_minimap",
38307
+ "errorToast": "_0yZr2a_errorToast",
38308
+ "textArea": "_0yZr2a_textArea",
38071
38309
  "pickerGrid": "_0yZr2a_pickerGrid",
38072
- "pickerCard": "_0yZr2a_pickerCard",
38073
- "inspectorRow": "_0yZr2a_inspectorRow",
38074
- "pickerBody": "_0yZr2a_pickerBody",
38075
- "imageInfoLeft": "_0yZr2a_imageInfoLeft",
38076
- "generateForm": "_0yZr2a_generateForm",
38077
- "nodeHeader": "_0yZr2a_nodeHeader",
38310
+ "pickerCardPrompt": "_0yZr2a_pickerCardPrompt",
38311
+ "uploadIcon": "_0yZr2a_uploadIcon",
38312
+ "minimap": "_0yZr2a_minimap",
38313
+ "pickerHeader": "_0yZr2a_pickerHeader",
38078
38314
  "composerSelectMenu": "_0yZr2a_composerSelectMenu",
38079
- "minimapSelected": "_0yZr2a_minimapSelected",
38315
+ "pickerFooter": "_0yZr2a_pickerFooter",
38316
+ "world": "_0yZr2a_world",
38317
+ "titleInput": "_0yZr2a_titleInput",
38318
+ "generateForm": "_0yZr2a_generateForm",
38319
+ "uploadBox": "_0yZr2a_uploadBox",
38320
+ "zoomDock": "_0yZr2a_zoomDock",
38321
+ "composerPrompt": "_0yZr2a_composerPrompt",
38322
+ "node": "_0yZr2a_node",
38323
+ "nodeSelected": "_0yZr2a_nodeSelected",
38324
+ "nodeRelated": "_0yZr2a_nodeRelated",
38325
+ "backgroundMenuDivider": "_0yZr2a_backgroundMenuDivider",
38326
+ "composer": "_0yZr2a_composer",
38327
+ "handle": "_0yZr2a_handle",
38328
+ "minimapText": "_0yZr2a_minimapText",
38329
+ "imageInfoLeft": "_0yZr2a_imageInfoLeft",
38080
38330
  "handleLeft": "_0yZr2a_handleLeft",
38081
- "selectCursor": "_0yZr2a_selectCursor",
38082
- "nodeSpinner": "_0yZr2a_nodeSpinner",
38083
- "composerChip": "_0yZr2a_composerChip",
38084
- "errorToast": "_0yZr2a_errorToast",
38331
+ "pickerCard": "_0yZr2a_pickerCard",
38332
+ "nodeGlow": "_0yZr2a_nodeGlow",
38333
+ "panCursor": "_0yZr2a_panCursor",
38334
+ "composerSelect": "_0yZr2a_composerSelect",
38335
+ "nodeEmpty": "_0yZr2a_nodeEmpty",
38336
+ "composerMeta": "_0yZr2a_composerMeta",
38337
+ "dockOuter": "_0yZr2a_dockOuter",
38338
+ "saveState": "_0yZr2a_saveState",
38339
+ "hoverToolbar": "_0yZr2a_hoverToolbar",
38340
+ "connectionFlowActive": "_0yZr2a_connectionFlowActive",
38085
38341
  "minimapNode": "_0yZr2a_minimapNode",
38342
+ "minimapSelected": "_0yZr2a_minimapSelected",
38343
+ "pickerTabs": "_0yZr2a_pickerTabs",
38344
+ "nodeTitle": "_0yZr2a_nodeTitle",
38345
+ "nodeSpinner": "_0yZr2a_nodeSpinner",
38346
+ "minimapCanvas": "_0yZr2a_minimapCanvas",
38347
+ "dockItem": "_0yZr2a_dockItem",
38348
+ "connectionActive": "_0yZr2a_connectionActive",
38349
+ "connectionLayer": "_0yZr2a_connectionLayer",
38350
+ "imageInfo": "_0yZr2a_imageInfo",
38351
+ "emptyHint": "_0yZr2a_emptyHint",
38352
+ "resizeHandle": "_0yZr2a_resizeHandle",
38353
+ "configHint": "_0yZr2a_configHint",
38354
+ "textNode": "_0yZr2a_textNode",
38086
38355
  "modalBackdrop": "_0yZr2a_modalBackdrop",
38087
- "imageInfoRight": "_0yZr2a_imageInfoRight",
38088
- "flowCanvas": "_0yZr2a_flowCanvas",
38356
+ "nodeHeader": "_0yZr2a_nodeHeader",
38357
+ "iconButton": "_0yZr2a_iconButton",
38358
+ "liquidCanvas": "_0yZr2a_liquidCanvas",
38359
+ "dockDivider": "_0yZr2a_dockDivider",
38089
38360
  "configNode": "_0yZr2a_configNode",
38090
- "nodeTitle": "_0yZr2a_nodeTitle",
38091
- "connectionFlowActive": "_0yZr2a_connectionFlowActive",
38092
- "composerControls": "_0yZr2a_composerControls",
38093
- "minimapImage": "_0yZr2a_minimapImage",
38094
- "backgroundMenuDivider": "_0yZr2a_backgroundMenuDivider",
38095
- "projectSelect": "_0yZr2a_projectSelect"
38361
+ "connectionPath": "_0yZr2a_connectionPath",
38362
+ "picker": "_0yZr2a_picker",
38363
+ "contextMenu": "_0yZr2a_contextMenu",
38364
+ "pickerBody": "_0yZr2a_pickerBody",
38365
+ "root": "_0yZr2a_root"
38096
38366
  };
38097
38367
  //#endregion
38098
38368
  //#region src/client/CanvasBackgrounds.tsx
@@ -38768,19 +39038,6 @@ window.__ModuleLoader__.load({
38768
39038
  gl_Position = vec4(position, 1.0);
38769
39039
  }
38770
39040
  `;
38771
- /** Walk up from the grid layer to the first opaque surface and decide
38772
- * light vs dark, so the shader backdrops can pick their lightMode ink. */
38773
- function detectLightSurface(element) {
38774
- let node = element;
38775
- while (node !== null) {
38776
- const match = getComputedStyle(node).backgroundColor.match(/rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)(?:[\s,]+([\d.]+))?\s*\)/);
38777
- if (match !== null) {
38778
- if ((match[4] !== void 0 ? Number(match[4]) : 1) >= .5) return (.2126 * Number(match[1]) + .7152 * Number(match[2]) + .0722 * Number(match[3])) / 255 > .55;
38779
- }
38780
- node = node.parentElement;
38781
- }
38782
- return false;
38783
- }
38784
39041
  /** Shared engine for the fullscreen-shader backdrops: compiles one program,
38785
39042
  * owns the DPR-sized canvas, the rAF loop, viewport resize and smoothed
38786
39043
  * pointer tracking. `frame` sets uniforms and calls draw(). WebGL2 is
@@ -40560,6 +40817,98 @@ window.__ModuleLoader__.load({
40560
40817
  const [libraryOpen, setLibraryOpen] = (0, react.useState)(false);
40561
40818
  const [pickerTab, setPickerTab] = (0, react.useState)("upload");
40562
40819
  const backgroundFileRef = (0, react.useRef)(null);
40820
+ /** reactbits.dev "Dock" port: each tile spring-scales by its distance to the
40821
+ * pointer (width/height, so neighbours part like the macOS dock) and the
40822
+ * panel breathes taller while hovered to make room for the labels. */
40823
+ const dockOuterRef = (0, react.useRef)(null);
40824
+ const dockRef = (0, react.useRef)(null);
40825
+ (0, react.useEffect)(() => {
40826
+ const outer = dockOuterRef.current;
40827
+ const dock = dockRef.current;
40828
+ if (outer === null || dock === null) return;
40829
+ if (typeof window.requestAnimationFrame !== "function") return;
40830
+ const clockNow = () => typeof performance !== "undefined" ? performance.now() : Date.now();
40831
+ const BASE = 34;
40832
+ const MAGNIFIED = 50;
40833
+ const DISTANCE = 150;
40834
+ const REST_HEIGHT = 42;
40835
+ const HOVER_HEIGHT = 79;
40836
+ const STIFFNESS = 170;
40837
+ const DAMPING = 16;
40838
+ const MASS = .5;
40839
+ const tiles = [...dock.querySelectorAll("[data-dock-item]")].map((el) => ({
40840
+ el,
40841
+ size: BASE,
40842
+ velocity: 0
40843
+ }));
40844
+ let outerSize = REST_HEIGHT;
40845
+ let outerVelocity = 0;
40846
+ let mouseX = Number.POSITIVE_INFINITY;
40847
+ let hovered = false;
40848
+ let raf = 0;
40849
+ let running = false;
40850
+ let last = clockNow();
40851
+ const step = (now) => {
40852
+ const dt = Math.min(.05, (now - last) / 1e3);
40853
+ last = now;
40854
+ let settled = true;
40855
+ for (const tile of tiles) {
40856
+ let target = BASE;
40857
+ if (hovered) {
40858
+ const rect = tile.el.getBoundingClientRect();
40859
+ const distance = Math.abs(mouseX - (rect.left + rect.width / 2));
40860
+ target = BASE + (MAGNIFIED - BASE) * Math.max(0, 1 - distance / DISTANCE);
40861
+ }
40862
+ tile.velocity += (STIFFNESS * (target - tile.size) - DAMPING * tile.velocity) / MASS * dt;
40863
+ tile.size += tile.velocity * dt;
40864
+ if (Math.abs(target - tile.size) > .15 || Math.abs(tile.velocity) > 2) settled = false;
40865
+ else {
40866
+ tile.size = target;
40867
+ tile.velocity = 0;
40868
+ }
40869
+ tile.el.style.width = `${tile.size.toFixed(2)}px`;
40870
+ tile.el.style.height = `${tile.size.toFixed(2)}px`;
40871
+ }
40872
+ const outerTarget = hovered ? HOVER_HEIGHT : REST_HEIGHT;
40873
+ outerVelocity += (STIFFNESS * (outerTarget - outerSize) - DAMPING * outerVelocity) / MASS * dt;
40874
+ outerSize += outerVelocity * dt;
40875
+ if (Math.abs(outerTarget - outerSize) > .25 || Math.abs(outerVelocity) > 3) settled = false;
40876
+ else {
40877
+ outerSize = outerTarget;
40878
+ outerVelocity = 0;
40879
+ }
40880
+ outer.style.height = `${outerSize.toFixed(2)}px`;
40881
+ if (settled) {
40882
+ running = false;
40883
+ return;
40884
+ }
40885
+ raf = window.requestAnimationFrame(step);
40886
+ };
40887
+ const wake = () => {
40888
+ if (running) return;
40889
+ running = true;
40890
+ last = clockNow();
40891
+ raf = window.requestAnimationFrame(step);
40892
+ };
40893
+ const onPointerMove = (event) => {
40894
+ mouseX = event.clientX;
40895
+ hovered = true;
40896
+ wake();
40897
+ };
40898
+ const onPointerLeave = () => {
40899
+ hovered = false;
40900
+ mouseX = Number.POSITIVE_INFINITY;
40901
+ wake();
40902
+ };
40903
+ dock.addEventListener("pointermove", onPointerMove);
40904
+ dock.addEventListener("pointerleave", onPointerLeave);
40905
+ wake();
40906
+ return () => {
40907
+ window.cancelAnimationFrame(raf);
40908
+ dock.removeEventListener("pointermove", onPointerMove);
40909
+ dock.removeEventListener("pointerleave", onPointerLeave);
40910
+ };
40911
+ }, []);
40563
40912
  const imageFileRef = (0, react.useRef)(null);
40564
40913
  const [renamingTitle, setRenamingTitle] = (0, react.useState)(false);
40565
40914
  const [confirmDeleteProject, setConfirmDeleteProject] = (0, react.useState)(false);
@@ -42844,103 +43193,152 @@ window.__ModuleLoader__.load({
42844
43193
  emptyState
42845
43194
  ]
42846
43195
  }),
42847
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
42848
- className: `${canvas_workspace_module_css_default.dock} ${cursorClass}`,
43196
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
43197
+ className: canvas_workspace_module_css_default.dockOuter,
42849
43198
  "data-canvas-no-zoom": "",
42850
- onPointerMove: (event) => {
42851
- if (globalThis.matchMedia?.("(prefers-reduced-motion: reduce)").matches === true) return;
42852
- const dock = event.currentTarget;
42853
- const cursorX = event.clientX - dock.getBoundingClientRect().left;
42854
- for (const button of dock.querySelectorAll("button")) {
42855
- const distance = Math.abs(cursorX - (button.offsetLeft + button.offsetWidth / 2));
42856
- const influence = Math.exp(-(distance * distance) / 4608);
42857
- button.style.setProperty("--dock-scale", (1 + .24 * influence).toFixed(3));
42858
- button.style.setProperty("--dock-lift", `${(-8 * influence).toFixed(2)}px`);
42859
- }
42860
- },
42861
- onPointerLeave: (event) => {
42862
- for (const button of event.currentTarget.querySelectorAll("button")) {
42863
- button.style.setProperty("--dock-scale", "1");
42864
- button.style.setProperty("--dock-lift", "0px");
42865
- }
42866
- },
42867
- children: [
42868
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
42869
- name: "select",
42870
- size: 18,
42871
- label: tt("canvas.toolSelect"),
42872
- active: tool === "select",
42873
- onClick: () => setTool("select")
42874
- }),
42875
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
42876
- name: "pan",
42877
- size: 18,
42878
- label: tt("canvas.toolPan"),
42879
- active: tool === "pan",
42880
- onClick: () => setTool("pan")
42881
- }),
42882
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: canvas_workspace_module_css_default.dockDivider }),
42883
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
42884
- name: "image",
42885
- size: 18,
42886
- label: tt("canvas.addImage"),
42887
- active: imageMenu !== null,
42888
- onClick: (event) => openDockMenu("image", event.currentTarget),
42889
- onMouseEnter: (event) => openDockMenu("image", event.currentTarget),
42890
- onMouseLeave: scheduleMenuClose
42891
- }),
42892
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
42893
- name: "text",
42894
- size: 18,
42895
- label: tt("canvas.addText"),
42896
- onClick: () => placeNewNode(createTextNode())
42897
- }),
42898
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
42899
- name: "sparkle",
42900
- size: 18,
42901
- label: tt("canvas.addConfigNode"),
42902
- onClick: () => placeNewNode(createConfigNode())
42903
- }),
42904
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
42905
- name: "template",
42906
- size: 18,
42907
- label: tt("canvas.templateLibrary"),
42908
- active: libraryOpen,
42909
- onClick: () => setLibraryOpen((previous) => !previous)
42910
- }),
42911
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: canvas_workspace_module_css_default.dockDivider }),
42912
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
42913
- name: "background",
42914
- size: 18,
42915
- label: tt("canvas.background"),
42916
- active: backgroundMenu !== null,
42917
- onClick: (event) => openDockMenu("background", event.currentTarget),
42918
- onMouseEnter: (event) => openDockMenu("background", event.currentTarget),
42919
- onMouseLeave: scheduleMenuClose
42920
- }),
42921
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
42922
- name: "undo",
42923
- size: 18,
42924
- label: tt("canvas.undo"),
42925
- disabled: pastRef.current.length === 0,
42926
- onClick: undo
42927
- }),
42928
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
42929
- name: "redo",
42930
- size: 18,
42931
- label: tt("canvas.redo"),
42932
- disabled: futureRef.current.length === 0,
42933
- onClick: redo
42934
- }),
42935
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: canvas_workspace_module_css_default.dockDivider }),
42936
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
42937
- name: "trash",
42938
- size: 18,
42939
- label: tt("canvas.delete"),
42940
- disabled: selectedIds.size === 0 && selectedConnectionId === null,
42941
- onClick: deleteSelection
42942
- })
42943
- ]
43199
+ ref: dockOuterRef,
43200
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
43201
+ className: `${canvas_workspace_module_css_default.dock} ${cursorClass}`,
43202
+ ref: dockRef,
43203
+ "data-canvas-no-zoom": "",
43204
+ role: "toolbar",
43205
+ children: [
43206
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
43207
+ className: canvas_workspace_module_css_default.dockItem,
43208
+ "data-dock-item": "",
43209
+ "data-label": tt("canvas.toolSelect"),
43210
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
43211
+ name: "select",
43212
+ size: 18,
43213
+ label: tt("canvas.toolSelect"),
43214
+ active: tool === "select",
43215
+ onClick: () => setTool("select")
43216
+ })
43217
+ }),
43218
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
43219
+ className: canvas_workspace_module_css_default.dockItem,
43220
+ "data-dock-item": "",
43221
+ "data-label": tt("canvas.toolPan"),
43222
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
43223
+ name: "pan",
43224
+ size: 18,
43225
+ label: tt("canvas.toolPan"),
43226
+ active: tool === "pan",
43227
+ onClick: () => setTool("pan")
43228
+ })
43229
+ }),
43230
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
43231
+ className: canvas_workspace_module_css_default.dockDivider,
43232
+ "aria-hidden": "true"
43233
+ }),
43234
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
43235
+ className: canvas_workspace_module_css_default.dockItem,
43236
+ "data-dock-item": "",
43237
+ "data-label": tt("canvas.addImage"),
43238
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
43239
+ name: "image",
43240
+ size: 18,
43241
+ label: tt("canvas.addImage"),
43242
+ active: imageMenu !== null,
43243
+ onClick: (event) => openDockMenu("image", event.currentTarget),
43244
+ onMouseEnter: (event) => openDockMenu("image", event.currentTarget),
43245
+ onMouseLeave: scheduleMenuClose
43246
+ })
43247
+ }),
43248
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
43249
+ className: canvas_workspace_module_css_default.dockItem,
43250
+ "data-dock-item": "",
43251
+ "data-label": tt("canvas.addText"),
43252
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
43253
+ name: "text",
43254
+ size: 18,
43255
+ label: tt("canvas.addText"),
43256
+ onClick: () => placeNewNode(createTextNode())
43257
+ })
43258
+ }),
43259
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
43260
+ className: canvas_workspace_module_css_default.dockItem,
43261
+ "data-dock-item": "",
43262
+ "data-label": tt("canvas.addConfigNode"),
43263
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
43264
+ name: "sparkle",
43265
+ size: 18,
43266
+ label: tt("canvas.addConfigNode"),
43267
+ onClick: () => placeNewNode(createConfigNode())
43268
+ })
43269
+ }),
43270
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
43271
+ className: canvas_workspace_module_css_default.dockItem,
43272
+ "data-dock-item": "",
43273
+ "data-label": tt("canvas.templateLibrary"),
43274
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
43275
+ name: "template",
43276
+ size: 18,
43277
+ label: tt("canvas.templateLibrary"),
43278
+ active: libraryOpen,
43279
+ onClick: () => setLibraryOpen((previous) => !previous)
43280
+ })
43281
+ }),
43282
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
43283
+ className: canvas_workspace_module_css_default.dockDivider,
43284
+ "aria-hidden": "true"
43285
+ }),
43286
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
43287
+ className: canvas_workspace_module_css_default.dockItem,
43288
+ "data-dock-item": "",
43289
+ "data-label": tt("canvas.background"),
43290
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
43291
+ name: "background",
43292
+ size: 18,
43293
+ label: tt("canvas.background"),
43294
+ active: backgroundMenu !== null,
43295
+ onClick: (event) => openDockMenu("background", event.currentTarget),
43296
+ onMouseEnter: (event) => openDockMenu("background", event.currentTarget),
43297
+ onMouseLeave: scheduleMenuClose
43298
+ })
43299
+ }),
43300
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
43301
+ className: canvas_workspace_module_css_default.dockItem,
43302
+ "data-dock-item": "",
43303
+ "data-label": tt("canvas.undo"),
43304
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
43305
+ name: "undo",
43306
+ size: 18,
43307
+ label: tt("canvas.undo"),
43308
+ disabled: pastRef.current.length === 0,
43309
+ onClick: undo
43310
+ })
43311
+ }),
43312
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
43313
+ className: canvas_workspace_module_css_default.dockItem,
43314
+ "data-dock-item": "",
43315
+ "data-label": tt("canvas.redo"),
43316
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
43317
+ name: "redo",
43318
+ size: 18,
43319
+ label: tt("canvas.redo"),
43320
+ disabled: futureRef.current.length === 0,
43321
+ onClick: redo
43322
+ })
43323
+ }),
43324
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
43325
+ className: canvas_workspace_module_css_default.dockDivider,
43326
+ "aria-hidden": "true"
43327
+ }),
43328
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
43329
+ className: canvas_workspace_module_css_default.dockItem,
43330
+ "data-dock-item": "",
43331
+ "data-label": tt("canvas.delete"),
43332
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconButton, {
43333
+ name: "trash",
43334
+ size: 18,
43335
+ label: tt("canvas.delete"),
43336
+ disabled: selectedIds.size === 0 && selectedConnectionId === null,
43337
+ onClick: deleteSelection
43338
+ })
43339
+ })
43340
+ ]
43341
+ })
42944
43342
  }),
42945
43343
  imageMenu !== null ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
42946
43344
  className: canvas_workspace_module_css_default.backgroundMenu,
@@ -43943,7 +44341,7 @@ window.__ModuleLoader__.load({
43943
44341
  const CHAT_IMAGE_EVENT = "dsh-imagegen:chat-images";
43944
44342
  //#endregion
43945
44343
  //#region \0dsh-css:E:\dsh-plugin\src\client\panel.module.css.mjs
43946
- const css$2 = "[data-pane=conversation],[class*=centerCol]{min-width:0;min-height:0;position:relative}[data-dsh-imagegen-view]{z-index:60;background:var(--dsw-alias-bg-base);grid-area:1/1;min-width:0;min-height:0;display:none;position:relative}html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [data-pane=conversation],html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [class*=centerCol]{grid-template-columns:minmax(0, 1fr) 8px minmax(320px, clamp(320px, var(--dsh-imagegen-chat-width,36%), 70%));background:var(--dsw-alias-border-l1);grid-template-rows:minmax(0,1fr);gap:1px;overflow:hidden;display:grid!important}html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [data-dsh-imagegen-view]{display:block}html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [data-slot=conversation]{background:var(--dsw-alias-bg-base);grid-area:1/3;align-items:stretch;width:auto;min-width:0;min-height:0;overflow:hidden;display:flex!important}html[data-dsh-imagegen-active] [data-slot=conversation]>[data-phase]{flex:auto;align-self:stretch;width:100%;min-width:0;max-width:none}html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [data-dsh-imagegen-chat-resizer]{grid-area:1/2}.Yvqh9W_chatResizer{z-index:70;width:8px;min-width:8px;color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-border-l1);cursor:col-resize;touch-action:none;justify-content:center;align-items:center;display:none;position:relative}.Yvqh9W_chatResizer:before{content:\"\";opacity:.55;background:currentColor;border-radius:3px;width:3px;height:36px}.Yvqh9W_chatResizer:hover,.Yvqh9W_chatResizer:focus-visible{color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-2);outline:none}html[data-dsh-imagegen-active] [data-dsh-imagegen-chat-resizer]{display:flex!important}html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [data-pane=conversation]>:not([data-dsh-imagegen-view]):not([data-slot=conversation]):not([data-dsh-imagegen-chat-resizer]),html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [class*=centerCol]>:not([data-dsh-imagegen-view]):not([data-slot=conversation]):not([data-dsh-imagegen-chat-resizer]),html[data-dsh-imagegen-active] [data-dsh-imagegen-sidebar-root]>:not([data-dsh-imagegen-session-tabs]):not([class*=logoRow]):not([class*=regionArea]):not([class*=footArea]){display:none!important}@media (width<=760px){html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [data-pane=conversation],html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [class*=centerCol]{grid-template-rows:minmax(0,1fr) minmax(340px,.9fr);grid-template-columns:minmax(0,1fr);overflow-y:auto}html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [data-slot=conversation]{grid-area:2/1}html[data-dsh-imagegen-active] [data-dsh-imagegen-chat-resizer]{display:none!important}}.Yvqh9W_entry{width:100%;height:32px;color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:0 12px;font-size:13px;display:flex}.Yvqh9W_entry:hover{background:var(--dsw-specific-sidebar-nav-item-hover);color:var(--dsw-alias-label-primary)}.Yvqh9W_entry[data-active]{background:var(--dsw-specific-sidebar-nav-item-active);color:var(--dsw-alias-label-primary);font-weight:600}.Yvqh9W_entryIcon{flex:none;justify-content:center;align-items:center;display:inline-flex}.Yvqh9W_entryLabel{text-overflow:ellipsis;overflow:hidden}.Yvqh9W_sessionTabs{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:9px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px;width:100%;min-width:0;padding:3px;display:grid}.Yvqh9W_sessionTab{min-width:0;height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;white-space:nowrap;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:12px;display:inline-flex}[data-sidebar-collapsed] .Yvqh9W_sessionTabs{background:0 0;border:none;border-radius:0;flex-direction:column;gap:6px;width:auto;padding:0;display:flex}[data-sidebar-collapsed] .Yvqh9W_sessionTab{border-radius:9px;width:34px;height:34px;padding:0;font-size:0}[data-sidebar-collapsed] .Yvqh9W_sessionTabLabel{display:none}.Yvqh9W_sessionTab:hover,.Yvqh9W_sessionTab[data-active]{color:var(--dsw-alias-label-primary);background:var(--dsw-specific-sidebar-nav-item-active)}.Yvqh9W_sessionTabIcon{flex:none;justify-content:center;align-items:center;display:inline-flex}.Yvqh9W_sessionTabLabel{text-overflow:ellipsis;min-width:0;overflow:hidden}[class*=regionArea]{min-height:0;position:relative}.Yvqh9W_sidebarHistoryHost{z-index:30;background:var(--dsw-alias-bg-base);min-width:0;min-height:0;padding:6px 4px;display:none;position:absolute;inset:0;overflow:hidden}html[data-dsh-imagegen-active] .Yvqh9W_sidebarHistoryHost{display:flex}.Yvqh9W_sidebarHistoryHost .Yvqh9W_history{background:0 0;border:0;border-radius:8px;width:100%;height:100%}[data-dsh-frame][data-sidebar-collapsed] .Yvqh9W_sidebarHistoryHost{display:none}[data-dsh-frame][data-sidebar-collapsed] .Yvqh9W_entry{justify-content:center;width:100%;padding:0}[data-dsh-frame][data-sidebar-collapsed] .Yvqh9W_entryLabel{display:none}.Yvqh9W_view{width:100%;min-width:0;min-height:0;overflow:hidden}.Yvqh9W_panel,.Yvqh9W_panel *,.Yvqh9W_panel :before,.Yvqh9W_panel :after{box-sizing:border-box}.Yvqh9W_panel{background:var(--dsw-alias-bg-base);min-width:0;height:100%;min-height:0;color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-family);flex-direction:column;gap:10px;padding:14px 16px 16px;display:flex;position:relative;overflow:hidden}.Yvqh9W_panelHeader{flex:none;justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.Yvqh9W_panelHeading{align-items:baseline;gap:10px;min-width:0;display:flex}.Yvqh9W_panelTitle{color:var(--dsw-alias-label-primary);white-space:nowrap;margin:0;font-size:16px;font-weight:700}.Yvqh9W_githubLink{width:22px;height:22px;color:var(--dsw-alias-label-secondary);border-radius:6px;flex:none;justify-content:center;align-items:center;text-decoration:none;transition:color .12s,background .12s;display:inline-flex}.Yvqh9W_githubLink:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2)}.Yvqh9W_connectionStatus{border:1px solid var(--dsw-alias-label-error);height:28px;color:var(--dsw-alias-label-error);font:inherit;white-space:nowrap;background:0 0;border-radius:8px;flex:none;align-items:center;gap:6px;padding:0 10px;font-size:12px;line-height:1;display:inline-flex}.Yvqh9W_connectionStatus[data-connected=true]{border-color:var(--dsw-alias-state-success-primary);color:var(--dsw-alias-state-success-primary)}.Yvqh9W_connectionDot{background:currentColor;border-radius:50%;width:6px;height:6px}.Yvqh9W_updateBanner{border:1px solid var(--dsw-alias-state-warn-primary);color:var(--dsw-alias-state-warn-primary);overflow-wrap:anywhere;border-radius:10px;flex:none;justify-content:space-between;align-items:center;gap:12px;padding:7px 10px 7px 12px;font-size:12px;line-height:1.5;display:flex}.Yvqh9W_updateBanner[data-kind=ok]{color:var(--dsw-alias-state-success-primary);border-color:var(--dsw-alias-state-success-primary)}.Yvqh9W_updateText{min-width:0}.Yvqh9W_updateActions{flex:none;align-items:center;gap:10px;display:inline-flex}.Yvqh9W_updateRelease{color:inherit;text-underline-offset:2px;white-space:nowrap;text-decoration:underline}@media (width<=700px){.Yvqh9W_panelHeader{align-items:flex-start}.Yvqh9W_panelHeading{flex-direction:column;align-items:flex-start;gap:2px}.Yvqh9W_updateBanner{flex-direction:column;align-items:flex-start}.Yvqh9W_updateActions{justify-content:space-between;width:100%}}.Yvqh9W_studio{flex:1;min-width:0;min-height:0;display:flex}.Yvqh9W_generation{gap:14px;width:100%;min-width:0;min-height:0;display:flex}.Yvqh9W_generation[data-workspace=canvas]{height:100%;display:flex}.Yvqh9W_generation[data-workspace=canvas]>.Yvqh9W_config,.Yvqh9W_generation[data-workspace=canvas]>.Yvqh9W_canvas{display:none!important}.Yvqh9W_config{width:clamp(240px, var(--dsh-imagegen-config-width,300px), 480px);flex-direction:column;flex:none;gap:12px;min-width:240px;max-width:480px;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.Yvqh9W_configHeader{flex:none;justify-content:flex-end;min-height:28px;display:flex}.Yvqh9W_configToggle{border:1px solid var(--dsw-alias-border-l1);width:28px;height:28px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;padding:0;display:inline-flex}.Yvqh9W_configToggle:hover,.Yvqh9W_configToggle:focus-visible{border-color:var(--dsw-alias-brand-primary);color:var(--dsw-alias-brand-primary);outline:none}.Yvqh9W_config[data-collapsed=true]{gap:0;width:38px;min-width:38px;max-width:38px}.Yvqh9W_config[data-collapsed=true] .Yvqh9W_configHeader{justify-content:center}.Yvqh9W_config[data-collapsed=true]>:not(.Yvqh9W_configHeader){display:none}.Yvqh9W_configScroll{scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex-direction:column;flex:1;gap:12px;min-height:0;padding-right:2px;display:flex;overflow-y:auto}.Yvqh9W_configScroll::-webkit-scrollbar{width:8px}.Yvqh9W_configScroll::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Yvqh9W_canvas{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:12px;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.Yvqh9W_taskTray{z-index:6;border:1px solid var(--dsw-alias-border-l2);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 92%, transparent);backdrop-filter:blur(10px);border-radius:9px;flex-direction:column;width:min(360px,100% - 24px);max-height:calc(100% - 24px);display:flex;position:absolute;top:12px;right:12px;overflow:hidden;box-shadow:0 8px 24px #0000001f}.Yvqh9W_taskTray[data-open=false]{width:auto;max-width:calc(100% - 24px)}.Yvqh9W_taskTrayHeader{min-height:34px;color:var(--dsw-alias-label-primary);border-bottom:1px solid var(--dsw-alias-border-l1);align-items:stretch;font-size:12px;font-weight:600;display:flex}.Yvqh9W_taskTray[data-open=false] .Yvqh9W_taskTrayHeader{border-bottom:0}.Yvqh9W_taskTrayToggle{min-width:0;color:inherit;cursor:pointer;font:inherit;font-size:inherit;font-weight:inherit;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:8px;padding:8px 10px;display:flex}.Yvqh9W_taskTrayToggle:hover{background:var(--dsw-alias-bg-layer-2)}.Yvqh9W_taskTrayCount{min-width:18px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);text-align:center;border-radius:999px;padding:1px 5px;font-size:11px;font-weight:500}.Yvqh9W_taskTrayChevron{color:var(--dsw-alias-label-tertiary);margin-left:auto;font-size:12px;font-weight:400}.Yvqh9W_taskTrayClose{border:0;border-left:1px solid var(--dsw-alias-border-l1);width:32px;color:var(--dsw-alias-label-tertiary);cursor:pointer;font:inherit;background:0 0;font-size:17px}.Yvqh9W_taskTrayClose:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2)}.Yvqh9W_taskTray[data-open=false] .Yvqh9W_taskTrayToggle{min-height:34px}.Yvqh9W_taskRows{min-height:0;overflow-y:auto}.Yvqh9W_taskTray[data-open=false] .Yvqh9W_taskRows{display:none}.Yvqh9W_taskRow{border-top:1px solid var(--dsw-alias-border-l1);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px 10px;display:grid}.Yvqh9W_taskRow:first-of-type{border-top:0}.Yvqh9W_taskStatus{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:11px}.Yvqh9W_taskRow[data-status=running] .Yvqh9W_taskStatus{color:var(--dsw-alias-brand-primary)}.Yvqh9W_taskRow[data-status=failed] .Yvqh9W_taskStatus{color:var(--dsw-alias-label-error)}.Yvqh9W_taskPrompt{color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.Yvqh9W_taskRow button{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);cursor:pointer;font:inherit;border:0;border-radius:5px;padding:2px 7px;font-size:11px}.Yvqh9W_taskRow button:hover{color:var(--dsw-alias-brand-primary)}.Yvqh9W_configGuide{z-index:1100;background:#00000059;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.Yvqh9W_configGuideBody{border:1px solid var(--dsw-alias-border-l2);width:min(360px,100%);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);border-radius:10px;flex-direction:column;gap:12px;padding:18px;display:flex;box-shadow:0 14px 40px #0003}.Yvqh9W_configGuideBody span{color:var(--dsw-alias-label-secondary);font-size:13px;line-height:1.55}.Yvqh9W_configGuideBody button{min-height:30px;color:var(--dsw-alias-bg-layer-1);background:var(--dsw-alias-brand-primary);cursor:pointer;font:inherit;border:0;border-radius:7px;align-self:flex-end;padding:0 12px;font-size:12px}.Yvqh9W_history{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:12px;flex-direction:column;width:auto;min-width:0;max-width:none;min-height:0;display:flex;overflow:hidden}.Yvqh9W_historyHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.Yvqh9W_historyHeaderActions{flex:none;align-items:center;gap:6px;display:flex}.Yvqh9W_historyFilters{border-bottom:1px solid var(--dsw-alias-border-l1);grid-template-columns:1fr 1fr;gap:6px;padding:8px 10px;display:grid}.Yvqh9W_historySearch,.Yvqh9W_historyFilters select,.Yvqh9W_gallerySearch{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);min-width:0;min-height:29px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);font:inherit;border-radius:7px;padding:0 8px;font-size:11px}.Yvqh9W_historySearch{grid-column:1/-1}.Yvqh9W_gallerySearch{width:156px}.Yvqh9W_galleryTagInput{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);width:130px;min-height:29px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);font:inherit;border-radius:7px;padding:0 8px;font-size:11px}.Yvqh9W_galleryBulkButton{border:1px solid var(--dsw-alias-border-l2);min-height:29px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);cursor:pointer;font:inherit;border-radius:7px;padding:0 8px;font-size:11px}.Yvqh9W_galleryBulkButton:hover:not(:disabled){color:var(--dsw-alias-brand-primary);border-color:var(--dsw-alias-brand-primary)}.Yvqh9W_galleryBulkButton:disabled{opacity:.45;cursor:default}.Yvqh9W_historyTitle{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:600}.Yvqh9W_historyNew{width:26px;height:26px;color:var(--dsw-alias-label-secondary);border:1px solid var(--dsw-alias-border-l2);cursor:pointer;background:0 0;border-radius:7px;justify-content:center;align-items:center;padding:0;display:inline-flex}.Yvqh9W_historyNew:hover{color:var(--dsw-alias-brand-primary);border-color:var(--dsw-alias-brand-primary)}.Yvqh9W_historyClear{font:inherit;color:var(--dsw-alias-label-tertiary);border:1px solid var(--dsw-alias-border-l2);cursor:pointer;background:0 0;border-radius:999px;padding:2px 8px;font-size:11.5px}.Yvqh9W_historyClear:hover{color:var(--dsw-alias-label-error);border-color:var(--dsw-alias-label-error)}.Yvqh9W_historyList{scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex-direction:column;flex:1;gap:8px;min-height:0;padding:10px;display:flex;overflow-y:auto}.Yvqh9W_historyList::-webkit-scrollbar{width:8px}.Yvqh9W_historyList::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Yvqh9W_historyEmpty{text-align:center;color:var(--dsw-alias-label-tertiary);flex:1;justify-content:center;align-items:center;padding:20px;font-size:12px;line-height:1.6;display:flex}.Yvqh9W_historyItem{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);border-radius:10px;flex-direction:column;flex:none;gap:6px;padding:8px;display:flex}.Yvqh9W_historyItem:hover{border-color:var(--dsw-alias-border-l2)}.Yvqh9W_historyItem[data-active]{border-color:var(--dsw-alias-brand-primary)}.Yvqh9W_historyMain{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:flex-start;gap:8px;min-width:0;padding:0;display:flex}.Yvqh9W_historyThumb{object-fit:cover;background:var(--dsw-alias-bg-base);border-radius:8px;flex:none;width:52px;height:52px}.Yvqh9W_historyThumbPlaceholder{background:var(--dsw-alias-bg-layer-3);border-radius:8px;flex:none;width:52px;height:52px}.Yvqh9W_historyInfo{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.Yvqh9W_historyPrompt{color:var(--dsw-alias-label-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.Yvqh9W_historyMeta{color:var(--dsw-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.Yvqh9W_historyActions{justify-content:flex-end;gap:4px;display:flex}.Yvqh9W_historyIconAction{width:26px;height:24px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;padding:0;display:inline-flex}.Yvqh9W_historyIconAction:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.Yvqh9W_historyIconAction:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}.Yvqh9W_historyIconAction:disabled{opacity:.5;cursor:default}.Yvqh9W_historyIconAction[data-danger]:hover{color:var(--dsw-alias-state-error);background:color-mix(in srgb, var(--dsw-alias-state-error) 10%, transparent)}.Yvqh9W_card{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);border-radius:12px;flex-direction:column;flex:none;gap:10px;padding:12px;display:flex}.Yvqh9W_ecommerceWorkspace{flex-direction:column;gap:18px;max-width:760px;margin:0 auto;padding:10px 8px 18px;display:flex}.Yvqh9W_ecommerceSection{border:none;border-bottom:1px solid var(--dsw-alias-border-l1);background:0 0;border-radius:0;flex-direction:column;gap:10px;padding:0 0 16px;display:flex}.Yvqh9W_ecommerceSection:last-of-type{border-bottom:none;padding-bottom:4px}.Yvqh9W_ecommerceSection h3{align-items:baseline;gap:7px;margin:0 0 2px;font-size:14px;font-weight:650;display:flex}.Yvqh9W_ecommerceSectionHint{color:var(--dsw-alias-label-tertiary);font-size:11px;font-weight:400}.Yvqh9W_ecommerceSection input:not([type=checkbox]),.Yvqh9W_ecommerceSection select,.Yvqh9W_ecommerceSection textarea{box-sizing:border-box;width:100%;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-3);border:1px solid var(--dsw-alias-border-l2);font:inherit;border-radius:9px;padding:9px 11px}.Yvqh9W_ecommerceSection input:not([type=checkbox]):focus-visible,.Yvqh9W_ecommerceSection select:focus-visible,.Yvqh9W_ecommerceSection textarea:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}.Yvqh9W_ecommerceSection textarea{resize:vertical;min-height:68px;line-height:1.5}.Yvqh9W_ecommerceField{flex-direction:column;gap:5px;min-width:0;display:flex}.Yvqh9W_ecommerceFieldLabel{color:var(--dsw-alias-label-secondary);font-size:11.5px}.Yvqh9W_ecommerceParamGrid{grid-template-columns:1fr 1fr;gap:12px 10px;display:grid}.Yvqh9W_ecommerceUploadHero{border:1.5px dashed var(--dsw-alias-border-l2);min-height:78px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;text-align:center;background:0 0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:12px;display:flex}.Yvqh9W_ecommerceUploadHero:hover{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-label-dimmed);background:var(--dsw-alias-interactive-bg-hover)}.Yvqh9W_ecommerceUploadHero:focus-visible,.Yvqh9W_ecommerceAssetAdd:focus-visible,.Yvqh9W_ecommerceSlotCard:focus-visible,.Yvqh9W_ecommerceAdvancedToggle:focus-visible,.Yvqh9W_ecommerceAsset button:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.Yvqh9W_ecommerceUploadHero span{font-size:12px}.Yvqh9W_ecommerceUploadHero small{color:var(--dsw-alias-label-tertiary);font-size:10.5px}.Yvqh9W_ecommerceStructureGrid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.Yvqh9W_ecommerceSlotCard{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);height:34px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;font-size:12px;display:flex;position:relative}.Yvqh9W_ecommerceSlotCard:hover{border-color:var(--dsw-alias-label-dimmed)}.Yvqh9W_ecommerceSlotCard[data-active]{background:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-base);font-weight:600}.Yvqh9W_ecommerceSlotCount{background:var(--dsw-alias-brand-primary);color:#fff;text-align:center;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;line-height:16px;position:absolute;top:-6px;right:-6px}.Yvqh9W_ecommerceRefRow{grid-template-columns:64px 1fr;align-items:center;gap:8px;display:grid}.Yvqh9W_ecommerceRefRow>span{color:var(--dsw-alias-label-secondary);font-size:12px}.Yvqh9W_ecommercePrimaryAction{border-radius:999px;width:100%;height:38px;font-size:13.5px}.Yvqh9W_previewBadge{background:var(--dsw-alias-brand-primary);color:#fff;letter-spacing:.02em;border-radius:4px;margin-left:5px;padding:0 4px;font-size:9px;font-weight:700;line-height:13px}.Yvqh9W_ecommercePlanNote{color:var(--dsw-alias-label-secondary);font-size:11.5px;line-height:1.5}.Yvqh9W_ecommercePlanWarn{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);border-radius:6px;padding:6px 8px;font-size:11.5px;line-height:1.5}.Yvqh9W_ecommerceAssets{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.Yvqh9W_ecommerceAsset{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-3);border-radius:8px;flex-direction:column;gap:3px;padding:4px;display:flex;position:relative}.Yvqh9W_ecommerceAsset img{object-fit:cover;border-radius:5px;width:100%;height:44px}.Yvqh9W_ecommerceAsset select{width:100%;min-width:0;padding:2px;font-size:10px}.Yvqh9W_ecommerceAsset button{color:#fff;cursor:pointer;text-align:center;background:#0000008c;border:none;border-radius:50%;width:16px;height:16px;padding:0;font-size:11px;line-height:15px;position:absolute;top:7px;right:7px}.Yvqh9W_ecommerceAsset button:hover{background:#000c}.Yvqh9W_ecommerceAssetAdd{border:1.5px dashed var(--dsw-alias-border-l2);min-height:78px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;background:0 0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.Yvqh9W_ecommerceAssetAdd:hover{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-label-dimmed)}.Yvqh9W_ecommerceAssetAdd span{font-size:16px;line-height:1}.Yvqh9W_ecommerceAssetAdd small{font-size:10px}.Yvqh9W_ecommerceAdvancedToggle{width:100%;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;background:0 0;border:none;justify-content:space-between;align-items:center;padding:0;font-size:12.5px;display:flex}.Yvqh9W_ecommerceAdvancedToggle:hover{color:var(--dsw-alias-label-primary)}.Yvqh9W_ecommerceAdvancedChevron{font-size:11px}.Yvqh9W_ecommerceAdvancedBody{flex-direction:column;gap:8px;margin-top:8px;display:flex}.Yvqh9W_ecommerceFooterBody{flex-direction:column;gap:8px;display:flex}.Yvqh9W_ecommercePlanMini{border:1px solid var(--dsw-alias-brand-primary);border-radius:10px;flex-direction:column;gap:6px;padding:10px;display:flex}.Yvqh9W_ecommercePlanMini>strong{font-size:12.5px}.Yvqh9W_ecommercePlanList{flex-direction:column;gap:3px;max-height:116px;display:flex;overflow-y:auto}.Yvqh9W_ecommercePlanList>div{color:var(--dsw-alias-label-secondary);justify-content:space-between;gap:12px;font-size:11.5px;display:flex}.Yvqh9W_ecommercePlanBack{color:var(--dsw-alias-label-tertiary);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;font-size:12px}.Yvqh9W_ecommercePlanBack:hover{color:var(--dsw-alias-label-primary)}.Yvqh9W_ecommerceFooterHint{color:var(--dsw-alias-label-secondary);font-size:12px}.Yvqh9W_ecommerceResults{flex-direction:column;gap:14px;width:100%;margin:0 auto;padding:16px 18px;display:flex;overflow-y:auto}.Yvqh9W_ecommerceResultsHeader{justify-content:space-between;align-items:center;gap:12px;display:flex}.Yvqh9W_ecommerceResultsHeader h3{margin:0;font-size:15px}.Yvqh9W_ecommerceResultsHeader>div:first-child{align-items:baseline;gap:10px;display:flex}.Yvqh9W_ecommerceResultsHeader span{color:var(--dsw-alias-label-secondary);font-size:12px}.Yvqh9W_ecommerceResultsActions{gap:8px;display:flex}.Yvqh9W_ecommerceResultsEmpty{color:var(--dsw-alias-label-tertiary);text-align:center;border:1.5px dashed var(--dsw-alias-border-l2);border-radius:12px;padding:32px 16px;font-size:13px}.Yvqh9W_ecommerceGroups{flex-direction:column;gap:16px;display:flex}.Yvqh9W_ecommerceGroup{background:0 0;border:none;border-radius:0;flex-direction:column;gap:8px;padding:0;display:flex}.Yvqh9W_ecommerceGroup>header{align-items:center;gap:10px;font-size:13px;display:flex}.Yvqh9W_ecommerceGroup>header strong{font-size:13px}.Yvqh9W_ecommerceGroup>header span{color:var(--dsw-alias-label-secondary);font-size:12px}.Yvqh9W_ecommerceGroup>header button{margin-left:auto}.Yvqh9W_ecommerceGroupGrid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.Yvqh9W_ecommerceTaskCard{aspect-ratio:1;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-3);border-radius:10px;justify-content:center;align-items:center;width:100%;min-height:0;padding:0;display:flex;position:relative;overflow:hidden}.Yvqh9W_ecommerceTaskCard[data-status=failed],.Yvqh9W_ecommerceTaskCard[data-status=cancelled]{color:var(--dsw-alias-label-tertiary);font-size:12px}.Yvqh9W_ecommerceTaskCard .Yvqh9W_imageCard{border:none;border-radius:0;width:100%;height:100%;margin:0}.Yvqh9W_ecommerceTaskCard .Yvqh9W_image{object-fit:cover;width:100%;height:100%}.Yvqh9W_ecommerceResultBadge{color:#fff;pointer-events:none;background:#0000008c;border-radius:999px;padding:0 7px;font-size:10px;line-height:16px;position:absolute;top:6px;left:6px}.Yvqh9W_ecommerceTaskActions{opacity:0;background:linear-gradient(#0000,#0000008c);justify-content:center;gap:4px;padding:10px 4px 5px;transition:opacity .12s;display:flex;position:absolute;bottom:0;left:0;right:0}.Yvqh9W_ecommerceTaskCard:hover .Yvqh9W_ecommerceTaskActions{opacity:1}.Yvqh9W_ecommerceActionChip{color:#111;cursor:pointer;white-space:nowrap;background:#ffffffeb;border:none;border-radius:6px;padding:0 6px;font-size:10px;font-weight:500;line-height:18px;text-decoration:none}.Yvqh9W_ecommerceActionChip:hover{background:#fff}.Yvqh9W_ecommerceActionChip:disabled{opacity:.5;cursor:default}.Yvqh9W_ecommerceTaskState{color:var(--dsw-alias-label-secondary);text-align:center;word-break:break-all;flex-direction:column;gap:3px;padding:10px 8px;font-size:11px;display:flex}.Yvqh9W_ecommerceTaskState b{color:var(--dsw-alias-label-primary);font-size:12px}.Yvqh9W_topNav{flex:none;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.Yvqh9W_topNavItem{height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;background:0 0;border:none;border-radius:999px;align-items:center;gap:4px;padding:0 14px;font-size:13px;display:inline-flex}.Yvqh9W_topNavItem,.Yvqh9W_topNavItem span{white-space:nowrap}.Yvqh9W_topNavItem:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.Yvqh9W_topNavItem[data-active]{background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-base);font-weight:600}.Yvqh9W_topNavDivider{background:var(--dsw-alias-border-l2);width:1px;height:16px;margin:0 8px}.Yvqh9W_panelHeaderActions{align-items:center;gap:10px;display:inline-flex}.Yvqh9W_chatToggle{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);height:26px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;border-radius:999px;align-items:center;gap:5px;padding:0 10px;font-size:12px;display:inline-flex}.Yvqh9W_chatToggle:hover{color:var(--dsw-alias-label-primary)}.Yvqh9W_chatToggle[data-open=true]{color:var(--dsw-alias-brand-primary);border-color:var(--dsw-alias-brand-primary)}html[data-dsh-imagegen-chat-collapsed][data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [data-pane=conversation],html[data-dsh-imagegen-chat-collapsed][data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [class*=centerCol]{grid-template-columns:minmax(0,1fr)}html[data-dsh-imagegen-chat-collapsed][data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [data-slot=conversation],html[data-dsh-imagegen-chat-collapsed] [data-dsh-imagegen-chat-resizer]{display:none!important}.Yvqh9W_configResizer{cursor:col-resize;z-index:6;width:6px;height:100%;position:absolute;top:0;right:0}.Yvqh9W_configResizer:hover{background:linear-gradient(90deg, transparent, var(--dsw-alias-border-l2))}.Yvqh9W_config[data-collapsed=true] .Yvqh9W_configResizer{display:none}.Yvqh9W_modeRow{align-items:center;gap:8px;display:flex}.Yvqh9W_modePill{flex:1;justify-content:center;height:28px;font-size:12.5px}.Yvqh9W_modePill,.Yvqh9W_modePill span,.Yvqh9W_modePill div{white-space:nowrap;min-width:0}.Yvqh9W_uploadBox{min-height:128px;color:var(--dsw-alias-label-secondary);border:1.5px dashed var(--dsw-alias-border-l2);cursor:pointer;font:inherit;text-align:center;background:0 0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:16px;font-size:12.5px;display:flex}.Yvqh9W_uploadBox:hover{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-label-dimmed);background:var(--dsw-alias-interactive-bg-hover)}.Yvqh9W_uploadBox:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}.Yvqh9W_uploadIcon{color:var(--dsw-alias-label-tertiary);display:inline-flex}.Yvqh9W_uploadHint{color:var(--dsw-alias-label-tertiary);font-size:11px}.Yvqh9W_reference{flex-direction:column;gap:8px;display:flex}.Yvqh9W_referenceImage{object-fit:contain;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l1);border-radius:10px;width:100%;max-height:176px}.Yvqh9W_referenceActions{gap:8px;display:flex}.Yvqh9W_hiddenFile{display:none}.Yvqh9W_prompt{width:100%;min-height:120px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-3);border:1px solid var(--dsw-alias-border-l2);resize:vertical;box-sizing:border-box;border-radius:10px;outline:none;padding:10px 12px;font-family:inherit;font-size:13px;line-height:1.6}.Yvqh9W_prompt:focus-visible{border-color:var(--dsw-alias-brand-primary)}.Yvqh9W_prompt::placeholder{color:var(--dsw-alias-label-tertiary)}.Yvqh9W_promptFooter{justify-content:space-between;align-items:center;gap:8px;margin-top:-6px;display:flex}.Yvqh9W_templatesButton{border:1px solid var(--dsw-alias-brand-primary);background:linear-gradient(135deg, color-mix(in srgb, var(--dsw-alias-brand-primary) 14%, transparent), color-mix(in srgb, var(--dsw-alias-brand-primary) 5%, transparent));height:26px;color:var(--dsw-alias-brand-primary);cursor:pointer;box-shadow:0 1px 0 color-mix(in srgb, var(--dsw-alias-brand-primary) 22%, transparent);border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:12px;font-weight:600;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex}.Yvqh9W_templatesButton svg{flex:none}.Yvqh9W_templatesButton:hover{background:linear-gradient(135deg, color-mix(in srgb, var(--dsw-alias-brand-primary) 24%, transparent), color-mix(in srgb, var(--dsw-alias-brand-primary) 8%, transparent));color:var(--dsw-alias-brand-primary);box-shadow:0 2px 6px color-mix(in srgb, var(--dsw-alias-brand-primary) 30%, transparent);transform:translateY(-1px)}.Yvqh9W_templatesButton:active{transform:translateY(0)}.Yvqh9W_enhanceButton{border:1px solid var(--dsw-alias-border-l2);height:26px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);font:inherit;cursor:pointer;border-radius:999px;margin-left:auto;padding:0 11px;font-size:12px}.Yvqh9W_enhanceButton:hover:not(:disabled){color:var(--dsw-alias-brand-primary);border-color:var(--dsw-alias-brand-primary)}.Yvqh9W_enhanceButton:disabled{opacity:.5;cursor:default}.Yvqh9W_promptCount{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;font-size:11px}.Yvqh9W_promptCount[data-over]{color:var(--dsw-alias-status-danger,#e5484d);font-weight:600}.Yvqh9W_paramGroup{flex-direction:column;gap:8px;display:flex}.Yvqh9W_paramLabel{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:600}.Yvqh9W_optionRow{flex-wrap:wrap;gap:6px;display:flex}.Yvqh9W_optionGrid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.Yvqh9W_optionPill{justify-content:center}.Yvqh9W_paramHint{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:1.45}.Yvqh9W_footer{border-top:1px solid var(--dsw-alias-border-l1);flex-direction:column;flex:none;align-items:stretch;gap:8px;padding:10px 2px 0 0;display:flex}.Yvqh9W_modelWrap{flex-direction:column;gap:5px;min-width:0;display:flex}.Yvqh9W_modelLabel{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:600}.Yvqh9W_modelSelect{width:100%;height:36px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);cursor:pointer;text-align:left;border-radius:18px;outline:none;justify-content:space-between;align-items:center;gap:8px;padding:0 12px;font-family:inherit;font-size:13px;display:flex}.Yvqh9W_modelSelect:focus-visible{border-color:var(--dsw-alias-brand-primary)}.Yvqh9W_modelSelect:disabled{opacity:.55;cursor:default}.Yvqh9W_modelMenu{min-width:0;display:block;position:relative}.Yvqh9W_modelMenuList{z-index:40;background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:12px;flex-direction:column;padding:4px;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;right:0;overflow:hidden;box-shadow:0 -8px 24px #0000002e}.Yvqh9W_modelMenuItem{width:100%;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:8px;padding:7px 10px;font-size:13px;display:block;overflow:hidden}.Yvqh9W_modelMenuItem:hover{background:var(--dsw-alias-bg-hover)}.Yvqh9W_modelMenuItem[data-selected]{color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-1);font-weight:600}.Yvqh9W_generateButton{width:100%}.Yvqh9W_generateInner{align-items:center;gap:7px;display:inline-flex}.Yvqh9W_canvasState{text-align:center;color:var(--dsw-alias-label-tertiary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.Yvqh9W_canvasStateTitle{color:var(--dsw-alias-label-secondary);font-size:14px;font-weight:600}.Yvqh9W_canvasStateHint{max-width:380px;font-size:12px;line-height:1.6}.Yvqh9W_canvasEmptyIcon{color:var(--dsw-alias-label-tertiary);margin-bottom:4px;display:inline-flex}.Yvqh9W_canvasError{color:var(--dsw-alias-label-error);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-label-error);overflow-wrap:anywhere;border-radius:10px;flex:none;margin:14px;padding:10px 14px;font-size:12.5px;line-height:1.6}.Yvqh9W_canvasBody{scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex-direction:column;flex:1;gap:10px;min-height:0;padding:14px;display:flex;overflow-y:auto}.Yvqh9W_canvasBody::-webkit-scrollbar{width:8px}.Yvqh9W_canvasBody::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Yvqh9W_canvasMeta{color:var(--dsw-alias-label-tertiary);flex:none;align-items:center;gap:8px;font-size:12px;display:flex}.Yvqh9W_canvasHistoryTag{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:11px}.Yvqh9W_grid{flex:1;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-height:0;display:grid}.Yvqh9W_grid[data-count=\"1\"] .Yvqh9W_imageCard{grid-area:1/1/3/3}.Yvqh9W_imageCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);cursor:zoom-in;border-radius:12px;flex-direction:column;min-height:0;margin:0;display:flex;position:relative;overflow:hidden}.Yvqh9W_imageCard:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}.Yvqh9W_image{object-fit:cover;background:var(--dsw-alias-bg-base);flex:1;width:100%;min-height:0;display:block}.Yvqh9W_imageCaption{color:var(--dsw-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;border-top:1px solid var(--dsw-alias-border-l1);padding:7px 10px;font-size:11px;line-height:1.5;overflow:hidden}.Yvqh9W_download{color:#fff;opacity:0;backdrop-filter:blur(4px);background:#0f1218d1;border:1px solid #ffffff9e;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:500;line-height:20px;text-decoration:none;transition:opacity .12s;position:absolute;top:8px;right:8px;box-shadow:0 2px 8px #00000047}.Yvqh9W_imageCard:hover .Yvqh9W_download{opacity:1}.Yvqh9W_download:hover{background:#0f1218f0}.Yvqh9W_download:focus-visible{opacity:1;outline-offset:2px;outline:2px solid #fff}.Yvqh9W_galleryAdd{font:inherit;color:#fff;cursor:pointer;opacity:0;backdrop-filter:blur(4px);background:#0f1218d1;border:1px solid #ffffff9e;border-radius:999px;align-items:center;gap:5px;padding:2px 10px;font-size:12px;font-weight:500;line-height:20px;transition:opacity .12s;display:inline-flex;position:absolute;top:8px;left:8px;box-shadow:0 2px 8px #00000047}.Yvqh9W_imageCard:hover .Yvqh9W_galleryAdd{opacity:1}.Yvqh9W_galleryAdd:hover{background:#0f1218f0}.Yvqh9W_galleryAdd:focus-visible{opacity:1;outline-offset:2px;outline:2px solid #fff}.Yvqh9W_galleryAdd:disabled{opacity:.4;cursor:default}.Yvqh9W_conversationAdd{color:#fff;cursor:pointer;font:inherit;opacity:0;backdrop-filter:blur(4px);background:#0f1218d1;border:1px solid #ffffff9e;border-radius:999px;align-items:center;gap:5px;padding:2px 10px;font-size:12px;font-weight:500;line-height:20px;transition:opacity .12s;display:inline-flex;position:absolute;top:38px;left:8px;box-shadow:0 2px 8px #00000047}.Yvqh9W_imageCard:hover .Yvqh9W_conversationAdd,.Yvqh9W_conversationAdd:focus-visible{opacity:1}.Yvqh9W_conversationAdd:hover{background:#0f1218f0}.Yvqh9W_conversationAdd:focus-visible{opacity:1;outline-offset:2px;outline:2px solid #fff}.Yvqh9W_conversationAdd:disabled{opacity:.4;cursor:default}.Yvqh9W_zoomHint{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-mask-1);border:1px solid var(--dsw-alias-border-l2);opacity:0;backdrop-filter:blur(4px);pointer-events:none;border-radius:999px;align-items:center;gap:5px;padding:2px 10px;font-size:12px;font-weight:500;line-height:20px;transition:opacity .12s;display:inline-flex;position:absolute;bottom:8px;left:8px}.Yvqh9W_imageCard:hover .Yvqh9W_zoomHint{opacity:1}.Yvqh9W_spinner,.Yvqh9W_bigSpinner{border:2px solid;border-top-color:#0000;border-radius:50%;flex:none;animation:.8s linear infinite Yvqh9W_dshImageGenSpin;display:inline-block}.Yvqh9W_spinner{width:11px;height:11px}.Yvqh9W_bigSpinner{width:30px;height:30px;color:var(--dsw-alias-state-business-primary);border-width:3px;margin-bottom:6px}.Yvqh9W_lightbox{z-index:1000;backdrop-filter:blur(6px);background:#000000b8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.Yvqh9W_lightboxClose{color:#fff;cursor:pointer;background:#ffffff24;border:1px solid #ffffff47;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex;position:absolute;top:16px;right:16px}.Yvqh9W_lightboxClose:hover{background:#ffffff42}.Yvqh9W_lightboxNav{color:#fff;cursor:pointer;background:#ffffff24;border:1px solid #ffffff47;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.Yvqh9W_lightboxNav:hover{background:#ffffff42}.Yvqh9W_lightboxNav[data-dir=prev]{left:max(20px,50% - 640px)}.Yvqh9W_lightboxNav[data-dir=next]{right:max(20px,50% - 640px)}.Yvqh9W_lightboxFigure{flex-direction:column;gap:10px;width:min(1100px,100vw - 160px);max-width:min(1100px,100vw - 160px);height:min(820px,100vh - 48px);min-height:0;margin:0;display:flex}.Yvqh9W_lightboxStage{background:#ffffff0a;border-radius:10px;flex:1;min-height:0;position:relative;overflow:auto}.Yvqh9W_lightboxScaleFrame{justify-content:center;align-items:center;min-width:100%;min-height:100%;display:flex}.Yvqh9W_lightboxImage{object-fit:contain;border-radius:10px;max-width:100%;max-height:100%;display:block;box-shadow:0 24px 80px #00000080}.Yvqh9W_lightboxTools{justify-content:center;align-items:center;gap:6px;display:flex}.Yvqh9W_lightboxTool,.Yvqh9W_lightboxZoomLevel,.Yvqh9W_lightboxCopy{color:#fff;cursor:pointer;background:#ffffff24;border:1px solid #ffffff47;justify-content:center;align-items:center;display:inline-flex}.Yvqh9W_lightboxTool,.Yvqh9W_lightboxZoomLevel{height:32px}.Yvqh9W_lightboxTool{border-radius:50%;width:32px}.Yvqh9W_lightboxZoomLevel{min-width:58px;font:inherit;font-variant-numeric:tabular-nums;border-radius:999px;padding:0 9px;font-size:12px}.Yvqh9W_lightboxTool:hover,.Yvqh9W_lightboxZoomLevel:hover,.Yvqh9W_lightboxCopy:hover{background:#ffffff42}.Yvqh9W_lightboxCaptionRow{align-items:flex-start;gap:8px;min-width:0;display:flex}.Yvqh9W_lightboxCaption{color:#ffffffe6;-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:1;min-width:0;font-size:12px;line-height:1.6;display:-webkit-box;overflow:hidden}.Yvqh9W_lightboxCopy{min-height:28px;font:inherit;white-space:nowrap;border-radius:999px;flex:none;gap:5px;padding:4px 9px;font-size:12px}.Yvqh9W_lightboxMeta{justify-content:space-between;align-items:center;gap:12px;display:flex}.Yvqh9W_lightboxIndex{color:#fffc;font-variant-numeric:tabular-nums;font-size:12px}.Yvqh9W_lightboxActions{align-items:center;gap:8px;display:inline-flex}.Yvqh9W_lightboxDownload,.Yvqh9W_lightboxEdit{font:inherit;color:#fff;cursor:pointer;background:#ffffff24;border:1px solid #ffffff47;border-radius:999px;padding:4px 14px;font-size:12.5px;font-weight:500;text-decoration:none}.Yvqh9W_lightboxDownload:hover,.Yvqh9W_lightboxEdit:hover{background:#ffffff42}.Yvqh9W_lightboxEdit{color:#fff;background:#ffffff24;border:1px solid #ffffff47;border-radius:999px}@media (width<=720px){.Yvqh9W_lightbox{padding:16px}.Yvqh9W_lightboxFigure{width:calc(100vw - 32px);max-width:none}.Yvqh9W_lightboxNav[data-dir=prev]{left:20px}.Yvqh9W_lightboxNav[data-dir=next]{right:20px}.Yvqh9W_lightboxCaptionRow,.Yvqh9W_lightboxMeta{flex-direction:column;align-items:stretch}.Yvqh9W_lightboxCopy,.Yvqh9W_lightboxActions{align-self:flex-end}}@keyframes Yvqh9W_dshImageGenSpin{to{transform:rotate(360deg)}}.Yvqh9W_galleryToast{z-index:30;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-mask-1);border:1px solid var(--dsw-alias-border-l2);backdrop-filter:blur(6px);pointer-events:none;border-radius:999px;align-items:center;gap:7px;padding:6px 16px;font-size:13px;font-weight:500;animation:.16s ease-out Yvqh9W_dshImageGenToastIn;display:inline-flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000038}@keyframes Yvqh9W_dshImageGenToastIn{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.Yvqh9W_conversationToast{z-index:30;border:1px solid var(--dsw-alias-border-l2);max-width:calc(100% - 32px);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-mask-1);pointer-events:none;backdrop-filter:blur(6px);border-radius:999px;align-items:center;gap:7px;padding:6px 16px;font-size:13px;font-weight:500;animation:.16s ease-out Yvqh9W_dshImageGenToastIn;display:inline-flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000038}@media (prefers-reduced-motion:reduce){.Yvqh9W_download,.Yvqh9W_spinner,.Yvqh9W_bigSpinner{transition:none;animation-duration:1.5s}}.Yvqh9W_config[data-gallery=true] .Yvqh9W_configScroll{flex:none;order:1;display:flex;overflow:visible}.Yvqh9W_config[data-gallery=true] .Yvqh9W_galleryFilters{flex:1;order:2;min-height:0}.Yvqh9W_galleryFilters{padding:18px 14px;overflow:hidden auto}.Yvqh9W_galleryFilterHeading{color:var(--dsw-alias-label-tertiary);margin:0 4px 10px;font-size:12px;font-weight:600}.Yvqh9W_galleryFilter{width:100%;min-height:34px;color:var(--dsw-alias-label-secondary);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:9px;justify-content:space-between;align-items:center;padding:0 10px;display:flex}.Yvqh9W_galleryFilter:hover,.Yvqh9W_galleryFilter[data-active]{color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 10%, transparent)}.Yvqh9W_galleryFilterCount{min-width:20px;color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-layer-2);text-align:center;border-radius:999px;padding:1px 6px;font-size:11px}.Yvqh9W_galleryFilterDivider{background:var(--dsw-alias-border-l1);height:1px;margin:18px 4px}.Yvqh9W_galleryRatioList{flex-wrap:wrap;gap:6px;display:flex}.Yvqh9W_galleryRatio{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);cursor:pointer;border:0;border-radius:999px;padding:6px 10px;font-size:12px}.Yvqh9W_galleryRatio[data-active]{color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 13%, transparent)}.Yvqh9W_galleryTagFilterList{flex-wrap:wrap;gap:6px;display:flex}.Yvqh9W_galleryTagFilter{border:1px solid var(--dsw-alias-border-l1);min-width:0;max-width:100%;min-height:27px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);cursor:pointer;font:inherit;border-radius:6px;align-items:center;gap:5px;padding:0 8px;font-size:11px;display:inline-flex}.Yvqh9W_galleryTagFilter span:first-child{text-overflow:ellipsis;white-space:nowrap;max-width:112px;overflow:hidden}.Yvqh9W_galleryTagFilter span:last-child{color:var(--dsw-alias-label-tertiary);font-size:10px}.Yvqh9W_galleryTagFilter:hover,.Yvqh9W_galleryTagFilter[data-active]{color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 10%, transparent)}.Yvqh9W_galleryFilterNote{color:var(--dsw-alias-label-quaternary);margin:20px 4px 0;font-size:11px;line-height:1.5}.Yvqh9W_galleryWorkspace{box-sizing:border-box;flex-direction:column;width:100%;min-width:0;height:100%;min-height:0;padding:22px 24px 26px;display:flex;position:absolute;inset:0;overflow:hidden}.Yvqh9W_galleryToolbar{flex:none;justify-content:space-between;align-items:center;gap:16px;min-width:0;margin-bottom:18px;display:flex}.Yvqh9W_galleryHeading{color:var(--dsw-alias-label-primary);margin:0;font-size:20px;font-weight:700;display:inline}.Yvqh9W_galleryCount{color:var(--dsw-alias-label-tertiary);margin-left:8px;font-size:13px}.Yvqh9W_galleryToolbarActions{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.Yvqh9W_gallerySelectMode,.Yvqh9W_galleryBulkButton,.Yvqh9W_gallerySelectionClear{border:1px solid var(--dsw-alias-border-l1);min-height:30px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);cursor:pointer;font:inherit;border-radius:7px;padding:0 10px;font-size:12px}.Yvqh9W_gallerySelectMode:hover,.Yvqh9W_gallerySelectMode[data-active],.Yvqh9W_galleryBulkButton:hover:not(:disabled){color:var(--dsw-alias-brand-primary);border-color:color-mix(in srgb, var(--dsw-alias-brand-primary) 38%, var(--dsw-alias-border-l1));background:color-mix(in srgb, var(--dsw-alias-brand-primary) 11%, transparent)}.Yvqh9W_galleryBulkButton:disabled{cursor:not-allowed;opacity:.45}.Yvqh9W_gallerySelectionBar{border:1px solid color-mix(in srgb, var(--dsw-alias-brand-primary) 35%, var(--dsw-alias-border-l1));background:color-mix(in srgb, var(--dsw-alias-brand-primary) 7%, var(--dsw-alias-bg-layer-1));border-radius:9px;flex:none;align-items:center;gap:10px;min-width:0;margin:-4px 0 16px;padding:10px 12px;display:flex}.Yvqh9W_gallerySelectionBar strong{color:var(--dsw-alias-brand-primary);flex:none;font-size:12px}.Yvqh9W_gallerySelectionClear{margin-left:auto}.Yvqh9W_gallerySelectionClear:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2)}.Yvqh9W_galleryTagInput,.Yvqh9W_gallerySearch{border:1px solid var(--dsw-alias-border-l1);min-width:0;height:30px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);font:inherit;border-radius:7px;outline:none;padding:0 10px;font-size:12px}.Yvqh9W_galleryTagInput{flex:190px}.Yvqh9W_galleryTagInput:focus,.Yvqh9W_gallerySearch:focus{border-color:var(--dsw-alias-brand-primary)}.Yvqh9W_galleryViewToggle{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:9px;padding:3px;display:flex}.Yvqh9W_galleryViewToggle button,.Yvqh9W_gallerySort,.Yvqh9W_galleryClear{min-height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:7px;padding:0 10px;font-size:12px}.Yvqh9W_galleryViewToggle button[data-active],.Yvqh9W_galleryViewToggle button:hover,.Yvqh9W_gallerySort:hover,.Yvqh9W_galleryClear:hover{color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 11%, transparent)}.Yvqh9W_gallerySort{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1)}.Yvqh9W_galleryClear{border:1px solid var(--dsw-alias-border-l1)}.Yvqh9W_compareControl{flex-direction:column;gap:6px;margin:0 0 10px;display:flex}.Yvqh9W_compareToggle,.Yvqh9W_compareModelChoices label{color:var(--dsw-alias-label-secondary);cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.Yvqh9W_compareToggle input,.Yvqh9W_compareModelChoices input{accent-color:var(--dsw-alias-brand-primary)}.Yvqh9W_compareModelChoices{flex-wrap:wrap;gap:6px;display:flex}.Yvqh9W_compareModelChoices label{border:1px solid var(--dsw-alias-border-l1);border-radius:5px;padding:4px 6px;font-size:10px}.Yvqh9W_comparisonBoard{z-index:4;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);border-radius:8px;flex-direction:column;display:flex;position:absolute;inset:14px;overflow:hidden;box-shadow:0 8px 24px #0000001f}.Yvqh9W_comparisonBoard>header{border-bottom:1px solid var(--dsw-alias-border-l1);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.Yvqh9W_comparisonBoard>header div{align-items:baseline;gap:7px;display:flex}.Yvqh9W_comparisonBoard>header strong{color:var(--dsw-alias-label-primary);font-size:13px}.Yvqh9W_comparisonBoard>header span{color:var(--dsw-alias-label-tertiary);font-size:11px}.Yvqh9W_comparisonBoard>header button{border:1px solid var(--dsw-alias-border-l1);min-height:28px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);cursor:pointer;font:inherit;border-radius:5px;padding:0 9px;font-size:11px}.Yvqh9W_comparisonGrid{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;min-height:0;padding:12px;display:grid;overflow:auto}.Yvqh9W_comparisonGrid article{flex-direction:column;gap:7px;min-width:0;height:100%;min-height:0;display:flex}.Yvqh9W_comparisonGrid article>strong{color:var(--dsw-alias-label-primary);font-size:12px}.Yvqh9W_comparisonImageButton{cursor:zoom-in;background:var(--dsw-alias-bg-base);border:0;flex:1;width:100%;min-height:0;padding:0;display:flex;overflow:hidden}.Yvqh9W_comparisonImageButton:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:-2px}.Yvqh9W_comparisonGrid article>span{min-height:0;color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-layer-2);flex:1;place-items:center;font-size:12px;display:grid}.Yvqh9W_comparisonGrid img{object-fit:contain;background:var(--dsw-alias-bg-base);flex:1;width:100%;height:100%;min-height:0;max-height:none;display:block}.Yvqh9W_comparisonFullscreen{z-index:1200;background:#000000eb;padding:54px 24px 24px;position:fixed;inset:0;overflow:auto}.Yvqh9W_comparisonFullscreenGrid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:18px;min-height:100%;display:grid}.Yvqh9W_comparisonFullscreen figure{min-width:0;margin:0}.Yvqh9W_comparisonFullscreen figcaption{color:#fff;margin-bottom:8px;font-size:13px;font-weight:600}.Yvqh9W_comparisonFullscreen img{background:#111;width:100%;margin-bottom:10px;display:block}.Yvqh9W_historyItem[data-comparison]{border-color:color-mix(in srgb, var(--dsw-alias-brand-primary) 55%, var(--dsw-alias-border-l1))}.Yvqh9W_galleryMasonry{box-sizing:border-box;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex:auto;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:max-content;align-content:start;gap:16px;width:100%;min-width:0;max-width:100%;height:0;min-height:0;padding:2px 8px 16px 2px;display:grid;overflow:hidden scroll}.Yvqh9W_galleryMasonry::-webkit-scrollbar{width:8px}.Yvqh9W_galleryMasonry::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Yvqh9W_galleryCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:14px;width:100%;margin:0;display:block;position:relative;overflow:hidden;box-shadow:0 5px 18px #18203612}.Yvqh9W_galleryCard[data-selected]{border-color:var(--dsw-alias-brand-primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--dsw-alias-brand-primary) 26%, transparent), 0 5px 18px #18203612}.Yvqh9W_gallerySelect{z-index:2;cursor:pointer;background:#00000094;border:1px solid #ffffffbf;border-radius:7px;place-items:center;width:26px;height:26px;display:grid;position:absolute;top:9px;right:9px}.Yvqh9W_gallerySelect input{width:16px;height:16px;accent-color:var(--dsw-alias-brand-primary);cursor:pointer;margin:0}.Yvqh9W_galleryImageButton{background:var(--dsw-alias-bg-base);cursor:zoom-in;border:0;width:100%;padding:0;display:block;position:relative}.Yvqh9W_galleryImageButton[data-selecting]{cursor:pointer}.Yvqh9W_galleryImage{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.Yvqh9W_galleryMasonry[data-view=masonry] .Yvqh9W_galleryCard:nth-child(3n+1) .Yvqh9W_galleryImage{aspect-ratio:4/5}.Yvqh9W_galleryMasonry[data-view=masonry] .Yvqh9W_galleryCard:nth-child(3n+2) .Yvqh9W_galleryImage{aspect-ratio:4/3}.Yvqh9W_galleryMasonry[data-view=masonry] .Yvqh9W_galleryCard:nth-child(3n) .Yvqh9W_galleryImage{aspect-ratio:3/4}.Yvqh9W_galleryBadge{color:#fff;backdrop-filter:blur(4px);background:#121724c2;border-radius:999px;padding:4px 9px;font-size:11px;position:absolute;top:10px;left:10px}.Yvqh9W_galleryCardActions{padding:8px 12px 0;display:flex}.Yvqh9W_galleryCardAction{border:1px solid var(--dsw-alias-border-l2);width:100%;min-width:0;min-height:28px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);cursor:pointer;font:inherit;white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;gap:4px;padding:0 4px;font-size:10px;font-weight:500;display:inline-flex}.Yvqh9W_galleryCardAction:hover,.Yvqh9W_galleryCardAction:focus-visible{border-color:var(--dsw-alias-brand-primary);color:var(--dsw-alias-brand-primary);outline:none}.Yvqh9W_galleryCardAction:disabled{cursor:wait;opacity:.55}.Yvqh9W_galleryCardFooter{align-items:center;gap:9px;min-width:0;padding:10px 12px;display:flex}.Yvqh9W_galleryAvatar{color:#fff;background:var(--dsw-alias-brand-primary);border-radius:50%;flex:none;place-items:center;width:27px;height:27px;font-size:12px;font-weight:700;display:grid}.Yvqh9W_galleryCardInfo{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.Yvqh9W_galleryCardInfo strong,.Yvqh9W_galleryCardInfo small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Yvqh9W_galleryCardInfo strong{color:var(--dsw-alias-label-primary);font-size:12px}.Yvqh9W_galleryCardInfo small{color:var(--dsw-alias-label-tertiary);font-size:10px}.Yvqh9W_galleryTags{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.Yvqh9W_galleryTags button{max-width:96px;min-height:19px;color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 10%, transparent);cursor:pointer;font:inherit;text-overflow:ellipsis;white-space:nowrap;border:0;border-radius:4px;padding:1px 6px;font-size:10px;line-height:1.35;overflow:hidden}.Yvqh9W_galleryTags button:hover{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 17%, transparent)}.Yvqh9W_galleryTags .Yvqh9W_galleryTagEdit{color:var(--dsw-alias-label-tertiary);background:0 0;flex:none}.Yvqh9W_galleryTagEditor{align-items:center;gap:6px;padding:0 12px 10px 48px;display:flex}.Yvqh9W_galleryTagEditor input{border:1px solid var(--dsw-alias-border-l2);min-width:0;height:27px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);font:inherit;border-radius:6px;outline:none;flex:1;padding:0 8px;font-size:11px}.Yvqh9W_galleryTagEditor input:focus{border-color:var(--dsw-alias-brand-primary)}.Yvqh9W_galleryTagEditor button{border:1px solid var(--dsw-alias-border-l2);height:27px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);cursor:pointer;font:inherit;border-radius:6px;padding:0 8px;font-size:11px}.Yvqh9W_galleryTagEditor button[type=submit]{color:var(--dsw-alias-brand-primary)}.Yvqh9W_galleryRemove{width:24px;height:24px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;padding:0;font-size:18px}.Yvqh9W_galleryRemove:hover{color:var(--dsw-alias-state-error);background:var(--dsw-alias-bg-layer-2)}@media (width<=760px){.Yvqh9W_ecommerceParamGrid{grid-template-columns:1fr}.Yvqh9W_ecommerceStructureGrid,.Yvqh9W_ecommerceAssets{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=420px){.Yvqh9W_ecommerceWorkspace{padding-inline:2px}.Yvqh9W_ecommerceStructureGrid,.Yvqh9W_ecommerceAssets{grid-template-columns:1fr}}@media (width<=1100px){.Yvqh9W_galleryMasonry{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.Yvqh9W_studio{grid-template-rows:minmax(220px,36%) minmax(0,1fr);grid-template-columns:minmax(0,1fr);overflow-y:auto}.Yvqh9W_history{grid-area:1/1;min-height:220px}.Yvqh9W_generation{flex-direction:column;grid-area:2/1;min-height:0}.Yvqh9W_config{width:auto;max-width:none;height:auto;min-height:0}.Yvqh9W_config[data-gallery=true]{flex:none}.Yvqh9W_canvas{min-height:560px}.Yvqh9W_galleryToolbar{flex-direction:column;align-items:flex-start}.Yvqh9W_galleryToolbarActions{flex-wrap:wrap;width:100%}.Yvqh9W_galleryMasonry{grid-template-columns:1fr}}";
44344
+ const css$2 = "[data-pane=conversation],[class*=centerCol]{min-width:0;min-height:0;position:relative}[data-dsh-imagegen-view]{z-index:60;background:var(--dsw-alias-bg-base);grid-area:1/1;min-width:0;min-height:0;display:none;position:relative}html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [data-pane=conversation],html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [class*=centerCol]{grid-template-columns:minmax(0, 1fr) 8px minmax(320px, clamp(320px, var(--dsh-imagegen-chat-width,36%), 70%));background:var(--dsw-alias-border-l1);grid-template-rows:minmax(0,1fr);gap:1px;overflow:hidden;display:grid!important}html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [data-dsh-imagegen-view]{display:block}html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [data-slot=conversation]{background:var(--dsw-alias-bg-base);grid-area:1/3;align-items:stretch;width:auto;min-width:0;min-height:0;overflow:hidden;display:flex!important}html[data-dsh-imagegen-active] [data-slot=conversation]>[data-phase]{flex:auto;align-self:stretch;width:100%;min-width:0;max-width:none}html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [data-dsh-imagegen-chat-resizer]{grid-area:1/2}.Yvqh9W_chatResizer{z-index:70;width:8px;min-width:8px;color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-border-l1);cursor:col-resize;touch-action:none;justify-content:center;align-items:center;display:none;position:relative}.Yvqh9W_chatResizer:before{content:\"\";opacity:.55;background:currentColor;border-radius:3px;width:3px;height:36px}.Yvqh9W_chatResizer:hover,.Yvqh9W_chatResizer:focus-visible{color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-2);outline:none}html[data-dsh-imagegen-active] [data-dsh-imagegen-chat-resizer]{display:flex!important}html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [data-pane=conversation]>:not([data-dsh-imagegen-view]):not([data-slot=conversation]):not([data-dsh-imagegen-chat-resizer]),html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [class*=centerCol]>:not([data-dsh-imagegen-view]):not([data-slot=conversation]):not([data-dsh-imagegen-chat-resizer]),html[data-dsh-imagegen-active] [data-dsh-imagegen-sidebar-root]>:not([data-dsh-imagegen-session-tabs]):not([class*=logoRow]):not([class*=regionArea]):not([class*=footArea]){display:none!important}@media (width<=760px){html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [data-pane=conversation],html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [class*=centerCol]{grid-template-rows:minmax(0,1fr) minmax(340px,.9fr);grid-template-columns:minmax(0,1fr);overflow-y:auto}html[data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [data-slot=conversation]{grid-area:2/1}html[data-dsh-imagegen-active] [data-dsh-imagegen-chat-resizer]{display:none!important}}.Yvqh9W_entry{width:100%;height:32px;color:var(--dsw-alias-label-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:0 12px;font-size:13px;display:flex}.Yvqh9W_entry:hover{background:var(--dsw-specific-sidebar-nav-item-hover);color:var(--dsw-alias-label-primary)}.Yvqh9W_entry[data-active]{background:var(--dsw-specific-sidebar-nav-item-active);color:var(--dsw-alias-label-primary);font-weight:600}.Yvqh9W_entryIcon{flex:none;justify-content:center;align-items:center;display:inline-flex}.Yvqh9W_entryLabel{text-overflow:ellipsis;overflow:hidden}.Yvqh9W_sessionTabs{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:9px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px;width:100%;min-width:0;padding:3px;display:grid}.Yvqh9W_sessionTab{min-width:0;height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;white-space:nowrap;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:12px;display:inline-flex}[data-sidebar-collapsed] .Yvqh9W_sessionTabs{background:0 0;border:none;border-radius:0;flex-direction:column;gap:6px;width:auto;padding:0;display:flex}[data-sidebar-collapsed] .Yvqh9W_sessionTab{border-radius:9px;width:34px;height:34px;padding:0;font-size:0}[data-sidebar-collapsed] .Yvqh9W_sessionTabLabel{display:none}.Yvqh9W_sessionTab:hover,.Yvqh9W_sessionTab[data-active]{color:var(--dsw-alias-label-primary);background:var(--dsw-specific-sidebar-nav-item-active)}.Yvqh9W_sessionTabIcon{flex:none;justify-content:center;align-items:center;display:inline-flex}.Yvqh9W_sessionTabLabel{text-overflow:ellipsis;min-width:0;overflow:hidden}[class*=regionArea]{min-height:0;position:relative}.Yvqh9W_sidebarHistoryHost{z-index:30;background:var(--dsw-alias-bg-base);min-width:0;min-height:0;padding:6px 4px;display:none;position:absolute;inset:0;overflow:hidden}html[data-dsh-imagegen-active] .Yvqh9W_sidebarHistoryHost{display:flex}.Yvqh9W_sidebarHistoryHost .Yvqh9W_history{background:0 0;border:0;border-radius:8px;width:100%;height:100%}[data-dsh-frame][data-sidebar-collapsed] .Yvqh9W_sidebarHistoryHost{display:none}[data-dsh-frame][data-sidebar-collapsed] .Yvqh9W_entry{justify-content:center;width:100%;padding:0}[data-dsh-frame][data-sidebar-collapsed] .Yvqh9W_entryLabel{display:none}.Yvqh9W_view{width:100%;min-width:0;min-height:0;overflow:hidden}.Yvqh9W_panel,.Yvqh9W_panel *,.Yvqh9W_panel :before,.Yvqh9W_panel :after{box-sizing:border-box}.Yvqh9W_panel{background:var(--dsw-alias-bg-base);min-width:0;height:100%;min-height:0;color:var(--dsw-alias-label-primary);font-family:var(--dsw-font-family);flex-direction:column;gap:10px;padding:14px 16px 16px;display:flex;position:relative;overflow:hidden}.Yvqh9W_panelHeader{flex:none;justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.Yvqh9W_panelHeading{align-items:baseline;gap:10px;min-width:0;display:flex}.Yvqh9W_panelTitle{color:var(--dsw-alias-label-primary);white-space:nowrap;margin:0;font-size:16px;font-weight:700}.Yvqh9W_githubLink{width:22px;height:22px;color:var(--dsw-alias-label-secondary);border-radius:6px;flex:none;justify-content:center;align-items:center;text-decoration:none;transition:color .12s,background .12s;display:inline-flex}.Yvqh9W_githubLink:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2)}.Yvqh9W_connectionStatus{border:1px solid var(--dsw-alias-label-error);height:28px;color:var(--dsw-alias-label-error);font:inherit;white-space:nowrap;background:0 0;border-radius:8px;flex:none;align-items:center;gap:6px;padding:0 10px;font-size:12px;line-height:1;display:inline-flex}.Yvqh9W_connectionStatus[data-connected=true]{border-color:var(--dsw-alias-state-success-primary);color:var(--dsw-alias-state-success-primary)}.Yvqh9W_connectionDot{background:currentColor;border-radius:50%;width:6px;height:6px}.Yvqh9W_updateBanner{border:1px solid var(--dsw-alias-state-warn-primary);color:var(--dsw-alias-state-warn-primary);overflow-wrap:anywhere;border-radius:10px;flex:none;justify-content:space-between;align-items:center;gap:12px;padding:7px 10px 7px 12px;font-size:12px;line-height:1.5;display:flex}.Yvqh9W_updateBanner[data-kind=ok]{color:var(--dsw-alias-state-success-primary);border-color:var(--dsw-alias-state-success-primary)}.Yvqh9W_updateText{min-width:0}.Yvqh9W_updateActions{flex:none;align-items:center;gap:10px;display:inline-flex}.Yvqh9W_updateRelease{color:inherit;text-underline-offset:2px;white-space:nowrap;text-decoration:underline}@media (width<=700px){.Yvqh9W_panelHeader{align-items:flex-start}.Yvqh9W_panelHeading{flex-direction:column;align-items:flex-start;gap:2px}.Yvqh9W_updateBanner{flex-direction:column;align-items:flex-start}.Yvqh9W_updateActions{justify-content:space-between;width:100%}}.Yvqh9W_studio{flex:1;min-width:0;min-height:0;display:flex}.Yvqh9W_generation{gap:14px;width:100%;min-width:0;min-height:0;display:flex}.Yvqh9W_generation[data-workspace=canvas]{height:100%;display:flex}.Yvqh9W_generation[data-workspace=canvas]>.Yvqh9W_config,.Yvqh9W_generation[data-workspace=canvas]>.Yvqh9W_canvas{display:none!important}.Yvqh9W_config{width:clamp(240px, var(--dsh-imagegen-config-width,300px), 480px);flex-direction:column;flex:none;gap:12px;min-width:240px;max-width:480px;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.Yvqh9W_configHeader{flex:none;justify-content:flex-end;min-height:28px;display:flex}.Yvqh9W_configToggle{border:1px solid var(--dsw-alias-border-l1);width:28px;height:28px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;padding:0;display:inline-flex}.Yvqh9W_configToggle:hover,.Yvqh9W_configToggle:focus-visible{border-color:var(--dsw-alias-brand-primary);color:var(--dsw-alias-brand-primary);outline:none}.Yvqh9W_config[data-collapsed=true]{gap:0;width:38px;min-width:38px;max-width:38px}.Yvqh9W_config[data-collapsed=true] .Yvqh9W_configHeader{justify-content:center}.Yvqh9W_config[data-collapsed=true]>:not(.Yvqh9W_configHeader){display:none}.Yvqh9W_configScroll{scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex-direction:column;flex:1;gap:12px;min-height:0;padding-right:2px;display:flex;overflow-y:auto}.Yvqh9W_configScroll::-webkit-scrollbar{width:8px}.Yvqh9W_configScroll::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Yvqh9W_canvas{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:12px;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.Yvqh9W_taskTray{z-index:6;border:1px solid var(--dsw-alias-border-l2);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 92%, transparent);backdrop-filter:blur(10px);border-radius:9px;flex-direction:column;width:min(360px,100% - 24px);max-height:calc(100% - 24px);display:flex;position:absolute;top:12px;right:12px;overflow:hidden;box-shadow:0 8px 24px #0000001f}.Yvqh9W_taskTray[data-open=false]{width:auto;max-width:calc(100% - 24px)}.Yvqh9W_taskTrayHeader{min-height:34px;color:var(--dsw-alias-label-primary);border-bottom:1px solid var(--dsw-alias-border-l1);align-items:stretch;font-size:12px;font-weight:600;display:flex}.Yvqh9W_taskTray[data-open=false] .Yvqh9W_taskTrayHeader{border-bottom:0}.Yvqh9W_taskTrayToggle{min-width:0;color:inherit;cursor:pointer;font:inherit;font-size:inherit;font-weight:inherit;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:8px;padding:8px 10px;display:flex}.Yvqh9W_taskTrayToggle:hover{background:var(--dsw-alias-bg-layer-2)}.Yvqh9W_taskTrayCount{min-width:18px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);text-align:center;border-radius:999px;padding:1px 5px;font-size:11px;font-weight:500}.Yvqh9W_taskTrayChevron{color:var(--dsw-alias-label-tertiary);margin-left:auto;font-size:12px;font-weight:400}.Yvqh9W_taskTrayClose{border:0;border-left:1px solid var(--dsw-alias-border-l1);width:32px;color:var(--dsw-alias-label-tertiary);cursor:pointer;font:inherit;background:0 0;font-size:17px}.Yvqh9W_taskTrayClose:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2)}.Yvqh9W_taskTray[data-open=false] .Yvqh9W_taskTrayToggle{min-height:34px}.Yvqh9W_taskRows{min-height:0;overflow-y:auto}.Yvqh9W_taskTray[data-open=false] .Yvqh9W_taskRows{display:none}.Yvqh9W_taskRow{border-top:1px solid var(--dsw-alias-border-l1);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px 10px;display:grid}.Yvqh9W_taskRow:first-of-type{border-top:0}.Yvqh9W_taskStatus{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:11px}.Yvqh9W_taskRow[data-status=running] .Yvqh9W_taskStatus{color:var(--dsw-alias-brand-primary)}.Yvqh9W_taskRow[data-status=failed] .Yvqh9W_taskStatus{color:var(--dsw-alias-label-error)}.Yvqh9W_taskPrompt{color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.Yvqh9W_taskRow button{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);cursor:pointer;font:inherit;border:0;border-radius:5px;padding:2px 7px;font-size:11px}.Yvqh9W_taskRow button:hover{color:var(--dsw-alias-brand-primary)}.Yvqh9W_configGuide{z-index:1100;background:#00000059;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.Yvqh9W_configGuideBody{border:1px solid var(--dsw-alias-border-l2);width:min(360px,100%);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);border-radius:10px;flex-direction:column;gap:12px;padding:18px;display:flex;box-shadow:0 14px 40px #0003}.Yvqh9W_configGuideBody span{color:var(--dsw-alias-label-secondary);font-size:13px;line-height:1.55}.Yvqh9W_configGuideBody button{min-height:30px;color:var(--dsw-alias-bg-layer-1);background:var(--dsw-alias-brand-primary);cursor:pointer;font:inherit;border:0;border-radius:7px;align-self:flex-end;padding:0 12px;font-size:12px}.Yvqh9W_history{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:12px;flex-direction:column;width:auto;min-width:0;max-width:none;min-height:0;display:flex;overflow:hidden}.Yvqh9W_historyHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.Yvqh9W_historyHeaderActions{flex:none;align-items:center;gap:6px;display:flex}.Yvqh9W_historyFilters{border-bottom:1px solid var(--dsw-alias-border-l1);grid-template-columns:1fr 1fr;gap:6px;padding:8px 10px;display:grid}.Yvqh9W_historySearch,.Yvqh9W_historyFilters select,.Yvqh9W_gallerySearch{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);min-width:0;min-height:29px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);font:inherit;border-radius:7px;padding:0 8px;font-size:11px}.Yvqh9W_historySearch{grid-column:1/-1}.Yvqh9W_gallerySearch{width:156px}.Yvqh9W_galleryTagInput{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);width:130px;min-height:29px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);font:inherit;border-radius:7px;padding:0 8px;font-size:11px}.Yvqh9W_galleryBulkButton{border:1px solid var(--dsw-alias-border-l2);min-height:29px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);cursor:pointer;font:inherit;border-radius:7px;padding:0 8px;font-size:11px}.Yvqh9W_galleryBulkButton:hover:not(:disabled){color:var(--dsw-alias-brand-primary);border-color:var(--dsw-alias-brand-primary)}.Yvqh9W_galleryBulkButton:disabled{opacity:.45;cursor:default}.Yvqh9W_historyTitle{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:600}.Yvqh9W_historyNew{width:26px;height:26px;color:var(--dsw-alias-label-secondary);border:1px solid var(--dsw-alias-border-l2);cursor:pointer;background:0 0;border-radius:7px;justify-content:center;align-items:center;padding:0;display:inline-flex}.Yvqh9W_historyNew:hover{color:var(--dsw-alias-brand-primary);border-color:var(--dsw-alias-brand-primary)}.Yvqh9W_historyClear{font:inherit;color:var(--dsw-alias-label-tertiary);border:1px solid var(--dsw-alias-border-l2);cursor:pointer;background:0 0;border-radius:999px;padding:2px 8px;font-size:11.5px}.Yvqh9W_historyClear:hover{color:var(--dsw-alias-label-error);border-color:var(--dsw-alias-label-error)}.Yvqh9W_historyList{scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex-direction:column;flex:1;gap:8px;min-height:0;padding:10px;display:flex;overflow-y:auto}.Yvqh9W_historyList::-webkit-scrollbar{width:8px}.Yvqh9W_historyList::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Yvqh9W_historyEmpty{text-align:center;color:var(--dsw-alias-label-tertiary);flex:1;justify-content:center;align-items:center;padding:20px;font-size:12px;line-height:1.6;display:flex}.Yvqh9W_historyItem{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);border-radius:10px;flex-direction:column;flex:none;gap:6px;padding:8px;display:flex}.Yvqh9W_historyItem:hover{border-color:var(--dsw-alias-border-l2)}.Yvqh9W_historyItem[data-active]{border-color:var(--dsw-alias-brand-primary)}.Yvqh9W_historyMain{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:flex-start;gap:8px;min-width:0;padding:0;display:flex}.Yvqh9W_historyThumb{object-fit:cover;background:var(--dsw-alias-bg-base);border-radius:8px;flex:none;width:52px;height:52px}.Yvqh9W_historyThumbPlaceholder{background:var(--dsw-alias-bg-layer-3);border-radius:8px;flex:none;width:52px;height:52px}.Yvqh9W_historyInfo{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.Yvqh9W_historyPrompt{color:var(--dsw-alias-label-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.Yvqh9W_historyMeta{color:var(--dsw-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.Yvqh9W_historyActions{justify-content:flex-end;gap:4px;display:flex}.Yvqh9W_historyIconAction{width:26px;height:24px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;padding:0;display:inline-flex}.Yvqh9W_historyIconAction:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.Yvqh9W_historyIconAction:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}.Yvqh9W_historyIconAction:disabled{opacity:.5;cursor:default}.Yvqh9W_historyIconAction[data-danger]:hover{color:var(--dsw-alias-state-error);background:color-mix(in srgb, var(--dsw-alias-state-error) 10%, transparent)}.Yvqh9W_card{background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l1);border-radius:12px;flex-direction:column;flex:none;gap:10px;padding:12px;display:flex}.Yvqh9W_ecommerceWorkspace{flex-direction:column;gap:18px;max-width:760px;margin:0 auto;padding:10px 8px 18px;display:flex}.Yvqh9W_ecommerceSection{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:14px;flex-direction:column;gap:10px;padding:14px 16px 16px;display:flex;box-shadow:0 1px 2px #0f172a0a}.Yvqh9W_ecommerceSection h3{align-items:baseline;gap:7px;min-width:0;margin:0 0 2px;font-size:14px;font-weight:650;display:flex}.Yvqh9W_ecommerceSectionHint{color:var(--dsw-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:400;overflow:hidden}.Yvqh9W_ecommerceCardHead{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.Yvqh9W_ecommerceCardHead h3{flex:1;min-width:0}.Yvqh9W_ecommerceCardCount{background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-label-secondary);border-radius:999px;flex:none;padding:1px 8px;font-size:11px;line-height:16px}.Yvqh9W_ecommerceCardHint{color:var(--dsw-alias-label-tertiary);margin:-4px 0 0;font-size:11.5px;line-height:1.5}.Yvqh9W_ecommerceSection input:not([type=checkbox]),.Yvqh9W_ecommerceSection select,.Yvqh9W_ecommerceSection textarea{box-sizing:border-box;width:100%;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-3);border:1px solid var(--dsw-alias-border-l2);font:inherit;border-radius:9px;padding:9px 11px}.Yvqh9W_ecommerceSection input:not([type=checkbox]):focus-visible,.Yvqh9W_ecommerceSection select:focus-visible,.Yvqh9W_ecommerceSection textarea:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}.Yvqh9W_ecommerceSection textarea{resize:vertical;min-height:68px;line-height:1.5}.Yvqh9W_ecommerceField{flex-direction:column;gap:5px;min-width:0;display:flex}.Yvqh9W_ecommerceFieldLabel{color:var(--dsw-alias-label-secondary);font-size:11.5px}.Yvqh9W_ecommerceParamGrid{grid-template-columns:1fr 1fr;gap:12px 10px;display:grid}.Yvqh9W_ecommerceUploadHero{border:1.5px dashed var(--dsw-alias-border-l2);min-height:78px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;text-align:center;background:0 0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:12px;display:flex}.Yvqh9W_ecommerceUploadHero:hover{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-label-dimmed);background:var(--dsw-alias-interactive-bg-hover)}.Yvqh9W_ecommerceUploadHero:focus-visible,.Yvqh9W_ecommerceAssetAdd:focus-visible,.Yvqh9W_ecommerceSlotCard:focus-visible,.Yvqh9W_ecommerceAdvancedToggle:focus-visible,.Yvqh9W_ecommerceAsset button:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:2px}.Yvqh9W_ecommerceUploadHero span{font-size:12px}.Yvqh9W_ecommerceUploadHero small{color:var(--dsw-alias-label-tertiary);font-size:10.5px}.Yvqh9W_ecommerceStructureGrid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.Yvqh9W_ecommerceSlotCard{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);height:34px;color:var(--dsw-alias-label-primary);cursor:pointer;font:inherit;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;font-size:12px;display:flex;position:relative}.Yvqh9W_ecommerceSlotCard:hover{border-color:var(--dsw-alias-label-dimmed)}.Yvqh9W_ecommerceSlotCard[data-active]{background:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-base);font-weight:600}.Yvqh9W_ecommerceSlotCount{background:var(--dsw-alias-brand-primary);color:#fff;text-align:center;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;line-height:16px;position:absolute;top:-6px;right:-6px}.Yvqh9W_ecommerceRefRow{grid-template-columns:64px 1fr;align-items:center;gap:8px;display:grid}.Yvqh9W_ecommerceRefRow>span{color:var(--dsw-alias-label-secondary);font-size:12px}.Yvqh9W_ecommercePrimaryAction{border-radius:999px;width:100%;height:38px;font-size:13.5px}.Yvqh9W_previewBadge{background:var(--dsw-alias-brand-primary);color:#fff;letter-spacing:.02em;border-radius:4px;margin-left:5px;padding:0 4px;font-size:9px;font-weight:700;line-height:13px}.Yvqh9W_ecommercePlanNote{color:var(--dsw-alias-label-secondary);font-size:11.5px;line-height:1.5}.Yvqh9W_ecommercePlanWarn{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);border-radius:6px;padding:6px 8px;font-size:11.5px;line-height:1.5}.Yvqh9W_ecommerceAssets{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.Yvqh9W_ecommerceAsset{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-3);border-radius:8px;flex-direction:column;gap:3px;padding:4px;display:flex;position:relative}.Yvqh9W_ecommerceAsset img{object-fit:cover;border-radius:5px;width:100%;height:44px}.Yvqh9W_ecommerceAsset select{width:100%;min-width:0;padding:2px;font-size:10px}.Yvqh9W_ecommerceAsset button{color:#fff;cursor:pointer;text-align:center;background:#0000008c;border:none;border-radius:50%;width:16px;height:16px;padding:0;font-size:11px;line-height:15px;position:absolute;top:7px;right:7px}.Yvqh9W_ecommerceAsset button:hover{background:#000c}.Yvqh9W_ecommerceAssetAdd{border:1.5px dashed var(--dsw-alias-border-l2);min-height:78px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;background:0 0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.Yvqh9W_ecommerceAssetAdd:hover{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-label-dimmed)}.Yvqh9W_ecommerceAssetAdd span{font-size:16px;line-height:1}.Yvqh9W_ecommerceAssetAdd small{font-size:10px}.Yvqh9W_ecommerceAdvancedToggle{width:100%;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;background:0 0;border:none;justify-content:space-between;align-items:center;padding:0;font-size:12.5px;display:flex}.Yvqh9W_ecommerceAdvancedToggle:hover{color:var(--dsw-alias-label-primary)}.Yvqh9W_ecommerceAdvancedChevron{font-size:11px}.Yvqh9W_ecommerceAdvancedBody{flex-direction:column;gap:8px;margin-top:8px;display:flex}.Yvqh9W_ecommerceFooterBody{flex-direction:column;gap:8px;display:flex}.Yvqh9W_ecommercePlanMini{border:1px solid var(--dsw-alias-brand-primary);border-radius:10px;flex-direction:column;gap:6px;padding:10px;display:flex}.Yvqh9W_ecommercePlanMini>strong{font-size:12.5px}.Yvqh9W_ecommercePlanList{flex-direction:column;gap:3px;max-height:116px;display:flex;overflow-y:auto}.Yvqh9W_ecommercePlanList>div{color:var(--dsw-alias-label-secondary);justify-content:space-between;gap:12px;font-size:11.5px;display:flex}.Yvqh9W_ecommercePlanBack{color:var(--dsw-alias-label-tertiary);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;font-size:12px}.Yvqh9W_ecommercePlanBack:hover{color:var(--dsw-alias-label-primary)}.Yvqh9W_ecommerceFooterHint{color:var(--dsw-alias-label-secondary);font-size:12px}.Yvqh9W_ecommerceResults{flex-direction:column;gap:14px;width:100%;margin:0 auto;padding:16px 18px;display:flex;overflow-y:auto}.Yvqh9W_ecommerceResultsHeader{justify-content:space-between;align-items:center;gap:12px;display:flex}.Yvqh9W_ecommerceResultsHeader h3{margin:0;font-size:15px}.Yvqh9W_ecommerceResultsHeader>div:first-child{align-items:baseline;gap:10px;display:flex}.Yvqh9W_ecommerceResultsHeader span{color:var(--dsw-alias-label-secondary);font-size:12px}.Yvqh9W_ecommerceResultsActions{gap:8px;display:flex}.Yvqh9W_ecommerceResultsEmpty{color:var(--dsw-alias-label-tertiary);text-align:center;border:1.5px dashed var(--dsw-alias-border-l2);border-radius:12px;padding:32px 16px;font-size:13px}.Yvqh9W_ecommerceGroups{flex-direction:column;gap:16px;display:flex}.Yvqh9W_ecommerceGroups[data-split]{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.Yvqh9W_ecommerceGroupsSide{flex-direction:column;gap:16px;min-width:0;display:flex}.Yvqh9W_ecommerceGroup[data-main] .Yvqh9W_ecommerceGroupGrid{grid-template-columns:1fr}.Yvqh9W_ecommerceGroup{background:0 0;border:none;border-radius:0;flex-direction:column;gap:8px;padding:0;display:flex}.Yvqh9W_ecommerceGroup>header{align-items:center;gap:10px;font-size:13px;display:flex}.Yvqh9W_ecommerceGroup>header strong{font-size:13px}.Yvqh9W_ecommerceGroup>header span{color:var(--dsw-alias-label-secondary);font-size:12px}.Yvqh9W_ecommerceGroup>header button{margin-left:auto}.Yvqh9W_ecommerceGroupGrid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.Yvqh9W_ecommerceAiButton{border:1px solid color-mix(in srgb, var(--dsw-alias-brand-primary) 45%, transparent);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 10%, transparent);color:var(--dsw-alias-brand-primary);cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:600;line-height:16px;display:inline-flex}.Yvqh9W_ecommerceAiButton:hover{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 20%, transparent)}.Yvqh9W_ecommerceAiButton:disabled{opacity:.55;cursor:default}.Yvqh9W_ecommerceTaskCard{aspect-ratio:1;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-3);border-radius:10px;justify-content:center;align-items:center;width:100%;min-height:0;padding:0;display:flex;position:relative;overflow:hidden}.Yvqh9W_ecommerceTaskCard[data-status=failed],.Yvqh9W_ecommerceTaskCard[data-status=cancelled]{color:var(--dsw-alias-label-tertiary);font-size:12px}.Yvqh9W_ecommerceTaskCard .Yvqh9W_imageCard{border:none;border-radius:0;width:100%;height:100%;margin:0}.Yvqh9W_ecommerceTaskCard .Yvqh9W_image{object-fit:cover;width:100%;height:100%}.Yvqh9W_ecommerceResultBadge{color:#fff;pointer-events:none;background:#0000008c;border-radius:999px;padding:0 7px;font-size:10px;line-height:16px;position:absolute;top:6px;left:6px}.Yvqh9W_ecommerceTaskActions{opacity:0;background:linear-gradient(#0000,#0000008c);justify-content:center;gap:4px;padding:10px 4px 5px;transition:opacity .12s;display:flex;position:absolute;bottom:0;left:0;right:0}.Yvqh9W_ecommerceTaskCard:hover .Yvqh9W_ecommerceTaskActions{opacity:1}.Yvqh9W_ecommerceActionChip{color:#111;cursor:pointer;white-space:nowrap;background:#ffffffeb;border:none;border-radius:6px;padding:0 6px;font-size:10px;font-weight:500;line-height:18px;text-decoration:none}.Yvqh9W_ecommerceActionChip:hover{background:#fff}.Yvqh9W_ecommerceActionChip:disabled{opacity:.5;cursor:default}.Yvqh9W_ecommerceTaskState{color:var(--dsw-alias-label-secondary);text-align:center;word-break:break-all;flex-direction:column;gap:3px;padding:10px 8px;font-size:11px;display:flex}.Yvqh9W_ecommerceTaskState b{color:var(--dsw-alias-label-primary);font-size:12px}.Yvqh9W_topNav{flex:none;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.Yvqh9W_topNavItem{height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;background:0 0;border:none;border-radius:999px;align-items:center;gap:4px;padding:0 14px;font-size:13px;display:inline-flex}.Yvqh9W_topNavItem,.Yvqh9W_topNavItem span{white-space:nowrap}.Yvqh9W_topNavItem:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.Yvqh9W_topNavItem[data-active]{background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-base);font-weight:600}.Yvqh9W_topNavDivider{background:var(--dsw-alias-border-l2);width:1px;height:16px;margin:0 8px}.Yvqh9W_panelHeaderActions{align-items:center;gap:10px;display:inline-flex}.Yvqh9W_chatToggle{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);height:26px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;border-radius:999px;align-items:center;gap:5px;padding:0 10px;font-size:12px;display:inline-flex}.Yvqh9W_chatToggle:hover{color:var(--dsw-alias-label-primary)}.Yvqh9W_chatToggle[data-open=true]{color:var(--dsw-alias-brand-primary);border-color:var(--dsw-alias-brand-primary)}html[data-dsh-imagegen-chat-collapsed][data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [data-pane=conversation],html[data-dsh-imagegen-chat-collapsed][data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [class*=centerCol]{grid-template-columns:minmax(0,1fr)}html[data-dsh-imagegen-chat-collapsed][data-dsh-imagegen-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) [data-slot=conversation],html[data-dsh-imagegen-chat-collapsed] [data-dsh-imagegen-chat-resizer]{display:none!important}.Yvqh9W_configResizer{cursor:col-resize;z-index:6;width:6px;height:100%;position:absolute;top:0;right:0}.Yvqh9W_configResizer:hover{background:linear-gradient(90deg, transparent, var(--dsw-alias-border-l2))}.Yvqh9W_config[data-collapsed=true] .Yvqh9W_configResizer{display:none}.Yvqh9W_modeRow{align-items:center;gap:8px;display:flex}.Yvqh9W_modePill{flex:1;justify-content:center;height:28px;font-size:12.5px}.Yvqh9W_modePill,.Yvqh9W_modePill span,.Yvqh9W_modePill div{white-space:nowrap;min-width:0}.Yvqh9W_uploadBox{min-height:128px;color:var(--dsw-alias-label-secondary);border:1.5px dashed var(--dsw-alias-border-l2);cursor:pointer;font:inherit;text-align:center;background:0 0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:16px;font-size:12.5px;display:flex}.Yvqh9W_uploadBox:hover{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-label-dimmed);background:var(--dsw-alias-interactive-bg-hover)}.Yvqh9W_uploadBox:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}.Yvqh9W_uploadIcon{color:var(--dsw-alias-label-tertiary);display:inline-flex}.Yvqh9W_uploadHint{color:var(--dsw-alias-label-tertiary);font-size:11px}.Yvqh9W_reference{flex-direction:column;gap:8px;display:flex}.Yvqh9W_referenceImage{object-fit:contain;background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l1);border-radius:10px;width:100%;max-height:176px}.Yvqh9W_referenceActions{gap:8px;display:flex}.Yvqh9W_hiddenFile{display:none}.Yvqh9W_prompt{width:100%;min-height:120px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-3);border:1px solid var(--dsw-alias-border-l2);resize:vertical;box-sizing:border-box;border-radius:10px;outline:none;padding:10px 12px;font-family:inherit;font-size:13px;line-height:1.6}.Yvqh9W_prompt:focus-visible{border-color:var(--dsw-alias-brand-primary)}.Yvqh9W_prompt::placeholder{color:var(--dsw-alias-label-tertiary)}.Yvqh9W_promptFooter{justify-content:space-between;align-items:center;gap:8px;margin-top:-6px;display:flex}.Yvqh9W_templatesButton{border:1px solid var(--dsw-alias-brand-primary);background:linear-gradient(135deg, color-mix(in srgb, var(--dsw-alias-brand-primary) 14%, transparent), color-mix(in srgb, var(--dsw-alias-brand-primary) 5%, transparent));height:26px;color:var(--dsw-alias-brand-primary);cursor:pointer;box-shadow:0 1px 0 color-mix(in srgb, var(--dsw-alias-brand-primary) 22%, transparent);border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:12px;font-weight:600;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex}.Yvqh9W_templatesButton svg{flex:none}.Yvqh9W_templatesButton:hover{background:linear-gradient(135deg, color-mix(in srgb, var(--dsw-alias-brand-primary) 24%, transparent), color-mix(in srgb, var(--dsw-alias-brand-primary) 8%, transparent));color:var(--dsw-alias-brand-primary);box-shadow:0 2px 6px color-mix(in srgb, var(--dsw-alias-brand-primary) 30%, transparent);transform:translateY(-1px)}.Yvqh9W_templatesButton:active{transform:translateY(0)}.Yvqh9W_enhanceButton{border:1px solid var(--dsw-alias-border-l2);height:26px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);font:inherit;cursor:pointer;border-radius:999px;margin-left:auto;padding:0 11px;font-size:12px}.Yvqh9W_enhanceButton:hover:not(:disabled){color:var(--dsw-alias-brand-primary);border-color:var(--dsw-alias-brand-primary)}.Yvqh9W_enhanceButton:disabled{opacity:.5;cursor:default}.Yvqh9W_promptCount{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;font-size:11px}.Yvqh9W_promptCount[data-over]{color:var(--dsw-alias-status-danger,#e5484d);font-weight:600}.Yvqh9W_paramGroup{flex-direction:column;gap:8px;display:flex}.Yvqh9W_paramLabel{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:600}.Yvqh9W_optionRow{flex-wrap:wrap;gap:6px;display:flex}.Yvqh9W_optionGrid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.Yvqh9W_optionPill{justify-content:center}.Yvqh9W_paramHint{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:1.45}.Yvqh9W_footer{border-top:1px solid var(--dsw-alias-border-l1);flex-direction:column;flex:none;align-items:stretch;gap:8px;padding:10px 2px 0 0;display:flex}.Yvqh9W_modelWrap{flex-direction:column;gap:5px;min-width:0;display:flex}.Yvqh9W_modelLabel{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:600}.Yvqh9W_modelSelect{width:100%;height:36px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);cursor:pointer;text-align:left;border-radius:18px;outline:none;justify-content:space-between;align-items:center;gap:8px;padding:0 12px;font-family:inherit;font-size:13px;display:flex}.Yvqh9W_modelSelect:focus-visible{border-color:var(--dsw-alias-brand-primary)}.Yvqh9W_modelSelect:disabled{opacity:.55;cursor:default}.Yvqh9W_modelMenu{min-width:0;display:block;position:relative}.Yvqh9W_modelMenuList{z-index:40;background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:12px;flex-direction:column;padding:4px;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;right:0;overflow:hidden;box-shadow:0 -8px 24px #0000002e}.Yvqh9W_modelMenuItem{width:100%;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:8px;padding:7px 10px;font-size:13px;display:block;overflow:hidden}.Yvqh9W_modelMenuItem:hover{background:var(--dsw-alias-bg-hover)}.Yvqh9W_modelMenuItem[data-selected]{color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-1);font-weight:600}.Yvqh9W_generateButton{width:100%}.Yvqh9W_generateInner{align-items:center;gap:7px;display:inline-flex}.Yvqh9W_canvasState{text-align:center;color:var(--dsw-alias-label-tertiary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.Yvqh9W_canvasStateTitle{color:var(--dsw-alias-label-secondary);font-size:14px;font-weight:600}.Yvqh9W_canvasStateHint{max-width:380px;font-size:12px;line-height:1.6}.Yvqh9W_canvasEmptyIcon{color:var(--dsw-alias-label-tertiary);margin-bottom:4px;display:inline-flex}.Yvqh9W_canvasError{color:var(--dsw-alias-label-error);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-label-error);overflow-wrap:anywhere;border-radius:10px;flex:none;margin:14px;padding:10px 14px;font-size:12.5px;line-height:1.6}.Yvqh9W_canvasBody{scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex-direction:column;flex:1;gap:10px;min-height:0;padding:14px;display:flex;overflow-y:auto}.Yvqh9W_canvasBody::-webkit-scrollbar{width:8px}.Yvqh9W_canvasBody::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Yvqh9W_canvasMeta{color:var(--dsw-alias-label-tertiary);flex:none;align-items:center;gap:8px;font-size:12px;display:flex}.Yvqh9W_canvasHistoryTag{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:11px}.Yvqh9W_grid{flex:1;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-height:0;display:grid}.Yvqh9W_grid[data-count=\"1\"] .Yvqh9W_imageCard{grid-area:1/1/3/3}.Yvqh9W_imageCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);cursor:zoom-in;border-radius:12px;flex-direction:column;min-height:0;margin:0;display:flex;position:relative;overflow:hidden}.Yvqh9W_imageCard:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}.Yvqh9W_image{object-fit:cover;background:var(--dsw-alias-bg-base);flex:1;width:100%;min-height:0;display:block}.Yvqh9W_imageCaption{color:var(--dsw-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;border-top:1px solid var(--dsw-alias-border-l1);padding:7px 10px;font-size:11px;line-height:1.5;overflow:hidden}.Yvqh9W_download{color:#fff;opacity:0;backdrop-filter:blur(4px);background:#0f1218d1;border:1px solid #ffffff9e;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:500;line-height:20px;text-decoration:none;transition:opacity .12s;position:absolute;top:8px;right:8px;box-shadow:0 2px 8px #00000047}.Yvqh9W_imageCard:hover .Yvqh9W_download{opacity:1}.Yvqh9W_download:hover{background:#0f1218f0}.Yvqh9W_download:focus-visible{opacity:1;outline-offset:2px;outline:2px solid #fff}.Yvqh9W_galleryAdd{font:inherit;color:#fff;cursor:pointer;opacity:0;backdrop-filter:blur(4px);background:#0f1218d1;border:1px solid #ffffff9e;border-radius:999px;align-items:center;gap:5px;padding:2px 10px;font-size:12px;font-weight:500;line-height:20px;transition:opacity .12s;display:inline-flex;position:absolute;top:8px;left:8px;box-shadow:0 2px 8px #00000047}.Yvqh9W_imageCard:hover .Yvqh9W_galleryAdd{opacity:1}.Yvqh9W_galleryAdd:hover{background:#0f1218f0}.Yvqh9W_galleryAdd:focus-visible{opacity:1;outline-offset:2px;outline:2px solid #fff}.Yvqh9W_galleryAdd:disabled{opacity:.4;cursor:default}.Yvqh9W_conversationAdd{color:#fff;cursor:pointer;font:inherit;opacity:0;backdrop-filter:blur(4px);background:#0f1218d1;border:1px solid #ffffff9e;border-radius:999px;align-items:center;gap:5px;padding:2px 10px;font-size:12px;font-weight:500;line-height:20px;transition:opacity .12s;display:inline-flex;position:absolute;top:38px;left:8px;box-shadow:0 2px 8px #00000047}.Yvqh9W_imageCard:hover .Yvqh9W_conversationAdd,.Yvqh9W_conversationAdd:focus-visible{opacity:1}.Yvqh9W_conversationAdd:hover{background:#0f1218f0}.Yvqh9W_conversationAdd:focus-visible{opacity:1;outline-offset:2px;outline:2px solid #fff}.Yvqh9W_conversationAdd:disabled{opacity:.4;cursor:default}.Yvqh9W_zoomHint{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-mask-1);border:1px solid var(--dsw-alias-border-l2);opacity:0;backdrop-filter:blur(4px);pointer-events:none;border-radius:999px;align-items:center;gap:5px;padding:2px 10px;font-size:12px;font-weight:500;line-height:20px;transition:opacity .12s;display:inline-flex;position:absolute;bottom:8px;left:8px}.Yvqh9W_imageCard:hover .Yvqh9W_zoomHint{opacity:1}.Yvqh9W_spinner,.Yvqh9W_bigSpinner{border:2px solid;border-top-color:#0000;border-radius:50%;flex:none;animation:.8s linear infinite Yvqh9W_dshImageGenSpin;display:inline-block}.Yvqh9W_spinner{width:11px;height:11px}.Yvqh9W_bigSpinner{width:30px;height:30px;color:var(--dsw-alias-state-business-primary);border-width:3px;margin-bottom:6px}.Yvqh9W_lightbox{z-index:1000;backdrop-filter:blur(6px);background:#000000b8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.Yvqh9W_lightboxClose{color:#fff;cursor:pointer;background:#ffffff24;border:1px solid #ffffff47;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex;position:absolute;top:16px;right:16px}.Yvqh9W_lightboxClose:hover{background:#ffffff42}.Yvqh9W_lightboxNav{color:#fff;cursor:pointer;background:#ffffff24;border:1px solid #ffffff47;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.Yvqh9W_lightboxNav:hover{background:#ffffff42}.Yvqh9W_lightboxNav[data-dir=prev]{left:max(20px,50% - 640px)}.Yvqh9W_lightboxNav[data-dir=next]{right:max(20px,50% - 640px)}.Yvqh9W_lightboxFigure{flex-direction:column;gap:10px;width:min(1100px,100vw - 160px);max-width:min(1100px,100vw - 160px);height:min(820px,100vh - 48px);min-height:0;margin:0;display:flex}.Yvqh9W_lightboxStage{background:#ffffff0a;border-radius:10px;flex:1;min-height:0;position:relative;overflow:auto}.Yvqh9W_lightboxScaleFrame{justify-content:center;align-items:center;min-width:100%;min-height:100%;display:flex}.Yvqh9W_lightboxImage{object-fit:contain;border-radius:10px;max-width:100%;max-height:100%;display:block;box-shadow:0 24px 80px #00000080}.Yvqh9W_lightboxTools{justify-content:center;align-items:center;gap:6px;display:flex}.Yvqh9W_lightboxTool,.Yvqh9W_lightboxZoomLevel,.Yvqh9W_lightboxCopy{color:#fff;cursor:pointer;background:#ffffff24;border:1px solid #ffffff47;justify-content:center;align-items:center;display:inline-flex}.Yvqh9W_lightboxTool,.Yvqh9W_lightboxZoomLevel{height:32px}.Yvqh9W_lightboxTool{border-radius:50%;width:32px}.Yvqh9W_lightboxZoomLevel{min-width:58px;font:inherit;font-variant-numeric:tabular-nums;border-radius:999px;padding:0 9px;font-size:12px}.Yvqh9W_lightboxTool:hover,.Yvqh9W_lightboxZoomLevel:hover,.Yvqh9W_lightboxCopy:hover{background:#ffffff42}.Yvqh9W_lightboxCaptionRow{align-items:flex-start;gap:8px;min-width:0;display:flex}.Yvqh9W_lightboxCaption{color:#ffffffe6;-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:1;min-width:0;font-size:12px;line-height:1.6;display:-webkit-box;overflow:hidden}.Yvqh9W_lightboxCopy{min-height:28px;font:inherit;white-space:nowrap;border-radius:999px;flex:none;gap:5px;padding:4px 9px;font-size:12px}.Yvqh9W_lightboxMeta{justify-content:space-between;align-items:center;gap:12px;display:flex}.Yvqh9W_lightboxIndex{color:#fffc;font-variant-numeric:tabular-nums;font-size:12px}.Yvqh9W_lightboxActions{align-items:center;gap:8px;display:inline-flex}.Yvqh9W_lightboxDownload,.Yvqh9W_lightboxEdit{font:inherit;color:#fff;cursor:pointer;background:#ffffff24;border:1px solid #ffffff47;border-radius:999px;padding:4px 14px;font-size:12.5px;font-weight:500;text-decoration:none}.Yvqh9W_lightboxDownload:hover,.Yvqh9W_lightboxEdit:hover{background:#ffffff42}.Yvqh9W_lightboxEdit{color:#fff;background:#ffffff24;border:1px solid #ffffff47;border-radius:999px}@media (width<=720px){.Yvqh9W_lightbox{padding:16px}.Yvqh9W_lightboxFigure{width:calc(100vw - 32px);max-width:none}.Yvqh9W_lightboxNav[data-dir=prev]{left:20px}.Yvqh9W_lightboxNav[data-dir=next]{right:20px}.Yvqh9W_lightboxCaptionRow,.Yvqh9W_lightboxMeta{flex-direction:column;align-items:stretch}.Yvqh9W_lightboxCopy,.Yvqh9W_lightboxActions{align-self:flex-end}}@keyframes Yvqh9W_dshImageGenSpin{to{transform:rotate(360deg)}}.Yvqh9W_galleryToast{z-index:30;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-mask-1);border:1px solid var(--dsw-alias-border-l2);backdrop-filter:blur(6px);pointer-events:none;border-radius:999px;align-items:center;gap:7px;padding:6px 16px;font-size:13px;font-weight:500;animation:.16s ease-out Yvqh9W_dshImageGenToastIn;display:inline-flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000038}@keyframes Yvqh9W_dshImageGenToastIn{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.Yvqh9W_conversationToast{z-index:30;border:1px solid var(--dsw-alias-border-l2);max-width:calc(100% - 32px);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-mask-1);pointer-events:none;backdrop-filter:blur(6px);border-radius:999px;align-items:center;gap:7px;padding:6px 16px;font-size:13px;font-weight:500;animation:.16s ease-out Yvqh9W_dshImageGenToastIn;display:inline-flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000038}@media (prefers-reduced-motion:reduce){.Yvqh9W_download,.Yvqh9W_spinner,.Yvqh9W_bigSpinner{transition:none;animation-duration:1.5s}}.Yvqh9W_config[data-gallery=true] .Yvqh9W_configScroll{flex:none;order:1;display:flex;overflow:visible}.Yvqh9W_config[data-gallery=true] .Yvqh9W_galleryFilters{flex:1;order:2;min-height:0}.Yvqh9W_galleryFilters{padding:18px 14px;overflow:hidden auto}.Yvqh9W_galleryFilterHeading{color:var(--dsw-alias-label-tertiary);margin:0 4px 10px;font-size:12px;font-weight:600}.Yvqh9W_galleryFilter{width:100%;min-height:34px;color:var(--dsw-alias-label-secondary);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:9px;justify-content:space-between;align-items:center;padding:0 10px;display:flex}.Yvqh9W_galleryFilter:hover,.Yvqh9W_galleryFilter[data-active]{color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 10%, transparent)}.Yvqh9W_galleryFilterCount{min-width:20px;color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-layer-2);text-align:center;border-radius:999px;padding:1px 6px;font-size:11px}.Yvqh9W_galleryFilterDivider{background:var(--dsw-alias-border-l1);height:1px;margin:18px 4px}.Yvqh9W_galleryRatioList{flex-wrap:wrap;gap:6px;display:flex}.Yvqh9W_galleryRatio{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);cursor:pointer;border:0;border-radius:999px;padding:6px 10px;font-size:12px}.Yvqh9W_galleryRatio[data-active]{color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 13%, transparent)}.Yvqh9W_galleryTagFilterList{flex-wrap:wrap;gap:6px;display:flex}.Yvqh9W_galleryTagFilter{border:1px solid var(--dsw-alias-border-l1);min-width:0;max-width:100%;min-height:27px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);cursor:pointer;font:inherit;border-radius:6px;align-items:center;gap:5px;padding:0 8px;font-size:11px;display:inline-flex}.Yvqh9W_galleryTagFilter span:first-child{text-overflow:ellipsis;white-space:nowrap;max-width:112px;overflow:hidden}.Yvqh9W_galleryTagFilter span:last-child{color:var(--dsw-alias-label-tertiary);font-size:10px}.Yvqh9W_galleryTagFilter:hover,.Yvqh9W_galleryTagFilter[data-active]{color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 10%, transparent)}.Yvqh9W_galleryFilterNote{color:var(--dsw-alias-label-quaternary);margin:20px 4px 0;font-size:11px;line-height:1.5}.Yvqh9W_galleryWorkspace{box-sizing:border-box;flex-direction:column;width:100%;min-width:0;height:100%;min-height:0;padding:22px 24px 26px;display:flex;position:absolute;inset:0;overflow:hidden}.Yvqh9W_galleryToolbar{flex:none;justify-content:space-between;align-items:center;gap:16px;min-width:0;margin-bottom:18px;display:flex}.Yvqh9W_galleryHeading{color:var(--dsw-alias-label-primary);margin:0;font-size:20px;font-weight:700;display:inline}.Yvqh9W_galleryCount{color:var(--dsw-alias-label-tertiary);margin-left:8px;font-size:13px}.Yvqh9W_galleryToolbarActions{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.Yvqh9W_gallerySelectMode,.Yvqh9W_galleryBulkButton,.Yvqh9W_gallerySelectionClear{border:1px solid var(--dsw-alias-border-l1);min-height:30px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);cursor:pointer;font:inherit;border-radius:7px;padding:0 10px;font-size:12px}.Yvqh9W_gallerySelectMode:hover,.Yvqh9W_gallerySelectMode[data-active],.Yvqh9W_galleryBulkButton:hover:not(:disabled){color:var(--dsw-alias-brand-primary);border-color:color-mix(in srgb, var(--dsw-alias-brand-primary) 38%, var(--dsw-alias-border-l1));background:color-mix(in srgb, var(--dsw-alias-brand-primary) 11%, transparent)}.Yvqh9W_galleryBulkButton:disabled{cursor:not-allowed;opacity:.45}.Yvqh9W_gallerySelectionBar{border:1px solid color-mix(in srgb, var(--dsw-alias-brand-primary) 35%, var(--dsw-alias-border-l1));background:color-mix(in srgb, var(--dsw-alias-brand-primary) 7%, var(--dsw-alias-bg-layer-1));border-radius:9px;flex:none;align-items:center;gap:10px;min-width:0;margin:-4px 0 16px;padding:10px 12px;display:flex}.Yvqh9W_gallerySelectionBar strong{color:var(--dsw-alias-brand-primary);flex:none;font-size:12px}.Yvqh9W_gallerySelectionClear{margin-left:auto}.Yvqh9W_gallerySelectionClear:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2)}.Yvqh9W_galleryTagInput,.Yvqh9W_gallerySearch{border:1px solid var(--dsw-alias-border-l1);min-width:0;height:30px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);font:inherit;border-radius:7px;outline:none;padding:0 10px;font-size:12px}.Yvqh9W_galleryTagInput{flex:190px}.Yvqh9W_galleryTagInput:focus,.Yvqh9W_gallerySearch:focus{border-color:var(--dsw-alias-brand-primary)}.Yvqh9W_galleryViewToggle{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:9px;padding:3px;display:flex}.Yvqh9W_galleryViewToggle button,.Yvqh9W_gallerySort,.Yvqh9W_galleryClear{min-height:30px;color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:7px;padding:0 10px;font-size:12px}.Yvqh9W_galleryViewToggle button[data-active],.Yvqh9W_galleryViewToggle button:hover,.Yvqh9W_gallerySort:hover,.Yvqh9W_galleryClear:hover{color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 11%, transparent)}.Yvqh9W_gallerySort{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1)}.Yvqh9W_galleryClear{border:1px solid var(--dsw-alias-border-l1)}.Yvqh9W_compareControl{flex-direction:column;gap:6px;margin:0 0 10px;display:flex}.Yvqh9W_compareToggle,.Yvqh9W_compareModelChoices label{color:var(--dsw-alias-label-secondary);cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.Yvqh9W_compareToggle input,.Yvqh9W_compareModelChoices input{accent-color:var(--dsw-alias-brand-primary)}.Yvqh9W_compareModelChoices{flex-wrap:wrap;gap:6px;display:flex}.Yvqh9W_compareModelChoices label{border:1px solid var(--dsw-alias-border-l1);border-radius:5px;padding:4px 6px;font-size:10px}.Yvqh9W_comparisonBoard{z-index:4;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);border-radius:8px;flex-direction:column;display:flex;position:absolute;inset:14px;overflow:hidden;box-shadow:0 8px 24px #0000001f}.Yvqh9W_comparisonBoard>header{border-bottom:1px solid var(--dsw-alias-border-l1);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.Yvqh9W_comparisonBoard>header div{align-items:baseline;gap:7px;display:flex}.Yvqh9W_comparisonBoard>header strong{color:var(--dsw-alias-label-primary);font-size:13px}.Yvqh9W_comparisonBoard>header span{color:var(--dsw-alias-label-tertiary);font-size:11px}.Yvqh9W_comparisonBoard>header button{border:1px solid var(--dsw-alias-border-l1);min-height:28px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);cursor:pointer;font:inherit;border-radius:5px;padding:0 9px;font-size:11px}.Yvqh9W_comparisonGrid{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;min-height:0;padding:12px;display:grid;overflow:auto}.Yvqh9W_comparisonGrid article{flex-direction:column;gap:7px;min-width:0;height:100%;min-height:0;display:flex}.Yvqh9W_comparisonGrid article>strong{color:var(--dsw-alias-label-primary);font-size:12px}.Yvqh9W_comparisonImageButton{cursor:zoom-in;background:var(--dsw-alias-bg-base);border:0;flex:1;width:100%;min-height:0;padding:0;display:flex;overflow:hidden}.Yvqh9W_comparisonImageButton:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:-2px}.Yvqh9W_comparisonGrid article>span{min-height:0;color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-layer-2);flex:1;place-items:center;font-size:12px;display:grid}.Yvqh9W_comparisonGrid img{object-fit:contain;background:var(--dsw-alias-bg-base);flex:1;width:100%;height:100%;min-height:0;max-height:none;display:block}.Yvqh9W_comparisonFullscreen{z-index:1200;background:#000000eb;padding:54px 24px 24px;position:fixed;inset:0;overflow:auto}.Yvqh9W_comparisonFullscreenGrid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:18px;min-height:100%;display:grid}.Yvqh9W_comparisonFullscreen figure{min-width:0;margin:0}.Yvqh9W_comparisonFullscreen figcaption{color:#fff;margin-bottom:8px;font-size:13px;font-weight:600}.Yvqh9W_comparisonFullscreen img{background:#111;width:100%;margin-bottom:10px;display:block}.Yvqh9W_historyItem[data-comparison]{border-color:color-mix(in srgb, var(--dsw-alias-brand-primary) 55%, var(--dsw-alias-border-l1))}.Yvqh9W_galleryMasonry{box-sizing:border-box;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex:auto;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:max-content;align-content:start;gap:16px;width:100%;min-width:0;max-width:100%;height:0;min-height:0;padding:2px 8px 16px 2px;display:grid;overflow:hidden scroll}.Yvqh9W_galleryMasonry::-webkit-scrollbar{width:8px}.Yvqh9W_galleryMasonry::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Yvqh9W_galleryCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:14px;width:100%;margin:0;display:block;position:relative;overflow:hidden;box-shadow:0 5px 18px #18203612}.Yvqh9W_galleryCard[data-selected]{border-color:var(--dsw-alias-brand-primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--dsw-alias-brand-primary) 26%, transparent), 0 5px 18px #18203612}.Yvqh9W_gallerySelect{z-index:2;cursor:pointer;background:#00000094;border:1px solid #ffffffbf;border-radius:7px;place-items:center;width:26px;height:26px;display:grid;position:absolute;top:9px;right:9px}.Yvqh9W_gallerySelect input{width:16px;height:16px;accent-color:var(--dsw-alias-brand-primary);cursor:pointer;margin:0}.Yvqh9W_galleryImageButton{background:var(--dsw-alias-bg-base);cursor:zoom-in;border:0;width:100%;padding:0;display:block;position:relative}.Yvqh9W_galleryImageButton[data-selecting]{cursor:pointer}.Yvqh9W_galleryImage{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.Yvqh9W_galleryMasonry[data-view=masonry] .Yvqh9W_galleryCard:nth-child(3n+1) .Yvqh9W_galleryImage{aspect-ratio:4/5}.Yvqh9W_galleryMasonry[data-view=masonry] .Yvqh9W_galleryCard:nth-child(3n+2) .Yvqh9W_galleryImage{aspect-ratio:4/3}.Yvqh9W_galleryMasonry[data-view=masonry] .Yvqh9W_galleryCard:nth-child(3n) .Yvqh9W_galleryImage{aspect-ratio:3/4}.Yvqh9W_galleryBadge{color:#fff;backdrop-filter:blur(4px);background:#121724c2;border-radius:999px;padding:4px 9px;font-size:11px;position:absolute;top:10px;left:10px}.Yvqh9W_galleryCardActions{padding:8px 12px 0;display:flex}.Yvqh9W_galleryCardAction{border:1px solid var(--dsw-alias-border-l2);width:100%;min-width:0;min-height:28px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);cursor:pointer;font:inherit;white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;gap:4px;padding:0 4px;font-size:10px;font-weight:500;display:inline-flex}.Yvqh9W_galleryCardAction:hover,.Yvqh9W_galleryCardAction:focus-visible{border-color:var(--dsw-alias-brand-primary);color:var(--dsw-alias-brand-primary);outline:none}.Yvqh9W_galleryCardAction:disabled{cursor:wait;opacity:.55}.Yvqh9W_galleryCardFooter{align-items:center;gap:9px;min-width:0;padding:10px 12px;display:flex}.Yvqh9W_galleryAvatar{color:#fff;background:var(--dsw-alias-brand-primary);border-radius:50%;flex:none;place-items:center;width:27px;height:27px;font-size:12px;font-weight:700;display:grid}.Yvqh9W_galleryCardInfo{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.Yvqh9W_galleryCardInfo strong,.Yvqh9W_galleryCardInfo small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Yvqh9W_galleryCardInfo strong{color:var(--dsw-alias-label-primary);font-size:12px}.Yvqh9W_galleryCardInfo small{color:var(--dsw-alias-label-tertiary);font-size:10px}.Yvqh9W_galleryTags{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.Yvqh9W_galleryTags button{max-width:96px;min-height:19px;color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 10%, transparent);cursor:pointer;font:inherit;text-overflow:ellipsis;white-space:nowrap;border:0;border-radius:4px;padding:1px 6px;font-size:10px;line-height:1.35;overflow:hidden}.Yvqh9W_galleryTags button:hover{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 17%, transparent)}.Yvqh9W_galleryTags .Yvqh9W_galleryTagEdit{color:var(--dsw-alias-label-tertiary);background:0 0;flex:none}.Yvqh9W_galleryTagEditor{align-items:center;gap:6px;padding:0 12px 10px 48px;display:flex}.Yvqh9W_galleryTagEditor input{border:1px solid var(--dsw-alias-border-l2);min-width:0;height:27px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);font:inherit;border-radius:6px;outline:none;flex:1;padding:0 8px;font-size:11px}.Yvqh9W_galleryTagEditor input:focus{border-color:var(--dsw-alias-brand-primary)}.Yvqh9W_galleryTagEditor button{border:1px solid var(--dsw-alias-border-l2);height:27px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);cursor:pointer;font:inherit;border-radius:6px;padding:0 8px;font-size:11px}.Yvqh9W_galleryTagEditor button[type=submit]{color:var(--dsw-alias-brand-primary)}.Yvqh9W_galleryRemove{width:24px;height:24px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;padding:0;font-size:18px}.Yvqh9W_galleryRemove:hover{color:var(--dsw-alias-state-error);background:var(--dsw-alias-bg-layer-2)}@media (width<=760px){.Yvqh9W_ecommerceParamGrid{grid-template-columns:1fr}.Yvqh9W_ecommerceStructureGrid,.Yvqh9W_ecommerceAssets{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=420px){.Yvqh9W_ecommerceWorkspace{padding-inline:2px}.Yvqh9W_ecommerceStructureGrid,.Yvqh9W_ecommerceAssets{grid-template-columns:1fr}}@media (width<=1100px){.Yvqh9W_galleryMasonry{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.Yvqh9W_studio{grid-template-rows:minmax(220px,36%) minmax(0,1fr);grid-template-columns:minmax(0,1fr);overflow-y:auto}.Yvqh9W_history{grid-area:1/1;min-height:220px}.Yvqh9W_generation{flex-direction:column;grid-area:2/1;min-height:0}.Yvqh9W_config{width:auto;max-width:none;height:auto;min-height:0}.Yvqh9W_config[data-gallery=true]{flex:none}.Yvqh9W_canvas{min-height:560px}.Yvqh9W_galleryToolbar{flex-direction:column;align-items:flex-start}.Yvqh9W_galleryToolbarActions{flex-wrap:wrap;width:100%}.Yvqh9W_galleryMasonry{grid-template-columns:1fr}}";
43947
44345
  const tagId$2 = "@dickpy/dsh-imagegen/panel.module.css";
43948
44346
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) {
43949
44347
  const tag = document.createElement("style");
@@ -43953,226 +44351,231 @@ window.__ModuleLoader__.load({
43953
44351
  document.head.appendChild(tag);
43954
44352
  }
43955
44353
  var panel_module_css_default = {
43956
- "galleryFilterDivider": "Yvqh9W_galleryFilterDivider",
43957
- "galleryTagFilter": "Yvqh9W_galleryTagFilter",
43958
- "gallerySelectionClear": "Yvqh9W_gallerySelectionClear",
43959
- "lightboxZoomLevel": "Yvqh9W_lightboxZoomLevel",
43960
- "lightboxMeta": "Yvqh9W_lightboxMeta",
43961
- "galleryCardAction": "Yvqh9W_galleryCardAction",
43962
- "panelHeader": "Yvqh9W_panelHeader",
43963
- "historyFilters": "Yvqh9W_historyFilters",
43964
- "taskRow": "Yvqh9W_taskRow",
43965
- "sessionTabLabel": "Yvqh9W_sessionTabLabel",
43966
- "galleryRatio": "Yvqh9W_galleryRatio",
43967
- "topNav": "Yvqh9W_topNav",
43968
- "ecommerceSlotCount": "Yvqh9W_ecommerceSlotCount",
43969
- "optionGrid": "Yvqh9W_optionGrid",
43970
- "ecommerceSection": "Yvqh9W_ecommerceSection",
43971
- "modePill": "Yvqh9W_modePill",
43972
- "compareControl": "Yvqh9W_compareControl",
43973
- "galleryImageButton": "Yvqh9W_galleryImageButton",
44354
+ "connectionDot": "Yvqh9W_connectionDot",
44355
+ "ecommercePlanWarn": "Yvqh9W_ecommercePlanWarn",
43974
44356
  "studio": "Yvqh9W_studio",
43975
- "configGuideBody": "Yvqh9W_configGuideBody",
43976
- "taskTrayHeader": "Yvqh9W_taskTrayHeader",
43977
- "lightboxStage": "Yvqh9W_lightboxStage",
43978
- "gallerySelectMode": "Yvqh9W_gallerySelectMode",
43979
- "galleryViewToggle": "Yvqh9W_galleryViewToggle",
43980
- "comparisonFullscreenGrid": "Yvqh9W_comparisonFullscreenGrid",
43981
- "galleryToast": "Yvqh9W_galleryToast",
43982
- "enhanceButton": "Yvqh9W_enhanceButton",
43983
- "lightboxCaptionRow": "Yvqh9W_lightboxCaptionRow",
43984
- "gallerySort": "Yvqh9W_gallerySort",
43985
- "panelHeaderActions": "Yvqh9W_panelHeaderActions",
43986
- "galleryFilterHeading": "Yvqh9W_galleryFilterHeading",
43987
- "conversationAdd": "Yvqh9W_conversationAdd",
43988
- "canvasMeta": "Yvqh9W_canvasMeta",
43989
- "comparisonBoard": "Yvqh9W_comparisonBoard",
43990
- "galleryAvatar": "Yvqh9W_galleryAvatar",
43991
- "canvas": "Yvqh9W_canvas",
43992
- "historySearch": "Yvqh9W_historySearch",
43993
- "historyInfo": "Yvqh9W_historyInfo",
43994
- "optionPill": "Yvqh9W_optionPill",
43995
- "galleryTagInput": "Yvqh9W_galleryTagInput",
43996
- "config": "Yvqh9W_config",
43997
- "generateInner": "Yvqh9W_generateInner",
43998
- "galleryCardInfo": "Yvqh9W_galleryCardInfo",
43999
- "galleryCardActions": "Yvqh9W_galleryCardActions",
44000
- "galleryAdd": "Yvqh9W_galleryAdd",
44001
- "lightboxCaption": "Yvqh9W_lightboxCaption",
44002
- "ecommerceGroup": "Yvqh9W_ecommerceGroup",
44003
- "ecommerceActionChip": "Yvqh9W_ecommerceActionChip",
44004
- "galleryTagFilterList": "Yvqh9W_galleryTagFilterList",
44357
+ "historyIconAction": "Yvqh9W_historyIconAction",
44358
+ "chatToggle": "Yvqh9W_chatToggle",
44359
+ "historyHeaderActions": "Yvqh9W_historyHeaderActions",
44360
+ "lightboxTool": "Yvqh9W_lightboxTool",
44005
44361
  "galleryImage": "Yvqh9W_galleryImage",
44006
- "galleryFilterNote": "Yvqh9W_galleryFilterNote",
44007
- "configToggle": "Yvqh9W_configToggle",
44008
- "lightboxTools": "Yvqh9W_lightboxTools",
44009
- "paramLabel": "Yvqh9W_paramLabel",
44010
- "referenceImage": "Yvqh9W_referenceImage",
44011
- "ecommerceAsset": "Yvqh9W_ecommerceAsset",
44012
- "panel": "Yvqh9W_panel",
44013
44362
  "generation": "Yvqh9W_generation",
44014
- "historyMeta": "Yvqh9W_historyMeta",
44015
- "ecommerceAdvancedChevron": "Yvqh9W_ecommerceAdvancedChevron",
44016
- "lightboxClose": "Yvqh9W_lightboxClose",
44017
- "githubLink": "Yvqh9W_githubLink",
44018
- "ecommerceFieldLabel": "Yvqh9W_ecommerceFieldLabel",
44019
- "dshImageGenToastIn": "Yvqh9W_dshImageGenToastIn",
44020
- "card": "Yvqh9W_card",
44021
- "ecommercePlanBack": "Yvqh9W_ecommercePlanBack",
44022
- "ecommercePrimaryAction": "Yvqh9W_ecommercePrimaryAction",
44023
- "compareModelChoices": "Yvqh9W_compareModelChoices",
44024
- "generateButton": "Yvqh9W_generateButton",
44025
- "lightboxIndex": "Yvqh9W_lightboxIndex",
44363
+ "lightboxEdit": "Yvqh9W_lightboxEdit",
44026
44364
  "ecommerceFooterBody": "Yvqh9W_ecommerceFooterBody",
44027
- "panelTitle": "Yvqh9W_panelTitle",
44028
- "modelMenuList": "Yvqh9W_modelMenuList",
44029
- "galleryCardFooter": "Yvqh9W_galleryCardFooter",
44030
- "view": "Yvqh9W_view",
44031
- "gallerySelect": "Yvqh9W_gallerySelect",
44032
- "galleryTagEdit": "Yvqh9W_galleryTagEdit",
44033
- "history": "Yvqh9W_history",
44034
- "historyEmpty": "Yvqh9W_historyEmpty",
44035
- "comparisonFullscreen": "Yvqh9W_comparisonFullscreen",
44365
+ "galleryHeading": "Yvqh9W_galleryHeading",
44366
+ "ecommerceCardCount": "Yvqh9W_ecommerceCardCount",
44367
+ "lightboxStage": "Yvqh9W_lightboxStage",
44368
+ "referenceActions": "Yvqh9W_referenceActions",
44369
+ "optionPill": "Yvqh9W_optionPill",
44370
+ "canvasStateHint": "Yvqh9W_canvasStateHint",
44036
44371
  "updateText": "Yvqh9W_updateText",
44037
- "canvasEmptyIcon": "Yvqh9W_canvasEmptyIcon",
44038
- "historyList": "Yvqh9W_historyList",
44039
- "gallerySearch": "Yvqh9W_gallerySearch",
44040
- "ecommerceField": "Yvqh9W_ecommerceField",
44372
+ "lightboxIndex": "Yvqh9W_lightboxIndex",
44373
+ "comparisonGrid": "Yvqh9W_comparisonGrid",
44374
+ "comparisonFullscreenGrid": "Yvqh9W_comparisonFullscreenGrid",
44375
+ "modeRow": "Yvqh9W_modeRow",
44041
44376
  "ecommerceAssets": "Yvqh9W_ecommerceAssets",
44042
- "taskPrompt": "Yvqh9W_taskPrompt",
44043
- "zoomHint": "Yvqh9W_zoomHint",
44044
- "historyTitle": "Yvqh9W_historyTitle",
44045
- "connectionStatus": "Yvqh9W_connectionStatus",
44046
- "lightboxScaleFrame": "Yvqh9W_lightboxScaleFrame",
44047
- "ecommercePlanNote": "Yvqh9W_ecommercePlanNote",
44048
- "ecommerceRefRow": "Yvqh9W_ecommerceRefRow",
44049
- "ecommerceSlotCard": "Yvqh9W_ecommerceSlotCard",
44050
- "historyHeader": "Yvqh9W_historyHeader",
44051
- "prompt": "Yvqh9W_prompt",
44052
- "configGuide": "Yvqh9W_configGuide",
44053
- "taskStatus": "Yvqh9W_taskStatus",
44054
- "previewBadge": "Yvqh9W_previewBadge",
44055
- "lightboxImage": "Yvqh9W_lightboxImage",
44056
- "reference": "Yvqh9W_reference",
44377
+ "lightboxClose": "Yvqh9W_lightboxClose",
44057
44378
  "templatesButton": "Yvqh9W_templatesButton",
44058
- "conversationToast": "Yvqh9W_conversationToast",
44379
+ "historyThumb": "Yvqh9W_historyThumb",
44380
+ "lightboxZoomLevel": "Yvqh9W_lightboxZoomLevel",
44381
+ "galleryCount": "Yvqh9W_galleryCount",
44382
+ "galleryTagInput": "Yvqh9W_galleryTagInput",
44383
+ "updateActions": "Yvqh9W_updateActions",
44384
+ "dshImageGenSpin": "Yvqh9W_dshImageGenSpin",
44385
+ "configGuideBody": "Yvqh9W_configGuideBody",
44386
+ "galleryAvatar": "Yvqh9W_galleryAvatar",
44387
+ "ecommercePrimaryAction": "Yvqh9W_ecommercePrimaryAction",
44388
+ "ecommerceTaskActions": "Yvqh9W_ecommerceTaskActions",
44389
+ "ecommerceAsset": "Yvqh9W_ecommerceAsset",
44390
+ "optionGrid": "Yvqh9W_optionGrid",
44391
+ "ecommercePlanMini": "Yvqh9W_ecommercePlanMini",
44392
+ "configHeader": "Yvqh9W_configHeader",
44393
+ "ecommerceResultBadge": "Yvqh9W_ecommerceResultBadge",
44394
+ "uploadBox": "Yvqh9W_uploadBox",
44395
+ "imageCaption": "Yvqh9W_imageCaption",
44396
+ "ecommerceParamGrid": "Yvqh9W_ecommerceParamGrid",
44397
+ "prompt": "Yvqh9W_prompt",
44398
+ "lightboxNav": "Yvqh9W_lightboxNav",
44399
+ "comparisonImageButton": "Yvqh9W_comparisonImageButton",
44400
+ "taskRow": "Yvqh9W_taskRow",
44401
+ "taskTrayToggle": "Yvqh9W_taskTrayToggle",
44402
+ "ecommerceFooterHint": "Yvqh9W_ecommerceFooterHint",
44403
+ "generateButton": "Yvqh9W_generateButton",
44404
+ "canvasBody": "Yvqh9W_canvasBody",
44059
44405
  "configResizer": "Yvqh9W_configResizer",
44060
- "canvasHistoryTag": "Yvqh9W_canvasHistoryTag",
44061
- "lightboxCopy": "Yvqh9W_lightboxCopy",
44062
- "ecommerceResults": "Yvqh9W_ecommerceResults",
44063
- "ecommerceResultsActions": "Yvqh9W_ecommerceResultsActions",
44406
+ "galleryCardAction": "Yvqh9W_galleryCardAction",
44064
44407
  "entryIcon": "Yvqh9W_entryIcon",
44065
- "ecommerceAssetAdd": "Yvqh9W_ecommerceAssetAdd",
44408
+ "galleryTags": "Yvqh9W_galleryTags",
44409
+ "galleryToolbar": "Yvqh9W_galleryToolbar",
44410
+ "historyInfo": "Yvqh9W_historyInfo",
44066
44411
  "uploadIcon": "Yvqh9W_uploadIcon",
44412
+ "galleryTagEdit": "Yvqh9W_galleryTagEdit",
44413
+ "panelHeaderActions": "Yvqh9W_panelHeaderActions",
44414
+ "ecommerceFieldLabel": "Yvqh9W_ecommerceFieldLabel",
44415
+ "ecommerceSlotCard": "Yvqh9W_ecommerceSlotCard",
44416
+ "view": "Yvqh9W_view",
44417
+ "ecommerceGroupsSide": "Yvqh9W_ecommerceGroupsSide",
44418
+ "paramLabel": "Yvqh9W_paramLabel",
44419
+ "canvasError": "Yvqh9W_canvasError",
44420
+ "historyEmpty": "Yvqh9W_historyEmpty",
44421
+ "githubLink": "Yvqh9W_githubLink",
44422
+ "lightboxCaptionRow": "Yvqh9W_lightboxCaptionRow",
44423
+ "panel": "Yvqh9W_panel",
44424
+ "promptFooter": "Yvqh9W_promptFooter",
44425
+ "galleryFilterNote": "Yvqh9W_galleryFilterNote",
44426
+ "modelMenuList": "Yvqh9W_modelMenuList",
44427
+ "galleryBulkButton": "Yvqh9W_galleryBulkButton",
44428
+ "panelTitle": "Yvqh9W_panelTitle",
44429
+ "taskTrayClose": "Yvqh9W_taskTrayClose",
44430
+ "generateInner": "Yvqh9W_generateInner",
44431
+ "chatResizer": "Yvqh9W_chatResizer",
44432
+ "updateRelease": "Yvqh9W_updateRelease",
44433
+ "referenceImage": "Yvqh9W_referenceImage",
44434
+ "ecommerceTaskCard": "Yvqh9W_ecommerceTaskCard",
44067
44435
  "imageCard": "Yvqh9W_imageCard",
44068
- "ecommerceResultsEmpty": "Yvqh9W_ecommerceResultsEmpty",
44069
- "sidebarHistoryHost": "Yvqh9W_sidebarHistoryHost",
44436
+ "optionRow": "Yvqh9W_optionRow",
44437
+ "panelHeader": "Yvqh9W_panelHeader",
44438
+ "ecommerceResultsActions": "Yvqh9W_ecommerceResultsActions",
44439
+ "ecommerceSectionHint": "Yvqh9W_ecommerceSectionHint",
44440
+ "promptCount": "Yvqh9W_promptCount",
44441
+ "download": "Yvqh9W_download",
44442
+ "ecommercePlanBack": "Yvqh9W_ecommercePlanBack",
44443
+ "galleryViewToggle": "Yvqh9W_galleryViewToggle",
44444
+ "galleryTagEditor": "Yvqh9W_galleryTagEditor",
44445
+ "topNav": "Yvqh9W_topNav",
44446
+ "ecommerceStructureGrid": "Yvqh9W_ecommerceStructureGrid",
44447
+ "spinner": "Yvqh9W_spinner",
44448
+ "image": "Yvqh9W_image",
44449
+ "taskRows": "Yvqh9W_taskRows",
44450
+ "config": "Yvqh9W_config",
44451
+ "card": "Yvqh9W_card",
44452
+ "galleryCardInfo": "Yvqh9W_galleryCardInfo",
44453
+ "lightboxImage": "Yvqh9W_lightboxImage",
44454
+ "historyTitle": "Yvqh9W_historyTitle",
44455
+ "entry": "Yvqh9W_entry",
44456
+ "lightboxTools": "Yvqh9W_lightboxTools",
44457
+ "configGuide": "Yvqh9W_configGuide",
44458
+ "historyClear": "Yvqh9W_historyClear",
44459
+ "comparisonFullscreen": "Yvqh9W_comparisonFullscreen",
44460
+ "ecommerceField": "Yvqh9W_ecommerceField",
44461
+ "conversationToast": "Yvqh9W_conversationToast",
44070
44462
  "uploadHint": "Yvqh9W_uploadHint",
44071
- "galleryFilters": "Yvqh9W_galleryFilters",
44463
+ "grid": "Yvqh9W_grid",
44464
+ "taskTray": "Yvqh9W_taskTray",
44465
+ "modelSelect": "Yvqh9W_modelSelect",
44466
+ "gallerySelectMode": "Yvqh9W_gallerySelectMode",
44467
+ "lightboxFigure": "Yvqh9W_lightboxFigure",
44468
+ "galleryCardActions": "Yvqh9W_galleryCardActions",
44469
+ "ecommerceWorkspace": "Yvqh9W_ecommerceWorkspace",
44470
+ "ecommerceResultsHeader": "Yvqh9W_ecommerceResultsHeader",
44072
44471
  "lightboxActions": "Yvqh9W_lightboxActions",
44073
- "image": "Yvqh9W_image",
44074
- "historyMain": "Yvqh9W_historyMain",
44075
- "historyThumb": "Yvqh9W_historyThumb",
44076
- "galleryFilter": "Yvqh9W_galleryFilter",
44077
- "ecommerceTaskCard": "Yvqh9W_ecommerceTaskCard",
44078
- "updateActions": "Yvqh9W_updateActions",
44079
- "galleryBulkButton": "Yvqh9W_galleryBulkButton",
44080
- "ecommerceTaskState": "Yvqh9W_ecommerceTaskState",
44081
- "historyThumbPlaceholder": "Yvqh9W_historyThumbPlaceholder",
44082
- "modelLabel": "Yvqh9W_modelLabel",
44472
+ "galleryRemove": "Yvqh9W_galleryRemove",
44083
44473
  "bigSpinner": "Yvqh9W_bigSpinner",
44474
+ "modePill": "Yvqh9W_modePill",
44475
+ "footer": "Yvqh9W_footer",
44476
+ "taskTrayCount": "Yvqh9W_taskTrayCount",
44084
44477
  "updateBanner": "Yvqh9W_updateBanner",
44085
- "lightbox": "Yvqh9W_lightbox",
44086
- "galleryWorkspace": "Yvqh9W_galleryWorkspace",
44087
- "ecommerceSectionHint": "Yvqh9W_ecommerceSectionHint",
44088
- "historyClear": "Yvqh9W_historyClear",
44089
- "galleryToolbar": "Yvqh9W_galleryToolbar",
44090
- "updateRelease": "Yvqh9W_updateRelease",
44091
- "galleryCount": "Yvqh9W_galleryCount",
44092
- "gallerySelectionBar": "Yvqh9W_gallerySelectionBar",
44093
- "taskTrayChevron": "Yvqh9W_taskTrayChevron",
44094
- "ecommercePlanList": "Yvqh9W_ecommercePlanList",
44095
- "taskTrayToggle": "Yvqh9W_taskTrayToggle",
44096
- "historyHeaderActions": "Yvqh9W_historyHeaderActions",
44097
- "modeRow": "Yvqh9W_modeRow",
44098
- "canvasBody": "Yvqh9W_canvasBody",
44099
- "ecommerceAdvancedToggle": "Yvqh9W_ecommerceAdvancedToggle",
44100
- "entry": "Yvqh9W_entry",
44101
- "ecommerceGroups": "Yvqh9W_ecommerceGroups",
44102
- "referenceActions": "Yvqh9W_referenceActions",
44103
- "configScroll": "Yvqh9W_configScroll",
44478
+ "ecommerceActionChip": "Yvqh9W_ecommerceActionChip",
44104
44479
  "canvasStateTitle": "Yvqh9W_canvasStateTitle",
44105
- "comparisonGrid": "Yvqh9W_comparisonGrid",
44106
- "panelHeading": "Yvqh9W_panelHeading",
44107
- "chatResizer": "Yvqh9W_chatResizer",
44480
+ "ecommerceUploadHero": "Yvqh9W_ecommerceUploadHero",
44481
+ "canvasHistoryTag": "Yvqh9W_canvasHistoryTag",
44482
+ "ecommerceCardHint": "Yvqh9W_ecommerceCardHint",
44483
+ "galleryTagFilterList": "Yvqh9W_galleryTagFilterList",
44484
+ "galleryBadge": "Yvqh9W_galleryBadge",
44485
+ "ecommerceAiButton": "Yvqh9W_ecommerceAiButton",
44486
+ "sidebarHistoryHost": "Yvqh9W_sidebarHistoryHost",
44487
+ "ecommerceResults": "Yvqh9W_ecommerceResults",
44108
44488
  "modelMenuItem": "Yvqh9W_modelMenuItem",
44109
- "galleryClear": "Yvqh9W_galleryClear",
44110
- "comparisonImageButton": "Yvqh9W_comparisonImageButton",
44489
+ "gallerySelectionClear": "Yvqh9W_gallerySelectionClear",
44490
+ "ecommerceAssetAdd": "Yvqh9W_ecommerceAssetAdd",
44491
+ "galleryCard": "Yvqh9W_galleryCard",
44492
+ "historyFilters": "Yvqh9W_historyFilters",
44493
+ "lightboxMeta": "Yvqh9W_lightboxMeta",
44494
+ "canvas": "Yvqh9W_canvas",
44495
+ "ecommerceAdvancedToggle": "Yvqh9W_ecommerceAdvancedToggle",
44496
+ "dshImageGenToastIn": "Yvqh9W_dshImageGenToastIn",
44497
+ "galleryWorkspace": "Yvqh9W_galleryWorkspace",
44498
+ "history": "Yvqh9W_history",
44499
+ "sessionTab": "Yvqh9W_sessionTab",
44500
+ "gallerySearch": "Yvqh9W_gallerySearch",
44501
+ "taskStatus": "Yvqh9W_taskStatus",
44502
+ "ecommerceAdvancedChevron": "Yvqh9W_ecommerceAdvancedChevron",
44503
+ "taskTrayHeader": "Yvqh9W_taskTrayHeader",
44111
44504
  "galleryMasonry": "Yvqh9W_galleryMasonry",
44112
- "taskTray": "Yvqh9W_taskTray",
44505
+ "galleryImageButton": "Yvqh9W_galleryImageButton",
44506
+ "lightboxDownload": "Yvqh9W_lightboxDownload",
44113
44507
  "sessionTabs": "Yvqh9W_sessionTabs",
44114
- "promptFooter": "Yvqh9W_promptFooter",
44115
- "promptCount": "Yvqh9W_promptCount",
44116
- "ecommerceWorkspace": "Yvqh9W_ecommerceWorkspace",
44508
+ "ecommerceSlotCount": "Yvqh9W_ecommerceSlotCount",
44509
+ "ecommerceAdvancedBody": "Yvqh9W_ecommerceAdvancedBody",
44510
+ "modelMenu": "Yvqh9W_modelMenu",
44511
+ "galleryFilterHeading": "Yvqh9W_galleryFilterHeading",
44512
+ "galleryFilterDivider": "Yvqh9W_galleryFilterDivider",
44117
44513
  "canvasState": "Yvqh9W_canvasState",
44118
- "galleryFilterCount": "Yvqh9W_galleryFilterCount",
44119
- "historyIconAction": "Yvqh9W_historyIconAction",
44120
- "hiddenFile": "Yvqh9W_hiddenFile",
44121
- "galleryCard": "Yvqh9W_galleryCard",
44122
- "modelSelect": "Yvqh9W_modelSelect",
44123
- "canvasStateHint": "Yvqh9W_canvasStateHint",
44124
- "imageCaption": "Yvqh9W_imageCaption",
44125
- "galleryBadge": "Yvqh9W_galleryBadge",
44514
+ "galleryAdd": "Yvqh9W_galleryAdd",
44515
+ "lightboxScaleFrame": "Yvqh9W_lightboxScaleFrame",
44126
44516
  "compareToggle": "Yvqh9W_compareToggle",
44127
- "taskTrayClose": "Yvqh9W_taskTrayClose",
44128
- "optionRow": "Yvqh9W_optionRow",
44129
- "galleryRemove": "Yvqh9W_galleryRemove",
44130
- "lightboxDownload": "Yvqh9W_lightboxDownload",
44131
- "footer": "Yvqh9W_footer",
44517
+ "historyList": "Yvqh9W_historyList",
44518
+ "configToggle": "Yvqh9W_configToggle",
44519
+ "ecommerceSection": "Yvqh9W_ecommerceSection",
44520
+ "galleryFilter": "Yvqh9W_galleryFilter",
44521
+ "taskPrompt": "Yvqh9W_taskPrompt",
44522
+ "galleryRatio": "Yvqh9W_galleryRatio",
44132
44523
  "galleryRatioList": "Yvqh9W_galleryRatioList",
44133
- "uploadBox": "Yvqh9W_uploadBox",
44134
- "ecommerceStructureGrid": "Yvqh9W_ecommerceStructureGrid",
44135
- "paramHint": "Yvqh9W_paramHint",
44136
- "ecommerceParamGrid": "Yvqh9W_ecommerceParamGrid",
44137
- "lightboxNav": "Yvqh9W_lightboxNav",
44138
- "configHeader": "Yvqh9W_configHeader",
44139
- "galleryHeading": "Yvqh9W_galleryHeading",
44140
- "lightboxEdit": "Yvqh9W_lightboxEdit",
44141
- "taskTrayCount": "Yvqh9W_taskTrayCount",
44524
+ "modelWrap": "Yvqh9W_modelWrap",
44525
+ "galleryClear": "Yvqh9W_galleryClear",
44142
44526
  "entryLabel": "Yvqh9W_entryLabel",
44143
- "galleryTags": "Yvqh9W_galleryTags",
44144
- "historyNew": "Yvqh9W_historyNew",
44145
- "lightboxFigure": "Yvqh9W_lightboxFigure",
44146
- "lightboxTool": "Yvqh9W_lightboxTool",
44147
- "topNavItem": "Yvqh9W_topNavItem",
44148
- "ecommerceResultsHeader": "Yvqh9W_ecommerceResultsHeader",
44149
- "topNavDivider": "Yvqh9W_topNavDivider",
44150
- "ecommercePlanWarn": "Yvqh9W_ecommercePlanWarn",
44151
- "grid": "Yvqh9W_grid",
44152
- "galleryToolbarActions": "Yvqh9W_galleryToolbarActions",
44153
- "chatToggle": "Yvqh9W_chatToggle",
44154
- "spinner": "Yvqh9W_spinner",
44155
- "ecommerceResultBadge": "Yvqh9W_ecommerceResultBadge",
44527
+ "canvasEmptyIcon": "Yvqh9W_canvasEmptyIcon",
44528
+ "comparisonBoard": "Yvqh9W_comparisonBoard",
44529
+ "previewBadge": "Yvqh9W_previewBadge",
44156
44530
  "ecommerceGroupGrid": "Yvqh9W_ecommerceGroupGrid",
44157
- "canvasError": "Yvqh9W_canvasError",
44531
+ "compareModelChoices": "Yvqh9W_compareModelChoices",
44532
+ "lightbox": "Yvqh9W_lightbox",
44533
+ "historySearch": "Yvqh9W_historySearch",
44534
+ "galleryToast": "Yvqh9W_galleryToast",
44535
+ "sessionTabLabel": "Yvqh9W_sessionTabLabel",
44536
+ "enhanceButton": "Yvqh9W_enhanceButton",
44537
+ "canvasMeta": "Yvqh9W_canvasMeta",
44158
44538
  "historyItem": "Yvqh9W_historyItem",
44159
- "ecommerceFooterHint": "Yvqh9W_ecommerceFooterHint",
44160
- "paramGroup": "Yvqh9W_paramGroup",
44161
- "download": "Yvqh9W_download",
44162
- "galleryTagEditor": "Yvqh9W_galleryTagEditor",
44163
- "dshImageGenSpin": "Yvqh9W_dshImageGenSpin",
44164
- "sessionTabIcon": "Yvqh9W_sessionTabIcon",
44165
- "connectionDot": "Yvqh9W_connectionDot",
44166
- "sessionTab": "Yvqh9W_sessionTab",
44167
- "taskRows": "Yvqh9W_taskRows",
44168
- "ecommercePlanMini": "Yvqh9W_ecommercePlanMini",
44539
+ "historyHeader": "Yvqh9W_historyHeader",
44540
+ "configScroll": "Yvqh9W_configScroll",
44169
44541
  "historyPrompt": "Yvqh9W_historyPrompt",
44542
+ "lightboxCopy": "Yvqh9W_lightboxCopy",
44543
+ "topNavItem": "Yvqh9W_topNavItem",
44544
+ "gallerySort": "Yvqh9W_gallerySort",
44545
+ "historyNew": "Yvqh9W_historyNew",
44546
+ "panelHeading": "Yvqh9W_panelHeading",
44547
+ "connectionStatus": "Yvqh9W_connectionStatus",
44548
+ "reference": "Yvqh9W_reference",
44549
+ "ecommerceTaskState": "Yvqh9W_ecommerceTaskState",
44550
+ "ecommercePlanList": "Yvqh9W_ecommercePlanList",
44551
+ "galleryCardFooter": "Yvqh9W_galleryCardFooter",
44552
+ "taskTrayChevron": "Yvqh9W_taskTrayChevron",
44553
+ "ecommerceGroup": "Yvqh9W_ecommerceGroup",
44554
+ "paramHint": "Yvqh9W_paramHint",
44555
+ "historyMain": "Yvqh9W_historyMain",
44556
+ "sessionTabIcon": "Yvqh9W_sessionTabIcon",
44557
+ "historyThumbPlaceholder": "Yvqh9W_historyThumbPlaceholder",
44558
+ "historyMeta": "Yvqh9W_historyMeta",
44170
44559
  "historyActions": "Yvqh9W_historyActions",
44171
- "ecommerceUploadHero": "Yvqh9W_ecommerceUploadHero",
44172
- "modelMenu": "Yvqh9W_modelMenu",
44173
- "ecommerceAdvancedBody": "Yvqh9W_ecommerceAdvancedBody",
44174
- "ecommerceTaskActions": "Yvqh9W_ecommerceTaskActions",
44175
- "modelWrap": "Yvqh9W_modelWrap"
44560
+ "ecommercePlanNote": "Yvqh9W_ecommercePlanNote",
44561
+ "conversationAdd": "Yvqh9W_conversationAdd",
44562
+ "zoomHint": "Yvqh9W_zoomHint",
44563
+ "galleryTagFilter": "Yvqh9W_galleryTagFilter",
44564
+ "gallerySelect": "Yvqh9W_gallerySelect",
44565
+ "galleryToolbarActions": "Yvqh9W_galleryToolbarActions",
44566
+ "ecommerceGroups": "Yvqh9W_ecommerceGroups",
44567
+ "ecommerceCardHead": "Yvqh9W_ecommerceCardHead",
44568
+ "topNavDivider": "Yvqh9W_topNavDivider",
44569
+ "compareControl": "Yvqh9W_compareControl",
44570
+ "lightboxCaption": "Yvqh9W_lightboxCaption",
44571
+ "ecommerceRefRow": "Yvqh9W_ecommerceRefRow",
44572
+ "modelLabel": "Yvqh9W_modelLabel",
44573
+ "galleryFilterCount": "Yvqh9W_galleryFilterCount",
44574
+ "hiddenFile": "Yvqh9W_hiddenFile",
44575
+ "galleryFilters": "Yvqh9W_galleryFilters",
44576
+ "paramGroup": "Yvqh9W_paramGroup",
44577
+ "gallerySelectionBar": "Yvqh9W_gallerySelectionBar",
44578
+ "ecommerceResultsEmpty": "Yvqh9W_ecommerceResultsEmpty"
44176
44579
  };
44177
44580
  //#endregion
44178
44581
  //#region src/client/ImageGenPanel.tsx
@@ -44544,9 +44947,7 @@ window.__ModuleLoader__.load({
44544
44947
  customLanguage: "",
44545
44948
  size: "1:1",
44546
44949
  productName: "",
44547
- sellingPoints: "",
44548
- protectedFeatures: "",
44549
- styleHint: "",
44950
+ promptInfo: "",
44550
44951
  slots: PRODUCT_SET_SLOTS.map((slot) => ({ ...slot }))
44551
44952
  };
44552
44953
  }
@@ -44567,11 +44968,10 @@ window.__ModuleLoader__.load({
44567
44968
  return draft.language === "custom" ? draft.customLanguage?.trim() ?? "" : draft.language;
44568
44969
  }
44569
44970
  function ecommercePrompt(draft, slot) {
44570
- const points = draft.sellingPoints.trim() || "突出商品真实材质、结构和核心价值";
44571
- const protectedFeatures = draft.protectedFeatures.trim() || "保持商品颜色、形状、Logo、包装文字和结构真实,不添加不存在的配件";
44971
+ const info = draft.promptInfo.trim() || "突出商品真实材质、结构和核心价值;保持商品颜色、形状、Logo、包装文字和结构真实,不添加不存在的配件";
44572
44972
  const language = effectiveEcommerceLanguage(draft) || "中文";
44573
44973
  const refClause = slot.refRole !== void 0 && slot.refRole !== "none" ? `本图以上传的${ECOMMERCE_ROLE_PROMPT_LABELS[slot.refRole]}图片为参考,商品与风格必须与参考图保持一致;` : "";
44574
- return `电商${slot.label}:为${draft.productName.trim() || "该商品"}制作${slot.description}。商品品类:${draft.category};平台:${draft.platform};语言:${language}。商品卖点:${points}。必须遵守:${protectedFeatures}。${refClause}整体要求:商品主体清晰、比例真实、光线自然、画面干净、适合电商发布;${draft.styleHint.trim()}`;
44974
+ return `电商${slot.label}:为${draft.productName.trim() || "该商品"}制作${slot.description}。商品品类:${draft.category};平台:${draft.platform};语言:${language}。${refClause}商品信息与要求:${info}。整体要求:商品主体清晰、比例真实、光线自然、画面干净、适合电商发布。`;
44575
44975
  }
44576
44976
  /** Consistency prefix for slots generated after the main image exists. */
44577
44977
  function withAnchorNote(prompt) {
@@ -44705,6 +45105,15 @@ window.__ModuleLoader__.load({
44705
45105
  ...slot,
44706
45106
  refRole: slot.refRole ?? "product"
44707
45107
  }));
45108
+ merged.promptInfo = typeof merged.promptInfo === "string" ? merged.promptInfo : "";
45109
+ if (merged.promptInfo.trim() === "") {
45110
+ const legacy = [
45111
+ merged.sellingPoints ?? "",
45112
+ merged.protectedFeatures ?? "",
45113
+ merged.styleHint ?? ""
45114
+ ].map((part) => part.trim()).filter((part) => part !== "");
45115
+ if (legacy.length > 0) merged.promptInfo = legacy.join("\n");
45116
+ }
44708
45117
  return merged;
44709
45118
  }
44710
45119
  } catch {}
@@ -44712,6 +45121,7 @@ window.__ModuleLoader__.load({
44712
45121
  });
44713
45122
  const [ecommercePreview, setEcommercePreview] = (0, react.useState)(false);
44714
45123
  const [ecommerceGenerating, setEcommerceGenerating] = (0, react.useState)(false);
45124
+ const [ecommerceEnhancing, setEcommerceEnhancing] = (0, react.useState)(false);
44715
45125
  const [ecommerceProjectId, setEcommerceProjectId] = (0, react.useState)(null);
44716
45126
  const [ecommerceAssets, setEcommerceAssets] = (0, react.useState)([]);
44717
45127
  /** History-restored product set currently shown in the results canvas. */
@@ -44932,6 +45342,36 @@ window.__ModuleLoader__.load({
44932
45342
  setEnhancing(false);
44933
45343
  }
44934
45344
  };
45345
+ /** AI 帮写:整理/补全电商参数信息(提示词),走提示词增强通道。 */
45346
+ const ecommerceEnhanceInfo = async () => {
45347
+ if (ecommerceEnhancing) return;
45348
+ const promptEndpointConfigured = (config?.promptApiUrl ?? "").trim() !== "" || configured;
45349
+ if ((config?.promptModel ?? "").trim() === "" || !promptEndpointConfigured || !promptKeySet && !apiKeySet) {
45350
+ openSettingsGuide("enhancement");
45351
+ return;
45352
+ }
45353
+ setEcommerceEnhancing(true);
45354
+ setError(null);
45355
+ try {
45356
+ const instruction = [
45357
+ "你是电商图文策划。请把下面的商品信息整理成一段可直接用于 AI 生图提示词的中文参数描述(120 字以内),",
45358
+ "涵盖商品主体、规格材质、核心卖点与必须保留的特征;信息缺失处按商品类目合理补全,不要解释,只输出整理结果。",
45359
+ `商品名称:${ecommerce.productName.trim() || "未提供"}`,
45360
+ `商品类目:${ecommerce.category}`,
45361
+ `商品平台:${ecommerce.platform}`,
45362
+ `已有信息:${ecommerce.promptInfo.trim() !== "" ? ecommerce.promptInfo : "无,请根据商品名称与类目合理补全"}`
45363
+ ].join("\n");
45364
+ const result = await api.enhancePrompt(instruction);
45365
+ setEcommerce((previous) => ({
45366
+ ...previous,
45367
+ promptInfo: result
45368
+ }));
45369
+ } catch (caught) {
45370
+ setError(errorMessage(caught));
45371
+ } finally {
45372
+ setEcommerceEnhancing(false);
45373
+ }
45374
+ };
44935
45375
  /** Read an uploaded reference image into a data URL. */
44936
45376
  const acceptFile = (file) => {
44937
45377
  if (file === void 0) return;
@@ -44955,9 +45395,10 @@ window.__ModuleLoader__.load({
44955
45395
  };
44956
45396
  reader.readAsDataURL(file);
44957
45397
  };
44958
- /** Read uploaded product assets into session-only data-URL chips, capped at
44959
- * MAX_ECOMMERCE_ASSETS. Each starts as the product-role reference. */
44960
- const acceptEcommerceFiles = (files) => {
45398
+ /** Read uploaded product assets into session-only data-URL chips. Product
45399
+ * refs cap at MAX_ECOMMERCE_ASSETS; the style group holds a single image
45400
+ * that gets replaced on re-upload. */
45401
+ const acceptEcommerceFiles = (files, role = "product") => {
44961
45402
  if (files === void 0) return;
44962
45403
  const incoming = Array.from(files).filter((file) => file.type.startsWith("image/") && file.size <= REF_IMAGE_MAX_BYTES);
44963
45404
  if (incoming.length === 0) {
@@ -44970,7 +45411,16 @@ window.__ModuleLoader__.load({
44970
45411
  if (typeof reader.result !== "string") return;
44971
45412
  const dataUrl = reader.result;
44972
45413
  setEcommerceAssets((previous) => {
44973
- if (previous.length >= MAX_ECOMMERCE_ASSETS) {
45414
+ if (role === "style") {
45415
+ const styleAsset = {
45416
+ id: newComparisonId(),
45417
+ dataUrl,
45418
+ name: file.name,
45419
+ role: "style"
45420
+ };
45421
+ return [...previous.filter((item) => item.role !== "style"), styleAsset];
45422
+ }
45423
+ if (previous.filter((item) => item.role !== "style").length >= MAX_ECOMMERCE_ASSETS) {
44974
45424
  setError(tt("ecommerce.assetsFull"));
44975
45425
  return previous;
44976
45426
  }
@@ -45195,9 +45645,7 @@ window.__ModuleLoader__.load({
45195
45645
  platform: ecommerce.platform,
45196
45646
  language: ecommerce.language,
45197
45647
  size: ecommerce.size,
45198
- sellingPoints: ecommerce.sellingPoints,
45199
- protectedFeatures: ecommerce.protectedFeatures,
45200
- styleHint: ecommerce.styleHint
45648
+ promptInfo: ecommerce.promptInfo
45201
45649
  },
45202
45650
  generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
45203
45651
  images: ecommerceMergedItems.map((item) => ({
@@ -45597,6 +46045,8 @@ window.__ModuleLoader__.load({
45597
46045
  const ecommerceTotal = ecommerceSlots.reduce((total, slot) => total + slot.count, 0);
45598
46046
  const ecommerceGenerateDisabled = submitting || ecommerceGenerating || ecommerceSlots.length === 0 || ecommerce.productName.trim() === "" || ecommerce.language === "custom" && effectiveEcommerceLanguage(ecommerce) === "";
45599
46047
  const ecommerceFileInput = (0, react.useRef)(null);
46048
+ /** Which group (主图/风格) the shared file input uploads into. */
46049
+ const ecommerceUploadRoleRef = (0, react.useRef)("product");
45600
46050
  const ecommerceProjectTasks = ecommerceProjectId === null ? [] : tasks.filter((task) => task.request.workflow === "ecommerce" && task.request.projectId === ecommerceProjectId);
45601
46051
  const liveSlotKeys = new Set(ecommerceProjectTasks.map((task) => task.request.slotKey ?? task.id));
45602
46052
  const ecommerceMergedItems = [...ecommerceProjectTasks.map((task) => ({
@@ -45616,6 +46066,93 @@ window.__ModuleLoader__.load({
45616
46066
  label,
45617
46067
  items: ecommerceMergedItems.filter((item) => item.label === label)
45618
46068
  }));
46069
+ const ecommerceMainGroup = ecommerceResultGroups.find((group) => group.items.some((item) => item.slotKey === "main" || item.slotKey.startsWith("main-"))) ?? null;
46070
+ const ecommerceSideGroups = ecommerceResultGroups.filter((group) => group !== ecommerceMainGroup);
46071
+ const renderEcommerceGroup = (group, main = false) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
46072
+ className: panel_module_css_default.ecommerceGroup,
46073
+ "data-ecommerce-group": group.label,
46074
+ "data-main": main ? "" : void 0,
46075
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("header", { children: [
46076
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: group.label }),
46077
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", { children: [
46078
+ group.items.filter((item) => item.status === "completed").length,
46079
+ "/",
46080
+ group.items.length
46081
+ ] }),
46082
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
46083
+ type: "button",
46084
+ className: panel_module_css_default.galleryBulkButton,
46085
+ disabled: ecommerceGenerating,
46086
+ onClick: () => {
46087
+ regenerateEcommerceSlot(group.label);
46088
+ },
46089
+ children: tt("ecommerce.results.regenerate")
46090
+ })
46091
+ ] }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
46092
+ className: panel_module_css_default.ecommerceGroupGrid,
46093
+ children: group.items.map((item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
46094
+ className: panel_module_css_default.ecommerceTaskCard,
46095
+ "data-status": item.status,
46096
+ children: item.status === "completed" && item.images.length > 0 ? item.images.map((image, imageIndex) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("figure", {
46097
+ className: panel_module_css_default.imageCard,
46098
+ role: "button",
46099
+ tabIndex: 0,
46100
+ title: tt("preview.open"),
46101
+ onClick: () => {
46102
+ openPreview(item.images, imageIndex);
46103
+ },
46104
+ children: [
46105
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
46106
+ className: panel_module_css_default.image,
46107
+ src: srcOf(image),
46108
+ alt: `${group.label} ${imageIndex + 1}`
46109
+ }),
46110
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
46111
+ className: panel_module_css_default.ecommerceResultBadge,
46112
+ children: group.label
46113
+ }),
46114
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
46115
+ className: panel_module_css_default.ecommerceTaskActions,
46116
+ onClick: (event) => event.stopPropagation(),
46117
+ children: [
46118
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
46119
+ className: panel_module_css_default.ecommerceActionChip,
46120
+ href: srcOf(image),
46121
+ download: `product-${item.slotKey || item.id}-${imageIndex + 1}.${extensionOf(image.mime)}`,
46122
+ children: tt("download")
46123
+ }),
46124
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
46125
+ type: "button",
46126
+ className: panel_module_css_default.ecommerceActionChip,
46127
+ disabled: galleryAdding,
46128
+ onClick: () => {
46129
+ addToGallery(image);
46130
+ },
46131
+ children: tt("gallery.add")
46132
+ }),
46133
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
46134
+ type: "button",
46135
+ className: panel_module_css_default.ecommerceActionChip,
46136
+ disabled: conversationBusy,
46137
+ onClick: () => {
46138
+ addImageToConversation(image, imageIndex, `${item.id}:${imageIndex}`);
46139
+ },
46140
+ children: addingToConversation === `${item.id}:${imageIndex}` ? tt("conversation.adding") : tt("conversation.add")
46141
+ })
46142
+ ]
46143
+ })
46144
+ ]
46145
+ }, imageIndex)) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
46146
+ className: panel_module_css_default.ecommerceTaskState,
46147
+ children: [
46148
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("b", { children: group.label }),
46149
+ tt(`tasks.${item.status}`),
46150
+ item.error !== void 0 ? ` · ${item.error}` : ""
46151
+ ]
46152
+ })
46153
+ }, item.id))
46154
+ })]
46155
+ }, group.label);
45619
46156
  const conversationBusy = addingToConversation !== null || galleryConversationAddingId !== null || historyConversationAddingId !== null;
45620
46157
  const viewingEntry = viewingHistoryId === null ? null : history.find((entry) => entry.id === viewingHistoryId) ?? null;
45621
46158
  const viewingGalleryEntry = galleryViewingId === null ? null : gallery.find((entry) => entry.id === galleryViewingId) ?? null;
@@ -45987,54 +46524,35 @@ window.__ModuleLoader__.load({
45987
46524
  })
45988
46525
  })]
45989
46526
  }),
45990
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("nav", {
45991
- className: panel_module_css_default.topNav,
45992
- role: "tablist",
45993
- "aria-label": tt("workspace.label"),
45994
- children: [
45995
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
45996
- type: "button",
45997
- className: panel_module_css_default.topNavItem,
45998
- "data-active": workspace === "normal" && tab !== "gallery" ? "" : void 0,
45999
- onClick: () => {
46000
- if (workspace !== "normal" || tab === "gallery") openTab("text");
46001
- },
46002
- children: tt("workspace.normal")
46003
- }),
46004
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
46005
- type: "button",
46006
- className: panel_module_css_default.topNavItem,
46007
- "data-active": workspace === "normal" && tab === "gallery" ? "" : void 0,
46008
- onClick: () => {
46009
- openTab("gallery");
46010
- },
46011
- children: tt("gallery.title")
46012
- }),
46013
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
46014
- className: panel_module_css_default.topNavDivider,
46015
- "aria-hidden": "true"
46016
- }),
46017
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
46018
- type: "button",
46019
- className: panel_module_css_default.topNavItem,
46020
- "data-active": workspace === "canvas" ? "" : void 0,
46021
- onClick: () => {
46022
- setWorkspace("canvas");
46023
- },
46024
- children: tt("workspace.canvas")
46025
- }),
46026
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
46027
- type: "button",
46028
- className: panel_module_css_default.topNavItem,
46029
- "data-active": workspace === "ecommerce" ? "" : void 0,
46030
- onClick: () => {
46031
- setWorkspace("ecommerce");
46032
- },
46033
- children: [tt("workspace.ecommerce"), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
46527
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(GooeyNav, {
46528
+ ariaLabel: tt("workspace.label"),
46529
+ activeIndex: workspace === "normal" ? tab === "gallery" ? 1 : 0 : workspace === "canvas" ? 2 : 3,
46530
+ onSelect: (index) => {
46531
+ if (index === 0) openTab("text");
46532
+ else if (index === 1) openTab("gallery");
46533
+ else if (index === 2) setWorkspace("canvas");
46534
+ else setWorkspace("ecommerce");
46535
+ },
46536
+ items: [
46537
+ {
46538
+ key: "normal",
46539
+ label: tt("workspace.normal")
46540
+ },
46541
+ {
46542
+ key: "gallery",
46543
+ label: tt("gallery.title")
46544
+ },
46545
+ {
46546
+ key: "canvas",
46547
+ label: tt("workspace.canvas")
46548
+ },
46549
+ {
46550
+ key: "ecommerce",
46551
+ label: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [tt("workspace.ecommerce"), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
46034
46552
  className: panel_module_css_default.previewBadge,
46035
46553
  children: tt("ecommerce.badge")
46036
- })]
46037
- })
46554
+ })] })
46555
+ }
46038
46556
  ]
46039
46557
  }),
46040
46558
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
@@ -46245,27 +46763,58 @@ window.__ModuleLoader__.load({
46245
46763
  children: [
46246
46764
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
46247
46765
  className: panel_module_css_default.ecommerceSection,
46248
- children: [
46249
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", { children: tt("ecommerce.product") }),
46250
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
46251
- className: panel_module_css_default.ecommerceField,
46252
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
46253
- className: panel_module_css_default.ecommerceFieldLabel,
46254
- children: tt("ecommerce.productName")
46255
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
46256
- value: ecommerce.productName,
46257
- placeholder: tt("ecommerce.productName"),
46258
- onChange: (event) => setEcommerce((previous) => ({
46259
- ...previous,
46260
- productName: event.target.value
46261
- }))
46262
- })]
46263
- }),
46264
- ecommerceAssets.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
46766
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("header", {
46767
+ className: panel_module_css_default.ecommerceCardHead,
46768
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("h3", { children: [tt("ecommerce.productRefTitle"), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", {
46769
+ className: panel_module_css_default.ecommerceSectionHint,
46770
+ children: tt("ecommerce.productRefHint")
46771
+ })] }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
46772
+ className: panel_module_css_default.ecommerceCardCount,
46773
+ children: [
46774
+ ecommerceAssets.filter((asset) => asset.role !== "style").length,
46775
+ "/",
46776
+ MAX_ECOMMERCE_ASSETS
46777
+ ]
46778
+ })]
46779
+ }), ecommerceAssets.some((asset) => asset.role !== "style") ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
46780
+ className: panel_module_css_default.ecommerceAssets,
46781
+ children: [ecommerceAssets.filter((asset) => asset.role !== "style").map((asset) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
46782
+ className: panel_module_css_default.ecommerceAsset,
46783
+ "data-ecommerce-asset": "",
46784
+ children: [
46785
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
46786
+ src: asset.dataUrl,
46787
+ alt: asset.name
46788
+ }),
46789
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("select", {
46790
+ value: asset.role,
46791
+ "data-ecommerce-asset-role": "",
46792
+ "aria-label": tt("ecommerce.refSelect"),
46793
+ onChange: (event) => setEcommerceAssets((previous) => previous.map((item) => item.id === asset.id ? {
46794
+ ...item,
46795
+ role: event.target.value
46796
+ } : item)),
46797
+ children: ECOMMERCE_ASSET_ROLES.filter((role) => role !== "style").map((role) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
46798
+ value: role,
46799
+ children: tt(`ecommerce.role.${role}`)
46800
+ }, role))
46801
+ }),
46802
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
46803
+ type: "button",
46804
+ "aria-label": tt("edit.remove"),
46805
+ onClick: () => {
46806
+ setEcommerceAssets((previous) => previous.filter((item) => item.id !== asset.id));
46807
+ },
46808
+ children: "×"
46809
+ })
46810
+ ]
46811
+ }, asset.id)), ecommerceAssets.filter((asset) => asset.role !== "style").length < MAX_ECOMMERCE_ASSETS ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
46265
46812
  type: "button",
46266
- className: panel_module_css_default.ecommerceUploadHero,
46813
+ className: panel_module_css_default.ecommerceAssetAdd,
46267
46814
  "data-ecommerce-upload": "",
46815
+ title: tt("ecommerce.uploadRef"),
46268
46816
  onClick: () => {
46817
+ ecommerceUploadRoleRef.current = "product";
46269
46818
  ecommerceFileInput.current?.click();
46270
46819
  },
46271
46820
  onDragOver: (event) => {
@@ -46273,83 +46822,165 @@ window.__ModuleLoader__.load({
46273
46822
  },
46274
46823
  onDrop: (event) => {
46275
46824
  event.preventDefault();
46276
- acceptEcommerceFiles(event.dataTransfer.files ?? void 0);
46825
+ acceptEcommerceFiles(event.dataTransfer.files ?? void 0, "product");
46277
46826
  },
46278
- children: [
46279
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
46280
- viewBox: "0 0 16 16",
46281
- width: "15",
46282
- height: "15",
46283
- fill: "none",
46284
- stroke: "currentColor",
46285
- strokeWidth: "1.3",
46286
- strokeLinecap: "round",
46287
- strokeLinejoin: "round",
46288
- "aria-hidden": "true",
46289
- children: [
46290
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M8 10V3.5" }),
46291
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M5.5 5.5L8 3l2.5 2.5" }),
46292
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M3 9.5V12a1.5 1.5 0 001.5 1.5h7A1.5 1.5 0 0013 12V9.5" })
46293
- ]
46294
- }),
46295
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: tt("ecommerce.uploadRef") }),
46296
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", { children: tt("edit.uploadHint") })
46297
- ]
46298
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
46827
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
46828
+ "aria-hidden": "true",
46829
+ children: ""
46830
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", { children: tt("ecommerce.uploadShort") })]
46831
+ }) : null]
46832
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
46833
+ type: "button",
46834
+ className: panel_module_css_default.ecommerceUploadHero,
46835
+ "data-ecommerce-upload": "",
46836
+ onClick: () => {
46837
+ ecommerceUploadRoleRef.current = "product";
46838
+ ecommerceFileInput.current?.click();
46839
+ },
46840
+ onDragOver: (event) => {
46841
+ event.preventDefault();
46842
+ },
46843
+ onDrop: (event) => {
46844
+ event.preventDefault();
46845
+ acceptEcommerceFiles(event.dataTransfer.files ?? void 0, "product");
46846
+ },
46847
+ children: [
46848
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
46849
+ viewBox: "0 0 16 16",
46850
+ width: "15",
46851
+ height: "15",
46852
+ fill: "none",
46853
+ stroke: "currentColor",
46854
+ strokeWidth: "1.3",
46855
+ strokeLinecap: "round",
46856
+ strokeLinejoin: "round",
46857
+ "aria-hidden": "true",
46858
+ children: [
46859
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M8 10V3.5" }),
46860
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M5.5 5.5L8 3l2.5 2.5" }),
46861
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M3 9.5V12a1.5 1.5 0 001.5 1.5h7A1.5 1.5 0 0013 12V9.5" })
46862
+ ]
46863
+ }),
46864
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: tt("ecommerce.uploadRef") }),
46865
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", { children: tt("edit.uploadHint") })
46866
+ ]
46867
+ })]
46868
+ }),
46869
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
46870
+ className: panel_module_css_default.ecommerceSection,
46871
+ children: [
46872
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("header", {
46873
+ className: panel_module_css_default.ecommerceCardHead,
46874
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("h3", { children: [tt("ecommerce.styleRefTitle"), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("small", {
46875
+ className: panel_module_css_default.ecommerceSectionHint,
46876
+ children: [
46877
+ "(",
46878
+ tt("ecommerce.styleRefBadge"),
46879
+ ")"
46880
+ ]
46881
+ })] }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
46882
+ className: panel_module_css_default.ecommerceCardCount,
46883
+ children: [ecommerceAssets.some((asset) => asset.role === "style") ? 1 : 0, "/1"]
46884
+ })]
46885
+ }),
46886
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
46887
+ className: panel_module_css_default.ecommerceCardHint,
46888
+ children: tt("ecommerce.styleRefHint")
46889
+ }),
46890
+ ecommerceAssets.some((asset) => asset.role === "style") ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
46299
46891
  className: panel_module_css_default.ecommerceAssets,
46300
- children: [ecommerceAssets.map((asset) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
46892
+ children: ecommerceAssets.filter((asset) => asset.role === "style").map((asset) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
46301
46893
  className: panel_module_css_default.ecommerceAsset,
46302
46894
  "data-ecommerce-asset": "",
46303
- children: [
46304
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
46305
- src: asset.dataUrl,
46306
- alt: asset.name
46307
- }),
46308
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("select", {
46309
- value: asset.role,
46310
- "data-ecommerce-asset-role": "",
46311
- "aria-label": tt("ecommerce.refSelect"),
46312
- onChange: (event) => setEcommerceAssets((previous) => previous.map((item) => item.id === asset.id ? {
46313
- ...item,
46314
- role: event.target.value
46315
- } : item)),
46316
- children: ECOMMERCE_ASSET_ROLES.map((role) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
46317
- value: role,
46318
- children: tt(`ecommerce.role.${role}`)
46319
- }, role))
46320
- }),
46321
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
46322
- type: "button",
46323
- "aria-label": tt("edit.remove"),
46324
- onClick: () => {
46325
- setEcommerceAssets((previous) => previous.filter((item) => item.id !== asset.id));
46326
- },
46327
- children: "×"
46328
- })
46329
- ]
46330
- }, asset.id)), ecommerceAssets.length < MAX_ECOMMERCE_ASSETS ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
46331
- type: "button",
46332
- className: panel_module_css_default.ecommerceAssetAdd,
46333
- "data-ecommerce-upload": "",
46334
- title: tt("ecommerce.uploadRef"),
46335
- onClick: () => {
46336
- ecommerceFileInput.current?.click();
46337
- },
46338
- onDragOver: (event) => {
46339
- event.preventDefault();
46340
- },
46341
- onDrop: (event) => {
46342
- event.preventDefault();
46343
- acceptEcommerceFiles(event.dataTransfer.files ?? void 0);
46344
- },
46345
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
46346
- "aria-hidden": "true",
46347
- children: "+"
46348
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", { children: tt("ecommerce.uploadShort") })]
46349
- }) : null]
46895
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
46896
+ src: asset.dataUrl,
46897
+ alt: asset.name
46898
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
46899
+ type: "button",
46900
+ "aria-label": tt("edit.remove"),
46901
+ onClick: () => {
46902
+ setEcommerceAssets((previous) => previous.filter((item) => item.id !== asset.id));
46903
+ },
46904
+ children: "×"
46905
+ })]
46906
+ }, asset.id))
46907
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
46908
+ type: "button",
46909
+ className: panel_module_css_default.ecommerceAssetAdd,
46910
+ "data-ecommerce-upload": "",
46911
+ title: tt("ecommerce.styleRefUpload"),
46912
+ onClick: () => {
46913
+ ecommerceUploadRoleRef.current = "style";
46914
+ ecommerceFileInput.current?.click();
46915
+ },
46916
+ onDragOver: (event) => {
46917
+ event.preventDefault();
46918
+ },
46919
+ onDrop: (event) => {
46920
+ event.preventDefault();
46921
+ acceptEcommerceFiles(event.dataTransfer.files ?? void 0, "style");
46922
+ },
46923
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
46924
+ "aria-hidden": "true",
46925
+ children: ""
46926
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", { children: tt("ecommerce.styleRefUpload") })]
46350
46927
  })
46351
46928
  ]
46352
46929
  }),
46930
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
46931
+ className: panel_module_css_default.ecommerceSection,
46932
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
46933
+ className: panel_module_css_default.ecommerceField,
46934
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
46935
+ className: panel_module_css_default.ecommerceFieldLabel,
46936
+ children: tt("ecommerce.productName")
46937
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
46938
+ value: ecommerce.productName,
46939
+ placeholder: tt("ecommerce.productName"),
46940
+ onChange: (event) => setEcommerce((previous) => ({
46941
+ ...previous,
46942
+ productName: event.target.value
46943
+ }))
46944
+ })]
46945
+ })
46946
+ }),
46947
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
46948
+ className: panel_module_css_default.ecommerceSection,
46949
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("header", {
46950
+ className: panel_module_css_default.ecommerceCardHead,
46951
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("h3", { children: [tt("ecommerce.refInfoTitle"), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("small", {
46952
+ className: panel_module_css_default.ecommerceSectionHint,
46953
+ children: [
46954
+ "(",
46955
+ tt("ecommerce.optional"),
46956
+ ")"
46957
+ ]
46958
+ })] }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
46959
+ type: "button",
46960
+ className: panel_module_css_default.ecommerceAiButton,
46961
+ disabled: ecommerceEnhancing,
46962
+ title: tt("ecommerce.aiWriteHint"),
46963
+ onClick: () => {
46964
+ ecommerceEnhanceInfo();
46965
+ },
46966
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
46967
+ viewBox: "0 0 16 16",
46968
+ width: "11",
46969
+ height: "11",
46970
+ fill: "currentColor",
46971
+ "aria-hidden": "true",
46972
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M8 1.5l1.4 3.6L13 6.5l-3.6 1.4L8 11.5 6.6 7.9 3 6.5l3.6-1.4z" })
46973
+ }), ecommerceEnhancing ? tt("ecommerce.aiWriting") : tt("ecommerce.aiWrite")]
46974
+ })]
46975
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
46976
+ value: ecommerce.promptInfo,
46977
+ placeholder: tt("ecommerce.promptInfoPlaceholder"),
46978
+ onChange: (event) => setEcommerce((previous) => ({
46979
+ ...previous,
46980
+ promptInfo: event.target.value
46981
+ }))
46982
+ })]
46983
+ }),
46353
46984
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
46354
46985
  className: panel_module_css_default.ecommerceSection,
46355
46986
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", { children: tt("ecommerce.params") }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
@@ -46404,20 +47035,6 @@ window.__ModuleLoader__.load({
46404
47035
  }) : null
46405
47036
  ]
46406
47037
  }),
46407
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
46408
- className: panel_module_css_default.ecommerceField,
46409
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
46410
- className: panel_module_css_default.ecommerceFieldLabel,
46411
- children: tt("ecommerce.ratioLabel")
46412
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("select", {
46413
- value: ecommerce.size,
46414
- onChange: (event) => setEcommerce((previous) => ({
46415
- ...previous,
46416
- size: event.target.value
46417
- })),
46418
- children: SIZES.filter((size) => size !== "auto").map((size) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", { children: size }, size))
46419
- })]
46420
- }),
46421
47038
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
46422
47039
  className: panel_module_css_default.ecommerceField,
46423
47040
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
@@ -46438,21 +47055,24 @@ window.__ModuleLoader__.load({
46438
47055
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", { children: "3C 数码" })
46439
47056
  ]
46440
47057
  })]
47058
+ }),
47059
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
47060
+ className: panel_module_css_default.ecommerceField,
47061
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
47062
+ className: panel_module_css_default.ecommerceFieldLabel,
47063
+ children: tt("ecommerce.ratioLabel")
47064
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("select", {
47065
+ value: ecommerce.size,
47066
+ onChange: (event) => setEcommerce((previous) => ({
47067
+ ...previous,
47068
+ size: event.target.value
47069
+ })),
47070
+ children: SIZES.filter((size) => size !== "auto").map((size) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", { children: size }, size))
47071
+ })]
46441
47072
  })
46442
47073
  ]
46443
47074
  })]
46444
47075
  }),
46445
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
46446
- className: panel_module_css_default.ecommerceSection,
46447
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", { children: tt("ecommerce.sellingTitle") }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
46448
- value: ecommerce.sellingPoints,
46449
- placeholder: tt("ecommerce.sellingPoints"),
46450
- onChange: (event) => setEcommerce((previous) => ({
46451
- ...previous,
46452
- sellingPoints: event.target.value
46453
- }))
46454
- })]
46455
- }),
46456
47076
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
46457
47077
  className: panel_module_css_default.ecommerceSection,
46458
47078
  children: [
@@ -46558,32 +47178,6 @@ window.__ModuleLoader__.load({
46558
47178
  })
46559
47179
  ]
46560
47180
  }),
46561
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
46562
- className: panel_module_css_default.ecommerceSection,
46563
- children: [
46564
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", { children: tt("ecommerce.styleTitle") }),
46565
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
46566
- value: ecommerce.styleHint,
46567
- placeholder: tt("ecommerce.styleHint"),
46568
- onChange: (event) => setEcommerce((previous) => ({
46569
- ...previous,
46570
- styleHint: event.target.value
46571
- }))
46572
- }),
46573
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
46574
- className: panel_module_css_default.ecommerceFieldLabel,
46575
- children: tt("ecommerce.protectedLabel")
46576
- }),
46577
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
46578
- value: ecommerce.protectedFeatures,
46579
- placeholder: tt("ecommerce.protectedFeatures"),
46580
- onChange: (event) => setEcommerce((previous) => ({
46581
- ...previous,
46582
- protectedFeatures: event.target.value
46583
- }))
46584
- })
46585
- ]
46586
- }),
46587
47181
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
46588
47182
  ref: ecommerceFileInput,
46589
47183
  type: "file",
@@ -46591,7 +47185,7 @@ window.__ModuleLoader__.load({
46591
47185
  accept: "image/png,image/jpeg,image/webp,image/gif",
46592
47186
  className: panel_module_css_default.hiddenFile,
46593
47187
  onChange: (event) => {
46594
- acceptEcommerceFiles(event.target.files ?? void 0);
47188
+ acceptEcommerceFiles(event.target.files ?? void 0, ecommerceUploadRoleRef.current);
46595
47189
  event.target.value = "";
46596
47190
  }
46597
47191
  })
@@ -47362,92 +47956,13 @@ window.__ModuleLoader__.load({
47362
47956
  }), ecommerceMergedItems.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
47363
47957
  className: panel_module_css_default.ecommerceResultsEmpty,
47364
47958
  children: tt("ecommerce.results.empty")
47365
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
47959
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
47366
47960
  className: panel_module_css_default.ecommerceGroups,
47367
- children: ecommerceResultGroups.map((group) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
47368
- className: panel_module_css_default.ecommerceGroup,
47369
- "data-ecommerce-group": group.label,
47370
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("header", { children: [
47371
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: group.label }),
47372
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", { children: [
47373
- group.items.filter((item) => item.status === "completed").length,
47374
- "/",
47375
- group.items.length
47376
- ] }),
47377
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
47378
- type: "button",
47379
- className: panel_module_css_default.galleryBulkButton,
47380
- disabled: ecommerceGenerating,
47381
- onClick: () => {
47382
- regenerateEcommerceSlot(group.label);
47383
- },
47384
- children: tt("ecommerce.results.regenerate")
47385
- })
47386
- ] }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
47387
- className: panel_module_css_default.ecommerceGroupGrid,
47388
- children: group.items.map((item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
47389
- className: panel_module_css_default.ecommerceTaskCard,
47390
- "data-status": item.status,
47391
- children: item.status === "completed" && item.images.length > 0 ? item.images.map((image, imageIndex) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("figure", {
47392
- className: panel_module_css_default.imageCard,
47393
- role: "button",
47394
- tabIndex: 0,
47395
- title: tt("preview.open"),
47396
- onClick: () => {
47397
- openPreview(item.images, imageIndex);
47398
- },
47399
- children: [
47400
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
47401
- className: panel_module_css_default.image,
47402
- src: srcOf(image),
47403
- alt: `${group.label} ${imageIndex + 1}`
47404
- }),
47405
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
47406
- className: panel_module_css_default.ecommerceResultBadge,
47407
- children: group.label
47408
- }),
47409
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
47410
- className: panel_module_css_default.ecommerceTaskActions,
47411
- onClick: (event) => event.stopPropagation(),
47412
- children: [
47413
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
47414
- className: panel_module_css_default.ecommerceActionChip,
47415
- href: srcOf(image),
47416
- download: `product-${item.slotKey || item.id}-${imageIndex + 1}.${extensionOf(image.mime)}`,
47417
- children: tt("download")
47418
- }),
47419
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
47420
- type: "button",
47421
- className: panel_module_css_default.ecommerceActionChip,
47422
- disabled: galleryAdding,
47423
- onClick: () => {
47424
- addToGallery(image);
47425
- },
47426
- children: tt("gallery.add")
47427
- }),
47428
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
47429
- type: "button",
47430
- className: panel_module_css_default.ecommerceActionChip,
47431
- disabled: conversationBusy,
47432
- onClick: () => {
47433
- addImageToConversation(image, imageIndex, `${item.id}:${imageIndex}`);
47434
- },
47435
- children: addingToConversation === `${item.id}:${imageIndex}` ? tt("conversation.adding") : tt("conversation.add")
47436
- })
47437
- ]
47438
- })
47439
- ]
47440
- }, imageIndex)) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
47441
- className: panel_module_css_default.ecommerceTaskState,
47442
- children: [
47443
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("b", { children: group.label }),
47444
- tt(`tasks.${item.status}`),
47445
- item.error !== void 0 ? ` · ${item.error}` : ""
47446
- ]
47447
- })
47448
- }, item.id))
47449
- })]
47450
- }, group.label))
47961
+ "data-split": ecommerceMainGroup !== null ? "true" : void 0,
47962
+ children: [ecommerceMainGroup !== null ? renderEcommerceGroup(ecommerceMainGroup, true) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
47963
+ className: panel_module_css_default.ecommerceGroupsSide,
47964
+ children: ecommerceSideGroups.map((group) => renderEcommerceGroup(group))
47965
+ })]
47451
47966
  })]
47452
47967
  }) : null,
47453
47968
  !isGallery && tasks.length > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
@@ -48879,97 +49394,97 @@ window.__ModuleLoader__.load({
48879
49394
  document.head.appendChild(tag);
48880
49395
  }
48881
49396
  var settings_card_module_css_default = {
48882
- "channelAddRow": "i1cc5G_channelAddRow",
48883
- "editorTools": "i1cc5G_editorTools",
48884
- "channelControls": "i1cc5G_channelControls",
48885
- "presetMeta": "i1cc5G_presetMeta",
49397
+ "detectOk": "i1cc5G_detectOk",
49398
+ "channelMain": "i1cc5G_channelMain",
49399
+ "presetInlineHeader": "i1cc5G_presetInlineHeader",
49400
+ "channelDotReady": "i1cc5G_channelDotReady",
49401
+ "input": "i1cc5G_input",
49402
+ "badges": "i1cc5G_badges",
49403
+ "manualModelRow": "i1cc5G_manualModelRow",
49404
+ "disclosure": "i1cc5G_disclosure",
49405
+ "modelCandidateLabel": "i1cc5G_modelCandidateLabel",
49406
+ "editorDivider": "i1cc5G_editorDivider",
49407
+ "channelName": "i1cc5G_channelName",
48886
49408
  "channelAction": "i1cc5G_channelAction",
48887
- "versionRow": "i1cc5G_versionRow",
48888
- "presetHint": "i1cc5G_presetHint",
48889
- "chevronOpen": "i1cc5G_chevronOpen",
48890
- "readOnly": "i1cc5G_readOnly",
48891
- "inputInvalid": "i1cc5G_inputInvalid",
48892
- "badge": "i1cc5G_badge",
49409
+ "channelDanger": "i1cc5G_channelDanger",
49410
+ "sectionHint": "i1cc5G_sectionHint",
49411
+ "deleteConfirmText": "i1cc5G_deleteConfirmText",
49412
+ "modelRow": "i1cc5G_modelRow",
49413
+ "save": "i1cc5G_save",
49414
+ "hint": "i1cc5G_hint",
49415
+ "label": "i1cc5G_label",
48893
49416
  "modelSummary": "i1cc5G_modelSummary",
48894
- "channelDotReady": "i1cc5G_channelDotReady",
48895
49417
  "description": "i1cc5G_description",
48896
- "versionValue": "i1cc5G_versionValue",
48897
- "failed": "i1cc5G_failed",
48898
- "channelDotWarn": "i1cc5G_channelDotWarn",
48899
- "channelRow": "i1cc5G_channelRow",
48900
- "channelHost": "i1cc5G_channelHost",
48901
- "modelSection": "i1cc5G_modelSection",
48902
- "editorClose": "i1cc5G_editorClose",
48903
- "channelList": "i1cc5G_channelList",
48904
- "spacer": "i1cc5G_spacer",
48905
- "name": "i1cc5G_name",
48906
- "presetInline": "i1cc5G_presetInline",
49418
+ "modelCandidateList": "i1cc5G_modelCandidateList",
49419
+ "chevronOpen": "i1cc5G_chevronOpen",
48907
49420
  "editorHeader": "i1cc5G_editorHeader",
48908
- "disclosure": "i1cc5G_disclosure",
48909
- "badges": "i1cc5G_badges",
49421
+ "versionLabel": "i1cc5G_versionLabel",
49422
+ "optionalContent": "i1cc5G_optionalContent",
49423
+ "sectionHeader": "i1cc5G_sectionHeader",
49424
+ "channelList": "i1cc5G_channelList",
49425
+ "modelRowRemove": "i1cc5G_modelRowRemove",
49426
+ "body": "i1cc5G_body",
48910
49427
  "modelCandidate": "i1cc5G_modelCandidate",
48911
- "editorPanel": "i1cc5G_editorPanel",
48912
- "modelFetch": "i1cc5G_modelFetch",
48913
- "editorSectionHeader": "i1cc5G_editorSectionHeader",
49428
+ "channelRow": "i1cc5G_channelRow",
49429
+ "channelBadge": "i1cc5G_channelBadge",
48914
49430
  "reset": "i1cc5G_reset",
49431
+ "select": "i1cc5G_select",
49432
+ "channelAdd": "i1cc5G_channelAdd",
49433
+ "modelBadge": "i1cc5G_modelBadge",
49434
+ "invalid": "i1cc5G_invalid",
49435
+ "card": "i1cc5G_card",
49436
+ "channelMeta": "i1cc5G_channelMeta",
49437
+ "notExposed": "i1cc5G_notExposed",
49438
+ "sectionTitle": "i1cc5G_sectionTitle",
49439
+ "modelChoices": "i1cc5G_modelChoices",
48915
49440
  "footer": "i1cc5G_footer",
48916
- "pending": "i1cc5G_pending",
48917
- "label": "i1cc5G_label",
48918
- "head": "i1cc5G_head",
48919
- "textareaInvalid": "i1cc5G_textareaInvalid",
48920
- "modelRow": "i1cc5G_modelRow",
48921
- "presetInlineHeader": "i1cc5G_presetInlineHeader",
49441
+ "inputInvalid": "i1cc5G_inputInvalid",
49442
+ "badge": "i1cc5G_badge",
49443
+ "editorField": "i1cc5G_editorField",
48922
49444
  "presetRow": "i1cc5G_presetRow",
48923
- "notExposed": "i1cc5G_notExposed",
48924
- "modelRowBadges": "i1cc5G_modelRowBadges",
48925
- "channelDanger": "i1cc5G_channelDanger",
48926
- "save": "i1cc5G_save",
48927
- "textarea": "i1cc5G_textarea",
48928
- "modelRowRemove": "i1cc5G_modelRowRemove",
49445
+ "presetInline": "i1cc5G_presetInline",
48929
49446
  "header": "i1cc5G_header",
48930
- "modelCandidateLabel": "i1cc5G_modelCandidateLabel",
48931
- "discard": "i1cc5G_discard",
48932
- "modelChip": "i1cc5G_modelChip",
48933
- "modelChoices": "i1cc5G_modelChoices",
48934
- "headText": "i1cc5G_headText",
49447
+ "name": "i1cc5G_name",
49448
+ "channelHost": "i1cc5G_channelHost",
49449
+ "modelSection": "i1cc5G_modelSection",
49450
+ "inlineDisclosure": "i1cc5G_inlineDisclosure",
49451
+ "textarea": "i1cc5G_textarea",
49452
+ "channelEmpty": "i1cc5G_channelEmpty",
49453
+ "spacer": "i1cc5G_spacer",
49454
+ "presetName": "i1cc5G_presetName",
49455
+ "editorTools": "i1cc5G_editorTools",
49456
+ "modelFetchRow": "i1cc5G_modelFetchRow",
49457
+ "presetMeta": "i1cc5G_presetMeta",
48935
49458
  "modelRows": "i1cc5G_modelRows",
48936
- "modelRowInputs": "i1cc5G_modelRowInputs",
48937
- "editorBackdrop": "i1cc5G_editorBackdrop",
48938
- "channelBadge": "i1cc5G_channelBadge",
48939
- "modelBadge": "i1cc5G_modelBadge",
48940
- "manualModelRow": "i1cc5G_manualModelRow",
48941
- "hint": "i1cc5G_hint",
49459
+ "channelControls": "i1cc5G_channelControls",
48942
49460
  "modelArrow": "i1cc5G_modelArrow",
48943
- "sectionDivider": "i1cc5G_sectionDivider",
48944
- "presetList": "i1cc5G_presetList",
48945
49461
  "chevron": "i1cc5G_chevron",
48946
- "invalid": "i1cc5G_invalid",
48947
- "channelName": "i1cc5G_channelName",
49462
+ "channelDotWarn": "i1cc5G_channelDotWarn",
49463
+ "versionValue": "i1cc5G_versionValue",
49464
+ "textareaInvalid": "i1cc5G_textareaInvalid",
49465
+ "channelAddRow": "i1cc5G_channelAddRow",
49466
+ "modelRowInputs": "i1cc5G_modelRowInputs",
49467
+ "modelRowBadges": "i1cc5G_modelRowBadges",
49468
+ "modelChip": "i1cc5G_modelChip",
49469
+ "head": "i1cc5G_head",
48948
49470
  "channelSection": "i1cc5G_channelSection",
48949
- "editorDivider": "i1cc5G_editorDivider",
48950
- "sectionHint": "i1cc5G_sectionHint",
48951
- "versionLabel": "i1cc5G_versionLabel",
49471
+ "editorClose": "i1cc5G_editorClose",
49472
+ "editorBackdrop": "i1cc5G_editorBackdrop",
49473
+ "sectionDivider": "i1cc5G_sectionDivider",
49474
+ "failed": "i1cc5G_failed",
49475
+ "readOnly": "i1cc5G_readOnly",
48952
49476
  "editorFooter": "i1cc5G_editorFooter",
48953
- "channelMain": "i1cc5G_channelMain",
48954
- "channelMeta": "i1cc5G_channelMeta",
48955
- "select": "i1cc5G_select",
48956
- "field": "i1cc5G_field",
48957
- "modelFetchRow": "i1cc5G_modelFetchRow",
48958
- "sectionTitle": "i1cc5G_sectionTitle",
48959
- "channelEmpty": "i1cc5G_channelEmpty",
48960
- "sectionHeader": "i1cc5G_sectionHeader",
49477
+ "presetList": "i1cc5G_presetList",
49478
+ "headText": "i1cc5G_headText",
49479
+ "presetHint": "i1cc5G_presetHint",
49480
+ "versionRow": "i1cc5G_versionRow",
49481
+ "discard": "i1cc5G_discard",
48961
49482
  "addModel": "i1cc5G_addModel",
48962
- "modelCandidateList": "i1cc5G_modelCandidateList",
48963
- "channelAdd": "i1cc5G_channelAdd",
48964
- "inlineDisclosure": "i1cc5G_inlineDisclosure",
48965
- "editorField": "i1cc5G_editorField",
48966
- "optionalContent": "i1cc5G_optionalContent",
48967
- "body": "i1cc5G_body",
48968
- "input": "i1cc5G_input",
48969
- "deleteConfirmText": "i1cc5G_deleteConfirmText",
48970
- "detectOk": "i1cc5G_detectOk",
48971
- "card": "i1cc5G_card",
48972
- "presetName": "i1cc5G_presetName"
49483
+ "modelFetch": "i1cc5G_modelFetch",
49484
+ "field": "i1cc5G_field",
49485
+ "editorSectionHeader": "i1cc5G_editorSectionHeader",
49486
+ "editorPanel": "i1cc5G_editorPanel",
49487
+ "pending": "i1cc5G_pending"
48973
49488
  };
48974
49489
  //#endregion
48975
49490
  //#region src/client/SettingsCard.tsx
@@ -50451,16 +50966,16 @@ window.__ModuleLoader__.load({
50451
50966
  document.head.appendChild(tag);
50452
50967
  }
50453
50968
  var image_toolview_module_css_default = {
50454
- "images": "_3eGrYG_images",
50455
- "status": "_3eGrYG_status",
50456
- "message": "_3eGrYG_message",
50969
+ "root": "_3eGrYG_root",
50457
50970
  "error": "_3eGrYG_error",
50458
- "image": "_3eGrYG_image",
50459
- "icon": "_3eGrYG_icon",
50971
+ "imageLink": "_3eGrYG_imageLink",
50460
50972
  "header": "_3eGrYG_header",
50973
+ "icon": "_3eGrYG_icon",
50974
+ "status": "_3eGrYG_status",
50975
+ "message": "_3eGrYG_message",
50461
50976
  "loading": "_3eGrYG_loading",
50462
- "imageLink": "_3eGrYG_imageLink",
50463
- "root": "_3eGrYG_root"
50977
+ "images": "_3eGrYG_images",
50978
+ "image": "_3eGrYG_image"
50464
50979
  };
50465
50980
  //#endregion
50466
50981
  //#region src/client/image-toolview.tsx